re PR libgcj/37636 (java tools are unable to find resource files)
authorMatthias Klose <doko@gcc.gnu.org>
Tue, 21 Oct 2008 17:55:01 +0000 (17:55 +0000)
committerMatthias Klose <doko@gcc.gnu.org>
Tue, 21 Oct 2008 17:55:01 +0000 (17:55 +0000)
libjava/ChangeLog:

2008-10-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

        * sources.am, Makfile.in: Regenerate.

2008-10-17  Matthias Klose  <doko@ubuntu.com>

* configure.ac: Fix bashisms.
* configure: Regenerate.

2008-10-15  Matthias Klose  <doko@ubuntu.com>

* configure.ac: Disable build of gjdoc, if configured without
--with-antlr-jar or if no antlr.jar found.
* configure: Regenerate.

2008-10-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* classpath/configure.ac,
* classpath/m4/ac_prog_antlr.m4,
* classpath/m4/ac_prog_java.m4,
* classpath/tools/Makefile.am:
Ported --regen-gjdoc-parser patch and
cantlr support from GNU Classpath.

2008-10-06  Andrew Haley  <aph@redhat.com>

* java/lang/Thread.java (Thread): Always create the ThreadLocalMap
when creating a thread.
(getThreadLocals) Don't lazily create the ThreadLocalMap.

2008-09-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* classpath/java/lang/ThreadLocalMap.java,
* java/lang/ThreadLocalMap$Entry.h,
* java/lang/ThreadLocalMap.h,
* lib/java/lang/ThreadLocalMap.class,
* lib/java/lang/ThreadLocalMap$Entry.class:
Add the new files for the ThreadLocal patch.

2008-09-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* classpath/ChangeLog,
* classpath/java/lang/InheritableThreadLocal.java,
* classpath/java/lang/Thread.java,
* classpath/java/lang/ThreadLocal.java:
Merge Daniel Frampton's ThreadLocal patch.
* gcj/javaprims.h: Updated.
* java/lang/Thread.h: Regenerated.
* java/lang/Thread.java:
Replace WeakIdentityHashMap with ThreadLocalMap.
(getThreadLocals()): Likewise.
* java/lang/ThreadLocal.h: Regenerated.
* java/lang/ThreadLocal.java:
(computeNextHash()): New method.
(ThreadLocal()): Initialise fastHash.
(internalGet()): Updated to match Classpath's get().
(internalSet(Object)): Likewise for set(Object).
(internalRemove()): Likewise for remove().

2008-09-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* classpath/configure,
* classpath/configure.ac:
Resynchronise with Classpath's configure.
* classpath/examples/Makefile.in:
Add equivalent support for building as in
tools/Makefile.in.
* classpath/java/nio/Buffer.java,
* classpath/java/nio/ByteBuffer.java,
* classpath/java/nio/ByteBufferImpl.java,
* classpath/java/nio/CharBuffer.java,
* classpath/java/nio/CharBufferImpl.java,
* classpath/java/nio/CharSequenceBuffer.java,
* classpath/java/nio/CharViewBufferImpl.java,
* classpath/java/nio/DirectByteBufferImpl.java,
* classpath/java/nio/DoubleBuffer.java,
* classpath/java/nio/DoubleBufferImpl.java,
* classpath/java/nio/DoubleViewBufferImpl.java,
* classpath/java/nio/FloatBuffer.java,
* classpath/java/nio/FloatBufferImpl.java,
* classpath/java/nio/FloatViewBufferImpl.java,
* classpath/java/nio/IntBuffer.java,
* classpath/java/nio/IntBufferImpl.java,
* classpath/java/nio/IntViewBufferImpl.java,
* classpath/java/nio/LongBuffer.java,
* classpath/java/nio/LongBufferImpl.java,
* classpath/java/nio/LongViewBufferImpl.java,
* classpath/java/nio/MappedByteBuffer.java,
* classpath/java/nio/MappedByteBufferImpl.java,
* classpath/java/nio/ShortBuffer.java,
* classpath/java/nio/ShortBufferImpl.java,
* classpath/java/nio/ShortViewBufferImpl.java:
Replace use of gnu.classpath.Pointer with gnu.gcj.RawData,
and fix some formatting issues.
* classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.java,
* classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap,
* classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java,
* classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap,
* classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java,
* classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt:
Regenerated (later version of antlr).
* java/nio/Buffer.h: Regenerated.
* java/nio/Buffer.java: Ported changes from Classpath.
* java/nio/ByteBuffer.h,
* java/nio/CharBuffer.h: Regenerated.
* java/nio/DirectByteBufferImpl.java: Ported changes from
Classpath.
* java/nio/DoubleBuffer.h,
* java/nio/FloatBuffer.h,
* java/nio/IntBuffer.h,
* java/nio/LongBuffer.h,
* java/nio/MappedByteBuffer.h,
* java/nio/MappedByteBufferImpl.h: Regenerated.
* java/nio/MappedByteBufferImpl.java: Ported changes from
Classpath.
* java/nio/ShortBuffer.h: Regenerated.

2008-09-24  Matthias Klose  <doko@ubuntu.com>

* configure.ac: Search for antlr.jar, if not configured.
* configure: Regenerate.

2008-09-24  Matthias Klose  <doko@ubuntu.com>

* Makefile.am: Build a gjdoc binary, if enabled.
* configure.ac: Add options --disable-gjdoc, --with-antlr-jar=file.
* Makefile.in, */Makefile.in, configure: Regenerate.

2008-09-22  Andrew Haley  <aph@redhat.com>

* java/lang/String.java (toString(char[], int, int)): New method.

2008-09-14  Matthias Klose  <doko@ubuntu.com>

Import GNU Classpath (libgcj-import-20080914).

* Regenerate class and header files.
* Regenerate auto* files.
* configure.ac: Don't pass --disable-gjdoc to classpath.
* sources.am: Regenerated.
* HACKING: Mention to build gjdoc in maintainer builds.
* gnu/classpath/Configuration.java: Update classpath version.
* gcj/javaprims.h: Update.

2008-09-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* Makefile.am: Replace natStringBuffer.cc
and natStringBuilder.cc with natAbstractStringBuffer.cc.
* Makefile.in: Regenerated.
* java/lang/AbstractStringBuffer.java:
(append(int)): Made native.
(regionMatches(int,String)): Likewise.
* java/lang/StringBuffer.h: Regenerated.
* java/lang/StringBuffer.java: Remerged with GNU Classpath.
* java/lang/StringBuilder.h: Regenerated.
* java/lang/StringBuilder.java: Remerged with GNU Classpath.
* java/lang/natAbstractStringBuffer.cc: Provide common
native methods for StringBuffer and StringBuilder.
* java/lang/natStringBuffer.cc,
* java/lang/natStringBuilder.cc: Removed.

2008-09-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* Makefile.in,
* classpath/configure: Regenerated.
* gnu/gcj/util/natDebug.cc,
* gnu/gcj/xlib/natColormap.cc,
* gnu/gcj/xlib/natDisplay.cc,
* gnu/gcj/xlib/natDrawable.cc,
* gnu/gcj/xlib/natFont.cc,
* gnu/gcj/xlib/natWMSizeHints.cc,
* gnu/gcj/xlib/natWindow.cc,
* gnu/gcj/xlib/natXImage.cc:
Add :: prefix to namespaces.
* java/io/CharArrayWriter.h,
* java/lang/StringBuffer.h:
Regenerated using patched gjavah.
* java/lang/natStringBuffer.cc:
Fix naming of append(jint).
* java/sql/Timestamp.h: Regenerated
using patched gjavah.
* jni.cc: Rename p to functions
to match change in GNU Classpath.
* scripts/makemake.tcl: Switch
gnu.java.math to BC compilation.
* sources.am: Regenerated.

2008-08-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* Makefile.in: Updated location of Configuration.java.
* classpath/lib/gnu/java/locale/LocaleData.class: Regenerated.

2008-08-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* Makefile.in: Updated with new Java files.
* classpath/configure: Regenerated.
* classpath/tools/Makefile.am: Add missing
use of GJDOC_EX so --disable-gjdoc works.
* classpath/tools/Makefile.in: Regenerated.

2008-08-15  Matthias Klose  <doko@ubuntu.com>

Import GNU Classpath (libgcj-import-20080811).

* Regenerate class and header files.
* Regenerate auto* files.
* configure.ac: Don't pass --with-fastjar to classpath, substitute new
dummy value in classpath/gnu/classpath/Configuration.java.in, pass
--disable-gjdoc to classpath.
* scripts/makemake.tcl:
* sources.am: Regenerated.
* java/lang/AbstractStringBuffer.java, gnu/java/lang/VMCPStringBuilder.java:
New, copied from classpath, use System instead of VMSystem.
* java/lang/StringBuffer.java: Merge from classpath.
* java/lang/ClassLoader.java: Merge from classpath.
* gcj/javaprims.h: Update class definitions,
remove _Jv_jobjectRefType, jobjectRefType definitions.

libjava/classpath/ChangeLog.gcj:

2008-10-21  Matthias Klose  <doko@ubuntu.com>

        * classpath/tools/gnu/classpath/tools/gjdoc/expr/Java*: Move from ...
        * classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/ ... here.
        * Update .class files.

2008-10-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

        * tools/Makefile.am:
        Always generate parser in the srcdir.

2008-10-21  Matthias Klose  <doko@ubuntu.com>

        * doc/Makefile.am (MAINTAINERCLEANFILES): Add gjdoc.1.
        * doc/Makefile.in: Regenerate.

2008-10-20  Matthias Klose  <doko@ubuntu.com>

* configure.ac: Don't check for working java, if not configured
        with --enable-java-maintainer-mode.
* configure: Regenerate.

2008-10-19  Matthias Klose  <doko@ubuntu.com>

* m4/ac_prog_java.m4: Revert previous change.
* m4/ac_prog_javac.m4: Apply it here.
* configure: Regenerate.

2008-10-19  Matthias Klose  <doko@ubuntu.com>

* m4/ac_prog_javac.m4: Don't check for working javac, if not configured
with --enable-java-maintainer-mode.
* configure: Regenerate.
* Makefile.in, */Makefile.in: Regenerate.

2008-09-30  Matthias Klose  <doko@ubuntu.com>

* m4/ac_prog_antlr.m4: Check for cantlr binary as well.

2008-09-29  Matthias Klose  <doko@ubuntu.com>

* m4/ac_prog_antlr.m4: Check for antlr binary as well.

2008-09-28  Matthias Klose  <doko@ubuntu.com>

* PR libgcj/37636. Revert:
2008-02-20  Matthias Klose  <doko@ubuntu.com>

* tools/Makefile.am ($(TOOLS_ZIP)): Revert part of previous change,
Do copy resource files in JAVA_MAINTAINER_MODE only.
* tools/Makefile.in: Regenerate.

2008-09-14  Matthias Klose  <doko@ubuntu.com>

* m4/ac_prog_javac_works.m4, m4/ac_prog_javac.m4, m4/acinclude.m4:
Revert local changes.
* m4/ac_prog_antlr.m4: Check for an runantlr binary.
* tools/Makefile.am, lib/Makefile.am: Revert local changes (JCOMPILER).
* tools/Makefile.am: Remove USE_JAVAC_FLAGS, pass ANTLR_JAR in
GLIBJ_CLASSPATH.

2008-09-14  Matthias Klose  <doko@ubuntu.com>

Revert:
Daniel Frampton  <zyridium at zyridium.net>

* AUTHORS: Added.
* java/lang/InheritableThreadLocal.java,
* java/lang/Thread.java,
* java/lang/ThreadLocal.java:
Modified to use java.lang.ThreadLocalMap.
* java/lang/ThreadLocalMap.java:
New cheaper ThreadLocal-specific WeakHashMap.

2008-08-15  Matthias Klose  <doko@ubuntu.com>

* m4/acinclude.m4 (CLASSPATH_JAVAC_MEM_CHECK): Remove unknown
args for javac.

libjava/classpath/ChangeLog:

2008-10-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

        * m4/ac_prog_antlr.m4:
        Remove redundant checks.
        * tools/Makefile.am:
        Use gjdoc_gendir when calling antlr.

2008-10-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

        * configure.ac:
        Remove superfluous AC_PROG_JAVA call.

2008-10-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* m4/ac_prog_antlr:
Check for cantlr as well.
* tools/Makefile.am:
Only build GJDoc parser when both
CREATE_GJDOC and CREATE_GJDOC_PARSER
are on.

2008-10-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* configure.ac:
Add regen-gjdoc-parser option,
and separate antlr tests.
* m4/ac_prog_antlr.m4:
Turn single test into AC_LIB_ANTLR
and AC_PROG_ANTLR.
* m4/ac_prog_java.m4:
Quote tests.
* tools/Makefile.am:
Support CREATE_GJDOC_PARSER option.

2008-09-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* examples/Makefile.am:
        Check lib directly as well as glibj.zip
        for boot classes.
* m4/acinclude.m4:
        Only require the class files to be built
        to allow the tools and examples to be built,
        not the installation of glibj.zip.
* tools/Makefile.am:
Check lib directly as well as glibj.zip
for boot classes.

2008-09-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* examples/Makefile.am,
* lib/Makefile.am:
Add GCJ rules.
* m4/ac_prog_javac.m4:
Check whether JAVAC is gcj.
* m4/ac_prog_javac_works.m4:
Add GCJ rules.
* m4/acinclude.m4:
Don't bother checking for -J
if using GCJ.
* tools/Makefile.am:
Add GCJ rules.

2007-08-23  Daniel Frampton  <zyridium@zyridium.net>

* AUTHORS: Added.
* java/lang/InheritableThreadLocal.java,
* java/lang/Thread.java,
* java/lang/ThreadLocal.java:
Modified to use java.lang.ThreadLocalMap.
* java/lang/ThreadLocalMap.java:
New cheaper ThreadLocal-specific WeakHashMap.

2008-02-07  Ian Rogers  <ian.rogers@manchester.ac.uk>

* java/util/zip/ZipEntry.java:
Use byte fields instead of integer fields,
store the time as well as the DOS time and
don't retain a global Calendar instance.
(setDOSTime(int)): Set KNOWN_DOSTIME instead
of KNOWN_TIME, and unset KNOWN_TIME.
(getDOSTime()): Compute DOS time from UNIX time
only when needed.
(clone()): Provide cloning via the ZipEntry constructor
where possible.
(setTime(long)): Don't compute DOS time at this point.
(getCalendar()): Removed.

2008-09-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* tools/gnu/classpath/tools/getopt/Parser.java:
(setHeader(String)): Make synchronized.
(setFooter(String)): Likewise.
* tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java,
(reset()): Make synchronized.
(name(Class)): Likewise.

2008-09-04  Robert Schuster  <robertschuster@fsfe.org>

* gnu/java/nio/charset/ByteDecodeLoopHelper:
(arrayDecodeLoop): Added new break label, escape to that label.
* gnu/java/nio/charset/ByteEncodeLoopHelper:
(arrayDecodeLoop): Added new break label, escape to that label.

2008-09-04  Robert Schuster  <robertschuster@fsfe.org>

* java/text/DecimalFormat.java:
(scanFix): Use 'i + 1' when looking at following character.
(scanNegativePattern): Dito.

2008-09-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* tools/gnu/classpath/tools/javah/ClassWrapper.java:
(makeVtable()): Populate methodNameMap.
(printMethods(CniPrintStream)): Always use pre-populated
methodNameMap for bridge targets.

2008-09-01  Mario Torre  <neugens@aicas.com>

* gnu/java/awt/peer/x/XImage.java (XImageProducer): remove @Override
annotation to allow compilation on javac < 1.6 and ecj < 3.4.

2008-09-01  Mario Torre  <neugens@aicas.com>

* gnu/java/awt/peer/x/XGraphicsDevice.java (getDisplay): fix to support
new Escher API.
* gnu/java/awt/peer/x/XImage.java (getSource): method implemented.
* gnu/java/awt/peer/x/XImage.java (XImageProducer): implement ImageProducer
for getSource.

2008-09-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* gnu/java/util/regex/BacktrackStack.java,
* gnu/java/util/regex/CharIndexed.java,
* gnu/java/util/regex/CharIndexedCharArray.java,
* gnu/java/util/regex/CharIndexedCharSequence.java,
* gnu/java/util/regex/CharIndexedInputStream.java,
* gnu/java/util/regex/CharIndexedString.java,
* gnu/java/util/regex/CharIndexedStringBuffer.java,
* gnu/java/util/regex/RE.java,
* gnu/java/util/regex/REException.java,
* gnu/java/util/regex/REFilterInputStream.java,
* gnu/java/util/regex/REMatch.java,
* gnu/java/util/regex/REMatchEnumeration.java,
* gnu/java/util/regex/RESyntax.java,
* gnu/java/util/regex/REToken.java,
* gnu/java/util/regex/RETokenAny.java,
* gnu/java/util/regex/RETokenBackRef.java,
* gnu/java/util/regex/RETokenChar.java,
* gnu/java/util/regex/RETokenEnd.java,
* gnu/java/util/regex/RETokenEndOfPreviousMatch.java,
* gnu/java/util/regex/RETokenEndSub.java,
* gnu/java/util/regex/RETokenIndependent.java,
* gnu/java/util/regex/RETokenLookAhead.java,
* gnu/java/util/regex/RETokenLookBehind.java,
* gnu/java/util/regex/RETokenNamedProperty.java,
* gnu/java/util/regex/RETokenOneOf.java,
* gnu/java/util/regex/RETokenPOSIX.java,
* gnu/java/util/regex/RETokenRange.java,
* gnu/java/util/regex/RETokenRepeated.java,
* gnu/java/util/regex/RETokenStart.java,
* gnu/java/util/regex/RETokenWordBoundary.java,
* gnu/java/util/regex/UncheckedRE.java:
Fix indentation.

2008-09-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* gnu/java/util/regex/RETokenStart.java:
(getMaximumLength()): Add Override annotation.
(matchThis(CharIndexed, REMatch)): Likewise.
(returnsFixedLengthMatches()): Renamed from
returnsFixedLengthmatches and added Override
annotation.
(findFixedLengthMatches(CharIndexed,REMatch,int)):
Add Override annotation.
(dump(CPStringBuilder)): Likewise.
* gnu/javax/print/ipp/IppRequest.java:
(RequestWriter.writeOperationAttributes(AttributeSet)):
Throw exception, don't just create and drop it.
* javax/management/MBeanServerPermission.java:
(MBeanServerPermissionCollection.add(Permission)): Compare
against individual Strings not the entire array, and
store the result of replace.
* javax/swing/text/html/StyleSheet.java:
(setBaseFontSize(size)): Store result of trim().

2008-09-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* javax/tools/FileObject.java:
(openReader(boolean)): Document new parameter.

2008-03-27  Michael Franz  <mvfranz@gmail.com>

PR classpath/35690:
* javax/tools/FileObject.java:
(toUri()): Fix case from toURI.
(openReader(boolean)): Add missing boolean argument.

2008-08-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

PR classpath/35487:
* gnu/javax/management/Server.java:
(beans): Change to ConcurrentHashMap.
(defaultDomain): Make final.
(outer): Likewise.
(LazyListenersHolder): Added to wrap
listeners, also now a ConcurrentHashMap,
providing lazy initialisation safely.
(sequenceNumber): Documented.
(getBean(ObjectName)): Remove redundant cast.
(addNotificationListener(ObjectName,NotificationListener,
NotificationFilter,Object)): Remove map initialisation
and use holder.
(getObjectInstance(ObjectName)): Remove redundant cast.
(registerMBean(Object,ObjectName)): Add bean atomically.
(removeNotificationListener(ObjectName,NotificationListener)):
Simplified.
(removeNotificationListener(ObjectName,NotificationListener,
NotificationFilter,Object)): Likewise.
(notify(ObjectName,String)): Documented.

2008-08-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* gnu/javax/management/Server.java:
Genericised.

2008-08-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* gnu/javax/management/Translator.java:
Genericised.

2008-08-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* javax/management/DefaultLoaderRepository.java,
* javax/management/JMX.java,
* javax/management/MBeanAttributeInfo.java,
* javax/management/MBeanConstructorInfo.java,
* javax/management/MBeanOperationInfo.java,
* javax/management/MBeanServerDelegate.java:
Fix warnings due to generics.

2008-08-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* javax/management/MBeanPermission.java,
* javax/management/MBeanServerDelegate.java,
* javax/management/MBeanServerFactory.java,
* javax/management/MBeanServerInvocationHandler.java,
* javax/management/MBeanServerPermission.java:
Fix warnings due to use of non-generic collections.

2008-08-25  Mario Torre  <neugens@aicas.com>

* gnu/javax/rmi/CORBA/RmiUtilities.java (readValue): check if sender is
null to avoid NPE.

2008-08-22  Mario Torre  <neugens@aicas.com>

* gnu/CORBA/OrbFunctional.java (set_parameters): Fix
NullPointerException checking when param is null.

2008-08-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* java/util/regex/Matcher.java:
(reset()): Reset append position so
we don't try and append to the end of
the old input.

2008-08-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

PR classpath/32028:
* m4/acinclude.m4:
Also allow versions of GJDoc from 0.8* on, as
CVS is 0.8.0-pre.

2008-08-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

PR classpath/32028:
* m4/acinclude.m4:
(CLASSPATH_WITH_GJDOC): Ensure version 0.7.9 is
being used.

2008-08-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* tools/Makefile.am:
Add taglets subdirectory to list of excluded
paths when GJDoc is not compiled.

2008-08-19  David P Grove  <groved@us.ibm.com>

* scripts/check_jni_methods.sh.in:
Fix build issue on AIX by splitting generation
of method list.

2008-08-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* native/jni/gstreamer-peer/gst_native_pipeline.c:
(get_free_space(int)): Use #else not #elif when
there is no condition.

2008-08-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

PR classpath/31895:
* java/text/DecimalFormat.java:
(setCurrency(Currency)): Update prefixes and
suffixes when currency changes.
* java/text/DecimalFormatSymbols.java:
(DecimalFormatSymbols(Locale)): Set locale earlier
so it can be used by setCurrency(Currency).
(setCurrency(Currency)): Set the symbol correctly using
the locale of the instance.
* java/util/Currency.java:
Throw error instead of just printing a message.

2008-08-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* javax/activation/ActivationDataFlavor.java:
Suppress warnings from public API.
(mimeType): Made final.
(representationClass): Added generic type and
made final.
(normalizeMimeTypeParameter(String,String)):
Use CPStringBuilder.
* javax/activation/CommandInfo.java:
(verb): Made final.
(className): Made final.
* javax/activation/DataHandler.java:
(dataSource): Made final.
* javax/activation/FileDataSource.java:
(file): Made final.
* javax/activation/MailcapCommandMap.java:
Use generics on collections and CPStringBuilder
instead of StringBuffer.
* javax/activation/MimeType.java:
(toString()): Use CPStringBuilder.
(getBaseType()): Likewise.
* javax/activation/MimeTypeParameterList.java:
Use generics on collections and CPStringBuilder
instead of StringBuffer.
* javax/activation/MimeTypeParseException.java:
(MimeTypeParseException(String,String)): Use
CPStringBuilder.
* javax/activation/MimetypesFileTypeMap.java:
Use generics on collections and CPStringBuilder
instead of StringBuffer.
* javax/activation/URLDataSource.java:
(url): Made final.

2008-08-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* gnu/javax/activation/viewers/ImageViewer.java,
* gnu/javax/activation/viewers/TextEditor.java,
* gnu/javax/activation/viewers/TextViewer.java,
* javax/activation/ActivationDataFlavor.java,
* javax/activation/CommandInfo.java,
* javax/activation/CommandMap.java,
* javax/activation/CommandObject.java,
* javax/activation/DataContentHandler.java,
* javax/activation/DataContentHandlerFactory.java,
* javax/activation/DataHandler.java,
* javax/activation/DataHandlerDataSource.java,
* javax/activation/DataSource.java,
* javax/activation/DataSourceDataContentHandler.java,
* javax/activation/FileDataSource.java,
* javax/activation/FileTypeMap.java,
* javax/activation/MailcapCommandMap.java,
* javax/activation/MimeType.java,
* javax/activation/MimeTypeParameterList.java,
* javax/activation/MimeTypeParseException.java,
* javax/activation/MimetypesFileTypeMap.java,
* javax/activation/ObjectDataContentHandler.java,
* javax/activation/URLDataSource.java,
* javax/activation/UnsupportedDataTypeException.java,
* javax/activation/package.html,
* resource/META-INF/mailcap.default,
* resource/META-INF/mimetypes.default:
Import GNU JAF CVS as of 17/08/2008.

2006-04-25  Archit Shah  <ashah@redhat.com>

* javax/activation/MimeTypeParameterList.java:
Insert ';' separator before parameter list.

2005-06-29  Xavier Poinsard  <xpoinsard@openpricer.com>

* javax/activation/ObjectDataContentHandler.java:
Fixed typo.

2005-05-28  Chris Burdess  <dog@bluezoo.org>

* javax/activation/CommandMap.java,
* javax/activation/MailcapCommandMap.java:
Updated to JAF 1.1.

2004-06-09  Chris Burdess  <dog@bluezoo.org>

* javax/activation/MailcapCommandMap.java:
Fixed bug whereby x-java prefix was not
attempted.

2008-08-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* AUTHORS: Added Laszlo.

2008-04-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

PR classpath/30436:
* java/util/Scanner.java:
Fix package to be java.util and correct
indentation.

2007-07-25  Laszlo Andras Hernadi  <e0327023@student.tuwien.ac.at>

PR classpath/30436:
* java/util/Scanner.java:
Initial implementation.

2008-08-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

* java/util/regex/Matcher.java:
(toMatchResult()): Implemented.

2008-08-13  Joshua Sumali  <jsumali@redhat.com>

* doc/Makefile.am (gjdoc.pod): Generate gjdoc pod from cp-tools.texinfo
instead of invoke.texi. Remove invoke.texi from EXTRA_DIST.
* doc/invoke.texi: Removed and merged into ...
* doc/cp-tools.texinfo: Here

2008-08-12  Robert Schuster  <robertschuster@fsfe.org>

* native/jni/java-net/local.c
(local_bind): Removed fprintf call, fixed access outside
of array bounds.

From-SVN: r141271

2330 files changed:
libjava/ChangeLog
libjava/HACKING
libjava/Makefile.am
libjava/Makefile.in
libjava/classpath/AUTHORS
libjava/classpath/ChangeLog
libjava/classpath/ChangeLog.gcj
libjava/classpath/Makefile.am
libjava/classpath/Makefile.in
libjava/classpath/NEWS
libjava/classpath/THANKYOU
libjava/classpath/aclocal.m4
libjava/classpath/configure
libjava/classpath/configure.ac
libjava/classpath/doc/Makefile.am
libjava/classpath/doc/Makefile.in
libjava/classpath/doc/api/Makefile.in
libjava/classpath/doc/cp-tools.texinfo
libjava/classpath/examples/Makefile.am
libjava/classpath/examples/Makefile.in
libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java
libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java
libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java
libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java
libjava/classpath/examples/gnu/classpath/examples/html/Demo.java
libjava/classpath/external/Makefile.in
libjava/classpath/external/jsr166/Makefile.in
libjava/classpath/external/relaxngDatatype/Makefile.in
libjava/classpath/external/sax/Makefile.in
libjava/classpath/external/w3c_dom/Makefile.in
libjava/classpath/gnu/CORBA/BigDecimalHelper.java
libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java
libjava/classpath/gnu/CORBA/CDR/Vio.java
libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java
libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java
libjava/classpath/gnu/CORBA/GIOP/RequestHeader.java
libjava/classpath/gnu/CORBA/GIOP/v1_0/ReplyHeader.java
libjava/classpath/gnu/CORBA/GIOP/v1_0/RequestHeader.java
libjava/classpath/gnu/CORBA/IOR.java
libjava/classpath/gnu/CORBA/NamingService/NameParser.java
libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java
libjava/classpath/gnu/CORBA/OrbFunctional.java
libjava/classpath/gnu/CORBA/Poa/gnuPOA.java
libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java
libjava/classpath/gnu/classpath/Configuration.java.in
libjava/classpath/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
libjava/classpath/gnu/classpath/jdwp/util/Signature.java
libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java
libjava/classpath/gnu/java/awt/font/autofit/Edge.java
libjava/classpath/gnu/java/awt/font/autofit/LatinBlue.java
libjava/classpath/gnu/java/awt/font/autofit/Segment.java
libjava/classpath/gnu/java/awt/font/autofit/Width.java
libjava/classpath/gnu/java/awt/font/opentype/GlyphNamer.java
libjava/classpath/gnu/java/awt/font/opentype/truetype/Fixed.java
libjava/classpath/gnu/java/awt/font/opentype/truetype/Point.java
libjava/classpath/gnu/java/awt/font/opentype/truetype/VirtualMachine.java
libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java
libjava/classpath/gnu/java/awt/java2d/ActiveEdges.java
libjava/classpath/gnu/java/awt/java2d/RasterGraphics.java
libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java
libjava/classpath/gnu/java/awt/peer/GnomeDesktopPeer.java
libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java
libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java
libjava/classpath/gnu/java/awt/peer/gtk/GtkClipboard.java
libjava/classpath/gnu/java/awt/peer/x/GLGraphics.java
libjava/classpath/gnu/java/awt/peer/x/XEventPump.java
libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java
libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java
libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java
libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java
libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java
libjava/classpath/gnu/java/awt/peer/x/XImage.java
libjava/classpath/gnu/java/awt/peer/x/XToolkit.java
libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java
libjava/classpath/gnu/java/lang/CPStringBuilder.java [new file with mode: 0644]
libjava/classpath/gnu/java/lang/ClassHelper.java
libjava/classpath/gnu/java/lang/reflect/GenericSignatureParser.java
libjava/classpath/gnu/java/lang/reflect/TypeSignature.java
libjava/classpath/gnu/java/math/GMP.java [new file with mode: 0644]
libjava/classpath/gnu/java/net/protocol/ftp/FTPConnection.java
libjava/classpath/gnu/java/net/protocol/http/ChunkedInputStream.java
libjava/classpath/gnu/java/net/protocol/http/Cookie.java
libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java
libjava/classpath/gnu/java/net/protocol/http/Headers.java
libjava/classpath/gnu/java/net/protocol/http/LimitedLengthInputStream.java
libjava/classpath/gnu/java/net/protocol/http/Request.java
libjava/classpath/gnu/java/net/protocol/jar/Handler.java
libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java
libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java
libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java
libjava/classpath/gnu/java/rmi/server/RMIHashes.java
libjava/classpath/gnu/java/security/Engine.java
libjava/classpath/gnu/java/security/OID.java
libjava/classpath/gnu/java/security/PolicyFile.java
libjava/classpath/gnu/java/security/der/BitString.java
libjava/classpath/gnu/java/security/der/DERReader.java
libjava/classpath/gnu/java/security/hash/Whirlpool.java
libjava/classpath/gnu/java/security/jce/sig/DSSParameters.java
libjava/classpath/gnu/java/security/key/dss/DSSKey.java
libjava/classpath/gnu/java/security/key/dss/DSSPrivateKey.java
libjava/classpath/gnu/java/security/key/dss/DSSPublicKey.java
libjava/classpath/gnu/java/security/key/rsa/GnuRSAKey.java
libjava/classpath/gnu/java/security/key/rsa/GnuRSAPrivateKey.java
libjava/classpath/gnu/java/security/key/rsa/GnuRSAPublicKey.java
libjava/classpath/gnu/java/security/provider/X509CertificateFactory.java
libjava/classpath/gnu/java/security/util/ByteArray.java
libjava/classpath/gnu/java/security/util/Util.java
libjava/classpath/gnu/java/security/x509/PolicyNodeImpl.java
libjava/classpath/gnu/java/security/x509/Util.java
libjava/classpath/gnu/java/security/x509/X500DistinguishedName.java
libjava/classpath/gnu/java/text/AttributedFormatBuffer.java
libjava/classpath/gnu/java/text/StringFormatBuffer.java
libjava/classpath/gnu/java/util/Base64.java
libjava/classpath/gnu/java/util/EmptyEnumeration.java
libjava/classpath/gnu/java/util/prefs/EventDispatcher.java [deleted file]
libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java
libjava/classpath/gnu/java/util/prefs/NodeWriter.java
libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java
libjava/classpath/gnu/java/util/regex/BacktrackStack.java
libjava/classpath/gnu/java/util/regex/CharIndexed.java
libjava/classpath/gnu/java/util/regex/CharIndexedCharArray.java
libjava/classpath/gnu/java/util/regex/CharIndexedCharSequence.java
libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java
libjava/classpath/gnu/java/util/regex/CharIndexedString.java
libjava/classpath/gnu/java/util/regex/CharIndexedStringBuffer.java
libjava/classpath/gnu/java/util/regex/RE.java
libjava/classpath/gnu/java/util/regex/REException.java
libjava/classpath/gnu/java/util/regex/REFilterInputStream.java
libjava/classpath/gnu/java/util/regex/REMatch.java
libjava/classpath/gnu/java/util/regex/REMatchEnumeration.java
libjava/classpath/gnu/java/util/regex/RESyntax.java
libjava/classpath/gnu/java/util/regex/REToken.java
libjava/classpath/gnu/java/util/regex/RETokenAny.java
libjava/classpath/gnu/java/util/regex/RETokenBackRef.java
libjava/classpath/gnu/java/util/regex/RETokenChar.java
libjava/classpath/gnu/java/util/regex/RETokenEnd.java
libjava/classpath/gnu/java/util/regex/RETokenEndOfPreviousMatch.java
libjava/classpath/gnu/java/util/regex/RETokenEndSub.java
libjava/classpath/gnu/java/util/regex/RETokenIndependent.java
libjava/classpath/gnu/java/util/regex/RETokenLookAhead.java
libjava/classpath/gnu/java/util/regex/RETokenLookBehind.java
libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java
libjava/classpath/gnu/java/util/regex/RETokenOneOf.java
libjava/classpath/gnu/java/util/regex/RETokenPOSIX.java
libjava/classpath/gnu/java/util/regex/RETokenRange.java
libjava/classpath/gnu/java/util/regex/RETokenRepeated.java
libjava/classpath/gnu/java/util/regex/RETokenStart.java
libjava/classpath/gnu/java/util/regex/RETokenWordBoundary.java
libjava/classpath/gnu/java/util/regex/UncheckedRE.java
libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java [new file with mode: 0644]
libjava/classpath/gnu/javax/activation/viewers/TextEditor.java [new file with mode: 0644]
libjava/classpath/gnu/javax/activation/viewers/TextViewer.java [new file with mode: 0644]
libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java
libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java
libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java
libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java
libjava/classpath/gnu/javax/crypto/mode/BaseMode.java
libjava/classpath/gnu/javax/crypto/pad/BasePad.java
libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java
libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java
libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java
libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java
libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java
libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java
libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java
libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java
libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriter.java
libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriterSpi.java
libjava/classpath/gnu/javax/management/Server.java
libjava/classpath/gnu/javax/management/Translator.java
libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java
libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java
libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java
libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java
libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java
libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java
libjava/classpath/gnu/javax/net/ssl/Session.java
libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java
libjava/classpath/gnu/javax/net/ssl/provider/Util.java
libjava/classpath/gnu/javax/print/ipp/IppRequest.java
libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java
libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java
libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java
libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java
libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java
libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java
libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java
libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java
libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java
libjava/classpath/gnu/xml/dom/DomAttr.java
libjava/classpath/gnu/xml/dom/DomDocument.java
libjava/classpath/gnu/xml/dom/DomElement.java
libjava/classpath/gnu/xml/dom/DomEvent.java
libjava/classpath/gnu/xml/dom/DomNode.java
libjava/classpath/gnu/xml/dom/DomNsNode.java
libjava/classpath/gnu/xml/dom/DomText.java
libjava/classpath/gnu/xml/dom/ls/DomLSInput.java
libjava/classpath/gnu/xml/dom/ls/DomLSParser.java
libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeAttr.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeCharacterData.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocument.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentType.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeElement.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntity.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeNode.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeNotation.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeText.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java
libjava/classpath/gnu/xml/stream/XMLEventImpl.java
libjava/classpath/gnu/xml/stream/XMLParser.java
libjava/classpath/gnu/xml/transform/AbstractNumberNode.java
libjava/classpath/gnu/xml/transform/ApplyTemplatesNode.java
libjava/classpath/gnu/xml/transform/AttributeNode.java
libjava/classpath/gnu/xml/transform/Bindings.java
libjava/classpath/gnu/xml/transform/CallTemplateNode.java
libjava/classpath/gnu/xml/transform/ChooseNode.java
libjava/classpath/gnu/xml/transform/CopyNode.java
libjava/classpath/gnu/xml/transform/CopyOfNode.java
libjava/classpath/gnu/xml/transform/ElementNode.java
libjava/classpath/gnu/xml/transform/ForEachNode.java
libjava/classpath/gnu/xml/transform/IfNode.java
libjava/classpath/gnu/xml/transform/MessageNode.java
libjava/classpath/gnu/xml/transform/ParameterNode.java
libjava/classpath/gnu/xml/transform/ProcessingInstructionNode.java
libjava/classpath/gnu/xml/transform/SortKey.java
libjava/classpath/gnu/xml/transform/StreamSerializer.java
libjava/classpath/gnu/xml/transform/Stylesheet.java
libjava/classpath/gnu/xml/transform/Template.java
libjava/classpath/gnu/xml/transform/TemplateNode.java
libjava/classpath/gnu/xml/transform/TemplatesImpl.java
libjava/classpath/gnu/xml/transform/TextNode.java
libjava/classpath/gnu/xml/transform/TransformerImpl.java
libjava/classpath/gnu/xml/transform/TransformerOutputProperties.java
libjava/classpath/gnu/xml/transform/UnparsedEntityUriFunction.java
libjava/classpath/gnu/xml/transform/ValueOfNode.java
libjava/classpath/gnu/xml/transform/WhenNode.java
libjava/classpath/gnu/xml/transform/XSLComparator.java
libjava/classpath/gnu/xml/transform/XSLURIResolver.java
libjava/classpath/gnu/xml/util/DoParse.java
libjava/classpath/gnu/xml/util/XCat.java
libjava/classpath/gnu/xml/util/XMLWriter.java
libjava/classpath/gnu/xml/validation/datatype/EntitiesType.java
libjava/classpath/gnu/xml/validation/datatype/NMTokensType.java
libjava/classpath/gnu/xml/xpath/ArithmeticExpr.java
libjava/classpath/gnu/xml/xpath/BooleanFunction.java
libjava/classpath/gnu/xml/xpath/CeilingFunction.java
libjava/classpath/gnu/xml/xpath/ConcatFunction.java
libjava/classpath/gnu/xml/xpath/ContainsFunction.java
libjava/classpath/gnu/xml/xpath/CountFunction.java
libjava/classpath/gnu/xml/xpath/DocumentOrderComparator.java
libjava/classpath/gnu/xml/xpath/EqualityExpr.java
libjava/classpath/gnu/xml/xpath/Expr.java
libjava/classpath/gnu/xml/xpath/FloorFunction.java
libjava/classpath/gnu/xml/xpath/Function.java
libjava/classpath/gnu/xml/xpath/FunctionCall.java
libjava/classpath/gnu/xml/xpath/IdFunction.java
libjava/classpath/gnu/xml/xpath/LangFunction.java
libjava/classpath/gnu/xml/xpath/LocalNameFunction.java
libjava/classpath/gnu/xml/xpath/NameFunction.java
libjava/classpath/gnu/xml/xpath/NamespaceUriFunction.java
libjava/classpath/gnu/xml/xpath/NormalizeSpaceFunction.java
libjava/classpath/gnu/xml/xpath/NotFunction.java
libjava/classpath/gnu/xml/xpath/NumberFunction.java
libjava/classpath/gnu/xml/xpath/ParenthesizedExpr.java
libjava/classpath/gnu/xml/xpath/Path.java
libjava/classpath/gnu/xml/xpath/Root.java
libjava/classpath/gnu/xml/xpath/RoundFunction.java
libjava/classpath/gnu/xml/xpath/Selector.java
libjava/classpath/gnu/xml/xpath/StartsWithFunction.java
libjava/classpath/gnu/xml/xpath/Steps.java
libjava/classpath/gnu/xml/xpath/StringFunction.java
libjava/classpath/gnu/xml/xpath/StringLengthFunction.java
libjava/classpath/gnu/xml/xpath/SubstringAfterFunction.java
libjava/classpath/gnu/xml/xpath/SubstringBeforeFunction.java
libjava/classpath/gnu/xml/xpath/SubstringFunction.java
libjava/classpath/gnu/xml/xpath/SumFunction.java
libjava/classpath/gnu/xml/xpath/TranslateFunction.java
libjava/classpath/gnu/xml/xpath/UnionExpr.java
libjava/classpath/gnu/xml/xpath/VariableReference.java
libjava/classpath/gnu/xml/xpath/XPathParser.java
libjava/classpath/gnu/xml/xpath/XPathParser.y
libjava/classpath/gnu/xml/xpath/XPathTokenizer.java
libjava/classpath/include/Makefile.am
libjava/classpath/include/Makefile.in
libjava/classpath/include/config.h.in
libjava/classpath/include/gnu_java_math_GMP.h [new file with mode: 0644]
libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h
libjava/classpath/include/java_io_VMFile.h
libjava/classpath/include/java_net_VMNetworkInterface.h
libjava/classpath/include/jni.h
libjava/classpath/java/awt/AlphaComposite.java
libjava/classpath/java/awt/Component.java
libjava/classpath/java/awt/Container.java
libjava/classpath/java/awt/JobAttributes.java
libjava/classpath/java/awt/MouseInfo.java
libjava/classpath/java/awt/datatransfer/MimeType.java
libjava/classpath/java/awt/event/ActionEvent.java
libjava/classpath/java/awt/event/ComponentEvent.java
libjava/classpath/java/awt/event/HierarchyEvent.java
libjava/classpath/java/awt/event/InputEvent.java
libjava/classpath/java/awt/event/InputMethodEvent.java
libjava/classpath/java/awt/event/KeyEvent.java
libjava/classpath/java/awt/event/MouseEvent.java
libjava/classpath/java/awt/event/WindowEvent.java
libjava/classpath/java/awt/font/TextLayout.java
libjava/classpath/java/awt/image/BandedSampleModel.java
libjava/classpath/java/awt/image/BufferedImage.java
libjava/classpath/java/awt/image/ColorModel.java
libjava/classpath/java/awt/image/ComponentColorModel.java
libjava/classpath/java/awt/image/DirectColorModel.java
libjava/classpath/java/awt/image/MultiPixelPackedSampleModel.java
libjava/classpath/java/awt/image/Raster.java
libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java
libjava/classpath/java/awt/image/WritableRaster.java
libjava/classpath/java/beans/Statement.java
libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java
libjava/classpath/java/io/BufferedReader.java
libjava/classpath/java/io/DataInputStream.java
libjava/classpath/java/io/File.java
libjava/classpath/java/io/StreamTokenizer.java
libjava/classpath/java/lang/AbstractStringBuffer.java [new file with mode: 0644]
libjava/classpath/java/lang/Byte.java
libjava/classpath/java/lang/Character.java
libjava/classpath/java/lang/ClassLoader.java
libjava/classpath/java/lang/Double.java
libjava/classpath/java/lang/Enum.java
libjava/classpath/java/lang/Float.java
libjava/classpath/java/lang/InheritableThreadLocal.java
libjava/classpath/java/lang/Integer.java
libjava/classpath/java/lang/Long.java
libjava/classpath/java/lang/Short.java
libjava/classpath/java/lang/String.java
libjava/classpath/java/lang/StringBuffer.java
libjava/classpath/java/lang/StringBuilder.java
libjava/classpath/java/lang/Thread.java
libjava/classpath/java/lang/ThreadLocal.java
libjava/classpath/java/lang/ThreadLocalMap.java [new file with mode: 0644]
libjava/classpath/java/lang/Throwable.java
libjava/classpath/java/lang/reflect/AccessibleObject.java
libjava/classpath/java/lang/reflect/Constructor.java [new file with mode: 0644]
libjava/classpath/java/lang/reflect/Field.java [new file with mode: 0644]
libjava/classpath/java/lang/reflect/Method.java [new file with mode: 0644]
libjava/classpath/java/lang/reflect/Modifier.java
libjava/classpath/java/lang/reflect/Proxy.java
libjava/classpath/java/math/BigDecimal.java
libjava/classpath/java/math/BigInteger.java
libjava/classpath/java/net/Inet4Address.java
libjava/classpath/java/net/Inet6Address.java
libjava/classpath/java/net/NetworkInterface.java
libjava/classpath/java/net/SocketPermission.java
libjava/classpath/java/net/URI.java
libjava/classpath/java/net/URLClassLoader.java
libjava/classpath/java/net/URLDecoder.java
libjava/classpath/java/net/URLEncoder.java
libjava/classpath/java/net/URLStreamHandler.java
libjava/classpath/java/nio/Buffer.java
libjava/classpath/java/nio/ByteBuffer.java
libjava/classpath/java/nio/ByteBufferImpl.java
libjava/classpath/java/nio/CharBuffer.java
libjava/classpath/java/nio/CharBufferImpl.java
libjava/classpath/java/nio/CharSequenceBuffer.java
libjava/classpath/java/nio/CharViewBufferImpl.java
libjava/classpath/java/nio/DirectByteBufferImpl.java
libjava/classpath/java/nio/DoubleBuffer.java
libjava/classpath/java/nio/DoubleBufferImpl.java
libjava/classpath/java/nio/DoubleViewBufferImpl.java
libjava/classpath/java/nio/FloatBuffer.java
libjava/classpath/java/nio/FloatBufferImpl.java
libjava/classpath/java/nio/FloatViewBufferImpl.java
libjava/classpath/java/nio/IntBuffer.java
libjava/classpath/java/nio/IntBufferImpl.java
libjava/classpath/java/nio/IntViewBufferImpl.java
libjava/classpath/java/nio/LongBuffer.java
libjava/classpath/java/nio/LongBufferImpl.java
libjava/classpath/java/nio/LongViewBufferImpl.java
libjava/classpath/java/nio/MappedByteBuffer.java
libjava/classpath/java/nio/MappedByteBufferImpl.java
libjava/classpath/java/nio/ShortBuffer.java
libjava/classpath/java/nio/ShortBufferImpl.java
libjava/classpath/java/nio/ShortViewBufferImpl.java
libjava/classpath/java/nio/channels/FileLock.java
libjava/classpath/java/rmi/activation/Activatable.java
libjava/classpath/java/rmi/dgc/VMID.java
libjava/classpath/java/security/AlgorithmParameterGenerator.java
libjava/classpath/java/security/AlgorithmParameters.java
libjava/classpath/java/security/CodeSource.java
libjava/classpath/java/security/KeyFactory.java
libjava/classpath/java/security/KeyPairGenerator.java
libjava/classpath/java/security/MessageDigest.java
libjava/classpath/java/security/Permission.java
libjava/classpath/java/security/PermissionCollection.java
libjava/classpath/java/security/ProtectionDomain.java
libjava/classpath/java/security/SecureRandom.java
libjava/classpath/java/security/Signature.java
libjava/classpath/java/security/cert/CertPath.java
libjava/classpath/java/security/cert/CertPathBuilder.java
libjava/classpath/java/security/cert/CertPathValidator.java
libjava/classpath/java/security/cert/CertStore.java
libjava/classpath/java/security/cert/PKIXBuilderParameters.java
libjava/classpath/java/security/cert/PKIXCertPathBuilderResult.java
libjava/classpath/java/security/cert/PolicyQualifierInfo.java
libjava/classpath/java/security/cert/X509CRLSelector.java
libjava/classpath/java/security/cert/X509CertSelector.java
libjava/classpath/java/text/AttributedString.java
libjava/classpath/java/text/ChoiceFormat.java
libjava/classpath/java/text/CollationElementIterator.java
libjava/classpath/java/text/Collator.java
libjava/classpath/java/text/DateFormat.java
libjava/classpath/java/text/DateFormatSymbols.java
libjava/classpath/java/text/DecimalFormat.java
libjava/classpath/java/text/DecimalFormatSymbols.java
libjava/classpath/java/text/Format.java
libjava/classpath/java/text/MessageFormat.java
libjava/classpath/java/text/NumberFormat.java
libjava/classpath/java/text/RuleBasedCollator.java
libjava/classpath/java/text/SimpleDateFormat.java
libjava/classpath/java/util/AbstractCollection.java
libjava/classpath/java/util/AbstractMap.java
libjava/classpath/java/util/ArrayList.java
libjava/classpath/java/util/Arrays.java
libjava/classpath/java/util/BitSet.java
libjava/classpath/java/util/Calendar.java
libjava/classpath/java/util/Collections.java
libjava/classpath/java/util/Currency.java
libjava/classpath/java/util/Date.java
libjava/classpath/java/util/Formatter.java
libjava/classpath/java/util/Hashtable.java
libjava/classpath/java/util/Locale.java
libjava/classpath/java/util/Properties.java
libjava/classpath/java/util/PropertyResourceBundle.java
libjava/classpath/java/util/ResourceBundle.java
libjava/classpath/java/util/Scanner.java [new file with mode: 0644]
libjava/classpath/java/util/Stack.java
libjava/classpath/java/util/TimeZone.java
libjava/classpath/java/util/TreeMap.java
libjava/classpath/java/util/Vector.java
libjava/classpath/java/util/logging/FileHandler.java
libjava/classpath/java/util/logging/Logger.java
libjava/classpath/java/util/logging/SimpleFormatter.java
libjava/classpath/java/util/logging/XMLFormatter.java
libjava/classpath/java/util/prefs/AbstractPreferences.java
libjava/classpath/java/util/regex/Matcher.java
libjava/classpath/java/util/regex/Pattern.java
libjava/classpath/java/util/regex/PatternSyntaxException.java
libjava/classpath/java/util/zip/Deflater.java
libjava/classpath/java/util/zip/Inflater.java
libjava/classpath/java/util/zip/ZipEntry.java
libjava/classpath/java/util/zip/ZipFile.java
libjava/classpath/javax/accessibility/AccessibleRelationSet.java
libjava/classpath/javax/accessibility/AccessibleStateSet.java
libjava/classpath/javax/activation/ActivationDataFlavor.java [new file with mode: 0644]
libjava/classpath/javax/activation/CommandInfo.java [new file with mode: 0644]
libjava/classpath/javax/activation/CommandMap.java [new file with mode: 0644]
libjava/classpath/javax/activation/CommandObject.java [new file with mode: 0644]
libjava/classpath/javax/activation/DataContentHandler.java [new file with mode: 0644]
libjava/classpath/javax/activation/DataContentHandlerFactory.java [new file with mode: 0644]
libjava/classpath/javax/activation/DataHandler.java [new file with mode: 0644]
libjava/classpath/javax/activation/DataHandlerDataSource.java [new file with mode: 0644]
libjava/classpath/javax/activation/DataSource.java [new file with mode: 0644]
libjava/classpath/javax/activation/DataSourceDataContentHandler.java [new file with mode: 0644]
libjava/classpath/javax/activation/FileDataSource.java [new file with mode: 0644]
libjava/classpath/javax/activation/FileTypeMap.java [new file with mode: 0644]
libjava/classpath/javax/activation/MailcapCommandMap.java [new file with mode: 0644]
libjava/classpath/javax/activation/MimeType.java [new file with mode: 0644]
libjava/classpath/javax/activation/MimeTypeParameterList.java [new file with mode: 0644]
libjava/classpath/javax/activation/MimeTypeParseException.java [new file with mode: 0644]
libjava/classpath/javax/activation/MimetypesFileTypeMap.java [new file with mode: 0644]
libjava/classpath/javax/activation/ObjectDataContentHandler.java [new file with mode: 0644]
libjava/classpath/javax/activation/URLDataSource.java [new file with mode: 0644]
libjava/classpath/javax/activation/UnsupportedDataTypeException.java [new file with mode: 0644]
libjava/classpath/javax/activation/package.html [new file with mode: 0644]
libjava/classpath/javax/imageio/ImageIO.java
libjava/classpath/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java
libjava/classpath/javax/imageio/plugins/jpeg/JPEGQTable.java
libjava/classpath/javax/imageio/stream/ImageInputStreamImpl.java
libjava/classpath/javax/management/DefaultLoaderRepository.java
libjava/classpath/javax/management/JMX.java
libjava/classpath/javax/management/MBeanAttributeInfo.java
libjava/classpath/javax/management/MBeanConstructorInfo.java
libjava/classpath/javax/management/MBeanOperationInfo.java
libjava/classpath/javax/management/MBeanPermission.java
libjava/classpath/javax/management/MBeanServerDelegate.java
libjava/classpath/javax/management/MBeanServerFactory.java
libjava/classpath/javax/management/MBeanServerInvocationHandler.java
libjava/classpath/javax/management/MBeanServerPermission.java
libjava/classpath/javax/management/ObjectName.java
libjava/classpath/javax/management/StandardMBean.java
libjava/classpath/javax/management/openmbean/ArrayType.java
libjava/classpath/javax/management/openmbean/CompositeDataSupport.java
libjava/classpath/javax/management/openmbean/CompositeType.java
libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java
libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java
libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java
libjava/classpath/javax/management/openmbean/SimpleType.java
libjava/classpath/javax/management/openmbean/TabularDataSupport.java
libjava/classpath/javax/management/openmbean/TabularType.java
libjava/classpath/javax/management/remote/rmi/RMIConnection.java
libjava/classpath/javax/naming/BinaryRefAddr.java
libjava/classpath/javax/naming/CompositeName.java
libjava/classpath/javax/naming/CompoundName.java
libjava/classpath/javax/naming/NamingException.java
libjava/classpath/javax/naming/spi/NamingManager.java
libjava/classpath/javax/security/auth/x500/X500Principal.java
libjava/classpath/javax/security/sasl/SaslException.java
libjava/classpath/javax/sound/sampled/AudioFormat.java
libjava/classpath/javax/sound/sampled/CompoundControl.java
libjava/classpath/javax/sound/sampled/DataLine.java
libjava/classpath/javax/swing/AbstractButton.java
libjava/classpath/javax/swing/JButton.java
libjava/classpath/javax/swing/JComboBox.java
libjava/classpath/javax/swing/JComponent.java
libjava/classpath/javax/swing/JDesktopPane.java
libjava/classpath/javax/swing/JFileChooser.java
libjava/classpath/javax/swing/JFrame.java
libjava/classpath/javax/swing/JLabel.java
libjava/classpath/javax/swing/JList.java
libjava/classpath/javax/swing/JMenuBar.java
libjava/classpath/javax/swing/JPopupMenu.java
libjava/classpath/javax/swing/JProgressBar.java
libjava/classpath/javax/swing/JScrollBar.java
libjava/classpath/javax/swing/JSlider.java
libjava/classpath/javax/swing/JSplitPane.java
libjava/classpath/javax/swing/JTabbedPane.java
libjava/classpath/javax/swing/JToolBar.java
libjava/classpath/javax/swing/JToolTip.java
libjava/classpath/javax/swing/UIManager.java
libjava/classpath/javax/swing/event/EventListenerList.java
libjava/classpath/javax/swing/table/AbstractTableModel.java
libjava/classpath/javax/swing/text/AbstractDocument.java
libjava/classpath/javax/swing/text/DefaultEditorKit.java
libjava/classpath/javax/swing/text/DefaultStyledDocument.java
libjava/classpath/javax/swing/text/JTextComponent.java
libjava/classpath/javax/swing/text/MaskFormatter.java
libjava/classpath/javax/swing/text/TabSet.java
libjava/classpath/javax/swing/text/html/CSSParser.java
libjava/classpath/javax/swing/text/html/HTMLWriter.java
libjava/classpath/javax/swing/text/html/StyleSheet.java
libjava/classpath/javax/swing/text/html/ViewAttributeSet.java
libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java
libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java
libjava/classpath/javax/tools/FileObject.java
libjava/classpath/javax/xml/datatype/DatatypeFactory.java
libjava/classpath/javax/xml/namespace/NamespaceContext.java
libjava/classpath/javax/xml/namespace/QName.java
libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java
libjava/classpath/javax/xml/parsers/SAXParserFactory.java
libjava/classpath/javax/xml/stream/XMLEventFactory.java
libjava/classpath/javax/xml/stream/XMLEventReader.java
libjava/classpath/javax/xml/stream/XMLInputFactory.java
libjava/classpath/javax/xml/stream/XMLOutputFactory.java
libjava/classpath/javax/xml/stream/events/DTD.java
libjava/classpath/javax/xml/stream/events/EndElement.java
libjava/classpath/javax/xml/stream/events/StartElement.java
libjava/classpath/javax/xml/transform/TransformerException.java
libjava/classpath/javax/xml/transform/TransformerFactory.java
libjava/classpath/javax/xml/validation/SchemaFactory.java
libjava/classpath/javax/xml/xpath/XPathFactory.java
libjava/classpath/javax/xml/xpath/XPathFunction.java
libjava/classpath/lib/Makefile.am
libjava/classpath/lib/Makefile.in
libjava/classpath/lib/copy-vmresources.sh.in
libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class
libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class
libjava/classpath/lib/gnu/CORBA/CDR/Vio.class
libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.class
libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Entry.class
libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Redirection.class
libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime.class
libjava/classpath/lib/gnu/CORBA/GIOP/MessageHeader.class
libjava/classpath/lib/gnu/CORBA/GIOP/RequestHeader.class
libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class
libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/RequestHeader.class
libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.class
libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile.class
libjava/classpath/lib/gnu/CORBA/IOR$Internet_profile.class
libjava/classpath/lib/gnu/CORBA/IOR.class
libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class
libjava/classpath/lib/gnu/CORBA/NamingService/NameTransformer.class
libjava/classpath/lib/gnu/CORBA/OrbFunctional.class
libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.class
libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.class
libjava/classpath/lib/gnu/CORBA/Poa/gnuServantObject.class
libjava/classpath/lib/gnu/classpath/Configuration.class
libjava/classpath/lib/gnu/classpath/SystemProperties.class
libjava/classpath/lib/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.class
libjava/classpath/lib/gnu/classpath/jdwp/util/Signature.class
libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class
libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class
libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class
libjava/classpath/lib/gnu/java/awt/font/autofit/Edge.class
libjava/classpath/lib/gnu/java/awt/font/autofit/LatinBlue.class
libjava/classpath/lib/gnu/java/awt/font/autofit/Segment.class
libjava/classpath/lib/gnu/java/awt/font/autofit/Width.class
libjava/classpath/lib/gnu/java/awt/font/opentype/GlyphNamer.class
libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Fixed.class
libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Point.class
libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/VirtualMachine.class
libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
libjava/classpath/lib/gnu/java/awt/java2d/ActiveEdges.class
libjava/classpath/lib/gnu/java/awt/java2d/RasterGraphics.class
libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
libjava/classpath/lib/gnu/java/awt/peer/GnomeDesktopPeer.class
libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboard.class
libjava/classpath/lib/gnu/java/lang/CPStringBuilder.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/lang/ClassHelper.class
libjava/classpath/lib/gnu/java/lang/VMCPStringBuilder.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/lang/reflect/GenericArrayTypeImpl.class
libjava/classpath/lib/gnu/java/lang/reflect/GenericSignatureParser.class
libjava/classpath/lib/gnu/java/lang/reflect/ParameterizedTypeImpl.class
libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class
libjava/classpath/lib/gnu/java/lang/reflect/TypeVariableImpl.class
libjava/classpath/lib/gnu/java/lang/reflect/UnresolvedTypeVariable.class
libjava/classpath/lib/gnu/java/lang/reflect/WildcardTypeImpl.class
libjava/classpath/lib/gnu/java/locale/LocaleData.class
libjava/classpath/lib/gnu/java/math/GMP.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPConnection.class
libjava/classpath/lib/gnu/java/net/protocol/http/ChunkedInputStream.class
libjava/classpath/lib/gnu/java/net/protocol/http/Cookie.class
libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.class
libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool.class
libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection.class
libjava/classpath/lib/gnu/java/net/protocol/http/Headers$HeaderElement.class
libjava/classpath/lib/gnu/java/net/protocol/http/Headers.class
libjava/classpath/lib/gnu/java/net/protocol/http/LimitedLengthInputStream.class
libjava/classpath/lib/gnu/java/net/protocol/http/Request.class
libjava/classpath/lib/gnu/java/net/protocol/jar/Handler.class
libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class
libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class
libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class
libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class
libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class
libjava/classpath/lib/gnu/java/rmi/server/RMIHashes.class
libjava/classpath/lib/gnu/java/security/Engine.class
libjava/classpath/lib/gnu/java/security/OID.class
libjava/classpath/lib/gnu/java/security/PolicyFile$1.class
libjava/classpath/lib/gnu/java/security/PolicyFile.class
libjava/classpath/lib/gnu/java/security/der/BitString.class
libjava/classpath/lib/gnu/java/security/der/DERReader.class
libjava/classpath/lib/gnu/java/security/hash/Whirlpool.class
libjava/classpath/lib/gnu/java/security/jce/sig/DSSParameters.class
libjava/classpath/lib/gnu/java/security/key/dss/DSSKey.class
libjava/classpath/lib/gnu/java/security/key/dss/DSSPrivateKey.class
libjava/classpath/lib/gnu/java/security/key/dss/DSSPublicKey.class
libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAKey.class
libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPrivateKey.class
libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPublicKey.class
libjava/classpath/lib/gnu/java/security/provider/X509CertificateFactory.class
libjava/classpath/lib/gnu/java/security/util/ByteArray.class
libjava/classpath/lib/gnu/java/security/util/Util.class
libjava/classpath/lib/gnu/java/security/x509/PolicyNodeImpl.class
libjava/classpath/lib/gnu/java/security/x509/Util.class
libjava/classpath/lib/gnu/java/security/x509/X500DistinguishedName.class
libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class
libjava/classpath/lib/gnu/java/text/StringFormatBuffer.class
libjava/classpath/lib/gnu/java/util/Base64.class
libjava/classpath/lib/gnu/java/util/EmptyEnumeration.class
libjava/classpath/lib/gnu/java/util/prefs/EventDispatcher.class [deleted file]
libjava/classpath/lib/gnu/java/util/prefs/GConfBasedPreferences.class
libjava/classpath/lib/gnu/java/util/prefs/NodeWriter.class
libjava/classpath/lib/gnu/java/util/prefs/gconf/GConfNativePeer.class
libjava/classpath/lib/gnu/java/util/regex/BacktrackStack$Backtrack.class
libjava/classpath/lib/gnu/java/util/regex/BacktrackStack.class
libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharArray.class
libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharSequence.class
libjava/classpath/lib/gnu/java/util/regex/CharIndexedInputStream.class
libjava/classpath/lib/gnu/java/util/regex/CharIndexedString.class
libjava/classpath/lib/gnu/java/util/regex/CharIndexedStringBuffer.class
libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class
libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class
libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class
libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class
libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class
libjava/classpath/lib/gnu/java/util/regex/RE.class
libjava/classpath/lib/gnu/java/util/regex/REException.class
libjava/classpath/lib/gnu/java/util/regex/REFilterInputStream.class
libjava/classpath/lib/gnu/java/util/regex/REMatch.class
libjava/classpath/lib/gnu/java/util/regex/REMatchEnumeration.class
libjava/classpath/lib/gnu/java/util/regex/RESyntax.class
libjava/classpath/lib/gnu/java/util/regex/REToken.class
libjava/classpath/lib/gnu/java/util/regex/RETokenAny.class
libjava/classpath/lib/gnu/java/util/regex/RETokenBackRef.class
libjava/classpath/lib/gnu/java/util/regex/RETokenChar.class
libjava/classpath/lib/gnu/java/util/regex/RETokenEnd.class
libjava/classpath/lib/gnu/java/util/regex/RETokenEndOfPreviousMatch.class
libjava/classpath/lib/gnu/java/util/regex/RETokenEndSub.class
libjava/classpath/lib/gnu/java/util/regex/RETokenIndependent.class
libjava/classpath/lib/gnu/java/util/regex/RETokenLookAhead.class
libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.class
libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class
libjava/classpath/lib/gnu/java/util/regex/RETokenOneOf.class
libjava/classpath/lib/gnu/java/util/regex/RETokenPOSIX.class
libjava/classpath/lib/gnu/java/util/regex/RETokenRange.class
libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$DoablesFinder.class
libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControl.class
libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.class [deleted file]
libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$StackedInfo.class
libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.class
libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated.class
libjava/classpath/lib/gnu/java/util/regex/RETokenStart.class
libjava/classpath/lib/gnu/java/util/regex/RETokenWordBoundary.class
libjava/classpath/lib/gnu/java/util/regex/UncheckedRE.class
libjava/classpath/lib/gnu/javax/activation/viewers/ImageViewer.class [new file with mode: 0644]
libjava/classpath/lib/gnu/javax/activation/viewers/TextEditor.class [new file with mode: 0644]
libjava/classpath/lib/gnu/javax/activation/viewers/TextViewer.class [new file with mode: 0644]
libjava/classpath/lib/gnu/javax/crypto/assembly/TransformerException.class
libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class
libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParameters.class
libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementException.class
libjava/classpath/lib/gnu/javax/crypto/mode/BaseMode.class
libjava/classpath/lib/gnu/javax/crypto/pad/BasePad.class
libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Util.class
libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/PasswordFile.class
libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PasswordFile.class
libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainClient.class
libjava/classpath/lib/gnu/javax/crypto/sasl/srp/PasswordFile.class
libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPClient.class
libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPServer.class
libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ServerStore.class
libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriter.class
libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriterSpi.class
libjava/classpath/lib/gnu/javax/management/Server$LazyListenersHolder.class [new file with mode: 0644]
libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class
libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class
libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class
libjava/classpath/lib/gnu/javax/management/Server.class
libjava/classpath/lib/gnu/javax/management/Translator.class
libjava/classpath/lib/gnu/javax/naming/giop/CorbalocParser.class
libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory$1.class
libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory.class
libjava/classpath/lib/gnu/javax/naming/giop/ListBindingsEnumeration.class
libjava/classpath/lib/gnu/javax/naming/giop/ListEnumeration.class
libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.class
libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName.class
libjava/classpath/lib/gnu/javax/net/ssl/PrivateCredentials.class
libjava/classpath/lib/gnu/javax/net/ssl/Session$ID.class
libjava/classpath/lib/gnu/javax/net/ssl/Session.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/HelloRequest.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$1.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$2.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$WrappedBuffer.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/Util.class
libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class
libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class
libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$1.class
libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$2.class
libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities.class
libjava/classpath/lib/gnu/javax/security/auth/callback/AWTCallbackHandler.class
libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileTokenizer.class
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class
libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator$hTag.class
libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator.class
libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/list.class
libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/node.class
libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$1.class
libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$2.class
libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class
libjava/classpath/lib/gnu/xml/dom/DomAttr.class
libjava/classpath/lib/gnu/xml/dom/DomDocument.class
libjava/classpath/lib/gnu/xml/dom/DomElement.class
libjava/classpath/lib/gnu/xml/dom/DomEvent$DomMutationEvent.class
libjava/classpath/lib/gnu/xml/dom/DomEvent$DomUIEvent.class
libjava/classpath/lib/gnu/xml/dom/DomEvent.class
libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class
libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class
libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class
libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class
libjava/classpath/lib/gnu/xml/dom/DomNode.class
libjava/classpath/lib/gnu/xml/dom/DomNsNode.class
libjava/classpath/lib/gnu/xml/dom/DomText.class
libjava/classpath/lib/gnu/xml/dom/ls/DomLSInput.class
libjava/classpath/lib/gnu/xml/dom/ls/DomLSParser.class
libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeAttr.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCharacterData.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocument.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentType.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeElement.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntity.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNode.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNotation.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeText.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class
libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
libjava/classpath/lib/gnu/xml/stream/XMLParser.class
libjava/classpath/lib/gnu/xml/transform/AbstractNumberNode.class
libjava/classpath/lib/gnu/xml/transform/ApplyTemplatesNode.class
libjava/classpath/lib/gnu/xml/transform/AttributeNode.class
libjava/classpath/lib/gnu/xml/transform/Bindings.class
libjava/classpath/lib/gnu/xml/transform/CallTemplateNode.class
libjava/classpath/lib/gnu/xml/transform/ChooseNode.class
libjava/classpath/lib/gnu/xml/transform/CopyNode.class
libjava/classpath/lib/gnu/xml/transform/CopyOfNode.class
libjava/classpath/lib/gnu/xml/transform/ElementNode.class
libjava/classpath/lib/gnu/xml/transform/ForEachNode.class
libjava/classpath/lib/gnu/xml/transform/IfNode.class
libjava/classpath/lib/gnu/xml/transform/MessageNode.class
libjava/classpath/lib/gnu/xml/transform/ParameterNode.class
libjava/classpath/lib/gnu/xml/transform/ProcessingInstructionNode.class
libjava/classpath/lib/gnu/xml/transform/SortKey.class
libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class
libjava/classpath/lib/gnu/xml/transform/Stylesheet.class
libjava/classpath/lib/gnu/xml/transform/Template.class
libjava/classpath/lib/gnu/xml/transform/TemplateNode.class
libjava/classpath/lib/gnu/xml/transform/TemplatesImpl.class
libjava/classpath/lib/gnu/xml/transform/TextNode.class
libjava/classpath/lib/gnu/xml/transform/TransformerImpl.class
libjava/classpath/lib/gnu/xml/transform/TransformerOutputProperties.class
libjava/classpath/lib/gnu/xml/transform/UnparsedEntityUriFunction.class
libjava/classpath/lib/gnu/xml/transform/ValueOfNode.class
libjava/classpath/lib/gnu/xml/transform/WhenNode.class
libjava/classpath/lib/gnu/xml/transform/XSLComparator.class
libjava/classpath/lib/gnu/xml/transform/XSLURIResolver.class
libjava/classpath/lib/gnu/xml/util/DoParse$MyErrorHandler.class
libjava/classpath/lib/gnu/xml/util/DoParse.class
libjava/classpath/lib/gnu/xml/util/XCat$Catalog.class
libjava/classpath/lib/gnu/xml/util/XCat$DoneDelegation.class
libjava/classpath/lib/gnu/xml/util/XCat$Loader.class
libjava/classpath/lib/gnu/xml/util/XCat.class
libjava/classpath/lib/gnu/xml/util/XMLWriter.class
libjava/classpath/lib/gnu/xml/validation/datatype/EntitiesType.class
libjava/classpath/lib/gnu/xml/validation/datatype/NMTokensType.class
libjava/classpath/lib/gnu/xml/xpath/ArithmeticExpr.class
libjava/classpath/lib/gnu/xml/xpath/BooleanFunction.class
libjava/classpath/lib/gnu/xml/xpath/CeilingFunction.class
libjava/classpath/lib/gnu/xml/xpath/ConcatFunction.class
libjava/classpath/lib/gnu/xml/xpath/ContainsFunction.class
libjava/classpath/lib/gnu/xml/xpath/CountFunction.class
libjava/classpath/lib/gnu/xml/xpath/DocumentOrderComparator.class
libjava/classpath/lib/gnu/xml/xpath/EqualityExpr.class
libjava/classpath/lib/gnu/xml/xpath/Expr$ExprNodeSet.class
libjava/classpath/lib/gnu/xml/xpath/Expr.class
libjava/classpath/lib/gnu/xml/xpath/FloorFunction.class
libjava/classpath/lib/gnu/xml/xpath/Function.class
libjava/classpath/lib/gnu/xml/xpath/FunctionCall.class
libjava/classpath/lib/gnu/xml/xpath/IdFunction.class
libjava/classpath/lib/gnu/xml/xpath/LangFunction.class
libjava/classpath/lib/gnu/xml/xpath/LocalNameFunction.class
libjava/classpath/lib/gnu/xml/xpath/NameFunction.class
libjava/classpath/lib/gnu/xml/xpath/NamespaceUriFunction.class
libjava/classpath/lib/gnu/xml/xpath/NormalizeSpaceFunction.class
libjava/classpath/lib/gnu/xml/xpath/NotFunction.class
libjava/classpath/lib/gnu/xml/xpath/NumberFunction.class
libjava/classpath/lib/gnu/xml/xpath/ParenthesizedExpr.class
libjava/classpath/lib/gnu/xml/xpath/Path.class
libjava/classpath/lib/gnu/xml/xpath/Root.class
libjava/classpath/lib/gnu/xml/xpath/RoundFunction.class
libjava/classpath/lib/gnu/xml/xpath/Selector.class
libjava/classpath/lib/gnu/xml/xpath/StartsWithFunction.class
libjava/classpath/lib/gnu/xml/xpath/Steps.class
libjava/classpath/lib/gnu/xml/xpath/StringFunction.class
libjava/classpath/lib/gnu/xml/xpath/StringLengthFunction.class
libjava/classpath/lib/gnu/xml/xpath/SubstringAfterFunction.class
libjava/classpath/lib/gnu/xml/xpath/SubstringBeforeFunction.class
libjava/classpath/lib/gnu/xml/xpath/SubstringFunction.class
libjava/classpath/lib/gnu/xml/xpath/SumFunction.class
libjava/classpath/lib/gnu/xml/xpath/TranslateFunction.class
libjava/classpath/lib/gnu/xml/xpath/UnionExpr.class
libjava/classpath/lib/gnu/xml/xpath/VariableReference.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser.class
libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer$XPathToken.class
libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer.class
libjava/classpath/lib/java/awt/AlphaComposite.class
libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class
libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class
libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class
libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class
libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class
libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class
libjava/classpath/lib/java/awt/Component.class
libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class
libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class
libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class
libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class
libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class
libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class
libjava/classpath/lib/java/awt/Container$GfxVisitor.class
libjava/classpath/lib/java/awt/Container.class
libjava/classpath/lib/java/awt/JobAttributes$DefaultSelectionType.class
libjava/classpath/lib/java/awt/JobAttributes$DestinationType.class
libjava/classpath/lib/java/awt/JobAttributes$DialogType.class
libjava/classpath/lib/java/awt/JobAttributes$MultipleDocumentHandlingType.class
libjava/classpath/lib/java/awt/JobAttributes$SidesType.class
libjava/classpath/lib/java/awt/JobAttributes.class
libjava/classpath/lib/java/awt/MouseInfo.class
libjava/classpath/lib/java/awt/datatransfer/MimeType.class
libjava/classpath/lib/java/awt/event/ActionEvent.class
libjava/classpath/lib/java/awt/event/ComponentEvent.class
libjava/classpath/lib/java/awt/event/HierarchyEvent.class
libjava/classpath/lib/java/awt/event/InputEvent.class
libjava/classpath/lib/java/awt/event/InputMethodEvent.class
libjava/classpath/lib/java/awt/event/KeyEvent.class
libjava/classpath/lib/java/awt/event/MouseEvent.class
libjava/classpath/lib/java/awt/event/WindowEvent.class
libjava/classpath/lib/java/awt/font/TextLayout$CaretPolicy.class
libjava/classpath/lib/java/awt/font/TextLayout$Run.class
libjava/classpath/lib/java/awt/font/TextLayout.class
libjava/classpath/lib/java/awt/image/BandedSampleModel.class
libjava/classpath/lib/java/awt/image/BufferedImage$1.class
libjava/classpath/lib/java/awt/image/BufferedImage.class
libjava/classpath/lib/java/awt/image/ColorModel.class
libjava/classpath/lib/java/awt/image/ComponentColorModel.class
libjava/classpath/lib/java/awt/image/DirectColorModel.class
libjava/classpath/lib/java/awt/image/MultiPixelPackedSampleModel.class
libjava/classpath/lib/java/awt/image/Raster.class
libjava/classpath/lib/java/awt/image/SinglePixelPackedSampleModel.class
libjava/classpath/lib/java/awt/image/WritableRaster.class
libjava/classpath/lib/java/beans/Statement.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class
libjava/classpath/lib/java/io/BufferedReader.class
libjava/classpath/lib/java/io/DataInputStream.class
libjava/classpath/lib/java/io/StreamTokenizer.class
libjava/classpath/lib/java/lang/AbstractStringBuffer.class [new file with mode: 0644]
libjava/classpath/lib/java/lang/Byte.class
libjava/classpath/lib/java/lang/ClassLoader.class
libjava/classpath/lib/java/lang/Double.class
libjava/classpath/lib/java/lang/Enum.class
libjava/classpath/lib/java/lang/Float.class
libjava/classpath/lib/java/lang/InheritableThreadLocal.class
libjava/classpath/lib/java/lang/Integer.class
libjava/classpath/lib/java/lang/Long.class
libjava/classpath/lib/java/lang/Short.class
libjava/classpath/lib/java/lang/String.class
libjava/classpath/lib/java/lang/StringBuffer.class
libjava/classpath/lib/java/lang/StringBuilder.class
libjava/classpath/lib/java/lang/Thread$State.class
libjava/classpath/lib/java/lang/Thread.class
libjava/classpath/lib/java/lang/ThreadLocal.class
libjava/classpath/lib/java/lang/ThreadLocalMap$Entry.class [new file with mode: 0644]
libjava/classpath/lib/java/lang/ThreadLocalMap.class [new file with mode: 0644]
libjava/classpath/lib/java/lang/Throwable$StaticData.class
libjava/classpath/lib/java/lang/Throwable.class
libjava/classpath/lib/java/lang/reflect/AccessibleObject.class
libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class
libjava/classpath/lib/java/lang/reflect/Proxy$ProxyData.class
libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class
libjava/classpath/lib/java/lang/reflect/Proxy$ProxyType.class
libjava/classpath/lib/java/lang/reflect/Proxy.class
libjava/classpath/lib/java/math/BigDecimal.class
libjava/classpath/lib/java/math/BigInteger.class
libjava/classpath/lib/java/net/Inet4Address.class
libjava/classpath/lib/java/net/Inet6Address.class
libjava/classpath/lib/java/net/SocketPermission.class
libjava/classpath/lib/java/net/URI.class
libjava/classpath/lib/java/net/URLClassLoader$1.class
libjava/classpath/lib/java/net/URLClassLoader$2.class
libjava/classpath/lib/java/net/URLClassLoader.class
libjava/classpath/lib/java/net/URLDecoder.class
libjava/classpath/lib/java/net/URLEncoder.class
libjava/classpath/lib/java/net/URLStreamHandler.class
libjava/classpath/lib/java/nio/Buffer.class
libjava/classpath/lib/java/nio/ByteBuffer.class
libjava/classpath/lib/java/nio/ByteBufferImpl.class
libjava/classpath/lib/java/nio/CharBuffer.class
libjava/classpath/lib/java/nio/CharBufferImpl.class
libjava/classpath/lib/java/nio/CharSequenceBuffer.class
libjava/classpath/lib/java/nio/CharViewBufferImpl.class
libjava/classpath/lib/java/nio/DirectByteBufferImpl.class
libjava/classpath/lib/java/nio/DoubleBuffer.class
libjava/classpath/lib/java/nio/DoubleBufferImpl.class
libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class
libjava/classpath/lib/java/nio/FloatBuffer.class
libjava/classpath/lib/java/nio/FloatBufferImpl.class
libjava/classpath/lib/java/nio/FloatViewBufferImpl.class
libjava/classpath/lib/java/nio/IntBuffer.class
libjava/classpath/lib/java/nio/IntBufferImpl.class
libjava/classpath/lib/java/nio/IntViewBufferImpl.class
libjava/classpath/lib/java/nio/LongBuffer.class
libjava/classpath/lib/java/nio/LongBufferImpl.class
libjava/classpath/lib/java/nio/LongViewBufferImpl.class
libjava/classpath/lib/java/nio/MappedByteBuffer.class
libjava/classpath/lib/java/nio/MappedByteBufferImpl.class
libjava/classpath/lib/java/nio/ShortBuffer.class
libjava/classpath/lib/java/nio/ShortBufferImpl.class
libjava/classpath/lib/java/nio/ShortViewBufferImpl.class
libjava/classpath/lib/java/nio/channels/FileLock.class
libjava/classpath/lib/java/rmi/activation/Activatable.class
libjava/classpath/lib/java/rmi/dgc/VMID.class
libjava/classpath/lib/java/security/AlgorithmParameterGenerator.class
libjava/classpath/lib/java/security/AlgorithmParameters.class
libjava/classpath/lib/java/security/CodeSource.class
libjava/classpath/lib/java/security/KeyFactory.class
libjava/classpath/lib/java/security/KeyPairGenerator.class
libjava/classpath/lib/java/security/MessageDigest.class
libjava/classpath/lib/java/security/Permission.class
libjava/classpath/lib/java/security/PermissionCollection.class
libjava/classpath/lib/java/security/ProtectionDomain.class
libjava/classpath/lib/java/security/SecureRandom.class
libjava/classpath/lib/java/security/Signature.class
libjava/classpath/lib/java/security/cert/CertPath$CertPathRep.class
libjava/classpath/lib/java/security/cert/CertPath.class
libjava/classpath/lib/java/security/cert/CertPathBuilder.class
libjava/classpath/lib/java/security/cert/CertPathValidator$1.class
libjava/classpath/lib/java/security/cert/CertPathValidator.class
libjava/classpath/lib/java/security/cert/CertStore$1.class
libjava/classpath/lib/java/security/cert/CertStore.class
libjava/classpath/lib/java/security/cert/PKIXBuilderParameters.class
libjava/classpath/lib/java/security/cert/PKIXCertPathBuilderResult.class
libjava/classpath/lib/java/security/cert/PolicyQualifierInfo.class
libjava/classpath/lib/java/security/cert/X509CRLSelector.class
libjava/classpath/lib/java/security/cert/X509CertSelector.class
libjava/classpath/lib/java/text/AttributedString$AttributeRange.class
libjava/classpath/lib/java/text/AttributedString.class
libjava/classpath/lib/java/text/ChoiceFormat.class
libjava/classpath/lib/java/text/CollationElementIterator.class
libjava/classpath/lib/java/text/DateFormat$Field.class
libjava/classpath/lib/java/text/DateFormat.class
libjava/classpath/lib/java/text/DateFormatSymbols.class
libjava/classpath/lib/java/text/DecimalFormat.class
libjava/classpath/lib/java/text/DecimalFormatSymbols.class
libjava/classpath/lib/java/text/Format.class
libjava/classpath/lib/java/text/MessageFormat.class
libjava/classpath/lib/java/text/NumberFormat.class
libjava/classpath/lib/java/text/RuleBasedCollator.class
libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class
libjava/classpath/lib/java/text/SimpleDateFormat.class
libjava/classpath/lib/java/util/AbstractCollection.class
libjava/classpath/lib/java/util/AbstractMap$1.class
libjava/classpath/lib/java/util/AbstractMap$2.class
libjava/classpath/lib/java/util/AbstractMap$3.class
libjava/classpath/lib/java/util/AbstractMap$4.class
libjava/classpath/lib/java/util/AbstractMap$SimpleEntry.class
libjava/classpath/lib/java/util/AbstractMap$SimpleImmutableEntry.class
libjava/classpath/lib/java/util/AbstractMap.class
libjava/classpath/lib/java/util/ArrayList.class
libjava/classpath/lib/java/util/Arrays$ArrayList.class
libjava/classpath/lib/java/util/Arrays.class
libjava/classpath/lib/java/util/BitSet.class
libjava/classpath/lib/java/util/Calendar.class
libjava/classpath/lib/java/util/Collections$1$SynchronizedMapEntry.class
libjava/classpath/lib/java/util/Collections$1.class
libjava/classpath/lib/java/util/Collections$2.class
libjava/classpath/lib/java/util/Collections$3.class
libjava/classpath/lib/java/util/Collections$4.class
libjava/classpath/lib/java/util/Collections$5.class
libjava/classpath/lib/java/util/Collections$6.class
libjava/classpath/lib/java/util/Collections$7.class
libjava/classpath/lib/java/util/Collections$8.class
libjava/classpath/lib/java/util/Collections$9.class
libjava/classpath/lib/java/util/Collections$CheckedCollection.class
libjava/classpath/lib/java/util/Collections$CheckedIterator.class
libjava/classpath/lib/java/util/Collections$CheckedList.class
libjava/classpath/lib/java/util/Collections$CheckedListIterator.class
libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class
libjava/classpath/lib/java/util/Collections$CheckedMap.class
libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class
libjava/classpath/lib/java/util/Collections$CheckedSet.class
libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class
libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class
libjava/classpath/lib/java/util/Collections$CopiesList.class
libjava/classpath/lib/java/util/Collections$EmptyList.class
libjava/classpath/lib/java/util/Collections$EmptyMap.class
libjava/classpath/lib/java/util/Collections$EmptySet.class
libjava/classpath/lib/java/util/Collections$LIFOQueue.class
libjava/classpath/lib/java/util/Collections$MapSet.class
libjava/classpath/lib/java/util/Collections$ReverseComparator.class
libjava/classpath/lib/java/util/Collections$SingletonList.class
libjava/classpath/lib/java/util/Collections$SingletonMap.class
libjava/classpath/lib/java/util/Collections$SingletonSet.class
libjava/classpath/lib/java/util/Collections$SynchronizedCollection.class
libjava/classpath/lib/java/util/Collections$SynchronizedIterator.class
libjava/classpath/lib/java/util/Collections$SynchronizedList.class
libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class
libjava/classpath/lib/java/util/Collections$SynchronizedMap.class
libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class
libjava/classpath/lib/java/util/Collections$SynchronizedSet.class
libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class
libjava/classpath/lib/java/util/Collections$SynchronizedSortedSet.class
libjava/classpath/lib/java/util/Collections$UnmodifiableCollection.class
libjava/classpath/lib/java/util/Collections$UnmodifiableIterator.class
libjava/classpath/lib/java/util/Collections$UnmodifiableList.class
libjava/classpath/lib/java/util/Collections$UnmodifiableListIterator.class
libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.class
libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class
libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class
libjava/classpath/lib/java/util/Collections$UnmodifiableRandomAccessList.class
libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class
libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class
libjava/classpath/lib/java/util/Collections$UnmodifiableSortedSet.class
libjava/classpath/lib/java/util/Collections.class
libjava/classpath/lib/java/util/Currency.class
libjava/classpath/lib/java/util/Date.class
libjava/classpath/lib/java/util/Formatter$BigDecimalLayoutForm.class
libjava/classpath/lib/java/util/Formatter.class
libjava/classpath/lib/java/util/Hashtable$1.class
libjava/classpath/lib/java/util/Hashtable$2.class
libjava/classpath/lib/java/util/Hashtable$3.class
libjava/classpath/lib/java/util/Hashtable$EntryEnumerator.class
libjava/classpath/lib/java/util/Hashtable$EntryIterator.class
libjava/classpath/lib/java/util/Hashtable$HashEntry.class
libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class
libjava/classpath/lib/java/util/Hashtable$KeyIterator.class
libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class
libjava/classpath/lib/java/util/Hashtable$ValueIterator.class
libjava/classpath/lib/java/util/Hashtable.class
libjava/classpath/lib/java/util/Locale.class
libjava/classpath/lib/java/util/Properties.class
libjava/classpath/lib/java/util/PropertyResourceBundle.class
libjava/classpath/lib/java/util/ResourceBundle$1.class
libjava/classpath/lib/java/util/ResourceBundle$BundleKey.class
libjava/classpath/lib/java/util/ResourceBundle.class
libjava/classpath/lib/java/util/Scanner.class [new file with mode: 0644]
libjava/classpath/lib/java/util/Stack.class
libjava/classpath/lib/java/util/TimeZone$1.class
libjava/classpath/lib/java/util/TimeZone.class
libjava/classpath/lib/java/util/TreeMap$1.class
libjava/classpath/lib/java/util/TreeMap$2.class
libjava/classpath/lib/java/util/TreeMap$3.class
libjava/classpath/lib/java/util/TreeMap$4.class
libjava/classpath/lib/java/util/TreeMap$5.class
libjava/classpath/lib/java/util/TreeMap$6.class
libjava/classpath/lib/java/util/TreeMap$7.class
libjava/classpath/lib/java/util/TreeMap$DescendingMap.class
libjava/classpath/lib/java/util/TreeMap$DescendingSet.class
libjava/classpath/lib/java/util/TreeMap$EntrySet.class
libjava/classpath/lib/java/util/TreeMap$KeySet.class
libjava/classpath/lib/java/util/TreeMap$NavigableEntrySet.class
libjava/classpath/lib/java/util/TreeMap$NavigableKeySet.class
libjava/classpath/lib/java/util/TreeMap$Node.class
libjava/classpath/lib/java/util/TreeMap$SubMap$EntrySet.class
libjava/classpath/lib/java/util/TreeMap$SubMap$KeySet.class
libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableEntrySet.class
libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableKeySet.class
libjava/classpath/lib/java/util/TreeMap$SubMap.class
libjava/classpath/lib/java/util/TreeMap$TreeIterator.class
libjava/classpath/lib/java/util/TreeMap.class
libjava/classpath/lib/java/util/Vector$1.class
libjava/classpath/lib/java/util/Vector.class
libjava/classpath/lib/java/util/logging/FileHandler$ostr.class
libjava/classpath/lib/java/util/logging/FileHandler.class
libjava/classpath/lib/java/util/logging/SimpleFormatter.class
libjava/classpath/lib/java/util/logging/XMLFormatter.class
libjava/classpath/lib/java/util/prefs/AbstractPreferences$1.class
libjava/classpath/lib/java/util/prefs/AbstractPreferences$2.class
libjava/classpath/lib/java/util/prefs/AbstractPreferences.class
libjava/classpath/lib/java/util/regex/Matcher.class
libjava/classpath/lib/java/util/regex/Pattern.class
libjava/classpath/lib/java/util/regex/PatternSyntaxException.class
libjava/classpath/lib/java/util/zip/ZipEntry.class
libjava/classpath/lib/java/util/zip/ZipFile.class
libjava/classpath/lib/javax/accessibility/AccessibleRelationSet.class
libjava/classpath/lib/javax/accessibility/AccessibleStateSet.class
libjava/classpath/lib/javax/activation/ActivationDataFlavor.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/CommandInfo.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/CommandMap.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/CommandObject.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/DataContentHandler.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/DataContentHandlerFactory.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/DataHandler$DataContentHandlerWriter.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/DataHandler.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/DataHandlerDataSource.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/DataSource.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/DataSourceDataContentHandler.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/FileDataSource.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/FileTypeMap.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/MailcapCommandMap.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/MimeType.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/MimeTypeParameterList$IteratorEnumeration.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/MimeTypeParameterList.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/MimeTypeParseException.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/MimetypesFileTypeMap.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/ObjectDataContentHandler.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/URLDataSource.class [new file with mode: 0644]
libjava/classpath/lib/javax/activation/UnsupportedDataTypeException.class [new file with mode: 0644]
libjava/classpath/lib/javax/imageio/ImageIO$1.class
libjava/classpath/lib/javax/imageio/ImageIO.class
libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGHuffmanTable.class
libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGQTable.class
libjava/classpath/lib/javax/imageio/stream/ImageInputStreamImpl.class
libjava/classpath/lib/javax/management/DefaultLoaderRepository.class
libjava/classpath/lib/javax/management/JMX.class
libjava/classpath/lib/javax/management/MBeanConstructorInfo.class
libjava/classpath/lib/javax/management/MBeanPermission.class
libjava/classpath/lib/javax/management/MBeanServerDelegate.class
libjava/classpath/lib/javax/management/MBeanServerFactory.class
libjava/classpath/lib/javax/management/MBeanServerInvocationHandler.class
libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.class
libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.class
libjava/classpath/lib/javax/management/MBeanServerPermission.class
libjava/classpath/lib/javax/management/ObjectName.class
libjava/classpath/lib/javax/management/StandardMBean.class
libjava/classpath/lib/javax/management/openmbean/ArrayType.class
libjava/classpath/lib/javax/management/openmbean/CompositeDataSupport.class
libjava/classpath/lib/javax/management/openmbean/CompositeType.class
libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfoSupport.class
libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfoSupport.class
libjava/classpath/lib/javax/management/openmbean/SimpleType.class
libjava/classpath/lib/javax/management/openmbean/TabularDataSupport.class
libjava/classpath/lib/javax/management/openmbean/TabularType.class
libjava/classpath/lib/javax/naming/BinaryRefAddr.class
libjava/classpath/lib/javax/naming/CompositeName.class
libjava/classpath/lib/javax/naming/CompoundName.class
libjava/classpath/lib/javax/naming/NamingException.class
libjava/classpath/lib/javax/naming/spi/NamingManager.class
libjava/classpath/lib/javax/security/auth/x500/X500Principal.class
libjava/classpath/lib/javax/security/sasl/SaslException.class
libjava/classpath/lib/javax/sound/sampled/AudioFormat$Encoding.class
libjava/classpath/lib/javax/sound/sampled/AudioFormat.class
libjava/classpath/lib/javax/sound/sampled/CompoundControl$Type.class
libjava/classpath/lib/javax/sound/sampled/CompoundControl.class
libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class
libjava/classpath/lib/javax/swing/AbstractButton$1.class
libjava/classpath/lib/javax/swing/AbstractButton$AccessibleAbstractButton.class
libjava/classpath/lib/javax/swing/AbstractButton$ButtonChangeListener.class
libjava/classpath/lib/javax/swing/AbstractButton$EventHandler.class
libjava/classpath/lib/javax/swing/AbstractButton.class
libjava/classpath/lib/javax/swing/JButton$AccessibleJButton.class
libjava/classpath/lib/javax/swing/JButton.class
libjava/classpath/lib/javax/swing/JComboBox$1.class
libjava/classpath/lib/javax/swing/JComboBox$AccessibleJComboBox.class
libjava/classpath/lib/javax/swing/JComboBox$DefaultKeySelectionManager.class
libjava/classpath/lib/javax/swing/JComboBox.class
libjava/classpath/lib/javax/swing/JComponent$1.class
libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.class
libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.class
libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent.class
libjava/classpath/lib/javax/swing/JComponent$ActionListenerProxy.class
libjava/classpath/lib/javax/swing/JComponent.class
libjava/classpath/lib/javax/swing/JDesktopPane$AccessibleJDesktopPane.class
libjava/classpath/lib/javax/swing/JDesktopPane.class
libjava/classpath/lib/javax/swing/JFileChooser$1.class
libjava/classpath/lib/javax/swing/JFileChooser$AccessibleJFileChooser.class
libjava/classpath/lib/javax/swing/JFileChooser.class
libjava/classpath/lib/javax/swing/JFrame$AccessibleJFrame.class
libjava/classpath/lib/javax/swing/JFrame.class
libjava/classpath/lib/javax/swing/JLabel$AccessibleJLabel.class
libjava/classpath/lib/javax/swing/JLabel.class
libjava/classpath/lib/javax/swing/JList$1.class
libjava/classpath/lib/javax/swing/JList$2.class
libjava/classpath/lib/javax/swing/JList$3.class
libjava/classpath/lib/javax/swing/JList$AccessibleJList$AccessibleJListChild.class
libjava/classpath/lib/javax/swing/JList$AccessibleJList.class
libjava/classpath/lib/javax/swing/JList$ListListener.class
libjava/classpath/lib/javax/swing/JList.class
libjava/classpath/lib/javax/swing/JMenuBar$AccessibleJMenuBar.class
libjava/classpath/lib/javax/swing/JMenuBar.class
libjava/classpath/lib/javax/swing/JPopupMenu$1.class
libjava/classpath/lib/javax/swing/JPopupMenu$2.class
libjava/classpath/lib/javax/swing/JPopupMenu$AccessibleJPopupMenu.class
libjava/classpath/lib/javax/swing/JPopupMenu$ActionChangeListener.class
libjava/classpath/lib/javax/swing/JPopupMenu$Separator.class
libjava/classpath/lib/javax/swing/JPopupMenu.class
libjava/classpath/lib/javax/swing/JProgressBar$1.class
libjava/classpath/lib/javax/swing/JProgressBar$AccessibleJProgressBar.class
libjava/classpath/lib/javax/swing/JProgressBar.class
libjava/classpath/lib/javax/swing/JScrollBar$AccessibleJScrollBar.class
libjava/classpath/lib/javax/swing/JScrollBar$ScrollBarChangeListener.class
libjava/classpath/lib/javax/swing/JScrollBar.class
libjava/classpath/lib/javax/swing/JSlider$1.class
libjava/classpath/lib/javax/swing/JSlider$AccessibleJSlider.class
libjava/classpath/lib/javax/swing/JSlider$LabelUIResource.class
libjava/classpath/lib/javax/swing/JSlider.class
libjava/classpath/lib/javax/swing/JSplitPane$AccessibleJSplitPane.class
libjava/classpath/lib/javax/swing/JSplitPane.class
libjava/classpath/lib/javax/swing/JTabbedPane$AccessibleJTabbedPane.class
libjava/classpath/lib/javax/swing/JTabbedPane$ModelListener.class
libjava/classpath/lib/javax/swing/JTabbedPane$Page.class
libjava/classpath/lib/javax/swing/JTabbedPane.class
libjava/classpath/lib/javax/swing/JToolBar$AccessibleJToolBar.class
libjava/classpath/lib/javax/swing/JToolBar$DefaultToolBarLayout.class
libjava/classpath/lib/javax/swing/JToolBar$Separator.class
libjava/classpath/lib/javax/swing/JToolBar.class
libjava/classpath/lib/javax/swing/JToolTip$AccessibleJToolTip.class
libjava/classpath/lib/javax/swing/JToolTip.class
libjava/classpath/lib/javax/swing/UIManager$LookAndFeelInfo.class
libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class
libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults.class
libjava/classpath/lib/javax/swing/UIManager.class
libjava/classpath/lib/javax/swing/event/EventListenerList.class
libjava/classpath/lib/javax/swing/table/AbstractTableModel.class
libjava/classpath/lib/javax/swing/text/AbstractDocument$AbstractElement.class
libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiElement.class
libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiRootElement.class
libjava/classpath/lib/javax/swing/text/AbstractDocument$BranchElement.class
libjava/classpath/lib/javax/swing/text/AbstractDocument$Bypass.class
libjava/classpath/lib/javax/swing/text/AbstractDocument$DefaultDocumentEvent.class
libjava/classpath/lib/javax/swing/text/AbstractDocument$ElementEdit.class
libjava/classpath/lib/javax/swing/text/AbstractDocument$LeafElement.class
libjava/classpath/lib/javax/swing/text/AbstractDocument.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BackwardAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeepAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginLineAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginWordAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CopyAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CutAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DownAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndLineAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndWordAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$ForwardAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertBreakAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertContentAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertTabAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$NextWordAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PasteAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PreviousWordAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectAllAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectLineAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectWordAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionDownAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionForwardAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionUpAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit$UpAction.class
libjava/classpath/lib/javax/swing/text/DefaultEditorKit.class
libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.class
libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.class
libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class
libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementSpec.class
libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class
libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class
libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class
libjava/classpath/lib/javax/swing/text/JTextComponent$AccessibleJTextComponent.class
libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultKeymap.class
libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultTransferHandler.class
libjava/classpath/lib/javax/swing/text/JTextComponent$KeyBinding.class
libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapActionMap.class
libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapWrapper.class
libjava/classpath/lib/javax/swing/text/JTextComponent.class
libjava/classpath/lib/javax/swing/text/MaskFormatter.class
libjava/classpath/lib/javax/swing/text/TabSet.class
libjava/classpath/lib/javax/swing/text/html/CSSParser.class
libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class
libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class
libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyle.class
libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class
libjava/classpath/lib/javax/swing/text/html/StyleSheet.class
libjava/classpath/lib/javax/swing/text/html/ViewAttributeSet.class
libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class
libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.class
libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class
libjava/classpath/lib/javax/tools/FileObject.class
libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class
libjava/classpath/lib/javax/xml/namespace/QName.class
libjava/classpath/lib/javax/xml/parsers/DocumentBuilderFactory.class
libjava/classpath/lib/javax/xml/parsers/SAXParserFactory.class
libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class
libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class
libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class
libjava/classpath/lib/javax/xml/transform/TransformerException.class
libjava/classpath/lib/javax/xml/transform/TransformerFactory.class
libjava/classpath/lib/javax/xml/validation/SchemaFactory.class
libjava/classpath/lib/javax/xml/xpath/XPathFactory.class
libjava/classpath/lib/org/ietf/jgss/Oid.class
libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class
libjava/classpath/ltgcc.m4 [new file with mode: 0644]
libjava/classpath/ltmain.sh
libjava/classpath/ltoptions.m4 [new file with mode: 0644]
libjava/classpath/ltsugar.m4 [new file with mode: 0644]
libjava/classpath/ltversion.m4 [new file with mode: 0644]
libjava/classpath/lt~obsolete.m4 [new file with mode: 0644]
libjava/classpath/m4/ac_prog_antlr.m4 [new file with mode: 0644]
libjava/classpath/m4/ac_prog_java.m4 [new file with mode: 0644]
libjava/classpath/m4/ac_prog_java_works.m4 [new file with mode: 0644]
libjava/classpath/m4/ac_prog_javac.m4
libjava/classpath/m4/ac_prog_javac_works.m4
libjava/classpath/m4/acinclude.m4
libjava/classpath/native/Makefile.in
libjava/classpath/native/fdlibm/Makefile.in
libjava/classpath/native/jawt/Makefile.in
libjava/classpath/native/jni/Makefile.am
libjava/classpath/native/jni/Makefile.in
libjava/classpath/native/jni/classpath/Makefile.in
libjava/classpath/native/jni/gconf-peer/GConfNativePeer.c
libjava/classpath/native/jni/gconf-peer/Makefile.in
libjava/classpath/native/jni/gstreamer-peer/Makefile.in
libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c
libjava/classpath/native/jni/gtk-peer/Makefile.in
libjava/classpath/native/jni/java-io/Makefile.in
libjava/classpath/native/jni/java-io/java_io_VMFile.c
libjava/classpath/native/jni/java-lang/Makefile.in
libjava/classpath/native/jni/java-math/Makefile.am [new file with mode: 0644]
libjava/classpath/native/jni/java-math/Makefile.in [new file with mode: 0644]
libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c [new file with mode: 0644]
libjava/classpath/native/jni/java-net/Makefile.in
libjava/classpath/native/jni/java-net/java_net_VMNetworkInterface.c
libjava/classpath/native/jni/java-net/local.c
libjava/classpath/native/jni/java-nio/Makefile.in
libjava/classpath/native/jni/java-util/Makefile.in
libjava/classpath/native/jni/midi-alsa/Makefile.am
libjava/classpath/native/jni/midi-alsa/Makefile.in
libjava/classpath/native/jni/midi-dssi/Makefile.in
libjava/classpath/native/jni/native-lib/Makefile.in
libjava/classpath/native/jni/qt-peer/Makefile.in
libjava/classpath/native/jni/xmlj/Makefile.in
libjava/classpath/native/plugin/Makefile.in
libjava/classpath/org/ietf/jgss/Oid.java
libjava/classpath/org/omg/CORBA/portable/Delegate.java
libjava/classpath/resource/META-INF/mailcap.default [new file with mode: 0644]
libjava/classpath/resource/META-INF/mimetypes.default [new file with mode: 0644]
libjava/classpath/resource/Makefile.in
libjava/classpath/resource/gnu/java/locale/LocaleInformation.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_DJ.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_af.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_af_NA.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ak.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_am.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_JO.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_LB.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_QA.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SA.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SY.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_TN.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_YE.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_as.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_az.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_be.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_bg.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn_IN.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_bo.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_bs.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_byn.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ca.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_cch.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_cop.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_cs.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_cy.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_da.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_de.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_AT.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_BE.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_CH.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LI.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LU.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_dv.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_dz.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ee.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_el.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_AU.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BE.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BW.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BZ.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_CA.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_GB.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_HK.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IE.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IN.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_JM.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_MT.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NA.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NZ.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PH.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PK.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_SG.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Shaw.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_TT.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZA.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZW.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_eo.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_AR.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CL.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CO.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CR.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_DO.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_EC.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_ES.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_GT.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_HN.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_MX.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_NI.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PA.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PE.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PR.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PY.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_SV.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_US.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_UY.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_VE.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_et.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_eu.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa_AF.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_fi.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_fil.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_fo.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_BE.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CA.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CH.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_fur.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ga.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_gaa.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez_ET.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_gl.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_gu.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_gv.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha_Arab.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_haw.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_he.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_hi.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_hr.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_hu.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ia.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_id.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ig.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ii.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_is.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_it.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_it_CH.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_iu.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ja.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ka.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_kaj.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_kam.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_kcg.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_kfo.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_kk.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_kl.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_km.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_kn.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ko.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_kok.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_kpe.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Arab.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Latn.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_kw.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ky.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ln.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_lo.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_lt.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_lv.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_mk.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ml.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_mn.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_mr.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms_BN.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_mt.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_my.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_nb.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ne.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl_BE.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_nn.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_nr.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_nso.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ny.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_om.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_om_KE.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_or.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa_Arab.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_pl.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ps.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt_PT.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ro.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru_UA.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_rw.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sa.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_se.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_se_FI.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_si.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sid.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sk.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sl.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_so.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_DJ.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_ET.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_KE.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sq.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_Latn.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ss.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ssy.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_st.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv_FI.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_sw.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_syr.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ta.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_te.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_tg.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_th.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti_ER.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_tig.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_tn.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_to.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_tr.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_trv.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ts.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_tt.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ug.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_uk.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur_IN.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Arab.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Latn.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_ve.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_vi.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_wal.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_wo.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_xh.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_yo.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_Hant.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties
libjava/classpath/resource/gnu/java/locale/LocaleInformation_zu.properties [new file with mode: 0644]
libjava/classpath/resource/java/text/metazones.properties [new file with mode: 0644]
libjava/classpath/resource/java/util/iso4217.properties
libjava/classpath/resource/java/util/weeks.properties [new file with mode: 0644]
libjava/classpath/scripts/Makefile.in
libjava/classpath/scripts/check_jni_methods.sh.in
libjava/classpath/tools/Makefile.am
libjava/classpath/tools/Makefile.in
libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class
libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class
libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class
libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class
libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class
libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class
libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class [new file with mode: 0644]
libjava/classpath/tools/com/sun/tools/javadoc/Main.java [new file with mode: 0644]
libjava/classpath/tools/gappletviewer.in
libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java [new file with mode: 0644]
libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap [new file with mode: 0644]
libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java [new file with mode: 0644]
libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap [new file with mode: 0644]
libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java [new file with mode: 0644]
libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt [new file with mode: 0644]
libjava/classpath/tools/gjar.in
libjava/classpath/tools/gjarsigner.in
libjava/classpath/tools/gjavah.in
libjava/classpath/tools/gjdoc.in [new file with mode: 0644]
libjava/classpath/tools/gkeytool.in
libjava/classpath/tools/gnative2ascii.in
libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java
libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java
libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java
libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java
libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java
libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java
libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java
libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java
libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java
libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java
libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java
libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java
libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java
libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java [new file with mode: 0644]
libjava/classpath/tools/gorbd.in
libjava/classpath/tools/grmic.in
libjava/classpath/tools/grmid.in
libjava/classpath/tools/grmiregistry.in
libjava/classpath/tools/gserialver.in
libjava/classpath/tools/gtnameserv.in
libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng [new file with mode: 0644]
libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java [new file with mode: 0644]
libjava/classpath/vm/reference/java/io/VMFile.java
libjava/classpath/vm/reference/java/lang/reflect/Constructor.java [deleted file]
libjava/classpath/vm/reference/java/lang/reflect/Field.java [deleted file]
libjava/classpath/vm/reference/java/lang/reflect/Method.java [deleted file]
libjava/classpath/vm/reference/java/lang/reflect/VMConstructor.java [new file with mode: 0644]
libjava/classpath/vm/reference/java/lang/reflect/VMField.java [new file with mode: 0644]
libjava/classpath/vm/reference/java/lang/reflect/VMMethod.java [new file with mode: 0644]
libjava/classpath/vm/reference/java/net/VMNetworkInterface.java
libjava/configure
libjava/configure.ac
libjava/gcj/Makefile.in
libjava/gcj/javaprims.h
libjava/gnu/CORBA/NamingService/NameTransformer.h
libjava/gnu/classpath/Configuration.h
libjava/gnu/classpath/Configuration.java
libjava/gnu/classpath/jdwp/util/Signature.h
libjava/gnu/gcj/util/natDebug.cc
libjava/gnu/gcj/xlib/natColormap.cc
libjava/gnu/gcj/xlib/natDisplay.cc
libjava/gnu/gcj/xlib/natDrawable.cc
libjava/gnu/gcj/xlib/natFont.cc
libjava/gnu/gcj/xlib/natWMSizeHints.cc
libjava/gnu/gcj/xlib/natWindow.cc
libjava/gnu/gcj/xlib/natXImage.cc
libjava/gnu/java/awt/java2d/AbstractGraphics2D.h
libjava/gnu/java/awt/java2d/RasterGraphics.h
libjava/gnu/java/lang/CPStringBuilder.h [new file with mode: 0644]
libjava/gnu/java/lang/VMCPStringBuilder.h [new file with mode: 0644]
libjava/gnu/java/lang/VMCPStringBuilder.java [new file with mode: 0644]
libjava/gnu/java/math/GMP.h [new file with mode: 0644]
libjava/gnu/java/text/AttributedFormatBuffer.h
libjava/gnu/java/util/EmptyEnumeration.h
libjava/gnu/java/util/prefs/EventDispatcher.h [deleted file]
libjava/gnu/java/util/prefs/gconf/GConfNativePeer.h
libjava/gnu/java/util/regex/RE.h
libjava/gnu/java/util/regex/REMatchEnumeration.h
libjava/gnu/java/util/regex/REToken.h
libjava/gnu/java/util/regex/RETokenAny.h
libjava/gnu/java/util/regex/RETokenBackRef.h
libjava/gnu/java/util/regex/RETokenChar.h
libjava/gnu/java/util/regex/RETokenEnd.h
libjava/gnu/java/util/regex/RETokenEndOfPreviousMatch.h
libjava/gnu/java/util/regex/RETokenEndSub.h
libjava/gnu/java/util/regex/RETokenIndependent.h
libjava/gnu/java/util/regex/RETokenLookAhead.h
libjava/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.h
libjava/gnu/java/util/regex/RETokenLookBehind.h
libjava/gnu/java/util/regex/RETokenNamedProperty.h
libjava/gnu/java/util/regex/RETokenOneOf.h
libjava/gnu/java/util/regex/RETokenPOSIX.h
libjava/gnu/java/util/regex/RETokenRange.h
libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.h [deleted file]
libjava/gnu/java/util/regex/RETokenRepeated.h
libjava/gnu/java/util/regex/RETokenStart.h
libjava/gnu/java/util/regex/RETokenWordBoundary.h
libjava/gnu/javax/activation/viewers/ImageViewer.h [new file with mode: 0644]
libjava/gnu/javax/activation/viewers/TextEditor.h [new file with mode: 0644]
libjava/gnu/javax/activation/viewers/TextViewer.h [new file with mode: 0644]
libjava/gnu/javax/management/Server$LazyListenersHolder.h [new file with mode: 0644]
libjava/gnu/javax/management/Server.h
libjava/gnu/javax/security/auth/login/ConfigFileTokenizer.h
libjava/gnu/xml/dom/DomAttr.h
libjava/gnu/xml/dom/DomElement.h
libjava/gnu/xml/dom/DomNsNode.h
libjava/gnu/xml/dom/ls/SAXEventSink.h
libjava/gnu/xml/stream/XMLParser.h
libjava/gnu/xml/transform/AbstractNumberNode.h
libjava/gnu/xml/transform/ParameterNode.h
libjava/gnu/xml/transform/SortKey.h
libjava/gnu/xml/transform/Stylesheet.h
libjava/gnu/xml/transform/TemplatesImpl.h
libjava/gnu/xml/transform/XSLComparator.h
libjava/gnu/xml/util/XMLWriter.h
libjava/gnu/xml/xpath/DocumentOrderComparator.h
libjava/include/Makefile.in
libjava/java/awt/AlphaComposite.h
libjava/java/awt/MouseInfo.h
libjava/java/awt/image/ColorModel.h
libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h
libjava/java/io/CharArrayWriter.h
libjava/java/lang/AbstractStringBuffer.h [new file with mode: 0644]
libjava/java/lang/AbstractStringBuffer.java [new file with mode: 0644]
libjava/java/lang/ClassLoader.java
libjava/java/lang/Double.h
libjava/java/lang/Float.h
libjava/java/lang/Integer.h
libjava/java/lang/Long.h
libjava/java/lang/String.h
libjava/java/lang/String.java
libjava/java/lang/StringBuffer.h
libjava/java/lang/StringBuffer.java
libjava/java/lang/StringBuilder.h
libjava/java/lang/StringBuilder.java
libjava/java/lang/Thread.h
libjava/java/lang/Thread.java
libjava/java/lang/ThreadLocal.h
libjava/java/lang/ThreadLocal.java
libjava/java/lang/ThreadLocalMap$Entry.h [new file with mode: 0644]
libjava/java/lang/ThreadLocalMap.h [new file with mode: 0644]
libjava/java/lang/Throwable.h
libjava/java/lang/natAbstractStringBuffer.cc [new file with mode: 0644]
libjava/java/lang/natStringBuffer.cc [deleted file]
libjava/java/lang/natStringBuilder.cc [deleted file]
libjava/java/math/BigInteger.h
libjava/java/net/URI.h
libjava/java/nio/Buffer.h
libjava/java/nio/Buffer.java
libjava/java/nio/ByteBuffer.h
libjava/java/nio/CharBuffer.h
libjava/java/nio/DirectByteBufferImpl.java
libjava/java/nio/DoubleBuffer.h
libjava/java/nio/FloatBuffer.h
libjava/java/nio/IntBuffer.h
libjava/java/nio/LongBuffer.h
libjava/java/nio/MappedByteBuffer.h
libjava/java/nio/MappedByteBufferImpl.h
libjava/java/nio/MappedByteBufferImpl.java
libjava/java/nio/ShortBuffer.h
libjava/java/rmi/activation/Activatable.h
libjava/java/sql/Timestamp.h
libjava/java/text/ChoiceFormat.h
libjava/java/text/DateFormat$Field.h
libjava/java/text/DateFormat.h
libjava/java/text/DateFormatSymbols.h
libjava/java/text/DecimalFormat.h
libjava/java/text/Format.h
libjava/java/text/MessageFormat.h
libjava/java/text/NumberFormat.h
libjava/java/text/SimpleDateFormat.h
libjava/java/util/ArrayList.h
libjava/java/util/Arrays.h
libjava/java/util/Calendar.h
libjava/java/util/Formatter.h
libjava/java/util/Properties.h
libjava/java/util/PropertyResourceBundle.h
libjava/java/util/ResourceBundle$BundleKey.h
libjava/java/util/ResourceBundle.h
libjava/java/util/Scanner.h [new file with mode: 0644]
libjava/java/util/Vector.h
libjava/java/util/logging/XMLFormatter.h
libjava/java/util/prefs/AbstractPreferences$1.h
libjava/java/util/prefs/AbstractPreferences$2.h
libjava/java/util/regex/Matcher.h
libjava/java/util/zip/ZipEntry.h
libjava/javax/activation/ActivationDataFlavor.h [new file with mode: 0644]
libjava/javax/activation/CommandInfo.h [new file with mode: 0644]
libjava/javax/activation/CommandMap.h [new file with mode: 0644]
libjava/javax/activation/CommandObject.h [new file with mode: 0644]
libjava/javax/activation/DataContentHandler.h [new file with mode: 0644]
libjava/javax/activation/DataContentHandlerFactory.h [new file with mode: 0644]
libjava/javax/activation/DataHandler$DataContentHandlerWriter.h [new file with mode: 0644]
libjava/javax/activation/DataHandler.h [new file with mode: 0644]
libjava/javax/activation/DataHandlerDataSource.h [new file with mode: 0644]
libjava/javax/activation/DataSource.h [new file with mode: 0644]
libjava/javax/activation/DataSourceDataContentHandler.h [new file with mode: 0644]
libjava/javax/activation/FileDataSource.h [new file with mode: 0644]
libjava/javax/activation/FileTypeMap.h [new file with mode: 0644]
libjava/javax/activation/MailcapCommandMap.h [new file with mode: 0644]
libjava/javax/activation/MimeType.h [new file with mode: 0644]
libjava/javax/activation/MimeTypeParameterList$IteratorEnumeration.h [new file with mode: 0644]
libjava/javax/activation/MimeTypeParameterList.h [new file with mode: 0644]
libjava/javax/activation/MimeTypeParseException.h [new file with mode: 0644]
libjava/javax/activation/MimetypesFileTypeMap.h [new file with mode: 0644]
libjava/javax/activation/ObjectDataContentHandler.h [new file with mode: 0644]
libjava/javax/activation/URLDataSource.h [new file with mode: 0644]
libjava/javax/activation/UnsupportedDataTypeException.h [new file with mode: 0644]
libjava/javax/management/MBeanPermission.h
libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.h
libjava/javax/management/openmbean/TabularDataSupport.h
libjava/javax/swing/text/html/CSSParser.h
libjava/javax/swing/text/html/StyleSheet$CSSStyle.h
libjava/javax/tools/FileObject.h
libjava/jni.cc
libjava/scripts/makemake.tcl
libjava/sources.am
libjava/testsuite/Makefile.in

index d07b70e1fc0b48781395256f22c4cadf9ee0c034..7e0bf0bc48c6acae639fd7c1abfa5c52e2253751 100644 (file)
@@ -1,3 +1,221 @@
+2008-10-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * sources.am, Makfile.in: Regenerate.
+
+2008-10-17  Matthias Klose  <doko@ubuntu.com>
+
+       * configure.ac: Fix bashisms.
+       * configure: Regenerate.
+
+2008-10-15  Matthias Klose  <doko@ubuntu.com>
+
+       * configure.ac: Disable build of gjdoc, if configured without
+       --with-antlr-jar or if no antlr.jar found.
+       * configure: Regenerate.
+
+2008-10-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * classpath/configure.ac,
+       * classpath/m4/ac_prog_antlr.m4,
+       * classpath/m4/ac_prog_java.m4,
+       * classpath/tools/Makefile.am:
+       Ported --regen-gjdoc-parser patch and
+       cantlr support from GNU Classpath.
+
+2008-10-06  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/Thread.java (Thread): Always create the ThreadLocalMap
+       when creating a thread.
+       (getThreadLocals) Don't lazily create the ThreadLocalMap.
+
+2008-09-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * classpath/java/lang/ThreadLocalMap.java,
+       * java/lang/ThreadLocalMap$Entry.h,
+       * java/lang/ThreadLocalMap.h,
+       * lib/java/lang/ThreadLocalMap.class,
+       * lib/java/lang/ThreadLocalMap$Entry.class:
+       Add the new files for the ThreadLocal patch.
+
+2008-09-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * classpath/ChangeLog,
+       * classpath/java/lang/InheritableThreadLocal.java,
+       * classpath/java/lang/Thread.java,
+       * classpath/java/lang/ThreadLocal.java:
+       Merge Daniel Frampton's ThreadLocal patch.
+       * gcj/javaprims.h: Updated.
+       * java/lang/Thread.h: Regenerated.
+       * java/lang/Thread.java:
+       Replace WeakIdentityHashMap with ThreadLocalMap.
+       (getThreadLocals()): Likewise.
+       * java/lang/ThreadLocal.h: Regenerated.
+       * java/lang/ThreadLocal.java:
+       (computeNextHash()): New method.
+       (ThreadLocal()): Initialise fastHash.
+       (internalGet()): Updated to match Classpath's get().
+       (internalSet(Object)): Likewise for set(Object).
+       (internalRemove()): Likewise for remove().
+       
+2008-09-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * classpath/configure,
+       * classpath/configure.ac:
+       Resynchronise with Classpath's configure.
+       * classpath/examples/Makefile.in:
+       Add equivalent support for building as in
+       tools/Makefile.in.
+       * classpath/java/nio/Buffer.java,
+       * classpath/java/nio/ByteBuffer.java,
+       * classpath/java/nio/ByteBufferImpl.java,
+       * classpath/java/nio/CharBuffer.java,
+       * classpath/java/nio/CharBufferImpl.java,
+       * classpath/java/nio/CharSequenceBuffer.java,
+       * classpath/java/nio/CharViewBufferImpl.java,
+       * classpath/java/nio/DirectByteBufferImpl.java,
+       * classpath/java/nio/DoubleBuffer.java,
+       * classpath/java/nio/DoubleBufferImpl.java,
+       * classpath/java/nio/DoubleViewBufferImpl.java,
+       * classpath/java/nio/FloatBuffer.java,
+       * classpath/java/nio/FloatBufferImpl.java,
+       * classpath/java/nio/FloatViewBufferImpl.java,
+       * classpath/java/nio/IntBuffer.java,
+       * classpath/java/nio/IntBufferImpl.java,
+       * classpath/java/nio/IntViewBufferImpl.java,
+       * classpath/java/nio/LongBuffer.java,
+       * classpath/java/nio/LongBufferImpl.java,
+       * classpath/java/nio/LongViewBufferImpl.java,
+       * classpath/java/nio/MappedByteBuffer.java,
+       * classpath/java/nio/MappedByteBufferImpl.java,
+       * classpath/java/nio/ShortBuffer.java,
+       * classpath/java/nio/ShortBufferImpl.java,
+       * classpath/java/nio/ShortViewBufferImpl.java:
+       Replace use of gnu.classpath.Pointer with gnu.gcj.RawData,
+       and fix some formatting issues.
+       * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.java,
+       * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap,
+       * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java,
+       * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap,
+       * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java,
+       * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt:
+       Regenerated (later version of antlr).
+       * java/nio/Buffer.h: Regenerated.
+       * java/nio/Buffer.java: Ported changes from Classpath.
+       * java/nio/ByteBuffer.h,
+       * java/nio/CharBuffer.h: Regenerated.
+       * java/nio/DirectByteBufferImpl.java: Ported changes from
+       Classpath.
+       * java/nio/DoubleBuffer.h,
+       * java/nio/FloatBuffer.h,
+       * java/nio/IntBuffer.h,
+       * java/nio/LongBuffer.h,
+       * java/nio/MappedByteBuffer.h,
+       * java/nio/MappedByteBufferImpl.h: Regenerated.
+       * java/nio/MappedByteBufferImpl.java: Ported changes from
+       Classpath.
+       * java/nio/ShortBuffer.h: Regenerated.
+
+2008-09-24  Matthias Klose  <doko@ubuntu.com>
+
+       * configure.ac: Search for antlr.jar, if not configured.
+       * configure: Regenerate.
+
+2008-09-24  Matthias Klose  <doko@ubuntu.com>
+
+       * Makefile.am: Build a gjdoc binary, if enabled.
+       * configure.ac: Add options --disable-gjdoc, --with-antlr-jar=file.
+       * Makefile.in, */Makefile.in, configure: Regenerate.
+
+2008-09-22  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/String.java (toString(char[], int, int)): New method.
+
+2008-09-14  Matthias Klose  <doko@ubuntu.com>
+
+       Import GNU Classpath (libgcj-import-20080914).
+
+       * Regenerate class and header files.
+       * Regenerate auto* files.
+       * configure.ac: Don't pass --disable-gjdoc to classpath.
+       * sources.am: Regenerated.
+       * HACKING: Mention to build gjdoc in maintainer builds.
+       * gnu/classpath/Configuration.java: Update classpath version.
+       * gcj/javaprims.h: Update.
+
+2008-09-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * Makefile.am: Replace natStringBuffer.cc
+       and natStringBuilder.cc with natAbstractStringBuffer.cc.
+       * Makefile.in: Regenerated.
+       * java/lang/AbstractStringBuffer.java:
+       (append(int)): Made native.
+       (regionMatches(int,String)): Likewise.
+       * java/lang/StringBuffer.h: Regenerated.
+       * java/lang/StringBuffer.java: Remerged with GNU Classpath.
+       * java/lang/StringBuilder.h: Regenerated.
+       * java/lang/StringBuilder.java: Remerged with GNU Classpath.
+       * java/lang/natAbstractStringBuffer.cc: Provide common
+       native methods for StringBuffer and StringBuilder.
+       * java/lang/natStringBuffer.cc,
+       * java/lang/natStringBuilder.cc: Removed.
+
+2008-09-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * Makefile.in,
+       * classpath/configure: Regenerated.
+       * gnu/gcj/util/natDebug.cc,
+       * gnu/gcj/xlib/natColormap.cc,
+       * gnu/gcj/xlib/natDisplay.cc,
+       * gnu/gcj/xlib/natDrawable.cc,
+       * gnu/gcj/xlib/natFont.cc,
+       * gnu/gcj/xlib/natWMSizeHints.cc,
+       * gnu/gcj/xlib/natWindow.cc,
+       * gnu/gcj/xlib/natXImage.cc:
+       Add :: prefix to namespaces.
+       * java/io/CharArrayWriter.h,
+       * java/lang/StringBuffer.h:
+       Regenerated using patched gjavah.
+       * java/lang/natStringBuffer.cc:
+       Fix naming of append(jint).
+       * java/sql/Timestamp.h: Regenerated
+       using patched gjavah.
+       * jni.cc: Rename p to functions
+       to match change in GNU Classpath.
+       * scripts/makemake.tcl: Switch
+       gnu.java.math to BC compilation.
+       * sources.am: Regenerated.
+
+2008-08-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+       
+       * Makefile.in: Updated location of Configuration.java.
+       * classpath/lib/gnu/java/locale/LocaleData.class: Regenerated.
+
+2008-08-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+       
+       * Makefile.in: Updated with new Java files.
+       * classpath/configure: Regenerated.
+       * classpath/tools/Makefile.am: Add missing
+       use of GJDOC_EX so --disable-gjdoc works.
+       * classpath/tools/Makefile.in: Regenerated.
+
+2008-08-15  Matthias Klose  <doko@ubuntu.com>
+
+       Import GNU Classpath (libgcj-import-20080811).
+
+       * Regenerate class and header files.
+       * Regenerate auto* files.
+       * configure.ac: Don't pass --with-fastjar to classpath, substitute new
+       dummy value in classpath/gnu/classpath/Configuration.java.in, pass
+       --disable-gjdoc to classpath.
+       * scripts/makemake.tcl:
+       * sources.am: Regenerated.
+       * java/lang/AbstractStringBuffer.java, gnu/java/lang/VMCPStringBuilder.java:
+       New, copied from classpath, use System instead of VMSystem.
+       * java/lang/StringBuffer.java: Merge from classpath.
+       * java/lang/ClassLoader.java: Merge from classpath.
+       * gcj/javaprims.h: Update class definitions,
+       remove _Jv_jobjectRefType, jobjectRefType definitions.
+
 2008-09-30  Andreas Tobler  <a.tobler@schweiz.org>
 
        * testsuite/lib/libjava.exp (libjava_arguments): Do not append
index e6a0f4c48f5cda8c272531cfadcd2415938dd7fa..ba85b697be2f8255a4eb68cf2c4dc79ff27aa2fc 100644 (file)
@@ -111,7 +111,8 @@ To import a new release:
     | xargs -r rm -f
 - Build, fix, till everything works.
   Be sure to build all peers (--enable-java-awt=gtk,xlib,qt
-  --enable-gconf-peer --enable-gstreamer-peer)
+  --enable-gconf-peer --enable-gstreamer-peer).
+  Be sure to build gjdoc (--enable-gjdoc).
   Be sure to update gnu/classpath/Configuration.java to reflect
     the new version
   Possibly update the gcj/javaprims.h file with scripts/classes.pl
index 9b778f543b2da67c466bbfb1dd75e6c6abf8b3b5..82cc63e3a81845e1a4b6b9e016638b6c6124cd09 100644 (file)
@@ -82,6 +82,9 @@ if NATIVE
 bin_PROGRAMS = jv-convert gij grmic grmiregistry gcj-dbtool \
        gappletviewer gjarsigner gkeytool gjar gcjh gjavah gnative2ascii \
        gorbd grmid gserialver gtnameserv gc-analyze
+if CREATE_GJDOC
+bin_PROGRAMS += gjdoc
+endif
 
 ## It is convenient to actually build and install the default database
 ## when gcj-dbtool is available.
@@ -1013,6 +1016,16 @@ grmiregistry_LINK = $(GCJLINK)
 grmiregistry_LDADD = -L$(here)/.libs libgcj-tools.la
 grmiregistry_DEPENDENCIES = libgcj-tools.la
 
+## This is a dummy definition.
+gjdoc_SOURCES =
+gjdoc_LDFLAGS = --main=gnu.classpath.tools.gjdoc.Main \
+       -Djava.class.path=$(ANTLR_JAR) \
+       -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
+gjdoc_LINK = $(GCJLINK)
+## See jv_convert_LDADD.
+gjdoc_LDADD = -L$(here)/.libs libgcj-tools.la
+gjdoc_DEPENDENCIES = libgcj-tools.la
+
 ## ################################################################
 if INTERPRETER
 nat_jdwp_source_files = \
@@ -1082,8 +1095,7 @@ java/lang/natMath.cc \
 java/lang/natObject.cc \
 java/lang/natRuntime.cc        \
 java/lang/natString.cc \
-java/lang/natStringBuffer.cc \
-java/lang/natStringBuilder.cc \
+java/lang/natAbstractStringBuffer.cc \
 java/lang/natSystem.cc \
 java/lang/natThread.cc \
 java/lang/natThreadLocal.cc \
index 92ae4865af1981d28cedd950ad5ea6f5389562b5..a803fedb59066760343cc0930a149caabde0b810 100644 (file)
@@ -51,20 +51,22 @@ target_triplet = @target@
 @NATIVE_TRUE@  gjar$(EXEEXT) gcjh$(EXEEXT) gjavah$(EXEEXT) \
 @NATIVE_TRUE@  gnative2ascii$(EXEEXT) gorbd$(EXEEXT) \
 @NATIVE_TRUE@  grmid$(EXEEXT) gserialver$(EXEEXT) \
-@NATIVE_TRUE@  gtnameserv$(EXEEXT) gc-analyze$(EXEEXT)
-@INSTALL_AOT_RPM_TRUE@am__append_5 = contrib/aot-compile-rpm
+@NATIVE_TRUE@  gtnameserv$(EXEEXT) gc-analyze$(EXEEXT) \
+@NATIVE_TRUE@  $(am__EXEEXT_1)
+@CREATE_GJDOC_TRUE@@NATIVE_TRUE@am__append_5 = gjdoc
+@INSTALL_AOT_RPM_TRUE@am__append_6 = contrib/aot-compile-rpm
 @BUILD_ECJ1_TRUE@libexecsub_PROGRAMS = ecjx$(EXEEXT)
-@ANONVERSCRIPT_TRUE@am__append_6 = -Wl,--version-script=$(srcdir)/libgcj.ver
-@USING_GCC_TRUE@am__append_7 = $(WARNINGS)
-@USING_BOEHMGC_TRUE@am__append_8 = boehm.cc
-@USING_NOGC_TRUE@am__append_9 = nogc.cc
-@USING_POSIX_PLATFORM_TRUE@am__append_10 = posix.cc
-@USING_WIN32_PLATFORM_TRUE@am__append_11 = win32.cc
-@USING_DARWIN_CRT_TRUE@am__append_12 = darwin.cc
-@USING_POSIX_THREADS_TRUE@am__append_13 = posix-threads.cc
-@USING_WIN32_THREADS_TRUE@am__append_14 = win32-threads.cc
-@USING_NO_THREADS_TRUE@am__append_15 = no-threads.cc
-@ANONVERSCRIPT_TRUE@am__append_16 = $(srcdir)/libgcj.ver
+@ANONVERSCRIPT_TRUE@am__append_7 = -Wl,--version-script=$(srcdir)/libgcj.ver
+@USING_GCC_TRUE@am__append_8 = $(WARNINGS)
+@USING_BOEHMGC_TRUE@am__append_9 = boehm.cc
+@USING_NOGC_TRUE@am__append_10 = nogc.cc
+@USING_POSIX_PLATFORM_TRUE@am__append_11 = posix.cc
+@USING_WIN32_PLATFORM_TRUE@am__append_12 = win32.cc
+@USING_DARWIN_CRT_TRUE@am__append_13 = darwin.cc
+@USING_POSIX_THREADS_TRUE@am__append_14 = posix-threads.cc
+@USING_WIN32_THREADS_TRUE@am__append_15 = win32-threads.cc
+@USING_NO_THREADS_TRUE@am__append_16 = no-threads.cc
+@ANONVERSCRIPT_TRUE@am__append_17 = $(srcdir)/libgcj.ver
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
        $(srcdir)/../config.guess $(srcdir)/../config.sub \
        $(srcdir)/../depcomp $(srcdir)/../install-sh \
@@ -80,8 +82,8 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
        $(top_srcdir)/scripts/jar.in COPYING ChangeLog NEWS THANKS
 @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@noinst_PROGRAMS =  \
 @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@    gen-from-JIS$(EXEEXT)
-@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_17 = libgcj_bc.la
-@XLIB_AWT_TRUE@am__append_18 = $(xlib_nat_headers)
+@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_18 = libgcj_bc.la
+@XLIB_AWT_TRUE@am__append_19 = $(xlib_nat_headers)
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
@@ -183,14 +185,14 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
        gnu/java/awt/java2d.lo gnu/java/awt/peer.lo \
        gnu/java/awt/peer/headless.lo gnu/java/awt/print.lo \
        gnu/java/io.lo gnu/java/lang.lo gnu/java/lang/reflect.lo \
-       gnu/java/locale.lo gnu/java/math.lo gnu/java/net.lo \
-       gnu/java/net/loader.lo gnu/java/net/local.lo \
-       gnu/java/net/protocol/core.lo gnu/java/net/protocol/file.lo \
-       gnu/java/net/protocol/ftp.lo gnu/java/net/protocol/gcjlib.lo \
-       gnu/java/net/protocol/http.lo gnu/java/net/protocol/https.lo \
-       gnu/java/net/protocol/jar.lo gnu/java/nio.lo \
-       gnu/java/nio/channels.lo gnu/java/nio/charset.lo \
-       gnu/java/rmi.lo gnu/java/rmi/activation.lo gnu/java/rmi/dgc.lo \
+       gnu/java/locale.lo gnu/java/net.lo gnu/java/net/loader.lo \
+       gnu/java/net/local.lo gnu/java/net/protocol/core.lo \
+       gnu/java/net/protocol/file.lo gnu/java/net/protocol/ftp.lo \
+       gnu/java/net/protocol/gcjlib.lo gnu/java/net/protocol/http.lo \
+       gnu/java/net/protocol/https.lo gnu/java/net/protocol/jar.lo \
+       gnu/java/nio.lo gnu/java/nio/channels.lo \
+       gnu/java/nio/charset.lo gnu/java/rmi.lo \
+       gnu/java/rmi/activation.lo gnu/java/rmi/dgc.lo \
        gnu/java/rmi/registry.lo gnu/java/rmi/server.lo \
        gnu/java/security.lo gnu/java/security/action.lo \
        gnu/java/security/ber.lo gnu/java/security/der.lo \
@@ -204,18 +206,18 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
        gnu/java/security/x509.lo gnu/java/security/x509/ext.lo \
        gnu/java/text.lo gnu/java/util.lo gnu/java/util/jar.lo \
        gnu/java/util/prefs.lo gnu/java/util/regex.lo \
-       gnu/javax/crypto.lo gnu/javax/crypto/assembly.lo \
-       gnu/javax/crypto/cipher.lo gnu/javax/crypto/jce.lo \
-       gnu/javax/crypto/jce/cipher.lo gnu/javax/crypto/jce/key.lo \
-       gnu/javax/crypto/jce/keyring.lo gnu/javax/crypto/jce/mac.lo \
-       gnu/javax/crypto/jce/params.lo gnu/javax/crypto/jce/prng.lo \
-       gnu/javax/crypto/jce/sig.lo gnu/javax/crypto/jce/spec.lo \
-       gnu/javax/crypto/key.lo gnu/javax/crypto/key/dh.lo \
-       gnu/javax/crypto/key/srp6.lo gnu/javax/crypto/keyring.lo \
-       gnu/javax/crypto/kwa.lo gnu/javax/crypto/mac.lo \
-       gnu/javax/crypto/mode.lo gnu/javax/crypto/pad.lo \
-       gnu/javax/crypto/prng.lo gnu/javax/crypto/sasl.lo \
-       gnu/javax/crypto/sasl/anonymous.lo \
+       gnu/javax/activation/viewers.lo gnu/javax/crypto.lo \
+       gnu/javax/crypto/assembly.lo gnu/javax/crypto/cipher.lo \
+       gnu/javax/crypto/jce.lo gnu/javax/crypto/jce/cipher.lo \
+       gnu/javax/crypto/jce/key.lo gnu/javax/crypto/jce/keyring.lo \
+       gnu/javax/crypto/jce/mac.lo gnu/javax/crypto/jce/params.lo \
+       gnu/javax/crypto/jce/prng.lo gnu/javax/crypto/jce/sig.lo \
+       gnu/javax/crypto/jce/spec.lo gnu/javax/crypto/key.lo \
+       gnu/javax/crypto/key/dh.lo gnu/javax/crypto/key/srp6.lo \
+       gnu/javax/crypto/keyring.lo gnu/javax/crypto/kwa.lo \
+       gnu/javax/crypto/mac.lo gnu/javax/crypto/mode.lo \
+       gnu/javax/crypto/pad.lo gnu/javax/crypto/prng.lo \
+       gnu/javax/crypto/sasl.lo gnu/javax/crypto/sasl/anonymous.lo \
        gnu/javax/crypto/sasl/crammd5.lo \
        gnu/javax/crypto/sasl/plain.lo gnu/javax/crypto/sasl/srp.lo \
        gnu/javax/imageio.lo gnu/javax/imageio/bmp.lo \
@@ -263,16 +265,17 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
        java/util/concurrent/atomic.lo java/util/concurrent/locks.lo \
        java/util/jar.lo java/util/logging.lo java/util/prefs.lo \
        java/util/regex.lo java/util/spi.lo java/util/zip.lo \
-       javax/accessibility.lo javax/activity.lo javax/crypto.lo \
-       javax/crypto/interfaces.lo javax/crypto/spec.lo \
-       javax/management.lo javax/management/loading.lo \
-       javax/management/openmbean.lo javax/management/remote.lo \
-       javax/management/remote/rmi.lo javax/naming.lo \
-       javax/naming/directory.lo javax/naming/event.lo \
-       javax/naming/ldap.lo javax/naming/spi.lo javax/net.lo \
-       javax/net/ssl.lo javax/print.lo javax/print/attribute.lo \
-       javax/print/attribute/standard.lo javax/print/event.lo \
-       javax/security/auth.lo javax/security/auth/callback.lo \
+       javax/accessibility.lo javax/activation.lo javax/activity.lo \
+       javax/crypto.lo javax/crypto/interfaces.lo \
+       javax/crypto/spec.lo javax/management.lo \
+       javax/management/loading.lo javax/management/openmbean.lo \
+       javax/management/remote.lo javax/management/remote/rmi.lo \
+       javax/naming.lo javax/naming/directory.lo \
+       javax/naming/event.lo javax/naming/ldap.lo javax/naming/spi.lo \
+       javax/net.lo javax/net/ssl.lo javax/print.lo \
+       javax/print/attribute.lo javax/print/attribute/standard.lo \
+       javax/print/event.lo javax/security/auth.lo \
+       javax/security/auth/callback.lo \
        javax/security/auth/kerberos.lo javax/security/auth/login.lo \
        javax/security/auth/spi.lo javax/security/auth/x500.lo \
        javax/security/cert.lo javax/security/sasl.lo \
@@ -292,7 +295,7 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
        sun/reflect/misc.lo $(am__DEPENDENCIES_1)
 am__DEPENDENCIES_3 = gnu-CORBA.lo gnu-java-awt-dnd-peer-gtk.lo \
        gnu-java-awt-peer-gtk.lo gnu-java-awt-peer-swing.lo \
-       gnu-java-beans.lo gnu-java-lang-management.lo \
+       gnu-java-beans.lo gnu-java-lang-management.lo gnu-java-math.lo \
        gnu-java-util-prefs-gconf.lo gnu-javax-management.lo \
        gnu-javax-rmi.lo gnu-javax-sound-midi.lo gnu-xml-aelfred2.lo \
        gnu-xml-dom.lo gnu-xml-libxmlj.lo gnu-xml-pipeline.lo \
@@ -352,12 +355,11 @@ am__libgcj_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
        java/lang/natConcreteProcess.cc java/lang/natVMDouble.cc \
        java/lang/natVMFloat.cc java/lang/natMath.cc \
        java/lang/natObject.cc java/lang/natRuntime.cc \
-       java/lang/natString.cc java/lang/natStringBuffer.cc \
-       java/lang/natStringBuilder.cc java/lang/natSystem.cc \
-       java/lang/natThread.cc java/lang/natThreadLocal.cc \
-       java/lang/natVMClassLoader.cc java/lang/natVMProcess.cc \
-       java/lang/natVMThrowable.cc java/lang/ref/natReference.cc \
-       java/lang/reflect/natArray.cc \
+       java/lang/natString.cc java/lang/natAbstractStringBuffer.cc \
+       java/lang/natSystem.cc java/lang/natThread.cc \
+       java/lang/natThreadLocal.cc java/lang/natVMClassLoader.cc \
+       java/lang/natVMProcess.cc java/lang/natVMThrowable.cc \
+       java/lang/ref/natReference.cc java/lang/reflect/natArray.cc \
        java/lang/reflect/natConstructor.cc \
        java/lang/reflect/natField.cc java/lang/reflect/natMethod.cc \
        java/lang/reflect/natVMProxy.cc java/net/natVMInetAddress.cc \
@@ -417,12 +419,11 @@ am__objects_5 = $(am__objects_3) gnu/classpath/natConfiguration.lo \
        java/lang/natConcreteProcess.lo java/lang/natVMDouble.lo \
        java/lang/natVMFloat.lo java/lang/natMath.lo \
        java/lang/natObject.lo java/lang/natRuntime.lo \
-       java/lang/natString.lo java/lang/natStringBuffer.lo \
-       java/lang/natStringBuilder.lo java/lang/natSystem.lo \
-       java/lang/natThread.lo java/lang/natThreadLocal.lo \
-       java/lang/natVMClassLoader.lo java/lang/natVMProcess.lo \
-       java/lang/natVMThrowable.lo java/lang/ref/natReference.lo \
-       java/lang/reflect/natArray.lo \
+       java/lang/natString.lo java/lang/natAbstractStringBuffer.lo \
+       java/lang/natSystem.lo java/lang/natThread.lo \
+       java/lang/natThreadLocal.lo java/lang/natVMClassLoader.lo \
+       java/lang/natVMProcess.lo java/lang/natVMThrowable.lo \
+       java/lang/ref/natReference.lo java/lang/reflect/natArray.lo \
        java/lang/reflect/natConstructor.lo \
        java/lang/reflect/natField.lo java/lang/reflect/natMethod.lo \
        java/lang/reflect/natVMProxy.lo java/net/natVMInetAddress.lo \
@@ -457,6 +458,7 @@ am_libgij_la_OBJECTS = gij.lo
 libgij_la_OBJECTS = $(am_libgij_la_OBJECTS)
 am_libjvm_la_OBJECTS = jni-libjvm.lo
 libjvm_la_OBJECTS = $(am_libjvm_la_OBJECTS)
+@CREATE_GJDOC_TRUE@@NATIVE_TRUE@am__EXEEXT_1 = gjdoc$(EXEEXT)
 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 libexecsubPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS) $(libexecsub_PROGRAMS) $(noinst_PROGRAMS)
@@ -484,6 +486,8 @@ am_gjarsigner_OBJECTS =
 gjarsigner_OBJECTS = $(am_gjarsigner_OBJECTS)
 am_gjavah_OBJECTS =
 gjavah_OBJECTS = $(am_gjavah_OBJECTS)
+am_gjdoc_OBJECTS =
+gjdoc_OBJECTS = $(am_gjdoc_OBJECTS)
 am_gkeytool_OBJECTS =
 gkeytool_OBJECTS = $(am_gkeytool_OBJECTS)
 am_gnative2ascii_OBJECTS =
@@ -533,10 +537,11 @@ SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(libgcj_tools_la_SOURCES) \
        $(libjvm_la_SOURCES) $(ecjx_SOURCES) $(gappletviewer_SOURCES) \
        $(gc_analyze_SOURCES) $(gcj_dbtool_SOURCES) $(gcjh_SOURCES) \
        $(gen_from_JIS_SOURCES) $(gij_SOURCES) $(gjar_SOURCES) \
-       $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gkeytool_SOURCES) \
-       $(gnative2ascii_SOURCES) $(gorbd_SOURCES) $(grmic_SOURCES) \
-       $(grmid_SOURCES) $(grmiregistry_SOURCES) $(gserialver_SOURCES) \
-       $(gtnameserv_SOURCES) $(jv_convert_SOURCES)
+       $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gjdoc_SOURCES) \
+       $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \
+       $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \
+       $(gserialver_SOURCES) $(gtnameserv_SOURCES) \
+       $(jv_convert_SOURCES)
 DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
        $(libgcj_tools_la_SOURCES) $(am__libgcj_la_SOURCES_DIST) \
        $(EXTRA_libgcj_la_SOURCES) $(libgcj_bc_la_SOURCES) \
@@ -545,10 +550,10 @@ DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
        $(gcj_dbtool_SOURCES) $(gcjh_SOURCES) \
        $(am__gen_from_JIS_SOURCES_DIST) $(gij_SOURCES) \
        $(gjar_SOURCES) $(gjarsigner_SOURCES) $(gjavah_SOURCES) \
-       $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \
-       $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \
-       $(gserialver_SOURCES) $(gtnameserv_SOURCES) \
-       $(jv_convert_SOURCES)
+       $(gjdoc_SOURCES) $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) \
+       $(gorbd_SOURCES) $(grmic_SOURCES) $(grmid_SOURCES) \
+       $(grmiregistry_SOURCES) $(gserialver_SOURCES) \
+       $(gtnameserv_SOURCES) $(jv_convert_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        html-recursive info-recursive install-data-recursive \
        install-exec-recursive install-info-recursive \
@@ -579,6 +584,7 @@ AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
 ANONVERSCRIPT_FALSE = @ANONVERSCRIPT_FALSE@
 ANONVERSCRIPT_TRUE = @ANONVERSCRIPT_TRUE@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -599,6 +605,8 @@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CPU = @CPU@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
 CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@
 CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@
 CXX = @CXX@
@@ -821,7 +829,7 @@ dbexecdir = @dbexecdir@
 exec_prefix = @exec_prefix@
 extra_gij_ldflags = @extra_gij_ldflags@
 extra_ldflags = @extra_ldflags@
-extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_6)
+extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_7)
 gcc_suffix = @gcc_suffix@
 gcjsubdir = @gcjsubdir@
 gxx_include_dir = @gxx_include_dir@
@@ -909,7 +917,7 @@ db_name = classmap.db
 db_pathtail = $(gcjsubdir)/$(db_name)
 @NATIVE_TRUE@dbexec_DATA = $(db_name)
 bin_SCRIPTS = addr2name.awk contrib/rebuild-gcj-db contrib/aot-compile \
-       $(am__append_5)
+       $(am__append_6)
 GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated
 GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) \
           $(LDFLAGS) -o $@
@@ -947,7 +955,7 @@ AM_GCJFLAGS = \
        --encoding=UTF-8 \
        -Wno-deprecated -fbootstrap-classes
 
-AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_7)
+AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_8)
 @SUPPRESS_LIBGCJ_BC_FALSE@LIBGCJ_BC_FLAGS = -findirect-dispatch -fno-indirect-classes
 @SUPPRESS_LIBGCJ_BC_TRUE@LIBGCJ_BC_FLAGS = 
 @BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE@LIBGCJ_REDUCED_REFLECTION_FLAGS = 
@@ -974,9 +982,9 @@ libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
 @INTERPRETER_TRUE@libgcj_interpret_source_files = jvmti.cc interpret.cc
 libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc link.cc \
        defineclass.cc verify.cc $(libgcj_interpret_source_files) \
-       $(nat_source_files) $(am__append_8) $(am__append_9) \
-       $(am__append_10) $(am__append_11) $(am__append_12) \
-       $(am__append_13) $(am__append_14) $(am__append_15)
+       $(nat_source_files) $(am__append_9) $(am__append_10) \
+       $(am__append_11) $(am__append_12) $(am__append_13) \
+       $(am__append_14) $(am__append_15) $(am__append_16)
 nat_files = $(nat_source_files:.cc=.lo)
 xlib_nat_files = $(xlib_nat_source_files:.cc=.lo)
 
@@ -1000,7 +1008,7 @@ libgcj_la_LIBADD = \
 libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar java/lang/Object.lo \
        java/lang/Class.lo java/process-$(PLATFORM).lo \
        $(all_packages_source_files:.list=.lo) $(LIBLTDL) \
-       $(libgcj_la_LIBADD) $(am__append_16)
+       $(libgcj_la_LIBADD) $(am__append_17)
 libgcj_la_LINK = $(LIBLINK)
 EXTRA_libgcj_la_SOURCES = java/lang/Object.java
 libgcj_tools_la_SOURCES = classpath/tools/tools.zip
@@ -1239,7 +1247,7 @@ gnu/awt/xlib/XToolkit.java
 
 gnu_awt_xlib_header_files = $(patsubst %.java,%.h,$(gnu_awt_xlib_source_files))
 gnu_classpath_source_files = \
-gnu/classpath/Configuration.java \
+classpath/gnu/classpath/Configuration.java \
 classpath/gnu/classpath/NotImplementedException.java \
 classpath/gnu/classpath/Pair.java \
 classpath/gnu/classpath/Pointer.java \
@@ -1870,10 +1878,12 @@ classpath/gnu/java/io/PlatformHelper.java
 gnu_java_io_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_io_source_files)))
 gnu_java_lang_source_files = \
 classpath/gnu/java/lang/ArrayHelper.java \
+classpath/gnu/java/lang/CPStringBuilder.java \
 classpath/gnu/java/lang/CharData.java \
 classpath/gnu/java/lang/ClassHelper.java \
 classpath/gnu/java/lang/InstrumentationImpl.java \
 gnu/java/lang/MainThread.java \
+gnu/java/lang/VMCPStringBuilder.java \
 gnu/java/lang/VMInstrumentationImpl.java
 
 gnu_java_lang_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_lang_source_files)))
@@ -1915,9 +1925,9 @@ classpath/gnu/java/locale/LocaleHelper.java
 gnu_java_locale_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_locale_source_files)))
 gnu_java_math_source_files = \
 classpath/gnu/java/math/Fixed.java \
+classpath/gnu/java/math/GMP.java \
 classpath/gnu/java/math/MPN.java
 
-gnu_java_math_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_math_source_files)))
 gnu_java_net_source_files = \
 classpath/gnu/java/net/CRLFInputStream.java \
 classpath/gnu/java/net/CRLFOutputStream.java \
@@ -2420,7 +2430,6 @@ classpath/gnu/java/util/jar/JarUtils.java
 
 gnu_java_util_jar_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_util_jar_source_files)))
 gnu_java_util_prefs_source_files = \
-classpath/gnu/java/util/prefs/EventDispatcher.java \
 classpath/gnu/java/util/prefs/FileBasedFactory.java \
 classpath/gnu/java/util/prefs/FileBasedPreferences.java \
 classpath/gnu/java/util/prefs/GConfBasedFactory.java \
@@ -2468,6 +2477,12 @@ classpath/gnu/java/util/regex/RETokenWordBoundary.java \
 classpath/gnu/java/util/regex/UncheckedRE.java
 
 gnu_java_util_regex_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_util_regex_source_files)))
+gnu_javax_activation_viewers_source_files = \
+classpath/gnu/javax/activation/viewers/ImageViewer.java \
+classpath/gnu/javax/activation/viewers/TextEditor.java \
+classpath/gnu/javax/activation/viewers/TextViewer.java
+
+gnu_javax_activation_viewers_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_activation_viewers_source_files)))
 gnu_javax_crypto_source_files = \
 classpath/gnu/javax/crypto/RSACipherImpl.java
 
@@ -4228,6 +4243,7 @@ classpath/java/io/Writer.java
 java_io_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_io_source_files)))
 java_lang_source_files = \
 classpath/java/lang/AbstractMethodError.java \
+java/lang/AbstractStringBuffer.java \
 classpath/java/lang/Appendable.java \
 classpath/java/lang/ArithmeticException.java \
 classpath/java/lang/ArrayIndexOutOfBoundsException.java \
@@ -4311,6 +4327,7 @@ java/lang/Thread.java \
 classpath/java/lang/ThreadDeath.java \
 classpath/java/lang/ThreadGroup.java \
 java/lang/ThreadLocal.java \
+classpath/java/lang/ThreadLocalMap.java \
 classpath/java/lang/Throwable.java \
 classpath/java/lang/TypeNotPresentException.java \
 classpath/java/lang/UnknownError.java \
@@ -4949,6 +4966,7 @@ classpath/external/jsr166/java/util/Queue.java \
 classpath/java/util/Random.java \
 classpath/java/util/RandomAccess.java \
 classpath/java/util/ResourceBundle.java \
+classpath/java/util/Scanner.java \
 classpath/java/util/ServiceConfigurationError.java \
 classpath/java/util/ServiceLoader.java \
 classpath/java/util/Set.java \
@@ -5152,6 +5170,29 @@ classpath/javax/accessibility/AccessibleTextSequence.java \
 classpath/javax/accessibility/AccessibleValue.java
 
 javax_accessibility_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_accessibility_source_files)))
+javax_activation_source_files = \
+classpath/javax/activation/ActivationDataFlavor.java \
+classpath/javax/activation/CommandInfo.java \
+classpath/javax/activation/CommandMap.java \
+classpath/javax/activation/CommandObject.java \
+classpath/javax/activation/DataContentHandler.java \
+classpath/javax/activation/DataContentHandlerFactory.java \
+classpath/javax/activation/DataHandler.java \
+classpath/javax/activation/DataHandlerDataSource.java \
+classpath/javax/activation/DataSource.java \
+classpath/javax/activation/DataSourceDataContentHandler.java \
+classpath/javax/activation/FileDataSource.java \
+classpath/javax/activation/FileTypeMap.java \
+classpath/javax/activation/MailcapCommandMap.java \
+classpath/javax/activation/MimeType.java \
+classpath/javax/activation/MimeTypeParameterList.java \
+classpath/javax/activation/MimeTypeParseException.java \
+classpath/javax/activation/MimetypesFileTypeMap.java \
+classpath/javax/activation/ObjectDataContentHandler.java \
+classpath/javax/activation/URLDataSource.java \
+classpath/javax/activation/UnsupportedDataTypeException.java
+
+javax_activation_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_activation_source_files)))
 javax_activity_source_files = \
 classpath/javax/activity/ActivityCompletedException.java \
 classpath/javax/activity/ActivityRequiredException.java \
@@ -7362,7 +7403,6 @@ all_packages_source_files = \
   gnu/java/lang.list \
   gnu/java/lang/reflect.list \
   gnu/java/locale.list \
-  gnu/java/math.list \
   gnu/java/net.list \
   gnu/java/net/loader.list \
   gnu/java/net/local.list \
@@ -7406,6 +7446,7 @@ all_packages_source_files = \
   gnu/java/util/jar.list \
   gnu/java/util/prefs.list \
   gnu/java/util/regex.list \
+  gnu/javax/activation/viewers.list \
   gnu/javax/crypto.list \
   gnu/javax/crypto/assembly.list \
   gnu/javax/crypto/cipher.list \
@@ -7524,6 +7565,7 @@ all_packages_source_files = \
   java/util/spi.list \
   java/util/zip.list \
   javax/accessibility.list \
+  javax/activation.list \
   javax/activity.list \
   javax/crypto.list \
   javax/crypto/interfaces.list \
@@ -7614,7 +7656,6 @@ ordinary_header_files = \
   $(gnu_java_lang_management_header_files) \
   $(gnu_java_lang_reflect_header_files) \
   $(gnu_java_locale_header_files) \
-  $(gnu_java_math_header_files) \
   $(gnu_java_net_header_files) \
   $(gnu_java_net_loader_header_files) \
   $(gnu_java_net_local_header_files) \
@@ -7658,6 +7699,7 @@ ordinary_header_files = \
   $(gnu_java_util_jar_header_files) \
   $(gnu_java_util_prefs_header_files) \
   $(gnu_java_util_regex_header_files) \
+  $(gnu_javax_activation_viewers_header_files) \
   $(gnu_javax_crypto_header_files) \
   $(gnu_javax_crypto_assembly_header_files) \
   $(gnu_javax_crypto_cipher_header_files) \
@@ -7771,6 +7813,7 @@ ordinary_header_files = \
   $(java_util_spi_header_files) \
   $(java_util_zip_header_files) \
   $(javax_accessibility_header_files) \
+  $(javax_activation_header_files) \
   $(javax_activity_header_files) \
   $(javax_crypto_header_files) \
   $(javax_crypto_interfaces_header_files) \
@@ -7839,6 +7882,7 @@ bc_objects = \
   gnu-java-awt-peer-swing.lo \
   gnu-java-beans.lo \
   gnu-java-lang-management.lo \
+  gnu-java-math.lo \
   gnu-java-util-prefs-gconf.lo \
   gnu-javax-management.lo \
   gnu-javax-rmi.lo \
@@ -7883,7 +7927,9 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_aa_ET.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_af.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_af_NA.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_af_ZA.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ak.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_am.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_am_ET.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ar.properties \
@@ -7906,11 +7952,14 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_bg_BG.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_bn.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_bn_IN.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_bo.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_bs.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_byn.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_byn_ER.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ca.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ca_ES.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_cch.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_cop.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_cs.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_cs_CZ.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_cy.properties \
@@ -7928,6 +7977,7 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_dv_MV.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_dz.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_dz_BT.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ee.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_el.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_el_CY.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_el_GR.properties \
@@ -7938,18 +7988,23 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_en_BW.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_BZ.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_CA.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_GB.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_GU.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_HK.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_IE.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_IN.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_en_JM.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_MH.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_MP.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_MT.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_en_NA.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_NZ.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_PH.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_PK.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_SG.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_en_Shaw.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_en_TT.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_UM.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_US.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties \
@@ -7987,6 +8042,7 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_fa_IR.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fi.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fi_FI.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_fil.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fo.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fo_FO.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fr.properties \
@@ -7994,8 +8050,10 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_fr_CA.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fr_CH.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fr_LU.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_fur.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ga.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ga_IE.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_gaa.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_gez.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_gez_ER.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_gez_ET.properties \
@@ -8005,6 +8063,8 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_gu_IN.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_gv.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_gv_GB.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ha.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ha_Arab.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_haw.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_haw_US.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_he.properties \
@@ -8017,8 +8077,11 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_hy.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_hy_AM.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ia.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_id.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_id_ID.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ig.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ii.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_is.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_is_IS.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_it.properties \
@@ -8028,6 +8091,10 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ja.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ja_JP.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ka.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_kaj.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_kam.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_kcg.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_kfo.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kk.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kk_KZ.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kl.properties \
@@ -8040,9 +8107,14 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ko_KR.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kok.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kok_IN.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_kpe.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ku.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ku_Arab.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ku_Latn.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kw.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kw_GB.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ky.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ln.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_lo.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_lo_LA.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_lt.properties \
@@ -8060,19 +8132,25 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ms_MY.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_mt.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_mt_MT.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_my.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nb.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nb_NO.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ne.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nl.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nl_BE.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nl_NL.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nn.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nn_NO.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_nr.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_nso.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ny.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_om.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_om_ET.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_om_KE.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_or.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_or_IN.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_pa.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_pa_Arab.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_pa_IN.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_pl.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_pl_PL.properties \
@@ -8086,8 +8164,12 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ru.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ru_RU.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ru_UA.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_rw.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sa.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sa_IN.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_se.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_se_FI.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_si.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sid.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sid_ET.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sk.properties \
@@ -8106,6 +8188,11 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_sr_BA_Latn.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sr_Cyrl.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sr_Latn.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ss.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ssy.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_st.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sv.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sv_FI.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sv_SE.properties \
@@ -8118,6 +8205,7 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ta_IN.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_te.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_te_IN.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_tg.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_th.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_th_TH.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ti.properties \
@@ -8125,20 +8213,30 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ti_ET.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tig.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tig_ER.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_tn.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_to.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tr.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tr_TR.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_trv.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ts.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tt.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tt_RU.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ug.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uk.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uk_UA.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ur.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ur_IN.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uz.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uz_AF_Arab.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uz_Arab.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uz_Latn.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ve.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_vi.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_wal.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_wal_ET.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_wo.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_xh.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_yo.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_zh.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_zh_CN_Hans.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties \
@@ -8146,13 +8244,16 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_zh_TW_Hant.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_zu.properties \
   classpath/resource/gnu/java/util/regex/MessagesBundle.properties \
   classpath/resource/gnu/java/util/regex/MessagesBundle_fr.properties \
   classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties \
   classpath/resource/gnu/javax/print/PrinterDialog.properties \
   classpath/resource/gnu/javax/print/PrinterDialog_de.properties \
   classpath/resource/gnu/javax/security/auth/callback/MessagesBundle.properties \
+  classpath/resource/java/text/metazones.properties \
   classpath/resource/java/util/iso4217.properties \
+  classpath/resource/java/util/weeks.properties \
   classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \
   classpath/resource/javax/swing/text/html/default.css \
   classpath/resource/org/ietf/jgss/MessagesBundle.properties \
@@ -8244,7 +8345,7 @@ ECJX_BASE_FLAGS = -findirect-dispatch \
 @NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs libgcj.la
 @NATIVE_FALSE@ecjx_DEPENDENCIES = 
 @NATIVE_TRUE@ecjx_DEPENDENCIES = libgcj.la libgcj.spec \
-@NATIVE_TRUE@  $(am__append_17)
+@NATIVE_TRUE@  $(am__append_18)
 gappletviewer_SOURCES = 
 gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \
        -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
@@ -8336,6 +8437,14 @@ grmiregistry_LDFLAGS = --main=gnu.classpath.tools.rmiregistry.Main \
 grmiregistry_LINK = $(GCJLINK)
 grmiregistry_LDADD = -L$(here)/.libs libgcj-tools.la
 grmiregistry_DEPENDENCIES = libgcj-tools.la
+gjdoc_SOURCES = 
+gjdoc_LDFLAGS = --main=gnu.classpath.tools.gjdoc.Main \
+       -Djava.class.path=$(ANTLR_JAR) \
+       -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
+
+gjdoc_LINK = $(GCJLINK)
+gjdoc_LDADD = -L$(here)/.libs libgcj-tools.la
+gjdoc_DEPENDENCIES = libgcj-tools.la
 @INTERPRETER_FALSE@nat_jdwp_source_files = 
 @INTERPRETER_TRUE@nat_jdwp_source_files = \
 @INTERPRETER_TRUE@gnu/classpath/jdwp/natVMFrame.cc \
@@ -8401,8 +8510,7 @@ java/lang/natMath.cc \
 java/lang/natObject.cc \
 java/lang/natRuntime.cc        \
 java/lang/natString.cc \
-java/lang/natStringBuffer.cc \
-java/lang/natStringBuilder.cc \
+java/lang/natAbstractStringBuffer.cc \
 java/lang/natSystem.cc \
 java/lang/natThread.cc \
 java/lang/natThreadLocal.cc \
@@ -8453,7 +8561,7 @@ gnu/gcj/xlib/natXImage.cc \
 gnu/gcj/xlib/natXUnmapEvent.cc
 
 sourcesdir = $(jardir)
-headers_to_make = $(nat_headers) $(am__append_18)
+headers_to_make = $(nat_headers) $(am__append_19)
 
 # Work around what appears to be a GNU make bug handling MAKEFLAGS
 # values defined in terms of make variables, as is the case for CC and
@@ -8919,9 +9027,7 @@ java/lang/natRuntime.lo: java/lang/$(am__dirstamp) \
        java/lang/$(DEPDIR)/$(am__dirstamp)
 java/lang/natString.lo: java/lang/$(am__dirstamp) \
        java/lang/$(DEPDIR)/$(am__dirstamp)
-java/lang/natStringBuffer.lo: java/lang/$(am__dirstamp) \
-       java/lang/$(DEPDIR)/$(am__dirstamp)
-java/lang/natStringBuilder.lo: java/lang/$(am__dirstamp) \
+java/lang/natAbstractStringBuffer.lo: java/lang/$(am__dirstamp) \
        java/lang/$(DEPDIR)/$(am__dirstamp)
 java/lang/natSystem.lo: java/lang/$(am__dirstamp) \
        java/lang/$(DEPDIR)/$(am__dirstamp)
@@ -9165,6 +9271,9 @@ gjarsigner$(EXEEXT): $(gjarsigner_OBJECTS) $(gjarsigner_DEPENDENCIES)
 gjavah$(EXEEXT): $(gjavah_OBJECTS) $(gjavah_DEPENDENCIES) 
        @rm -f gjavah$(EXEEXT)
        $(gjavah_LINK) $(gjavah_LDFLAGS) $(gjavah_OBJECTS) $(gjavah_LDADD) $(LIBS)
+gjdoc$(EXEEXT): $(gjdoc_OBJECTS) $(gjdoc_DEPENDENCIES) 
+       @rm -f gjdoc$(EXEEXT)
+       $(gjdoc_LINK) $(gjdoc_LDFLAGS) $(gjdoc_OBJECTS) $(gjdoc_LDADD) $(LIBS)
 gkeytool$(EXEEXT): $(gkeytool_OBJECTS) $(gkeytool_DEPENDENCIES) 
        @rm -f gkeytool$(EXEEXT)
        $(gkeytool_LINK) $(gkeytool_LDFLAGS) $(gkeytool_OBJECTS) $(gkeytool_LDADD) $(LIBS)
@@ -9353,6 +9462,8 @@ mostlyclean-compile:
        -rm -f java/io/natVMObjectStreamClass.lo
        -rm -f java/lang/Object.$(OBJEXT)
        -rm -f java/lang/Object.lo
+       -rm -f java/lang/natAbstractStringBuffer.$(OBJEXT)
+       -rm -f java/lang/natAbstractStringBuffer.lo
        -rm -f java/lang/natCharacter.$(OBJEXT)
        -rm -f java/lang/natCharacter.lo
        -rm -f java/lang/natClass.$(OBJEXT)
@@ -9369,10 +9480,6 @@ mostlyclean-compile:
        -rm -f java/lang/natRuntime.lo
        -rm -f java/lang/natString.$(OBJEXT)
        -rm -f java/lang/natString.lo
-       -rm -f java/lang/natStringBuffer.$(OBJEXT)
-       -rm -f java/lang/natStringBuffer.lo
-       -rm -f java/lang/natStringBuilder.$(OBJEXT)
-       -rm -f java/lang/natStringBuilder.lo
        -rm -f java/lang/natSystem.$(OBJEXT)
        -rm -f java/lang/natSystem.lo
        -rm -f java/lang/natThread.$(OBJEXT)
@@ -9524,6 +9631,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@java/io/$(DEPDIR)/natVMObjectInputStream.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@java/io/$(DEPDIR)/natVMObjectStreamClass.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/Object.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natAbstractStringBuffer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natCharacter.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natClass.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natClassLoader.Plo@am__quote@
@@ -9532,8 +9640,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natObject.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natRuntime.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natString.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natStringBuffer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natStringBuilder.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natSystem.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natThread.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natThreadLocal.Plo@am__quote@
@@ -10696,11 +10802,10 @@ gnu/java/locale.list: $(gnu_java_locale_source_files)
 
 -include gnu/java/locale.deps
 
-gnu/java/math.list: $(gnu_java_math_source_files)
-       @$(mkinstalldirs) $(dir $@)
-       echo $(srcdir)/classpath/lib/gnu/java/math/*.class > gnu/java/math.list
-
--include gnu/java/math.deps
+gnu-java-math.lo: $(gnu_java_math_source_files)
+       @find $(srcdir)/classpath/lib/gnu/java/math -name '*.class' > gnu-java-math.list
+       $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-math.lo @gnu-java-math.list
+       @rm -f gnu-java-math.list
 
 gnu/java/net.list: $(gnu_java_net_source_files)
        @$(mkinstalldirs) $(dir $@)
@@ -10965,6 +11070,12 @@ gnu/java/util/regex.list: $(gnu_java_util_regex_source_files)
 
 -include gnu/java/util/regex.deps
 
+gnu/javax/activation/viewers.list: $(gnu_javax_activation_viewers_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/gnu/javax/activation/viewers/*.class > gnu/javax/activation/viewers.list
+
+-include gnu/javax/activation/viewers.deps
+
 gnu/javax/crypto.list: $(gnu_javax_crypto_source_files)
        @$(mkinstalldirs) $(dir $@)
        echo $(srcdir)/classpath/lib/gnu/javax/crypto/*.class > gnu/javax/crypto.list
@@ -11738,6 +11849,12 @@ javax/accessibility.list: $(javax_accessibility_source_files)
 
 -include javax/accessibility.deps
 
+javax/activation.list: $(javax_activation_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/javax/activation/*.class > javax/activation.list
+
+-include javax/activation.deps
+
 javax/activity.list: $(javax_activity_source_files)
        @$(mkinstalldirs) $(dir $@)
        echo $(srcdir)/classpath/lib/javax/activity/*.class > javax/activity.list
index be17176a6f07795d844487f3f857462d07e98353..19a2658b7e1d3a401051a01a75b99a77e2eb9088 100644 (file)
@@ -22,6 +22,7 @@ Thomas Fitzsimmons (fitzsim@redhat.com)
 Jeroen Frijters (jeroen@frijters.net)
 David Gilbert (david.gilbert@object-refinery.com)
 Anthony Green (green@redhat.com)
+Laszlo Andras Hernadi (e0327023@student.tuwien.ac.at)
 Jochen Hoenicke (Jochen.Hoenicke@Informatik.Uni-Oldenburg.de)
 Andrew John Hughes (gnu_andrew@member.fsf.org)
 Kazumitsu Ito (kaz@maczuka.gcd.org)
@@ -42,6 +43,7 @@ Aaron M. Renn (arenn@urbanophile.com)
 Ian Rogers (ian.rogers@manchester.ac.uk)
 Andrew Selkirk (aselkirk@sympatico.ca)
 Robert Schuster (robertschuster@fsfe.org)
+Joshua Sumali (jsumali@redhat.com)
 Christian Thalinger (twisti@complang.tuwien.ac.at)
 Andreas Tobler (a.tobler@schweiz.org)
 Mario Torre (neugens@limasoftware.net)
index f8e2d43ee2c8191ba44a6615228d2ac785992571..f9db385f7c1f2833de1669d3450173d30bbfd278 100644 (file)
@@ -1,3 +1,436 @@
+2008-10-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * m4/ac_prog_antlr.m4:
+       Remove redundant checks.
+       * tools/Makefile.am:
+       Use gjdoc_gendir when calling antlr.
+
+2008-10-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * configure.ac:
+       Remove superfluous AC_PROG_JAVA call.
+
+2008-10-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * m4/ac_prog_antlr:
+       Check for cantlr as well.
+       * tools/Makefile.am:
+       Only build GJDoc parser when both
+       CREATE_GJDOC and CREATE_GJDOC_PARSER
+       are on.
+       
+2008-10-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * configure.ac:
+       Add regen-gjdoc-parser option,
+       and separate antlr tests.
+       * m4/ac_prog_antlr.m4:
+       Turn single test into AC_LIB_ANTLR
+       and AC_PROG_ANTLR.
+       * m4/ac_prog_java.m4:
+       Quote tests.
+       * tools/Makefile.am:
+       Support CREATE_GJDOC_PARSER option.
+
+2008-09-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * examples/Makefile.am:
+        Check lib directly as well as glibj.zip
+        for boot classes.
+       * m4/acinclude.m4:
+        Only require the class files to be built
+        to allow the tools and examples to be built,
+        not the installation of glibj.zip.
+       * tools/Makefile.am:
+       Check lib directly as well as glibj.zip
+       for boot classes.
+
+2008-09-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * examples/Makefile.am,
+       * lib/Makefile.am:
+       Add GCJ rules.
+       * m4/ac_prog_javac.m4:
+       Check whether JAVAC is gcj.
+       * m4/ac_prog_javac_works.m4:
+       Add GCJ rules.
+       * m4/acinclude.m4:
+       Don't bother checking for -J
+       if using GCJ.
+       * tools/Makefile.am:
+       Add GCJ rules.
+
+2007-08-23  Daniel Frampton  <zyridium@zyridium.net>
+
+       * AUTHORS: Added.
+       * java/lang/InheritableThreadLocal.java,
+       * java/lang/Thread.java,
+       * java/lang/ThreadLocal.java:
+       Modified to use java.lang.ThreadLocalMap.
+       * java/lang/ThreadLocalMap.java:
+       New cheaper ThreadLocal-specific WeakHashMap.
+
+2008-02-07  Ian Rogers  <ian.rogers@manchester.ac.uk>
+
+       * java/util/zip/ZipEntry.java:
+       Use byte fields instead of integer fields,
+       store the time as well as the DOS time and
+       don't retain a global Calendar instance.
+       (setDOSTime(int)): Set KNOWN_DOSTIME instead
+       of KNOWN_TIME, and unset KNOWN_TIME.
+       (getDOSTime()): Compute DOS time from UNIX time
+       only when needed.
+       (clone()): Provide cloning via the ZipEntry constructor
+       where possible.
+       (setTime(long)): Don't compute DOS time at this point.
+       (getCalendar()): Removed.
+       
+2008-09-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * tools/gnu/classpath/tools/getopt/Parser.java:
+       (setHeader(String)): Make synchronized.
+       (setFooter(String)): Likewise.
+       * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java,
+       (reset()): Make synchronized.
+       (name(Class)): Likewise.
+       
+2008-09-04  Robert Schuster  <robertschuster@fsfe.org>
+
+       * gnu/java/nio/charset/ByteDecodeLoopHelper:
+       (arrayDecodeLoop): Added new break label, escape to that label.
+       * gnu/java/nio/charset/ByteEncodeLoopHelper:
+       (arrayDecodeLoop): Added new break label, escape to that label.
+
+2008-09-04  Robert Schuster  <robertschuster@fsfe.org>
+
+       * java/text/DecimalFormat.java:
+       (scanFix): Use 'i + 1' when looking at following character.
+       (scanNegativePattern): Dito.
+
+2008-09-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * tools/gnu/classpath/tools/javah/ClassWrapper.java:
+       (makeVtable()): Populate methodNameMap.
+       (printMethods(CniPrintStream)): Always use pre-populated
+       methodNameMap for bridge targets.
+
+2008-09-01  Mario Torre  <neugens@aicas.com>
+
+       * gnu/java/awt/peer/x/XImage.java (XImageProducer): remove @Override
+       annotation to allow compilation on javac < 1.6 and ecj < 3.4.
+
+2008-09-01  Mario Torre  <neugens@aicas.com>
+
+       * gnu/java/awt/peer/x/XGraphicsDevice.java (getDisplay): fix to support
+       new Escher API.
+       * gnu/java/awt/peer/x/XImage.java (getSource): method implemented.
+       * gnu/java/awt/peer/x/XImage.java (XImageProducer): implement ImageProducer
+       for getSource.
+        
+2008-09-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/util/regex/BacktrackStack.java,
+       * gnu/java/util/regex/CharIndexed.java,
+       * gnu/java/util/regex/CharIndexedCharArray.java,
+       * gnu/java/util/regex/CharIndexedCharSequence.java,
+       * gnu/java/util/regex/CharIndexedInputStream.java,
+       * gnu/java/util/regex/CharIndexedString.java,
+       * gnu/java/util/regex/CharIndexedStringBuffer.java,
+       * gnu/java/util/regex/RE.java,
+       * gnu/java/util/regex/REException.java,
+       * gnu/java/util/regex/REFilterInputStream.java,
+       * gnu/java/util/regex/REMatch.java,
+       * gnu/java/util/regex/REMatchEnumeration.java,
+       * gnu/java/util/regex/RESyntax.java,
+       * gnu/java/util/regex/REToken.java,
+       * gnu/java/util/regex/RETokenAny.java,
+       * gnu/java/util/regex/RETokenBackRef.java,
+       * gnu/java/util/regex/RETokenChar.java,
+       * gnu/java/util/regex/RETokenEnd.java,
+       * gnu/java/util/regex/RETokenEndOfPreviousMatch.java,
+       * gnu/java/util/regex/RETokenEndSub.java,
+       * gnu/java/util/regex/RETokenIndependent.java,
+       * gnu/java/util/regex/RETokenLookAhead.java,
+       * gnu/java/util/regex/RETokenLookBehind.java,
+       * gnu/java/util/regex/RETokenNamedProperty.java,
+       * gnu/java/util/regex/RETokenOneOf.java,
+       * gnu/java/util/regex/RETokenPOSIX.java,
+       * gnu/java/util/regex/RETokenRange.java,
+       * gnu/java/util/regex/RETokenRepeated.java,
+       * gnu/java/util/regex/RETokenStart.java,
+       * gnu/java/util/regex/RETokenWordBoundary.java,
+       * gnu/java/util/regex/UncheckedRE.java:
+       Fix indentation.
+
+2008-09-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/util/regex/RETokenStart.java:
+       (getMaximumLength()): Add Override annotation.
+       (matchThis(CharIndexed, REMatch)): Likewise.
+       (returnsFixedLengthMatches()): Renamed from
+       returnsFixedLengthmatches and added Override
+       annotation.
+       (findFixedLengthMatches(CharIndexed,REMatch,int)):
+       Add Override annotation.
+       (dump(CPStringBuilder)): Likewise.
+       * gnu/javax/print/ipp/IppRequest.java:
+       (RequestWriter.writeOperationAttributes(AttributeSet)):
+       Throw exception, don't just create and drop it.
+       * javax/management/MBeanServerPermission.java:
+       (MBeanServerPermissionCollection.add(Permission)): Compare
+       against individual Strings not the entire array, and
+       store the result of replace.
+       * javax/swing/text/html/StyleSheet.java:
+       (setBaseFontSize(size)): Store result of trim().
+
+2008-09-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/tools/FileObject.java:
+       (openReader(boolean)): Document new parameter.
+       
+2008-03-27  Michael Franz  <mvfranz@gmail.com>
+
+       PR classpath/35690:
+       * javax/tools/FileObject.java:
+       (toUri()): Fix case from toURI.
+       (openReader(boolean)): Add missing boolean argument.
+       
+2008-08-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/35487:
+       * gnu/javax/management/Server.java:
+       (beans): Change to ConcurrentHashMap.
+       (defaultDomain): Make final.
+       (outer): Likewise.
+       (LazyListenersHolder): Added to wrap
+       listeners, also now a ConcurrentHashMap,
+       providing lazy initialisation safely.
+       (sequenceNumber): Documented.
+       (getBean(ObjectName)): Remove redundant cast.
+       (addNotificationListener(ObjectName,NotificationListener,
+       NotificationFilter,Object)): Remove map initialisation
+       and use holder.
+       (getObjectInstance(ObjectName)): Remove redundant cast.
+       (registerMBean(Object,ObjectName)): Add bean atomically.
+       (removeNotificationListener(ObjectName,NotificationListener)):
+       Simplified.
+       (removeNotificationListener(ObjectName,NotificationListener,
+       NotificationFilter,Object)): Likewise.
+       (notify(ObjectName,String)): Documented.
+       
+2008-08-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/javax/management/Server.java:
+       Genericised.
+
+2008-08-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/javax/management/Translator.java:
+       Genericised.
+
+2008-08-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/DefaultLoaderRepository.java,
+       * javax/management/JMX.java,
+       * javax/management/MBeanAttributeInfo.java,
+       * javax/management/MBeanConstructorInfo.java,
+       * javax/management/MBeanOperationInfo.java,
+       * javax/management/MBeanServerDelegate.java:
+       Fix warnings due to generics.
+
+2008-08-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/MBeanPermission.java,
+       * javax/management/MBeanServerDelegate.java,
+       * javax/management/MBeanServerFactory.java,
+       * javax/management/MBeanServerInvocationHandler.java,
+       * javax/management/MBeanServerPermission.java:
+       Fix warnings due to use of non-generic collections.
+
+2008-08-25  Mario Torre  <neugens@aicas.com>
+
+       * gnu/javax/rmi/CORBA/RmiUtilities.java (readValue): check if sender is
+       null to avoid NPE.
+       
+2008-08-22  Mario Torre  <neugens@aicas.com>
+       * gnu/CORBA/OrbFunctional.java (set_parameters): Fix
+       NullPointerException checking when param is null. 
+
+2008-08-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/util/regex/Matcher.java:
+       (reset()): Reset append position so
+       we don't try and append to the end of
+       the old input.
+       
+2008-08-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/32028:
+       * m4/acinclude.m4:
+       Also allow versions of GJDoc from 0.8* on, as
+       CVS is 0.8.0-pre.
+       
+2008-08-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/32028:
+       * m4/acinclude.m4:
+       (CLASSPATH_WITH_GJDOC): Ensure version 0.7.9 is
+       being used.
+       
+2008-08-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * tools/Makefile.am:
+       Add taglets subdirectory to list of excluded
+       paths when GJDoc is not compiled.
+       
+2008-08-19  David P Grove  <groved@us.ibm.com>
+
+       * scripts/check_jni_methods.sh.in:
+       Fix build issue on AIX by splitting generation
+       of method list.
+       
+2008-08-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * native/jni/gstreamer-peer/gst_native_pipeline.c:
+       (get_free_space(int)): Use #else not #elif when
+       there is no condition.
+
+2008-08-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/31895:
+       * java/text/DecimalFormat.java:
+       (setCurrency(Currency)): Update prefixes and
+       suffixes when currency changes.
+       * java/text/DecimalFormatSymbols.java:
+       (DecimalFormatSymbols(Locale)): Set locale earlier
+       so it can be used by setCurrency(Currency).
+       (setCurrency(Currency)): Set the symbol correctly using
+       the locale of the instance.
+       * java/util/Currency.java:
+       Throw error instead of just printing a message.
+
+2008-08-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/activation/ActivationDataFlavor.java:
+       Suppress warnings from public API.
+       (mimeType): Made final.
+       (representationClass): Added generic type and
+       made final.
+       (normalizeMimeTypeParameter(String,String)):
+       Use CPStringBuilder.
+       * javax/activation/CommandInfo.java:
+       (verb): Made final.
+       (className): Made final.
+       * javax/activation/DataHandler.java:
+       (dataSource): Made final.
+       * javax/activation/FileDataSource.java:
+       (file): Made final.
+       * javax/activation/MailcapCommandMap.java:
+       Use generics on collections and CPStringBuilder
+       instead of StringBuffer.
+       * javax/activation/MimeType.java:
+       (toString()): Use CPStringBuilder.
+       (getBaseType()): Likewise.
+       * javax/activation/MimeTypeParameterList.java:
+       Use generics on collections and CPStringBuilder
+       instead of StringBuffer.
+       * javax/activation/MimeTypeParseException.java:
+       (MimeTypeParseException(String,String)): Use
+       CPStringBuilder.
+       * javax/activation/MimetypesFileTypeMap.java:
+       Use generics on collections and CPStringBuilder
+       instead of StringBuffer.        
+       * javax/activation/URLDataSource.java:
+       (url): Made final.
+
+2008-08-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/javax/activation/viewers/ImageViewer.java,
+       * gnu/javax/activation/viewers/TextEditor.java,
+       * gnu/javax/activation/viewers/TextViewer.java,
+       * javax/activation/ActivationDataFlavor.java,
+       * javax/activation/CommandInfo.java,
+       * javax/activation/CommandMap.java,
+       * javax/activation/CommandObject.java,
+       * javax/activation/DataContentHandler.java,
+       * javax/activation/DataContentHandlerFactory.java,
+       * javax/activation/DataHandler.java,
+       * javax/activation/DataHandlerDataSource.java,
+       * javax/activation/DataSource.java,
+       * javax/activation/DataSourceDataContentHandler.java,
+       * javax/activation/FileDataSource.java,
+       * javax/activation/FileTypeMap.java,
+       * javax/activation/MailcapCommandMap.java,
+       * javax/activation/MimeType.java,
+       * javax/activation/MimeTypeParameterList.java,
+       * javax/activation/MimeTypeParseException.java,
+       * javax/activation/MimetypesFileTypeMap.java,
+       * javax/activation/ObjectDataContentHandler.java,
+       * javax/activation/URLDataSource.java,
+       * javax/activation/UnsupportedDataTypeException.java,
+       * javax/activation/package.html,
+       * resource/META-INF/mailcap.default,
+       * resource/META-INF/mimetypes.default:
+       Import GNU JAF CVS as of 17/08/2008.
+
+2006-04-25  Archit Shah  <ashah@redhat.com>
+
+       * javax/activation/MimeTypeParameterList.java:
+       Insert ';' separator before parameter list.
+
+2005-06-29  Xavier Poinsard  <xpoinsard@openpricer.com>
+
+       * javax/activation/ObjectDataContentHandler.java:
+       Fixed typo.
+
+2005-05-28  Chris Burdess  <dog@bluezoo.org>
+
+       * javax/activation/CommandMap.java, 
+       * javax/activation/MailcapCommandMap.java:
+       Updated to JAF 1.1.
+
+2004-06-09  Chris Burdess  <dog@bluezoo.org>
+
+       * javax/activation/MailcapCommandMap.java:
+       Fixed bug whereby x-java prefix was not
+       attempted.
+
+2008-08-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * AUTHORS: Added Laszlo.
+
+2008-04-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/30436:
+       * java/util/Scanner.java:
+       Fix package to be java.util and correct
+       indentation.
+
+2007-07-25  Laszlo Andras Hernadi  <e0327023@student.tuwien.ac.at>
+
+       PR classpath/30436:
+       * java/util/Scanner.java:
+       Initial implementation.
+
+2008-08-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/util/regex/Matcher.java:
+       (toMatchResult()): Implemented.
+       
+2008-08-13  Joshua Sumali  <jsumali@redhat.com>
+
+       * doc/Makefile.am (gjdoc.pod): Generate gjdoc pod from cp-tools.texinfo
+       instead of invoke.texi. Remove invoke.texi from EXTRA_DIST.
+       * doc/invoke.texi: Removed and merged into ...
+       * doc/cp-tools.texinfo: Here
+
+2008-08-12  Robert Schuster  <robertschuster@fsfe.org>
+
+       * native/jni/java-net/local.c
+       (local_bind): Removed fprintf call, fixed access outside
+       of array bounds.
+
 2008-07-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * m4/acinclude.m4 (CLASSPATH_COND_IF): New macro.
        * configure: Regenerate.
        * tools/Makefile.am (!CREATE_WRAPPERS): Update comment.
 
-2008-06-11  Andrew Haley  <aph@redhat.com>
+2008-07-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * resource/gnu/java/locale/LocaleInformation.properties,
+       * resource/gnu/java/locale/LocaleInformation_aa.properties,
+       * resource/gnu/java/locale/LocaleInformation_af.properties,
+       * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
+       * resource/gnu/java/locale/LocaleInformation_ak.properties,
+       * resource/gnu/java/locale/LocaleInformation_am.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar.properties,
+       * resource/gnu/java/locale/LocaleInformation_as.properties,
+       * resource/gnu/java/locale/LocaleInformation_az.properties,
+       * resource/gnu/java/locale/LocaleInformation_be.properties,
+       * resource/gnu/java/locale/LocaleInformation_bg.properties,
+       * resource/gnu/java/locale/LocaleInformation_bn.properties,
+       * resource/gnu/java/locale/LocaleInformation_bs.properties,
+       * resource/gnu/java/locale/LocaleInformation_byn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ca.properties,
+       * resource/gnu/java/locale/LocaleInformation_cch.properties,
+       * resource/gnu/java/locale/LocaleInformation_cop.properties,
+       * resource/gnu/java/locale/LocaleInformation_cs.properties,
+       * resource/gnu/java/locale/LocaleInformation_cy.properties,
+       * resource/gnu/java/locale/LocaleInformation_da.properties,
+       * resource/gnu/java/locale/LocaleInformation_de.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_dv.properties,
+       * resource/gnu/java/locale/LocaleInformation_dz.properties,
+       * resource/gnu/java/locale/LocaleInformation_ee.properties,
+       * resource/gnu/java/locale/LocaleInformation_el.properties,
+       * resource/gnu/java/locale/LocaleInformation_en.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_MT.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
+       * resource/gnu/java/locale/LocaleInformation_eo.properties,
+       * resource/gnu/java/locale/LocaleInformation_es.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_CO.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_EC.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_PE.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_US.properties,
+       * resource/gnu/java/locale/LocaleInformation_et.properties,
+       * resource/gnu/java/locale/LocaleInformation_eu.properties,
+       * resource/gnu/java/locale/LocaleInformation_fa.properties,
+       * resource/gnu/java/locale/LocaleInformation_fi.properties,
+       * resource/gnu/java/locale/LocaleInformation_fil.properties,
+       * resource/gnu/java/locale/LocaleInformation_fo.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
+       * resource/gnu/java/locale/LocaleInformation_fur.properties,
+       * resource/gnu/java/locale/LocaleInformation_ga.properties,
+       * resource/gnu/java/locale/LocaleInformation_gaa.properties,
+       * resource/gnu/java/locale/LocaleInformation_gez.properties,
+       * resource/gnu/java/locale/LocaleInformation_gl.properties,
+       * resource/gnu/java/locale/LocaleInformation_gu.properties,
+       * resource/gnu/java/locale/LocaleInformation_gv.properties,
+       * resource/gnu/java/locale/LocaleInformation_ha.properties,
+       * resource/gnu/java/locale/LocaleInformation_haw.properties,
+       * resource/gnu/java/locale/LocaleInformation_he.properties,
+       * resource/gnu/java/locale/LocaleInformation_hi.properties,
+       * resource/gnu/java/locale/LocaleInformation_hr.properties,
+       * resource/gnu/java/locale/LocaleInformation_hu.properties,
+       * resource/gnu/java/locale/LocaleInformation_hy.properties,
+       * resource/gnu/java/locale/LocaleInformation_ia.properties,
+       * resource/gnu/java/locale/LocaleInformation_id.properties,
+       * resource/gnu/java/locale/LocaleInformation_ig.properties,
+       * resource/gnu/java/locale/LocaleInformation_is.properties,
+       * resource/gnu/java/locale/LocaleInformation_it.properties,
+       * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
+       * resource/gnu/java/locale/LocaleInformation_iu.properties,
+       * resource/gnu/java/locale/LocaleInformation_ja.properties,
+       * resource/gnu/java/locale/LocaleInformation_ka.properties,
+       * resource/gnu/java/locale/LocaleInformation_kaj.properties,
+       * resource/gnu/java/locale/LocaleInformation_kam.properties,
+       * resource/gnu/java/locale/LocaleInformation_kcg.properties,
+       * resource/gnu/java/locale/LocaleInformation_kfo.properties,
+       * resource/gnu/java/locale/LocaleInformation_kk.properties,
+       * resource/gnu/java/locale/LocaleInformation_kl.properties,
+       * resource/gnu/java/locale/LocaleInformation_km.properties,
+       * resource/gnu/java/locale/LocaleInformation_kn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ko.properties,
+       * resource/gnu/java/locale/LocaleInformation_kok.properties,
+       * resource/gnu/java/locale/LocaleInformation_kpe.properties,
+       * resource/gnu/java/locale/LocaleInformation_kw.properties,
+       * resource/gnu/java/locale/LocaleInformation_ky.properties,
+       * resource/gnu/java/locale/LocaleInformation_ln.properties,
+       * resource/gnu/java/locale/LocaleInformation_lo.properties,
+       * resource/gnu/java/locale/LocaleInformation_lt.properties,
+       * resource/gnu/java/locale/LocaleInformation_lv.properties,
+       * resource/gnu/java/locale/LocaleInformation_mk.properties,
+       * resource/gnu/java/locale/LocaleInformation_ml.properties,
+       * resource/gnu/java/locale/LocaleInformation_mn.properties,
+       * resource/gnu/java/locale/LocaleInformation_mr.properties,
+       * resource/gnu/java/locale/LocaleInformation_ms.properties,
+       * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
+       * resource/gnu/java/locale/LocaleInformation_mt.properties,
+       * resource/gnu/java/locale/LocaleInformation_my.properties,
+       * resource/gnu/java/locale/LocaleInformation_nb.properties,
+       * resource/gnu/java/locale/LocaleInformation_ne.properties,
+       * resource/gnu/java/locale/LocaleInformation_nl.properties,
+       * resource/gnu/java/locale/LocaleInformation_nn.properties,
+       * resource/gnu/java/locale/LocaleInformation_nr.properties,
+       * resource/gnu/java/locale/LocaleInformation_nso.properties,
+       * resource/gnu/java/locale/LocaleInformation_ny.properties,
+       * resource/gnu/java/locale/LocaleInformation_om.properties,
+       * resource/gnu/java/locale/LocaleInformation_or.properties,
+       * resource/gnu/java/locale/LocaleInformation_pa.properties,
+       * resource/gnu/java/locale/LocaleInformation_pl.properties,
+       * resource/gnu/java/locale/LocaleInformation_ps.properties,
+       * resource/gnu/java/locale/LocaleInformation_pt.properties,
+       * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+       * resource/gnu/java/locale/LocaleInformation_ro.properties,
+       * resource/gnu/java/locale/LocaleInformation_ru.properties,
+       * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
+       * resource/gnu/java/locale/LocaleInformation_rw.properties,
+       * resource/gnu/java/locale/LocaleInformation_sa.properties,
+       * resource/gnu/java/locale/LocaleInformation_se.properties,
+       * resource/gnu/java/locale/LocaleInformation_si.properties,
+       * resource/gnu/java/locale/LocaleInformation_sid.properties,
+       * resource/gnu/java/locale/LocaleInformation_sk.properties,
+       * resource/gnu/java/locale/LocaleInformation_sl.properties,
+       * resource/gnu/java/locale/LocaleInformation_so.properties,
+       * resource/gnu/java/locale/LocaleInformation_sq.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ss.properties,
+       * resource/gnu/java/locale/LocaleInformation_st.properties,
+       * resource/gnu/java/locale/LocaleInformation_sv.properties,
+       * resource/gnu/java/locale/LocaleInformation_sw.properties,
+       * resource/gnu/java/locale/LocaleInformation_syr.properties,
+       * resource/gnu/java/locale/LocaleInformation_ta.properties,
+       * resource/gnu/java/locale/LocaleInformation_te.properties,
+       * resource/gnu/java/locale/LocaleInformation_tg.properties,
+       * resource/gnu/java/locale/LocaleInformation_th.properties,
+       * resource/gnu/java/locale/LocaleInformation_ti.properties,
+       * resource/gnu/java/locale/LocaleInformation_tig.properties,
+       * resource/gnu/java/locale/LocaleInformation_tn.properties,
+       * resource/gnu/java/locale/LocaleInformation_to.properties,
+       * resource/gnu/java/locale/LocaleInformation_tr.properties,
+       * resource/gnu/java/locale/LocaleInformation_trv.properties,
+       * resource/gnu/java/locale/LocaleInformation_ts.properties,
+       * resource/gnu/java/locale/LocaleInformation_tt.properties,
+       * resource/gnu/java/locale/LocaleInformation_ug.properties,
+       * resource/gnu/java/locale/LocaleInformation_uk.properties,
+       * resource/gnu/java/locale/LocaleInformation_ur.properties,
+       * resource/gnu/java/locale/LocaleInformation_uz.properties,
+       * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+       * resource/gnu/java/locale/LocaleInformation_ve.properties,
+       * resource/gnu/java/locale/LocaleInformation_vi.properties,
+       * resource/gnu/java/locale/LocaleInformation_wal.properties,
+       * resource/gnu/java/locale/LocaleInformation_wo.properties,
+       * resource/gnu/java/locale/LocaleInformation_xh.properties,
+       * resource/gnu/java/locale/LocaleInformation_yo.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+       * resource/gnu/java/locale/LocaleInformation_zu.properties:
+       Correct use of 'v' with 'z' in locale data as Java does not
+       support this new pattern character.
+
+2008-07-12  David Daney  <ddaney@avtrex.com>
+
+       * gnu/java/net/protocol/http/LimitedLengthInputStream.java: Clean up
+       white space in entire file.
+       (handleClose): Remove redundant braces from if statement.
+
+2008-07-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/text/DateFormatSymbols.java:
+       (getZoneStrings(ResourceBundle,Locale)):
+       Handle missing standard zone names.
+       
+2008-07-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/text/DateFormatSymbols.java:
+       (getZoneStrings(ResourceBundle,Locale)):
+       Fallback on to parent locales.
+
+2008-07-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/text/DateFormatSymbols.java:
+       (getZoneStrings(ResourceBundle,Locale)):
+       Use metazones to convert metazone names to standard
+       Continent/City form.  Also add hack to include GMT
+       as a short name.
+       * resource/java/text/metazones.properties:
+       New properties file for mapping metazones to standard
+       zone names.
+       
+2008-07-07  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * configure.ac (AC_CHECK_HEADERS): Added sys/sockio.h, required
+       for Solaris.
+       (AC_CHECK_LIB): Check for socket.
+       * native/jni/java-net/java_net_VMNetworkInterface.c (unistd.h):
+       Added.
+       [HAVE_SYS_SOCKIO_H] (sys/sockio.h): Likewise.
+
+2008-07-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * THANKYOU: Added Byeogncheol.
+
+2008-07-07  Byeogncheol Lee  <lineonking@gmail.com>
+
+       PR classpath/36677:
+       * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java:
+       (executeTopLevelThreadGroups(ByteBuffer,DataOutputStream)):
+       Add missing write.
+
+2008-07-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/text/DateFormatSymbols.java:
+       (getZoneStrings(ResourceBundle,Locale)):
+       Pad arrays smaller than 5 with empty strings.
+
+2008-07-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/util/Calendar.java:
+       (Calendar(TimeZone,Locale)): Use weeks.properties
+       instead of LocaleInformation bundles.
+       * resource/java/util/iso4217.properties:
+       Updated with new supplementgen header.
+       * resource/java/util/weeks.properties:
+       New resource file.
+
+2008-07-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * resource/gnu/java/locale/LocaleInformation.properties,
+       * resource/gnu/java/locale/LocaleInformation_aa.properties,
+       * resource/gnu/java/locale/LocaleInformation_af.properties,
+       * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
+       * resource/gnu/java/locale/LocaleInformation_ak.properties,
+       * resource/gnu/java/locale/LocaleInformation_am.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
+       * resource/gnu/java/locale/LocaleInformation_as.properties,
+       * resource/gnu/java/locale/LocaleInformation_az.properties,
+       * resource/gnu/java/locale/LocaleInformation_be.properties,
+       * resource/gnu/java/locale/LocaleInformation_bg.properties,
+       * resource/gnu/java/locale/LocaleInformation_bn.properties,
+       * resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
+       * resource/gnu/java/locale/LocaleInformation_bs.properties,
+       * resource/gnu/java/locale/LocaleInformation_byn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ca.properties,
+       * resource/gnu/java/locale/LocaleInformation_cs.properties,
+       * resource/gnu/java/locale/LocaleInformation_cy.properties,
+       * resource/gnu/java/locale/LocaleInformation_da.properties,
+       * resource/gnu/java/locale/LocaleInformation_de.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_CH.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_LI.properties,
+       * resource/gnu/java/locale/LocaleInformation_dv.properties,
+       * resource/gnu/java/locale/LocaleInformation_dz.properties,
+       * resource/gnu/java/locale/LocaleInformation_el.properties,
+       * resource/gnu/java/locale/LocaleInformation_en.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_AU.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_BW.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_CA.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_HK.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_IN.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_NZ.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_PH.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_PK.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_ZA.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_ZW.properties,
+       * resource/gnu/java/locale/LocaleInformation_eo.properties,
+       * resource/gnu/java/locale/LocaleInformation_es.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_CR.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_PY.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_UY.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_VE.properties,
+       * resource/gnu/java/locale/LocaleInformation_et.properties,
+       * resource/gnu/java/locale/LocaleInformation_eu.properties,
+       * resource/gnu/java/locale/LocaleInformation_fa.properties,
+       * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
+       * resource/gnu/java/locale/LocaleInformation_fi.properties,
+       * resource/gnu/java/locale/LocaleInformation_fil.properties,
+       * resource/gnu/java/locale/LocaleInformation_fo.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
+       * resource/gnu/java/locale/LocaleInformation_fur.properties,
+       * resource/gnu/java/locale/LocaleInformation_ga.properties,
+       * resource/gnu/java/locale/LocaleInformation_gez.properties,
+       * resource/gnu/java/locale/LocaleInformation_gl.properties,
+       * resource/gnu/java/locale/LocaleInformation_gu.properties,
+       * resource/gnu/java/locale/LocaleInformation_gv.properties,
+       * resource/gnu/java/locale/LocaleInformation_ha.properties,
+       * resource/gnu/java/locale/LocaleInformation_haw.properties,
+       * resource/gnu/java/locale/LocaleInformation_he.properties,
+       * resource/gnu/java/locale/LocaleInformation_hi.properties,
+       * resource/gnu/java/locale/LocaleInformation_hr.properties,
+       * resource/gnu/java/locale/LocaleInformation_hu.properties,
+       * resource/gnu/java/locale/LocaleInformation_hy.properties,
+       * resource/gnu/java/locale/LocaleInformation_id.properties,
+       * resource/gnu/java/locale/LocaleInformation_is.properties,
+       * resource/gnu/java/locale/LocaleInformation_it.properties,
+       * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
+       * resource/gnu/java/locale/LocaleInformation_ja.properties,
+       * resource/gnu/java/locale/LocaleInformation_ka.properties,
+       * resource/gnu/java/locale/LocaleInformation_kk.properties,
+       * resource/gnu/java/locale/LocaleInformation_kl.properties,
+       * resource/gnu/java/locale/LocaleInformation_km.properties,
+       * resource/gnu/java/locale/LocaleInformation_kn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ko.properties,
+       * resource/gnu/java/locale/LocaleInformation_kok.properties,
+       * resource/gnu/java/locale/LocaleInformation_ku.properties,
+       * resource/gnu/java/locale/LocaleInformation_kw.properties,
+       * resource/gnu/java/locale/LocaleInformation_ky.properties,
+       * resource/gnu/java/locale/LocaleInformation_ln.properties,
+       * resource/gnu/java/locale/LocaleInformation_lo.properties,
+       * resource/gnu/java/locale/LocaleInformation_lt.properties,
+       * resource/gnu/java/locale/LocaleInformation_lv.properties,
+       * resource/gnu/java/locale/LocaleInformation_mk.properties,
+       * resource/gnu/java/locale/LocaleInformation_ml.properties,
+       * resource/gnu/java/locale/LocaleInformation_mn.properties,
+       * resource/gnu/java/locale/LocaleInformation_mr.properties,
+       * resource/gnu/java/locale/LocaleInformation_ms.properties,
+       * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
+       * resource/gnu/java/locale/LocaleInformation_mt.properties,
+       * resource/gnu/java/locale/LocaleInformation_my.properties,
+       * resource/gnu/java/locale/LocaleInformation_nb.properties,
+       * resource/gnu/java/locale/LocaleInformation_ne.properties,
+       * resource/gnu/java/locale/LocaleInformation_nl.properties,
+       * resource/gnu/java/locale/LocaleInformation_nl_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_nn.properties,
+       * resource/gnu/java/locale/LocaleInformation_nr.properties,
+       * resource/gnu/java/locale/LocaleInformation_nso.properties,
+       * resource/gnu/java/locale/LocaleInformation_om.properties,
+       * resource/gnu/java/locale/LocaleInformation_or.properties,
+       * resource/gnu/java/locale/LocaleInformation_pa.properties,
+       * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
+       * resource/gnu/java/locale/LocaleInformation_pl.properties,
+       * resource/gnu/java/locale/LocaleInformation_ps.properties,
+       * resource/gnu/java/locale/LocaleInformation_pt.properties,
+       * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+       * resource/gnu/java/locale/LocaleInformation_ro.properties,
+       * resource/gnu/java/locale/LocaleInformation_ru.properties,
+       * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
+       * resource/gnu/java/locale/LocaleInformation_sa.properties,
+       * resource/gnu/java/locale/LocaleInformation_se.properties,
+       * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
+       * resource/gnu/java/locale/LocaleInformation_sk.properties,
+       * resource/gnu/java/locale/LocaleInformation_sl.properties,
+       * resource/gnu/java/locale/LocaleInformation_so.properties,
+       * resource/gnu/java/locale/LocaleInformation_sq.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ss.properties,
+       * resource/gnu/java/locale/LocaleInformation_st.properties,
+       * resource/gnu/java/locale/LocaleInformation_sv.properties,
+       * resource/gnu/java/locale/LocaleInformation_sv_FI.properties,
+       * resource/gnu/java/locale/LocaleInformation_sw.properties,
+       * resource/gnu/java/locale/LocaleInformation_syr.properties,
+       * resource/gnu/java/locale/LocaleInformation_ta.properties,
+       * resource/gnu/java/locale/LocaleInformation_te.properties,
+       * resource/gnu/java/locale/LocaleInformation_tg.properties,
+       * resource/gnu/java/locale/LocaleInformation_th.properties,
+       * resource/gnu/java/locale/LocaleInformation_ti.properties,
+       * resource/gnu/java/locale/LocaleInformation_tig.properties,
+       * resource/gnu/java/locale/LocaleInformation_tn.properties,
+       * resource/gnu/java/locale/LocaleInformation_to.properties,
+       * resource/gnu/java/locale/LocaleInformation_tr.properties,
+       * resource/gnu/java/locale/LocaleInformation_ts.properties,
+       * resource/gnu/java/locale/LocaleInformation_tt.properties,
+       * resource/gnu/java/locale/LocaleInformation_uk.properties,
+       * resource/gnu/java/locale/LocaleInformation_ur.properties,
+       * resource/gnu/java/locale/LocaleInformation_uz.properties,
+       * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+       * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ve.properties,
+       * resource/gnu/java/locale/LocaleInformation_vi.properties,
+       * resource/gnu/java/locale/LocaleInformation_wal.properties,
+       * resource/gnu/java/locale/LocaleInformation_xh.properties,
+       * resource/gnu/java/locale/LocaleInformation_yo.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties,
+       * resource/gnu/java/locale/LocaleInformation_zu.properties,
+       * resource/java/util/iso4217.properties:
+       Regenerated from CLDR 1.6.0.
+       * resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_Shaw.properties,
+       * resource/gnu/java/locale/LocaleInformation_ku_Latn.properties,
+       * resource/gnu/java/locale/LocaleInformation_trv.properties,
+       * resource/gnu/java/locale/LocaleInformation_si.properties,
+       * resource/gnu/java/locale/LocaleInformation_ur_IN.properties:
+       New files from CLDR 1.6.0.      
+
+2008-07-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * resource/gnu/java/locale/LocaleInformation.properties,
+       * resource/gnu/java/locale/LocaleInformation_aa.properties,
+       * resource/gnu/java/locale/LocaleInformation_aa_DJ.properties,
+       * resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties,
+       * resource/gnu/java/locale/LocaleInformation_af.properties,
+       * resource/gnu/java/locale/LocaleInformation_ak.properties,
+       * resource/gnu/java/locale/LocaleInformation_am.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_JO.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_QA.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_SA.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_SY.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_TN.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_YE.properties,
+       * resource/gnu/java/locale/LocaleInformation_as.properties,
+       * resource/gnu/java/locale/LocaleInformation_az.properties,
+       * resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
+       * resource/gnu/java/locale/LocaleInformation_be.properties,
+       * resource/gnu/java/locale/LocaleInformation_bg.properties,
+       * resource/gnu/java/locale/LocaleInformation_bn.properties,
+       * resource/gnu/java/locale/LocaleInformation_bo.properties,
+       * resource/gnu/java/locale/LocaleInformation_bs.properties,
+       * resource/gnu/java/locale/LocaleInformation_byn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ca.properties,
+       * resource/gnu/java/locale/LocaleInformation_cch.properties,
+       * resource/gnu/java/locale/LocaleInformation_cop.properties,
+       * resource/gnu/java/locale/LocaleInformation_cs.properties,
+       * resource/gnu/java/locale/LocaleInformation_cy.properties,
+       * resource/gnu/java/locale/LocaleInformation_da.properties,
+       * resource/gnu/java/locale/LocaleInformation_de.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_dv.properties,
+       * resource/gnu/java/locale/LocaleInformation_dz.properties,
+       * resource/gnu/java/locale/LocaleInformation_ee.properties,
+       * resource/gnu/java/locale/LocaleInformation_el.properties,
+       * resource/gnu/java/locale/LocaleInformation_en.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
+       * resource/gnu/java/locale/LocaleInformation_eo.properties,
+       * resource/gnu/java/locale/LocaleInformation_es.properties,
+       * resource/gnu/java/locale/LocaleInformation_et.properties,
+       * resource/gnu/java/locale/LocaleInformation_eu.properties,
+       * resource/gnu/java/locale/LocaleInformation_fa.properties,
+       * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
+       * resource/gnu/java/locale/LocaleInformation_fi.properties,
+       * resource/gnu/java/locale/LocaleInformation_fil.properties,
+       * resource/gnu/java/locale/LocaleInformation_fo.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr.properties,
+       * resource/gnu/java/locale/LocaleInformation_fur.properties,
+       * resource/gnu/java/locale/LocaleInformation_ga.properties,
+       * resource/gnu/java/locale/LocaleInformation_gaa.properties,
+       * resource/gnu/java/locale/LocaleInformation_gez.properties,
+       * resource/gnu/java/locale/LocaleInformation_gl.properties,
+       * resource/gnu/java/locale/LocaleInformation_gu.properties,
+       * resource/gnu/java/locale/LocaleInformation_gv.properties,
+       * resource/gnu/java/locale/LocaleInformation_ha.properties,
+       * resource/gnu/java/locale/LocaleInformation_ha_Arab.properties,
+       * resource/gnu/java/locale/LocaleInformation_haw.properties,
+       * resource/gnu/java/locale/LocaleInformation_he.properties,
+       * resource/gnu/java/locale/LocaleInformation_hi.properties,
+       * resource/gnu/java/locale/LocaleInformation_hr.properties,
+       * resource/gnu/java/locale/LocaleInformation_hu.properties,
+       * resource/gnu/java/locale/LocaleInformation_hy.properties,
+       * resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties,
+       * resource/gnu/java/locale/LocaleInformation_ia.properties,
+       * resource/gnu/java/locale/LocaleInformation_id.properties,
+       * resource/gnu/java/locale/LocaleInformation_ig.properties,
+       * resource/gnu/java/locale/LocaleInformation_ii.properties,
+       * resource/gnu/java/locale/LocaleInformation_is.properties,
+       * resource/gnu/java/locale/LocaleInformation_it.properties,
+       * resource/gnu/java/locale/LocaleInformation_iu.properties,
+       * resource/gnu/java/locale/LocaleInformation_ja.properties,
+       * resource/gnu/java/locale/LocaleInformation_ka.properties,
+       * resource/gnu/java/locale/LocaleInformation_kaj.properties,
+       * resource/gnu/java/locale/LocaleInformation_kam.properties,
+       * resource/gnu/java/locale/LocaleInformation_kcg.properties,
+       * resource/gnu/java/locale/LocaleInformation_kfo.properties,
+       * resource/gnu/java/locale/LocaleInformation_kk.properties,
+       * resource/gnu/java/locale/LocaleInformation_kl.properties,
+       * resource/gnu/java/locale/LocaleInformation_km.properties,
+       * resource/gnu/java/locale/LocaleInformation_kn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ko.properties,
+       * resource/gnu/java/locale/LocaleInformation_kok.properties,
+       * resource/gnu/java/locale/LocaleInformation_kpe.properties,
+       * resource/gnu/java/locale/LocaleInformation_ku.properties,
+       * resource/gnu/java/locale/LocaleInformation_kw.properties,
+       * resource/gnu/java/locale/LocaleInformation_ky.properties,
+       * resource/gnu/java/locale/LocaleInformation_ln.properties,
+       * resource/gnu/java/locale/LocaleInformation_lo.properties,
+       * resource/gnu/java/locale/LocaleInformation_lt.properties,
+       * resource/gnu/java/locale/LocaleInformation_lv.properties,
+       * resource/gnu/java/locale/LocaleInformation_mk.properties,
+       * resource/gnu/java/locale/LocaleInformation_ml.properties,
+       * resource/gnu/java/locale/LocaleInformation_mn.properties,
+       * resource/gnu/java/locale/LocaleInformation_mr.properties,
+       * resource/gnu/java/locale/LocaleInformation_ms.properties,
+       * resource/gnu/java/locale/LocaleInformation_mt.properties,
+       * resource/gnu/java/locale/LocaleInformation_my.properties,
+       * resource/gnu/java/locale/LocaleInformation_nb.properties,
+       * resource/gnu/java/locale/LocaleInformation_ne.properties,
+       * resource/gnu/java/locale/LocaleInformation_nl.properties,
+       * resource/gnu/java/locale/LocaleInformation_nn.properties,
+       * resource/gnu/java/locale/LocaleInformation_nr.properties,
+       * resource/gnu/java/locale/LocaleInformation_nso.properties,
+       * resource/gnu/java/locale/LocaleInformation_ny.properties,
+       * resource/gnu/java/locale/LocaleInformation_om.properties,
+       * resource/gnu/java/locale/LocaleInformation_or.properties,
+       * resource/gnu/java/locale/LocaleInformation_pa.properties,
+       * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
+       * resource/gnu/java/locale/LocaleInformation_pl.properties,
+       * resource/gnu/java/locale/LocaleInformation_ps.properties,
+       * resource/gnu/java/locale/LocaleInformation_pt.properties,
+       * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+       * resource/gnu/java/locale/LocaleInformation_ro.properties,
+       * resource/gnu/java/locale/LocaleInformation_ru.properties,
+       * resource/gnu/java/locale/LocaleInformation_rw.properties,
+       * resource/gnu/java/locale/LocaleInformation_sa.properties,
+       * resource/gnu/java/locale/LocaleInformation_se.properties,
+       * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
+       * resource/gnu/java/locale/LocaleInformation_sid.properties,
+       * resource/gnu/java/locale/LocaleInformation_sk.properties,
+       * resource/gnu/java/locale/LocaleInformation_sl.properties,
+       * resource/gnu/java/locale/LocaleInformation_so.properties,
+       * resource/gnu/java/locale/LocaleInformation_sq.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ss.properties,
+       * resource/gnu/java/locale/LocaleInformation_ssy.properties,
+       * resource/gnu/java/locale/LocaleInformation_st.properties,
+       * resource/gnu/java/locale/LocaleInformation_sv.properties,
+       * resource/gnu/java/locale/LocaleInformation_sw.properties,
+       * resource/gnu/java/locale/LocaleInformation_syr.properties,
+       * resource/gnu/java/locale/LocaleInformation_ta.properties,
+       * resource/gnu/java/locale/LocaleInformation_te.properties,
+       * resource/gnu/java/locale/LocaleInformation_tg.properties,
+       * resource/gnu/java/locale/LocaleInformation_th.properties,
+       * resource/gnu/java/locale/LocaleInformation_ti.properties,
+       * resource/gnu/java/locale/LocaleInformation_ti_ER.properties,
+       * resource/gnu/java/locale/LocaleInformation_tig.properties,
+       * resource/gnu/java/locale/LocaleInformation_tn.properties,
+       * resource/gnu/java/locale/LocaleInformation_to.properties,
+       * resource/gnu/java/locale/LocaleInformation_tr.properties,
+       * resource/gnu/java/locale/LocaleInformation_ts.properties,
+       * resource/gnu/java/locale/LocaleInformation_tt.properties,
+       * resource/gnu/java/locale/LocaleInformation_ug.properties,
+       * resource/gnu/java/locale/LocaleInformation_uk.properties,
+       * resource/gnu/java/locale/LocaleInformation_ur.properties,
+       * resource/gnu/java/locale/LocaleInformation_uz.properties,
+       * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+       * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ve.properties,
+       * resource/gnu/java/locale/LocaleInformation_vi.properties,
+       * resource/gnu/java/locale/LocaleInformation_wal.properties,
+       * resource/gnu/java/locale/LocaleInformation_wo.properties,
+       * resource/gnu/java/locale/LocaleInformation_xh.properties,
+       * resource/gnu/java/locale/LocaleInformation_yo.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+       * resource/gnu/java/locale/LocaleInformation_zu.properties:
+       Regenerated with Unicode delimiters escaped.
+
+2008-07-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/36653:
+       * doc/www.gnu.org/downloads/downloads.wml:
+       Add 0.97.2 to download list.
+       
+2008-07-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/util/ResourceBundle.java,
+       (BundleKey.toString()): Implemented.
+       (clearCache()): Implemented.
+       (clearCache(ClassLoader)): Implemented.
+       
+2008-07-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/util/ResourceBundle.java:
+       Fix generic warnings.
+
+2008-07-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/util/Properties.java:
+       (load(Reader)): Implemented.
+       (load(InputStream)): Fixed to use load(Reader).
+       * java/util/PropertyResourceBundle.java:
+       (PropertyResourceBundle(Reader)): Implemented.
+
+2008-07-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * resource/gnu/java/locale/LocaleInformation.properties,
+       * resource/gnu/java/locale/LocaleInformation_aa.properties,
+       * resource/gnu/java/locale/LocaleInformation_aa_DJ.properties,
+       * resource/gnu/java/locale/LocaleInformation_aa_ER.properties,
+       * resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties,
+       * resource/gnu/java/locale/LocaleInformation_af.properties,
+       * resource/gnu/java/locale/LocaleInformation_am.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_JO.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_QA.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_SA.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_SY.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_TN.properties,
+       * resource/gnu/java/locale/LocaleInformation_ar_YE.properties,
+       * resource/gnu/java/locale/LocaleInformation_as.properties,
+       * resource/gnu/java/locale/LocaleInformation_az.properties,
+       * resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
+       * resource/gnu/java/locale/LocaleInformation_be.properties,
+       * resource/gnu/java/locale/LocaleInformation_bg.properties,
+       * resource/gnu/java/locale/LocaleInformation_bn.properties,
+       * resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
+       * resource/gnu/java/locale/LocaleInformation_bs.properties,
+       * resource/gnu/java/locale/LocaleInformation_byn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ca.properties,
+       * resource/gnu/java/locale/LocaleInformation_cs.properties,
+       * resource/gnu/java/locale/LocaleInformation_cy.properties,
+       * resource/gnu/java/locale/LocaleInformation_da.properties,
+       * resource/gnu/java/locale/LocaleInformation_de.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_CH.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_LI.properties,
+       * resource/gnu/java/locale/LocaleInformation_de_LU.properties,
+       * resource/gnu/java/locale/LocaleInformation_dv.properties,
+       * resource/gnu/java/locale/LocaleInformation_dz.properties,
+       * resource/gnu/java/locale/LocaleInformation_el.properties,
+       * resource/gnu/java/locale/LocaleInformation_en.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_AU.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_BW.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_CA.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_HK.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_IN.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_MT.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_NZ.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_PH.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_TT.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_ZA.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_ZW.properties,
+       * resource/gnu/java/locale/LocaleInformation_eo.properties,
+       * resource/gnu/java/locale/LocaleInformation_es.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_CO.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_DO.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_EC.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_ES.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_GT.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_HN.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_MX.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_NI.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_PA.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_PE.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_PR.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_PY.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_SV.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_US.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_UY.properties,
+       * resource/gnu/java/locale/LocaleInformation_es_VE.properties,
+       * resource/gnu/java/locale/LocaleInformation_et.properties,
+       * resource/gnu/java/locale/LocaleInformation_eu.properties,
+       * resource/gnu/java/locale/LocaleInformation_fa.properties,
+       * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
+       * resource/gnu/java/locale/LocaleInformation_fi.properties,
+       * resource/gnu/java/locale/LocaleInformation_fo.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
+       * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
+       * resource/gnu/java/locale/LocaleInformation_ga.properties,
+       * resource/gnu/java/locale/LocaleInformation_gez.properties,
+       * resource/gnu/java/locale/LocaleInformation_gez_ET.properties,
+       * resource/gnu/java/locale/LocaleInformation_gl.properties,
+       * resource/gnu/java/locale/LocaleInformation_gu.properties,
+       * resource/gnu/java/locale/LocaleInformation_gv.properties,
+       * resource/gnu/java/locale/LocaleInformation_haw.properties,
+       * resource/gnu/java/locale/LocaleInformation_he.properties,
+       * resource/gnu/java/locale/LocaleInformation_hi.properties,
+       * resource/gnu/java/locale/LocaleInformation_hr.properties,
+       * resource/gnu/java/locale/LocaleInformation_hu.properties,
+       * resource/gnu/java/locale/LocaleInformation_hy.properties,
+       * resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties,
+       * resource/gnu/java/locale/LocaleInformation_id.properties,
+       * resource/gnu/java/locale/LocaleInformation_is.properties,
+       * resource/gnu/java/locale/LocaleInformation_it.properties,
+       * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
+       * resource/gnu/java/locale/LocaleInformation_iu.properties,
+       * resource/gnu/java/locale/LocaleInformation_ja.properties,
+       * resource/gnu/java/locale/LocaleInformation_ka.properties,
+       * resource/gnu/java/locale/LocaleInformation_kk.properties,
+       * resource/gnu/java/locale/LocaleInformation_kl.properties,
+       * resource/gnu/java/locale/LocaleInformation_km.properties,
+       * resource/gnu/java/locale/LocaleInformation_kn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ko.properties,
+       * resource/gnu/java/locale/LocaleInformation_kok.properties,
+       * resource/gnu/java/locale/LocaleInformation_kw.properties,
+       * resource/gnu/java/locale/LocaleInformation_ky.properties,
+       * resource/gnu/java/locale/LocaleInformation_lo.properties,
+       * resource/gnu/java/locale/LocaleInformation_lt.properties,
+       * resource/gnu/java/locale/LocaleInformation_lv.properties,
+       * resource/gnu/java/locale/LocaleInformation_mk.properties,
+       * resource/gnu/java/locale/LocaleInformation_ml.properties,
+       * resource/gnu/java/locale/LocaleInformation_mn.properties,
+       * resource/gnu/java/locale/LocaleInformation_mr.properties,
+       * resource/gnu/java/locale/LocaleInformation_ms.properties,
+       * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
+       * resource/gnu/java/locale/LocaleInformation_mt.properties,
+       * resource/gnu/java/locale/LocaleInformation_nb.properties,
+       * resource/gnu/java/locale/LocaleInformation_nl.properties,
+       * resource/gnu/java/locale/LocaleInformation_nl_BE.properties,
+       * resource/gnu/java/locale/LocaleInformation_nn.properties,
+       * resource/gnu/java/locale/LocaleInformation_om.properties,
+       * resource/gnu/java/locale/LocaleInformation_om_KE.properties,
+       * resource/gnu/java/locale/LocaleInformation_or.properties,
+       * resource/gnu/java/locale/LocaleInformation_pa.properties,
+       * resource/gnu/java/locale/LocaleInformation_pl.properties,
+       * resource/gnu/java/locale/LocaleInformation_ps.properties,
+       * resource/gnu/java/locale/LocaleInformation_pt.properties,
+       * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+       * resource/gnu/java/locale/LocaleInformation_ro.properties,
+       * resource/gnu/java/locale/LocaleInformation_ru.properties,
+       * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
+       * resource/gnu/java/locale/LocaleInformation_sa.properties,
+       * resource/gnu/java/locale/LocaleInformation_sid.properties,
+       * resource/gnu/java/locale/LocaleInformation_sk.properties,
+       * resource/gnu/java/locale/LocaleInformation_sl.properties,
+       * resource/gnu/java/locale/LocaleInformation_so.properties,
+       * resource/gnu/java/locale/LocaleInformation_so_DJ.properties,
+       * resource/gnu/java/locale/LocaleInformation_so_ET.properties,
+       * resource/gnu/java/locale/LocaleInformation_so_KE.properties,
+       * resource/gnu/java/locale/LocaleInformation_sq.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
+       * resource/gnu/java/locale/LocaleInformation_sv.properties,
+       * resource/gnu/java/locale/LocaleInformation_sv_FI.properties,
+       * resource/gnu/java/locale/LocaleInformation_sw.properties,
+       * resource/gnu/java/locale/LocaleInformation_syr.properties,
+       * resource/gnu/java/locale/LocaleInformation_ta.properties,
+       * resource/gnu/java/locale/LocaleInformation_te.properties,
+       * resource/gnu/java/locale/LocaleInformation_th.properties,
+       * resource/gnu/java/locale/LocaleInformation_ti.properties,
+       * resource/gnu/java/locale/LocaleInformation_ti_ER.properties,
+       * resource/gnu/java/locale/LocaleInformation_tig.properties,
+       * resource/gnu/java/locale/LocaleInformation_tr.properties,
+       * resource/gnu/java/locale/LocaleInformation_tt.properties,
+       * resource/gnu/java/locale/LocaleInformation_uk.properties,
+       * resource/gnu/java/locale/LocaleInformation_ur.properties,
+       * resource/gnu/java/locale/LocaleInformation_uz.properties,
+       * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+       * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
+       * resource/gnu/java/locale/LocaleInformation_vi.properties,
+       * resource/gnu/java/locale/LocaleInformation_wal.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties,
+       * resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties:
+       Regenerated from CLDR 1.5.1 data.
+       * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
+       * resource/gnu/java/locale/LocaleInformation_ak.properties,
+       * resource/gnu/java/locale/LocaleInformation_bo.properties,
+       * resource/gnu/java/locale/LocaleInformation_cch.properties,
+       * resource/gnu/java/locale/LocaleInformation_cop.properties,
+       * resource/gnu/java/locale/LocaleInformation_ee.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_JM.properties,
+       * resource/gnu/java/locale/LocaleInformation_en_NA.properties,
+       * resource/gnu/java/locale/LocaleInformation_fil.properties,
+       * resource/gnu/java/locale/LocaleInformation_fur.properties,
+       * resource/gnu/java/locale/LocaleInformation_gaa.properties,
+       * resource/gnu/java/locale/LocaleInformation_ha.properties,
+       * resource/gnu/java/locale/LocaleInformation_ha_Arab.properties,
+       * resource/gnu/java/locale/LocaleInformation_ia.properties,
+       * resource/gnu/java/locale/LocaleInformation_ig.properties,
+       * resource/gnu/java/locale/LocaleInformation_ii.properties,
+       * resource/gnu/java/locale/LocaleInformation_kaj.properties,
+       * resource/gnu/java/locale/LocaleInformation_kam.properties
+       * resource/gnu/java/locale/LocaleInformation_kcg.properties,
+       * resource/gnu/java/locale/LocaleInformation_kfo.properties,
+       * resource/gnu/java/locale/LocaleInformation_kpe.properties,
+       * resource/gnu/java/locale/LocaleInformation_ku.properties,
+       * resource/gnu/java/locale/LocaleInformation_ku_Arab.properties,
+       * resource/gnu/java/locale/LocaleInformation_ln.properties,
+       * resource/gnu/java/locale/LocaleInformation_my.properties,
+       * resource/gnu/java/locale/LocaleInformation_ne.properties,
+       * resource/gnu/java/locale/LocaleInformation_nr.properties,
+       * resource/gnu/java/locale/LocaleInformation_nso.properties,
+       * resource/gnu/java/locale/LocaleInformation_ny.properties,
+       * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
+       * resource/gnu/java/locale/LocaleInformation_rw.properties,
+       * resource/gnu/java/locale/LocaleInformation_se.properties,
+       * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
+       * resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties,
+       * resource/gnu/java/locale/LocaleInformation_ss.properties,
+       * resource/gnu/java/locale/LocaleInformation_ssy.properties,
+       * resource/gnu/java/locale/LocaleInformation_st.properties,
+       * resource/gnu/java/locale/LocaleInformation_tg.properties,
+       * resource/gnu/java/locale/LocaleInformation_tn.properties,
+       * resource/gnu/java/locale/LocaleInformation_to.properties
+       * resource/gnu/java/locale/LocaleInformation_ts.properties,
+       * resource/gnu/java/locale/LocaleInformation_ug.properties,
+       * resource/gnu/java/locale/LocaleInformation_ve.properties,
+       * resource/gnu/java/locale/LocaleInformation_wo.properties,
+       * resource/gnu/java/locale/LocaleInformation_xh.properties,
+       * resource/gnu/java/locale/LocaleInformation_yo.properties,
+       * resource/gnu/java/locale/LocaleInformation_zu.properties:
+       New files from CLDR 1.5.1.
+       
+2008-07-01  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * java/lang/Integer.java (signum): Implemented properly as
+       described in Hacker's Delight Section 2-7, plus Andrew Haley's
+       explanation.
+
+2008-07-01  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/Long.java: Comment change only.
+
+2008-07-01  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * java/lang/Long.java (signum): Implemented properly as described
+       in Hacker's Delight Section 2-7.
+
+2008-06-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/35237:
+       * resource/java/util/iso4217.properties:
+       Regenerated from CLDR 1.5.1 data.
+
+2008-06-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/36636:
+       * tools/gnu/classpath/tools/jar/Updater.java:
+       (run(Main)): Check return value of renameTo, and
+       create temporary file in same directory (as suggested
+       by Tom Tromey).
+       (copyFile(File,File)): Removed.
+
+2008-06-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/36637:
+       * examples/Makefile.am,
+       * lib/Makefile.am:
+       Use new conditional and $(JAR).
+       * m4/acinclude.m4:
+       Replace --with-fastjar with a general
+       --with-jar check that can be turned off.
+       * tools/Makefile.am:
+       Use new conditional and $(JAR).
+
+2008-06-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/36636:
+       * tools/gnu/classpath/tools/jar/Updater.java:
+       (run(Main)): Check return value of renameTo, and
+       copy file instead if necessary.
+       (copyFile(File,File)): New method to copy a file.
+       
+2008-06-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * configure.ac: Remove AC_PROG_MKDIR_P.
+       * examples/Makefile.am,
+       * lib/Makefile.am,
+       * tools/Makefile.am:
+       Use mkdir_p instead of MKDIR_P.
+
+2008-06-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/36221:
+       * gnu/xml/dom/DomAttr.java:
+       (DomAttr(DomDocument,String,String,String,String)):
+       New constructor.
+       * gnu/xml/dom/DomDocument.java:
+       (createElement(String)): Use new constructor rather than
+       setting variable directly.
+       (createAttribute(String)): Likewise.
+       * gnu/xml/dom/DomElement.java:
+       (DomElement(DomDocument,String,String,String,String)):
+       New constructor.
+       * gnu/xml/dom/DomNsNode.java:
+       (localName): Make private.
+       (DomNsNode(short,DomDocument,String,String,String,String)):
+       New constructor.
+       * gnu/xml/dom/ls/DomLSParser.java:
+       (doParse(LSInput)): Set namespace awareness using a method,
+       not directly.
+       * gnu/xml/dom/ls/SAXEventSink.java:
+       (namespaceAware): Make private.
+       (setNamespaceAware(boolean)): New method.
+       * gnu/xml/transform/XSLURIResolver.java:
+       (parse(InputSource,XMLReader)): Parse with namespace awareness on.
+
+2008-06-24  Tom Tromey  <tromey@redhat.com>
+
+       PR libgcj/32198:
+       * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java
+       (compile): Reverse isAssignableFrom test.
+
+2008-06-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/36219:
+       * gnu/xml/transform/ForEachNode.java:
+       Genericised.
+       * gnu/xml/transform/SortKey.java:
+       Documented.
+       (clone(Stylesheet)): Implemented.
+       (cloneAttributeValueTemplate(TemplateNode,Stylesheet)):
+       Implemented.
+       * gnu/xml/transform/Stylesheet.java:
+       (parseSortKeys(Node)): Return empty list not null.
+       * gnu/xml/transform/TemplateNode.java:
+       Genericise documentOrderComparator.
+
+2008-06-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/xml/xpath/CountFunction.java,
+       * gnu/xml/xpath/EqualityExpr.java,
+       * gnu/xml/xpath/Expr.java,
+       * gnu/xml/xpath/IdFunction.java,
+       * gnu/xml/xpath/LocalNameFunction.java,
+       * gnu/xml/xpath/NameFunction.java,
+       * gnu/xml/xpath/NamespaceUriFunction.java,
+       * gnu/xml/xpath/ParenthesizedExpr.java,
+       * gnu/xml/xpath/Steps.java,
+       * gnu/xml/xpath/SumFunction.java,
+       * gnu/xml/xpath/UnionExpr.java,
+       * gnu/xml/xpath/XPathParser.java,
+       * gnu/xml/xpath/XPathParser.y,
+       * java/lang/Enum.java,
+       * java/lang/reflect/Constructor.java,
+       * java/lang/reflect/Field.java,
+       * java/lang/reflect/Method.java:
+       Reduce scope of unchecked warning suppression,
+       and remove unneeded uses.
+
+2008-06-23  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * include/jni.h [__cplusplus] (_Jv_JNIEnv): Renamed member p to
+       functions to be compatible with OpenJDK.
+
+2008-06-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/36220:
+       * gnu/xml/transform/CallTemplateNode.java:
+       (doApply(Stylesheet,QName,Node,int,int,Node,Node)):
+       Check for withParams being empty not null.
+       (references(QName)): Remove special-casing for null.
+       * gnu/xml/transform/Stylesheet.java:
+       (parseWithParams(Node)): Just return the list if empty,
+       don't return null instead.
+
+2008-06-23  Andrew Haley  <aph@redhat.com>
 
        * native/jawt/Makefile.am,
        native/fdlibm/Makefile.am,
 
        * lib/Makefile.am (resources): Add .svn.
 
+2008-06-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/xml/transform/ParameterNode.java,
+       * gnu/xml/transform/Stylesheet.java,
+       * gnu/xml/transform/UnparsedEntityUriFunction.java,
+       * gnu/xml/transform/ValueOfNode.java,
+       * gnu/xml/transform/XSLComparator.java,
+       * gnu/xml/transform/XSLURIResolver.java:
+       Genericised.
+
+2008-06-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/xml/xpath/ContainsFunction.java,
+       * gnu/xml/xpath/CountFunction.java,
+       * gnu/xml/xpath/EqualityExpr.java,
+       * gnu/xml/xpath/Expr.java,
+       * gnu/xml/xpath/IdFunction.java,
+       * gnu/xml/xpath/LocalNameFunction.java,
+       * gnu/xml/xpath/NameFunction.java,
+       * gnu/xml/xpath/ParenthesizedExpr.java:
+       Genericised.
+
+2008-06-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/xml/xpath/Expr.java,
+       * gnu/xml/xpath/FloorFunction.java,
+       * gnu/xml/xpath/Function.java,
+       * gnu/xml/xpath/FunctionCall.java,
+       * gnu/xml/xpath/NamespaceUriFunction.java,
+       * gnu/xml/xpath/ParenthesizedExpr.java,
+       * gnu/xml/xpath/Root.java,
+       * gnu/xml/xpath/Selector.java,
+       * gnu/xml/xpath/Steps.java:
+       Genericised.
+
+2008-06-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/xml/xpath/BooleanFunction.java,
+       * gnu/xml/xpath/CeilingFunction.java,
+       * gnu/xml/xpath/ConcatFunction.java,
+       * gnu/xml/xpath/DocumentOrderComparator.java,
+       * gnu/xml/xpath/Expr.java,
+       * gnu/xml/xpath/IdFunction.java,
+       * gnu/xml/xpath/LangFunction.java,
+       * gnu/xml/xpath/LocalNameFunction.java,
+       * gnu/xml/xpath/NameFunction.java,
+       * gnu/xml/xpath/NormalizeSpaceFunction.java,
+       * gnu/xml/xpath/NotFunction.java,
+       * gnu/xml/xpath/NumberFunction.java,
+       * gnu/xml/xpath/Path.java,
+       * gnu/xml/xpath/RoundFunction.java,
+       * gnu/xml/xpath/Selector.java,
+       * gnu/xml/xpath/StartsWithFunction.java,
+       * gnu/xml/xpath/Steps.java,
+       * gnu/xml/xpath/StringFunction.java,
+       * gnu/xml/xpath/StringLengthFunction.java,
+       * gnu/xml/xpath/SubstringAfterFunction.java,
+       * gnu/xml/xpath/SubstringBeforeFunction.java,
+       * gnu/xml/xpath/SubstringFunction.java,
+       * gnu/xml/xpath/SumFunction.java,
+       * gnu/xml/xpath/TranslateFunction.java,
+       * gnu/xml/xpath/UnionExpr.java,
+       * gnu/xml/xpath/XPathParser.java,
+       * gnu/xml/xpath/XPathParser.y,
+       * gnu/xml/xpath/XPathTokenizer.java:
+       Genericised.
+       * javax/xml/datatype/DatatypeFactory.java:
+       Use new java.util.ServiceLoader framework.
+       * javax/xml/namespace/NamespaceContext.java,
+       * javax/xml/parsers/DocumentBuilderFactory.java,
+       * javax/xml/parsers/SAXParserFactory.java,
+       * javax/xml/stream/XMLEventFactory.java,
+       * javax/xml/stream/XMLEventReader.java,
+       * javax/xml/stream/XMLInputFactory.java,
+       * javax/xml/stream/XMLOutputFactory.java:
+       Genericised.
+       * javax/xml/stream/events/DTD.java,
+       * javax/xml/stream/events/EndElement.java,
+       * javax/xml/stream/events/StartElement.java:
+       Ignore unchecked errors due to API not using generics.
+       * javax/xml/transform/TransformerFactory.java,
+       * javax/xml/validation/SchemaFactory.java,
+       * javax/xml/xpath/XPathFactory.java:
+       Genericised.
+       * javax/xml/xpath/XPathFunction.java:
+       Ignore unchecked errors due to API not using generics.
+
+2008-06-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/36220:
+       * gnu/xml/transform/ParameterNode.java:
+       (clone()): Only clone select if not null.
+       (toString()): Always include value of select.
+       * gnu/xml/transform/Stylesheet.java:
+       (toString()): Implemented.
+       * gnu/xml/transform/Template.java:
+       (toString()): Add value of node.
+       * gnu/xml/transform/TemplatesImpl.java:
+       (toString()): Implemented.
+
+2008-06-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/28664:
+       * gnu/java/math/GMP.java:
+       Renamed from VMBigInteger.java and fixed to use
+       GMP instances directly.
+       * include/Makefile.am:
+       Generate GMP.h not VMBigInteger.h.
+       * java/math/BigInteger.java:
+       Send instances of GMP in calls to GMP rather than
+       the wrapping BigInteger class.
+       * native/jni/java-math/Makefile.am:
+       Fix filename of source code file.
+       * native/jni/java-math/gnu_java_math_GMP.c:
+       Renamed from java_math_VMBigInteger.c.
+       * native/jni/java-math/java_math_VMBigInteger.c,
+       * vm/reference/java/math/VMBigInteger.java:
+       Removed.
+
+2008-06-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * configure.ac:
+       Remove --with-vm option, instead relying
+       on AC_PROG_JAVA.  Only call this if tools
+       are enabled.
+       * tools/gappletviewer.in,
+       * tools/gjar.in,
+       * tools/gjarsigner.in,
+       * tools/gjavah.in,
+       * tools/gjdoc.in,
+       * tools/gkeytool.in,
+       * tools/gnative2ascii.in,
+       * tools/gorbd.in,
+       * tools/grmic.in,
+       * tools/grmid.in,
+       * tools/grmiregistry.in,
+       * tools/gserialver.in,
+       * tools/gtnameserv.in:
+       Regenerated with @JAVA@ and -classpath option.
+       
+2008-06-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * m4/ac_prog_java.m4:
+       Add CACAO and JamVM.
+       * m4/ac_prog_javac.m4:
+       Use variables to store warning options.
+       
+2008-06-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/ObjectName.java,
+       * javax/management/StandardMBean.java:
+       Fix warnings due to use of generics.
+       
 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * native/fdlibm/dtoa.c: include stdlib.h, for 'free'.
 
-2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+2008-06-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/openmbean/ArrayType.java,
+       * javax/management/openmbean/CompositeDataSupport.java,
+       * javax/management/openmbean/CompositeType.java,
+       * javax/management/openmbean/OpenMBeanAttributeInfoSupport.java,
+       * javax/management/openmbean/OpenMBeanInfoSupport.java,
+       * javax/management/openmbean/OpenMBeanParameterInfoSupport.java,
+       * javax/management/openmbean/SimpleType.java,
+       * javax/management/openmbean/TabularDataSupport.java:
+       Fix warnings due to use of generics.
+       * javax/management/remote/rmi/RMIConnection.java:
+       Suppress warnings due to API's use of MarshalledObject.
 
-       * Makefile.in: Regenerate.
-       * configure: Regenerate.
-       * doc/Makefile.in: Regenerate.
-       * doc/api/Makefile.in: Regenerate.
-       * examples/Makefile.in: Regenerate.
-       * external/Makefile.in: Regenerate.
-       * external/jsr166/Makefile.in: Regenerate.
-       * external/relaxngDatatype/Makefile.in: Regenerate.
-       * external/sax/Makefile.in: Regenerate.
-       * external/w3c_dom/Makefile.in: Regenerate.
-       * include/Makefile.in: Regenerate.
-       * lib/Makefile.in: Regenerate.
-       * native/Makefile.in: Regenerate.
-       * native/fdlibm/Makefile.in: Regenerate.
-       * native/jawt/Makefile.in: Regenerate.
-       * native/jni/Makefile.in: Regenerate.
-       * native/jni/classpath/Makefile.in: Regenerate.
-       * native/jni/gconf-peer/Makefile.in: Regenerate.
-       * native/jni/gstreamer-peer/Makefile.in: Regenerate.
-       * native/jni/gtk-peer/Makefile.in: Regenerate.
-       * native/jni/java-io/Makefile.in: Regenerate.
-       * native/jni/java-lang/Makefile.in: Regenerate.
-       * native/jni/java-net/Makefile.in: Regenerate.
-       * native/jni/java-nio/Makefile.in: Regenerate.
-       * native/jni/java-util/Makefile.in: Regenerate.
-       * native/jni/midi-alsa/Makefile.in: Regenerate.
-       * native/jni/midi-dssi/Makefile.in: Regenerate.
-       * native/jni/native-lib/Makefile.in: Regenerate.
-       * native/jni/qt-peer/Makefile.in: Regenerate.
-       * native/jni/xmlj/Makefile.in: Regenerate.
-       * native/plugin/Makefile.in: Regenerate.
-       * resource/Makefile.in: Regenerate.
-       * scripts/Makefile.in: Regenerate.
-       * tools/Makefile.in: Regenerate.
+2008-06-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2008-06-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+       * javax/management/openmbean/TabularDataSupport.java,
+       * javax/management/openmbean/TabularType.java:
+       Fix warnings due to use of generics.
 
-       * configure.ac: Set version to 0.97.2.
-       * NEWS: Add 0.97.2.
+2008-06-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2008-05-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+       PR classpath/36522:
+       * gnu/java/security/PolicyFile.java:
+       Correct typo changing seperator to separator.
 
-       * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java:
-       Remove use of 1.5 language constructs.
+2008-06-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/36477:
+       * gnu/java/lang/CPStringBuilder.java,
+       (setLength(int)): Don't ensure capacity when
+       new length is 0.
+       (ensureCapacity(int)): Allocate double the minimum
+       capacity rather than double the array length when
+       allocating a new array after a write.
+       
+2008-06-15  Mario Torre  <neugens@aicas.com>
+
+       * gnu/java/awt/java2d/RasterGraphics.java: remove unused import that cause
+       compilation to fail when xpeers are not enabled.
+
+2008-06-15  Mario Torre  <neugens@aicas.com>
+    * gnu/java/awt/java2d/AbstractGraphics2D.java (setColor): delegate to
+    setPaint.
+    (setPaint): fix to set paint context and foreground color.
+    (imageCache): new field.
+    (drawImage): new codepath for scaling images.
+    (prepareImage): new method.
+    (getPaintContext): set paintContext appropriately.
+    * gnu/java/awt/java2d/RasterGraphics.java (renderScanline): new method,
+    override from superclass to detect correct value of y while rendering
+    the scanline.
+    * gnu/java/awt/java2d/ScanlineConverter.java (renderShape): revert previous
+    patch. 
+    * gnu/java/awt/peer/x/XEventPump.java (findMouseEventTarget): new method.
+    (handleButtonPress): use of findMouseEventTarget to detect the correct
+    target.
+    (handleButtonRelease):  likewise.
+    * gnu/java/awt/peer/x/XGraphics2D.java (rawDrawImage): clip the target image
+    so that it is completely contained in the destination pixmaps, as per X11
+    specification.
+    * gnu/java/awt/peer/x/XToolkit.java (createTextField): method implemented. 
+    (createButton): likewise.
+    (prepareImage): likewise.
+    (createLabel): likewise.
+    (checkImage): likewise.
+    (createTextArea): likewise.
+    (createCheckbox): likewise.
+    (checkHeadLess): new method.
+    * gnu/javax/imageio/bmp/BMPImageWriter.java (write):
+    don't close the stream.
+    * gnu/javax/imageio/bmp/BMPImageWriterSpi.java (names): added new names to
+    the list of known names for BMP.
+    * java/awt/image/WritableRaster.java (createWritableTranslatedChild): 
+    * javax/imageio/ImageIO.java (write): call dispose on ImageWriter after
+    writing of the image.
+
+2008-06-15  Tom Tromey  <tromey@redhat.com>
+
+       * include/jni.h (_jobjectRefType, jobjectRefType): Always
+       declare.
+
+2008-06-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
+       * configure.ac:
+       Add --enable-gjdoc option and check
+       for mkdir -p.
+       * examples/Makefile.am,
+       * lib/Makefile.am,
+       * lib/copy-vmresources.sh.in:
+       Use @MKDIR_P@.
+       * tools/Makefile.am:
+       Allow building GJDoc to be disabled
+       and use @MKDIR_P@.
+
+2008-06-13  Mark Wielaard  <mark@klomp.org>
+
+       * tools/Makefile.am (USE_JAVAC_FLAGS): Use relative generated dir.
+       (TOOLS_ZIP): Generate antlr output in relative dir.
+
+2008-06-13  Mark Wielaard  <mark@klomp.org>
+
+       * tools/Makefile.am (USE_JAVAC_FLAGS): Use generated in builddir.
+       (TOOLS_JAVA_FILES): Include all .java files in all subdirs.
+       (ALL_TOOLS_FILES): Include gjdoc_resources and antlr input file.
+       (TOOLS_ZIP): Generate antlr output in builddir.
+       * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png:
+       New file from gjdoc.
+
+2008-06-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * configure.ac:
+       Check for --with-glibj too when disabling
+       the javac check.
+
+2008-06-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * include/Makefile.am: Don't delete headers
+       when not rebuilding them.
+
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * configure.ac: Only regenerate headers by
+       default if the headers aren't in the source tree.
+
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * configure.ac: Only run javac check
+       if examples, tools and/or class library are
+       being built.
+       * scripts/check_jni_methods.sh.in:
+       Remove duplicates in the list of JNI methods
+       for when builddir==srcdir.
+
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * lib/Makefile.am:
+       Replace explicit mkinstalldirs with $(mkinstalldirs).
+
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * scripts/check_jni_methods.sh.in:
+       Search the source directory as well for
+       when headers are in the tarball.
+
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * Makefile.am: Replace tools with
+       $(TOOLSDIR).
+       * m4/acinclude.m4: Include option
+       to disable building the tools.
+
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * Makefile.am: Use default makedistcheck
+       flags that test all optional dependencies.
+       * include/Makefile.am: Add header files to dist.
+       * lib/Makefile.am: Trick class files into being
+       built for dist, so headers can be generated.
+
+2008-06-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * doc/www.gnu.org/announce/20080606.wml,
+       * doc/www.gnu.org/newsitems.txt:
+       Add 0.97.2 annoncement.
+       * NEWS: Add 0.97.1 and 0.97.2 updates.
+       
+2008-06-09  Mark Wielaard  <mark@klomp.org>
+
+       * Makefile.am (EXTRA_DIST): Add ChangeLog-2007.
+       * doc/Makefile.am (EXTRA_DIST): Add invoke.texi.
+
+2008-06-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/lang/Integer.java:
+       (parseInt(String, int, boolean)): Disallow "-+".
+       
 2008-06-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
        * tools/gnu/classpath/tools/common/ClasspathToolParser.java:
        * tools/gnu/classpath/tools/jar/Main.java:
        Revert previous changes to allow Schuster's patch to
        do the same.
-
-2008-06-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * java/lang/Integer.java:
-       (parseInt(String, int, boolean)): Disallow "-+".
-
-2008-05-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-        Reported by Nicolas Geoffray <nicolas.geoffray@menlina.com>
-       * java/lang/Integer.java:
-       (parseInt(String,int,boolean)): Parse +x
-       as x, not -x.
-
-2008-06-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * configure.ac:
-       Check for --with-glibj too when disabling
-       the javac check.
        
 2008-06-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
        (parsed(String)): Add stdin to queue instead of setting flag.
        (readNames()): Work with the queue rather than just stdin.
        (run(String[])): Always execute readNames().
+       
+2008-06-01  Mark Wielaard  <mark@klomp.org>
+
+       * gnu/java/awt/java2d/AbstractGraphics2D.java: Removed XDialogPeer
+       import.
+
+2008-05-29  Mario Torre  <neugens@aicas.com>
+
+       * gnu/java/awt/java2d/AbstractGraphics2D.java (setColor): now set directly
+       the foreground color the application wants to use to draw. On null, behave
+       like OpenJDK, drawing black.
+       (renderScanline): fixed NPE, paintContext never initialized. Correctely
+       retrieve destination raster
+       (getColor): Return the correct type.
+       (static initializer): HashMap now typed.
+       (background): now defaults to black and not null.
+       (getPaintContext): new method. Initialize lazily the PaintContext.
+       (foreground): new field.
+       (isForegroundColorNull): likewise.
+       (getDeviceBounds): made abstract.
+       * gnu/java/awt/java2d/RasterGraphics.java (getDeviceBounds): new method.
+       * gnu/java/awt/java2d/ScanlineConverter.java (renderShape): pass correct
+       value of Y to doScanline.
+       * gnu/java/awt/peer/x/GLGraphics.java (getDeviceBounds): new method.
+       (setBackground): synch with new Escher 2.0 API.
+       * gnu/java/awt/peer/x/XGraphicsConfiguration.java (getDefaultTransform):
+       implemented.
+       (getBounds): new method.
+       * java/awt/AlphaComposite.java (derive(int) and derive(float)):
+       new methods.
+       * java/awt/image/WritableRaster.java (createWritableTranslatedChild):
+       now call createWritableChild.
+       (createWritableChild): reformatted.
+
+2008-05-27  Joshua Sumali  <jsumali@redhat.com>
+
+       * NEWS: Added building of gjdoc into tools.
+
+2008-05-27  Joshua Sumali  <jsumali@redhat.com>
+
+       * AUTHORS: Added Joshua Sumali. 
+
+2008-05-27  Joshua Sumali  <jsumali@redhat.com>
+
+       * configure.ac: Add support for Antlr. This is used for building gjdoc.
+       Also generate tools/gjdoc wrapper with gjdoc.in.
+       * doc/gjdoc.texi: New file.
+       * doc/invoke.texi: New file.
+       * doc/Makefile.am: Generate gjdoc documentation.
+       * m4/ac_prog_antlr.m4: New file.
+       * m4/ac_prog_java.m4: New file.
+       * m4/ac_prog_java_works.m4: New file.
+       * tools/Makefile.am: Build gjdoc as part of tools.
+       * tools/com/sun/tools/javadoc/Main.java,
+       * tools/gjdoc.in,
+       * tools/gnu/classpath/tools/doclets/AbstractDoclet.java,
+       * tools/gnu/classpath/tools/doclets/.cvsignore,
+       * tools/gnu/classpath/tools/doclets/debugdoclet/.cvsignore,
+       * tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java,
+       * tools/gnu/classpath/tools/doclets/DocletConfigurationException.java,
+       * tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java,
+       * tools/gnu/classpath/tools/doclets/DocletOptionFile.java,
+       * tools/gnu/classpath/tools/doclets/DocletOptionFlag.java,
+       * tools/gnu/classpath/tools/doclets/DocletOption.java,
+       * tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java,
+       * tools/gnu/classpath/tools/doclets/DocletOptionString.java,
+       * tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java,
+       * tools/gnu/classpath/tools/doclets/htmldoclet/.cvsignore,
+       * tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java,
+       * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java,
+       * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java,
+       * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java,
+       * tools/gnu/classpath/tools/doclets/InlineTagRenderer.java,
+       * tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java,
+       * tools/gnu/classpath/tools/doclets/PackageGroup.java,
+       * tools/gnu/classpath/tools/doclets/PackageMatcher.java,
+       * tools/gnu/classpath/tools/doclets/StandardTaglet.java,
+       * tools/gnu/classpath/tools/doclets/TagletPrinter.java,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/.cvsignore,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/.cvsignore,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/package.html,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java,
+       * tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java,
+       * tools/gnu/classpath/tools/FileSystemClassLoader.java,
+       * tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java,
+       * tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java,
+       * tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/.cvsignore,
+       * tools/gnu/classpath/tools/gjdoc/Debug.java,
+       * tools/gnu/classpath/tools/gjdoc/DirectoryTree.java,
+       * tools/gnu/classpath/tools/gjdoc/DocImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/ErrorReporter.java,
+       * tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/Context.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/.cvsignore,
+       * tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/Expression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/java-expression.g,
+       * tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/Type.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java,
+       * tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java,
+       * tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java,
+       * tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java,
+       * tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java,
+       * tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/Main.java,
+       * tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/ParameterImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/ParseException.java,
+       * tools/gnu/classpath/tools/gjdoc/Parser.java,
+       * tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/RootDocImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/TagContainer.java,
+       * tools/gnu/classpath/tools/gjdoc/TagImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/TemporaryStore.java,
+       * tools/gnu/classpath/tools/gjdoc/TextTagImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/TimerDoclet.java,
+       * tools/gnu/classpath/tools/gjdoc/Timer.java,
+       * tools/gnu/classpath/tools/gjdoc/TypeImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java,
+       * tools/gnu/classpath/tools/gjdoc/WritableType.java,
+       * tools/gnu/classpath/tools/IOToolkit.java,
+       * tools/gnu/classpath/tools/java2xhtml/.cvsignore,
+       * tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java,
+       * tools/gnu/classpath/tools/MalformedInputEvent.java,
+       * tools/gnu/classpath/tools/MalformedInputListener.java,
+       * tools/gnu/classpath/tools/NotifyingInputStreamReader.java,
+       * tools/gnu/classpath/tools/StringToolkit.java,
+       * tools/gnu/classpath/tools/taglets/AuthorTaglet.java,
+       * tools/gnu/classpath/tools/taglets/CodeTaglet.java,
+       * tools/gnu/classpath/tools/taglets/CopyrightTaglet.java,
+       * tools/gnu/classpath/tools/taglets/.cvsignore,
+       * tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java,
+       * tools/gnu/classpath/tools/taglets/GenericTaglet.java,
+       * tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java,
+       * tools/gnu/classpath/tools/taglets/SinceTaglet.java,
+       * tools/gnu/classpath/tools/taglets/TagletContext.java,
+       * tools/gnu/classpath/tools/taglets/ValueTaglet.java,
+       * tools/gnu/classpath/tools/taglets/VersionTaglet.java,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js,
+       * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/serialized.xsl,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd,
+       * tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd,
+       * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css,
+       * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css,
+       * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css,
+       * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js,
+       * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml,
+       * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties,
+       * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd,
+       * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt,
+       * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt,
+       * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt,
+       * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt,
+       * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng,
+       * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng,
+       * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng,
+       * tools/resource/gnu/classpath/tools/gjdoc/version.properties,
+       * tools/resource/gnu/classpath/tools/gjdoc/version.properties.in:
+       New files, taken from gjdoc source tree.
+
+
+2008-05-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * tools/gnu/classpath/tools/jar/Creator.java:
+       (writeCommandLineEntries(Main,OutputStream)):
+       Add default value for manifest version and
+       include Created-By property.
+       
+2008-05-19  Mario Torre  <neugens@aicas.com>
+
+       * gnu/java/awt/peer/x/XEventPump.java (handleExpose): new method. 
+       (handleDestroyNotify): likewise.
+       (handleClientMessage): likewise.
+       (handleButtonRelease): likewise.
+       (handleMotionNotify): likewise.
+       (handleKeyEvent): likewise.
+       (handleButtonPress): likewise.
+       (handleEvent): refactored to use new methods instead of a big switch
+    block. Fixed resizing of windows.
+       * gnu/java/awt/peer/x/XWindowPeer.java (standardSelect): update list
+       of flags for X11 events handling.
+       (callback): removed now unused flag. 
+
+2008-05-16  Mario Torre  <neugens@aicas.com>
+
+       * native/jni/java-math/java_math_VMBigInteger.c
+       (Java_java_math_VMBigInteger_natModInverse): fix variable res not
+       initialized.  
+
+2008-05-15  Robert Schuster  <robertschuster@fsfe.org>
+
+       * java/net/NetworkInterface.java:
+       (isUp): New method.
+       (isPointToPoint): Dito.
+       (isLoopback): Dito.
+       (supportsMulticast): Dito.
+       * vm/reference/java/net/VMNetworkInterface.java:
+       (isUp): New method.
+       (isPointToPoint): Dito.
+       (isLoopback): Dito.
+       (supportsMulticast): Dito.
+       * native/jni/java-net/java_net_VMNetworkInterface.c:
+       (isUp): New method.
+       (isPointToPoint): Dito.
+       (isLoopback): Dito.
+       (supportsMulticast): Dito.
+
+2008-05-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        Reported by Nicolas Geoffray <nicolas.geoffray@menlina.com>
+       * java/lang/Integer.java:
+       (parseInt(String,int,boolean)): Parse +x
+       as x, not -x.
+       
+2008-05-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/util/regex/Matcher.java:
+       (regionStart): New variable.
+       (regionEnd): Likewise.
+       (transparentBounds): Likewise.
+       (anchoringBounds): Likewise.
+       (Matcher()): Initialise new variables.
+       (find()): Alter to use new settings.
+       (find(int)): Likewise.
+       (lookingAt()): Likewise.
+       (matches()): Likewise.
+       (reset()): Reset region.
+       (reset(CharSequence)): Documented.
+       (toString()): Include new variables.
+       (region(int,int)): Implemented.
+       (regionStart()): Likewise.
+       (regionEnd()): Likewise.
+       (hasTransparentBounds()): Likewise.
+       (useTransparentBounds(boolean)): Likewise.
+       (hasAnchoringBounds()): Likewise.
+       (useAnchoringBounds(boolean)): Likewise.
+
+2008-05-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/lang/CPStringBuilder.java:
+       (toString()): Fix comments to reflect copying changes.
+       * vm/reference/gnu/java/lang/VMCPStringBuilder.java:
+       (toString()): Likewise.
+
+2008-05-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * NEWS:
+       Mention GMP and CPStringBuilder.
+       
+2008-05-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/36147
+       * gnu/java/lang/CPStringBuilder.java:
+       (allocated): New flag to mark whether or
+       not the array has been allocated to a String object.
+       (ensureCapacity(int)): Removed.
+       (ensureCapacity_unsynchronized(int)): Renamed to
+       ensureCapacity, and creates an array when allocated
+       is true.
+       (allocateArray(int)): Added.
+       (trimToSize()): Use allocateArray method.
+       (toString()): Set allocated to true;
+       (substring(int,int)): Likewise.
+       
+2008-05-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/lang/CPStringBuilder.java:
+       Make default capacity configurable.
+       
+2008-05-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * vm/reference/gnu/java/lang/VMCPStringBuilder.java,
+       * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java,
+       * vm/reference/java/net/VMNetworkInterface.java:
+       Remove use of 1.5 language constructs.
+
+2008-05-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/util/regex/RE.java:
+       Switch to use generic ArrayLists.
+       * gnu/java/util/regex/REMatchEnumeration.java:
+       Make the enumeration implementation generic.
+       * gnu/java/util/regex/RETokenLookBehind.java:
+       Remove unused variables.
+       
+2008-05-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       Add generics to these classes.
+       * gnu/java/util/regex/RETokenOneOf.java:
+       Use an ArrayList and a Deque instead of
+       a Vector and a Stack to remove unnecessary
+       synchronisation.
+       * gnu/java/util/regex/RETokenRepeated.java:
+       Replace custom FindMatchControlStack class
+       with a generic Deque.
+       * java/util/regex/Pattern.java:
+       Use a generic ArrayList instance.
+       
+2008-05-07  Mario Torre  <neugens@limasoftware.net>
+    
+       * gnu/java/awt/peer/x/XEventPump.java (handleEvent):
+       Fixed mouse dragging and movement in XEventPump. Patch from Roman Kennke.
+
+2008-05-07  Mario Torre  <neugens@aicas.com>
+
+       * gnu/java/awt/peer/x/XEventPump.java (handleEvent): xEvent.code is now
+       masked to identify and react to syntetic events.
+       Added UnmapNotify, DestroyNotify and ClientMessage to the list of event
+       handled.
+       * gnu/java/awt/peer/x/XFramePeer.java (getState): initial implementation.
+       * gnu/java/awt/peer/x/XGraphics2D.java (setPaint): fix NPE, this is a
+       workaround, the code have to be fixed in a better way.
+       * gnu/java/awt/peer/x/XWindowPeer.java (getXwindow): new method to allow
+       access to the underling xwindow.
+       (standardSelect): add more events for notification.
+       (XWindowPeer): call set_wm_delete_window to ask the WM to notify us
+       when a delete event occur.
+
+2008-05-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * tools/gnu/classpath/tools/jar/Indexer.java,
+       * tools/gnu/classpath/tools/javah/JniHelper.java,
+       * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java,
+       * tools/gnu/classpath/tools/orbd/PersistentMap.java,
+       * tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java,
+       * tools/gnu/classpath/tools/rmic/Generator.java,
+       * tools/gnu/classpath/tools/rmic/MethodGenerator.java,
+       * tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java,
+       * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java,
+       * tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java:
+       Swap use of StringBuffer for StringBuilder.
+
+2008-05-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * javax/swing/AbstractButton.java,
+       * javax/swing/JButton.java,
+       * javax/swing/JComboBox.java,
+       * javax/swing/JComponent.java,
+       * javax/swing/JDesktopPane.java,
+       * javax/swing/JFileChooser.java,
+       * javax/swing/JFrame.java,
+       * javax/swing/JLabel.java,
+       * javax/swing/JList.java,
+       * javax/swing/JMenuBar.java,
+       * javax/swing/JPopupMenu.java,
+       * javax/swing/JProgressBar.java,
+       * javax/swing/JScrollBar.java,
+       * javax/swing/JSlider.java,
+       * javax/swing/JSplitPane.java,
+       * javax/swing/JTabbedPane.java,
+       * javax/swing/JToolBar.java,
+       * javax/swing/JToolTip.java,
+       * javax/swing/UIManager.java,
+       * javax/swing/event/EventListenerList.java,
+       * javax/swing/table/AbstractTableModel.java,
+       * javax/swing/text/AbstractDocument.java,
+       * javax/swing/text/DefaultEditorKit.java,
+       * javax/swing/text/DefaultStyledDocument.java,
+       * javax/swing/text/JTextComponent.java,
+       * javax/swing/text/MaskFormatter.java,
+       * javax/swing/text/TabSet.java,
+       * javax/swing/text/html/CSSParser.java,
+       * javax/swing/text/html/HTMLWriter.java,
+       * javax/swing/tree/DefaultTreeSelectionModel.java,
+       * javax/xml/namespace/QName.java,
+       * javax/xml/transform/TransformerException.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * javax/accessibility/AccessibleRelationSet.java,
+       * javax/accessibility/AccessibleStateSet.java,
+       * javax/imageio/plugins/jpeg/JPEGHuffmanTable.java,
+       * javax/imageio/plugins/jpeg/JPEGQTable.java,
+       * javax/imageio/stream/ImageInputStreamImpl.java,
+       * javax/management/ObjectName.java,
+       * javax/naming/BinaryRefAddr.java,
+       * javax/naming/CompositeName.java,
+       * javax/naming/CompoundName.java,
+       * javax/naming/NamingException.java,
+       * javax/naming/spi/NamingManager.java,
+       * javax/security/auth/x500/X500Principal.java,
+       * javax/security/sasl/SaslException.java,
+       * javax/sound/sampled/AudioFormat.java,
+       * javax/sound/sampled/CompoundControl.java,
+       * javax/sound/sampled/DataLine.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * java/util/AbstractCollection.java,
+       * java/util/BitSet.java,
+       * java/util/Collections.java,
+       * java/util/Locale.java,
+       * java/util/ResourceBundle.java,
+       * java/util/TimeZone.java,
+       * java/util/logging/FileHandler.java,
+       * java/util/logging/Logger.java,
+       * java/util/logging/SimpleFormatter.java,
+       * java/util/logging/XMLFormatter.java,
+       * java/util/prefs/AbstractPreferences.java,
+       * java/util/regex/PatternSyntaxException.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * java/text/AttributedString.java,
+       * java/text/ChoiceFormat.java,
+       * java/text/CollationElementIterator.java,
+       * java/text/Collator.java,
+       * java/text/DecimalFormat.java,
+       * java/text/MessageFormat.java,
+       * java/text/RuleBasedCollator.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * java/security/CodeSource.java,
+       * java/security/MessageDigest.java,
+       * java/security/Permission.java,
+       * java/security/PermissionCollection.java,
+       * java/security/ProtectionDomain.java,
+       * java/security/cert/CertPath.java,
+       * java/security/cert/PKIXBuilderParameters.java,
+       * java/security/cert/PKIXCertPathBuilderResult.java,
+       * java/security/cert/X509CRLSelector.java,
+       * java/security/cert/X509CertSelector.java,
+       * org/ietf/jgss/Oid.java,
+       * org/omg/CORBA/portable/Delegate.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * java/beans/Statement.java,
+       * java/io/File.java,
+       * java/io/StreamTokenizer.java,
+       * java/lang/Throwable.java,
+       * java/math/BigDecimal.java,
+       * java/math/BigInteger.java,
+       * java/net/Inet4Address.java,
+       * java/net/Inet6Address.java,
+       * java/net/NetworkInterface.java,
+       * java/net/SocketPermission.java,
+       * java/net/URLDecoder.java,
+       * java/net/URLStreamHandler.java,
+       * java/nio/channels/FileLock.java,
+       * java/rmi/dgc/VMID.java:
+       Swap use of StringBuffer for CPStringBuilder.
+       
+2008-05-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * java/awt/Component.java,
+       * java/awt/Container.java,
+       * java/awt/JobAttributes.java,
+       * java/awt/event/ActionEvent.java,
+       * java/awt/event/ComponentEvent.java,
+       * java/awt/event/HierarchyEvent.java,
+       * java/awt/event/InputEvent.java,
+       * java/awt/event/InputMethodEvent.java,
+       * java/awt/event/KeyEvent.java,
+       * java/awt/event/MouseEvent.java,
+       * java/awt/event/WindowEvent.java,
+       * java/awt/font/TextLayout.java,
+       * java/awt/image/BandedSampleModel.java,
+       * java/awt/image/BufferedImage.java,
+       * java/awt/image/MultiPixelPackedSampleModel.java,
+       * java/awt/image/Raster.java,
+       * java/awt/image/SinglePixelPackedSampleModel.java:
+       Swap use of StringBuffer for CPStringBuilder.
 
 2008-05-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
        of characters to copy.
        (toLowerCaseTurkish()): Likewise.
 
+2008-05-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/xml/stream/XMLEventImpl.java,
+       * gnu/xml/stream/XMLParser.java,
+       * gnu/xml/validation/datatype/EntitiesType.java,
+       * gnu/xml/validation/datatype/NMTokensType.java:
+       Swap use of StringBuffer for CPStringBuilder,
+       
+2008-05-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/javax/swing/text/html/parser/htmlValidator.java,
+       * gnu/javax/swing/text/html/parser/models/list.java,
+       * gnu/javax/swing/text/html/parser/models/node.java,
+       * gnu/javax/swing/text/html/parser/support/Parser.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/java/lang/CPStringBuilder.java:
+       (substring(int)): Added.
+       * gnu/javax/naming/giop/CorbalocParser.java,
+       * gnu/javax/naming/giop/GiopNamingServiceFactory.java,
+       * gnu/javax/naming/giop/ListBindingsEnumeration.java,
+       * gnu/javax/naming/giop/ListEnumeration.java,
+       * gnu/javax/naming/ictxImpl/trans/GnuName.java,
+       * gnu/javax/net/ssl/PrivateCredentials.java,
+       * gnu/javax/net/ssl/Session.java,
+       * gnu/javax/net/ssl/provider/HelloRequest.java,
+       * gnu/javax/net/ssl/provider/Util.java,
+       * gnu/javax/print/ipp/attribute/RequestedAttributes.java,
+       * gnu/javax/rmi/CORBA/RmiUtilities.java,
+       * gnu/javax/security/auth/callback/AWTCallbackHandler.java,
+       * gnu/javax/security/auth/login/ConfigFileTokenizer.java,
+       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java:
+       Swap use of StringBuffer for CPStringBuilder,
+
+2008-05-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/javax/crypto/assembly/TransformerException.java,
+       * gnu/javax/crypto/cipher/BaseCipher.java,
+       * gnu/javax/crypto/jce/sig/DHParameters.java,
+       * gnu/javax/crypto/key/KeyAgreementException.java,
+       * gnu/javax/crypto/mode/BaseMode.java,
+       * gnu/javax/crypto/pad/BasePad.java,
+       * gnu/javax/crypto/sasl/crammd5/CramMD5Util.java,
+       * gnu/javax/crypto/sasl/crammd5/PasswordFile.java,
+       * gnu/javax/crypto/sasl/plain/PasswordFile.java,
+       * gnu/javax/crypto/sasl/plain/PlainClient.java,
+       * gnu/javax/crypto/sasl/srp/PasswordFile.java,
+       * gnu/javax/crypto/sasl/srp/SRPClient.java,
+       * gnu/javax/crypto/sasl/srp/SRPServer.java,
+       * gnu/javax/crypto/sasl/srp/ServerStore.java:
+       Swap use of StringBuffer for CPStringBuilder,
+
+2008-05-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/java/util/Base64.java,
+       * gnu/java/util/prefs/NodeWriter.java,
+       * gnu/java/util/regex/RE.java,
+       * gnu/java/util/regex/REException.java,
+       * gnu/java/util/regex/REMatch.java,
+       * gnu/java/util/regex/REMatchEnumeration.java,
+       * gnu/java/util/regex/REToken.java,
+       * gnu/java/util/regex/RETokenAny.java,
+       * gnu/java/util/regex/RETokenBackRef.java,
+       * gnu/java/util/regex/RETokenChar.java,
+       * gnu/java/util/regex/RETokenEnd.java,
+       * gnu/java/util/regex/RETokenEndOfPreviousMatch.java,
+       * gnu/java/util/regex/RETokenEndSub.java,
+       * gnu/java/util/regex/RETokenIndependent.java,
+       * gnu/java/util/regex/RETokenLookAhead.java,
+       * gnu/java/util/regex/RETokenLookBehind.java,
+       * gnu/java/util/regex/RETokenNamedProperty.java,
+       * gnu/java/util/regex/RETokenOneOf.java,
+       * gnu/java/util/regex/RETokenPOSIX.java,
+       * gnu/java/util/regex/RETokenRange.java,
+       * gnu/java/util/regex/RETokenRepeated.java,
+       * gnu/java/util/regex/RETokenStart.java,
+       * gnu/java/util/regex/RETokenWordBoundary.java:
+       Swap use of StringBuffer for CPStringBuilder,
+
+2008-05-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/java/lang/CPStringBuilder.java:
+       (CPStringBuilder(StringBuffer)): Added.
+       (CPStringBuulder(StringBuilder)): Likewise.
+       * gnu/java/text/AttributedFormatBuffer.java:
+       Swap use of StringBuffer for CPStringBuilder,
+       and make fields final.
+       * gnu/java/text/StringFormatBuffer.java:
+       Make fields final.
+       * java/text/SimpleDateFormat.java:
+       Add thread safety warning.
+
+2008-05-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/java/security/OID.java,
+       * gnu/java/security/PolicyFile.java,
+       * gnu/java/security/der/BitString.java,
+       * gnu/java/security/der/DERReader.java,
+       * gnu/java/security/jce/sig/DSSParameters.java,
+       * gnu/java/security/provider/X509CertificateFactory.java,
+       * gnu/java/security/util/ByteArray.java,
+       * gnu/java/security/util/Util.java,
+       * gnu/java/security/x509/PolicyNodeImpl.java,
+       * gnu/java/security/x509/Util.java,
+       * gnu/java/security/x509/X500DistinguishedName.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/java/net/protocol/ftp/FTPConnection.java,
+       * gnu/java/net/protocol/jar/Handler.java,
+       * gnu/java/rmi/server/RMIClassLoaderImpl.java,
+       * gnu/java/rmi/server/RMIHashes.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/classpath/jdwp/util/Signature.java,
+       * gnu/java/awt/font/opentype/GlyphNamer.java,
+       * gnu/java/awt/font/opentype/truetype/Fixed.java,
+       * gnu/java/awt/font/opentype/truetype/VirtualMachine.java,
+       * gnu/java/awt/peer/gtk/GdkFontPeer.java,
+       * gnu/java/awt/peer/gtk/GtkClipboard.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/CORBA/BigDecimalHelper.java,
+       * gnu/CORBA/CDR/LittleEndianInputStream.java,
+       * gnu/CORBA/CDR/Vio.java,
+       * gnu/CORBA/CDR/gnuRuntime.java,
+       * gnu/CORBA/GIOP/MessageHeader.java,
+       * gnu/CORBA/GIOP/RequestHeader.java,
+       * gnu/CORBA/GIOP/v1_0/ReplyHeader.java,
+       * gnu/CORBA/GIOP/v1_0/RequestHeader.java,
+       * gnu/CORBA/IOR.java,
+       * gnu/CORBA/NamingService/NameParser.java,
+       * gnu/CORBA/NamingService/NameTransformer.java,
+       * gnu/CORBA/Poa/gnuPOA.java,
+       * gnu/CORBA/Poa/gnuServantObject.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java,
+       * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java,
+       * examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java,
+       * examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java,
+       * examples/gnu/classpath/examples/html/Demo.java:
+       Swap use of StringBuffer for StringBuilder.
+       
+2008-05-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/xml/libxmlj/dom/GnomeAttr.java,
+       * gnu/xml/libxmlj/dom/GnomeCharacterData.java,
+       * gnu/xml/libxmlj/dom/GnomeDocument.java,
+       * gnu/xml/libxmlj/dom/GnomeDocumentType.java,
+       * gnu/xml/libxmlj/dom/GnomeElement.java,
+       * gnu/xml/libxmlj/dom/GnomeEntity.java,
+       * gnu/xml/libxmlj/dom/GnomeNode.java,
+       * gnu/xml/libxmlj/dom/GnomeNotation.java,
+       * gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java,
+       * gnu/xml/libxmlj/dom/GnomeText.java,
+       * gnu/xml/libxmlj/dom/GnomeXPathResult.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-04-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/xml/util/XMLWriter.java,
+       * gnu/xml/xpath/ArithmeticExpr.java,
+       * gnu/xml/xpath/ConcatFunction.java,
+       * gnu/xml/xpath/Expr.java,
+       * gnu/xml/xpath/FunctionCall.java,
+       * gnu/xml/xpath/NormalizeSpaceFunction.java,
+       * gnu/xml/xpath/Selector.java,
+       * gnu/xml/xpath/Steps.java,
+       * gnu/xml/xpath/TranslateFunction.java,
+       * gnu/xml/xpath/VariableReference.java,
+       * gnu/xml/xpath/XPathTokenizer.java:
+       Swap use of StringBuffer for CPStringBuilder.
+
+2008-04-26  Ian Rogers  <ian.rogers@manchester.ac.uk>
+
+       * java/util/ArrayList (raiseBoundsError): new method to raise bound
+       exceptions in uncommon case.
+       (checkBoundInclusive): use raiseBoundsError.
+       (checkBoundExclusive): likewise.
+       * java/util/ArrayList (raiseBoundsError): new method to raise bound
+       exceptions in uncommon case.
+       (checkBoundInclusive): use raiseBoundsError.
+       (checkBoundExclusive): likewise.
+
+2008-04-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/lang/Byte.java:
+       Use int instead of short as a loop counter
+       for efficiency.
+
+2008-04-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/lang/Byte.java:
+       (static): Use a short as the loop counter, not
+       a byte as this can't exceed MAX_VALUE.
+       
+2008-04-18  Ian Rogers  <ian.rogers@manchester.ac.uk>
+
+       * java/nio/Buffer.java (cap): make field private and final.
+       (address): make field final.
+       (Buffer): add address argument to package protected constructor thereby
+       allowing it to be made final.
+       * java/nio/ByteBuffer.java (backing_buffer): make field final.
+       (array_offset): make field final.
+       (ByteBuffer): add address, backing_buffer and array_offset to
+       constructor, allowing fields to be made final.
+       * java/nio/ByteBufferImpl.java (readOnly): make field final.
+       (ByteBufferImpl): modify call to super class constructor to pass
+       backing_buffer and array_offset.
+       * java/nio/CharBuffer.java (array_offset): make field final.
+       (backing_buffer): make field final.
+       (CharBuffer): add address, backing_buffer and array_offset to
+       constructor, allowing fields to be made final.
+       * java/nio/CharBufferImpl.java (readOnly): make field final.
+       (CharBufferImpl): modify call to super class constructor to pass
+       backing_buffer and array_offset.
+       (CharBufferImpl(CharBufferImpl)): likewise.
+       * java/nio/CharSequenceBuffer.java (charSequence): make field final.
+       (CharSequenceBuffer): modify call to super class constructor, allowing
+       fields to be made final.
+       (duplicate): use capacity call rather than cap, to allow better
+       encapsulation.
+       * java/nio/CharViewBufferImpl.java (offset): make field final.
+       (bb): likewise.
+       (readOnly): likewise.
+       (endian): likewise.
+       (CharViewBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+       * java/nio/DirectByteBufferImpl.java: modify calls to super class
+       constructors, allowing fields to be made final.
+       * java/nio/DoubleBuffer.java (array_offset): make field final.
+       (backing_buffer): make field final.
+       (DoubleBuffer): add address, backing_buffer and array_offset to
+       constructor, allowing fields to be made final.
+       * java/nio/DoubleBufferImpl.java (readOnly): make field final.
+       (DoubleBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+       * java/nio/DoubleViewBufferImpl.java (offset): make field final.
+       (bb): likewise.
+       (readOnly): likewise.
+       (endian): likewise.
+       (DoubleViewBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+       * java/nio/FloatBuffer.java (array_offset): make field final.
+       (backing_buffer): make field final.
+       (FloatBuffer): add address, backing_buffer and array_offset to
+       constructor, allowing fields to be made final.
+       * java/nio/FloatBufferImpl.java (readOnly): make field final.
+       (FloatBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+       * java/nio/FloatViewBufferImpl.java (offset): make field final.
+       (bb): likewise.
+       (readOnly): likewise.
+       (endian): likewise.
+       (FloatViewBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+       * java/nio/IntBuffer.java (array_offset): make field final.
+       (backing_buffer): make field final.
+       (IntBuffer): add address, backing_buffer and array_offset to
+       constructor, allowing fields to be made final.
+       * java/nio/IntBufferImpl.java (readOnly): make field final.
+       (IntBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+       * java/nio/IntViewBufferImpl.java (offset): make field final.
+       (bb): likewise.
+       (readOnly): likewise.
+       (endian): likewise.
+       (IntViewBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+       * java/nio/LongBuffer.java (array_offset): make field final.
+       (backing_buffer): make field final.
+       (LongBuffer): add address, backing_buffer and array_offset to
+       constructor, allowing fields to be made final.
+       * java/nio/LongBufferImpl.java (readOnly): make field final.
+       (LongBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+       * java/nio/LongViewBufferImpl.java (offset): make field final.
+       (bb): likewise.
+       (readOnly): likewise.
+       (endian): likewise.
+       (LongViewBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+       * java/nio/MappedByteBuffer.java (MappedByteBuffer): modify arguments
+       add call to constructor, allowing fields to be final.
+       * java/nio/MappedByteBufferImpl.java (readOnly): make field final.
+       (MappedByteBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+       * java/nio/ShortBuffer.java (array_offset): make field final.
+       (backing_buffer): make field final.
+       (ShortBuffer): add address, backing_buffer and array_offset to
+       constructor, allowing fields to be made final.
+       * java/nio/ShortBufferImpl.java (readOnly): make field final.
+       (ShortBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+       * java/nio/ShortViewBufferImpl.java (offset): make field final.
+       (bb): likewise.
+       (readOnly): likewise.
+       (endian): likewise.
+       (ShortViewBufferImpl): modify call to super class constructor, allowing
+       fields to be made final.
+
+2008-04-18  Ian Rogers  <ian.rogers@manchester.ac.uk>
+
+       * java/lang/Byte.java (static): initialize byteCache.
+       (valueOf(String,int)): use valueOf(byte) rather than new.
+       (valueOf(String)): likewise.
+       (valueOf(byte)): Switch from lazy initialization of cached values to
+       initialization at class initialization time. This removes the need for
+       synchronization in the common case.
+       (decode): use valueOf(byte) rather than new.
+       * java/lang/Character.java (static): initialize charCache.
+       (valueOf): Switch from lazy initialization of cached values to
+       initialization at class initialization time. This removes the need for
+       synchronization in the common case.
+       * java/lang/Double.java (ZERO): new private field.
+       (ONE): likewise.
+       (valueOf(double)): don't create new doubles for the case of 0 and 1.
+       (valueOf(String)): use valueOf(double) rather than new.
+       (equals): use raw bits for comparison to avoid division.
+       * java/lang/Float.java (ZERO): new private field.
+       (ONE): likewise.
+       (valueOf(float)): don't create new floats for the case of 0 and 1.
+       (valueOf(String)): use valueOf(float) rather than new.
+       (equals): use raw bits for comparison to avoid division.
+       * java/lang/Integer.java (static): initialize intCache.
+       (stringSize): new private method to estimate size of string for an int.
+       (toString): reuse digits for single character strings, for multiple
+       character strings estimate their length using string size method.
+       (valueOf(String,int)): use valueOf(int) rather than new.
+       (valueOf(String)): likewise.
+       (valueOf(int)): Switch from lazy initialization of cached values to
+       initialization at class initialization time. This removes the need for
+       synchronization in the common case.
+       (getInteger): use valueOf(int) rather than new.
+       (decode): use valueOf(int) rather than new.
+       (signum): use shift and subtract to compute value.
+       (toUnsignedString): calculate string size rather than using 32 chars.
+       * java/lang/Long.java (longCache): new private field.
+       (stringSize): new private method to estimate size of string for a long.
+       (toString): reuse digits for single character strings, for multiple
+       character strings estimate their length using string size method.
+       (valueOf(String,int)): use valueOf(long) rather than new.
+       (valueOf(String)): likewise.
+       (valueOf(long)): use cache of values.
+       (decode): use valueOf(long) rather than new.
+       (getLong): likewise.
+       (signum): use shift and subtract to compute value.
+       (toUnsignedString): calculate string size rather than using 64 chars.
+       * java/lang/Short.java (static): initialize shortCache.
+       (valueOf(String,int)): use valueOf(short) rather than new.
+       (valueOf(String)): likewise.
+       (valueOf(short)): Switch from lazy initialization of cached values to
+       initialization at class initialization time. This removes the need for
+       synchronization in the common case.
+       (decode): use valueOf(short) rather than new.
+
 2008-04-18  Mario Torre  <neugens@aicas.com>
 
        PR classpath/35974
        Now all the methods of the class get a lock on a static lock, this
        avoids a lock when getLogger and log are used concurrently.
 
+2008-04-18  Tom Tromey  <tromey@redhat.com>
+
+       * lib/gen-classlist.sh.in: Skip 'sed' steps if no vm_omitlist
+       found.
+
+2008-04-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * lib/gen-classlist.sh.in: Avoid grepping each omission, by
+       building an awk script with a hash for literal files, and
+       awk regular expressions for the rest.
+       * configure.ac: Call AC_PROG_AWK.
+
+2008-04-16  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/orbd/Main.java: Bump copyright year.
+       * tools/resource/gnu/classpath/tools/common/Messages.properties
+       (ClasspathToolParser.VersionFormat): Bump copyright year.
+
 2008-04-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * m4/gcc_attribute.m4 (GCC_ATTRIBUTE): Fix cache variable name.
        for these scripts, to trick automake into hiding the respective
        rules for the programs below the CREATE_WRAPPERS conditional.
 
-2008-04-18  Tom Tromey  <tromey@redhat.com>
+2008-04-09  Mario Torre  <neugens@aicas.com>
+       * java/io/File.java (canWrite): use canWriteDirectory(String). 
+       * vm/reference/java/io/VMFile.java (canWriteDirectory): new native method. 
+       * native/jni/java-io/java_io_VMFile.c: correct indentation, sync function
+       names with header file definition.
+       (Java_java_io_VMFile_canRead): use cpio_checkAccess to get access
+       permission. Removed unused variable.
+    (Java_java_io_VMFile_canWrite): likewise.
+    (Java_java_io_VMFile_canWriteDirectory): new function.
+       
 
-       * lib/gen-classlist.sh.in: Skip 'sed' steps if no vm_omitlist
-       found.
+2008-03-31  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2008-04-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+       * doc/www.gnu.org/events/events.wml:
+       Correct layout and fix GSoC link.
 
-       * lib/gen-classlist.sh.in: Avoid grepping each omission, by
-       building an awk script with a hash for literal files, and
-       awk regular expressions for the rest.
-       * configure.ac: Call AC_PROG_AWK.
+2008-03-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * doc/www.gnu.org/external.wml:
+       Corrected Jalopy tag name.
+       * doc/www.gnu.org/home.wml:
+       Update link to tasks.
+       * doc/www.gnu.org/announce/20080222.wml:
+       Correct IcedTea and builder links.
+       * doc/www.gnu.org/downloads/downloads.wml:
+       Add 0.97 and 0.97.1.
+       * doc/www.gnu.org/events/events.wml:
+       Fix links and add FOSDEMs/GSoC.
 
 2008-03-27  Mario Torre  <neugens@aicas.com>
 
        (equals): new method, override from base class.
        (toString): likewise.
 
-2008-03-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * java/util/concurrent/CopyOnWriteArrayList.java:
-       Don't extend AbstractList.
-       (containsAll(Collection)): Implemented.
-       (listIterator()): Likewise.
-       (subList(int,int)): Likewise.
-
-2008-03-31  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * doc/www.gnu.org/events/events.wml:
-       Correct layout and fix GSoC link.
-
-2008-03-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * doc/www.gnu.org/external.wml:
-       Corrected Jalopy tag name.
-       * doc/www.gnu.org/home.wml:
-       Update link to tasks.
-       * doc/www.gnu.org/announce/20080222.wml:
-       Correct IcedTea and builder links.
-       * doc/www.gnu.org/downloads/downloads.wml:
-       Add 0.97 and 0.97.1.
-       * doc/www.gnu.org/events/events.wml:
-       Fix links and add FOSDEMs/GSoC.
+2008-03-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
+       * java/awt/image/ColorModel.java:
+       (coerceDataWorker(WritableRaster,boolean)):
+       Make package-private, not protected.
+       * java/awt/image/ComponentColorModel.java:
+       Call coerceDataWorker directly.
+       * java/awt/image/DirectColorModel.java:
+       Likewise.
+       (coerceData(WritableRaster,boolean)): Made final.
+       
 2008-03-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
        PR classpath/22883
        Fix links to point to current versions of
        vmintegration and hacking, and add links to
        tools.
-
+       
 2008-03-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
        PR classpath/22883
        * doc/www.gnu.org/home.wml:
        Update home page to reflect current state of
        affairs.
+       
+2008-03-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/text/SimpleDateFormat.java:
+       (standardChars): Corrected.
+       (RFC822_TIMEZONE_FIELD): Added.
+       (formatWithAttribute(Date,FormatBuffer,FieldPosition)):
+       Support RFC822 timezone field ('Z').
+       
+2008-03-20  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/getopt/Parser.java (options): Don't
+       initialize.
+       (add, addFinal): Don't update options.
+       (requireOptions): New method.
+       (printHelp): Synchronize.  Call requireOptions.
+       (parse): Call requireOptions.
+
+2008-03-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/java/lang/CPStringBuilder.java:
+       (indexOf(String,int)): Use regionMatches from String.
+       (lastIndexOf(String,int)): Likewise.
+       (regionMatches(int,String)): Removed broken code.
+       (substring(int,int)): Rearrange index computation so
+       it is only computed if valid.
+       
+2008-03-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/xml/transform/AbstractNumberNode.java,
+       * gnu/xml/transform/ApplyTemplatesNode.java,
+       * gnu/xml/transform/AttributeNode.java,
+       * gnu/xml/transform/Bindings.java,
+       * gnu/xml/transform/CallTemplateNode.java,
+       * gnu/xml/transform/ChooseNode.java,
+       * gnu/xml/transform/CopyNode.java,
+       * gnu/xml/transform/CopyOfNode.java,
+       * gnu/xml/transform/ElementNode.java,
+       * gnu/xml/transform/ForEachNode.java,
+       * gnu/xml/transform/IfNode.java,
+       * gnu/xml/transform/MessageNode.java,
+       * gnu/xml/transform/ParameterNode.java,
+       * gnu/xml/transform/ProcessingInstructionNode.java,
+       * gnu/xml/transform/StreamSerializer.java,
+       * gnu/xml/transform/Template.java,
+       * gnu/xml/transform/TextNode.java,
+       * gnu/xml/transform/TransformerImpl.java,
+       * gnu/xml/transform/TransformerOutputProperties.java,
+       * gnu/xml/transform/ValueOfNode.java,
+       * gnu/xml/transform/WhenNode.java:
+       Use CPStringBuilder in preference to StringBuffer.
+
+2008-03-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/java/lang/CPStringBuilder.java:
+       Replace reflection code with calls to
+       VMCPStringBuilder.
+       * vm/reference/gnu/java/lang/VMCPStringBuilder.java:
+       Default implementation of constructor call
+       using reflection.
+       
+2008-03-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * gnu/xml/dom/DomAttr.java,
+       * gnu/xml/dom/DomEvent.java,
+       * gnu/xml/dom/DomNode.java,
+       * gnu/xml/dom/DomText.java,
+       * gnu/xml/dom/ls/DomLSInput.java,
+       * gnu/xml/util/DoParse.java,
+       * gnu/xml/util/XCat.java:
+       Use CPStringBuilder in preference to StringBuffer.
+
+2008-03-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/21869
+       * java/security/AlgorithmParameterGenerator.java,
+       * java/security/AlgorithmParameters.java,
+       * java/security/KeyFactory.java,
+       * java/security/KeyPairGenerator.java,
+       * java/security/MessageDigest.java,
+       * java/security/SecureRandom.java,
+       * java/security/Signature.java,
+       * java/security/cert/CertPathBuilder.java,
+       * java/security/cert/CertPathValidator.java,
+       * java/security/cert/CertStore.java,
+       * java/text/SimpleDateFormat.java,
+       * java/util/AbstractMap.java,
+       * java/util/Arrays.java,
+       * java/util/Calendar.java,
+       * java/util/Date.java,
+       * java/util/Formatter.java,
+       * java/util/Hashtable.java,
+       * java/util/Properties.java,
+       * java/util/TreeMap.java,
+       * java/util/regex/Matcher.java:
+       Use CPStringBuilder in preference to StringBuilder.
+
+2008-03-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
+       PR classpath/21869
+       * gnu/java/security/Engine.java,
+       * gnu/java/security/hash/Whirlpool.java,
+       * gnu/java/security/key/dss/DSSKey.java,
+       * gnu/java/security/key/dss/DSSPrivateKey.java,
+       * gnu/java/security/key/dss/DSSPublicKey.java,
+       * gnu/java/security/key/rsa/GnuRSAKey.java,
+       * gnu/java/security/key/rsa/GnuRSAPrivateKey.java,
+       * gnu/java/security/key/rsa/GnuRSAPublicKey.java,
+       * java/awt/datatransfer/MimeType.java,
+       * java/io/BufferedReader.java,
+       * java/io/DataInputStream.java,
+       * java/lang/Double.java,
+       * java/lang/Float.java,
+       * java/lang/String.java,
+       * java/lang/reflect/Proxy.java,
+       * java/math/BigDecimal.java,
+       * java/net/URI.java,
+       * java/net/URLClassLoader.java,
+       * java/net/URLEncoder.java:
+       Use CPStringBuilder in preference to StringBuilder.
+
+2008-03-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * vm/reference/java/lang/reflect/VMField.java:
+       Consistently use 'clazz' as the name of the variable
+       containing the declaring class.
+       * vm/reference/java/lang/reflect/VMMethod.java:
+       Likewise.
+       
+2008-03-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/34840
+       * java/lang/AbstractStringBuffer.java:
+       (append(CharSequence,int,int)): Just set
+       sequence to "null" don't append it.
+       
 2008-03-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
        * doc/www.gnu.org/newsitems.txt:
        Added.
        * doc/www.gnu.org/cp-tools/.cvsignore:
        Ignore generated HTML files.
+       
+2008-03-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
+       * java/beans/beancontext/BeanContextServicesSupport.java:
+       (BCSSProxyServiceProvider(BeanContextServiceProvider)):
+       Add package-private constructor.
+       * java/lang/StringBuffer.java:
+       (ensureCapacity_unsynchronized(int)): Make package-private.
+       * java/rmi/activation/Activatable.java:
+       (export(ActivationID, Remote, int, RMIServerSocketFactory)):
+       Make private.
+       (makeId(ActivationID)): Likewise.
+       * java/security/MessageDigest.java:
+       (update(ByteBuffer)): Make final.
+       * java/security/cert/PolicyQualifierInfo.java:
+       (getPolicyQualifierId()): Likewise.
+       (getEncoded()): Likewise.
+       (getPolicyQualifier()): Likewise.
+       * java/text/DateFormat.java:
+       (ISO_YEAR_FIELD): Removed.
+       (LOCALIZED_DAY_OF_WEEK_FIELD): Likewise.
+       (EXTENDED_YEAR_FIELD): Likewise.
+       (MODIFIED_JULIAN_DAY_FIELD): Likewise.
+       (MILLISECOND_IN_DAY_FIELD): Likewise.
+       (RFC822_TIMEZONE_FIELD): Likewise.
+       (Field.ISO_YEAR_FIELD): Likewise.
+       (Field.LOCALIZED_DAY_OF_WEEK_FIELD): Likewise.
+       (Field.EXTENDED_YEAR_FIELD): Likewise.
+       (Field.MODIFIED_JULIAN_DAY_FIELD): Likewise.
+       (Field.MILLISECOND_IN_DAY_FIELD): Likewise.
+       (Field.RFC822_TIMEZONE_FIELD): Likewise.        
+       * java/text/DecimalFormat.java:
+       (format(Object,StringBuffer,FieldPosition)): Make final.
+       * java/text/Format.java:
+       (Format()): Make protected.
+       * java/text/NumberFormat.java:
+       (NumberFormat()): Likewise.
+       * java/text/SimpleDateFormat.java:
+       Remove code using RFC822_TIMEZONE_FIELD.
+       * java/util/Stack.java:
+       Use array of Objects rather than instances of T.
+       * java/util/Vector.java:
+       Likewise.
+       * java/util/concurrent/CopyOnWriteArrayList.java:
+       Don't extend AbstractList.
+       (containsAll(Collection)): Implemented.
+       (listIterator()): Likewise.
+       (subList(int,int)): Likewise.
+       * java/util/zip/Deflater.java:
+       (getTotalIn()): Remove deprecation.
+       (getTotalOut()): Likewise.
+       * java/util/zip/Inflater.java,
+       (getTotalIn()): Likewise.
+       (getTotalOut()): Likewise.
+
+2008-03-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/awt/MouseInfo.java:
+       (MouseInfo()): Private constructor to prevent
+       instance creation.
+       * java/lang/AbstractStringBuilder.java:
+       (ensureCapacity_unsynchronized(int)): Make
+       package-private, not protected.
+       
+2008-03-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/28664
+       * native/jni/java-math/Makefile.am: Add
+       AM_LDFLAGS to the local LDFLAGS definition
+       so gmp is linked.
+       
+2008-03-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/35422
+       * doc/api/Makefile.am: Include external/jsr166.
+       
 2008-03-10  Jim Meyering  <meyering@redhat.com>
 
        Don't leak upon failed realloc.
        * doc/cp-tools.texinfo: Likewise.
        * doc/cp-vmintegration.texinfo: Likewise.
 
-2008-02-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-03-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * configure.ac:
-       Check for sys/loadavg.h.
-       * native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c:
-       Include sys/loadavg.h if found.
+       * java/lang/reflect/Constructor.java:
+       (cons): Make package-private.
+       (Constructor(VMConstructor)): Set cons in
+       VM interface.
+       * java/lang/reflect/Field.java:
+       (f): Make package-private.
+       (Field(VMField)): Set f in VM interface.
+       * java/lang/reflect/Method.java:
+       (m): Make package-private.
+       (Method(VMMethod)): Set m in VM interface.
+       * vm/reference/java/lang/reflect/VMConstructor.java:
+       (cons): Added reference to Constructor instance.
+       * vm/reference/java/lang/reflect/VMField.java:
+       (f): Added reference to Field instance.
+       * vm/reference/java/lang/reflect/VMMethod.java,
+       (m): Added reference to Method instance.
+
+2008-03-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/lang/reflect/AccessibleObject.java:
+       (getAnnotation(Class)): Documented.
+       (getAnnotations()): Likewise.
+       (getDeclaredAnnotations()): Likewise.
+       (isAnnotationPresent(Class)): Likewise.
+       * java/lang/reflect/Constructor.java,
+       * java/lang/reflect/Field.java,
+       * java/lang/reflect/Method.java,
+       * vm/reference/java/lang/reflect/VMConstructor.java,
+       * vm/reference/java/lang/reflect/VMField.java,
+       * vm/reference/java/lang/reflect/VMMethod.java:
+       (getAnnotation(Class)): Added.
+       (getDeclaredAnnotations()): Likewise.
 
-2008-06-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-03-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * include/Makefile.am: Don't delete headers
-       when not rebuilding them.
+       * tools/Makefile.am:
+       Distribute property files.
        
-2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-03-04  Robert Schuster  <robertschuster@fsfe.org>
 
-       * configure.ac: Only regenerate headers by
-       default if the headers aren't in the source tree.
+       * gnu/xml/stream/AttributeImpl.java: Changed type field to String.
+       (getDTDType): Changed return type to String.
+       * gnu/xml/stream/XMLEventAllocatorImpl.java:
+       (allocate): Removed wrapping of string in QName object.
+       * gnu/xml/stream/XMLEventFactoryImpl.java:
+       (createAttribute(String, String)): Removed wrapping of string in
+       QName object.
+       (createAttribute(QName, String)): Ditto.
+       (createAttribute(String, String, String, String)): Ditto.
+       * javax/xml/stream/events/Attribute.java:
+       (getDTDType): Changed return type to String.
 
-2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-03-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * configure.ac: Only run javac check
-       if examples, tools and/or class library are
-       being built.
-       * scripts/check_jni_methods.sh.in:
-       Remove duplicates in the list of JNI methods
-       for when builddir==srcdir.
+       * java/lang/reflect/Constructor.java,
+       * java/lang/reflect/Field.java,
+       * java/lang/reflect/Method.java,
+       * vm/reference/java/lang/reflect/VMConstructor.java:
+       (equals(Object)): Added.
+       * vm/reference/java/lang/reflect/VMField.java:
+       (equals(Object)): Added.
+       * vm/reference/java/lang/reflect/VMMethod.java:
+       (equals(Object)): Added.
+       Move variables from Classpath classes to VM classes
+       and make class methods into instance methods.
        
-2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-02-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * lib/Makefile.am:
-       Replace explicit mkinstalldirs with $(mkinstalldirs).
+       * java/lang/reflect/Constructor.java,
+       * java/lang/reflect/Field.java,
+       * java/lang/reflect/Method.java:
+       New classes within GNU Classpath that provide
+       common reflection functionality.
+       * vm/reference/java/lang/reflect/Constructor.java,
+       * vm/reference/java/lang/reflect/Field.java,
+       * vm/reference/java/lang/reflect/Method.java:
+       Removed.
+       * vm/reference/java/lang/reflect/VMConstructor.java,
+       * vm/reference/java/lang/reflect/VMField.java,
+       * vm/reference/java/lang/reflect/VMMethod.java:
+       New VM interface for reflection.
        
-2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-03-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * scripts/check_jni_methods.sh.in:
-       Search the source directory as well for
-       when headers are in the tarball.
+       PR classpath/28664
+       * native/jni/Makefile.am: Check CREATE_GMPBI_LIBRARY
+       and only compile GMP libraries if set.
        
-2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-03-02  Mark Wielaard  <mark@klomp.org>
 
-       * Makefile.am: Replace tools with
-       $(TOOLSDIR).
-       * m4/acinclude.m4: Include option
-       to disable building the tools.
-       
-2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+       * native/jni/Makefile.am (DIST_SUBDIRS): Add java-math.
 
-       * Makefile.am: Use default makedistcheck
-       flags that test all optional dependencies.
-       * configure.ac: Set version to 0.97.2-pre.
-       * include/Makefile.am: Add header files to dist.
-       * lib/Makefile.am: Trick class files into being
-       built for dist, so headers can be generated.
+2008-02-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/21869
+       * gnu/classpath/CPStringBuilder.java:
+       Make the constructor accessible.
        
-2008-03-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-02-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/21869
+       * gnu/classpath/CPStringBuilder.java:
+       Removed.
+       * gnu/java/awt/font/OpenTypeFontPeer.java,
+       * gnu/java/awt/font/autofit/Edge.java,
+       * gnu/java/awt/font/autofit/LatinBlue.java,
+       * gnu/java/awt/font/autofit/Segment.java,
+       * gnu/java/awt/font/autofit/Width.java,
+       * gnu/java/awt/font/opentype/truetype/Point.java,
+       * gnu/java/awt/java2d/ActiveEdges.java,
+       * gnu/java/awt/peer/GnomeDesktopPeer.java,
+       * gnu/java/awt/peer/KDEDesktopPeer.java,
+       * gnu/java/awt/peer/x/XFontPeer.java:
+       Use CPStringBuilder.
+       * gnu/java/lang/CPStringBuilder.java:
+       Moved from gnu.classpath.
+       * gnu/java/lang/ClassHelper.java,
+       * gnu/java/lang/reflect/GenericSignatureParser.java,
+       * gnu/java/lang/reflect/TypeSignature.java,
+       * gnu/java/net/protocol/http/ChunkedInputStream.java,
+       * gnu/java/net/protocol/http/Cookie.java,
+       * gnu/java/net/protocol/http/HTTPConnection.java,
+       * gnu/java/net/protocol/http/Headers.java,
+       * gnu/java/net/protocol/http/Request.java:
+       Use CPStringBuilder.
+       * java/lang/reflect/Modifier.java:
+       Corrected import to point to correct package.
+       * java/util/Formatter.java:
+       Use CPStringBuilder.
+       * vm/reference/java/lang/reflect/Constructor.java,
+       * vm/reference/java/lang/reflect/Field.java,
+       * vm/reference/java/lang/reflect/Method.java:
+       Corrected import to point to correct package.
+
+2008-02-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * configure.ac: Set version to 0.97.1
-       * NEWS: Add 0.97.1.
+        PR classpath/21869
+       * gnu/classpath/CPStringBuffer.java,
+       * gnu/classpath/CPStringBuilder.java:
+       Rename class to CPStringBuilder.
+       * java/lang/reflect/Modifier.java,
+       * vm/reference/java/lang/reflect/Constructor.java,
+       * vm/reference/java/lang/reflect/Field.java,
+       * vm/reference/java/lang/reflect/Method.java:
+       Use CPStringBuilder.
+
+2008-02-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/classpath/CPStringBuffer.java:
+       New non-copying string buffer.
+       * java/lang/AbstractStringBuffer.java:
+       Add note about CPStringBuffer.
+
+2008-02-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/util/EmptyEnumeration.java:
+       Add generic type parameter.
+       * java/lang/ClassLoader.java:
+       Use EmptyEnumeration with type parameter.
+       * java/util/zip/ZipFile.java:
+       Likewise.
+       * javax/swing/text/html/StyleSheet.java,
+       * javax/swing/text/html/ViewAttributeSet.java:
+       Add generics.
+       * javax/swing/tree/DefaultMutableTreeNode.java:
+       Use EmptyEnumeration with type parameter.
+
+2008-02-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/28664
+       * include/Makefile.am:
+       Add generation of header file java_math_VMBigInteger.h
+       * java/math/BigInteger.java: Separate NativeMPI into
+       VMBigInteger.
+       * native/jni/Makefile.am: Add java-math.
+       * native/jni/java-math/java_math_VMBigInteger.c:
+       Renamed from java_math_BigInteger.c.
+       * vm/reference/java/math/VMBigInteger.java:
+       Former NativeMPI class from java.math.BigInteger.
+
+2006-11-28  Raif S. Naffah  <classpath@naffah-raif.name>
+            Jeroen Frijters <jeroen@sumatra.nl>
+
+        PR classpath/28664
+        * configure.ac: Add support for configuring GNU MP.
+        * native/jni/Makefile.am: Include java-math directory if required.
+        * native/jni/java-math/.cvsignore: New file.
+        * native/jni/java-math/Makefile.am: Likewise.
+        * native/jni/java-math/java_math_BigInteger.c: Likewise.
+        * java/math/BigInteger.java: Added support for native methods.
+        * gnu/classpath/Configuration.java.in (WANT_NATIVE_BIG_INTEGER): New field.
+
+2008-02-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * configure.ac:
+       Check for sys/loadavg.h.
+       * native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c:
+       Include sys/loadavg.h if found.
        
-2008-03-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-02-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-        PR classpath/35422
-       * doc/api/Makefile.am: Include external/jsr166.
+       PR classpath/21869:
+       * java/lang/AbstractStringBuffer.java: New class.
+       * java/lang/StringBuffer.java,
+       * java/lang/StringBuilder.java:
+       Changed to use AbstractStringBuffer.
 
-2008-03-04  Robert Schuster  <robertschuster@fsfe.org>
+2008-02-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * gnu/xml/stream/AttributeImpl.java: Changed type field to String.
-       (getDTDType): Changed return type to String.
-       * gnu/xml/stream/XMLEventAllocatorImpl.java:
-       (allocate): Removed wrapping of string in QName object.
-       * gnu/xml/stream/XMLEventFactoryImpl.java:
-       (createAttribute(String, String)): Removed wrapping of string in
-       QName object.
-       (createAttribute(QName, String)): Ditto.
-       (createAttribute(String, String, String, String)): Ditto.
-       * javax/xml/stream/events/Attribute.java:
-       (getDTDType): Changed return type to String.
+       * gnu/java/util/prefs/EventDispatcher.java:
+       Removed again.
+       * gnu/java/util/prefs/GConfBasedPreferences.java,
+       * gnu/java/util/prefs/gconf/GConfNativePeer.java,
+       * java/util/prefs/AbstractPreferences.java,
+       * native/jni/gconf-peer/GConfNativePeer.c:
+       Revert to pre-release versions.
 
-2008-03-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-02-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * tools/Makefile.am:
-       Distribute property files.
+       * doc/www.gnu.org/newsitems.txt:
+       Add 20080222 announcement.
+       * doc/www.gnu.org/announce/20080222.wml:
+       Add announcement of 0.97.
 
+2008-02-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * NEWS: Add 0.98.
+       * configure.ac: Set version to 0.98-pre.
+       
 2008-02-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
        * NEWS: Set date for 0.97.
index c07666c6c79db7e33bb4c5d2ac882b7dfb3e35ff..7e7c40a1c54e2f389caaea90c243e53649cdb527 100644 (file)
@@ -1,3 +1,87 @@
+2008-10-21  Matthias Klose  <doko@ubuntu.com>
+
+       * classpath/tools/gnu/classpath/tools/gjdoc/expr/Java*: Move from ...
+       * classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/ ... here.
+       * Update .class files.
+       
+2008-10-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * tools/Makefile.am:
+       Always generate parser in the srcdir.
+
+2008-10-21  Matthias Klose  <doko@ubuntu.com>
+
+       * doc/Makefile.am (MAINTAINERCLEANFILES): Add gjdoc.1.
+       * doc/Makefile.in: Regenerate.
+
+2008-10-20  Matthias Klose  <doko@ubuntu.com>
+
+       * configure.ac: Fix path name in check for generated gjdoc parser files.
+       * configure: Regenerate.
+
+2008-10-20  Matthias Klose  <doko@ubuntu.com>
+
+       * configure.ac: Don't check for working java, if not configured
+        with --enable-java-maintainer-mode.
+       * configure: Regenerate.
+
+2008-10-19  Matthias Klose  <doko@ubuntu.com>
+
+       * m4/ac_prog_java.m4: Revert previous change.
+       * m4/ac_prog_javac.m4: Apply it here.
+       * configure: Regenerate.
+
+2008-10-19  Matthias Klose  <doko@ubuntu.com>
+
+       * m4/ac_prog_javac.m4: Don't check for working javac, if not configured
+       with --enable-java-maintainer-mode.
+       * configure: Regenerate.
+       * Makefile.in, */Makefile.in: Regenerate.
+
+2008-09-30  Matthias Klose  <doko@ubuntu.com>
+
+       * m4/ac_prog_antlr.m4: Check for cantlr binary as well.
+
+2008-09-29  Matthias Klose  <doko@ubuntu.com>
+
+       * m4/ac_prog_antlr.m4: Check for antlr binary as well.
+
+2008-09-28  Matthias Klose  <doko@ubuntu.com>
+
+       * PR libgcj/37636. Revert:
+       2008-02-20  Matthias Klose  <doko@ubuntu.com>
+
+       * tools/Makefile.am ($(TOOLS_ZIP)): Revert part of previous change,
+       Do copy resource files in JAVA_MAINTAINER_MODE only.
+       * tools/Makefile.in: Regenerate.
+
+2008-09-14  Matthias Klose  <doko@ubuntu.com>
+
+       * m4/ac_prog_javac_works.m4, m4/ac_prog_javac.m4, m4/acinclude.m4:
+       Revert local changes.
+       * m4/ac_prog_antlr.m4: Check for an runantlr binary.
+       * tools/Makefile.am, lib/Makefile.am: Revert local changes (JCOMPILER).
+       * tools/Makefile.am: Remove USE_JAVAC_FLAGS, pass ANTLR_JAR in
+       GLIBJ_CLASSPATH.
+
+2008-09-14  Matthias Klose  <doko@ubuntu.com>
+
+       Revert:
+       Daniel Frampton  <zyridium at zyridium.net>
+
+       * AUTHORS: Added.
+       * java/lang/InheritableThreadLocal.java,
+       * java/lang/Thread.java,
+       * java/lang/ThreadLocal.java:
+       Modified to use java.lang.ThreadLocalMap.
+       * java/lang/ThreadLocalMap.java:
+       New cheaper ThreadLocal-specific WeakHashMap.
+
+2008-08-15  Matthias Klose  <doko@ubuntu.com>
+
+       * m4/acinclude.m4 (CLASSPATH_JAVAC_MEM_CHECK): Remove unknown
+       args for javac.
+
 2008-08-17  Mark Wielaard  <mark@klomp.org>
 
        * gnu/java/awt/peer/gtk/CairoGraphics2D.java: Always loadLibrary
index fec369bad7f5df2b4789de4767cd48b33c1b9c3b..af47684b185cb83692e346aeb3c1a034a39a3a4b 100644 (file)
@@ -11,7 +11,7 @@ ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config ${LOCAL_AUTORECONF_FLAGS}
 
 native: lib
 
-EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \
+EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE ChangeLog-2007 \
              ChangeLog-2003 ChangeLog-2004 ChangeLog-2005 ChangeLog-2006 \
              ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \
             autogen.sh
index e25c5ff380a6af3d883b3b9c9b355d7a23977221..068771a85a229cbf3ef4dd71e94f5586ceba5be7 100644 (file)
@@ -68,6 +68,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -120,6 +123,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -151,6 +156,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -189,11 +200,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -203,6 +215,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -224,7 +238,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -290,8 +307,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -302,6 +321,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -361,6 +381,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 
 # lib first, to compile .class files before native code, last examples
@@ -369,7 +390,7 @@ DIST_SUBDIRS = lib doc external include native resource scripts tools examples
 
 # Allow users to pass site-specific flags to autoreconf via an env var. 
 ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config ${LOCAL_AUTORECONF_FLAGS}
-EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \
+EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE ChangeLog-2007 \
              ChangeLog-2003 ChangeLog-2004 ChangeLog-2005 ChangeLog-2006 \
              ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \
             autogen.sh
index 0a9e4620e87983000882f375bf06f6dc1e82e41e..4be4d60434c88a1ef0a4b1909739195eb146b2ad 100644 (file)
@@ -1,3 +1,19 @@
+New in release 0.98
+
+* Native support for BigInteger is now provided using the GMP
+library.  A new option, --enable/disable-gmp is provided, and
+the option is enabled by default if GMP is found.
+* Classpath now makes use of a new StringBuilder implementation
+internally called CPStringBuilder.  In addition to being
+unsynchronised, like StringBuilder, this also avoids copying the
+array when toString or substring is called.  While StringBuffer/Builder
+always retain their own array, which is only altered during resizing,
+CPStringBuilder gives away its array when the result is generated
+by toString()/substring() and starts afresh.  The default capacity of
+CPStringBuilder can also be configured using the
+gnu.classpath.cpstringbuilder.capacity property.
+* gjdoc is now built as part of tools.zip.
+
 Bug fixes in release 0.97.2 (Jun 06, 2007)
 
 * Include headers in the release tarball.
index 036bd0857b4210ced4bccfff08802547a889bfd8..21e75c84e471f69074ac997f0858b6a8a5eec977 100644 (file)
@@ -26,6 +26,7 @@ Andrew Haley (aph@redhat.com)
 Steven Hugg (hugg@pobox.com)
 jockey@aromasoft.com
 Isaac Jones (ijones@cis.ohio-state.edu)
+Byeogncheol Lee (lineonking@gmail.com)
 Oskar Liljeblad (osk@hem.passagen.se)
 Trevor Linton (tlinton@xmission.com)
 Casey Marshall (rsdio@metastatic.org)
index 297f30de2e5844bfbbd3502d60e06ee10b7d890c..84b45a46eca6abdf75d61099bd23c1083c888377 100644 (file)
@@ -912,6 +912,9 @@ m4_include([../../ltoptions.m4])
 m4_include([../../ltsugar.m4])
 m4_include([../../ltversion.m4])
 m4_include([../../lt~obsolete.m4])
+m4_include([m4/ac_prog_antlr.m4])
+m4_include([m4/ac_prog_java.m4])
+m4_include([m4/ac_prog_java_works.m4])
 m4_include([m4/ac_prog_javac.m4])
 m4_include([m4/ac_prog_javac_works.m4])
 m4_include([m4/acattribute.m4])
index 0fa808884485f4ed1e993c8a6bbfe6a0f8095e91..5907cf809024b694bfd9078145d60ff7594c8736 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for GNU Classpath 0.97.2.
+# Generated by GNU Autoconf 2.59 for GNU Classpath 0.98-pre.
 #
 # Report bugs to <classpath@gnu.org>.
 #
@@ -418,8 +418,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='GNU Classpath'
 PACKAGE_TARNAME='classpath'
-PACKAGE_VERSION='0.97.2'
-PACKAGE_STRING='GNU Classpath 0.97.2'
+PACKAGE_VERSION='0.98-pre'
+PACKAGE_STRING='GNU Classpath 0.98-pre'
 PACKAGE_BUGREPORT='classpath@gnu.org'
 
 ac_unique_file="java/lang/System.java"
@@ -461,7 +461,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE CREATE_GSTREAMER_PEER_LIBRARIES_TRUE CREATE_GSTREAMER_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE toolexeclibdir nativeexeclibdir glibjdir VM_BINARY CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS EXTRA_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_BASE_CFLAGS GSTREAMER_BASE_LIBS GSTREAMER_PLUGINS_BASE_CFLAGS GSTREAMER_PLUGINS_BASE_LIBS GST_PLUGIN_LDFLAGS GSTREAMER_FILE_READER GSTREAMER_MIXER_PROVIDER QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR USER_JAVAH CLASSPATH_INCLUDES vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP FASTJAR INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR TOOLSDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP JAVAC JAVAC_MEM_OPT USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE CREATE_GSTREAMER_PEER_LIBRARIES_TRUE CREATE_GSTREAMER_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE CREATE_GJDOC_TRUE CREATE_GJDOC_FALSE toolexeclibdir nativeexeclibdir glibjdir CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_GJDOC_PARSER_TRUE CREATE_GJDOC_PARSER_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS EXTRA_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_BASE_CFLAGS GSTREAMER_BASE_LIBS GSTREAMER_PLUGINS_BASE_CFLAGS GSTREAMER_PLUGINS_BASE_LIBS GST_PLUGIN_LDFLAGS GSTREAMER_FILE_READER GSTREAMER_MIXER_PROVIDER QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR GMP_CFLAGS GMP_LIBS USER_JAVAH CLASSPATH_INCLUDES vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP JAR WITH_JAR_TRUE WITH_JAR_FALSE INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR TOOLSDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP JAVA uudecode JAVAC JAVAC_IS_GCJ GCJ_JAVAC_TRUE GCJ_JAVAC_FALSE ANTLR_JAR ANTLR ac_ct_ANTLR JAVAC_MEM_OPT USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER WANT_NATIVE_BIG_INTEGER CREATE_GMPBI_LIBRARY_TRUE CREATE_GMPBI_LIBRARY_FALSE LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 ac_pwd=`pwd`
 
@@ -943,7 +943,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GNU Classpath 0.97.2 to adapt to many kinds of systems.
+\`configure' configures GNU Classpath 0.98-pre to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1014,7 +1014,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU Classpath 0.97.2:";;
+     short | recursive ) echo "Configuration of GNU Classpath 0.98-pre:";;
    esac
   cat <<\_ACEOF
 
@@ -1059,8 +1059,15 @@ Optional Features:
                           default=no
   --disable-plugin        compile gcjwebplugin (disabled by --disable-plugin)
                           default=yes
+  --enable-gmp            compile native java.math.BigInteger library
+                          (disabled by --disable-gmp) default=yes
+  --disable-gjdoc         compile GJDoc (disabled by --disable-gjdoc)
+                          default=yes
   --enable-regen-headers  automatically regenerate JNI headers default=yes if
                           headers don't exist
+  --enable-regen-gjdoc-parser
+                          automatically regenerate the GJDoc parser
+                          default=yes if generated source doesn't exist
   --enable-tool-wrappers  create tool wrapper binaries default=no
   --enable-static[=PKGS]
                           build static libraries [default=no]
@@ -1090,8 +1097,7 @@ Optional Packages:
                           default='${libdir}/${PACKAGE}'
   --with-glibj-dir        sets the installation directory for glibj.zip
                           default='${libdir}/${PACKAGE}'
-  --with-vm               sets the VM binary name
-                          default='${prefix}/bin/jamvm'
+  --with-antlr-jar=file   Use ANTLR from the specified jar file
   --with-pic              try to use only PIC/non-PIC objects [default=use
                           both]
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -1105,7 +1111,7 @@ Optional Packages:
   --with-vm-classes       specify path to VM override source files
   --with-ecj-jar=ABS.PATH specify jar file containing the Eclipse Java
                           Compiler
-  --with-fastjar=PATH     define to use a fastjar style tool
+  --with-jar=PATH         define to use a jar style tool
   --with-glibj            define what to install (zip|flat|both|none|build)
                           [default=zip]
   --with-gjdoc            generate documentation using gjdoc (default is NO)
@@ -1225,7 +1231,7 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU Classpath configure 0.97.2
+GNU Classpath configure 0.98-pre
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1239,7 +1245,7 @@ cat >&5 <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GNU Classpath $as_me 0.97.2, which was
+It was created by GNU Classpath $as_me 0.98-pre, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -2100,7 +2106,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='classpath'
- VERSION='0.97.2'
+ VERSION='0.98-pre'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4787,6 +4793,40 @@ else
 fi
 
 
+# Check whether --enable-gmp or --disable-gmp was given.
+if test "${enable_gmp+set}" = set; then
+  enableval="$enable_gmp"
+  case "${enableval}" in
+                yes|true) COMPILE_GMP=yes ;;
+                no|false) COMPILE_GMP=no ;;
+                *) COMPILE_GMP=yes ;;
+              esac
+else
+  COMPILE_GMP=yes
+fi;
+
+# Check whether --enable-gjdoc or --disable-gjdoc was given.
+if test "${enable_gjdoc+set}" = set; then
+  enableval="$enable_gjdoc"
+  case "${enableval}" in
+                yes) COMPILE_GJDOC=yes ;;
+                no) COMPILE_GJDOC=no ;;
+                *) COMPILE_GJDOC=yes ;;
+              esac
+else
+  COMPILE_GJDOC=yes
+fi;
+
+
+if test "x${COMPILE_GJDOC}" = xyes; then
+  CREATE_GJDOC_TRUE=
+  CREATE_GJDOC_FALSE='#'
+else
+  CREATE_GJDOC_TRUE='#'
+  CREATE_GJDOC_FALSE=
+fi
+
+
 
   multi_os_directory=`$CC -print-multi-os-directory`
   case $multi_os_directory in
@@ -4827,20 +4867,20 @@ fi;
 
 
 
-# Check whether --with-vm or --without-vm was given.
-if test "${with_vm+set}" = set; then
-  withval="$with_vm"
+# Check whether --with-antlr-jar or --without-antlr-jar was given.
+if test "${with_antlr_jar+set}" = set; then
+  withval="$with_antlr_jar"
 
-            VM_BINARY=${withval}
+             ANTLR_JAR=$withval
 
 else
 
-            VM_BINARY='${prefix}/bin/jamvm'
+             ANTLR_JAR="$ANTLR_JAR"
 
 fi;
 
-
-
+echo "$as_me:$LINENO: checking whether to regenerate the headers" >&5
+echo $ECHO_N "checking whether to regenerate the headers... $ECHO_C" >&6
 # Check whether --enable-regen-headers or --disable-regen-headers was given.
 if test "${enable_regen_headers+set}" = set; then
   enableval="$enable_regen_headers"
@@ -4850,12 +4890,14 @@ if test "${enable_regen_headers+set}" = set; then
                 *) REGENERATE_JNI_HEADERS=yes ;;
               esac
 else
-  if test -e include/java_lang_VMSystem.h; then
+  if test -e ${srcdir}/include/java_lang_VMSystem.h; then
                        REGENERATE_JNI_HEADERS=no ;
                   else
                        REGENERATE_JNI_HEADERS=yes ;
               fi
 fi;
+echo "$as_me:$LINENO: result: ${REGENERATE_JNI_HEADERS}" >&5
+echo "${ECHO_T}${REGENERATE_JNI_HEADERS}" >&6
 
 
 if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
@@ -4867,6 +4909,36 @@ else
 fi
 
 
+echo "$as_me:$LINENO: checking whether to regenerate the GJDoc parser" >&5
+echo $ECHO_N "checking whether to regenerate the GJDoc parser... $ECHO_C" >&6
+# Check whether --enable-regen-gjdoc-parser or --disable-regen-gjdoc-parser was given.
+if test "${enable_regen_gjdoc_parser+set}" = set; then
+  enableval="$enable_regen_gjdoc_parser"
+  case "${enableval}" in
+                yes) REGENERATE_GJDOC_PARSER=yes ;;
+                no) REGENERATE_GJDOC_PARSER=no ;;
+                *) REGENERATE_GJDOC_PARSER=yes ;;
+              esac
+else
+  if test -e ${srcdir}/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java; then
+                       REGENERATE_GJDOC_PARSER=no ;
+                  else
+                       REGENERATE_GJDOC_PARSER=yes ;
+              fi
+fi;
+echo "$as_me:$LINENO: result: ${REGENERATE_GJDOC_PARSER}" >&5
+echo "${ECHO_T}${REGENERATE_GJDOC_PARSER}" >&6
+
+
+if test "x${REGENERATE_GJDOC_PARSER}" = xyes; then
+  CREATE_GJDOC_PARSER_TRUE=
+  CREATE_GJDOC_PARSER_FALSE='#'
+else
+  CREATE_GJDOC_PARSER_TRUE='#'
+  CREATE_GJDOC_PARSER_FALSE=
+fi
+
+
 # Check whether --enable-tool-wrappers or --disable-tool-wrappers was given.
 if test "${enable_tool_wrappers+set}" = set; then
   enableval="$enable_tool_wrappers"
@@ -5670,13 +5742,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5673: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:5745: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5676: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:5748: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5679: output\"" >&5)
+  (eval echo "\"\$as_me:5751: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -6822,7 +6894,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6825 "configure"' > conftest.$ac_ext
+  echo '#line 6897 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -8108,11 +8180,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8111: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8183: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8115: \$? = $ac_status" >&5
+   echo "$as_me:8187: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8447,11 +8519,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8450: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8522: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8454: \$? = $ac_status" >&5
+   echo "$as_me:8526: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8552,11 +8624,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8555: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8627: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8559: \$? = $ac_status" >&5
+   echo "$as_me:8631: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -8607,11 +8679,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8610: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8682: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8614: \$? = $ac_status" >&5
+   echo "$as_me:8686: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -11459,7 +11531,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11462 "configure"
+#line 11534 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11555,7 +11627,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11558 "configure"
+#line 11630 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -15986,11 +16058,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15989: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16061: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15993: \$? = $ac_status" >&5
+   echo "$as_me:16065: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -16085,11 +16157,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16088: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16160: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16092: \$? = $ac_status" >&5
+   echo "$as_me:16164: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -16137,11 +16209,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16140: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16212: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16144: \$? = $ac_status" >&5
+   echo "$as_me:16216: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -17796,6 +17868,7 @@ fi
 
 
 
+
 
 
 for ac_header in unistd.h sys/types.h sys/config.h sys/ioctl.h \
@@ -17810,7 +17883,7 @@ for ac_header in unistd.h sys/types.h sys/config.h sys/ioctl.h \
                     sys/event.h sys/epoll.h \
                    ifaddrs.h \
                    netinet/in_systm.h netinet/ip.h net/if.h \
-                   sys/loadavg.h
+                   sys/loadavg.h sys/sockio.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
@@ -18174,6 +18247,85 @@ if test "$ac_cv_search_inet_pton" != no; then
 fi
 
 
+echo "$as_me:$LINENO: checking for gethostname in -lsocket" >&5
+echo $ECHO_N "checking for gethostname in -lsocket... $ECHO_C" >&6
+if test "${ac_cv_lib_socket_gethostname+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket  $LIBS"
+if test x$gcc_no_link = xyes; then
+  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char gethostname ();
+int
+main ()
+{
+gethostname ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_socket_gethostname=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_socket_gethostname=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_socket_gethostname" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_gethostname" >&6
+if test $ac_cv_lib_socket_gethostname = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
+_ACEOF
+
+  LIBS="-lsocket $LIBS"
+
+fi
+
+
 
 
 
@@ -24548,6 +24700,242 @@ echo "$as_me: error: Library requirements (gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gd
     PLUGIN_DIR=$HOME/.mozilla/plugins/
 
   fi
+
+            if test "x${COMPILE_GMP}" = xyes; then
+    echo "$as_me:$LINENO: checking for __gmpz_mul_si in -lgmp" >&5
+echo $ECHO_N "checking for __gmpz_mul_si in -lgmp... $ECHO_C" >&6
+if test "${ac_cv_lib_gmp___gmpz_mul_si+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lgmp  $LIBS"
+if test x$gcc_no_link = xyes; then
+  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char __gmpz_mul_si ();
+int
+main ()
+{
+__gmpz_mul_si ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_gmp___gmpz_mul_si=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_gmp___gmpz_mul_si=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_gmp___gmpz_mul_si" >&5
+echo "${ECHO_T}$ac_cv_lib_gmp___gmpz_mul_si" >&6
+if test $ac_cv_lib_gmp___gmpz_mul_si = yes; then
+  GMP_CFLAGS=-I/usr/include
+       GMP_LIBS=-lgmp
+else
+  GMP_CFLAGS=
+       GMP_LIBS=
+fi
+
+
+
+
+
+for ac_header in gmp.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## -------------------------------- ##
+## Report this to classpath@gnu.org ##
+## -------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+  fi
+
+else
+  COMPILE_GMP=no
 fi
 
 if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
@@ -25194,29 +25582,57 @@ echo "${ECHO_T}no" >&6
 fi
 
 
-# Check whether --with-fastjar or --without-fastjar was given.
-if test "${with_fastjar+set}" = set; then
-  withval="$with_fastjar"
-
-               echo "$as_me:$LINENO: checking for user supplied fastjar" >&5
-echo $ECHO_N "checking for user supplied fastjar... $ECHO_C" >&6
-               FASTJAR=${withval}
-               echo "$as_me:$LINENO: result: ${FASTJAR}" >&5
-echo "${ECHO_T}${FASTJAR}" >&6
+  echo "$as_me:$LINENO: checking for a jar-like tool" >&5
+echo $ECHO_N "checking for a jar-like tool... $ECHO_C" >&6
+
+# Check whether --with-jar or --without-jar was given.
+if test "${with_jar+set}" = set; then
+  withval="$with_jar"
+
+               case "${withval}" in
+                 yes)
+                   JAR=yes
+                   ;;
+                 no)
+                   JAR=no
+                   echo "$as_me:$LINENO: result: ${JAR}" >&5
+echo "${ECHO_T}${JAR}" >&6
+                   ;;
+                 *)
+                   if test -f "${withval}"; then
+                     JAR="${withval}"
+                     echo "$as_me:$LINENO: result: ${JAR}" >&5
+echo "${ECHO_T}${JAR}" >&6
+                   else
+                     echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+                     { { echo "$as_me:$LINENO: error: The jar tool ${withval} was not found." >&5
+echo "$as_me: error: The jar tool ${withval} was not found." >&2;}
+   { (exit 1); exit 1; }; }
+                   fi
+                   ;;
+               esac
 
 else
-  for ac_prog in fastjar gjar jar
+
+               JAR=yes
+
+fi;
+  if test x"${JAR}" = "xyes"; then
+    echo "$as_me:$LINENO: result: trying fastjar, gjar and jar" >&5
+echo "${ECHO_T}trying fastjar, gjar and jar" >&6
+    for ac_prog in fastjar gjar jar
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_FASTJAR+set}" = set; then
+if test "${ac_cv_path_JAR+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $FASTJAR in
+  case $JAR in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_FASTJAR="$FASTJAR" # Let the user override the test with a path.
+  ac_cv_path_JAR="$JAR" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -25226,7 +25642,7 @@ do
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
   if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_FASTJAR="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_JAR="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -25236,25 +25652,42 @@ done
   ;;
 esac
 fi
-FASTJAR=$ac_cv_path_FASTJAR
+JAR=$ac_cv_path_JAR
 
-if test -n "$FASTJAR"; then
-  echo "$as_me:$LINENO: result: $FASTJAR" >&5
-echo "${ECHO_T}$FASTJAR" >&6
+if test -n "$JAR"; then
+  echo "$as_me:$LINENO: result: $JAR" >&5
+echo "${ECHO_T}$JAR" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-  test -n "$FASTJAR" && break
+  test -n "$JAR" && break
 done
 
-fi;
-  if test x"${FASTJAR}" != x; then
-    ZIP=""
+    if test x"${RHINO_JAR}" = "xyes"; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+    fi
+  fi
+  if test x"${JAR}" = "xno" && test x"${ZIP}" = ""; then
+    { { echo "$as_me:$LINENO: error: No zip or jar tool found." >&5
+echo "$as_me: error: No zip or jar tool found." >&2;}
+   { (exit 1); exit 1; }; }
   fi
 
 
+if test x"${JAR}" != "xno" && test x"${JAR}" != "xyes"; then
+  WITH_JAR_TRUE=
+  WITH_JAR_FALSE='#'
+else
+  WITH_JAR_TRUE='#'
+  WITH_JAR_FALSE=
+fi
+
+
+
+
 # Check whether --with-glibj or --without-glibj was given.
 if test "${with_glibj+set}" = set; then
   withval="$with_glibj"
@@ -25335,7 +25768,7 @@ echo "$as_me: error: bad value ${enableval} for --enable-examples" >&2;}
 else
   EXAMPLESDIR="examples"
 fi;
-  if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
+  if test "x${build_class_files}" = xno; then
     EXAMPLESDIR=""
   fi
 
@@ -25353,7 +25786,7 @@ echo "$as_me: error: bad value ${enableval} for --enable-tools" >&2;}
 else
   TOOLSDIR="tools"
 fi;
-  if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
+  if test "x${build_class_files}" = xno; then
     TOOLSDIR=""
   fi
 
@@ -25448,7 +25881,6 @@ else
 fi;
 
 
-
 if test "x${WITH_GJDOC}" = xyes; then
   CREATE_API_DOCS_TRUE=
   CREATE_API_DOCS_FALSE='#'
@@ -25457,6 +25889,20 @@ else
   CREATE_API_DOCS_FALSE=
 fi
 
+  if test "x${WITH_GJDOC}" = xyes; then
+    echo "$as_me:$LINENO: checking version of GJDoc" >&5
+echo $ECHO_N "checking version of GJDoc... $ECHO_C" >&6
+    gjdoc_version=$(${GJDOC} --version|cut -d ' ' -f2)
+    echo "$as_me:$LINENO: result: ${gjdoc_version}" >&5
+echo "${ECHO_T}${gjdoc_version}" >&6
+    case ${gjdoc_version} in
+      0.7.9) ;;
+      0.8*) ;;
+      *) { { echo "$as_me:$LINENO: error: Building documentation requires GJDoc >= 0.7.9, ${gjdoc_version} found." >&5
+echo "$as_me: error: Building documentation requires GJDoc >= 0.7.9, ${gjdoc_version} found." >&2;}
+   { (exit 1); exit 1; }; } ;;
+    esac
+  fi
 
 
 
 
 
 
+if test "x${TOOLSDIR}" != x; then
+  if test "x${COMPILE_WRAPPERS}" = xno && test "x${enable_java_maintainer_mode}" = xyes; then
+
+
+if test "x$JAVAPREFIX" = x; then
+        test "x$JAVA" = x && for ac_prog in cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_JAVA+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$JAVA"; then
+  ac_cv_prog_JAVA="$JAVA" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_JAVA="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+JAVA=$ac_cv_prog_JAVA
+if test -n "$JAVA"; then
+  echo "$as_me:$LINENO: result: $JAVA" >&5
+echo "${ECHO_T}$JAVA" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$JAVA" && break
+done
+
+else
+        test "x$JAVA" = x && for ac_prog in cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_JAVA+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$JAVA"; then
+  ac_cv_prog_JAVA="$JAVA" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_JAVA="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+JAVA=$ac_cv_prog_JAVA
+if test -n "$JAVA"; then
+  echo "$as_me:$LINENO: result: $JAVA" >&5
+echo "${ECHO_T}$JAVA" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$JAVA" && break
+done
+test -n "$JAVA" || JAVA="$JAVAPREFIX"
+
+fi
+test "x$JAVA" = x && { { echo "$as_me:$LINENO: error: no acceptable Java virtual machine found in \$PATH" >&5
+echo "$as_me: error: no acceptable Java virtual machine found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+
+# Extract the first word of "uudecode$EXEEXT", so it can be a program name with args.
+set dummy uudecode$EXEEXT; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_uudecode+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$uudecode"; then
+  ac_cv_prog_uudecode="$uudecode" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_uudecode="yes"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+uudecode=$ac_cv_prog_uudecode
+if test -n "$uudecode"; then
+  echo "$as_me:$LINENO: result: $uudecode" >&5
+echo "${ECHO_T}$uudecode" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test x$uudecode = xyes; then
+echo "$as_me:$LINENO: checking if uudecode can decode base 64 file" >&5
+echo $ECHO_N "checking if uudecode can decode base 64 file... $ECHO_C" >&6
+if test "${ac_cv_prog_uudecode_base64+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat << \EOF > Test.uue
+begin-base64 644 Test.class
+yv66vgADAC0AFQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE
+bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51
+bWJlclRhYmxlDAAKAAsBAARleGl0AQAEKEkpVgoADQAJBwAOAQAQamF2YS9s
+YW5nL1N5c3RlbQEABjxpbml0PgEAAygpVgwADwAQCgADABEBAApTb3VyY2VG
+aWxlAQAJVGVzdC5qYXZhACEAAQADAAAAAAACAAkABQAGAAEABwAAACEAAQAB
+AAAABQO4AAyxAAAAAQAIAAAACgACAAAACgAEAAsAAQAPABAAAQAHAAAAIQAB
+AAEAAAAFKrcAErEAAAABAAgAAAAKAAIAAAAEAAQABAABABMAAAACABQ=
+====
+EOF
+if uudecode$EXEEXT Test.uue; then
+        ac_cv_prog_uudecode_base64=yes
+else
+        echo "configure: 29134: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
+        echo "configure: failed file was:" >&5
+        cat Test.uue >&5
+        ac_cv_prog_uudecode_base64=no
+fi
+rm -f Test.uue
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_uudecode_base64" >&5
+echo "${ECHO_T}$ac_cv_prog_uudecode_base64" >&6
+fi
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+        rm -f Test.class
+        { echo "$as_me:$LINENO: WARNING: I have to compile Test.class from scratch" >&5
+echo "$as_me: WARNING: I have to compile Test.class from scratch" >&2;}
+        if test x$ac_cv_prog_javac_works = xno; then
+                { { echo "$as_me:$LINENO: error: Cannot compile java source. $JAVAC does not work properly" >&5
+echo "$as_me: error: Cannot compile java source. $JAVAC does not work properly" >&2;}
+   { (exit 1); exit 1; }; }
+        fi
+        if test x$ac_cv_prog_javac_works = x; then
+
+ECJ_OPTS="-warn:-deprecation,serial,unusedImport"
+JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
+GCJ_OPTS="-g"
+if test "x$JAVAPREFIX" = x; then
+        test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_JAVAC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$JAVAC"; then
+  ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_JAVAC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+JAVAC=$ac_cv_prog_JAVAC
+if test -n "$JAVAC"; then
+  echo "$as_me:$LINENO: result: $JAVAC" >&5
+echo "${ECHO_T}$JAVAC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$JAVAC" && break
+done
+
+else
+        test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_JAVAC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$JAVAC"; then
+  ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_JAVAC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+JAVAC=$ac_cv_prog_JAVAC
+if test -n "$JAVAC"; then
+  echo "$as_me:$LINENO: result: $JAVAC" >&5
+echo "${ECHO_T}$JAVAC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$JAVAC" && break
+done
+test -n "$JAVAC" || JAVAC="$JAVAPREFIX"
+
+fi
+test "x$JAVAC" = x && { { echo "$as_me:$LINENO: error: no acceptable Java compiler found in \$PATH" >&5
+echo "$as_me: error: no acceptable Java compiler found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if $JAVAC is a version of gcj" >&5
+echo $ECHO_N "checking if $JAVAC is a version of gcj... $ECHO_C" >&6
+if test "${ac_cv_prog_javac_is_gcj+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if $JAVAC --version | grep gcj > /dev/null; then
+  ac_cv_prog_javac_is_gcj=yes;
+  JAVAC="$JAVAC $GCJ_OPTS";
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_javac_is_gcj" >&5
+echo "${ECHO_T}$ac_cv_prog_javac_is_gcj" >&6
+JAVAC_IS_GCJ=$ac_cv_prog_javac_is_gcj
+
+
+
+if test x"${JAVAC_IS_GCJ}" = xyes; then
+  GCJ_JAVAC_TRUE=
+  GCJ_JAVAC_FALSE='#'
+else
+  GCJ_JAVAC_TRUE='#'
+  GCJ_JAVAC_FALSE=
+fi
+
+if test "$enable_java_maintainer_mode" = yes; then
+
+echo "$as_me:$LINENO: checking if $JAVAC works" >&5
+echo $ECHO_N "checking if $JAVAC works... $ECHO_C" >&6
+if test "${ac_cv_prog_javac_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+JAVA_TEST=Object.java
+CLASS_TEST=Object.class
+cat << \EOF > $JAVA_TEST
+/* #line 29281 "configure" */
+package java.lang;
+
+public class Object
+{
+  static <T> void doStuff()
+  {
+  }
+}
+EOF
+if test x$JAVAC_IS_GCJ = xyes; then
+  CMD="$JAVAC $JAVACFLAGS -fsource=1.5 -ftarget=1.5 $JAVA_TEST"
+else
+  CMD="$JAVAC $JAVACFLAGS -source 1.5 -target 1.5 $JAVA_TEST"
+fi
+if { ac_try='$CMD'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } >/dev/null 2>&1; then
+  ac_cv_prog_javac_works=yes
+else
+  { { echo "$as_me:$LINENO: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&2;}
+   { (exit 1); exit 1; }; }
+  echo "configure: failed program was:" >&5
+  cat $JAVA_TEST >&5
+fi
+rm -f $JAVA_TEST $CLASS_TEST
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_javac_works" >&5
+echo "${ECHO_T}$ac_cv_prog_javac_works" >&6
+
+fi
+
+        fi
+fi
+echo "$as_me:$LINENO: checking if $JAVA works" >&5
+echo $ECHO_N "checking if $JAVA works... $ECHO_C" >&6
+if test "${ac_cv_prog_java_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+JAVA_TEST=Test.java
+CLASS_TEST=Test.class
+TEST=Test
+cat << \EOF > $JAVA_TEST
+/* [#]line 29330 "configure" */
+public class Test {
+public static void main (String args[]) {
+        System.exit (0);
+} }
+EOF
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+        if { ac_try='$JAVAC $JAVACFLAGS $JAVA_TEST'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } && test -s $CLASS_TEST; then
+                :
+        else
+          echo "configure: failed program was:" >&5
+          cat $JAVA_TEST >&5
+          { { echo "$as_me:$LINENO: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&2;}
+   { (exit 1); exit 1; }; }
+        fi
+fi
+if { ac_try='CLASSPATH=.:$CLASSPATH $JAVA $JAVAFLAGS $TEST'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } >/dev/null 2>&1; then
+  ac_cv_prog_java_works=yes
+else
+  echo "configure: failed program was:" >&5
+  cat $JAVA_TEST >&5
+  { { echo "$as_me:$LINENO: error: The Java VM $JAVA failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java VM $JAVA failed (see config.log, check the CLASSPATH?)" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -fr $JAVA_TEST $CLASS_TEST Test.uue
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_java_works" >&5
+echo "${ECHO_T}$ac_cv_prog_java_works" >&6
+
+
+
+  fi
+  if test "x${COMPILE_GJDOC}" = xyes; then
+
+  echo "$as_me:$LINENO: checking for the ANTLR parser generator JAR file" >&5
+echo $ECHO_N "checking for the ANTLR parser generator JAR file... $ECHO_C" >&6
+  if test -z "$ANTLR_JAR"; then
+    for antlr_lib_home in `ls -d /usr/local/share/antlr* 2> /dev/null` \
+       /usr/share/antlr/lib /usr/share/java /usr/lib;
+       do
+           if test -f "$antlr_lib_home/antlr.jar"; then
+             ANTLR_JAR="$antlr_lib_home/antlr.jar"
+             break
+           fi
+     done
+  fi
+  test -f $ANTLR_JAR || { { echo "$as_me:$LINENO: error: specified ANTLR jar file $ANTLR_JAR not found." >&5
+echo "$as_me: error: specified ANTLR jar file $ANTLR_JAR not found." >&2;}
+   { (exit 1); exit 1; }; } \
+        && echo "$as_me:$LINENO: result: $ANTLR_JAR" >&5
+echo "${ECHO_T}$ANTLR_JAR" >&6
+
+
+    if test "x${REGENERATE_GJDOC_PARSER}" = xyes; then
+      if test "x${enable_java_maintainer_mode}" = xyes; then
+
+if test "x$JAVAPREFIX" = x; then
+        test "x$JAVA" = x && for ac_prog in cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_JAVA+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$JAVA"; then
+  ac_cv_prog_JAVA="$JAVA" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_JAVA="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+JAVA=$ac_cv_prog_JAVA
+if test -n "$JAVA"; then
+  echo "$as_me:$LINENO: result: $JAVA" >&5
+echo "${ECHO_T}$JAVA" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$JAVA" && break
+done
+
+else
+        test "x$JAVA" = x && for ac_prog in cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_JAVA+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$JAVA"; then
+  ac_cv_prog_JAVA="$JAVA" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_JAVA="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+JAVA=$ac_cv_prog_JAVA
+if test -n "$JAVA"; then
+  echo "$as_me:$LINENO: result: $JAVA" >&5
+echo "${ECHO_T}$JAVA" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$JAVA" && break
+done
+test -n "$JAVA" || JAVA="$JAVAPREFIX"
+
+fi
+test "x$JAVA" = x && { { echo "$as_me:$LINENO: error: no acceptable Java virtual machine found in \$PATH" >&5
+echo "$as_me: error: no acceptable Java virtual machine found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+
+# Extract the first word of "uudecode$EXEEXT", so it can be a program name with args.
+set dummy uudecode$EXEEXT; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_uudecode+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$uudecode"; then
+  ac_cv_prog_uudecode="$uudecode" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_uudecode="yes"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+uudecode=$ac_cv_prog_uudecode
+if test -n "$uudecode"; then
+  echo "$as_me:$LINENO: result: $uudecode" >&5
+echo "${ECHO_T}$uudecode" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test x$uudecode = xyes; then
+echo "$as_me:$LINENO: checking if uudecode can decode base 64 file" >&5
+echo $ECHO_N "checking if uudecode can decode base 64 file... $ECHO_C" >&6
+if test "${ac_cv_prog_uudecode_base64+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat << \EOF > Test.uue
+begin-base64 644 Test.class
+yv66vgADAC0AFQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE
+bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51
+bWJlclRhYmxlDAAKAAsBAARleGl0AQAEKEkpVgoADQAJBwAOAQAQamF2YS9s
+YW5nL1N5c3RlbQEABjxpbml0PgEAAygpVgwADwAQCgADABEBAApTb3VyY2VG
+aWxlAQAJVGVzdC5qYXZhACEAAQADAAAAAAACAAkABQAGAAEABwAAACEAAQAB
+AAAABQO4AAyxAAAAAQAIAAAACgACAAAACgAEAAsAAQAPABAAAQAHAAAAIQAB
+AAEAAAAFKrcAErEAAAABAAgAAAAKAAIAAAAEAAQABAABABMAAAACABQ=
+====
+EOF
+if uudecode$EXEEXT Test.uue; then
+        ac_cv_prog_uudecode_base64=yes
+else
+        echo "configure: 29543: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
+        echo "configure: failed file was:" >&5
+        cat Test.uue >&5
+        ac_cv_prog_uudecode_base64=no
+fi
+rm -f Test.uue
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_uudecode_base64" >&5
+echo "${ECHO_T}$ac_cv_prog_uudecode_base64" >&6
+fi
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+        rm -f Test.class
+        { echo "$as_me:$LINENO: WARNING: I have to compile Test.class from scratch" >&5
+echo "$as_me: WARNING: I have to compile Test.class from scratch" >&2;}
+        if test x$ac_cv_prog_javac_works = xno; then
+                { { echo "$as_me:$LINENO: error: Cannot compile java source. $JAVAC does not work properly" >&5
+echo "$as_me: error: Cannot compile java source. $JAVAC does not work properly" >&2;}
+   { (exit 1); exit 1; }; }
+        fi
+        if test x$ac_cv_prog_javac_works = x; then
+
+ECJ_OPTS="-warn:-deprecation,serial,unusedImport"
+JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
+GCJ_OPTS="-g"
+if test "x$JAVAPREFIX" = x; then
+        test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_JAVAC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$JAVAC"; then
+  ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_JAVAC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+JAVAC=$ac_cv_prog_JAVAC
+if test -n "$JAVAC"; then
+  echo "$as_me:$LINENO: result: $JAVAC" >&5
+echo "${ECHO_T}$JAVAC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$JAVAC" && break
+done
+
+else
+        test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_JAVAC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$JAVAC"; then
+  ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_JAVAC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+JAVAC=$ac_cv_prog_JAVAC
+if test -n "$JAVAC"; then
+  echo "$as_me:$LINENO: result: $JAVAC" >&5
+echo "${ECHO_T}$JAVAC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$JAVAC" && break
+done
+test -n "$JAVAC" || JAVAC="$JAVAPREFIX"
+
+fi
+test "x$JAVAC" = x && { { echo "$as_me:$LINENO: error: no acceptable Java compiler found in \$PATH" >&5
+echo "$as_me: error: no acceptable Java compiler found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if $JAVAC is a version of gcj" >&5
+echo $ECHO_N "checking if $JAVAC is a version of gcj... $ECHO_C" >&6
+if test "${ac_cv_prog_javac_is_gcj+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if $JAVAC --version | grep gcj > /dev/null; then
+  ac_cv_prog_javac_is_gcj=yes;
+  JAVAC="$JAVAC $GCJ_OPTS";
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_javac_is_gcj" >&5
+echo "${ECHO_T}$ac_cv_prog_javac_is_gcj" >&6
+JAVAC_IS_GCJ=$ac_cv_prog_javac_is_gcj
+
+
+
+if test x"${JAVAC_IS_GCJ}" = xyes; then
+  GCJ_JAVAC_TRUE=
+  GCJ_JAVAC_FALSE='#'
+else
+  GCJ_JAVAC_TRUE='#'
+  GCJ_JAVAC_FALSE=
+fi
+
+if test "$enable_java_maintainer_mode" = yes; then
+
+echo "$as_me:$LINENO: checking if $JAVAC works" >&5
+echo $ECHO_N "checking if $JAVAC works... $ECHO_C" >&6
+if test "${ac_cv_prog_javac_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+JAVA_TEST=Object.java
+CLASS_TEST=Object.class
+cat << \EOF > $JAVA_TEST
+/* #line 29690 "configure" */
+package java.lang;
+
+public class Object
+{
+  static <T> void doStuff()
+  {
+  }
+}
+EOF
+if test x$JAVAC_IS_GCJ = xyes; then
+  CMD="$JAVAC $JAVACFLAGS -fsource=1.5 -ftarget=1.5 $JAVA_TEST"
+else
+  CMD="$JAVAC $JAVACFLAGS -source 1.5 -target 1.5 $JAVA_TEST"
+fi
+if { ac_try='$CMD'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } >/dev/null 2>&1; then
+  ac_cv_prog_javac_works=yes
+else
+  { { echo "$as_me:$LINENO: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&2;}
+   { (exit 1); exit 1; }; }
+  echo "configure: failed program was:" >&5
+  cat $JAVA_TEST >&5
+fi
+rm -f $JAVA_TEST $CLASS_TEST
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_javac_works" >&5
+echo "${ECHO_T}$ac_cv_prog_javac_works" >&6
+
+fi
+
+        fi
+fi
+echo "$as_me:$LINENO: checking if $JAVA works" >&5
+echo $ECHO_N "checking if $JAVA works... $ECHO_C" >&6
+if test "${ac_cv_prog_java_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+JAVA_TEST=Test.java
+CLASS_TEST=Test.class
+TEST=Test
+cat << \EOF > $JAVA_TEST
+/* [#]line 29739 "configure" */
+public class Test {
+public static void main (String args[]) {
+        System.exit (0);
+} }
+EOF
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+        if { ac_try='$JAVAC $JAVACFLAGS $JAVA_TEST'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } && test -s $CLASS_TEST; then
+                :
+        else
+          echo "configure: failed program was:" >&5
+          cat $JAVA_TEST >&5
+          { { echo "$as_me:$LINENO: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&2;}
+   { (exit 1); exit 1; }; }
+        fi
+fi
+if { ac_try='CLASSPATH=.:$CLASSPATH $JAVA $JAVAFLAGS $TEST'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } >/dev/null 2>&1; then
+  ac_cv_prog_java_works=yes
+else
+  echo "configure: failed program was:" >&5
+  cat $JAVA_TEST >&5
+  { { echo "$as_me:$LINENO: error: The Java VM $JAVA failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java VM $JAVA failed (see config.log, check the CLASSPATH?)" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -fr $JAVA_TEST $CLASS_TEST Test.uue
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_java_works" >&5
+echo "${ECHO_T}$ac_cv_prog_java_works" >&6
+
+
+
+
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in cantlr runantlr antlr
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ANTLR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ANTLR"; then
+  ac_cv_prog_ANTLR="$ANTLR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ANTLR="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ANTLR=$ac_cv_prog_ANTLR
+if test -n "$ANTLR"; then
+  echo "$as_me:$LINENO: result: $ANTLR" >&5
+echo "${ECHO_T}$ANTLR" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$ANTLR" && break
+  done
+fi
+if test -z "$ANTLR"; then
+  ac_ct_ANTLR=$ANTLR
+  for ac_prog in cantlr runantlr antlr
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_ANTLR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_ANTLR"; then
+  ac_cv_prog_ac_ct_ANTLR="$ac_ct_ANTLR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_ANTLR="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_ANTLR=$ac_cv_prog_ac_ct_ANTLR
+if test -n "$ac_ct_ANTLR"; then
+  echo "$as_me:$LINENO: result: $ac_ct_ANTLR" >&5
+echo "${ECHO_T}$ac_ct_ANTLR" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_ANTLR" && break
+done
+
+  ANTLR=$ac_ct_ANTLR
+fi
+
+  if test "x$ANTLR" = x; then
+      if test -z "$JAVA"; then
+        { { echo "$as_me:$LINENO: error: Failed to find either an antlr binary or a suitable Java runtime for ANTLR." >&5
+echo "$as_me: error: Failed to find either an antlr binary or a suitable Java runtime for ANTLR." >&2;}
+   { (exit 1); exit 1; }; }
+      else
+        ANTLR="$JAVA -classpath $ANTLR_JAR antlr.Tool"
+      fi
+  fi
+
+  echo "$as_me:$LINENO: checking for antlr 2.7.1 or better" >&5
+echo $ECHO_N "checking for antlr 2.7.1 or better... $ECHO_C" >&6
+  antlr_version_str=`$ANTLR 2>&1 | head -n 1 | sed '/.*Version */!d; s///;q'`
+  if test "$antlr_version_str"; then
+    antlr_version_regex='s/\([[:digit:]]\+\)\.\([[:digit:]]\+\)\.\([[:digit:]]\+\).*$/'
+    antlr_version_major=`echo $antlr_version_str | sed "$antlr_version_regex\\1/"`
+    antlr_version_minor=`echo $antlr_version_str | sed "$antlr_version_regex\\2/"`
+    antlr_version_micro=`echo $antlr_version_str | sed "$antlr_version_regex\\3/"`
+    (test $antlr_version_major -gt 2 || \
+    (test $antlr_version_major -eq 2 && \
+     test $antlr_version_minor -gt 7) || \
+    (test $antlr_version_major -eq 2 && \
+     test $antlr_version_minor -eq 7 && \
+     test $antlr_version_micro -ge 1))
+  fi
+  echo "$as_me:$LINENO: result: $antlr_version_major.$antlr_version_minor.$antlr_version_micro" >&5
+echo "${ECHO_T}$antlr_version_major.$antlr_version_minor.$antlr_version_micro" >&6
+
+      fi
+    fi
+  fi
+fi
+
+
 # Check for javac if we need to build either the class library,
 # the examples or the tools
 if test "x${use_glibj_zip}" = xfalse || \
@@ -28544,9 +29908,11 @@ if test "x${use_glibj_zip}" = xfalse || \
    test "x${TOOLSDIR}" != x && \
    test "x${build_class_files}" != xno; then
 
-
+ECJ_OPTS="-warn:-deprecation,serial,unusedImport"
+JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
+GCJ_OPTS="-g"
 if test "x$JAVAPREFIX" = x; then
-        test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport" "javac$EXEEXT -Xlint:unchecked" "gcj$EXEEXT -C"
+        test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -28587,7 +29953,7 @@ fi
 done
 
 else
-        test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport" "javac$EXEEXT -Xlint:unchecked" "gcj$EXEEXT -C"
+        test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 test "x$JAVAC" = x && { { echo "$as_me:$LINENO: error: no acceptable Java compiler found in \$PATH" >&5
 echo "$as_me: error: no acceptable Java compiler found in \$PATH" >&2;}
    { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if $JAVAC is a version of gcj" >&5
+echo $ECHO_N "checking if $JAVAC is a version of gcj... $ECHO_C" >&6
+if test "${ac_cv_prog_javac_is_gcj+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if $JAVAC --version | grep gcj > /dev/null; then
+  ac_cv_prog_javac_is_gcj=yes;
+  JAVAC="$JAVAC $GCJ_OPTS";
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_javac_is_gcj" >&5
+echo "${ECHO_T}$ac_cv_prog_javac_is_gcj" >&6
+JAVAC_IS_GCJ=$ac_cv_prog_javac_is_gcj
+
+
+
+if test x"${JAVAC_IS_GCJ}" = xyes; then
+  GCJ_JAVAC_TRUE=
+  GCJ_JAVAC_FALSE='#'
+else
+  GCJ_JAVAC_TRUE='#'
+  GCJ_JAVAC_FALSE=
+fi
+
 if test "$enable_java_maintainer_mode" = yes; then
 
 echo "$as_me:$LINENO: checking if $JAVAC works" >&5
@@ -28643,7 +30034,7 @@ else
 JAVA_TEST=Object.java
 CLASS_TEST=Object.class
 cat << \EOF > $JAVA_TEST
-/* #line 28646 "configure" */
+/* #line 30037 "configure" */
 package java.lang;
 
 public class Object
@@ -28653,7 +30044,12 @@ public class Object
   }
 }
 EOF
-if { ac_try='$JAVAC $JAVA_TEST'
+if test x$JAVAC_IS_GCJ = xyes; then
+  CMD="$JAVAC $JAVACFLAGS -fsource=1.5 -ftarget=1.5 $JAVA_TEST"
+else
+  CMD="$JAVAC $JAVACFLAGS -source 1.5 -target 1.5 $JAVA_TEST"
+fi
+if { ac_try='$CMD'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -28679,7 +30075,7 @@ fi
   JAVA_TEST=Test.java
   CLASS_TEST=Test.class
   cat << \EOF > $JAVA_TEST
-  /* #line 28682 "configure" */
+  /* #line 30078 "configure" */
   public class Test
   {
     public static void main(String args)
     }
   }
 EOF
-  echo "$as_me:$LINENO: checking whether javac supports -J" >&5
+  if test x$JAVAC_IS_GCJ != xyes; then
+    echo "$as_me:$LINENO: checking whether javac supports -J" >&5
 echo $ECHO_N "checking whether javac supports -J... $ECHO_C" >&6
-  $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST
-  javac_result=$?
-  if test "x$javac_result" = "x0"; then
-    echo "$as_me:$LINENO: result: yes" >&5
+    $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST
+    javac_result=$?
+    if test "x$javac_result" = "x0"; then
+      echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-    JAVAC_MEM_OPT="-J-Xmx768M"
-  else
-    echo "$as_me:$LINENO: result: no" >&5
+      JAVAC_MEM_OPT="-J-Xmx768M"
+    else
+      echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
+    fi
   fi
   rm -f $JAVA_TEST $CLASS_TEST
 
 
 
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                        ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/gstreamer-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/jni/native-lib/Makefile native/plugin/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader resource/META-INF/services/javax.sound.sampled.spi.MixerProvider scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh scripts/check_jni_methods.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d"
+WANT_NATIVE_BIG_INTEGER=false
+if test "x${COMPILE_GMP}" = xyes; then
+  if test "x${ac_cv_lib_gmp___gmpz_mul_si}" = xyes; then
+    if test "x${ac_cv_header_gmp_h}" = xyes; then
+      WANT_NATIVE_BIG_INTEGER=true
+
+cat >>confdefs.h <<\_ACEOF
+#define WITH_GNU_MP 1
+_ACEOF
+
+    else
+      COMPILE_GMP=no
+    fi
+  else
+    COMPILE_GMP=no
+  fi
+fi
+
+
+
+if test "x${COMPILE_GMP}" = xyes; then
+  CREATE_GMPBI_LIBRARY_TRUE=
+  CREATE_GMPBI_LIBRARY_FALSE='#'
+else
+  CREATE_GMPBI_LIBRARY_TRUE='#'
+  CREATE_GMPBI_LIBRARY_FALSE=
+fi
+
+
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-math/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/gstreamer-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/jni/native-lib/Makefile native/plugin/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader resource/META-INF/services/javax.sound.sampled.spi.MixerProvider scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh scripts/check_jni_methods.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d"
 
 
 if test "x${COMPILE_WRAPPERS}" = xyes; then
@@ -29066,6 +30493,14 @@ if test "x${COMPILE_WRAPPERS}" = xyes; then
    fi
 
 
+if test "x${COMPILE_GJDOC}" = xyes
+then
+          ac_config_files="$ac_config_files tools/gjdoc"
+
+          ac_config_commands="$ac_config_commands gjdoc"
+
+fi
+
           ac_config_commands="$ac_config_commands gen-classlist"
 
           ac_config_commands="$ac_config_commands copy-vmresources"
@@ -29266,6 +30701,13 @@ echo "$as_me: error: conditional \"CREATE_PLUGIN\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${CREATE_GJDOC_TRUE}" && test -z "${CREATE_GJDOC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"CREATE_GJDOC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_GJDOC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${CREATE_JNI_HEADERS_TRUE}" && test -z "${CREATE_JNI_HEADERS_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"CREATE_JNI_HEADERS\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -29273,6 +30715,13 @@ echo "$as_me: error: conditional \"CREATE_JNI_HEADERS\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${CREATE_GJDOC_PARSER_TRUE}" && test -z "${CREATE_GJDOC_PARSER_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"CREATE_GJDOC_PARSER\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_GJDOC_PARSER\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${CREATE_WRAPPERS_TRUE}" && test -z "${CREATE_WRAPPERS_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"CREATE_WRAPPERS\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -29308,6 +30757,13 @@ echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${WITH_JAR_TRUE}" && test -z "${WITH_JAR_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"WITH_JAR\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"WITH_JAR\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${INSTALL_GLIBJ_ZIP_TRUE}" && test -z "${INSTALL_GLIBJ_ZIP_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"INSTALL_GLIBJ_ZIP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -29350,6 +30806,27 @@ echo "$as_me: error: conditional \"USE_PREBUILT_GLIBJ_ZIP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${GCJ_JAVAC_TRUE}" && test -z "${GCJ_JAVAC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${GCJ_JAVAC_TRUE}" && test -z "${GCJ_JAVAC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${GCJ_JAVAC_TRUE}" && test -z "${GCJ_JAVAC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${USE_ESCHER_TRUE}" && test -z "${USE_ESCHER_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"USE_ESCHER\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -29364,6 +30841,13 @@ echo "$as_me: error: conditional \"ENABLE_LOCAL_SOCKETS\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${CREATE_GMPBI_LIBRARY_TRUE}" && test -z "${CREATE_GMPBI_LIBRARY_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"CREATE_GMPBI_LIBRARY\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_GMPBI_LIBRARY\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 
 : ${CONFIG_STATUS=./config.status}
 ac_clean_files_save=$ac_clean_files
@@ -29635,7 +31119,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by GNU Classpath $as_me 0.97.2, which was
+This file was extended by GNU Classpath $as_me 0.98-pre, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -29701,7 +31185,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-GNU Classpath config.status 0.97.2
+GNU Classpath config.status 0.98-pre
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -30210,6 +31694,7 @@ do
   "native/jni/classpath/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/classpath/Makefile" ;;
   "native/jni/java-io/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-io/Makefile" ;;
   "native/jni/java-lang/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-lang/Makefile" ;;
+  "native/jni/java-math/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-math/Makefile" ;;
   "native/jni/java-net/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-net/Makefile" ;;
   "native/jni/java-nio/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-nio/Makefile" ;;
   "native/jni/java-util/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-util/Makefile" ;;
@@ -30248,6 +31733,7 @@ do
   "tools/grmid" ) CONFIG_FILES="$CONFIG_FILES tools/grmid" ;;
   "tools/grmic" ) CONFIG_FILES="$CONFIG_FILES tools/grmic" ;;
   "tools/gjavah" ) CONFIG_FILES="$CONFIG_FILES tools/gjavah" ;;
+  "tools/gjdoc" ) CONFIG_FILES="$CONFIG_FILES tools/gjdoc" ;;
   "$ac_config_links_1" ) CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_1" ;;
   "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
   "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
@@ -30266,6 +31752,7 @@ do
   "grmid" ) CONFIG_COMMANDS="$CONFIG_COMMANDS grmid" ;;
   "grmic" ) CONFIG_COMMANDS="$CONFIG_COMMANDS grmic" ;;
   "gjavah" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gjavah" ;;
+  "gjdoc" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gjdoc" ;;
   "gen-classlist" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gen-classlist" ;;
   "copy-vmresources" ) CONFIG_COMMANDS="$CONFIG_COMMANDS copy-vmresources" ;;
   "include/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;;
@@ -30438,12 +31925,15 @@ s,@CREATE_QT_PEER_LIBRARIES_TRUE@,$CREATE_QT_PEER_LIBRARIES_TRUE,;t t
 s,@CREATE_QT_PEER_LIBRARIES_FALSE@,$CREATE_QT_PEER_LIBRARIES_FALSE,;t t
 s,@CREATE_PLUGIN_TRUE@,$CREATE_PLUGIN_TRUE,;t t
 s,@CREATE_PLUGIN_FALSE@,$CREATE_PLUGIN_FALSE,;t t
+s,@CREATE_GJDOC_TRUE@,$CREATE_GJDOC_TRUE,;t t
+s,@CREATE_GJDOC_FALSE@,$CREATE_GJDOC_FALSE,;t t
 s,@toolexeclibdir@,$toolexeclibdir,;t t
 s,@nativeexeclibdir@,$nativeexeclibdir,;t t
 s,@glibjdir@,$glibjdir,;t t
-s,@VM_BINARY@,$VM_BINARY,;t t
 s,@CREATE_JNI_HEADERS_TRUE@,$CREATE_JNI_HEADERS_TRUE,;t t
 s,@CREATE_JNI_HEADERS_FALSE@,$CREATE_JNI_HEADERS_FALSE,;t t
+s,@CREATE_GJDOC_PARSER_TRUE@,$CREATE_GJDOC_PARSER_TRUE,;t t
+s,@CREATE_GJDOC_PARSER_FALSE@,$CREATE_GJDOC_PARSER_FALSE,;t t
 s,@CREATE_WRAPPERS_TRUE@,$CREATE_WRAPPERS_TRUE,;t t
 s,@CREATE_WRAPPERS_FALSE@,$CREATE_WRAPPERS_FALSE,;t t
 s,@LN_S@,$LN_S,;t t
@@ -30527,6 +32017,8 @@ s,@MOZILLA_LIBS@,$MOZILLA_LIBS,;t t
 s,@GLIB_CFLAGS@,$GLIB_CFLAGS,;t t
 s,@GLIB_LIBS@,$GLIB_LIBS,;t t
 s,@PLUGIN_DIR@,$PLUGIN_DIR,;t t
+s,@GMP_CFLAGS@,$GMP_CFLAGS,;t t
+s,@GMP_LIBS@,$GMP_LIBS,;t t
 s,@USER_JAVAH@,$USER_JAVAH,;t t
 s,@CLASSPATH_INCLUDES@,$CLASSPATH_INCLUDES,;t t
 s,@vm_classes@,$vm_classes,;t t
@@ -30543,7 +32035,9 @@ s,@CP@,$CP,;t t
 s,@DATE@,$DATE,;t t
 s,@FIND@,$FIND,;t t
 s,@ZIP@,$ZIP,;t t
-s,@FASTJAR@,$FASTJAR,;t t
+s,@JAR@,$JAR,;t t
+s,@WITH_JAR_TRUE@,$WITH_JAR_TRUE,;t t
+s,@WITH_JAR_FALSE@,$WITH_JAR_FALSE,;t t
 s,@INSTALL_GLIBJ_ZIP_TRUE@,$INSTALL_GLIBJ_ZIP_TRUE,;t t
 s,@INSTALL_GLIBJ_ZIP_FALSE@,$INSTALL_GLIBJ_ZIP_FALSE,;t t
 s,@INSTALL_CLASS_FILES_TRUE@,$INSTALL_CLASS_FILES_TRUE,;t t
@@ -30562,7 +32056,15 @@ s,@REGEN_PARSERS_FALSE@,$REGEN_PARSERS_FALSE,;t t
 s,@USE_PREBUILT_GLIBJ_ZIP_TRUE@,$USE_PREBUILT_GLIBJ_ZIP_TRUE,;t t
 s,@USE_PREBUILT_GLIBJ_ZIP_FALSE@,$USE_PREBUILT_GLIBJ_ZIP_FALSE,;t t
 s,@PATH_TO_GLIBJ_ZIP@,$PATH_TO_GLIBJ_ZIP,;t t
+s,@JAVA@,$JAVA,;t t
+s,@uudecode@,$uudecode,;t t
 s,@JAVAC@,$JAVAC,;t t
+s,@JAVAC_IS_GCJ@,$JAVAC_IS_GCJ,;t t
+s,@GCJ_JAVAC_TRUE@,$GCJ_JAVAC_TRUE,;t t
+s,@GCJ_JAVAC_FALSE@,$GCJ_JAVAC_FALSE,;t t
+s,@ANTLR_JAR@,$ANTLR_JAR,;t t
+s,@ANTLR@,$ANTLR,;t t
+s,@ac_ct_ANTLR@,$ac_ct_ANTLR,;t t
 s,@JAVAC_MEM_OPT@,$JAVAC_MEM_OPT,;t t
 s,@USE_ESCHER_TRUE@,$USE_ESCHER_TRUE,;t t
 s,@USE_ESCHER_FALSE@,$USE_ESCHER_FALSE,;t t
@@ -30570,6 +32072,9 @@ s,@PATH_TO_ESCHER@,$PATH_TO_ESCHER,;t t
 s,@ENABLE_LOCAL_SOCKETS_TRUE@,$ENABLE_LOCAL_SOCKETS_TRUE,;t t
 s,@ENABLE_LOCAL_SOCKETS_FALSE@,$ENABLE_LOCAL_SOCKETS_FALSE,;t t
 s,@DEFAULT_PREFS_PEER@,$DEFAULT_PREFS_PEER,;t t
+s,@WANT_NATIVE_BIG_INTEGER@,$WANT_NATIVE_BIG_INTEGER,;t t
+s,@CREATE_GMPBI_LIBRARY_TRUE@,$CREATE_GMPBI_LIBRARY_TRUE,;t t
+s,@CREATE_GMPBI_LIBRARY_FALSE@,$CREATE_GMPBI_LIBRARY_FALSE,;t t
 s,@LIBOBJS@,$LIBOBJS,;t t
 s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 CEOF
@@ -32717,6 +34222,7 @@ echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
     grmid ) chmod 755 tools/grmid ;;
     grmic ) chmod 755 tools/grmic ;;
     gjavah ) chmod 755 tools/gjavah ;;
+    gjdoc ) chmod 755 tools/gjdoc ;;
     gen-classlist ) chmod 755 lib/gen-classlist.sh ;;
     copy-vmresources ) chmod 755 lib/copy-vmresources.sh ;;
   esac
index 54a3efce22f293f9f8c1061bb7e8d12d7fbd0143..18311eab50abfc6edbb9728579c5b0eb8a976582 100644 (file)
@@ -6,7 +6,7 @@ dnl -----------------------------------------------------------
 dnl define([AC_CACHE_LOAD], )dnl
 dnl define([AC_CACHE_SAVE], )dnl
 
-AC_INIT([GNU Classpath],[0.97.2],[classpath@gnu.org],[classpath])
+AC_INIT([GNU Classpath],[0.98-pre],[classpath@gnu.org],[classpath])
 AC_CONFIG_SRCDIR(java/lang/System.java)
 
 dnl GCJ LOCAL
@@ -284,6 +284,31 @@ AC_ARG_ENABLE([plugin],
 AM_CONDITIONAL(CREATE_PLUGIN, test "x${COMPILE_PLUGIN}" = xyes)
 
 dnl -----------------------------------------------------------
+dnl Native java.math.BigInteger (enabled by default)
+dnl -----------------------------------------------------------
+AC_ARG_ENABLE([gmp],
+              [AS_HELP_STRING(--enable-gmp,
+                              compile native java.math.BigInteger library (disabled by --disable-gmp) [default=yes])],
+              [case "${enableval}" in
+                yes|true) COMPILE_GMP=yes ;;
+                no|false) COMPILE_GMP=no ;;
+                *) COMPILE_GMP=yes ;;
+              esac],
+              [COMPILE_GMP=yes])
+
+dnl -----------------------------------------------------------
+dnl GJDoc (enabled by default)
+dnl -----------------------------------------------------------
+AC_ARG_ENABLE([gjdoc],
+              [AS_HELP_STRING(--disable-gjdoc,compile GJDoc (disabled by --disable-gjdoc) [default=yes])],
+              [case "${enableval}" in
+                yes) COMPILE_GJDOC=yes ;;
+                no) COMPILE_GJDOC=no ;;
+                *) COMPILE_GJDOC=yes ;;
+              esac],
+              [COMPILE_GJDOC=yes])
+AM_CONDITIONAL(CREATE_GJDOC, test "x${COMPILE_GJDOC}" = xyes)
+
 dnl GCJ LOCAL: Calculates and substitutes toolexeclibdir.  $libdir is
 dnl defined to the same value for all multilibs.  We define toolexeclibdir
 dnl so that we can refer to the multilib installation directories from
@@ -321,22 +346,21 @@ AC_ARG_WITH([glibj-dir],
 AC_SUBST(glibjdir)
 
 dnl -----------------------------------------------------------
-dnl Sets the VM name for use in tool wrapper scripts
+dnl Sets the Antlr jar to use for compiling gjdoc
 dnl -----------------------------------------------------------
-AC_ARG_WITH([vm],
-           [AS_HELP_STRING(--with-vm,sets the VM binary name [default='${prefix}/bin/jamvm'])],
-           [
-            VM_BINARY=${withval}
-           ],
-           [
-            VM_BINARY='${prefix}/bin/jamvm'
-           ])
-
-AC_SUBST(VM_BINARY)
+AC_ARG_WITH([antlr-jar],
+            [AS_HELP_STRING([--with-antlr-jar=file],[Use ANTLR from the specified jar file])],
+            [
+             ANTLR_JAR=$withval
+            ],
+            [
+             ANTLR_JAR="$ANTLR_JAR"
+            ])
 
 dnl -----------------------------------------------------------
-dnl Regenerate headers at build time (disabled by default)
+dnl Regenerate headers at build time (enabled if not found)
 dnl -----------------------------------------------------------
+AC_MSG_CHECKING([whether to regenerate the headers])
 AC_ARG_ENABLE([regen-headers],
               [AS_HELP_STRING(--enable-regen-headers,automatically regenerate JNI headers [default=yes if headers don't exist])],
               [case "${enableval}" in
@@ -344,13 +368,33 @@ AC_ARG_ENABLE([regen-headers],
                 no) REGENERATE_JNI_HEADERS=no ;;
                 *) REGENERATE_JNI_HEADERS=yes ;;
               esac],
-              [if test -e include/java_lang_VMSystem.h; then
+              [if test -e ${srcdir}/include/java_lang_VMSystem.h; then
                        REGENERATE_JNI_HEADERS=no ;
                   else
                        REGENERATE_JNI_HEADERS=yes ;
               fi])
+AC_MSG_RESULT(${REGENERATE_JNI_HEADERS})
 AM_CONDITIONAL(CREATE_JNI_HEADERS, test "x${REGENERATE_JNI_HEADERS}" = xyes)
 
+dnl ------------------------------------------------------------------------
+dnl Regenerate GJDoc parser at build time (enabled if not found)
+dnl ------------------------------------------------------------------------
+AC_MSG_CHECKING([whether to regenerate the GJDoc parser])
+AC_ARG_ENABLE([regen-gjdoc-parser],
+              [AS_HELP_STRING(--enable-regen-gjdoc-parser,automatically regenerate the GJDoc parser [default=yes if generated source doesn't exist])],
+              [case "${enableval}" in
+                yes) REGENERATE_GJDOC_PARSER=yes ;;
+                no) REGENERATE_GJDOC_PARSER=no ;;
+                *) REGENERATE_GJDOC_PARSER=yes ;;
+              esac],
+              [if test -e ${srcdir}/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java; then
+                       REGENERATE_GJDOC_PARSER=no ;
+                  else
+                       REGENERATE_GJDOC_PARSER=yes ;
+              fi])
+AC_MSG_RESULT(${REGENERATE_GJDOC_PARSER})
+AM_CONDITIONAL(CREATE_GJDOC_PARSER, test "x${REGENERATE_GJDOC_PARSER}" = xyes)
+
 dnl -----------------------------------------------------------
 dnl Enable tool wrapper binaries (disabled by default)
 dnl -----------------------------------------------------------
@@ -422,6 +466,7 @@ if test "x${COMPILE_JNI}" = xyes; then
   dnl Check for crt_externs.h on Darwin.
   dnl Check for netinet/in_systm.h, netinet/ip.h and net/if.h for Windows CE.
   dnl Check for sys/loadavg.h for getloadavg() on Solaris 9.
+  dnl Check for sys/sockio.h for SIOCGIFFLAGS on OpenSolaris.
   AC_CHECK_HEADERS([unistd.h sys/types.h sys/config.h sys/ioctl.h \
                    asm/ioctls.h \
                    inttypes.h stdint.h utime.h sys/utime.h sys/filio.h \
@@ -434,14 +479,15 @@ if test "x${COMPILE_JNI}" = xyes; then
                     sys/event.h sys/epoll.h \
                    ifaddrs.h \
                    netinet/in_systm.h netinet/ip.h net/if.h \
-                   sys/loadavg.h])
+                   sys/loadavg.h sys/sockio.h])
 
   AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
   AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
   AC_EGREP_HEADER(u_int32_t, sys/types.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
   AC_EGREP_HEADER(u_int32_t, sys/config.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
 
-  AC_SEARCH_LIBS([inet_pton],[nsl]) 
+  AC_SEARCH_LIBS([inet_pton],[nsl])
+  AC_CHECK_LIB([socket], [gethostname]) 
   AC_CHECK_FUNCS([ftruncate fsync select \
                  gethostname socket strerror fork pipe execve open close \
                  lseek fstat read readv write writev htonl memset htons connect \
@@ -755,6 +801,26 @@ if test "x${COMPILE_JNI}" = xyes; then
 
     AC_SUBST(PLUGIN_DIR, $HOME/.mozilla/plugins/)
   fi
+
+  dnl Check for GNU MP library and header file
+  dnl for GNU MP versions >= 4.2 use __gmpz_combit; otherwise look for
+  dnl __gmpz_mul_si for earlier versions (>= 3.1).
+  dnl IMPORTANT: if you decide to look for __gmpz_combit, don't forget to
+  dnl change the name of the corresponding ac_ variable on lines 860...
+  if test "x${COMPILE_GMP}" = xyes; then
+    AC_CHECK_LIB(gmp, __gmpz_mul_si,
+      [GMP_CFLAGS=-I/usr/include
+       GMP_LIBS=-lgmp ],
+      [GMP_CFLAGS=
+       GMP_LIBS= ])
+    AC_SUBST(GMP_CFLAGS)
+    AC_SUBST(GMP_LIBS)
+
+    AC_CHECK_HEADERS([gmp.h])
+  fi
+
+else
+  COMPILE_GMP=no
 fi
 
 if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
@@ -948,6 +1014,24 @@ esac;
 AM_CONDITIONAL(USE_PREBUILT_GLIBJ_ZIP, test x$use_glibj_zip = xtrue)
 AC_SUBST(PATH_TO_GLIBJ_ZIP)
 
+if test "x${TOOLSDIR}" != x; then
+  if test "x${COMPILE_WRAPPERS}" = xno && test "x${enable_java_maintainer_mode}" = xyes; then
+    AC_PROG_JAVA
+  fi
+  if test "x${COMPILE_GJDOC}" = xyes; then
+    AC_LIB_ANTLR
+    if test "x${REGENERATE_GJDOC_PARSER}" = xyes; then
+dnl GCJ LOCAL
+      if test "x${enable_java_maintainer_mode}" = xyes; then
+        AC_PROG_JAVA
+       AC_PROG_ANTLR(2,7,1)
+      fi
+dnl END GCJ LOCAL
+    fi
+  fi
+fi
+
+
 # Check for javac if we need to build either the class library,
 # the examples or the tools
 if test "x${use_glibj_zip}" = xfalse || \
@@ -1011,6 +1095,25 @@ dnl Add the default preference peer
 dnl -----------------------------------------------------------
 AC_SUBST(DEFAULT_PREFS_PEER)
 
+dnl -----------------------------------------------------------
+dnl Set GNU MP related params
+dnl -----------------------------------------------------------
+WANT_NATIVE_BIG_INTEGER=false
+if test "x${COMPILE_GMP}" = xyes; then
+  if test "x${ac_cv_lib_gmp___gmpz_mul_si}" = xyes; then
+    if test "x${ac_cv_header_gmp_h}" = xyes; then
+      WANT_NATIVE_BIG_INTEGER=true
+      AC_DEFINE(WITH_GNU_MP, 1, [Define to 1 if gmp is usable])
+    else
+      COMPILE_GMP=no
+    fi
+  else
+    COMPILE_GMP=no
+  fi
+fi
+AC_SUBST(WANT_NATIVE_BIG_INTEGER)
+AM_CONDITIONAL(CREATE_GMPBI_LIBRARY, test "x${COMPILE_GMP}" = xyes)
+
 dnl -----------------------------------------------------------
 dnl output files
 dnl -----------------------------------------------------------
@@ -1032,6 +1135,7 @@ native/jni/Makefile
 native/jni/classpath/Makefile
 native/jni/java-io/Makefile
 native/jni/java-lang/Makefile
+native/jni/java-math/Makefile
 native/jni/java-net/Makefile
 native/jni/java-nio/Makefile
 native/jni/java-util/Makefile
@@ -1087,6 +1191,12 @@ AC_CONFIG_COMMANDS([grmic],[chmod 755 tools/grmic])
 AC_CONFIG_COMMANDS([gjavah], [chmod 755 tools/gjavah])
 ])
 
+if test "x${COMPILE_GJDOC}" = xyes
+then
+AC_CONFIG_FILES([tools/gjdoc])
+AC_CONFIG_COMMANDS([gjdoc], [chmod 755 tools/gjdoc])
+fi
+
 AC_CONFIG_COMMANDS([gen-classlist],[chmod 755 lib/gen-classlist.sh])
 AC_CONFIG_COMMANDS([copy-vmresources],[chmod 755 lib/copy-vmresources.sh])
 AC_OUTPUT
index 5f9eb68cf48f19a6255aa6dc9b8e2ecc7a4c9e1b..aca543158596fd5165dcb427d19ba7e0168f577b 100644 (file)
@@ -28,7 +28,8 @@ TOOLS_MANFILES = \
        grmid.1 \
        grmiregistry.1 \
        gserialver.1 \
-       gtnameserv.1
+       gtnameserv.1 \
+       gjdoc.1
 
 POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
 TEXI2POD = perl $(srcdir)/texi2pod.pl
@@ -42,7 +43,7 @@ STAMP = echo timestamp >
 
 .INTERMEDIATE: gappletviewer.pod gjarsigner.pod gjar.pod gjavah.pod \
        gkeytool.pod gnative2ascii.pod gorbd.pod grmid.pod grmiregistry.pod \
-       gserialver.pod gtnameserv.pod gcjh.pod
+       gserialver.pod gtnameserv.pod gcjh.pod gjdoc.pod
 
 gappletviewer.pod: $(srcdir)/cp-tools.texinfo
        -$(TEXI2POD) -D gappletviewer < $< > $@
@@ -84,6 +85,12 @@ gserialver.pod: $(srcdir)/cp-tools.texinfo
 gtnameserv.pod: $(srcdir)/cp-tools.texinfo
        -$(TEXI2POD) -D gtnameserv < $< > $@
 
+gjdoc.pod: $(srcdir)/cp-tools.texinfo
+       -$(TEXI2POD) -D gjdoc < $< > $@
+
+# GCJ LOCAL CHANGE
+#CLEANFILES = $(TOOLS_MANFILES)
+
 # GCJ LOCAL CHANGE
 # The following commands allow us to release tarballs with the man pages
 # and info documentation prebuilt.  This feature is enabled via 
@@ -102,6 +109,7 @@ stamp-geninsrc: $(TOOLS_MANFILES) cp-tools.info
        -cp -p gjar.1 $(srcdir)/gjar.1
        -cp -p gjarsigner.1 $(srcdir)/gjarsigner.1
        -cp -p gjavah.1 $(srcdir)/gjavah.1
+       -cp -p gjdoc.1 $(srcdir)/gjdoc.1
        -cp -p gkeytool.1 $(srcdir)/gkeytool.1
        -cp -p gnative2ascii.1 $(srcdir)/gnative2ascii.1
        -cp -p gorbd.1 $(srcdir)/gorbd.1
@@ -118,6 +126,7 @@ MAINTAINERCLEANFILES = \
                $(srcdir)/gjar.1 \
                $(srcdir)/gjarsigner.1 \
                $(srcdir)/gjavah.1 \
+               $(srcdir)/gjdoc.1 \
                $(srcdir)/gkeytool.1 \
                $(srcdir)/gnative2ascii.1 \
                $(srcdir)/gorbd.1 \
index 157cf7619d91390a0ce069ba43aa26482baad532..e2bfd66d2a74267aef6f66c75df5143285760e22 100644 (file)
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -97,6 +100,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -128,6 +133,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -166,11 +177,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -180,6 +192,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -201,7 +215,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -267,8 +284,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -279,6 +298,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -338,6 +358,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 SUBDIRS = api
 EXTRA_DIST = README.jaxp texi2pod.pl $(man_MANS)
@@ -356,13 +377,17 @@ TOOLS_MANFILES = \
        grmid.1 \
        grmiregistry.1 \
        gserialver.1 \
-       gtnameserv.1
+       gtnameserv.1 \
+       gjdoc.1
 
 POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
 TEXI2POD = perl $(srcdir)/texi2pod.pl
 STAMP = echo timestamp >
 @GENINSRC_FALSE@STAMP_GENINSRC = 
 
+# GCJ LOCAL CHANGE
+#CLEANFILES = $(TOOLS_MANFILES)
+
 # GCJ LOCAL CHANGE
 # The following commands allow us to release tarballs with the man pages
 # and info documentation prebuilt.  This feature is enabled via 
@@ -374,6 +399,7 @@ MAINTAINERCLEANFILES = \
                $(srcdir)/gjar.1 \
                $(srcdir)/gjarsigner.1 \
                $(srcdir)/gjavah.1 \
+               $(srcdir)/gjdoc.1 \
                $(srcdir)/gkeytool.1 \
                $(srcdir)/gnative2ascii.1 \
                $(srcdir)/gorbd.1 \
@@ -892,7 +918,7 @@ docs: cp-hacking.ps cp-vmintegration.ps cp-tools.ps $(TOOLS_MANFILES)
 
 .INTERMEDIATE: gappletviewer.pod gjarsigner.pod gjar.pod gjavah.pod \
        gkeytool.pod gnative2ascii.pod gorbd.pod grmid.pod grmiregistry.pod \
-       gserialver.pod gtnameserv.pod gcjh.pod
+       gserialver.pod gtnameserv.pod gcjh.pod gjdoc.pod
 
 gappletviewer.pod: $(srcdir)/cp-tools.texinfo
        -$(TEXI2POD) -D gappletviewer < $< > $@
@@ -934,6 +960,9 @@ gserialver.pod: $(srcdir)/cp-tools.texinfo
 gtnameserv.pod: $(srcdir)/cp-tools.texinfo
        -$(TEXI2POD) -D gtnameserv < $< > $@
 
+gjdoc.pod: $(srcdir)/cp-tools.texinfo
+       -$(TEXI2POD) -D gjdoc < $< > $@
+
 all-local: $(STAMP_GENINSRC) 
 
 stamp-geninsrc: $(TOOLS_MANFILES) cp-tools.info
@@ -941,6 +970,7 @@ stamp-geninsrc: $(TOOLS_MANFILES) cp-tools.info
        -cp -p gjar.1 $(srcdir)/gjar.1
        -cp -p gjarsigner.1 $(srcdir)/gjarsigner.1
        -cp -p gjavah.1 $(srcdir)/gjavah.1
+       -cp -p gjdoc.1 $(srcdir)/gjdoc.1
        -cp -p gkeytool.1 $(srcdir)/gkeytool.1
        -cp -p gnative2ascii.1 $(srcdir)/gnative2ascii.1
        -cp -p gorbd.1 $(srcdir)/gorbd.1
index bbca5c382864894b37b62f0aebe8869400d3ef95..2256739d19388a15db322f3ff0868a029524dbaf 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -74,6 +77,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -105,6 +110,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -143,11 +154,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -157,6 +169,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -178,7 +192,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -244,8 +261,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -256,6 +275,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -315,6 +335,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 @CREATE_API_DOCS_TRUE@noinst_DATA = html
 sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/jsr166
index 9e370c092965fce13390321499a6fc226d45ecf1..f7a2d245e7dd4e6748373cc9238e1a433fab093c 100644 (file)
@@ -134,6 +134,59 @@ Other Tools
 * rmid Tool::                  RMI activation daemon
 * rmiregistry Tool::           Remote object registry
 * tnameserv Tool::             Naming service
+* gjdoc Tool::                 Documenation generator tool.
+
+Generating HTML Documentation
+
+* Invoking the Standard Doclet::   How to generate HTML documentation.
+* Invoking a Custom Doclet::       How to run third-party and other 
+                                   built-in Doclets.
+
+* Option Summary by Type::         Brief list of all options, grouped by type.
+* Gjdoc Option Summary::           List of all options accepted by Gjdoc.
+
+* Source Set Options::      Select the set of source codes to run Gjdoc on.
+* Source Format Options::   Specify the format of the source codes to document.
+
+* Interlinking Options::    Connection your documentation with other projects.
+* Output Control Options::  Specify the target directory and locale, and more.
+* Generation Options::      Select which pieces of information to generate.
+* Decoration Options::      Add or modify some titles, headers and footers or
+                            override/amend static resources like stylesheets.
+* Taglet Options::          Define your own javadoc @@tags.
+
+* Virtual Machine Options:: Controlling the kind of output:
+                            an executable, object files, assembler files,
+                            or preprocessed source.
+* Verbosity Options::
+* Doclet Options::
+
+* Other Doclets::           Generating Other Output Types. 
+
+* Built-in Doclets::        Using the Built-in Doclets.
+* Using XmlDoclet::
+* Using TexiDoclet::
+* Using IspellDoclet::
+* Using DebugDoclet::
+
+* Third-party Doclets::     Using Third-Party Doclets.
+* DocBook Doclet::
+* PDFDoclet::
+* JUnitDoclet::
+
+* Gjdoc Concepts::          Advanced Concepts.
+* Writing Doclets::
+
+* Doclet Invocation Interface::    Implementing the Doclet Invocation Interface
+* Using AbstractDoclet::           Deriving Your Doclet from AbstractDoclet.
+* GNU Doclet SPI::                 Preparing the GNU Doclet Service Provider
+                                   Interface.
+
+* Taglets::                        Adding Custom Tags to the Documentation.
+* XHTML Fragments::                Well-Formed Documentation Fragments.
+* First Sentence Detector::        How Gjdoc Determines where the First
+                                   Sentence Ends.
+* Adding Custom Resources::        Adding Images and Other Resources.
 
 I18N Issues
 
@@ -1229,6 +1282,7 @@ and @b{tnameserv}.
 * rmid Tool::                  RMI activation daemon
 * rmiregistry Tool::           Remote object registry
 * tnameserv Tool::             Naming service
+* gjdoc Tool::                 A documentation generator
 @end menu
 
 @comment ----------------------------------------------------------------------
@@ -1743,7 +1797,7 @@ java(1), @dots{}
 
 @comment ----------------------------------------------------------------------
 
-@node tnameserv Tool, , rmiregistry Tool, Other Tools
+@node tnameserv Tool, gjdoc Tool, rmiregistry Tool, Other Tools
 @comment node-name, next, previous, up
 @section The @command{tnameserv} Tool
 @c man title gtnameserv Naming service
@@ -1788,6 +1842,1364 @@ java(1), @dots{}
 
 @comment ----------------------------------------------------------------------
 
+@ignore
+@c man begin SYNOPSIS gjdoc
+gjdoc [@option{-sourcepath }@var{pathlist}]
+      [@option{-all}] [@option{-subpackages }@var{pkg:pkg:@dots{}}] [@option{-exclude }@var{pkglist}]
+      [@option{-encoding }@var{charset}] [@option{-locale }@var{name}] [@option{-source }@var{release}]
+      [@option{-public}] [@option{-protected}] [@option{-package}] [@option{-private}] 
+      [@option{-doctitle }@var{text}] [@option{-header }@var{text}] [@option{-footer }@var{text}] [@option{-bottom }@var{text}]
+      [@option{-link }@var{url}] [@option{-linkoffline }@var{url} @var{path}] [@option{-noqualifier }@var{pkg:pkg:@dots{}}] 
+      [@option{-tagletpath }@var{pathlist}] [@option{-taglet }@var{className}] [@option{-tag }@var{tagspec}]
+      [@option{-use}] [@option{-linksource}] [@option{-splitindex}] [@option{-noindex}] [@option{-notree}] 
+      [@option{-version}] [@option{-author}] [@option{-nosince}] [@option{-addstylesheet }@var{file}]
+      [@option{-d }@var{targetdir}] 
+      [@var{packages}@dots{}] [@var{sourcefiles}@dots{}] [@@@var{cmdfile}]
+
+gjdoc [@option{-sourcepath }@var{pathlist}]
+      [@option{-all}] [@option{-subpackages }@var{pkg:pkg:@dots{}}] [@option{-exclude }@var{pkglist}]
+      [@option{-encoding }@var{charset}] [@option{-locale }@var{name}] [@option{-source }@var{release}]
+      [@option{-public}] [@option{-protected}] [@option{-package}] [@option{-private}] 
+      [@option{-docletpath }@var{pathlist}] [@option{-doclet }@var{className}]
+      [@var{packages}@dots{}] [@var{sourcefiles}@dots{}] [@@@var{cmdfile}]
+      [doclet options]
+
+gjdoc @option{--help}
+
+gjdoc @option{--version}
+
+Only the most useful options are listed here; see below for the
+remainder.
+@c man end
+@end ignore
+@c man begin SEEALSO gjdoc
+Info entry for @file{gjdoc}.
+@c man end
+@c man begin BUGS gjdoc
+Please report bugs to @w{@uref{http://savannah.gnu.org/bugs/?group=classpath}}.
+@c man end
+@c man begin AUTHOR gjdoc
+Julian Scheid
+@c man end
+
+@node gjdoc Tool, , tnameserv Tool, Other Tools
+@chapter Generating HTML Documentation
+@cindex Gjdoc command options
+@cindex command options
+@cindex options, Gjdoc command
+
+@c man begin DESCRIPTION gjdoc
+Gjdoc can be used in two ways: as a stand-alone documentation tool, or
+as a driver for a user-specified Doclet. @xref{Other Doclets}.
+
+In the default mode, Gjdoc will use the Standard Doclet
+@samp{HtmlDoclet} to generate a set of HTML pages.  The canonical
+usage is:
+
+@smallexample
+gjdoc -s src/java/ -all -d api-docs/
+@end smallexample
+
+Here, @samp{src/java/} is the root of your source code class
+hierarchy, @option{-all} means that all valid Java files found under
+this root directory should be processed, and @samp{api-docs/} is the
+directory where the generated documentation should be placed.
+
+To learn more about running Doclets other than the Standard Doclet,
+refer to the manual.  @xref{Invoking a Custom Doclet}.
+
+@menu
+* Invoking the Standard Doclet::   How to generate HTML documentation.
+* Invoking a Custom Doclet::       How to run third-party and other 
+                                   built-in Doclets.
+
+* Option Summary by Type::         Brief list of all options, grouped by type.
+* Gjdoc Option Summary::           List of all options accepted by Gjdoc.
+
+* Source Set Options::      Select the set of source codes to run Gjdoc on.
+* Source Format Options::   Specify the format of the source codes to document.
+
+* Interlinking Options::    Connection your documentation with other projects.
+* Output Control Options::  Specify the target directory and locale, and more.
+* Generation Options::       Select which pieces of information to generate.
+* Decoration Options::      Add or modify some titles, headers and footers or
+                              override/amend static resources like stylesheets.
+* Taglet Options::          Define your own javadoc @@tags
+
+* Virtual Machine Options::
+* Verbosity Options::
+* Doclet Options::
+
+* Other Doclets::                  Generating Other Output Types
+* Gjdoc Concepts::                 Advanced Concepts
+
+@end menu
+
+@c man end
+
+@comment ----------------------------------------------------------------------
+
+@node Invoking the Standard Doclet, Invoking a Custom Doclet, , gjdoc Tool
+@section Invoking the Standard Doclet
+@cindex Gjdoc command options
+@cindex command options
+@cindex options, Gjdoc command
+
+Running the Gjdoc Standard Doclet @samp{HtmlDoclet} is the default
+mode of operation for Gjdoc.  This section lists the command line
+options you can specify in this mode.  It doesn't distinguish between
+general Gjdoc options and options specific to the Standard Doclet.
+
+If you want to learn which options are accepted when Gjdoc is used as
+a doclet driver, @xref{Invoking a Custom Doclet}.
+
+@menu
+* Source Set Options::      Select the set of source codes to run Gjdoc on.
+* Source Format Options::   Specify the format of the source codes to document.
+
+* Output Control Options::  Specify the target directory and locale, and more.
+* Generation Options::       Select which pieces of information to generate.
+* Decoration Options::      Add or modify some titles, headers and footers or
+                              override/amend static resources like stylesheets.
+* Taglet Options::          Define your own javadoc @@tags
+
+* Virtual Machine Options::
+* Doclet Options::
+
+@end menu
+
+@c man begin OPTIONS gjdoc
+
+@node Option Summary by Type, Gjdoc Option Summary, Invoking a Custom Doclet, gjdoc Tool
+@section Option Summary by Type
+
+Here is a summary of all the options of both Gjdoc and the Standard
+Doclet, grouped by type.  Explanations are in the following sections.
+
+@table @emph
+@item Source Set Options
+@xref{Source Set Options,,Options For Specifying the Source Files To Operate on}.
+@gccoptlist{-sourcepath @var{pathlist}  -subpackages @var{pkglist}  -exclude @var{pkglist}}
+
+@item Source Format Options
+@xref{Source Format Options,,Options For Specifying the Source Format}.
+@gccoptlist{-source @var{release}  -encoding @var{encoding}  -breakiterator}
+
+@item Interlinking Options
+@xref{Interlinking Options,,Options For Specifying the Source Files To Operate on}.
+@gccoptlist{-link @var{url}  -linkoffline @var{url} @var{file}  -noqualifier @var{pkg:pkg:...}}
+
+@item Generation Options
+@xref{Generation Options,,Options Controlling What is Included in the Output}.
+@gccoptlist{-author  -licensetext  -use  -version  -splitindex  -noindex
+ -nodeprecated  -nodeprecatedlist  -nohelp  -nonavbar
+ -nosince  -notree  -public  -protected  -package  -private
+ -docfilessubdirs  -excludedocfilessubdir @var{dirname}
+ -linksource}
+
+@item Output Options
+@xref{Generation Options,,Options Controlling the Output}.
+@gccoptlist{-d  -locale @var{name}  -charset @var{charset}  -docencoding @var{charset}
+ -validhtml  -baseurl @var{url}}
+
+@item Decoration Options
+@gccoptlist{-windowtitle @var{text}  -doctitle @var{text}  -title @var{text}  
+ -header @var{text}  -footer @var{text}  -bottom @var{text}
+ -helpfile @var{file}  -stylesheetfile @var{file}  -addstylesheet @var{file}
+ -group @var{groupheading} @var{pkgpattern:pkgpattern:@dots{}}}
+
+@item Taglet Options
+@xref{Taglet Options,,Options For Specifying user-defined Taglets}.
+@gccoptlist{-tagletpath  -taglet @var{classname}  -tag @var{tagspec}}
+
+@item Doclet Options
+@xref{Doclet Options,,Options For Specifying the Doclet to use}.
+@gccoptlist{-docletpath  -doclet @var{classname}}
+
+@item Verbosity Options
+@xref{Verbosity Options,,Options Controlling Gjdoc Behavior}.
+@gccoptlist{-quiet  -verbose}
+
+@item Virtual Machine Options
+@xref{Virtual Machine Options,,Options Controlling Gjdoc Behavior}.
+@gccoptlist{-classpath}  @gccoptlist{-bootclasspath}  @gccoptlist{-J}@var{vmopt}
+
+@end table
+
+@menu
+* Virtual Machine Options::     Controlling the kind of output:
+                        an executable, object files, assembler files,
+                        or preprocessed source.
+@end menu
+
+@node Source Set Options, Source Format Options, Gjdoc Option Summary, gjdoc Tool
+@section Selecting which Source Files to Process
+
+@table @gcctabopt
+@item -s @var{pathlist}
+@item -sourcepath @var{pathlist}
+Look for source files in the specified directory or directories.
+
+@var{pathlist} should be one or more directory paths separated by your
+platform's path separator (usually @samp{:} or @samp{;}).
+
+If this option is not given, @command{gjdoc} will look for source
+files in the current directory.
+
+The directories specified should be root directories in terms of the
+Java package system.  For example, if you want to generate
+documentation for classes in package @samp{foo.bar}, you must specify
+the directory containing the top-level @samp{@file{foo}}
+sub-directory, not the directory @samp{@file{foo/bar/}} in which the
+Java source files reside.
+
+The short-hand alias @option{-s} is specific to @command{gjdoc} and
+not compatible to Sun @command{javadoc}.
+
+@item -all
+@emph{[EXPERIMENTAL]}
+Process all valid Java source files found in the directories listed in
+the source path and their sub-directories.
+
+This is an option specific to @command{gjdoc} and not compatible to
+Sun @command{javadoc}.
+
+@item -subpackages @var{pkg:pkg:@dots{}}
+Process the classes in the given Java packages and all sub-packages,
+recursively.  Note that multiple package names must be separated with
+colons instead of whitespace.
+
+@item -exclude @var{pkg:pkg:@dots{}}
+Do not process classes in the given Java packages and all
+sub-packages, recursively.  This option can be used in conjunction
+with @option{-all} or @option{-subpackages} in order to exclude
+individual packages or package sub-trees from the output.
+
+@item @var{packages}@dots{}
+Process all classes in the given Java packages.
+
+@item @var{sourcefiles}@dots{}
+Process the classes in the given Java source files.
+@end table
+
+@node Source Format Options, Interlinking Options, Source Set Options, gjdoc Tool
+@section Specifying the Format of Input Files
+
+@table @gcctabopt
+@item -source @var{release}
+Assume that the source files are targeted at the given release of the
+Java platform.
+
+@var{release} should be the version number of a Java platform release
+in the format MAJOR.MINOR, for example @samp{1.4}.
+
+This option is currently ignored except that an error is raised if a
+release number other than @samp{1.2}, @samp{1.3} or @samp{1.4} is
+specified.
+
+@item -encoding @var{charset}
+Assume that the source files are encoded using @var{charset}.
+
+Examples for @var{charset} are @samp{US-ASCII}, @samp{ISO-8859-1} or
+@samp{UTF-8}.
+
+The semantics of @var{charset} are identical to those of @samp{java.nio.charset.Charset.forName(String)}.
+
+@item -breakiterator
+Use the locale's java.text.BreakIterator instead of the internal
+first sentence detector.
+
+By default, @command{gjdoc} uses an internal algorithm to determine
+where a sentence ends. When this option is given, it will instead use
+the @samp{java.text.BreakIterator} instance for the locale given with
+@option{-locale} (or the default locale).
+
+This option should be specified when applying @command{gjdoc} to
+source code commented in a non-latin language for which the default
+first sentence detector does not work. For all other cases, the
+default (do not use BreakIterator) produces better results at the time
+of this writing.
+@end table
+
+@node Interlinking Options, Output Control Options, Source Format Options, gjdoc Tool
+@section Interlinking with other Documentation Sets
+
+@table @gcctabopt
+@item -link @var{url}
+
+Create hyperlinks to another documentation set.
+
+By default, @command{gjdoc} will only create hyperlinks to classes in
+the source set.  Use this option to additionally create hyperlinks to
+classes covered by the specified documentation set.
+
+@var{url} should be the root URL of the other documentation set. For
+example, to add hyperlinks to GNU Classpath, specify the following:
+
+@smallexample
+-link http://developer.classpath.org/doc/
+@end smallexample
+
+The @option{-link} option can be specified multiple times.
+
+Note that specifying the @option{-link} option will cause an HTTP
+access every time gjdoc is invoked. You can use @option{-linkoffline}
+instead to avoid this access.
+
+@item -linkoffline @var{url} @var{file}
+
+Create hyperlinks to another documentation set which is also present
+on the local file system.
+
+This option works exactly like @option{-link}, except that it accesses
+the local file system instead of the network for determining which
+classes are covered by the linked documentation set.
+
+When using @option{-linkoffline} the remote documentation set is not
+accessed at all, which can significantly speed up generation time
+depending on your network connection.  The generated hyperlinks to the
+documentation set however refer to the remote set, not to the local
+one, so that you can distribute the documentation without any further
+dependencies.
+
+The @option{-linkoffline} option can be specified multiple times.
+
+@item -noqualifier @var{pkg:pkg:@dots{}}
+
+Do not qualify names of classes in the given packages with their
+package name.
+
+By default, a class name is displayed unqualified only if the class is
+part of the source set or a linked documentation set, and qualified
+with the name of its containing package if it is not. You can use this
+option to force unqualified names for classes even if they are not
+part of the documentation set.
+
+For example, usually a reference to the String class is represented
+fully-qualified as @samp{java.lang.String} (unless you link to the
+appropriate documentation set using @option{-link}) because it isn't
+part of the documentation set.  You can specify @samp{-noqualifier
+java.lang} to render the same references just as @samp{String}.
+
+Note that for all unqualified class names, a tooltip is provided when
+you place your mouse pointer over it in the HTML documentation.
+
+@item -noqualifier @samp{all}
+Omit package name qualifier from all class names.
+
+Specify this option to omit package name qualifiers altogether,
+
+@end table
+
+@node Generation Options, Decoration Options, Output Control Options, gjdoc Tool
+@section Selecting which Information to Generate
+
+@table @gcctabopt
+@item -public
+Only include public members of public classes in the output.  By
+default, protected class members are included as well.
+
+@item -protected
+
+Include public or protected members of public classes in the output.
+This is the default.
+
+@item -package
+
+Include public, protected and package-private members of public and
+package-private classes.
+
+@item -private
+
+Include all classes and class members regardless of their access
+level.
+
+@item -splitindex
+Generate one index page per letter instead of a single, monolithic
+index page.
+
+By default, the index created by the Standard Doclet contains all
+entries on a single page.  This is fine for small documentation sets,
+but for large sets you should specify this option.
+
+@item -nosince
+Ignore @samp{@@since} tags in javadoc comments.
+
+By default, the generated output contains sections listing the version
+of your API since which the package, class or class member in question
+exists when this tag is encountered.  Specify this option to omit this
+information.
+
+@item -notree
+Do not generate any tree pages.
+
+By default, the generated output includes one inheritance tree per
+package, and - if the documentation set consists of multiple packages
+- a page with the full inheritance tree.  Specify this option to omit
+generation of these pages.
+
+@item -noindex
+Do not output the alphabetical index.
+
+By default, gjdoc generates an alphabetical index of all program
+elements in the documentation set (packages, classes, inner classes,
+constructors, methods, and fields).  Specify this option to omit this
+information.
+
+@item -nohelp
+Do not generate the help page.
+
+This option is currently ignored as the Standard Doclet doesn't
+provide a help page.
+
+@item -nodeprecated
+Do not output inline information about deprecated packages, classes or
+class members.
+
+By default, the Standard Doclet adds a highlighted paragraph with
+deprecation information to the description of each deprecated program
+element.  Specify this option to omit this information.
+
+@item -nodeprecatedlist
+Do not output the summary page for deprecated API elements.
+
+By default, the Standard Doclet generates a page listing all
+deprecated API elements along with a deprecation description which
+usually includes the reason for deprecation and possible
+alternatives.  Specify this option to omit this information.
+
+@item -nonavbar
+Do not output the navigation bar, header, and footer.
+
+By default, each output page is equipped with a top navigation bar
+(which may include a user-specified header) and a bottom navigation
+bar (which may include a user-specified footer).  Specify this option
+to omit this decoration.
+
+@item -nocomment
+
+Omit all documentation text from the generated files and output only
+declarations and program element relationships.
+
+This option is here for compatibility with @command{javadoc}.  If you
+plan on extracting information about your project via @command{gjdoc},
+you should consider using a different Doclet for your purposes
+instead, for example XmlDoclet.  You could also use the Doclet API
+directly by implementing a new Doclet.
+
+@item -linksource
+
+Generate a page with syntax-highlighted source code for each class.
+By default, this page is not generated.
+
+The source code can be accessed by clicking on the button labelled
+"Source" in the navigation bar, or by clicking on the name of a
+constructor, field, method, or inner class in the detail section of a
+class documentation page.
+
+@item -use
+
+Generate a page with cross-reference information. By default, this
+page is not generated.
+
+The cross-reference information can be accessed by clicking on the
+button labelled `Use' in the navigation bar.
+
+The `Use' page lists all classes/interfaces in the documentation set
+that extend/implement the class (type) in question; fields of the
+type; methods or constructors accepting a parameter of the type;
+methods returning the type; and methods or constructors throwing the
+type.
+
+@item -author
+Include author information in the output.
+
+When specified, author information as specified using the
+@samp{@@author} tag in javadoc comments is incorporated into the
+output. By default, @samp{@@author} tags are ignored.
+
+@item -version
+Include version information in the output.
+
+When specified, version information as specified using the
+@samp{@@version} tag in javadoc comments is incorporated into the
+output. By default, @samp{@@version} tags are ignored.
+
+@item -licensetext
+
+Assume that the first comment in each source file contains the license
+text, and add license information to the footer of each generated
+class page.
+
+This is an option specific to @command{gjdoc} and not compatible to
+Sun @command{javadoc}.
+
+This option is intended for use with free and open source projects
+where source code is typically prefixed with a boilerplate license
+comment, when there are legal reasons for including the license in the
+documentation.
+
+@item -docfilessubdirs
+
+Recursively copy all files in the @file{doc-files} sub-directory of each
+package directory.
+
+Usually, only the files in the @file{doc-files} sub-directory are copied
+without descending recursively.
+
+@xref{Adding Custom Resources}.
+
+@item -excludedocfilessubdir @var{name}:@var{name}:@dots{}
+
+Do not copy some directories directly under the @file{doc-files}
+sub-directories when descending recursively.
+
+The argument to this option should be a colon-separated list of
+directory names.
+
+This option only makes sense if @option{-docfilessubdirs} is also
+specified.  In this case, any sub-directory located directly beneath a
+@file{doc-files} directory is omitted if listed.
+
+@end table
+
+@node Taglet Options, Virtual Machine Options, Decoration Options, gjdoc Tool
+@section Custom Documentation Tags
+
+@table @gcctabopt
+@item -tagletpath @var{pathlist}
+Search @var{pathlist} when loading subsequent Taglet classes specified
+using @option{-taglet}.
+
+@var{pathlist} should be one or more paths to a directory or jar file,
+separated by your platform's path separator (usually @samp{:} or
+@samp{;}).
+
+@item -taglet @var{classname}
+Register a Taglet.
+
+@var{classname} should be the fully-qualified name of a Java class
+implementing @samp{com.sun.tools.doclets.Taglet}.
+
+The Taglet classes will be loaded from the classpath specified using
+@option{-tagletpath}, from the classpath specified using
+@option{-classpath} and from the default classpath.
+
+See the documentation of @samp{com.sun.tools.doclets.Taglet} for
+further information.
+
+Note that for simple tags, there is also @option{-tag}.
+
+@item -tag @var{tagspec}
+Register a generic Taglet.
+
+The format of @var{tagspec} must be @samp{<tagname>:<flags>:"<taghead>"}.
+
+@var{tagname} is the tag name to match, without the leading @@ sign. 
+
+@var{flags} is one or more of the following characters, where each
+character specifies a source code context in which the tag is to be
+recognized.
+
+@table @gcctabopt
+@item a  
+all contexts
+@item c  
+constructors
+@item f  
+fields
+@item m  
+methods
+@item o  
+overview
+@item p  
+packages
+@item t  
+types (classes, interfaces, exceptions, errors)
+@item X  
+special character which temporarily disables the
+Taglet altogether.
+@end table
+
+@var{taghead} is the string to display in the header of the section
+devoted to the tag in question.
+
+For example, to define a tag matching @samp{@@cvsid} which is to be
+accepted in overview, package and type pages and which is labelled
+with the header @samp{CVS ID}, you would specify:
+
+@smallexample
+-tag cvsid:tpo:"CVS ID"
+@end smallexample
+
+Let's say that a class javadoc comment contains
+
+@smallexample
+@@cvsid $Id: cp-tools.texinfo,v 1.7 2008/08/13 13:32:05 jsumali Exp $
+@end smallexample
+
+Then the HTML output will contain something like
+
+@smallexample
+CVS ID:
+  $Id: cp-tools.texinfo,v 1.7 2008/08/13 13:32:05 jsumali Exp $
+@end smallexample
+@end table
+
+@node Doclet Options, Other Doclets, Verbosity Options, gjdoc Tool
+@section Running Other Doclets
+
+@table @gcctabopt
+
+@item -docletpath @var{pathlist}
+Search @var{pathlist} when loading classes for the Doclet specified
+using @option{-doclet}.
+
+@var{pathlist} should be one or more paths to a directory or jar file,
+separated by your platform's path separator (usually @samp{:} or
+@samp{;}).
+
+@item -doclet @var{className}
+Run the specified doclet instead of the standard HtmlDoclet.
+
+@var{className} should be the fully-qualified name of a class which
+has a public default constructor and contain a method with the
+following signature:
+
+@smallexample
+   import com.sun.javadoc.RootDoc;
+   public static boolean start(RootDoc rootDoc) 
+@end smallexample
+
+The Doclet classes will be loaded from the classpath specified using
+@option{-docletpath}, from the classpath specified using
+@option{-classpath} and from the default classpath.
+
+The @samp{start} method should process the information exposed by the
+Doclet API via @samp{rootDoc} and return @samp{true} on success,
+@samp{false} on failure.
+
+If you are using a third-party doclet, refer to its documentation for
+further instructions.  Note that support for third-party doclets is
+experimental.  Please report any problems you encounter, or provide
+feedback when successfully running third-party applets.
+
+This option can be specified multiple times, in which case all doclets
+are executed with the same information tree exposed via the Doclet API
+for each Doclet run.
+
+@end table
+
+@node Decoration Options, Taglet Options, Generation Options, gjdoc Tool
+@section Adding Information to the Output
+
+@table @gcctabopt
+@item -windowtitle @var{text}
+Use @var{text} as the browser window title prefix.
+
+When specified, the browser window title for each page will be
+prefixed with @var{text} instead of the default string @samp{Generated
+API Documentation}.
+
+@var{text} should be plain text (it should not contain HTML tags).
+
+@item -doctitle @var{text}
+Set the header text of the overview page to @var{text}.
+
+@var{text} should be a short plain text string.
+
+When generating documentation for a single package, specifying this
+option forces generation of the overview page.
+
+@item -header @var{htmltext}
+
+Add @var{htmltext} to the right upper corner of every generated page.
+@var{htmltext} is usually set to the name of the project being
+documented.
+
+@item -footer @var{htmltext}
+
+Add @var{htmltext} to the right bottom corner of every generated page.
+@var{htmltext} is often set to the same value as for @option{-header}.
+
+@item -bottom @var{htmltext}
+
+Add @var{htmltext} to the very bottom of every generated page,
+spanning the whole width of the page.  When specified, @var{htmltext}
+usually consists of a copyright notice and/or links to other project
+pages.
+
+@item -addstylesheet @var{file}
+
+Augment the default CSS style sheets with the user-specified
+stylesheet @var{file}.
+
+The given stylesheet is simply loaded by each HTML page in addition to
+the default ones, as the last stylesheet.
+
+Note that the CSS cascading rules apply.  That is, your style
+properties will only be assigned if they have a higher cascading order
+than @command{gjdoc}'s default style.  One simple way to make sure
+that this is the case is to declare your overrides @samp{!important}.
+
+See @w{@uref{http://www.w3.org/TR/REC-CSS2/cascade.html#cascading-order}}.
+
+@item -group @var{heading} @var{pkgwildcard}:@var{pkgwildcard}:@dots{}
+
+Arrange the given packages in a separate group on the overview page.
+
+The first argument should be a short plain text which is used as the
+title of the package group.  The second argument should be a
+colon-separated list of package wildcards.  The group will consist of
+all packages in the documentation set whose name matches any of the
+given wildcards.
+
+There is only one wildcard character, @samp{*}, which matches both
+letters in package name components and the @samp{.} separating package
+name components.  For example, @samp{j*regex} would match package
+@samp{java.util.regex}.  A more useful example would be
+@samp{javax.swing*} to match @samp{javax.swing} and all of its
+sub-packages.
+
+This option can be given multiple times.  
+
+FIXME: Information about group nesting here.
+
+@smallexample
+gjdoc -group "Core Classes" 'java*' \
+      -group "Swing" 'javax.swing*' \
+      -group "XML APIs" 'javax.xml*' \
+      -group "Other Extensions" javax* \
+      @dots{}
+@end smallexample
+
+@item -overview @var{file}
+
+Add the XHTML body fragment from @var{file} to the overview page.
+
+@var{file} should contain an XHTML fragment with the HTML @samp{body}
+tag as the root node.  @xref{XHTML Fragments}.
+
+This option can be used to supply a description of the documentation
+set as a whole.
+
+When specified, the first sentence of the fragment will be put above
+the tables listing the documented packages, along with a link to the
+full copy of the fragment which is put below the tables.
+@xref{First Sentence Detector}.
+
+When generating documentation for a single package, specifying this
+option forces generation of the overview page.
+
+@item -stylesheetfile @var{file}
+
+Use the CSS stylesheet in @var{file} instead of the default CSS
+stylesheets.
+
+If you only want to override parts of the default stylesheets, use
+@option{-addstylesheet} instead.
+
+@item -title @var{text}
+
+@emph{Deprecated.} Use @option{-doctitle} @var{text} instead.
+
+@item -helpfile @var{file}
+
+This option is currently ignored.
+
+When implemented, it will use the XHTML fragment in @var{file} for the
+help page contents instead of the default help text.
+
+@end table
+
+@node Output Control Options, Generation Options, Interlinking Options, gjdoc Tool
+@section Controlling the Output.
+
+@table @gcctabopt
+@item -d @var{directory}
+Place all output files into @var{directory} (and
+sub-directories). @var{directory} will be created if it does not
+exist, including all non-existing parent directories and all required
+sub-directories.
+
+If not specified, output will be placed into the current directory.
+
+@item -locale @var{name}
+
+Use locale @var{name} instead of the default locale for all purposes.
+
+@var{name} should be a locale specifier in the form @samp{ll_CC[_VAR]}
+where @samp{ll} is a lowercase two-letter ISO-639 language code,
+@samp{CC} is an optional uppercase two-letter ISO-3166 country code,
+and @samp{VAR} is an optional variant code.  For example, @samp{en}
+specifies English, @samp{en_US} specifies US English, and
+@samp{en_US_WIN} specifies a deviant variant of the US English locale.
+
+Note that the semantics of this option correspond exactly to those of
+the constructors of class @samp{java.util.Locale}.
+
+This option currently only determines which Collator is being used for
+sorting output elements.  This means that the locale will only have an
+effect when you are using non-ASCII characters in identifiers.
+
+@item -charset @var{charset}
+
+@emph{Deprecated.} Override the specified encoding in output XHTML
+files with the one given by @samp{charset}.
+
+If this option is not given, the encoding specification in output
+XHTML is chosen to match the encoding used when writing the file (the
+encoding given with @option{-docencoding}, or your platform's default
+encoding).
+
+The semantics for @var{charset} are specified here:
+@w{@uref{http://www.w3.org/TR/2000/REC-xml-20001006#NT-EncName}}.  For
+all practical purposes, they are identical to those of the other
+options accepting charset parameters.
+
+This option is here for compatibility with @command{javadoc} and
+should be avoided.
+
+@item -docencoding @var{charset}
+
+Use the given charset encoding when writing output files instead of
+your platform's default encoding.
+
+Examples for @var{charset} are @samp{US-ASCII}, @samp{ISO-8859-1} or
+@samp{UTF-8}.
+
+The semantics of this option correspond exactly to those of the
+constructors of class @samp{java.util.Locale}.
+
+@item -validhtml
+
+Force generation of valid XHTML code.  This breaks compatibility to
+the traditional Javadoc tool to some extent.
+
+If this option is specified, anchor names will be mangled so that they
+are valid according to the XHTML 1.1 specification.  However, a
+documentation set generated with this option cannot be linked to
+properly using the traditional Javadoc tool.  It can be linked to just
+fine using Gjdoc, though.
+
+Without this option, anchor names for executable class members use the
+traditional format, for example: ``foo(String,int[])''.  This is
+compatible to the traditional Javadoc tool, but according to both the
+HTML 4.0 and XHTML 1.0 and 1.1 specifications, this format includes
+illegal characters.  Parentheses, square brackets, and the comma are
+not allowed in anchor names.
+
+@item -baseurl @var{url}
+
+Hardwire a page URL relative to @var{url} into each generated page.
+
+If you are generating documentation which will exclusively be
+available at a certain URL, you should use this option to specify this
+URL.
+
+This can help avoid certain redirect attacks used by spammers, and it
+can be helpful for certain web clients.
+
+@end table
+
+@node Verbosity Options, Doclet Options, Virtual Machine Options, gjdoc Tool
+@section Verbosity Options
+
+@table @gcctabopt
+@item -quiet
+Suppress all output except for warnings and error messages.
+
+@item -verbose
+Be very verbose about what @command{gjdoc} is doing.
+
+This option is currently ignored.
+
+@end table
+
+@node Virtual Machine Options, Verbosity Options, Taglet Options, gjdoc Tool
+@section Virtual Machine Options
+
+Sun's @command{javadoc} tool seems to be based on @command{javac} and
+as such it seems to operate on the VM level.  @command{gjdoc}, in
+contrast, is a pure Java application.
+
+Therefore, @command{gjdoc} can only fake, or simulate, the following
+VM-level options.
+
+@table @gcctabopt
+
+@item -classpath @var{pathlist}
+Set the Virtual Machine @samp{classpath} to @var{pathlist}.
+
+In most cases you should use @option{-docletpath} or
+@option{-tagletpath} instead of this option.
+
+@var{pathlist} should be one or more paths to a directory or jar file,
+separated by your platform's path separator (usually @samp{:} or
+@samp{;}).
+
+If this option is not intercepted at the wrapper level,
+@command{gjdoc} currently fakes it by calling
+@samp{System.setProperty("java.class.path", @var{pathlist});} and
+outputs a warning.
+
+@item -bootclasspath @var{pathlist}
+Set the Virtual Machine @samp{bootclasspath} to @var{pathlist}.
+
+If this option is not intercepted at the wrapper level,
+@command{gjdoc} outputs a warning.
+
+@item -J@var{vmopt}
+
+Pass an arbitrary parameter to the Virtual Machine @command{gjdoc}
+runs on.
+
+If this option is not intercepted at the wrapper level,
+@command{gjdoc} tries to emulate the option and outputs a warning.
+
+Currently, only the VM option @option{-D} for setting system
+properties is emulated.
+
+@end table
+
+@c man end
+
+@comment ----------------------------------------------------------------------
+
+@node Invoking a Custom Doclet, Option Summary by Type, Invoking the Standard Doclet, gjdoc Tool
+@section Invoking a Custom Doclet
+
+For invoking one of the other doclets shipping with @command{gjdoc} or
+a third-party doclet, the canonical usage is:
+
+@smallexample
+gjdoc -s src/java/ -all \
+  -docletpath /path/to/doclet.jar -doclet foo.BarDoclet \
+  (more Gjdoc core options and Doclet-specific options here)
+@end smallexample
+
+@samp{/path/to/doclet.jar} is a placeholder for a class path
+specifying where the Doclet classes and dependencies can be found and
+@samp{foo.BarDoclet} is the fully-qualified name of the Doclet's main
+class.
+
+@comment ----------------------------------------------------------------------
+
+@node Gjdoc Option Summary, Source Set Options, Option Summary by Type, gjdoc Tool
+@section Gjdoc Option Summary
+@cindex Gjdoc Options
+
+@comment ----------------------------------------------------------------------
+
+@node Other Doclets, Gjdoc Concepts, Doclet Options, gjdoc Tool
+@chapter Generating Other Output Types
+
+@menu
+* Built-in Doclets::
+* Third-party Doclets::
+@end menu
+
+@comment ----------------------------------------------------------------------
+
+@node Built-in Doclets, Third-party Doclets, , Other Doclets
+@section Using the Built-in Doclets
+@cindex Built-in Doclets
+
+@menu
+* Using XmlDoclet::
+* Using TexiDoclet::
+* Using IspellDoclet::
+* Using DebugDoclet::
+@end menu
+
+@comment ----------------------------------------------------------------------
+
+@node Using TexiDoclet, Using XmlDoclet, , Built-in Doclets
+@subsection TexiDoclet: Generating Info, PDF, and other formats
+@cindex TexiDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Using XmlDoclet, Using IspellDoclet, Using TexiDoclet, Built-in Doclets
+@subsection XmlDoclet: Generating XML Documentation
+@cindex HtmlDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Using IspellDoclet, Using DebugDoclet, Using XmlDoclet, Built-in Doclets
+@subsection IspellDoclet: Spell-checking Source Code
+@cindex IspellDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Using DebugDoclet, , Using IspellDoclet, Built-in Doclets
+@subsection DebugDoclet: Inspecting the Doclet API
+@cindex HtmlDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Third-party Doclets, , Built-in Doclets, Other Doclets
+@section Using Third-Party Doclets
+@cindex Third-party Doclets
+
+@menu
+* DocBook Doclet::
+* PDFDoclet::
+* JUnitDoclet::
+@end menu
+
+@comment ----------------------------------------------------------------------
+
+@node DocBook Doclet,PDFDoclet, ,Third-party Doclets
+@subsection DocBook Doclet
+@cindex DocBook Doclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node PDFDoclet, JUnitDoclet, DocBook Doclet, Third-party Doclets
+@subsection PDFDoclet
+@cindex PDFDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node JUnitDoclet, , PDFDoclet, Third-party Doclets
+@subsection JUnitDoclet
+@cindex JUnitDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Gjdoc Concepts, , Other Doclets, gjdoc Tool
+@chapter Advanced Concepts
+
+@menu
+* Writing Doclets::
+* Taglets::
+* XHTML Fragments::
+* First Sentence Detector::
+* Adding Custom Resources::
+@end menu
+
+@comment ----------------------------------------------------------------------
+
+@node Taglets, Writing Doclets, , Gjdoc Concepts
+@section Adding Custom Tags to the Documentation
+@cindex Taglet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Writing Doclets, XHTML Fragments, Taglets, Gjdoc Concepts
+@section Writing Doclets
+@cindex Taglet
+
+If the various Doclets already available don't suit your needs, you
+can write a custom Doclet yourself.  
+
+@menu
+* Doclet Invocation Interface::
+* Using AbstractDoclet::
+* GNU Doclet SPI::
+@end menu
+
+@comment ----------------------------------------------------------------------
+
+@node Doclet Invocation Interface, Using AbstractDoclet, , Writing Doclets
+@subsection Implementing the Doclet Invocation Interface
+
+A Doclet is a class that contains a method with the following
+signature:
+
+@smallexample
+public static boolean start(RootDoc rootDoc);
+@end smallexample
+
+@var{rootDoc} is the root of an object hierarchy containing the
+information @command{gjdoc} extracted from the source files.  See the
+Doclet API for more details.
+
+@samp{start} should process all the information and return
+@samp{true} on success, @samp{false} on failure.
+
+For printing status information, the Doclet should use methods
+@samp{printNotice}, @samp{printWarning} and @samp{printError} instead
+of @samp{System.err}.  The Doclet can opt to use @samp{System.out} for
+redirectable output.
+
+@comment ----------------------------------------------------------------------
+
+@node Using AbstractDoclet, GNU Doclet SPI, Doclet Invocation Interface, Writing Doclets
+@subsection Deriving Your Doclet from AbstractDoclet
+@cindex AbstractDoclet
+
+You may want your Doclet to provide functionality similar to
+HtmlDoclet.  For example, you may want it to support Taglets, generate
+Index, Tree, and Uses pages, or show other cross-reference information
+like @samp{Overrides} and @samp{All Implementing Classes}.
+
+This information is not directly provided by the Doclet API, so your
+Doclet would normally have to assemble it itself.  For example, it
+would have to add the names of all program elements to a list and sort
+this list in order to create the Index page.
+
+If you want to provide this information or part of it, you should
+consider deriving your class from
+@samp{gnu.classpath.tools.doclets.AbstractDoclet}.  This class
+provides the following benefits:
+
+@itemize @bullet
+
+@item 
+Handles options @option{-tag}, @option{-taglet}, @option{-tagletpath}
+(Taglets)
+
+@item 
+Provides standard taglets for @@version, @@author, @@since, @@serial,
+@@deprecated, @@see, @@param, @@return and handles all related options
+(@option{-version}, @option{-author}, @option{-nosince},
+@option{-nodeprecated})
+
+@item 
+Handles option @option{-d} (destination directory)
+
+@item 
+Handles option @option{-noqualifier} (classes to omit qualifier for)
+
+@item 
+Handles options @option{-docfilessubdirs} and
+@option{-excludedocfilessubdir} (resource copying)
+
+@item 
+Can generate a full index or an index split by first letter
+
+@item 
+Can generate a full tree and package trees
+
+@item 
+Can generate cross-reference information
+
+@item 
+Can aggregate interface information (all superinterfaces, all
+subinterfaces, all implementing classes)
+
+@item 
+Provides convenient access to constructors, fields, methods, and inner
+classes sorted by name/signature instead of the default sort order.
+
+@item 
+Provides various other convenience methods
+
+@end itemize
+
+If you derive from @samp{AbstractDoclet}, there are a number of things
+you need to take care of:
+
+@itemize @bullet
+
+@item 
+
+@end itemize
+
+you should not implement the
+@samp{start(RootDoc)} method as it is already defined by
+@samp{AbstractDoclet} so that it can care about parsing the options.
+
+Instead, you implement method @samp{run()}, @samp{getOptions()} and
+the other abstract methods to define your Doclet's behavior.
+
+Note that all information provided by @samp{AbstractDoclet} is
+evaluated lazily.  That is, if your Doclet doesn't need to create an
+Index page, then @samp{AbstractDoclet} will not spend resources on
+creating the corresponding information.
+
+See the API documentation for
+@samp{gnu.classpath.tools.doclets.AbstractDoclet} for more details.
+
+You should be aware that if you base your Doclet on
+@samp{AbstractDoclet} then you have to bundle this and all related
+classes with your Doclet, with all implications such as possible
+licensing issues.  Otherwise, your Doclet will only be runnable on
+@samp{gjdoc} and not on other documentation systems.  Also note that
+@samp{AbstractDoclet} has not been extensively tested in environments
+other than @samp{gjdoc}.
+
+@comment ----------------------------------------------------------------------
+
+@node GNU Doclet SPI, , Using AbstractDoclet, Writing Doclets
+@subsection Preparing for the GNU Doclet Service Provider Interface
+@cindex GNU Doclet SPI, Service Provider, SPI
+
+In addition to the standard Doclet invocation interface described
+above, @command{gjdoc} also offers a Service Provider Interface
+conforming to the Java standard.  Adding support for this interface to
+your Doclet simplifies usage for @command{gjdoc} users because it
+makes your Doclet ``discoverable''.
+
+In order to provide the alternate interface, you have to add a class
+implementing @samp{gnu.classpath.tools.gjdoc.spi.DocletSpi} to your
+Doclet classes, and bundle all Doclet classes in a Jar file along with
+a file named
+@samp{META_INF/services/gnu.classpath.tools.gjdoc.spi.DocletSpi} which
+contains the name of your class implementing DocletSpi on a single
+line.
+
+Note that if your Doclet depends on third-party classes bundled in
+separate Jar files, you can link in these classes using the
+@samp{Class-path:} Manifest attribute of your Doclet Jar.
+
+Your Doclet can then be invoked in one of the following ways:
+@smallexample
+gjdoc -docletjar /path/to/doclet.jar
+gjdoc -docletpath /path/to/doclet.jar -docletname @var{docletname}
+gjdoc -docletname @var{docletname}
+@end smallexample
+
+Here, @var{docletname} is the name of your doclet as returned by
+@samp{DocletSpi.getDocletName()}.
+
+The last example will only work if your Doclet Jar is in
+@command{gjdoc}'s @file{doclets} directory or if it is on the
+classpath.
+
+@comment ----------------------------------------------------------------------
+
+@node XHTML Fragments, First Sentence Detector, Writing Doclets, Gjdoc Concepts
+@section Well-formed Documentation Fragments
+@cindex XHTML Fragments
+
+For many Doclets it is advantagous if the HTML code in the comments
+and HTML code passed via the command line is well-formed.  For
+example, HtmlDoclet outputs XHTML code, and XmlDoclet XML code, both
+of which results in invalid files if the user-specified HTML isn't
+wellformed.
+
+Unfortunately, comments were never required to contain well-formed
+HTML code, which means that every Doclet must deal with non-wellformed
+code as well.
+
+The @command{gjdoc} built-in Doclets deal with this problem by
+``fixing'' the HTML code - making sure that all tags are closed,
+attribute values are provided and quoted, tags are properly nested,
+etc.
+
+This approach works OK in most instances, but since it uses some crude
+heuristics it can sometimes produce undesirable result.
+
+Therefore, in order to make sure that your comments are always
+properly formatted, make sure they are well-formed as described in
+@w{@uref{http://www.w3.org/TR/xhtml1/#h-4.1, XHTML 1.0: Documents must
+be well-formed}}.
+
+In addition, you should use meaningful tags instead of text formatting
+tags to make your output look better in other output formats derived
+from your HTML code.  For example, you should use the <em> tag instead
+of <b> if you want to emphasize text.
+
+@comment ----------------------------------------------------------------------
+
+@node First Sentence Detector, Adding Custom Resources, XHTML Fragments, Gjdoc Concepts
+@section How Gjdoc Determines where the First Sentence Ends
+@cindex First Sentence Detector
+
+For a package, class or member summary, @command{gjdoc} only shows the
+first sentence of the documentation comment in question.  Because
+@command{gjdoc} is not human, it is not always obvious to
+@command{gjdoc} where the first sentence ends.
+
+You might be tempted to say that the first sentence ends at the first
+occurrence of a punctuation character like @samp{.} or
+@samp{!}. However, consider examples like this:
+@smallexample
+This work, by Thomas J. Shahan et al., is about the middle ages.
+@end smallexample
+
+As you can see, it is not trivial to determine the end of the
+sentence.
+
+@command{gjdoc} gives you the choice between two approaches.  By
+default it uses built-in heuristics which should be compatible to
+Sun's @command{javadoc} tool.  This approach works quiet well in most
+cases, at least for english comments.
+
+Alternatively, you can specify option @option{-breakiterator} in which
+case @command{gjdoc} will use
+@samp{java.text.BreakIterator.getSentenceInstance(@var{locale}).next()}
+to find the end of sentence, where @var{locale} is the locale
+specified by option @samp{-locale} or the default locale if none
+specified.
+
+@emph{NOT YET IMPLEMENTED:}
+
+@command{gjdoc} also allows you to explicitly delineate the first
+sentence by putting it in a @samp{<span>} tag with the CSS class
+@samp{first-sentence}.  For example:
+@smallexample
+/**
+ *  <span class="first-sentence">This. is. the. first. 
+ *  sentence.</span> This is the second sentence.
+ */
+@end smallexample
+
+Note that this will only work with @command{gjdoc}, but shouldn't hurt
+when using another documentation system since the @samp{<span>} tag
+usually doesn't show up in the output.
+
+@comment ----------------------------------------------------------------------
+
+@node Adding Custom Resources, , First Sentence Detector, Gjdoc Concepts
+@section Adding Images and Other Resources
+@cindex First Sentence Detector
+
+Sometimes you want to decorate your documentation with secondary
+resources such as images, SVG graphics, applets, and so on.  To do so,
+simply put the required files in a subdirectory 'doc-files' in the
+package directory corresponding to the documentation entry you want to
+decorate, and refer to it with the URL
+@samp{doc-files/@var{filename}}.
+
+For example, if you want to add an image to the description of class
+@samp{baz.FooBar}, create a directory @file{doc-files} in the
+directory @file{baz} containing @file{FooBar.java} and put your file,
+say @file{diagram.png}, into that directory.  Then, add the HTML code
+like this to a comment in @file{FooBar.java}:
+@smallexample
+<img src="doc-files/diagram.png" width="200" height="150"
+  alt="Foo Diagram"/>
+@end smallexample
+
+This works because the @file{doc-files} subdirectories will be copied
+to the target documentation directory every time you generate the
+documentation.  
+
+Note however that by default, the @file{doc-files} directory will not
+be copied deeply.  In other words, if you create subdirectories under
+@file{doc-files} they will not be copied and any resources located in
+these subdirectories will not be accessible in your generated
+documentation.  You can specify option @option{-docfilessubdirs} to
+remove this limitation.
+
+Sometimes you want to use option @option{-docfilessubdirs}, but there
+are certain directories which you don't want to be copied, for example
+because they contain source files for the resources in
+@file{doc-files}.  For cases like this, use
+@option{-excludedocfilessubdir} to specify directories to be omitted.
+
+@comment ----------------------------------------------------------------------
+
 @node I18N Issues, , Other Tools, Top
 @comment node-name, next, previous, up
 @chapter I18N Issues
index 56b3c45776d8529d649bdbc1ccb96066839df86d..ff47801247c9f2b45677eaaad073456b1a9467de 100644 (file)
@@ -1,7 +1,11 @@
 ## Input file for automake to generate the Makefile.in used by configure
-GLIBJ_CLASSPATH='$(top_builddir)/lib/glibj.zip'
+GLIBJ_CLASSPATH='$(top_builddir)/lib/glibj.zip:$(top_builddir)/lib'
 
+if GCJ_JAVAC
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_CLASSPATH) --classpath='$(top_builddir)/tools/tools.zip'
+else
 JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
+endif
 
 # All our example java source files
 EXAMPLE_JAVA_FILES = $(srcdir)/gnu/classpath/examples/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*/*.java
@@ -84,15 +88,21 @@ dist-hook:
 # To generate the example zip just depend on the sources and ignore the
 # class files. Always regenerate all .class files and remove them immediatly.
 # And copy the png icons we use to the classes dir so they get also included.
+
+if WITH_JAR
+CREATE_EXAMPLE_ZIP=$(JAR) cf ../$(EXAMPLE_ZIP) .
+else
+CREATE_EXAMPLE_ZIP=$(ZIP) -r ../$(EXAMPLE_ZIP) .
+endif
+
 $(EXAMPLE_ZIP): $(EXAMPLE_JAVA_FILES)
-       mkdir -p classes/gnu/classpath/examples/icons
+       @mkdir_p@ classes/gnu/classpath/examples/icons
        cp $(EXAMPLE_ICONS) classes/gnu/classpath/examples/icons
-       mkdir -p classes/gnu/classpath/examples/swing
+       @mkdir_p@ classes/gnu/classpath/examples/swing
        cp $(EXAMPLE_HTML) classes/gnu/classpath/examples/swing
        $(JCOMPILER) -d classes $(EXAMPLE_JAVA_FILES) 
        (cd classes; \
-       if test "$(ZIP)" != ""; then $(ZIP) -r ../$(EXAMPLE_ZIP) .; fi; \
-       if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(EXAMPLE_ZIP) .; fi; \
+       $(CREATE_EXAMPLE_ZIP); \
        cd ..)
        rm -rf classes
 
index 6eebed083c45870293e69662885ac493de456c4b..3adbdaa84aa8c01ac81c0e608330921e913c1b57 100644 (file)
@@ -52,6 +52,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -83,6 +86,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -114,6 +119,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -152,11 +163,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -166,6 +178,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -187,7 +201,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -253,8 +270,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -265,6 +284,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -324,9 +344,11 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
-GLIBJ_CLASSPATH = '$(top_builddir)/lib/glibj.zip'
-JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
+GLIBJ_CLASSPATH = '$(top_builddir)/lib/glibj.zip:$(top_builddir)/lib'
+@GCJ_JAVAC_FALSE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
+@GCJ_JAVAC_TRUE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_CLASSPATH) --classpath='$(top_builddir)/tools/tools.zip'
 
 # All our example java source files
 EXAMPLE_JAVA_FILES = $(srcdir)/gnu/classpath/examples/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*/*.java
@@ -362,6 +384,12 @@ exampledir = $(pkgdatadir)/examples
 
 # Make sure everything is included in the distribution.
 EXTRA_DIST = README Makefile.jawt.in Makefile.java2d.in
+@WITH_JAR_FALSE@CREATE_EXAMPLE_ZIP = $(ZIP) -r ../$(EXAMPLE_ZIP) .
+
+# To generate the example zip just depend on the sources and ignore the
+# class files. Always regenerate all .class files and remove them immediatly.
+# And copy the png icons we use to the classes dir so they get also included.
+@WITH_JAR_TRUE@CREATE_EXAMPLE_ZIP = $(JAR) cf ../$(EXAMPLE_ZIP) .
 all: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) all-am
 
@@ -599,18 +627,14 @@ dist-hook:
          cp -p $$file $(distdir)/$$f; \
        done
 
-# To generate the example zip just depend on the sources and ignore the
-# class files. Always regenerate all .class files and remove them immediatly.
-# And copy the png icons we use to the classes dir so they get also included.
 $(EXAMPLE_ZIP): $(EXAMPLE_JAVA_FILES)
-       mkdir -p classes/gnu/classpath/examples/icons
+       @mkdir_p@ classes/gnu/classpath/examples/icons
        cp $(EXAMPLE_ICONS) classes/gnu/classpath/examples/icons
-       mkdir -p classes/gnu/classpath/examples/swing
+       @mkdir_p@ classes/gnu/classpath/examples/swing
        cp $(EXAMPLE_HTML) classes/gnu/classpath/examples/swing
        $(JCOMPILER) -d classes $(EXAMPLE_JAVA_FILES) 
        (cd classes; \
-       if test "$(ZIP)" != ""; then $(ZIP) -r ../$(EXAMPLE_ZIP) .; fi; \
-       if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(EXAMPLE_ZIP) .; fi; \
+       $(CREATE_EXAMPLE_ZIP); \
        cd ..)
        rm -rf classes
 
index c07b77b1728df385827929e07690e999c33bc104..9af20d227abc83b51df1c363a7a214e8986df575 100644 (file)
@@ -145,7 +145,7 @@ public class DemoServant
   {
     System.out.println("SERVER: ***** Transferring tree");
 
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
 
     // This both creates the tree string representation
     // and changes the TreeNode names.
@@ -214,7 +214,7 @@ public class DemoServant
    * @param b the buffer to collect the string representation.
    * @param n the rott tree TreeNode.
    */
-  private void getImage(StringBuffer b, TreeNode n)
+  private void getImage(StringBuilder b, TreeNode n)
   {
     b.append(n.name);
     n.name = n.name + "++";
index 732b00cfb307a49eced626beb9394cee028f4c3f..843530de55bb3287ed785c695c207dc4409d1e75 100644 (file)
@@ -269,7 +269,7 @@ public class DirectTest
     object.passTree(nh);
 
     // Convert the returned tree to some strig representation.
-    StringBuffer img = new StringBuffer();
+    StringBuilder img = new StringBuilder();
     getImage(img, nh.value);
 
     System.out.println("Returned tree: " + img.toString());
@@ -314,7 +314,7 @@ public class DirectTest
    * @param b the string buffer to accumulate the representation.
    * @param n the tree (root TreeNode).
    */
-  private void getImage(StringBuffer b, TreeNode n)
+  private void getImage(StringBuilder b, TreeNode n)
   {
     b.append(n.name);
     b.append(": (");
index a976def74f3a1d6f862d4ce4db18586b59fb2361..73a8eecab939b99b01266ec713e2a940a9a1d0ec 100644 (file)
@@ -79,7 +79,7 @@ public class IorReader
       {
         InputStreamReader r = new InputStreamReader(u.openStream());
 
-        StringBuffer b = new StringBuffer();
+        StringBuilder b = new StringBuilder();
         int c;
 
         while ((c = r.read()) > 0)
index 2ef9241c52002e23b45f0886edfa92336b37cd65..7717834604394a1941f80170fd60b6957ad79a5d 100644 (file)
@@ -147,7 +147,7 @@ public class X5Server
 
             int length = GameManagerImpl.ior.length();
 
-            StringBuffer b = new StringBuffer();
+            StringBuilder b = new StringBuilder();
             b.append("HTTP/1.0 200 OK\r\n");
             b.append("Content-Length: " + length + "\r\n");
             b.append("Connection: close\r\n");
index 34dd73b32cb93c567a6d6a176e2cf21fae04d57f..3d77b127a04465708b5b5827ad6434dcf30c23b6 100644 (file)
@@ -94,7 +94,7 @@ public class Demo
     if (node == null)
       return;
 
-    StringBuffer tab = new StringBuffer();
+    StringBuilder tab = new StringBuilder();
     stream.println();
     for (int i = 0; i < ident; i++)
       {
index 4b2f66308238d095ab9cde630f19163e72124ea5..0f122f76b5c82fdbe0f4987f00d3f47c2a4a0ec0 100644 (file)
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -81,6 +84,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -112,6 +117,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -150,11 +161,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -164,6 +176,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -185,7 +199,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -251,8 +268,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -263,6 +282,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -322,6 +342,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 SUBDIRS = sax w3c_dom relaxngDatatype jsr166
 EXTRA_DIST = README
index 523e37505bc9ca05dd4425bb43bcb7bf85184783..4be9f2e2e49b0e2632f4c9a9118399d4cabc9510 100644 (file)
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -72,6 +75,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -103,6 +108,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -141,11 +152,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -155,6 +167,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -176,7 +190,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -242,8 +259,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -254,6 +273,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -313,6 +333,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 EXTRA_DIST = IMPORTING \
 readme \
index f400becc7b38beb248d876280d14fe97e7e76b1d..5d59fdabe288d811cf9f80a6d2a030144bf64a37 100644 (file)
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -72,6 +75,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -103,6 +108,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -141,11 +152,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -155,6 +167,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -176,7 +190,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -242,8 +259,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -254,6 +273,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -313,6 +333,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 EXTRA_DIST = README.txt \
 copying.txt \
index 8bdb122ee26f05102196b731ede6c4d080ebadb4..1f20b35bb2fadd06ea92e2391217dd77eae84407 100644 (file)
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -72,6 +75,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -103,6 +108,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -141,11 +152,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -155,6 +167,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -176,7 +190,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -242,8 +259,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -254,6 +273,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -313,6 +333,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 EXTRA_DIST = README \
 org/xml/sax/ext/Attributes2.java \
index b44d4330fff5d4ff52c2f41dffa1ceb2f4d28151..2079c48ac295a63d90c04d5d983aa6dee8bf09de 100644 (file)
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -72,6 +75,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -103,6 +108,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -141,11 +152,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -155,6 +167,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -176,7 +190,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -242,8 +259,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -254,6 +273,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -313,6 +333,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 EXTRA_DIST = README \
 org/w3c/dom/Attr.java \
index 119db045f0f01cd2a7bdc8e5a4b586c6350b14ce..33b74bb778083c1ca32f5261c49ac72ba03c6190 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.CORBA;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -135,7 +137,7 @@ public class BigDecimalHelper
   public static void write(java.io.OutputStream out, BigDecimal x)
                     throws IOException, BadKind
   {
-    StringBuffer v = new StringBuffer(x.unscaledValue().toString());
+    CPStringBuilder v = new CPStringBuilder(x.unscaledValue().toString());
 
     boolean negative = v.charAt(0) == '-';
 
@@ -165,7 +167,7 @@ public class BigDecimalHelper
    */
   private static BigDecimal createFixed(int scale, byte[] d)
   {
-    StringBuffer s = new StringBuffer(2 * d.length);
+    CPStringBuilder s = new CPStringBuilder(2 * d.length);
 
     int last = d.length - 1;
 
index a439b658b440692f0aa65176f3979cf4af20c233..93d18fb11400daf4d95bf10fb347aa4f7734d77c 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.CORBA.CDR;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.EOFException;
 import java.io.FilterInputStream;
 import java.io.IOException;
@@ -360,7 +362,7 @@ public class LittleEndianInputStream
   public String readLine()
                   throws IOException
   {
-    StringBuffer strb = new StringBuffer();
+    CPStringBuilder strb = new CPStringBuilder();
 
     while (true)
       {
@@ -629,4 +631,4 @@ public class LittleEndianInputStream
   {
     throw new InternalError();
   }
-}
\ No newline at end of file
+}
index 67a69b8745851335aeb4d80afe7b3efc0809dac4..86f842c34bb85fd8bf7cbb841b644695ab5cf8ab 100644 (file)
@@ -41,6 +41,8 @@ package gnu.CORBA.CDR;
 import gnu.CORBA.Minor;
 import gnu.CORBA.ObjectCreator;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.omg.CORBA.CustomMarshal;
 import org.omg.CORBA.DataInputStream;
 import org.omg.CORBA.DataOutputStream;
@@ -754,7 +756,7 @@ public abstract class Vio
       return "null";
     else
       {
-        StringBuffer b = new StringBuffer("{");
+        CPStringBuilder b = new CPStringBuilder("{");
         for (int i = 0; i < s.length; i++)
           {
             b.append(s[i]);
@@ -1469,4 +1471,4 @@ public abstract class Vio
     return VMVio.allocateObject(clazz, constructor.getDeclaringClass(),
       constructor);
   }
-}
\ No newline at end of file
+}
index 929dc72ec8a43c5199a13b00f13fb6bc12ae6e82..4af8c68515a4c1f5b0588207c4f1c1ae79e203ff 100644 (file)
@@ -40,6 +40,8 @@ package gnu.CORBA.CDR;
 
 import gnu.CORBA.Minor;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.omg.CORBA.LocalObject;
 import org.omg.CORBA.MARSHAL;
 
@@ -318,7 +320,7 @@ public class gnuRuntime
    */
   public String dump()
   {
-    StringBuffer b = new StringBuffer(" Stream content: \n");
+    CPStringBuilder b = new CPStringBuilder(" Stream content: \n");
 
     // Sort by position.
     TreeSet t = new TreeSet(positions.keySet());
index cac2405fc778302c4d4925d1617c2b99a9f3684a..f63cbea170822e4dcf9d62942f438e292d1706f3 100644 (file)
@@ -47,6 +47,8 @@ import gnu.CORBA.CDR.LittleEndianOutputStream;
 import gnu.CORBA.CDR.AbstractDataInput;
 import gnu.CORBA.CDR.AbstractDataOutput;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.omg.CORBA.MARSHAL;
 import org.omg.CORBA.portable.IDLEntity;
 
@@ -286,7 +288,7 @@ public class MessageHeader
         int minor;
         if (! Arrays.equals(xMagic, MAGIC))
           {
-            StringBuffer b = new StringBuffer();
+            CPStringBuilder b = new CPStringBuilder();
             if (r == - 1)
               {
                 b.append("Immediate EOF");
@@ -460,4 +462,4 @@ public class MessageHeader
         throw m;
       }
   }
-}
\ No newline at end of file
+}
index 3cfadfd7867198a0d4dbd2cef201683fbc238196..45997ab3deb4feec9586893e82ae27c949dbe222 100644 (file)
@@ -41,6 +41,8 @@ package gnu.CORBA.GIOP;
 import gnu.CORBA.CDR.AbstractCdrInput;
 import gnu.CORBA.CDR.AbstractCdrOutput;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.omg.CORBA.portable.IDLEntity;
 
 /**
@@ -123,7 +125,7 @@ public abstract class RequestHeader
    */
   public String bytes(byte[] array)
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     for (int i = 0; i < array.length; i++)
       {
         b.append(Integer.toHexString(array[i] & 0xFF));
index c085c17fb9b73c9fe14c236d01ef929699eb6056..dcb00c0ebc4159bf739047ee74014b4c30ec7789 100644 (file)
@@ -43,6 +43,8 @@ import gnu.CORBA.CDR.AbstractCdrOutput;
 import gnu.CORBA.GIOP.ServiceContext;
 import gnu.CORBA.GIOP.CodeSetServiceContext;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * The header of the standard reply.
  *
@@ -80,7 +82,7 @@ public class ReplyHeader
    */
   public String contexts()
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     for (int i = 0; i < service_context.length; i++)
       {
         b.append(service_context [ i ].toString());
index 5cf723cbc4299dcd471ac84ba0820c3d135c9805..d2bea9d88044406699b2a9e7962da172683083bb 100644 (file)
@@ -43,6 +43,8 @@ import gnu.CORBA.CDR.AbstractCdrOutput;
 import gnu.CORBA.GIOP.ServiceContext;
 import gnu.CORBA.GIOP.CodeSetServiceContext;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.omg.CORBA.portable.IDLEntity;
 
 /**
@@ -81,7 +83,7 @@ public class RequestHeader
 
   public String bytes(byte[] array)
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     for (int i = 0; i < array.length; i++)
       {
         b.append(Integer.toHexString(array [ i ] & 0xFF));
@@ -95,7 +97,7 @@ public class RequestHeader
    */
   public String contexts()
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     for (int i = 0; i < service_context.length; i++)
       {
         b.append(service_context [ i ].toString());
index 5e13aecabd3f6e6833d8062a8f0a3c9459c57984..7f63471eef0912d2e9770fb18bb206a2bab403b5 100644 (file)
@@ -45,6 +45,8 @@ import gnu.CORBA.CDR.AbstractCdrOutput;
 import gnu.CORBA.GIOP.CharSets_OSF;
 import gnu.CORBA.GIOP.CodeSetServiceContext;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.omg.CORBA.BAD_PARAM;
 import org.omg.CORBA.CompletionStatus;
 import org.omg.CORBA.MARSHAL;
@@ -126,7 +128,7 @@ public class IOR
        */
       public String toString()
       {
-        StringBuffer b = new StringBuffer();
+        CPStringBuilder b = new CPStringBuilder();
         b.append("native " + name(native_set));
         if (conversion != null && conversion.length > 0)
           {
@@ -146,7 +148,7 @@ public class IOR
        */
       public String toStringFormatted()
       {
-        StringBuffer b = new StringBuffer();
+        CPStringBuilder b = new CPStringBuilder();
         b.append("\n  Native set " + name(native_set));
         if (conversion != null && conversion.length > 0)
           {
@@ -282,7 +284,7 @@ public class IOR
      */
     public String toString()
     {
-      StringBuffer b = new StringBuffer();
+      CPStringBuilder b = new CPStringBuilder();
       b.append(host);
       b.append(":");
       b.append(port);
@@ -591,7 +593,7 @@ public class IOR
    */
   public String toString()
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     b.append(Id);
     b.append(" at ");
     b.append(Internet);
@@ -618,7 +620,7 @@ public class IOR
    */
   public String toStringFormatted()
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     b.append("\nObject Id:\n  ");
     b.append(Id);
     b.append("\nObject is accessible at:\n  ");
@@ -656,7 +658,7 @@ public class IOR
 
     _write(out);
 
-    StringBuffer b = new StringBuffer("IOR:");
+    CPStringBuilder b = new CPStringBuilder("IOR:");
 
     byte[] binary = out.buffer.toByteArray();
     String s;
@@ -819,4 +821,4 @@ public class IOR
       }
     return (int) adler.getValue();
   }
-}
\ No newline at end of file
+}
index 205ad8bec84088ae31f38eec68ab13b3af763484..5d4b729a569dd81b9b62055da5ebf5f0a21e5cd5 100644 (file)
@@ -44,6 +44,8 @@ import gnu.CORBA.IOR;
 import gnu.CORBA.Unexpected;
 import gnu.CORBA.Version;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.omg.CORBA.BAD_PARAM;
 import org.omg.CORBA.DATA_CONVERSION;
 import org.omg.CORBA.ORB;
@@ -301,7 +303,7 @@ public class NameParser
             ior.Internet.version = new Version(major, minor);
 
             // Then host data goes till '/' or ':'.
-            StringBuffer bhost = new StringBuffer(corbaloc.length());
+            CPStringBuilder bhost = new CPStringBuilder(corbaloc.length());
             while (!t[p].equals(":") && !t[p].equals("/") && !t[p].equals(","))
               bhost.append(t[p++]);
 
@@ -394,7 +396,7 @@ public class NameParser
       {
         InputStreamReader r = new InputStreamReader(u.openStream());
 
-        StringBuffer b = new StringBuffer();
+        CPStringBuilder b = new CPStringBuilder();
         int c;
 
         while ((c = r.read()) > 0)
@@ -465,7 +467,7 @@ public class NameParser
               + "' found");
         }
 
-    StringBuffer bKey = new StringBuffer();
+    CPStringBuilder bKey = new CPStringBuilder();
     p++;
 
     while (p < t.length && !t[p].equals("#"))
index 7109fdb93e1adcb313a35f87e5057f5fabdc7275..132c5dd8f04e4b6d5390d0ed1a006ae4939818d5 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.CORBA.NamingService;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.omg.CORBA.IntHolder;
 import org.omg.CosNaming.NameComponent;
 import org.omg.CosNaming.NamingContextPackage.InvalidName;
@@ -125,7 +127,7 @@ public class NameTransformer
   {
     NameValidator.check(a_name);
 
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
 
     NameComponent n;
 
@@ -152,7 +154,7 @@ public class NameTransformer
    * @param b a buffer to append the contents to.
    * @param s a string to append.
    */
-  private void appEscaping(StringBuffer b, String s)
+  private void appEscaping(CPStringBuilder b, String s)
   {
     char c;
     for (int i = 0; i < s.length(); i++)
@@ -271,7 +273,7 @@ public class NameTransformer
    */
   private String readPart(IntHolder p, String[] t)
   {
-    StringBuffer part = new StringBuffer();
+    CPStringBuilder part = new CPStringBuilder();
 
     while (t [ p.value ] != null && !t [ p.value ].equals(".") &&
            !t [ p.value ].equals("/")
index 8fddc66270cdff0ebbb51ad739f185ffb4f489bd..25344cb2ec0226b99c3ab8e419383de19e659289 100644 (file)
@@ -1194,7 +1194,7 @@ public class OrbFunctional extends OrbRestricted
    */
   protected void set_parameters(String[] para, Properties props)
   {
-    if (para.length > 1)
+    if ((para != null) && para.length > 1)
       {
         for (int i = 0; i < para.length - 1; i++)
           {
index 82e520904f144a14dc69881431ee7e36a15bd608..32fc5bfd221594bd7a5748b1011d0c83100ca124 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.CORBA.Poa;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -1604,7 +1606,7 @@ public class gnuPOA
    */
   public String toString()
   {
-    StringBuffer b = new StringBuffer(name);
+    CPStringBuilder b = new CPStringBuilder(name);
 
     if (children.size() != 0)
       {
index 115f4f850fb2948b226e413fe411223a249c7d4f..7e9b4f2f599323db1012a43440ac048578ccd813 100644 (file)
@@ -51,6 +51,8 @@ import gnu.CORBA.Unexpected;
 import gnu.CORBA.ResponseHandlerImpl;
 import gnu.CORBA.StreamHolder;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.omg.CORBA.Any;
 import org.omg.CORBA.BAD_OPERATION;
 import org.omg.CORBA.BAD_PARAM;
@@ -357,7 +359,7 @@ public class gnuServantObject extends ObjectImpl
    */
   public String toString()
   {
-    StringBuffer b = new StringBuffer("Servant object (");
+    CPStringBuilder b = new CPStringBuilder("Servant object (");
     for (int i = 0; i < Id.length; i++)
       {
         b.append(Integer.toHexString(Id [ i ] & 0xFF));
@@ -820,4 +822,4 @@ public class gnuServantObject extends ObjectImpl
       }
     return super._is_equivalent(other);
   }
-}
\ No newline at end of file
+}
index 7fb8640933074d3f8863dda61e6771370f2441af..4a9b65f5666775ca771cdce35211dd03c6a9c000 100644 (file)
@@ -101,4 +101,14 @@ public interface Configuration
    * com.sun.tools.javac implementation in tools.zip.
    */
   String ECJ_JAR = "@ECJ_JAR@";
+
+  /**
+   * Set to <code>true</code> if the config script found that (a) an
+   * implementation of java.math.BigInteger, based on the GNU MP library, is
+   * desired in preference to a pure Java one, and (b) the GNU MP library was
+   * found on the platform where the JVM is to run. Otherwise, this field is
+   * set to <code>false</code>.
+   */
+  boolean WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@;
+
 }
index e2703908ba24ce1879ec1aa8cdbf8766d6db5fce..b6e0cfeb8b3b15c53fb064a6d5e252536fd9c0d5 100644 (file)
@@ -264,7 +264,7 @@ public class VirtualMachineCommandSet
     ThreadGroup root = getRootThreadGroup(jdwpGroup);
 
     os.writeInt(1); // Just one top level group allowed?
-    idMan.getObjectId(root);
+    idMan.getObjectId(root).write(os);
   }
 
   private void executeDispose(ByteBuffer bb, DataOutputStream os)
index 36445c318415934d68690f2ce6dd4d741b48c6ca..e7453bf0174b8eb7caeb246da784aa1e4228faf4 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package gnu.classpath.jdwp.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 
@@ -59,7 +61,7 @@ public class Signature
    */
   public static String computeClassSignature (Class theClass)
   {
-    StringBuffer sb = new StringBuffer ();
+    CPStringBuilder sb = new CPStringBuilder ();
     _addToSignature (sb, theClass);
     return sb.toString ();
   }
@@ -93,7 +95,7 @@ public class Signature
   private static String _computeSignature (Class returnType,
                                           Class[] paramTypes)
   {
-    StringBuffer sb = new StringBuffer ("(");
+    CPStringBuilder sb = new CPStringBuilder ("(");
     if (paramTypes != null)
       {
        for (int i = 0; i < paramTypes.length; ++i)
@@ -104,7 +106,7 @@ public class Signature
     return sb.toString();
   }
 
-  private static void _addToSignature (StringBuffer sb, Class k)
+  private static void _addToSignature (CPStringBuilder sb, Class k)
   {
     // For some reason there's no easy way to get the signature of a
     // class.
index 2d898a44801e84ff9b246388cafe8a06b4adc8fd..e8124528e6afbfd3c16ef0c2127822d891086dac 100644 (file)
@@ -37,6 +37,10 @@ exception statement from your version. */
 
 package gnu.java.awt.font;
 
+
+import gnu.java.awt.peer.ClasspathFontPeer;
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Font;
 import java.awt.FontMetrics;
 import java.awt.font.FontRenderContext;
@@ -61,8 +65,6 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 
-import gnu.java.awt.peer.ClasspathFontPeer;
-
 public class OpenTypeFontPeer
   extends ClasspathFontPeer
 {
@@ -422,7 +424,7 @@ public class OpenTypeFontPeer
    */
   static String encodeFont(String name, int style)
   {
-    StringBuilder key = new StringBuilder();
+    CPStringBuilder key = new CPStringBuilder();
     key.append(validName(name));
     key.append('/');
     switch (style)
index d9736650b5f7cf9b0bb2cce8776264aea6517cd7..6420fa1cb147083dedd6c01934a940f67e32b5dc 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.awt.font.autofit;
 
+import gnu.java.lang.CPStringBuilder;
+
 class Edge
 {
   int fpos;
@@ -54,7 +56,7 @@ class Edge
 
   public String toString()
   {
-    StringBuilder s = new StringBuilder();
+    CPStringBuilder s = new CPStringBuilder();
     s.append("[Edge] id");
     s.append(hashCode());
     s.append(", fpos: ");
index 694fb24fe079d601b4c5dcb91a0c01cb05f87d94..2cf68b75c5a4c9696554bad6498ed23b97a84f05 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.awt.font.autofit;
 
+import gnu.java.lang.CPStringBuilder;
+
 public class LatinBlue
 {
   static final int FLAG_BLUE_ACTIVE = 1 << 0;
@@ -48,7 +50,7 @@ public class LatinBlue
   int flags;
   public String toString()
   {
-    StringBuilder s = new StringBuilder();
+    CPStringBuilder s = new CPStringBuilder();
     s.append("[BlueZone]");
     s.append(" ref: ");
     s.append(ref.org);
index 640e82ce2e93f609b9e668b4499a7a338cafe396..9f9da6792556af367d5032c48ccddcabac55ead0 100644 (file)
@@ -40,6 +40,8 @@ package gnu.java.awt.font.autofit;
 
 import gnu.java.awt.font.opentype.truetype.Point;
 
+import gnu.java.lang.CPStringBuilder;
+
 class Segment
 {
 
@@ -65,7 +67,7 @@ class Segment
 
   public String toString()
   {
-    StringBuilder s = new StringBuilder();
+    CPStringBuilder s = new CPStringBuilder();
     s.append("[Segment] id: ");
     s.append(hashCode());
     s.append(", len:");
index c890cf3de3dee3acfddd12baf3e0b628a782780d..079f7b396c84f59baaabb69995e03427a80d6ac3 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.awt.font.autofit;
 
+import gnu.java.lang.CPStringBuilder;
+
 public class Width
 {
   int org;
@@ -50,7 +52,7 @@ public class Width
 
   public String toString()
   {
-    StringBuilder s = new StringBuilder();
+    CPStringBuilder s = new CPStringBuilder();
     s.append("[Width] org: ");
     s.append(org);
     s.append(", cur: ");
index ea4b8e2a1fbbb7062a9c0de07a5789e5e5064134..c2b009de3e683c24446d8d8f38e01d1dfaaafb3e 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.java.awt.font.opentype;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.nio.ByteBuffer;
 import java.nio.IntBuffer;
 import java.nio.CharBuffer;
@@ -1077,7 +1079,7 @@ final class GlyphNamer
         return name;
     }
     
-    StringBuffer buf = new StringBuffer(numChars * 8);
+    CPStringBuilder buf = new CPStringBuilder(numChars * 8);
     for (int i = 0; i < numChars; i++)
     {
       if (i > 0)
index 287593e439c76903e4cbd0e551544801b58e8e0c..87dfebd412b3cf41e9d320a6a8b43704a798a955 100644 (file)
@@ -38,6 +38,7 @@ exception statement from your version. */
 
 package gnu.java.awt.font.opentype.truetype;
 
+import gnu.java.lang.CPStringBuilder;
 
 /**
  * A utility class for fixed-point arithmetics, where numbers are
@@ -164,7 +165,7 @@ public final class Fixed
 
   public static String toString(int x, int y)
   {
-    StringBuffer sbuf = new StringBuffer(40);
+    CPStringBuilder sbuf = new CPStringBuilder(40);
     sbuf.append('(');
     sbuf.append(((float) x) / 64);
     sbuf.append(", ");
index c9664d2dc071c55395578be1cda92225aa024ee7..31c12037c27974d6fed5827cdd8c604acd306b26 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.awt.font.opentype.truetype;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * Encapsulates information regarding one point on a glyph outline.
  */
@@ -234,7 +236,7 @@ public class Point
 
   public String toString()
   {
-    StringBuilder s = new StringBuilder();
+    CPStringBuilder s = new CPStringBuilder();
     s.append("[Point] origX: ");
     s.append(origX);
     s.append(", origY: ");
index 7e50b6678bfec9faa57967c122b2c4c2a1b290a6..c88d4c6491c85ae53ec566232389c1b663e93cc6 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.java.awt.font.opentype.truetype;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.FontFormatException;
 import java.awt.geom.AffineTransform;
 import java.nio.ByteBuffer;
@@ -514,7 +516,7 @@ class VirtualMachine
    */
   private void dumpInstruction(ByteBuffer inst)
   {
-    StringBuffer sbuf = new StringBuffer(40);
+    CPStringBuilder sbuf = new CPStringBuilder(40);
     int pc = inst.position();
     int bcode = inst.get(pc) & 0xff;
     int count;
index 36ba0f4304ce5f8f9cd6fd5ebdb836d98fe89314..8504659388ca687febf793170634f722c2d6c0be 100644 (file)
@@ -46,6 +46,7 @@ import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Composite;
 import java.awt.CompositeContext;
+import java.awt.Dimension;
 import java.awt.Font;
 import java.awt.FontMetrics;
 import java.awt.Graphics;
@@ -75,9 +76,12 @@ import java.awt.image.BufferedImage;
 import java.awt.image.BufferedImageOp;
 import java.awt.image.ColorModel;
 import java.awt.image.DataBuffer;
+import java.awt.image.FilteredImageSource;
 import java.awt.image.ImageObserver;
+import java.awt.image.ImageProducer;
 import java.awt.image.Raster;
 import java.awt.image.RenderedImage;
+import java.awt.image.ReplicateScaleFilter;
 import java.awt.image.SampleModel;
 import java.awt.image.WritableRaster;
 import java.awt.image.renderable.RenderableImage;
@@ -86,6 +90,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.Map;
+import java.util.WeakHashMap;
 
 /**
  * This is a 100% Java implementation of the Java2D rendering pipeline. It is
@@ -154,7 +159,14 @@ public abstract class AbstractGraphics2D
   extends Graphics2D
   implements Cloneable, Pixelizer
 {
-
+  /**
+   * Caches scaled versions of an image.
+   *
+   * @see #drawImage(Image, int, int, int, int, ImageObserver)
+   */
+  protected static final WeakHashMap<Image, HashMap<Dimension,Image>> imageCache =
+    new WeakHashMap<Image, HashMap<Dimension, Image>>();
+  
   /**
    * Wether we use anti aliasing for rendering text by default or not.
    */
@@ -210,13 +222,19 @@ public abstract class AbstractGraphics2D
   /**
    * The paint context during rendering.
    */
-  private PaintContext paintContext;
+  private PaintContext paintContext = null;
 
   /**
    * The background.
    */
-  private Color background;
+  private Color background = Color.WHITE;
 
+  /**
+   * Foreground color, as set by setColor.
+   */
+  private Color foreground = Color.BLACK;
+  private boolean isForegroundColorNull = true;
+  
   /**
    * The current font.
    */
@@ -266,15 +284,19 @@ public abstract class AbstractGraphics2D
 
   private static final BasicStroke STANDARD_STROKE = new BasicStroke();
 
-  private static final HashMap STANDARD_HINTS;
-  static {
-    HashMap hints = new HashMap();
-  hints.put(RenderingHints.KEY_TEXT_ANTIALIASING,
-            RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
-  hints.put(RenderingHints.KEY_ANTIALIASING,
-            RenderingHints.VALUE_ANTIALIAS_DEFAULT);
-  STANDARD_HINTS = hints;
-  }
+  private static final HashMap<Key, Object> STANDARD_HINTS;
+  static
+    {
+    
+      HashMap<Key, Object> hints = new HashMap<Key, Object>();
+      hints.put(RenderingHints.KEY_TEXT_ANTIALIASING,
+                RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
+      hints.put(RenderingHints.KEY_ANTIALIASING,
+                RenderingHints.VALUE_ANTIALIAS_DEFAULT);
+    
+      STANDARD_HINTS = hints;
+    }
+  
   /**
    * Creates a new AbstractGraphics2D instance.
    */
@@ -626,14 +648,29 @@ public abstract class AbstractGraphics2D
     if (p != null)
       {
         paint = p;
-
+        
         if (! (paint instanceof Color))
-          isOptimized = false;
+          {
+            isOptimized = false;
+          }
         else
           {
+            this.foreground = (Color) paint;
+            isForegroundColorNull = false;
             updateOptimization();
           }
       }
+    else
+      {
+        this.foreground = Color.BLACK;
+        isForegroundColorNull = true;
+      }
+    
+    // free resources if needed, then put the paint context to null
+    if (this.paintContext != null)
+      this.paintContext.dispose();
+    
+    this.paintContext = null;
   }
 
   /**
@@ -1058,10 +1095,10 @@ public abstract class AbstractGraphics2D
    */
   public Color getColor()
   {
-    Color c = null;
-    if (paint instanceof Color)
-      c = (Color) paint;
-    return c;
+    if (isForegroundColorNull)
+      return null;
+    
+    return this.foreground;
   }
 
   /**
@@ -1070,8 +1107,8 @@ public abstract class AbstractGraphics2D
    * @param color the foreground to set
    */
   public void setColor(Color color)
-  {
-    setPaint(color);
+  { 
+    this.setPaint(color);
   }
 
   public void setPaintMode()
@@ -1468,11 +1505,19 @@ public abstract class AbstractGraphics2D
                            ImageObserver observer)
   {
     AffineTransform t = new AffineTransform();
-    t.translate(x, y);
-    double scaleX = (double) width / (double) image.getWidth(observer);
-    double scaleY =  (double) height / (double) image.getHeight(observer);
-    t.scale(scaleX, scaleY);
-    return drawImage(image, t, observer);
+    int imWidth = image.getWidth(observer);
+    int imHeight = image.getHeight(observer);
+    if (imWidth == width && imHeight == height)
+      {
+        // No need to scale, fall back to non-scaling loops.
+        return drawImage(image, x, y, observer);
+      }
+    else
+      {
+        Image scaled = prepareImage(image, width, height);
+        // Ideally, this should notify the observer about the scaling progress.
+        return drawImage(scaled, x, y, observer);
+      }
   }
 
   /**
@@ -1639,10 +1684,7 @@ public abstract class AbstractGraphics2D
    *
    * @return the bounds of the target
    */
-  protected Rectangle getDeviceBounds()
-  {
-    return destinationRaster.getBounds();
-  }
+  protected abstract Rectangle getDeviceBounds();
 
   /**
    * Draws a line in optimization mode. The implementation should respect the
@@ -1763,7 +1805,8 @@ public abstract class AbstractGraphics2D
    */
   public void renderScanline(int y, ScanlineCoverage c)
   {
-    PaintContext pCtx = paintContext;
+    PaintContext pCtx = getPaintContext();
+    
     int x0 = c.getMinX();
     int x1 = c.getMaxX();
     Raster paintRaster = pCtx.getRaster(x0, y, x1 - x0, 1);
@@ -1797,9 +1840,11 @@ public abstract class AbstractGraphics2D
     CompositeContext cCtx = composite.createContext(paintColorModel,
                                                     getColorModel(),
                                                     renderingHints);
-    WritableRaster targetChild = destinationRaster.createWritableTranslatedChild(-x0,- y);
+    WritableRaster raster = getDestinationRaster();
+    WritableRaster targetChild = raster.createWritableTranslatedChild(-x0, -y);
+    
     cCtx.compose(paintRaster, targetChild, targetChild);
-    updateRaster(destinationRaster, x0, y, x1 - x0, 1);
+    updateRaster(raster, x0, y, x1 - x0, 1);
     cCtx.dispose();
   }
 
@@ -1986,4 +2031,64 @@ public abstract class AbstractGraphics2D
       }
   }
 
+  private PaintContext getPaintContext()
+  {
+    if (this.paintContext == null)
+      {
+        this.paintContext =
+          this.foreground.createContext(getColorModel(),
+                                        getDeviceBounds(),
+                                        getClipBounds(),
+                                        getTransform(),
+                                        getRenderingHints());
+      }
+   
+    return this.paintContext;
+  }
+
+  /**
+   * Scales an image to the specified width and height. This should also
+   * be used to implement
+   * {@link Toolkit#prepareImage(Image, int, int, ImageObserver)}.
+   * This uses {@link Toolkit#createImage(ImageProducer)} to create the actual
+   * image.
+   *
+   * @param image the image to prepare
+   * @param w the width
+   * @param h the height
+   *
+   * @return the scaled image
+   */
+  public static Image prepareImage(Image image, int w, int h)
+  {
+    // Try to find cached scaled image.
+    HashMap<Dimension,Image> scaledTable = imageCache.get(image);
+    Dimension size = new Dimension(w, h);
+    Image scaled = null;
+    if (scaledTable != null)
+      {
+        scaled = scaledTable.get(size);
+      }
+    if (scaled == null)
+      {
+        // No cached scaled image. Start scaling image now.
+        ImageProducer source = image.getSource();
+        ReplicateScaleFilter scaler = new ReplicateScaleFilter(w, h);
+        FilteredImageSource filteredSource =
+          new FilteredImageSource(source, scaler);
+        // Ideally, this should asynchronously scale the image.
+        Image scaledImage =
+          Toolkit.getDefaultToolkit().createImage(filteredSource);
+        scaled = scaledImage;
+        // Put scaled image in cache.
+        if (scaledTable == null)
+          {
+            scaledTable = new HashMap<Dimension,Image>();
+            imageCache.put(image, scaledTable);
+          }
+        scaledTable.put(size, scaledImage);
+      }
+    return scaled;
+  }
+
 }
index 4d1e777ccf5ef5be89f64d9090db444bcad5cbf2..efe1966e37880d2f8c022dadb74e5c5418d2f308 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.awt.java2d;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * A collection of active edges for scanline conversion.
  */
@@ -183,7 +185,7 @@ final class ActiveEdges
 
   public String toString()
   {
-    StringBuilder s = new StringBuilder();
+    CPStringBuilder s = new CPStringBuilder();
     s.append("[ActiveEdges] ");
     for (int i = 0; i < numActiveEdges; i++)
       {
index 98d47b406aaba6722d020a5f8e53e5ce297b687b..04eb55eb8d8482f1a7e7d159d53363044a015291 100644 (file)
@@ -39,6 +39,7 @@ exception statement from your version. */
 package gnu.java.awt.java2d;
 
 import java.awt.GraphicsConfiguration;
+import java.awt.Rectangle;
 import java.awt.image.ColorModel;
 import java.awt.image.WritableRaster;
 
@@ -71,6 +72,15 @@ public class RasterGraphics
     init();
   }
 
+  @Override
+  public void renderScanline(int y, ScanlineCoverage c)
+  {
+    if (y >= getDeviceBounds().width)
+      return;
+    
+    super.renderScanline(y, c);
+  }
+  
   /**
    * Returns the color model of this Graphics object.
    *
@@ -100,4 +110,9 @@ public class RasterGraphics
     return null;
   }
 
+  @Override
+  protected Rectangle getDeviceBounds()
+  {
+    return this.raster.getBounds();
+  }
 }
index cc4bbef28c0267a6d7cd999916543d49972a6999..b00a15c16ac7127ce6eecad037cc04179538244b 100644 (file)
@@ -206,6 +206,7 @@ public final class ScanlineConverter
         // Ok, now we can perform the actual scanlining.
         int realY = Fixed.intValue(FIXED_DIGITS, y + resolution);
         boolean push = lastRealY != realY;
+        
         doScanline(p, y, push, haveClip);
 
         // Remove obsolete active edges.
index be21631814044bb7be3f303a8a89c14f2af9ef83..cc41f749dc07c763ac046ee54803b648f6a0d7e7 100644 (file)
@@ -37,6 +37,8 @@
 
 package gnu.java.awt.peer;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
@@ -124,7 +126,7 @@ public class GnomeDesktopPeer
   protected String execQuery(String command) throws IOException
   {
     InputStream in = null;
-    StringBuilder output = new StringBuilder();
+    CPStringBuilder output = new CPStringBuilder();
 
     try
       {
index 30dd89ba7b2539ea3f88815066620dd9c1ef1762..8bc3e65b24e3bbf8ea8da7c97dc017afeb77ece6 100644 (file)
@@ -37,6 +37,8 @@
 
 package gnu.java.awt.peer;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.InputStream;
 
@@ -104,7 +106,7 @@ public class KDEDesktopPeer
   protected String execQuery(String command) throws IOException
   {
     InputStream in = null;
-    StringBuilder output = new StringBuilder();
+    CPStringBuilder output = new CPStringBuilder();
 
     try
       {
index 28fb84119e4d2ff8762ceb519750bf99a0acd69b..826cfbeceadbac51ccc99d71d1b05bd08e7eee3e 100644 (file)
@@ -45,6 +45,8 @@ import gnu.java.awt.ClasspathToolkit;
 import gnu.java.awt.peer.ClasspathFontPeer;
 import gnu.java.awt.font.opentype.NameDecoder;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Font;
 import java.awt.FontMetrics;
 import java.awt.Toolkit;
@@ -211,7 +213,7 @@ public class GdkFontPeer extends ClasspathFontPeer
 
   private String buildString(CharacterIterator iter)
   {
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) 
       sb.append(c);
     return sb.toString();
@@ -219,7 +221,7 @@ public class GdkFontPeer extends ClasspathFontPeer
 
   private String buildString(CharacterIterator iter, int begin, int limit)
   {
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     int i = 0;
     for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next(), i++) 
       {
index e41754641bbfbfe2f6f32d7079e5feb197d2c585..e248b6daf10b8764b428f9529fb5e63267e918f5 100644 (file)
@@ -38,10 +38,25 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.gtk;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Image;
-import java.awt.datatransfer.*;
 
-import java.io.*;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.ClipboardOwner;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.UnsupportedFlavorException;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.Reader;
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
 
 import java.util.List;
 import java.util.Iterator;
@@ -247,7 +262,7 @@ public class GtkClipboard extends Clipboard
         Reader r = plainText.getReaderForText(contents);
         if (r != null)
           {
-            StringBuffer sb = new StringBuffer();
+            CPStringBuilder sb = new CPStringBuilder();
             char[] cs = new char[1024];
             int l = r.read(cs);
             while (l != -1)
index c80c85c28f067b80ffed274b66105aba3dd0d88a..dde5b9195373f68bcb1466f6a28c31ec3e1d03a8 100644 (file)
@@ -39,7 +39,9 @@ package gnu.java.awt.peer.x;
 
 import java.awt.Color;
 import java.awt.GraphicsConfiguration;
+import java.awt.Rectangle;
 import java.awt.image.ColorModel;
+import java.util.Map;
 
 import gnu.java.awt.java2d.AbstractGraphics2D;
 import gnu.x11.extension.glx.GL;
@@ -70,7 +72,8 @@ public class GLGraphics extends AbstractGraphics2D
   public void setBackground(Color b)
   {
     super.setBackground(b);
-    gl.clear_color(b.getRed() / 255.F, b.getGreen() / 255.F,
+    
+    gl.clearColor(b.getRed() / 255.F, b.getGreen() / 255.F,
                    b.getBlue() / 255.F, b.getAlpha() / 255.F);
   }
 
@@ -120,4 +123,12 @@ public class GLGraphics extends AbstractGraphics2D
     throw new UnsupportedOperationException("Not yet implemented");
   }
 
+  @Override
+  protected Rectangle getDeviceBounds()
+  {
+    // FIXME: not sure it's correct
+    return new Rectangle(0, 0,
+                         gl.display.default_screen.width, 
+                         gl.display.default_screen.height);
+  }
 }
index 7f9843533168c6ba2d3f9b8b54bb1d3d13a30fc8..379839196b2f79898c267deb2b467a524e3d265e 100644 (file)
@@ -38,6 +38,9 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.x;
 
+import java.awt.AWTEvent;
+import java.awt.Component;
+import java.awt.Container;
 import java.awt.Graphics;
 import java.awt.Insets;
 import java.awt.Rectangle;
@@ -47,18 +50,26 @@ import java.awt.event.ComponentEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.awt.event.PaintEvent;
+import java.awt.event.WindowEvent;
 import java.util.HashMap;
 
+import gnu.java.awt.ComponentReshapeEvent;
+import gnu.x11.Atom;
 import gnu.x11.Display;
 import gnu.x11.event.ButtonPress;
 import gnu.x11.event.ButtonRelease;
+import gnu.x11.event.ClientMessage;
 import gnu.x11.event.ConfigureNotify;
+import gnu.x11.event.DestroyNotify;
 import gnu.x11.event.Event;
 import gnu.x11.event.Expose;
 import gnu.x11.event.Input;
 import gnu.x11.event.KeyPress;
 import gnu.x11.event.KeyRelease;
 import gnu.x11.event.MotionNotify;
+import gnu.x11.event.PropertyNotify;
+import gnu.x11.event.ResizeRequest;
+import gnu.x11.event.UnmapNotify;
 
 /**
  * Fetches events from X, translates them to AWT events and pumps them up
@@ -148,122 +159,217 @@ public class XEventPump
     windows.remove(new Integer(xWindow.id));
   }
 
-  private void handleEvent(Event xEvent)
+  private void handleButtonPress(ButtonPress event)
+  {
+    Integer key = new Integer(event.getEventWindowID());
+    Window awtWindow = (Window) windows.get(key);
+
+    // Create and post the mouse event.
+    int button = event.detail();
+
+    // AWT cannot handle more than 3 buttons and expects 0 instead.
+    if (button >= gnu.x11.Input.BUTTON3)
+      button = 0;
+    drag = button;
+
+    Component target =
+      findMouseEventTarget(awtWindow, event.getEventX(), event.getEventY());
+    if(target == null)
+      {
+        target = awtWindow;
+      }
+    
+    MouseEvent mp = new MouseEvent(target, MouseEvent.MOUSE_PRESSED,
+                                   System.currentTimeMillis(),
+                                   KeyboardMapping.mapModifiers(event.getState())
+                                     | buttonToModifier(button),
+                                   event.getEventX(), event.getEventY(),
+                                   1, false, button);
+    Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mp);
+  }
+  
+  private void handleButtonRelease(ButtonRelease event)
   {
+    Integer key = new Integer(event.getEventWindowID());
+    Window awtWindow = (Window) windows.get(key);
 
-    Integer key = null;
-    Window awtWindow = null;
+    int button = event.detail();
+    
+    // AWT cannot handle more than 3 buttons and expects 0 instead.
+    if (button >= gnu.x11.Input.BUTTON3)
+      button = 0;
+    drag = -1;
+    
+    Component target =
+      findMouseEventTarget(awtWindow, event.getEventX(), event.getEventY());
+    if(target == null)
+      {
+        target = awtWindow;
+      }
+    
+    MouseEvent mr = new MouseEvent(target, MouseEvent.MOUSE_RELEASED,
+                                   System.currentTimeMillis(),
+                                   KeyboardMapping.mapModifiers(event.getState())
+                                     | buttonToModifier(button),
+                                   event.getEventX(), event.getEventY(),
+                                   1, false, button);
+    Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mr);
+  }
+  
+  
+  private void handleMotionNotify(MotionNotify event)
+  {
+    Integer key = new Integer(event.getEventWindowID());
+    Window awtWindow = (Window) windows.get(key);
+
+    int button = event.detail();
+    
+    // AWT cannot handle more than 3 buttons and expects 0 instead.
+    if (button >= gnu.x11.Input.BUTTON3)
+      button = 0;
+
+    MouseEvent mm = null;
+    if (drag == -1)
+      {
+        mm = new MouseEvent(awtWindow, MouseEvent.MOUSE_MOVED,
+                            System.currentTimeMillis(),
+                            KeyboardMapping.mapModifiers(event.getState())
+                              | buttonToModifier(button),
+                            event.getEventX(), event.getEventY(),
+                            1, false);
 
+      }
+    else
+      {
+        mm = new MouseEvent(awtWindow, MouseEvent.MOUSE_DRAGGED,
+                            System.currentTimeMillis(),
+                            KeyboardMapping.mapModifiers(event.getState())
+                              | buttonToModifier(drag),
+                            event.getEventX(), event.getEventY(),
+                            1, false);
+      }
+    Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mm);
+  }
+   
+  // FIME: refactor and make faster, maybe caching the event and handle
+  // and/or check timing (timing is generated for PropertyChange)?
+  private void handleExpose(Expose event)
+  {
+    Integer key = new Integer(event.window_id);
+    Window awtWindow = (Window) windows.get(key);
+    
+    if (XToolkit.DEBUG)
+      System.err.println("expose request for window id: " + key);
+    
+    Rectangle r = new Rectangle(event.x(), event.y(), event.width(),
+                                event.height());
+    // We need to clear the background of the exposed rectangle.
+    assert awtWindow != null : "awtWindow == null for window ID: " + key;
+     
+    Graphics g = awtWindow.getGraphics();
+    g.clearRect(r.x, r.y, r.width, r.height);
+    g.dispose();
+    
+    XWindowPeer xwindow = (XWindowPeer) awtWindow.getPeer();
+    Insets i = xwindow.insets();
+    if (event.width() != awtWindow.getWidth() - i.left - i.right
+        || event.height() != awtWindow.getHeight() - i.top - i.bottom)
+      {
+        int w = event.width();
+        int h = event.height();
+        int x = xwindow.xwindow.x;
+        int y = xwindow.xwindow.y;
+        
+        if (XToolkit.DEBUG)
+          System.err.println("Setting size on AWT window: " + w
+                           + ", " + h + ", " + awtWindow.getWidth()
+                           + ", " + awtWindow.getHeight());
+        
+        // new width and height
+        xwindow.xwindow.width = w;
+        xwindow.xwindow.height = h;
+        
+        // reshape the window
+        ComponentReshapeEvent cre =
+          new ComponentReshapeEvent(awtWindow, x, y, w, h);
+        awtWindow.dispatchEvent(cre);
+      }
+  
+    ComponentEvent ce =
+      new ComponentEvent(awtWindow, ComponentEvent.COMPONENT_RESIZED);
+    awtWindow.dispatchEvent(ce);
+    
+    PaintEvent pev = new PaintEvent(awtWindow, PaintEvent.UPDATE, r);
+    Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(pev);
+  }
+    
+  private void handleDestroyNotify(DestroyNotify destroyNotify)
+  {
+    if (XToolkit.DEBUG)
+      System.err.println("DestroyNotify event: " + destroyNotify);
+    
+    Integer key = new Integer(destroyNotify.event_window_id);
+    Window awtWindow = (Window) windows.get(key);
+    
+    AWTEvent event = new WindowEvent(awtWindow, WindowEvent.WINDOW_CLOSED);
+    Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
+  }
+  
+  private void handleClientMessage(ClientMessage clientMessage)
+  {
+    if (XToolkit.DEBUG)
+      System.err.println("ClientMessage event: " + clientMessage);
+    
+    if (clientMessage.delete_window())
+      {
+        if (XToolkit.DEBUG)
+          System.err.println("ClientMessage is a delete_window event");
+        
+        Integer key = new Integer(clientMessage.window_id);
+        Window awtWindow = (Window) windows.get(key);
+        
+        AWTEvent event = new WindowEvent(awtWindow, WindowEvent.WINDOW_CLOSING);
+        Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
+      }
+  }
+  
+  private void handleEvent(Event xEvent)
+  {
     if (XToolkit.DEBUG)
       System.err.println("fetched event: " + xEvent);
-    switch (xEvent.code())
+    
+    switch (xEvent.code() & 0x7f)
     {
     case ButtonPress.CODE:
-      ButtonPress bp = (ButtonPress) xEvent;
-      key= new Integer(bp.event_window_id);
-      awtWindow = (Window) windows.get(key);
-      // Create and post the mouse event.
-      int button = bp.detail();
-
-      // AWT cannot handle more than 3 buttons and expects 0 instead.
-      if (button >= gnu.x11.Input.BUTTON3)
-        button = 0;
-      drag = button;
-
-      MouseEvent mp = new MouseEvent(awtWindow, MouseEvent.MOUSE_PRESSED,
-                                     System.currentTimeMillis(),
-                                     KeyboardMapping.mapModifiers(bp.state()) | buttonToModifier(button),
-                                     bp.event_x(), bp.event_y(),
-                                     1, false, button);
-      Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mp);
+      this.handleButtonPress((ButtonPress) xEvent);
       break;
     case ButtonRelease.CODE:
-      ButtonRelease br = (ButtonRelease) xEvent;
-      key= new Integer(br.event_window_id);
-      awtWindow = (Window) windows.get(key);
-
-      button = br.detail();
-      // AWT cannot handle more than 3 buttons and expects 0 instead.
-      if (button >= gnu.x11.Input.BUTTON3)
-        button = 0;
-      drag = -1;
-      MouseEvent mr = new MouseEvent(awtWindow, MouseEvent.MOUSE_RELEASED,
-                                     System.currentTimeMillis(),
-                                     KeyboardMapping.mapModifiers(br.state()) | buttonToModifier(button),
-                                     br.event_x(), br.event_y(),
-                                     1, false, button);
-      Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mr);
+      this.handleButtonRelease((ButtonRelease) xEvent); 
       break;
     case MotionNotify.CODE:
-      MotionNotify mn = (MotionNotify) xEvent;
-      key= new Integer(mn.event_window_id);
-      awtWindow = (Window) windows.get(key);
-
-      MouseEvent mm;
-      if (drag == -1)
-        {
-          mm = new MouseEvent(awtWindow, MouseEvent.MOUSE_MOVED,
-                              System.currentTimeMillis(), 0,
-                              mn.event_x(), mn.event_y(),
-                              1, false);
-        }
-      else
-        {
-          mm = new MouseEvent(awtWindow, MouseEvent.MOUSE_DRAGGED,
-                              System.currentTimeMillis(), 0,
-                              mn.event_x(), mn.event_y(),
-                              1, false);
-        }
-      Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mm);
-      break;
-    case ConfigureNotify.CODE:
-      key= new Integer(((ConfigureNotify) xEvent).event_window_id);
-      awtWindow = (Window) windows.get(key);
-      ConfigureNotify c = (ConfigureNotify) xEvent;
-      if (XToolkit.DEBUG)
-        System.err.println("resize request for window id: " + key);
-
-      // Detect and report size changes.
-      XWindowPeer xwindow = (XWindowPeer) awtWindow.getPeer();
-      Insets i = xwindow.insets();
-      if (c.width() != awtWindow.getWidth() - i.left - i.right
-          || c.height() != awtWindow.getHeight() - i.top - i.bottom)
-        {
-          if (XToolkit.DEBUG)
-            System.err.println("Setting size on AWT window: " + c.width()
-                             + ", " + c.height() + ", " + awtWindow.getWidth()
-                             + ", " + awtWindow.getHeight());
-          xwindow.callback = true;
-          xwindow.xwindow.width = c.width();
-          xwindow.xwindow.height = c.height();
-          awtWindow.setSize(c.width() + i.left + i.right,
-                            c.height() + i.top + i.bottom);
-          xwindow.callback = false;
-        }
+      this.handleMotionNotify((MotionNotify) xEvent); 
       break;
     case Expose.CODE:
-      key= new Integer(((Expose) xEvent).window_id);
-      awtWindow = (Window) windows.get(key);
-      Expose exp = (Expose) xEvent;
-      if (XToolkit.DEBUG)
-        System.err.println("expose request for window id: " + key);
-      Rectangle r = new Rectangle(exp.x(), exp.y(), exp.width(),
-                                  exp.height());
-      //System.err.println("expose paint: " + r);
-      // We need to clear the background of the exposed rectangle.
-      assert awtWindow != null : "awtWindow == null for window ID: " + key;
-      Graphics g = awtWindow.getGraphics();
-      g.clearRect(r.x, r.y, r.width, r.height);
-      g.dispose();
-      PaintEvent pev = new PaintEvent(awtWindow, PaintEvent.PAINT, r);
-      Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(pev);
+      this.handleExpose((Expose) xEvent);
       break;
     case KeyPress.CODE:
     case KeyRelease.CODE:
-      key = new Integer(((Input) xEvent).event_window_id);
-      awtWindow = (Window) windows.get(key);
+      Integer key = new Integer(((Input) xEvent).getEventWindowID());
+      Window awtWindow = (Window) windows.get(key);
       handleKeyEvent(xEvent, awtWindow);
       break;
+    case DestroyNotify.CODE:
+      this.handleDestroyNotify((DestroyNotify) xEvent);
+      break;
+    case ClientMessage.CODE:
+      this.handleClientMessage((ClientMessage) xEvent);
+      break;
+    case PropertyNotify.CODE:
+      key = new Integer (((PropertyNotify) xEvent).getWindowID());
+      awtWindow = (Window) windows.get(key);
+      AWTEvent event = new WindowEvent(awtWindow, WindowEvent.WINDOW_STATE_CHANGED);
+      Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
+      break;
     default:
       if (XToolkit.DEBUG)
         System.err.println("Unhandled X event: " + xEvent);
@@ -280,7 +386,7 @@ public class XEventPump
   {
     Input keyEvent = (Input) xEvent;
     int xKeyCode = keyEvent.detail();
-    int xMods = keyEvent.state();
+    int xMods = keyEvent.getState();
     int keyCode = KeyboardMapping.mapToKeyCode(xEvent.display.input, xKeyCode,
                                                xMods);
     char keyChar = KeyboardMapping.mapToKeyChar(xEvent.display.input, xKeyCode,
@@ -334,5 +440,47 @@ public class XEventPump
 
     return 0;        
   }
+  
+  /**
+   * Finds the heavyweight mouse event target.
+   *
+   * @param src the original source of the event
+   *
+   * @param pt the event coordinates
+   *
+   * @return the real mouse event target
+   */
+  private Component findMouseEventTarget(Component src, int x, int y)
+  {
+    Component found = null;
+    if (src instanceof Container)
+      {
+        Container cont = (Container) src;
+        int numChildren = cont.getComponentCount();
+        for (int i = 0; i < numChildren && found == null; i++)
+          {
+            Component child = cont.getComponent(i);
+            if (child != null && child.isVisible()
+                && child.contains(x - child.getX(), y - child.getY()))
+              {
+                if (child instanceof Container)
+                  {
+                    Component deeper = findMouseEventTarget(child,
+                                                            x - child.getX(),
+                                                            y - child.getY());
+                    if (deeper != null)
+                      found = deeper;
+                  }
+                else if (! child.isLightweight())
+                  found = child;
+              }
+          }
+      }
+
+    // Consider the source itself.
+    if (found == null && src.contains(x, y) && ! src.isLightweight())
+      found = src;
 
+    return found;
+  }
 }
index 0a96a613b4e3d624b57b261aa5fd2184f6f084cf..4372c965ffe743ae549cbfbafe6ae5b789ee45a2 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.x;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.AWTError;
 import java.awt.Font;
 import java.awt.FontMetrics;
@@ -675,7 +677,7 @@ public class XFontPeer
    */
   static String encodeFont(String name, int style, int size)
   {
-    StringBuilder key = new StringBuilder();
+    CPStringBuilder key = new CPStringBuilder();
     key.append(validName(name));
     key.append('.');
     switch (style)
index 7424dc671ed775e070ce7275564940added7e6fd..a355c68b383137e328d649617f20371fbc3ca45c 100644 (file)
@@ -93,8 +93,7 @@ public class XFramePeer
 
   public int getState()
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    return 0;
   }
 
   public void setState(int state)
index 95129666a054306cafb04500f40bfe4183192c2e..0339a424dacd43ac53b2bbb4e5c57be0117bec6a 100644 (file)
@@ -313,7 +313,7 @@ public class XGraphics2D
       {
         // TODO: Optimize for different standard bit-depths.
         Color c = (Color) p;
-        XToolkit tk = (XToolkit) Toolkit.getDefaultToolkit();
+       /* XToolkit tk = (XToolkit) Toolkit.getDefaultToolkit();
         HashMap colorMap = tk.colorMap;
         gnu.x11.Color col = (gnu.x11.Color) colorMap.get(c);
         if (col == null)
@@ -323,8 +323,10 @@ public class XGraphics2D
                                    c.getGreen() * 256,
                                    c.getBlue() * 256);
             colorMap.put(c, col);
-          }
-        xgc.set_foreground(col);
+          }*/
+        //xgc.set_foreground(col);
+        
+        xgc.set_foreground(c.getRGB());
         foreground = c;
       }
   }
@@ -392,9 +394,23 @@ public class XGraphics2D
                 xdrawable.put_image(xgc, zpixmap, x, y);
                 imageCache.put(image, zpixmap);
               } else {
-                ZPixmap zpixmap = (ZPixmap) xdrawable.image(x, y, w, h,
-                                                            0xffffffff,
-                                           gnu.x11.image.Image.Format.ZPIXMAP);
+                
+                // TODO optimize reusing the rectangles
+                Rectangle source =
+                  new Rectangle(0, 0, xdrawable.width, xdrawable.height);
+                Rectangle target = new Rectangle(x, y, w, h);
+                
+                Rectangle destination = source.intersection(target); 
+                
+                x = destination.x;
+                y = destination.y;
+                w = destination.width;
+                h = destination.height;
+                
+                ZPixmap zpixmap =
+                  (ZPixmap) xdrawable.image(x, y, w, h,
+                                            0xffffffff,
+                                            gnu.x11.image.Image.Format.ZPIXMAP);
                 for (int yy = 0; yy < h; yy++)
                   {
                     for (int xx = 0; xx < w; xx++)
index 85f72a4eff46129364ba4aede6568d427f549110..becb92a7d72c6a1421b235bb823df2f83e4d62d6 100644 (file)
@@ -146,8 +146,7 @@ public class XGraphicsConfiguration
 
   public AffineTransform getDefaultTransform()
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    return new AffineTransform();
   }
 
   public AffineTransform getNormalizingTransform()
@@ -158,8 +157,10 @@ public class XGraphicsConfiguration
 
   public Rectangle getBounds()
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    Display d = device.getDisplay();
+    Screen screen = d.default_screen;
+    
+    return new Rectangle(0, 0, screen.width, screen.height); 
   }
 
   /**
index eff5902d22ef55974674f33903ffff17e029ac8b..ca37f3adbbd1bb4d288f421ef5d07ad6b1650962 100644 (file)
@@ -39,6 +39,7 @@ package gnu.java.awt.peer.x;
 
 import gnu.classpath.SystemProperties;
 import gnu.x11.Display;
+import gnu.x11.EscherServerConnectionException;
 
 import java.awt.GraphicsConfiguration;
 import java.awt.GraphicsDevice;
@@ -127,9 +128,16 @@ public class XGraphicsDevice
             Socket socket = createLocalSocket();
             if (socket != null)
               {
-                display = new Display(socket, "localhost",
-                                      displayName.display_no,
-                                      displayName.screen_no);
+                try
+                  {
+                    display = new Display(socket, "localhost",
+                                          displayName.display_no,
+                                          displayName.screen_no);
+                  }
+                catch (EscherServerConnectionException e)
+                  {
+                    throw new RuntimeException(e.getCause()); 
+                  }
               }
           }
 
@@ -137,8 +145,17 @@ public class XGraphicsDevice
         // when the connection is probably remote or when we couldn't load
         // the LocalSocket class stuff.
         if (display == null)
-          display = new Display(displayName);
-
+          {
+            try
+              {
+                display = new Display(displayName);
+              }
+            catch (EscherServerConnectionException e)
+              {
+                throw new RuntimeException(e.getCause());
+              }
+          }
+        
         eventPump = new XEventPump(display);
       }
     return display;
index 7d4636b95da91688492cc76d8eeaa4bdbe04487d..fa94d00c131c569f5c5fe2208173f718eba46e63 100644 (file)
@@ -39,13 +39,19 @@ exception statement from your version. */
 package gnu.java.awt.peer.x;
 
 import gnu.x11.Pixmap;
+import gnu.x11.image.ZPixmap;
 
 import java.awt.Graphics;
 import java.awt.GraphicsEnvironment;
 import java.awt.Image;
+
+import java.awt.image.ColorModel;
+import java.awt.image.ImageConsumer;
 import java.awt.image.ImageObserver;
 import java.awt.image.ImageProducer;
+
 import java.util.Hashtable;
+import java.util.Vector;
 
 public class XImage
   extends Image
@@ -75,8 +81,7 @@ public class XImage
 
   public ImageProducer getSource()
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    return new XImageProducer(); 
   }
 
   /**
@@ -108,4 +113,66 @@ public class XImage
   {
     pixmap.free();
   }
+  
+  protected class XImageProducer implements ImageProducer
+  {
+    private Vector<ImageConsumer> consumers = new Vector<ImageConsumer>();
+    
+    public void addConsumer(ImageConsumer ic)
+    {
+      if (ic != null && !isConsumer(ic))
+        this.consumers.add(ic);
+    }
+
+    public boolean isConsumer(ImageConsumer ic)
+    {
+      return this.consumers.contains(ic);
+    }
+
+    public void removeConsumer(ImageConsumer ic)
+    {
+      if (ic != null)
+        this.consumers.remove(ic);
+    }
+
+    public void requestTopDownLeftRightResend(ImageConsumer ic)
+    {
+      /* just ignore the call */
+    }
+
+    public void startProduction(ImageConsumer ic)
+    {
+      this.addConsumer(ic);
+
+      for (ImageConsumer consumer : this.consumers)
+        {
+          int width = XImage.this.getWidth(null);
+          int height = XImage.this.getHeight(null);
+          
+          XGraphics2D graphics = (XGraphics2D) getGraphics();
+          ColorModel model = graphics.getColorModel();
+          graphics.dispose();
+          
+          ZPixmap zpixmap = (ZPixmap)
+            XImage.this.pixmap.image(0, 0, width, height,
+                                     0xffffffff,
+                                     gnu.x11.image.Image.Format.ZPIXMAP);
+          
+          int size = zpixmap.get_data_length();
+          System.out.println("size: " + size + ", w = " + width + ", h = " + height);
+          
+          int [] pixel = new int[size];
+          for (int i = 0; i < size; i++)
+            pixel[i] = zpixmap.get_data_element(i);
+
+          consumer.setHints(ImageConsumer.SINGLEPASS);
+          
+          consumer.setDimensions(width, height);
+          consumer.setPixels(0, 0, width, height, model, pixel, 0, width);
+          consumer.imageComplete(ImageConsumer.STATICIMAGEDONE);
+        }
+      
+      System.out.println("done!");
+    }
+  }
 }
index c1724aad55d2ed331d8e498a555dd67feab7ef10..af12574a15027c24653ae4923a4050f5df975229 100644 (file)
@@ -54,6 +54,7 @@ import java.awt.Frame;
 import java.awt.GraphicsConfiguration;
 import java.awt.GraphicsDevice;
 import java.awt.GraphicsEnvironment;
+import java.awt.HeadlessException;
 import java.awt.Image;
 import java.awt.Label;
 import java.awt.List;
@@ -120,11 +121,16 @@ import gnu.java.awt.ClasspathToolkit;
 import gnu.java.awt.EmbeddedWindow;
 import gnu.java.awt.font.OpenTypeFontPeer;
 import gnu.java.awt.image.ImageConverter;
+import gnu.java.awt.java2d.AbstractGraphics2D;
 import gnu.java.awt.peer.ClasspathFontPeer;
 import gnu.java.awt.peer.EmbeddedWindowPeer;
+import gnu.java.awt.peer.swing.SwingButtonPeer;
 import gnu.java.awt.peer.swing.SwingCanvasPeer;
+import gnu.java.awt.peer.swing.SwingCheckboxPeer;
 import gnu.java.awt.peer.swing.SwingLabelPeer;
 import gnu.java.awt.peer.swing.SwingPanelPeer;
+import gnu.java.awt.peer.swing.SwingTextAreaPeer;
+import gnu.java.awt.peer.swing.SwingTextFieldPeer;
 
 public class XToolkit
   extends ClasspathToolkit
@@ -232,18 +238,24 @@ public class XToolkit
 
   protected ButtonPeer createButton(Button target)
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    checkHeadLess("No ButtonPeer can be created in an headless" +
+                     "graphics environment.");
+    
+    return new SwingButtonPeer(target);
   }
 
   protected TextFieldPeer createTextField(TextField target)
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    checkHeadLess("No TextFieldPeer can be created in an headless " +
+                     "graphics environment.");
+    
+    return new SwingTextFieldPeer(target);
   }
 
   protected LabelPeer createLabel(Label target)
   {
+    checkHeadLess("No LabelPeer can be created in an headless graphics " +
+                     "environment.");
     return new SwingLabelPeer(target);
   }
 
@@ -255,8 +267,10 @@ public class XToolkit
 
   protected CheckboxPeer createCheckbox(Checkbox target)
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    checkHeadLess("No CheckboxPeer can be created in an headless graphics " +
+                  "environment.");
+    
+    return new SwingCheckboxPeer(target);
   }
 
   protected ScrollbarPeer createScrollbar(Scrollbar target)
@@ -273,8 +287,10 @@ public class XToolkit
 
   protected TextAreaPeer createTextArea(TextArea target)
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    checkHeadLess("No TextAreaPeer can be created in an headless graphics " +
+                     "environment.");
+    
+    return new SwingTextAreaPeer(target);
   }
 
   protected ChoicePeer createChoice(Choice target)
@@ -514,14 +530,14 @@ public class XToolkit
 
   public boolean prepareImage(Image image, int width, int height, ImageObserver observer)
   {
-    // Images are loaded synchronously, so we don't bother and return true.
-    return true;
+    Image scaled = AbstractGraphics2D.prepareImage(image, width, height);
+    return checkImage(image, width, height, observer) == ImageObserver.ALLBITS;
   }
 
   public int checkImage(Image image, int width, int height, ImageObserver observer)
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    // Images are loaded synchronously, so we don't bother and return true.
+    return ImageObserver.ALLBITS;
   }
 
   public Image createImage(ImageProducer producer)
@@ -638,4 +654,14 @@ public class XToolkit
     return false;
   }
 
+  private void checkHeadLess(String message) throws HeadlessException
+  {
+    if(GraphicsEnvironment.isHeadless())
+      {
+        if(message == null)
+          message = "This method cannot be called in headless mode.";
+      
+        throw new HeadlessException(message);
+      }
+  }
 }
index f9184ed1cdee728f5dd7ebe13bec05a0fd8a5054..930247da5c2f6067d3301877c7de6baa20ac71f7 100644 (file)
@@ -71,21 +71,16 @@ public class XWindowPeer
   private static int standardSelect = Event.BUTTON_PRESS_MASK
                                       | Event.BUTTON_RELEASE_MASK
                                       | Event.POINTER_MOTION_MASK
-                                      //| Event.RESIZE_REDIRECT_MASK
+                                     // | Event.RESIZE_REDIRECT_MASK //
                                       | Event.EXPOSURE_MASK
-                                      //| Event.PROPERTY_CHANGE_MASK
-                                      | Event.STRUCTURE_NOTIFY_MASK
+                                      | Event.PROPERTY_CHANGE_MASK
+                                      //| Event.STRUCTURE_NOTIFY_MASK
+                                      //| Event.SUBSTRUCTURE_NOTIFY_MASK
                                       | Event.KEY_PRESS_MASK
                                       | Event.KEY_RELEASE_MASK
+                                      //| Event.VISIBILITY_CHANGE_MASK //
                                       ;
-
-  /**
-   * Indicates if we are in callback mode, that is when a property (like size)
-   * is changed in reponse to a request from the X server and doesn't need
-   * to be propagated back to the X server.
-   */
-  boolean callback = false;
-
+  
   /**
    * The X window.
    */
@@ -110,8 +105,10 @@ public class XWindowPeer
     int h = Math.max(window.getHeight(), 1);
     xwindow = new Window(dev.getDisplay().default_root, x, y, w, h, 0, atts);
     xwindow.select_input(standardSelect);
+    
     dev.getEventPump().registerWindow(xwindow, window);
-
+    xwindow.set_wm_delete_window();
+    
     boolean undecorated;
     if (awtComponent instanceof Frame)
       {
@@ -269,14 +266,9 @@ public class XWindowPeer
    */
   public void reshape(int x, int y, int width, int height)
   {
-    // Need to substract insets because AWT size is including insets,
-    // and X size is excluding insets.
-    if (! callback)
-      {
-        Insets i = insets;
-        xwindow.move_resize(x - i.left, y - i.right, width - i.left - i.right,
-                            height - i.top - i.bottom);
-      }
+    Insets i = insets;
+    xwindow.move_resize(x - i.left, y - i.right, width - i.left - i.right,
+                        height - i.top - i.bottom);
   }
 
   public Insets insets()
@@ -303,4 +295,9 @@ public class XWindowPeer
     XGraphicsDevice dev = XToolkit.getDefaultDevice();
     dev.getEventPump().unregisterWindow(xwindow);
   }
+  
+  public Window getXwindow()
+  {
+    return xwindow;
+  }
 }
diff --git a/libjava/classpath/gnu/java/lang/CPStringBuilder.java b/libjava/classpath/gnu/java/lang/CPStringBuilder.java
new file mode 100644 (file)
index 0000000..27e7d2c
--- /dev/null
@@ -0,0 +1,1161 @@
+/* ClasspathStringBuffer.java -- Growable strings without locking or copying
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+   Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang;
+
+import gnu.classpath.SystemProperties;
+
+import java.io.Serializable;
+
+/**
+ * This class is based on java.lang.AbstractStringBuffer but
+ * without the copying of the string by toString.
+ * If you modify this, please consider also modifying that code.
+ * This code is not thread-safe; limit its use to internal use within
+ * methods.
+ */
+public final class CPStringBuilder
+  implements Serializable, CharSequence, Appendable
+{
+
+  /**
+   * Index of next available character (and thus the size of the current
+   * string contents).  Note that this has permissions set this way so that
+   * String can get the value.
+   *
+   * @serial the number of characters in the buffer
+   */
+  private int count;
+
+  /**
+   * The buffer.  Note that this has permissions set this way so that String
+   * can get the value.
+   *
+   * @serial the buffer
+   */
+  private char[] value;
+
+  /**
+   * A flag to denote whether the string being created has been
+   * allocated to a {@link String} object.  On construction,
+   * the character array, {@link #value} is referenced only
+   * by this class.  Once {@link #toString()},
+   * {@link #substring(int)} or {@link #substring(int,int)}
+   * are called, the array is also referenced by a {@link String}
+   * object and this flag is set.  Subsequent modifications to
+   * this buffer cause a new array to be allocated and the flag
+   * to be reset.
+   */
+  private boolean allocated = false;
+
+  /**
+   * The default capacity of a buffer.
+   * This can be configured using gnu.classpath.cpstringbuilder.capacity
+   */
+  private static final int DEFAULT_CAPACITY;
+
+  static
+  {
+    String cap =
+      SystemProperties.getProperty("gnu.classpath.cpstringbuilder.capacity");
+    if (cap == null)
+      DEFAULT_CAPACITY = 32;
+    else
+      DEFAULT_CAPACITY = Integer.parseInt(cap);
+  }
+
+  /**
+   * Create a new CPStringBuilder with the default capacity.
+   */
+  public CPStringBuilder()
+  {
+    this(DEFAULT_CAPACITY);
+  }
+
+  /**
+   * Create an empty <code>CPStringBuilder</code> with the specified initial
+   * capacity.
+   *
+   * @param capacity the initial capacity
+   * @throws NegativeArraySizeException if capacity is negative
+   */
+  public CPStringBuilder(int capacity)
+  {
+    value = new char[capacity];
+  }
+
+  /**
+   * Create a new <code>CPStringBuilder</code> with the characters in the
+   * specified <code>String</code>. Initial capacity will be the size of the
+   * String plus the default capacity.
+   *
+   * @param str the <code>String</code> to convert
+   * @throws NullPointerException if str is null
+   */
+  public CPStringBuilder(String str)
+  {
+    count = str.length();
+    value = new char[count + DEFAULT_CAPACITY];
+    str.getChars(0, count, value, 0);
+  }
+
+  /**
+   * Create a new <code>CPStringBuilder</code> with the characters in the
+   * specified <code>StringBuffer</code>. Initial capacity will be the size of the
+   * String plus the default capacity.
+   *
+   * @param str the <code>String</code> to convert
+   * @throws NullPointerException if str is null
+   */
+  public CPStringBuilder(StringBuffer str)
+  {
+    count = str.length();
+    value = new char[count + DEFAULT_CAPACITY];
+    str.getChars(0, count, value, 0);
+  }
+
+  /**
+   * Create a new <code>CPStringBuilder</code> with the characters in the
+   * specified <code>StringBuilder</code>. Initial capacity will be the size of the
+   * String plus the default capacity.
+   *
+   * @param str the <code>String</code> to convert
+   * @throws NullPointerException if str is null
+   */
+  public CPStringBuilder(StringBuilder str)
+  {
+    count = str.length();
+    value = new char[count + DEFAULT_CAPACITY];
+    str.getChars(0, count, value, 0);
+  }
+
+  /**
+   * Create a new <code>CPStringBuilder</code> with the characters in the
+   * specified <code>CharSequence</code>. Initial capacity will be the
+   * length of the sequence plus the default capacity; if the sequence
+   * reports a length less than or equal to 0, then the initial capacity
+   * will be the default.
+   *
+   * @param seq the initializing <code>CharSequence</code>
+   * @throws NullPointerException if str is null
+   * @since 1.5
+   */
+  public CPStringBuilder(CharSequence seq)
+  {
+    int len = seq.length();
+    count = len <= 0 ? 0 : len;
+    value = new char[count + DEFAULT_CAPACITY];
+    for (int i = 0; i < len; ++i)
+      value[i] = seq.charAt(i);
+  }
+
+  /**
+   * Set the length of this StringBuffer. If the new length is greater than
+   * the current length, all the new characters are set to '\0'. If the new
+   * length is less than the current length, the first <code>newLength</code>
+   * characters of the old array will be preserved, and the remaining
+   * characters are truncated.
+   *
+   * @param newLength the new length
+   * @throws IndexOutOfBoundsException if the new length is negative
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   * @see #length()
+   */
+  public void setLength(int newLength)
+  {
+    if (newLength < 0)
+      throw new StringIndexOutOfBoundsException(newLength);
+
+    int valueLength = value.length;
+
+    /* Always call ensureCapacity in order to preserve
+       copy-on-write semantics, except when the position
+       is simply being reset
+    */
+    if (newLength > 0)
+      ensureCapacity(newLength);
+
+    if (newLength < valueLength)
+      {
+        /* If the StringBuffer's value just grew, then we know that
+           value is newly allocated and the region between count and
+           newLength is filled with '\0'.  */
+       count = newLength;
+      }
+    else
+      {
+       /* The StringBuffer's value doesn't need to grow.  However,
+          we should clear out any cruft that may exist.  */
+       while (count < newLength)
+          value[count++] = '\0';
+      }
+  }
+
+  /**
+   * Get the character at the specified index.
+   *
+   * @param index the index of the character to get, starting at 0
+   * @return the character at the specified index
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   */
+  public char charAt(int index)
+  {
+    if (index < 0 || index >= count)
+      throw new StringIndexOutOfBoundsException(index);
+    return value[index];
+  }
+
+  /**
+   * Get the code point at the specified index.  This is like #charAt(int),
+   * but if the character is the start of a surrogate pair, and the
+   * following character completes the pair, then the corresponding
+   * supplementary code point is returned.
+   * @param index the index of the codepoint to get, starting at 0
+   * @return the codepoint at the specified index
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   * @since 1.5
+   */
+  public int codePointAt(int index)
+  {
+    return Character.codePointAt(value, index, count);
+  }
+
+  /**
+   * Get the code point before the specified index.  This is like
+   * #codePointAt(int), but checks the characters at <code>index-1</code> and
+   * <code>index-2</code> to see if they form a supplementary code point.
+   * @param index the index just past the codepoint to get, starting at 0
+   * @return the codepoint at the specified index
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   * @since 1.5
+   */
+  public int codePointBefore(int index)
+  {
+    // Character.codePointBefore() doesn't perform this check.  We
+    // could use the CharSequence overload, but this is just as easy.
+    if (index >= count)
+      throw new IndexOutOfBoundsException();
+    return Character.codePointBefore(value, index, 1);
+  }
+
+  /**
+   * Get the specified array of characters. <code>srcOffset - srcEnd</code>
+   * characters will be copied into the array you pass in.
+   *
+   * @param srcOffset the index to start copying from (inclusive)
+   * @param srcEnd the index to stop copying from (exclusive)
+   * @param dst the array to copy into
+   * @param dstOffset the index to start copying into
+   * @throws NullPointerException if dst is null
+   * @throws IndexOutOfBoundsException if any source or target indices are
+   *         out of range (while unspecified, source problems cause a
+   *         StringIndexOutOfBoundsException, and dest problems cause an
+   *         ArrayIndexOutOfBoundsException)
+   * @see System#arraycopy(Object, int, Object, int, int)
+   */
+  public void getChars(int srcOffset, int srcEnd,
+                      char[] dst, int dstOffset)
+  {
+    if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
+      throw new StringIndexOutOfBoundsException();
+    System.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
+  }
+
+  /**
+   * Set the character at the specified index.
+   *
+   * @param index the index of the character to set starting at 0
+   * @param ch the value to set that character to
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   */
+  public void setCharAt(int index, char ch)
+  {
+    if (index < 0 || index >= count)
+      throw new StringIndexOutOfBoundsException(index);
+    // Call ensureCapacity to enforce copy-on-write.
+    ensureCapacity(count);
+    value[index] = ch;
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param obj the <code>Object</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(Object)
+   * @see #append(String)
+   */
+  public CPStringBuilder append(Object obj)
+  {
+    return append(String.valueOf(obj));
+  }
+
+  /**
+   * Append the <code>String</code> to this <code>StringBuffer</code>. If
+   * str is null, the String "null" is appended.
+   *
+   * @param str the <code>String</code> to append
+   * @return this <code>StringBuffer</code>
+   */
+  public CPStringBuilder append(String str)
+  {
+    if (str == null)
+      str = "null";
+    int len = str.length();
+    ensureCapacity(count + len);
+    str.getChars(0, len, value, count);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Append the <code>StringBuilder</code> value of the argument to this
+   * <code>StringBuilder</code>. This behaves the same as
+   * <code>append((Object) stringBuffer)</code>, except it is more efficient.
+   *
+   * @param stringBuffer the <code>StringBuilder</code> to convert and append
+   * @return this <code>StringBuilder</code>
+   * @see #append(Object)
+   */
+  public CPStringBuilder append(StringBuffer stringBuffer)
+  {
+    if (stringBuffer == null)
+      return append("null");
+    synchronized (stringBuffer)
+      {
+       int len = stringBuffer.length();
+       ensureCapacity(count + len);
+       stringBuffer.getChars(0, len, value, count);
+       count += len;
+      }
+    return this;
+  }
+
+  /**
+   * Append the <code>char</code> array to this <code>StringBuffer</code>.
+   * This is similar (but more efficient) than
+   * <code>append(new String(data))</code>, except in the case of null.
+   *
+   * @param data the <code>char[]</code> to append
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>str</code> is <code>null</code>
+   * @see #append(char[], int, int)
+   */
+  public CPStringBuilder append(char[] data)
+  {
+    return append(data, 0, data.length);
+  }
+
+  /**
+   * Append part of the <code>char</code> array to this
+   * <code>StringBuffer</code>. This is similar (but more efficient) than
+   * <code>append(new String(data, offset, count))</code>, except in the case
+   * of null.
+   *
+   * @param data the <code>char[]</code> to append
+   * @param offset the start location in <code>str</code>
+   * @param count the number of characters to get from <code>str</code>
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>str</code> is <code>null</code>
+   * @throws IndexOutOfBoundsException if offset or count is out of range
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   */
+  public CPStringBuilder append(char[] data, int offset, int count)
+  {
+    if (offset < 0 || count < 0 || offset > data.length - count)
+      throw new StringIndexOutOfBoundsException();
+    ensureCapacity(this.count + count);
+    System.arraycopy(data, offset, value, this.count, count);
+    this.count += count;
+    return this;
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param bool the <code>boolean</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(boolean)
+   */
+  public CPStringBuilder append(boolean bool)
+  {
+    return append(bool ? "true" : "false");
+  }
+
+  /**
+   * Append the <code>char</code> to this <code>StringBuffer</code>.
+   *
+   * @param ch the <code>char</code> to append
+   * @return this <code>StringBuffer</code>
+   */
+  public CPStringBuilder append(char ch)
+  {
+    ensureCapacity(count + 1);
+    value[count++] = ch;
+    return this;
+  }
+
+  /**
+   * Append the characters in the <code>CharSequence</code> to this
+   * buffer.
+   *
+   * @param seq the <code>CharSequence</code> providing the characters
+   * @return this <code>StringBuffer</code>
+   * @since 1.5
+   */
+  public CPStringBuilder append(CharSequence seq)
+  {
+    return append(seq, 0, seq.length());
+  }
+
+  /**
+   * Append some characters from the <code>CharSequence</code> to this
+   * buffer.  If the argument is null, the four characters "null" are
+   * appended.
+   *
+   * @param seq the <code>CharSequence</code> providing the characters
+   * @param start the starting index
+   * @param end one past the final index
+   * @return this <code>StringBuffer</code>
+   * @since 1.5
+   */
+  public CPStringBuilder append(CharSequence seq, int start, int end)
+  {
+    if (seq == null)
+      return append("null");
+    if (end - start > 0)
+      {
+       ensureCapacity(count + end - start);
+       for (; start < end; ++start)
+         value[count++] = seq.charAt(start);
+      }
+    return this;
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param inum the <code>int</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(int)
+   */
+  // This is native in libgcj, for efficiency.
+  public CPStringBuilder append(int inum)
+  {
+    return append(String.valueOf(inum));
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param lnum the <code>long</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(long)
+   */
+  public CPStringBuilder append(long lnum)
+  {
+    return append(Long.toString(lnum, 10));
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param fnum the <code>float</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(float)
+   */
+  public CPStringBuilder append(float fnum)
+  {
+    return append(Float.toString(fnum));
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param dnum the <code>double</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(double)
+   */
+  public CPStringBuilder append(double dnum)
+  {
+    return append(Double.toString(dnum));
+  }
+
+  /**
+   * Append the code point to this <code>StringBuffer</code>.
+   * This is like #append(char), but will append two characters
+   * if a supplementary code point is given.
+   *
+   * @param code the code point to append
+   * @return this <code>StringBuffer</code>
+   * @see Character#toChars(int, char[], int)
+   * @since 1.5
+   */
+  public CPStringBuilder appendCodePoint(int code)
+  {
+    int len = Character.charCount(code);
+    ensureCapacity(count + len);
+    Character.toChars(code, value, count);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Delete characters from this <code>StringBuffer</code>.
+   * <code>delete(10, 12)</code> will delete 10 and 11, but not 12. It is
+   * harmless for end to be larger than length().
+   *
+   * @param start the first character to delete
+   * @param end the index after the last character to delete
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+   * @since 1.2
+   */
+  public CPStringBuilder delete(int start, int end)
+  {
+    if (start < 0 || start > count || start > end)
+      throw new StringIndexOutOfBoundsException(start);
+    if (end > count)
+      end = count;
+    ensureCapacity(count);
+    if (count - end != 0)
+      System.arraycopy(value, end, value, start, count - end);
+    count -= end - start;
+    return this;
+  }
+
+  /**
+   * Delete a character from this <code>StringBuffer</code>.
+   *
+   * @param index the index of the character to delete
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if index is out of bounds
+   * @since 1.2
+   */
+  public CPStringBuilder deleteCharAt(int index)
+  {
+    return delete(index, index + 1);
+  }
+
+  /**
+   * Replace characters between index <code>start</code> (inclusive) and
+   * <code>end</code> (exclusive) with <code>str</code>. If <code>end</code>
+   * is larger than the size of this StringBuffer, all characters after
+   * <code>start</code> are replaced.
+   *
+   * @param start the beginning index of characters to delete (inclusive)
+   * @param end the ending index of characters to delete (exclusive)
+   * @param str the new <code>String</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+   * @throws NullPointerException if str is null
+   * @since 1.2
+   */
+  public CPStringBuilder replace(int start, int end, String str)
+  {
+    if (start < 0 || start > count || start > end)
+      throw new StringIndexOutOfBoundsException(start);
+
+    int len = str.length();
+    // Calculate the difference in 'count' after the replace.
+    int delta = len - (end > count ? count : end) + start;
+    ensureCapacity(count + delta);
+
+    if (delta != 0 && end < count)
+      System.arraycopy(value, end, value, end + delta, count - end);
+
+    str.getChars(0, len, value, start);
+    count += delta;
+    return this;
+  }
+
+  /**
+   * Insert a subarray of the <code>char[]</code> argument into this
+   * <code>StringBuffer</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param str the <code>char[]</code> to insert
+   * @param str_offset the index in <code>str</code> to start inserting from
+   * @param len the number of characters to insert
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>str</code> is <code>null</code>
+   * @throws StringIndexOutOfBoundsException if any index is out of bounds
+   * @since 1.2
+   */
+  public CPStringBuilder insert(int offset, char[] str, int str_offset, int len)
+  {
+    if (offset < 0 || offset > count || len < 0
+        || str_offset < 0 || str_offset > str.length - len)
+      throw new StringIndexOutOfBoundsException();
+    ensureCapacity(count + len);
+    System.arraycopy(value, offset, value, offset + len, count - offset);
+    System.arraycopy(str, str_offset, value, offset, len);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param obj the <code>Object</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @exception StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(Object)
+   */
+  public CPStringBuilder insert(int offset, Object obj)
+  {
+    return insert(offset, obj == null ? "null" : obj.toString());
+  }
+
+  /**
+   * Insert the <code>String</code> argument into this
+   * <code>StringBuffer</code>. If str is null, the String "null" is used
+   * instead.
+   *
+   * @param offset the place to insert in this buffer
+   * @param str the <code>String</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   */
+  public CPStringBuilder insert(int offset, String str)
+  {
+    if (offset < 0 || offset > count)
+      throw new StringIndexOutOfBoundsException(offset);
+    if (str == null)
+      str = "null";
+    int len = str.length();
+    ensureCapacity(count + len);
+    System.arraycopy(value, offset, value, offset + len, count - offset);
+    str.getChars(0, len, value, offset);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Insert the <code>CharSequence</code> argument into this
+   * <code>StringBuffer</code>.  If the sequence is null, the String
+   * "null" is used instead.
+   *
+   * @param offset the place to insert in this buffer
+   * @param sequence the <code>CharSequence</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws IndexOutOfBoundsException if offset is out of bounds
+   * @since 1.5
+   */
+  public CPStringBuilder insert(int offset, CharSequence sequence)
+  {
+    if (sequence == null)
+      sequence = "null";
+    return insert(offset, sequence, 0, sequence.length());
+  }
+
+  /**
+   * Insert a subsequence of the <code>CharSequence</code> argument into this
+   * <code>StringBuffer</code>.  If the sequence is null, the String
+   * "null" is used instead.
+   *
+   * @param offset the place to insert in this buffer
+   * @param sequence the <code>CharSequence</code> to insert
+   * @param start the starting index of the subsequence
+   * @param end one past the ending index of the subsequence
+   * @return this <code>StringBuffer</code>
+   * @throws IndexOutOfBoundsException if offset, start,
+   * or end are out of bounds
+   * @since 1.5
+   */
+  public CPStringBuilder insert(int offset, CharSequence sequence, int start, int end)
+  {
+    if (sequence == null)
+      sequence = "null";
+    if (start < 0 || end < 0 || start > end || end > sequence.length())
+      throw new IndexOutOfBoundsException();
+    int len = end - start;
+    ensureCapacity(count + len);
+    System.arraycopy(value, offset, value, offset + len, count - offset);
+    for (int i = start; i < end; ++i)
+      value[offset++] = sequence.charAt(i);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Insert the <code>char[]</code> argument into this
+   * <code>StringBuffer</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param data the <code>char[]</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>data</code> is <code>null</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see #insert(int, char[], int, int)
+   */
+  public CPStringBuilder insert(int offset, char[] data)
+  {
+    return insert(offset, data, 0, data.length);
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param bool the <code>boolean</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(boolean)
+   */
+  public CPStringBuilder insert(int offset, boolean bool)
+  {
+    return insert(offset, bool ? "true" : "false");
+  }
+
+  /**
+   * Insert the <code>char</code> argument into this <code>StringBuffer</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param ch the <code>char</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   */
+  public CPStringBuilder insert(int offset, char ch)
+  {
+    if (offset < 0 || offset > count)
+      throw new StringIndexOutOfBoundsException(offset);
+    ensureCapacity(count + 1);
+    System.arraycopy(value, offset, value, offset + 1, count - offset);
+    value[offset] = ch;
+    count++;
+    return this;
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param inum the <code>int</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(int)
+   */
+  public CPStringBuilder insert(int offset, int inum)
+  {
+    return insert(offset, String.valueOf(inum));
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param lnum the <code>long</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(long)
+   */
+  public CPStringBuilder insert(int offset, long lnum)
+  {
+    return insert(offset, Long.toString(lnum, 10));
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param fnum the <code>float</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(float)
+   */
+  public CPStringBuilder insert(int offset, float fnum)
+  {
+    return insert(offset, Float.toString(fnum));
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param dnum the <code>double</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(double)
+   */
+  public CPStringBuilder insert(int offset, double dnum)
+  {
+    return insert(offset, Double.toString(dnum));
+  }
+
+  /**
+   * Finds the first instance of a substring in this StringBuilder.
+   *
+   * @param str String to find
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @see #indexOf(String, int)
+   */
+  public int indexOf(String str)
+  {
+    return indexOf(str, 0);
+  }
+
+  /**
+   * Finds the first instance of a String in this StringBuffer, starting at
+   * a given index.  If starting index is less than 0, the search starts at
+   * the beginning of this String.  If the starting index is greater than the
+   * length of this String, or the substring is not found, -1 is returned.
+   *
+   * @param str String to find
+   * @param fromIndex index to start the search
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @since 1.4
+   */
+  public int indexOf(String str, int fromIndex)
+  {
+    if (fromIndex < 0)
+      fromIndex = 0;
+    int olength = str.length();
+    int limit = count - olength;
+    String s = VMCPStringBuilder.toString(value, 0, count);
+    for (; fromIndex <= limit; ++fromIndex)
+      if (s.regionMatches(fromIndex, str, 0, olength))
+        return fromIndex;
+    return -1;
+  }
+
+  /**
+   * Finds the last instance of a substring in this StringBuffer.
+   *
+   * @param str String to find
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @see #lastIndexOf(String, int)
+   * @since 1.4
+   */
+  public int lastIndexOf(String str)
+  {
+    return lastIndexOf(str, count - str.length());
+  }
+
+  /**
+   * Finds the last instance of a String in this StringBuffer, starting at a
+   * given index.  If starting index is greater than the maximum valid index,
+   * then the search begins at the end of this String.  If the starting index
+   * is less than zero, or the substring is not found, -1 is returned.
+   *
+   * @param str String to find
+   * @param fromIndex index to start the search
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @since 1.4
+   */
+  public int lastIndexOf(String str, int fromIndex)
+  {
+    fromIndex = Math.min(fromIndex, count - str.length());
+    String s = VMCPStringBuilder.toString(value, 0, count);
+    int olength = str.length();
+    for ( ; fromIndex >= 0; fromIndex--)
+      if (s.regionMatches(fromIndex, str, 0, olength))
+        return fromIndex;
+    return -1;
+  }
+
+  /**
+   * Reverse the characters in this StringBuffer. The same sequence of
+   * characters exists, but in the reverse index ordering.
+   *
+   * @return this <code>StringBuffer</code>
+   */
+  public CPStringBuilder reverse()
+  {
+    // Call ensureCapacity to enforce copy-on-write.
+    ensureCapacity(count);
+    for (int i = count >> 1, j = count - i; --i >= 0; ++j)
+      {
+        char c = value[i];
+        value[i] = value[j];
+        value[j] = c;
+      }
+    return this;
+  }
+
+  /**
+   * This may reduce the amount of memory used by the StringBuffer,
+   * by resizing the internal array to remove unused space.  However,
+   * this method is not required to resize, so this behavior cannot
+   * be relied upon.
+   * @since 1.5
+   */
+  public void trimToSize()
+  {
+    int wouldSave = value.length - count;
+    // Some random heuristics: if we save less than 20 characters, who
+    // cares.
+    if (wouldSave < 20)
+      return;
+    // If we save more than 200 characters, shrink.
+    // If we save more than 1/4 of the buffer, shrink.
+    if (wouldSave > 200 || wouldSave * 4 > value.length)
+      allocateArray(count);
+  }
+
+  /**
+   * Return the number of code points between two indices in the
+   * <code>StringBuffer</code>.  An unpaired surrogate counts as a
+   * code point for this purpose.  Characters outside the indicated
+   * range are not examined, even if the range ends in the middle of a
+   * surrogate pair.
+   *
+   * @param start the starting index
+   * @param end one past the ending index
+   * @return the number of code points
+   * @since 1.5
+   */
+  public int codePointCount(int start, int end)
+  {
+    if (start < 0 || end >= count || start > end)
+      throw new StringIndexOutOfBoundsException();
+
+    int count = 0;
+    while (start < end)
+      {
+       char base = value[start];
+       if (base < Character.MIN_HIGH_SURROGATE
+           || base > Character.MAX_HIGH_SURROGATE
+           || start == end
+           || start == count
+           || value[start + 1] < Character.MIN_LOW_SURROGATE
+           || value[start + 1] > Character.MAX_LOW_SURROGATE)
+         {
+           // Nothing.
+         }
+       else
+         {
+           // Surrogate pair.
+           ++start;
+         }
+       ++start;
+       ++count;
+      }
+    return count;
+  }
+
+  /**
+   * Starting at the given index, this counts forward by the indicated
+   * number of code points, and then returns the resulting index.  An
+   * unpaired surrogate counts as a single code point for this
+   * purpose.
+   *
+   * @param start the starting index
+   * @param codePoints the number of code points
+   * @return the resulting index
+   * @since 1.5
+   */
+  public int offsetByCodePoints(int start, int codePoints)
+  {
+    while (codePoints > 0)
+      {
+       char base = value[start];
+       if (base < Character.MIN_HIGH_SURROGATE
+           || base > Character.MAX_HIGH_SURROGATE
+           || start == count
+           || value[start + 1] < Character.MIN_LOW_SURROGATE
+           || value[start + 1] > Character.MAX_LOW_SURROGATE)
+         {
+           // Nothing.
+         }
+       else
+         {
+           // Surrogate pair.
+           ++start;
+         }
+       ++start;
+       --codePoints;
+      }
+    return start;
+  }
+
+  /**
+   * Increase the capacity of this <code>StringBuilder</code>. This will
+   * ensure that an expensive growing operation will not occur until either
+   * <code>minimumCapacity</code> is reached or the array has been allocated.
+   * The buffer is grown to either <code>minimumCapacity * 2</code>, if
+   * the array has been allocated or the larger of <code>minimumCapacity</code> and 
+   * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+   *
+   * @param minimumCapacity the new capacity
+   * @see #length()
+   */
+  public void ensureCapacity(int minimumCapacity)
+  {
+    if (allocated || minimumCapacity > value.length)
+      {
+       if (minimumCapacity > value.length)
+         {
+           int max = value.length * 2 + 2;
+           minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
+         }
+       else
+         minimumCapacity *= 2;
+       allocateArray(minimumCapacity);
+      }
+  }
+
+  /**
+   * Allocates a new character array.  This method is triggered when
+   * a write is attempted after the array has been passed to a
+   * {@link String} object, so that the builder does not modify
+   * the immutable {@link String}.
+   *
+   * @param capacity the size of the new array.
+   */
+  private void allocateArray(int capacity)
+  {
+    char[] nb = new char[capacity];
+    System.arraycopy(value, 0, nb, 0, count);
+    value = nb;
+    allocated = false;
+  }
+    
+  /**
+   * Get the length of the <code>String</code> this <code>StringBuilder</code>
+   * would create. Not to be confused with the <em>capacity</em> of the
+   * <code>StringBuilder</code>.
+   *
+   * @return the length of this <code>StringBuilder</code>
+   * @see #capacity()
+   * @see #setLength(int)
+   */
+  public int length()
+  {
+    return count;
+  }
+
+  /**
+   * Creates a substring of this StringBuilder, starting at a specified index
+   * and ending at one character before a specified index. This is implemented
+   * the same as <code>substring(beginIndex, endIndex)</code>, to satisfy
+   * the CharSequence interface.
+   *
+   * @param beginIndex index to start at (inclusive, base 0)
+   * @param endIndex index to end at (exclusive)
+   * @return new String which is a substring of this StringBuilder
+   * @throws IndexOutOfBoundsException if beginIndex or endIndex is out of
+   *         bounds
+   * @see #substring(int, int)
+   */
+  public CharSequence subSequence(int beginIndex, int endIndex)
+  {
+    return substring(beginIndex, endIndex);
+  }
+
+  /**
+   * Creates a substring of this CPStringBuilder, starting at a specified index
+   * and ending at the end of this StringBuilder.
+   *
+   * @param beginIndex index to start substring (base 0)
+   * @return new String which is a substring of this StringBuilder
+   * @throws StringIndexOutOfBoundsException if beginIndex is out of bounds
+   * @see #substring(int, int)
+   */
+  public String substring(int beginIndex)
+  {
+    return substring(beginIndex, count);
+  }
+
+  /**
+   * Creates a substring of this CPStringBuilder, starting at a specified index
+   * and ending at one character before a specified index.
+   *
+   * @param beginIndex index to start at (inclusive, base 0)
+   * @param endIndex index to end at (exclusive)
+   * @return new String which is a substring of this StringBuilder
+   * @throws StringIndexOutOfBoundsException if beginIndex or endIndex is out
+   *         of bounds
+   */
+  public String substring(int beginIndex, int endIndex)
+  {
+    if (beginIndex < 0 || endIndex > count || endIndex < beginIndex)
+      throw new StringIndexOutOfBoundsException();
+    int len = endIndex - beginIndex;
+    if (len == 0)
+      return "";
+    allocated = true;
+    return VMCPStringBuilder.toString(value, beginIndex, len);
+  }
+
+  /**
+   * Convert this <code>CPStringBuilder</code> to a <code>String</code>. The
+   * String is composed of the characters currently in this StringBuilder. Note
+   * that the result is not a copy, so we flag this here and make sure to
+   * allocate a new array on the next write attempt (see {@link #ensureCapacity(int)}).
+   *
+   * @return the characters in this StringBuilder
+   */
+  public String toString()
+  {
+    allocated = true;
+    return VMCPStringBuilder.toString(value, 0, count);
+  }
+
+}
index 49dce21eaf9633adce6371bfc242e0768647d567..e190889dede28573623f68da09269ac1c13fee38 100644 (file)
@@ -102,7 +102,7 @@ public class ClassHelper
     String name = klass.getName();
     if (arrayCount == 0)
       return name;
-    StringBuilder b = new StringBuilder(name.length() + 2 * arrayCount);
+    CPStringBuilder b = new CPStringBuilder(name.length() + 2 * arrayCount);
     b.append(name);
     for (int i = 0; i < arrayCount; ++i)
       b.append("[]");
index 06bc9e4ab06d427f7d71c288e74e19ff2b49180b..e413c76c78e23d1a1d0906aacc284c0949560137 100644 (file)
@@ -38,7 +38,19 @@ exception statement from your version. */
 
 package gnu.java.lang.reflect;
 
-import java.lang.reflect.*;
+import gnu.java.lang.CPStringBuilder;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.GenericArrayType;
+import java.lang.reflect.GenericDeclaration;
+import java.lang.reflect.GenericSignatureFormatError;
+import java.lang.reflect.MalformedParameterizedTypeException;
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+import java.lang.reflect.WildcardType;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 
@@ -184,7 +196,7 @@ final class ParameterizedTypeImpl extends TypeImpl implements ParameterizedType
 
     public String toString()
     {
-        StringBuilder sb = new StringBuilder();
+        CPStringBuilder sb = new CPStringBuilder();
         if (owner != null)
         {
             sb.append(owner);
index 78c17183792109fb41f056a72c342e1363842a33..612058dbfe84bf17e23fc291e10a90b1540fcbce 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.lang.reflect;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.lang.reflect.Member;
@@ -239,7 +241,7 @@ public class TypeSignature
   public static String getEncodingOfMethod(Method m)
   {
     Class[] paramTypes = m.getParameterTypes();
-    StringBuilder buf = new StringBuilder("(");
+    CPStringBuilder buf = new CPStringBuilder("(");
     for (int i = 0; i < paramTypes.length; i++)
       buf.append(getEncodingOfClass(paramTypes[i].getName(), true));
     buf.append(')').append(getEncodingOfClass(m.getReturnType().getName(),
@@ -261,7 +263,7 @@ public class TypeSignature
   public static String getEncodingOfConstructor(Constructor c)
   {
     Class[] paramTypes = c.getParameterTypes();
-    StringBuilder buf = new StringBuilder("(");
+    CPStringBuilder buf = new CPStringBuilder("(");
     for (int i = 0; i < paramTypes.length; i++)
       buf.append(getEncodingOfClass(paramTypes[i].getName(), true));
     buf.append(")V");
diff --git a/libjava/classpath/gnu/java/math/GMP.java b/libjava/classpath/gnu/java/math/GMP.java
new file mode 100644 (file)
index 0000000..6fb4936
--- /dev/null
@@ -0,0 +1,474 @@
+/* gnu.java.math.GMP -- Arbitary precision integers using GMP
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.math;
+
+import gnu.classpath.Pointer;
+
+/**
+ * Implement BigInteger using GMP
+ */
+public final class GMP
+{
+  private Pointer native_ptr;
+  private int refCount = 1;
+  
+  public GMP()
+  {
+    super();
+    
+    natInitialize();
+  }
+
+  private synchronized void acquireRef()
+  {
+    refCount++;
+  }
+  
+  private synchronized void releaseRef()
+  {
+    refCount--;
+    if (refCount == 0)
+      {
+       natFinalize();
+       native_ptr = null;
+      }
+  }
+  
+  protected void finalize()
+  {
+    releaseRef();
+  }
+  
+  
+  public void fromByteArray(byte[] v)
+  {
+    acquireRef();
+    natFromByteArray(v);
+    releaseRef();
+  }
+  
+  public void fromBI(GMP x)
+  {
+    acquireRef();
+    x.acquireRef();
+    natFromBI(x.native_ptr);
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void fromLong(long n)
+  {
+    acquireRef();
+    natFromLong(n);
+    releaseRef();
+  }
+  
+  public int fromString(String s, int rdx)
+  {
+    acquireRef();
+    int result = natFromString(s, rdx);
+    releaseRef();
+    return result;
+  }
+  
+  public void fromSignedMagnitude(byte[] m, boolean isNegative)
+  {
+    acquireRef();
+    natFromSignedMagnitude(m, isNegative);
+    releaseRef();
+  }
+  
+  public String toString(int b)
+  {
+    acquireRef();
+    String result = natToString(b);
+    releaseRef();
+    return result;
+  }
+  
+  public void toByteArray(byte[] r)
+  {
+    acquireRef();
+    natToByteArray(r);
+    releaseRef();
+  }
+  
+  public double doubleValue()
+  {
+    acquireRef();
+    double result = natDoubleValue();
+    releaseRef();
+    return result;
+  }
+  
+  public int absIntValue()
+  {
+    acquireRef();
+    int result = natAbsIntValue();
+    releaseRef();
+    return result;
+  }
+  
+  public int compare(GMP x)
+  {
+    acquireRef();
+    x.acquireRef();
+    int result = natCompare(x.native_ptr);
+    x.releaseRef();
+    releaseRef();
+    return result;
+  }
+  
+  public void add(GMP x, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    r.acquireRef();
+    natAdd(x.native_ptr, r.native_ptr);
+    r.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void subtract(GMP x, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    r.acquireRef();
+    natSubtract(x.native_ptr, r.native_ptr);
+    r.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void multiply(GMP x, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    r.acquireRef();
+    natMultiply(x.native_ptr, r.native_ptr);
+    r.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void quotient(GMP x, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    r.acquireRef();
+    natQuotient(x.native_ptr, r.native_ptr);
+    r.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void remainder(GMP x, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    r.acquireRef();
+    natRemainder(x.native_ptr, r.native_ptr);
+    r.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void quotientAndRemainder(GMP x, GMP q, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    q.acquireRef();
+    r.acquireRef();
+    natQuotientAndRemainder(x.native_ptr, q.native_ptr, r.native_ptr);
+    r.releaseRef();
+    q.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void modulo(GMP x, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    r.acquireRef();
+    natModulo(x.native_ptr, r.native_ptr);
+    r.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void pow(int n, GMP r)
+  {
+    acquireRef();
+    r.acquireRef();
+    natPow(n, r.native_ptr);
+    r.releaseRef();
+    releaseRef();
+  }
+  
+  public void modPow(GMP e, GMP m, GMP r)
+  {
+    acquireRef();
+    e.acquireRef();
+    m.acquireRef();
+    r.acquireRef();
+    natModPow(e.native_ptr, m.native_ptr, r.native_ptr);
+    r.releaseRef();
+    m.releaseRef();
+    e.releaseRef();
+    releaseRef();
+  }
+  
+  public void modInverse(GMP m, GMP r)
+  {
+    acquireRef();
+    m.acquireRef();
+    r.acquireRef();
+    natModInverse(m.native_ptr, r.native_ptr);
+    r.releaseRef();
+    m.releaseRef();
+    releaseRef();
+  }
+
+  public void gcd(GMP x, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    r.acquireRef();
+    natGCD(x.native_ptr, r.native_ptr);
+    r.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void shiftLeft(int n, GMP r)
+  {
+    acquireRef();
+    r.acquireRef();
+    natShiftLeft(n, r.native_ptr);
+    r.releaseRef();
+    releaseRef();
+  }
+  
+  public void shiftRight(int n, GMP r)
+  {
+    acquireRef();
+    r.acquireRef();
+    natShiftRight(n, r.native_ptr);
+    r.releaseRef();
+    releaseRef();
+  }
+  
+  public void abs(GMP r)
+  {
+    acquireRef();
+    r.acquireRef();
+    natAbs(r.native_ptr);
+    r.releaseRef();
+    releaseRef();
+  }
+  
+  public void negate(GMP r)
+  {
+    acquireRef();
+    r.acquireRef();
+    natNegate(r.native_ptr);
+    r.releaseRef();
+    releaseRef();
+  }
+  
+  public int bitLength()
+  {
+    acquireRef();
+    int result = natBitLength();
+    releaseRef();
+    return result;
+  }
+  
+  public int bitCount()
+  {
+    acquireRef();
+    int result = natSetBitCount();
+    releaseRef();
+    return result;
+  }
+  
+  public void and(GMP x, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    r.acquireRef();
+    natAnd(x.native_ptr, r.native_ptr);
+    r.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void or(GMP x, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    r.acquireRef();
+    natOr(x.native_ptr, r.native_ptr);
+    r.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void xor(GMP x, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    r.acquireRef();
+    natXor(x.native_ptr, r.native_ptr);
+    r.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void andNot(GMP x, GMP r)
+  {
+    acquireRef();
+    x.acquireRef();
+    r.acquireRef();
+    natAndNot(x.native_ptr, r.native_ptr);
+    r.releaseRef();
+    x.releaseRef();
+    releaseRef();
+  }
+  
+  public void not(GMP r)
+  {
+    acquireRef();
+    r.acquireRef();
+    natNot(r.native_ptr);
+    r.releaseRef();
+    releaseRef();
+  }
+  
+  public void flipBit(int n, GMP r)
+  {
+    acquireRef();
+    r.acquireRef();
+    natFlipBit(n, r.native_ptr);
+    r.releaseRef();
+    releaseRef();
+  }
+
+  public int testBit(int n)
+  {
+    acquireRef();
+    int result = natTestBit(n);
+    releaseRef();
+    return result;
+  }
+  
+  public void setBit(int n, boolean setIt, GMP r)
+  {
+    acquireRef();
+    r.acquireRef();
+    natSetBit(n, setIt, r.native_ptr);
+    r.releaseRef();
+    releaseRef();
+  }
+  
+  public int testPrimality(int certainty)
+  {
+    acquireRef();
+    int result = natTestPrimality(certainty);
+    releaseRef();
+    return result;
+  }
+  
+  public int lowestSetBit()
+  {
+    acquireRef();
+    int result = natLowestSetBit();
+    releaseRef();
+    return result;
+  }
+  
+  // Native methods .........................................................
+  
+  public static native void natInitializeLibrary();
+  
+  private native void natInitialize();
+  private native void natFinalize();
+  
+  private native void natFromLong(long n);
+  private native void natFromBI(Pointer x);
+  private native void natFromByteArray(byte[] v);
+  private native int natFromString(String s, int rdx);
+  private native void natFromSignedMagnitude(byte[] m, boolean isNegative);
+  
+  private native String natToString(int base);
+  private native void natToByteArray(byte[] r);
+  private native int natAbsIntValue();
+  private native double natDoubleValue();
+  
+  private native int natCompare(Pointer y);
+  private native void natAdd(Pointer x, Pointer r);
+  private native void natSubtract(Pointer x, Pointer r);
+  private native void natMultiply(Pointer x, Pointer r);
+  private native void natQuotient(Pointer x, Pointer r);
+  private native void natRemainder(Pointer x, Pointer r);
+  private native void natQuotientAndRemainder(Pointer x, Pointer q, Pointer r);
+  private native void natModulo(Pointer m, Pointer r);
+  private native void natPow(int n, Pointer r);
+  private native void natModPow(Pointer e, Pointer m, Pointer r);
+  private native void natModInverse(Pointer x, Pointer r);
+  private native void natGCD(Pointer x, Pointer r);
+  private native int natTestPrimality(int c);
+  private native void natShiftLeft(int n, Pointer r);
+  private native void natShiftRight(int n, Pointer r);
+  private native int natLowestSetBit();
+  private native void natAbs(Pointer r);
+  private native void natNegate(Pointer r);
+  private native int natBitLength();
+  private native int natSetBitCount();
+  private native void natXor(Pointer x, Pointer r);
+  private native void natOr(Pointer x, Pointer r);
+  private native void natAnd(Pointer x, Pointer r);
+  private native void natAndNot(Pointer x, Pointer r);
+  private native void natFlipBit(int n, Pointer r);
+  private native int natTestBit(int n);
+  private native void natSetBit(int n, boolean setIt, Pointer r);
+  private native void natNot(Pointer r);
+}
index fd79019183a950e755dde2f76a89111e3877db3d..98e8a868d60c0201739a48cf878790bdd54fbe5b 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.net.protocol.ftp;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.net.CRLFInputStream;
 import gnu.java.net.CRLFOutputStream;
 import gnu.java.net.EmptyX509TrustManager;
@@ -621,7 +623,7 @@ public class FTPConnection
           }
         
         // Send PORT command
-        StringBuffer buf = new StringBuffer(PORT);
+        CPStringBuilder buf = new CPStringBuilder(PORT);
         buf.append(' ');
         // Construct the address/port string form
         byte[] address = localhost.getAddress();
@@ -686,7 +688,7 @@ public class FTPConnection
   public void setRepresentationType(int type)
     throws IOException
   {
-    StringBuffer buf = new StringBuffer(TYPE);
+    CPStringBuilder buf = new CPStringBuilder(TYPE);
     buf.append(' ');
     switch (type)
       {
@@ -732,7 +734,7 @@ public class FTPConnection
   public void setFileStructure(int structure)
     throws IOException
   {
-    StringBuffer buf = new StringBuffer(STRU);
+    CPStringBuilder buf = new CPStringBuilder(STRU);
     buf.append(' ');
     switch (structure)
       {
@@ -776,7 +778,7 @@ public class FTPConnection
   public void setTransferMode(int mode)
     throws IOException
   {
-    StringBuffer buf = new StringBuffer(MODE);
+    CPStringBuilder buf = new CPStringBuilder(MODE);
     buf.append(' ');
     switch (mode)
       {
@@ -1286,7 +1288,7 @@ public class FTPConnection
       }
     else if (c == '-')
       {
-        StringBuffer buf = new StringBuffer(line.substring(4));
+        CPStringBuilder buf = new CPStringBuilder(line.substring(4));
         buf.append('\n');
         while(true)
           {
index 8abef71d521d6ccc9005f1f338a44642a2b7260a..8a30e51db57334da5be8e3f9a1476e9cf4809d2c 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.net.protocol.http;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.ProtocolException;
@@ -113,7 +115,7 @@ public class ChunkedInputStream
         // Read chunk header
         int c, last = 0;
         boolean seenSemi = false;
-        StringBuilder buf = new StringBuilder();
+        CPStringBuilder buf = new CPStringBuilder();
         do
           {
             c = in.read();
index 0be7a097e5b77026ed7e516b9bd769e13bc97d5c..4482a121e5906db52340898bb39ea65af23d9899 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.net.protocol.http;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Date;
 
 /**
@@ -139,7 +141,7 @@ public class Cookie
   
   public String toString(boolean showPath, boolean showDomain)
   {
-    StringBuilder buf = new StringBuilder();
+    CPStringBuilder buf = new CPStringBuilder();
     buf.append(name);
     buf.append('=');
     buf.append(value);
index 9d19bfbdba44f423819ef01ae52bdf9c5b457d55..44b1a608ac7d1c3b5145e456859f8ebae80c9d74 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 package gnu.java.net.protocol.http;
 
 import gnu.classpath.SystemProperties;
+
+import gnu.java.lang.CPStringBuilder;
 import gnu.java.net.EmptyX509TrustManager;
 
 import java.io.BufferedInputStream;
@@ -668,7 +670,7 @@ public class HTTPConnection
         Cookie[] cookies = cookieManager.getCookies(hostname, secure, path);
         if (cookies != null && cookies.length > 0)
           {
-            StringBuilder buf = new StringBuilder();
+            CPStringBuilder buf = new CPStringBuilder();
             buf.append("$Version=1");
             for (int i = 0; i < cookies.length; i++)
               {
@@ -827,7 +829,7 @@ public class HTTPConnection
    */
   protected String getURI()
   {
-    StringBuilder buf = new StringBuilder();
+    CPStringBuilder buf = new CPStringBuilder();
     buf.append(secure ? "https://" : "http://");
     buf.append(hostname);
     if (secure)
index c8736bbac8fe68cb843e5b5b4c4fbcc7cbe4f435..690a0c65bd045a756b65c93fed426cfe013cb4ba 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.net.protocol.http;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.net.LineInputStream;
 
 import java.io.IOException;
@@ -280,7 +282,7 @@ class Headers implements Iterable<Headers.HeaderElement>
       (LineInputStream) in : new LineInputStream(in);
     
     String name = null;
-    StringBuilder value = new StringBuilder();
+    CPStringBuilder value = new CPStringBuilder();
     while (true)
       {
         String line = lin.readLine();
index 16cf56a2919d10e14c1fc9875da8e7c8fdee1e19..568f830fd47960f5950c39fdfb2e7cbbf5327aee 100644 (file)
@@ -1,5 +1,5 @@
 /* LimitedLengthInputStream.java --
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2008 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
+
 GNU Classpath is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
@@ -57,20 +57,17 @@ class LimitedLengthInputStream
   private boolean eof;
   private InputStream in;
   private boolean doClose;
-  
-  
+
   private void handleClose()
     throws IOException
   {
     eof = true;
+
     if (doClose)
-      {
-        in.close();
-      }
+      in.close();
     else
-      {
-        connection.release();
-      }
+      connection.release();
+
     in = null;
     connection = null;
   }
@@ -85,7 +82,7 @@ class LimitedLengthInputStream
    * @param restrictLen if true the number of bytes that can be read
    * from this stream will be limited to maxLen, otherwise the number
    * of bytes is not restricted.
-   * 
+   *
    * @param con the HTTPConnection associated with this stream
    *
    * @param doClose if true con will be closed when finished reading,
@@ -98,7 +95,6 @@ class LimitedLengthInputStream
                            HTTPConnection con,
                            boolean doClose)
     throws IOException
-
   {
     this.in = in;
     this.remainingLen = maxLen;
@@ -122,7 +118,7 @@ class LimitedLengthInputStream
       return -1; // EOF
 
     int r;
-    
+
     if (restrictLen)
       {
         r = in.read();
@@ -138,7 +134,7 @@ class LimitedLengthInputStream
         if (r == -1)
           handleClose();
       }
-    
+
     return r;
   }
 
@@ -156,12 +152,12 @@ class LimitedLengthInputStream
 
     if (restrictLen && length > remainingLen)
       length = (int) remainingLen;
-      
+
     int r = in.read(buffer, offset, length);
-    
+
     if (-1 == r)
       handleClose();
-    
+
     if (restrictLen && r > 0)
       {
         remainingLen -= r;
@@ -182,7 +178,7 @@ class LimitedLengthInputStream
       n = remainingLen;
 
     long r = in.skip(n);
-    
+
     if (restrictLen)
       {
         remainingLen -= r;
@@ -214,7 +210,7 @@ class LimitedLengthInputStream
     // it away.
 
     doClose = true;
-    
+
     handleClose();
   }
 }
index 90e3b7a0d64670ef14c0e38dc900db9f16d48887..88e2fd077f2e0e6312d709ae6b00a41e464c8f59 100644 (file)
@@ -38,6 +38,7 @@ exception statement from your version. */
 
 package gnu.java.net.protocol.http;
 
+import gnu.java.lang.CPStringBuilder;
 import gnu.java.net.LineInputStream;
 import gnu.java.util.Base64;
 
@@ -628,7 +629,7 @@ public class Request
   {
     int len = text.length();
     String key = null;
-    StringBuilder buf = new StringBuilder();
+    CPStringBuilder buf = new CPStringBuilder();
     Properties ret = new Properties();
     boolean inQuote = false;
     for (int i = 0; i < len; i++)
@@ -681,7 +682,7 @@ public class Request
   {
     int nc = connection.getNonceCount(nonce);
     String hex = Integer.toHexString(nc);
-    StringBuilder buf = new StringBuilder();
+    CPStringBuilder buf = new CPStringBuilder();
     for (int i = 8 - hex.length(); i > 0; i--)
       {
         buf.append('0');
@@ -752,7 +753,7 @@ public class Request
 
     int len = text.length();
     String attr = null;
-    StringBuilder buf = new StringBuilder();
+    CPStringBuilder buf = new CPStringBuilder();
     boolean inQuote = false;
     for (int i = 0; i <= len; i++)
       {
index c57d0a360167d7987eb57851b559014f336015b6..66f0fb6d983a92d0972e0e5ce00302f3d69ee646 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.net.protocol.jar;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.net.URLParseError;
 
 import java.io.IOException;
@@ -180,7 +182,7 @@ public class Handler extends URLStreamHandler
          tokens.add(token);
       }
 
-    StringBuffer path = new StringBuffer(url_string.length());
+    CPStringBuilder path = new CPStringBuilder(url_string.length());
     path.append(url_string.substring(0, jar_stop + 1));
 
     Iterator<String> it = tokens.iterator();
@@ -205,7 +207,7 @@ public class Handler extends URLStreamHandler
     //  Do the concatenation manually to avoid resize StringBuffer's 
     //  internal buffer.  The length of ref is not taken into consideration
     //  as it's a rare path.
-    StringBuffer sb = new StringBuffer (file.length() + 5);
+    CPStringBuilder sb = new CPStringBuilder (file.length() + 5);
     sb.append ("jar:");
     sb.append (file);
     if (ref != null)
index 33dfa0263c76ff0a4ace7da5dcbc8d938dc93546..a1eb5e2067b4cc51558d58f2833922c578517f6b 100644 (file)
@@ -119,6 +119,8 @@ public abstract class ByteDecodeLoopHelper
     int inRemaining = in.remaining();
     int outRemaining = out.remaining();
     CoderResult result;
+
+       bailOut:
     if (inRemaining <= outRemaining)
       {
         for (int i = 0; i < inRemaining; i++)
@@ -129,7 +131,7 @@ public abstract class ByteDecodeLoopHelper
               {
                 inPos--;
                 result = CoderResult.unmappableForLength(1);
-                break;
+                               break bailOut;
               }
             char c = mapToChar(b);
             outArray[outPos] = c;
@@ -147,7 +149,7 @@ public abstract class ByteDecodeLoopHelper
               {
                 inPos--;
                 result = CoderResult.unmappableForLength(1);
-                break;
+                               break bailOut;
               }
             char c = mapToChar(b);
             outArray[outPos] = c;
index 5f703b195f2e78140652ce94c2762b98fb069bbf..b1a4f10da922805926b4ad57ac5028d6c84fd24c 100644 (file)
@@ -120,6 +120,8 @@ public abstract class ByteEncodeLoopHelper
     int inRemaining = in.remaining();
     int outRemaining = out.remaining();
     CoderResult result;
+
+       bailOut:
     if (inRemaining <= outRemaining)
       {
         for (int i = 0; i < inRemaining; i++)
@@ -130,7 +132,7 @@ public abstract class ByteEncodeLoopHelper
               {
                 inPos--;
                 result = CoderResult.unmappableForLength(1);
-                break;
+                break bailOut;
               }
             byte b = mapToByte(inChar);
             outArray[outPos] = b;
@@ -148,7 +150,7 @@ public abstract class ByteEncodeLoopHelper
               {
                 inPos--;
                 result = CoderResult.unmappableForLength(1);
-                break;
+                break bailOut;
               }
             byte b = mapToByte(inChar);
             outArray[outPos] = b;
index 4d5e1b0269ed25a54e0578af9e9a5f328ba1d409..9c3edef76d8fa20dfb7bbc06db31def67e6d941a 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.rmi.server;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.lang.reflect.Proxy;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -69,7 +71,7 @@ public class RMIClassLoaderImpl extends RMIClassLoaderSpi
       if (urls.length == 0)
         return null;
 
-      StringBuffer annotation = new StringBuffer (64 * urls.length);
+      CPStringBuilder annotation = new CPStringBuilder (64 * urls.length);
 
       for (int i = 0; i < urls.length; i++)
       {
@@ -337,7 +339,7 @@ public class RMIClassLoaderImpl extends RMIClassLoaderSpi
         if (urls.length == 0)
           return null;
         
-        StringBuffer annotation = new StringBuffer (64 * urls.length);
+        CPStringBuilder annotation = new CPStringBuilder (64 * urls.length);
         
         for (int i = 0; i < urls.length; i++)
           {
index 5a414404d4f3ae032917ca9a1b8770582dc3de3e..c3665a4e73b62c2083d5e640b0e79629a2eef213 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.rmi.server;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.lang.reflect.TypeSignature;
 
 import java.io.ByteArrayOutputStream;
@@ -61,7 +63,7 @@ public class RMIHashes
         ByteArrayOutputStream digest_out = new ByteArrayOutputStream();
         DataOutputStream data_out = new DataOutputStream (digest_out);
         
-        StringBuffer sbuf = new StringBuffer();
+        CPStringBuilder sbuf = new CPStringBuilder();
         sbuf.append(meth.getName());
         sbuf.append('(');
         Class params[] = meth.getParameterTypes();
index 2cb218321525e915a9398461886b610285e82837..6c39d46acc63d889ff0261cbfcf45c396ebf1966 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.java.security;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 
@@ -150,7 +152,7 @@ public final class Engine
     String alias;
     int count = 0;
     boolean algorithmFound = false;
-    StringBuilder sb = new StringBuilder();
+    CPStringBuilder sb = new CPStringBuilder();
     while (enumer.hasMoreElements())
       {
         key = (String) enumer.nextElement();
index f61cf0fc37ceb3111d2bd7aefa0f7a7fccd7a981..a3d70e220199c0363b57549dd190e0e2a9e7b6d9 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.security;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.der.DEREncodingException;
 
 import java.io.ByteArrayOutputStream;
@@ -359,7 +361,7 @@ public class OID implements Cloneable, Comparable, java.io.Serializable
       return strRep;
     else
       {
-        StringBuffer buf = new StringBuffer();
+        CPStringBuilder buf = new CPStringBuilder();
         for (int i = 0; i < components.length; i++)
           {
             buf.append((long) components[i] & 0xFFFFFFFFL);
index 8da3a7d72fe1f51650c5866a9c381e177e48a851..e9c811644df8710090256d6bdf868b57fc983feb 100644 (file)
@@ -39,6 +39,8 @@ package gnu.java.security;
 
 import gnu.classpath.debug.Component;
 import gnu.classpath.debug.SystemLogger;
+
+import gnu.java.lang.CPStringBuilder;
 import gnu.java.security.action.GetPropertyAction;
 
 import java.io.File;
@@ -150,7 +152,7 @@ public final class PolicyFile extends Policy
 
   protected static final Logger logger = SystemLogger.SYSTEM;
   // Added to cut redundant AccessController.doPrivileged calls
-  private static GetPropertyAction prop = new GetPropertyAction("file.seperator");
+  private static GetPropertyAction prop = new GetPropertyAction("file.separator");
   private static final String fs = (String) AccessController.doPrivileged(prop);
   
   private static final String DEFAULT_POLICY =
@@ -629,8 +631,8 @@ public final class PolicyFile extends Policy
    */
   private static String expand(final String s)
   {
-    final StringBuffer result = new StringBuffer();
-    final StringBuffer prop = new StringBuffer();
+    final CPStringBuilder result = new CPStringBuilder();
+    final CPStringBuilder prop = new CPStringBuilder();
     int state = 0;
     for (int i = 0; i < s.length(); i++)
       {
index 02b1c03776247cd1cfc1e6ebcf04caa47230cb90..ac10be22e6b3bf4e1ae16114cb227fd0b797a6a7 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.security.der;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.math.BigInteger;
 import java.util.Arrays;
 
@@ -314,7 +316,7 @@ public class BitString implements Cloneable, Comparable
 
   public String toString()
   {
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     for (int i = 0, j = 7, k = 0; i < size(); i++)
       {
         sb.append((bytes[k] & 1 << j) != 0 ? "1" : "0");
index 09ec1e2dff0b08e6af8b767edb7fb21a1552d839..cd552c8beddc00a47358f2ac9025af4067903415 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.security.der;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.OID;
 
 import java.io.BufferedInputStream;
@@ -286,7 +288,7 @@ public class DERReader implements DER
 
   private static String fromIso88591(byte[] bytes)
   {
-    StringBuffer str = new StringBuffer(bytes.length);
+    CPStringBuilder str = new CPStringBuilder(bytes.length);
     for (int i = 0; i < bytes.length; i++)
       str.append((char) (bytes[i] & 0xFF));
     return str.toString();
@@ -296,7 +298,7 @@ public class DERReader implements DER
   {
     if ((bytes.length & 0x01) != 0)
       throw new IOException("UTF-16 bytes are odd in length");
-    StringBuffer str = new StringBuffer(bytes.length / 2);
+    CPStringBuilder str = new CPStringBuilder(bytes.length / 2);
     for (int i = 0; i < bytes.length; i += 2)
       {
         char c = (char) ((bytes[i] << 8) & 0xFF);
@@ -308,7 +310,7 @@ public class DERReader implements DER
 
   private static String fromUtf8(byte[] bytes) throws IOException
   {
-    StringBuffer str = new StringBuffer((int)(bytes.length / 1.5));
+    CPStringBuilder str = new CPStringBuilder((int)(bytes.length / 1.5));
     for (int i = 0; i < bytes.length; )
       {
         char c = 0;
index 89df5c51bf350c776a04269ae59a9823bc05a38d..aebe1acb699bf45f3e5b4f3f6c92927921e1ad13 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.java.security.hash;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Configuration;
 import gnu.java.security.Registry;
 import gnu.java.security.util.Util;
@@ -177,10 +179,10 @@ public final class Whirlpool
         {
           log.fine("Static data");
           log.fine("T0[]:");
-          StringBuilder sb;
+          CPStringBuilder sb;
           for (i = 0; i < 64; i++)
             {
-              sb = new StringBuilder();
+              sb = new CPStringBuilder();
               for (j = 0; j < 4; j++)
                 sb.append("0x").append(Util.toString(T0[i * 4 + j])).append(", ");
 
@@ -189,7 +191,7 @@ public final class Whirlpool
           log.fine("T1[]:");
           for (i = 0; i < 64; i++)
             {
-              sb = new StringBuilder();
+              sb = new CPStringBuilder();
               for (j = 0; j < 4; j++)
                 sb.append("0x").append(Util.toString(T1[i * 4 + j])).append(", ");
 
@@ -198,7 +200,7 @@ public final class Whirlpool
           log.fine("T2[]:");
           for (i = 0; i < 64; i++)
             {
-              sb = new StringBuilder();
+              sb = new CPStringBuilder();
               for (j = 0; j < 4; j++)
                 sb.append("0x").append(Util.toString(T2[i * 4 + j])).append(", ");
 
@@ -207,7 +209,7 @@ public final class Whirlpool
           log.fine("T3[]:");
           for (i = 0; i < 64; i++)
             {
-              sb = new StringBuilder();
+              sb = new CPStringBuilder();
               for (j = 0; j < 4; j++)
                 sb.append("0x").append(Util.toString(T3[i * 4 + j])).append(", ");
 
@@ -216,7 +218,7 @@ public final class Whirlpool
           log.fine("\nT4[]:");
           for (i = 0; i < 64; i++)
             {
-              sb = new StringBuilder();
+              sb = new CPStringBuilder();
               for (j = 0; j < 4; j++)
                 sb.append("0x").append(Util.toString(T4[i * 4 + j])).append(", ");
 
@@ -225,7 +227,7 @@ public final class Whirlpool
           log.fine("T5[]:");
           for (i = 0; i < 64; i++)
             {
-              sb = new StringBuilder();
+              sb = new CPStringBuilder();
               for (j = 0; j < 4; j++)
                 sb.append("0x").append(Util.toString(T5[i * 4 + j])).append(", ");
 
@@ -234,7 +236,7 @@ public final class Whirlpool
           log.fine("T6[]:");
           for (i = 0; i < 64; i++)
             {
-              sb = new StringBuilder();
+              sb = new CPStringBuilder();
               for (j = 0; j < 4; j++)
                 sb.append("0x").append(Util.toString(T5[i * 4 + j])).append(", ");
 
@@ -243,7 +245,7 @@ public final class Whirlpool
           log.fine("T7[]:");
           for (i = 0; i < 64; i++)
             {
-              sb = new StringBuilder();
+              sb = new CPStringBuilder();
               for (j = 0; j < 4; j++)
                 sb.append("0x").append(Util.toString(T5[i * 4 + j])).append(", ");
 
index eaccb009551b310286926ea4bf437ed4f9a16e1b..8a1cb4ca50204eb18c925189ca2580fa6c1c7c6d 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.security.jce.sig;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Registry;
 import gnu.java.security.der.DER;
 import gnu.java.security.der.DERReader;
@@ -195,7 +197,7 @@ public class DSSParameters
 
   protected String engineToString()
   {
-    StringBuffer sb = new StringBuffer("p=");
+    CPStringBuilder sb = new CPStringBuilder("p=");
     if (p == null)
       sb.append("???");
     else
index 657de8dd02dd9eb0bd682b999673cc4a28106eb7..d4cf36513ebf219f58ff6b96ffc7d759c78c8171 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.java.security.key.dss;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Registry;
 import gnu.java.security.action.GetPropertyAction;
 import gnu.java.security.util.FormatUtil;
@@ -181,7 +183,7 @@ public abstract class DSSKey
     if (str == null)
       {
         String ls = (String) AccessController.doPrivileged(new GetPropertyAction("line.separator"));
-        StringBuilder sb = new StringBuilder(ls)
+        CPStringBuilder sb = new CPStringBuilder(ls)
             .append("defaultFormat=").append(defaultFormat).append(",")
             .append(ls);
         if (hasInheritedParameters())
index 6ed8de8460d4bfc310be2a1661bac937a309f54a..633fcf7ce08dc4ad564ccde9a8cb29a14e9a2afd 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.java.security.key.dss;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Configuration;
 import gnu.java.security.Registry;
 import gnu.java.security.action.GetPropertyAction;
@@ -191,7 +193,7 @@ public class DSSPrivateKey
       {
         String ls = (String) AccessController.doPrivileged
             (new GetPropertyAction("line.separator"));
-        str = new StringBuilder(this.getClass().getName()).append("(")
+        str = new CPStringBuilder(this.getClass().getName()).append("(")
             .append(super.toString()).append(",").append(ls)
             .append("x=0x").append(Configuration.DEBUG ? x.toString(16)
                                                        : "**...*").append(ls)
index 9e1c4cf0a047a755869d65f8a4f2b2de20250468..e5c534671763050b135862ab583f2d78fae79839 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.java.security.key.dss;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Registry;
 import gnu.java.security.action.GetPropertyAction;
 import gnu.java.security.key.IKeyPairCodec;
@@ -190,7 +192,7 @@ public class DSSPublicKey
       {
         String ls = (String) AccessController.doPrivileged
             (new GetPropertyAction("line.separator"));
-        str = new StringBuilder(this.getClass().getName()).append("(")
+        str = new CPStringBuilder(this.getClass().getName()).append("(")
             .append(super.toString()).append(",").append(ls)
             .append("y=0x").append(y.toString(16)).append(ls)
             .append(")")
index 4bdce4011a59c82076c4e8e9d4bd4c74e3307df5..0419ac96ee41d790566a493f454e7945bc7a4ddd 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.java.security.key.rsa;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Registry;
 import gnu.java.security.action.GetPropertyAction;
 import gnu.java.security.util.FormatUtil;
@@ -163,7 +165,7 @@ public abstract class GnuRSAKey
       {
         String ls = (String) AccessController.doPrivileged
             (new GetPropertyAction("line.separator"));
-        str = new StringBuilder(ls)
+        str = new CPStringBuilder(ls)
             .append("defaultFormat=").append(defaultFormat).append(",").append(ls)
             .append("n=0x").append(n.toString(16)).append(",").append(ls)
             .append("e=0x").append(e.toString(16))
index 00a1b822ad010654c935c4ecb2804cd074656094..e554f2f3f02e59a7d5824f29995806de4cb0b4fb 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.java.security.key.rsa;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Configuration;
 import gnu.java.security.action.GetPropertyAction;
 import gnu.java.security.Registry;
@@ -289,7 +291,7 @@ public class GnuRSAPrivateKey
       {
         String ls = (String) AccessController.doPrivileged
             (new GetPropertyAction("line.separator"));
-        str = new StringBuilder(this.getClass().getName()).append("(")
+        str = new CPStringBuilder(this.getClass().getName()).append("(")
             .append(super.toString()).append(",").append(ls)
             .append("d=0x").append(Configuration.DEBUG ? d.toString(16)
                                                        : "**...*").append(ls)
index fe28d0ba3b050e761a751ea441c1aee0d7d68bff..3217130c25893b1b8d6ba8724ca8595951dc860a 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.java.security.key.rsa;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Registry;
 import gnu.java.security.action.GetPropertyAction;
 import gnu.java.security.key.IKeyPairCodec;
@@ -178,7 +180,7 @@ public class GnuRSAPublicKey
       {
         String ls = (String) AccessController.doPrivileged
             (new GetPropertyAction("line.separator"));
-        str = new StringBuilder(this.getClass().getName()).append("(")
+        str = new CPStringBuilder(this.getClass().getName()).append("(")
             .append(super.toString()).append(",").append(ls)
             .append(")")
             .toString();
index 7d61779f937cd38dd6665e77f35c1885be83bee3..644033156721cb2eafecc1324f689cedc8f8a9a8 100644 (file)
@@ -39,6 +39,7 @@ exception statement from your version. */
 package gnu.java.security.provider;
 
 import gnu.java.io.Base64InputStream;
+import gnu.java.lang.CPStringBuilder;
 import gnu.java.security.x509.X509CRL;
 import gnu.java.security.x509.X509CertPath;
 import gnu.java.security.x509.X509Certificate;
@@ -193,7 +194,7 @@ public class X509CertificateFactory
     if (i != 0x30)
       {
         inStream.reset();
-        StringBuffer line = new StringBuffer(80);
+        CPStringBuilder line = new CPStringBuilder(80);
         do
           {
             line.setLength(0);
@@ -252,7 +253,7 @@ public class X509CertificateFactory
     if (i != 0x30)
       {
         inStream.reset();
-        StringBuffer line = new StringBuffer(80);
+        CPStringBuilder line = new CPStringBuilder(80);
         do
           {
             line.setLength(0);
index 0d04d9127ae1af5c6e80b477913d23b56207c871..514492043972ab98f8b89339eff6bc0ec34baa4d 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.security.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
@@ -86,7 +88,7 @@ public final class ByteArray
 
   public static String toHexString (byte[] buf, int off, int len, char sep)
   {
-    StringBuffer str = new StringBuffer();
+    CPStringBuilder str = new CPStringBuilder();
     for (int i = 0; i < len; i++)
       {
        str.append (Character.forDigit (buf[i+off] >>> 4 & 0x0F, 16));
@@ -100,7 +102,7 @@ public final class ByteArray
   public static String formatInt (int value, int radix, int len)
   {
     String s = Integer.toString (value, radix);
-    StringBuffer buf = new StringBuffer ();
+    CPStringBuilder buf = new CPStringBuilder ();
     for (int j = 0; j < len - s.length(); j++)
       buf.append ("0");
     buf.append (s);
index c7a6810fba3b8a75e8cb051daae3ec922f625ada..50d4466d539deb45e7c0e959f2d10ecc966b3e50 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.java.security.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.math.BigInteger;
 
 /**
@@ -296,7 +298,7 @@ public class Util
    */
   public static final String toUnicodeString(byte[] ba, int offset, int length)
   {
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     int i = 0;
     int j = 0;
     int k;
@@ -328,7 +330,7 @@ public class Util
    */
   public static String toUnicodeString(int[] ia)
   {
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     int i = 0;
     int j = 0;
     int k;
@@ -385,7 +387,7 @@ public class Util
   {
     if (data == null)
       return m + "null\n";
-    StringBuffer sb = new StringBuffer(length * 3);
+    CPStringBuilder sb = new CPStringBuilder(length * 3);
     if (length > 32)
       sb.append(m).append("Hexadecimal dump of ")
           .append(length).append(" bytes...\n");
@@ -466,7 +468,7 @@ public class Util
         b2 = buffer[1];
         break;
       }
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     int c;
     boolean notleading = false;
     do
index 72cb4a9ea91d13457937a040c42a322c2edc5143..60d35574d014ef5b55746254c91c2b23b2c710e1 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.security.x509;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.security.cert.PolicyNode;
 import java.security.cert.PolicyQualifierInfo;
 
@@ -186,7 +188,7 @@ public final class PolicyNodeImpl implements PolicyNode
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     for (int i = 0; i < depth; i++)
       buf.append("  ");
     buf.append("(");
index 1bd268a51e2063f81b03f94e1b096dff5d0fb0cd..7b6c89f6aac71cae1e721d791d95eb6f97a78131 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.security.x509;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * A collection of useful class methods.
  *
@@ -65,7 +67,7 @@ public final class Util
    */
   public static String toHexString(byte[] buf, int off, int len)
   {
-    StringBuffer str = new StringBuffer();
+    CPStringBuilder str = new CPStringBuilder();
     for (int i = 0; i < len; i++)
       {
         str.append(HEX.charAt(buf[i+off] >>> 4 & 0x0F));
@@ -94,7 +96,7 @@ public final class Util
    */
   public static String toHexString(byte[] buf, int off, int len, char sep)
   {
-    StringBuffer str = new StringBuffer();
+    CPStringBuilder str = new CPStringBuilder();
     for (int i = 0; i < len; i++)
       {
         str.append(HEX.charAt(buf[i+off] >>> 4 & 0x0F));
@@ -130,7 +132,7 @@ public final class Util
   public static String hexDump(byte[] buf, int off, int len, String prefix)
   {
     String nl = System.getProperty("line.separator");
-    StringBuffer str = new StringBuffer();
+    CPStringBuilder str = new CPStringBuilder();
     int i = 0;
     while (i < len)
       {
@@ -174,7 +176,7 @@ public final class Util
   public static String formatInt(int i, int radix, int len)
   {
     String s = Integer.toString(i, radix);
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     for (int j = 0; j < len - s.length(); j++)
       buf.append("0");
     buf.append(s);
index 02adad7d2fdc02551e7f990c6457095908da7206..e2e05c57e4bdf3f9459abffae28d3b21082bdac9 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.security.x509;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.OID;
 import gnu.java.security.der.DER;
 import gnu.java.security.der.DERReader;
@@ -285,7 +287,7 @@ public class X500DistinguishedName implements Principal
   {
     if (fixed && stringRep != null)
       return stringRep;
-    StringBuffer str = new StringBuffer();
+    CPStringBuilder str = new CPStringBuilder();
     for (Iterator it = components.iterator(); it.hasNext(); )
       {
         Map m = (Map) it.next();
@@ -377,7 +379,7 @@ public class X500DistinguishedName implements Principal
 
   private String readAttributeType(Reader in) throws IOException
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     int ch;
     while ((ch = in.read()) != '=')
       {
@@ -399,7 +401,7 @@ public class X500DistinguishedName implements Principal
 
   private String readAttributeValue(Reader in) throws IOException
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     int ch = in.read();
     if (ch == '#')
       {
@@ -537,7 +539,7 @@ public class X500DistinguishedName implements Principal
 
   private static String compressWS(String str)
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     char lastChar = 0;
     for (int i = 0; i < str.length(); i++)
       {
index ae3e6ef706c552b92b9b7a8682c56fff247d600c..c2aae96092a4ed0fef6b289585bbabc64ac8e108 100644 (file)
@@ -36,21 +36,25 @@ obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
 package gnu.java.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.text.AttributedCharacterIterator;
 import java.util.ArrayList;
 import java.util.HashMap;
 
 /**
  * This class is an implementation of a FormatBuffer with attributes.
- * 
+ * Note that this class is not thread-safe; external synchronisation
+ * should be used if an instance is to be accessed from multiple threads.
+ *
  * @author Guilhem Lavaux <guilhem@kaffe.org>
  * @date April 10, 2004
  */
 public class AttributedFormatBuffer implements FormatBuffer
 {
-  private StringBuffer buffer;
-  private ArrayList ranges;
-  private ArrayList attributes;
+  private final CPStringBuilder buffer;
+  private final ArrayList ranges;
+  private final ArrayList attributes;
   private int[] a_ranges;
   private HashMap[] a_attributes; 
   private int startingRange;
@@ -60,9 +64,9 @@ public class AttributedFormatBuffer implements FormatBuffer
    * This constructor accepts a StringBuffer. If the buffer contains
    * already some characters they will not be attributed. 
    */
-  public AttributedFormatBuffer(StringBuffer buffer)
+  public AttributedFormatBuffer(CPStringBuilder buffer)
   {
-    this.buffer = buffer;
+    this.buffer = new CPStringBuilder(buffer);
     this.ranges = new ArrayList();
     this.attributes = new ArrayList();
     this.defaultAttr = null;
@@ -77,7 +81,7 @@ public class AttributedFormatBuffer implements FormatBuffer
 
   public AttributedFormatBuffer(int prebuffer)
   {
-    this(new StringBuffer(prebuffer));
+    this(new CPStringBuilder(prebuffer));
   }
 
   public AttributedFormatBuffer()
@@ -214,12 +218,12 @@ public class AttributedFormatBuffer implements FormatBuffer
   }
 
   /**
-   * This method returns the internal StringBuffer describing
+   * This method returns the internal CPStringBuilder describing
    * the attributed string.
    *
-   * @return An instance of StringBuffer which contains the string.
+   * @return An instance of CPStringBuilder which contains the string.
    */
-  public StringBuffer getBuffer()
+  public CPStringBuilder getBuffer()
   {
     return buffer;
   }
index 19b621ce4fdfb23b5985d1b0aa95b8ca2c049034..fc8d08ee6f8cd43f10318d576f0b84e0b35433cb 100644 (file)
@@ -47,7 +47,7 @@ import java.util.HashMap;
  */
 public class StringFormatBuffer implements FormatBuffer
 {
-  private StringBuffer buffer;
+  private final StringBuffer buffer;
   private AttributedCharacterIterator.Attribute defaultAttr;
 
   public StringFormatBuffer(int prebuffer)
index 592696bcc8080c1024bddbd1ae0eb6c04e5f6a3e..4401a151a3612257d25641dbbabf943ccf72712e 100644 (file)
@@ -83,6 +83,8 @@ DAMAGES.  */
 
 package gnu.java.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
@@ -143,7 +145,7 @@ public final class Base64
     int srcLength = buf.length - offset;
     byte[] input = new byte[3];
     int[] output = new int[4];
-    StringBuffer out = new StringBuffer();
+    CPStringBuilder out = new CPStringBuilder();
     int i = offset;
     int chars = 0;
 
index 46a82d6cb53e61017c884efcd91cb6da2defb5d2..ca2c56d733579e9276963a3d56eee3f15d4aba31 100644 (file)
@@ -51,25 +51,19 @@ import java.util.NoSuchElementException;
  *
  * @author Mark Wielaard (mark@klomp.org)
  */
-public final class EmptyEnumeration implements Enumeration, Serializable
+public final class EmptyEnumeration<T> implements Enumeration<T>, Serializable
 {
   /** The only instance of this class */
-  private static final EmptyEnumeration instance = new EmptyEnumeration();
+  private static final EmptyEnumeration<Object> instance = 
+    new EmptyEnumeration<Object>();
 
   /**
-   * Private constructor that creates a new empty Enumeration.
-   */
-  private EmptyEnumeration()
-  {
-  }
-
-  /**
-   * Returns the only instance of this class.
+   * Returns an instance of this class for Object.
    * It can be shared by multiple objects and threads.
    *
    * @return the common empty enumeration
    */
-  public static EmptyEnumeration getInstance()
+  public static EmptyEnumeration<Object> getInstance()
   {
     return instance;
   }
@@ -89,7 +83,7 @@ public final class EmptyEnumeration implements Enumeration, Serializable
    *
    * @throws NoSuchElementException this is empty
    */
-  public Object nextElement()
+  public T nextElement()
   {
     throw new NoSuchElementException();
   }
diff --git a/libjava/classpath/gnu/java/util/prefs/EventDispatcher.java b/libjava/classpath/gnu/java/util/prefs/EventDispatcher.java
deleted file mode 100644 (file)
index f73c3e7..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/* EventDispatcher.java -- Dispatch events for prefs
-   Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.java.util.prefs;
-
-import java.util.ArrayList;
-
-/**
- * This is a helper class used for dispatching events for
- * the prefs package.
- */
-public class EventDispatcher extends Thread
-{
-  // This is a singleton class.  We dispatch all events via a
-  // new Thread which is created on demand.
-  private static final Thread dispatchThread = new EventDispatcher();
-
-  // This is a queue of events to dispatch.  This thread waits on
-  // the queue and when notified will remove events until the queue
-  // is empty.
-  private static final ArrayList<Runnable> queue = new ArrayList<Runnable>();
-
-  // FIXME: this thread probably ought to go in some classpath-internal
-  // ThreadGroup.  But we don't have that yet.
-  private EventDispatcher()
-  {
-    setDaemon(true);
-    start();
-  }
-
-  public void run()
-  {
-    while (true)
-      {
-        Runnable r;
-        synchronized (queue)
-          {
-            while (queue.size() == 0)
-              {
-                try
-                  {
-                    queue.wait();
-                  }
-                catch (InterruptedException _)
-                  {
-                    // Ignore.
-                  }
-              }
-            r = queue.remove(0);
-          }
-        // Invoke outside the synchronization, so that 
-        // we aren't blocking other threads from posting events.
-        try
-          {
-            r.run();
-          }
-        catch (Throwable _)
-          {
-            // Ignore.
-          }
-      }
-  }
-
-  /**
-   * Add a new runnable to the event dispatch queue.  The
-   * runnable will be invoked in the event dispatch queue
-   * without any locks held.
-   * @param runner the Runnable to dispatch
-   */
-  public static void dispatch(Runnable runner)
-  {
-    synchronized (queue)
-      {
-        queue.add(runner);
-       queue.notify();
-      }
-  }
-}
index 0fd4df36616b538e5056c6095ed5eb1c5519c136..c26fe63c9b6849a39ef8c99fa9277f4e59b9ba16 100644 (file)
@@ -165,11 +165,7 @@ public class GConfBasedPreferences
     
     GConfBasedPreferences preferenceNode
       = new GConfBasedPreferences(this, name, this.isUser);
-    
-    // register the node for to GConf so that it can listen
-    // events outside the scope of the application
-    backend.startWatchingNode(this.node);
-    
+        
     return preferenceNode;
   }
 
index 231c047da06d419d14a5baa9553a45b5962c1419..d3c095351476670c6c970187e9431699144d3506 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.java.util.prefs;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.BufferedWriter;
 import java.io.IOException;
 import java.io.OutputStream;
@@ -273,7 +275,7 @@ public class NodeWriter {
                                     throws BackingStoreException, IOException
     {
         // construct String used for indentation
-        StringBuffer indentBuffer = new StringBuffer(2*indent);
+        CPStringBuilder indentBuffer = new CPStringBuilder(2*indent);
         for (int i=0; i < indent; i++)
             indentBuffer.append("  ");
         String indentString = indentBuffer.toString();
index 5e12c718b2c95663a5d6bcdf0fb827dc66c43d5a..3c02919598956fa1c1317bc045f1dcafd518c7d5 100644 (file)
@@ -48,20 +48,12 @@ import java.util.prefs.BackingStoreException;
  */
 public final class GConfNativePeer
 {
-  /**
-   * Object to achieve locks for methods that need to be synchronized.
-   */
-  private static final Object[] semaphore = new Object[0];
-
   /**
    * Creates a new instance of GConfNativePeer
    */
   public GConfNativePeer()
   {
-    synchronized (semaphore)
-      {
-        init_class();
-      }
+    init_class();
   }
 
   /**
@@ -72,31 +64,7 @@ public final class GConfNativePeer
    */
   public boolean nodeExist(String node)
   {
-    return gconf_client_dir_exists(node);
-  }
-
-  /**
-   * Add the node <code>node</code> to the list of nodes the GConf will watch.
-   * An event is raised everytime this node is changed. You can add a node
-   * multiple times.
-   * 
-   * @param node the node to track.
-   */
-  public void startWatchingNode(String node)
-  {
-    gconf_client_add_dir(node);
-  }
-
-  /**
-   * Remove the node <code>node</code> to the list of nodes the GConf is
-   * watching. Note that if a node has been added multiple times, you must
-   * remove it the same number of times before the remove takes effect.
-   * 
-   * @param node the node you don't want to track anymore.
-   */
-  public void stopWatchingNode(String node)
-  {
-    gconf_client_remove_dir(node);
+    return gconf_dir_exists(node);
   }
 
   /**
@@ -111,7 +79,7 @@ public final class GConfNativePeer
    */
   public boolean setString(String key, String value)
   {
-    return gconf_client_set_string(key, value);
+    return gconf_set_string(key, value);
   }
 
   /**
@@ -124,7 +92,7 @@ public final class GConfNativePeer
    */
   public boolean unset(String key)
   {
-    return gconf_client_unset(key);
+    return gconf_unset(key);
   }
 
   /**
@@ -135,7 +103,7 @@ public final class GConfNativePeer
    */
   public String getKey(String key)
   {
-    return gconf_client_get_string(key);
+    return gconf_get_string(key);
   }
 
   /**
@@ -149,7 +117,7 @@ public final class GConfNativePeer
    */
   public List<String> getKeys(String node) throws BackingStoreException
   {
-    return gconf_client_all_keys(node);
+    return gconf_all_keys(node);
   }
 
   /**
@@ -161,7 +129,7 @@ public final class GConfNativePeer
    */
   public List<String> getChildrenNodes(String node) throws BackingStoreException
   {
-    return gconf_client_all_nodes(node);
+    return gconf_all_nodes(node);
   }
 
   /**
@@ -185,17 +153,14 @@ public final class GConfNativePeer
    */
   public void suggestSync() throws BackingStoreException
   {
-    gconf_client_suggest_sync();
+    gconf_suggest_sync();
   }
   
   protected void finalize() throws Throwable
   {
     try
       {
-        synchronized (semaphore)
-          {
-            finalize_class();
-          }
+        finalize_class();
       }
     finally
       {
@@ -215,18 +180,18 @@ public final class GConfNativePeer
    * Initialize the GConf native peer and enable the object cache.
    * It is meant to be used by the static initializer.
    */
-  native static final private void init_id_cache();
+  native synchronized static final private void init_id_cache();
   
   /**
    * Initialize the GConf native peer. This is meant to be used by the
    * class constructor.
    */
-  native static final private void init_class();
+  native synchronized static final private void init_class();
 
   /**
    * Class finalizer.
    */
-  native static final private void finalize_class();
+  native synchronized static final private void finalize_class();
 
   /**
    * Queries the GConf database to see if the given node exists, returning
@@ -235,23 +200,8 @@ public final class GConfNativePeer
    * @param node the node to query for existence.
    * @return true if the node exist, false otherwise.
    */
-  native static final protected boolean gconf_client_dir_exists(String node);
-
-  /**
-   * Adds the given node to the list of nodes that GConf watches for
-   * changes.
-   * 
-   * @param node the node to watch for changes.
-   */
-  native static final protected void gconf_client_add_dir(String node);
-
-  /**
-   * Removes the given node from the list of nodes that GConf watches for
-   * changes.
-   * 
-   * @param node the node to remove from from the list of watched nodes.
-   */
-  native static final protected void gconf_client_remove_dir(String node);
+  native synchronized
+  static final protected boolean gconf_dir_exists(String node);
 
   /**
    * Sets the given key/value pair into the GConf database.
@@ -261,8 +211,8 @@ public final class GConfNativePeer
    * @param value the value to associate to the given key.
    * @return true if the change has effect, false otherwise.
    */
-  native static final protected boolean gconf_client_set_string(String key,
-                                                                String value);
+  native synchronized
+  static final protected boolean gconf_set_string(String key, String value);
 
   /**
    * Returns the key associated to the given key. Null is returned if the
@@ -271,7 +221,8 @@ public final class GConfNativePeer
    * @param key the key to return the value of.
    * @return The value associated to the given key, or null.
    */
-  native static final protected String gconf_client_get_string(String key);
+  native synchronized
+  static final protected String gconf_get_string(String key);
 
   /**
    * Usets the given key, removing the key from the database.
@@ -279,13 +230,13 @@ public final class GConfNativePeer
    * @param key the key to remove.
    * @return true if the operation success, false otherwise.
    */
-  native static final protected boolean gconf_client_unset(String key);
+  native synchronized static final protected boolean gconf_unset(String key);
 
   /**
    * Suggest to the GConf native peer a sync with the database.
    *
    */
-  native static final protected void gconf_client_suggest_sync()
+  native synchronized static final protected void gconf_suggest_sync()
     throws BackingStoreException;
   
   /**
@@ -295,7 +246,7 @@ public final class GConfNativePeer
    * @return A list of nodes under the given source node.
    */
   native
-  static final protected List<String> gconf_client_all_nodes(String node)
+  static synchronized final protected List<String> gconf_all_nodes(String node)
     throws BackingStoreException;
   
   /**
@@ -304,8 +255,8 @@ public final class GConfNativePeer
    * @param node the source node.
    * @return A list of all keys stored in the given node.
    */
-  native
-  static final protected List<String> gconf_client_all_keys(String node)
+  native synchronized 
+  static final protected List<String> gconf_all_keys(String node)
     throws BackingStoreException;
 
   /**
@@ -314,7 +265,7 @@ public final class GConfNativePeer
    * @param plain the String to escape.
    * @return An escaped String for use with GConf.
    */
-  native
+  native synchronized 
   static final protected String gconf_escape_key(String plain);
   
   /**
@@ -324,7 +275,7 @@ public final class GConfNativePeer
    * @param escaped key as returned by gconf_escape_key 
    * @return An unescaped key.
    */
-  native
+  native synchronized 
   static final protected String gconf_unescape_key(String escaped);
   
   static
index d711945e43bd639274a091fca9054bef2be13be0..68472615e6ad6a3741a3958dff6535d07b78c638 100644 (file)
@@ -44,69 +44,81 @@ package gnu.java.util.regex;
  *
  * @author Ito Kazumitsu</A>
  */
-final class BacktrackStack {
+final class BacktrackStack
+{
 
     /** A set of data to be used for backtracking. */
-    static class Backtrack {
-        /** REToken to which to go back */
-        REToken token;
+  static class Backtrack
+  {
+       /** REToken to which to go back */
+    REToken token;
        /** CharIndexed on which matches are being searched for. */
-       CharIndexed input;
+    CharIndexed input;
        /** REMatch to be used by the REToken token. */
-       REMatch match;
+    REMatch match;
        /** Some parameter used by the token's backtrack method. */
-       Object param;
-        Backtrack(REToken token, CharIndexed input, REMatch match, Object param) {
-           this.token = token;
-           this.input = input;
-           //  REMatch may change before backtracking is needed. So we
-           //  keep a clone of it.
-           this.match = (REMatch) match.clone();
-           this.param = param;
-       }
-    }
-
-    Backtrack[] stack;
-    private int size;
-    private int capacity;
-    private static final int INITIAL_CAPACITY = 32;
-    private static final int CAPACITY_INCREMENT = 16;
-
-    BacktrackStack() {
-        stack = new Backtrack[INITIAL_CAPACITY];
-       size = 0;
-       capacity = INITIAL_CAPACITY;
-    }
-
-    boolean empty() {
-       return size == 0;
-    }
-
-    Backtrack peek() {
-       return stack[size - 1];
-    }
-
-    Backtrack pop() {
-       Backtrack bt = stack[--size];
-       stack[size] = null;
-       return bt;
-    }
-
-    void clear() {
-       for (int i = 0; i < size; i++) {
-           stack[i] = null;
-       }
-       size = 0;
-    }
-
-    void push(Backtrack bt) {
-        if (size >= capacity) {
-           capacity +=  CAPACITY_INCREMENT;
-           Backtrack[] newStack = new Backtrack[capacity];
-           System.arraycopy(stack, 0, newStack, 0, size);
-           stack = newStack;
-       }
-       stack[size++] = bt;
+    Object param;
+      Backtrack (REToken token, CharIndexed input, REMatch match,
+                Object param)
+    {
+      this.token = token;
+      this.input = input;
+      //  REMatch may change before backtracking is needed. So we
+      //  keep a clone of it.
+      this.match = (REMatch) match.clone ();
+      this.param = param;
     }
+  }
+
+  Backtrack[] stack;
+  private int size;
+  private int capacity;
+  private static final int INITIAL_CAPACITY = 32;
+  private static final int CAPACITY_INCREMENT = 16;
+
+  BacktrackStack ()
+  {
+    stack = new Backtrack[INITIAL_CAPACITY];
+    size = 0;
+    capacity = INITIAL_CAPACITY;
+  }
+
+  boolean empty ()
+  {
+    return size == 0;
+  }
+
+  Backtrack peek ()
+  {
+    return stack[size - 1];
+  }
+
+  Backtrack pop ()
+  {
+    Backtrack bt = stack[--size];
+    stack[size] = null;
+    return bt;
+  }
+
+  void clear ()
+  {
+    for (int i = 0; i < size; i++)
+      {
+       stack[i] = null;
+      }
+    size = 0;
+  }
+
+  void push (Backtrack bt)
+  {
+    if (size >= capacity)
+      {
+       capacity += CAPACITY_INCREMENT;
+       Backtrack[]newStack = new Backtrack[capacity];
+       System.arraycopy (stack, 0, newStack, 0, size);
+       stack = newStack;
+      }
+    stack[size++] = bt;
+  }
 
 }
index 27e07b2f8ffc266551b84dfaf73e97d0b1597071..070547d7feb34f84b23fa599ad20f3e5a6a2c327 100644 (file)
@@ -48,13 +48,14 @@ package gnu.java.util.regex;
  *
  * @author <A HREF="mailto:wes@cacas.org">Wes Biggs</A>
  */
-public interface CharIndexed {
+public interface CharIndexed
+{
     /**
      * Defines a constant (0xFFFF was somewhat arbitrarily chosen)
      * that can be returned by the charAt() function indicating that
      * the specified index is out of range.
      */
-    char OUT_OF_BOUNDS = '\uFFFF';
+  char OUT_OF_BOUNDS = '\uFFFF';
 
     /**
      * Returns the character at the given offset past the current cursor
@@ -68,66 +69,66 @@ public interface CharIndexed {
      * @return the character at the specified index, or the OUT_OF_BOUNDS
      *   character defined by this interface.
      */
-    char charAt(int index);
+  char charAt (int index);
 
     /**
      * Shifts the input buffer by a given number of positions.  Returns
      * true if the new cursor position is valid.
      */
-    boolean move(int index);
+  boolean move (int index);
 
     /**
      * Shifts the input buffer by a given number of positions.  Returns
      * true if the new cursor position is valid or cursor position is at
      * the end of input.
      */
-    boolean move1(int index); // I cannot think of a better name for this.
+  boolean move1 (int index);   // I cannot think of a better name for this.
 
     /**
      * Returns true if the most recent move() operation placed the cursor
      * position at a valid position in the input.
      */
-    boolean isValid();
+  boolean isValid ();
 
     /**
      * Returns another CharIndexed containing length characters to the left
      * of the given index. The given length is an expected maximum and
      * the returned CharIndexed may not necessarily contain so many characters.
      */
-    CharIndexed lookBehind(int index, int length);
+  CharIndexed lookBehind (int index, int length);
 
     /**
      * Returns the effective length of this CharIndexed
      */
-    int length();
+  int length ();
 
     /**
      * Sets the REMatch last found on this input.
      */
-    void setLastMatch(REMatch match);
+  void setLastMatch (REMatch match);
 
     /**
      * Returns the REMatch last found on this input.
      */
-    REMatch getLastMatch();
+  REMatch getLastMatch ();
 
     /**
      * Sets the information used for hitEnd().
      */
-    void setHitEnd(REMatch match);
+  void setHitEnd (REMatch match);
 
     /**
      * Returns whether the matcher has hit the end of input.
      */
-    boolean hitEnd();
+  boolean hitEnd ();
 
     /**
      * Returns the anchor.
      */
-    int getAnchor();
+  int getAnchor ();
 
     /**
      * Sets the anchor.
      */
-    void setAnchor(int anchor);
+  void setAnchor (int anchor);
 }
index 6f74c992f8f7f565f65fb020d0afbf784e6544cc..565773837e8c8ef1eb4e23e82accc8b020e3125d 100644 (file)
@@ -38,9 +38,11 @@ exception statement from your version. */
 package gnu.java.util.regex;
 import java.nio.CharBuffer;
 
-class CharIndexedCharArray extends CharIndexedCharSequence {
-    
-    CharIndexedCharArray(char[] str, int index) {
-       super(CharBuffer.wrap(str), index);
-    }
+class CharIndexedCharArray extends CharIndexedCharSequence
+{
+
+  CharIndexedCharArray (char[]str, int index)
+  {
+    super (CharBuffer.wrap (str), index);
+  }
 }
index 8a0578eb80fb746aef244f3212dd173fa78cda3d..bc3cbbd1d724665e1d6a5fa1cf7e0157a39d0ac5 100644 (file)
@@ -38,58 +38,82 @@ exception statement from your version. */
 package gnu.java.util.regex;
 import java.io.Serializable;
 
-class CharIndexedCharSequence implements CharIndexed, Serializable {
-    private CharSequence s;
-    private int anchor;
-    private int len;
-    
-    CharIndexedCharSequence(CharSequence s, int index) {
-       this.s = s;
-       len = s.length();
-       anchor = index;
-    }
-
-    public char charAt(int index) {
-       int pos = anchor + index;
-       return ((pos < len) && (pos >= 0)) ? s.charAt(pos) : OUT_OF_BOUNDS;
-    }
-    
-    public boolean isValid() {
-       return (anchor < len);
-    }
-    
-    public boolean move(int index) {
-       return ((anchor += index) < len);
-    }
-
-    public boolean move1(int index) {
-       return ((anchor += index) <= len);
-    }
-
-    public CharIndexed lookBehind(int index, int length) {
-       if (length > (anchor + index)) length = anchor + index;
-       return new CharIndexedCharSequence(s, anchor + index - length);
-    }
-
-    public int length() {
-       return len - anchor;
-    }
-
-    private REMatch lastMatch;
-    public void setLastMatch(REMatch match) {
-       lastMatch = (REMatch)match.clone();
-       lastMatch.anchor = anchor;
-    }
-    public REMatch getLastMatch() { return lastMatch; }
-
-    private int rightmostTriedPosition = 0;
-    public void setHitEnd(REMatch match) {
-        int pos = anchor + match.index;
-        if (pos > rightmostTriedPosition) rightmostTriedPosition = pos;
-    }
-    public boolean hitEnd() { return rightmostTriedPosition >= len; }
-
-    public int getAnchor() { return anchor; }
-    public void setAnchor(int anchor) { this.anchor = anchor; }
+class CharIndexedCharSequence implements CharIndexed, Serializable
+{
+  private CharSequence s;
+  private int anchor;
+  private int len;
+
+    CharIndexedCharSequence (CharSequence s, int index)
+  {
+    this.s = s;
+    len = s.length ();
+    anchor = index;
+  }
+
+  public char charAt (int index)
+  {
+    int pos = anchor + index;
+    return ((pos < len) && (pos >= 0)) ? s.charAt (pos) : OUT_OF_BOUNDS;
+  }
+
+  public boolean isValid ()
+  {
+    return (anchor < len);
+  }
+
+  public boolean move (int index)
+  {
+    return ((anchor += index) < len);
+  }
+
+  public boolean move1 (int index)
+  {
+    return ((anchor += index) <= len);
+  }
+
+  public CharIndexed lookBehind (int index, int length)
+  {
+    if (length > (anchor + index))
+      length = anchor + index;
+    return new CharIndexedCharSequence (s, anchor + index - length);
+  }
+
+  public int length ()
+  {
+    return len - anchor;
+  }
+
+  private REMatch lastMatch;
+  public void setLastMatch (REMatch match)
+  {
+    lastMatch = (REMatch) match.clone ();
+    lastMatch.anchor = anchor;
+  }
+  public REMatch getLastMatch ()
+  {
+    return lastMatch;
+  }
+
+  private int rightmostTriedPosition = 0;
+  public void setHitEnd (REMatch match)
+  {
+    int pos = anchor + match.index;
+    if (pos > rightmostTriedPosition)
+      rightmostTriedPosition = pos;
+  }
+  public boolean hitEnd ()
+  {
+    return rightmostTriedPosition >= len;
+  }
+
+  public int getAnchor ()
+  {
+    return anchor;
+  }
+  public void setAnchor (int anchor)
+  {
+    this.anchor = anchor;
+  }
 
 }
index 844fada51fc7de503061dc698bf2fcf423f794bd..e42710b5de1447ddfb3ab85b53ceeda8cf95bf5b 100644 (file)
@@ -42,154 +42,212 @@ import java.io.InputStream;
 
 // TODO: move(x) shouldn't rely on calling next() x times
 
-class CharIndexedInputStream implements CharIndexed {
-    private static final int BUFFER_INCREMENT = 1024;
-    private static final int UNKNOWN = Integer.MAX_VALUE; // value for end
-    
-    private BufferedInputStream br;
-
-    // so that we don't try to reset() right away
-    private int index = -1;
-
-    private int bufsize = BUFFER_INCREMENT;
-
-    private int end = UNKNOWN;
-
-    private char cached = OUT_OF_BOUNDS;
-
-    // Big enough for a \r\n pair
-    // lookBehind[0] = most recent
-    // lookBehind[1] = second most recent
-    private char[] lookBehind = new char[] { OUT_OF_BOUNDS, OUT_OF_BOUNDS }; 
-    
-    CharIndexedInputStream(InputStream str, int index) {
-       if (str instanceof BufferedInputStream) br = (BufferedInputStream) str;
-       else br = new BufferedInputStream(str,BUFFER_INCREMENT);
-       next();
-       if (index > 0) move(index);
-    }
-    
-    private boolean next() {
-       if (end == 1) return false;
-       end--; // closer to end
-
-       try {
-           if (index != -1) {
-               br.reset();
-           }
-           int i = br.read();
-           br.mark(bufsize);
-           if (i == -1) {
-               end = 1;
-               cached = OUT_OF_BOUNDS;
-               return false;
-           }
-           cached = (char) i;
-           index = 1;
-       } catch (IOException e) { 
-           e.printStackTrace();
-           cached = OUT_OF_BOUNDS;
-           return false; 
+class CharIndexedInputStream implements CharIndexed
+{
+  private static final int BUFFER_INCREMENT = 1024;
+  private static final int UNKNOWN = Integer.MAX_VALUE;        // value for end
+
+  private BufferedInputStream br;
+
+  // so that we don't try to reset() right away
+  private int index = -1;
+
+  private int bufsize = BUFFER_INCREMENT;
+
+  private int end = UNKNOWN;
+
+  private char cached = OUT_OF_BOUNDS;
+
+  // Big enough for a \r\n pair
+  // lookBehind[0] = most recent
+  // lookBehind[1] = second most recent
+  private char[] lookBehind = new char[]{ OUT_OF_BOUNDS, OUT_OF_BOUNDS };
+
+    CharIndexedInputStream (InputStream str, int index)
+  {
+    if (str instanceof BufferedInputStream)
+      br = (BufferedInputStream) str;
+    else
+      br = new BufferedInputStream (str, BUFFER_INCREMENT);
+    next ();
+    if (index > 0)
+      move (index);
+  }
+
+  private boolean next ()
+  {
+    if (end == 1)
+      return false;
+    end--;                     // closer to end
+
+    try
+    {
+      if (index != -1)
+       {
+         br.reset ();
        }
-       return true;
-    }
-    
-    public char charAt(int index) {
-       if (index == 0) {
-           return cached;
-       } else if (index >= end) {
-           return OUT_OF_BOUNDS;
-       } else if (index == -1) {
-           return lookBehind[0];
-       } else if (index == -2) {
-           return lookBehind[1];
-       } else if (index < -2) {
-           return OUT_OF_BOUNDS;
-       } else if (index >= bufsize) {
-           // Allocate more space in the buffer.
-           try {
-               while (bufsize <= index) bufsize += BUFFER_INCREMENT;
-               br.reset();
-               br.mark(bufsize);
-               br.skip(index-1);
-           } catch (IOException e) { }
-       } else if (this.index != index) {
-           try {
-               br.reset();
-               br.skip(index-1);
-           } catch (IOException e) { }
+      int i = br.read ();
+      br.mark (bufsize);
+      if (i == -1)
+       {
+         end = 1;
+         cached = OUT_OF_BOUNDS;
+         return false;
        }
-       char ch = OUT_OF_BOUNDS;
-       
-       try {
-           int i = br.read();
-           this.index = index+1; // this.index is index of next pos relative to charAt(0)
-           if (i == -1) {
-               // set flag that next should fail next time?
-               end = index;
-               return ch;
-           }
-           ch = (char) i;
-       } catch (IOException ie) { }
-       
-       return ch;
-    }
-    
-    public boolean move(int index) {
-       // move read position [index] clicks from 'charAt(0)'
-       boolean retval = true;
-       while (retval && (index-- > 0)) retval = next();
-       return retval;
-    }
-    
-    public boolean isValid() {
-       return (cached != OUT_OF_BOUNDS);
-    }
-
-    public CharIndexed lookBehind(int index, int length) {
-       throw new UnsupportedOperationException(
-           "difficult to look behind for an input stream");
-    }
-
-    public int length() {
-       throw new UnsupportedOperationException(
-           "difficult to tell the length for an input stream");
-    }
-
-    public void setLastMatch(REMatch match) {
-       throw new UnsupportedOperationException(
-           "difficult to support setLastMatch for an input stream");
-    }
-
-    public REMatch getLastMatch() {
-       throw new UnsupportedOperationException(
-           "difficult to support getLastMatch for an input stream");
-    }
-
-    public void setHitEnd(REMatch match) {
-       throw new UnsupportedOperationException(
-           "difficult to support setHitEnd for an input stream");
-    }
-
-    public boolean hitEnd() {
-       throw new UnsupportedOperationException(
-           "difficult to support hitEnd for an input stream");
+      cached = (char) i;
+      index = 1;
+    } catch (IOException e)
+    {
+      e.printStackTrace ();
+      cached = OUT_OF_BOUNDS;
+      return false;
     }
-
-    public int getAnchor() {
-       throw new UnsupportedOperationException(
-           "difficult to support getAnchor for an input stream");
-    }
-
-    public void setAnchor(int anchor) {
-       throw new UnsupportedOperationException(
-           "difficult to support setAnchor for an input stream");
+    return true;
+  }
+
+  public char charAt (int index)
+  {
+    if (index == 0)
+      {
+       return cached;
+      }
+    else if (index >= end)
+      {
+       return OUT_OF_BOUNDS;
+      }
+    else if (index == -1)
+      {
+       return lookBehind[0];
+      }
+    else if (index == -2)
+      {
+       return lookBehind[1];
+      }
+    else if (index < -2)
+      {
+       return OUT_OF_BOUNDS;
+      }
+    else if (index >= bufsize)
+      {
+       // Allocate more space in the buffer.
+       try
+       {
+         while (bufsize <= index)
+           bufsize += BUFFER_INCREMENT;
+         br.reset ();
+         br.mark (bufsize);
+         br.skip (index - 1);
+       }
+       catch (IOException e)
+       {
+       }
+      }
+    else if (this.index != index)
+      {
+       try
+       {
+         br.reset ();
+         br.skip (index - 1);
+       }
+       catch (IOException e)
+       {
+       }
+      }
+    char ch = OUT_OF_BOUNDS;
+
+    try
+    {
+      int i = br.read ();
+      this.index = index + 1;  // this.index is index of next pos relative to charAt(0)
+      if (i == -1)
+       {
+         // set flag that next should fail next time?
+         end = index;
+         return ch;
+       }
+      ch = (char) i;
+    } catch (IOException ie)
+    {
     }
 
-    public boolean move1(int index) {
-       throw new UnsupportedOperationException(
-           "difficult to support move1 for an input stream");
-    }
+    return ch;
+  }
+
+  public boolean move (int index)
+  {
+    // move read position [index] clicks from 'charAt(0)'
+    boolean retval = true;
+    while (retval && (index-- > 0))
+      retval = next ();
+    return retval;
+  }
+
+  public boolean isValid ()
+  {
+    return (cached != OUT_OF_BOUNDS);
+  }
+
+  public CharIndexed lookBehind (int index, int length)
+  {
+    throw new
+      UnsupportedOperationException
+      ("difficult to look behind for an input stream");
+  }
+
+  public int length ()
+  {
+    throw new
+      UnsupportedOperationException
+      ("difficult to tell the length for an input stream");
+  }
+
+  public void setLastMatch (REMatch match)
+  {
+    throw new
+      UnsupportedOperationException
+      ("difficult to support setLastMatch for an input stream");
+  }
+
+  public REMatch getLastMatch ()
+  {
+    throw new
+      UnsupportedOperationException
+      ("difficult to support getLastMatch for an input stream");
+  }
+
+  public void setHitEnd (REMatch match)
+  {
+    throw new
+      UnsupportedOperationException
+      ("difficult to support setHitEnd for an input stream");
+  }
+
+  public boolean hitEnd ()
+  {
+    throw new
+      UnsupportedOperationException
+      ("difficult to support hitEnd for an input stream");
+  }
+
+  public int getAnchor ()
+  {
+    throw new
+      UnsupportedOperationException
+      ("difficult to support getAnchor for an input stream");
+  }
+
+  public void setAnchor (int anchor)
+  {
+    throw new
+      UnsupportedOperationException
+      ("difficult to support setAnchor for an input stream");
+  }
+
+  public boolean move1 (int index)
+  {
+    throw new
+      UnsupportedOperationException
+      ("difficult to support move1 for an input stream");
+  }
 
 }
-
index fab6d78360be8f8c4e257c54c7586d6e1577a638..7a56f487eba76f216aa151a29a6fe98f1599d50b 100644 (file)
@@ -37,8 +37,10 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-class CharIndexedString extends CharIndexedCharSequence {
-    CharIndexedString(String str, int index) {
-       super(str, index);
-    }
+class CharIndexedString extends CharIndexedCharSequence
+{
+  CharIndexedString (String str, int index)
+  {
+    super (str, index);
+  }
 }
index 10005b66831f2bce17221e709afa156a0d24fe22..d6484f89b7c6ba539d6296d645eb194e7e45abcb 100644 (file)
@@ -37,9 +37,11 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-class CharIndexedStringBuffer extends CharIndexedCharSequence {
+class CharIndexedStringBuffer extends CharIndexedCharSequence
+{
 
-    CharIndexedStringBuffer(StringBuffer str, int index) {
-       super(str, index);
-    }
+  CharIndexedStringBuffer (StringBuffer str, int index)
+  {
+    super (str, index);
+  }
 }
index 421640ff293ac4a60947f498236a689715525252..d064f7a3579e006cdaa745e96fbdda82df4daa3e 100644 (file)
@@ -36,12 +36,17 @@ obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
 
 package gnu.java.util.regex;
+
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.InputStream;
 import java.io.Serializable;
+
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Locale;
 import java.util.PropertyResourceBundle;
 import java.util.ResourceBundle;
-import java.util.Vector;
 
 /**
  * RE provides the user interface for compiling and matching regular
@@ -114,13 +119,16 @@ import java.util.Vector;
  * @version 1.1.5-dev, to be released
  */
 
-public class RE extends REToken {
+public class RE extends REToken
+{
 
-  private static final class IntPair implements Serializable {
+  private static final class IntPair implements Serializable
+  {
     public int first, second;
   }
 
-  private static final class CharUnit implements Serializable {
+  private static final class CharUnit implements Serializable
+  {
     public char ch;
     public boolean bk;
   }
@@ -144,8 +152,8 @@ public class RE extends REToken {
   private int numSubs;
 
     /** Minimum length, in characters, of any possible match. */
-    private int minimumLength;
-    private int maximumLength;
+  private int minimumLength;
+  private int maximumLength;
 
   /**
    * Compilation flag. Do  not  differentiate  case.   Subsequent
@@ -263,15 +271,18 @@ public class RE extends REToken {
   public static final int REG_FIX_STARTING_POSITION = 0x1000;
 
   /** Returns a string representing the version of the gnu.regexp package. */
-  public static final String version() {
+  public static final String version ()
+  {
     return VERSION;
   }
 
   // Retrieves a message from the ResourceBundle
-  static final String getLocalizedMessage(String key) {
+  static final String getLocalizedMessage (String key)
+  {
     if (messages == null)
-      messages = PropertyResourceBundle.getBundle(bundle, Locale.getDefault());
-    return messages.getString(key);
+      messages =
+       PropertyResourceBundle.getBundle (bundle, Locale.getDefault ());
+    return messages.getString (key);
   }
 
   /**
@@ -284,8 +295,9 @@ public class RE extends REToken {
    * @exception REException The input pattern could not be parsed.
    * @exception NullPointerException The pattern was null.
    */
-  public RE(Object pattern) throws REException {
-    this(pattern,0,RESyntax.RE_SYNTAX_PERL5,0,0);
+  public RE (Object pattern) throws REException
+  {
+    this (pattern, 0, RESyntax.RE_SYNTAX_PERL5, 0, 0);
   }
 
   /**
@@ -299,8 +311,9 @@ public class RE extends REToken {
    * @exception REException The input pattern could not be parsed.
    * @exception NullPointerException The pattern was null.
    */
-  public RE(Object pattern, int cflags) throws REException {
-    this(pattern,cflags,RESyntax.RE_SYNTAX_PERL5,0,0);
+  public RE (Object pattern, int cflags) throws REException
+  {
+    this (pattern, cflags, RESyntax.RE_SYNTAX_PERL5, 0, 0);
   }
 
   /**
@@ -315,47 +328,75 @@ public class RE extends REToken {
    * @exception REException The input pattern could not be parsed.
    * @exception NullPointerException The pattern was null.
    */
-  public RE(Object pattern, int cflags, RESyntax syntax) throws REException {
-    this(pattern,cflags,syntax,0,0);
+  public RE (Object pattern, int cflags, RESyntax syntax) throws REException
+  {
+    this (pattern, cflags, syntax, 0, 0);
   }
 
   // internal constructor used for alternation
-  private RE(REToken first, REToken last,int subs, int subIndex, int minLength, int maxLength) {
-    super(subIndex);
+  private RE (REToken first, REToken last, int subs, int subIndex,
+             int minLength, int maxLength)
+  {
+    super (subIndex);
     firstToken = first;
     lastToken = last;
     numSubs = subs;
     minimumLength = minLength;
     maximumLength = maxLength;
-    addToken(new RETokenEndSub(subIndex));
+    addToken (new RETokenEndSub (subIndex));
   }
 
-  private RE(Object patternObj, int cflags, RESyntax syntax, int myIndex, int nextSub) throws REException {
-    super(myIndex); // Subexpression index of this token.
-    initialize(patternObj, cflags, syntax, myIndex, nextSub);
+  private RE (Object patternObj, int cflags, RESyntax syntax, int myIndex,
+             int nextSub) throws REException
+  {
+    super (myIndex);           // Subexpression index of this token.
+    initialize (patternObj, cflags, syntax, myIndex, nextSub);
   }
 
-    // For use by subclasses
-    protected RE() { super(0); }
-
-    // The meat of construction
-  protected void initialize(Object patternObj, int cflags, RESyntax syntax, int myIndex, int nextSub) throws REException {
-      char[] pattern;
-    if (patternObj instanceof String) {
-      pattern = ((String) patternObj).toCharArray();
-    } else if (patternObj instanceof char[]) {
-      pattern = (char[]) patternObj;
-    } else if (patternObj instanceof StringBuffer) {
-      pattern = new char [((StringBuffer) patternObj).length()];
-      ((StringBuffer) patternObj).getChars(0,pattern.length,pattern,0);
-    } else {
-       pattern = patternObj.toString().toCharArray();
-    }
+  // For use by subclasses
+  protected RE ()
+  {
+    super (0);
+  }
+
+  // The meat of construction
+  protected void initialize (Object patternObj, int cflags, RESyntax syntax,
+                            int myIndex, int nextSub) throws REException
+  {
+    char[] pattern;
+    if (patternObj instanceof String)
+      {
+       pattern = ((String) patternObj).toCharArray ();
+      }
+    else if (patternObj instanceof char[])
+      {
+       pattern = (char[]) patternObj;
+      }
+    else if (patternObj instanceof StringBuffer)
+      {
+       pattern = new char[((StringBuffer) patternObj).length ()];
+       ((StringBuffer) patternObj).getChars (0, pattern.length, pattern, 0);
+      }
+    else if (patternObj instanceof StringBuilder)
+      {
+       pattern = new char[((StringBuilder) patternObj).length ()];
+       ((StringBuilder) patternObj).getChars (0, pattern.length, pattern, 0);
+      }
+    else if (patternObj instanceof CPStringBuilder)
+      {
+       pattern = new char[((CPStringBuilder) patternObj).length ()];
+       ((CPStringBuilder) patternObj).getChars (0, pattern.length, pattern,
+                                                0);
+      }
+    else
+      {
+       pattern = patternObj.toString ().toCharArray ();
+      }
 
     int pLength = pattern.length;
 
-    numSubs = 0; // Number of subexpressions in this token.
-    Vector branches = null;
+    numSubs = 0;               // Number of subexpressions in this token.
+    ArrayList < REToken > branches = null;
 
     // linked list of tokens (sort of -- some closed loops can exist)
     firstToken = lastToken = null;
@@ -372,14 +413,13 @@ public class RE extends REToken {
     int index = 0;
 
     // this will be the current parse character (pattern[index])
-    CharUnit unit = new CharUnit();
+    CharUnit unit = new CharUnit ();
 
     // This is used for {x,y} calculations
-    IntPair minMax = new IntPair();
+    IntPair minMax = new IntPair ();
 
     // Buffer a token so we can create a TokenRepeated, etc.
     REToken currentToken = null;
-    char ch;
     boolean quot = false;
 
     // Saved syntax and flags.
@@ -387,652 +427,862 @@ public class RE extends REToken {
     int savedCflags = 0;
     boolean flagsSaved = false;
 
-    while (index < pLength) {
-      // read the next character unit (including backslash escapes)
-      index = getCharUnit(pattern,index,unit,quot);
-
-      if (unit.bk)
-        if (unit.ch == 'Q') {
-          quot = true;
-          continue;
-        } else if (unit.ch == 'E') {
-          quot = false;
-          continue;
-        }
-      if (quot)
-       unit.bk = false;
-
-      if (((cflags & REG_X_COMMENTS) > 0) && (!unit.bk) && (!quot)) {
-       if (Character.isWhitespace(unit.ch)) {
-            continue;
-       }
-       if (unit.ch == '#') {
-         for (int i = index; i < pLength; i++) {
-           if (pattern[i] == '\n') {
-             index = i + 1;
+    while (index < pLength)
+      {
+       // read the next character unit (including backslash escapes)
+       index = getCharUnit (pattern, index, unit, quot);
+
+       if (unit.bk)
+         if (unit.ch == 'Q')
+           {
+             quot = true;
              continue;
            }
-           else if (pattern[i] == '\r') {
-             if (i + 1 < pLength && pattern[i + 1] == '\n') {
-               index = i + 2;
-             }
-             else {
-               index = i + 1;
-             }
+         else if (unit.ch == 'E')
+           {
+             quot = false;
              continue;
            }
+       if (quot)
+         unit.bk = false;
+
+       if (((cflags & REG_X_COMMENTS) > 0) && (!unit.bk) && (!quot))
+         {
+           if (Character.isWhitespace (unit.ch))
+             {
+               continue;
+             }
+           if (unit.ch == '#')
+             {
+               for (int i = index; i < pLength; i++)
+                 {
+                   if (pattern[i] == '\n')
+                     {
+                       index = i + 1;
+                       continue;
+                     }
+                   else if (pattern[i] == '\r')
+                     {
+                       if (i + 1 < pLength && pattern[i + 1] == '\n')
+                         {
+                           index = i + 2;
+                         }
+                       else
+                         {
+                           index = i + 1;
+                         }
+                       continue;
+                     }
+                 }
+               index = pLength;
+               continue;
+             }
          }
-         index = pLength;
-         continue;
-       }
-      }
 
-      // ALTERNATION OPERATOR
-      //  \| or | (if RE_NO_BK_VBAR) or newline (if RE_NEWLINE_ALT)
-      //  not available if RE_LIMITED_OPS is set
-
-      // TODO: the '\n' literal here should be a test against REToken.newline,
-      // which unfortunately may be more than a single character.
-      if ( ( (unit.ch == '|' && (syntax.get(RESyntax.RE_NO_BK_VBAR) ^ (unit.bk || quot)))
-            || (syntax.get(RESyntax.RE_NEWLINE_ALT) && (unit.ch == '\n') && !(unit.bk || quot)) )
-          && !syntax.get(RESyntax.RE_LIMITED_OPS)) {
-       // make everything up to here be a branch. create vector if nec.
-       addToken(currentToken);
-       RE theBranch = new RE(firstToken, lastToken, numSubs, subIndex, minimumLength, maximumLength);
-       minimumLength = 0;
-       maximumLength = 0;
-       if (branches == null) {
-           branches = new Vector();
-       }
-       branches.addElement(theBranch);
-       firstToken = lastToken = currentToken = null;
-      }
-      
-      // INTERVAL OPERATOR:
-      //  {x} | {x,} | {x,y}  (RE_INTERVALS && RE_NO_BK_BRACES)
-      //  \{x\} | \{x,\} | \{x,y\} (RE_INTERVALS && !RE_NO_BK_BRACES)
-      //
-      // OPEN QUESTION: 
-      //  what is proper interpretation of '{' at start of string?
-      //
-      // This method used to check "repeat.empty.token" to avoid such regexp
-      // as "(a*){2,}", but now "repeat.empty.token" is allowed.
-
-      else if ((unit.ch == '{') && syntax.get(RESyntax.RE_INTERVALS) && (syntax.get(RESyntax.RE_NO_BK_BRACES) ^ (unit.bk || quot))) {
-       int newIndex = getMinMax(pattern,index,minMax,syntax);
-        if (newIndex > index) {
-          if (minMax.first > minMax.second)
-            throw new REException(getLocalizedMessage("interval.order"),REException.REG_BADRPT,newIndex);
-          if (currentToken == null)
-            throw new REException(getLocalizedMessage("repeat.no.token"),REException.REG_BADRPT,newIndex);
-          if (currentToken instanceof RETokenRepeated) 
-            throw new REException(getLocalizedMessage("repeat.chained"),REException.REG_BADRPT,newIndex);
-          if (currentToken instanceof RETokenWordBoundary || currentToken instanceof RETokenWordBoundary)
-            throw new REException(getLocalizedMessage("repeat.assertion"),REException.REG_BADRPT,newIndex);
-          index = newIndex;
-          currentToken = setRepeated(currentToken,minMax.first,minMax.second,index); 
-        }
-        else {
-          addToken(currentToken);
-          currentToken = new RETokenChar(subIndex,unit.ch,insens);
-         if (insensUSASCII) currentToken.unicodeAware = false;
-        } 
-      }
-      
-      // LIST OPERATOR:
-      //  [...] | [^...]
-
-      else if ((unit.ch == '[') && !(unit.bk || quot)) {
-       // Create a new RETokenOneOf
-       ParseCharClassResult result = parseCharClass(
-               subIndex, pattern, index, pLength, cflags, syntax, 0);
-       addToken(currentToken);
-       currentToken = result.token;
-       index = result.index;
-      }
+       // ALTERNATION OPERATOR
+       //  \| or | (if RE_NO_BK_VBAR) or newline (if RE_NEWLINE_ALT)
+       //  not available if RE_LIMITED_OPS is set
+
+       // TODO: the '\n' literal here should be a test against REToken.newline,
+       // which unfortunately may be more than a single character.
+       if (((unit.ch == '|'
+             && (syntax.get (RESyntax.RE_NO_BK_VBAR) ^ (unit.bk || quot)))
+            || (syntax.get (RESyntax.RE_NEWLINE_ALT) && (unit.ch == '\n')
+                && !(unit.bk || quot)))
+           && !syntax.get (RESyntax.RE_LIMITED_OPS))
+         {
+           // make everything up to here be a branch. create vector if nec.
+           addToken (currentToken);
+           RE theBranch =
+             new RE (firstToken, lastToken, numSubs, subIndex, minimumLength,
+                     maximumLength);
+           minimumLength = 0;
+           maximumLength = 0;
+           if (branches == null)
+             {
+               branches = new ArrayList < REToken > ();
+             }
+           branches.add (theBranch);
+           firstToken = lastToken = currentToken = null;
+         }
 
-      // SUBEXPRESSIONS
-      //  (...) | \(...\) depending on RE_NO_BK_PARENS
-
-      else if ((unit.ch == '(') && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot))) {
-       boolean pure = false;
-       boolean comment = false;
-        boolean lookAhead = false;
-        boolean lookBehind = false;
-        boolean independent = false;
-        boolean negativelh = false;
-        boolean negativelb = false;
-       if ((index+1 < pLength) && (pattern[index] == '?')) {
-         switch (pattern[index+1]) {
-          case '!':
-            if (syntax.get(RESyntax.RE_LOOKAHEAD)) {
-              pure = true;
-              negativelh = true;
-              lookAhead = true;
-              index += 2;
-            }
-            break;
-          case '=':
-            if (syntax.get(RESyntax.RE_LOOKAHEAD)) {
-              pure = true;
-              lookAhead = true;
-              index += 2;
-            }
-            break;
-         case '<':
-           // We assume that if the syntax supports look-ahead,
-           // it also supports look-behind.
-           if (syntax.get(RESyntax.RE_LOOKAHEAD)) {
-               index++;
-               switch (pattern[index +1]) {
-               case '!':
-                 pure = true;
-                 negativelb = true;
-                 lookBehind = true;
-                 index += 2;
-                 break;
-               case '=':
-                 pure = true;
-                 lookBehind = true;
-                 index += 2;
-               }
-           }
-           break;
-         case '>':
-           // We assume that if the syntax supports look-ahead,
-           // it also supports independent group.
-            if (syntax.get(RESyntax.RE_LOOKAHEAD)) {
-              pure = true;
-              independent = true;
-              index += 2;
-            }
-            break;
-         case 'i':
-         case 'd':
-         case 'm':
-         case 's':
-         case 'u':
-         case 'x':
-         case '-':
-            if (!syntax.get(RESyntax.RE_EMBEDDED_FLAGS)) break;
-           // Set or reset syntax flags.
-           int flagIndex = index + 1;
-           int endFlag = -1;
-           RESyntax newSyntax = new RESyntax(syntax);
-           int newCflags = cflags;
-           boolean negate = false;
-           while (flagIndex < pLength && endFlag < 0) {
-               switch(pattern[flagIndex]) {
-               case 'i':
-                 if (negate)
-                   newCflags &= ~REG_ICASE;
-                 else
-                   newCflags |= REG_ICASE;
-                 flagIndex++;
-                 break;
-               case 'd':
-                 if (negate)
-                   newSyntax.setLineSeparator(RESyntax.DEFAULT_LINE_SEPARATOR);
-                 else
-                   newSyntax.setLineSeparator("\n");
-                 flagIndex++;
-                 break;
-               case 'm':
-                 if (negate)
-                   newCflags &= ~REG_MULTILINE;
-                 else
-                   newCflags |= REG_MULTILINE;
-                 flagIndex++;
-                 break;
-               case 's':
-                 if (negate)
-                   newCflags &= ~REG_DOT_NEWLINE;
-                 else
-                   newCflags |= REG_DOT_NEWLINE;
-                 flagIndex++;
-                 break;
-               case 'u':
-                 if (negate)
-                   newCflags |= REG_ICASE_USASCII;
-                 else
-                   newCflags &= ~REG_ICASE_USASCII;
-                 flagIndex++;
-                 break;
-               case 'x':
-                 if (negate)
-                   newCflags &= ~REG_X_COMMENTS;
-                 else
-                   newCflags |= REG_X_COMMENTS;
-                 flagIndex++;
-                 break;
-               case '-':
-                 negate = true;
-                 flagIndex++;
-                 break;
-               case ':':
-               case ')':
-                 endFlag = pattern[flagIndex];
-                 break;
-               default:
-                 throw new REException(getLocalizedMessage("repeat.no.token"), REException.REG_BADRPT, index);
+       // INTERVAL OPERATOR:
+       //  {x} | {x,} | {x,y}  (RE_INTERVALS && RE_NO_BK_BRACES)
+       //  \{x\} | \{x,\} | \{x,y\} (RE_INTERVALS && !RE_NO_BK_BRACES)
+       //
+       // OPEN QUESTION: 
+       //  what is proper interpretation of '{' at start of string?
+       //
+       // This method used to check "repeat.empty.token" to avoid such regexp
+       // as "(a*){2,}", but now "repeat.empty.token" is allowed.
+
+       else if ((unit.ch == '{') && syntax.get (RESyntax.RE_INTERVALS)
+                && (syntax.
+                    get (RESyntax.RE_NO_BK_BRACES) ^ (unit.bk || quot)))
+         {
+           int newIndex = getMinMax (pattern, index, minMax, syntax);
+           if (newIndex > index)
+             {
+               if (minMax.first > minMax.second)
+                 throw new
+                   REException (getLocalizedMessage ("interval.order"),
+                                REException.REG_BADRPT, newIndex);
+               if (currentToken == null)
+                 throw new
+                   REException (getLocalizedMessage ("repeat.no.token"),
+                                REException.REG_BADRPT, newIndex);
+               if (currentToken instanceof RETokenRepeated)
+                 throw new
+                   REException (getLocalizedMessage ("repeat.chained"),
+                                REException.REG_BADRPT, newIndex);
+               if (currentToken instanceof RETokenWordBoundary
+                   || currentToken instanceof RETokenWordBoundary)
+                 throw new
+                   REException (getLocalizedMessage ("repeat.assertion"),
+                                REException.REG_BADRPT, newIndex);
+               index = newIndex;
+               currentToken =
+                 setRepeated (currentToken, minMax.first, minMax.second,
+                              index);
+             }
+           else
+             {
+               addToken (currentToken);
+               currentToken = new RETokenChar (subIndex, unit.ch, insens);
+               if (insensUSASCII)
+                 currentToken.unicodeAware = false;
+             }
+         }
+
+       // LIST OPERATOR:
+       //  [...] | [^...]
+
+       else if ((unit.ch == '[') && !(unit.bk || quot))
+         {
+           // Create a new RETokenOneOf
+           ParseCharClassResult result =
+             parseCharClass (subIndex, pattern, index, pLength, cflags,
+                             syntax, 0);
+           addToken (currentToken);
+           currentToken = result.token;
+           index = result.index;
+         }
+
+       // SUBEXPRESSIONS
+       //  (...) | \(...\) depending on RE_NO_BK_PARENS
+
+       else if ((unit.ch == '(')
+                && (syntax.
+                    get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))
+         {
+           boolean pure = false;
+           boolean comment = false;
+           boolean lookAhead = false;
+           boolean lookBehind = false;
+           boolean independent = false;
+           boolean negativelh = false;
+           boolean negativelb = false;
+           if ((index + 1 < pLength) && (pattern[index] == '?'))
+             {
+               switch (pattern[index + 1])
+                 {
+                 case '!':
+                   if (syntax.get (RESyntax.RE_LOOKAHEAD))
+                     {
+                       pure = true;
+                       negativelh = true;
+                       lookAhead = true;
+                       index += 2;
+                     }
+                   break;
+                 case '=':
+                   if (syntax.get (RESyntax.RE_LOOKAHEAD))
+                     {
+                       pure = true;
+                       lookAhead = true;
+                       index += 2;
+                     }
+                   break;
+                 case '<':
+                   // We assume that if the syntax supports look-ahead,
+                   // it also supports look-behind.
+                   if (syntax.get (RESyntax.RE_LOOKAHEAD))
+                     {
+                       index++;
+                       switch (pattern[index + 1])
+                         {
+                         case '!':
+                           pure = true;
+                           negativelb = true;
+                           lookBehind = true;
+                           index += 2;
+                           break;
+                         case '=':
+                           pure = true;
+                           lookBehind = true;
+                           index += 2;
+                         }
+                     }
+                   break;
+                 case '>':
+                   // We assume that if the syntax supports look-ahead,
+                   // it also supports independent group.
+                   if (syntax.get (RESyntax.RE_LOOKAHEAD))
+                     {
+                       pure = true;
+                       independent = true;
+                       index += 2;
+                     }
+                   break;
+                 case 'i':
+                 case 'd':
+                 case 'm':
+                 case 's':
+                 case 'u':
+                 case 'x':
+                 case '-':
+                   if (!syntax.get (RESyntax.RE_EMBEDDED_FLAGS))
+                     break;
+                   // Set or reset syntax flags.
+                   int flagIndex = index + 1;
+                   int endFlag = -1;
+                   RESyntax newSyntax = new RESyntax (syntax);
+                   int newCflags = cflags;
+                   boolean negate = false;
+                   while (flagIndex < pLength && endFlag < 0)
+                     {
+                       switch (pattern[flagIndex])
+                         {
+                         case 'i':
+                           if (negate)
+                             newCflags &= ~REG_ICASE;
+                           else
+                             newCflags |= REG_ICASE;
+                           flagIndex++;
+                           break;
+                         case 'd':
+                           if (negate)
+                             newSyntax.setLineSeparator (RESyntax.
+                                                         DEFAULT_LINE_SEPARATOR);
+                           else
+                             newSyntax.setLineSeparator ("\n");
+                           flagIndex++;
+                           break;
+                         case 'm':
+                           if (negate)
+                             newCflags &= ~REG_MULTILINE;
+                           else
+                             newCflags |= REG_MULTILINE;
+                           flagIndex++;
+                           break;
+                         case 's':
+                           if (negate)
+                             newCflags &= ~REG_DOT_NEWLINE;
+                           else
+                             newCflags |= REG_DOT_NEWLINE;
+                           flagIndex++;
+                           break;
+                         case 'u':
+                           if (negate)
+                             newCflags |= REG_ICASE_USASCII;
+                           else
+                             newCflags &= ~REG_ICASE_USASCII;
+                           flagIndex++;
+                           break;
+                         case 'x':
+                           if (negate)
+                             newCflags &= ~REG_X_COMMENTS;
+                           else
+                             newCflags |= REG_X_COMMENTS;
+                           flagIndex++;
+                           break;
+                         case '-':
+                           negate = true;
+                           flagIndex++;
+                           break;
+                         case ':':
+                         case ')':
+                           endFlag = pattern[flagIndex];
+                           break;
+                         default:
+                           throw new
+                             REException (getLocalizedMessage
+                                          ("repeat.no.token"),
+                                          REException.REG_BADRPT, index);
+                         }
+                     }
+                   if (endFlag == ')')
+                     {
+                       syntax = newSyntax;
+                       cflags = newCflags;
+                       insens = ((cflags & REG_ICASE) > 0);
+                       insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
+                       // This can be treated as though it were a comment.
+                       comment = true;
+                       index = flagIndex - 1;
+                       break;
+                     }
+                   if (endFlag == ':')
+                     {
+                       savedSyntax = syntax;
+                       savedCflags = cflags;
+                       flagsSaved = true;
+                       syntax = newSyntax;
+                       cflags = newCflags;
+                       insens = ((cflags & REG_ICASE) > 0);
+                       insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
+                       index = flagIndex - 1;
+                       // Fall through to the next case.
+                     }
+                   else
+                     {
+                       throw new
+                         REException (getLocalizedMessage
+                                      ("unmatched.paren"),
+                                      REException.REG_ESUBREG, index);
+                     }
+                 case ':':
+                   if (syntax.get (RESyntax.RE_PURE_GROUPING))
+                     {
+                       pure = true;
+                       index += 2;
+                     }
+                   break;
+                 case '#':
+                   if (syntax.get (RESyntax.RE_COMMENTS))
+                     {
+                       comment = true;
+                     }
+                   break;
+                 default:
+                   throw new
+                     REException (getLocalizedMessage ("repeat.no.token"),
+                                  REException.REG_BADRPT, index);
+                 }
+             }
+
+           if (index >= pLength)
+             {
+               throw new
+                 REException (getLocalizedMessage ("unmatched.paren"),
+                              REException.REG_ESUBREG, index);
+             }
+
+           // find end of subexpression
+           int endIndex = index;
+           int nextIndex = index;
+           int nested = 0;
+
+           while (((nextIndex =
+                    getCharUnit (pattern, endIndex, unit, false)) > 0)
+                  && !(nested == 0 && (unit.ch == ')')
+                       && (syntax.
+                           get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk
+                                                             || quot))))
+             {
+               if ((endIndex = nextIndex) >= pLength)
+                 throw new
+                   REException (getLocalizedMessage ("subexpr.no.end"),
+                                REException.REG_ESUBREG, nextIndex);
+               else
+             if ((unit.ch == '[') && !(unit.bk || quot))
+               {
+                 // I hate to do something similar to the LIST OPERATOR matters
+                 // above, but ...
+                 int listIndex = nextIndex;
+                 if (listIndex < pLength && pattern[listIndex] == '^')
+                   listIndex++;
+                 if (listIndex < pLength && pattern[listIndex] == ']')
+                   listIndex++;
+                 int listEndIndex = -1;
+                 int listNest = 0;
+                 while (listIndex < pLength && listEndIndex < 0)
+                   {
+                     switch (pattern[listIndex++])
+                       {
+                       case '\\':
+                         listIndex++;
+                         break;
+                       case '[':
+                         // Sun's API document says that regexp like "[a-d[m-p]]"
+                         // is legal. Even something like "[[[^]]]]" is accepted.
+                         listNest++;
+                         if (listIndex < pLength
+                             && pattern[listIndex] == '^')
+                           listIndex++;
+                         if (listIndex < pLength
+                             && pattern[listIndex] == ']')
+                           listIndex++;
+                         break;
+                       case ']':
+                         if (listNest == 0)
+                           listEndIndex = listIndex;
+                         listNest--;
+                         break;
+                       }
+                   }
+                 if (listEndIndex >= 0)
+                   {
+                     nextIndex = listEndIndex;
+                     if ((endIndex = nextIndex) >= pLength)
+                       throw new
+                         REException (getLocalizedMessage ("subexpr.no.end"),
+                                      REException.REG_ESUBREG, nextIndex);
+                     else
+                     continue;
+                   }
+                 throw new
+                   REException (getLocalizedMessage ("subexpr.no.end"),
+                                REException.REG_ESUBREG, nextIndex);
                }
-           }
-           if (endFlag == ')') {
-               syntax = newSyntax;
-               cflags = newCflags;
-               insens = ((cflags & REG_ICASE) > 0);
-               insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
-               // This can be treated as though it were a comment.
-               comment = true;
-               index = flagIndex - 1;
-               break;
-           }
-           if (endFlag == ':') {
-               savedSyntax = syntax;
-               savedCflags = cflags;
-               flagsSaved = true;
-               syntax = newSyntax;
-               cflags = newCflags;
-               insens = ((cflags & REG_ICASE) > 0);
-               insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
-               index = flagIndex -1;
-               // Fall through to the next case.
-           }
-           else {
-               throw new REException(getLocalizedMessage("unmatched.paren"), REException.REG_ESUBREG,index);
-           }
-         case ':':
-           if (syntax.get(RESyntax.RE_PURE_GROUPING)) {
-             pure = true;
-             index += 2;
-           }
-           break;
-         case '#':
-           if (syntax.get(RESyntax.RE_COMMENTS)) {
-             comment = true;
-           }
-           break;
-          default:
-            throw new REException(getLocalizedMessage("repeat.no.token"), REException.REG_BADRPT, index);
+             else if (unit.ch == '('
+                      && (syntax.
+                          get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk
+                                                            || quot)))
+               nested++;
+             else if (unit.ch == ')'
+                      && (syntax.
+                          get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk
+                                                            || quot)))
+               nested--;
+             }
+
+           // endIndex is now position at a ')','\)' 
+           // nextIndex is end of string or position after ')' or '\)'
+
+           if (comment)
+             index = nextIndex;
+           else
+             {                 // not a comment
+               // create RE subexpression as token.
+               addToken (currentToken);
+               if (!pure)
+                 {
+                   numSubs++;
+                 }
+
+               int useIndex = (pure || lookAhead || lookBehind
+                               || independent) ? 0 : nextSub + numSubs;
+               currentToken =
+                 new RE (String.valueOf (pattern, index, endIndex - index).
+                         toCharArray (), cflags, syntax, useIndex,
+                         nextSub + numSubs);
+               numSubs += ((RE) currentToken).getNumSubs ();
+
+               if (lookAhead)
+                 {
+                   currentToken =
+                     new RETokenLookAhead (currentToken, negativelh);
+                 }
+               else if (lookBehind)
+                 {
+                   currentToken =
+                     new RETokenLookBehind (currentToken, negativelb);
+                 }
+               else if (independent)
+                 {
+                   currentToken = new RETokenIndependent (currentToken);
+                 }
+
+               index = nextIndex;
+               if (flagsSaved)
+                 {
+                   syntax = savedSyntax;
+                   cflags = savedCflags;
+                   insens = ((cflags & REG_ICASE) > 0);
+                   insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
+                   flagsSaved = false;
+                 }
+             }                 // not a comment
+         }                     // subexpression
+
+       // UNMATCHED RIGHT PAREN
+       // ) or \) throw exception if
+       // !syntax.get(RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD)
+       else if (!syntax.get (RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD)
+                && ((unit.ch == ')')
+                    && (syntax.
+                        get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot))))
+         {
+           throw new REException (getLocalizedMessage ("unmatched.paren"),
+                                  REException.REG_EPAREN, index);
          }
-       }
-
-       if (index >= pLength) {
-           throw new REException(getLocalizedMessage("unmatched.paren"), REException.REG_ESUBREG,index);
-       }
-
-       // find end of subexpression
-       int endIndex = index;
-       int nextIndex = index;
-       int nested = 0;
-
-       while ( ((nextIndex = getCharUnit(pattern,endIndex,unit,false)) > 0)
-               && !(nested == 0 && (unit.ch == ')') && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot))) ) {
-         if ((endIndex = nextIndex) >= pLength)
-           throw new REException(getLocalizedMessage("subexpr.no.end"),REException.REG_ESUBREG,nextIndex);
-         else if ((unit.ch == '[') && !(unit.bk || quot)) {
-           // I hate to do something similar to the LIST OPERATOR matters
-           // above, but ...
-           int listIndex = nextIndex;
-           if (listIndex < pLength && pattern[listIndex] == '^') listIndex++;
-           if (listIndex < pLength && pattern[listIndex] == ']') listIndex++;
-           int listEndIndex = -1;
-           int listNest = 0;
-           while (listIndex < pLength && listEndIndex < 0) {
-             switch(pattern[listIndex++]) {
-               case '\\':
-                 listIndex++;
-                 break;
-               case '[':
-                 // Sun's API document says that regexp like "[a-d[m-p]]"
-                 // is legal. Even something like "[[[^]]]]" is accepted.
-                 listNest++;
-                 if (listIndex < pLength && pattern[listIndex] == '^') listIndex++;
-                 if (listIndex < pLength && pattern[listIndex] == ']') listIndex++;
-                 break;
-               case ']':
-                 if (listNest == 0)
-                   listEndIndex = listIndex;
-                 listNest--;
-                 break;
+
+       // START OF LINE OPERATOR
+       //  ^
+
+       else if ((unit.ch == '^') && !(unit.bk || quot))
+         {
+           addToken (currentToken);
+           currentToken = null;
+           RETokenStart token = null;
+           if ((cflags & REG_MULTILINE) > 0)
+             {
+               String sep = syntax.getLineSeparator ();
+               if (sep == null)
+                 {
+                   token = new RETokenStart (subIndex, null, true);
+                 }
+               else
+                 {
+                   token = new RETokenStart (subIndex, sep);
+                 }
              }
-           }
-           if (listEndIndex >= 0) {
-             nextIndex = listEndIndex;
-             if ((endIndex = nextIndex) >= pLength)
-               throw new REException(getLocalizedMessage("subexpr.no.end"),REException.REG_ESUBREG,nextIndex);
-             else
-               continue;
-           }
-           throw new REException(getLocalizedMessage("subexpr.no.end"),REException.REG_ESUBREG,nextIndex);
+           else
+             {
+               token = new RETokenStart (subIndex, null);
+             }
+           addToken (token);
          }
-         else if (unit.ch == '(' && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))
-           nested++;
-         else if (unit.ch == ')' && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))
-           nested--;
-       }
-
-       // endIndex is now position at a ')','\)' 
-       // nextIndex is end of string or position after ')' or '\)'
-
-       if (comment) index = nextIndex;
-       else { // not a comment
-         // create RE subexpression as token.
-         addToken(currentToken);
-         if (!pure) {
-           numSubs++;
+
+       // END OF LINE OPERATOR
+       //  $
+
+       else if ((unit.ch == '$') && !(unit.bk || quot))
+         {
+           addToken (currentToken);
+           currentToken = null;
+           RETokenEnd token = null;
+           if ((cflags & REG_MULTILINE) > 0)
+             {
+               String sep = syntax.getLineSeparator ();
+               if (sep == null)
+                 {
+                   token = new RETokenEnd (subIndex, null, true);
+                 }
+               else
+                 {
+                   token = new RETokenEnd (subIndex, sep);
+                 }
+             }
+           else
+             {
+               token = new RETokenEnd (subIndex, null);
+             }
+           addToken (token);
          }
 
-         int useIndex = (pure || lookAhead || lookBehind || independent) ?
-                        0 : nextSub + numSubs;
-         currentToken = new RE(String.valueOf(pattern,index,endIndex-index).toCharArray(),cflags,syntax,useIndex,nextSub + numSubs);
-         numSubs += ((RE) currentToken).getNumSubs();
+       // MATCH-ANY-CHARACTER OPERATOR (except possibly newline and null)
+       //  .
 
-          if (lookAhead) {
-             currentToken = new RETokenLookAhead(currentToken,negativelh);
+       else if ((unit.ch == '.') && !(unit.bk || quot))
+         {
+           addToken (currentToken);
+           currentToken =
+             new RETokenAny (subIndex, syntax.get (RESyntax.RE_DOT_NEWLINE)
+                             || ((cflags & REG_DOT_NEWLINE) > 0),
+                             syntax.get (RESyntax.RE_DOT_NOT_NULL));
          }
-          else if (lookBehind) {
-             currentToken = new RETokenLookBehind(currentToken,negativelb);
-         }
-          else if (independent) {
-             currentToken = new RETokenIndependent(currentToken);
+
+       // ZERO-OR-MORE REPEAT OPERATOR
+       //  *
+       //
+       // This method used to check "repeat.empty.token" to avoid such regexp
+       // as "(a*)*", but now "repeat.empty.token" is allowed.
+
+       else if ((unit.ch == '*') && !(unit.bk || quot))
+         {
+           if (currentToken == null)
+             throw new REException (getLocalizedMessage ("repeat.no.token"),
+                                    REException.REG_BADRPT, index);
+           if (currentToken instanceof RETokenRepeated)
+             throw new REException (getLocalizedMessage ("repeat.chained"),
+                                    REException.REG_BADRPT, index);
+           if (currentToken instanceof RETokenWordBoundary
+               || currentToken instanceof RETokenWordBoundary)
+             throw new REException (getLocalizedMessage ("repeat.assertion"),
+                                    REException.REG_BADRPT, index);
+           currentToken =
+             setRepeated (currentToken, 0, Integer.MAX_VALUE, index);
          }
 
-         index = nextIndex;
-         if (flagsSaved) {
-             syntax = savedSyntax;
-             cflags = savedCflags;
-             insens = ((cflags & REG_ICASE) > 0);
-             insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
-             flagsSaved = false;
+       // ONE-OR-MORE REPEAT OPERATOR / POSSESSIVE MATCHING OPERATOR
+       //  + | \+ depending on RE_BK_PLUS_QM
+       //  not available if RE_LIMITED_OPS is set
+       //
+       // This method used to check "repeat.empty.token" to avoid such regexp
+       // as "(a*)+", but now "repeat.empty.token" is allowed.
+
+       else if ((unit.ch == '+') && !syntax.get (RESyntax.RE_LIMITED_OPS)
+                && (!syntax.
+                    get (RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot)))
+         {
+           if (currentToken == null)
+             throw new REException (getLocalizedMessage ("repeat.no.token"),
+                                    REException.REG_BADRPT, index);
+
+           // Check for possessive matching on RETokenRepeated
+           if (currentToken instanceof RETokenRepeated)
+             {
+               RETokenRepeated tokenRep = (RETokenRepeated) currentToken;
+               if (syntax.get (RESyntax.RE_POSSESSIVE_OPS)
+                   && !tokenRep.isPossessive () && !tokenRep.isStingy ())
+                 tokenRep.makePossessive ();
+               else
+                 throw new
+                   REException (getLocalizedMessage ("repeat.chained"),
+                                REException.REG_BADRPT, index);
+
+             }
+           else if (currentToken instanceof RETokenWordBoundary
+                    || currentToken instanceof RETokenWordBoundary)
+             throw new REException (getLocalizedMessage ("repeat.assertion"),
+                                    REException.REG_BADRPT, index);
+           else
+           currentToken =
+             setRepeated (currentToken, 1, Integer.MAX_VALUE, index);
          }
-       } // not a comment
-      } // subexpression
-    
-      // UNMATCHED RIGHT PAREN
-      // ) or \) throw exception if
-      // !syntax.get(RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD)
-      else if (!syntax.get(RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD) && ((unit.ch == ')') && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))) {
-       throw new REException(getLocalizedMessage("unmatched.paren"),REException.REG_EPAREN,index);
-      }
 
-      // START OF LINE OPERATOR
-      //  ^
-
-      else if ((unit.ch == '^') && !(unit.bk || quot)) {
-       addToken(currentToken);
-       currentToken = null;
-       RETokenStart token = null;
-       if ((cflags & REG_MULTILINE) > 0) {
-           String sep = syntax.getLineSeparator();
-           if (sep == null) {
-               token = new RETokenStart(subIndex, null, true);
-           }
-           else {
-               token = new RETokenStart(subIndex, sep);
-           }
-       }
-       else {
-           token = new RETokenStart(subIndex, null);
-       }
-       addToken(token);
-      }
+       // ZERO-OR-ONE REPEAT OPERATOR / STINGY MATCHING OPERATOR
+       //  ? | \? depending on RE_BK_PLUS_QM
+       //  not available if RE_LIMITED_OPS is set
+       //  stingy matching if RE_STINGY_OPS is set and it follows a quantifier
+
+       else if ((unit.ch == '?') && !syntax.get (RESyntax.RE_LIMITED_OPS)
+                && (!syntax.
+                    get (RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot)))
+         {
+           if (currentToken == null)
+             throw new REException (getLocalizedMessage ("repeat.no.token"),
+                                    REException.REG_BADRPT, index);
+
+           // Check for stingy matching on RETokenRepeated
+           if (currentToken instanceof RETokenRepeated)
+             {
+               RETokenRepeated tokenRep = (RETokenRepeated) currentToken;
+               if (syntax.get (RESyntax.RE_STINGY_OPS)
+                   && !tokenRep.isStingy () && !tokenRep.isPossessive ())
+                 tokenRep.makeStingy ();
+               else
+                 throw new
+                   REException (getLocalizedMessage ("repeat.chained"),
+                                REException.REG_BADRPT, index);
+             }
+           else if (currentToken instanceof RETokenWordBoundary
+                    || currentToken instanceof RETokenWordBoundary)
+             throw new REException (getLocalizedMessage ("repeat.assertion"),
+                                    REException.REG_BADRPT, index);
+           else
+           currentToken = setRepeated (currentToken, 0, 1, index);
+         }
 
-      // END OF LINE OPERATOR
-      //  $
-
-      else if ((unit.ch == '$') && !(unit.bk || quot)) {
-       addToken(currentToken);
-       currentToken = null;
-       RETokenEnd token = null;
-       if ((cflags & REG_MULTILINE) > 0) {
-           String sep = syntax.getLineSeparator();
-           if (sep == null) {
-               token = new RETokenEnd(subIndex, null, true);
-           }
-           else {
-               token = new RETokenEnd(subIndex, sep);
-           }
-       }
-       else {
-           token = new RETokenEnd(subIndex, null);
-       }
-       addToken(token);
-      }
+       // OCTAL CHARACTER
+       //  \0377
+
+       else if (unit.bk && (unit.ch == '0')
+                && syntax.get (RESyntax.RE_OCTAL_CHAR))
+         {
+           CharExpression ce =
+             getCharExpression (pattern, index - 2, pLength, syntax);
+           if (ce == null)
+             throw new REException ("invalid octal character",
+                                    REException.REG_ESCAPE, index);
+           index = index - 2 + ce.len;
+           addToken (currentToken);
+           currentToken = new RETokenChar (subIndex, ce.ch, insens);
+           if (insensUSASCII)
+             currentToken.unicodeAware = false;
+         }
 
-      // MATCH-ANY-CHARACTER OPERATOR (except possibly newline and null)
-      //  .
+       // BACKREFERENCE OPERATOR
+       //  \1 \2 ... \9 and \10 \11 \12 ...
+       // not available if RE_NO_BK_REFS is set
+       // Perl recognizes \10, \11, and so on only if enough number of
+       // parentheses have opened before it, otherwise they are treated
+       // as aliases of \010, \011, ... (octal characters).  In case of
+       // Sun's JDK, octal character expression must always begin with \0.
+       // We will do as JDK does. But FIXME, take a look at "(a)(b)\29".
+       // JDK treats \2 as a back reference to the 2nd group because
+       // there are only two groups. But in our poor implementation,
+       // we cannot help but treat \29 as a back reference to the 29th group.
+
+       else if (unit.bk && Character.isDigit (unit.ch)
+                && !syntax.get (RESyntax.RE_NO_BK_REFS))
+         {
+           addToken (currentToken);
+           int numBegin = index - 1;
+           int numEnd = pLength;
+           for (int i = index; i < pLength; i++)
+             {
+               if (!Character.isDigit (pattern[i]))
+                 {
+                   numEnd = i;
+                   break;
+                 }
+             }
+           int num = parseInt (pattern, numBegin, numEnd - numBegin, 10);
 
-      else if ((unit.ch == '.') && !(unit.bk || quot)) {
-       addToken(currentToken);
-       currentToken = new RETokenAny(subIndex,syntax.get(RESyntax.RE_DOT_NEWLINE) || ((cflags & REG_DOT_NEWLINE) > 0),syntax.get(RESyntax.RE_DOT_NOT_NULL));
-      }
+           currentToken = new RETokenBackRef (subIndex, num, insens);
+           if (insensUSASCII)
+             currentToken.unicodeAware = false;
+           index = numEnd;
+         }
 
-      // ZERO-OR-MORE REPEAT OPERATOR
-      //  *
-      //
-      // This method used to check "repeat.empty.token" to avoid such regexp
-      // as "(a*)*", but now "repeat.empty.token" is allowed.
-
-      else if ((unit.ch == '*') && !(unit.bk || quot)) {
-       if (currentToken == null)
-          throw new REException(getLocalizedMessage("repeat.no.token"),REException.REG_BADRPT,index);
-       if (currentToken instanceof RETokenRepeated)
-          throw new REException(getLocalizedMessage("repeat.chained"),REException.REG_BADRPT,index);
-       if (currentToken instanceof RETokenWordBoundary || currentToken instanceof RETokenWordBoundary)
-         throw new REException(getLocalizedMessage("repeat.assertion"),REException.REG_BADRPT,index);
-       currentToken = setRepeated(currentToken,0,Integer.MAX_VALUE,index);
-      }
+       // START OF STRING OPERATOR
+       //  \A if RE_STRING_ANCHORS is set
 
-      // ONE-OR-MORE REPEAT OPERATOR / POSSESSIVE MATCHING OPERATOR
-      //  + | \+ depending on RE_BK_PLUS_QM
-      //  not available if RE_LIMITED_OPS is set
-      //
-      // This method used to check "repeat.empty.token" to avoid such regexp
-      // as "(a*)+", but now "repeat.empty.token" is allowed.
-
-      else if ((unit.ch == '+') && !syntax.get(RESyntax.RE_LIMITED_OPS) && (!syntax.get(RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot))) {
-       if (currentToken == null)
-          throw new REException(getLocalizedMessage("repeat.no.token"),REException.REG_BADRPT,index);
-       
-       // Check for possessive matching on RETokenRepeated
-       if (currentToken instanceof RETokenRepeated) {
-         RETokenRepeated tokenRep = (RETokenRepeated)currentToken;
-         if (syntax.get(RESyntax.RE_POSSESSIVE_OPS) && !tokenRep.isPossessive() && !tokenRep.isStingy())
-           tokenRep.makePossessive();
-         else
-           throw new REException(getLocalizedMessage("repeat.chained"),REException.REG_BADRPT,index);
-
-       }
-       else if (currentToken instanceof RETokenWordBoundary || currentToken instanceof RETokenWordBoundary)
-         throw new REException(getLocalizedMessage("repeat.assertion"),REException.REG_BADRPT,index);
-       else
-         currentToken = setRepeated(currentToken,1,Integer.MAX_VALUE,index);
-      }
+       else if (unit.bk && (unit.ch == 'A')
+                && syntax.get (RESyntax.RE_STRING_ANCHORS))
+         {
+           addToken (currentToken);
+           currentToken = new RETokenStart (subIndex, null);
+         }
 
-      // ZERO-OR-ONE REPEAT OPERATOR / STINGY MATCHING OPERATOR
-      //  ? | \? depending on RE_BK_PLUS_QM
-      //  not available if RE_LIMITED_OPS is set
-      //  stingy matching if RE_STINGY_OPS is set and it follows a quantifier
-
-      else if ((unit.ch == '?') && !syntax.get(RESyntax.RE_LIMITED_OPS) && (!syntax.get(RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot))) {
-       if (currentToken == null) throw new REException(getLocalizedMessage("repeat.no.token"),REException.REG_BADRPT,index);
-
-       // Check for stingy matching on RETokenRepeated
-       if (currentToken instanceof RETokenRepeated) {
-         RETokenRepeated tokenRep = (RETokenRepeated)currentToken;
-         if (syntax.get(RESyntax.RE_STINGY_OPS) && !tokenRep.isStingy() && !tokenRep.isPossessive())
-           tokenRep.makeStingy();
-         else
-           throw new REException(getLocalizedMessage("repeat.chained"),REException.REG_BADRPT,index);
-       }
-       else if (currentToken instanceof RETokenWordBoundary || currentToken instanceof RETokenWordBoundary)
-         throw new REException(getLocalizedMessage("repeat.assertion"),REException.REG_BADRPT,index);
-       else
-         currentToken = setRepeated(currentToken,0,1,index);
-      }
+       // WORD BREAK OPERATOR
+       //  \b if ????
+
+       else if (unit.bk && (unit.ch == 'b')
+                && syntax.get (RESyntax.RE_STRING_ANCHORS))
+         {
+           addToken (currentToken);
+           currentToken =
+             new RETokenWordBoundary (subIndex,
+                                      RETokenWordBoundary.
+                                      BEGIN | RETokenWordBoundary.END,
+                                      false);
+         }
 
-      // OCTAL CHARACTER
-      //  \0377
-       
-      else if (unit.bk && (unit.ch == '0') && syntax.get(RESyntax.RE_OCTAL_CHAR)) {
-       CharExpression ce = getCharExpression(pattern, index - 2, pLength, syntax);
-       if (ce == null)
-         throw new REException("invalid octal character", REException.REG_ESCAPE, index);
-       index = index - 2 + ce.len;
-       addToken(currentToken);
-       currentToken = new RETokenChar(subIndex,ce.ch,insens);
-       if (insensUSASCII) currentToken.unicodeAware = false;
-      }
+       // WORD BEGIN OPERATOR 
+       //  \< if ????
+       else if (unit.bk && (unit.ch == '<'))
+         {
+           addToken (currentToken);
+           currentToken =
+             new RETokenWordBoundary (subIndex, RETokenWordBoundary.BEGIN,
+                                      false);
+         }
 
-      // BACKREFERENCE OPERATOR
-      //  \1 \2 ... \9 and \10 \11 \12 ...
-      // not available if RE_NO_BK_REFS is set
-      // Perl recognizes \10, \11, and so on only if enough number of
-      // parentheses have opened before it, otherwise they are treated
-      // as aliases of \010, \011, ... (octal characters).  In case of
-      // Sun's JDK, octal character expression must always begin with \0.
-      // We will do as JDK does. But FIXME, take a look at "(a)(b)\29".
-      // JDK treats \2 as a back reference to the 2nd group because
-      // there are only two groups. But in our poor implementation,
-      // we cannot help but treat \29 as a back reference to the 29th group.
-
-      else if (unit.bk && Character.isDigit(unit.ch) && !syntax.get(RESyntax.RE_NO_BK_REFS)) {
-       addToken(currentToken);
-       int numBegin = index - 1;
-       int numEnd = pLength;
-       for (int i = index; i < pLength; i++) {
-           if (! Character.isDigit(pattern[i])) {
-               numEnd = i;
-               break;
-           }
-       }
-       int num = parseInt(pattern, numBegin, numEnd-numBegin, 10);
+       // WORD END OPERATOR 
+       //  \> if ????
+       else if (unit.bk && (unit.ch == '>'))
+         {
+           addToken (currentToken);
+           currentToken =
+             new RETokenWordBoundary (subIndex, RETokenWordBoundary.END,
+                                      false);
+         }
 
-       currentToken = new RETokenBackRef(subIndex,num,insens);
-       if (insensUSASCII) currentToken.unicodeAware = false;
-       index = numEnd;
-      }
+       // NON-WORD BREAK OPERATOR
+       // \B if ????
+
+       else if (unit.bk && (unit.ch == 'B')
+                && syntax.get (RESyntax.RE_STRING_ANCHORS))
+         {
+           addToken (currentToken);
+           currentToken =
+             new RETokenWordBoundary (subIndex,
+                                      RETokenWordBoundary.
+                                      BEGIN | RETokenWordBoundary.END, true);
+         }
 
-      // START OF STRING OPERATOR
-      //  \A if RE_STRING_ANCHORS is set
-      
-      else if (unit.bk && (unit.ch == 'A') && syntax.get(RESyntax.RE_STRING_ANCHORS)) {
-       addToken(currentToken);
-       currentToken = new RETokenStart(subIndex,null);
-      }
 
-      // WORD BREAK OPERATOR
-      //  \b if ????
-
-      else if (unit.bk && (unit.ch == 'b') && syntax.get(RESyntax.RE_STRING_ANCHORS)) {
-         addToken(currentToken);
-         currentToken = new RETokenWordBoundary(subIndex, RETokenWordBoundary.BEGIN | RETokenWordBoundary.END, false);
-      } 
-
-      // WORD BEGIN OPERATOR 
-      //  \< if ????
-      else if (unit.bk && (unit.ch == '<')) {
-         addToken(currentToken);
-         currentToken = new RETokenWordBoundary(subIndex, RETokenWordBoundary.BEGIN, false);
-      } 
-
-      // WORD END OPERATOR 
-      //  \> if ????
-      else if (unit.bk && (unit.ch == '>')) {
-         addToken(currentToken);
-         currentToken = new RETokenWordBoundary(subIndex, RETokenWordBoundary.END, false);
-      } 
-
-      // NON-WORD BREAK OPERATOR
-      // \B if ????
-
-      else if (unit.bk && (unit.ch == 'B') && syntax.get(RESyntax.RE_STRING_ANCHORS)) {
-         addToken(currentToken);
-         currentToken = new RETokenWordBoundary(subIndex, RETokenWordBoundary.BEGIN | RETokenWordBoundary.END, true);
-      } 
-
-      
-      // DIGIT OPERATOR
-      //  \d if RE_CHAR_CLASS_ESCAPES is set
-      
-      else if (unit.bk && (unit.ch == 'd') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
-       addToken(currentToken);
-       currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.DIGIT,insens,false);
-       if (insensUSASCII) currentToken.unicodeAware = false;
-      }
+       // DIGIT OPERATOR
+       //  \d if RE_CHAR_CLASS_ESCAPES is set
 
-      // NON-DIGIT OPERATOR
-      //  \D
+       else if (unit.bk && (unit.ch == 'd')
+                && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+         {
+           addToken (currentToken);
+           currentToken =
+             new RETokenPOSIX (subIndex, RETokenPOSIX.DIGIT, insens, false);
+           if (insensUSASCII)
+             currentToken.unicodeAware = false;
+         }
 
-       else if (unit.bk && (unit.ch == 'D') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
-         addToken(currentToken);
-         currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.DIGIT,insens,true);
-         if (insensUSASCII) currentToken.unicodeAware = false;
-       }
+       // NON-DIGIT OPERATOR
+       //  \D
+
+       else if (unit.bk && (unit.ch == 'D')
+                && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+         {
+           addToken (currentToken);
+           currentToken =
+             new RETokenPOSIX (subIndex, RETokenPOSIX.DIGIT, insens, true);
+           if (insensUSASCII)
+             currentToken.unicodeAware = false;
+         }
 
        // NEWLINE ESCAPE
-        //  \n
+       //  \n
 
-       else if (unit.bk && (unit.ch == 'n')) {
-         addToken(currentToken);
-         currentToken = new RETokenChar(subIndex,'\n',false);
-       }
+       else if (unit.bk && (unit.ch == 'n'))
+         {
+           addToken (currentToken);
+           currentToken = new RETokenChar (subIndex, '\n', false);
+         }
 
        // RETURN ESCAPE
-        //  \r
+       //  \r
 
-       else if (unit.bk && (unit.ch == 'r')) {
-         addToken(currentToken);
-         currentToken = new RETokenChar(subIndex,'\r',false);
-       }
+       else if (unit.bk && (unit.ch == 'r'))
+         {
+           addToken (currentToken);
+           currentToken = new RETokenChar (subIndex, '\r', false);
+         }
 
        // WHITESPACE OPERATOR
-        //  \s if RE_CHAR_CLASS_ESCAPES is set
-
-       else if (unit.bk && (unit.ch == 's') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
-         addToken(currentToken);
-         currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.SPACE,insens,false);
-         if (insensUSASCII) currentToken.unicodeAware = false;
-       }
+       //  \s if RE_CHAR_CLASS_ESCAPES is set
+
+       else if (unit.bk && (unit.ch == 's')
+                && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+         {
+           addToken (currentToken);
+           currentToken =
+             new RETokenPOSIX (subIndex, RETokenPOSIX.SPACE, insens, false);
+           if (insensUSASCII)
+             currentToken.unicodeAware = false;
+         }
 
        // NON-WHITESPACE OPERATOR
-        //  \S
-
-       else if (unit.bk && (unit.ch == 'S') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
-         addToken(currentToken);
-         currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.SPACE,insens,true);
-         if (insensUSASCII) currentToken.unicodeAware = false;
-       }
+       //  \S
+
+       else if (unit.bk && (unit.ch == 'S')
+                && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+         {
+           addToken (currentToken);
+           currentToken =
+             new RETokenPOSIX (subIndex, RETokenPOSIX.SPACE, insens, true);
+           if (insensUSASCII)
+             currentToken.unicodeAware = false;
+         }
 
        // TAB ESCAPE
-        //  \t
+       //  \t
 
-       else if (unit.bk && (unit.ch == 't')) {
-         addToken(currentToken);
-         currentToken = new RETokenChar(subIndex,'\t',false);
-       }
+       else if (unit.bk && (unit.ch == 't'))
+         {
+           addToken (currentToken);
+           currentToken = new RETokenChar (subIndex, '\t', false);
+         }
 
        // ALPHANUMERIC OPERATOR
-        //  \w
-
-       else if (unit.bk && (unit.ch == 'w') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
-         addToken(currentToken);
-         currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.ALNUM,insens,false);
-         if (insensUSASCII) currentToken.unicodeAware = false;
-       }
+       //  \w
+
+       else if (unit.bk && (unit.ch == 'w')
+                && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+         {
+           addToken (currentToken);
+           currentToken =
+             new RETokenPOSIX (subIndex, RETokenPOSIX.ALNUM, insens, false);
+           if (insensUSASCII)
+             currentToken.unicodeAware = false;
+         }
 
        // NON-ALPHANUMERIC OPERATOR
-        //  \W
-
-       else if (unit.bk && (unit.ch == 'W') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
-         addToken(currentToken);
-         currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.ALNUM,insens,true);
-         if (insensUSASCII) currentToken.unicodeAware = false;
-       }
+       //  \W
+
+       else if (unit.bk && (unit.ch == 'W')
+                && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+         {
+           addToken (currentToken);
+           currentToken =
+             new RETokenPOSIX (subIndex, RETokenPOSIX.ALNUM, insens, true);
+           if (insensUSASCII)
+             currentToken.unicodeAware = false;
+         }
 
        // END OF STRING OPERATOR
-        //  \Z, \z
+       //  \Z, \z
 
        // FIXME: \Z and \z are different in that if the input string
        // ends with a line terminator, \Z matches the position before
@@ -1040,77 +1290,106 @@ public class RE extends REToken {
        // to be implemented.
 
        else if (unit.bk && (unit.ch == 'Z' || unit.ch == 'z') &&
-                syntax.get(RESyntax.RE_STRING_ANCHORS)) {
-         addToken(currentToken);
-         currentToken = new RETokenEnd(subIndex,null);
-       }
-
-        // HEX CHARACTER, UNICODE CHARACTER
-        //  \x1B, \u1234
-       
-       else if ((unit.bk && (unit.ch == 'x') && syntax.get(RESyntax.RE_HEX_CHAR)) ||
-                (unit.bk && (unit.ch == 'u') && syntax.get(RESyntax.RE_UNICODE_CHAR))) {
-         CharExpression ce = getCharExpression(pattern, index - 2, pLength, syntax);
-         if (ce == null)
-           throw new REException("invalid hex character", REException.REG_ESCAPE, index);
-         index = index - 2 + ce.len;
-         addToken(currentToken);
-         currentToken = new RETokenChar(subIndex,ce.ch,insens);
-         if (insensUSASCII) currentToken.unicodeAware = false;
-       }
+                syntax.get (RESyntax.RE_STRING_ANCHORS))
+         {
+           addToken (currentToken);
+           currentToken = new RETokenEnd (subIndex, null);
+         }
+
+       // HEX CHARACTER, UNICODE CHARACTER
+       //  \x1B, \u1234
+
+       else
+         if ((unit.bk && (unit.ch == 'x')
+              && syntax.get (RESyntax.RE_HEX_CHAR)) || (unit.bk
+                                                        && (unit.ch == 'u')
+                                                        && syntax.
+                                                        get (RESyntax.
+                                                             RE_UNICODE_CHAR)))
+         {
+           CharExpression ce =
+             getCharExpression (pattern, index - 2, pLength, syntax);
+           if (ce == null)
+             throw new REException ("invalid hex character",
+                                    REException.REG_ESCAPE, index);
+           index = index - 2 + ce.len;
+           addToken (currentToken);
+           currentToken = new RETokenChar (subIndex, ce.ch, insens);
+           if (insensUSASCII)
+             currentToken.unicodeAware = false;
+         }
 
        // NAMED PROPERTY
        // \p{prop}, \P{prop}
 
-       else if ((unit.bk && (unit.ch == 'p') && syntax.get(RESyntax.RE_NAMED_PROPERTY)) ||
-                (unit.bk && (unit.ch == 'P') && syntax.get(RESyntax.RE_NAMED_PROPERTY))) {
-         NamedProperty np = getNamedProperty(pattern, index - 2, pLength);
-         if (np == null)
-             throw new REException("invalid escape sequence", REException.REG_ESCAPE, index);
-         index = index - 2 + np.len;
-         addToken(currentToken);
-         currentToken = getRETokenNamedProperty(subIndex,np,insens,index);
-         if (insensUSASCII) currentToken.unicodeAware = false;
-       }
+       else
+         if ((unit.bk && (unit.ch == 'p')
+              && syntax.get (RESyntax.RE_NAMED_PROPERTY)) || (unit.bk
+                                                              && (unit.ch ==
+                                                                  'P')
+                                                              && syntax.
+                                                              get (RESyntax.
+                                                                   RE_NAMED_PROPERTY)))
+         {
+           NamedProperty np = getNamedProperty (pattern, index - 2, pLength);
+           if (np == null)
+             throw new REException ("invalid escape sequence",
+                                    REException.REG_ESCAPE, index);
+           index = index - 2 + np.len;
+           addToken (currentToken);
+           currentToken =
+             getRETokenNamedProperty (subIndex, np, insens, index);
+           if (insensUSASCII)
+             currentToken.unicodeAware = false;
+         }
 
        // END OF PREVIOUS MATCH
-        //  \G
+       //  \G
 
        else if (unit.bk && (unit.ch == 'G') &&
-                syntax.get(RESyntax.RE_STRING_ANCHORS)) {
-         addToken(currentToken);
-         currentToken = new RETokenEndOfPreviousMatch(subIndex);
-       }
+                syntax.get (RESyntax.RE_STRING_ANCHORS))
+         {
+           addToken (currentToken);
+           currentToken = new RETokenEndOfPreviousMatch (subIndex);
+         }
 
        // NON-SPECIAL CHARACTER (or escape to make literal)
-        //  c | \* for example
+       //  c | \* for example
 
-       else {  // not a special character
-         addToken(currentToken);
-         currentToken = new RETokenChar(subIndex,unit.ch,insens);
-         if (insensUSASCII) currentToken.unicodeAware = false;
-       } 
-      } // end while
+       else
+         {                     // not a special character
+           addToken (currentToken);
+           currentToken = new RETokenChar (subIndex, unit.ch, insens);
+           if (insensUSASCII)
+             currentToken.unicodeAware = false;
+         }
+      }                                // end while
 
     // Add final buffered token and an EndSub marker
-    addToken(currentToken);
-      
-    if (branches != null) {
-       branches.addElement(new RE(firstToken,lastToken,numSubs,subIndex,minimumLength, maximumLength));
-       branches.trimToSize(); // compact the Vector
+    addToken (currentToken);
+
+    if (branches != null)
+      {
+       branches.
+         add (new
+              RE (firstToken, lastToken, numSubs, subIndex, minimumLength,
+                  maximumLength));
+       branches.trimToSize (); // compact the Vector
        minimumLength = 0;
        maximumLength = 0;
        firstToken = lastToken = null;
-       addToken(new RETokenOneOf(subIndex,branches,false));
-    } 
-    else addToken(new RETokenEndSub(subIndex));
+       addToken (new RETokenOneOf (subIndex, branches, false));
+      }
+    else
+      addToken (new RETokenEndSub (subIndex));
 
   }
 
-  private static class ParseCharClassResult {
-      RETokenOneOf token;
-      int index;
-      boolean returnAtAndOperator = false;
+  private static class ParseCharClassResult
+  {
+    RETokenOneOf token;
+    int index;
+    boolean returnAtAndOperator = false;
   }
 
   /**
@@ -1123,223 +1402,315 @@ public class RE extends REToken {
    * @param pflags Flags that affect the behavior of this method.
    * @param syntax Syntax used to parse the pattern.
    */
-  private static ParseCharClassResult parseCharClass(int subIndex,
-               char[] pattern, int index,
-               int pLength, int cflags, RESyntax syntax, int pflags)
-               throws REException {
-
-       boolean insens = ((cflags & REG_ICASE) > 0);
-       boolean insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
-       Vector options = new Vector();
-       Vector addition = new Vector();
-       boolean additionAndAppeared = false;
-       final int RETURN_AT_AND = 0x01;
-       boolean returnAtAndOperator = ((pflags & RETURN_AT_AND) != 0);
-       boolean negative = false;
-       char ch;
-
-       char lastChar = 0;
-       boolean lastCharIsSet = false;
-       if (index == pLength) throw new REException(getLocalizedMessage("unmatched.bracket"),REException.REG_EBRACK,index);
-       
-       // Check for initial caret, negation
-       if ((ch = pattern[index]) == '^') {
-         negative = true;
-         if (++index == pLength) throw new REException(getLocalizedMessage("class.no.end"),REException.REG_EBRACK,index);
+  private static ParseCharClassResult parseCharClass (int subIndex,
+                                                     char[]pattern,
+                                                     int index, int pLength,
+                                                     int cflags,
+                                                     RESyntax syntax,
+                                                     int pflags) throws
+    REException
+  {
+
+    boolean insens = ((cflags & REG_ICASE) > 0);
+    boolean insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
+    final ArrayList < REToken > options = new ArrayList < REToken > ();
+      ArrayList < Object > addition = new ArrayList < Object > ();
+    boolean additionAndAppeared = false;
+    final int RETURN_AT_AND = 0x01;
+    boolean returnAtAndOperator = ((pflags & RETURN_AT_AND) != 0);
+    boolean negative = false;
+    char ch;
+
+    char lastChar = 0;
+    boolean lastCharIsSet = false;
+    if (index == pLength)
+      throw new REException (getLocalizedMessage ("unmatched.bracket"),
+                            REException.REG_EBRACK, index);
+
+    // Check for initial caret, negation
+    if ((ch = pattern[index]) == '^')
+      {
+       negative = true;
+       if (++index == pLength)
+         throw new REException (getLocalizedMessage ("class.no.end"),
+                                REException.REG_EBRACK, index);
          ch = pattern[index];
-       }
-
-       // Check for leading right bracket literal
-       if (ch == ']') {
-         lastChar = ch; lastCharIsSet = true;
-         if (++index == pLength) throw new REException(getLocalizedMessage("class.no.end"),REException.REG_EBRACK,index);
-       }
-
-       while ((ch = pattern[index++]) != ']') {
-         if ((ch == '-') && (lastCharIsSet)) {
-           if (index == pLength) throw new REException(getLocalizedMessage("class.no.end"),REException.REG_EBRACK,index);
-           if ((ch = pattern[index]) == ']') {
-             RETokenChar t = new RETokenChar(subIndex,lastChar,insens);
-             if (insensUSASCII) t.unicodeAware = false;
-             options.addElement(t);
-             lastChar = '-';
-           } else {
-             if ((ch == '\\') && syntax.get(RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS)) {
-               CharExpression ce = getCharExpression(pattern, index, pLength, syntax);
-               if (ce == null)
-                 throw new REException("invalid escape sequence", REException.REG_ESCAPE, index);
-               ch = ce.ch;
-               index = index + ce.len - 1;
+      }
+
+    // Check for leading right bracket literal
+    if (ch == ']')
+      {
+       lastChar = ch;
+       lastCharIsSet = true;
+       if (++index == pLength)
+         throw new REException (getLocalizedMessage ("class.no.end"),
+                                REException.REG_EBRACK, index);
+      }
+
+    while ((ch = pattern[index++]) != ']')
+      {
+       if ((ch == '-') && (lastCharIsSet))
+         {
+           if (index == pLength)
+             throw new REException (getLocalizedMessage ("class.no.end"),
+                                    REException.REG_EBRACK, index);
+           if ((ch = pattern[index]) == ']')
+             {
+               RETokenChar t = new RETokenChar (subIndex, lastChar, insens);
+               if (insensUSASCII)
+                 t.unicodeAware = false;
+               options.add (t);
+               lastChar = '-';
              }
-             RETokenRange t = new RETokenRange(subIndex,lastChar,ch,insens);
-             if (insensUSASCII) t.unicodeAware = false;
-             options.addElement(t);
-             lastChar = 0; lastCharIsSet = false;
-             index++;
-           }
-          } else if ((ch == '\\') && syntax.get(RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS)) {
-            if (index == pLength) throw new REException(getLocalizedMessage("class.no.end"),REException.REG_EBRACK,index);
+           else
+             {
+               if ((ch == '\\')
+                   && syntax.get (RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS))
+                 {
+                   CharExpression ce =
+                     getCharExpression (pattern, index, pLength, syntax);
+                   if (ce == null)
+                     throw new REException ("invalid escape sequence",
+                                            REException.REG_ESCAPE, index);
+                   ch = ce.ch;
+                   index = index + ce.len - 1;
+                 }
+               RETokenRange t =
+                 new RETokenRange (subIndex, lastChar, ch, insens);
+               if (insensUSASCII)
+                 t.unicodeAware = false;
+               options.add (t);
+               lastChar = 0;
+               lastCharIsSet = false;
+               index++;
+             }
+         }
+       else if ((ch == '\\')
+                && syntax.get (RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS))
+         {
+           if (index == pLength)
+             throw new REException (getLocalizedMessage ("class.no.end"),
+                                    REException.REG_EBRACK, index);
            int posixID = -1;
            boolean negate = false;
-            char asciiEsc = 0;
+           char asciiEsc = 0;
            boolean asciiEscIsSet = false;
            NamedProperty np = null;
-           if (("dswDSW".indexOf(pattern[index]) != -1) && syntax.get(RESyntax.RE_CHAR_CLASS_ESC_IN_LISTS)) {
-             switch (pattern[index]) {
-             case 'D':
-               negate = true;
-             case 'd':
-               posixID = RETokenPOSIX.DIGIT;
-               break;
-             case 'S':
-               negate = true;
-             case 's':
-               posixID = RETokenPOSIX.SPACE;
-               break;
-             case 'W':
-               negate = true;
-             case 'w':
-               posixID = RETokenPOSIX.ALNUM;
-               break;
+           if (("dswDSW".indexOf (pattern[index]) != -1)
+               && syntax.get (RESyntax.RE_CHAR_CLASS_ESC_IN_LISTS))
+             {
+               switch (pattern[index])
+                 {
+                 case 'D':
+                   negate = true;
+                 case 'd':
+                   posixID = RETokenPOSIX.DIGIT;
+                   break;
+                 case 'S':
+                   negate = true;
+                 case 's':
+                   posixID = RETokenPOSIX.SPACE;
+                   break;
+                 case 'W':
+                   negate = true;
+                 case 'w':
+                   posixID = RETokenPOSIX.ALNUM;
+                   break;
+                 }
+             }
+           if (("pP".indexOf (pattern[index]) != -1)
+               && syntax.get (RESyntax.RE_NAMED_PROPERTY))
+             {
+               np = getNamedProperty (pattern, index - 1, pLength);
+               if (np == null)
+                 throw new REException ("invalid escape sequence",
+                                        REException.REG_ESCAPE, index);
+               index = index - 1 + np.len - 1;
+             }
+           else
+             {
+               CharExpression ce =
+                 getCharExpression (pattern, index - 1, pLength, syntax);
+               if (ce == null)
+                 throw new REException ("invalid escape sequence",
+                                        REException.REG_ESCAPE, index);
+               asciiEsc = ce.ch;
+               asciiEscIsSet = true;
+               index = index - 1 + ce.len - 1;
+             }
+           if (lastCharIsSet)
+             {
+               RETokenChar t = new RETokenChar (subIndex, lastChar, insens);
+               if (insensUSASCII)
+                 t.unicodeAware = false;
+               options.add (t);
+             }
+
+           if (posixID != -1)
+             {
+               RETokenPOSIX t =
+                 new RETokenPOSIX (subIndex, posixID, insens, negate);
+               if (insensUSASCII)
+                 t.unicodeAware = false;
+               options.add (t);
+             }
+           else if (np != null)
+             {
+               RETokenNamedProperty t =
+                 getRETokenNamedProperty (subIndex, np, insens, index);
+               if (insensUSASCII)
+                 t.unicodeAware = false;
+               options.add (t);
+             }
+           else if (asciiEscIsSet)
+             {
+               lastChar = asciiEsc;
+               lastCharIsSet = true;
+             }
+           else
+             {
+               lastChar = pattern[index];
+               lastCharIsSet = true;
              }
-           }
-           if (("pP".indexOf(pattern[index]) != -1) && syntax.get(RESyntax.RE_NAMED_PROPERTY)) {
-             np = getNamedProperty(pattern, index - 1, pLength);
-             if (np == null)
-               throw new REException("invalid escape sequence", REException.REG_ESCAPE, index);
-             index = index - 1 + np.len - 1;
-           }
-           else {
-             CharExpression ce = getCharExpression(pattern, index - 1, pLength, syntax);
-             if (ce == null)
-               throw new REException("invalid escape sequence", REException.REG_ESCAPE, index);
-             asciiEsc = ce.ch; asciiEscIsSet = true;
-             index = index - 1 + ce.len - 1;
-           }
-           if (lastCharIsSet) {
-             RETokenChar t = new RETokenChar(subIndex,lastChar,insens);
-             if (insensUSASCII) t.unicodeAware = false;
-             options.addElement(t);
-           }
-           
-           if (posixID != -1) {
-             RETokenPOSIX t = new RETokenPOSIX(subIndex,posixID,insens,negate);
-             if (insensUSASCII) t.unicodeAware = false;
-             options.addElement(t);
-           } else if (np != null) {
-             RETokenNamedProperty t = getRETokenNamedProperty(subIndex,np,insens,index);
-             if (insensUSASCII) t.unicodeAware = false;
-             options.addElement(t);
-           } else if (asciiEscIsSet) {
-             lastChar = asciiEsc; lastCharIsSet = true;
-           } else {
-             lastChar = pattern[index]; lastCharIsSet = true;
-           }
            ++index;
-         } else if ((ch == '[') && (syntax.get(RESyntax.RE_CHAR_CLASSES)) && (index < pLength) && (pattern[index] == ':')) {
-           StringBuffer posixSet = new StringBuffer();
-           index = getPosixSet(pattern,index+1,posixSet);
-           int posixId = RETokenPOSIX.intValue(posixSet.toString());
-           if (posixId != -1) {
-             RETokenPOSIX t = new RETokenPOSIX(subIndex,posixId,insens,false);
-             if (insensUSASCII) t.unicodeAware = false;
-             options.addElement(t);
-           }
-         } else if ((ch == '[') && (syntax.get(RESyntax.RE_NESTED_CHARCLASS))) {
-               ParseCharClassResult result = parseCharClass(
-                   subIndex, pattern, index, pLength, cflags, syntax, 0);
-               addition.addElement(result.token);
-               addition.addElement("|");
-               index = result.index;
-         } else if ((ch == '&') &&
-                    (syntax.get(RESyntax.RE_NESTED_CHARCLASS)) &&
-                    (index < pLength) && (pattern[index] == '&')) {
-               if (returnAtAndOperator) {
-                   ParseCharClassResult result = new ParseCharClassResult(); 
-                   options.trimToSize();
-                   if (additionAndAppeared) addition.addElement("&");
-                   if (addition.size() == 0) addition = null;
-                   result.token = new RETokenOneOf(subIndex,
-                       options, addition, negative);
-                   result.index = index - 1;
-                   result.returnAtAndOperator = true;
-                   return result;
-               }
-               // The precedence of the operator "&&" is the lowest.
-               // So we postpone adding "&" until other elements
-               // are added. And we insert Boolean.FALSE at the
-               // beginning of the list of tokens following "&&".
-               // So, "&&[a-b][k-m]" will be stored in the Vecter
-               // addition in this order:
-               //     Boolean.FALSE, [a-b], "|", [k-m], "|", "&"
-               if (additionAndAppeared) addition.addElement("&");
-               addition.addElement(Boolean.FALSE);
-               additionAndAppeared = true;
-
-               // The part on which "&&" operates may be either
-               //   (1) explicitly enclosed by []
-               //   or
-               //   (2) not enclosed by [] and terminated by the
-               //       next "&&" or the end of the character list.
-               //  Let the preceding else if block do the case (1).
-               //  We must do something in case of (2).
-               if ((index + 1 < pLength) && (pattern[index + 1] != '[')) {
-                   ParseCharClassResult result = parseCharClass(
-                       subIndex, pattern, index+1, pLength, cflags, syntax,
-                       RETURN_AT_AND);
-                   addition.addElement(result.token);
-                   addition.addElement("|");
-                   // If the method returned at the next "&&", it is OK.
-                   // Otherwise we have eaten the mark of the end of this
-                   // character list "]".  In this case we must give back
-                   // the end mark.
-                   index = (result.returnAtAndOperator ?
-                       result.index: result.index - 1);
-               }
-         } else {
-           if (lastCharIsSet) {
-             RETokenChar t = new RETokenChar(subIndex,lastChar,insens);
-             if (insensUSASCII) t.unicodeAware = false;
-             options.addElement(t);
-           }
-           lastChar = ch; lastCharIsSet = true;
          }
-         if (index == pLength) throw new REException(getLocalizedMessage("class.no.end"),REException.REG_EBRACK,index);
-       } // while in list
-       // Out of list, index is one past ']'
-           
-       if (lastCharIsSet) {
-         RETokenChar t = new RETokenChar(subIndex,lastChar,insens);
-         if (insensUSASCII) t.unicodeAware = false;
-         options.addElement(t);
-       }
-          
-       ParseCharClassResult result = new ParseCharClassResult(); 
-       // Create a new RETokenOneOf
-       options.trimToSize();
-       if (additionAndAppeared) addition.addElement("&");
-       if (addition.size() == 0) addition = null;
-       result.token = new RETokenOneOf(subIndex,options, addition, negative);
-       result.index = index;
-       return result;
+       else if ((ch == '[') && (syntax.get (RESyntax.RE_CHAR_CLASSES))
+                && (index < pLength) && (pattern[index] == ':'))
+         {
+           CPStringBuilder posixSet = new CPStringBuilder ();
+           index = getPosixSet (pattern, index + 1, posixSet);
+           int posixId = RETokenPOSIX.intValue (posixSet.toString ());
+           if (posixId != -1)
+             {
+               RETokenPOSIX t =
+                 new RETokenPOSIX (subIndex, posixId, insens, false);
+               if (insensUSASCII)
+                 t.unicodeAware = false;
+               options.add (t);
+             }
+         }
+       else if ((ch == '[') && (syntax.get (RESyntax.RE_NESTED_CHARCLASS)))
+         {
+           ParseCharClassResult result =
+             parseCharClass (subIndex, pattern, index, pLength, cflags,
+                             syntax, 0);
+           addition.add (result.token);
+           addition.add ("|");
+           index = result.index;
+         }
+       else if ((ch == '&') &&
+                (syntax.get (RESyntax.RE_NESTED_CHARCLASS)) &&
+                (index < pLength) && (pattern[index] == '&'))
+         {
+           if (returnAtAndOperator)
+             {
+               ParseCharClassResult result = new ParseCharClassResult ();
+               options.trimToSize ();
+               if (additionAndAppeared)
+                 addition.add ("&");
+               if (addition.size () == 0)
+                 addition = null;
+               result.token = new RETokenOneOf (subIndex,
+                                                options, addition, negative);
+               result.index = index - 1;
+               result.returnAtAndOperator = true;
+               return result;
+             }
+           // The precedence of the operator "&&" is the lowest.
+           // So we postpone adding "&" until other elements
+           // are added. And we insert Boolean.FALSE at the
+           // beginning of the list of tokens following "&&".
+           // So, "&&[a-b][k-m]" will be stored in the Vecter
+           // addition in this order:
+           //     Boolean.FALSE, [a-b], "|", [k-m], "|", "&"
+           if (additionAndAppeared)
+             addition.add ("&");
+           addition.add (Boolean.FALSE);
+           additionAndAppeared = true;
+
+           // The part on which "&&" operates may be either
+           //   (1) explicitly enclosed by []
+           //   or
+           //   (2) not enclosed by [] and terminated by the
+           //       next "&&" or the end of the character list.
+           //  Let the preceding else if block do the case (1).
+           //  We must do something in case of (2).
+           if ((index + 1 < pLength) && (pattern[index + 1] != '['))
+             {
+               ParseCharClassResult result =
+                 parseCharClass (subIndex, pattern, index + 1, pLength,
+                                 cflags, syntax,
+                                 RETURN_AT_AND);
+               addition.add (result.token);
+               addition.add ("|");
+               // If the method returned at the next "&&", it is OK.
+               // Otherwise we have eaten the mark of the end of this
+               // character list "]".  In this case we must give back
+               // the end mark.
+               index = (result.returnAtAndOperator ?
+                        result.index : result.index - 1);
+             }
+         }
+       else
+         {
+           if (lastCharIsSet)
+             {
+               RETokenChar t = new RETokenChar (subIndex, lastChar, insens);
+               if (insensUSASCII)
+                 t.unicodeAware = false;
+               options.add (t);
+             }
+           lastChar = ch;
+           lastCharIsSet = true;
+         }
+       if (index == pLength)
+         throw new REException (getLocalizedMessage ("class.no.end"),
+                                REException.REG_EBRACK, index);
+      }                                // while in list
+    // Out of list, index is one past ']'
+
+    if (lastCharIsSet)
+      {
+       RETokenChar t = new RETokenChar (subIndex, lastChar, insens);
+       if (insensUSASCII)
+         t.unicodeAware = false;
+       options.add (t);
+      }
+
+    ParseCharClassResult result = new ParseCharClassResult ();
+    // Create a new RETokenOneOf
+    options.trimToSize ();
+    if (additionAndAppeared)
+      addition.add ("&");
+    if (addition.size () == 0)
+      addition = null;
+    result.token = new RETokenOneOf (subIndex, options, addition, negative);
+    result.index = index;
+    return result;
   }
 
-  private static int getCharUnit(char[] input, int index, CharUnit unit, boolean quot) throws REException {
+  private static int getCharUnit (char[]input, int index, CharUnit unit,
+                                 boolean quot) throws REException
+  {
     unit.ch = input[index++];
     unit.bk = (unit.ch == '\\'
               && (!quot || index >= input.length || input[index] == 'E'));
     if (unit.bk)
       if (index < input.length)
        unit.ch = input[index++];
-      else throw new REException(getLocalizedMessage("ends.with.backslash"),REException.REG_ESCAPE,index);
+      else
+       throw new REException (getLocalizedMessage ("ends.with.backslash"),
+                              REException.REG_ESCAPE, index);
     return index;
   }
 
-  private static int parseInt(char[] input, int pos, int len, int radix) {
+  private static int parseInt (char[]input, int pos, int len, int radix)
+  {
     int ret = 0;
-    for (int i = pos; i < pos + len; i++) {
-       ret = ret * radix + Character.digit(input[i], radix);
-    }
+    for (int i = pos; i < pos + len; i++)
+      {
+       ret = ret * radix + Character.digit (input[i], radix);
+      }
     return ret;
   }
 
@@ -1350,88 +1721,109 @@ public class RE extends REToken {
    * "\x1b"   : Hex char 0x1b
    * "\u1234" : Unicode char \u1234
    */
-  private static class CharExpression {
+  private static class CharExpression
+  {
     /** character represented by this expression */
     char ch;
     /** String expression */
     String expr;
     /** length of this expression */
     int len;
-    public String toString() { return expr; }
+    public String toString ()
+    {
+      return expr;
+    }
   }
 
-  private static CharExpression getCharExpression(char[] input, int pos, int lim,
-        RESyntax syntax) {
-    CharExpression ce = new CharExpression();
+  private static CharExpression getCharExpression (char[]input, int pos,
+                                                  int lim, RESyntax syntax)
+  {
+    CharExpression ce = new CharExpression ();
     char c = input[pos];
-    if (c == '\\') {
-      if (pos + 1 >= lim) return null;
-      c = input[pos + 1];
-      switch(c) {
-      case 't':
-        ce.ch = '\t';
-        ce.len = 2;
-        break;
-      case 'n':
-        ce.ch = '\n';
-        ce.len = 2;
-        break;
-      case 'r':
-        ce.ch = '\r';
-        ce.len = 2;
-        break;
-      case 'x':
-      case 'u':
-        if ((c == 'x' && syntax.get(RESyntax.RE_HEX_CHAR)) ||
-            (c == 'u' && syntax.get(RESyntax.RE_UNICODE_CHAR))) {
-          int l = 0;
-          int expectedLength = (c == 'x' ? 2 : 4);
-          for (int i = pos + 2; i < pos + 2 + expectedLength; i++) {
-            if (i >= lim) break;
-            if (!((input[i] >= '0' && input[i] <= '9') ||
-                  (input[i] >= 'A' && input[i] <= 'F') ||
-                  (input[i] >= 'a' && input[i] <= 'f')))
-                break;
-           l++;
-          }
-          if (l != expectedLength) return null;
-          ce.ch = (char)(parseInt(input, pos + 2, l, 16));
-         ce.len = l + 2;
-        }
-        else {
-          ce.ch = c;
-          ce.len = 2;
-        }
-        break;
-      case '0':
-        if (syntax.get(RESyntax.RE_OCTAL_CHAR)) {
-          int l = 0;
-          for (int i = pos + 2; i < pos + 2 + 3; i++) {
-            if (i >= lim) break;
-           if (input[i] < '0' || input[i] > '7') break;
-            l++;
-          }
-          if (l == 3 && input[pos + 2] > '3') l--;
-          if (l <= 0) return null;
-          ce.ch = (char)(parseInt(input, pos + 2, l, 8));
-          ce.len = l + 2;
-        }
-        else {
-          ce.ch = c;
-          ce.len = 2;
-        }
-        break;
-      default:
-        ce.ch = c;
-        ce.len = 2;
-        break;
+    if (c == '\\')
+      {
+       if (pos + 1 >= lim)
+         return null;
+       c = input[pos + 1];
+       switch (c)
+         {
+         case 't':
+           ce.ch = '\t';
+           ce.len = 2;
+           break;
+         case 'n':
+           ce.ch = '\n';
+           ce.len = 2;
+           break;
+         case 'r':
+           ce.ch = '\r';
+           ce.len = 2;
+           break;
+         case 'x':
+         case 'u':
+           if ((c == 'x' && syntax.get (RESyntax.RE_HEX_CHAR)) ||
+               (c == 'u' && syntax.get (RESyntax.RE_UNICODE_CHAR)))
+             {
+               int l = 0;
+               int expectedLength = (c == 'x' ? 2 : 4);
+               for (int i = pos + 2; i < pos + 2 + expectedLength; i++)
+                 {
+                   if (i >= lim)
+                     break;
+                   if (!((input[i] >= '0' && input[i] <= '9') ||
+                         (input[i] >= 'A' && input[i] <= 'F') ||
+                         (input[i] >= 'a' && input[i] <= 'f')))
+                     break;
+                   l++;
+                 }
+               if (l != expectedLength)
+                 return null;
+               ce.ch = (char) (parseInt (input, pos + 2, l, 16));
+               ce.len = l + 2;
+             }
+           else
+             {
+               ce.ch = c;
+               ce.len = 2;
+             }
+           break;
+         case '0':
+           if (syntax.get (RESyntax.RE_OCTAL_CHAR))
+             {
+               int l = 0;
+               for (int i = pos + 2; i < pos + 2 + 3; i++)
+                 {
+                   if (i >= lim)
+                     break;
+                   if (input[i] < '0' || input[i] > '7')
+                     break;
+                   l++;
+                 }
+               if (l == 3 && input[pos + 2] > '3')
+                 l--;
+               if (l <= 0)
+                 return null;
+               ce.ch = (char) (parseInt (input, pos + 2, l, 8));
+               ce.len = l + 2;
+             }
+           else
+             {
+               ce.ch = c;
+               ce.len = 2;
+             }
+           break;
+         default:
+           ce.ch = c;
+           ce.len = 2;
+           break;
+         }
       }
-    }
-    else {
-      ce.ch = input[pos];
-      ce.len = 1;
-    }
-    ce.expr = new String(input, pos, ce.len);
+    else
+      {
+       ce.ch = input[pos];
+       ce.len = 1;
+      }
+    ce.expr = new String (input, pos, ce.len);
     return ce;
   }
 
@@ -1443,7 +1835,8 @@ public class RE extends REToken {
    * "\PA"      : Property named "A" (Negated)
    * "\P{prop}" : Property named "prop" (Negated)
    */
-  private static class NamedProperty {
+  private static class NamedProperty
+  {
     /** Property name */
     String name;
     /** Negated or not */
@@ -1452,56 +1845,73 @@ public class RE extends REToken {
     int len;
   }
 
-  private static NamedProperty getNamedProperty(char[] input, int pos, int lim) {
-    NamedProperty np = new NamedProperty();
+  private static NamedProperty getNamedProperty (char[]input, int pos,
+                                                int lim)
+  {
+    NamedProperty np = new NamedProperty ();
     char c = input[pos];
-    if (c == '\\') {
-      if (++pos >= lim) return null;
-      c = input[pos++];
-      switch(c) {
-      case 'p':
-        np.negate = false;
-        break;
-      case 'P':
-        np.negate = true;
-        break;
-      default:
-       return null;
-      }
-      c = input[pos++];
-      if (c == '{') {
-          int p = -1;
-         for (int i = pos; i < lim; i++) {
-             if (input[i] == '}') {
-                 p = i;
-                 break;
+    if (c == '\\')
+      {
+       if (++pos >= lim)
+         return null;
+       c = input[pos++];
+       switch (c)
+         {
+         case 'p':
+           np.negate = false;
+           break;
+         case 'P':
+           np.negate = true;
+           break;
+         default:
+           return null;
+         }
+       c = input[pos++];
+       if (c == '{')
+         {
+           int p = -1;
+           for (int i = pos; i < lim; i++)
+             {
+               if (input[i] == '}')
+                 {
+                   p = i;
+                   break;
+                 }
              }
+           if (p < 0)
+             return null;
+           int len = p - pos;
+           np.name = new String (input, pos, len);
+           np.len = len + 4;
          }
-         if (p < 0) return null;
-         int len = p - pos;
-          np.name = new String(input, pos, len);
-         np.len = len + 4;
-      }
-      else {
-          np.name = new String(input, pos - 1, 1);
-         np.len = 3;
+       else
+         {
+           np.name = new String (input, pos - 1, 1);
+           np.len = 3;
+         }
+       return np;
       }
-      return np;
-    }
-    else return null;
+    else
+      return null;
   }
 
-  private static RETokenNamedProperty getRETokenNamedProperty(
-      int subIndex, NamedProperty np, boolean insens, int index)
-      throws REException {
-    try {
-       return new RETokenNamedProperty(subIndex, np.name, insens, np.negate);
+  private static RETokenNamedProperty getRETokenNamedProperty (int subIndex,
+                                                              NamedProperty
+                                                              np,
+                                                              boolean insens,
+                                                              int index)
+    throws REException
+  {
+    try
+    {
+      return new RETokenNamedProperty (subIndex, np.name, insens, np.negate);
     }
-    catch (REException e) {
-       REException ree;
-       ree = new REException(e.getMessage(), REException.REG_ESCAPE, index);
-       ree.initCause(e);
-       throw ree;
+    catch (REException e)
+    {
+      REException ree;
+      ree = new REException (e.getMessage (), REException.REG_ESCAPE, index);
+      ree.initCause (e);
+      throw ree;
     }
   }
 
@@ -1510,10 +1920,11 @@ public class RE extends REToken {
    *
    * @param input The input text.
    */
-  public boolean isMatch(Object input) {
-    return isMatch(input,0,0);
+  public boolean isMatch (Object input)
+  {
+    return isMatch (input, 0, 0);
   }
-  
+
   /**
    * Checks if the input string, starting from index, is an exact match of
    * this regular expression.
@@ -1521,10 +1932,11 @@ public class RE extends REToken {
    * @param input The input text.
    * @param index The offset index at which the search should be begin.
    */
-  public boolean isMatch(Object input,int index) {
-    return isMatch(input,index,0);
+  public boolean isMatch (Object input, int index)
+  {
+    return isMatch (input, index, 0);
   }
-  
+
 
   /**
    * Checks if the input, starting from index and using the specified
@@ -1534,45 +1946,56 @@ public class RE extends REToken {
    * @param index The offset index at which the search should be begin.
    * @param eflags The logical OR of any execution flags above.
    */
-  public boolean isMatch(Object input,int index,int eflags) {
-    return isMatchImpl(makeCharIndexed(input,index),index,eflags);
+  public boolean isMatch (Object input, int index, int eflags)
+  {
+    return isMatchImpl (makeCharIndexed (input, index), index, eflags);
   }
 
-  private boolean isMatchImpl(CharIndexed input, int index, int eflags) {
-    if (firstToken == null)  // Trivial case
-      return (input.charAt(0) == CharIndexed.OUT_OF_BOUNDS);
-    REMatch m = new REMatch(numSubs, index, eflags);
-    if (firstToken.match(input, m)) {
-       if (m != null) {
-           if (input.charAt(m.index) == CharIndexed.OUT_OF_BOUNDS) {
+  private boolean isMatchImpl (CharIndexed input, int index, int eflags)
+  {
+    if (firstToken == null)    // Trivial case
+      return (input.charAt (0) == CharIndexed.OUT_OF_BOUNDS);
+    REMatch m = new REMatch (numSubs, index, eflags);
+    if (firstToken.match (input, m))
+      {
+       if (m != null)
+         {
+           if (input.charAt (m.index) == CharIndexed.OUT_OF_BOUNDS)
+             {
                return true;
-           }
-       }
-    }
+             }
+         }
+      }
     return false;
   }
-    
+
   /**
    * Returns the maximum number of subexpressions in this regular expression.
    * If the expression contains branches, the value returned will be the
    * maximum subexpressions in any of the branches.
    */
-  public int getNumSubs() {
+  public int getNumSubs ()
+  {
     return numSubs;
   }
 
   // Overrides REToken.setUncle
-  void setUncle(REToken uncle) {
-      if (lastToken != null) {
-         lastToken.setUncle(uncle);
-      } else super.setUncle(uncle); // to deal with empty subexpressions
+  void setUncle (REToken uncle)
+  {
+    if (lastToken != null)
+      {
+       lastToken.setUncle (uncle);
+      }
+    else
+      super.setUncle (uncle);  // to deal with empty subexpressions
   }
 
   // Overrides REToken.chain
 
-  boolean chain(REToken next) {
-    super.chain(next);
-    setUncle(next);
+  boolean chain (REToken next)
+  {
+    super.chain (next);
+    setUncle (next);
     return true;
   }
 
@@ -1580,12 +2003,14 @@ public class RE extends REToken {
    * Returns the minimum number of characters that could possibly
    * constitute a match of this regular expression.
    */
-  public int getMinimumLength() {
-      return minimumLength;
+  public int getMinimumLength ()
+  {
+    return minimumLength;
   }
 
-  public int getMaximumLength() {
-      return maximumLength;
+  public int getMaximumLength ()
+  {
+    return maximumLength;
   }
 
   /**
@@ -1597,8 +2022,9 @@ public class RE extends REToken {
    * @param input The input text.
    * @return a non-null (but possibly zero-length) array of matches
    */
-  public REMatch[] getAllMatches(Object input) {
-    return getAllMatches(input,0,0);
+  public REMatch[] getAllMatches (Object input)
+  {
+    return getAllMatches (input, 0, 0);
   }
 
   /**
@@ -1612,8 +2038,9 @@ public class RE extends REToken {
    * @param index The offset index at which the search should be begin.
    * @return a non-null (but possibly zero-length) array of matches
    */
-  public REMatch[] getAllMatches(Object input, int index) {
-    return getAllMatches(input,index,0);
+  public REMatch[] getAllMatches (Object input, int index)
+  {
+    return getAllMatches (input, index, 0);
   }
 
   /**
@@ -1629,52 +2056,62 @@ public class RE extends REToken {
    * @param eflags The logical OR of any execution flags above.
    * @return a non-null (but possibly zero-length) array of matches
    */
-  public REMatch[] getAllMatches(Object input, int index, int eflags) {
-    return getAllMatchesImpl(makeCharIndexed(input,index),index,eflags);
+  public REMatch[] getAllMatches (Object input, int index, int eflags)
+  {
+    return getAllMatchesImpl (makeCharIndexed (input, index), index, eflags);
   }
 
   // this has been changed since 1.03 to be non-overlapping matches
-  private REMatch[] getAllMatchesImpl(CharIndexed input, int index, int eflags) {
-    Vector all = new Vector();
+  private REMatch[] getAllMatchesImpl (CharIndexed input, int index,
+                                      int eflags)
+  {
+    List < REMatch > all = new ArrayList < REMatch > ();
     REMatch m = null;
-    while ((m = getMatchImpl(input,index,eflags,null)) != null) {
-      all.addElement(m);
-      index = m.getEndIndex();
-      if (m.end[0] == 0) {   // handle pathological case of zero-length match
-       index++;
-       input.move(1);
-      } else {
-       input.move(m.end[0]);
+    while ((m = getMatchImpl (input, index, eflags, null)) != null)
+      {
+       all.add (m);
+       index = m.getEndIndex ();
+       if (m.end[0] == 0)
+         {                     // handle pathological case of zero-length match
+           index++;
+           input.move (1);
+         }
+       else
+         {
+           input.move (m.end[0]);
+         }
+       if (!input.isValid ())
+         break;
       }
-      if (!input.isValid()) break;
-    }
-    REMatch[] mset = new REMatch[all.size()];
-    all.copyInto(mset);
-    return mset;
+    return all.toArray (new REMatch[all.size ()]);
   }
-  
-    /* Implements abstract method REToken.match() */
-    boolean match(CharIndexed input, REMatch mymatch) {
-        input.setHitEnd(mymatch);
-       if (firstToken == null) {
-           return next(input, mymatch);
-       }
-
-       // Note the start of this subexpression
-       mymatch.start1[subIndex] = mymatch.index;
-
-       return firstToken.match(input, mymatch);
-    }
 
-    REMatch findMatch(CharIndexed input, REMatch mymatch) {
-        if (mymatch.backtrackStack == null)
-         mymatch.backtrackStack = new BacktrackStack();
-       boolean b = match(input, mymatch);
-       if (b) {
-           return mymatch;
-       }
-       return null;
-    }
+  /* Implements abstract method REToken.match() */
+  boolean match (CharIndexed input, REMatch mymatch)
+  {
+    input.setHitEnd (mymatch);
+    if (firstToken == null)
+      {
+       return next (input, mymatch);
+      }
+
+    // Note the start of this subexpression
+    mymatch.start1[subIndex] = mymatch.index;
+
+    return firstToken.match (input, mymatch);
+  }
+
+  REMatch findMatch (CharIndexed input, REMatch mymatch)
+  {
+    if (mymatch.backtrackStack == null)
+      mymatch.backtrackStack = new BacktrackStack ();
+    boolean b = match (input, mymatch);
+    if (b)
+      {
+       return mymatch;
+      }
+    return null;
+  }
 
   /**
    * Returns the first match found in the input.  If no match is found,
@@ -1683,10 +2120,11 @@ public class RE extends REToken {
    * @param input The input text.
    * @return An REMatch instance referencing the match, or null if none.
    */
-  public REMatch getMatch(Object input) {
-    return getMatch(input,0,0);
+  public REMatch getMatch (Object input)
+  {
+    return getMatch (input, 0, 0);
   }
-  
+
   /**
    * Returns the first match found in the input, beginning
    * the search at the specified index.  If no match is found,
@@ -1696,10 +2134,11 @@ public class RE extends REToken {
    * @param index The offset within the text to begin looking for a match.
    * @return An REMatch instance referencing the match, or null if none.
    */
-  public REMatch getMatch(Object input, int index) {
-    return getMatch(input,index,0);
+  public REMatch getMatch (Object input, int index)
+  {
+    return getMatch (input, index, 0);
   }
-  
+
   /**
    * Returns the first match found in the input, beginning
    * the search at the specified index, and using the specified
@@ -1710,8 +2149,9 @@ public class RE extends REToken {
    * @param eflags The logical OR of any execution flags above.
    * @return An REMatch instance referencing the match, or null if none.
    */
-  public REMatch getMatch(Object input, int index, int eflags) {
-    return getMatch(input,index,eflags,null);
+  public REMatch getMatch (Object input, int index, int eflags)
+  {
+    return getMatch (input, index, eflags, null);
   }
 
   /**
@@ -1727,70 +2167,82 @@ public class RE extends REToken {
    * @param eflags The logical OR of any execution flags above.
    * @param buffer The StringBuffer to save pre-match text in.
    * @return An REMatch instance referencing the match, or null if none.  */
-  public REMatch getMatch(Object input, int index, int eflags, StringBuffer buffer) {
-    return getMatchImpl(makeCharIndexed(input,index),index,eflags,buffer);
+  public REMatch getMatch (Object input, int index, int eflags,
+                          CPStringBuilder buffer)
+  {
+    return getMatchImpl (makeCharIndexed (input, index), index, eflags,
+                        buffer);
   }
 
-  REMatch getMatchImpl(CharIndexed input, int anchor, int eflags, StringBuffer buffer) {
-      boolean tryEntireMatch = ((eflags & REG_TRY_ENTIRE_MATCH) != 0);
-      boolean doMove = ((eflags & REG_FIX_STARTING_POSITION) == 0);
-      RE re = (tryEntireMatch ? (RE) this.clone() : this);
-      if (tryEntireMatch) {
-         RETokenEnd reEnd = new RETokenEnd(0, null);
-         reEnd.setFake(true);
-         re.chain(reEnd);
+  REMatch getMatchImpl (CharIndexed input, int anchor, int eflags,
+                       CPStringBuilder buffer)
+  {
+    boolean tryEntireMatch = ((eflags & REG_TRY_ENTIRE_MATCH) != 0);
+    boolean doMove = ((eflags & REG_FIX_STARTING_POSITION) == 0);
+    RE re = (tryEntireMatch ? (RE) this.clone () : this);
+    if (tryEntireMatch)
+      {
+       RETokenEnd reEnd = new RETokenEnd (0, null);
+       reEnd.setFake (true);
+       re.chain (reEnd);
       }
-      // Create a new REMatch to hold results
-      REMatch mymatch = new REMatch(numSubs, anchor, eflags);
-      do {
-          /* The following potimization is commented out because
-             the matching should be tried even if the length of
-             input is obviously too short in order that
-             java.util.regex.Matcher#hitEnd() may work correctly.
-         // Optimization: check if anchor + minimumLength > length
-         if (minimumLength == 0 || input.charAt(minimumLength-1) != CharIndexed.OUT_OF_BOUNDS) {
-          */
-             if (re.match(input, mymatch)) {
-                 REMatch best = mymatch;
-                 // We assume that the match that coms first is the best.
-                 // And the following "The longer, the better" rule has
-                 // been commented out. The longest is not neccesarily
-                 // the best. For example, "a" out of "aaa" is the best
-                 // match for /a+?/.
-                 /*
-                 // Find best match of them all to observe leftmost longest
-                 while ((mymatch = mymatch.next) != null) {
-                     if (mymatch.index > best.index) {
-                       best = mymatch;
-                     }
-                 }
-                 */
-                 best.end[0] = best.index;
-                 best.finish(input);
-                 input.setLastMatch(best);
-                 return best;
-             }
-         /* End of the optimization commented out
-          }
-         */
-         mymatch.clear(++anchor);
-         // Append character to buffer if needed
-         if (buffer != null && input.charAt(0) != CharIndexed.OUT_OF_BOUNDS) {
-             buffer.append(input.charAt(0));
+    // Create a new REMatch to hold results
+    REMatch mymatch = new REMatch (numSubs, anchor, eflags);
+    do
+      {
+       /* The following potimization is commented out because
+          the matching should be tried even if the length of
+          input is obviously too short in order that
+          java.util.regex.Matcher#hitEnd() may work correctly.
+          // Optimization: check if anchor + minimumLength > length
+          if (minimumLength == 0 || input.charAt(minimumLength-1) != CharIndexed.OUT_OF_BOUNDS) {
+        */
+       if (re.match (input, mymatch))
+         {
+           REMatch best = mymatch;
+           // We assume that the match that coms first is the best.
+           // And the following "The longer, the better" rule has
+           // been commented out. The longest is not neccesarily
+           // the best. For example, "a" out of "aaa" is the best
+           // match for /a+?/.
+           /*
+              // Find best match of them all to observe leftmost longest
+              while ((mymatch = mymatch.next) != null) {
+              if (mymatch.index > best.index) {
+              best = mymatch;
+              }
+              }
+            */
+           best.end[0] = best.index;
+           best.finish (input);
+           input.setLastMatch (best);
+           return best;
          }
-      // java.util.regex.Matcher#hitEnd() requires that the search should
-      // be tried at the end of input, so we use move1(1) instead of move(1) 
-      } while (doMove && input.move1(1));
-      
-      // Special handling at end of input for e.g. "$"
-      if (minimumLength == 0) {
-         if (match(input, mymatch)) {
-             mymatch.finish(input);
-             return mymatch;
+       /* End of the optimization commented out
+          }
+        */
+       mymatch.clear (++anchor);
+       // Append character to buffer if needed
+       if (buffer != null && input.charAt (0) != CharIndexed.OUT_OF_BOUNDS)
+         {
+           buffer.append (input.charAt (0));
+         }
+       // java.util.regex.Matcher#hitEnd() requires that the search should
+       // be tried at the end of input, so we use move1(1) instead of move(1) 
+      }
+    while (doMove && input.move1 (1));
+
+    // Special handling at end of input for e.g. "$"
+    if (minimumLength == 0)
+      {
+       if (match (input, mymatch))
+         {
+           mymatch.finish (input);
+           return mymatch;
          }
       }
 
-      return null;
+    return null;
   }
 
   /**
@@ -1800,8 +2252,9 @@ public class RE extends REToken {
    * @param input The input text.
    * @return A non-null REMatchEnumeration instance.
    */
-  public REMatchEnumeration getMatchEnumeration(Object input) {
-    return getMatchEnumeration(input,0,0);
+  public REMatchEnumeration getMatchEnumeration (Object input)
+  {
+    return getMatchEnumeration (input, 0, 0);
   }
 
 
@@ -1814,8 +2267,9 @@ public class RE extends REToken {
    * @return A non-null REMatchEnumeration instance, with its input cursor
    *  set to the index position specified.
    */
-  public REMatchEnumeration getMatchEnumeration(Object input, int index) {
-    return getMatchEnumeration(input,index,0);
+  public REMatchEnumeration getMatchEnumeration (Object input, int index)
+  {
+    return getMatchEnumeration (input, index, 0);
   }
 
   /**
@@ -1828,8 +2282,11 @@ public class RE extends REToken {
    * @return A non-null REMatchEnumeration instance, with its input cursor
    *  set to the index position specified.
    */
-  public REMatchEnumeration getMatchEnumeration(Object input, int index, int eflags) {
-    return new REMatchEnumeration(this,makeCharIndexed(input,index),index,eflags);
+  public REMatchEnumeration getMatchEnumeration (Object input, int index,
+                                                int eflags)
+  {
+    return new REMatchEnumeration (this, makeCharIndexed (input, index),
+                                  index, eflags);
   }
 
 
@@ -1841,8 +2298,9 @@ public class RE extends REToken {
    * @return A String interpolating the substituted text.
    * @see REMatch#substituteInto
    */
-  public String substitute(Object input,String replace) {
-    return substitute(input,replace,0,0);
+  public String substitute (Object input, String replace)
+  {
+    return substitute (input, replace, 0, 0);
   }
 
   /**
@@ -1858,8 +2316,9 @@ public class RE extends REToken {
    *   at the index position, and interpolating the substituted text.
    * @see REMatch#substituteInto
    */
-  public String substitute(Object input,String replace,int index) {
-    return substitute(input,replace,index,0);
+  public String substitute (Object input, String replace, int index)
+  {
+    return substitute (input, replace, index, 0);
   }
 
   /**
@@ -1875,23 +2334,32 @@ public class RE extends REToken {
    *   at the index position, and interpolating the substituted text.
    * @see REMatch#substituteInto
    */
-  public String substitute(Object input,String replace,int index,int eflags) {
-    return substituteImpl(makeCharIndexed(input,index),replace,index,eflags);
+  public String substitute (Object input, String replace, int index,
+                           int eflags)
+  {
+    return substituteImpl (makeCharIndexed (input, index), replace, index,
+                          eflags);
   }
 
-  private String substituteImpl(CharIndexed input,String replace,int index,int eflags) {
-    StringBuffer buffer = new StringBuffer();
-    REMatch m = getMatchImpl(input,index,eflags,buffer);
-    if (m==null) return buffer.toString();
-    buffer.append(getReplacement(replace, m, eflags));
-    if (input.move(m.end[0])) {
-      do {
-       buffer.append(input.charAt(0));
-      } while (input.move(1));
-    }
-    return buffer.toString();
+  private String substituteImpl (CharIndexed input, String replace, int index,
+                                int eflags)
+  {
+    CPStringBuilder buffer = new CPStringBuilder ();
+    REMatch m = getMatchImpl (input, index, eflags, buffer);
+    if (m == null)
+      return buffer.toString ();
+    buffer.append (getReplacement (replace, m, eflags));
+    if (input.move (m.end[0]))
+      {
+       do
+         {
+           buffer.append (input.charAt (0));
+         }
+       while (input.move (1));
+      }
+    return buffer.toString ();
   }
-  
+
   /**
    * Substitutes the replacement text for each non-overlapping match found 
    * in the input text.
@@ -1901,8 +2369,9 @@ public class RE extends REToken {
    * @return A String interpolating the substituted text.
    * @see REMatch#substituteInto
    */
-  public String substituteAll(Object input,String replace) {
-    return substituteAll(input,replace,0,0);
+  public String substituteAll (Object input, String replace)
+  {
+    return substituteAll (input, replace, 0, 0);
   }
 
   /**
@@ -1919,10 +2388,11 @@ public class RE extends REToken {
    *   at the index position, and interpolating the substituted text.
    * @see REMatch#substituteInto
    */
-  public String substituteAll(Object input,String replace,int index) {
-    return substituteAll(input,replace,index,0);
+  public String substituteAll (Object input, String replace, int index)
+  {
+    return substituteAll (input, replace, index, 0);
   }
+
   /**
    * Substitutes the replacement text for each non-overlapping match found 
    * in the input text, starting at the specified index and using the
@@ -1936,218 +2406,270 @@ public class RE extends REToken {
    *   at the index position, and interpolating the substituted text.
    * @see REMatch#substituteInto
    */
-  public String substituteAll(Object input,String replace,int index,int eflags) {
-    return substituteAllImpl(makeCharIndexed(input,index),replace,index,eflags);
+  public String substituteAll (Object input, String replace, int index,
+                              int eflags)
+  {
+    return substituteAllImpl (makeCharIndexed (input, index), replace, index,
+                             eflags);
   }
 
-  private String substituteAllImpl(CharIndexed input,String replace,int index,int eflags) {
-    StringBuffer buffer = new StringBuffer();
+  private String substituteAllImpl (CharIndexed input, String replace,
+                                   int index, int eflags)
+  {
+    CPStringBuilder buffer = new CPStringBuilder ();
     REMatch m;
-    while ((m = getMatchImpl(input,index,eflags,buffer)) != null) {
-      buffer.append(getReplacement(replace, m, eflags));
-      index = m.getEndIndex();
-      if (m.end[0] == 0) {
-       char ch = input.charAt(0);
-       if (ch != CharIndexed.OUT_OF_BOUNDS) 
-           buffer.append(ch);
-       input.move(1);
-      } else {
-         input.move(m.end[0]);
-      }
+    while ((m = getMatchImpl (input, index, eflags, buffer)) != null)
+      {
+       buffer.append (getReplacement (replace, m, eflags));
+       index = m.getEndIndex ();
+       if (m.end[0] == 0)
+         {
+           char ch = input.charAt (0);
+           if (ch != CharIndexed.OUT_OF_BOUNDS)
+             buffer.append (ch);
+           input.move (1);
+         }
+       else
+         {
+           input.move (m.end[0]);
+         }
 
-      if (!input.isValid()) break;
-    }
-    return buffer.toString();
+       if (!input.isValid ())
+         break;
+      }
+    return buffer.toString ();
   }
 
-  public static String getReplacement(String replace, REMatch m, int eflags) {
+  public static String getReplacement (String replace, REMatch m, int eflags)
+  {
     if ((eflags & REG_NO_INTERPOLATE) > 0)
       return replace;
-    else {
-      if ((eflags & REG_REPLACE_USE_BACKSLASHESCAPE) > 0) {
-        StringBuffer sb = new StringBuffer();
-        int l = replace.length();
-        for (int i = 0; i < l; i++) {
-           char c = replace.charAt(i);
-            switch(c) {
-            case '\\':
-              i++;
-              // Let StringIndexOutOfBoundsException be thrown.
-              sb.append(replace.charAt(i));
-              break;
-            case '$':
-             int i1 = i + 1;
-             while (i1 < replace.length() &&
-               Character.isDigit(replace.charAt(i1))) i1++;
-              sb.append(m.substituteInto(replace.substring(i, i1)));
-              i = i1 - 1;
-              break;
-            default:
-              sb.append(c);
-            }
-        }
-        return sb.toString();
+    else
+      {
+       if ((eflags & REG_REPLACE_USE_BACKSLASHESCAPE) > 0)
+         {
+           CPStringBuilder sb = new CPStringBuilder ();
+           int l = replace.length ();
+           for (int i = 0; i < l; i++)
+             {
+               char c = replace.charAt (i);
+               switch (c)
+                 {
+                 case '\\':
+                   i++;
+                   // Let StringIndexOutOfBoundsException be thrown.
+                   sb.append (replace.charAt (i));
+                   break;
+                 case '$':
+                   int i1 = i + 1;
+                   while (i1 < replace.length () &&
+                          Character.isDigit (replace.charAt (i1)))
+                     i1++;
+                   sb.append (m.substituteInto (replace.substring (i, i1)));
+                   i = i1 - 1;
+                   break;
+                 default:
+                   sb.append (c);
+                 }
+             }
+           return sb.toString ();
+         }
+       else
+         return m.substituteInto (replace);
       }
-      else
-        return m.substituteInto(replace);
-    }
-  }    
-  
+  }
+
   /* Helper function for constructor */
-  private void addToken(REToken next) {
-    if (next == null) return;
-    minimumLength += next.getMinimumLength();
-    int nmax = next.getMaximumLength();
+  private void addToken (REToken next)
+  {
+    if (next == null)
+      return;
+    minimumLength += next.getMinimumLength ();
+    int nmax = next.getMaximumLength ();
     if (nmax < Integer.MAX_VALUE && maximumLength < Integer.MAX_VALUE)
-       maximumLength += nmax;
-    else 
-       maximumLength = Integer.MAX_VALUE;
+      maximumLength += nmax;
+    else
+      maximumLength = Integer.MAX_VALUE;
 
-    if (firstToken == null) {
+    if (firstToken == null)
+      {
        lastToken = firstToken = next;
-    } else {
-      // if chain returns false, it "rejected" the token due to
-      // an optimization, and next was combined with lastToken
-      if (lastToken.chain(next)) {
-         lastToken = next;
       }
-    }
+    else
+      {
+       // if chain returns false, it "rejected" the token due to
+       // an optimization, and next was combined with lastToken
+       if (lastToken.chain (next))
+         {
+           lastToken = next;
+         }
+      }
   }
 
-  private static REToken setRepeated(REToken current, int min, int max, int index) throws REException {
-    if (current == null) throw new REException(getLocalizedMessage("repeat.no.token"),REException.REG_BADRPT,index);
-    return new RETokenRepeated(current.subIndex,current,min,max);
+  private static REToken setRepeated (REToken current, int min, int max,
+                                     int index) throws REException
+  {
+    if (current == null)
+      throw new REException (getLocalizedMessage ("repeat.no.token"),
+                            REException.REG_BADRPT, index);
+      return new RETokenRepeated (current.subIndex, current, min, max);
   }
 
-  private static int getPosixSet(char[] pattern,int index,StringBuffer buf) {
+  private static int getPosixSet (char[]pattern, int index,
+                                 CPStringBuilder buf)
+  {
     // Precondition: pattern[index-1] == ':'
     // we will return pos of closing ']'.
     int i;
-    for (i=index; i<(pattern.length-1); i++) {
-      if ((pattern[i] == ':') && (pattern[i+1] == ']'))
-       return i+2;
-      buf.append(pattern[i]);
-    }
-    return index; // didn't match up
+    for (i = index; i < (pattern.length - 1); i++)
+      {
+       if ((pattern[i] == ':') && (pattern[i + 1] == ']'))
+         return i + 2;
+       buf.append (pattern[i]);
+      }
+    return index;              // didn't match up
   }
 
-  private int getMinMax(char[] input,int index,IntPair minMax,RESyntax syntax) throws REException {
+  private int getMinMax (char[]input, int index, IntPair minMax,
+                        RESyntax syntax) throws REException
+  {
     // Precondition: input[index-1] == '{', minMax != null
 
-    boolean mustMatch = !syntax.get(RESyntax.RE_NO_BK_BRACES);
+    boolean mustMatch = !syntax.get (RESyntax.RE_NO_BK_BRACES);
     int startIndex = index;
-    if (index == input.length) {
-      if (mustMatch)
-        throw new REException(getLocalizedMessage("unmatched.brace"),REException.REG_EBRACE,index);
-      else
-        return startIndex;
-    }
-    
-    int min,max=0;
-    CharUnit unit = new CharUnit();
-    StringBuffer buf = new StringBuffer();
-    
+    if (index == input.length)
+      {
+       if (mustMatch)
+         throw new REException (getLocalizedMessage ("unmatched.brace"),
+                                REException.REG_EBRACE, index);
+       else
+         return startIndex;
+      }
+
+    int min, max = 0;
+    CharUnit unit = new CharUnit ();
+    CPStringBuilder buf = new CPStringBuilder ();
+
     // Read string of digits
-    do {
-      index = getCharUnit(input,index,unit,false);
-      if (Character.isDigit(unit.ch))
-        buf.append(unit.ch);
-    } while ((index != input.length) && Character.isDigit(unit.ch));
+    do
+      {
+       index = getCharUnit (input, index, unit, false);
+       if (Character.isDigit (unit.ch))
+         buf.append (unit.ch);
+      }
+    while ((index != input.length) && Character.isDigit (unit.ch));
 
     // Check for {} tomfoolery
-    if (buf.length() == 0) {
-      if (mustMatch)
-        throw new REException(getLocalizedMessage("interval.error"),REException.REG_EBRACE,index);
-      else
-        return startIndex;
-    }
+    if (buf.length () == 0)
+      {
+       if (mustMatch)
+         throw new REException (getLocalizedMessage ("interval.error"),
+                                REException.REG_EBRACE, index);
+       else
+       return startIndex;
+      }
 
-    min = Integer.parseInt(buf.toString());
-       
-    if ((unit.ch == '}') && (syntax.get(RESyntax.RE_NO_BK_BRACES) ^ unit.bk))
+    min = Integer.parseInt (buf.toString ());
+
+    if ((unit.ch == '}') && (syntax.get (RESyntax.RE_NO_BK_BRACES) ^ unit.bk))
       max = min;
     else if (index == input.length)
       if (mustMatch)
-        throw new REException(getLocalizedMessage("interval.no.end"),REException.REG_EBRACE,index);
-      else
-        return startIndex;
-    else if ((unit.ch == ',') && !unit.bk) {
-      buf = new StringBuffer();
+       throw new REException (getLocalizedMessage ("interval.no.end"),
+                              REException.REG_EBRACE, index);
+    else
+    return startIndex;
+    else
+  if ((unit.ch == ',') && !unit.bk)
+    {
+      buf = new CPStringBuilder ();
       // Read string of digits
-      while (((index = getCharUnit(input,index,unit,false)) != input.length) && Character.isDigit(unit.ch))
-       buf.append(unit.ch);
-
-      if (!((unit.ch == '}') && (syntax.get(RESyntax.RE_NO_BK_BRACES) ^ unit.bk)))
-        if (mustMatch)
-          throw new REException(getLocalizedMessage("interval.error"),REException.REG_EBRACE,index);
-        else
-          return startIndex;
+      while (((index =
+              getCharUnit (input, index, unit, false)) != input.length)
+            && Character.isDigit (unit.ch))
+       buf.append (unit.ch);
+
+      if (!
+         ((unit.ch == '}')
+          && (syntax.get (RESyntax.RE_NO_BK_BRACES) ^ unit.bk)))
+       if (mustMatch)
+         throw new REException (getLocalizedMessage ("interval.error"),
+                                REException.REG_EBRACE, index);
+      else
+      return startIndex;
 
       // This is the case of {x,}
-      if (buf.length() == 0) max = Integer.MAX_VALUE;
-      else max = Integer.parseInt(buf.toString());
-    } else
-      if (mustMatch)
-        throw new REException(getLocalizedMessage("interval.error"),REException.REG_EBRACE,index);
+      if (buf.length () == 0)
+       max = Integer.MAX_VALUE;
       else
-        return startIndex;
+       max = Integer.parseInt (buf.toString ());
+    }
+  else if (mustMatch)
+    throw new REException (getLocalizedMessage ("interval.error"),
+                          REException.REG_EBRACE, index);
+  else
+  return startIndex;
 
-    // We know min and max now, and they are valid.
+  // We know min and max now, and they are valid.
 
-    minMax.first = min;
-    minMax.second = max;
+  minMax.first = min;
+  minMax.second = max;
 
-    // return the index following the '}'
-    return index;
+  // return the index following the '}'
+  return index;
   }
 
    /**
     * Return a human readable form of the compiled regular expression,
     * useful for debugging.
     */
-   public String toString() {
-     StringBuffer sb = new StringBuffer();
-     dump(sb);
-     return sb.toString();
-   }
-
-  void dump(StringBuffer os) {
-    os.append("(?#startRE subIndex=" + subIndex + ")");
+  public String toString ()
+  {
+    CPStringBuilder sb = new CPStringBuilder ();
+    dump (sb);
+    return sb.toString ();
+  }
+
+  void dump (CPStringBuilder os)
+  {
+    os.append ("(?#startRE subIndex=" + subIndex + ")");
     if (subIndex == 0)
-      os.append("?:");
+      os.append ("?:");
     if (firstToken != null)
-      firstToken.dumpAll(os);
+      firstToken.dumpAll (os);
     if (subIndex == 0)
-      os.append(")");
-    os.append("(?#endRE subIndex=" + subIndex + ")");
+      os.append (")");
+    os.append ("(?#endRE subIndex=" + subIndex + ")");
   }
 
   // Cast input appropriately or throw exception
   // This method was originally a private method, but has been made
   // public because java.util.regex.Matcher uses this.
-  public static CharIndexed makeCharIndexed(Object input, int index) {
-      // The case where input is already a CharIndexed is supposed
-      // be the most likely because this is the case with
-      // java.util.regex.Matcher.
-      // We could let a String or a CharSequence fall through
-      // to final input, but since it'a very likely input type, 
-      // we check it first.
-    if (input instanceof CharIndexed) {
+  public static CharIndexed makeCharIndexed (Object input, int index)
+  {
+    // The case where input is already a CharIndexed is supposed
+    // be the most likely because this is the case with
+    // java.util.regex.Matcher.
+    // We could let a String or a CharSequence fall through
+    // to final input, but since it'a very likely input type, 
+    // we check it first.
+    if (input instanceof CharIndexed)
+      {
        CharIndexed ci = (CharIndexed) input;
-       ci.setAnchor(index);
+       ci.setAnchor (index);
        return ci;
-    }
+      }
     else if (input instanceof CharSequence)
-      return new CharIndexedCharSequence((CharSequence) input,index);
+      return new CharIndexedCharSequence ((CharSequence) input, index);
     else if (input instanceof String)
-      return new CharIndexedString((String) input,index);
+      return new CharIndexedString ((String) input, index);
     else if (input instanceof char[])
-      return new CharIndexedCharArray((char[]) input,index);
+      return new CharIndexedCharArray ((char[]) input, index);
     else if (input instanceof StringBuffer)
-      return new CharIndexedStringBuffer((StringBuffer) input,index);
+      return new CharIndexedStringBuffer ((StringBuffer) input, index);
     else if (input instanceof InputStream)
-      return new CharIndexedInputStream((InputStream) input,index);
-    else 
-       return new CharIndexedString(input.toString(), index);
+      return new CharIndexedInputStream ((InputStream) input, index);
+    else
+      return new CharIndexedString (input.toString (), index);
   }
 }
index 7a277ca3ae3d6631003fa40965a590c6f51cbbf5..5681ceeea6abba261f1df53330cc8ca5da25b324 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.text.MessageFormat;
 
 /**
@@ -53,7 +55,8 @@ import java.text.MessageFormat;
  * @author <A HREF="mailto:wes@cacas.org">Wes Biggs</A>
  */
 
-public class REException extends Exception {
+public class REException extends Exception
+{
   private int type;
   private int pos;
 
@@ -64,25 +67,25 @@ public class REException extends Exception {
    * Invalid use of repetition operators such  as  using
    * `*' as the first character.
    */
-  public static final int REG_BADRPT  =  1;
+  public static final int REG_BADRPT = 1;
 
   /**
    * Error flag.
    * Invalid use of back reference operator.
    */
-  public static final int REG_BADBR   =  2;
+  public static final int REG_BADBR = 2;
 
   /**
    * Error flag.
    * Un-matched brace interval operators.
    */
-  public static final int REG_EBRACE  =  3;
+  public static final int REG_EBRACE = 3;
 
   /**
    * Error flag.
    * Un-matched bracket list operators.
    */
-  public static final int REG_EBRACK  =  4;
+  public static final int REG_EBRACK = 4;
 
   /**
    * Error flag.
@@ -90,65 +93,67 @@ public class REException extends Exception {
    * point of the range occurs  prior  to  the  starting
    * point.
    */
-  public static final int REG_ERANGE  =  5;
+  public static final int REG_ERANGE = 5;
 
   /**
    * Error flag.
    * Unknown character class name. <B>Not implemented</B>.
    */
-  public static final int REG_ECTYPE  =  6;
+  public static final int REG_ECTYPE = 6;
 
   /**
    * Error flag.
    * Un-matched parenthesis group operators.
    */
-  public static final int REG_EPAREN  =  7;
+  public static final int REG_EPAREN = 7;
 
   /**
    * Error flag.
    * Invalid back reference to a subexpression.
    */
-  public static final int REG_ESUBREG =  8;
+  public static final int REG_ESUBREG = 8;
 
   /**
    * Error flag.
    * Non specific error. <B>Not implemented</B>.
    */
-  public static final int REG_EEND    =  9;
+  public static final int REG_EEND = 9;
 
   /**
    * Error flag.
    * Invalid escape sequence. <B>Not implemented</B>.
    */
-  public static final int REG_ESCAPE  = 10;
+  public static final int REG_ESCAPE = 10;
 
   /**
    * Error flag.
    * Invalid  use  of pattern operators such as group or list.
    */
-  public static final int REG_BADPAT  = 11;
+  public static final int REG_BADPAT = 11;
 
   /**
    * Error flag.
    * Compiled  regular  expression  requires  a  pattern
    * buffer larger than 64Kb. <B>Not implemented</B>.
    */
-  public static final int REG_ESIZE   = 12;
+  public static final int REG_ESIZE = 12;
 
   /**
    * Error flag.
    * The regex routines ran out of memory. <B>Not implemented</B>.
    */
-  public static final int REG_ESPACE  = 13;
+  public static final int REG_ESPACE = 13;
 
-  REException(String msg, int type, int position) { 
-    super(msg); 
+    REException (String msg, int type, int position)
+  {
+    super (msg);
     this.type = type;
     this.pos = position;
   }
 
-  REException(String msg, Throwable cause, int type, int position) { 
-    super(msg, cause); 
+  REException (String msg, Throwable cause, int type, int position)
+  {
+    super (msg, cause);
     this.type = type;
     this.pos = position;
   }
@@ -157,7 +162,8 @@ public class REException extends Exception {
    * Returns the type of the exception, one of the constants listed above.
    */
 
-  public int getType() {
+  public int getType ()
+  {
     return type;
   }
 
@@ -167,7 +173,8 @@ public class REException extends Exception {
    * where the error was detected, not necessarily the starting index of
    * a bad subexpression.
    */
-  public int getPosition() {
+  public int getPosition ()
+  {
     return pos;
   }
 
@@ -176,13 +183,16 @@ public class REException extends Exception {
    * as well as its index position in the string or character array
    * being compiled.
    */
-  public String getMessage() {
-    Object[] args = {new Integer(pos)};
-    StringBuffer sb = new StringBuffer();
-    String prefix = RE.getLocalizedMessage("error.prefix");
-    sb.append(MessageFormat.format(prefix, args));
-    sb.append('\n');
-    sb.append(super.getMessage());
-    return sb.toString();
+  public String getMessage ()
+  {
+    Object[]args =
+    {
+    new Integer (pos)};
+    CPStringBuilder sb = new CPStringBuilder ();
+    String prefix = RE.getLocalizedMessage ("error.prefix");
+    sb.append (MessageFormat.format (prefix, args));
+    sb.append ('\n');
+    sb.append (super.getMessage ());
+    return sb.toString ();
   }
 }
index abe86308bbcdb63afd5a9e24df35d2db00d2bf0c..c7acb714a275c1d529942c62edccf2de7052d145 100644 (file)
@@ -51,14 +51,15 @@ import java.io.InputStream;
  *             class instead.
  */
 
-public class REFilterInputStream extends FilterInputStream {
+public class REFilterInputStream extends FilterInputStream
+{
 
-    private RE expr;
-    private String replace;
-    private String buffer;
-    private int bufpos;
-    private int offset;
-    private CharIndexedInputStream stream;
+  private RE expr;
+  private String replace;
+  private String buffer;
+  private int bufpos;
+  private int offset;
+  private CharIndexedInputStream stream;
 
   /**
    * Creates an REFilterInputStream.  When reading from this stream,
@@ -71,9 +72,10 @@ public class REFilterInputStream extends FilterInputStream {
    * @param expr The regular expression to search for.
    * @param replace The text pattern to replace matches with.  
    */
-  public REFilterInputStream(InputStream stream, RE expr, String replace) {
-    super(stream);
-    this.stream = new CharIndexedInputStream(stream,0);
+  public REFilterInputStream (InputStream stream, RE expr, String replace)
+  {
+    super (stream);
+    this.stream = new CharIndexedInputStream (stream, 0);
     this.expr = expr;
     this.replace = replace;
   }
@@ -82,32 +84,38 @@ public class REFilterInputStream extends FilterInputStream {
    * Reads the next byte from the stream per the general contract of
    * InputStream.read().  Returns -1 on error or end of stream.
    */
-  public int read() {
+  public int read ()
+  {
     // If we have buffered replace data, use it.
-    if ((buffer != null) && (bufpos < buffer.length())) {
-      return (int) buffer.charAt(bufpos++);
-    }
+    if ((buffer != null) && (bufpos < buffer.length ()))
+      {
+       return (int) buffer.charAt (bufpos++);
+      }
 
     // check if input is at a valid position
-    if (!stream.isValid()) return -1;
-
-    REMatch mymatch = new REMatch(expr.getNumSubs(),offset,0);
-    if (expr.match(stream, mymatch)) {
-      mymatch.end[0] = mymatch.index;
-      mymatch.finish(stream);
-      stream.move(mymatch.toString().length());
-      offset += mymatch.toString().length();
-      buffer = mymatch.substituteInto(replace);
-      bufpos = 1;
-
-      // This is prone to infinite loops if replace string turns out empty.
-      if (buffer.length() > 0) {
-         return buffer.charAt(0);
+    if (!stream.isValid ())
+      return -1;
+
+    REMatch mymatch = new REMatch (expr.getNumSubs (), offset, 0);
+    if (expr.match (stream, mymatch))
+      {
+       mymatch.end[0] = mymatch.index;
+       mymatch.finish (stream);
+       stream.move (mymatch.toString ().length ());
+       offset += mymatch.toString ().length ();
+       buffer = mymatch.substituteInto (replace);
+       bufpos = 1;
+
+       // This is prone to infinite loops if replace string turns out empty.
+       if (buffer.length () > 0)
+         {
+           return buffer.charAt (0);
+         }
       }
-    }
-    char ch = stream.charAt(0);
-    if (ch == CharIndexed.OUT_OF_BOUNDS) return -1;
-    stream.move(1);
+    char ch = stream.charAt (0);
+    if (ch == CharIndexed.OUT_OF_BOUNDS)
+      return -1;
+    stream.move (1);
     offset++;
     return ch;
   }
@@ -116,25 +124,30 @@ public class REFilterInputStream extends FilterInputStream {
    * Returns false.  REFilterInputStream does not support mark() and
    * reset() methods. 
    */
-  public boolean markSupported() {
+  public boolean markSupported ()
+  {
     return false;
   }
 
   /** Reads from the stream into the provided array. */
-  public int read(byte[] b, int off, int len) {
+  public int read (byte[]b, int off, int len)
+  {
     int i;
     int ok = 0;
-    while (len-- > 0) {
-      i = read();
-      if (i == -1) return (ok == 0) ? -1 : ok;
-      b[off++] = (byte) i;
-      ok++;
-    }
+    while (len-- > 0)
+      {
+       i = read ();
+       if (i == -1)
+         return (ok == 0) ? -1 : ok;
+       b[off++] = (byte) i;
+       ok++;
+      }
     return ok;
   }
 
   /** Reads from the stream into the provided array. */
-  public int read(byte[] b) {
-    return read(b,0,b.length);
+  public int read (byte[]b)
+  {
+    return read (b, 0, b.length);
   }
 }
index d89948293234553c403a3374a20cf4397f3e9292..d29972e1dd821d659db164a9771fb7f371bd13ac 100644 (file)
@@ -37,6 +37,9 @@ exception statement from your version. */
 
 
 package gnu.java.util.regex;
+
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
 /**
@@ -47,100 +50,112 @@ import java.io.Serializable;
  *
  * @author <A HREF="mailto:wes@cacas.org">Wes Biggs</A>
  */
-public final class REMatch implements Serializable, Cloneable {
-    private String matchedText;
-    private CharIndexed matchedCharIndexed;
-
-    // These variables are package scope for fast access within the engine
-    int eflags; // execution flags this match was made using
-
-    // Offset in source text where match was tried.  This is zero-based;
-    // the actual position in the source text is given by (offset + anchor).
-    int offset;
-
-    // Anchor position refers to the index into the source input
-    // at which the matching operation began.
-    // This is also useful for the ANCHORINDEX option.
-    int anchor;
-
-    // Package scope; used by RE.
-    int index; // used while matching to mark current match position in input
-    // start1[i] is set when the i-th subexp starts. And start1[i] is copied
-    // to start[i] when the i-th subexp ends.  So start[i] keeps the previously
-    // assigned value while the i-th subexp is being processed. This makes
-    // backreference to the i-th subexp within the i-th subexp possible.
-    int[] start; // start positions (relative to offset) for each (sub)exp.
-    int[] start1; // start positions (relative to offset) for each (sub)exp.
-    int[] end;   // end positions for the same
-    // start[i] == -1 or end[i] == -1 means that the start/end position is void.
-    // start[i] == p or end[i] == p where p < 0 and p != -1 means that
-    // the actual start/end position is (p+1). Start/end positions may
-    // become negative when the subexpression is in a RETokenLookBehind.
-    boolean empty; // empty string matched. This flag is used only within
-                  // RETokenRepeated.
-
-    BacktrackStack backtrackStack;
-
-    public Object clone() {
-       try {
-           REMatch copy = (REMatch) super.clone();
-
-           copy.start = (int[]) start.clone();
-           copy.start1 = (int[]) start1.clone();
-           copy.end = (int[]) end.clone();
-
-           return copy;
-       } catch (CloneNotSupportedException e) {
-           throw new Error(); // doesn't happen
-       }
-    }
+public final class REMatch implements Serializable, Cloneable
+{
+  private String matchedText;
+  private CharIndexed matchedCharIndexed;
 
-    void assignFrom(REMatch other) {
-       start = other.start;
-       start1 = other.start1;
-       end = other.end;
-       index = other.index;
-       backtrackStack = other.backtrackStack;
-    }
+  // These variables are package scope for fast access within the engine
+  int eflags;                  // execution flags this match was made using
 
-    REMatch(int subs, int anchor, int eflags) {
-       start = new int[subs+1];
-       start1 = new int[subs+1];
-       end = new int[subs+1];
-       this.anchor = anchor;
-       this.eflags = eflags;
-       clear(anchor);
-    }
+  // Offset in source text where match was tried.  This is zero-based;
+  // the actual position in the source text is given by (offset + anchor).
+  int offset;
 
-    void finish(CharIndexed text) {
-       start[0] = 0;
-       StringBuffer sb = new StringBuffer();
-       int i;
-       for (i = 0; i < end[0]; i++)
-           sb.append(text.charAt(i));
-       matchedText = sb.toString();
-       matchedCharIndexed = text;
-       for (i = 0; i < start.length; i++) {
-           // If any subexpressions didn't terminate, they don't count
-           // TODO check if this code ever gets hit
-           if ((start[i] == -1) ^ (end[i] == -1)) {
-               start[i] = -1;
-               end[i] = -1;
-           }
-       }
-       backtrackStack = null;
+  // Anchor position refers to the index into the source input
+  // at which the matching operation began.
+  // This is also useful for the ANCHORINDEX option.
+  int anchor;
+
+  // Package scope; used by RE.
+  int index;                   // used while matching to mark current match position in input
+  // start1[i] is set when the i-th subexp starts. And start1[i] is copied
+  // to start[i] when the i-th subexp ends.  So start[i] keeps the previously
+  // assigned value while the i-th subexp is being processed. This makes
+  // backreference to the i-th subexp within the i-th subexp possible.
+  int[] start;                 // start positions (relative to offset) for each (sub)exp.
+  int[] start1;                        // start positions (relative to offset) for each (sub)exp.
+  int[] end;                   // end positions for the same
+  // start[i] == -1 or end[i] == -1 means that the start/end position is void.
+  // start[i] == p or end[i] == p where p < 0 and p != -1 means that
+  // the actual start/end position is (p+1). Start/end positions may
+  // become negative when the subexpression is in a RETokenLookBehind.
+  boolean empty;               // empty string matched. This flag is used only within
+  // RETokenRepeated.
+
+  BacktrackStack backtrackStack;
+
+  public Object clone ()
+  {
+    try
+    {
+      REMatch copy = (REMatch) super.clone ();
+
+        copy.start = (int[]) start.clone ();
+        copy.start1 = (int[]) start1.clone ();
+        copy.end = (int[]) end.clone ();
+
+        return copy;
     }
-    
-    /** Clears the current match and moves the offset to the new index. */
-    void clear(int index) {
-       offset = index;
-       this.index = 0;
-       for (int i = 0; i < start.length; i++) {
-           start[i] = start1[i] = end[i] = -1;
-       }
-       backtrackStack = null;
+    catch (CloneNotSupportedException e)
+    {
+      throw new Error ();      // doesn't happen
     }
-    
+  }
+
+  void assignFrom (REMatch other)
+  {
+    start = other.start;
+    start1 = other.start1;
+    end = other.end;
+    index = other.index;
+    backtrackStack = other.backtrackStack;
+  }
+
+  REMatch (int subs, int anchor, int eflags)
+  {
+    start = new int[subs + 1];
+    start1 = new int[subs + 1];
+    end = new int[subs + 1];
+    this.anchor = anchor;
+    this.eflags = eflags;
+    clear (anchor);
+  }
+
+  void finish (CharIndexed text)
+  {
+    start[0] = 0;
+    CPStringBuilder sb = new CPStringBuilder ();
+    int i;
+    for (i = 0; i < end[0]; i++)
+      sb.append (text.charAt (i));
+    matchedText = sb.toString ();
+    matchedCharIndexed = text;
+    for (i = 0; i < start.length; i++)
+      {
+       // If any subexpressions didn't terminate, they don't count
+       // TODO check if this code ever gets hit
+       if ((start[i] == -1) ^ (end[i] == -1))
+         {
+           start[i] = -1;
+           end[i] = -1;
+         }
+      }
+    backtrackStack = null;
+  }
+
+    /** Clears the current match and moves the offset to the new index. */
+  void clear (int index)
+  {
+    offset = index;
+    this.index = 0;
+    for (int i = 0; i < start.length; i++)
+      {
+       start[i] = start1[i] = end[i] = -1;
+      }
+    backtrackStack = null;
+  }
+
     /**
      * Returns the string matching the pattern.  This makes it convenient
      * to write code like the following:
@@ -150,18 +165,20 @@ public final class REMatch implements Serializable, Cloneable {
      * if (myMatch != null) System.out.println("Regexp found: "+myMatch);
      * </code>
      */
-    public String toString() {
-       return matchedText;
-    }
-    
+  public String toString ()
+  {
+    return matchedText;
+  }
+
     /**
      * Returns the index within the input text where the match in its entirety
      * began.
      */
-    public int getStartIndex() {
-       return offset + start[0];
-    }
-    
+  public int getStartIndex ()
+  {
+    return offset + start[0];
+  }
+
     /**
      * Returns the index within the input string where the match in
      * its entirety ends.  The return value is the next position after
@@ -179,10 +196,11 @@ public final class REMatch implements Serializable, Cloneable {
      * But you can save yourself that work, since the <code>toString()</code>
      * method (above) does exactly that for you.  
      */
-    public int getEndIndex() {
-       return offset + end[0];
-    }
-  
+  public int getEndIndex ()
+  {
+    return offset + end[0];
+  }
+
     /**
      * Returns the string matching the given subexpression.  The subexpressions
      * are indexed starting with one, not zero.  That is, the subexpression
@@ -191,25 +209,30 @@ public final class REMatch implements Serializable, Cloneable {
      *
      * @param sub Index of the subexpression.
      */
-    public String toString(int sub) {
-       if ((sub >= start.length) || sub < 0)
-           throw new IndexOutOfBoundsException("No group " + sub);
-       if (start[sub] == -1) return null;
-       if (start[sub] >= 0 && end[sub] <= matchedText.length())
-           return (matchedText.substring(start[sub],end[sub]));
-       else {
+  public String toString (int sub)
+  {
+    if ((sub >= start.length) || sub < 0)
+      throw new IndexOutOfBoundsException ("No group " + sub);
+    if (start[sub] == -1)
+      return null;
+    if (start[sub] >= 0 && end[sub] <= matchedText.length ())
+      return (matchedText.substring (start[sub], end[sub]));
+    else
+      {
        // This case occurs with RETokenLookAhead or RETokenLookBehind.
-           StringBuffer sb = new StringBuffer();
-           int s = start[sub];
-           int e = end[sub];
-           if (s < 0) s += 1;
-           if (e < 0) e += 1;
-           for (int i = start[0] + s; i < start[0] + e; i++)
-               sb.append(matchedCharIndexed.charAt(i));
-           return sb.toString();
-       }
-    }
-    
+       CPStringBuilder sb = new CPStringBuilder ();
+       int s = start[sub];
+       int e = end[sub];
+       if (s < 0)
+         s += 1;
+       if (e < 0)
+         e += 1;
+       for (int i = start[0] + s; i < start[0] + e; i++)
+         sb.append (matchedCharIndexed.charAt (i));
+       return sb.toString ();
+      }
+  }
+
     /** 
      * Returns the index within the input string used to generate this match
      * where subexpression number <i>sub</i> begins, or <code>-1</code> if
@@ -218,13 +241,14 @@ public final class REMatch implements Serializable, Cloneable {
      * @param sub Subexpression index
      * @deprecated Use getStartIndex(int) instead.
      */
-    public int getSubStartIndex(int sub) {
-       if (sub >= start.length) return -1;
-       int x = start[sub];
-       return (x == -1) ? x :
-              (x >= 0) ? offset + x : offset + x + 1;
-    }
-    
+  public int getSubStartIndex (int sub)
+  {
+    if (sub >= start.length)
+      return -1;
+    int x = start[sub];
+    return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1;
+  }
+
     /** 
      * Returns the index within the input string used to generate this match
      * where subexpression number <i>sub</i> begins, or <code>-1</code> if
@@ -233,13 +257,14 @@ public final class REMatch implements Serializable, Cloneable {
      * @param sub Subexpression index
      * @since gnu.regexp 1.1.0
      */
-    public int getStartIndex(int sub) {
-       if (sub >= start.length) return -1;
-       int x = start[sub];
-       return (x == -1) ? x :
-              (x >= 0) ? offset + x : offset + x + 1;
-    }
-  
+  public int getStartIndex (int sub)
+  {
+    if (sub >= start.length)
+      return -1;
+    int x = start[sub];
+    return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1;
+  }
+
     /** 
      * Returns the index within the input string used to generate this match
      * where subexpression number <i>sub</i> ends, or <code>-1</code> if
@@ -248,13 +273,14 @@ public final class REMatch implements Serializable, Cloneable {
      * @param sub Subexpression index
      * @deprecated Use getEndIndex(int) instead
      */
-    public int getSubEndIndex(int sub) {
-       if (sub >= start.length) return -1;
-       int x = end[sub];
-       return (x == -1) ? x :
-              (x >= 0) ? offset + x : offset + x + 1;
-    }
-    
+  public int getSubEndIndex (int sub)
+  {
+    if (sub >= start.length)
+      return -1;
+    int x = end[sub];
+    return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1;
+  }
+
     /** 
      * Returns the index within the input string used to generate this match
      * where subexpression number <i>sub</i> ends, or <code>-1</code> if
@@ -262,13 +288,14 @@ public final class REMatch implements Serializable, Cloneable {
      *
      * @param sub Subexpression index
      */
-    public int getEndIndex(int sub) {
-       if (sub >= start.length) return -1;
-       int x = end[sub];
-       return (x == -1) ? x :
-              (x >= 0) ? offset + x : offset + x + 1;
-    }
-    
+  public int getEndIndex (int sub)
+  {
+    if (sub >= start.length)
+      return -1;
+    int x = end[sub];
+    return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1;
+  }
+
     /**
      * Substitute the results of this match to create a new string.
      * This is patterned after PERL, so the tokens to watch out for are
@@ -280,31 +307,42 @@ public final class REMatch implements Serializable, Cloneable {
      *
      * @param input A string consisting of literals and <code>$<i>n</i></code> tokens.
      */
-    public String substituteInto(String input) {
-       // a la Perl, $0 is whole thing, $1 - $9 are subexpressions
-       StringBuffer output = new StringBuffer();
-       int pos;
-       for (pos = 0; pos < input.length()-1; pos++) {
-           if ((input.charAt(pos) == '$') && (Character.isDigit(input.charAt(pos+1)))) {
-               int val = Character.digit(input.charAt(++pos),10);
-               int pos1 = pos + 1;
-               while (pos1 < input.length() &&
-                      Character.isDigit(input.charAt(pos1))) {
-                   int val1 = val*10 + Character.digit(input.charAt(pos1),10);
-                   if (val1 >= start.length) break;
-                   pos1++;
-                   val = val1;
-               }
-               pos = pos1 - 1;
-
-               if (val < start.length) {
-                   output.append(toString(val));
-               } 
-           } else output.append(input.charAt(pos));
-       }
-       if (pos < input.length()) output.append(input.charAt(pos));
-       return output.toString();
-    }
+  public String substituteInto (String input)
+  {
+    // a la Perl, $0 is whole thing, $1 - $9 are subexpressions
+    CPStringBuilder output = new CPStringBuilder ();
+    int pos;
+    for (pos = 0; pos < input.length () - 1; pos++)
+      {
+       if ((input.charAt (pos) == '$')
+           && (Character.isDigit (input.charAt (pos + 1))))
+         {
+           int val = Character.digit (input.charAt (++pos), 10);
+           int pos1 = pos + 1;
+           while (pos1 < input.length () &&
+                  Character.isDigit (input.charAt (pos1)))
+             {
+               int val1 =
+                 val * 10 + Character.digit (input.charAt (pos1), 10);
+               if (val1 >= start.length)
+                 break;
+               pos1++;
+               val = val1;
+             }
+           pos = pos1 - 1;
+
+           if (val < start.length)
+             {
+               output.append (toString (val));
+             }
+         }
+       else
+         output.append (input.charAt (pos));
+      }
+    if (pos < input.length ())
+      output.append (input.charAt (pos));
+    return output.toString ();
+  }
 
 /*  The following are used for debugging purpose
     public static String d(REMatch m) {
index bc700beac5ac5f06805030b95df9cf5eda2c8179..f0c78be925c14df0354f8b4d9952da1b23888cdb 100644 (file)
@@ -36,6 +36,9 @@ obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
 
 package gnu.java.util.regex;
+
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 import java.util.Enumeration;
 import java.util.NoSuchElementException;
@@ -66,20 +69,23 @@ import java.util.NoSuchElementException;
  * 
  * @author <A HREF="mailto:wes@cacas.org">Wes Biggs</A> 
  */
-public class REMatchEnumeration implements Enumeration, Serializable {
+public class REMatchEnumeration
+  implements Enumeration < REMatch >, Serializable
+{
   private static final int YES = 1;
   private static final int MAYBE = 0;
   private static final int NO = -1;
-  
+
   private int more;
   private REMatch match;
-  private RE expr;
-  private CharIndexed input;
-  private int eflags;
-    private int index;
+  private final RE expr;
+  private final CharIndexed input;
+  private final int eflags;
+  private int index;
 
   // Package scope constructor is used by RE.getMatchEnumeration()
-  REMatchEnumeration(RE expr, CharIndexed input, int index, int eflags) {
+    REMatchEnumeration (RE expr, CharIndexed input, int index, int eflags)
+  {
     more = MAYBE;
     this.expr = expr;
     this.input = input;
@@ -88,48 +94,48 @@ public class REMatchEnumeration implements Enumeration, Serializable {
   }
 
   /** Returns true if there are more matches in the input text. */
-  public boolean hasMoreElements() {
-    return hasMoreMatches(null);
+  public boolean hasMoreElements ()
+  {
+    return hasMoreMatches (null);
   }
 
   /** Returns true if there are more matches in the input text. */
-  public boolean hasMoreMatches() {
-    return hasMoreMatches(null);
+  public boolean hasMoreMatches ()
+  {
+    return hasMoreMatches (null);
   }
 
   /** Returns true if there are more matches in the input text.
    * Saves the text leading up to the match (or to the end of the input)
    * in the specified buffer.
    */
-  public boolean hasMoreMatches(StringBuffer buffer) {
-    if (more == MAYBE) {
-       match = expr.getMatchImpl(input,index,eflags,buffer);
-       if (match != null) {
-           input.move((match.end[0] > 0) ? match.end[0] : 1);
-           
-           index = (match.end[0] > 0) ? match.end[0] + match.offset : index + 1;
+  public boolean hasMoreMatches (CPStringBuilder buffer)
+  {
+    if (more == MAYBE)
+      {
+       match = expr.getMatchImpl (input, index, eflags, buffer);
+       if (match != null)
+         {
+           input.move ((match.end[0] > 0) ? match.end[0] : 1);
+
+           index =
+             (match.end[0] > 0) ? match.end[0] + match.offset : index + 1;
            more = YES;
-       } else more = NO;
-    }
+         }
+       else
+         more = NO;
+      }
     return (more == YES);
   }
 
   /** Returns the next match in the input text. */
-  public Object nextElement() throws NoSuchElementException {
-    return nextMatch();
-  }
-
-  /** 
-   * Returns the next match in the input text. This method is provided
-   * for convenience to avoid having to explicitly cast the return value
-   * to class REMatch.
-   */
-  public REMatch nextMatch() throws NoSuchElementException {
-    if (hasMoreElements()) {
-       more = (input.isValid()) ? MAYBE : NO;
+  public REMatch nextElement () throws NoSuchElementException
+  {
+    if (hasMoreElements ())
+      {
+       more = (input.isValid ())? MAYBE : NO;
        return match;
-    }
-    throw new NoSuchElementException();
+      }
+    throw new NoSuchElementException ();
   }
 }
-
index db11e2db450c75021768cfe412669ac841ee3195..38d70564d4aa79e6799eb2de5876e002b711d8c2 100644 (file)
@@ -51,102 +51,104 @@ import java.util.BitSet;
  * @author <A HREF="mailto:wes@cacas.org">Wes Biggs</A>
  */
 
-public final class RESyntax implements Serializable {
-    static final String DEFAULT_LINE_SEPARATOR = System.getProperty("line.separator");
+public final class RESyntax implements Serializable
+{
+  static final String DEFAULT_LINE_SEPARATOR =
+    System.getProperty ("line.separator");
 
-    private BitSet bits;
+  private BitSet bits;
 
-    // true for the constant defined syntaxes
-    private boolean isFinal = false;
+  // true for the constant defined syntaxes
+  private boolean isFinal = false;
 
-    private String lineSeparator = DEFAULT_LINE_SEPARATOR;
+  private String lineSeparator = DEFAULT_LINE_SEPARATOR;
 
   // Values for constants are bit indexes
 
   /**
    * Syntax bit. Backslash is an escape character in lists.
    */
-  public static final int RE_BACKSLASH_ESCAPE_IN_LISTS =  0;
+  public static final int RE_BACKSLASH_ESCAPE_IN_LISTS = 0;
 
   /**
    * Syntax bit. Use \? instead of ? and \+ instead of +.
    */
-  public static final int RE_BK_PLUS_QM                =  1;
+  public static final int RE_BK_PLUS_QM = 1;
 
   /**
    * Syntax bit. POSIX character classes ([:...:]) in lists are allowed.
    */
-  public static final int RE_CHAR_CLASSES              =  2;
+  public static final int RE_CHAR_CLASSES = 2;
 
   /**
    * Syntax bit. ^ and $ are special everywhere.
    * <B>Not implemented.</B>
    */
-  public static final int RE_CONTEXT_INDEP_ANCHORS     =  3; 
+  public static final int RE_CONTEXT_INDEP_ANCHORS = 3;
 
   /**
    * Syntax bit. Repetition operators are only special in valid positions.
    * <B>Not implemented.</B>
    */
-  public static final int RE_CONTEXT_INDEP_OPS         =  4; 
+  public static final int RE_CONTEXT_INDEP_OPS = 4;
 
   /**
    * Syntax bit. Repetition and alternation operators are invalid
    * at start and end of pattern and other places. 
    * <B>Not implemented</B>.
    */
-  public static final int RE_CONTEXT_INVALID_OPS       =  5; 
+  public static final int RE_CONTEXT_INVALID_OPS = 5;
 
   /**
    * Syntax bit. Match-any-character operator (.) matches a newline.
    */
-  public static final int RE_DOT_NEWLINE               =  6;
+  public static final int RE_DOT_NEWLINE = 6;
 
   /**
    * Syntax bit. Match-any-character operator (.) does not match a null.
    */
-  public static final int RE_DOT_NOT_NULL              =  7;
+  public static final int RE_DOT_NOT_NULL = 7;
 
   /**
    * Syntax bit. Intervals ({x}, {x,}, {x,y}) are allowed.
    */
-  public static final int RE_INTERVALS                 =  8;
+  public static final int RE_INTERVALS = 8;
 
   /**
    * Syntax bit. No alternation (|), match one-or-more (+), or 
    * match zero-or-one (?) operators.
    */
-  public static final int RE_LIMITED_OPS               =  9;
+  public static final int RE_LIMITED_OPS = 9;
 
   /**
    * Syntax bit. Newline is an alternation operator.
    */
-  public static final int RE_NEWLINE_ALT               = 10; // impl.
+  public static final int RE_NEWLINE_ALT = 10; // impl.
 
   /**
    * Syntax bit. Intervals use { } instead of \{ \}
    */
-  public static final int RE_NO_BK_BRACES              = 11; 
+  public static final int RE_NO_BK_BRACES = 11;
 
   /**
    * Syntax bit. Grouping uses ( ) instead of \( \).
    */
-  public static final int RE_NO_BK_PARENS              = 12;
+  public static final int RE_NO_BK_PARENS = 12;
 
   /**
    * Syntax bit. Backreferences not allowed.
    */
-  public static final int RE_NO_BK_REFS                = 13;
+  public static final int RE_NO_BK_REFS = 13;
 
   /**
    * Syntax bit. Alternation uses | instead of \|
    */
-  public static final int RE_NO_BK_VBAR                = 14;
+  public static final int RE_NO_BK_VBAR = 14;
 
   /**
    * Syntax bit. <B>Not implemented</B>.
    */
-  public static final int RE_NO_EMPTY_RANGES           = 15;
+  public static final int RE_NO_EMPTY_RANGES = 15;
 
   /**
    * Syntax bit. An unmatched right parenthesis (')' or '\)', depending
@@ -157,80 +159,80 @@ public final class RESyntax implements Serializable {
   /**
    * Syntax bit. <B>Not implemented.</B>
    */
-  public static final int RE_HAT_LISTS_NOT_NEWLINE     = 17;
+  public static final int RE_HAT_LISTS_NOT_NEWLINE = 17;
 
   /**
    * Syntax bit.  Stingy matching is allowed (+?, *?, ??, {x,y}?).
    */
-  public static final int RE_STINGY_OPS                = 18;
+  public static final int RE_STINGY_OPS = 18;
 
   /**
    * Syntax bit. Allow character class escapes (\d, \D, \s, \S, \w, \W).
    */
-  public static final int RE_CHAR_CLASS_ESCAPES        = 19;
+  public static final int RE_CHAR_CLASS_ESCAPES = 19;
 
   /**
    * Syntax bit. Allow use of (?:xxx) grouping (subexpression is not saved).
    */
-  public static final int RE_PURE_GROUPING             = 20;
+  public static final int RE_PURE_GROUPING = 20;
 
   /**
    * Syntax bit. Allow use of (?=xxx) and (?!xxx) apply the subexpression
    * to the text following the current position without consuming that text.
    */
-  public static final int RE_LOOKAHEAD                 = 21;
+  public static final int RE_LOOKAHEAD = 21;
 
   /**
    * Syntax bit. Allow beginning- and end-of-string anchors (\A, \Z).
    */
-  public static final int RE_STRING_ANCHORS            = 22;
+  public static final int RE_STRING_ANCHORS = 22;
 
   /**
    * Syntax bit. Allow embedded comments, (?#comment), as in Perl5.
    */
-  public static final int RE_COMMENTS                  = 23;
+  public static final int RE_COMMENTS = 23;
 
   /**
    * Syntax bit. Allow character class escapes within lists, as in Perl5.
    */
-  public static final int RE_CHAR_CLASS_ESC_IN_LISTS   = 24;
+  public static final int RE_CHAR_CLASS_ESC_IN_LISTS = 24;
 
   /**
    * Syntax bit.  Possessive matching is allowed (++, *+, ?+, {x,y}+).
    */
-  public static final int RE_POSSESSIVE_OPS            = 25;
+  public static final int RE_POSSESSIVE_OPS = 25;
 
   /**
    * Syntax bit.  Allow embedded flags, (?is-x), as in Perl5.
    */
-  public static final int RE_EMBEDDED_FLAGS            = 26;
+  public static final int RE_EMBEDDED_FLAGS = 26;
 
   /**
    * Syntax bit.  Allow octal char (\0377), as in Perl5.
    */
-  public static final int RE_OCTAL_CHAR                = 27;
+  public static final int RE_OCTAL_CHAR = 27;
 
   /**
    * Syntax bit.  Allow hex char (\x1b), as in Perl5.
    */
-  public static final int RE_HEX_CHAR                  = 28;
+  public static final int RE_HEX_CHAR = 28;
 
   /**
    * Syntax bit.  Allow Unicode char (\u1234), as in Java 1.4.
    */
-  public static final int RE_UNICODE_CHAR              = 29;
+  public static final int RE_UNICODE_CHAR = 29;
 
   /**
    * Syntax bit.  Allow named property (\p{P}, \P{p}), as in Perl5.
    */
-  public static final int RE_NAMED_PROPERTY            = 30;
+  public static final int RE_NAMED_PROPERTY = 30;
 
   /**
    * Syntax bit.  Allow nested characterclass ([a-z&&[^p-r]]), as in Java 1.4.
    */
-  public static final int RE_NESTED_CHARCLASS          = 31;
+  public static final int RE_NESTED_CHARCLASS = 31;
 
-  private static final int BIT_TOTAL                   = 32;
+  private static final int BIT_TOTAL = 32;
 
   /**
    * Predefined syntax.
@@ -315,13 +317,13 @@ public final class RESyntax implements Serializable {
    * Emulates regular expression support in Larry Wall's perl, version 4,
    * using single line mode (/s modifier).
    */
-  public static final RESyntax RE_SYNTAX_PERL4_S; // single line mode (/s)
+  public static final RESyntax RE_SYNTAX_PERL4_S;      // single line mode (/s)
 
   /**
    * Predefined syntax.
    * Emulates regular expression support in Larry Wall's perl, version 5.
    */
-  public static final RESyntax RE_SYNTAX_PERL5;  
+  public static final RESyntax RE_SYNTAX_PERL5;
 
   /**
    * Predefined syntax.
@@ -335,145 +337,109 @@ public final class RESyntax implements Serializable {
      * Emulates regular expression support in Java 1.4's java.util.regex
      * package.
      */
-    public static final RESyntax RE_SYNTAX_JAVA_1_4;
-
-  static {
-      // Define syntaxes
-      
-      RE_SYNTAX_EMACS = new RESyntax().makeFinal();
-      
-      RESyntax RE_SYNTAX_POSIX_COMMON = new RESyntax()
-         .set(RE_CHAR_CLASSES)
-         .set(RE_DOT_NEWLINE)
-         .set(RE_DOT_NOT_NULL)
-         .set(RE_INTERVALS)
-         .set(RE_NO_EMPTY_RANGES)
-         .makeFinal();
-      
-      RE_SYNTAX_POSIX_BASIC = new RESyntax(RE_SYNTAX_POSIX_COMMON)
-         .set(RE_BK_PLUS_QM)
-         .makeFinal();
-      
-      RE_SYNTAX_POSIX_EXTENDED = new RESyntax(RE_SYNTAX_POSIX_COMMON)
-         .set(RE_CONTEXT_INDEP_ANCHORS)
-         .set(RE_CONTEXT_INDEP_OPS)
-         .set(RE_NO_BK_BRACES)
-         .set(RE_NO_BK_PARENS)
-         .set(RE_NO_BK_VBAR)
-         .set(RE_UNMATCHED_RIGHT_PAREN_ORD)
-         .makeFinal();
-
-      RE_SYNTAX_AWK = new RESyntax()
-         .set(RE_BACKSLASH_ESCAPE_IN_LISTS)
-         .set(RE_DOT_NOT_NULL)
-         .set(RE_NO_BK_PARENS)
-         .set(RE_NO_BK_REFS)
-         .set(RE_NO_BK_VBAR)
-         .set(RE_NO_EMPTY_RANGES)
-         .set(RE_UNMATCHED_RIGHT_PAREN_ORD)
-         .makeFinal();
-      
-      RE_SYNTAX_POSIX_AWK = new RESyntax(RE_SYNTAX_POSIX_EXTENDED)
-         .set(RE_BACKSLASH_ESCAPE_IN_LISTS)
-         .makeFinal();
-      
-      RE_SYNTAX_GREP = new RESyntax()
-         .set(RE_BK_PLUS_QM)
-         .set(RE_CHAR_CLASSES)
-         .set(RE_HAT_LISTS_NOT_NEWLINE)
-         .set(RE_INTERVALS)
-         .set(RE_NEWLINE_ALT)
-         .makeFinal();
-      
-      RE_SYNTAX_EGREP = new RESyntax()
-         .set(RE_CHAR_CLASSES)
-         .set(RE_CONTEXT_INDEP_ANCHORS)
-         .set(RE_CONTEXT_INDEP_OPS)
-         .set(RE_HAT_LISTS_NOT_NEWLINE)
-         .set(RE_NEWLINE_ALT)
-         .set(RE_NO_BK_PARENS)
-         .set(RE_NO_BK_VBAR)
-         .makeFinal();
-    
-      RE_SYNTAX_POSIX_EGREP = new RESyntax(RE_SYNTAX_EGREP)
-         .set(RE_INTERVALS)
-         .set(RE_NO_BK_BRACES)
-         .makeFinal();
-    
-      /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff.  */
-    
-      RE_SYNTAX_ED = new RESyntax(RE_SYNTAX_POSIX_BASIC)
-         .makeFinal();
-    
-      RE_SYNTAX_SED = new RESyntax(RE_SYNTAX_POSIX_BASIC)
-         .makeFinal();
-      
-      RE_SYNTAX_POSIX_MINIMAL_BASIC = new RESyntax(RE_SYNTAX_POSIX_COMMON)
-         .set(RE_LIMITED_OPS)
-         .makeFinal();
-      
-      /* Differs from RE_SYNTAX_POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
-        replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */
-      
-      RE_SYNTAX_POSIX_MINIMAL_EXTENDED = new RESyntax(RE_SYNTAX_POSIX_COMMON)
-         .set(RE_CONTEXT_INDEP_ANCHORS)
-         .set(RE_CONTEXT_INVALID_OPS)
-         .set(RE_NO_BK_BRACES)
-         .set(RE_NO_BK_PARENS)
-         .set(RE_NO_BK_REFS)
-         .set(RE_NO_BK_VBAR)
-         .set(RE_UNMATCHED_RIGHT_PAREN_ORD)
-         .makeFinal();
-      
-      /* There is no official Perl spec, but here's a "best guess" */
-      
-      RE_SYNTAX_PERL4 = new RESyntax()
-         .set(RE_BACKSLASH_ESCAPE_IN_LISTS)
-         .set(RE_CONTEXT_INDEP_ANCHORS)
-         .set(RE_CONTEXT_INDEP_OPS)          // except for '{', apparently
-         .set(RE_INTERVALS)
-         .set(RE_NO_BK_BRACES)
-         .set(RE_NO_BK_PARENS)
-         .set(RE_NO_BK_VBAR)
-         .set(RE_NO_EMPTY_RANGES)
-         .set(RE_CHAR_CLASS_ESCAPES)    // \d,\D,\w,\W,\s,\S
-         .makeFinal();
-      
-      RE_SYNTAX_PERL4_S = new RESyntax(RE_SYNTAX_PERL4)
-         .set(RE_DOT_NEWLINE)
-         .makeFinal();
-      
-      RE_SYNTAX_PERL5 = new RESyntax(RE_SYNTAX_PERL4)
-         .set(RE_PURE_GROUPING)          // (?:)
-         .set(RE_STINGY_OPS)             // *?,??,+?,{}?
-         .set(RE_LOOKAHEAD)              // (?=)(?!)
-         .set(RE_STRING_ANCHORS)         // \A,\Z
-         .set(RE_CHAR_CLASS_ESC_IN_LISTS)// \d,\D,\w,\W,\s,\S within []
-         .set(RE_COMMENTS)              // (?#)
-         .set(RE_EMBEDDED_FLAGS)         // (?imsx-imsx)
-         .set(RE_OCTAL_CHAR)             // \0377
-         .set(RE_HEX_CHAR)               // \x1b
-         .set(RE_NAMED_PROPERTY)         // \p{prop}, \P{prop}
-         .makeFinal();
-      
-      RE_SYNTAX_PERL5_S = new RESyntax(RE_SYNTAX_PERL5)
-         .set(RE_DOT_NEWLINE)
-         .makeFinal();
-
-      RE_SYNTAX_JAVA_1_4 = new RESyntax(RE_SYNTAX_PERL5)
-         // XXX
-         .set(RE_POSSESSIVE_OPS)         // *+,?+,++,{}+
-         .set(RE_UNICODE_CHAR)           // \u1234
-         .set(RE_NESTED_CHARCLASS)       // [a-z&&[^p-r]]
-         .makeFinal();
+  public static final RESyntax RE_SYNTAX_JAVA_1_4;
+
+  static
+  {
+    // Define syntaxes
+
+    RE_SYNTAX_EMACS = new RESyntax ().makeFinal ();
+
+    RESyntax RE_SYNTAX_POSIX_COMMON =
+      new RESyntax ().set (RE_CHAR_CLASSES).set (RE_DOT_NEWLINE).
+      set (RE_DOT_NOT_NULL).set (RE_INTERVALS).set (RE_NO_EMPTY_RANGES).
+      makeFinal ();
+
+      RE_SYNTAX_POSIX_BASIC =
+      new RESyntax (RE_SYNTAX_POSIX_COMMON).set (RE_BK_PLUS_QM).makeFinal ();
+
+      RE_SYNTAX_POSIX_EXTENDED =
+      new RESyntax (RE_SYNTAX_POSIX_COMMON).set (RE_CONTEXT_INDEP_ANCHORS).
+      set (RE_CONTEXT_INDEP_OPS).set (RE_NO_BK_BRACES).set (RE_NO_BK_PARENS).
+      set (RE_NO_BK_VBAR).set (RE_UNMATCHED_RIGHT_PAREN_ORD).makeFinal ();
+
+      RE_SYNTAX_AWK =
+      new RESyntax ().set (RE_BACKSLASH_ESCAPE_IN_LISTS).
+      set (RE_DOT_NOT_NULL).set (RE_NO_BK_PARENS).set (RE_NO_BK_REFS).
+      set (RE_NO_BK_VBAR).set (RE_NO_EMPTY_RANGES).
+      set (RE_UNMATCHED_RIGHT_PAREN_ORD).makeFinal ();
+
+      RE_SYNTAX_POSIX_AWK =
+      new RESyntax (RE_SYNTAX_POSIX_EXTENDED).
+      set (RE_BACKSLASH_ESCAPE_IN_LISTS).makeFinal ();
+
+      RE_SYNTAX_GREP =
+      new RESyntax ().set (RE_BK_PLUS_QM).set (RE_CHAR_CLASSES).
+      set (RE_HAT_LISTS_NOT_NEWLINE).set (RE_INTERVALS).set (RE_NEWLINE_ALT).
+      makeFinal ();
+
+      RE_SYNTAX_EGREP =
+      new RESyntax ().set (RE_CHAR_CLASSES).set (RE_CONTEXT_INDEP_ANCHORS).
+      set (RE_CONTEXT_INDEP_OPS).set (RE_HAT_LISTS_NOT_NEWLINE).
+      set (RE_NEWLINE_ALT).set (RE_NO_BK_PARENS).set (RE_NO_BK_VBAR).
+      makeFinal ();
+
+      RE_SYNTAX_POSIX_EGREP =
+      new RESyntax (RE_SYNTAX_EGREP).set (RE_INTERVALS).set (RE_NO_BK_BRACES).
+      makeFinal ();
+
+    /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff.  */
+
+      RE_SYNTAX_ED = new RESyntax (RE_SYNTAX_POSIX_BASIC).makeFinal ();
+
+      RE_SYNTAX_SED = new RESyntax (RE_SYNTAX_POSIX_BASIC).makeFinal ();
+
+      RE_SYNTAX_POSIX_MINIMAL_BASIC =
+      new RESyntax (RE_SYNTAX_POSIX_COMMON).set (RE_LIMITED_OPS).makeFinal ();
+
+    /* Differs from RE_SYNTAX_POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
+       replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */
+
+      RE_SYNTAX_POSIX_MINIMAL_EXTENDED =
+      new RESyntax (RE_SYNTAX_POSIX_COMMON).set (RE_CONTEXT_INDEP_ANCHORS).
+      set (RE_CONTEXT_INVALID_OPS).set (RE_NO_BK_BRACES).
+      set (RE_NO_BK_PARENS).set (RE_NO_BK_REFS).set (RE_NO_BK_VBAR).
+      set (RE_UNMATCHED_RIGHT_PAREN_ORD).makeFinal ();
+
+    /* There is no official Perl spec, but here's a "best guess" */
+
+      RE_SYNTAX_PERL4 = new RESyntax ().set (RE_BACKSLASH_ESCAPE_IN_LISTS).set (RE_CONTEXT_INDEP_ANCHORS).set (RE_CONTEXT_INDEP_OPS)   // except for '{', apparently
+      .set (RE_INTERVALS).set (RE_NO_BK_BRACES).set (RE_NO_BK_PARENS).set (RE_NO_BK_VBAR).set (RE_NO_EMPTY_RANGES).set (RE_CHAR_CLASS_ESCAPES) // \d,\D,\w,\W,\s,\S
+      .makeFinal ();
+
+      RE_SYNTAX_PERL4_S =
+      new RESyntax (RE_SYNTAX_PERL4).set (RE_DOT_NEWLINE).makeFinal ();
+
+      RE_SYNTAX_PERL5 = new RESyntax (RE_SYNTAX_PERL4).set (RE_PURE_GROUPING)  // (?:)
+      .set (RE_STINGY_OPS)     // *?,??,+?,{}?
+      .set (RE_LOOKAHEAD)      // (?=)(?!)
+      .set (RE_STRING_ANCHORS) // \A,\Z
+      .set (RE_CHAR_CLASS_ESC_IN_LISTS)        // \d,\D,\w,\W,\s,\S within []
+      .set (RE_COMMENTS)       // (?#)
+      .set (RE_EMBEDDED_FLAGS) // (?imsx-imsx)
+      .set (RE_OCTAL_CHAR)     // \0377
+      .set (RE_HEX_CHAR)       // \x1b
+      .set (RE_NAMED_PROPERTY) // \p{prop}, \P{prop}
+      .makeFinal ();
+
+      RE_SYNTAX_PERL5_S =
+      new RESyntax (RE_SYNTAX_PERL5).set (RE_DOT_NEWLINE).makeFinal ();
+
+      RE_SYNTAX_JAVA_1_4 = new RESyntax (RE_SYNTAX_PERL5)
+      // XXX
+      .set (RE_POSSESSIVE_OPS) // *+,?+,++,{}+
+      .set (RE_UNICODE_CHAR)   // \u1234
+      .set (RE_NESTED_CHARCLASS)       // [a-z&&[^p-r]]
+      .makeFinal ();
   }
 
   /**
    * Construct a new syntax object with all bits turned off.
    * This is equivalent to RE_SYNTAX_EMACS.
    */
-  public RESyntax() {
-    bits = new BitSet(BIT_TOTAL);
+  public RESyntax ()
+  {
+    bits = new BitSet (BIT_TOTAL);
   }
 
     /**
@@ -484,24 +450,27 @@ public final class RESyntax implements Serializable {
      *
      * @return this object for convenient chaining
      */
-    public RESyntax makeFinal() {
-       isFinal = true;
-       return this;
-    }
+  public RESyntax makeFinal ()
+  {
+    isFinal = true;
+    return this;
+  }
 
   /**
    * Construct a new syntax object with all bits set the same 
    * as the other syntax.
    */
-  public RESyntax(RESyntax other) {
-    bits = (BitSet) other.bits.clone();
+  public RESyntax (RESyntax other)
+  {
+    bits = (BitSet) other.bits.clone ();
   }
 
   /**
    * Check if a given bit is set in this syntax.
    */
-  public boolean get(int index) {
-    return bits.get(index);
+  public boolean get (int index)
+  {
+    return bits.get (index);
   }
 
   /**
@@ -510,10 +479,11 @@ public final class RESyntax implements Serializable {
    * @param index the constant (RESyntax.RE_xxx) bit to set.
    * @return a reference to this object for easy chaining.
    */
-  public RESyntax set(int index) {
+  public RESyntax set (int index)
+  {
     if (isFinal)
-      throw new IllegalAccessError(RE.getLocalizedMessage("syntax.final"));
-    bits.set(index);
+      throw new IllegalAccessError (RE.getLocalizedMessage ("syntax.final"));
+    bits.set (index);
     return this;
   }
 
@@ -523,11 +493,12 @@ public final class RESyntax implements Serializable {
    * @param index the constant (RESyntax.RE_xxx) bit to clear.
    * @return a reference to this object for easy chaining.
    */
-  public RESyntax clear(int index) {
-      if (isFinal)
-        throw new IllegalAccessError(RE.getLocalizedMessage("syntax.final"));
-      bits.clear(index);
-      return this;
+  public RESyntax clear (int index)
+  {
+    if (isFinal)
+      throw new IllegalAccessError (RE.getLocalizedMessage ("syntax.final"));
+    bits.clear (index);
+    return this;
   }
 
     /**
@@ -547,18 +518,20 @@ public final class RESyntax implements Serializable {
      *
      * @return this object for convenient chaining 
      */
-    public RESyntax setLineSeparator(String aSeparator) {
-       if (isFinal)
-          throw new IllegalAccessError(RE.getLocalizedMessage("syntax.final"));
-       lineSeparator = aSeparator;
-       return this;
-    }
+  public RESyntax setLineSeparator (String aSeparator)
+  {
+    if (isFinal)
+      throw new IllegalAccessError (RE.getLocalizedMessage ("syntax.final"));
+    lineSeparator = aSeparator;
+    return this;
+  }
 
     /**
      * Returns the currently active line separator string.  The default
      * is the platform-dependent system property "line.separator".
      */
-    public String getLineSeparator() {
-       return lineSeparator;
-    }
+  public String getLineSeparator ()
+  {
+    return lineSeparator;
+  }
 }
index addc62225ebdb5aaf205bc9e59fc4e435005f604..681ac517f04a22693ee6c6f39be6e8798e2f34eb 100644 (file)
@@ -36,65 +36,84 @@ obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
 
 package gnu.java.util.regex;
+
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
-abstract class REToken implements Serializable, Cloneable {
+abstract class REToken implements Serializable, Cloneable
+{
 
   protected REToken next = null;
   protected REToken uncle = null;
   protected int subIndex;
   protected boolean unicodeAware = true;
 
-  public Object clone() {
-    try {
-      REToken copy = (REToken) super.clone();
-      return copy;
-    } catch (CloneNotSupportedException e) {
-      throw new Error(); // doesn't happen
+  public Object clone ()
+  {
+    try
+    {
+      REToken copy = (REToken) super.clone ();
+        return copy;
+    }
+    catch (CloneNotSupportedException e)
+    {
+      throw new Error ();      // doesn't happen
     }
   }
 
-  protected REToken(int subIndex) {
-      this.subIndex = subIndex;
+  protected REToken (int subIndex)
+  {
+    this.subIndex = subIndex;
   }
 
-  int getMinimumLength() {
+  int getMinimumLength ()
+  {
     return 0;
   }
 
-  int getMaximumLength() {
+  int getMaximumLength ()
+  {
     return Integer.MAX_VALUE;
   }
 
-  void setUncle(REToken anUncle) {
+  void setUncle (REToken anUncle)
+  {
     uncle = anUncle;
   }
 
     /** Returns true if the match succeeded, false if it failed. */
-    boolean match(CharIndexed input, REMatch mymatch) {
-       return match(input, mymatch, false);
-    }
-    boolean matchFake(CharIndexed input, REMatch mymatch) {
-       return match(input, mymatch, true);
-    }
+  boolean match (CharIndexed input, REMatch mymatch)
+  {
+    return match (input, mymatch, false);
+  }
+  boolean matchFake (CharIndexed input, REMatch mymatch)
+  {
+    return match (input, mymatch, true);
+  }
 
-    private boolean match(CharIndexed input, REMatch mymatch, boolean fake) {
-       if (!fake) {
-           setHitEnd(input, mymatch);
-       }
-       REMatch m = matchThis(input, mymatch);
-       if (m == null) return false;
-       if (next(input, m)) {
-           mymatch.assignFrom(m);
-           return true;
-       }
-       return false;
-    }
+  private boolean match (CharIndexed input, REMatch mymatch, boolean fake)
+  {
+    if (!fake)
+      {
+       setHitEnd (input, mymatch);
+      }
+    REMatch m = matchThis (input, mymatch);
+    if (m == null)
+      return false;
+    if (next (input, m))
+      {
+       mymatch.assignFrom (m);
+       return true;
+      }
+    return false;
+  }
 
     /** Sets whether the matching occurs at the end of input */
-    void setHitEnd(CharIndexed input, REMatch mymatch) {
-        input.setHitEnd(mymatch);
-    }
+  void setHitEnd (CharIndexed input, REMatch mymatch)
+  {
+    input.setHitEnd (mymatch);
+  }
 
     /** Returns true if the match succeeded, false if it failed.
       * The matching is done against this REToken only. Chained
@@ -106,22 +125,27 @@ abstract class REToken implements Serializable, Cloneable {
       * subclasses of REToken, which needs a special match method,
       * do not have to implement this method.
       */
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-       throw new UnsupportedOperationException(
-           "This REToken does not have a matchThis method");
-    }
-  
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    throw new
+      UnsupportedOperationException
+      ("This REToken does not have a matchThis method");
+  }
+
     /** Returns true if the rest of the tokens match, false if they fail. */
-    protected boolean next(CharIndexed input, REMatch mymatch) {
-       REToken nextToken = getNext();
-       if (nextToken == null) return true;
-       return nextToken.match(input, mymatch);
-    }
+  protected boolean next (CharIndexed input, REMatch mymatch)
+  {
+    REToken nextToken = getNext ();
+    if (nextToken == null)
+      return true;
+    return nextToken.match (input, mymatch);
+  }
 
     /** Returns the next REToken chained to this REToken. */
-    REToken getNext() {
-       return (next != null ? next : uncle);
-    }
+  REToken getNext ()
+  {
+    return (next != null ? next : uncle);
+  }
 
     /** Finds a match at the position specified by the given REMatch.
       * If necessary, adds a BacktrackStack.Backtrack object to backtrackStack
@@ -132,45 +156,55 @@ abstract class REToken implements Serializable, Cloneable {
       * @param mymatch Position at which a match should be found
       * @return REMatch object if a match was found, null otherwise.
       */
-    REMatch findMatch(CharIndexed input, REMatch mymatch) {
-        boolean b = match(input, mymatch);
-       if (b) return mymatch;
-       return null;
-    }
+  REMatch findMatch (CharIndexed input, REMatch mymatch)
+  {
+    boolean b = match (input, mymatch);
+    if (b)
+      return mymatch;
+    return null;
+  }
 
-    boolean returnsFixedLengthMatches() {
-       return false;
-    }
+  boolean returnsFixedLengthMatches ()
+  {
+    return false;
+  }
 
-    int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
-       throw new UnsupportedOperationException(
-           "This token does not support findFixedLengthMatches");
-    }
+  int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+  {
+    throw new
+      UnsupportedOperationException
+      ("This token does not support findFixedLengthMatches");
+  }
 
     /**
       * Backtrack to another possibility.
       * Ordinary REToken cannot do anything if this method is called.
       */
-    REMatch backtrack(CharIndexed input, REMatch mymatch, Object param) {
-       throw new IllegalStateException("This token cannot be backtracked to");
-    }
+  REMatch backtrack (CharIndexed input, REMatch mymatch, Object param)
+  {
+    throw new IllegalStateException ("This token cannot be backtracked to");
+  }
 
-  boolean chain(REToken token) {
-      next = token;
-      return true; // Token was accepted
+  boolean chain (REToken token)
+  {
+    next = token;
+    return true;               // Token was accepted
   }
 
-  abstract void dump(StringBuffer os);
+  abstract void dump (CPStringBuilder os);
 
-  void dumpAll(StringBuffer os) {
-    dump(os);
-    if (next != null) next.dumpAll(os);
+  void dumpAll (CPStringBuilder os)
+  {
+    dump (os);
+    if (next != null)
+      next.dumpAll (os);
   }
 
-  public String toString() {
-    StringBuffer os = new StringBuffer();
-    dump(os);
-    return os.toString();
+  public String toString ()
+  {
+    CPStringBuilder os = new CPStringBuilder ();
+    dump (os);
+    return os.toString ();
   }
 
   /**
@@ -181,9 +215,12 @@ abstract class REToken implements Serializable, Cloneable {
     * @return the lowercase equivalent of the character, if any;
     * otherwise, the character itself.
     */
-  public static char toLowerCase(char ch, boolean unicodeAware) {
-    if (unicodeAware) return Character.toLowerCase(ch);
-    if (ch >= 'A' && ch <= 'Z') return (char)(ch + 'a' - 'A');
+  public static char toLowerCase (char ch, boolean unicodeAware)
+  {
+    if (unicodeAware)
+      return Character.toLowerCase (ch);
+    if (ch >= 'A' && ch <= 'Z')
+      return (char) (ch + 'a' - 'A');
     return ch;
   }
 
@@ -195,9 +232,12 @@ abstract class REToken implements Serializable, Cloneable {
     * @return the uppercase equivalent of the character, if any;
     * otherwise, the character itself.
     */
-  public static char toUpperCase(char ch, boolean unicodeAware) {
-    if (unicodeAware) return Character.toUpperCase(ch);
-    if (ch >= 'a' && ch <= 'z') return (char)(ch + 'A' - 'a');
+  public static char toUpperCase (char ch, boolean unicodeAware)
+  {
+    if (unicodeAware)
+      return Character.toUpperCase (ch);
+    if (ch >= 'a' && ch <= 'z')
+      return (char) (ch + 'A' - 'a');
     return ch;
   }
 
index b99a54717c9f50b8bf6cf417ad3b82789e9c0918..c002d0504233b9b3a48c4b8cebb2f47ce0607ac4 100644 (file)
@@ -38,62 +38,78 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-final class RETokenAny extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenAny extends REToken
+{
   /** True if '.' can match a newline (RE_DOT_NEWLINE) */
-  private boolean newline; 
+  private boolean newline;
 
   /** True if '.' can't match a null (RE_DOT_NOT_NULL) */
-  private boolean matchNull;    
-  
-  RETokenAny(int subIndex, boolean newline, boolean matchNull) { 
-    super(subIndex);
+  private boolean matchNull;
+
+    RETokenAny (int subIndex, boolean newline, boolean matchNull)
+  {
+    super (subIndex);
     this.newline = newline;
     this.matchNull = matchNull;
   }
 
-  int getMinimumLength() {
+  int getMinimumLength ()
+  {
     return 1;
   }
 
-  int getMaximumLength() {
+  int getMaximumLength ()
+  {
     return 1;
   }
 
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-      char ch = input.charAt(mymatch.index);
-      boolean retval = matchOneChar(ch);
-      if (retval) {
-        ++mymatch.index;
-        return mymatch;
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    char ch = input.charAt (mymatch.index);
+    boolean retval = matchOneChar (ch);
+    if (retval)
+      {
+       ++mymatch.index;
+       return mymatch;
       }
-      return null;
-    }
-
-    boolean matchOneChar(char ch) {
-      if ((ch == CharIndexed.OUT_OF_BOUNDS)
-         || (!newline && (ch == '\n'))
-         || (matchNull && (ch == 0))) {
-         return false;
+    return null;
+  }
+
+  boolean matchOneChar (char ch)
+  {
+    if ((ch == CharIndexed.OUT_OF_BOUNDS)
+       || (!newline && (ch == '\n')) || (matchNull && (ch == 0)))
+      {
+       return false;
       }
-      return true;
+    return true;
   }
 
-  boolean returnsFixedLengthMatches() { return true; }
+  boolean returnsFixedLengthMatches ()
+  {
+    return true;
+  }
 
-  int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
+  int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+  {
     int index = mymatch.index;
     int numRepeats = 0;
-    while (true) {
-       if (numRepeats >= max) break;
-        char ch = input.charAt(index++);
-       if (! matchOneChar(ch)) break;
-        numRepeats++;
-    }
+    while (true)
+      {
+       if (numRepeats >= max)
+         break;
+       char ch = input.charAt (index++);
+       if (!matchOneChar (ch))
+         break;
+       numRepeats++;
+      }
     return numRepeats;
   }
 
-  void dump(StringBuffer os) {
-    os.append('.');
+  void dump (CPStringBuilder os)
+  {
+    os.append ('.');
   }
 }
-
index 3a912f9bba78fbca526daf7d93612a84eb935f4b..8f146222d9500f565ec607e0c6d357a2ceef6949 100644 (file)
@@ -38,49 +38,63 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-final class RETokenBackRef extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenBackRef extends REToken
+{
   private int num;
   private boolean insens;
-  
-  RETokenBackRef(int subIndex, int num, boolean insens) {
-    super(subIndex);
+
+    RETokenBackRef (int subIndex, int num, boolean insens)
+  {
+    super (subIndex);
     this.num = num;
     this.insens = insens;
   }
 
   // should implement getMinimumLength() -- any ideas?
 
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-       if (num >= mymatch.start.length) return null;
-       if (num >= mymatch.end.length) return null;
-       int b,e;
-       b = mymatch.start[num];
-       e = mymatch.end[num];
-       if ((b==-1)||(e==-1)) return null; // this shouldn't happen, but...
-       if (b < 0) b += 1;
-       if (e < 0) e += 1;
-       for (int i=b; i<e; i++) {
-           char c1 = input.charAt(mymatch.index+i-b);
-           char c2 = input.charAt(i);
-           if (c1 != c2) {
-               if (insens) {
-                   if (c1 != toLowerCase(c2, unicodeAware) &&
-                       c1 != toUpperCase(c2, unicodeAware)) {
-                       return null;
-                   }
-               }
-               else {
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    if (num >= mymatch.start.length)
+      return null;
+    if (num >= mymatch.end.length)
+      return null;
+    int b, e;
+    b = mymatch.start[num];
+    e = mymatch.end[num];
+    if ((b == -1) || (e == -1))
+      return null;             // this shouldn't happen, but...
+    if (b < 0)
+      b += 1;
+    if (e < 0)
+      e += 1;
+    for (int i = b; i < e; i++)
+      {
+       char c1 = input.charAt (mymatch.index + i - b);
+       char c2 = input.charAt (i);
+       if (c1 != c2)
+         {
+           if (insens)
+             {
+               if (c1 != toLowerCase (c2, unicodeAware) &&
+                   c1 != toUpperCase (c2, unicodeAware))
+                 {
                    return null;
-               }
-           }
-       }
-       mymatch.index += e-b;
-       return mymatch;
-    }
-    
-    void dump(StringBuffer os) {
-       os.append('\\').append(num);
-    }
-}
-
+                 }
+             }
+           else
+             {
+               return null;
+             }
+         }
+      }
+    mymatch.index += e - b;
+    return mymatch;
+  }
 
+  void dump (CPStringBuilder os)
+  {
+    os.append ('\\').append (num);
+  }
+}
index 42dcd93268ad42ca0dd84d44d639bddb677c2b4e..babcf3e4e939d6efce4e4f38bf78a49963fb244d 100644 (file)
@@ -38,98 +38,125 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-final class RETokenChar extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenChar extends REToken
+{
   private char[] ch;
   private boolean insens;
 
-  RETokenChar(int subIndex, char c, boolean ins) {
-    super(subIndex);
+    RETokenChar (int subIndex, char c, boolean ins)
+  {
+    super (subIndex);
     insens = ins;
-    ch = new char [1];
-    ch[0] = c;
+    ch = new char[1];
+      ch[0] = c;
   }
 
-  int getMinimumLength() {
+  int getMinimumLength ()
+  {
     return ch.length;
   }
-  
-  int getMaximumLength() {
+
+  int getMaximumLength ()
+  {
     return ch.length;
   }
-  
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-       if (matchOneString(input, mymatch.index)) {
-           mymatch.index += matchedLength;
-           return mymatch;
-       }
-       // java.util.regex.Matcher#hitEnd() requires that the length of
-       // partial match be counted.
+
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    if (matchOneString (input, mymatch.index))
+      {
        mymatch.index += matchedLength;
-       input.setHitEnd(mymatch);
-       return null;
-    }
-
-    private int matchedLength;
-    private boolean matchOneString(CharIndexed input, int index) {
-        matchedLength = 0;
-       int z = ch.length;
-       char c;
-       for (int i=0; i<z; i++) {
-           c = input.charAt(index+i);
-           if (! charEquals(c, ch[i])) {
-               return false;
-           }
-           ++matchedLength;
-       }
-       return true;
-    }
-
-    private boolean charEquals(char c1, char c2) {
-       if (c1 == c2) return true;
-       if (! insens) return false;
-       if (toLowerCase(c1, unicodeAware) == c2) return true;
-       if (toUpperCase(c1, unicodeAware) == c2) return true;
-       return false;
-    }
-
-    boolean returnsFixedLengthMatches() { return true; }
-
-    int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
-        int index = mymatch.index;
-       int numRepeats = 0;
-       int z = ch.length;
-       while (true) {
-           if (numRepeats >= max) break;
-           if (matchOneString(input, index)) {
-               index += z;
-               numRepeats++;
-           }
-           else break;
-       }
-       return numRepeats;
-    }
+       return mymatch;
+      }
+    // java.util.regex.Matcher#hitEnd() requires that the length of
+    // partial match be counted.
+    mymatch.index += matchedLength;
+    input.setHitEnd (mymatch);
+    return null;
+  }
 
-  // Overrides REToken.chain() to optimize for strings
-  boolean chain(REToken next) {
-    if (next instanceof RETokenChar && ((RETokenChar)next).insens == insens) {
-      RETokenChar cnext = (RETokenChar) next;
-      int newsize = ch.length + cnext.ch.length;
-      
-      char[] chTemp = new char [newsize];
-      
-      System.arraycopy(ch,0,chTemp,0,ch.length);
-      System.arraycopy(cnext.ch,0,chTemp,ch.length,cnext.ch.length);
-      
-      ch = chTemp;
-      if (cnext.next == null)
-        return false;
-      return chain(cnext.next);
-    } else return super.chain(next);
+  private int matchedLength;
+  private boolean matchOneString (CharIndexed input, int index)
+  {
+    matchedLength = 0;
+    int z = ch.length;
+    char c;
+    for (int i = 0; i < z; i++)
+      {
+       c = input.charAt (index + i);
+       if (!charEquals (c, ch[i]))
+         {
+           return false;
+         }
+       ++matchedLength;
+      }
+    return true;
   }
 
-  void dump(StringBuffer os) {
-    os.append(ch);
+  private boolean charEquals (char c1, char c2)
+  {
+    if (c1 == c2)
+      return true;
+    if (!insens)
+      return false;
+    if (toLowerCase (c1, unicodeAware) == c2)
+      return true;
+    if (toUpperCase (c1, unicodeAware) == c2)
+      return true;
+    return false;
+  }
+
+  boolean returnsFixedLengthMatches ()
+  {
+    return true;
   }
-}
 
+  int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+  {
+    int index = mymatch.index;
+    int numRepeats = 0;
+    int z = ch.length;
+    while (true)
+      {
+       if (numRepeats >= max)
+         break;
+       if (matchOneString (input, index))
+         {
+           index += z;
+           numRepeats++;
+         }
+       else
+         break;
+      }
+    return numRepeats;
+  }
 
+  // Overrides REToken.chain() to optimize for strings
+  boolean chain (REToken next)
+  {
+    if (next instanceof RETokenChar && ((RETokenChar) next).insens == insens)
+      {
+       RETokenChar cnext = (RETokenChar) next;
+       int newsize = ch.length + cnext.ch.length;
+
+       char[] chTemp = new char[newsize];
+
+       System.arraycopy (ch, 0, chTemp, 0, ch.length);
+       System.arraycopy (cnext.ch, 0, chTemp, ch.length, cnext.ch.length);
+
+       ch = chTemp;
+       if (cnext.next == null)
+         return false;
+       return chain (cnext.next);
+      }
+    else
+      return super.chain (next);
+  }
+
+  void dump (CPStringBuilder os)
+  {
+    os.append (ch);
+  }
+}
index 294e32085b595b4e81f627fc87ca182a684d2d87..33e0febb7b270f2496bfe9c0cfbb54580e134274 100644 (file)
@@ -38,7 +38,10 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-final class RETokenEnd extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenEnd extends REToken
+{
     /**
      * Indicates whether this token should match on a line break.
      */
@@ -51,74 +54,98 @@ final class RETokenEnd extends REToken {
    */
   private boolean fake = false;
 
-  RETokenEnd(int subIndex,String newline) { 
-    super(subIndex);
+    RETokenEnd (int subIndex, String newline)
+  {
+    super (subIndex);
     this.newline = newline;
     this.check_java_line_terminators = false;
   }
 
-  RETokenEnd(int subIndex, String newline, boolean b) { 
-    super(subIndex);
+  RETokenEnd (int subIndex, String newline, boolean b)
+  {
+    super (subIndex);
     this.newline = newline;
     this.check_java_line_terminators = b;
   }
 
-  void setFake(boolean fake) {
+  void setFake (boolean fake)
+  {
     this.fake = fake;
   }
 
-  int getMaximumLength() {
+  int getMaximumLength ()
+  {
     return 0;
   }
 
-  boolean match(CharIndexed input, REMatch mymatch) {
-    if (!fake) return super.match(input, mymatch);
-    return super.matchFake(input, mymatch);
+  boolean match (CharIndexed input, REMatch mymatch)
+  {
+    if (!fake)
+      return super.match (input, mymatch);
+    return super.matchFake (input, mymatch);
   }
 
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-       char ch = input.charAt(mymatch.index);
-       if (ch == CharIndexed.OUT_OF_BOUNDS)
-           return ((mymatch.eflags & RE.REG_NOTEOL)>0) ? 
-               null : mymatch;
-        if (check_java_line_terminators) {
-           if (ch == '\n') {
-                char ch1 = input.charAt(mymatch.index - 1);
-               if (ch1 == '\r') return null;
-               return mymatch;
-           }
-           if (ch == '\r') return mymatch;
-           if (ch == '\u0085') return mymatch; // A next-line character
-           if (ch == '\u2028') return mymatch; // A line-separator character
-           if (ch == '\u2029') return mymatch; // A paragraph-separator character
-           return null;
-       }
-       if (newline != null) {
-           char z;
-           int i = 0; // position in newline
-           do {
-               z = newline.charAt(i);
-               if (ch != z) return null;
-               ++i;
-               ch = input.charAt(mymatch.index + i);
-           } while (i < newline.length());
-           
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    char ch = input.charAt (mymatch.index);
+    if (ch == CharIndexed.OUT_OF_BOUNDS)
+      return ((mymatch.eflags & RE.REG_NOTEOL) > 0) ? null : mymatch;
+    if (check_java_line_terminators)
+      {
+       if (ch == '\n')
+         {
+           char ch1 = input.charAt (mymatch.index - 1);
+           if (ch1 == '\r')
+             return null;
            return mymatch;
-       }
+         }
+       if (ch == '\r')
+         return mymatch;
+       if (ch == '\u0085')
+         return mymatch;       // A next-line character
+       if (ch == '\u2028')
+         return mymatch;       // A line-separator character
+       if (ch == '\u2029')
+         return mymatch;       // A paragraph-separator character
        return null;
-    }
+      }
+    if (newline != null)
+      {
+       char z;
+       int i = 0;              // position in newline
+       do
+         {
+           z = newline.charAt (i);
+           if (ch != z)
+             return null;
+           ++i;
+           ch = input.charAt (mymatch.index + i);
+         }
+       while (i < newline.length ());
+
+       return mymatch;
+      }
+    return null;
+  }
 
-    boolean returnsFixedLengthMatches() { return true; }
+  boolean returnsFixedLengthMatches ()
+  {
+    return true;
+  }
 
-    int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
-        REMatch m = (REMatch) mymatch.clone();
-       REToken tk = (REToken) this.clone();
-       tk.chain(null);
-       if (tk.match(input, m)) return max;
-       else return 0;
-    }
+  int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+  {
+    REMatch m = (REMatch) mymatch.clone ();
+    REToken tk = (REToken) this.clone ();
+    tk.chain (null);
+    if (tk.match (input, m))
+      return max;
+    else
+      return 0;
+  }
 
-  void dump(StringBuffer os) {
-    os.append('$');
+  void dump (CPStringBuilder os)
+  {
+    os.append ('$');
   }
 }
index ea5580e1666db34261cd88bc2d450fbfa28d1e23..e4ad61941684c6e91523738efcca0257cdf176ff 100644 (file)
@@ -37,36 +37,52 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-class RETokenEndOfPreviousMatch extends RETokenStart {
+import gnu.java.lang.CPStringBuilder;
 
-    RETokenEndOfPreviousMatch(int subIndex) {
-       super(subIndex, null);
-    }
+class RETokenEndOfPreviousMatch extends RETokenStart
+{
 
-    int getMaximumLength() {
-        return 0;
-    }
-    
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-       REMatch lastMatch = input.getLastMatch();
-       if (lastMatch == null) return super.matchThis(input, mymatch);
-       if (input.getAnchor()+mymatch.index ==
-               lastMatch.anchor+lastMatch.index) {
-           return mymatch;
-       }
-       else {
-           return null;
-       }
-    }
+  RETokenEndOfPreviousMatch (int subIndex)
+  {
+    super (subIndex, null);
+  }
 
-    boolean returnsFixedLengthmatches() { return true; }
+  int getMaximumLength ()
+  {
+    return 0;
+  }
 
-    int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
-        if (matchThis(input, mymatch) != null) return max;
-       else return 0;
-    }
-    
-    void dump(StringBuffer os) {
-       os.append("\\G");
-    }
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    REMatch lastMatch = input.getLastMatch ();
+    if (lastMatch == null)
+      return super.matchThis (input, mymatch);
+    if (input.getAnchor () + mymatch.index ==
+       lastMatch.anchor + lastMatch.index)
+      {
+       return mymatch;
+      }
+    else
+      {
+       return null;
+      }
+  }
+
+  boolean returnsFixedLengthmatches ()
+  {
+    return true;
+  }
+
+  int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+  {
+    if (matchThis (input, mymatch) != null)
+      return max;
+    else
+      return 0;
+  }
+
+  void dump (CPStringBuilder os)
+  {
+    os.append ("\\G");
+  }
 }
index b3a28a3e82e76c33b6bf60d5bb175e74afec1523..0848207f491bb27b19d534092633b81c7149260e 100644 (file)
@@ -37,34 +37,43 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-final class RETokenEndSub extends REToken {
-    RETokenEndSub(int subIndex) {
-       super(subIndex);
-    }
+import gnu.java.lang.CPStringBuilder;
 
-    int getMaximumLength() {
-      return 0;
-    }
-    
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-       mymatch.start[subIndex] = mymatch.start1[subIndex];
-       mymatch.end[subIndex] = mymatch.index;
-       return mymatch;
-    }
+final class RETokenEndSub extends REToken
+{
+  RETokenEndSub (int subIndex)
+  {
+    super (subIndex);
+  }
 
-    REMatch findMatch(CharIndexed input, REMatch mymatch) {
-       mymatch.start[subIndex] = mymatch.start1[subIndex];
-       mymatch.end[subIndex] = mymatch.index;
-       return super.findMatch(input, mymatch);
-    }
+  int getMaximumLength ()
+  {
+    return 0;
+  }
 
-    void setHitEnd(CharIndexed input, REMatch mymatch) {
-       // Do nothing
-    }
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    mymatch.start[subIndex] = mymatch.start1[subIndex];
+    mymatch.end[subIndex] = mymatch.index;
+    return mymatch;
+  }
 
-    void dump(StringBuffer os) {
-       // handled by RE
-       // But add something for debugging.
-       os.append("(?#RETokenEndSub subIndex=" + subIndex + ")");
-    }
+  REMatch findMatch (CharIndexed input, REMatch mymatch)
+  {
+    mymatch.start[subIndex] = mymatch.start1[subIndex];
+    mymatch.end[subIndex] = mymatch.index;
+    return super.findMatch (input, mymatch);
+  }
+
+  void setHitEnd (CharIndexed input, REMatch mymatch)
+  {
+    // Do nothing
+  }
+
+  void dump (CPStringBuilder os)
+  {
+    // handled by RE
+    // But add something for debugging.
+    os.append ("(?#RETokenEndSub subIndex=" + subIndex + ")");
+  }
 }
index 48f8656123dfd9d8ffce8865a799dfab648dc903..8ad728df837fa787e9635d1bf6b885b19fdf1559 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * @author Ito Kazumitsu
  */
@@ -44,35 +46,40 @@ final class RETokenIndependent extends REToken
 {
   REToken re;
 
-  RETokenIndependent(REToken re) throws REException {
-    super(0);
+    RETokenIndependent (REToken re) throws REException
+  {
+    super (0);
     this.re = re;
   }
 
-  int getMinimumLength() {
-    return re.getMinimumLength();
+  int getMinimumLength ()
+  {
+    return re.getMinimumLength ();
   }
 
-  int getMaximumLength() {
-    return re.getMaximumLength();
+  int getMaximumLength ()
+  {
+    return re.getMaximumLength ();
   }
 
-  REMatch matchThis(CharIndexed input, REMatch mymatch)
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
   {
-    boolean b = re.match(input, mymatch);
-    if (b) {
-      // Once we have found a match, we do not see other possible matches.
-      if (mymatch.backtrackStack != null) mymatch.backtrackStack.clear();
-      return mymatch;
+    boolean b = re.match (input, mymatch);
+    if (b)
+      {
+       // Once we have found a match, we do not see other possible matches.
+       if (mymatch.backtrackStack != null)
+         mymatch.backtrackStack.clear ();
+       return mymatch;
 
-    }
+      }
     return null;
   }
 
-    void dump(StringBuffer os) {
-       os.append("(?>");
-       re.dumpAll(os);
-       os.append(')');
-    }
+  void dump (CPStringBuilder os)
+  {
+    os.append ("(?>");
+    re.dumpAll (os);
+    os.append (')');
+  }
 }
-
index 134f17c609c0fdbae7d07acada3b924a073be907..1dc6019380f0f6c9cda292a70d840b2f2a0e04ad 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * @since gnu.regexp 1.1.3
  * @author Shashank Bapat
@@ -46,35 +48,41 @@ final class RETokenLookAhead extends REToken
   REToken re;
   boolean negative;
 
-  RETokenLookAhead(REToken re, boolean negative) throws REException {
-    super(0);
+    RETokenLookAhead (REToken re, boolean negative) throws REException
+  {
+    super (0);
     this.re = re;
     this.negative = negative;
   }
 
-  int getMaximumLength() {
+  int getMaximumLength ()
+  {
     return 0;
   }
 
-  REMatch matchThis(CharIndexed input, REMatch mymatch)
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
   {
-    REMatch trymatch = (REMatch)mymatch.clone();
-    if (re.match(input, trymatch)) {
-      if (negative) return null;
-      trymatch.index = mymatch.index;
-      return trymatch;
-    }
-    else {
-      if (negative) return mymatch;
-      return null;
-    }
+    REMatch trymatch = (REMatch) mymatch.clone ();
+    if (re.match (input, trymatch))
+      {
+       if (negative)
+         return null;
+       trymatch.index = mymatch.index;
+       return trymatch;
+      }
+    else
+      {
+       if (negative)
+         return mymatch;
+       return null;
+      }
   }
 
-    void dump(StringBuffer os) {
-       os.append("(?");
-       os.append(negative ? '!' : '=');
-       re.dumpAll(os);
-       os.append(')');
-    }
+  void dump (CPStringBuilder os)
+  {
+    os.append ("(?");
+    os.append (negative ? '!' : '=');
+    re.dumpAll (os);
+    os.append (')');
+  }
 }
-
index a01a15bc90f535451fdec7f1f703b030dc35af4d..f61c93c0abbb341657844da377c26094a4136620 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * @author Ito Kazumitsu
  */
@@ -45,74 +47,90 @@ final class RETokenLookBehind extends REToken
   REToken re;
   boolean negative;
 
-  RETokenLookBehind(REToken re, boolean negative) throws REException {
-    super(0);
+    RETokenLookBehind (REToken re, boolean negative) throws REException
+  {
+    super (0);
     this.re = re;
     this.negative = negative;
   }
 
-  int getMaximumLength() {
+  int getMaximumLength ()
+  {
     return 0;
   }
 
-  REMatch matchThis(CharIndexed input, REMatch mymatch)
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
   {
-    int max = re.getMaximumLength();
-    CharIndexed behind = input.lookBehind(mymatch.index, max);
-    REMatch trymatch = (REMatch)mymatch.clone();
-    REMatch trymatch1 = (REMatch)mymatch.clone();
-    REMatch newMatch = null;
-    int diff = behind.length() - input.length();
+    int max = re.getMaximumLength ();
+    CharIndexed behind = input.lookBehind (mymatch.index, max);
+    REMatch trymatch = (REMatch) mymatch.clone ();
+    int diff = behind.length () - input.length ();
     int curIndex = trymatch.index + diff;
     trymatch.index = 0;
     trymatch.offset = 0;
-    RETokenMatchHereOnly stopper = new RETokenMatchHereOnly(curIndex);
-    REToken re1 = (REToken) re.clone();
-    re1.chain(stopper);
-    if (re1.match(behind, trymatch)) {
-      if (negative) return null;
-      for (int i = 0; i < trymatch.start.length; i++) {
-         if (trymatch.start[i] != -1 && trymatch.end[i] != -1) {
-             trymatch.start[i] -= diff;
-             if (trymatch.start[i] < 0) trymatch.start[i] -= 1;
-             trymatch.end[i] -= diff;
-             if (trymatch.end[i] < 0) trymatch.end[i] -= 1;
+    RETokenMatchHereOnly stopper = new RETokenMatchHereOnly (curIndex);
+    REToken re1 = (REToken) re.clone ();
+    re1.chain (stopper);
+    if (re1.match (behind, trymatch))
+      {
+       if (negative)
+         return null;
+       for (int i = 0; i < trymatch.start.length; i++)
+         {
+           if (trymatch.start[i] != -1 && trymatch.end[i] != -1)
+             {
+               trymatch.start[i] -= diff;
+               if (trymatch.start[i] < 0)
+                 trymatch.start[i] -= 1;
+               trymatch.end[i] -= diff;
+               if (trymatch.end[i] < 0)
+                 trymatch.end[i] -= 1;
+             }
          }
+       trymatch.index = mymatch.index;
+       trymatch.offset = mymatch.offset;
+       return trymatch;
+      }
+    else
+      {
+       if (negative)
+         return mymatch;
+       return null;
       }
-      trymatch.index = mymatch.index;
-      trymatch.offset = mymatch.offset;
-      return trymatch;
-    }
-    else {
-      if (negative) return mymatch;
-      return null;
-    }
   }
 
-    void dump(StringBuffer os) {
-       os.append("(?<");
-       os.append(negative ? '!' : '=');
-       re.dumpAll(os);
-       os.append(')');
-    }
-
-    private static class RETokenMatchHereOnly extends REToken {
+  void dump (CPStringBuilder os)
+  {
+    os.append ("(?<");
+    os.append (negative ? '!' : '=');
+    re.dumpAll (os);
+    os.append (')');
+  }
 
-        int getMaximumLength() { return 0; }
+  private static class RETokenMatchHereOnly extends REToken
+  {
 
-       private int index;
+    int getMaximumLength ()
+    {
+      return 0;
+    }
 
-       RETokenMatchHereOnly(int index) {
-           super(0);
-           this.index = index;
-       }
+    private int index;
 
-       REMatch matchThis(CharIndexed input, REMatch mymatch) {
-           return (index == mymatch.index ? mymatch : null);
-       }
+    RETokenMatchHereOnly (int index)
+    {
+      super (0);
+      this.index = index;
+    }
 
-        void dump(StringBuffer os) {}
+    REMatch matchThis (CharIndexed input, REMatch mymatch)
+    {
+      return (index == mymatch.index ? mymatch : null);
+    }
 
+    void dump (CPStringBuilder os)
+    {
     }
-}
 
+  }
+}
index 0051f164364c00942139495a75c4fc3a0c6a9380..1683cb1bf6796172904a809c515248f29149fcd2 100644 (file)
@@ -38,303 +38,341 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
-final class RETokenNamedProperty extends REToken {
+final class RETokenNamedProperty extends REToken
+{
   String name;
   boolean insens;
   boolean negate;
   Handler handler;
 
   // Grouped properties
-  static final byte[] LETTER = new byte[]
-  { Character.LOWERCASE_LETTER,
+  static final byte[] LETTER = new byte[]{ Character.LOWERCASE_LETTER,
     Character.UPPERCASE_LETTER,
     Character.TITLECASE_LETTER,
     Character.MODIFIER_LETTER,
-    Character.OTHER_LETTER };
-  
-  static final byte[] MARK = new byte[]
-  { Character.NON_SPACING_MARK,
+    Character.OTHER_LETTER
+  };
+
+  static final byte[] MARK = new byte[]{ Character.NON_SPACING_MARK,
     Character.COMBINING_SPACING_MARK,
-    Character.ENCLOSING_MARK };
-  
-  static final byte[] SEPARATOR = new byte[]
-  { Character.SPACE_SEPARATOR,
+    Character.ENCLOSING_MARK
+  };
+
+  static final byte[] SEPARATOR = new byte[]{ Character.SPACE_SEPARATOR,
     Character.LINE_SEPARATOR,
-    Character.PARAGRAPH_SEPARATOR };
-  
-  static final byte[] SYMBOL = new byte[]
-  { Character.MATH_SYMBOL,
+    Character.PARAGRAPH_SEPARATOR
+  };
+
+  static final byte[] SYMBOL = new byte[]{ Character.MATH_SYMBOL,
     Character.CURRENCY_SYMBOL,
     Character.MODIFIER_SYMBOL,
-    Character.OTHER_SYMBOL };
-  
-  static final byte[] NUMBER = new byte[]
-  { Character.DECIMAL_DIGIT_NUMBER,
+    Character.OTHER_SYMBOL
+  };
+
+  static final byte[] NUMBER = new byte[]{ Character.DECIMAL_DIGIT_NUMBER,
     Character.LETTER_NUMBER,
-    Character.OTHER_NUMBER };
-  
-  static final byte[] PUNCTUATION = new byte[]
-  { Character.DASH_PUNCTUATION,
+    Character.OTHER_NUMBER
+  };
+
+  static final byte[] PUNCTUATION = new byte[]{ Character.DASH_PUNCTUATION,
     Character.START_PUNCTUATION,
     Character.END_PUNCTUATION,
     Character.CONNECTOR_PUNCTUATION,
     Character.OTHER_PUNCTUATION,
     Character.INITIAL_QUOTE_PUNCTUATION,
-    Character.FINAL_QUOTE_PUNCTUATION};
-  
-  static final byte[] OTHER = new byte[]
-  { Character.CONTROL,
+    Character.FINAL_QUOTE_PUNCTUATION
+  };
+
+  static final byte[] OTHER = new byte[]{ Character.CONTROL,
     Character.FORMAT,
     Character.PRIVATE_USE,
     Character.SURROGATE,
-    Character.UNASSIGNED };
+    Character.UNASSIGNED
+  };
 
-  RETokenNamedProperty(int subIndex, String name, boolean insens, boolean negate) throws REException {
-    super(subIndex);
+  RETokenNamedProperty (int subIndex, String name, boolean insens,
+                       boolean negate) throws REException
+  {
+    super (subIndex);
     this.name = name;
     this.insens = insens;
     this.negate = negate;
-    handler = getHandler(name); 
+    handler = getHandler (name);
   }
 
-    int getMinimumLength() {
-       return 1;
-    }
+  int getMinimumLength ()
+  {
+    return 1;
+  }
 
-    int getMaximumLength() {
-       return 1;
-    }
+  int getMaximumLength ()
+  {
+    return 1;
+  }
 
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-      char ch = input.charAt(mymatch.index);
-      boolean retval = matchOneChar(ch);
-      if (retval) {
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    char ch = input.charAt (mymatch.index);
+    boolean retval = matchOneChar (ch);
+    if (retval)
+      {
        ++mymatch.index;
        return mymatch;
       }
-      return null;
+    return null;
   }
 
-  private boolean matchOneChar(char ch) {
+  private boolean matchOneChar (char ch)
+  {
     if (ch == CharIndexed.OUT_OF_BOUNDS)
       return false;
-    
-    boolean retval = handler.includes(ch);
-    if (insens) {
-        retval = retval ||
-                 handler.includes(toUpperCase(ch, unicodeAware)) ||
-                 handler.includes(toLowerCase(ch, unicodeAware));
-    }
 
-    if (negate) retval = !retval;
+    boolean retval = handler.includes (ch);
+    if (insens)
+      {
+       retval = retval ||
+         handler.includes (toUpperCase (ch, unicodeAware)) ||
+         handler.includes (toLowerCase (ch, unicodeAware));
+      }
+
+    if (negate)
+      retval = !retval;
     return retval;
   }
 
-  boolean returnsFixedLengthMatches() { return true; }
+  boolean returnsFixedLengthMatches ()
+  {
+    return true;
+  }
 
-  int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
+  int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+  {
     int index = mymatch.index;
     int numRepeats = 0;
-    while (true) {
-       if (numRepeats >= max) break;
-       char ch = input.charAt(index++);
-       if (! matchOneChar(ch)) break;
+    while (true)
+      {
+       if (numRepeats >= max)
+         break;
+       char ch = input.charAt (index++);
+       if (!matchOneChar (ch))
+         break;
        numRepeats++;
-    }
+      }
     return numRepeats;
   }
 
-  void dump(StringBuffer os) {
-    os.append("\\")
-      .append(negate ? "P" : "p")
-      .append("{" + name + "}");
+  void dump (CPStringBuilder os)
+  {
+    os.append ("\\").append (negate ? "P" : "p").append ("{" + name + "}");
   }
 
-  private abstract static class Handler {
-      public abstract boolean includes(char c);
+  private abstract static class Handler
+  {
+    public abstract boolean includes (char c);
   }
 
-  private Handler getHandler(String name) throws REException {
-      if (name.equals("Lower") ||
-          name.equals("Upper") ||
-          // name.equals("ASCII") ||
-          name.equals("Alpha") ||
-          name.equals("Digit") ||
-          name.equals("Alnum") ||
-          name.equals("Punct") ||
-          name.equals("Graph") ||
-          name.equals("Print") ||
-          name.equals("Blank") ||
-          name.equals("Cntrl") ||
-          name.equals("XDigit") ||
-          name.equals("Space") ) {
-         return new POSIXHandler(name);
+  private Handler getHandler (String name) throws REException
+  {
+    if (name.equals ("Lower") || name.equals ("Upper") ||
+       // name.equals("ASCII") ||
+       name.equals ("Alpha") ||
+       name.equals ("Digit") ||
+       name.equals ("Alnum") ||
+       name.equals ("Punct") ||
+       name.equals ("Graph") ||
+       name.equals ("Print") ||
+       name.equals ("Blank") ||
+       name.equals ("Cntrl") ||
+       name.equals ("XDigit") || name.equals ("Space"))
+      {
+       return new POSIXHandler (name);
       }
-      if (name.startsWith("In")) {
-         try {
-             name = name.substring(2);
-             Character.UnicodeBlock block = Character.UnicodeBlock.forName(name);
-             return new UnicodeBlockHandler(block);
-         }
-         catch (IllegalArgumentException e) {
-              throw new REException("Invalid Unicode block name: " + name, REException.REG_ESCAPE, 0);
-         }
+    if (name.startsWith ("In"))
+      {
+       try
+       {
+         name = name.substring (2);
+         Character.UnicodeBlock block =
+           Character.UnicodeBlock.forName (name);
+         return new UnicodeBlockHandler (block);
+       }
+       catch (IllegalArgumentException e)
+       {
+         throw new REException ("Invalid Unicode block name: " + name,
+                                REException.REG_ESCAPE, 0);
+       }
       }
-      if (name.startsWith("Is")) {
-          name = name.substring(2);
+    if (name.startsWith ("Is"))
+      {
+       name = name.substring (2);
       }
 
-      // "grouped properties"
-      if (name.equals("L"))
-         return new UnicodeCategoriesHandler(LETTER);
-      if (name.equals("M"))
-         return new UnicodeCategoriesHandler(MARK);
-      if (name.equals("Z"))
-         return new UnicodeCategoriesHandler(SEPARATOR);
-      if (name.equals("S"))
-         return new UnicodeCategoriesHandler(SYMBOL);
-      if (name.equals("N"))
-         return new UnicodeCategoriesHandler(NUMBER);
-      if (name.equals("P"))
-         return new UnicodeCategoriesHandler(PUNCTUATION);
-      if (name.equals("C"))
-         return new UnicodeCategoriesHandler(OTHER);
-
-      if (name.equals("Mc"))
-          return new UnicodeCategoryHandler(Character.COMBINING_SPACING_MARK);
-      if (name.equals("Pc"))
-          return new UnicodeCategoryHandler(Character.CONNECTOR_PUNCTUATION);
-      if (name.equals("Cc"))
-          return new UnicodeCategoryHandler(Character.CONTROL);
-      if (name.equals("Sc"))
-          return new UnicodeCategoryHandler(Character.CURRENCY_SYMBOL);
-      if (name.equals("Pd"))
-          return new UnicodeCategoryHandler(Character.DASH_PUNCTUATION);
-      if (name.equals("Nd"))
-          return new UnicodeCategoryHandler(Character.DECIMAL_DIGIT_NUMBER);
-      if (name.equals("Me"))
-          return new UnicodeCategoryHandler(Character.ENCLOSING_MARK);
-      if (name.equals("Pe"))
-          return new UnicodeCategoryHandler(Character.END_PUNCTUATION);
-      if (name.equals("Pf"))
-          return new UnicodeCategoryHandler(Character.FINAL_QUOTE_PUNCTUATION);
-      if (name.equals("Cf"))
-          return new UnicodeCategoryHandler(Character.FORMAT);
-      if (name.equals("Pi"))
-          return new UnicodeCategoryHandler(Character.INITIAL_QUOTE_PUNCTUATION);
-      if (name.equals("Nl"))
-          return new UnicodeCategoryHandler(Character.LETTER_NUMBER);
-      if (name.equals("Zl"))
-          return new UnicodeCategoryHandler(Character.LINE_SEPARATOR);
-      if (name.equals("Ll"))
-          return new UnicodeCategoryHandler(Character.LOWERCASE_LETTER);
-      if (name.equals("Sm"))
-          return new UnicodeCategoryHandler(Character.MATH_SYMBOL);
-      if (name.equals("Lm"))
-          return new UnicodeCategoryHandler(Character.MODIFIER_LETTER);
-      if (name.equals("Sk"))
-          return new UnicodeCategoryHandler(Character.MODIFIER_SYMBOL);
-      if (name.equals("Mn"))
-          return new UnicodeCategoryHandler(Character.NON_SPACING_MARK);
-      if (name.equals("Lo"))
-          return new UnicodeCategoryHandler(Character.OTHER_LETTER);
-      if (name.equals("No"))
-          return new UnicodeCategoryHandler(Character.OTHER_NUMBER);
-      if (name.equals("Po"))
-          return new UnicodeCategoryHandler(Character.OTHER_PUNCTUATION);
-      if (name.equals("So"))
-          return new UnicodeCategoryHandler(Character.OTHER_SYMBOL);
-      if (name.equals("Zp"))
-          return new UnicodeCategoryHandler(Character.PARAGRAPH_SEPARATOR);
-      if (name.equals("Co"))
-          return new UnicodeCategoryHandler(Character.PRIVATE_USE);
-      if (name.equals("Zs"))
-          return new UnicodeCategoryHandler(Character.SPACE_SEPARATOR);
-      if (name.equals("Ps"))
-          return new UnicodeCategoryHandler(Character.START_PUNCTUATION);
-      if (name.equals("Cs"))
-          return new UnicodeCategoryHandler(Character.SURROGATE);
-      if (name.equals("Lt"))
-          return new UnicodeCategoryHandler(Character.TITLECASE_LETTER);
-      if (name.equals("Cn"))
-          return new UnicodeCategoryHandler(Character.UNASSIGNED);
-      if (name.equals("Lu"))
-          return new UnicodeCategoryHandler(Character.UPPERCASE_LETTER);
-      if (name.equals("all"))
-       return new Handler() 
-         {
-           public boolean includes(char c)
-           {
-             return true;
-           }
-         };
-      if (name.startsWith("java"))
+    // "grouped properties"
+    if (name.equals ("L"))
+      return new UnicodeCategoriesHandler (LETTER);
+    if (name.equals ("M"))
+      return new UnicodeCategoriesHandler (MARK);
+    if (name.equals ("Z"))
+      return new UnicodeCategoriesHandler (SEPARATOR);
+    if (name.equals ("S"))
+      return new UnicodeCategoriesHandler (SYMBOL);
+    if (name.equals ("N"))
+      return new UnicodeCategoriesHandler (NUMBER);
+    if (name.equals ("P"))
+      return new UnicodeCategoriesHandler (PUNCTUATION);
+    if (name.equals ("C"))
+      return new UnicodeCategoriesHandler (OTHER);
+
+    if (name.equals ("Mc"))
+      return new UnicodeCategoryHandler (Character.COMBINING_SPACING_MARK);
+    if (name.equals ("Pc"))
+      return new UnicodeCategoryHandler (Character.CONNECTOR_PUNCTUATION);
+    if (name.equals ("Cc"))
+      return new UnicodeCategoryHandler (Character.CONTROL);
+    if (name.equals ("Sc"))
+      return new UnicodeCategoryHandler (Character.CURRENCY_SYMBOL);
+    if (name.equals ("Pd"))
+      return new UnicodeCategoryHandler (Character.DASH_PUNCTUATION);
+    if (name.equals ("Nd"))
+      return new UnicodeCategoryHandler (Character.DECIMAL_DIGIT_NUMBER);
+    if (name.equals ("Me"))
+      return new UnicodeCategoryHandler (Character.ENCLOSING_MARK);
+    if (name.equals ("Pe"))
+      return new UnicodeCategoryHandler (Character.END_PUNCTUATION);
+    if (name.equals ("Pf"))
+      return new UnicodeCategoryHandler (Character.FINAL_QUOTE_PUNCTUATION);
+    if (name.equals ("Cf"))
+      return new UnicodeCategoryHandler (Character.FORMAT);
+    if (name.equals ("Pi"))
+      return new UnicodeCategoryHandler (Character.INITIAL_QUOTE_PUNCTUATION);
+    if (name.equals ("Nl"))
+      return new UnicodeCategoryHandler (Character.LETTER_NUMBER);
+    if (name.equals ("Zl"))
+      return new UnicodeCategoryHandler (Character.LINE_SEPARATOR);
+    if (name.equals ("Ll"))
+      return new UnicodeCategoryHandler (Character.LOWERCASE_LETTER);
+    if (name.equals ("Sm"))
+      return new UnicodeCategoryHandler (Character.MATH_SYMBOL);
+    if (name.equals ("Lm"))
+      return new UnicodeCategoryHandler (Character.MODIFIER_LETTER);
+    if (name.equals ("Sk"))
+      return new UnicodeCategoryHandler (Character.MODIFIER_SYMBOL);
+    if (name.equals ("Mn"))
+      return new UnicodeCategoryHandler (Character.NON_SPACING_MARK);
+    if (name.equals ("Lo"))
+      return new UnicodeCategoryHandler (Character.OTHER_LETTER);
+    if (name.equals ("No"))
+      return new UnicodeCategoryHandler (Character.OTHER_NUMBER);
+    if (name.equals ("Po"))
+      return new UnicodeCategoryHandler (Character.OTHER_PUNCTUATION);
+    if (name.equals ("So"))
+      return new UnicodeCategoryHandler (Character.OTHER_SYMBOL);
+    if (name.equals ("Zp"))
+      return new UnicodeCategoryHandler (Character.PARAGRAPH_SEPARATOR);
+    if (name.equals ("Co"))
+      return new UnicodeCategoryHandler (Character.PRIVATE_USE);
+    if (name.equals ("Zs"))
+      return new UnicodeCategoryHandler (Character.SPACE_SEPARATOR);
+    if (name.equals ("Ps"))
+      return new UnicodeCategoryHandler (Character.START_PUNCTUATION);
+    if (name.equals ("Cs"))
+      return new UnicodeCategoryHandler (Character.SURROGATE);
+    if (name.equals ("Lt"))
+      return new UnicodeCategoryHandler (Character.TITLECASE_LETTER);
+    if (name.equals ("Cn"))
+      return new UnicodeCategoryHandler (Character.UNASSIGNED);
+    if (name.equals ("Lu"))
+      return new UnicodeCategoryHandler (Character.UPPERCASE_LETTER);
+    if (name.equals ("all"))
+      return new Handler ()
+      {
+       public boolean includes (char c)
+       {
+         return true;
+       }
+      };
+    if (name.startsWith ("java"))
+      {
+       try
        {
-         try
-           {
-             Method m = Character.class.getMethod("is" + name.substring(4),
-                                                  Character.TYPE);
-             return new JavaCategoryHandler(m);
-           }
-         catch (NoSuchMethodException e)
-           {
-             throw new REException("Unsupported Java handler: " + name, e,
-                                   REException.REG_ESCAPE, 0);
-           }
+         Method m = Character.class.getMethod ("is" + name.substring (4),
+                                               Character.TYPE);
+         return new JavaCategoryHandler (m);
        }
-      throw new REException("unsupported name " + name, REException.REG_ESCAPE, 0);
+       catch (NoSuchMethodException e)
+       {
+         throw new REException ("Unsupported Java handler: " + name, e,
+                                REException.REG_ESCAPE, 0);
+       }
+      }
+    throw new REException ("unsupported name " + name, REException.REG_ESCAPE,
+                          0);
   }
 
-  private static class POSIXHandler extends Handler {
-      private RETokenPOSIX retoken;
-      public POSIXHandler(String name) {
-            int posixId = RETokenPOSIX.intValue(name.toLowerCase());
-            if (posixId != -1)
-              retoken = new RETokenPOSIX(0,posixId,false,false);
-           else
-              throw new RuntimeException("Unknown posix ID: " + name);
-      }
-      public boolean includes(char c) {
-          return retoken.matchOneChar(c);
-      }
+  private static class POSIXHandler extends Handler
+  {
+    private RETokenPOSIX retoken;
+    public POSIXHandler (String name)
+    {
+      int posixId = RETokenPOSIX.intValue (name.toLowerCase ());
+      if (posixId != -1)
+         retoken = new RETokenPOSIX (0, posixId, false, false);
+      else
+         throw new RuntimeException ("Unknown posix ID: " + name);
+    }
+    public boolean includes (char c)
+    {
+      return retoken.matchOneChar (c);
+    }
   }
 
-  private static class UnicodeCategoryHandler extends Handler {
-      public UnicodeCategoryHandler(byte category) {
-          this.category = (int)category;
-      }
-      private int category;
-      public boolean includes(char c) {
-          return Character.getType(c) == category;
-      }
+  private static class UnicodeCategoryHandler extends Handler
+  {
+    public UnicodeCategoryHandler (byte category)
+    {
+      this.category = (int) category;
+    }
+    private int category;
+    public boolean includes (char c)
+    {
+      return Character.getType (c) == category;
+    }
   }
 
-  private static class UnicodeCategoriesHandler extends Handler {
-      public UnicodeCategoriesHandler(byte[] categories) {
-          this.categories = categories;
-      }
-      private byte[] categories;
-      public boolean includes(char c) {
-         int category = Character.getType(c);
-          for (int i = 0; i < categories.length; i++)
-              if (category == categories[i])
-                 return true;
-         return false;
-      }
+  private static class UnicodeCategoriesHandler extends Handler
+  {
+    public UnicodeCategoriesHandler (byte[]categories)
+    {
+      this.categories = categories;
+    }
+    private byte[] categories;
+    public boolean includes (char c)
+    {
+      int category = Character.getType (c);
+      for (int i = 0; i < categories.length; i++)
+       if (category == categories[i])
+         return true;
+      return false;
+    }
   }
 
-  private static class UnicodeBlockHandler extends Handler {
-      public UnicodeBlockHandler(Character.UnicodeBlock block) {
-         this.block = block;
-      }
-      private Character.UnicodeBlock block;
-      public boolean includes(char c) {
-         Character.UnicodeBlock cblock = Character.UnicodeBlock.of(c);
-         return (cblock != null && cblock.equals(block));
-      }
+  private static class UnicodeBlockHandler extends Handler
+  {
+    public UnicodeBlockHandler (Character.UnicodeBlock block)
+    {
+      this.block = block;
+    }
+    private Character.UnicodeBlock block;
+    public boolean includes (char c)
+    {
+      Character.UnicodeBlock cblock = Character.UnicodeBlock.of (c);
+      return (cblock != null && cblock.equals (block));
+    }
   }
 
   /**
@@ -343,30 +381,29 @@ final class RETokenNamedProperty extends REToken {
    *
    * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
    */
-  private static class JavaCategoryHandler 
-    extends Handler 
+  private static class JavaCategoryHandler extends Handler
   {
     private Method method;
 
-    public JavaCategoryHandler(Method m) 
+    public JavaCategoryHandler (Method m)
     {
       this.method = m;
     }
 
-    public boolean includes(char c) 
+    public boolean includes (char c)
     {
       try
-       {
-         return (Boolean) method.invoke(null, c);
-       }
+      {
+       return (Boolean) method.invoke (null, c);
+      }
       catch (IllegalAccessException e)
-       {
-         throw new InternalError("Unable to access method " + method);
-       }
+      {
+       throw new InternalError ("Unable to access method " + method);
+      }
       catch (InvocationTargetException e)
-       {
-         throw new InternalError("Error invoking " + method);
-       }
+      {
+       throw new InternalError ("Error invoking " + method);
+      }
     }
   }
 
index 239c2201ca73ba4692a4fcf1df9944b17b9b85cf..fcae3c2d1d9b558faf8150b4c9617ccfbdc28cdf 100644 (file)
@@ -36,23 +36,29 @@ obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
 
 package gnu.java.util.regex;
-import java.util.Vector;
-import java.util.Stack;
 
-final class RETokenOneOf extends REToken {
-  private Vector options;
+import gnu.java.lang.CPStringBuilder;
+
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.Deque;
+import java.util.List;
+
+final class RETokenOneOf extends REToken
+{
+  private final List < REToken > options;
   private boolean negative;
   // True if this RETokenOneOf is supposed to match only one character,
   // which is typically the case of a character class expression.
   private boolean matchesOneChar;
 
-  private Vector addition;
-  // This Vector addition is used to store nested character classes.
+  private final List < Object > addition;
+  // This ArrayList addition is used to store nested character classes.
   // For example, if the original expression is
   //    [2-7a-c[f-k][m-z]&&[^p-v][st]]
-  // the basic part /2-7a-c/ is stored in the Vector options, and
+  // the basic part /2-7a-c/ is stored in the ArrayList options, and
   // the additional part /[f-k][m-z]&&[^p-v][st]/ is stored in the
-  // Vector addition in the following order (Reverse Polish Notation):
+  // ArrayList addition in the following order (Reverse Polish Notation):
   //           -- The matching result of the basic part is assumed here. 
   //    [f-k]  -- REToken
   //    "|"    -- or
@@ -65,7 +71,7 @@ final class RETokenOneOf extends REToken {
   //    "|"    -- or
   //    "&"    -- and
   //
-  // As it is clear from the explanation above, the Vector addition is
+  // As it is clear from the explanation above, the ArrayList addition is
   // effective only when this REToken originates from a character class
   // expression.
 
@@ -73,209 +79,254 @@ final class RETokenOneOf extends REToken {
   // e.g. \d --> new RETokenOneOf("0123456789",false, ..)
   //      \D --> new RETokenOneOf("0123456789",true, ..)
 
-  RETokenOneOf(int subIndex, String optionsStr, boolean negative, boolean insens) {
-    super(subIndex);
-    options = new Vector();
+    RETokenOneOf (int subIndex, String optionsStr, boolean negative,
+                 boolean insens)
+  {
+    super (subIndex);
+    options = new ArrayList < REToken > ();
     this.negative = negative;
-    for (int i = 0; i < optionsStr.length(); i++)
-      options.addElement(new RETokenChar(subIndex,optionsStr.charAt(i),insens));
+    for (int i = 0; i < optionsStr.length (); i++)
+      options.add (new RETokenChar (subIndex, optionsStr.charAt (i), insens));
     matchesOneChar = true;
+    addition = null;
   }
 
-  RETokenOneOf(int subIndex, Vector options, boolean negative) {
-    super(subIndex);
-    this.options = options;
-    this.negative = negative;
-    matchesOneChar = negative;
+  RETokenOneOf (int subIndex, List < REToken > options, boolean negative)
+  {
+    this (subIndex, options, null, negative);
   }
 
-  RETokenOneOf(int subIndex, Vector options, Vector addition, boolean negative) {
-    super(subIndex);
+  RETokenOneOf (int subIndex, List < REToken > options,
+               List < Object > addition, boolean negative)
+  {
+    super (subIndex);
     this.options = options;
     this.addition = addition;
     this.negative = negative;
     matchesOneChar = (negative || addition != null);
   }
 
-  int getMinimumLength() {
-    if (matchesOneChar) return 1;
+  int getMinimumLength ()
+  {
+    if (matchesOneChar)
+      return 1;
     int min = Integer.MAX_VALUE;
     int x;
-    for (int i=0; i < options.size(); i++) {
-      if ((x = ((REToken) options.elementAt(i)).getMinimumLength()) < min)
-       min = x;
-    }
+  for (REToken t:options)
+      {
+       if ((x = t.getMinimumLength ()) < min)
+         min = x;
+      }
     return min;
   }
 
-  int getMaximumLength() {
-    if (matchesOneChar) return 1;
+  int getMaximumLength ()
+  {
+    if (matchesOneChar)
+      return 1;
     int max = 0;
     int x;
-    for (int i=0; i < options.size(); i++) {
-      if ((x = ((REToken) options.elementAt(i)).getMaximumLength()) > max)
-       max = x;
-    }
+  for (REToken t:options)
+      {
+       if ((x = t.getMaximumLength ()) > max)
+         max = x;
+      }
     return max;
   }
 
-    boolean match(CharIndexed input, REMatch mymatch) {
-      setHitEnd(input, mymatch);
-      if (matchesOneChar) return matchOneChar(input, mymatch);
-      else return matchOneRE(input, mymatch);
-    }
+  boolean match (CharIndexed input, REMatch mymatch)
+  {
+    setHitEnd (input, mymatch);
+    if (matchesOneChar)
+      return matchOneChar (input, mymatch);
+    else
+      return matchOneRE (input, mymatch);
+  }
 
-    boolean matchOneChar(CharIndexed input, REMatch mymatch) {
-      REMatch tryMatch;
-      boolean tryOnly;
-      if (addition == null) {
-         tryMatch = mymatch;
-         tryOnly = false;
+  boolean matchOneChar (CharIndexed input, REMatch mymatch)
+  {
+    REMatch tryMatch;
+    boolean tryOnly;
+    if (addition == null)
+      {
+       tryMatch = mymatch;
+       tryOnly = false;
       }
-      else {
-         tryMatch = (REMatch) mymatch.clone();
-         tryOnly = true;
+    else
+      {
+       tryMatch = (REMatch) mymatch.clone ();
+       tryOnly = true;
       }
-      boolean b = negative ?
-        matchN(input, tryMatch, tryOnly) :
-        matchP(input, tryMatch, tryOnly);
-      if (addition == null) return b;
+    boolean b = negative ?
+      matchN (input, tryMatch, tryOnly) : matchP (input, tryMatch, tryOnly);
+    if (addition == null)
+      return b;
 
-      Stack stack = new Stack();
-      stack.push(new Boolean(b));
-      for (int i=0; i < addition.size(); i++) {
-       Object obj = addition.elementAt(i);
-       if (obj instanceof REToken) {
-         b = ((REToken)obj).match(input, (REMatch)mymatch.clone());
-         stack.push(new Boolean(b));
-       }
-       else if (obj instanceof Boolean) {
-         stack.push(obj);
-       }
-       else if (obj.equals("|")) {
-         b = ((Boolean)stack.pop()).booleanValue();
-         b = ((Boolean)stack.pop()).booleanValue() || b;
-         stack.push(new Boolean(b));
-       }
-       else if (obj.equals("&")) {
-         b = ((Boolean)stack.pop()).booleanValue();
-         b = ((Boolean)stack.pop()).booleanValue() && b;
-         stack.push(new Boolean(b));
-       }
-       else {
-         throw new RuntimeException("Invalid object found");
-       }
+    final Deque < Boolean > stack = new ArrayDeque < Boolean > ();
+    stack.push (new Boolean (b));
+  for (Object obj:addition)
+      {
+       if (obj instanceof REToken)
+         {
+           b = ((REToken) obj).match (input, (REMatch) mymatch.clone ());
+           stack.push (new Boolean (b));
+         }
+       else if (obj instanceof Boolean)
+         {
+           stack.push ((Boolean) obj);
+         }
+       else if (obj.equals ("|"))
+         {
+           b = stack.pop ();
+           b = stack.pop () || b;
+           stack.push (new Boolean (b));
+         }
+       else if (obj.equals ("&"))
+         {
+           b = stack.pop ();
+           b = stack.pop () && b;
+           stack.push (new Boolean (b));
+         }
+       else
+         {
+           throw new RuntimeException ("Invalid object found");
+         }
       }
-      b = ((Boolean)stack.pop()).booleanValue();
-      if (b) {
-        ++mymatch.index;
-        return next(input, mymatch);
+    if (stack.pop ())
+      {
+       ++mymatch.index;
+       return next (input, mymatch);
       }
-      return false;
-    }
+    return false;
+  }
 
-    private boolean matchN(CharIndexed input, REMatch mymatch, boolean tryOnly) {
-      if (input.charAt(mymatch.index) == CharIndexed.OUT_OF_BOUNDS) 
-        return false;
+  private boolean matchN (CharIndexed input, REMatch mymatch, boolean tryOnly)
+  {
+    if (input.charAt (mymatch.index) == CharIndexed.OUT_OF_BOUNDS)
+      return false;
 
-      REMatch newMatch = null;
-      REMatch last = null;
-      REToken tk;
-      for (int i=0; i < options.size(); i++) {
-       tk = (REToken) options.elementAt(i);
-       REMatch tryMatch = (REMatch) mymatch.clone();
-       if (tk.match(input, tryMatch)) { // match was successful
+  for (REToken tk:options)
+      {
+       REMatch tryMatch = (REMatch) mymatch.clone ();
+       if (tk.match (input, tryMatch))
+         {                     // match was successful
            return false;
-       } // is a match
-      } // try next option
+         }                     // is a match
+      }                                // try next option
 
-      if (tryOnly) return true;
-      ++mymatch.index;
-      return next(input, mymatch);
-    }
+    if (tryOnly)
+      return true;
+    ++mymatch.index;
+    return next (input, mymatch);
+  }
 
-    private boolean matchP(CharIndexed input, REMatch mymatch, boolean tryOnly) {
-      REToken tk;
-      for (int i=0; i < options.size(); i++) {
-       tk = (REToken) options.elementAt(i);
-       REMatch tryMatch = (REMatch) mymatch.clone();
-       if (tk.match(input, tryMatch)) { // match was successful
-         if (tryOnly) return true;
-         if (next(input, tryMatch)) {
-             mymatch.assignFrom(tryMatch);
+  private boolean matchP (CharIndexed input, REMatch mymatch, boolean tryOnly)
+  {
+  for (REToken tk:options)
+      {
+       REMatch tryMatch = (REMatch) mymatch.clone ();
+       if (tk.match (input, tryMatch))
+         {                     // match was successful
+           if (tryOnly)
              return true;
+           if (next (input, tryMatch))
+             {
+               mymatch.assignFrom (tryMatch);
+               return true;
+             }
          }
-       }
       }
-      return false;
-    }
+    return false;
+  }
 
-  private boolean matchOneRE(CharIndexed input, REMatch mymatch) {
-      REMatch newMatch = findMatch(input, mymatch);
-      if (newMatch != null) {
-         mymatch.assignFrom(newMatch);
-         return true;
+  private boolean matchOneRE (CharIndexed input, REMatch mymatch)
+  {
+    REMatch newMatch = findMatch (input, mymatch);
+    if (newMatch != null)
+      {
+       mymatch.assignFrom (newMatch);
+       return true;
       }
-      return false;    
+    return false;
   }
 
-  REMatch findMatch(CharIndexed input, REMatch mymatch) {
-      if (matchesOneChar) return super.findMatch(input, mymatch);
-      return findMatch(input, mymatch, 0);
+  REMatch findMatch (CharIndexed input, REMatch mymatch)
+  {
+    if (matchesOneChar)
+      return super.findMatch (input, mymatch);
+    return findMatch (input, mymatch, 0);
   }
 
-  REMatch backtrack(CharIndexed input, REMatch mymatch, Object param) {
-      return findMatch(input, mymatch, ((Integer)param).intValue());
+  REMatch backtrack (CharIndexed input, REMatch mymatch, Object param)
+  {
+    return findMatch (input, mymatch, ((Integer) param).intValue ());
   }
 
-  private REMatch findMatch(CharIndexed input, REMatch mymatch, int optionIndex) {
-      for (int i = optionIndex; i < options.size(); i++) {
-          REToken tk = (REToken) options.elementAt(i);
-         tk = (REToken) tk.clone();
-         tk.chain(getNext());
-          REMatch tryMatch = (REMatch) mymatch.clone();
-          if (tryMatch.backtrackStack == null) {
-            tryMatch.backtrackStack = new BacktrackStack();
+  private REMatch findMatch (CharIndexed input, REMatch mymatch,
+                            int optionIndex)
+  {
+    for (int i = optionIndex; i < options.size (); i++)
+      {
+       REToken tk = options.get (i);
+       tk = (REToken) tk.clone ();
+       tk.chain (getNext ());
+       REMatch tryMatch = (REMatch) mymatch.clone ();
+       if (tryMatch.backtrackStack == null)
+         {
+           tryMatch.backtrackStack = new BacktrackStack ();
          }
-         boolean stackPushed = false;
-         if (i + 1 < options.size()) {
-            tryMatch.backtrackStack.push(new BacktrackStack.Backtrack(
-              this, input, mymatch, new Integer(i + 1)));
+       boolean stackPushed = false;
+       if (i + 1 < options.size ())
+         {
+           tryMatch.backtrackStack.push (new BacktrackStack.
+                                         Backtrack (this, input, mymatch,
+                                                    i + 1));
            stackPushed = true;
-          }
-         boolean b = tk.match(input, tryMatch);
-         if (b) {
-            return tryMatch;
          }
-         if (stackPushed) tryMatch.backtrackStack.pop();
+       if (tk.match (input, tryMatch))
+         {
+           return tryMatch;
+         }
+       if (stackPushed)
+         tryMatch.backtrackStack.pop ();
       }
-      return null; 
+    return null;
   }
 
-  boolean returnsFixedLengthMatches() { return matchesOneChar; }
+  boolean returnsFixedLengthMatches ()
+  {
+    return matchesOneChar;
+  }
 
-  int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
-      if (!matchesOneChar)
-          return super.findFixedLengthMatches(input, mymatch, max);
-      int numRepeats = 0;
-      REMatch m = (REMatch) mymatch.clone();
-      REToken tk = (REToken) this.clone();
-      tk.chain(null);
-      while (true) {
-         if (numRepeats >= max) break;
-          m = tk.findMatch(input, m);
-          if (m == null) break;
-          numRepeats++;
+  int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+  {
+    if (!matchesOneChar)
+      return super.findFixedLengthMatches (input, mymatch, max);
+    int numRepeats = 0;
+    REMatch m = (REMatch) mymatch.clone ();
+    REToken tk = (REToken) this.clone ();
+    tk.chain (null);
+    while (true)
+      {
+       if (numRepeats >= max)
+         break;
+       m = tk.findMatch (input, m);
+       if (m == null)
+         break;
+       numRepeats++;
       }
-      return numRepeats;
+    return numRepeats;
   }
 
-  void dump(StringBuffer os) {
-    os.append(negative ? "[^" : "(?:");
-    for (int i = 0; i < options.size(); i++) {
-      if (!negative && (i > 0)) os.append('|');
-      ((REToken) options.elementAt(i)).dumpAll(os);
-    }
-    os.append(negative ? ']' : ')');
-  }  
+  void dump (CPStringBuilder os)
+  {
+    os.append (negative ? "[^" : "(?:");
+    for (int i = 0; i < options.size (); i++)
+      {
+       if (!negative && (i > 0))
+         os.append ('|');
+       options.get (i).dumpAll (os);
+      }
+    os.append (negative ? ']' : ')');
+  }
 }
index 072989583656f7c8bf3d273f69a973b218a2b798..2c809570bbfea0f796c2b7af11ac089453a69cbd 100644 (file)
@@ -38,130 +38,158 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-final class RETokenPOSIX extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenPOSIX extends REToken
+{
   int type;
   boolean insens;
   boolean negated;
 
-  static final int  ALNUM = 0;
-  static final int  ALPHA = 1;
-  static final int  BLANK = 2;
-  static final int  CNTRL = 3;
-  static final int  DIGIT = 4;
-  static final int  GRAPH = 5;
-  static final int  LOWER = 6;
-  static final int  PRINT = 7;
-  static final int  PUNCT = 8;
-  static final int  SPACE = 9;
-  static final int  UPPER = 10;
+  static final int ALNUM = 0;
+  static final int ALPHA = 1;
+  static final int BLANK = 2;
+  static final int CNTRL = 3;
+  static final int DIGIT = 4;
+  static final int GRAPH = 5;
+  static final int LOWER = 6;
+  static final int PRINT = 7;
+  static final int PUNCT = 8;
+  static final int SPACE = 9;
+  static final int UPPER = 10;
   static final int XDIGIT = 11;
 
   // Array indices correspond to constants defined above.
-  static final String[] s_nameTable =  {
+  static final String[] s_nameTable = {
     "alnum", "alpha", "blank", "cntrl", "digit", "graph", "lower",
-    "print", "punct", "space", "upper", "xdigit" 
+    "print", "punct", "space", "upper", "xdigit"
   };
 
   // The RE constructor uses this to look up the constant for a string
-  static int intValue(String key) {
-    for (int i = 0; i < s_nameTable.length; i++) {
-      if (s_nameTable[i].equals(key)) return i;
-    }
+  static int intValue (String key)
+  {
+    for (int i = 0; i < s_nameTable.length; i++)
+      {
+       if (s_nameTable[i].equals (key))
+         return i;
+      }
     return -1;
   }
 
-  RETokenPOSIX(int subIndex, int type, boolean insens, boolean negated) {
-    super(subIndex);
+  RETokenPOSIX (int subIndex, int type, boolean insens, boolean negated)
+  {
+    super (subIndex);
     this.type = type;
     this.insens = insens;
     this.negated = negated;
   }
 
-    int getMinimumLength() {
-       return 1;
-    }
+  int getMinimumLength ()
+  {
+    return 1;
+  }
 
-    int getMaximumLength() {
-       return 1;
-    }
+  int getMaximumLength ()
+  {
+    return 1;
+  }
 
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-      char ch = input.charAt(mymatch.index);
-      boolean retval = matchOneChar(ch);
-      if (retval) {
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    char ch = input.charAt (mymatch.index);
+    boolean retval = matchOneChar (ch);
+    if (retval)
+      {
        ++mymatch.index;
        return mymatch;
       }
-      return null;
-    }
+    return null;
+  }
 
-    boolean matchOneChar(char ch) {
+  boolean matchOneChar (char ch)
+  {
     if (ch == CharIndexed.OUT_OF_BOUNDS)
       return false;
-    
+
     boolean retval = false;
-    switch (type) {
-    case ALNUM:
+    switch (type)
+      {
+      case ALNUM:
        // Note that there is some debate over whether '_' should be included
-       retval = Character.isLetterOrDigit(ch) || (ch == '_');
+       retval = Character.isLetterOrDigit (ch) || (ch == '_');
        break;
-    case ALPHA:
-       retval = Character.isLetter(ch);
+      case ALPHA:
+       retval = Character.isLetter (ch);
        break;
-    case BLANK:
+      case BLANK:
        retval = ((ch == ' ') || (ch == '\t'));
        break;
-    case CNTRL:
-       retval = Character.isISOControl(ch);
+      case CNTRL:
+       retval = Character.isISOControl (ch);
        break;
-    case DIGIT:
-       retval = Character.isDigit(ch);
+      case DIGIT:
+       retval = Character.isDigit (ch);
        break;
-    case GRAPH:
-       retval = (!(Character.isWhitespace(ch) || Character.isISOControl(ch)));
+      case GRAPH:
+       retval =
+         (!(Character.isWhitespace (ch) || Character.isISOControl (ch)));
        break;
-    case LOWER:
-       retval = ((insens && Character.isLetter(ch)) || Character.isLowerCase(ch));
+      case LOWER:
+       retval = ((insens && Character.isLetter (ch))
+                 || Character.isLowerCase (ch));
        break;
-    case PRINT:
-       retval = (!(Character.isWhitespace(ch) || Character.isISOControl(ch)))
-           || (ch == ' ');
+      case PRINT:
+       retval =
+         (!(Character.isWhitespace (ch) || Character.isISOControl (ch)))
+         || (ch == ' ');
        break;
-    case PUNCT:
+      case PUNCT:
        // This feels sloppy, especially for non-U.S. locales.
-       retval = ("`~!@#$%^&*()-_=+[]{}\\|;:'\"/?,.<>".indexOf(ch)!=-1);
+       retval = ("`~!@#$%^&*()-_=+[]{}\\|;:'\"/?,.<>".indexOf (ch) != -1);
        break;
-    case SPACE:
-       retval = Character.isWhitespace(ch);
+      case SPACE:
+       retval = Character.isWhitespace (ch);
        break;
-    case UPPER:
-       retval = ((insens && Character.isLetter(ch)) || Character.isUpperCase(ch));
+      case UPPER:
+       retval = ((insens && Character.isLetter (ch))
+                 || Character.isUpperCase (ch));
        break;
-    case XDIGIT:
-       retval = (Character.isDigit(ch) || ("abcdefABCDEF".indexOf(ch)!=-1));
+      case XDIGIT:
+       retval = (Character.isDigit (ch)
+                 || ("abcdefABCDEF".indexOf (ch) != -1));
        break;
-    }
+      }
 
-    if (negated) retval = !retval;
+    if (negated)
+      retval = !retval;
     return retval;
   }
 
-  boolean returnsFixedLengthMatches() { return true; }
+  boolean returnsFixedLengthMatches ()
+  {
+    return true;
+  }
 
-  int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
-      int index = mymatch.index;
-      int numRepeats = 0;
-      while (true) {
-       if (numRepeats >= max) break;
-       char ch = input.charAt(index++);
-       if (! matchOneChar(ch)) break;
+  int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+  {
+    int index = mymatch.index;
+    int numRepeats = 0;
+    while (true)
+      {
+       if (numRepeats >= max)
+         break;
+       char ch = input.charAt (index++);
+       if (!matchOneChar (ch))
+         break;
        numRepeats++;
       }
-      return numRepeats;
+    return numRepeats;
   }
 
-  void dump(StringBuffer os) {
-    if (negated) os.append('^');
-    os.append("[:" + s_nameTable[type] + ":]");
+  void dump (CPStringBuilder os)
+  {
+    if (negated)
+      os.append ('^');
+    os.append ("[:" + s_nameTable[type] + ":]");
   }
 }
index 8a65f77f13feb7d709e4e19330831dd9b5f392fb..2597d4d07cb58905a37fd2c52f2f61c7356a2267 100644 (file)
@@ -37,64 +37,83 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-final class RETokenRange extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenRange extends REToken
+{
   private char lo, hi;
   private boolean insens;
 
-  RETokenRange(int subIndex, char lo, char hi, boolean ins) {
-    super(subIndex);
+    RETokenRange (int subIndex, char lo, char hi, boolean ins)
+  {
+    super (subIndex);
     insens = ins;
     this.lo = lo;
     this.hi = hi;
   }
 
-  int getMinimumLength() {
+  int getMinimumLength ()
+  {
     return 1;
   }
 
-  int getMaximumLength() {
+  int getMaximumLength ()
+  {
     return 1;
   }
 
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-       char c = input.charAt(mymatch.index);
-       if (matchOneChar(c)) {
-           ++mymatch.index;
-           return mymatch;
-       }
-       return null;
-    }
-
-    boolean matchOneChar(char c) {
-       if (c == CharIndexed.OUT_OF_BOUNDS) return false;
-       boolean matches = (c >= lo) && (c <= hi);
-       if (! matches && insens) {
-         char c1 = toLowerCase(c, unicodeAware);
-         matches = (c1 >= lo) && (c1 <= hi);
-         if (!matches) {
-           c1 = toUpperCase(c, unicodeAware);
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    char c = input.charAt (mymatch.index);
+    if (matchOneChar (c))
+      {
+       ++mymatch.index;
+       return mymatch;
+      }
+    return null;
+  }
+
+  boolean matchOneChar (char c)
+  {
+    if (c == CharIndexed.OUT_OF_BOUNDS)
+      return false;
+    boolean matches = (c >= lo) && (c <= hi);
+    if (!matches && insens)
+      {
+       char c1 = toLowerCase (c, unicodeAware);
+       matches = (c1 >= lo) && (c1 <= hi);
+       if (!matches)
+         {
+           c1 = toUpperCase (c, unicodeAware);
            matches = (c1 >= lo) && (c1 <= hi);
          }
-       }
-       return matches;
-    }
-
-    boolean returnsFixedLengthMatches() { return true; }
-
-    int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
-        int index = mymatch.index;
-       int numRepeats = 0;
-       while (true) {
-           if (numRepeats >= max) break;
-           char ch = input.charAt(index++);
-           if (! matchOneChar(ch)) break;
-           numRepeats++;
-       }
-        return numRepeats;
-    }
-    
-  void dump(StringBuffer os) {
-    os.append(lo).append('-').append(hi);
+      }
+    return matches;
+  }
+
+  boolean returnsFixedLengthMatches ()
+  {
+    return true;
+  }
+
+  int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+  {
+    int index = mymatch.index;
+    int numRepeats = 0;
+    while (true)
+      {
+       if (numRepeats >= max)
+         break;
+       char ch = input.charAt (index++);
+       if (!matchOneChar (ch))
+         break;
+       numRepeats++;
+      }
+    return numRepeats;
   }
-}
 
+  void dump (CPStringBuilder os)
+  {
+    os.append (lo).append ('-').append (hi);
+  }
+}
index 7f5e5626f1e3917cae02421d6470f4add0e2da25..0ba880d3987f61c533ba44f5e7a5c3f00c0d3055 100644 (file)
@@ -38,493 +38,602 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-import java.util.ArrayList;
-
-final class RETokenRepeated extends REToken {
-    private REToken token;
-    private int min,max;
-    private boolean stingy;
-    private boolean possessive;
-    private int tokenFixedLength;
-    
-    RETokenRepeated(int subIndex, REToken token, int min, int max) {
-       super(subIndex);
-       this.token = token;
-       this.min = min;
-       this.max = max;
-       if (token.returnsFixedLengthMatches()) {
-           tokenFixedLength = token.getMaximumLength();
-       }
-       else {
-           tokenFixedLength = -1;
-       }
-    }
+import gnu.java.lang.CPStringBuilder;
+
+import java.util.ArrayDeque;
+import java.util.Deque;
+
+final class RETokenRepeated extends REToken
+{
+  private REToken token;
+  private int min, max;
+  private boolean stingy;
+  private boolean possessive;
+  private int tokenFixedLength;
+
+    RETokenRepeated (int subIndex, REToken token, int min, int max)
+  {
+    super (subIndex);
+    this.token = token;
+    this.min = min;
+    this.max = max;
+    if (token.returnsFixedLengthMatches ())
+      {
+       tokenFixedLength = token.getMaximumLength ();
+      }
+    else
+      {
+       tokenFixedLength = -1;
+      }
+  }
 
     /** Sets the minimal matching mode to true. */
-    void makeStingy() {
-       stingy = true;
-    }
-    
+  void makeStingy ()
+  {
+    stingy = true;
+  }
+
     /** Queries if this token has minimal matching enabled. */
-    boolean isStingy() {
-       return stingy;
-    }
+  boolean isStingy ()
+  {
+    return stingy;
+  }
 
     /** Sets possessive matching mode to true. */
-    void makePossessive() {
-        possessive = true;
-    }
+  void makePossessive ()
+  {
+    possessive = true;
+  }
 
     /** Queries if this token has possessive matching enabled. */
-    boolean isPossessive() {
-        return possessive;
-    }
-    
+  boolean isPossessive ()
+  {
+    return possessive;
+  }
+
     /**
      * The minimum length of a repeated token is the minimum length
      * of the token multiplied by the minimum number of times it must
      * match.
      */
-    int getMinimumLength() {
-       return (min * token.getMinimumLength());
+  int getMinimumLength ()
+  {
+    return (min * token.getMinimumLength ());
+  }
+
+  int getMaximumLength ()
+  {
+    if (max == Integer.MAX_VALUE)
+      return Integer.MAX_VALUE;
+    int tmax = token.getMaximumLength ();
+    if (tmax == Integer.MAX_VALUE)
+      return tmax;
+    return (max * tmax);
+  }
+
+  // The comment "MUST make a clone" below means that some tests
+  // failed without doing clone(),
+
+  private static class DoablesFinder
+  {
+    private REToken tk;
+    private CharIndexed input;
+    private REMatch rematch;
+    private boolean findFirst;
+
+    private DoablesFinder (REToken tk, CharIndexed input, REMatch mymatch)
+    {
+      this.tk = tk;
+      this.input = input;
+      this.rematch = (REMatch) mymatch.clone ();       // MUST make a clone
+      this.rematch.backtrackStack = new BacktrackStack ();
+      findFirst = true;
     }
 
-    int getMaximumLength() {
-        if (max == Integer.MAX_VALUE) return Integer.MAX_VALUE;
-       int tmax = token.getMaximumLength();
-       if (tmax == Integer.MAX_VALUE) return tmax;
-       return (max * tmax);
-    }
-
-    // The comment "MUST make a clone" below means that some tests
-    // failed without doing clone(),
-
-    private static class DoablesFinder {
-       private REToken tk;
-       private CharIndexed input;
-       private REMatch rematch;
-       private boolean findFirst;
-
-        private DoablesFinder(REToken tk, CharIndexed input, REMatch mymatch) {
-           this.tk = tk;
-           this.input = input;
-           this.rematch = (REMatch) mymatch.clone(); // MUST make a clone
-           this.rematch.backtrackStack = new BacktrackStack();
-           findFirst = true;
+    private REMatch find ()
+    {
+      int origin = rematch.index;
+      REMatch rem;
+      if (findFirst)
+       {
+         rem = tk.findMatch (input, rematch);
+         findFirst = false;
        }
-
-       private REMatch find() {
-           int origin = rematch.index;
-           REMatch rem;
-           if (findFirst) {
-               rem = tk.findMatch(input, rematch);
-               findFirst = false;
-           }
-           else {
-               while (true) {
-                   if (rematch.backtrackStack.empty()) {
-                       rem = null;
-                       break;
-                   }
-                   BacktrackStack.Backtrack bt = rematch.backtrackStack.pop();
-                   rem = bt.token.backtrack(bt.input, bt.match, bt.param);
-                   if (rem != null) break;
+      else
+       {
+         while (true)
+           {
+             if (rematch.backtrackStack.empty ())
+               {
+                 rem = null;
+                 break;
                }
+             BacktrackStack.Backtrack bt = rematch.backtrackStack.pop ();
+             rem = bt.token.backtrack (bt.input, bt.match, bt.param);
+             if (rem != null)
+               break;
            }
-           if (rem == null) return null;
-           if (rem.index == origin) rem.empty = true;
-           rematch = rem;
-           return (REMatch) rem.clone(); // MUST make a clone.
-       }
-
-       boolean noMore() {
-           return rematch.backtrackStack.empty();
-       }
-    }
-
-    REMatch findMatch(CharIndexed input, REMatch mymatch) {
-        if (tokenFixedLength >= 0) return findMatchFixedLength(input, mymatch);
-       BacktrackStack stack = new BacktrackStack();
-       stack.push(new StackedInfo(input, 0, mymatch, null, null));
-       return findMatch(stack);
-    }
-
-    REMatch backtrack(CharIndexed input, REMatch mymatch, Object param) {
-        if (tokenFixedLength >= 0) return backtrackFixedLength(input, mymatch, param);
-       return findMatch((BacktrackStack)param);
-    }
-
-    private static class StackedInfo extends BacktrackStack.Backtrack {
-        int numRepeats;
-       int[] visited;
-        DoablesFinder finder;
-        StackedInfo(CharIndexed input, int numRepeats, REMatch match,
-               int[] visited, DoablesFinder finder) {
-           super(null, input, match, null);
-            this.numRepeats = numRepeats;
-           this.visited = visited;
-            this.finder = finder;
        }
+      if (rem == null)
+       return null;
+      if (rem.index == origin)
+       rem.empty = true;
+      rematch = rem;
+      return (REMatch) rem.clone ();   // MUST make a clone.
     }
 
-    private static class FindMatchControlStack extends ArrayList {
-       private void push(FindMatchControl control) {
-           add(control);
-       }
-       private FindMatchControl pop() {
-           return (FindMatchControl)remove(size()-1);
-       }
-       private boolean empty() {
-           return isEmpty();
-       }
+    boolean noMore ()
+    {
+      return rematch.backtrackStack.empty ();
     }
-
-    private static class FindMatchControl {
-       DoablesFinder finder;
-       FindMatchControl(DoablesFinder finder) {
-           this.finder = finder;
-       }
+  }
+
+  REMatch findMatch (CharIndexed input, REMatch mymatch)
+  {
+    if (tokenFixedLength >= 0)
+      return findMatchFixedLength (input, mymatch);
+    BacktrackStack stack = new BacktrackStack ();
+    stack.push (new StackedInfo (input, 0, mymatch, null, null));
+    return findMatch (stack);
+  }
+
+  REMatch backtrack (CharIndexed input, REMatch mymatch, Object param)
+  {
+    if (tokenFixedLength >= 0)
+      return backtrackFixedLength (input, mymatch, param);
+    return findMatch ((BacktrackStack) param);
+  }
+
+  private static class StackedInfo extends BacktrackStack.Backtrack
+  {
+    int numRepeats;
+    int[] visited;
+    DoablesFinder finder;
+      StackedInfo (CharIndexed input, int numRepeats, REMatch match,
+                  int[]visited, DoablesFinder finder)
+    {
+      super (null, input, match, null);
+      this.numRepeats = numRepeats;
+      this.visited = visited;
+      this.finder = finder;
     }
-
-    private REMatch findMatch(BacktrackStack stack) {
-       return findMatch(stack, new FindMatchControlStack());
+  }
+
+  private static class FindMatchControl
+  {
+    DoablesFinder finder;
+      FindMatchControl (DoablesFinder finder)
+    {
+      this.finder = finder;
     }
-
-    private REMatch findMatch(BacktrackStack stack,
-               FindMatchControlStack controlStack) {
-       REMatch result = null;
-       StackedInfo si = null;
-       CharIndexed input = null;
-        int numRepeats = 0;
-        REMatch mymatch = null;
-       int[] visited = null;
-        DoablesFinder finder = null;
-
-        // Avoid using recursive calls because a match can be very long.
-
-       // This is the first entry point of this method.
-       // If you want to call this method recursively and you need the
-       // result returned, save necessary information in a FindMatchControl
-       // object and push it to controlStack, then continue from this point.
-       // You can check the result after exiting MAIN_LOOP.
-       MAIN_LOOP0:
-       while (true) {
+  }
+
+  private REMatch findMatch (BacktrackStack stack)
+  {
+    return findMatch (stack, new ArrayDeque < FindMatchControl > ());
+  }
+
+  private REMatch findMatch (BacktrackStack stack,
+                            Deque < FindMatchControl > controlStack)
+  {
+    REMatch result = null;
+    StackedInfo si = null;
+    CharIndexed input = null;
+    int numRepeats = 0;
+    REMatch mymatch = null;
+    int[] visited = null;
+    DoablesFinder finder = null;
+
+    // Avoid using recursive calls because a match can be very long.
+
+    // This is the first entry point of this method.
+    // If you want to call this method recursively and you need the
+    // result returned, save necessary information in a FindMatchControl
+    // object and push it to controlStack, then continue from this point.
+    // You can check the result after exiting MAIN_LOOP.
+  MAIN_LOOP0:
+    while (true)
+      {
 
        // This is the second entry point of this method.
        // If you want to call this method recursively but you do not need the
        // result returned, just continue from this point.
-       MAIN_LOOP:
-       while (true) {
-
-       if (stack.empty()) break MAIN_LOOP;
-       si = (StackedInfo)(stack.peek());
-       input = si.input;
-        numRepeats = si.numRepeats;
-        mymatch = si.match;
-       visited = si.visited;
-        finder = si.finder;
-
-       if (mymatch.backtrackStack == null)
-         mymatch.backtrackStack = new BacktrackStack();
-       
-       if (numRepeats >= max) {
-           stack.pop();
-           REMatch m1 = matchRest(input, mymatch);
-           if (m1 != null) {
-               if (! stack.empty()) {
-                   m1.backtrackStack.push(new BacktrackStack.Backtrack(
-                       this, input, mymatch, stack));
-               }
-               result = m1;
+      MAIN_LOOP:
+       while (true)
+         {
+
+           if (stack.empty ())
+             break MAIN_LOOP;
+           si = (StackedInfo) (stack.peek ());
+           input = si.input;
+           numRepeats = si.numRepeats;
+           mymatch = si.match;
+           visited = si.visited;
+           finder = si.finder;
+
+           if (mymatch.backtrackStack == null)
+             mymatch.backtrackStack = new BacktrackStack ();
+
+           if (numRepeats >= max)
+             {
+               stack.pop ();
+               REMatch m1 = matchRest (input, mymatch);
+               if (m1 != null)
+                 {
+                   if (!stack.empty ())
+                     {
+                       m1.backtrackStack.push (new BacktrackStack.
+                                               Backtrack (this, input,
+                                                          mymatch, stack));
+                     }
+                   result = m1;
+                   break MAIN_LOOP;
+                 }
+               if (stingy)
+                 {
+                   continue MAIN_LOOP;
+                 }
                break MAIN_LOOP;
-           }
-           if (stingy) {
-               continue MAIN_LOOP;
-           }
-           break MAIN_LOOP;
-       }
-
-        if (finder == null) {
-           finder = new DoablesFinder(token, input, mymatch);
-           si.finder = finder;
-       }
-
-        if (numRepeats < min) {
-           while (true) {
-               REMatch doable = finder.find();
-               if (doable == null) {
-                   if (stack.empty()) return null;
-                   stack.pop();
+             }
+
+           if (finder == null)
+             {
+               finder = new DoablesFinder (token, input, mymatch);
+               si.finder = finder;
+             }
+
+           if (numRepeats < min)
+             {
+               while (true)
+                 {
+                   REMatch doable = finder.find ();
+                   if (doable == null)
+                     {
+                       if (stack.empty ())
+                         return null;
+                       stack.pop ();
+                       continue MAIN_LOOP;
+                     }
+                   if (finder.noMore ())
+                     stack.pop ();
+                   int newNumRepeats = (doable.empty ? min : numRepeats + 1);
+                   stack.
+                     push (new
+                           StackedInfo (input, newNumRepeats, doable,
+                                        visited, null));
                    continue MAIN_LOOP;
-               }
-               if (finder.noMore()) stack.pop();
-               int newNumRepeats = (doable.empty ? min : numRepeats + 1);
-               stack.push(new StackedInfo(
-                   input, newNumRepeats, doable, visited, null));
-               continue MAIN_LOOP;
-           }
-       }
-
-       if (visited == null) visited = initVisited();
-
-       if (stingy) {
-           REMatch nextMatch = finder.find();
-           if (nextMatch != null && !nextMatch.empty) {
-               stack.push(new StackedInfo(
-                   input, numRepeats + 1, nextMatch, visited, null));
-           }
-           else {
-               stack.pop();
-           }   
-           REMatch m1 = matchRest(input, mymatch);
-           if (m1 != null) {
-               if (!stack.empty()) {
-                   m1.backtrackStack.push(new BacktrackStack.Backtrack(
-                       this, input, mymatch, stack));
-               }
+                 }
+             }
+
+           if (visited == null)
+             visited = initVisited ();
+
+           if (stingy)
+             {
+               REMatch nextMatch = finder.find ();
+               if (nextMatch != null && !nextMatch.empty)
+                 {
+                   stack.
+                     push (new
+                           StackedInfo (input, numRepeats + 1, nextMatch,
+                                        visited, null));
+                 }
+               else
+                 {
+                   stack.pop ();
+                 }
+               REMatch m1 = matchRest (input, mymatch);
+               if (m1 != null)
+                 {
+                   if (!stack.empty ())
+                     {
+                       m1.backtrackStack.push (new BacktrackStack.
+                                               Backtrack (this, input,
+                                                          mymatch, stack));
+                     }
+                   result = m1;
+                   break MAIN_LOOP;
+                 }
+               else
+                 {
+                   continue MAIN_LOOP;
+                 }
+             }
+
+           visited = addVisited (mymatch.index, visited);
+
+           TryAnotherResult taresult =
+             tryAnother (stack, input, mymatch, numRepeats, finder, visited);
+           visited = taresult.visited;
+           switch (taresult.status)
+             {
+             case TryAnotherResult.TRY_FURTHER:
+               controlStack.push (new FindMatchControl (finder));
+               continue MAIN_LOOP0;
+             case TryAnotherResult.RESULT_FOUND:
+               result = taresult.result;
+               break MAIN_LOOP;
+             }
+
+           if (!stack.empty ())
+             {
+               stack.pop ();
+             }
+           if (possessive)
+             {
+               stack.clear ();
+             }
+           REMatch m1 = matchRest (input, mymatch);
+           if (m1 != null)
+             {
+               if (!stack.empty ())
+                 {
+                   m1.backtrackStack.push (new BacktrackStack.
+                                           Backtrack (this, input, mymatch,
+                                                      stack));
+                 }
                result = m1;
                break MAIN_LOOP;
-           }
-           else {
-               continue MAIN_LOOP;
-           }
-       }
-
-       visited = addVisited(mymatch.index, visited);
-
-       TryAnotherResult taresult = tryAnother(stack, input, mymatch, numRepeats, finder, visited);
-       visited = taresult.visited;
-       switch (taresult.status) {
-           case TryAnotherResult.TRY_FURTHER:
-               controlStack.push(new FindMatchControl(
-                   finder));
-               continue MAIN_LOOP0;
-           case TryAnotherResult.RESULT_FOUND:
-               result = taresult.result;
-               break MAIN_LOOP;
-       }
-
-       if (!stack.empty()) {
-           stack.pop();
-        }
-       if (possessive) {
-           stack.clear();
-       }
-       REMatch m1 = matchRest(input, mymatch);
-       if (m1 != null) {
-           if (! stack.empty()) {
-               m1.backtrackStack.push(new BacktrackStack.Backtrack(
-                   this, input, mymatch, stack));
-           }
-           result = m1;
-           break MAIN_LOOP;
-       }
+             }
 
-       } // MAIN_LOOP
+         }                     // MAIN_LOOP
 
-       if (controlStack.empty()) return result;
-       FindMatchControl control = controlStack.pop();
-       if (possessive) {
+       if (controlStack.isEmpty ())
+         return result;
+       FindMatchControl control = controlStack.pop ();
+       if (possessive)
+         {
            return result;
-       }
-       if (result != null) {
-           result.backtrackStack.push(new BacktrackStack.Backtrack(
-                this, input, mymatch, stack));
+         }
+       if (result != null)
+         {
+           result.backtrackStack.push (new BacktrackStack.
+                                       Backtrack (this, input, mymatch,
+                                                  stack));
            return result;
-       }
+         }
 
        finder = control.finder;
 
-       TryAnotherResult taresult = tryAnother(stack, input, mymatch, numRepeats, finder, visited);
+       TryAnotherResult taresult =
+         tryAnother (stack, input, mymatch, numRepeats, finder, visited);
        visited = taresult.visited;
-       switch (taresult.status) {
-           case TryAnotherResult.TRY_FURTHER:
-               controlStack.push(new FindMatchControl(
-                   finder));
-               continue MAIN_LOOP0;
-           case TryAnotherResult.RESULT_FOUND:
-               return taresult.result;
-       }
+       switch (taresult.status)
+         {
+         case TryAnotherResult.TRY_FURTHER:
+           controlStack.push (new FindMatchControl (finder));
+           continue MAIN_LOOP0;
+         case TryAnotherResult.RESULT_FOUND:
+           return taresult.result;
+         }
        continue MAIN_LOOP0;
 
-       } // MAIN_LOOP0
-    }
+      }                                // MAIN_LOOP0
+  }
 
-    private static class TryAnotherResult {
-       REMatch result;
-        int status;
-        static final int RESULT_FOUND = 1;
-       static final int TRY_FURTHER = 2;
-       static final int NOTHING_FOUND = 3; 
-       int[] visited;
-    }
+  private static class TryAnotherResult
+  {
+    REMatch result;
+    int status;
+    static final int RESULT_FOUND = 1;
+    static final int TRY_FURTHER = 2;
+    static final int NOTHING_FOUND = 3;
+    int[] visited;
+  }
 
-    private TryAnotherResult tryAnother(BacktrackStack stack,
-               CharIndexed input, REMatch mymatch, int numRepeats,
-               DoablesFinder finder, int[] visited) {
+  private TryAnotherResult tryAnother (BacktrackStack stack,
+                                      CharIndexed input, REMatch mymatch,
+                                      int numRepeats, DoablesFinder finder,
+                                      int[]visited)
+  {
 
-       TryAnotherResult taresult = new TryAnotherResult();
-       taresult.visited = visited;
+    TryAnotherResult taresult = new TryAnotherResult ();
+    taresult.visited = visited;
 
-       DO_THIS:
-       {
+  DO_THIS:
+    {
 
-           boolean emptyMatchFound = false;
+      boolean emptyMatchFound = false;
 
-           DO_ONE_DOABLE:
-           while (true) {
+    DO_ONE_DOABLE:
+      while (true)
+       {
 
-           REMatch doable = finder.find();
-           if (doable == null) {
-               break DO_THIS;
+         REMatch doable = finder.find ();
+         if (doable == null)
+           {
+             break DO_THIS;
            }
-           if (doable.empty) emptyMatchFound = true;
-
-           if (!emptyMatchFound) {
-               int n = doable.index;
-               if (visitedContains(n, visited)) {
-                   continue DO_ONE_DOABLE;
+         if (doable.empty)
+           emptyMatchFound = true;
+
+         if (!emptyMatchFound)
+           {
+             int n = doable.index;
+             if (visitedContains (n, visited))
+               {
+                 continue DO_ONE_DOABLE;
                }
-               visited = addVisited(n, visited);
-               stack.push(new StackedInfo(
-                   input, numRepeats + 1, doable, visited, null));
-               taresult.visited = visited;
-               taresult.status = TryAnotherResult.TRY_FURTHER;
-               return taresult;
+             visited = addVisited (n, visited);
+             stack.
+               push (new
+                     StackedInfo (input, numRepeats + 1, doable, visited,
+                                  null));
+             taresult.visited = visited;
+             taresult.status = TryAnotherResult.TRY_FURTHER;
+             return taresult;
            }
-           else {
-               REMatch m1 = matchRest(input, doable);
-               if (possessive) {
-                   taresult.result = m1;
-                   taresult.status = TryAnotherResult.RESULT_FOUND;
-                   return taresult;
+         else
+           {
+             REMatch m1 = matchRest (input, doable);
+             if (possessive)
+               {
+                 taresult.result = m1;
+                 taresult.status = TryAnotherResult.RESULT_FOUND;
+                 return taresult;
                }
-               if (m1 != null) {
-                   if (! stack.empty()) {
-                       m1.backtrackStack.push(new BacktrackStack.Backtrack(
-                            this, input, mymatch, stack));
+             if (m1 != null)
+               {
+                 if (!stack.empty ())
+                   {
+                     m1.backtrackStack.push (new BacktrackStack.
+                                             Backtrack (this, input, mymatch,
+                                                        stack));
                    }
-                   taresult.result = m1;
-                   taresult.status = TryAnotherResult.RESULT_FOUND;
-                   return taresult;
+                 taresult.result = m1;
+                 taresult.status = TryAnotherResult.RESULT_FOUND;
+                 return taresult;
                }
            }
 
-           } // DO_ONE_DOABLE
-
-       } // DO_THIS
-
-       taresult.status = TryAnotherResult.NOTHING_FOUND;
-       return taresult;
-
-    }
-
-    boolean match(CharIndexed input, REMatch mymatch) {
-       setHitEnd(input, mymatch);
-       REMatch m1 = findMatch(input, mymatch);
-       if (m1 != null) {
-           mymatch.assignFrom(m1);
-           return true;
-       }
-       return false;
-    }    
-
-    // Array visited is an array of character positions we have already
-    // visited. visited[0] is used to store the effective length of the
-    // array.
-    private static int[] initVisited() {
-       int[] visited = new int[32];
-       visited[0] = 0;
-       return visited;
-    }
-
-    private static boolean visitedContains(int n, int[] visited) {
-       // Experience tells that for a small array like this,
-       // simple linear search is faster than binary search.
-       for (int i = 1; i < visited[0]; i++) {
-           if (n == visited[i]) return true;
-       }
-       return false;
-    }
-
-    private static int[] addVisited(int n, int[] visited) {
-       if (visitedContains(n, visited)) return visited;
-       if (visited[0] >= visited.length - 1) {
-           int[] newvisited = new int[visited.length + 32];
-           System.arraycopy(visited, 0, newvisited, 0, visited.length);
-           visited = newvisited;
-       }
-       visited[0]++;
-       visited[visited[0]] = n;
-       return visited;
-    }
-
-    private REMatch matchRest(CharIndexed input, final REMatch newMatch) {
-       if (next(input, newMatch)) {
-           return newMatch;
-       }
-       return null;
-    }
-
-    private REMatch findMatchFixedLength(CharIndexed input, REMatch mymatch) {
-       if (mymatch.backtrackStack == null)
-         mymatch.backtrackStack = new BacktrackStack();
-        int numRepeats = token.findFixedLengthMatches(input, (REMatch)mymatch.clone(), max);
-       if (numRepeats == Integer.MAX_VALUE) numRepeats = min;
-       int count = numRepeats - min + 1;
-        if (count <= 0) return null;
-       int index = 0;
-       if (!stingy) index = mymatch.index + (tokenFixedLength * numRepeats);
-       else index = mymatch.index + (tokenFixedLength * min);
-       return findMatchFixedLength(input, mymatch, index, count);
-    }
-
-    private REMatch backtrackFixedLength(CharIndexed input, REMatch mymatch,
-           Object param) {
-       int[] params = (int[])param;
-        int index = params[0];
-       int count = params[1];
-       return findMatchFixedLength(input, mymatch, index, count);
-    }        
-
-    private REMatch findMatchFixedLength(CharIndexed input, REMatch mymatch,
-                   int index, int count) {
-        REMatch tryMatch = (REMatch) mymatch.clone();
-       while (true) {
-           tryMatch.index = index;
-           REMatch m = matchRest(input, tryMatch);
-           count--;
-           if (stingy) index += tokenFixedLength;
-           else index -= tokenFixedLength;
-           if (possessive) return m;
-           if (m != null) {
-               if (count > 0) {
-                   m.backtrackStack.push(new BacktrackStack.Backtrack(
-                       this, input, mymatch,
-                       new int[] {index, count}));
-               }
-               return m;
-           }
-           if (count <= 0) return null;
-       }
-    }              
-
-    void dump(StringBuffer os) {
-       os.append("(?:");
-       token.dumpAll(os);
-       os.append(')');
-       if ((max == Integer.MAX_VALUE) && (min <= 1))
-           os.append( (min == 0) ? '*' : '+' );
-       else if ((min == 0) && (max == 1))
-           os.append('?');
-       else {
-           os.append('{').append(min);
-           if (max > min) {
-               os.append(',');
-               if (max != Integer.MAX_VALUE) os.append(max);
-           }
-           os.append('}');
-       }
-       if (stingy) os.append('?');
-    }
+       }                       // DO_ONE_DOABLE
+
+    }                          // DO_THIS
+
+    taresult.status = TryAnotherResult.NOTHING_FOUND;
+    return taresult;
+
+  }
+
+  boolean match (CharIndexed input, REMatch mymatch)
+  {
+    setHitEnd (input, mymatch);
+    REMatch m1 = findMatch (input, mymatch);
+    if (m1 != null)
+      {
+       mymatch.assignFrom (m1);
+       return true;
+      }
+    return false;
+  }
+
+  // Array visited is an array of character positions we have already
+  // visited. visited[0] is used to store the effective length of the
+  // array.
+  private static int[] initVisited ()
+  {
+    int[] visited = new int[32];
+    visited[0] = 0;
+    return visited;
+  }
+
+  private static boolean visitedContains (int n, int[]visited)
+  {
+    // Experience tells that for a small array like this,
+    // simple linear search is faster than binary search.
+    for (int i = 1; i < visited[0]; i++)
+      {
+       if (n == visited[i])
+         return true;
+      }
+    return false;
+  }
+
+  private static int[] addVisited (int n, int[]visited)
+  {
+    if (visitedContains (n, visited))
+      return visited;
+    if (visited[0] >= visited.length - 1)
+      {
+       int[] newvisited = new int[visited.length + 32];
+       System.arraycopy (visited, 0, newvisited, 0, visited.length);
+       visited = newvisited;
+      }
+    visited[0]++;
+    visited[visited[0]] = n;
+    return visited;
+  }
+
+  private REMatch matchRest (CharIndexed input, final REMatch newMatch)
+  {
+    if (next (input, newMatch))
+      {
+       return newMatch;
+      }
+    return null;
+  }
+
+  private REMatch findMatchFixedLength (CharIndexed input, REMatch mymatch)
+  {
+    if (mymatch.backtrackStack == null)
+      mymatch.backtrackStack = new BacktrackStack ();
+    int numRepeats =
+      token.findFixedLengthMatches (input, (REMatch) mymatch.clone (), max);
+    if (numRepeats == Integer.MAX_VALUE)
+      numRepeats = min;
+    int count = numRepeats - min + 1;
+    if (count <= 0)
+      return null;
+    int index = 0;
+    if (!stingy)
+      index = mymatch.index + (tokenFixedLength * numRepeats);
+    else
+      index = mymatch.index + (tokenFixedLength * min);
+    return findMatchFixedLength (input, mymatch, index, count);
+  }
+
+  private REMatch backtrackFixedLength (CharIndexed input, REMatch mymatch,
+                                       Object param)
+  {
+    int[] params = (int[]) param;
+    int index = params[0];
+    int count = params[1];
+    return findMatchFixedLength (input, mymatch, index, count);
+  }
+
+  private REMatch findMatchFixedLength (CharIndexed input, REMatch mymatch,
+                                       int index, int count)
+  {
+    REMatch tryMatch = (REMatch) mymatch.clone ();
+    while (true)
+      {
+       tryMatch.index = index;
+       REMatch m = matchRest (input, tryMatch);
+       count--;
+       if (stingy)
+         index += tokenFixedLength;
+       else
+         index -= tokenFixedLength;
+       if (possessive)
+         return m;
+       if (m != null)
+         {
+           if (count > 0)
+             {
+               m.backtrackStack.push (new BacktrackStack.
+                                      Backtrack (this, input, mymatch,
+                                                 new int[]
+                                                 {
+                                                 index, count}));
+             }
+           return m;
+         }
+       if (count <= 0)
+         return null;
+      }
+  }
+
+  void dump (CPStringBuilder os)
+  {
+    os.append ("(?:");
+    token.dumpAll (os);
+    os.append (')');
+    if ((max == Integer.MAX_VALUE) && (min <= 1))
+      os.append ((min == 0) ? '*' : '+');
+    else if ((min == 0) && (max == 1))
+      os.append ('?');
+    else
+      {
+       os.append ('{').append (min);
+       if (max > min)
+         {
+           os.append (',');
+           if (max != Integer.MAX_VALUE)
+             os.append (max);
+         }
+       os.append ('}');
+      }
+    if (stingy)
+      os.append ('?');
+  }
 }
index aa5f0c91401adf1406874d6f2bc680b31faedfbb..6a8d247c9d01f40b17912eacf58f655185726baa 100644 (file)
@@ -37,85 +37,117 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
-class RETokenStart extends REToken {
-    private String newline; // matches after a newline
-    private boolean check_java_line_terminators;
-    
-    RETokenStart(int subIndex, String newline) {
-       super(subIndex);
-       this.newline = newline;
-       this.check_java_line_terminators = false;
-    }
-
-    RETokenStart(int subIndex, String newline, boolean b) {
-       super(subIndex);
-        this.newline = newline;
-        this.check_java_line_terminators = b;
-    }
-
-    int getMaximumLength() {
-        return 0;
-    }
-    
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-       // charAt(index-n) may be unknown on a Reader/InputStream. FIXME
-       // Match after a newline if in multiline mode
-       
-       if (check_java_line_terminators) {
-           char ch = input.charAt(mymatch.index - 1);
-           if (ch != CharIndexed.OUT_OF_BOUNDS) {
-               if (ch == '\n') return mymatch;
-               if (ch == '\r') {
-                   char ch1 = input.charAt(mymatch.index);
-                   if (ch1 != '\n') return mymatch;
-                   return null;
-               }
-               if (ch == '\u0085') return mymatch; // A next-line character
-               if (ch == '\u2028') return mymatch; // A line-separator character
-               if (ch == '\u2029') return mymatch; // A paragraph-separator character
-           }
-       }
-
-       if (newline != null) {
-           int len = newline.length();
-           if (mymatch.offset >= len) {
-               boolean found = true;
-               char z;
-               int i = 0; // position in REToken.newline
-               char ch = input.charAt(mymatch.index - len);
-               do {
-                   z = newline.charAt(i);
-                   if (ch != z) {
-                       found = false;
-                       break;
-                   }
-                   ++i;
-                   ch = input.charAt(mymatch.index - len + i);
-               } while (i < len);
-           
-               if (found) return mymatch;
-           }
-       }
-       
-       // Don't match at all if REG_NOTBOL is set.
-       if ((mymatch.eflags & RE.REG_NOTBOL) > 0) return null;
-       
-       if ((mymatch.eflags & RE.REG_ANCHORINDEX) > 0)
-           return (mymatch.anchor == mymatch.offset) ? 
-               mymatch : null;
-       else
-           return ((mymatch.index == 0) && (mymatch.offset == 0)) ?
-               mymatch : null;
-    }
-
-    boolean returnsFixedLengthmatches() { return true; }
-
-    int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
-        if (matchThis(input, mymatch) != null) return max;
-       else return 0;
-    }
-    
-    void dump(StringBuffer os) {
-       os.append('^');
-    }
+import gnu.java.lang.CPStringBuilder;
+
+class RETokenStart extends REToken
+{
+  private String newline;      // matches after a newline
+  private boolean check_java_line_terminators;
+
+  RETokenStart (int subIndex, String newline)
+  {
+    super (subIndex);
+    this.newline = newline;
+    this.check_java_line_terminators = false;
+  }
+
+  RETokenStart (int subIndex, String newline, boolean b)
+  {
+    super (subIndex);
+    this.newline = newline;
+    this.check_java_line_terminators = b;
+  }
+
+  @Override 
+    int getMaximumLength ()
+  {
+    return 0;
+  }
+
+  @Override 
+    REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    // charAt(index-n) may be unknown on a Reader/InputStream. FIXME
+    // Match after a newline if in multiline mode
+
+    if (check_java_line_terminators)
+      {
+       char ch = input.charAt (mymatch.index - 1);
+       if (ch != CharIndexed.OUT_OF_BOUNDS)
+         {
+           if (ch == '\n')
+             return mymatch;
+           if (ch == '\r')
+             {
+               char ch1 = input.charAt (mymatch.index);
+               if (ch1 != '\n')
+                 return mymatch;
+               return null;
+             }
+           if (ch == '\u0085')
+             return mymatch;   // A next-line character
+           if (ch == '\u2028')
+             return mymatch;   // A line-separator character
+           if (ch == '\u2029')
+             return mymatch;   // A paragraph-separator character
+         }
+      }
+
+    if (newline != null)
+      {
+       int len = newline.length ();
+       if (mymatch.offset >= len)
+         {
+           boolean found = true;
+           char z;
+           int i = 0;          // position in REToken.newline
+           char ch = input.charAt (mymatch.index - len);
+           do
+             {
+               z = newline.charAt (i);
+               if (ch != z)
+                 {
+                   found = false;
+                   break;
+                 }
+               ++i;
+               ch = input.charAt (mymatch.index - len + i);
+             }
+           while (i < len);
+
+           if (found)
+             return mymatch;
+         }
+      }
+
+    // Don't match at all if REG_NOTBOL is set.
+    if ((mymatch.eflags & RE.REG_NOTBOL) > 0)
+      return null;
+
+    if ((mymatch.eflags & RE.REG_ANCHORINDEX) > 0)
+      return (mymatch.anchor == mymatch.offset) ? mymatch : null;
+    else
+      return ((mymatch.index == 0) && (mymatch.offset == 0)) ? mymatch : null;
+  }
+
+  @Override 
+    boolean returnsFixedLengthMatches ()
+  {
+    return true;
+  }
+
+  @Override
+    int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+  {
+    if (matchThis (input, mymatch) != null)
+      return max;
+    else
+      return 0;
+  }
+
+  @Override
+    void dump (CPStringBuilder os)
+  {
+    os.append ('^');
+  }
 }
index 538c6bef40cf5f9972b4c91adfd94be6b5678090..9f758b6358884426619884ce1690cf877a4f3c67 100644 (file)
@@ -38,79 +38,104 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * Represents a combination lookahead/lookbehind for POSIX [:alnum:].
  */
-final class RETokenWordBoundary extends REToken {
-    private boolean negated;
-    private int where;
-    static final int BEGIN = 1;
-    static final int END = 2;
-
-    RETokenWordBoundary(int subIndex, int where, boolean negated) {
-       super(subIndex);
-       this.where = where;
-       this.negated = negated;
-    }
-
-    int getMaximumLength() {
-        return 0;
-    }
-
-    
-    REMatch matchThis(CharIndexed input, REMatch mymatch) {
-       // Word boundary means input[index-1] was a word character
-       // and input[index] is not, or input[index] is a word character
-       // and input[index-1] was not
-       //  In the string "one two three", these positions match:
-       //  |o|n|e| |t|w|o| |t|h|r|e|e|
-       //  ^     ^ ^     ^ ^         ^
-       boolean after = false;  // is current character a letter or digit?
-       boolean before = false; // is previous character a letter or digit?
-       char ch;
-
-       // TODO: Also check REG_ANCHORINDEX vs. anchor
-       if (((mymatch.eflags & RE.REG_ANCHORINDEX) != RE.REG_ANCHORINDEX) 
-           || (mymatch.offset + mymatch.index > mymatch.anchor)) {
-           if ((ch = input.charAt(mymatch.index - 1)) != CharIndexed.OUT_OF_BOUNDS) {
-               before = Character.isLetterOrDigit(ch) || (ch == '_');
-           }
-       }
-
-       if ((ch = input.charAt(mymatch.index)) != CharIndexed.OUT_OF_BOUNDS) {
-           after = Character.isLetterOrDigit(ch) || (ch == '_');
-       }
-
-       // if (before) and (!after), we're at end (\>)
-       // if (after) and (!before), we're at beginning (\<)
-       boolean doNext = false;
-
-       if ((where & BEGIN) == BEGIN) {
-           doNext = after && !before;
-       }
-       if ((where & END) == END) {
-           doNext ^= before && !after;
-       }
-
-       if (negated) doNext = !doNext;
-
-       return (doNext ? mymatch : null);
-    }
-
-    boolean returnsFixedLengthMatches() { return true; }
-
-    int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
-        if(matchThis(input, mymatch) != null) return max;
-       else return 0;
-    }
-    
-    void dump(StringBuffer os) {
-       if (where == (BEGIN | END)) {
-           os.append( negated ? "\\B" : "\\b" );
-       } else if (where == BEGIN) {
-           os.append("\\<");
-       } else {
-           os.append("\\>");
-       }
-    }
+final class RETokenWordBoundary extends REToken
+{
+  private boolean negated;
+  private int where;
+  static final int BEGIN = 1;
+  static final int END = 2;
+
+    RETokenWordBoundary (int subIndex, int where, boolean negated)
+  {
+    super (subIndex);
+    this.where = where;
+    this.negated = negated;
+  }
+
+  int getMaximumLength ()
+  {
+    return 0;
+  }
+
+
+  REMatch matchThis (CharIndexed input, REMatch mymatch)
+  {
+    // Word boundary means input[index-1] was a word character
+    // and input[index] is not, or input[index] is a word character
+    // and input[index-1] was not
+    //  In the string "one two three", these positions match:
+    //  |o|n|e| |t|w|o| |t|h|r|e|e|
+    //  ^     ^ ^     ^ ^         ^
+    boolean after = false;     // is current character a letter or digit?
+    boolean before = false;    // is previous character a letter or digit?
+    char ch;
+
+    // TODO: Also check REG_ANCHORINDEX vs. anchor
+    if (((mymatch.eflags & RE.REG_ANCHORINDEX) != RE.REG_ANCHORINDEX)
+       || (mymatch.offset + mymatch.index > mymatch.anchor))
+      {
+       if ((ch =
+            input.charAt (mymatch.index - 1)) != CharIndexed.OUT_OF_BOUNDS)
+         {
+           before = Character.isLetterOrDigit (ch) || (ch == '_');
+         }
+      }
+
+    if ((ch = input.charAt (mymatch.index)) != CharIndexed.OUT_OF_BOUNDS)
+      {
+       after = Character.isLetterOrDigit (ch) || (ch == '_');
+      }
+
+    // if (before) and (!after), we're at end (\>)
+    // if (after) and (!before), we're at beginning (\<)
+    boolean doNext = false;
+
+    if ((where & BEGIN) == BEGIN)
+      {
+       doNext = after && !before;
+      }
+    if ((where & END) == END)
+      {
+       doNext ^= before && !after;
+      }
+
+    if (negated)
+      doNext = !doNext;
+
+    return (doNext ? mymatch : null);
+  }
+
+  boolean returnsFixedLengthMatches ()
+  {
+    return true;
+  }
+
+  int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+  {
+    if (matchThis (input, mymatch) != null)
+      return max;
+    else
+      return 0;
+  }
+
+  void dump (CPStringBuilder os)
+  {
+    if (where == (BEGIN | END))
+      {
+       os.append (negated ? "\\B" : "\\b");
+      }
+    else if (where == BEGIN)
+      {
+       os.append ("\\<");
+      }
+    else
+      {
+       os.append ("\\>");
+      }
+  }
 }
index 73a67c65736cb688b749c3f0964dc541bbf7eedd..5f8c749023262799e5f9347da31ce63cd85f026f 100644 (file)
@@ -55,7 +55,8 @@ package gnu.java.util.regex;
  * @since gnu.regexp 1.1.4
  */
 
-public final class UncheckedRE extends RE {
+public final class UncheckedRE extends RE
+{
   /**
    * Constructs a regular expression pattern buffer without any compilation
    * flags set, and using the default syntax (RESyntax.RE_SYNTAX_PERL5).
@@ -66,8 +67,9 @@ public final class UncheckedRE extends RE {
    * @exception RuntimeException The input pattern could not be parsed.
    * @exception NullPointerException The pattern was null.
    */
-  public UncheckedRE(Object pattern) {
-      this(pattern,0,RESyntax.RE_SYNTAX_PERL5);
+  public UncheckedRE (Object pattern)
+  {
+    this (pattern, 0, RESyntax.RE_SYNTAX_PERL5);
   }
 
   /**
@@ -81,8 +83,9 @@ public final class UncheckedRE extends RE {
    * @exception RuntimeException The input pattern could not be parsed.
    * @exception NullPointerException The pattern was null.
    */
-  public UncheckedRE(Object pattern, int cflags) {
-      this(pattern,cflags,RESyntax.RE_SYNTAX_PERL5);
+  public UncheckedRE (Object pattern, int cflags)
+  {
+    this (pattern, cflags, RESyntax.RE_SYNTAX_PERL5);
   }
 
   /**
@@ -97,13 +100,15 @@ public final class UncheckedRE extends RE {
    * @exception RuntimeException The input pattern could not be parsed.
    * @exception NullPointerException The pattern was null.
    */
-  public UncheckedRE(Object pattern, int cflags, RESyntax syntax) {
-      try {
-         initialize(pattern,cflags,syntax,0,0);
-      } catch (REException e) { 
-         throw new RuntimeException(e.getMessage());
-      }
+  public UncheckedRE (Object pattern, int cflags, RESyntax syntax)
+  {
+    try
+    {
+      initialize (pattern, cflags, syntax, 0, 0);
+    } 
+    catch (REException e)
+    {
+      throw new RuntimeException (e.getMessage ());
+    }
   }
 }
-
-
diff --git a/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java b/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java
new file mode 100644 (file)
index 0000000..829f40c
--- /dev/null
@@ -0,0 +1,138 @@
+/* ImageViewer.java -- Simple image display component.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.activation.viewers;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Image;
+import java.awt.Graphics;
+import java.awt.MediaTracker;
+import java.awt.Toolkit;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
+
+import javax.activation.CommandObject;
+import javax.activation.DataHandler;
+
+/**
+ * Simple image display component.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.0.2
+ */
+public class ImageViewer extends Component
+  implements CommandObject
+{
+
+  private Image image;
+
+  /**
+   * Returns the preferred size for this component (the image size).
+   */
+  public Dimension getPreferredSize()
+    {
+      Dimension ps = new Dimension(0, 0);
+      if (image != null)
+        {
+          ps.width = image.getWidth(this);
+          ps.height = image.getHeight(this);
+        }
+      return ps;
+    }
+
+  public void setCommandContext(String verb, DataHandler dh)
+    throws IOException
+  {
+    // Read image into a byte array
+    InputStream in = dh.getInputStream();
+    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+    byte[] buf = new byte[4096];
+    for (int len = in.read(buf); len != -1; len = in.read(buf))
+      bytes.write(buf, 0, len);
+    in.close();
+    // Create and prepare the image
+    Toolkit toolkit = getToolkit();
+    Image img = toolkit.createImage(bytes.toByteArray());
+    try
+      {
+        MediaTracker tracker = new MediaTracker(this);
+        tracker.addImage(img, 0);
+        tracker.waitForID(0);
+      }
+    catch (InterruptedException e)
+      {
+      }
+    toolkit.prepareImage(img, -1, -1, this);
+  }
+
+  /**
+   * Image bits arrive.
+   */
+  public boolean imageUpdate(Image image, int flags, int x, int y,
+                             int width, int height)
+  {
+    if ((flags & ALLBITS) != 0)
+      {
+        this.image = image;
+        invalidate();
+        repaint();
+        return false;
+      }
+    return ((flags & ERROR) == 0);
+  }
+
+  /**
+   * Scale the image into this component's bounds.
+   */
+  public void paint(Graphics g)
+  {
+    if (image != null)
+      {
+        Dimension is = new Dimension(image.getWidth(this),
+                                     image.getHeight(this));
+        if (is.width > -1 && is.height > -1)
+          {
+            Dimension cs = getSize();
+            g.drawImage(image, 0, 0, cs.width, cs.height, 
+                        0, 0, is.width, is.height, this);
+          }
+      }
+  }
+
+}
diff --git a/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java b/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java
new file mode 100644 (file)
index 0000000..1995ae1
--- /dev/null
@@ -0,0 +1,119 @@
+/* TextEditor.java -- Simple text editor component.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.activation.viewers;
+
+import java.awt.Dimension;
+import java.awt.TextArea;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import javax.activation.CommandObject;
+import javax.activation.DataHandler;
+
+/**
+ * Simple text editor component.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.0.2
+ */
+public class TextEditor extends TextArea
+    implements CommandObject, ActionListener
+{
+
+    private transient DataHandler dh;
+
+    public TextEditor()
+    {
+        super("", 24, 80, 1);
+    }
+
+    public Dimension getPreferredSize()
+    {
+        return getMinimumSize(24, 80);
+    }
+
+    public void setCommandContext(String verb, DataHandler dh)
+        throws IOException
+    {
+        this.dh = dh;
+        InputStream in = dh.getInputStream();
+        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+        byte[] buf = new byte[4096];
+        for (int len = in.read(buf); len != -1; len = in.read(buf))
+            bytes.write(buf, 0, len);
+        in.close();
+        setText(bytes.toString());
+    }
+
+    public void actionPerformed(ActionEvent event)
+    {
+        if ("save".equals(event.getActionCommand()) && dh != null)
+        {
+            OutputStream out = null;
+            try
+            {
+                out = dh.getOutputStream();
+                if (out != null)
+                    out.write(getText().getBytes());
+            }
+            catch (IOException e)
+            {
+                e.printStackTrace(System.err);
+            }
+            finally
+            {
+                if (out != null)
+                {
+                    try
+                    {
+                        
+                        out.close();
+                    }
+                    catch (IOException e)
+                    {
+                        e.printStackTrace(System.err);
+                    }
+                }
+            }
+        }
+    }
+    
+}
diff --git a/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java b/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java
new file mode 100644 (file)
index 0000000..2b4aa90
--- /dev/null
@@ -0,0 +1,81 @@
+/* TextViewer.java -- Simple text viewer component.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.activation.viewers;
+
+import java.awt.Dimension;
+import java.awt.TextArea;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import javax.activation.CommandObject;
+import javax.activation.DataHandler;
+
+/**
+ * Simple text display component.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.0.2
+ */
+public class TextViewer extends TextArea
+    implements CommandObject
+{
+
+    public TextViewer()
+    {
+        super("", 24, 80, 1);
+        setEditable(false);
+    }
+
+    public Dimension getPreferredSize()
+    {
+        return getMinimumSize(24, 80);
+    }
+
+    public void setCommandContext(String verb, DataHandler dh)
+        throws IOException
+    {
+        InputStream in = dh.getInputStream();
+        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+        byte[] buf = new byte[4096];
+        for (int len = in.read(buf); len != -1; len = in.read(buf))
+            bytes.write(buf, 0, len);
+        in.close();
+        setText(bytes.toString());
+    }
+    
+}
index 2c972f858d30444756a3934c414f616b7b5e90cf..4e93322efb946737445b8f4635d6ae9f8d2f2b8f 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.assembly;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.PrintStream;
 import java.io.PrintWriter;
 
@@ -129,7 +131,7 @@ public class TransformerException
    */
   public String toString()
   {
-    StringBuffer sb = new StringBuffer(this.getClass().getName())
+    CPStringBuilder sb = new CPStringBuilder(this.getClass().getName())
         .append(": ").append(super.toString());
     if (_exception != null)
       sb.append("; caused by: ").append(_exception.toString());
index a5bbe698769d2fb5577cd4c660a5c4d5236b7708..bae142a638db44ed40d9650078ea3d107825bf58 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.cipher;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Configuration;
 
 import java.security.InvalidKeyException;
@@ -88,7 +90,7 @@ public abstract class BaseCipher
 
   public String name()
   {
-    StringBuffer sb = new StringBuffer(name).append('-');
+    CPStringBuilder sb = new CPStringBuilder(name).append('-');
     if (currentKey == null)
       sb.append(String.valueOf(8 * defaultBlockSize));
     else
index 0357c163d41221086af009803956c49366e5228b..a917e2230880f969e1b3b8516b147cb0968c6e9e 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.javax.crypto.jce.sig;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Registry;
 import gnu.java.security.der.DER;
 import gnu.java.security.der.DERReader;
@@ -195,7 +197,7 @@ public class DHParameters
 
   protected String engineToString()
   {
-    StringBuffer sb = new StringBuffer("p=");
+    CPStringBuilder sb = new CPStringBuilder("p=");
     if (p == null)
       sb.append("???");
     else
index f0fb1bb83f94fda3b1c98225c8b438c9966629df..405f011adde6ccf02f6402d9699d569e523dcdbf 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.key;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.PrintStream;
 import java.io.PrintWriter;
 import java.io.Serializable;
@@ -157,7 +159,7 @@ public class KeyAgreementException
    */
   public String toString()
   {
-    StringBuffer sb = new StringBuffer(this.getClass().getName()).append(": ")
+    CPStringBuilder sb = new CPStringBuilder(this.getClass().getName()).append(": ")
         .append(super.toString());
     if (cause != null)
       sb.append("; caused by: ").append(cause.toString());
index 6d9418ccafa4c4c60fd24c9be84550663c8bcd49..02e43229044f492d9512490361aedb1d1e821841 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.mode;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.javax.crypto.cipher.IBlockCipher;
 
 import java.security.InvalidKeyException;
@@ -110,7 +112,7 @@ public abstract class BaseMode
 
   public String name()
   {
-    return new StringBuffer(name).append('(').append(cipher.name()).append(')')
+    return new CPStringBuilder(name).append('(').append(cipher.name()).append(')')
         .toString();
   }
 
index 8b475d2d8cbbbb0294f988383598ed0c4dd516a6..adc2c9bbc027d499600622648b38722dbf0ce971 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.pad;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Configuration;
 
 import java.util.Map;
@@ -67,7 +69,7 @@ public abstract class BasePad
 
   public String name()
   {
-    final StringBuffer sb = new StringBuffer(name);
+    final CPStringBuilder sb = new CPStringBuilder(name);
     if (blockSize != -1)
       sb.append('-').append(String.valueOf(8 * blockSize));
     return sb.toString();
index 2145512215a93360f4f719d35a44970a1cb3763c..a6a06b6b849d7a940893f8acfa0e9ef6cc1bd156 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.sasl.crammd5;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Registry;
 import gnu.java.security.util.Util;
 import gnu.javax.crypto.mac.HMacFactory;
@@ -83,7 +85,7 @@ class CramMD5Util
     final byte[] result;
     try
       {
-        result = new StringBuffer("<")
+        result = new CPStringBuilder("<")
             .append(encoded.substring(0,encoded.length()))
             .append(".").append(String.valueOf(System.currentTimeMillis()))
             .append("@").append(hostname).append(">")
index df952111660ff0b684eb20f3590c5afc72bd1eef..4900842a7371f24cc7c5f12e3f799046bbd42fdf 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.sasl.crammd5;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.javax.crypto.sasl.NoSuchUserException;
 import gnu.javax.crypto.sasl.UserAlreadyExistsException;
 
@@ -201,13 +203,13 @@ public class PasswordFile
             pw = new PrintWriter(fos);
             String key;
             String[] fields;
-            StringBuffer sb;
+            CPStringBuilder sb;
             int i;
             for (Iterator it = entries.keySet().iterator(); it.hasNext();)
               {
                 key = (String) it.next();
                 fields = (String[]) entries.get(key);
-                sb = new StringBuffer(fields[0]);
+                sb = new CPStringBuilder(fields[0]);
                 for (i = 1; i < fields.length; i++)
                   sb.append(":").append(fields[i]);
                 pw.println(sb.toString());
index b6fb3f87ead07ad809cb285ddfc586febba16c5e..4888214d8215cee1436c1beac2a023c4e44d7f6c 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.sasl.plain;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.action.GetPropertyAction;
 import gnu.javax.crypto.sasl.NoSuchUserException;
 import gnu.javax.crypto.sasl.UserAlreadyExistsException;
@@ -205,13 +207,13 @@ public class PasswordFile
             pw = new PrintWriter(fos);
             String key;
             String[] fields;
-            StringBuffer sb;
+            CPStringBuilder sb;
             Enumeration keys = entries.keys();
             while (keys.hasMoreElements())
               {
                 key = (String) keys.nextElement();
                 fields = (String[]) entries.get(key);
-                sb = new StringBuffer(fields[0]);
+                sb = new CPStringBuilder(fields[0]);
                 for (int i = 1; i < fields.length; i++)
                   sb.append(":" + fields[i]);
                 pw.println(sb.toString());
index 5c60578db67b2c28057c2b4585b31a7ce97ad1a2..87fffa01ee1cb81f964c5068df651434b20b0ff2 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.sasl.plain;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Registry;
 import gnu.javax.crypto.sasl.ClientMechanism;
 
@@ -128,7 +130,7 @@ public class PlainClient
           }
         if (password == null)
           throw new SaslException("null password supplied");
-        final StringBuffer sb = new StringBuffer();
+        final CPStringBuilder sb = new CPStringBuilder();
         if (authorizationID != null)
           sb.append(authorizationID);
         sb.append('\0');
index 36888df8724440e3787ab478ab401a54430271e1..7946e84fbcc3a7c36bd037a95d9c454e52bd58d3 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.sasl.srp;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Registry;
 import gnu.java.security.util.Util;
 import gnu.javax.crypto.key.srp6.SRPAlgorithm;
@@ -445,12 +447,12 @@ public class PasswordFile
   {
     String ndx;
     String[] mpi;
-    StringBuffer sb;
+    CPStringBuilder sb;
     for (Iterator it = configurations.keySet().iterator(); it.hasNext();)
       {
         ndx = (String) it.next();
         mpi = (String[]) configurations.get(ndx);
-        sb = new StringBuffer(ndx)
+        sb = new CPStringBuilder(ndx)
             .append(":").append(mpi[0])
             .append(":").append(mpi[1]);
         pw.println(sb.toString());
@@ -591,7 +593,7 @@ public class PasswordFile
   {
     String user, digestID;
     HashMap fields, verifiers;
-    StringBuffer sb1, sb2;
+    CPStringBuilder sb1, sb2;
     Iterator j;
     final Iterator i = entries.keySet().iterator();
     while (i.hasNext())
@@ -601,7 +603,7 @@ public class PasswordFile
         if (! user.equals(fields.get(USER_FIELD)))
           throw new IOException("Inconsistent SRP password data");
         verifiers = (HashMap) fields.get(VERIFIERS_FIELD);
-        sb1 = new StringBuffer(user)
+        sb1 = new CPStringBuilder(user)
             .append(":").append((String) verifiers.get("0"))
             .append(":").append((String) fields.get(SALT_FIELD))
             .append(":").append((String) fields.get(CONFIG_FIELD));
@@ -614,7 +616,7 @@ public class PasswordFile
             if (! "0".equals(digestID))
               {
                 // #0 is the default digest, already present in tpasswd!
-                sb2 = new StringBuffer(digestID)
+                sb2 = new CPStringBuilder(digestID)
                     .append(":").append(user)
                     .append(":").append((String) verifiers.get(digestID));
                 pw2.println(sb2.toString());
index f4ef4cc34c1bf0ea4237f29d87cc13f2f8a5c0a8..3406c14cec452628e70e6de1a46d19111e74674d 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.sasl.srp;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Configuration;
 import gnu.java.security.Registry;
 import gnu.java.security.hash.MD5;
@@ -863,7 +865,7 @@ public class SRPClient
     // For now we just select the defaults. Later we need to add support for
     // properties (perhaps in a file) where a user can specify the list of
     // algorithms they would prefer to use.
-    final StringBuffer sb = new StringBuffer();
+    final CPStringBuilder sb = new CPStringBuilder();
     sb.append(SRPRegistry.OPTION_SRP_DIGEST)
       .append("=").append(mdName).append(",");
     if (replayDetection)
index ff7e4e9d6898bb87a58c264ac15df9173f65c102..3f000deefbf84b69b12c3b84aaabc5881db414b3 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.sasl.srp;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Configuration;
 import gnu.java.security.Registry;
 import gnu.java.security.util.PRNG;
@@ -612,7 +614,7 @@ public class SRPServer
     s = (String) properties.get(SRPRegistry.SRP_REPLAY_DETECTION);
     final boolean replayDetection = (s == null ? SRPRegistry.DEFAULT_REPLAY_DETECTION
                                                : Boolean.valueOf(s).booleanValue());
-    final StringBuffer sb = new StringBuffer();
+    final CPStringBuilder sb = new CPStringBuilder();
     sb.append(SRPRegistry.OPTION_SRP_DIGEST).append("=")
       .append(srp.getAlgorithm()).append(",");
 
index e9b1a72827374a6c9e3dabd2c1d6c51368a37880..9fa83295a0f684738b2c7d600a2cc0458b83de29 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.crypto.sasl.srp;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.HashMap;
 
 /**
@@ -84,7 +86,7 @@ public class ServerStore
   static synchronized final byte[] getNewSessionID()
   {
     final String sid = String.valueOf(++counter);
-    return new StringBuffer("SID-")
+    return new CPStringBuilder("SID-")
         .append("0000000000".substring(0, 10 - sid.length())).append(sid)
         .toString().getBytes();
   }
index 08b5041c967b666eccc0cb74517a41e326e15729..be42ffae1ee016b7afdb8f8b67322dfc03779ea4 100644 (file)
@@ -178,7 +178,6 @@ public class BMPImageWriter
       encoder.encode(out, streamMetadata, image, param);
     else
       throw new BMPException("Encoder has not been initialized.");
-    out.close();
   }
   
   /**
index b2a4273c93a6c1942e2e2cb5b66130dddc4cdbed..32f9f59d1acc1b23a7c8232fb295d1e4e91a93e4 100644 (file)
@@ -51,7 +51,7 @@ public class BMPImageWriterSpi
   static final String vendorName = "GNU";
   static final String version = "0.1";
   static final String writerClassName = "gnu.javax.imageio.bmp.BMPImageWriter";
-  static final String[] names = { "Microsoft Windows BMP" };
+  static final String[] names = { "bmp", "BMP", "Microsoft Windows BMP" };
   static final String[] suffixes = { ".bmp", ".bm" };
   static final String[] MIMETypes = { "image/bmp", "image/x-windows-bmp" };
   static final String[] readerSpiNames = { "gnu.javax.imageio.bmp.BMPImageReaderSpi" };
index 8e8d826c00f73f1fb140f7870f96f9dd500ff88d..e35c3b11745d90439e83783a4ec88b1748dd312d 100644 (file)
@@ -48,12 +48,13 @@ import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
+
 import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.ConcurrentHashMap;
 
 import javax.management.Attribute;
 import javax.management.AttributeList;
@@ -113,19 +114,20 @@ public class Server
   /**
    * The registered beans, represented as a map of
    * {@link javax.management.ObjectName}s to
-   * {@link java.lang.Object}s.
+   * {@link gnu.javax.management.Server.ServerInfo}s.
    */
-  private final Map beans = new HashMap();
+  private final ConcurrentHashMap<ObjectName,ServerInfo> beans =
+    new ConcurrentHashMap<ObjectName,ServerInfo>();
 
   /**
    * The default domain.
    */
-  private String defaultDomain;
+  private final String defaultDomain;
 
   /**
    * The outer server.
    */
-  private MBeanServer outer;
+  private final MBeanServer outer;
 
   /**
    * The class loader repository.
@@ -134,9 +136,15 @@ public class Server
 
   /**
    * The map of listener delegates to the true
-   * listener.
+   * listener.  We wrap this in an inner class
+   * to delay initialisation until a listener
+   * is actually added.
    */
-  private Map listeners;
+  private static class LazyListenersHolder
+  {
+    private static final Map<NotificationListener,NotificationListener> listeners =
+      new ConcurrentHashMap<NotificationListener,NotificationListener>();
+  }
 
   /**
    * An MBean that emits notifications when an MBean is registered and
@@ -145,7 +153,10 @@ public class Server
    */
   private final MBeanServerDelegate delegate;
 
-  static private final AtomicLong sequenceNumber = new AtomicLong(1);
+  /**
+   * Provides sequencing for notifications about registrations.
+   */
+  private static final AtomicLong sequenceNumber = new AtomicLong(1);
 
   /**
    * Initialise the delegate name.
@@ -274,7 +285,7 @@ public class Server
   private Object getBean(ObjectName name)
     throws InstanceNotFoundException
   {
-    ServerInfo bean = (ServerInfo) beans.get(name);
+    ServerInfo bean = beans.get(name);
     if (bean == null)
       throw new InstanceNotFoundException("The bean, " + name +
                                          ", was not found.");
@@ -319,12 +330,10 @@ public class Server
     if (bean instanceof NotificationBroadcaster)
       {
        NotificationBroadcaster bbean = (NotificationBroadcaster) bean;
-       if (listeners == null)
-         listeners = new HashMap();
        NotificationListener indirection = new ServerNotificationListener(bean, name,
                                                                          listener);
        bbean.addNotificationListener(indirection, filter, passback);
-       listeners.put(listener, indirection);
+       LazyListenersHolder.listeners.put(listener, indirection);
       }
   }
 
@@ -671,7 +680,7 @@ public class Server
   {
     try
       {
-       Class c = getClassLoaderRepository().loadClass(name);
+       Class<?> c = getClassLoaderRepository().loadClass(name);
        return new ServerInputStream(new ByteArrayInputStream(data),
                                           c.getClassLoader());
       }
@@ -717,7 +726,7 @@ public class Server
   {
     try
       {
-       Class c = getClassLoader(loader).loadClass(name);
+       Class<?> c = getClassLoader(loader).loadClass(name);
        return new ServerInputStream(new ByteArrayInputStream(data),
                                           c.getClassLoader());
       }
@@ -951,7 +960,6 @@ public class Server
     return defaultDomain;
   }
 
-
   /**
    * Returns an array containing all the domains used by beans registered
    * with this server.  The ordering of the array is undefined.
@@ -975,11 +983,11 @@ public class Server
   public String[] getDomains()
   {
     checkSecurity(null, null, "getDomains");
-    Set domains = new HashSet();
-    Iterator iterator = beans.keySet().iterator();
+    Set<String> domains = new HashSet<String>();
+    Iterator<ObjectName> iterator = beans.keySet().iterator();
     while (iterator.hasNext())
       {
-       String d  = ((ObjectName) iterator.next()).getDomain();
+       String d = iterator.next().getDomain();
        try
          {
            checkSecurity(new ObjectName(d + ":x=x"), null, "getDomains");
@@ -990,7 +998,7 @@ public class Server
            /* Ignored */
          }
       }
-    return (String[]) domains.toArray(new String[domains.size()]);
+    return domains.toArray(new String[domains.size()]);
   }
 
   /**
@@ -1077,7 +1085,7 @@ public class Server
   public ObjectInstance getObjectInstance(ObjectName name)
     throws InstanceNotFoundException
   {
-    ServerInfo bean = (ServerInfo) beans.get(name);
+    ServerInfo bean = beans.get(name);
     if (bean == null)
       throw new InstanceNotFoundException("The bean, " + name +
                                          ", was not found.");
@@ -1158,7 +1166,7 @@ public class Server
          new IllegalArgumentException("The name was null.");
        throw new RuntimeOperationsException(e);
       }
-    Class[] sigTypes = new Class[sig.length];
+    Class<?>[] sigTypes = new Class[sig.length];
     for (int a = 0; a < sigTypes.length; ++a)
       {
        try 
@@ -1174,7 +1182,7 @@ public class Server
       }
     try
       {
-       Constructor cons =
+       Constructor<?> cons =
          repository.loadClass(name).getConstructor(sigTypes);
        return cons.newInstance(params);
       }
@@ -1288,7 +1296,7 @@ public class Server
        throw new RuntimeOperationsException(e);
       }
     ClassLoader loader = getClassLoader(loaderName);
-    Class[] sigTypes = new Class[sig.length];
+    Class<?>[] sigTypes = new Class[sig.length];
     for (int a = 0; a < sig.length; ++a)
       {
        try 
@@ -1304,7 +1312,7 @@ public class Server
       }
     try
       {
-       Constructor cons =
+       Constructor<?> cons =
          Class.forName(name, true, loader).getConstructor(sigTypes);
        return cons.newInstance(params);
       }
@@ -1433,10 +1441,10 @@ public class Server
        }
     if (info.getClassName().equals(className))
       return true;
-    Class bclass = bean.getClass();
+    Class<?> bclass = bean.getClass();
     try
       {
-       Class oclass = Class.forName(className);
+       Class<?> oclass = Class.forName(className);
        return (bclass.getClassLoader().equals(oclass.getClassLoader()) &&
                oclass.isAssignableFrom(bclass));  
       }
@@ -1502,21 +1510,19 @@ public class Server
    *                           arise from the execution of the query, in which
    *                           case that particular bean will again be excluded.
    */
-  public Set queryMBeans(ObjectName name, QueryExp query)
+  public Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)
   {
     checkSecurity(name, null, "queryMBeans");
-    Set results = new HashSet();
-    Iterator iterator = beans.entrySet().iterator();
-    while (iterator.hasNext())
+    Set<ObjectInstance> results = new HashSet<ObjectInstance>();
+    for (Map.Entry<ObjectName,ServerInfo> entry : beans.entrySet())
       {
-       Map.Entry entry = (Map.Entry) iterator.next();
-       ObjectName nextName = (ObjectName) entry.getKey();
+       ObjectName nextName = entry.getKey();
        checkSecurity(name, nextName.toString(), "queryMBeans");
        try
          {
            if ((name == null || name.apply(nextName)) &&
                (query == null || query.apply(nextName)))
-             results.add(((ServerInfo) entry.getValue()).getInstance());
+             results.add(entry.getValue().getInstance());
          }
        catch (BadStringOperationException e)
          {
@@ -1575,15 +1581,12 @@ public class Server
    *                           Note that these permissions are implied if the
    *                           <code>queryMBeans</code> permissions are available.
    */
-  public Set queryNames(ObjectName name, QueryExp query)
+  public Set<ObjectName> queryNames(ObjectName name, QueryExp query)
   {
     checkSecurity(name, null, "queryNames");
-    Set results = new HashSet();
-    Iterator iterator = beans.entrySet().iterator();
-    while (iterator.hasNext())
+    Set<ObjectName> results = new HashSet<ObjectName>();
+    for (ObjectName nextName : beans.keySet())
       {
-       Map.Entry entry = (Map.Entry) iterator.next();
-       ObjectName nextName = (ObjectName) entry.getKey();
        checkSecurity(name, nextName.toString(), "queryNames");
        try
          {
@@ -1656,7 +1659,7 @@ public class Server
           NotCompliantMBeanException
   {  
     SecurityManager sm = System.getSecurityManager();
-    Class cl = obj.getClass();
+    Class<?> cl = obj.getClass();
     String className = cl.getName();
     if (sm != null)
       {
@@ -1712,14 +1715,13 @@ public class Server
            throw new MBeanRegistrationException(e, "Pre-registration failed.");
          }
       }
-    if (beans.containsKey(name))
+    ObjectInstance obji = new ObjectInstance(name, className);
+    if (beans.putIfAbsent(name, new ServerInfo(obji, obj)) != null)
       {
        if (register != null)
          register.postRegister(Boolean.FALSE);
        throw new InstanceAlreadyExistsException(name + "is already registered.");
       }
-    ObjectInstance obji = new ObjectInstance(name, className);
-    beans.put(name, new ServerInfo(obji, obj));
     if (register != null)
       register.postRegister(Boolean.TRUE);
     notify(name, MBeanServerNotification.REGISTRATION_NOTIFICATION);
@@ -1758,15 +1760,8 @@ public class Server
     if (bean instanceof NotificationBroadcaster)
       {
        NotificationBroadcaster bbean = (NotificationBroadcaster) bean;
-       NotificationListener indirection = (NotificationListener)
-         listeners.get(listener);
-       if (indirection == null)
-         bbean.removeNotificationListener(listener);
-       else
-         {
-           bbean.removeNotificationListener(indirection);
-           listeners.remove(listener);
-         }
+       bbean.removeNotificationListener(listener);
+       LazyListenersHolder.listeners.remove(listener);
       }
   }
 
@@ -1809,15 +1804,8 @@ public class Server
     if (bean instanceof NotificationEmitter)
       {
        NotificationEmitter bbean = (NotificationEmitter) bean;
-       NotificationListener indirection = (NotificationListener)
-         listeners.get(listener);
-       if (indirection == null)
-         bbean.removeNotificationListener(listener, filter, passback);
-       else
-         {
-           bbean.removeNotificationListener(indirection, filter, passback);
-           listeners.remove(listener);
-         }
+       bbean.removeNotificationListener(listener, filter, passback);
+       LazyListenersHolder.listeners.remove(listener);
       }
   }
 
@@ -2011,7 +1999,7 @@ public class Server
     Object abean = getBean(name);
     checkSecurity(name, null, "setAttribute");
     AttributeList list = new AttributeList(attributes.size());
-    Iterator it = attributes.iterator();
+    Iterator<Object> it = attributes.iterator();
     while (it.hasNext())
       {
        try
@@ -2113,6 +2101,15 @@ public class Server
       register.postDeregister();
   }
 
+  /**
+   * Notifies the delegate of beans being registered
+   * and unregistered.
+   *
+   * @param name the bean being registered.
+   * @param type the type of notification;
+   * {@code REGISTRATION_NOTIFICATION} or
+   * {@code UNREGISTRATION_NOTIFICATION}.
+   */
    private void notify(ObjectName name, String type)
    {
       delegate.sendNotification
@@ -2136,7 +2133,7 @@ public class Server
       this.cl = cl;
     }
 
-    protected Class resolveClass(ObjectStreamClass osc)
+    protected Class<?> resolveClass(ObjectStreamClass osc)
       throws ClassNotFoundException, IOException
     {
       try
index 4ede37430887119a6619c79fff745fb8f998bc46..a15994429a38786e6703b1d0cef7824183655cb5 100644 (file)
@@ -143,14 +143,14 @@ public final class Translator
              throw new IllegalArgumentException(jtype + " has a " +
                                                 "non-comparable element " +
                                                 "type, " + elemClass);
-           if (((SortedSet) jtype).comparator() != null)
+           if (((SortedSet<?>) jtype).comparator() != null)
              throw new IllegalArgumentException(jtype + " does not " +
                                                 "use natural ordering.");
          }
-       Collection<Object> elems = (Collection<Object>) jtype;
+       Collection<?> elems = (Collection<?>) jtype;
        int numElems = elems.size();
        Object[] celems = new Object[numElems];
-       Iterator<Object> i = elems.iterator();
+       Iterator<?> i = elems.iterator();
        for (int a = 0; a < numElems; ++a)
          {
            Object elem = i.next();
@@ -159,7 +159,7 @@ public final class Translator
        return makeArraySpecific(celems);
       }
     if (jtype instanceof Enum)
-      return ((Enum) jtype).name();
+      return ((Enum<?>) jtype).name();
     if (jtype instanceof Map || jtype instanceof SortedMap)
       {
        int lparam = tName.indexOf("<");
@@ -177,13 +177,13 @@ public final class Translator
              throw new IllegalArgumentException(jtype + " has a " +
                                                 "non-comparable element " +
                                                 "type, " + keyClass);
-           if (((SortedMap) jtype).comparator() != null)
+           if (((SortedMap<?,?>) jtype).comparator() != null)
              throw new IllegalArgumentException(jtype + " does not " +
                                                 "use natural ordering.");
            typeName = "java.util.SortedMap" + tName.substring(lparam);
          }
-       OpenType k = translate(key).getOpenType();
-       OpenType v = translate(value).getOpenType(); 
+       OpenType<?> k = translate(key).getOpenType();
+       OpenType<?> v = translate(value).getOpenType(); 
        CompositeType rowType = new CompositeType(typeName, typeName,
                                                  new String[] { "key", "value" },
                                                  new String[] { "Map key", "Map value"},
@@ -191,7 +191,7 @@ public final class Translator
        TabularType tabType = new TabularType(typeName, typeName, rowType,
                                              new String[]{"key"});
        TabularData data = new TabularDataSupport(tabType);
-       for (Map.Entry entry : (Set<Map.Entry>) ((Map) jtype).entrySet())
+       for (Map.Entry<?,?> entry : ((Map<?,?>) jtype).entrySet())
          {
            try 
              {
@@ -258,15 +258,15 @@ public final class Translator
     if (returnType.isEnum())
       {
        String ename = (String) otype;
-       Enum[] constants = (Enum[]) returnType.getEnumConstants();
-       for (Enum c : constants)
+       Enum<?>[] constants = (Enum[]) returnType.getEnumConstants();
+       for (Enum<?> c : constants)
          if (c.name().equals(ename))
            return c;
       }
     if (List.class.isAssignableFrom(returnType))
       {
        Object[] elems = (Object[]) otype;
-       List l = new ArrayList(elems.length);
+       List<Object> l = new ArrayList<Object>(elems.length);
        for (Object elem : elems)
          l.add(elem);
        return l;
@@ -274,7 +274,7 @@ public final class Translator
     if (Map.class.isAssignableFrom(returnType))
       {
        TabularData data = (TabularData) otype;
-       Map m = new HashMap(data.size());
+       Map<Object,Object> m = new HashMap<Object,Object>(data.size());
        for (Object val : data.values())
          {
            CompositeData vals = (CompositeData) val;
@@ -401,8 +401,8 @@ public final class Translator
        int comma = type.indexOf(",", lparam);
        int rparam = type.indexOf(">", comma);
        String key = type.substring(lparam + 1, comma).trim();
-       OpenType k = translate(key).getOpenType();
-       OpenType v = translate(type.substring(comma + 1, rparam).trim()).getOpenType(); 
+       OpenType<?> k = translate(key).getOpenType();
+       OpenType<?> v = translate(type.substring(comma + 1, rparam).trim()).getOpenType(); 
        CompositeType ctype = new CompositeType(Map.class.getName(), Map.class.getName(),
                                                new String[] { "key", "value" },
                                                new String[] { "Map key", "Map value"},
@@ -417,13 +417,13 @@ public final class Translator
       {
        int lparam = type.indexOf("<");
        int rparam = type.indexOf(">");
-               OpenType e = translate(type.substring(lparam + 1, rparam).trim()).getOpenType();
+               OpenType<?> e = translate(type.substring(lparam + 1, rparam).trim()).getOpenType();
        return new OpenMBeanParameterInfoSupport("TransParam",
                                                 "Translated parameter",
-                                                new ArrayType(1, e)
+                                                new ArrayType<OpenType<?>>(1, e)
                                                 );
       }        
-    Class c;
+    Class<?> c;
     try
       {
        c = Class.forName(type);
@@ -450,15 +450,15 @@ public final class Translator
        int depth;
        for (depth = 0; c.getName().charAt(depth) == '['; ++depth)
           ;
-       OpenType ot = getTypeFromClass(c.getComponentType());
+       OpenType<?> ot = getTypeFromClass(c.getComponentType());
        return new OpenMBeanParameterInfoSupport("TransParam",
                                                 "Translated parameter",
-                                                new ArrayType(depth, ot)
+                                                new ArrayType<OpenType<?>>(depth, ot)
                                                 );
       }
     Method[] methods = c.getDeclaredMethods();
     List<String> names = new ArrayList<String>();
-    List<OpenType> types = new ArrayList<OpenType>();
+    List<OpenType<?>> types = new ArrayList<OpenType<?>>();
     for (int a = 0; a < methods.length; ++a)
       {
        String name = methods[a].getName();
@@ -495,7 +495,7 @@ public final class Translator
    * @return the appropriate instance.
    * @throws OpenDataException if the type is not open.
    */
-  private static final OpenType getTypeFromClass(Class c)
+  private static final OpenType<?> getTypeFromClass(Class<?> c)
     throws OpenDataException
   {
     return Translator.translate(c.getName()).getOpenType();
index 397b1c7d9e4f02d2c6d21818ff2aa0731fbc5059..95ebb8a0689406dc851d2e43013da6a282a7c2a3 100644 (file)
@@ -43,6 +43,8 @@ import gnu.CORBA.Unexpected;
 import gnu.CORBA.Version;
 import gnu.CORBA.NamingService.NameTransformer;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
@@ -288,7 +290,7 @@ public class CorbalocParser
             ior.Internet.version = new Version(major, minor);
 
             // Then host data goes till '/' or ':'.
-            StringBuffer bhost = new StringBuffer(corbaloc.length());
+            CPStringBuilder bhost = new CPStringBuilder(corbaloc.length());
             while (!t[p].equals(":") && !t[p].equals("/") && !t[p].equals(","))
               bhost.append(t[p++]);
 
@@ -381,7 +383,7 @@ public class CorbalocParser
       {
         InputStreamReader r = new InputStreamReader(u.openStream());
 
-        StringBuffer b = new StringBuffer();
+        CPStringBuilder b = new CPStringBuilder();
         int c;
 
         while ((c = r.read()) > 0)
@@ -418,7 +420,7 @@ public class CorbalocParser
               + "' found");
         }
 
-    StringBuffer bKey = new StringBuffer();
+    CPStringBuilder bKey = new CPStringBuilder();
     p++;
 
     while (p < t.length && !t[p].equals("#"))
index 84aa3241365d8e2942f72c6661b12ac023cee422..6c221548f475abfc52b499d404b307c85d42281a 100644 (file)
@@ -40,6 +40,8 @@ package gnu.javax.naming.giop;
 
 import gnu.CORBA.OrbFunctional;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.Iterator;
@@ -161,7 +163,7 @@ public class GiopNamingServiceFactory
   {
      TreeMap map = new TreeMap();
      map.putAll(props);
-     StringBuffer b = new StringBuffer(50*props.size());
+     CPStringBuilder b = new CPStringBuilder(50*props.size());
      
      Iterator iter = map.entrySet().iterator();
      Map.Entry m;
index 00f4a0779c746955fe264567caac498f0b6a1a07..68ba49b3fed34308cc39dcad573ad0bf869c7450 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.javax.naming.giop;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.naming.NamingEnumeration;
 
 import org.omg.CosNaming.Binding;
@@ -92,7 +94,7 @@ public class ListBindingsEnumeration extends GiopNamingEnumeration implements
    */
   public Object convert(Binding binding)
   {
-    StringBuffer name = new StringBuffer();
+    CPStringBuilder name = new CPStringBuilder();
 
     for (int i = 0; i < binding.binding_name.length; i++)
       {
index 2e64e67d3933e1107f409129e548c380f87af9a4..3fca1e0abc8803bb90b794e401917b001853d328 100644 (file)
@@ -29,7 +29,7 @@ executable, regardless of the license terms of these independent
 modules, and to copy and distribute the resulting executable under
 terms of your choice, provided that you also meet, for each linked
 independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
+odule.  An independent module is a module which is not derived from
 or based on this library.  If you modify this library, you may extend
 this exception to your version of the library, but you are not
 obligated to do so.  If you do not wish to do so, delete this
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.javax.naming.giop;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.naming.NameClassPair;
 import javax.naming.NamingEnumeration;
 
@@ -85,7 +87,7 @@ public class ListEnumeration extends GiopNamingEnumeration implements
    */
   public Object convert(Binding binding)
   {
-    StringBuffer name = new StringBuffer();
+    CPStringBuilder name = new CPStringBuilder();
 
     for (int i = 0; i < binding.binding_name.length; i++)
       {
index b20bfa4ea8bdd16d95964b08f315d953cd166f2e..b423c721bc07055b12f527a9511d6c547117f5f8 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.javax.naming.ictxImpl.trans;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Enumeration;
 import java.util.NoSuchElementException;
 
@@ -455,7 +457,7 @@ public class GnuName
    */
   public String toString()
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     for (int i = 0; i < length; i++)
       {
         b.append(get(i));
index 4a37cd8b1f93572910f085e3a83f2e2557bea548..7fff253dd4fb24bc53d852472b72cede57280f92 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.net.ssl;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.EOFException;
 import java.io.InputStream;
 import java.io.IOException;
@@ -137,7 +139,7 @@ public class PrivateCredentials implements ManagerFactoryParameters
     boolean encrypted = false;
     String cipher = null;
     String salt = null;
-    StringBuffer base64 = new StringBuffer();
+    CPStringBuilder base64 = new CPStringBuilder();
     while (true)
       {
         line = readLine(privateKey);
@@ -235,7 +237,7 @@ public class PrivateCredentials implements ManagerFactoryParameters
   private String readLine(InputStream in) throws IOException
   {
     boolean eol_is_cr = System.getProperty("line.separator").equals("\r");
-    StringBuffer str = new StringBuffer();
+    CPStringBuilder str = new CPStringBuilder();
     while (true)
       {
         int i = in.read();
index e2b21aa1e817bd5ffa8686e293a8936f1229fef5..09b50eef069c57f8e05c9a36a6850a758002eedc 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.net.ssl;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
 import java.security.Principal;
@@ -349,7 +351,7 @@ public abstract class Session implements SSLSession, Serializable
 
     public String toString()
     {
-      StringBuffer str = new StringBuffer (3 * id.length + 1);
+      CPStringBuilder str = new CPStringBuilder (3 * id.length + 1);
       for (int i = 0; i < id.length; i++)
         {
           int x = id[i] & 0xFF;
@@ -361,4 +363,4 @@ public abstract class Session implements SSLSession, Serializable
       return str.toString ();
     }
   }
-}
\ No newline at end of file
+}
index 0ffc26c2b5dd87e86fbc29c43d26c2bd36f7382e..81dfce591e5c4af8c98e9fc937cc0ff3c5e19547 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.net.ssl.provider;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * The handshake body for a HelloRequest handshake message.
  *
@@ -51,7 +53,7 @@ public final class HelloRequest implements Handshake.Body
 
   public String toString (final String prefix)
   {
-    StringBuffer str = new StringBuffer ();
+    CPStringBuilder str = new CPStringBuilder ();
     if (prefix != null)
       str.append (prefix);
     str.append ("HelloRequest { };");
index ba8ea7db70b906ad5d8ef4b671d0fcc05cbe32d7..57f637c184945d8e24f9fce145c473cc0f76148c 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.net.ssl.provider;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
@@ -128,7 +130,7 @@ public final class Util
    */
   public static String toHexString(byte[] buf, int off, int len)
   {
-    StringBuffer str = new StringBuffer();
+    CPStringBuilder str = new CPStringBuilder();
     for (int i = 0; i < len; i++)
       {
         str.append(HEX.charAt(buf[i+off] >>> 4 & 0x0F));
@@ -157,7 +159,7 @@ public final class Util
    */
   public static String toHexString(byte[] buf, int off, int len, char sep)
   {
-    StringBuffer str = new StringBuffer();
+    CPStringBuilder str = new CPStringBuilder();
     for (int i = 0; i < len; i++)
       {
         str.append(HEX.charAt(buf[i+off] >>> 4 & 0x0F));
@@ -194,7 +196,7 @@ public final class Util
   public static String hexDump(byte[] buf, int off, int len, String prefix)
   {
     String nl = getProperty("line.separator");
-    StringBuffer str = new StringBuffer();
+    CPStringBuilder str = new CPStringBuilder();
     int i = 0;
     while (i < len)
       {
@@ -294,7 +296,7 @@ public final class Util
   public static String formatInt(int i, int radix, int len)
   {
     String s = Integer.toString(i, radix);
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     for (int j = 0; j < len - s.length(); j++)
       buf.append("0");
     buf.append(s);
index 05a6faae72e0dee2e33ba04d9757fa5e3d10d651..3de88715a6807ac3096d5a27e0750480bef1e755 100644 (file)
@@ -469,7 +469,7 @@ public class IppRequest
         }
       else
         {
-          new IppException("Unknown target operation attribute combination.");
+          throw new IppException("Unknown target operation attribute combination.");
         }      
       
       writeAttributes(attributes);
index ae9d32dfdbdbabeec1cb35e8b99fc2e0e331064f..814fe2d0a742a7ea710a74ca22c326476209ee3e 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.javax.print.ipp.attribute;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -117,7 +119,7 @@ public final class RequestedAttributes implements Attribute
    */
   public String toString()
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     
     if (attributes.size() > 0)
       b.append(attributes.get(0));
index 91bfa3776dc4243cbbbbded8e4dd902f95b832bf..5fa78b1e9156045b47d3d4d4aa6b830d5331a90a 100644 (file)
@@ -46,6 +46,8 @@ import gnu.CORBA.CDR.gnuRuntime;
 import gnu.CORBA.CDR.gnuValueStream;
 import gnu.CORBA.CDR.HeadlessInput;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.omg.CORBA.MARSHAL;
 import org.omg.CORBA.StringValueHelper;
 import org.omg.CORBA.WStringValueHelper;
@@ -393,7 +395,7 @@ public class RmiUtilities
    */
   public static String toHex(long l)
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     b.append(Long.toHexString(l).toUpperCase());
     while (b.length() < 16)
       b.insert(0, '0');
@@ -425,7 +427,7 @@ public class RmiUtilities
       return "V";
     else if (type.isArray())
       {
-        StringBuffer l = new StringBuffer("[");
+        CPStringBuilder l = new CPStringBuilder("[");
         Class component = type.getComponentType();
 
         while (component.isArray())
@@ -700,13 +702,14 @@ public class RmiUtilities
     if (in instanceof HeadlessInput)
       ((HeadlessInput) in).subsequentCalls = true;
 
-    gnuRuntime g;
+    gnuRuntime g = null;
     Serializable object = null;
 
     try
       {
         g = (gnuRuntime) sender;
-        object = g.target;
+        if (sender != null)
+          object = g.target;
       }
     catch (ClassCastException e)
       {
index 539c4a17e1c10580ef97cfc9c6ec0d3d06a74498..d75ce4104fa31655445651edd8472a237bafe739 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version.  */
 
 package gnu.javax.security.auth.callback;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.BorderLayout;
 import java.awt.Button;
 import java.awt.Dialog;
@@ -238,8 +240,8 @@ public class AWTCallbackHandler extends AbstractCallbackHandler
     int defind = 0;
     for (int i = 0; i < locales.length; i++)
       {
-        StringBuffer lang =
-          new StringBuffer(locales[i].getDisplayLanguage(locales[i]));
+        CPStringBuilder lang =
+          new CPStringBuilder(locales[i].getDisplayLanguage(locales[i]));
         String country = locales[i].getDisplayCountry(locales[i]);
         String variant = locales[i].getDisplayVariant(locales[i]);
         if (country.length() > 0 && variant.length() > 0)
index 06a1d2c7ce9b6bb0a1d18c3098a7b2da7f11614c..0235c6971c3f8a83c2410f1c6db54430aefd9a71 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.javax.security.auth.login;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Configuration;
 
 import java.io.BufferedReader;
@@ -92,7 +94,7 @@ public class ConfigFileTokenizer
 
   private BufferedReader br;
   boolean initialised;
-  private StringBuffer sb;
+  private CPStringBuilder sb;
   private int sbNdx;
 
   // Constructor(s)
@@ -185,7 +187,7 @@ public class ConfigFileTokenizer
 
   private void init() throws IOException
   {
-    sb = new StringBuffer();
+    sb = new CPStringBuilder();
     String line;
     while ((line = br.readLine()) != null)
       {
index b90caef24b51f3938fbc55e64d6b14b800c3df81..0514c937a9f2ad072ee203dcc16a48d05b3852ce 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.javax.sound.sampled.gstreamer.io;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.javax.sound.sampled.gstreamer.GStreamerMixer;
 
 import java.io.BufferedInputStream;
@@ -65,7 +67,7 @@ public class GstAudioFileReader
   public AudioFileFormat getAudioFileFormat(File file)
       throws UnsupportedAudioFileException, IOException
   {
-    StringBuffer name = new StringBuffer(file.getName());
+    CPStringBuilder name = new CPStringBuilder(file.getName());
     String _name = name.substring(name.lastIndexOf(".") + 1);
     
     return getAudioFileFormat(
index 7507850e8f9fbfca8403c57eb854fb158cb86c81..7f16f1f2dbad3443e71314f2744c4d1c1f15d976 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.javax.swing.text.html.parser;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.javax.swing.text.html.parser.models.node;
 import gnu.javax.swing.text.html.parser.models.transformer;
 
@@ -499,11 +501,11 @@ public abstract class htmlValidator
     dtdAttribute = tag.getElement().getAttribute(foundAttribute.toString());
     if (dtdAttribute == null)
       {
-        StringBuffer valid =
-          new StringBuffer("The tag <" + tag.getHTMLTag() +
-                           "> cannot contain the attribute '" + foundAttribute +
-                           "'. The valid attributes for this tag are: "
-                          );
+        CPStringBuilder valid =
+          new CPStringBuilder("The tag <" + tag.getHTMLTag() +
+                             "> cannot contain the attribute '" + foundAttribute +
+                             "'. The valid attributes for this tag are: "
+                             );
 
         AttributeList a = tag.getElement().getAttributes();
 
@@ -545,22 +547,22 @@ public abstract class htmlValidator
         !dtdAttribute.values.contains(value.toUpperCase())
        )
       {
-        StringBuffer valid;
+        CPStringBuilder valid;
         if (dtdAttribute.values.size() == 1)
           valid =
-            new StringBuffer("The attribute '" + foundAttribute +
-                             "' of the tag <" + tag.getHTMLTag() +
-                             "> cannot have the value '" + value +
-                             "'. The only valid value is "
-                            );
+            new CPStringBuilder("The attribute '" + foundAttribute +
+                               "' of the tag <" + tag.getHTMLTag() +
+                               "> cannot have the value '" + value +
+                               "'. The only valid value is "
+                               );
         else
           valid =
-            new StringBuffer("The attribute '" + foundAttribute +
-                             "' of the tag <" + tag.getHTMLTag() +
-                             "> cannot have the value '" + value + "'. The " +
-                             dtdAttribute.values.size() +
-                             " valid values are: "
-                            );
+            new CPStringBuilder("The attribute '" + foundAttribute +
+                               "' of the tag <" + tag.getHTMLTag() +
+                               "> cannot have the value '" + value + "'. The " +
+                               dtdAttribute.values.size() +
+                               " valid values are: "
+                               );
 
         Enumeration vv = dtdAttribute.values.elements();
         while (vv.hasMoreElements())
index b77ef7fd8507c8d923917597ea9643abaf9112b0..c303ae8571da1b58764bba07bdcd10b4f337785e 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.javax.swing.text.html.parser.models;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
 /**
@@ -296,7 +298,7 @@ public class list
    */
   public String toString()
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     b.append(" ( ");
     for (int i = 0; i < nodes.length; i++)
       {
index 54469b349959513347b8005f1557bf27f6f7ff61..f45a13b3e864129aeea4e20530ab319d6af902ed 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.javax.swing.text.html.parser.models;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
 /**
@@ -239,7 +241,7 @@ public class node
    */
   public String toString()
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
 
     b.append(token);
     if (unary != 0)
index e99be3238e94d8f4d355062177c17ef05baba7ef..b087c3c003ced5e62bc972084a91496cbc1ac2f7 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.javax.swing.text.html.parser.support;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.javax.swing.text.html.parser.htmlAttributeSet;
 import gnu.javax.swing.text.html.parser.htmlValidator;
 import gnu.javax.swing.text.html.parser.support.low.Constants;
@@ -132,12 +134,12 @@ public class Parser
   /**
   * The buffer to collect the incremental output like text or coment.
   */
-  private StringBuffer buffer = new StringBuffer();
+  private final StringBuffer buffer = new StringBuffer();
 
   /**
    * The buffer to store the document title.
    */
-  private StringBuffer title = new StringBuffer();
+  private final StringBuffer title = new StringBuffer();
 
   /**
    * The current token.
@@ -994,7 +996,7 @@ public class Parser
                 // character, not as a token. The character may be part of
                 // the unquoted URL.
                   {
-                    StringBuffer image = new StringBuffer(value.getImage());
+                    CPStringBuilder image = new CPStringBuilder(value.getImage());
                     while (next.kind == NUMTOKEN || next.kind == SLASH
                            || next.kind == OTHER)
                       {
@@ -1025,7 +1027,7 @@ public class Parser
                 // character, not as a token. The slash may be part of
                 // the unquoted URL.
                   {
-                    StringBuffer image = new StringBuffer(value.getImage());
+                    CPStringBuilder image = new CPStringBuilder(value.getImage());
                     while (next.kind == NUMTOKEN || next.kind == SLASH)
                       {
                         image.append(getNextToken().getImage());
index 31d7af2d2f13fcc77731a220eb114f0e90e720b5..6a8da837154dbfdfeb23a2906077ece70c7ad8fa 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.w3c.dom.Attr;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Element;
@@ -106,7 +108,37 @@ public class DomAttr
     // and character data change events and when they happen,
     // report self-mutation
   }
-  
+
+  /**
+   * Constructs an Attr node associated with the specified document.
+   * The "specified" flag is initialized to true, since this DOM has
+   * no current "back door" mechanisms to manage default values so
+   * that every value must effectively be "specified".
+   *
+   * <p>This constructor should only be invoked by a Document as part of
+   * its createAttribute functionality, or through a subclass which is
+   * similarly used in a "Sub-DOM" style layer.
+   * <p>
+   * With this constructor, the prefix and local part are given explicitly
+   * rather than being computed.  This allows them to be explicitly set to
+   * {@code null} as required by {@link Document#createAttribute(String)}.   
+   * </p>
+   *
+   * @param owner The document with which this node is associated
+   * @param namespaceURI Combined with the local part of the name,
+   *   this is used to uniquely identify a type of attribute
+   * @param name Name of this attribute, which may include a prefix
+   * @param prefix the namespace prefix of the name.  May be {@code null}.
+   * @param localName the local part of the name.  May be {@code null}.
+   */
+  protected DomAttr(DomDocument owner, String namespaceURI, String name,
+                   String prefix, String localName)
+  {
+    super(ATTRIBUTE_NODE, owner, namespaceURI, name, prefix, localName);
+    specified = true;
+    length = 1;
+  }
+
   /**
    * <b>DOM L1</b>
    * Returns the attribute name (same as getNodeName)
@@ -147,7 +179,7 @@ public class DomAttr
         return (value == null) ? "" : value;
       }
     // Otherwise collect child node-values
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     for (DomNode ctx = first; ctx != null; ctx = ctx.next)
       {
         switch (ctx.nodeType)
index bcc729335d54bf66b261f045dc5e3ae1be7e3c25..b32c6b82dfc8cb1fbe7ec5b2b9a576637a9cda82 100644 (file)
@@ -597,6 +597,8 @@ public class DomDocument
   /**
    * <b>DOM L1</b>
    * Returns a newly created element with the specified name.
+   * The node name of the created element will be equal to {@code name}.
+   * The namespace, prefix and local name will all be {@code null}.
    */
   public Element createElement(String name)
   {
@@ -612,8 +614,7 @@ public class DomDocument
       }
     else
       {
-        DomElement domElement = new DomElement(this, null, name);
-        domElement.localName = null;
+        DomElement domElement = new DomElement(this, null, name, null, null);
         element = domElement;
       }
     if (defaultAttributes)
@@ -813,8 +814,7 @@ public class DomDocument
       }
     else
       {
-        DomAttr ret = new DomAttr(this, null, name);
-        ret.localName = null;
+        DomAttr ret = new DomAttr(this, null, name, null, null);
         return ret;
       }
   }
index 9fd81e9705b130c55d6badeafa54f9482ff37f43..462cb9178a6e402f4b5bdbfe9f5b473c51ff0188 100644 (file)
@@ -89,6 +89,32 @@ public class DomElement
     super(ELEMENT_NODE, owner, namespaceURI, name);
   }
 
+  /**
+   * <p>
+   * Constructs an Element node associated with the specified document.
+   * This constructor should only be invoked by a Document as part
+   * of its createElement functionality, or through a subclass which is
+   * similarly used in a "Sub-DOM" style layer.
+   * </p>
+   * <p>
+   * With this constructor, the prefix and local part are given explicitly
+   * rather than being computed.  This allows them to be explicitly set to
+   * {@code null} as required by {@link Document#createElement(String)}.   
+   * </p>
+   *
+   * @param owner The document with which this node is associated
+   * @param namespaceURI Combined with the local part of the name,
+   *   this is used to uniquely identify a type of element
+   * @param name Name of this element, which may include a prefix
+   * @param prefix the namespace prefix of the name.  May be {@code null}.
+   * @param localName the local part of the name.  May be {@code null}.
+   */
+  protected DomElement(DomDocument owner, String namespaceURI, String name,
+                      String prefix, String localName)
+  {
+    super(ELEMENT_NODE, owner, namespaceURI, name, prefix, localName);
+  }
+
   /**
    * <b>DOM L1</b>
    * Returns the element's attributes
index d57eac0e445a65e3e37df87a091b93143200e075..9190ed8eb0e8f991dc13019baa2aaddf47e00f8c 100644 (file)
@@ -37,8 +37,15 @@ exception statement from your version. */
 
 package gnu.xml.dom;
 
-import org.w3c.dom.*;
-import org.w3c.dom.events.*;
+import gnu.java.lang.CPStringBuilder;
+
+import org.w3c.dom.Node;
+
+import org.w3c.dom.events.Event;
+import org.w3c.dom.events.EventTarget;
+import org.w3c.dom.events.MutationEvent;
+import org.w3c.dom.events.UIEvent;
+
 import org.w3c.dom.views.AbstractView;         // used by UIEvent
 
 /**
@@ -180,7 +187,7 @@ public class DomEvent
    */
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("[Event ");
+    CPStringBuilder buf = new CPStringBuilder("[Event ");
     buf.append(type);
     switch (eventPhase)
       {
index 1cbdc2aecc04a74c3b2b85cbc599f01c1b1044ab..78e1ab85c85dfe00e93f0bc0166a43184df5f2b7 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -1939,7 +1941,7 @@ public abstract class DomNode
       case ENTITY_NODE:
       case ENTITY_REFERENCE_NODE:
       case DOCUMENT_FRAGMENT_NODE:
-        StringBuffer buffer = new StringBuffer();
+        CPStringBuilder buffer = new CPStringBuilder();
         for (DomNode ctx = first; ctx != null; ctx = ctx.next)
           {
             String textContent = ctx.getTextContent(false);
@@ -2124,7 +2126,7 @@ public abstract class DomNode
   {
     String nodeName = getNodeName();
     String nodeValue = getNodeValue();
-    StringBuffer buf = new StringBuffer(getClass().getName());
+    CPStringBuilder buf = new CPStringBuilder(getClass().getName());
     buf.append('[');
     if (nodeName != null)
       {
@@ -2146,7 +2148,7 @@ public abstract class DomNode
   
   String encode(String value)
   {
-    StringBuffer buf = null;
+    CPStringBuilder buf = null;
     int len = value.length();
     for (int i = 0; i < len; i++)
       {
@@ -2155,7 +2157,7 @@ public abstract class DomNode
           {
             if (buf == null)
               {
-                buf = new StringBuffer(value.substring(0, i));
+                buf = new CPStringBuilder(value.substring(0, i));
               }
             buf.append("\\n");
           }
@@ -2163,7 +2165,7 @@ public abstract class DomNode
           {
             if (buf == null)
               {
-                buf = new StringBuffer(value.substring(0, i));
+                buf = new CPStringBuilder(value.substring(0, i));
               }
             buf.append("\\r");
           }
index b27514ecb567d3ebcf10280659f69273a3e1b716..d3361515b707130cffc1e889ce51de39df7a3899 100644 (file)
@@ -54,7 +54,7 @@ public abstract class DomNsNode
   private String name;
   private String namespace;
   private String prefix;
-  String localName;
+  private String localName;
   
   /**
    * Constructs a node associated with the specified document, and
@@ -75,6 +75,33 @@ public abstract class DomNsNode
     setNamespaceURI(namespaceURI);
   }
 
+  /**
+   * Constructs a node associated with the specified document, and
+   * with the specified namespace information.  The prefix and local part
+   * are given explicitly rather than being computed.  This allows them
+   * to be explicitly set to {@code null} as required by
+   * {@link Document#createElement(String)}.
+   *
+   * @param owner The document with which this entity is associated
+   * @param namespaceURI Combined with the local part of the name,
+   *   this identifies a type of element or attribute; may be null.
+   *  If this is the empty string, it is reassigned as null so that
+   *  applications only need to test that case.
+   * @param name Name of this node, which may include a prefix
+   * @param prefix the namespace prefix of the name.  May be {@code null}.
+   * @param localName the local part of the name.  May be {@code null}.
+   */
+  // package private
+  DomNsNode(short nodeType, DomDocument owner, String namespaceURI, String name,
+           String prefix, String localName)
+  {
+    super(nodeType, owner);
+    this.name = name.intern();
+    this.prefix = prefix == null ? null : prefix.intern();
+    this.localName = localName == null ? null : localName.intern();
+    setNamespaceURI(namespaceURI);
+  }
+
   /**
    * <b>DOM L1</b>
    * Returns the node's name, including any namespace prefix.
index 3ca17dc9b874bf82704d4f3da936e8044e2dd3af..167eba3c1d22a1ea499876be0e4bd4003bfc0fff 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Text;
 
@@ -172,7 +174,7 @@ public class DomText
       {
         ref = ctx;
       }
-    StringBuffer buf = new StringBuffer(ref.getNodeValue());
+    CPStringBuilder buf = new CPStringBuilder(ref.getNodeValue());
     for (ctx = ref.next; ctx != null &&
          (ctx.nodeType == TEXT_NODE || ctx.nodeType == CDATA_SECTION_NODE);
          ctx = ctx.next)
index 44274ec47348ac21cf92a52434ce2f5551e03726..68705fdee92d8250153800015e62896085171633 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.dom.ls;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.IOException;
@@ -82,7 +84,7 @@ public class DomLSInput
 
   public String getStringData()
   {
-    StringBuffer acc = new StringBuffer();
+    CPStringBuilder acc = new CPStringBuilder();
     Reader reader = getCharacterStream();
     try
       {
index 88f9bae23fef0fbe543776182070324901ad51cb..f4f555e8c39c675de49dc6d614d0ae692207e0c2 100644 (file)
@@ -253,7 +253,7 @@ public class DomLSParser
     eventSink = (filter == null) ? new SAXEventSink() :
       new FilteredSAXEventSink(filter);
     // configure sink
-    eventSink.namespaceAware = namespaceAware;
+    eventSink.setNamespaceAware(namespaceAware);
     eventSink.ignoreWhitespace = ignoreWhitespace;
     eventSink.expandEntityReferences = expandEntityReferences;
     eventSink.ignoreComments = ignoreComments;
index 0a165aafbad57e0b478c1d5bd3603acf4b957f0b..1f8de046d42f77cd5ad021a8adf42d8f4eec6378 100644 (file)
@@ -89,7 +89,7 @@ public class SAXEventSink
     PREDEFINED_ENTITIES.add("apos");
   }
 
-  boolean namespaceAware;
+  private boolean namespaceAware;
   boolean ignoreWhitespace;
   boolean expandEntityReferences;
   boolean ignoreComments;
@@ -128,6 +128,11 @@ public class SAXEventSink
     this.locator = locator;
   }
 
+  public void setNamespaceAware(boolean namespaceAware)
+  {
+    this.namespaceAware = namespaceAware;
+  }
+
   public void startDocument()
     throws SAXException
   {
index 24088fb8154279b02a16e40c947cc8c7f71cd678..144aaf828620a746beaf17a806cc3b9b7daed366 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.libxmlj.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.w3c.dom.Attr;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Element;
@@ -103,7 +105,7 @@ class GnomeAttr
 
   public String toString()
   {
-    StringBuffer buffer = new StringBuffer(getClass().getName());
+    CPStringBuilder buffer = new CPStringBuilder(getClass().getName());
     buffer.append("[name=");
     buffer.append(getName());
     buffer.append(",value=");
index a3200921df6c73093f98b0acd0d1cb6eecd7ff1b..aa98652ba83f74cf4d8199e0539fdb4867e1b48d 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.libxmlj.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.w3c.dom.CharacterData;
 import org.w3c.dom.DOMException;
 
@@ -107,7 +109,7 @@ abstract class GnomeCharacterData
 
   public String toString()
   {
-    StringBuffer buffer = new StringBuffer(getClass().getName());
+    CPStringBuilder buffer = new CPStringBuilder(getClass().getName());
     buffer.append("[data=");
     buffer.append(getData());
     buffer.append("]");
index 03420c463e8f6bd563d9cb22fe15e287204af67b..a5333550e16f1f8efd91227a604b08d11ee6a66d 100644 (file)
@@ -37,6 +37,9 @@ exception statement from your version. */
 
 package gnu.xml.libxmlj.dom;
 
+import gnu.java.lang.CPStringBuilder;
+import gnu.xml.dom.DomNodeIterator;
+
 import java.util.Iterator;
 
 import org.w3c.dom.Attr;
@@ -66,8 +69,6 @@ import org.w3c.dom.xpath.XPathException;
 import org.w3c.dom.xpath.XPathExpression;
 import org.w3c.dom.xpath.XPathNSResolver;
 
-import gnu.xml.dom.DomNodeIterator;
-
 /**
  * A DOM document node implemented in libxml2.
  *
@@ -549,7 +550,7 @@ public class GnomeDocument
   
   public String toString()
   {
-    StringBuffer buffer = new StringBuffer(getClass().getName());
+    CPStringBuilder buffer = new CPStringBuilder(getClass().getName());
     buffer.append("[version=");
     buffer.append(getXmlVersion());
     buffer.append(",standalone=");
index 257fbbceb6954293a1b16a2f3334eacb4d093755..eb3a65f1d49638aabca36c3d0dcf8cd4c2ddf68b 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.libxmlj.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.w3c.dom.DocumentType;
 import org.w3c.dom.NamedNodeMap;
 
@@ -79,7 +81,7 @@ implements DocumentType
   public String toString ()
   {
     String publicId = getPublicId ();
-    StringBuffer buffer = new StringBuffer (getClass ().getName ());
+    CPStringBuilder buffer = new CPStringBuilder (getClass ().getName ());
     buffer.append ("[");
     if (publicId != null)
       {
index 2770cbbfd1ed505150b904086e7016ee279540b1..e87e3adfe1c1b6b85e87dac61902c26426afe6bd 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.libxmlj.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.HashSet;
 import java.util.Set;
 
@@ -172,7 +174,7 @@ class GnomeElement
 
   public String toString()
   {
-    StringBuffer buffer = new StringBuffer(getClass().getName());
+    CPStringBuilder buffer = new CPStringBuilder(getClass().getName());
     buffer.append("[tagName=");
     buffer.append(getTagName());
     buffer.append("]");
index 76367f8bd4fd1fedb463504c1bb3b2f468915d57..8d61a26c1ad46b1834f5395651c92cc1a584fbf8 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.libxmlj.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.w3c.dom.Entity;
 
 /**
@@ -83,7 +85,7 @@ implements Entity
   public String toString ()
   {
     String publicId = getPublicId ();
-    StringBuffer buffer = new StringBuffer (getClass ().getName ());
+    CPStringBuilder buffer = new CPStringBuilder (getClass ().getName ());
     buffer.append ("[");
     if (publicId != null)
       {
index 4a2e9ff48d608bfab9f2a203b650dd5fd85fe955..6f574ec29ddaaaabb5734e9d768bfc622643dd00 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.libxmlj.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -368,7 +370,7 @@ class GnomeNode
       case ENTITY_NODE:
       case ENTITY_REFERENCE_NODE:
       case DOCUMENT_FRAGMENT_NODE:
-        StringBuffer buffer = new StringBuffer();
+        CPStringBuilder buffer = new CPStringBuilder();
         NodeList children = getChildNodes();
         int len = children.getLength();
         for (int i = 0; i < len; i++)
@@ -489,7 +491,7 @@ class GnomeNode
 
   public String toString()
   {
-    StringBuffer buffer = new StringBuffer(getClass().getName());
+    CPStringBuilder buffer = new CPStringBuilder(getClass().getName());
     buffer.append("[nodeName=");
     buffer.append(getNodeName());
     buffer.append("]");
index ca1560e21bc4551fdacb977e4c6e46f154592762..7f6fdf44896ca20c621a83109947e28f90a4884a 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.libxmlj.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.w3c.dom.Notation;
 
 /**
@@ -61,7 +63,7 @@ implements Notation
   public String toString ()
   {
     String publicId = getPublicId ();
-    StringBuffer buffer = new StringBuffer (getClass ().getName ());
+    CPStringBuilder buffer = new CPStringBuilder (getClass ().getName ());
     buffer.append ("[");
     if (publicId != null)
       {
index a6c47b2e1caada11b5667dca10e0c839d1a07749..d2ecd1890042c03bf6e5f1bff7a5d25468b0a248 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.libxmlj.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.w3c.dom.DOMException;
 import org.w3c.dom.ProcessingInstruction;
 
@@ -67,7 +69,7 @@ implements ProcessingInstruction
 
   public String toString ()
   {
-    StringBuffer buffer = new StringBuffer (getClass ().getName ());
+    CPStringBuilder buffer = new CPStringBuilder (getClass ().getName ());
     buffer.append ("[data=");
     buffer.append (getData ());
     buffer.append ("]");
index 77677a56223c6d77d175c15adda8f2b2dc874174..8b8e5e0c1a4452f71ad57425c6503170da426bd5 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.libxmlj.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Node;
 import org.w3c.dom.Text;
@@ -84,7 +86,7 @@ implements Text
         first = node;
         node = node.getPreviousSibling ();
       }
-    StringBuffer buf = new StringBuffer (first.getNodeValue ());
+    CPStringBuilder buf = new CPStringBuilder (first.getNodeValue ());
     node = first.getNextSibling ();
     while (node != null && node instanceof Text)
       {
index d0e1a4f20deadfd881cabd0b9160f436e34ecce9..850b5fae08f5b9f9fbe5187c23447472d67536b1 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.libxmlj.dom;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Node;
 import org.w3c.dom.xpath.XPathException;
@@ -112,7 +114,7 @@ implements XPathResult
         case 1:
           return getSingleNodeValue ().toString ();
         default:
-          StringBuffer buffer = new StringBuffer ();
+          CPStringBuilder buffer = new CPStringBuilder ();
           for (int i = 0; i < len; i++)
             {
               if (i > 0)
index de2fccb7a1e5e6fae796b95f224ab7ccea25a432..8d73b1774274d5db4b0a7c77995f617fddf76833 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.stream;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Writer;
 import javax.xml.namespace.QName;
 import javax.xml.stream.Location;
@@ -141,7 +143,7 @@ public abstract class XMLEventImpl
   protected String encode(String text, boolean inAttr)
   {
     int len = text.length();
-    StringBuffer buf = null;
+    CPStringBuilder buf = null;
     for (int i = 0; i < len; i++)
       {
         char c = text.charAt(i);
@@ -149,7 +151,7 @@ public abstract class XMLEventImpl
           {
             if (buf == null)
               {
-                buf = new StringBuffer(text.substring(0, i));
+                buf = new CPStringBuilder(text.substring(0, i));
               }
             buf.append("&lt;");
           }
@@ -157,7 +159,7 @@ public abstract class XMLEventImpl
           {
             if (buf == null)
               {
-                buf = new StringBuffer(text.substring(0, i));
+                buf = new CPStringBuilder(text.substring(0, i));
               }
             buf.append("&gt;");
           }
@@ -165,7 +167,7 @@ public abstract class XMLEventImpl
           {
             if (buf == null)
               {
-                buf = new StringBuffer(text.substring(0, i));
+                buf = new CPStringBuilder(text.substring(0, i));
               }
             buf.append("&amp;");
           }
@@ -173,7 +175,7 @@ public abstract class XMLEventImpl
           {
             if (buf == null)
               {
-                buf = new StringBuffer(text.substring(0, i));
+                buf = new CPStringBuilder(text.substring(0, i));
               }
             buf.append("&apos;");
           }
@@ -181,7 +183,7 @@ public abstract class XMLEventImpl
           {
             if (buf == null)
               {
-                buf = new StringBuffer(text.substring(0, i));
+                buf = new CPStringBuilder(text.substring(0, i));
               }
             buf.append("&quot;");
           }
index 049575ac7071dc5ed43731ba29b8307d8caee524..27aaa734dd6090dc2225af9a09ea1a84a9f1b2ba 100644 (file)
@@ -53,6 +53,8 @@ Partly derived from code which carried the following notice:
 
 package gnu.xml.stream;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.BufferedInputStream;
 import java.io.EOFException;
 import java.io.File;
@@ -691,7 +693,7 @@ public class XMLParser
   {
     if (event != XMLStreamConstants.START_ELEMENT)
       throw new XMLStreamException("current event must be START_ELEMENT");
-    StringBuffer elementText = new StringBuffer();
+    CPStringBuilder elementText = new CPStringBuilder();
     int depth = stack.size();
     while (event != XMLStreamConstants.END_ELEMENT || stack.size() > depth)
       {
@@ -2011,7 +2013,7 @@ public class XMLParser
     else
       {
         ContentModel model;
-        StringBuffer acc = new StringBuffer();
+        CPStringBuilder acc = new CPStringBuilder();
         require('(');
         acc.append('(');
         skipWhitespace();
@@ -2058,7 +2060,7 @@ public class XMLParser
   /**
    * Parses an element content model.
    */
-  private ElementContentModel readElements(StringBuffer acc)
+  private ElementContentModel readElements(CPStringBuilder acc)
     throws IOException, XMLStreamException
   {
     int separator;
@@ -2159,7 +2161,7 @@ public class XMLParser
   /**
    * Parse a cp production.
    */
-  private ContentParticle readContentParticle(StringBuffer acc)
+  private ContentParticle readContentParticle(CPStringBuilder acc)
     throws IOException, XMLStreamException
   {
     ContentParticle cp = new ContentParticle();
@@ -2228,7 +2230,7 @@ public class XMLParser
   {
     String name = readNmtoken(true);
     requireWhitespace();
-    StringBuffer acc = new StringBuffer();
+    CPStringBuilder acc = new CPStringBuilder();
     HashSet values = new HashSet();
     String type = readAttType(acc, values);
     if (validating)
@@ -2277,7 +2279,7 @@ public class XMLParser
   /**
    * Parse an attribute type.
    */
-  private String readAttType(StringBuffer acc, HashSet values)
+  private String readAttType(CPStringBuilder acc, HashSet values)
     throws IOException, XMLStreamException
   {
     if (tryRead('('))
@@ -2313,7 +2315,7 @@ public class XMLParser
   /**
    * Parse an enumeration.
    */
-  private void readEnumeration(boolean isNames, StringBuffer acc,
+  private void readEnumeration(boolean isNames, CPStringBuilder acc,
                                HashSet values)
     throws IOException, XMLStreamException
   {
@@ -2344,7 +2346,7 @@ public class XMLParser
   /**
    * Parse a notation type for an attribute.
    */
-  private void readNotationType(StringBuffer acc, HashSet values)
+  private void readNotationType(CPStringBuilder acc, HashSet values)
     throws IOException, XMLStreamException
   {
     requireWhitespace();
@@ -3518,7 +3520,7 @@ public class XMLParser
   private char[] readCharacterRef(int base)
     throws IOException, XMLStreamException
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     for (int c = readCh(); c != 0x3b && c != -1; c = readCh())
       b.append(Character.toChars(c));
     try
@@ -4246,7 +4248,7 @@ public class XMLParser
     throws XMLStreamException
   {
     // Use regular expression
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     for (Iterator i = children.iterator(); i.hasNext(); )
       {
         buf.append((String) i.next());
@@ -4266,7 +4268,7 @@ public class XMLParser
   {
     if (model.regex == null)
       {
-        StringBuffer buf = new StringBuffer();
+        CPStringBuilder buf = new CPStringBuilder();
         buf.append('(');
         for (Iterator i = model.contentParticles.iterator(); i.hasNext(); )
           {
@@ -4476,7 +4478,7 @@ public class XMLParser
    */
   private static String encodeText(String text)
   {
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     int len = text.length();
     for (int i = 0; i < len; i++)
       {
@@ -4584,7 +4586,7 @@ public class XMLParser
 
     public String toString()
     {
-      StringBuffer buf = new StringBuffer(getClass().getName());
+      CPStringBuilder buf = new CPStringBuilder(getClass().getName());
       buf.append('[');
       buf.append("name=");
       buf.append(name);
index 6d1202e69b4799cfa447083a16dce3dbc4c4349a..fb953e4f66b44fbe68486a61464724a3b031db37 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -140,7 +142,7 @@ abstract class AbstractNumberNode
         start = end;
       }
     // Process tokens
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     len = tokens.size();
     int pos = 0;
     for (int i = 0; i < len; i++)
@@ -188,7 +190,7 @@ abstract class AbstractNumberNode
       return l;
     }*/
 
-  void format(StringBuffer buf, int number, String formatToken)
+  void format(CPStringBuilder buf, int number, String formatToken)
   {
     int len = formatToken.length();
     char c = formatToken.charAt(len - 1);
@@ -254,7 +256,7 @@ abstract class AbstractNumberNode
 
   static final String alphabetic(char offset, int number)
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     while (number > 0)
       {
         int r = number % 26;
@@ -269,7 +271,7 @@ abstract class AbstractNumberNode
 
   static final String roman(boolean upper, int number)
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     for (int pos = roman_numbers.length - 1; pos >= 0; pos -= 2)
       {
         int f = number / roman_numbers[pos];
@@ -317,7 +319,7 @@ abstract class AbstractNumberNode
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("number");
+    CPStringBuilder buf = new CPStringBuilder("number");
     buf.append('[');
     buf.append("format=");
     buf.append(format);
index 041809bdf1a9291b78f3729584b41fcd0981086e..0daaa7aeccdb700e821fa14ae72061c70d710d44 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -192,7 +194,7 @@ final class ApplyTemplatesNode
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("apply-templates");
+    CPStringBuilder buf = new CPStringBuilder("apply-templates");
     buf.append('[');
     boolean o = false;
     if (select != null)
index 71e2ed0f7af89bb2a9d5c65b1b2948b0dd63d22b..bbc4e08059e6d66f5eb79307f337749da3bef98a 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 import javax.xml.transform.TransformerException;
@@ -231,7 +233,7 @@ final class AttributeNode
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("attribute");
+    CPStringBuilder buf = new CPStringBuilder("attribute");
     buf.append('[');
     buf.append("name=");
     buf.append(name);
index 4ee08322317a12967666c70485caf5c66f92b007..009321315bbe0f816809d0fb0615cc29113c9016 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -259,7 +261,7 @@ public class Bindings
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     boolean next = false;
     Collection seen = new HashSet();
     Map wctx = (Map) withParameters.getFirst();
index 31b26cbcdb0b53951e8a2ebf0b168fb124a7f42b..fe0eea74effe0852963eb925e37c4861b77a976e 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -86,7 +88,7 @@ final class CallTemplateNode
     TemplateNode t = stylesheet.getTemplate(mode, name);
     if (t != null)
       {
-        if (withParams != null)
+        if (!withParams.isEmpty())
           {
             // compute the parameter values
             LinkedList values = new LinkedList();
@@ -118,7 +120,7 @@ final class CallTemplateNode
           }
         t.apply(stylesheet, mode, context, pos, len,
                 parent, nextSibling);
-        if (withParams != null)
+        if (!withParams.isEmpty())
           {
             // pop the variable context
             stylesheet.bindings.pop(Bindings.WITH_PARAM);
@@ -133,20 +135,17 @@ final class CallTemplateNode
   
   public boolean references(QName var)
   {
-    if (withParams != null)
+    for (Iterator i = withParams.iterator(); i.hasNext(); )
       {
-        for (Iterator i = withParams.iterator(); i.hasNext(); )
-          {
-            if (((WithParam) i.next()).references(var))
-              return true;
-          }
+       if (((WithParam) i.next()).references(var))
+         return true;
       }
     return super.references(var);
   }
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("call-template");
+    CPStringBuilder buf = new CPStringBuilder("call-template");
     buf.append('[');
     buf.append("name=");
     buf.append(name);
index cf07fa54b07269794c7694dc3f8bea9784a189e0..fe2dc0c2f3ae21c1e4d3d5056a006f9ed99d71a4 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.xml.namespace.QName;
 import javax.xml.transform.TransformerException;
 import org.w3c.dom.Node;
@@ -77,7 +79,7 @@ final class ChooseNode
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("choose");
+    CPStringBuilder buf = new CPStringBuilder("choose");
     buf.append('[');
     buf.append(']');
     return buf.toString();
index 64cfa51915818165c6bb8c14184c90c704b7c3c5..bae628d9632ab3903eb4d53fbc2ba7074cbf79ef 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Iterator;
 import java.util.StringTokenizer;
 import javax.xml.namespace.QName;
@@ -152,7 +154,7 @@ final class CopyNode
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("copy");
+    CPStringBuilder buf = new CPStringBuilder("copy");
     if (uas != null)
       {
         buf.append('[');
index ed4358c90b6dfc9af61dfa3670b80e57071ec18a..4ce84329fc056b5f3ccbc24e8a8ff1a767ed4bf3 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -161,7 +163,7 @@ final class CopyOfNode
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("copy-of");
+    CPStringBuilder buf = new CPStringBuilder("copy-of");
     buf.append('[');
     buf.append("select=");
     buf.append(select);
index b6a5c365b120fdf4ba317958721f221cca8d3e55..c5a4dd20da415278a3b5be7df282d4e0a8d1c867 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -238,7 +240,7 @@ final class ElementNode
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("element");
+    CPStringBuilder buf = new CPStringBuilder("element");
     buf.append('[');
     buf.append("name=");
     if (namespace != null)
index 25b824534c9a1192bf7fc44fa4c1866cedabe0e2..8908114ccf4a6a7667f87f99791b16a98455eafd 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -57,9 +59,9 @@ final class ForEachNode
 {
 
   final Expr select;
-  final List sortKeys;
+  final List<SortKey> sortKeys;
 
-  ForEachNode(Expr select, List sortKeys)
+  ForEachNode(Expr select, List<SortKey> sortKeys)
   {
     this.select = select;
     this.sortKeys = sortKeys;
@@ -67,10 +69,10 @@ final class ForEachNode
 
   TemplateNode clone(Stylesheet stylesheet)
   {
-    int len = sortKeys != null ? sortKeys.size() : 0;
-    List sortKeys2 = new ArrayList(len);
+    int len = sortKeys.size();
+    List<SortKey> sortKeys2 = new ArrayList<SortKey>(len);
     for (int i = 0; i < len; i++)
-      sortKeys2.add(((Key) sortKeys.get(i)).clone(stylesheet));
+      sortKeys2.add(sortKeys.get(i).clone(stylesheet));
     TemplateNode ret = new ForEachNode(select.clone(stylesheet),
                                        sortKeys2);
     if (children != null)
@@ -80,6 +82,7 @@ final class ForEachNode
     return ret;
   }
 
+  @Override
   void doApply(Stylesheet stylesheet, QName mode,
              Node context, int pos, int len,
              Node parent, Node nextSibling)
@@ -94,26 +97,26 @@ final class ForEachNode
         //System.err.println(toString() + ": " + context+" -> "+ret);
         if (ret instanceof Collection)
           {
-            Collection ns = (Collection) ret;
-            List list = new ArrayList(ns);
-            if (sortKeys != null)
-              {
-                for (Iterator i = sortKeys.iterator(); i.hasNext(); )
-                  {
-                    SortKey sortKey = (SortKey) i.next();
-                    sortKey.init(stylesheet, mode, context, pos, len, parent,
-                                 nextSibling);
-                  }
-                Collections.sort(list, new XSLComparator(sortKeys));
-              }
-            else
+           /* Suppression is safe, as we know context produces Collection<Node> */
+           @SuppressWarnings("unchecked")
+             Collection<Node> ns = (Collection<Node>) ret;
+            List<Node> list = new ArrayList<Node>(ns);
+           if (!sortKeys.isEmpty())
+             {
+               for (SortKey sortKey : sortKeys)
+                 {
+                   sortKey.init(stylesheet, mode, context, pos, len, parent,
+                                nextSibling);
+                 }
+               Collections.sort(list, new XSLComparator(sortKeys));
+             }
+           else
               Collections.sort(list, documentOrderComparator);
             // Perform children for each node
             int l = list.size();
             int p = 1;
-            for (Iterator i = list.iterator(); i.hasNext(); )
+           for (Node node : list)
               {
-                Node node = (Node) i.next();
                 stylesheet.current = node;
                 children.apply(stylesheet, mode,
                                node, p++, l,
@@ -129,24 +132,23 @@ final class ForEachNode
                  parent, nextSibling);
   }
 
+  @Override
   public boolean references(QName var)
   {
     if (select != null && select.references(var))
       return true;
-    if (sortKeys != null)
+    for (Iterator<SortKey> i = sortKeys.iterator(); i.hasNext(); )
       {
-        for (Iterator i = sortKeys.iterator(); i.hasNext(); )
-          {
-            if (((SortKey) i.next()).references(var))
-              return true;
-          }
+       if (i.next().references(var))
+         return true;
       }
     return super.references(var);
   }
-  
+
+  @Override
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("for-each");
+    CPStringBuilder buf = new CPStringBuilder("for-each");
     buf.append('[');
     buf.append("select=");
     buf.append(select);
index 2a00d64ca82e225825d4cbae2dac45363d613fe1..eeb294138bae3d7df94371bfe9d883f03b69b2c5 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.xml.namespace.QName;
 import javax.xml.transform.TransformerException;
 import org.w3c.dom.Node;
@@ -99,7 +101,7 @@ final class IfNode
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("if");
+    CPStringBuilder buf = new CPStringBuilder("if");
     buf.append('[');
     buf.append("test=");
     buf.append(test);
index 890d76f6b1cdf8bd1063de9501930f0dd06e5292..a7eeeeef6ee2f437b15de1e8ccd11dc30a98909f 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.logging.Logger;
 import javax.xml.namespace.QName;
 import javax.xml.transform.TransformerException;
@@ -95,7 +97,7 @@ final class MessageNode
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("message");
+    CPStringBuilder buf = new CPStringBuilder("message");
     if (terminate)
       {
         buf.append('[');
index 8cd2677cf088a28ee7ae5d6ee6735ba741a4f9d1..431fbd3b1eac533eee9a01e71ebf872d55af816e 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Collections;
 import javax.xml.namespace.QName;
 import javax.xml.transform.TransformerException;
@@ -53,7 +55,7 @@ import gnu.xml.xpath.Expr;
  */
 final class ParameterNode
   extends TemplateNode
-  implements Comparable
+  implements Comparable<ParameterNode>
 {
 
   final QName name;
@@ -67,11 +69,12 @@ final class ParameterNode
     this.type = type;
   }
 
-  TemplateNode clone(Stylesheet stylesheet)
+  @Override
+  ParameterNode clone(Stylesheet stylesheet)
   {
-    TemplateNode ret = new ParameterNode(name,
-                                         select.clone(stylesheet),
-                                         type);
+    ParameterNode ret = new ParameterNode(name,
+                                         select == null ? null : select.clone(stylesheet),
+                                         type);
     if (children != null)
       ret.children = children.clone(stylesheet);
     if (next != null)
@@ -129,26 +132,22 @@ final class ParameterNode
     return super.references(var);
   }
 
-  public int compareTo(Object other)
+  public int compareTo(ParameterNode pn)
   {
-    if (other instanceof ParameterNode)
-      {
-        ParameterNode pn = (ParameterNode) other;
-        boolean r1 = references(pn.name);
-        boolean r2 = pn.references(name);
-        if (r1 && r2)
-          throw new IllegalArgumentException("circular definitions");
-        if (r1)
-          return 1;
-        if (r2)
-          return -1;
-      }
+    boolean r1 = references(pn.name);
+    boolean r2 = pn.references(name);
+    if (r1 && r2)
+      throw new IllegalArgumentException("circular definitions");
+    if (r1)
+      return 1;
+    if (r2)
+      return -1;
     return 0;
   }
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     switch (type)
       {
       case Bindings.VARIABLE:
@@ -164,11 +163,8 @@ final class ParameterNode
     buf.append('[');
     buf.append("name=");
     buf.append(name);
-    if (select != null)
-      {
-        buf.append(",select=");
-        buf.append(select);
-      }
+    buf.append(",select=");
+    buf.append(select);
     buf.append(']');
     return buf.toString();
   }
index bf61fc03880ca4f1bb37e173f5b3c6dc59463dd2..655f51f013074368e6a06ad98c21ac092dadcbf5 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.xml.namespace.QName;
 import javax.xml.transform.TransformerException;
 import org.w3c.dom.Document;
@@ -105,7 +107,7 @@ final class ProcessingInstructionNode
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("processing-instruction");
+    CPStringBuilder buf = new CPStringBuilder("processing-instruction");
     buf.append('[');
     buf.append("name=");
     buf.append(name);
index d4ffb05e224edcb0f644c0e200161f38a4f3f34a..72934a5b750e538a9e50a9426e9f65c839496390 100644 (file)
@@ -45,7 +45,22 @@ import org.w3c.dom.Node;
 import gnu.xml.xpath.Expr;
 
 /**
- * An XSL sort key.
+ * <p>
+ * An XSL sort key, as specified by section 10 of the XSL
+ * Transformations specification.  This takes the form:
+ * </p>
+ * <pre>
+ * &lt;xsl:sort
+ * select = string-expression
+ * lang = { nmtoken }
+ * data-type = { "text" | "number" | qname-but-not-ncname }
+ * order = { "ascending" | "descending" }
+ * case-order = { "upper-first" | "lower-first" } /&rt;
+ * </pre>
+ * <p>
+ * Note that all but the selection expression are optional,
+ * and so may be {@code null}.
+ * </p>
  *
  * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
  */
@@ -67,6 +82,20 @@ final class SortKey
   transient boolean descending;
   transient int caseOrder;
 
+  /**
+   * Constructs a new {@link SortKey} to represent an &lt;xsl:sort&rt;
+   * tag.
+   *
+   * @param select the XPath expression which selects the nodes to be sorted.
+   * @param lang the language of the sort keys or {@code null} if unspecified.
+   * @param dataType the data type of the strings.  May be "string", "number",
+   *                 a QName or {@code null} if unspecified.
+   * @param order the ordering of the nodes, which may be "ascending", "descending"
+   *              or {@code null} if unspecified.
+   * @param caseOrder the treatment of case when the data type is a string.  This
+   *                  may be "upper-first", "lower-first" or {@code null} if
+   *                  unspecified.
+   */ 
   SortKey(Expr select, TemplateNode lang, TemplateNode dataType,
           TemplateNode order, TemplateNode caseOrder)
   {
@@ -176,4 +205,35 @@ final class SortKey
     return false;
   }
 
+  /**
+   * Provides a clone of this {@link SortKey}, using the given
+   * stylesheet as a context.
+   *
+   * @param stylesheet the stylesheet which provides context for the cloning.
+   * @return a clone of this instance.
+   */
+  SortKey clone(Stylesheet stylesheet)
+  {
+    return new SortKey(select.clone(stylesheet),
+                      langTemplate == null ? null : cloneAttributeValueTemplate(langTemplate, stylesheet),
+                      dataTypeTemplate == null ? null : cloneAttributeValueTemplate(dataTypeTemplate, stylesheet),
+                      orderTemplate == null ? null : cloneAttributeValueTemplate(orderTemplate, stylesheet),
+                      caseOrderTemplate == null ? null : cloneAttributeValueTemplate(caseOrderTemplate, stylesheet));
+  }
+
+  /**
+   * Clones an attribute value template as created by
+   * {@link Stylesheet#parseAttributeValueTemplate(String, Node)}.
+   * The node may either by a literal node or an xsl:value-of expression.
+   *
+   * @param node the node to clone.
+   * @param stylesheet the stylesheet which provides context for the cloning.
+   * @return the cloned node.
+   */
+  private TemplateNode cloneAttributeValueTemplate(TemplateNode node, Stylesheet stylesheet)
+  {
+    if (node instanceof ValueOfNode)
+      return ((ValueOfNode) node).clone(stylesheet);
+    return ((LiteralNode) node).clone(stylesheet);
+  }
 }
index 35323e7353d158a4618127a8d238d45fe2cfc199..28996721884f69a51e734569034d12b1a696ebab 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
@@ -595,7 +597,7 @@ public class StreamSerializer
     if (!encoder.canEncode(text) || htmlNeedingEncoding)
       {
         // Check each character
-        StringBuffer buf = new StringBuffer();
+        CPStringBuilder buf = new CPStringBuilder();
         int len = text.length();
         for (int i = 0; i < len; i++)
           {
@@ -648,20 +650,20 @@ public class StreamSerializer
   String encode(String text, boolean encodeCtl, boolean inAttr)
   {
     int len = text.length();
-    StringBuffer buf = null;
+    CPStringBuilder buf = null;
     for (int i = 0; i < len; i++)
       {
         char c = text.charAt(i);
         if (c == '<')
           {
             if (buf == null)
-              buf = new StringBuffer(text.substring(0, i));
+              buf = new CPStringBuilder(text.substring(0, i));
             buf.append("&lt;");
           }
         else if (c == '>')
           {
             if (buf == null)
-              buf = new StringBuffer(text.substring(0, i));
+              buf = new CPStringBuilder(text.substring(0, i));
             buf.append("&gt;");
           }
         else if (c == '&')
@@ -675,14 +677,14 @@ public class StreamSerializer
             else
               {
                 if (buf == null)
-                  buf = new StringBuffer(text.substring(0, i));
+                  buf = new CPStringBuilder(text.substring(0, i));
                 buf.append("&amp;");
               }
           }
         else if (c == '\'' && inAttr)
           {
             if (buf == null)
-              buf = new StringBuffer(text.substring(0, i));
+              buf = new CPStringBuilder(text.substring(0, i));
             if (mode == Stylesheet.OUTPUT_HTML)
               // HTML does not define &apos;, use character entity ref
               buf.append("&#x27;");
@@ -692,7 +694,7 @@ public class StreamSerializer
         else if (c == '"' && inAttr)
           {
             if (buf == null)
-              buf = new StringBuffer(text.substring(0, i));
+              buf = new CPStringBuilder(text.substring(0, i));
             buf.append("&quot;");
           }
         else if (encodeCtl)
@@ -700,7 +702,7 @@ public class StreamSerializer
             if (c < 0x20)
               {
                 if (buf == null)
-                  buf = new StringBuffer(text.substring(0, i));
+                  buf = new CPStringBuilder(text.substring(0, i));
                 buf.append('&');
                 buf.append('#');
                 buf.append((int) c);
index 41562c3c60a61d755c11cd7bc6a35eb049439af8..30bd953495be797ba2366ac95058b6a4ab806d0f 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.text.DecimalFormat;
 import java.text.DecimalFormatSymbols;
 import java.util.ArrayList;
@@ -108,18 +110,18 @@ class Stylesheet
    */
   String version;
 
-  Collection extensionElementPrefixes;
-  Collection excludeResultPrefixes;
+  Collection<String> extensionElementPrefixes;
+  Collection<String> excludeResultPrefixes;
 
   /**
    * Set of element names for which we should strip whitespace.
    */
-  Set stripSpace;
+  Set<StrippingInstruction> stripSpace;
 
   /**
    * Set of element names for which we should preserve whitespace.
    */
-  Set preserveSpace;
+  Set<StrippingInstruction> preserveSpace;
 
   /**
    * Output options.
@@ -132,34 +134,34 @@ class Stylesheet
   boolean outputStandalone;
   String outputPublicId;
   String outputSystemId;
-  Collection outputCdataSectionElements;
+  Collection<String> outputCdataSectionElements;
   boolean outputIndent;
   String outputMediaType;
 
   /**
    * Keys.
    */
-  Collection keys;
+  Collection<Key> keys;
 
   /**
    * Decimal formats.
    */
-  Map decimalFormats;
+  Map<String,DecimalFormat> decimalFormats;
   
   /**
    * Namespace aliases.
    */
-  Map namespaceAliases;
+  Map<String,String> namespaceAliases;
 
   /**
    * Attribute-sets.
    */
-  List attributeSets;
+  List<AttributeSet> attributeSets;
 
   /**
    * Variables.
    */
-  List variables;
+  List<ParameterNode> variables;
 
   /**
    * Variable and parameter bindings.
@@ -169,7 +171,7 @@ class Stylesheet
   /**
    * Templates.
    */
-  LinkedList templates;
+  LinkedList<Template> templates;
 
   TemplateNode builtInNodeTemplate;
   TemplateNode builtInTextTemplate;
@@ -203,22 +205,22 @@ class Stylesheet
     this.systemId = systemId;
     this.precedence = precedence;
     this.parent = parent;
-    extensionElementPrefixes = new HashSet();
-    excludeResultPrefixes = new HashSet();
-    stripSpace = new LinkedHashSet();
-    preserveSpace = new LinkedHashSet();
-    outputCdataSectionElements = new LinkedHashSet();
+    extensionElementPrefixes = new HashSet<String>();
+    excludeResultPrefixes = new HashSet<String>();
+    stripSpace = new LinkedHashSet<StrippingInstruction>();
+    preserveSpace = new LinkedHashSet<StrippingInstruction>();
+    outputCdataSectionElements = new LinkedHashSet<String>();
     xpath = (XPathImpl) factory.xpathFactory.newXPath();
     xpath.setNamespaceContext(this);
     if (parent == null)
       {
         bindings = new Bindings(this);
-        attributeSets = new LinkedList();
-        variables = new LinkedList();
-        namespaceAliases = new LinkedHashMap();
-        templates = new LinkedList();
-        keys = new LinkedList();
-        decimalFormats = new LinkedHashMap();
+        attributeSets = new LinkedList<AttributeSet>();
+        variables = new LinkedList<ParameterNode>();
+        namespaceAliases = new LinkedHashMap<String,String>();
+        templates = new LinkedList<Template>();
+        keys = new LinkedList<Key>();
+        decimalFormats = new LinkedHashMap<String,DecimalFormat>();
         initDefaultDecimalFormat();
         xpath.setXPathFunctionResolver(this);
       }
@@ -247,7 +249,7 @@ class Stylesheet
     xpath.setXPathVariableResolver(bindings);
 
     Test anyNode = new NodeTypeTest((short) 0);
-    List tests = Collections.singletonList(anyNode);
+    List<Test> tests = Collections.singletonList(anyNode);
     builtInNodeTemplate =
       new ApplyTemplatesNode(new Selector(Selector.CHILD, tests),
                              null, null, null, true);
@@ -263,9 +265,8 @@ class Stylesheet
     if (debug)
       {
         System.err.println("Stylesheet: " + doc.getDocumentURI());
-        for (Iterator i = templates.iterator(); i.hasNext(); )
+       for (Template t : templates)
           {
-            Template t = (Template) i.next();
             t.list(System.err);
             System.err.println("--------------------");
           }
@@ -307,34 +308,30 @@ class Stylesheet
         Stylesheet clone = (Stylesheet) super.clone();
         clone.bindings = (Bindings) bindings.clone();
 
-        LinkedList templates2 = new LinkedList();
-        for (Iterator i = templates.iterator(); i.hasNext(); )
+        LinkedList<Template> templates2 = new LinkedList<Template>();
+       for (Template t : templates)
           {
-            Template t = (Template) i.next();
             templates2.add(t.clone(clone));
           }
         clone.templates = templates2;
 
-        LinkedList attributeSets2 = new LinkedList();
-        for (Iterator i = attributeSets.iterator(); i.hasNext(); )
+        LinkedList<AttributeSet> attributeSets2 = new LinkedList<AttributeSet>();
+       for (AttributeSet as : attributeSets)
           {
-            AttributeSet as = (AttributeSet) i.next();
             attributeSets2.add(as.clone(clone));
           }
         clone.attributeSets = attributeSets2;
 
-        LinkedList variables2 = new LinkedList();
-        for (Iterator i = variables.iterator(); i.hasNext(); )
+        LinkedList<ParameterNode> variables2 = new LinkedList<ParameterNode>();
+       for (ParameterNode var : variables)
           {
-            ParameterNode var = (ParameterNode) i.next();
             variables2.add(var.clone(clone));
           }
         clone.variables = variables2;
 
-        LinkedList keys2 = new LinkedList();
-        for (Iterator i = keys.iterator(); i.hasNext(); )
+        LinkedList<Key> keys2 = new LinkedList<Key>();
+       for (Key k : keys)
           {
-            Key k = (Key) i.next();
             keys2.add(k.clone(clone));
           }
         clone.keys = keys2;
@@ -357,11 +354,10 @@ class Stylesheet
     // See XSLT 11.4: "If the template or expression specifying the value of
     // a global variable x references a global variable y, then the value
     // for y must be computed before the value of x."
-    List topLevel = new ArrayList(variables);
+    List<ParameterNode> topLevel = new ArrayList<ParameterNode>(variables);
     Collections.sort(topLevel);
-    for (Iterator i = topLevel.iterator(); i.hasNext(); )
+    for (ParameterNode var : topLevel)
       {
-        ParameterNode var = (ParameterNode) i.next();
         bindings.set(var.name,
                      var.getValue(this, null, context, 1, 1),
                      var.type);
@@ -381,7 +377,7 @@ class Stylesheet
     return (current == null) ? null : current.lookupPrefix(namespaceURI);
   }
 
-  public Iterator getPrefixes(String namespaceURI)
+  public Iterator<String> getPrefixes(String namespaceURI)
   {
     // TODO
     return Collections.singleton(getPrefix(namespaceURI)).iterator();
@@ -408,9 +404,8 @@ class Stylesheet
     if (debug)
       System.err.println("getTemplate: mode="+mode+" context="+context);
     Template selected = null;
-    for (Iterator j = templates.iterator(); j.hasNext(); )
+    for (Template t : templates)
       {
-        Template t = (Template) j.next();
         boolean isMatch = t.matches(mode, context);
         if (applyImports)
           {
@@ -472,9 +467,8 @@ class Stylesheet
     throws TransformerException
   {
     Template selected = null;
-    for (Iterator j = templates.iterator(); j.hasNext(); )
+    for (Template t : templates)
       {
-        Template t = (Template) j.next();
         boolean isMatch = t.matches(name);
         if (isMatch)
           {
@@ -862,8 +856,8 @@ class Stylesheet
     // Tokenize
     int len = value.length();
     int off = 0;
-    List tokens = new ArrayList(); // text tokens
-    List types = new ArrayList(); // literal or expression
+    List<String> tokens = new ArrayList<String>(); // text tokens
+    List<Boolean> types = new ArrayList<Boolean>(); // literal or expression
     int depth = 0;
     for (int i = 0; i < len; i++)
       {
@@ -936,8 +930,8 @@ class Stylesheet
     len = tokens.size();
     for (int i = len - 1; i >= 0; i--)
       {
-        String token = (String) tokens.get(i);
-        Boolean type = (Boolean) types.get(i);
+        String token = tokens.get(i);
+        Boolean type = types.get(i);
         if (type == Boolean.TRUE)
           {
             // Expression text
@@ -989,9 +983,8 @@ class Stylesheet
           {
             // Conflict resolution
             StrippingInstruction ssi = null, psi = null;
-            for (Iterator i = stripSpace.iterator(); i.hasNext(); )
+           for (StrippingInstruction si : stripSpace)
               {
-                StrippingInstruction si = (StrippingInstruction) i.next();
                 if (si.element.matches(ctx, 1, 1))
                   {
                     if (ssi != null)
@@ -1005,9 +998,8 @@ class Stylesheet
                     ssi = si;
                   }
               }
-            for (Iterator i = preserveSpace.iterator(); i.hasNext(); )
+           for (StrippingInstruction si : preserveSpace)
               {
-                StrippingInstruction si = (StrippingInstruction) i.next();
                 if (si.element.matches(ctx, 1, 1))
                   {
                     if (psi != null)
@@ -1114,8 +1106,8 @@ class Stylesheet
     if (s == null)
       s = "child::node()";
     Node children = node.getFirstChild();
-    List sortKeys = parseSortKeys(children);
-    List withParams = parseWithParams(children);
+    List<SortKey> sortKeys = parseSortKeys(children);
+    List<WithParam> withParams = parseWithParams(children);
     Expr select = (Expr) xpath.compile(s);
     return new ApplyTemplatesNode(select, mode,
                                   sortKeys, withParams, false);
@@ -1131,7 +1123,7 @@ class Stylesheet
     String n = getRequiredAttribute(attrs, "name", node);
     QName name = getQName(n);
     Node children = node.getFirstChild();
-    List withParams = parseWithParams(children);
+    List<WithParam> withParams = parseWithParams(children);
     return new CallTemplateNode(name, withParams);
   }
   
@@ -1158,7 +1150,7 @@ class Stylesheet
     NamedNodeMap attrs = node.getAttributes();
     String s = getRequiredAttribute(attrs, "select", node);
     Node children = node.getFirstChild();
-    List sortKeys = parseSortKeys(children);
+    List<SortKey> sortKeys = parseSortKeys(children);
     Expr select = (Expr) xpath.compile(s);
     ForEachNode ret = new ForEachNode(select, sortKeys);
     ret.children = parse(children);
@@ -1620,10 +1612,10 @@ class Stylesheet
     return ret;
   }
 
-  final List parseSortKeys(Node node)
+  final List<SortKey> parseSortKeys(Node node)
     throws TransformerConfigurationException, XPathExpressionException
   {
-    List ret = new LinkedList();
+    List<SortKey> ret = new LinkedList<SortKey>();
     while (node != null)
       {
         String namespaceUri = node.getNamespaceURI();
@@ -1652,13 +1644,13 @@ class Stylesheet
           }
         node = node.getNextSibling();
       }
-    return ret.isEmpty() ? null : ret;
+    return ret;
   }
 
-  final List parseWithParams(Node node)
+  final List<WithParam> parseWithParams(Node node)
     throws TransformerConfigurationException, XPathExpressionException
   {
-    List ret = new LinkedList();
+    List<WithParam> ret = new LinkedList<WithParam>();
     while (node != null)
       {
         String namespaceUri = node.getNamespaceURI();
@@ -1688,7 +1680,7 @@ class Stylesheet
           }
         node = node.getNextSibling();
       }
-    return ret.isEmpty() ? null : ret;
+    return ret;
   }
 
   /**
@@ -1697,7 +1689,7 @@ class Stylesheet
    * exclude-result-prefixes.
    */
   final void addNamespaceNodes(Node source, Node target, Document doc,
-                               Collection elementExcludeResultPrefixes)
+                               Collection<String> elementExcludeResultPrefixes)
   {
     NamedNodeMap attrs = source.getAttributes();
     if (attrs != null)
@@ -1768,5 +1760,14 @@ class Stylesheet
     dst.setUserData(key, data, this);
   }
 
+  public String toString()
+  {
+    CPStringBuilder b = new CPStringBuilder(getClass().getName());
+    b.append("[templates=");
+    b.append(templates);
+    b.append("]");
+    return b.toString();
+  }
+
 }
 
index 1414dac9eb3ac4b26c25c0c73727ca83be6a3d73..7ddef0ae50ecc711b53860570a0fb1e4f59e04b3 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.PrintStream;
 import javax.xml.namespace.QName;
 import javax.xml.transform.TransformerException;
@@ -226,7 +228,7 @@ class Template
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer(getClass().getName());
+    CPStringBuilder buf = new CPStringBuilder(getClass().getName());
     buf.append('[');
     if (name != null)
       {
@@ -243,6 +245,8 @@ class Template
         buf.append(",mode=");
         buf.append(mode);
       }
+    buf.append(",node=");
+    buf.append(node);
     buf.append(']');
     return buf.toString();
     
index 6ff727c073c3307f4ed77a63fca9f38cfb8d4285..ad80c59f9223627da658fab58506a99b85cd5511 100644 (file)
@@ -52,7 +52,7 @@ import gnu.xml.xpath.DocumentOrderComparator;
 abstract class TemplateNode
 {
 
-  static final Comparator documentOrderComparator =
+  static final Comparator<Node> documentOrderComparator =
     new DocumentOrderComparator();
 
   TemplateNode children;
index 527bd979db00cabe61f84bd0ee2b583bfd82e123..e5395f6fb22ee11bcb395e3ead16019f802a702d 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Properties;
 import javax.xml.transform.Templates;
 import javax.xml.transform.Transformer;
@@ -76,5 +78,18 @@ class TemplatesImpl
   {
     return (Properties) outputProperties.clone();
   }
-  
+
+  public String toString()
+  {
+    CPStringBuilder b = new CPStringBuilder(getClass().getName());
+    b.append("[factory=");
+    b.append(factory);
+    b.append(",stylesheet=");
+    b.append(stylesheet);
+    b.append(",outputProperties=");
+    b.append(outputProperties);
+    b.append("]");
+    return b.toString();
+  }
+
 }
index 39423b270ebc4eca64ef18136d36b2898fb0cf8f..93d1d541775dcc94412eb09357d0b8b45951c5a5 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.xml.namespace.QName;
 import javax.xml.transform.TransformerException;
 import org.w3c.dom.Document;
@@ -106,7 +108,7 @@ final class TextNode
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("text");
+    CPStringBuilder buf = new CPStringBuilder("text");
     if (disableOutputEscaping)
       {
         buf.append('[');
index f43b6602f23104b5ce7a34114db11881083d9477..a975c691f299ad0cef370ff741cbaaee2215a7e9 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.BufferedOutputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -722,7 +724,7 @@ class TransformerImpl
               }
             else
               {
-                StringBuffer buf = new StringBuffer();
+                CPStringBuilder buf = new CPStringBuilder();
                 buf.append('\n');
                 for (int i = 0; i < offset + 1; i++)
                   buf.append(INDENT_WHITESPACE);
@@ -733,7 +735,7 @@ class TransformerImpl
                     node.insertBefore(doc.createTextNode(ws), ctx);
                     reindent(doc, ctx, offset + 1);
                   }
-                buf = new StringBuffer();
+                buf = new CPStringBuilder();
                 buf.append('\n');
                 for (int i = 0; i < offset; i++)
                   buf.append(INDENT_WHITESPACE);
index cc8593c4601afb87324bb201797fb69f113d7327..9ac5cdc0413e161a06431cbe228d5f68b5263abf 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
@@ -95,7 +97,7 @@ class TransformerOutputProperties
         defaultProperties.put(OutputKeys.DOCTYPE_SYSTEM,
                               stylesheet.outputSystemId);
       }
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     for (Iterator i = stylesheet.outputCdataSectionElements.iterator();
          i.hasNext(); )
       {
index 92002f1f5b6f0e534a6d696787d500a6d9ed0000..7ba0eae21a4d6e4ce95b4c793126c1062e354a08 100644 (file)
@@ -61,27 +61,28 @@ final class UnparsedEntityUriFunction
   implements XPathFunction, Function
 {
 
-  List args;
+  List<Expr> args;
 
   public Object evaluate(List args)
     throws XPathFunctionException
   {
     // Useless...
-    return Collections.EMPTY_SET;
+    return Collections.emptySet();
   }
 
-  public void setArguments(List args)
+  public void setArguments(List<Expr> args)
   {
     this.args = args;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     int arity = args.size();
-    List values = new ArrayList(arity);
+    List<Object> values = new ArrayList<Object>(arity);
     for (int i = 0; i < arity; i++)
       {
-        Expr arg = (Expr) args.get(i);
+        Expr arg = args.get(i);
         values.add(arg.evaluate(context, pos, len));
       }
     String name = _string(context, values.get(0));
@@ -107,10 +108,10 @@ final class UnparsedEntityUriFunction
   {
     UnparsedEntityUriFunction f = new UnparsedEntityUriFunction();
     int len = args.size();
-    List args2 = new ArrayList(len);
+    List<Expr> args2 = new ArrayList<Expr>(len);
     for (int i = 0; i < len; i++)
       {
-        args2.add(((Expr) args.get(i)).clone(context));
+        args2.add(args.get(i).clone(context));
       }
     f.setArguments(args2);
     return f;
@@ -118,9 +119,9 @@ final class UnparsedEntityUriFunction
 
   public boolean references(QName var)
   {
-    for (Iterator i = args.iterator(); i.hasNext(); )
+    for (Iterator<Expr> i = args.iterator(); i.hasNext(); )
       {
-        if (((Expr) i.next()).references(var))
+        if (i.next().references(var))
           {
             return true;
           }
index 68f31e05ae3275b90c5ee0a3490272f21e86c347..156affa77be4b17015df782f41b345b2e3c3e9ce 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Collection;
 import java.util.Iterator;
 import javax.xml.namespace.QName;
@@ -74,7 +76,8 @@ final class ValueOfNode
       ret.next = next.clone(stylesheet);
     return ret;
   }
-
+  
+  @Override
   void doApply(Stylesheet stylesheet, QName mode,
                Node context, int pos, int len,
                Node parent, Node nextSibling)
@@ -84,10 +87,9 @@ final class ValueOfNode
     String value;
     if (ret instanceof Collection)
       {
-        StringBuffer buf = new StringBuffer();
-        for (Iterator i = ((Collection) ret).iterator(); i.hasNext(); )
+        CPStringBuilder buf = new CPStringBuilder();
+        for (Node node : ((Collection<Node>) ret))
           {
-            Node node = (Node) i.next();
             buf.append(Expr.stringValue(node));
           }
         value = buf.toString();
@@ -126,7 +128,7 @@ final class ValueOfNode
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("value-of");
+    CPStringBuilder buf = new CPStringBuilder("value-of");
     buf.append('[');
     buf.append("select=");
     buf.append(select);
index fe3f403ab0c2c72e635c3478561c5345a66e9910..fc9d5b187ef2486ee32e978aa3fb8fe4797bfae0 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.xml.namespace.QName;
 import javax.xml.transform.TransformerException;
 import org.w3c.dom.Node;
@@ -102,7 +104,7 @@ final class WhenNode
   
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("when");
+    CPStringBuilder buf = new CPStringBuilder("when");
     buf.append('[');
     buf.append("test=");
     buf.append(test);
index 222f370c8b94ce0d9acd92e25713015bdddec1ba..88243693d7f000a7d9ede1e4389e11010e1469a0 100644 (file)
@@ -51,72 +51,66 @@ import gnu.xml.xpath.Expr;
  * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
  */
 class XSLComparator
-  implements Comparator
+  implements Comparator<Node>
 {
 
-  final List sortKeys;
+  final List<SortKey> sortKeys;
 
-  XSLComparator(List sortKeys)
+  XSLComparator(List<SortKey> sortKeys)
   {
     this.sortKeys = sortKeys;
   }
 
-  public int compare(Object o1, Object o2)
+  public int compare(Node n1, Node n2)
   {
-    if (o1 instanceof Node && o2 instanceof Node)
+    for (SortKey sortKey : sortKeys)
       {
-        Node n1 = (Node) o1;
-        Node n2 = (Node) o2;
-        for (Iterator i = sortKeys.iterator(); i.hasNext(); )
-          {
-            SortKey sortKey = (SortKey) i.next();
-            String k1 = sortKey.key(n1);
-            String k2 = sortKey.key(n2);
-            if ("text".equals(sortKey.dataType))
-              {
-                Locale locale = (sortKey.lang == null) ? Locale.getDefault() :
-                  new Locale(sortKey.lang);
-                Collator collator = Collator.getInstance(locale);
-                int d = collator.compare(k1, k2);
-                if (d != 0)
-                  {
-                    switch (sortKey.caseOrder)
-                      {
-                      case SortKey.UPPER_FIRST:
-                        // TODO
-                        break;
-                      case SortKey.LOWER_FIRST:
-                        // TODO
-                        break;
-                      }
-                    if (sortKey.descending)
-                      {
-                        d = -d;
-                      }
-                    return d;
-                  }
-              }
-            else if ("number".equals(sortKey.dataType))
-              {
-                double kn1 = Expr._number(n1, k1);
-                double kn2 = Expr._number(n2, k2);
-                int d;
-                if (Double.isNaN(kn1) || Double.isInfinite(kn2))
-                  {
-                    d = -1;
-                  }
-                else if (Double.isNaN(kn2) || Double.isInfinite(kn1))
-                  {
-                    d = 1;
-                  }
-                else
-                  {
-                    // conversion to int may give 0 for small numbers
-                    d = (kn1 > kn2) ? 1 : (kn1 < kn2) ? -1 : 0;
-                  }
-                return (sortKey.descending) ? -d : d;
-              }
-          }
+       String k1 = sortKey.key(n1);
+       String k2 = sortKey.key(n2);
+       if ("text".equals(sortKey.dataType))
+         {
+           Locale locale = (sortKey.lang == null) ? Locale.getDefault() :
+             new Locale(sortKey.lang);
+           Collator collator = Collator.getInstance(locale);
+           int d = collator.compare(k1, k2);
+           if (d != 0)
+             {
+               switch (sortKey.caseOrder)
+                 {
+                 case SortKey.UPPER_FIRST:
+                   // TODO
+                   break;
+                 case SortKey.LOWER_FIRST:
+                   // TODO
+                   break;
+                 }
+               if (sortKey.descending)
+                 {
+                   d = -d;
+                 }
+               return d;
+             }
+         }
+       else if ("number".equals(sortKey.dataType))
+         {
+           double kn1 = Expr._number(n1, k1);
+           double kn2 = Expr._number(n2, k2);
+           int d;
+           if (Double.isNaN(kn1) || Double.isInfinite(kn2))
+             {
+               d = -1;
+             }
+           else if (Double.isNaN(kn2) || Double.isInfinite(kn1))
+             {
+               d = 1;
+             }
+           else
+             {
+               // conversion to int may give 0 for small numbers
+               d = (kn1 > kn2) ? 1 : (kn1 < kn2) ? -1 : 0;
+             }
+           return (sortKey.descending) ? -d : d;
+         }
       }
     return 0;
   }
index 8bb8977315e34edd10b18c627f603608b7c79390..c1379211ae57994651084b3441fe6ed02d930713 100644 (file)
@@ -75,8 +75,8 @@ class XSLURIResolver
   implements URIResolver
 {
 
-  Map lastModifiedCache = new HashMap();
-  Map nodeCache = new HashMap();
+  final Map<String,Long> lastModifiedCache = new HashMap<String,Long>();
+  final Map<String,Node> nodeCache = new HashMap<String,Node>();
   DocumentBuilder builder;
   URIResolver userResolver;
   ErrorListener userListener;
@@ -157,10 +157,10 @@ class XSLURIResolver
             if (url != null)
               {
                 systemId = url.toString();
-                node = (Node) nodeCache.get(systemId);
+                node = nodeCache.get(systemId);
                 // Is the resource up to date?
                 URLConnection conn = url.openConnection();
-                Long llm = (Long) lastModifiedCache.get(systemId);
+                Long llm = lastModifiedCache.get(systemId);
                 if (llm != null)
                   {
                     lastLastModified = llm.longValue();
@@ -301,6 +301,7 @@ class XSLURIResolver
   {
     SAXEventSink eventSink = new SAXEventSink();
     eventSink.setReader(reader);
+    eventSink.setNamespaceAware(true);
     reader.setContentHandler(eventSink);
     reader.setDTDHandler(eventSink);
     reader.setProperty("http://xml.org/sax/properties/lexical-handler",
index 5da086ed8f9ef75448bde073b7e90de14aa7bda9..a8f50969168b3adb424899ee95284c83663eee5c 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 
 import org.xml.sax.ErrorHandler;
@@ -271,7 +273,7 @@ final public class DoParse
        String                  label,
        SAXParseException       e
     ) {
-       StringBuffer    buf = new StringBuffer ();
+       CPStringBuilder buf = new CPStringBuilder ();
        int             temp;
 
        buf.append ("** ");
index f3704cd25c7fc711701da1f4303ca7eb4f74b9f8..93127f442113fd656a189a42c10099c96d991300 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.xml.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.net.URL;
@@ -623,7 +625,7 @@ public class XCat implements EntityResolver2
     private static String normalizePublicId (boolean full, String publicId)
     {
        if (publicId.startsWith ("urn:publicid:")) {
-           StringBuffer        buf = new StringBuffer ();
+           CPStringBuilder     buf = new CPStringBuilder ();
            char                chars [] = publicId.toCharArray ();
 boolean hasbug = false;
 
@@ -814,7 +816,7 @@ System.err.println ("nyet unhexing public id: " + publicId);
                    replace = (String) rewrites.get (temp);
                }
                if (prefix != null) {
-                   StringBuffer        buf = new StringBuffer (replace);
+                   CPStringBuilder     buf = new CPStringBuilder (replace);
                    buf.append (uri.substring (prefixLen));
                    // IF the URI is accessible ...
                    return new InputSource (buf.toString ());
index 24b38923fa20631edeb2cd75ca72efa9dd740c1e..274594720195c3e74a7aef299d1b87e6db8e4209 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.BufferedWriter;
 import java.io.CharConversionException;
 import java.io.IOException;
@@ -152,7 +154,7 @@ public class XMLWriter
     private String             eol = sysEOL;
 
     private short              dangerMask;
-    private StringBuffer       stringBuf;
+    private CPStringBuilder    stringBuf;
     private Locator            locator;
     private ErrorHandler       errHandler;
 
@@ -289,7 +291,7 @@ public class XMLWriter
            }
 
            if (dangerMask != 0)
-               stringBuf = new StringBuffer ();
+               stringBuf = new CPStringBuilder ();
        }
 
        this.encoding = encoding;
index 98554e1847acf815ba58c1791edd50d9098858ff..d16106e00441366bc959f41ef6174cb53be58e1c 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.validation.datatype;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 import org.relaxng.datatype.DatatypeException;
@@ -75,7 +77,7 @@ final class EntitiesType
     throws DatatypeException
   {
     super.checkValid(value, context);
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     int len = value.length();
     for (int i = 0; i < len; i++)
       {
index 62524edf7cbb9490403db4e6bc3ddc0c2787321f..d49964561a62638e1ee320042f0cfa9df8f24f72 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.validation.datatype;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
@@ -79,7 +81,7 @@ final class NMTokensType
   {
     super.checkValid(value, context);
     int len = value.length();
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     for (int i = 0; i < len; i++)
       {
         char c = value.charAt(i);
index cbc1ee0648bf4654ee1aafe5319fb0691ae023b1..61098d6e4f227f5758933272967a6d79cefbebc4 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.xpath;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.xml.namespace.QName;
 import org.w3c.dom.Node;
 
@@ -139,7 +141,7 @@ final class ArithmeticExpr
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     buf.append(lhs);
     buf.append(' ');
     switch (op)
index 256de0382a83dd0648c63e17dd720bd7f16f4009..f661b2ac285a24110be061fff8078aa3f43fb001 100644 (file)
@@ -61,9 +61,9 @@ final class BooleanFunction
 
   final Expr arg;
   
-  BooleanFunction(List args)
+  BooleanFunction(List<Expr> args)
   {
-    this((Expr) args.get(0));
+    this(args.get(0));
   }
 
   BooleanFunction(Expr arg)
index 7db08fc5d611a611176af14542dee30bad87fe74..153988422486f760a15a3ba32d0596ec4afebfc4 100644 (file)
@@ -54,9 +54,9 @@ final class CeilingFunction
 
   final Expr arg;
   
-  CeilingFunction(List args)
+  CeilingFunction(List<Expr> args)
   {
-    this((Expr) args.get(0));
+    this(args.get(0));
   }
   
   CeilingFunction(Expr arg)
index fddd7ae252091c34081f929f13ccbba02d07e506..a61a45477b1d77001edd4c0a55e7863c66a7fa35 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.xpath;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -52,19 +54,19 @@ final class ConcatFunction
   extends Expr
 {
 
-  final List args;
+  final List<Expr> args;
 
-  ConcatFunction(List args)
+  ConcatFunction(List<Expr> args)
   {
     this.args = args;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
-    StringBuffer buf = new StringBuffer();
-    for (Iterator i = args.iterator(); i.hasNext(); )
+    CPStringBuilder buf = new CPStringBuilder();
+    for (Expr arg : args)
       {
-        Expr arg = (Expr) i.next();
         Object val = arg.evaluate(context, pos, len);
         buf.append(_string(context, val));
       }
@@ -74,19 +76,19 @@ final class ConcatFunction
   public Expr clone(Object context)
   {
     int len = args.size();
-    List args2 = new ArrayList(len);
+    List<Expr> args2 = new ArrayList<Expr>(len);
     for (int i = 0; i < len; i++)
       {
-        args2.add(((Expr) args.get(i)).clone(context));
+        args2.add(args.get(i).clone(context));
       }
     return new ConcatFunction(args2);
   }
 
   public boolean references(QName var)
   {
-    for (Iterator i = args.iterator(); i.hasNext(); )
+    for (Iterator<Expr> i = args.iterator(); i.hasNext(); )
       {
-        if (((Expr) i.next()).references(var))
+        if (i.next().references(var))
           {
             return true;
           }
@@ -96,7 +98,7 @@ final class ConcatFunction
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("concat(");
+    CPStringBuilder buf = new CPStringBuilder("concat(");
     int len = args.size();
     for (int i = 0; i < len; i++)
       {
index fc2f33faf522149e5a3f6a1de56e76f1084eb403..620606b3f20f2c54ca12b4dcdc4312918c051223 100644 (file)
@@ -54,9 +54,9 @@ final class ContainsFunction
   final Expr arg1;
   final Expr arg2;
 
-  ContainsFunction(List args)
+  ContainsFunction(List<Expr> args)
   {
-    this((Expr) args.get(0), (Expr) args.get(1));
+    this(args.get(0), args.get(1));
   }
 
   ContainsFunction(Expr arg1, Expr arg2)
@@ -65,6 +65,7 @@ final class ContainsFunction
     this.arg2 = arg2;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     Object val1 = arg1.evaluate(context, pos, len);
index cb534bffc9e44c5d9eb305ae85655a29a9500afc..f29d833106ddd7eeb6aa6d399dcaad3efb3f8523 100644 (file)
@@ -54,9 +54,9 @@ final class CountFunction
 
   final Expr arg;
 
-  CountFunction(List args)
+  CountFunction(List<Expr> args)
   {
-    this((Expr) args.get(0));
+    this(args.get(0));
   }
 
   CountFunction(Expr arg)
@@ -64,10 +64,11 @@ final class CountFunction
     this.arg = arg;
   }
 
+  @Override 
   public Object evaluate(Node context, int pos, int len)
   {
     Object val = arg.evaluate(context, pos, len);
-    return new Double((double) ((Collection) val).size());
+    return new Double((double) ((Collection<?>) val).size());
   }
 
   public Expr clone(Object context)
index c7d7de9f7c7d12d3f70142ae9e16836c79cab1fb..605749d09d76cfc738717b1d9a8a7f75d708e106 100644 (file)
@@ -46,18 +46,12 @@ import org.w3c.dom.Node;
  * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
  */
 public class DocumentOrderComparator
-  implements Comparator
+  implements Comparator<Node>
 {
   
-  public int compare(Object o1, Object o2)
+  public int compare(Node n1, Node n2)
   {
-    if (o1 instanceof Node && o2 instanceof Node)
-      {
-        Node n1 = (Node)o1;
-        Node n2 = (Node)o2;
-        return (int) n1.compareDocumentPosition(n2);
-      }
-    return 0;
+    return (int) n1.compareDocumentPosition(n2);
   }
 
 }
index 6d00cee89a99c36825b17546e96b5a8788b2377a..3b6fd568a86d01a7af52e26900f4bd7b0b04568f 100644 (file)
@@ -62,6 +62,7 @@ final class EqualityExpr
     this.invert = invert;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     boolean val = evaluateImpl(context, pos, len);
@@ -90,19 +91,20 @@ final class EqualityExpr
     boolean frns = right instanceof Collection;
     if (flns && frns)
       {
-        Collection lns = (Collection) left;
-        Collection rns = (Collection) right;
+       /* Suppression is safe, as we know context produces Collection<Node> */
+       @SuppressWarnings("unchecked") 
+         Collection<Node> lns = (Collection<Node>) left;
+       @SuppressWarnings("unchecked")
+         Collection<Node> rns = (Collection<Node>) right;
         if (lns.isEmpty())
           {
             return false;
           }
         boolean all = true;
-        for (Iterator i = lns.iterator(); i.hasNext(); )
-          {
-            Node ltest = (Node) i.next();
-            for (Iterator j = rns.iterator(); j.hasNext(); )
-              {
-                Node rtest = (Node) j.next();
+       for (Node ltest : lns)
+         {
+           for (Node rtest : rns)
+             {
                 if (ltest == rtest || ltest.equals(rtest))
                   {
                     // much shorter
@@ -138,13 +140,14 @@ final class EqualityExpr
     boolean frn = right instanceof Double;
     if ((flns && frn) || (frns && fln))
       {
-        Collection ns = flns ? (Collection) left : (Collection) right;
+       /* Suppression is safe, as we know context produces Collection<Node> */
+       @SuppressWarnings("unchecked") 
+         Collection<Node> ns = flns ? (Collection<Node>) left : (Collection<Node>) right;
         double n = fln ? ((Double) left).doubleValue() :
           ((Double) right).doubleValue();
         boolean all = true;
-        for (Iterator i = ns.iterator(); i.hasNext(); )
+       for (Node test : ns)
           {
-            Node test = (Node) i.next();
             double nn = _number(context, stringValue(test));
             if (nn == n)
               {
@@ -171,12 +174,13 @@ final class EqualityExpr
     boolean frs = right instanceof String;
     if ((flns && frs) || (frns && fls))
       {
-        Collection ns = flns ? (Collection) left : (Collection) right;
+       /* Suppression is safe, as we know context produces Collection<Node> */
+       @SuppressWarnings("unchecked") 
+         Collection<Node> ns = flns ? (Collection<Node>) left : (Collection<Node>) right;
         String s = fls ? (String) left : (String) right;
         boolean all = true;
-        for (Iterator i = ns.iterator(); i.hasNext(); )
+       for (Node test : ns)
           {
-            Node test = (Node) i.next();
             if (stringValue(test).equals(s))
               {
                 if (!invert)
@@ -202,7 +206,9 @@ final class EqualityExpr
     boolean frb = right instanceof Boolean;
     if ((flns && frb) || (frns && flb))
       {
-        Collection ns = flns ? (Collection) left : (Collection) right;
+       /* Suppression is safe, as we know context produces Collection<Node> */
+       @SuppressWarnings("unchecked") 
+         Collection<Node> ns = flns ? (Collection<Node>) left : (Collection<Node>) right;
         boolean b = flb ? ((Boolean) left).booleanValue() :
           ((Boolean) right).booleanValue();
         return _boolean(context, ns) == b;
index cafc83b0d37ec679c7d95989b3eec3228e5a3868..87ce3dfb63c61b88fd72e26d7da810eafff19c2c 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.xpath;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.text.DecimalFormat;
 import java.text.DecimalFormatSymbols;
@@ -73,7 +75,7 @@ public abstract class Expr
   implements XPathExpression
 {
 
-  protected static final Comparator documentOrderComparator =
+  protected static final Comparator<Node> documentOrderComparator =
     new DocumentOrderComparator();
 
   protected static final DecimalFormat decimalFormat =
@@ -84,14 +86,14 @@ public abstract class Expr
   static class ExprNodeSet implements NodeList
   {
 
-    private ArrayList list;
+    private ArrayList<Node> list;
 
-    ExprNodeSet(Collection collection)
+    ExprNodeSet(Collection<Node> collection)
     {
       if (collection instanceof ArrayList)
-        list = (ArrayList) collection;
+        list = (ArrayList<Node>) collection;
       else
-        list = new ArrayList(collection);
+        list = new ArrayList<Node>(collection);
     }
 
     public int getLength()
@@ -103,7 +105,7 @@ public abstract class Expr
     {
       try
         {
-          return (Node) list.get(index);
+          return list.get(index);
         }
       catch (ArrayIndexOutOfBoundsException e)
         {
@@ -141,14 +143,17 @@ public abstract class Expr
           {
             if (ret instanceof Collection)
               {
-                Collection ns = (Collection) ret;
+               /* Suppression is safe, as we know context
+                  produces Collection<Node> */
+               @SuppressWarnings("unchecked") 
+                 Collection<Node> ns = (Collection<Node>) ret;
                 switch (ns.size())
                   {
                   case 0:
                     ret = null;
                     break;
                   case 1:
-                    ret = (Node) ns.iterator().next();
+                    ret = ns.iterator().next();
                     break;
                   default:
                     throw new XPathExpressionException("multiple nodes in node-set");
@@ -166,7 +171,12 @@ public abstract class Expr
                 throw new XPathExpressionException("return value is not a node-set");
               }
             if (ret != null)
-              ret = new ExprNodeSet((Collection) ret);
+             {
+               /* Suppression is safe, as we know context produces Collection<Node> */
+               @SuppressWarnings("unchecked")
+                 Collection<Node> nodes = (Collection<Node>) ret;
+               ret = new ExprNodeSet(nodes);
+             }
           }
       }
     return ret;
@@ -229,15 +239,17 @@ public abstract class Expr
    * same document as the context node that have a unique ID equal to any of
    * the tokens in the list.
    */
-  public static Collection _id(Node context, Object object)
+  public static Collection<Node> _id(Node context, Object object)
   {
-    Set ret = new HashSet();
+    Set<Node> ret = new HashSet<Node>();
     if (object instanceof Collection)
       {
-        Collection nodeSet = (Collection) object;
-        for (Iterator i = nodeSet.iterator(); i.hasNext(); )
+       /* Suppression is safe, as the iteration will check each value is a Node */
+       @SuppressWarnings("unchecked")
+         Collection<Node> nodeSet = (Collection<Node>) object;
+        for (Iterator<Node> i = nodeSet.iterator(); i.hasNext(); )
           {
-            String string = stringValue((Node) i.next());
+            String string = stringValue(i.next());
             ret.addAll(_id (context, string));
           }
       }
@@ -266,7 +278,7 @@ public abstract class Expr
    * an empty string is returned. If the argument is omitted, it defaults to
    * a node-set with the context node as its only member.
    */
-  public static String _local_name(Node context, Collection nodeSet)
+  public static String _local_name(Node context, Collection<Node> nodeSet)
   {
     if (nodeSet == null || nodeSet.isEmpty())
       return "";
@@ -283,7 +295,7 @@ public abstract class Expr
    * empty string is returned. If the argument is omitted, it defaults to a
    * node-set with the context node as its only member.
    */
-  public static String _namespace_uri(Node context, Collection nodeSet)
+  public static String _namespace_uri(Node context, Collection<Node> nodeSet)
   {
     if (nodeSet == null || nodeSet.isEmpty())
       return "";
@@ -308,7 +320,7 @@ public abstract class Expr
    * string is returned. If the argument it omitted, it defaults to a
    * node-set with the context node as its only member.
    */
-  public static String _name(Node context, Collection nodeSet)
+  public static String _name(Node context, Collection<Node> nodeSet)
   {
     if (nodeSet == null || nodeSet.isEmpty())
       return "";
@@ -327,11 +339,11 @@ public abstract class Expr
   /**
    * Returns the first node in the set in document order.
    */
-  static Node firstNode(Collection nodeSet)
+  static Node firstNode(Collection<Node> nodeSet)
   {
-    List list = new ArrayList(nodeSet);
+    List<Node> list = new ArrayList<Node>(nodeSet);
     Collections.sort(list, documentOrderComparator);
-    return (Node) list.get(0);
+    return list.get(0);
   }
 
   /* -- 4.2 String Functions -- */
@@ -387,7 +399,10 @@ public abstract class Expr
       }
     if (object instanceof Collection)
       {
-        Collection nodeSet = (Collection) object;
+       /* Suppression is safe, as we fail immediately if the
+        * first element is not a Node and don't use the rest */
+       @SuppressWarnings("unchecked") 
+         Collection<Node> nodeSet = (Collection<Node>) object;
         if (nodeSet.isEmpty())
           {
             return "";
@@ -422,7 +437,7 @@ public abstract class Expr
       }
     if (object instanceof Collection)
       {
-        return ((Collection) object).size() != 0;
+        return ((Collection<?>) object).size() != 0;
       }
     return false; // TODO user defined types
   }
@@ -448,8 +463,12 @@ public abstract class Expr
       }
     if (object instanceof Collection)
       {
+       /* Suppression is safe, as we fail immediately if one
+        * of the elements is not a Node */
+       @SuppressWarnings("unchecked") 
+         Collection<Node> nodeSet = (Collection<Node>) object;
         // Convert node-set to string
-        object = stringValue((Collection) object);
+        object = stringValue(nodeSet);
       }
     if (object instanceof String)
       {
@@ -469,12 +488,12 @@ public abstract class Expr
   /**
    * Computes the XPath string-value of the specified node-set.
    */
-  public static String stringValue(Collection nodeSet)
+  public static String stringValue(Collection<Node> nodeSet)
   {
-    StringBuffer buf = new StringBuffer();
-    for (Iterator i = nodeSet.iterator(); i.hasNext(); )
+    CPStringBuilder buf = new CPStringBuilder();
+    for (Iterator<Node> i = nodeSet.iterator(); i.hasNext(); )
       {
-        buf.append(stringValue((Node) i.next()));
+        buf.append(stringValue(i.next()));
       }
     return buf.toString();
   }
@@ -494,7 +513,7 @@ public abstract class Expr
       case Node.DOCUMENT_NODE: // 5.1 Root Node
       case Node.DOCUMENT_FRAGMENT_NODE:
       case Node.ELEMENT_NODE: // 5.2 Element Nodes
-        StringBuffer buf = new StringBuffer();
+        CPStringBuilder buf = new CPStringBuilder();
         for (Node ctx = node.getFirstChild(); ctx != null;
              ctx = ctx.getNextSibling())
           {
index c03c0e7edaf61d97fc29bed4cab57c40f8c0634e..bbf56c9117850a98bdfad9272e236e3800ee6cef 100644 (file)
@@ -54,9 +54,9 @@ final class FloorFunction
 
   final Expr arg;
 
-  FloorFunction(List args)
+  FloorFunction(List<Expr> args)
   {
-    this((Expr) args.get(0));
+    this(args.get(0));
   }
 
   FloorFunction(Expr arg)
@@ -64,6 +64,7 @@ final class FloorFunction
     this.arg = arg;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     Object val = arg.evaluate(context, pos, len);
index aecd49d9c73152759ef6e8cddfd3f3cbb813b4d8..12e2e1141fde810c0d6054ef0f103a5fa8b5e607 100644 (file)
@@ -51,7 +51,7 @@ public interface Function
   /**
    * Sets the list of expressions to evaluate as parameter values.
    */
-  void setArguments(List args);
+  void setArguments(List<Expr> args);
 
 }
 
index 669efbf1866b0cadc258375f27f1371c61b6a988..e811f53a2abd5d9ed79314797b424824cb5a9147 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.xpath;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
@@ -58,20 +60,24 @@ public final class FunctionCall
 
   final XPathFunctionResolver resolver;
   final String name;
-  final List args;
+  final List<Expr> args;
 
   public FunctionCall(XPathFunctionResolver resolver, String name)
   {
-    this(resolver, name, Collections.EMPTY_LIST);
+    this(resolver, name, null);
   }
 
-  public FunctionCall(XPathFunctionResolver resolver, String name, List args)
+  public FunctionCall(XPathFunctionResolver resolver, String name, List<Expr> args)
   {
     this.resolver = resolver;
     this.name = name;
-    this.args = args;
+    if (args == null)
+      this.args = Collections.emptyList();
+    else
+      this.args = args;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     if (resolver != null)
@@ -92,7 +98,7 @@ public final class FunctionCall
               }
             else
               {
-                List values = new ArrayList(arity);
+                List<Object> values = new ArrayList<Object>(arity);
                 for (int i = 0; i < arity; i++)
                   {
                     Expr arg = (Expr) args.get(i);
@@ -117,10 +123,10 @@ public final class FunctionCall
   public Expr clone(Object context)
   {
     int len = args.size();
-    List args2 = new ArrayList(len);
+    List<Expr> args2 = new ArrayList<Expr>(len);
     for (int i = 0; i < len; i++)
       {
-        args2.add(((Expr) args.get(i)).clone(context));
+        args2.add(args.get(i).clone(context));
       }
     XPathFunctionResolver r = resolver;
     if (context instanceof XPathFunctionResolver)
@@ -132,9 +138,9 @@ public final class FunctionCall
 
   public boolean references(QName var)
   {
-    for (Iterator i = args.iterator(); i.hasNext(); )
+    for (Iterator<Expr> i = args.iterator(); i.hasNext(); )
       {
-        if (((Expr) i.next()).references(var))
+        if (i.next().references(var))
           {
             return true;
           }
@@ -144,7 +150,7 @@ public final class FunctionCall
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     buf.append(name);
     buf.append('(');
     int len = args.size();
index 749795419572df0f4d781cac713bcfe5199cabd3..b3d2208c8e427e351e5fbb0917cdee9f2a983138 100644 (file)
@@ -62,9 +62,9 @@ public final class IdFunction
 
   final Expr arg;
 
-  IdFunction(List args)
+  IdFunction(List<Expr> args)
   {
-    this((Expr) args.get(0));
+    this(args.get(0));
   }
 
   public IdFunction(Expr arg)
@@ -75,9 +75,10 @@ public final class IdFunction
   public boolean matches(Node context)
   {
     Object ret = evaluate(context, 1, 1);
-    return !((Collection) ret).isEmpty();
+    return !((Collection<?>) ret).isEmpty();
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     Object val = arg.evaluate(context, pos, len);
index 584787efbf7f92aad0b7f5536ec750b4949731b4..33cf8b0a2ab29beb37de72b42324e45937064d66 100644 (file)
@@ -64,9 +64,9 @@ final class LangFunction
 
   final Expr arg;
 
-  LangFunction(List args)
+  LangFunction(List<Expr> args)
   {
-    this((Expr) args.get(0));
+    this(args.get(0));
   }
 
   LangFunction(Expr arg)
@@ -74,6 +74,7 @@ final class LangFunction
     this.arg = arg;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     Object val = arg.evaluate(context, pos, len);
index 84fb6d4828846bac53c5ff42d332d1b96854087c..dbad9d3b42acd6f7ab7682a2f9a68f68b799a8f0 100644 (file)
@@ -59,9 +59,9 @@ final class LocalNameFunction
 
   final Expr arg;
 
-  LocalNameFunction(List args)
+  LocalNameFunction(List<Expr> args)
   {
-    this(args.size() > 0 ? (Expr) args.get(0) : null);
+    this(args.size() > 0 ? args.get(0) : null);
   }
 
   LocalNameFunction(Expr arg)
@@ -69,11 +69,14 @@ final class LocalNameFunction
     this.arg = arg;
   }
 
+  @Override 
   public Object evaluate(Node context, int pos, int len)
   {
-    Object val = (arg == null) ? Collections.singleton(context) :
-        arg.evaluate(context, pos, len);
-    return _local_name(context, (Collection) val);
+    /* Suppression is safe, as we know context produces Collection<Node> */
+    @SuppressWarnings("unchecked")
+    Collection<Node> val = (arg == null) ? Collections.singleton(context) :
+      (Collection<Node>) arg.evaluate(context, pos, len);
+    return _local_name(context, val);
   }
 
   public Expr clone(Object context)
index ea49741fa57406291830c7a1791433e1e66d1990..239a53453beb562a29f6e3ddc87b710b2beaea03 100644 (file)
@@ -67,9 +67,9 @@ final class NameFunction
 
   final Expr arg;
 
-  NameFunction(List args)
+  NameFunction(List<Expr> args)
   {
-    this(args.size() > 0 ? (Expr) args.get(0) : null);
+    this(args.size() > 0 ? args.get(0) : null);
   }
 
   NameFunction(Expr arg)
@@ -77,24 +77,30 @@ final class NameFunction
     this.arg = arg;
   }
 
+  @Override 
   public Object evaluate(Node context, int pos, int len)
   {
-    Object val = (arg == null) ? Collections.singleton(context) :
-        arg.evaluate(context, pos, len);
-    return _name(context, (Collection) val);
+    /* Suppression is safe, as we know context produces Collection<Node> */
+    @SuppressWarnings("unchecked")
+    Collection<Node> val = (arg == null) ? Collections.singleton(context) :
+      (Collection<Node>) arg.evaluate(context, pos, len);
+    return _name(context, val);
   }
 
+  @Override
   public Expr clone(Object context)
   {
     return new NameFunction((arg == null) ? null :
                             arg.clone(context));
   }
-
+  
+  @Override
   public boolean references(QName var)
   {
     return (arg == null) ? false : arg.references(var);
   }
   
+  @Override
   public String toString()
   {
     return (arg == null) ? "name()" : "name(" + arg + ")";
index 3ae46f7ee71d3c4b7b0a4bbc86ec605a85ddce6b..56da90f8c0a42af0aa202a3b1f96f3e0fa2e829d 100644 (file)
@@ -59,9 +59,9 @@ final class NamespaceUriFunction
 
   final Expr arg;
 
-  NamespaceUriFunction(List args)
+  NamespaceUriFunction(List<Expr> args)
   {
-    this(args.size() > 0 ? (Expr) args.get(0) : null);
+    this(args.size() > 0 ? args.get(0) : null);
   }
   
   NamespaceUriFunction(Expr arg)
@@ -69,11 +69,14 @@ final class NamespaceUriFunction
     this.arg = arg;
   }
 
+  @Override 
   public Object evaluate(Node context, int pos, int len)
   {
-    Object val = (arg == null) ? Collections.singleton(context) :
-        arg.evaluate(context, pos, len);
-    return _namespace_uri(context, (Collection) val);
+    /* Suppression is safe, as we know context produces Collection<Node> */
+    @SuppressWarnings("unchecked")
+    Collection<Node> val = (arg == null) ? Collections.singleton(context) :
+        (Collection<Node>) arg.evaluate(context, pos, len);
+    return _namespace_uri(context, val);
   }
 
   public Expr clone(Object context)
index b7358e8d8e4bff4d1ac7789854b210d77453c121..30069acdc43e4e378f10bd0dc908aec9325a4b5c 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.xpath;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.List;
 import java.util.StringTokenizer;
 import javax.xml.namespace.QName;
@@ -59,9 +61,9 @@ final class NormalizeSpaceFunction
 
   final Expr arg;
 
-  NormalizeSpaceFunction(List args)
+  NormalizeSpaceFunction(List<Expr> args)
   {
-    this((Expr) args.get(0));
+    this(args.get(0));
   }
   
   NormalizeSpaceFunction(Expr arg)
@@ -69,12 +71,13 @@ final class NormalizeSpaceFunction
     this.arg = arg;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     Object val = (arg == null) ? null : arg.evaluate(context, pos, len);
     String s = _string(context, val);
     StringTokenizer st = new StringTokenizer(s, " \t\r\n");
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     if (st.hasMoreTokens())
       {
         buf.append(st.nextToken()); 
index bbed66a731115567cabbbf5db1da9d8ce6803f13..188b3dbc40ed40081871020b4ecd67bbfad13277 100644 (file)
@@ -53,9 +53,9 @@ final class NotFunction
 
   final Expr arg;
 
-  NotFunction(List args)
+  NotFunction(List<Expr> args)
   {
-    this((Expr) args.get(0));
+    this(args.get(0));
   }
 
   NotFunction(Expr arg)
@@ -63,6 +63,7 @@ final class NotFunction
     this.arg = arg;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     Object val = arg.evaluate(context, pos, len);
index 79553ce81fb059e7c5e00684aecb52ff5ea3d192..8804a788670f1a9d90f68fc34cfd4e6cdd4d3e5e 100644 (file)
@@ -68,9 +68,9 @@ final class NumberFunction
 
   final Expr arg;
 
-  NumberFunction(List args)
+  NumberFunction(List<Expr> args)
   {
-    this(args.size() > 0 ? (Expr) args.get(0) : null);
+    this(args.size() > 0 ? args.get(0) : null);
   }
 
   NumberFunction(Expr arg)
@@ -78,6 +78,7 @@ final class NumberFunction
     this.arg = arg;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     Object val = (arg == null) ? null : arg.evaluate(context, pos, len);
index f343857c313c02c09acb7da2863df57e8e13de20..adadd6745c40684f6b1d8e33790d3c64f1cb8832 100644 (file)
@@ -60,12 +60,17 @@ final class ParenthesizedExpr
     this.expr = expr;
   }
 
+  @Override 
   public Object evaluate(Node context, int pos, int len)
   {
     Object ret = expr.evaluate(context, pos, len);
     if (ret instanceof Collection)
       {
-        List list = new ArrayList((Collection) ret);
+       /* Suppression is safe, as we know context produces
+          Collection<Node> */
+       @SuppressWarnings("unchecked")
+         Collection<Node> nodes = (Collection<Node>) ret;
+        List<Node> list = new ArrayList<Node>(nodes);
         Collections.sort(list, documentOrderComparator);
         ret = list;
       }
index 4b01f0918aba10f5a2c485012444a395b90e283e..809f965ccefb3f0f32a7a903dd776182ede3bd45 100644 (file)
@@ -49,6 +49,6 @@ abstract class Path
   extends Pattern
 {
 
-  abstract Collection evaluate(Node context, Collection nodeSet);
+  abstract Collection<Node> evaluate(Node context, Collection<Node> nodeSet);
   
 }
index 1f79b395812ef10086e2f8360c996ee84aa5ae83..cbcb24999bc346a11e5311021b9c181962d33d13 100644 (file)
@@ -39,6 +39,8 @@ package gnu.xml.xpath;
 
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Set;
+
 import javax.xml.namespace.QName;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
@@ -59,12 +61,14 @@ public final class Root
 
   public Object evaluate(Node context, int pos, int len)
   {
-    return evaluate(context, Collections.EMPTY_SET);
+    Set<Node> emptySet = Collections.emptySet();
+    return evaluate(context, emptySet);
   }
 
-  Collection evaluate(Node context, Collection ns)
+  @Override
+  Collection<Node> evaluate(Node context, Collection<Node> ns)
   {
-    Document doc = (context instanceof Document) ? (Document) context :
+    Node doc = (context instanceof Document) ? context :
       context.getOwnerDocument();
     return Collections.singleton(doc);
   }
index bfbfd357da8876c1cf199b9a49e7d35ecbc7404b..2d1bd54472272b903034ad51d851afd9ec13ba2a 100644 (file)
@@ -60,9 +60,9 @@ final class RoundFunction
 
   final Expr arg;
 
-  RoundFunction(List args)
+  RoundFunction(List<Expr> args)
   {
-    this((Expr) args.get(0));
+    this(args.get(0));
   }
 
   RoundFunction(Expr arg)
@@ -70,6 +70,7 @@ final class RoundFunction
     this.arg = arg;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     Object val = arg.evaluate(context, pos, len);
index c7abb33e2ff893126dc9af863adfc49fa4bde705..429b3f7e20b01e8e0350ab057e6fe6935246c978 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.xpath;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
@@ -82,7 +84,7 @@ public final class Selector
    */
   final Test[] tests;
 
-  public Selector(int axis, List tests)
+  public Selector(int axis, List<? extends Test> tests)
   {
     this.axis = axis;
     int len = tests.size();
@@ -177,29 +179,31 @@ public final class Selector
     return count;
   }
 
+
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
-    Set acc = new LinkedHashSet();
+    Set<Node> acc = new LinkedHashSet<Node>();
     addCandidates(context, acc);
-    List candidates = new ArrayList(acc);
-    List ret = filterCandidates(candidates, false);
+    List<Node> candidates = new ArrayList<Node>(acc);
+    List<Node> ret = filterCandidates(candidates, false);
     return ret;
   }
 
-  Collection evaluate(Node context, Collection ns)
+  Collection<Node> evaluate(Node context, Collection<Node> ns)
   {
-    Set acc = new LinkedHashSet();
-    for (Iterator i = ns.iterator(); i.hasNext(); )
-      addCandidates((Node) i.next(), acc);
-    List candidates = new ArrayList(acc);
-    List ret = filterCandidates(candidates, true);
+    Set<Node> acc = new LinkedHashSet<Node>();
+    for (Iterator<Node> i = ns.iterator(); i.hasNext(); )
+      addCandidates(i.next(), acc);
+    List<Node> candidates = new ArrayList<Node>(acc);
+    List<Node> ret = filterCandidates(candidates, true);
     return ret;
   }
 
   /**
    * Filter the given list of candidates according to the node tests.
    */
-  List filterCandidates(List candidates, boolean cascade)
+  List<Node> filterCandidates(List<Node> candidates, boolean cascade)
   {
     int len = candidates.size();
     int tlen = tests.length;
@@ -209,10 +213,10 @@ public final class Selector
         for (int j = 0; j < tlen && len > 0; j++)
           {
             Test test = tests[j];
-            List successful = new ArrayList(len);
+            List<Node> successful = new ArrayList<Node>(len);
             for (int i = 0; i < len; i++)
               {
-                Node node = (Node) candidates.get(i);
+                Node node = candidates.get(i);
                 if (cascade)
                   {
                     // Documents and DocumentFragments should be considered
@@ -242,7 +246,7 @@ public final class Selector
     return candidates;
   }
 
-  void addCandidates(Node context, Collection candidates)
+  void addCandidates(Node context, Collection<Node> candidates)
   {
     // Build list of candidates
     switch (axis)
@@ -291,7 +295,7 @@ public final class Selector
       }
   }
 
-  void addChildNodes(Node context, Collection acc, boolean recurse)
+  void addChildNodes(Node context, Collection<Node> acc, boolean recurse)
   {
     Node child = context.getFirstChild();
     while (child != null)
@@ -303,7 +307,7 @@ public final class Selector
       }
   }
 
-  void addParentNode(Node context, Collection acc, boolean recurse)
+  void addParentNode(Node context, Collection<Node> acc, boolean recurse)
   {
     Node parent = (context.getNodeType() == Node.ATTRIBUTE_NODE) ?
       ((Attr) context).getOwnerElement() : context.getParentNode();
@@ -315,7 +319,7 @@ public final class Selector
       }
   }
 
-  void addFollowingNodes(Node context, Collection acc, boolean recurse)
+  void addFollowingNodes(Node context, Collection<Node> acc, boolean recurse)
   {
     if (context != null && recurse)
       addChildNodes(context, acc, true);
@@ -349,7 +353,7 @@ public final class Selector
       }
   }
 
-  void addPrecedingNodes(Node context, Collection acc, boolean recurse)
+  void addPrecedingNodes(Node context, Collection<Node> acc, boolean recurse)
   {
     Node cur = (context.getNodeType() == Node.ATTRIBUTE_NODE) ? null :
       context.getPreviousSibling();
@@ -370,7 +374,7 @@ public final class Selector
       }
   }
 
-  void addAttributes(Node context, Collection acc)
+  void addAttributes(Node context, Collection<Node> acc)
   {
     NamedNodeMap attrs = context.getAttributes();
     if (attrs != null)
@@ -387,7 +391,7 @@ public final class Selector
       }
   }
 
-  void addNamespaceAttributes(Node context, Collection acc)
+  void addNamespaceAttributes(Node context, Collection<Node> acc)
   {
     NamedNodeMap attrs = context.getAttributes();
     if (attrs != null)
@@ -413,7 +417,7 @@ public final class Selector
   public Expr clone(Object context)
   {
     int len = tests.length;
-    List tests2 = new ArrayList(len);
+    List<Test> tests2 = new ArrayList<Test>(len);
     for (int i = 0; i < len; i++)
       tests2.add(tests[i].clone(context));
     return new Selector(axis, tests2);
@@ -431,7 +435,7 @@ public final class Selector
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     switch (axis)
       {
       case ANCESTOR:
index ec021551e76720b6d065e1f23cd9a74dfd5a836a..2dc2c409d8df7afd709df35d0b0428da8ca23677 100644 (file)
@@ -54,9 +54,9 @@ final class StartsWithFunction
   final Expr arg1;
   final Expr arg2;
 
-  StartsWithFunction(List args)
+  StartsWithFunction(List<Expr> args)
   {
-    this((Expr) args.get(0), (Expr) args.get(1));
+    this(args.get(0), args.get(1));
   }
 
   StartsWithFunction(Expr arg1, Expr arg2)
index 9ef6cd35f3d34c07bb69bffebcaa48636ced3ced..427fbe20138dcf997f532072101bb940f559b4d6 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.xpath;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
@@ -56,14 +58,14 @@ public final class Steps
   extends Path
 {
 
-  final LinkedList path;
+  final LinkedList<Expr> path;
 
   public Steps()
   {
-    this(new LinkedList());
+    this(new LinkedList<Expr>());
   }
 
-  Steps(LinkedList path)
+  Steps(LinkedList<Expr> path)
   {
     this.path = path;
   }
@@ -84,10 +86,8 @@ public final class Steps
     if (pos > 0)
       {
         Pattern left = (Pattern) path.get(pos - 1);
-        Iterator j = possibleContexts(right, context).iterator();
-        while (j.hasNext())
+       for (Node candidate : possibleContexts(right, context))
           {
-            Node candidate = (Node) j.next();
             if (left.matches(candidate) &&
                 matches(candidate, pos - 1))
               {
@@ -104,12 +104,12 @@ public final class Steps
    * Essentially the reverse of Selector.addCandidates.
    * The idea is to determine possible context nodes for a match.
    */
-  Collection possibleContexts(Pattern pattern, Node context)
+  Collection<Node> possibleContexts(Pattern pattern, Node context)
   {
     if (pattern instanceof Selector)
       {
         Selector s = (Selector) pattern;
-        Collection candidates = new LinkedHashSet();
+        Collection<Node> candidates = new LinkedHashSet<Node>();
         switch (s.axis)
           {
           case Selector.PARENT:
@@ -157,46 +157,53 @@ public final class Steps
           }
         return candidates;
       }
-    return Collections.EMPTY_SET;
+    return Collections.emptySet();
   }
 
+  @Override 
   public Object evaluate(Node context, int pos, int len)
   {
     //System.err.println(toString()+" evaluate");
     // Left to right
-    Iterator i = path.iterator();
-    Expr lhs = (Expr) i.next();
+    Iterator<Expr> i = path.iterator();
+    Expr lhs = i.next();
     Object val = lhs.evaluate(context, pos, len);
     //System.err.println("\tevaluate "+lhs+" = "+val);
     while (val instanceof Collection && i.hasNext())
       {
         Path rhs = (Path) i.next();
-        val = rhs.evaluate(context, (Collection) val);
+       /* Suppression is safe, as we know context produces Collection<Node> */
+        @SuppressWarnings("unchecked")
+         Collection<Node> nodes = (Collection<Node>) val;
+       val = rhs.evaluate(context, nodes);
         //System.err.println("\tevaluate "+rhs+" = "+val);
       }
     return val;
   }
 
-  Collection evaluate(Node context, Collection ns)
+  @Override 
+  Collection<Node> evaluate(Node context, Collection<Node> ns)
   {
     // Left to right
-    Iterator i = path.iterator();
-    Expr lhs = (Expr) i.next();
+    Iterator<Expr> i = path.iterator();
+    Expr lhs = i.next();
     if (lhs instanceof Path)
       {
         ns = ((Path) lhs).evaluate(context, ns);
       }
     else
       {
-        Set acc = new LinkedHashSet();
+        Set<Node> acc = new LinkedHashSet<Node>();
         int pos = 1, len = ns.size();
-        for (Iterator j = ns.iterator(); j.hasNext(); )
+       for (Node node : ns)
           {
-            Node node = (Node) j.next();
             Object ret = lhs.evaluate(node, pos++, len);
             if (ret instanceof Collection)
               {
-                acc.addAll((Collection) ret);
+               /* Suppression is safe, as we know context produces Collection<Node> */
+               @SuppressWarnings("unchecked")
+                 Collection<Node> nodes = (Collection<Node>) ret;
+                acc.addAll(nodes);
               }
           }
         ns = acc;
@@ -212,19 +219,19 @@ public final class Steps
   public Expr clone(Object context)
   {
     int len = path.size();
-    LinkedList path2 = new LinkedList();
+    LinkedList<Expr> path2 = new LinkedList<Expr>();
     for (int i = 0; i < len; i++)
       {
-        path2.add(((Expr) path.get(i)).clone(context));
+        path2.add(path.get(i).clone(context));
       }
     return new Steps(path2);
   }
 
   public boolean references(QName var)
   {
-    for (Iterator i = path.iterator(); i.hasNext(); )
+    for (Iterator<Expr> i = path.iterator(); i.hasNext(); )
       {
-        if (((Expr) i.next()).references(var))
+        if (i.next().references(var))
           {
             return true;
           }
@@ -234,16 +241,16 @@ public final class Steps
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer();
-    Iterator i = path.iterator();
-    Expr expr = (Expr) i.next();
+    CPStringBuilder buf = new CPStringBuilder();
+    Iterator<Expr> i = path.iterator();
+    Expr expr = i.next();
     if (!(expr instanceof Root))
       {
         buf.append(expr);
       }
     while (i.hasNext())
       {
-        expr = (Expr) i.next();
+        expr = i.next();
         buf.append('/');
         buf.append(expr);
       }
index 0a4c681d16b24296b904e40d9b06b01619f6afd7..b8cba3798de0356f055099306e58fc4fb42ceedb 100644 (file)
@@ -84,9 +84,9 @@ final class StringFunction
 
   final Expr arg;
 
-  StringFunction(List args)
+  StringFunction(List<Expr> args)
   {
-    this(args.size() > 0 ? (Expr) args.get(0) : null);
+    this(args.size() > 0 ? args.get(0) : null);
   }
   
   StringFunction(Expr arg)
index 7f5ceafeef53138889bf4be94a1ed3106459e756..561537e99ba3fbd069770c343bfc4e650b7453a3 100644 (file)
@@ -55,7 +55,7 @@ final class StringLengthFunction
 
   final Expr arg;
 
-  StringLengthFunction(List args)
+  StringLengthFunction(List<Expr> args)
   {
     this(args.isEmpty() ? null : (Expr) args.get(0));
   }
@@ -65,6 +65,7 @@ final class StringLengthFunction
     this.arg = arg;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     Object val = (arg == null) ? null : arg.evaluate(context, pos, len);
index 8144cf84433a5cf44ad93e7fd5c4c533f0683cc9..ad75f2e3c67729c8112134c16d025ea9edcbf09a 100644 (file)
@@ -58,9 +58,9 @@ final class SubstringAfterFunction
   final Expr arg1;
   final Expr arg2;
 
-  SubstringAfterFunction(List args)
+  SubstringAfterFunction(List<Expr> args)
   {
-    this((Expr) args.get(0), (Expr) args.get(1));
+    this(args.get(0), args.get(1));
   }
 
   SubstringAfterFunction(Expr arg1, Expr arg2)
index 2d92a3e0349568dbf9850c44767ce2fd3ab9272e..1bf165777d03ac737c807baaea687527edd7273c 100644 (file)
@@ -57,9 +57,9 @@ final class SubstringBeforeFunction
   final Expr arg1;
   final Expr arg2;
 
-  SubstringBeforeFunction(List args)
+  SubstringBeforeFunction(List<Expr> args)
   {
-    this((Expr) args.get(0), (Expr) args.get(1));
+    this(args.get(0), args.get(1));
   }
 
   SubstringBeforeFunction(Expr arg1, Expr arg2)
index e926f6c7aeb61faa79ba3cf1487377054efb99d0..33bcade0c2d86412e75b970f98fa66abfc6b13c7 100644 (file)
@@ -60,10 +60,10 @@ final class SubstringFunction
   final Expr arg2;
   final Expr arg3;
 
-  SubstringFunction(List args)
+  SubstringFunction(List<Expr> args)
   {
-    this((Expr) args.get(0), (Expr) args.get(1),
-         (args.size() > 2) ? (Expr) args.get(2) : null);
+    this(args.get(0), args.get(1),
+         (args.size() > 2) ? args.get(2) : null);
   }
 
   SubstringFunction(Expr arg1, Expr arg2, Expr arg3)
@@ -73,6 +73,7 @@ final class SubstringFunction
     this.arg3 = arg3;
   }
 
+  @Override
   public Object evaluate(Node context, int pos, int len)
   {
     Object val1 = arg1.evaluate(context, pos, len);
index 93c2e806d4822753ce53e29db876a08f9031a3cc..73db2a91dc6dd2abb5b66ba7eb6b466a342520e9 100644 (file)
@@ -56,9 +56,9 @@ final class SumFunction
 
   final Expr arg;
 
-  SumFunction(List args)
+  SumFunction(List<Expr> args)
   {
-    this((Expr) args.get(0));
+    this(args.get(0));
   }
 
   SumFunction(Expr arg)
@@ -66,15 +66,19 @@ final class SumFunction
     this.arg = arg;
   }
 
+  @Override 
   public Object evaluate(Node context, int pos, int len)
   {
     Object val = arg.evaluate(context, pos, len);
     double sum = 0.0d;
     if (val instanceof Collection)
       {
-        for (Iterator i = ((Collection) val).iterator(); i.hasNext(); )
+       /* Suppression is safe, as we know context produces
+          Collection<Node> */
+       @SuppressWarnings("unchecked")
+         Collection<Node> nodes = (Collection<Node>) val;
+       for (Node node : nodes)
           {
-            Node node = (Node) i.next();
             String s = stringValue(node);
             sum += _number(context, s);
           }
index 54e8b9c37f51b0886ec30dd87d35515ead764bb8..8b4b8b2338c190fa152cc4cc81e8e393c6f59260 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.xpath;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.List;
 import javax.xml.namespace.QName;
 import org.w3c.dom.Node;
@@ -66,9 +68,9 @@ final class TranslateFunction
   final Expr arg2;
   final Expr arg3;
 
-  TranslateFunction(List args)
+  TranslateFunction(List<Expr> args)
   {
-    this((Expr) args.get(0), (Expr) args.get(1), (Expr) args.get(2));
+    this(args.get(0), args.get(1), args.get(2));
   }
 
   TranslateFunction(Expr arg1, Expr arg2, Expr arg3)
@@ -86,7 +88,7 @@ final class TranslateFunction
     String string = _string(context, val1);
     String search = _string(context, val2);
     String replace = _string(context, val3);
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     int l1 = string.length();
     int l2 = search.length();
     int l3 = replace.length();
@@ -110,7 +112,7 @@ final class TranslateFunction
             buf.append(c);
           } 
       } 
-    return new String(buf);
+    return buf.toString();
   }
 
   public Expr clone(Object context)
index 5078713b693496c0a99d7c7f9a9cd1b210ab6760..03ae5c06d703ee92e7819fe17aedc58d3d6e555e 100644 (file)
@@ -74,20 +74,29 @@ public final class UnionExpr
     return false;
   }
 
+  @Override 
   public Object evaluate(Node context, int pos, int len)
   {
     Object left = lhs.evaluate(context, pos, len);
     Object right = rhs.evaluate(context, pos, len);
+    List<Node> list;
     if (left instanceof Collection && right instanceof Collection)
       {
-        Set set = new HashSet();
-        set.addAll ((Collection) left);
-        set.addAll ((Collection) right);
-        List list = new ArrayList(set);
+        Set<Node> set = new HashSet<Node>();
+       /* Suppression is safe as addAll will check the types 
+          of the elements and throw a ClassCastException as necessary */
+       @SuppressWarnings("unchecked")
+         Collection<Node> l = (Collection<Node>) left;
+       @SuppressWarnings("unchecked")
+         Collection<Node> r = (Collection<Node>) right;
+       set.addAll (l);
+        set.addAll (r);
+        list = new ArrayList<Node>(set);
         Collections.sort(list, documentOrderComparator);
-        return list;
       }
-    return Collections.EMPTY_SET;
+    else
+      list = Collections.emptyList();
+    return list;
   }
 
   public Expr clone(Object context)
index 813a37f96ebce90253b2c431dc1a1967dfc3f4e6..9ef6f160ff8229b71f934e34342c9e50fe557e6a 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.xpath;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.xml.namespace.QName;
 import javax.xml.xpath.XPathVariableResolver;
 import org.w3c.dom.Node;
@@ -86,7 +88,7 @@ public class VariableReference
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("$");
+    CPStringBuilder buf = new CPStringBuilder("$");
     String prefix = name.getPrefix();
     if (prefix != null && !"".equals(prefix))
       {
index 9b7540a4a403ebf938e2290e1e96851ddcbf0d72..e8c8e94da799064be36a7a41a006316267e58642 100644 (file)
@@ -79,7 +79,7 @@ public class XPathParser
     return qName;
   }
 
-  Expr lookupFunction(String name, List args)
+  Expr lookupFunction(String name, List<Expr> args)
   {
     int arity = args.size();
     if ("position".equals(name) && arity == 0)
@@ -491,7 +491,7 @@ case 5:
       else
         {
           steps = new Steps();
-          steps.path.addFirst(yyVals[0+yyTop]);
+          steps.path.addFirst((Expr) yyVals[0+yyTop]);
         }
       steps.path.addFirst(new Root());
       yyVal = steps;
@@ -512,7 +512,7 @@ case 6:
       else
         {
           steps = new Steps();
-          steps.path.addFirst(yyVals[0+yyTop]);
+          steps.path.addFirst((Expr) yyVals[0+yyTop]);
         }
       steps.path.addFirst(s);
       steps.path.addFirst(new Root());
@@ -532,9 +532,9 @@ case 8:
       else
         {
           steps = new Steps();
-          steps.path.addFirst(yyVals[-2+yyTop]);
+          steps.path.addFirst((Expr) yyVals[-2+yyTop]);
         }
-      steps.path.addLast(yyVals[0+yyTop]);
+      steps.path.addLast((Expr) yyVals[0+yyTop]);
       yyVal = steps;
       /*$$ = new Step((Expr) $1, (Path) $3);*/
     }
@@ -553,10 +553,10 @@ case 9:
       else
         {
           steps = new Steps();
-          steps.path.addFirst(yyVals[-2+yyTop]);
+          steps.path.addFirst((Expr) yyVals[-2+yyTop]);
         }
       steps.path.addLast(s);
-      steps.path.addLast(yyVals[0+yyTop]);
+      steps.path.addLast((Expr) yyVals[0+yyTop]);
       yyVal = steps;
       /*Step step = new Step(s, (Path) $3);*/
       /*$$ = new Step((Expr) $1, step);*/
@@ -565,48 +565,56 @@ case 9:
 case 10:
                                        // line 362 "XPathParser.y"
   {
-      yyVal = new Selector (Selector.CHILD, (List) yyVals[0+yyTop]);
-    }
+    @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) yyVals[0+yyTop];
+      yyVal = new Selector (Selector.CHILD, tests);
+  }
   break;
 case 11:
                                        // line 366 "XPathParser.y"
   {
-      yyVal = new Selector (Selector.ATTRIBUTE, (List) yyVals[0+yyTop]);
-    }
+    /* This is safe as we create this in one of the other cases */
+    @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) yyVals[0+yyTop];
+    yyVal = new Selector (Selector.ATTRIBUTE, tests);
+  }
   break;
 case 12:
                                        // line 370 "XPathParser.y"
   {
-      yyVal = new Selector (((Integer) yyVals[-2+yyTop]).intValue (), (List) yyVals[0+yyTop]);
-    }
+    /* This is safe as we create this in one of the other cases */
+    @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) yyVals[0+yyTop];
+    yyVal = new Selector (((Integer) yyVals[-2+yyTop]).intValue (), tests);
+  }
   break;
 case 13:
                                        // line 374 "XPathParser.y"
   {
-      yyVal = new Selector (Selector.SELF, Collections.EMPTY_LIST);
-    }
+    List<Test> emptyList = Collections.emptyList();
+    yyVal = new Selector (Selector.SELF, emptyList);
+  }
   break;
 case 14:
                                        // line 378 "XPathParser.y"
   {
-      yyVal = new Selector (Selector.PARENT, Collections.EMPTY_LIST);
-    }
+    List<Test> emptyList = Collections.emptyList();
+    yyVal = new Selector (Selector.PARENT, emptyList);
+  }
   break;
 case 15:
                                        // line 385 "XPathParser.y"
   {
-      List list = new ArrayList();
-      list.add(yyVals[0+yyTop]);
+      List<Test> list = new ArrayList<Test>();
+      list.add((Test) yyVals[0+yyTop]);
       yyVal = list;
     }
   break;
 case 16:
                                        // line 391 "XPathParser.y"
   {
-      List list = (List)yyVals[-1+yyTop];
-      list.add(yyVals[0+yyTop]);
-      yyVal = list;
-    }
+    /* This is safe as we create this in one of the other cases */
+    @SuppressWarnings("unchecked") List<Test> tests = (List<Test>)yyVals[-1+yyTop];
+    tests.add((Test) yyVals[0+yyTop]);
+    yyVal = tests;
+  }
   break;
 case 17:
                                        // line 415 "XPathParser.y"
@@ -725,30 +733,34 @@ case 37:
 case 39:
                                        // line 508 "XPathParser.y"
   {
-      yyVal = lookupFunction((String) yyVals[-2+yyTop], Collections.EMPTY_LIST);
-    }
+    List<Expr> emptyList = Collections.emptyList();
+    yyVal = lookupFunction((String) yyVals[-2+yyTop], emptyList);
+  }
   break;
 case 40:
                                        // line 512 "XPathParser.y"
   {
-      yyVal = lookupFunction((String) yyVals[-3+yyTop], (List) yyVals[-1+yyTop]);
-    }
+    /* This is safe as we create this below  */
+    @SuppressWarnings("unchecked") List<Expr> exprs = (List<Expr>) yyVals[-1+yyTop];
+    yyVal = lookupFunction((String) yyVals[-3+yyTop], exprs);
+  }
   break;
 case 41:
                                        // line 519 "XPathParser.y"
   {
-      List list = new ArrayList();
-      list.add(yyVals[0+yyTop]);
+      List<Expr> list = new ArrayList<Expr>();
+      list.add((Expr) yyVals[0+yyTop]);
       yyVal = list;
     }
   break;
 case 42:
                                        // line 525 "XPathParser.y"
   {
-      List list = (List) yyVals[0+yyTop];
-      list.add(0, yyVals[-2+yyTop]);
-      yyVal = list;
-    }
+    /* This is safe as we create this above  */
+    @SuppressWarnings("unchecked") List<Expr> list = (List<Expr>) yyVals[0+yyTop];
+    list.add(0, (Expr) yyVals[-2+yyTop]);
+    yyVal = list;
+  }
   break;
 case 44:
                                        // line 535 "XPathParser.y"
@@ -767,9 +779,9 @@ case 47:
       else
         {
           steps = new Steps();
-          steps.path.addFirst(yyVals[0+yyTop]);
+          steps.path.addFirst((Expr) yyVals[0+yyTop]);
         }
-      steps.path.addFirst(yyVals[-2+yyTop]);
+      steps.path.addFirst((Expr) yyVals[-2+yyTop]);
       yyVal = steps;
       /*$$ = new Step ((Expr) $1, (Path) $3);*/
     }
@@ -788,10 +800,10 @@ case 48:
       else
         {
           steps = new Steps();
-          steps.path.addFirst(yyVals[0+yyTop]);
+          steps.path.addFirst((Expr) yyVals[0+yyTop]);
         }
       steps.path.addFirst(s);
-      steps.path.addFirst(yyVals[-2+yyTop]);
+      steps.path.addFirst((Expr) yyVals[-2+yyTop]);
       yyVal = steps;
       /*Step step = new Step (s, (Path) $3);*/
       /*$$ = new Step ((Expr) $1, step);*/
@@ -811,7 +823,7 @@ case 50:
       else
         {
           steps = new Steps();
-          steps.path.addFirst(yyVals[-1+yyTop]);
+          steps.path.addFirst((Expr) yyVals[-1+yyTop]);
         }
       steps.path.addLast(s);
       yyVal = steps;
index 550151386558973a4f1b3b8a3808a33a46c2eeae..a6d3fd130b0b9a159018942d9cb0807570b7fe53 100644 (file)
@@ -78,7 +78,7 @@ public class XPathParser
     return qName;
   }
 
-  Expr lookupFunction(String name, List args)
+  Expr lookupFunction(String name, List<Expr> args)
   {
     int arity = args.size();
     if ("position".equals(name) && arity == 0)
@@ -287,7 +287,7 @@ absolute_location_path:
       else
         {
           steps = new Steps();
-          steps.path.addFirst($2);
+          steps.path.addFirst((Expr) $2);
         }
       steps.path.addFirst(new Root());
       $$ = steps;
@@ -306,7 +306,7 @@ absolute_location_path:
       else
         {
           steps = new Steps();
-          steps.path.addFirst($2);
+          steps.path.addFirst((Expr) $2);
         }
       steps.path.addFirst(s);
       steps.path.addFirst(new Root());
@@ -328,9 +328,9 @@ relative_location_path:
       else
         {
           steps = new Steps();
-          steps.path.addFirst($1);
+          steps.path.addFirst((Expr) $1);
         }
-      steps.path.addLast($3);
+      steps.path.addLast((Expr) $3);
       $$ = steps;
       //$$ = new Step((Expr) $1, (Path) $3);
     }
@@ -347,10 +347,10 @@ relative_location_path:
       else
         {
           steps = new Steps();
-          steps.path.addFirst($1);
+          steps.path.addFirst((Expr) $1);
         }
       steps.path.addLast(s);
-      steps.path.addLast($3);
+      steps.path.addLast((Expr) $3);
       $$ = steps;
       //Step step = new Step(s, (Path) $3);
       //$$ = new Step((Expr) $1, step);
@@ -360,37 +360,43 @@ relative_location_path:
 step:
   step_node_test
     {
-      $$ = new Selector (Selector.CHILD, (List) $1);
+      @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) $1;
+      $$ = new Selector (Selector.CHILD, tests);
     }
   | AT step_node_test
     {
-      $$ = new Selector (Selector.ATTRIBUTE, (List) $2);
+      @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) $2;
+      $$ = new Selector (Selector.ATTRIBUTE, tests);
     }
   | axis_name DOUBLE_COLON step_node_test
     {
-      $$ = new Selector (((Integer) $1).intValue (), (List) $3);
+      @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) $3;
+      $$ = new Selector (((Integer) $1).intValue (), tests);
     }
   | DOT
     {
-      $$ = new Selector (Selector.SELF, Collections.EMPTY_LIST);
+      List<Test> emptyList = Collections.emptyList();
+      $$ = new Selector (Selector.SELF, emptyList);
     }
   | DOUBLE_DOT
     {
-      $$ = new Selector (Selector.PARENT, Collections.EMPTY_LIST);
+      List<Test> emptyList = Collections.emptyList();
+      $$ = new Selector (Selector.PARENT, emptyList);
     }
   ;
 
 step_node_test:
   node_test
     {
-      List list = new ArrayList();
-      list.add($1);
+      List<Test> list = new ArrayList<Test>();
+      list.add((Test) $1);
       $$ = list;
     }
   | step_node_test predicate
     {
-      List list = (List)$1;
-      list.add($2);
+      /* This is safe as we create this in one of the other cases */
+      @SuppressWarnings("unchecked") List<Test> tests = (List<Test>)$1;
+      tests.add((Test) $2);
       $$ = list;
     }
   ;
@@ -506,25 +512,29 @@ primary_expr:
 function_call:
   function_name LP RP
     {
-      $$ = lookupFunction((String) $1, Collections.EMPTY_LIST);
+      List<Expr> emptyList = Collections.emptyList();
+      $$ = lookupFunction((String) $1, emptyList);
     }
   | function_name LP argument_list RP
     {
-      $$ = lookupFunction((String) $1, (List) $3);
+      /* This is safe as we create this below  */
+      @SuppressWarnings("unchecked") List<Expr> exprs = (List<Expr>) $3;
+      $$ = lookupFunction((String) $1, (List) exprs);
     }
   ;
 
 argument_list:
   expr
     {
-      List list = new ArrayList();
-      list.add($1);
+      List<Expr> list = new ArrayList<Expr>();
+      list.add((Expr) $1);
       $$ = list;
     }
   | expr COMMA argument_list
     {
-      List list = (List) $3;
-      list.add(0, $1);
+      /* This is safe as we create this above  */
+      @SuppressWarnings("unchecked") List<Expr> list = (List<Expr>) $3;
+      list.add(0, (Expr) $1);
       $$ = list;
     }
   ;
@@ -550,9 +560,9 @@ path_expr:
       else
         {
           steps = new Steps();
-          steps.path.addFirst($3);
+          steps.path.addFirst((Expr) $3);
         }
-      steps.path.addFirst($1);
+      steps.path.addFirst((Expr) $1);
       $$ = steps;
       //$$ = new Step ((Expr) $1, (Path) $3);
     }
@@ -572,7 +582,7 @@ path_expr:
           steps.path.addFirst($3);
         }
       steps.path.addFirst(s);
-      steps.path.addFirst($1);
+      steps.path.addFirst((Expr) $1);
       $$ = steps;
       //Step step = new Step (s, (Path) $3);
       //$$ = new Step ((Expr) $1, step);
@@ -594,7 +604,7 @@ filter_expr:
       else
         {
           steps = new Steps();
-          steps.path.addFirst($1);
+          steps.path.addFirst((Expr) $1);
         }
       steps.path.addLast(s);
       $$ = steps;
index a287137827b4686da27ccc4752d5a20cce8cb565..bf4516afae7aca50356b4a3f2ea0979e69d01acf 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.xpath;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.Reader;
@@ -90,7 +92,7 @@ implements XPathParser.yyInput
     
   }
 
-  static final Map keywords = new TreeMap ();
+  static final Map<String,Integer> keywords = new TreeMap<String,Integer> ();
   static
   {
     keywords.put ("ancestor", new Integer (XPathParser.ANCESTOR));
@@ -314,7 +316,7 @@ implements XPathParser.yyInput
   XPathToken consume_literal (int delimiter)
     throws IOException
   {
-    StringBuffer buf = new StringBuffer ();
+    CPStringBuilder buf = new CPStringBuilder ();
     while (true)
       {
         int c = in.read ();
@@ -336,7 +338,7 @@ implements XPathParser.yyInput
   XPathToken consume_digits (int c)
     throws IOException
   {
-    StringBuffer buf = new StringBuffer ();
+    CPStringBuilder buf = new CPStringBuilder ();
     buf.append ((char) c);
     while (true)
       {
@@ -357,7 +359,7 @@ implements XPathParser.yyInput
   XPathToken consume_name (int c)
     throws IOException
   {
-    StringBuffer buf = new StringBuffer ();
+    CPStringBuilder buf = new CPStringBuilder ();
     buf.append ((char) c);
     while (true)
       {
index 4920ca08c483e5af3fb9c4ea499a7aa69001cdaf..ab59f0f42b0551cfbab29c0048aae15756c7bb18 100644 (file)
@@ -133,6 +133,7 @@ $(XMLJ_H_FILES) \
 $(GTKPEER_H_FILES) \
 $(QTPEER_H_FILES) \
 $(GCONF_PREFS_FILES) \
+gnu_java_math_GMP.h \
 gnu_java_net_VMPlainSocketImpl.h \
 gnu_java_net_local_LocalSocketImpl.h \
 gnu_java_nio_EpollSelectorImpl.h \
@@ -370,6 +371,8 @@ gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h: $(top_builddir)/gnu
        $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstNativeDataLine
 gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java
        $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstPipeline
+gnu_java_math_GMP.h: $(top_srcdir)/gnu/java/math/GMP.java
+       $(JAVAH) -o $@ gnu.java.math.GMP
 gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java
        $(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl
 gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java
index c94219b8605a53b20ce844d446e78c7467e4572b..7caa9c8d3c257844e245eb6336d44f43c8c1b95e 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -73,6 +76,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -104,6 +109,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -142,11 +153,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -156,6 +168,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -177,7 +191,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -243,8 +260,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -255,6 +274,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -314,6 +334,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 @CREATE_JNI_HEADERS_FALSE@DISTCLEANFILES = jni_md.h config-int.h
 @CREATE_JNI_HEADERS_TRUE@DISTCLEANFILES = jni_md.h config-int.h $(H_FILES)
@@ -442,6 +463,7 @@ $(XMLJ_H_FILES) \
 $(GTKPEER_H_FILES) \
 $(QTPEER_H_FILES) \
 $(GCONF_PREFS_FILES) \
+gnu_java_math_GMP.h \
 gnu_java_net_VMPlainSocketImpl.h \
 gnu_java_net_local_LocalSocketImpl.h \
 gnu_java_nio_EpollSelectorImpl.h \
@@ -858,6 +880,8 @@ uninstall-am: uninstall-info-am
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstNativeDataLine
 @CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstPipeline
+@CREATE_JNI_HEADERS_TRUE@gnu_java_math_GMP.h: $(top_srcdir)/gnu/java/math/GMP.java
+@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.math.GMP
 @CREATE_JNI_HEADERS_TRUE@gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl
 @CREATE_JNI_HEADERS_TRUE@gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java
index 4330a30da8eefa880724d478705bc064fb1b6a17..0af9aba1328b0556a24c922b8322ef2d1b508772 100644 (file)
@@ -96,6 +96,9 @@
 /* Define to 1 if you have the `getsockopt' function. */
 #undef HAVE_GETSOCKOPT
 
+/* Define to 1 if you have the <gmp.h> header file. */
+#undef HAVE_GMP_H
+
 /* Define if function attributes a la GCC 2.5 and higher are available. */
 #undef HAVE_GNUC25_ATTRIB
 
 /* Define to 1 if you have the `ltdl' library (-lltdl). */
 #undef HAVE_LIBLTDL
 
+/* Define to 1 if you have the `socket' library (-lsocket). */
+#undef HAVE_LIBSOCKET
+
 /* Define to 1 if you have the `listen' function. */
 #undef HAVE_LISTEN
 
 /* Define to 1 if you have the <sys/select.h> header file. */
 #undef HAVE_SYS_SELECT_H
 
+/* Define to 1 if you have the <sys/sockio.h> header file. */
+#undef HAVE_SYS_SOCKIO_H
+
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #undef HAVE_SYS_STAT_H
 
 /* Version number of package */
 #undef VERSION
 
+/* Define to 1 if gmp is usable */
+#undef WITH_GNU_MP
+
 /* whether byteorder is bigendian */
 #undef WORDS_BIGENDIAN
 
diff --git a/libjava/classpath/include/gnu_java_math_GMP.h b/libjava/classpath/include/gnu_java_math_GMP.h
new file mode 100644 (file)
index 0000000..dc79c69
--- /dev/null
@@ -0,0 +1,58 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+
+#include <jni.h>
+
+#ifndef __gnu_java_math_GMP__
+#define __gnu_java_math_GMP__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natInitializeLibrary (JNIEnv *env, jclass);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natInitialize (JNIEnv *env, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFinalize (JNIEnv *env, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromLong (JNIEnv *env, jobject, jlong);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromBI (JNIEnv *env, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromByteArray (JNIEnv *env, jobject, jbyteArray);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natFromString (JNIEnv *env, jobject, jstring, jint);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromSignedMagnitude (JNIEnv *env, jobject, jbyteArray, jboolean);
+JNIEXPORT jstring JNICALL Java_gnu_java_math_GMP_natToString (JNIEnv *env, jobject, jint);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natToByteArray (JNIEnv *env, jobject, jbyteArray);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natAbsIntValue (JNIEnv *env, jobject);
+JNIEXPORT jdouble JNICALL Java_gnu_java_math_GMP_natDoubleValue (JNIEnv *env, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natCompare (JNIEnv *env, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAdd (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natSubtract (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natMultiply (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natQuotient (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natRemainder (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natQuotientAndRemainder (JNIEnv *env, jobject, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natModulo (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natPow (JNIEnv *env, jobject, jint, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natModPow (JNIEnv *env, jobject, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natModInverse (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natGCD (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natTestPrimality (JNIEnv *env, jobject, jint);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natShiftLeft (JNIEnv *env, jobject, jint, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natShiftRight (JNIEnv *env, jobject, jint, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natLowestSetBit (JNIEnv *env, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAbs (JNIEnv *env, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natNegate (JNIEnv *env, jobject, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natBitLength (JNIEnv *env, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natSetBitCount (JNIEnv *env, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natXor (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natOr (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAnd (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAndNot (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFlipBit (JNIEnv *env, jobject, jint, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natTestBit (JNIEnv *env, jobject, jint);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natSetBit (JNIEnv *env, jobject, jint, jboolean, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natNot (JNIEnv *env, jobject, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __gnu_java_math_GMP__ */
index d63f049c9014b9ede5b69e26f64a946779098a1c..1ff36721a992389c562b7d4c4d1903d8dff8ea90 100644 (file)
@@ -13,15 +13,13 @@ extern "C"
 JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache (JNIEnv *env, jclass);
 JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1class (JNIEnv *env, jclass);
 JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class (JNIEnv *env, jclass);
-JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists (JNIEnv *env, jclass, jstring);
-JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1add_1dir (JNIEnv *env, jclass, jstring);
-JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1remove_1dir (JNIEnv *env, jclass, jstring);
-JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string (JNIEnv *env, jclass, jstring, jstring);
-JNIEXPORT jstring JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string (JNIEnv *env, jclass, jstring);
-JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset (JNIEnv *env, jclass, jstring);
-JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1suggest_1sync (JNIEnv *env, jclass);
-JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes (JNIEnv *env, jclass, jstring);
-JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1dir_1exists (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1set_1string (JNIEnv *env, jclass, jstring, jstring);
+JNIEXPORT jstring JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1get_1string (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unset (JNIEnv *env, jclass, jstring);
+JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1suggest_1sync (JNIEnv *env, jclass);
+JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1all_1nodes (JNIEnv *env, jclass, jstring);
+JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1all_1keys (JNIEnv *env, jclass, jstring);
 JNIEXPORT jstring JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key (JNIEnv *env, jclass, jstring);
 JNIEXPORT jstring JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key (JNIEnv *env, jclass, jstring);
 
index 2702176744c419b7b1aecbc6a4176c546c4dfc32..722c315820b8f45b7b0c988e76d921329cd32b42 100644 (file)
@@ -28,6 +28,7 @@ JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setWritable (JNIEnv *env, jclass,
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setExecutable (JNIEnv *env, jclass, jstring, jboolean, jboolean);
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_isFile (JNIEnv *env, jclass, jstring);
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canWrite (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canWriteDirectory (JNIEnv *env, jclass, jstring);
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canRead (JNIEnv *env, jclass, jstring);
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canExecute (JNIEnv *env, jclass, jstring);
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_isDirectory (JNIEnv *env, jclass, jstring);
index ff95094a223068bdf0dc8b2310bba8fcd6d5fc2c..3d37e4be47ef15707d8f950932f309a1d16ddb75 100644 (file)
@@ -12,6 +12,10 @@ extern "C"
 
 JNIEXPORT void JNICALL Java_java_net_VMNetworkInterface_initIds (JNIEnv *env, jclass);
 JNIEXPORT jobjectArray JNICALL Java_java_net_VMNetworkInterface_getVMInterfaces (JNIEnv *env, jclass);
+JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_isUp (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_isLoopback (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_isPointToPoint (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_supportsMulticast (JNIEnv *env, jclass, jstring);
 
 #ifdef __cplusplus
 }
index 707edd612637d01782ead75e4ac34391444d6080..1c4e69716fdf42add629ee7f0d0e75b1a7b0efb5 100644 (file)
@@ -1,5 +1,5 @@
 /* jni.h
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007  Free Software Foundation
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008  Free Software Foundation
 
 This file is part of GNU Classpath.
 
@@ -136,16 +136,6 @@ struct _jfieldID;
 struct _jmethodID;
 typedef struct _jfieldID *jfieldID;
 typedef struct _jmethodID *jmethodID;
-
-enum _jobjectRefType
-{
-  JNIInvalidRefType    = 0,
-  JNILocalRefType      = 1,
-  JNIGlobalRefType     = 2,
-  JNIWeakGlobalRefType = 3 
-};
-
-typedef enum _jobjectRefType jobjectRefType;
 #endif 
 
 /* Version numbers.  */
@@ -164,6 +154,15 @@ typedef enum _jobjectRefType jobjectRefType;
 #define JNI_EDETACHED    (-2)
 #define JNI_EVERSION     (-3)
 
+enum _jobjectRefType
+{
+  JNIInvalidRefType    = 0,
+  JNILocalRefType      = 1,
+  JNIGlobalRefType     = 2,
+  JNIWeakGlobalRefType = 3 
+};
+
+typedef enum _jobjectRefType jobjectRefType;
 
 #ifdef __cplusplus
 extern "C"
@@ -661,894 +660,894 @@ class _Jv_JNIEnv
 {
 public:
   /* The method table.  */
-  struct JNINativeInterface_ *p;
+  struct JNINativeInterface_ *functions;
 
 #ifdef _CLASSPATH_JNIENV_CONTENTS
   _CLASSPATH_JNIENV_CONTENTS
 #endif
 
   jint GetVersion ()
-  { return p->GetVersion (this); }
+  { return functions->GetVersion (this); }
 
   jclass DefineClass (const char *name, jobject obj0, const jbyte * val1,
                      jsize val2)
-  { return p->DefineClass (this, name, obj0, val1, val2); }
+  { return functions->DefineClass (this, name, obj0, val1, val2); }
 
   jclass FindClass (const char * val0)
-  { return p->FindClass (this, val0); }
+  { return functions->FindClass (this, val0); }
 
   jmethodID FromReflectedMethod (jobject obj0)
-  { return p->FromReflectedMethod (this, obj0); }
+  { return functions->FromReflectedMethod (this, obj0); }
 
   jfieldID FromReflectedField (jobject obj0)
-  { return p->FromReflectedField (this, obj0); }
+  { return functions->FromReflectedField (this, obj0); }
 
   jobject ToReflectedMethod (jclass cl0, jmethodID meth1, jboolean val2)
-  { return p->ToReflectedMethod (this, cl0, meth1, val2); }
+  { return functions->ToReflectedMethod (this, cl0, meth1, val2); }
 
   jclass GetSuperclass (jclass cl0)
-  { return p->GetSuperclass (this, cl0); }
+  { return functions->GetSuperclass (this, cl0); }
 
   jboolean IsAssignableFrom (jclass cl0, jclass cl1)
-  { return p->IsAssignableFrom (this, cl0, cl1); }
+  { return functions->IsAssignableFrom (this, cl0, cl1); }
 
   jobject ToReflectedField (jclass cl0, jfieldID fld1, jboolean val2)
-  { return p->ToReflectedField (this, cl0, fld1, val2); }
+  { return functions->ToReflectedField (this, cl0, fld1, val2); }
 
   jint Throw (jthrowable val0)
-  { return p->Throw (this, val0); }
+  { return functions->Throw (this, val0); }
 
   jint ThrowNew (jclass cl0, const char * val1)
-  { return p->ThrowNew (this, cl0, val1); }
+  { return functions->ThrowNew (this, cl0, val1); }
 
   jthrowable ExceptionOccurred ()
-  { return p->ExceptionOccurred (this); }
+  { return functions->ExceptionOccurred (this); }
 
   void ExceptionDescribe ()
-  { p->ExceptionDescribe (this); }
+  { functions->ExceptionDescribe (this); }
 
   void ExceptionClear ()
-  { p->ExceptionClear (this); }
+  { functions->ExceptionClear (this); }
 
   void FatalError (const char * val0)
-  { p->FatalError (this, val0); }
+  { functions->FatalError (this, val0); }
 
   jint PushLocalFrame (jint val0)
-  { return p->PushLocalFrame (this, val0); }
+  { return functions->PushLocalFrame (this, val0); }
 
   jobject PopLocalFrame (jobject obj0)
-  { return p->PopLocalFrame (this, obj0); }
+  { return functions->PopLocalFrame (this, obj0); }
 
   jobject NewGlobalRef (jobject obj0)
-  { return p->NewGlobalRef (this, obj0); }
+  { return functions->NewGlobalRef (this, obj0); }
 
   void DeleteGlobalRef (jobject obj0)
-  { p->DeleteGlobalRef (this, obj0); }
+  { functions->DeleteGlobalRef (this, obj0); }
 
   void DeleteLocalRef (jobject obj0)
-  { p->DeleteLocalRef (this, obj0); }
+  { functions->DeleteLocalRef (this, obj0); }
 
   jboolean IsSameObject (jobject obj0, jobject obj1)
-  { return p->IsSameObject (this, obj0, obj1); }
+  { return functions->IsSameObject (this, obj0, obj1); }
 
   jobject NewLocalRef (jobject obj0)
-  { return p->NewLocalRef (this, obj0); }
+  { return functions->NewLocalRef (this, obj0); }
 
   jint EnsureLocalCapacity (jint val0)
-  { return p->EnsureLocalCapacity (this, val0); }
+  { return functions->EnsureLocalCapacity (this, val0); }
 
   jobject AllocObject (jclass cl0)
-  { return p->AllocObject (this, cl0); }
+  { return functions->AllocObject (this, cl0); }
 
   jobject NewObject (jclass cl0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jobject result = p->NewObjectV (this, cl0, meth1, args);
+    jobject result = functions->NewObjectV (this, cl0, meth1, args);
     va_end (args);
     return result;
   }
 
   jobject NewObjectV (jclass cl0, jmethodID meth1, va_list val2)
-  { return p->NewObjectV (this, cl0, meth1, val2); }
+  { return functions->NewObjectV (this, cl0, meth1, val2); }
 
   jobject NewObjectA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->NewObjectA (this, cl0, meth1, val2); }
+  { return functions->NewObjectA (this, cl0, meth1, val2); }
 
   jclass GetObjectClass (jobject obj0)
-  { return p->GetObjectClass (this, obj0); }
+  { return functions->GetObjectClass (this, obj0); }
 
   jboolean IsInstanceOf (jobject obj0, jclass cl1)
-  { return p->IsInstanceOf (this, obj0, cl1); }
+  { return functions->IsInstanceOf (this, obj0, cl1); }
 
   jmethodID GetMethodID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetMethodID (this, cl0, val1, val2); }
+  { return functions->GetMethodID (this, cl0, val1, val2); }
 
   jobject CallObjectMethod (jobject obj0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jobject result = p->CallObjectMethodV (this, obj0, meth1, args);
+    jobject result = functions->CallObjectMethodV (this, obj0, meth1, args);
     va_end (args);
     return result;
   }
 
   jobject CallObjectMethodV (jobject obj0, jmethodID meth1, va_list val2)
-  { return p->CallObjectMethodV (this, obj0, meth1, val2); }
+  { return functions->CallObjectMethodV (this, obj0, meth1, val2); }
 
   jobject CallObjectMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallObjectMethodA (this, obj0, meth1, val2); }
+  { return functions->CallObjectMethodA (this, obj0, meth1, val2); }
 
   jboolean CallBooleanMethod (jobject obj0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jboolean result = p->CallBooleanMethodV (this, obj0, meth1, args);
+    jboolean result = functions->CallBooleanMethodV (this, obj0, meth1, args);
     va_end (args);
     return result;
   }
 
   jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, va_list val2)
-  { return p->CallBooleanMethodV (this, obj0, meth1, val2); }
+  { return functions->CallBooleanMethodV (this, obj0, meth1, val2); }
 
   jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1,
                                const jvalue * val2)
-  { return p->CallBooleanMethodA (this, obj0, meth1, val2); }
+  { return functions->CallBooleanMethodA (this, obj0, meth1, val2); }
 
   jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jbyte result = p->CallByteMethodV (this, obj0, meth1, args);
+    jbyte result = functions->CallByteMethodV (this, obj0, meth1, args);
     va_end (args);
     return result;
   }
 
   jbyte CallByteMethodV (jobject obj0, jmethodID meth1, va_list val2)
-  { return p->CallByteMethodV (this, obj0, meth1, val2); }
+  { return functions->CallByteMethodV (this, obj0, meth1, val2); }
 
   jbyte CallByteMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
-  { return p->CallByteMethodA (this, obj0, meth1, val2); }
+  { return functions->CallByteMethodA (this, obj0, meth1, val2); }
 
   jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jchar result = p->CallCharMethodV (this, obj0, meth1, args);
+    jchar result = functions->CallCharMethodV (this, obj0, meth1, args);
     va_end (args);
     return result;
   }
 
   jchar CallCharMethodV (jobject obj0, jmethodID meth1, va_list val2)
-  { return p->CallCharMethodV (this, obj0, meth1, val2); }
+  { return functions->CallCharMethodV (this, obj0, meth1, val2); }
 
   jchar CallCharMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
-  { return p->CallCharMethodA (this, obj0, meth1, val2); }
+  { return functions->CallCharMethodA (this, obj0, meth1, val2); }
 
   jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jshort result = p->CallShortMethodV (this, obj0, meth1, args);
+    jshort result = functions->CallShortMethodV (this, obj0, meth1, args);
     va_end (args);
     return result;
   }
 
   jshort CallShortMethodV (jobject obj0, jmethodID meth1, va_list val2)
-  { return p->CallShortMethodV (this, obj0, meth1, val2); }
+  { return functions->CallShortMethodV (this, obj0, meth1, val2); }
 
   jshort CallShortMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
-  { return p->CallShortMethodA (this, obj0, meth1, val2); }
+  { return functions->CallShortMethodA (this, obj0, meth1, val2); }
 
   jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jint result = p->CallIntMethodV (this, obj0, meth1, args);
+    jint result = functions->CallIntMethodV (this, obj0, meth1, args);
     va_end (args);
     return result;
   }
 
   jint CallIntMethodV (jobject obj0, jmethodID meth1, va_list val2)
-  { return p->CallIntMethodV (this, obj0, meth1, val2); }
+  { return functions->CallIntMethodV (this, obj0, meth1, val2); }
 
   jint CallIntMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallIntMethodA (this, obj0, meth1, val2); }
+  { return functions->CallIntMethodA (this, obj0, meth1, val2); }
 
   jlong CallLongMethod (jobject obj0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jlong result = p->CallLongMethodV (this, obj0, meth1, args);
+    jlong result = functions->CallLongMethodV (this, obj0, meth1, args);
     va_end (args);
     return result;
   }
 
   jlong CallLongMethodV (jobject obj0, jmethodID meth1, va_list val2)
-  { return p->CallLongMethodV (this, obj0, meth1, val2); }
+  { return functions->CallLongMethodV (this, obj0, meth1, val2); }
 
   jlong CallLongMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
-  { return p->CallLongMethodA (this, obj0, meth1, val2); }
+  { return functions->CallLongMethodA (this, obj0, meth1, val2); }
 
   jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jfloat result = p->CallFloatMethodV (this, obj0, meth1, args);
+    jfloat result = functions->CallFloatMethodV (this, obj0, meth1, args);
     va_end (args);
     return result;
   }
 
   jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, va_list val2)
-  { return p->CallFloatMethodV (this, obj0, meth1, val2); }
+  { return functions->CallFloatMethodV (this, obj0, meth1, val2); }
 
   jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
-  { return p->CallFloatMethodA (this, obj0, meth1, val2); }
+  { return functions->CallFloatMethodA (this, obj0, meth1, val2); }
 
   jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jdouble result = p->CallDoubleMethodV (this, obj0, meth1, args);
+    jdouble result = functions->CallDoubleMethodV (this, obj0, meth1, args);
     va_end (args);
     return result;
   }
 
   jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, va_list val2)
-  { return p->CallDoubleMethodV (this, obj0, meth1, val2); }
+  { return functions->CallDoubleMethodV (this, obj0, meth1, val2); }
 
   jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
-  { return p->CallDoubleMethodA (this, obj0, meth1, val2); }
+  { return functions->CallDoubleMethodA (this, obj0, meth1, val2); }
 
   void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    p->CallVoidMethodV (this, obj0, meth1, args);
+    functions->CallVoidMethodV (this, obj0, meth1, args);
     va_end (args);
   }
 
   void CallVoidMethodV (jobject obj0, jmethodID meth1, va_list val2)
-  { p->CallVoidMethodV (this, obj0, meth1, val2); }
+  { functions->CallVoidMethodV (this, obj0, meth1, val2); }
 
   void CallVoidMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
-  { p->CallVoidMethodA (this, obj0, meth1, val2); }
+  { functions->CallVoidMethodA (this, obj0, meth1, val2); }
 
   jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
   {
     va_list args;
     va_start (args, meth2);
-    jobject result = p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);
+    jobject result = functions->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);
     va_end (args);
     return result;
   }
 
   jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
-  { return p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
 
   jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
-  { return p->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
 
   jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
   {
     va_list args;
     va_start (args, meth2);
-    jboolean result = p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);
+    jboolean result = functions->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);
     va_end (args);
     return result;
   }
 
   jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
-  { return p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
 
   jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
-  { return p->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
 
   jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
   {
     va_list args;
     va_start (args, meth2);
-    jbyte result = p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);
+    jbyte result = functions->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);
     va_end (args);
     return result;
   }
 
   jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
-  { return p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
 
   jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
-  { return p->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
 
   jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
   {
     va_list args;
     va_start (args, meth2);
-    jchar result = p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);
+    jchar result = functions->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);
     va_end (args);
     return result;
   }
 
   jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
-  { return p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
 
   jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
-  { return p->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
 
   jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
   {
     va_list args;
     va_start (args, meth2);
-    jshort result = p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);
+    jshort result = functions->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);
     va_end (args);
     return result;
   }
 
   jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
-  { return p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
 
   jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
-  { return p->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
 
   jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
   {
     va_list args;
     va_start (args, meth2);
-    jint result = p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);
+    jint result = functions->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);
     va_end (args);
     return result;
   }
 
   jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
-  { return p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
 
   jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
-  { return p->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
 
   jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
   {
     va_list args;
     va_start (args, meth2);
-    jlong result = p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);
+    jlong result = functions->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);
     va_end (args);
     return result;
   }
 
   jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
-  { return p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
 
   jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
-  { return p->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
 
   jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
   {
     va_list args;
     va_start (args, meth2);
-    jfloat result = p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);
+    jfloat result = functions->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);
     va_end (args);
     return result;
   }
 
   jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
-  { return p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
 
   jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
-  { return p->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
 
   jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
   {
     va_list args;
     va_start (args, meth2);
-    jdouble result = p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);
+    jdouble result = functions->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);
     va_end (args);
     return result;
   }
 
   jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
-  { return p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
 
   jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
-  { return p->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
+  { return functions->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
 
   void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
   {
     va_list args;
     va_start (args, meth2);
-    p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
+    functions->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
     va_end (args);
   }
 
   void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
-  { p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
+  { functions->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
 
   void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
-  { p->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
+  { functions->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
 
   jfieldID GetFieldID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetFieldID (this, cl0, val1, val2); }
+  { return functions->GetFieldID (this, cl0, val1, val2); }
 
   jobject GetObjectField (jobject obj0, jfieldID fld1)
-  { return p->GetObjectField (this, obj0, fld1); }
+  { return functions->GetObjectField (this, obj0, fld1); }
 
   jboolean GetBooleanField (jobject obj0, jfieldID fld1)
-  { return p->GetBooleanField (this, obj0, fld1); }
+  { return functions->GetBooleanField (this, obj0, fld1); }
 
   jbyte GetByteField (jobject obj0, jfieldID fld1)
-  { return p->GetByteField (this, obj0, fld1); }
+  { return functions->GetByteField (this, obj0, fld1); }
 
   jchar GetCharField (jobject obj0, jfieldID fld1)
-  { return p->GetCharField (this, obj0, fld1); }
+  { return functions->GetCharField (this, obj0, fld1); }
 
   jshort GetShortField (jobject obj0, jfieldID fld1)
-  { return p->GetShortField (this, obj0, fld1); }
+  { return functions->GetShortField (this, obj0, fld1); }
 
   jint GetIntField (jobject obj0, jfieldID fld1)
-  { return p->GetIntField (this, obj0, fld1); }
+  { return functions->GetIntField (this, obj0, fld1); }
 
   jlong GetLongField (jobject obj0, jfieldID fld1)
-  { return p->GetLongField (this, obj0, fld1); }
+  { return functions->GetLongField (this, obj0, fld1); }
 
   jfloat GetFloatField (jobject obj0, jfieldID fld1)
-  { return p->GetFloatField (this, obj0, fld1); }
+  { return functions->GetFloatField (this, obj0, fld1); }
 
   jdouble GetDoubleField (jobject obj0, jfieldID fld1)
-  { return p->GetDoubleField (this, obj0, fld1); }
+  { return functions->GetDoubleField (this, obj0, fld1); }
 
   void SetObjectField (jobject obj0, jfieldID fld1, jobject obj2)
-  { p->SetObjectField (this, obj0, fld1, obj2); }
+  { functions->SetObjectField (this, obj0, fld1, obj2); }
 
   void SetBooleanField (jobject obj0, jfieldID fld1, jboolean val2)
-  { p->SetBooleanField (this, obj0, fld1, val2); }
+  { functions->SetBooleanField (this, obj0, fld1, val2); }
 
   void SetByteField (jobject obj0, jfieldID fld1, jbyte val2)
-  { p->SetByteField (this, obj0, fld1, val2); }
+  { functions->SetByteField (this, obj0, fld1, val2); }
 
   void SetCharField (jobject obj0, jfieldID fld1, jchar val2)
-  { p->SetCharField (this, obj0, fld1, val2); }
+  { functions->SetCharField (this, obj0, fld1, val2); }
 
   void SetShortField (jobject obj0, jfieldID fld1, jshort val2)
-  { p->SetShortField (this, obj0, fld1, val2); }
+  { functions->SetShortField (this, obj0, fld1, val2); }
 
   void SetIntField (jobject obj0, jfieldID fld1, jint val2)
-  { p->SetIntField (this, obj0, fld1, val2); }
+  { functions->SetIntField (this, obj0, fld1, val2); }
 
   void SetLongField (jobject obj0, jfieldID fld1, jlong val2)
-  { p->SetLongField (this, obj0, fld1, val2); }
+  { functions->SetLongField (this, obj0, fld1, val2); }
 
   void SetFloatField (jobject obj0, jfieldID fld1, jfloat val2)
-  { p->SetFloatField (this, obj0, fld1, val2); }
+  { functions->SetFloatField (this, obj0, fld1, val2); }
 
   void SetDoubleField (jobject obj0, jfieldID fld1, jdouble val2)
-  { p->SetDoubleField (this, obj0, fld1, val2); }
+  { functions->SetDoubleField (this, obj0, fld1, val2); }
 
   jmethodID GetStaticMethodID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetStaticMethodID (this, cl0, val1, val2); }
+  { return functions->GetStaticMethodID (this, cl0, val1, val2); }
 
   jobject CallStaticObjectMethod (jclass cl0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jobject result = p->CallStaticObjectMethodV (this, cl0, meth1, args);
+    jobject result = functions->CallStaticObjectMethodV (this, cl0, meth1, args);
     va_end (args);
     return result;
   }
 
   jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, va_list val2)
-  { return p->CallStaticObjectMethodV (this, cl0, meth1, val2); }
+  { return functions->CallStaticObjectMethodV (this, cl0, meth1, val2); }
 
   jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1,
                                    const jvalue * val2)
-  { return p->CallStaticObjectMethodA (this, cl0, meth1, val2); }
+  { return functions->CallStaticObjectMethodA (this, cl0, meth1, val2); }
 
   jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jboolean result = p->CallStaticBooleanMethodV (this, cl0, meth1, args);
+    jboolean result = functions->CallStaticBooleanMethodV (this, cl0, meth1, args);
     va_end (args);
     return result;
   }
 
   jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, va_list val2)
-  { return p->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
+  { return functions->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
 
   jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1,
                                      const jvalue * val2)
-  { return p->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
+  { return functions->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
 
   jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jbyte result = p->CallStaticByteMethodV (this, cl0, meth1, args);
+    jbyte result = functions->CallStaticByteMethodV (this, cl0, meth1, args);
     va_end (args);
     return result;
   }
 
   jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, va_list val2)
-  { return p->CallStaticByteMethodV (this, cl0, meth1, val2); }
+  { return functions->CallStaticByteMethodV (this, cl0, meth1, val2); }
 
   jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
-  { return p->CallStaticByteMethodA (this, cl0, meth1, val2); }
+  { return functions->CallStaticByteMethodA (this, cl0, meth1, val2); }
 
   jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jchar result = p->CallStaticCharMethodV (this, cl0, meth1, args);
+    jchar result = functions->CallStaticCharMethodV (this, cl0, meth1, args);
     va_end (args);
     return result;
   }
 
   jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, va_list val2)
-  { return p->CallStaticCharMethodV (this, cl0, meth1, val2); }
+  { return functions->CallStaticCharMethodV (this, cl0, meth1, val2); }
 
   jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
-  { return p->CallStaticCharMethodA (this, cl0, meth1, val2); }
+  { return functions->CallStaticCharMethodA (this, cl0, meth1, val2); }
 
   jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jshort result = p->CallStaticShortMethodV (this, cl0, meth1, args);
+    jshort result = functions->CallStaticShortMethodV (this, cl0, meth1, args);
     va_end (args);
     return result;
   }
 
   jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, va_list val2)
-  { return p->CallStaticShortMethodV (this, cl0, meth1, val2); }
+  { return functions->CallStaticShortMethodV (this, cl0, meth1, val2); }
 
   jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1,
                                  const jvalue * val2)
-  { return p->CallStaticShortMethodA (this, cl0, meth1, val2); }
+  { return functions->CallStaticShortMethodA (this, cl0, meth1, val2); }
 
   jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jint result = p->CallStaticIntMethodV (this, cl0, meth1, args);
+    jint result = functions->CallStaticIntMethodV (this, cl0, meth1, args);
     va_end (args);
     return result;
   }
 
   jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, va_list val2)
-  { return p->CallStaticIntMethodV (this, cl0, meth1, val2); }
+  { return functions->CallStaticIntMethodV (this, cl0, meth1, val2); }
 
   jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
-  { return p->CallStaticIntMethodA (this, cl0, meth1, val2); }
+  { return functions->CallStaticIntMethodA (this, cl0, meth1, val2); }
 
   jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jlong result = p->CallStaticLongMethodV (this, cl0, meth1, args);
+    jlong result = functions->CallStaticLongMethodV (this, cl0, meth1, args);
     va_end (args);
     return result;
   }
 
   jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, va_list val2)
-  { return p->CallStaticLongMethodV (this, cl0, meth1, val2); }
+  { return functions->CallStaticLongMethodV (this, cl0, meth1, val2); }
 
   jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
-  { return p->CallStaticLongMethodA (this, cl0, meth1, val2); }
+  { return functions->CallStaticLongMethodA (this, cl0, meth1, val2); }
 
   jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jfloat result = p->CallStaticFloatMethodV (this, cl0, meth1, args);
+    jfloat result = functions->CallStaticFloatMethodV (this, cl0, meth1, args);
     va_end (args);
     return result;
   }
 
   jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, va_list val2)
-  { return p->CallStaticFloatMethodV (this, cl0, meth1, val2); }
+  { return functions->CallStaticFloatMethodV (this, cl0, meth1, val2); }
 
   jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1,
                                  const jvalue * val2)
-  { return p->CallStaticFloatMethodA (this, cl0, meth1, val2); }
+  { return functions->CallStaticFloatMethodA (this, cl0, meth1, val2); }
 
   jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    jdouble result = p->CallStaticDoubleMethodV (this, cl0, meth1, args);
+    jdouble result = functions->CallStaticDoubleMethodV (this, cl0, meth1, args);
     va_end (args);
     return result;
   }
 
   jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, va_list val2)
-  { return p->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
+  { return functions->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
 
   jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1,
                                    const jvalue * val2)
-  { return p->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
+  { return functions->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
 
   void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
   {
     va_list args;
     va_start (args, meth1);
-    p->CallStaticVoidMethodV (this, cl0, meth1, args);
+    functions->CallStaticVoidMethodV (this, cl0, meth1, args);
     va_end (args);
   }
 
   void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, va_list val2)
-  { p->CallStaticVoidMethodV (this, cl0, meth1, val2); }
+  { functions->CallStaticVoidMethodV (this, cl0, meth1, val2); }
 
   void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
-  { p->CallStaticVoidMethodA (this, cl0, meth1, val2); }
+  { functions->CallStaticVoidMethodA (this, cl0, meth1, val2); }
 
   jfieldID GetStaticFieldID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetStaticFieldID (this, cl0, val1, val2); }
+  { return functions->GetStaticFieldID (this, cl0, val1, val2); }
 
   jobject GetStaticObjectField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticObjectField (this, cl0, fld1); }
+  { return functions->GetStaticObjectField (this, cl0, fld1); }
 
   jboolean GetStaticBooleanField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticBooleanField (this, cl0, fld1); }
+  { return functions->GetStaticBooleanField (this, cl0, fld1); }
 
   jbyte GetStaticByteField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticByteField (this, cl0, fld1); }
+  { return functions->GetStaticByteField (this, cl0, fld1); }
 
   jchar GetStaticCharField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticCharField (this, cl0, fld1); }
+  { return functions->GetStaticCharField (this, cl0, fld1); }
 
   jshort GetStaticShortField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticShortField (this, cl0, fld1); }
+  { return functions->GetStaticShortField (this, cl0, fld1); }
 
   jint GetStaticIntField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticIntField (this, cl0, fld1); }
+  { return functions->GetStaticIntField (this, cl0, fld1); }
 
   jlong GetStaticLongField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticLongField (this, cl0, fld1); }
+  { return functions->GetStaticLongField (this, cl0, fld1); }
 
   jfloat GetStaticFloatField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticFloatField (this, cl0, fld1); }
+  { return functions->GetStaticFloatField (this, cl0, fld1); }
 
   jdouble GetStaticDoubleField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticDoubleField (this, cl0, fld1); }
+  { return functions->GetStaticDoubleField (this, cl0, fld1); }
 
   void SetStaticObjectField (jclass cl0, jfieldID fld1, jobject obj2)
-  { p->SetStaticObjectField (this, cl0, fld1, obj2); }
+  { functions->SetStaticObjectField (this, cl0, fld1, obj2); }
 
   void SetStaticBooleanField (jclass cl0, jfieldID fld1, jboolean val2)
-  { p->SetStaticBooleanField (this, cl0, fld1, val2); }
+  { functions->SetStaticBooleanField (this, cl0, fld1, val2); }
 
   void SetStaticByteField (jclass cl0, jfieldID fld1, jbyte val2)
-  { p->SetStaticByteField (this, cl0, fld1, val2); }
+  { functions->SetStaticByteField (this, cl0, fld1, val2); }
 
   void SetStaticCharField (jclass cl0, jfieldID fld1, jchar val2)
-  { p->SetStaticCharField (this, cl0, fld1, val2); }
+  { functions->SetStaticCharField (this, cl0, fld1, val2); }
 
   void SetStaticShortField (jclass cl0, jfieldID fld1, jshort val2)
-  { p->SetStaticShortField (this, cl0, fld1, val2); }
+  { functions->SetStaticShortField (this, cl0, fld1, val2); }
 
   void SetStaticIntField (jclass cl0, jfieldID fld1, jint val2)
-  { p->SetStaticIntField (this, cl0, fld1, val2); }
+  { functions->SetStaticIntField (this, cl0, fld1, val2); }
 
   void SetStaticLongField (jclass cl0, jfieldID fld1, jlong val2)
-  { p->SetStaticLongField (this, cl0, fld1, val2); }
+  { functions->SetStaticLongField (this, cl0, fld1, val2); }
 
   void SetStaticFloatField (jclass cl0, jfieldID fld1, jfloat val2)
-  { p->SetStaticFloatField (this, cl0, fld1, val2); }
+  { functions->SetStaticFloatField (this, cl0, fld1, val2); }
 
   void SetStaticDoubleField (jclass cl0, jfieldID fld1, jdouble val2)
-  { p->SetStaticDoubleField (this, cl0, fld1, val2); }
+  { functions->SetStaticDoubleField (this, cl0, fld1, val2); }
 
   jstring NewString (const jchar * val0, jsize val1)
-  { return p->NewString (this, val0, val1); }
+  { return functions->NewString (this, val0, val1); }
 
   jint GetStringLength (jstring val0)
-  { return p->GetStringLength (this, val0); }
+  { return functions->GetStringLength (this, val0); }
 
   const jchar * GetStringChars (jstring val0, jboolean * val1)
-  { return p->GetStringChars (this, val0, val1); }
+  { return functions->GetStringChars (this, val0, val1); }
 
   void ReleaseStringChars (jstring val0, const jchar * val1)
-  { p->ReleaseStringChars (this, val0, val1); }
+  { functions->ReleaseStringChars (this, val0, val1); }
 
   jstring NewStringUTF (const char * val0)
-  { return p->NewStringUTF (this, val0); }
+  { return functions->NewStringUTF (this, val0); }
 
   jsize GetStringUTFLength (jstring val0)
-  { return p->GetStringUTFLength (this, val0); }
+  { return functions->GetStringUTFLength (this, val0); }
 
   const char * GetStringUTFChars (jstring val0, jboolean * val1)
-  { return p->GetStringUTFChars (this, val0, val1); }
+  { return functions->GetStringUTFChars (this, val0, val1); }
 
   void ReleaseStringUTFChars (jstring val0, const char * val1)
-  { p->ReleaseStringUTFChars (this, val0, val1); }
+  { functions->ReleaseStringUTFChars (this, val0, val1); }
 
   jsize GetArrayLength (jarray val0)
-  { return p->GetArrayLength (this, val0); }
+  { return functions->GetArrayLength (this, val0); }
 
   jobjectArray NewObjectArray (jsize val0, jclass cl1, jobject obj2)
-  { return p->NewObjectArray (this, val0, cl1, obj2); }
+  { return functions->NewObjectArray (this, val0, cl1, obj2); }
 
   jobject GetObjectArrayElement (jobjectArray val0, jsize val1)
-  { return p->GetObjectArrayElement (this, val0, val1); }
+  { return functions->GetObjectArrayElement (this, val0, val1); }
 
   void SetObjectArrayElement (jobjectArray val0, jsize val1, jobject obj2)
-  { p->SetObjectArrayElement (this, val0, val1, obj2); }
+  { functions->SetObjectArrayElement (this, val0, val1, obj2); }
 
   jbooleanArray NewBooleanArray (jsize val0)
-  { return p->NewBooleanArray (this, val0); }
+  { return functions->NewBooleanArray (this, val0); }
 
   jbyteArray NewByteArray (jsize val0)
-  { return p->NewByteArray (this, val0); }
+  { return functions->NewByteArray (this, val0); }
 
   jcharArray NewCharArray (jsize val0)
-  { return p->NewCharArray (this, val0); }
+  { return functions->NewCharArray (this, val0); }
 
   jshortArray NewShortArray (jsize val0)
-  { return p->NewShortArray (this, val0); }
+  { return functions->NewShortArray (this, val0); }
 
   jintArray NewIntArray (jsize val0)
-  { return p->NewIntArray (this, val0); }
+  { return functions->NewIntArray (this, val0); }
 
   jlongArray NewLongArray (jsize val0)
-  { return p->NewLongArray (this, val0); }
+  { return functions->NewLongArray (this, val0); }
 
   jfloatArray NewFloatArray (jsize val0)
-  { return p->NewFloatArray (this, val0); }
+  { return functions->NewFloatArray (this, val0); }
 
   jdoubleArray NewDoubleArray (jsize val0)
-  { return p->NewDoubleArray (this, val0); }
+  { return functions->NewDoubleArray (this, val0); }
 
   jboolean * GetBooleanArrayElements (jbooleanArray val0, jboolean * val1)
-  { return p->GetBooleanArrayElements (this, val0, val1); }
+  { return functions->GetBooleanArrayElements (this, val0, val1); }
 
   jbyte * GetByteArrayElements (jbyteArray val0, jboolean * val1)
-  { return p->GetByteArrayElements (this, val0, val1); }
+  { return functions->GetByteArrayElements (this, val0, val1); }
 
   jchar * GetCharArrayElements (jcharArray val0, jboolean * val1)
-  { return p->GetCharArrayElements (this, val0, val1); }
+  { return functions->GetCharArrayElements (this, val0, val1); }
 
   jshort * GetShortArrayElements (jshortArray val0, jboolean * val1)
-  { return p->GetShortArrayElements (this, val0, val1); }
+  { return functions->GetShortArrayElements (this, val0, val1); }
 
   jint * GetIntArrayElements (jintArray val0, jboolean * val1)
-  { return p->GetIntArrayElements (this, val0, val1); }
+  { return functions->GetIntArrayElements (this, val0, val1); }
 
   jlong * GetLongArrayElements (jlongArray val0, jboolean * val1)
-  { return p->GetLongArrayElements (this, val0, val1); }
+  { return functions->GetLongArrayElements (this, val0, val1); }
 
   jfloat * GetFloatArrayElements (jfloatArray val0, jboolean * val1)
-  { return p->GetFloatArrayElements (this, val0, val1); }
+  { return functions->GetFloatArrayElements (this, val0, val1); }
 
   jdouble * GetDoubleArrayElements (jdoubleArray val0, jboolean * val1)
-  { return p->GetDoubleArrayElements (this, val0, val1); }
+  { return functions->GetDoubleArrayElements (this, val0, val1); }
 
   void ReleaseBooleanArrayElements (jbooleanArray val0, jboolean * val1, jint val2)
-  { p->ReleaseBooleanArrayElements (this, val0, val1, val2); }
+  { functions->ReleaseBooleanArrayElements (this, val0, val1, val2); }
 
   void ReleaseByteArrayElements (jbyteArray val0, jbyte * val1, jint val2)
-  { p->ReleaseByteArrayElements (this, val0, val1, val2); }
+  { functions->ReleaseByteArrayElements (this, val0, val1, val2); }
 
   void ReleaseCharArrayElements (jcharArray val0, jchar * val1, jint val2)
-  { p->ReleaseCharArrayElements (this, val0, val1, val2); }
+  { functions->ReleaseCharArrayElements (this, val0, val1, val2); }
 
   void ReleaseShortArrayElements (jshortArray val0, jshort * val1, jint val2)
-  { p->ReleaseShortArrayElements (this, val0, val1, val2); }
+  { functions->ReleaseShortArrayElements (this, val0, val1, val2); }
 
   void ReleaseIntArrayElements (jintArray val0, jint * val1, jint val2)
-  { p->ReleaseIntArrayElements (this, val0, val1, val2); }
+  { functions->ReleaseIntArrayElements (this, val0, val1, val2); }
 
   void ReleaseLongArrayElements (jlongArray val0, jlong * val1, jint val2)
-  { p->ReleaseLongArrayElements (this, val0, val1, val2); }
+  { functions->ReleaseLongArrayElements (this, val0, val1, val2); }
 
   void ReleaseFloatArrayElements (jfloatArray val0, jfloat * val1, jint val2)
-  { p->ReleaseFloatArrayElements (this, val0, val1, val2); }
+  { functions->ReleaseFloatArrayElements (this, val0, val1, val2); }
 
   void ReleaseDoubleArrayElements (jdoubleArray val0, jdouble * val1, jint val2)
-  { p->ReleaseDoubleArrayElements (this, val0, val1, val2); }
+  { functions->ReleaseDoubleArrayElements (this, val0, val1, val2); }
 
   void GetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
-  { p->GetBooleanArrayRegion (this, val0, val1, val2, val3); }
+  { functions->GetBooleanArrayRegion (this, val0, val1, val2, val3); }
 
   void GetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
-  { p->GetByteArrayRegion (this, val0, val1, val2, val3); }
+  { functions->GetByteArrayRegion (this, val0, val1, val2, val3); }
 
   void GetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
-  { p->GetCharArrayRegion (this, val0, val1, val2, val3); }
+  { functions->GetCharArrayRegion (this, val0, val1, val2, val3); }
 
   void GetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
-  { p->GetShortArrayRegion (this, val0, val1, val2, val3); }
+  { functions->GetShortArrayRegion (this, val0, val1, val2, val3); }
 
   void GetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
-  { p->GetIntArrayRegion (this, val0, val1, val2, val3); }
+  { functions->GetIntArrayRegion (this, val0, val1, val2, val3); }
 
   void GetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
-  { p->GetLongArrayRegion (this, val0, val1, val2, val3); }
+  { functions->GetLongArrayRegion (this, val0, val1, val2, val3); }
 
   void GetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
-  { p->GetFloatArrayRegion (this, val0, val1, val2, val3); }
+  { functions->GetFloatArrayRegion (this, val0, val1, val2, val3); }
 
   void GetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
-  { p->GetDoubleArrayRegion (this, val0, val1, val2, val3); }
+  { functions->GetDoubleArrayRegion (this, val0, val1, val2, val3); }
 
   void SetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
-  { p->SetBooleanArrayRegion (this, val0, val1, val2, val3); }
+  { functions->SetBooleanArrayRegion (this, val0, val1, val2, val3); }
 
   void SetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
-  { p->SetByteArrayRegion (this, val0, val1, val2, val3); }
+  { functions->SetByteArrayRegion (this, val0, val1, val2, val3); }
 
   void SetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
-  { p->SetCharArrayRegion (this, val0, val1, val2, val3); }
+  { functions->SetCharArrayRegion (this, val0, val1, val2, val3); }
 
   void SetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
-  { p->SetShortArrayRegion (this, val0, val1, val2, val3); }
+  { functions->SetShortArrayRegion (this, val0, val1, val2, val3); }
 
   void SetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
-  { p->SetIntArrayRegion (this, val0, val1, val2, val3); }
+  { functions->SetIntArrayRegion (this, val0, val1, val2, val3); }
 
   void SetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
-  { p->SetLongArrayRegion (this, val0, val1, val2, val3); }
+  { functions->SetLongArrayRegion (this, val0, val1, val2, val3); }
 
   void SetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
-  { p->SetFloatArrayRegion (this, val0, val1, val2, val3); }
+  { functions->SetFloatArrayRegion (this, val0, val1, val2, val3); }
 
   void SetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
-  { p->SetDoubleArrayRegion (this, val0, val1, val2, val3); }
+  { functions->SetDoubleArrayRegion (this, val0, val1, val2, val3); }
 
   jint RegisterNatives (jclass cl0, const JNINativeMethod * val1, jint val2)
-  { return p->RegisterNatives (this, cl0, val1, val2); }
+  { return functions->RegisterNatives (this, cl0, val1, val2); }
 
   jint UnregisterNatives (jclass cl0)
-  { return p->UnregisterNatives (this, cl0); }
+  { return functions->UnregisterNatives (this, cl0); }
 
   jint MonitorEnter (jobject obj0)
-  { return p->MonitorEnter (this, obj0); }
+  { return functions->MonitorEnter (this, obj0); }
 
   jint MonitorExit (jobject obj0)
-  { return p->MonitorExit (this, obj0); }
+  { return functions->MonitorExit (this, obj0); }
 
   jint GetJavaVM (JavaVM ** val0)
-  { return p->GetJavaVM (this, val0); }
+  { return functions->GetJavaVM (this, val0); }
 
   /* ---- JNI 1.2 functions ---- */
 
   void GetStringRegion (jstring val0, jsize val1, jsize val2, jchar * val3)
-  { p->GetStringRegion (this, val0, val1, val2, val3); }
+  { functions->GetStringRegion (this, val0, val1, val2, val3); }
 
   void GetStringUTFRegion (jstring val0, jsize val1, jsize val2, char * val3)
-  { p->GetStringUTFRegion (this, val0, val1, val2, val3); }
+  { functions->GetStringUTFRegion (this, val0, val1, val2, val3); }
 
   void * GetPrimitiveArrayCritical (jarray val0, jboolean * val1)
-  { return p->GetPrimitiveArrayCritical (this, val0, val1); }
+  { return functions->GetPrimitiveArrayCritical (this, val0, val1); }
 
   void ReleasePrimitiveArrayCritical (jarray val0, void * val1, jint val2)
-  { p->ReleasePrimitiveArrayCritical (this, val0, val1, val2); }
+  { functions->ReleasePrimitiveArrayCritical (this, val0, val1, val2); }
 
   const jchar * GetStringCritical (jstring val0, jboolean * val1)
-  { return p->GetStringCritical (this, val0, val1); }
+  { return functions->GetStringCritical (this, val0, val1); }
 
   void ReleaseStringCritical (jstring val0, const jchar * val1)
-  { p->ReleaseStringCritical (this, val0, val1); }
+  { functions->ReleaseStringCritical (this, val0, val1); }
 
   jweak NewWeakGlobalRef (jobject obj0)
-  { return p->NewWeakGlobalRef (this, obj0); }
+  { return functions->NewWeakGlobalRef (this, obj0); }
 
   void DeleteWeakGlobalRef (jweak val0)
-  { p->DeleteWeakGlobalRef (this, val0); }
+  { functions->DeleteWeakGlobalRef (this, val0); }
 
   jboolean ExceptionCheck ()
-  { return p->ExceptionCheck (this); }
+  { return functions->ExceptionCheck (this); }
 
   /* ---- JNI 1.4 functions ---- */
 
   jobject NewDirectByteBuffer (void *addr, jlong capacity)
-  { return p->NewDirectByteBuffer (this, addr, capacity); }
+  { return functions->NewDirectByteBuffer (this, addr, capacity); }
 
   void *GetDirectBufferAddress (jobject buf)
-  { return p->GetDirectBufferAddress (this, buf); }
+  { return functions->GetDirectBufferAddress (this, buf); }
 
   jlong GetDirectBufferCapacity (jobject buf)
-  { return p->GetDirectBufferCapacity (this, buf); }
+  { return functions->GetDirectBufferCapacity (this, buf); }
 
   /* ---- JNI 1.6 functions ---- */
 
   jobjectRefType GetObjectRefType (jobject obj)
-  { return p->GetObjectRefType (this, obj); }
+  { return functions->GetObjectRefType (this, obj); }
 };
 
 #endif /* __cplusplus */
index addd1e7132735b67ba10db917883767c08af352b..a668fdae696d0811f2a1c0a5b5cca85ed9fa6c91 100644 (file)
@@ -158,18 +158,53 @@ public final class AlphaComposite implements Composite
     return new AlphaCompositeContext(this, srcColorModel, dstColorModel);
   }
 
+  /**
+   * Return an <code>AlphaComposite</code> similar to <code>this</code>,
+   * that uses the specified rule. If <code>rule</code> is the same as
+   * <code>this.rule</code>, then <code>this</code> is returned.
+   * 
+   * @since 1.6
+   */
+  public AlphaComposite derive(int rule)
+  {
+    if (this.rule == rule)
+      return this;
+    else
+      return AlphaComposite.getInstance(rule, this.getAlpha());
+  }
+  
+  /**
+   * Return an <code>AlphaComposite</code> similar to <code>this</code>,
+   * that uses the specified <code>alpha</code>.
+   * 
+   * If <code>alph</code> is the same as <code>this.alpha</code>,
+   * then <code>this</code> is returned.
+   * 
+   * @since 1.6
+   */
+  public AlphaComposite derive(float alpha)
+  {
+      if (this.getAlpha() == alpha)
+        return this;
+      else
+        return AlphaComposite.getInstance(this.getRule(), alpha);
+  }
+  
   public float getAlpha()
   {
     return alpha;
   }
+  
   public int getRule()
   {
     return rule;
   }
+  
   public int hashCode()
   {
     return 31 * Float.floatToIntBits(alpha) + rule;
   }
+  
   public boolean equals(Object o)
   {
     if (! (o instanceof AlphaComposite))
index fe4fb9b8b0da5de0ffc6a113b594c1f7accee3a3..44676ba9dd3971cbc085627c42c398b61475e65b 100644 (file)
@@ -43,6 +43,8 @@ package java.awt;
 
 import gnu.java.awt.ComponentReshapeEvent;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.dnd.DropTarget;
 import java.awt.event.ActionEvent;
 import java.awt.event.AdjustmentEvent;
@@ -175,7 +177,7 @@ public abstract class Component
   /**
    * Constant returned by the <code>getAlignmentY</code> and
    * <code>getAlignmentX</code> methods to indicate
-   * that the component wishes to be aligned to the center relative to
+   * that the component wishes to be aligned to the centdisper relative to
    * other components.
    *
    * @see #getAlignmentX()
@@ -4991,7 +4993,7 @@ public abstract class Component
    */
   protected String paramString()
   {
-    StringBuffer param = new StringBuffer();
+    CPStringBuilder param = new CPStringBuilder();
     String name = getName();
     if (name != null)
       param.append(name).append(",");
index 1e5004048a7157d041e488c69ff7013c37c0ac26..2634735118adfc5ca65f3dc1d253aecd2fab5c4d 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.awt;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.event.ContainerEvent;
 import java.awt.event.ContainerListener;
 import java.awt.event.HierarchyEvent;
@@ -1341,7 +1343,7 @@ public class Container extends Component
     if (layoutMgr == null)
       return super.paramString();
 
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append(super.paramString());
     sb.append(",layout=");
     sb.append(layoutMgr.getClass().getName());
index 2acb3a01ed3cb569725024a30e4d88586160259f..9ffc048782c42ea27d0ddc6cbbd9b14705da3771 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.awt;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * Needs documentation...
  *
@@ -479,7 +481,7 @@ public final class JobAttributes implements Cloneable
 
   public String toString()
   {
-    StringBuffer s = new StringBuffer("copies=").append(copies)
+    CPStringBuilder s = new CPStringBuilder("copies=").append(copies)
       .append(",defaultSelection=").append(selection).append(",destination=")
       .append(destination).append(",dialog=").append(dialog)
       .append(",fileName=").append(filename).append(",fromPage=")
index 957b6bccbef5850b9aa14eaeb48ddb4d7e160a21..8a853e15346422f874a3aeedbfc35d143a7ccde5 100644 (file)
@@ -50,6 +50,13 @@ public class MouseInfo
 {
   private static MouseInfoPeer peer;
 
+  /**
+   * Private constructor to prevent instance creation.
+   */
+  private MouseInfo()
+  {
+  }
+
   /**
    * Returns a PointerInfo object containing information about the current
    * location of the mouse pointer
index 438d78e9e73b7d7f2dce750be838110e07dd594a..8d2dcc01d1e9af81ad9d5913d31f1cf86d662cc4 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.awt.datatransfer;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Externalizable;
 import java.io.IOException;
 import java.io.ObjectInput;
@@ -224,7 +226,7 @@ class MimeType
    */
   public String toString()
   {
-    StringBuilder s = new StringBuilder();
+    CPStringBuilder s = new CPStringBuilder();
     s.append(primaryType);
     s.append('/');
     s.append(subType);
index 4bce7d45ce0c5ac9622ee6f79e39fcbef302bc17..937d2cf5363b256ae29dfda7fc058b546f6a2737 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.awt.event;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.AWTEvent;
 import java.awt.EventQueue;
 
@@ -202,9 +204,9 @@ public class ActionEvent extends AWTEvent
    */
   public String paramString()
   {
-    StringBuffer s = new StringBuffer(id == ACTION_PERFORMED
-                                      ? "ACTION_PERFORMED,cmd="
-                                      : "unknown type,cmd=");
+    CPStringBuilder s = new CPStringBuilder(id == ACTION_PERFORMED
+                                           ? "ACTION_PERFORMED,cmd="
+                                           : "unknown type,cmd=");
     s.append(actionCommand).append(",when=").append(when).append(",modifiers");
     int len = s.length();
     s.setLength(len + 1);
index 6d478055aa5cb4db28bf52f8292996d1336e33a6..156a3e2ad45c04f252ffd53eb7f0b2923f342e2c 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.awt.event;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.AWTEvent;
 import java.awt.Component;
 
@@ -114,7 +116,7 @@ public class ComponentEvent extends AWTEvent
    */
   public String paramString()
   {
-    StringBuffer s = new StringBuffer();
+    CPStringBuilder s = new CPStringBuilder();
     
     // Unlike Sun, we don't throw NullPointerException or ClassCastException
     // when source was illegally changed.
index e10cefbefcb6c2e72cb7d32426acfbd1a168ef0d..3237978f9559b078b1ec239115a69a20b9a2d451 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.awt.event;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.AWTEvent;
 import java.awt.Component;
 import java.awt.Container;
@@ -226,7 +228,7 @@ public class HierarchyEvent extends AWTEvent
    */
   public String paramString()
   {
-    StringBuffer r = new StringBuffer();
+    CPStringBuilder r = new CPStringBuilder();
     switch (id)
       {
       case HIERARCHY_CHANGED:
index 28cd901859960a29c87c299025a5cd069c9e7151..b9dad3278bdd06e994d50afaefc6b29cdefe9aa6 100644 (file)
@@ -39,6 +39,7 @@ exception statement from your version. */
 package java.awt.event;
 
 import gnu.java.awt.EventModifier;
+import gnu.java.lang.CPStringBuilder;
 
 import java.awt.Component;
 
@@ -376,7 +377,7 @@ public abstract class InputEvent extends ComponentEvent
     modifiers &= EventModifier.NEW_MASK;
     if (modifiers == 0)
       return "";
-    StringBuffer s = new StringBuffer();
+    CPStringBuilder s = new CPStringBuilder();
     if ((modifiers & META_DOWN_MASK) != 0)
       s.append("Meta+");
     if ((modifiers & CTRL_DOWN_MASK) != 0)
index f6711a8fa5a09073b6534803e78f5363f6ea044c..e0be40d5a6708d946e0f2394c3a393b55e7c20fe 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.awt.event;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.AWTEvent;
 import java.awt.Component;
 import java.awt.EventQueue;
@@ -257,8 +259,8 @@ public class InputMethodEvent extends AWTEvent
    */
   public String paramString()
   {
-    StringBuffer s
-      = new StringBuffer(80 + (text == null ? 0
+    CPStringBuilder s
+      = new CPStringBuilder(80 + (text == null ? 0
                                : text.getEndIndex() - text.getBeginIndex()));
     s.append(id == INPUT_METHOD_TEXT_CHANGED ? "INPUT_METHOD_TEXT_CHANGED, "
              : "CARET_POSITION_CHANGED, ");
index 42084d7333e60d1821a0f76ec8c678b5d25df154..bb7ed4c2dc74a626cbd9fc987d18c3dffe486a95 100644 (file)
@@ -39,6 +39,7 @@ exception statement from your version. */
 package java.awt.event;
 
 import gnu.java.awt.EventModifier;
+import gnu.java.lang.CPStringBuilder;
 
 import java.awt.Component;
 import java.io.IOException;
@@ -1673,7 +1674,7 @@ public class KeyEvent extends InputEvent
    */
   public String paramString()
   {
-    StringBuffer s = new StringBuffer();
+    CPStringBuilder s = new CPStringBuilder();
 
     switch (id)
       {
index 0ca833604a687a1881c6166479c2c667e08fba3e..86a584c4103c2d17b666cd46bb70f4535094ad92 100644 (file)
@@ -39,6 +39,7 @@ exception statement from your version. */
 package java.awt.event;
 
 import gnu.java.awt.EventModifier;
+import gnu.java.lang.CPStringBuilder;
 
 import java.awt.Component;
 import java.awt.Point;
@@ -434,7 +435,7 @@ public class MouseEvent extends InputEvent
    */
   public String paramString()
   {
-    StringBuffer s = new StringBuffer();
+    CPStringBuilder s = new CPStringBuilder();
     switch (id)
       {
       case MOUSE_CLICKED:
index 2186889e601dd1750d0770a1a2983971094c8dfe..1298e1ad8ba3bcca571765a71977d2a2c2194b90 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.awt.event;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Frame;
 import java.awt.Window;
 
@@ -270,7 +272,7 @@ public class WindowEvent extends ComponentEvent
    */
   public String paramString()
   {
-    StringBuffer s = new StringBuffer();
+    CPStringBuilder s = new CPStringBuilder();
     switch (id)
       {
       case WINDOW_OPENED:
index dc0e537eba95b006dddf0c857ec2d8587f47cc63..4346ab91d5362887dd9da283a412ce0fef1b6786 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.awt.font;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Font;
 import java.awt.Graphics2D;
 import java.awt.Shape;
@@ -362,7 +364,7 @@ public final class TextLayout implements Cloneable
 
   private static String getText(AttributedCharacterIterator iter)
   {
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     int idx = iter.getIndex();
     for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) 
       sb.append(c);
index afe62bdc4bd0fa7a2dbfff14bb3859aac8933589..94dbd8d4669c1b09545c3e93a555fdf6235eccb3 100644 (file)
@@ -37,6 +37,7 @@ exception statement from your version. */
 package java.awt.image;
 
 import gnu.java.awt.Buffers;
+import gnu.java.lang.CPStringBuilder;
 
 /**
  * A sample model that reads each sample value from a separate band in the
@@ -742,7 +743,7 @@ public final class BandedSampleModel extends ComponentSampleModel
    */
   public String toString()
   {
-    StringBuffer result = new StringBuffer();
+    CPStringBuilder result = new CPStringBuilder();
     result.append(getClass().getName());
     result.append("[");
     result.append("scanlineStride=").append(scanlineStride);
index 78623ccd9284f7d7200b672a740ef8ff9b4cbdab..260d254fd658a8c947efbfdb6c6920feec81e6a6 100644 (file)
@@ -41,6 +41,8 @@ package java.awt.image;
 import gnu.java.awt.Buffers;
 import gnu.java.awt.ClasspathGraphicsEnvironment;
 import gnu.java.awt.ComponentDataBlitOp;
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Graphics;
 import java.awt.Graphics2D;
 import java.awt.GraphicsEnvironment;
@@ -778,9 +780,9 @@ public class BufferedImage extends Image
     
   public String toString()
   {
-    StringBuffer buf;
+    CPStringBuilder buf;
 
-    buf = new StringBuffer(/* estimated length */ 120);
+    buf = new CPStringBuilder(/* estimated length */ 120);
     buf.append("BufferedImage@");
     buf.append(Integer.toHexString(hashCode()));
     buf.append(": type=");
index e2873c5d71fa7185493b5d7380293ffa9d3585ba..005b8d45ffe5bdc827667d3dcc8918229d8b1450 100644 (file)
@@ -631,8 +631,8 @@ public abstract class ColorModel implements Transparency
     throw new UnsupportedOperationException();
   }
 
-  protected void coerceDataWorker(WritableRaster raster,
-                                  boolean isAlphaPremultiplied)
+  void coerceDataWorker(WritableRaster raster,
+                       boolean isAlphaPremultiplied)
   {
     int w = raster.getWidth();
     int h = raster.getHeight();
index 2096800b20d358862c3478947b5a1bf8f67f4e68..e1e85e1912adf8609cdf3e430e901b6853b4f119 100644 (file)
@@ -312,7 +312,7 @@ public class ComponentColorModel extends ColorModel
     /* TODO: provide better implementation based on the
        assumptions we can make due to the specific type of the
        color model. */
-    super.coerceDataWorker(raster, isAlphaPremultiplied);
+    coerceDataWorker(raster, isAlphaPremultiplied);
     
     return new ComponentColorModel(cspace, hasAlpha, isAlphaPremultiplied,
                                    transparency, transferType);
index dab15319fce4b9d97702e4a3a40f5956aa6a8fe9..3d43c76423742a2865c5e66183f887d416411585 100644 (file)
@@ -393,8 +393,8 @@ public class DirectColorModel extends PackedColorModel
     return Buffers.getData(buffer);
   }
     
-  public ColorModel coerceData (WritableRaster raster,
-                                boolean isAlphaPremultiplied)
+  public final ColorModel coerceData (WritableRaster raster,
+                                     boolean isAlphaPremultiplied)
   {
     if (this.isAlphaPremultiplied == isAlphaPremultiplied || !hasAlpha())
       return this;
@@ -402,7 +402,7 @@ public class DirectColorModel extends PackedColorModel
     /* TODO: provide better implementation based on the
        assumptions we can make due to the specific type of the
        color model. */
-    super.coerceDataWorker(raster, isAlphaPremultiplied);
+    coerceDataWorker(raster, isAlphaPremultiplied);
     
     return new DirectColorModel(cspace, pixel_bits, getRedMask(),
                                 getGreenMask(), getBlueMask(), getAlphaMask(),
index 8732e57659efea34467dc2e9630cc4901b596e4a..8db26b52d423fa98396e4770c987a5ec8fa28767 100644 (file)
@@ -37,6 +37,7 @@ exception statement from your version. */
 package java.awt.image;
 
 import gnu.java.awt.Buffers;
+import gnu.java.lang.CPStringBuilder;
 
 /**
  * MultiPixelPackedSampleModel provides a single band model that supports
@@ -587,7 +588,7 @@ public class MultiPixelPackedSampleModel extends SampleModel
    */
   public String toString()
   {
-    StringBuffer result = new StringBuffer();
+    CPStringBuilder result = new CPStringBuilder();
     result.append(getClass().getName());
     result.append("[");
     result.append("scanlineStride=").append(scanlineStride);
index fb0950dabf30fb444168f04b19b16618e1b3f998..615155fb3f9b8ea2077289f4d1ed2000c6b45815 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.awt.image;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Point;
 import java.awt.Rectangle;
 
@@ -920,7 +922,7 @@ public class Raster
    */
   public String toString()
   {
-    StringBuffer result = new StringBuffer();
+    CPStringBuilder result = new CPStringBuilder();
     
     result.append(getClass().getName());
     result.append("[(");
index 1b0ac3f7904951233d2e3f5f9e9de10fda3f6ebc..22513865197b59c8e8c60ef981103b850b1f4b41 100644 (file)
@@ -39,6 +39,7 @@ package java.awt.image;
 import java.util.Arrays;
 
 import gnu.java.awt.BitMaskExtent;
+import gnu.java.lang.CPStringBuilder;
 
 /**
  * A <code>SampleModel</code> used when all samples are stored in a single
@@ -569,7 +570,7 @@ public class SinglePixelPackedSampleModel extends SampleModel
    */
   public String toString()
   {
-    StringBuffer result = new StringBuffer();
+    CPStringBuilder result = new CPStringBuilder();
     result.append(getClass().getName());
     result.append("[");
     result.append("scanlineStride=").append(scanlineStride);
index bf8db140c7f4f3884174b290d22aa347b75536b9..02789a3d142da21c49f17b42485f46a772139e97 100644 (file)
@@ -111,13 +111,8 @@ public class WritableRaster extends Raster
   public WritableRaster createWritableTranslatedChild(int childMinX,
                                                       int childMinY)
   {
-    // This mirrors the code from the super class
-    int tcx = sampleModelTranslateX - minX + childMinX;
-    int tcy = sampleModelTranslateY - minY + childMinY;
-    
-    return new WritableRaster(sampleModel, dataBuffer,
-        new Rectangle(childMinX, childMinY, width, height), 
-        new Point(tcx, tcy), this);
+    return createWritableChild(minX, minY, width, height,
+                               childMinX, childMinY, null);
   }
 
   /**
@@ -143,12 +138,14 @@ public class WritableRaster extends Raster
     SampleModel sm = (bandList == null) ?
       sampleModel :
       sampleModel.createSubsetSampleModel(bandList);
-    
-    return new WritableRaster(sm, dataBuffer,
-        new Rectangle(childMinX, childMinY, w, h),
-        new Point(sampleModelTranslateX + childMinX - parentX,
-                  sampleModelTranslateY + childMinY - parentY),
-        this);
+
+    return new WritableRaster(sm, getDataBuffer(),
+                              new Rectangle(childMinX, childMinY, w, h),
+                              new Point(sampleModelTranslateX + childMinX -
+                                          parentX,
+                                        sampleModelTranslateY + childMinY -
+                                          parentY),
+                              this);
   }
   
   public Raster createChild(int parentX, int parentY, int width,
index 0a01798adc284168f6d3d2c08d54334fc4fe8227..5ecba37c87d78d836e2674fc2cc7205ca48d2b17 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.beans;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.lang.reflect.Array;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
@@ -353,7 +355,7 @@ public class Statement
    */
   public String toString()
   {
-    StringBuffer result = new StringBuffer(); 
+    CPStringBuilder result = new CPStringBuilder(); 
 
     String targetName;
     if (target != null)
index 1c27f98e57bb8034126793f583a9b046008aa5ef..725c2d468885b09185e667fb6b4448b9635c2527 100644 (file)
@@ -86,6 +86,11 @@ public class BeanContextServicesSupport
 
     private BeanContextServiceProvider provider;
 
+    BCSSProxyServiceProvider(BeanContextServiceProvider p)
+    {
+      provider = p;
+    }
+
     public Iterator getCurrentServiceSelectors (BeanContextServices bcs,
                                                 Class serviceClass)
     {
index c52d15ec60c5dc2e90193fe633a627a0666a8423..3dbe80b77fb67d7b68a5955454c590203906d727 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.io;
 
+import gnu.java.lang.CPStringBuilder;
+
 /* Written using "Java Class Libraries", 2nd edition, plus online
  * API docs for JDK 1.2 beta from http://www.javasoft.com.
  * Status:  Believed complete and correct.
@@ -450,7 +452,7 @@ public class BufferedReader extends Reader
            pos++;
        return str;
       }
-    StringBuilder sbuf = new StringBuilder(200);
+    CPStringBuilder sbuf = new CPStringBuilder(200);
     sbuf.append(buffer, pos, i - pos);
     pos = i;
     // We only want to return null when no characters were read before
index ad43498c8d795a633328286e2d6a3902fc6165da..51cf51a8e2a72bd54890e916927e672041a2a472 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
  
 package java.io;
 
+import gnu.java.lang.CPStringBuilder;
+
 /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
  * "The Java Language Specification", ISBN 0-201-63451-1
  * plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
@@ -350,7 +352,7 @@ public class DataInputStream extends FilterInputStream implements DataInput
    */
   public final String readLine() throws IOException
   {
-    StringBuilder strb = new StringBuilder();
+    CPStringBuilder strb = new CPStringBuilder();
 
     while (true)
       {
@@ -747,7 +749,7 @@ public class DataInputStream extends FilterInputStream implements DataInput
   {
     // Give StringBuffer an initial estimated size to avoid 
     // enlarge buffer frequently
-    StringBuilder strbuf = new StringBuilder (buf.length / 2 + 2);
+    CPStringBuilder strbuf = new CPStringBuilder (buf.length / 2 + 2);
 
     for (int i = 0; i < buf.length; )
       {
index cd11163509b23bdd690cfaba88909c55ec6724ac..f023310449f83c490deca80a2b62aab4d1ca12be 100644 (file)
@@ -41,6 +41,8 @@ package java.io;
 
 import gnu.classpath.SystemProperties;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -158,7 +160,7 @@ public class File implements Serializable, Comparable<File>
       return false;
 
     if (VMFile.isDirectory(path))
-      return VMFile.canWriteDirectory(this);
+      return VMFile.canWriteDirectory(path);
     else
       return VMFile.canWrite(path);
   }
@@ -317,7 +319,7 @@ public class File implements Serializable, Comparable<File>
          return p;
       }
     
-    StringBuffer newpath = new StringBuffer(plen);
+    CPStringBuilder newpath = new CPStringBuilder(plen);
     int last = 0;
     while (dupIndex != -1)
       {
index 759aa9a2f059ce8e838288f4ee28fb634b74902a..87384f39f3acac91b7dc2ece1ddd65974da9d546 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.io;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * This class parses streams of characters into tokens.  There are a
  * million-zillion flags that can be set to control the parsing, as 
@@ -391,7 +393,7 @@ public class StreamTokenizer
              }
          }
 
-       StringBuffer tokbuf = new StringBuffer();
+       CPStringBuilder tokbuf = new CPStringBuilder();
        tokbuf.append((char) ch);
 
        int decCount = 0;
@@ -417,7 +419,7 @@ public class StreamTokenizer
       }
     else if (isAlphabetic(ch))
       {
-       StringBuffer tokbuf = new StringBuffer();
+       CPStringBuilder tokbuf = new CPStringBuilder();
        tokbuf.append((char) ch);
        while (isAlphabetic(ch = in.read()) || isNumeric(ch))
          tokbuf.append((char) ch);
@@ -440,7 +442,7 @@ public class StreamTokenizer
     else if (isQuote(ch))
       {
        ttype = ch;
-       StringBuffer tokbuf = new StringBuffer();
+       CPStringBuilder tokbuf = new CPStringBuilder();
        while ((ch = in.read()) != ttype && ch != '\n' && ch != '\r' &&
               ch != TT_EOF)
          {
diff --git a/libjava/classpath/java/lang/AbstractStringBuffer.java b/libjava/classpath/java/lang/AbstractStringBuffer.java
new file mode 100644 (file)
index 0000000..dc3a8c9
--- /dev/null
@@ -0,0 +1,1037 @@
+/* AbstractStringBuffer.java -- Growable strings
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+   Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.io.Serializable;
+
+/**
+ * This class is based on gnu.classpath.ClasspathStringBuffer but
+ * is package-private to java.lang so it can be used as the basis
+ * for StringBuffer and StringBuilder.
+ * If you modify this, please consider also modifying that code.
+ */
+abstract class AbstractStringBuffer
+  implements Serializable, CharSequence, Appendable
+{
+
+  /**
+   * Index of next available character (and thus the size of the current
+   * string contents).  Note that this has permissions set this way so that
+   * String can get the value.
+   *
+   * @serial the number of characters in the buffer
+   */
+  int count;
+
+  /**
+   * The buffer.  Note that this has permissions set this way so that String
+   * can get the value.
+   *
+   * @serial the buffer
+   */
+  char[] value;
+
+  /**
+   * The default capacity of a buffer.
+   */
+  private static final int DEFAULT_CAPACITY = 16;
+
+  /**
+   * Create a new AbstractStringBuffer with default capacity 16.
+   */
+  AbstractStringBuffer()
+  {
+    this(DEFAULT_CAPACITY);
+  }
+
+  /**
+   * Create an empty <code>StringBuffer</code> with the specified initial
+   * capacity.
+   *
+   * @param capacity the initial capacity
+   * @throws NegativeArraySizeException if capacity is negative
+   */
+  AbstractStringBuffer(int capacity)
+  {
+    value = new char[capacity];
+  }
+
+  /**
+   * Create a new <code>StringBuffer</code> with the characters in the
+   * specified <code>String</code>. Initial capacity will be the size of the
+   * String plus 16.
+   *
+   * @param str the <code>String</code> to convert
+   * @throws NullPointerException if str is null
+   */
+  AbstractStringBuffer(String str)
+  {
+    count = str.count;
+    value = new char[count + DEFAULT_CAPACITY];
+    str.getChars(0, count, value, 0);
+  }
+
+  /**
+   * Create a new <code>StringBuffer</code> with the characters in the
+   * specified <code>CharSequence</code>. Initial capacity will be the
+   * length of the sequence plus 16; if the sequence reports a length
+   * less than or equal to 0, then the initial capacity will be 16.
+   *
+   * @param seq the initializing <code>CharSequence</code>
+   * @throws NullPointerException if str is null
+   * @since 1.5
+   */
+  AbstractStringBuffer(CharSequence seq)
+  {
+    int len = seq.length();
+    count = len <= 0 ? 0 : len;
+    value = new char[count + DEFAULT_CAPACITY];
+    for (int i = 0; i < len; ++i)
+      value[i] = seq.charAt(i);
+  }
+
+  /**
+   * Increase the capacity of this <code>StringBuffer</code>. This will
+   * ensure that an expensive growing operation will not occur until
+   * <code>minimumCapacity</code> is reached. The buffer is grown to the
+   * larger of <code>minimumCapacity</code> and
+   * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+   *
+   * @param minimumCapacity the new capacity
+   * @see #capacity()
+   */
+  public void ensureCapacity(int minimumCapacity)
+  {
+    ensureCapacity_unsynchronized(minimumCapacity);
+  }
+
+  /**
+   * Set the length of this StringBuffer. If the new length is greater than
+   * the current length, all the new characters are set to '\0'. If the new
+   * length is less than the current length, the first <code>newLength</code>
+   * characters of the old array will be preserved, and the remaining
+   * characters are truncated.
+   *
+   * @param newLength the new length
+   * @throws IndexOutOfBoundsException if the new length is negative
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   * @see #length()
+   */
+  public void setLength(int newLength)
+  {
+    if (newLength < 0)
+      throw new StringIndexOutOfBoundsException(newLength);
+
+    int valueLength = value.length;
+
+    /* Always call ensureCapacity_unsynchronized in order to preserve
+       copy-on-write semantics.  */
+    ensureCapacity_unsynchronized(newLength);
+
+    if (newLength < valueLength)
+      {
+        /* If the StringBuffer's value just grew, then we know that
+           value is newly allocated and the region between count and
+           newLength is filled with '\0'.  */
+       count = newLength;
+      }
+    else
+      {
+       /* The StringBuffer's value doesn't need to grow.  However,
+          we should clear out any cruft that may exist.  */
+       while (count < newLength)
+          value[count++] = '\0';
+      }
+  }
+
+  /**
+   * Get the character at the specified index.
+   *
+   * @param index the index of the character to get, starting at 0
+   * @return the character at the specified index
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   */
+  public char charAt(int index)
+  {
+    if (index < 0 || index >= count)
+      throw new StringIndexOutOfBoundsException(index);
+    return value[index];
+  }
+
+  /**
+   * Get the code point at the specified index.  This is like #charAt(int),
+   * but if the character is the start of a surrogate pair, and the
+   * following character completes the pair, then the corresponding
+   * supplementary code point is returned.
+   * @param index the index of the codepoint to get, starting at 0
+   * @return the codepoint at the specified index
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   * @since 1.5
+   */
+  public int codePointAt(int index)
+  {
+    return Character.codePointAt(value, index, count);
+  }
+
+  /**
+   * Get the code point before the specified index.  This is like
+   * #codePointAt(int), but checks the characters at <code>index-1</code> and
+   * <code>index-2</code> to see if they form a supplementary code point.
+   * @param index the index just past the codepoint to get, starting at 0
+   * @return the codepoint at the specified index
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   * @since 1.5
+   */
+  public int codePointBefore(int index)
+  {
+    // Character.codePointBefore() doesn't perform this check.  We
+    // could use the CharSequence overload, but this is just as easy.
+    if (index >= count)
+      throw new IndexOutOfBoundsException();
+    return Character.codePointBefore(value, index, 1);
+  }
+
+  /**
+   * Get the specified array of characters. <code>srcOffset - srcEnd</code>
+   * characters will be copied into the array you pass in.
+   *
+   * @param srcOffset the index to start copying from (inclusive)
+   * @param srcEnd the index to stop copying from (exclusive)
+   * @param dst the array to copy into
+   * @param dstOffset the index to start copying into
+   * @throws NullPointerException if dst is null
+   * @throws IndexOutOfBoundsException if any source or target indices are
+   *         out of range (while unspecified, source problems cause a
+   *         StringIndexOutOfBoundsException, and dest problems cause an
+   *         ArrayIndexOutOfBoundsException)
+   * @see System#arraycopy(Object, int, Object, int, int)
+   */
+  public void getChars(int srcOffset, int srcEnd,
+                      char[] dst, int dstOffset)
+  {
+    if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
+      throw new StringIndexOutOfBoundsException();
+    VMSystem.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
+  }
+
+  /**
+   * Set the character at the specified index.
+   *
+   * @param index the index of the character to set starting at 0
+   * @param ch the value to set that character to
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   */
+  public void setCharAt(int index, char ch)
+  {
+    if (index < 0 || index >= count)
+      throw new StringIndexOutOfBoundsException(index);
+    // Call ensureCapacity to enforce copy-on-write.
+    ensureCapacity_unsynchronized(count);
+    value[index] = ch;
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param obj the <code>Object</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(Object)
+   * @see #append(String)
+   */
+  public AbstractStringBuffer append(Object obj)
+  {
+    return append(String.valueOf(obj));
+  }
+
+  /**
+   * Append the <code>String</code> to this <code>StringBuffer</code>. If
+   * str is null, the String "null" is appended.
+   *
+   * @param str the <code>String</code> to append
+   * @return this <code>StringBuffer</code>
+   */
+  public AbstractStringBuffer append(String str)
+  {
+    if (str == null)
+      str = "null";
+    int len = str.count;
+    ensureCapacity_unsynchronized(count + len);
+    str.getChars(0, len, value, count);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Append the <code>StringBuilder</code> value of the argument to this
+   * <code>StringBuilder</code>. This behaves the same as
+   * <code>append((Object) stringBuffer)</code>, except it is more efficient.
+   *
+   * @param stringBuffer the <code>StringBuilder</code> to convert and append
+   * @return this <code>StringBuilder</code>
+   * @see #append(Object)
+   */
+  public AbstractStringBuffer append(StringBuffer stringBuffer)
+  {
+    if (stringBuffer == null)
+      return append("null");
+    synchronized (stringBuffer)
+      {
+       int len = stringBuffer.count;
+       ensureCapacity(count + len);
+       VMSystem.arraycopy(stringBuffer.value, 0, value, count, len);
+       count += len;
+      }
+    return this;
+  }
+
+  /**
+   * Append the <code>char</code> array to this <code>StringBuffer</code>.
+   * This is similar (but more efficient) than
+   * <code>append(new String(data))</code>, except in the case of null.
+   *
+   * @param data the <code>char[]</code> to append
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>str</code> is <code>null</code>
+   * @see #append(char[], int, int)
+   */
+  public AbstractStringBuffer append(char[] data)
+  {
+    return append(data, 0, data.length);
+  }
+
+  /**
+   * Append part of the <code>char</code> array to this
+   * <code>StringBuffer</code>. This is similar (but more efficient) than
+   * <code>append(new String(data, offset, count))</code>, except in the case
+   * of null.
+   *
+   * @param data the <code>char[]</code> to append
+   * @param offset the start location in <code>str</code>
+   * @param count the number of characters to get from <code>str</code>
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>str</code> is <code>null</code>
+   * @throws IndexOutOfBoundsException if offset or count is out of range
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   */
+  public AbstractStringBuffer append(char[] data, int offset, int count)
+  {
+    if (offset < 0 || count < 0 || offset > data.length - count)
+      throw new StringIndexOutOfBoundsException();
+    ensureCapacity_unsynchronized(this.count + count);
+    VMSystem.arraycopy(data, offset, value, this.count, count);
+    this.count += count;
+    return this;
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param bool the <code>boolean</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(boolean)
+   */
+  public AbstractStringBuffer append(boolean bool)
+  {
+    return append(bool ? "true" : "false");
+  }
+
+  /**
+   * Append the <code>char</code> to this <code>StringBuffer</code>.
+   *
+   * @param ch the <code>char</code> to append
+   * @return this <code>StringBuffer</code>
+   */
+  public AbstractStringBuffer append(char ch)
+  {
+    ensureCapacity_unsynchronized(count + 1);
+    value[count++] = ch;
+    return this;
+  }
+
+  /**
+   * Append the characters in the <code>CharSequence</code> to this
+   * buffer.
+   *
+   * @param seq the <code>CharSequence</code> providing the characters
+   * @return this <code>StringBuffer</code>
+   * @since 1.5
+   */
+  public AbstractStringBuffer append(CharSequence seq)
+  {
+    return append(seq, 0, seq.length());
+  }
+
+  /**
+   * Append some characters from the <code>CharSequence</code> to this
+   * buffer.  If the argument is null, the <code>seq</code> is assumed
+   * to be equal to the string <code>"null"</code>.
+   *
+   * @param seq the <code>CharSequence</code> providing the characters
+   * @param start the starting index
+   * @param end one past the final index
+   * @return this <code>StringBuffer</code>
+   * @since 1.5
+   */
+  public AbstractStringBuffer append(CharSequence seq, int start, int end)
+  {
+    if (seq == null)
+      seq = "null";
+    if (end - start > 0)
+      {
+       ensureCapacity_unsynchronized(count + end - start);
+       for (; start < end; ++start)
+         value[count++] = seq.charAt(start);
+      }
+    return this;
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param inum the <code>int</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(int)
+   */
+  // This is native in libgcj, for efficiency.
+  public AbstractStringBuffer append(int inum)
+  {
+    return append(String.valueOf(inum));
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param lnum the <code>long</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(long)
+   */
+  public AbstractStringBuffer append(long lnum)
+  {
+    return append(Long.toString(lnum, 10));
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param fnum the <code>float</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(float)
+   */
+  public AbstractStringBuffer append(float fnum)
+  {
+    return append(Float.toString(fnum));
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param dnum the <code>double</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(double)
+   */
+  public AbstractStringBuffer append(double dnum)
+  {
+    return append(Double.toString(dnum));
+  }
+
+  /**
+   * Append the code point to this <code>StringBuffer</code>.
+   * This is like #append(char), but will append two characters
+   * if a supplementary code point is given.
+   *
+   * @param code the code point to append
+   * @return this <code>StringBuffer</code>
+   * @see Character#toChars(int, char[], int)
+   * @since 1.5
+   */
+  public AbstractStringBuffer appendCodePoint(int code)
+  {
+    int len = Character.charCount(code);
+    ensureCapacity_unsynchronized(count + len);
+    Character.toChars(code, value, count);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Delete characters from this <code>StringBuffer</code>.
+   * <code>delete(10, 12)</code> will delete 10 and 11, but not 12. It is
+   * harmless for end to be larger than length().
+   *
+   * @param start the first character to delete
+   * @param end the index after the last character to delete
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+   * @since 1.2
+   */
+  public AbstractStringBuffer delete(int start, int end)
+  {
+    if (start < 0 || start > count || start > end)
+      throw new StringIndexOutOfBoundsException(start);
+    if (end > count)
+      end = count;
+    ensureCapacity_unsynchronized(count);
+    if (count - end != 0)
+      VMSystem.arraycopy(value, end, value, start, count - end);
+    count -= end - start;
+    return this;
+  }
+
+  /**
+   * Delete a character from this <code>StringBuffer</code>.
+   *
+   * @param index the index of the character to delete
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if index is out of bounds
+   * @since 1.2
+   */
+  public AbstractStringBuffer deleteCharAt(int index)
+  {
+    return delete(index, index + 1);
+  }
+
+  /**
+   * Replace characters between index <code>start</code> (inclusive) and
+   * <code>end</code> (exclusive) with <code>str</code>. If <code>end</code>
+   * is larger than the size of this StringBuffer, all characters after
+   * <code>start</code> are replaced.
+   *
+   * @param start the beginning index of characters to delete (inclusive)
+   * @param end the ending index of characters to delete (exclusive)
+   * @param str the new <code>String</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+   * @throws NullPointerException if str is null
+   * @since 1.2
+   */
+  public AbstractStringBuffer replace(int start, int end, String str)
+  {
+    if (start < 0 || start > count || start > end)
+      throw new StringIndexOutOfBoundsException(start);
+
+    int len = str.count;
+    // Calculate the difference in 'count' after the replace.
+    int delta = len - (end > count ? count : end) + start;
+    ensureCapacity_unsynchronized(count + delta);
+
+    if (delta != 0 && end < count)
+      VMSystem.arraycopy(value, end, value, end + delta, count - end);
+
+    str.getChars(0, len, value, start);
+    count += delta;
+    return this;
+  }
+
+  /**
+   * Insert a subarray of the <code>char[]</code> argument into this
+   * <code>StringBuffer</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param str the <code>char[]</code> to insert
+   * @param str_offset the index in <code>str</code> to start inserting from
+   * @param len the number of characters to insert
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>str</code> is <code>null</code>
+   * @throws StringIndexOutOfBoundsException if any index is out of bounds
+   * @since 1.2
+   */
+  public AbstractStringBuffer insert(int offset, char[] str, int str_offset, int len)
+  {
+    if (offset < 0 || offset > count || len < 0
+        || str_offset < 0 || str_offset > str.length - len)
+      throw new StringIndexOutOfBoundsException();
+    ensureCapacity_unsynchronized(count + len);
+    VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
+    VMSystem.arraycopy(str, str_offset, value, offset, len);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param obj the <code>Object</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @exception StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(Object)
+   */
+  public AbstractStringBuffer insert(int offset, Object obj)
+  {
+    return insert(offset, obj == null ? "null" : obj.toString());
+  }
+
+  /**
+   * Insert the <code>String</code> argument into this
+   * <code>StringBuffer</code>. If str is null, the String "null" is used
+   * instead.
+   *
+   * @param offset the place to insert in this buffer
+   * @param str the <code>String</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   */
+  public AbstractStringBuffer insert(int offset, String str)
+  {
+    if (offset < 0 || offset > count)
+      throw new StringIndexOutOfBoundsException(offset);
+    if (str == null)
+      str = "null";
+    int len = str.count;
+    ensureCapacity_unsynchronized(count + len);
+    VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
+    str.getChars(0, len, value, offset);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Insert the <code>CharSequence</code> argument into this
+   * <code>StringBuffer</code>.  If the sequence is null, the String
+   * "null" is used instead.
+   *
+   * @param offset the place to insert in this buffer
+   * @param sequence the <code>CharSequence</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws IndexOutOfBoundsException if offset is out of bounds
+   * @since 1.5
+   */
+  public AbstractStringBuffer insert(int offset, CharSequence sequence)
+  {
+    if (sequence == null)
+      sequence = "null";
+    return insert(offset, sequence, 0, sequence.length());
+  }
+
+  /**
+   * Insert a subsequence of the <code>CharSequence</code> argument into this
+   * <code>StringBuffer</code>.  If the sequence is null, the String
+   * "null" is used instead.
+   *
+   * @param offset the place to insert in this buffer
+   * @param sequence the <code>CharSequence</code> to insert
+   * @param start the starting index of the subsequence
+   * @param end one past the ending index of the subsequence
+   * @return this <code>StringBuffer</code>
+   * @throws IndexOutOfBoundsException if offset, start,
+   * or end are out of bounds
+   * @since 1.5
+   */
+  public AbstractStringBuffer insert(int offset, CharSequence sequence, int start, int end)
+  {
+    if (sequence == null)
+      sequence = "null";
+    if (start < 0 || end < 0 || start > end || end > sequence.length())
+      throw new IndexOutOfBoundsException();
+    int len = end - start;
+    ensureCapacity_unsynchronized(count + len);
+    VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
+    for (int i = start; i < end; ++i)
+      value[offset++] = sequence.charAt(i);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Insert the <code>char[]</code> argument into this
+   * <code>StringBuffer</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param data the <code>char[]</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>data</code> is <code>null</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see #insert(int, char[], int, int)
+   */
+  public AbstractStringBuffer insert(int offset, char[] data)
+  {
+    return insert(offset, data, 0, data.length);
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param bool the <code>boolean</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(boolean)
+   */
+  public AbstractStringBuffer insert(int offset, boolean bool)
+  {
+    return insert(offset, bool ? "true" : "false");
+  }
+
+  /**
+   * Insert the <code>char</code> argument into this <code>StringBuffer</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param ch the <code>char</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   */
+  public AbstractStringBuffer insert(int offset, char ch)
+  {
+    if (offset < 0 || offset > count)
+      throw new StringIndexOutOfBoundsException(offset);
+    ensureCapacity_unsynchronized(count + 1);
+    VMSystem.arraycopy(value, offset, value, offset + 1, count - offset);
+    value[offset] = ch;
+    count++;
+    return this;
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param inum the <code>int</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(int)
+   */
+  public AbstractStringBuffer insert(int offset, int inum)
+  {
+    return insert(offset, String.valueOf(inum));
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param lnum the <code>long</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(long)
+   */
+  public AbstractStringBuffer insert(int offset, long lnum)
+  {
+    return insert(offset, Long.toString(lnum, 10));
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param fnum the <code>float</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(float)
+   */
+  public AbstractStringBuffer insert(int offset, float fnum)
+  {
+    return insert(offset, Float.toString(fnum));
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param dnum the <code>double</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(double)
+   */
+  public AbstractStringBuffer insert(int offset, double dnum)
+  {
+    return insert(offset, Double.toString(dnum));
+  }
+
+  /**
+   * Finds the first instance of a substring in this StringBuilder.
+   *
+   * @param str String to find
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @see #indexOf(String, int)
+   */
+  public int indexOf(String str)
+  {
+    return indexOf(str, 0);
+  }
+
+  /**
+   * Finds the first instance of a String in this StringBuffer, starting at
+   * a given index.  If starting index is less than 0, the search starts at
+   * the beginning of this String.  If the starting index is greater than the
+   * length of this String, or the substring is not found, -1 is returned.
+   *
+   * @param str String to find
+   * @param fromIndex index to start the search
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @since 1.4
+   */
+  public int indexOf(String str, int fromIndex)
+  {
+    if (fromIndex < 0)
+      fromIndex = 0;
+    int limit = count - str.count;
+    for ( ; fromIndex <= limit; fromIndex++)
+      if (regionMatches(fromIndex, str))
+        return fromIndex;
+    return -1;
+  }
+
+  /**
+   * Finds the last instance of a substring in this StringBuffer.
+   *
+   * @param str String to find
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @see #lastIndexOf(String, int)
+   * @since 1.4
+   */
+  public int lastIndexOf(String str)
+  {
+    return lastIndexOf(str, count - str.count);
+  }
+
+  /**
+   * Finds the last instance of a String in this StringBuffer, starting at a
+   * given index.  If starting index is greater than the maximum valid index,
+   * then the search begins at the end of this String.  If the starting index
+   * is less than zero, or the substring is not found, -1 is returned.
+   *
+   * @param str String to find
+   * @param fromIndex index to start the search
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @since 1.4
+   */
+  public int lastIndexOf(String str, int fromIndex)
+  {
+    fromIndex = Math.min(fromIndex, count - str.count);
+    for ( ; fromIndex >= 0; fromIndex--)
+      if (regionMatches(fromIndex, str))
+        return fromIndex;
+    return -1;
+  }
+
+  /**
+   * Reverse the characters in this StringBuffer. The same sequence of
+   * characters exists, but in the reverse index ordering.
+   *
+   * @return this <code>StringBuffer</code>
+   */
+  public AbstractStringBuffer reverse()
+  {
+    // Call ensureCapacity to enforce copy-on-write.
+    ensureCapacity_unsynchronized(count);
+    for (int i = count >> 1, j = count - i; --i >= 0; ++j)
+      {
+        char c = value[i];
+        value[i] = value[j];
+        value[j] = c;
+      }
+    return this;
+  }
+
+  /**
+   * This may reduce the amount of memory used by the StringBuffer,
+   * by resizing the internal array to remove unused space.  However,
+   * this method is not required to resize, so this behavior cannot
+   * be relied upon.
+   * @since 1.5
+   */
+  public void trimToSize()
+  {
+    int wouldSave = value.length - count;
+    // Some random heuristics: if we save less than 20 characters, who
+    // cares.
+    if (wouldSave < 20)
+      return;
+    // If we save more than 200 characters, shrink.
+    // If we save more than 1/4 of the buffer, shrink.
+    if (wouldSave > 200 || wouldSave * 4 > value.length)
+      {
+       char[] newValue = new char[count];
+       VMSystem.arraycopy(value, 0, newValue, 0, count);
+       value = newValue;
+      }
+  }
+
+  /**
+   * Return the number of code points between two indices in the
+   * <code>StringBuffer</code>.  An unpaired surrogate counts as a
+   * code point for this purpose.  Characters outside the indicated
+   * range are not examined, even if the range ends in the middle of a
+   * surrogate pair.
+   *
+   * @param start the starting index
+   * @param end one past the ending index
+   * @return the number of code points
+   * @since 1.5
+   */
+  public int codePointCount(int start, int end)
+  {
+    if (start < 0 || end >= count || start > end)
+      throw new StringIndexOutOfBoundsException();
+
+    int count = 0;
+    while (start < end)
+      {
+       char base = value[start];
+       if (base < Character.MIN_HIGH_SURROGATE
+           || base > Character.MAX_HIGH_SURROGATE
+           || start == end
+           || start == count
+           || value[start + 1] < Character.MIN_LOW_SURROGATE
+           || value[start + 1] > Character.MAX_LOW_SURROGATE)
+         {
+           // Nothing.
+         }
+       else
+         {
+           // Surrogate pair.
+           ++start;
+         }
+       ++start;
+       ++count;
+      }
+    return count;
+  }
+
+  /**
+   * Starting at the given index, this counts forward by the indicated
+   * number of code points, and then returns the resulting index.  An
+   * unpaired surrogate counts as a single code point for this
+   * purpose.
+   *
+   * @param start the starting index
+   * @param codePoints the number of code points
+   * @return the resulting index
+   * @since 1.5
+   */
+  public int offsetByCodePoints(int start, int codePoints)
+  {
+    while (codePoints > 0)
+      {
+       char base = value[start];
+       if (base < Character.MIN_HIGH_SURROGATE
+           || base > Character.MAX_HIGH_SURROGATE
+           || start == count
+           || value[start + 1] < Character.MIN_LOW_SURROGATE
+           || value[start + 1] > Character.MAX_LOW_SURROGATE)
+         {
+           // Nothing.
+         }
+       else
+         {
+           // Surrogate pair.
+           ++start;
+         }
+       ++start;
+       --codePoints;
+      }
+    return start;
+  }
+
+  /**
+   * Increase the capacity of this <code>StringBuilder</code>. This will
+   * ensure that an expensive growing operation will not occur until
+   * <code>minimumCapacity</code> is reached. The buffer is grown to the
+   * larger of <code>minimumCapacity</code> and
+   * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+   *
+   * @param minimumCapacity the new capacity
+   * @see #capacity()
+   */
+  void ensureCapacity_unsynchronized(int minimumCapacity)
+  {
+    if (minimumCapacity > value.length)
+      {
+        int max = value.length * 2 + 2;
+        minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
+        char[] nb = new char[minimumCapacity];
+        VMSystem.arraycopy(value, 0, nb, 0, count);
+        value = nb;
+      }
+  }
+
+  /**
+   * Predicate which determines if a substring of this matches another String
+   * starting at a specified offset for each String and continuing for a
+   * specified length. This is more efficient than creating a String to call
+   * indexOf on.
+   *
+   * @param toffset index to start comparison at for this String
+   * @param other non-null String to compare to region of this
+   * @return true if regions match, false otherwise
+   * @see #indexOf(String, int)
+   * @see #lastIndexOf(String, int)
+   * @see String#regionMatches(boolean, int, String, int, int)
+   */
+  private boolean regionMatches(int toffset, String other)
+  {
+    int len = other.count;
+    int index = other.offset;
+    while (--len >= 0)
+      if (value[toffset++] != other.value[index++])
+        return false;
+    return true;
+  }
+
+}
index 7f53a494b9539b958546737ac73595984b168cfc..a1536e1be1b6946eb44e77b116713c1c669a2aa9 100644 (file)
@@ -88,6 +88,11 @@ public final class Byte extends Number implements Comparable<Byte>
   // This caches Byte values, and is used by boxing conversions via
   // valueOf().  We're required to cache all possible values here.
   private static Byte[] byteCache = new Byte[MAX_VALUE - MIN_VALUE + 1];
+  static
+  {
+    for (int i=MIN_VALUE; i <= MAX_VALUE; i++)
+      byteCache[i - MIN_VALUE] = new Byte((byte) i);
+  }
 
 
   /**
@@ -185,7 +190,7 @@ public final class Byte extends Number implements Comparable<Byte>
    */
   public static Byte valueOf(String s, int radix)
   {
-    return new Byte(parseByte(s, radix));
+    return valueOf(parseByte(s, radix));
   }
 
   /**
@@ -201,7 +206,7 @@ public final class Byte extends Number implements Comparable<Byte>
    */
   public static Byte valueOf(String s)
   {
-    return new Byte(parseByte(s, 10));
+    return valueOf(parseByte(s, 10));
   }
 
   /**
@@ -214,12 +219,7 @@ public final class Byte extends Number implements Comparable<Byte>
    */
   public static Byte valueOf(byte val)
   {
-    synchronized (byteCache)
-      {
-       if (byteCache[val - MIN_VALUE] == null)
-         byteCache[val - MIN_VALUE] = new Byte(val);
-       return byteCache[val - MIN_VALUE];
-      }
+    return byteCache[val - MIN_VALUE];
   }
 
   /**
@@ -258,7 +258,7 @@ public final class Byte extends Number implements Comparable<Byte>
     int i = Integer.parseInt(s, 10, true);
     if ((byte) i != i)
       throw new NumberFormatException();
-    return new Byte((byte) i);
+    return valueOf((byte) i);
   }
 
   /**
index 506033f31bc32a92339200640cbc099c348c8370..eaa9557f651b49dc62720b3642b4c4d88d8f34b7 100644 (file)
@@ -2055,6 +2055,11 @@ public final class Character implements Serializable, Comparable<Character>
   // this constant controls how much we actually cache.
   private static final int MAX_CACHE = 127;
   private static Character[] charCache = new Character[MAX_CACHE + 1];
+  static
+  {
+     for (char i=0; i <= MAX_CACHE; i++)
+       charCache[i] = new Character(i);
+  }
 
   /**
    * Lu = Letter, Uppercase (Informative).
@@ -4208,12 +4213,8 @@ public final class Character implements Serializable, Comparable<Character>
   {
     if (val > MAX_CACHE)
       return new Character(val);
-    synchronized (charCache)
-      {
-       if (charCache[val - MIN_VALUE] == null)
-         charCache[val - MIN_VALUE] = new Character(val);
-       return charCache[val - MIN_VALUE];
-      }
+    else
+      return charCache[val - MIN_VALUE];
   }
 
   /**
index 3d7c32cc9350b914283c37a5c4df1d2600ee2ea6..591406ac4dc73de40059b0eff83f3656b0f0d3ae 100644 (file)
@@ -659,7 +659,7 @@ public abstract class ClassLoader
    */
   protected Enumeration<URL> findResources(String name) throws IOException
   {
-    return (Enumeration<URL>) EmptyEnumeration.getInstance();
+    return new EmptyEnumeration<URL>();
   }
 
   /**
index 466d48205ea75cf07d9cb4ef8d69454a91bb18ed..f3f7cb1e0ecf561aa2360e6c636898a65eb633f2 100644 (file)
@@ -38,6 +38,7 @@ exception statement from your version. */
 
 package java.lang;
 
+import gnu.java.lang.CPStringBuilder;
 
 /**
  * Instances of class <code>Double</code> represent primitive
@@ -102,6 +103,16 @@ public final class Double extends Number implements Comparable<Double>
    */
   public static final Class<Double> TYPE = (Class<Double>) VMClassLoader.getPrimitiveClass('D');
 
+  /**
+   * Cache representation of 0
+   */
+  private static final Double ZERO = new Double(0.0d);
+
+  /**
+   * Cache representation of 1
+   */
+  private static final Double ONE = new Double(1.0d);
+
   /**
    * The immutable value of this Double.
    *
@@ -201,7 +212,7 @@ public final class Double extends Number implements Comparable<Double>
       return d < 0 ? "-Infinity" : "Infinity";
 
     long bits = doubleToLongBits(d);
-    StringBuilder result = new StringBuilder();
+    CPStringBuilder result = new CPStringBuilder();
     
     if (bits < 0)
       result.append('-');
@@ -260,8 +271,12 @@ public final class Double extends Number implements Comparable<Double>
    */
   public static Double valueOf(double val)
   {
-    // We don't actually cache, but we could.
-    return new Double(val);
+    if ((val == 0.0) && (doubleToRawLongBits(val) == 0L))
+      return ZERO;
+    else if (val == 1.0)
+      return ONE;
+    else
+      return new Double(val);
   }
 
  /**
@@ -276,7 +291,7 @@ public final class Double extends Number implements Comparable<Double>
    */
   public static Double valueOf(String s)
   {
-    return new Double(parseDouble(s));
+    return valueOf(parseDouble(s));
   }
 
   /**
@@ -489,17 +504,13 @@ public final class Double extends Number implements Comparable<Double>
    */
   public boolean equals(Object obj)
   {
-    if (! (obj instanceof Double))
-      return false;
-
-    double d = ((Double) obj).value;
-
-    // Avoid call to native method. However, some implementations, like gcj,
-    // are better off using floatToIntBits(value) == floatToIntBits(f).
-    // Check common case first, then check NaN and 0.
-    if (value == d)
-      return (value != 0) || (1 / value == 1 / d);
-    return isNaN(value) && isNaN(d);
+    if (obj instanceof Double)
+      {
+        double d = ((Double) obj).value;
+        return (doubleToRawLongBits(value) == doubleToRawLongBits(d)) ||
+          (isNaN(value) && isNaN(d));
+      }
+    return false;
   }
 
   /**
index fa217bb67a685ac9aac65ac78ba70d87bf651f9a..da2e40b8e0565c30a4bba0de50e01f81278e010a 100644 (file)
@@ -89,7 +89,6 @@ public abstract class Enum<T extends Enum<T>>
    * @exception IllegalArgumentException when there is no value s in
    * the enum etype.
    */
-  @SuppressWarnings("unchecked")
   public static <S extends Enum<S>> S valueOf(Class<S> etype, String s)
   {
     if (etype == null || s == null)
@@ -103,7 +102,9 @@ public abstract class Enum<T extends Enum<T>>
         if (! f.isEnumConstant())
           throw new IllegalArgumentException(s);
         Class.setAccessible(f);
-        return (S) f.get(null);
+       @SuppressWarnings("unchecked")
+         S val = (S) f.get(null);
+        return val;
       }
     catch (NoSuchFieldException exception)
       {
index 72f31b57eb4b22b2ffa3982f1a51153974e54585..63e43c257ea997335aac03888b45df0410b070d4 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.lang;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * Instances of class <code>Float</code> represent primitive
  * <code>float</code> values.
@@ -101,6 +103,16 @@ public final class Float extends Number implements Comparable<Float>
    */
   public static final int SIZE = 32;
 
+  /**
+   * Cache representation of 0
+   */
+  private static final Float ZERO = new Float(0.0f);
+
+  /**
+   * Cache representation of 1
+   */
+  private static final Float ONE = new Float(1.0f);
+
   /**
    * The immutable value of this Float.
    *
@@ -211,7 +223,7 @@ public final class Float extends Number implements Comparable<Float>
       return f < 0 ? "-Infinity" : "Infinity";
 
     int bits = floatToIntBits(f);
-    StringBuilder result = new StringBuilder();
+    CPStringBuilder result = new CPStringBuilder();
     
     if (bits < 0)
       result.append('-');
@@ -273,7 +285,7 @@ public final class Float extends Number implements Comparable<Float>
    */
   public static Float valueOf(String s)
   {
-    return new Float(parseFloat(s));
+    return valueOf(parseFloat(s));
   }
 
   /**
@@ -287,8 +299,12 @@ public final class Float extends Number implements Comparable<Float>
    */
   public static Float valueOf(float val)
   {
-    // We don't actually cache, but we could.
-    return new Float(val);
+    if ((val == 0.0) && (floatToRawIntBits(val) == 0))
+      return ZERO;
+    else if (val == 1.0)
+      return ONE;
+    else
+      return new Float(val);
   }
 
   /**
@@ -498,17 +514,13 @@ public final class Float extends Number implements Comparable<Float>
    */
   public boolean equals(Object obj)
   {
-    if (! (obj instanceof Float))
-      return false;
-
-    float f = ((Float) obj).value;
-
-    // Avoid call to native method. However, some implementations, like gcj,
-    // are better off using floatToIntBits(value) == floatToIntBits(f).
-    // Check common case first, then check NaN and 0.
-    if (value == f)
-      return (value != 0) || (1 / value == 1 / f);
-    return isNaN(value) && isNaN(f);
+    if (obj instanceof Float)
+      {
+        float f = ((Float) obj).value;
+        return (floatToRawIntBits(value) == floatToRawIntBits(f)) ||
+          (isNaN(value) && isNaN(f));
+      }
+    return false;
   }
 
   /**
index 2079a4c20fff377ec52ae23c85ca3cca15196e4d..07d52b5d08c51fcfadbf8a0d5e9e218ff13f7a65 100644 (file)
@@ -37,10 +37,6 @@ exception statement from your version. */
 
 package java.lang;
 
-import gnu.java.util.WeakIdentityHashMap;
-
-import java.util.Iterator;
-
 /**
  * A ThreadLocal whose value is inherited by child Threads. The value of the
  * InheritableThreadLocal associated with the (parent) Thread is copied to
@@ -97,24 +93,6 @@ public class InheritableThreadLocal<T> extends ThreadLocal<T>
   {
     // The currentThread is the parent of the new thread.
     Thread parentThread = Thread.currentThread();
-    if (parentThread.locals != null)
-      {
-        Iterator keys = parentThread.locals.keySet().iterator();
-        while (keys.hasNext())
-          {
-            Object key = keys.next();
-            if (key instanceof InheritableThreadLocal)
-              {
-               InheritableThreadLocal local = (InheritableThreadLocal)key;
-                Object parentValue = parentThread.locals.get(key);
-               Object childValue = local.childValue(parentValue == sentinel
-                                               ? null : parentValue);
-                if (childThread.locals == null)
-                    childThread.locals = new WeakIdentityHashMap();
-                childThread.locals.put(key, (childValue == null
-                                             ? sentinel : childValue));
-              }
-          }
-      }
+    childThread.locals.inherit(parentThread.locals);
   }
 }
index cbf5274f0fc64b1978d223831b1546057f2a2839..e5ca4b3428e76ba72999180994237e20172cd1ed 100644 (file)
@@ -52,6 +52,7 @@ package java.lang;
  * @author Eric Blake (ebb9@email.byu.edu)
  * @author Tom Tromey (tromey@redhat.com)
  * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @author Ian Rogers
  * @since 1.0
  * @status updated to 1.5
  */
@@ -92,7 +93,12 @@ public final class Integer extends Number implements Comparable<Integer>
   // these constants control how much we actually cache.
   private static final int MIN_CACHE = -128;
   private static final int MAX_CACHE = 127;
-  private static Integer[] intCache = new Integer[MAX_CACHE - MIN_CACHE + 1];
+  private static final Integer[] intCache = new Integer[MAX_CACHE - MIN_CACHE + 1];
+  static
+  {
+    for (int i=MIN_CACHE; i <= MAX_CACHE; i++)
+      intCache[i - MIN_CACHE] = new Integer(i);
+  }
 
   /**
    * The immutable value of this Integer.
@@ -125,6 +131,45 @@ public final class Integer extends Number implements Comparable<Integer>
     value = parseInt(s, 10, false);
   }
 
+  /**
+   * Return the size of a string large enough to hold the given number
+   *
+   * @param num the number we want the string length for (must be positive)
+   * @param radix the radix (base) that will be used for the string
+   * @return a size sufficient for a string of num
+   */
+  private static int stringSize(int num, int radix) {
+    int exp;
+    if (radix < 4)
+      {
+        exp = 1;
+      }
+    else if (radix < 8)
+      {
+        exp = 2;
+      }
+    else if (radix < 16)
+      {
+        exp = 3;
+      }
+    else if (radix < 32)
+      {
+        exp = 4;
+      }
+    else
+      {
+        exp = 5;
+      }
+    int size=0;
+    do
+      {
+        num >>>= exp;
+        size++;
+      }
+    while(num != 0);
+    return size;
+  }
+
   /**
    * Converts the <code>int</code> to a <code>String</code> using
    * the specified radix (base). If the radix exceeds
@@ -142,22 +187,40 @@ public final class Integer extends Number implements Comparable<Integer>
     if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
       radix = 10;
 
-    // For negative numbers, print out the absolute value w/ a leading '-'.
-    // Use an array large enough for a binary number.
-    char[] buffer = new char[33];
-    int i = 33;
-    boolean isNeg = false;
-    if (num < 0)
+    // Is the value negative?
+    boolean isNeg = num < 0;
+
+    // Is the string a single character?
+    if (!isNeg && num < radix)
+      return new String(digits, num, 1, true);
+
+    // Compute string size and allocate buffer
+    // account for a leading '-' if the value is negative
+    int size;
+    int i;
+    char[] buffer;
+    if (isNeg)
       {
-        isNeg = true;
         num = -num;
 
         // When the value is MIN_VALUE, it overflows when made positive
         if (num < 0)
          {
+            i = size = stringSize(MAX_VALUE, radix) + 2;
+            buffer = new char[size];
            buffer[--i] = digits[(int) (-(num + radix) % radix)];
            num = -(num / radix);
          }
+        else
+          {
+            i = size = stringSize(num, radix) + 1;
+            buffer = new char[size];
+          }
+      }
+    else
+      {
+        i = size = stringSize(num, radix);
+        buffer = new char[size];
       }
 
     do
@@ -171,7 +234,7 @@ public final class Integer extends Number implements Comparable<Integer>
       buffer[--i] = '-';
 
     // Package constructor avoids an array copy.
-    return new String(buffer, i, 33 - i, true);
+    return new String(buffer, i, size - i, true);
   }
 
   /**
@@ -275,7 +338,7 @@ public final class Integer extends Number implements Comparable<Integer>
    */
   public static Integer valueOf(String s, int radix)
   {
-    return new Integer(parseInt(s, radix, false));
+    return valueOf(parseInt(s, radix, false));
   }
 
   /**
@@ -291,7 +354,7 @@ public final class Integer extends Number implements Comparable<Integer>
    */
   public static Integer valueOf(String s)
   {
-    return new Integer(parseInt(s, 10, false));
+    return valueOf(parseInt(s, 10, false));
   }
 
   /**
@@ -306,12 +369,8 @@ public final class Integer extends Number implements Comparable<Integer>
   {
     if (val < MIN_CACHE || val > MAX_CACHE)
       return new Integer(val);
-    synchronized (intCache)
-      {
-       if (intCache[val - MIN_CACHE] == null)
-         intCache[val - MIN_CACHE] = new Integer(val);
-       return intCache[val - MIN_CACHE];
-      }
+    else
+      return intCache[val - MIN_CACHE];
   }
 
   /**
@@ -440,7 +499,7 @@ public final class Integer extends Number implements Comparable<Integer>
   public static Integer getInteger(String nm, int val)
   {
     Integer result = getInteger(nm, null);
-    return result == null ? new Integer(val) : result;
+    return result == null ? valueOf(val) : result;
   }
 
   /**
@@ -506,7 +565,7 @@ public final class Integer extends Number implements Comparable<Integer>
    */
   public static Integer decode(String str)
   {
-    return new Integer(parseInt(str, 10, true));
+    return valueOf(parseInt(str, 10, true));
   }
 
   /**
@@ -628,7 +687,14 @@ public final class Integer extends Number implements Comparable<Integer>
    */
   public static int signum(int x)
   {
-    return x < 0 ? -1 : (x > 0 ? 1 : 0);
+    return (x >> 31) | (-x >>> 31);
+
+    // The LHS propagates the sign bit through every bit in the word;
+    // if X < 0, every bit is set to 1, else 0.  if X > 0, the RHS
+    // negates x and shifts the resulting 1 in the sign bit to the
+    // LSB, leaving every other bit 0.
+
+    // Hacker's Delight, Section 2-7
   }
 
   /**
@@ -666,10 +732,22 @@ public final class Integer extends Number implements Comparable<Integer>
   // Package visible for use by Long.
   static String toUnsignedString(int num, int exp)
   {
-    // Use an array large enough for a binary number.
+    // Compute string length
+    int size = 1;
+    int copy = num >>> exp;
+    while (copy != 0)
+      {
+        size++;
+        copy >>>= exp;
+      }
+    // Quick path for single character strings
+    if (size == 1)
+      return new String(digits, num, 1, true);
+
+    // Encode into buffer
     int mask = (1 << exp) - 1;
-    char[] buffer = new char[32];
-    int i = 32;
+    char[] buffer = new char[size];
+    int i = size;
     do
       {
         buffer[--i] = digits[num & mask];
@@ -678,7 +756,7 @@ public final class Integer extends Number implements Comparable<Integer>
     while (num != 0);
 
     // Package constructor avoids an array copy.
-    return new String(buffer, i, 32 - i, true);
+    return new String(buffer, i, size - i, true);
   }
 
   /**
index 08ac3976ca790319fd588166855a1b9b921876b8..a5ee6c707ad2145fd2f692f200de210b1ca1064c 100644 (file)
@@ -51,6 +51,7 @@ package java.lang;
  * @author Eric Blake (ebb9@email.byu.edu)
  * @author Tom Tromey (tromey@redhat.com)
  * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @author Ian Rogers
  * @since 1.0
  * @status updated to 1.5
  */
@@ -86,6 +87,18 @@ public final class Long extends Number implements Comparable<Long>
    */
   public static final int SIZE = 64;
 
+  // This caches some Long values, and is used by boxing
+  // conversions via valueOf().  We cache at least -128..127;
+  // these constants control how much we actually cache.
+  private static final int MIN_CACHE = -128;
+  private static final int MAX_CACHE = 127;
+  private static final Long[] longCache = new Long[MAX_CACHE - MIN_CACHE + 1];
+  static
+  {
+    for (int i=MIN_CACHE; i <= MAX_CACHE; i++)
+      longCache[i - MIN_CACHE] = new Long(i);
+  }
+
   /**
    * The immutable value of this Long.
    *
@@ -117,6 +130,45 @@ public final class Long extends Number implements Comparable<Long>
     value = parseLong(s, 10, false);
   }
 
+  /**
+   * Return the size of a string large enough to hold the given number
+   *
+   * @param num the number we want the string length for (must be positive)
+   * @param radix the radix (base) that will be used for the string
+   * @return a size sufficient for a string of num
+   */
+  private static int stringSize(long num, int radix) {
+    int exp;
+    if (radix < 4)
+      {
+        exp = 1;
+      }
+    else if (radix < 8)
+      {
+        exp = 2;
+      }
+    else if (radix < 16)
+      {
+        exp = 3;
+      }
+    else if (radix < 32)
+      {
+        exp = 4;
+      }
+    else
+      {
+        exp = 5;
+      }
+    int size=0;
+    do
+      {
+        num >>>= exp;
+        size++;
+      }
+    while(num != 0);
+    return size;
+  }
+
   /**
    * Converts the <code>long</code> to a <code>String</code> using
    * the specified radix (base). If the radix exceeds
@@ -131,29 +183,43 @@ public final class Long extends Number implements Comparable<Long>
    */
   public static String toString(long num, int radix)
   {
-    // Use the Integer toString for efficiency if possible.
-    if ((int) num == num)
-      return Integer.toString((int) num, radix);
-
     if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
       radix = 10;
 
-    // For negative numbers, print out the absolute value w/ a leading '-'.
-    // Use an array large enough for a binary number.
-    char[] buffer = new char[65];
-    int i = 65;
-    boolean isNeg = false;
-    if (num < 0)
+    // Is the value negative?
+    boolean isNeg = num < 0;
+
+    // Is the string a single character?
+    if (!isNeg && num < radix)
+      return new String(digits, (int)num, 1, true);
+
+    // Compute string size and allocate buffer
+    // account for a leading '-' if the value is negative
+    int size;
+    int i;
+    char[] buffer;
+    if (isNeg)
       {
-        isNeg = true;
         num = -num;
 
         // When the value is MIN_VALUE, it overflows when made positive
         if (num < 0)
-         {
-           buffer[--i] = digits[(int) (-(num + radix) % radix)];
-           num = -(num / radix);
-         }
+          {
+            i = size = stringSize(MAX_VALUE, radix) + 2;
+            buffer = new char[size];
+            buffer[--i] = digits[(int) (-(num + radix) % radix)];
+            num = -(num / radix);
+          }
+        else
+          {
+            i = size = stringSize(num, radix) + 1;
+            buffer = new char[size];
+          }
+      }
+    else
+      {
+        i = size = stringSize(num, radix);
+        buffer = new char[size];
       }
 
     do
@@ -167,7 +233,7 @@ public final class Long extends Number implements Comparable<Long>
       buffer[--i] = '-';
 
     // Package constructor avoids an array copy.
-    return new String(buffer, i, 65 - i, true);
+    return new String(buffer, i, size - i, true);
   }
 
   /**
@@ -270,7 +336,7 @@ public final class Long extends Number implements Comparable<Long>
    */
   public static Long valueOf(String s, int radix)
   {
-    return new Long(parseLong(s, radix, false));
+    return valueOf(parseLong(s, radix, false));
   }
 
   /**
@@ -286,7 +352,7 @@ public final class Long extends Number implements Comparable<Long>
    */
   public static Long valueOf(String s)
   {
-    return new Long(parseLong(s, 10, false));
+    return valueOf(parseLong(s, 10, false));
   }
 
   /**
@@ -298,9 +364,10 @@ public final class Long extends Number implements Comparable<Long>
    */
   public static Long valueOf(long val)
   {
-    // We aren't required to cache here.  We could, though perhaps we
-    // ought to consider that as an empirical question.
-    return new Long(val);
+    if (val < MIN_CACHE || val > MAX_CACHE)
+      return new Long(val);
+    else
+      return longCache[((int)val) - MIN_CACHE];
   }
 
   /**
@@ -337,7 +404,7 @@ public final class Long extends Number implements Comparable<Long>
    */
   public static Long decode(String str)
   {
-    return new Long(parseLong(str, 10, true));
+    return valueOf(parseLong(str, 10, true));
   }
 
   /**
@@ -467,7 +534,7 @@ public final class Long extends Number implements Comparable<Long>
   public static Long getLong(String nm, long val)
   {
     Long result = getLong(nm, null);
-    return result == null ? new Long(val) : result;
+    return result == null ? valueOf(val) : result;
   }
 
   /**
@@ -622,7 +689,14 @@ public final class Long extends Number implements Comparable<Long>
    */
   public static int signum(long x)
   {
-    return x < 0 ? -1 : (x > 0 ? 1 : 0);
+    return (int) ((x >> 63) | (-x >>> 63));
+
+    // The LHS propagates the sign bit through every bit in the word;
+    // if X < 0, every bit is set to 1, else 0.  if X > 0, the RHS
+    // negates x and shifts the resulting 1 in the sign bit to the
+    // LSB, leaving every other bit 0.
+
+    // Hacker's Delight, Section 2-7
   }
 
   /**
@@ -655,16 +729,22 @@ public final class Long extends Number implements Comparable<Long>
    */
   private static String toUnsignedString(long num, int exp)
   {
-    // Use the Integer toUnsignedString for efficiency if possible.
-    // If NUM<0 then this particular optimization doesn't work
-    // properly.
-    if (num >= 0 && (int) num == num)
-      return Integer.toUnsignedString((int) num, exp);
+    // Compute string length
+    int size = 1;
+    long copy = num >>> exp;
+    while (copy != 0)
+      {
+        size++;
+        copy >>>= exp;
+      }
+    // Quick path for single character strings
+    if (size == 1)
+      return new String(digits, (int)num, 1, true);
 
-    // Use an array large enough for a binary number.
+    // Encode into buffer
     int mask = (1 << exp) - 1;
-    char[] buffer = new char[64];
-    int i = 64;
+    char[] buffer = new char[size];
+    int i = size;
     do
       {
         buffer[--i] = digits[(int) num & mask];
@@ -673,7 +753,7 @@ public final class Long extends Number implements Comparable<Long>
     while (num != 0);
 
     // Package constructor avoids an array copy.
-    return new String(buffer, i, 64 - i, true);
+    return new String(buffer, i, size - i, true);
   }
 
   /**
index 41a31e2608269bb0440fd15a7152f900a0768b97..ec87f933e9383754408d0b5c8069e8815d3db7e2 100644 (file)
@@ -90,6 +90,11 @@ public final class Short extends Number implements Comparable<Short>
   private static final int MIN_CACHE = -128;
   private static final int MAX_CACHE = 127;
   private static Short[] shortCache = new Short[MAX_CACHE - MIN_CACHE + 1];
+  static
+  {
+    for (short i=MIN_CACHE; i <= MAX_CACHE; i++)
+      shortCache[i - MIN_CACHE] = new Short(i);
+  }
 
   /**
    * The immutable value of this Short.
@@ -184,7 +189,7 @@ public final class Short extends Number implements Comparable<Short>
    */
   public static Short valueOf(String s, int radix)
   {
-    return new Short(parseShort(s, radix));
+    return valueOf(parseShort(s, radix));
   }
 
   /**
@@ -200,7 +205,7 @@ public final class Short extends Number implements Comparable<Short>
    */
   public static Short valueOf(String s)
   {
-    return new Short(parseShort(s, 10));
+    return valueOf(parseShort(s, 10));
   }
 
   /**
@@ -216,12 +221,8 @@ public final class Short extends Number implements Comparable<Short>
   {
     if (val < MIN_CACHE || val > MAX_CACHE)
       return new Short(val);
-    synchronized (shortCache)
-      {
-       if (shortCache[val - MIN_CACHE] == null)
-         shortCache[val - MIN_CACHE] = new Short(val);
-       return shortCache[val - MIN_CACHE];
-      }
+    else
+      return shortCache[val - MIN_CACHE];
   }
 
   /**
@@ -260,7 +261,7 @@ public final class Short extends Number implements Comparable<Short>
     int i = Integer.parseInt(s, 10, true);
     if ((short) i != i)
       throw new NumberFormatException();
-    return new Short((short) i);
+    return valueOf((short) i);
   }
 
   /**
index 0b56accf708329198654cba55866241da53f16db..95c88399d3ca99c162b4207b65676b2707f8d95d 100644 (file)
@@ -40,6 +40,7 @@ exception statement from your version. */
 package java.lang;
 
 import gnu.java.lang.CharData;
+import gnu.java.lang.CPStringBuilder;
 
 import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
@@ -2072,7 +2073,7 @@ public final class String
     int replaceLength = replacement.length();
     
     int startPos = this.indexOf(targetString);
-    StringBuilder result = new StringBuilder(this);    
+    CPStringBuilder result = new CPStringBuilder(this);    
     while (startPos != -1)
       {
         // Replace the target with the replacement
index 3aa84a21e12e3f4effe29f28cf7532abab11d1fd..b105f55da5626e0c8924afbbd1dabc78e0615a1d 100644 (file)
@@ -1,5 +1,5 @@
 /* StringBuffer.java -- Growable strings
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -73,6 +73,7 @@ import java.io.Serializable;
  * @status updated to 1.4
  */
 public final class StringBuffer
+  extends AbstractStringBuffer
   implements Serializable, CharSequence, Appendable
 {
   // Implementation note: if you change this class, you usually will
@@ -83,23 +84,6 @@ public final class StringBuffer
    */
   private static final long serialVersionUID = 3388685877147921107L;
 
-  /**
-   * Index of next available character (and thus the size of the current
-   * string contents).  Note that this has permissions set this way so that
-   * String can get the value.
-   *
-   * @serial the number of characters in the buffer
-   */
-  int count;
-
-  /**
-   * The buffer.  Note that this has permissions set this way so that String
-   * can get the value.
-   *
-   * @serial the buffer
-   */
-  char[] value;
-
   /**
    * True if the buffer is shared with another object (StringBuffer or
    * String); this means the buffer must be copied before writing to it again.
@@ -110,17 +94,12 @@ public final class StringBuffer
    */
   boolean shared;
 
-  /**
-   * The default capacity of a buffer.
-   */
-  private static final int DEFAULT_CAPACITY = 16;
-
   /**
    * Create a new StringBuffer with default capacity 16.
    */
   public StringBuffer()
   {
-    this(DEFAULT_CAPACITY);
+    super();
   }
 
   /**
@@ -132,7 +111,7 @@ public final class StringBuffer
    */
   public StringBuffer(int capacity)
   {
-    value = new char[capacity];
+    super(capacity);
   }
 
   /**
@@ -146,9 +125,7 @@ public final class StringBuffer
   public StringBuffer(String str)
   {
     // Unfortunately, because the size is 16 larger, we cannot share.
-    count = str.count;
-    value = new char[count + DEFAULT_CAPACITY];
-    str.getChars(0, count, value, 0);
+    super(str);
   }
 
   /**
@@ -163,11 +140,7 @@ public final class StringBuffer
    */
   public StringBuffer(CharSequence seq)
   {
-    int len = seq.length();
-    count = len <= 0 ? 0 : len;
-    value = new char[count + DEFAULT_CAPACITY];
-    for (int i = 0; i < len; ++i)
-      value[i] = seq.charAt(i);
+    super(seq);
   }
 
   /**
@@ -226,29 +199,7 @@ public final class StringBuffer
    */
   public synchronized void setLength(int newLength)
   {
-    if (newLength < 0)
-      throw new StringIndexOutOfBoundsException(newLength);
-
-    int valueLength = value.length;
-
-    /* Always call ensureCapacity_unsynchronized in order to preserve
-       copy-on-write semantics.  */
-    ensureCapacity_unsynchronized(newLength);
-
-    if (newLength < valueLength)
-      {
-        /* If the StringBuffer's value just grew, then we know that
-           value is newly allocated and the region between count and
-           newLength is filled with '\0'.  */
-       count = newLength;
-      }
-    else
-      {
-       /* The StringBuffer's value doesn't need to grow.  However,
-          we should clear out any cruft that may exist.  */
-       while (count < newLength)
-          value[count++] = '\0';
-      }
+    super.setLength(newLength);
   }
 
   /**
@@ -257,12 +208,11 @@ public final class StringBuffer
    * @param index the index of the character to get, starting at 0
    * @return the character at the specified index
    * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
    */
   public synchronized char charAt(int index)
   {
-    if (index < 0 || index >= count)
-      throw new StringIndexOutOfBoundsException(index);
-    return value[index];
+    return super.charAt(index);
   }
 
   /**
@@ -277,7 +227,7 @@ public final class StringBuffer
    */
   public synchronized int codePointAt(int index)
   {
-    return Character.codePointAt(value, index, count);
+    return super.codePointAt(index);
   }
 
   /**
@@ -291,11 +241,7 @@ public final class StringBuffer
    */
   public synchronized int codePointBefore(int index)
   {
-    // Character.codePointBefore() doesn't perform this check.  We
-    // could use the CharSequence overload, but this is just as easy.
-    if (index >= count)
-      throw new IndexOutOfBoundsException();
-    return Character.codePointBefore(value, index, 1);
+    return super.codePointBefore(index);
   }
 
   /**
@@ -316,9 +262,7 @@ public final class StringBuffer
   public synchronized void getChars(int srcOffset, int srcEnd,
                                     char[] dst, int dstOffset)
   {
-    if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
-      throw new StringIndexOutOfBoundsException();
-    VMSystem.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
+    super.getChars(srcOffset, srcEnd, dst, dstOffset);
   }
 
   /**
@@ -331,11 +275,7 @@ public final class StringBuffer
    */
   public synchronized void setCharAt(int index, char ch)
   {
-    if (index < 0 || index >= count)
-      throw new StringIndexOutOfBoundsException(index);
-    // Call ensureCapacity to enforce copy-on-write.
-    ensureCapacity_unsynchronized(count);
-    value[index] = ch;
+    super.setCharAt(index, ch);
   }
 
   /**
@@ -348,9 +288,10 @@ public final class StringBuffer
    * @see String#valueOf(Object)
    * @see #append(String)
    */
-  public StringBuffer append(Object obj)
+  public synchronized StringBuffer append(Object obj)
   {
-    return append(obj == null ? "null" : obj.toString());
+    super.append(obj);
+    return this;
   }
 
   /**
@@ -362,12 +303,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer append(String str)
   {
-    if (str == null)
-      str = "null";
-    int len = str.count;
-    ensureCapacity_unsynchronized(count + len);
-    str.getChars(0, len, value, count);
-    count += len;
+    super.append(str);
     return this;
   }
 
@@ -383,15 +319,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer append(StringBuffer stringBuffer)
   {
-    if (stringBuffer == null)
-      return append("null");
-    synchronized (stringBuffer)
-      {
-        int len = stringBuffer.count;
-        ensureCapacity_unsynchronized(count + len);
-        VMSystem.arraycopy(stringBuffer.value, 0, value, count, len);
-        count += len;
-      }
+    super.append(stringBuffer);
     return this;
   }
 
@@ -405,9 +333,10 @@ public final class StringBuffer
    * @throws NullPointerException if <code>str</code> is <code>null</code>
    * @see #append(char[], int, int)
    */
-  public StringBuffer append(char[] data)
+  public synchronized StringBuffer append(char[] data)
   {
-    return append(data, 0, data.length);
+    super.append(data, 0, data.length);
+    return this;
   }
 
   /**
@@ -426,30 +355,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer append(char[] data, int offset, int count)
   {
-    if (offset < 0 || count < 0 || offset > data.length - count)
-      throw new StringIndexOutOfBoundsException();
-    ensureCapacity_unsynchronized(this.count + count);
-    VMSystem.arraycopy(data, offset, value, this.count, count);
-    this.count += count;
-    return this;
-  }
-
-  /**
-   * Append the code point to this <code>StringBuffer</code>.
-   * This is like #append(char), but will append two characters
-   * if a supplementary code point is given.
-   *
-   * @param code the code point to append
-   * @return this <code>StringBuffer</code>
-   * @see Character#toChars(int, char[], int)
-   * @since 1.5
-   */
-  public synchronized StringBuffer appendCodePoint(int code)
-  {
-    int len = Character.charCount(code);
-    ensureCapacity_unsynchronized(count + len);
-    Character.toChars(code, value, count);
-    count += len;
+    super.append(data, offset, count);
     return this;
   }
 
@@ -462,9 +368,10 @@ public final class StringBuffer
    * @return this <code>StringBuffer</code>
    * @see String#valueOf(boolean)
    */
-  public StringBuffer append(boolean bool)
+  public synchronized StringBuffer append(boolean bool)
   {
-    return append(bool ? "true" : "false");
+    super.append(bool);
+    return this;
   }
 
   /**
@@ -475,8 +382,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer append(char ch)
   {
-    ensureCapacity_unsynchronized(count + 1);
-    value[count++] = ch;
+    super.append(ch);
     return this;
   }
 
@@ -490,7 +396,8 @@ public final class StringBuffer
    */
   public synchronized StringBuffer append(CharSequence seq)
   {
-    return append(seq, 0, seq.length());
+    super.append(seq, 0, seq.length());
+    return this;
   }
 
   /**
@@ -506,14 +413,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer append(CharSequence seq, int start, int end)
   {
-    if (seq == null)
-      return append("null");
-    if (end - start > 0)
-      {
-       ensureCapacity_unsynchronized(count + end - start);
-       for (; start < end; ++start)
-         value[count++] = seq.charAt(start);
-      }
+    super.append(seq, start, end);
     return this;
   }
 
@@ -527,9 +427,10 @@ public final class StringBuffer
    * @see String#valueOf(int)
    */
   // This is native in libgcj, for efficiency.
-  public StringBuffer append(int inum)
+  public synchronized StringBuffer append(int inum)
   {
-    return append(String.valueOf(inum));
+    super.append(inum);
+    return this;
   }
 
   /**
@@ -541,9 +442,10 @@ public final class StringBuffer
    * @return this <code>StringBuffer</code>
    * @see String#valueOf(long)
    */
-  public StringBuffer append(long lnum)
+  public synchronized StringBuffer append(long lnum)
   {
-    return append(Long.toString(lnum, 10));
+    super.append(lnum);
+    return this;
   }
 
   /**
@@ -555,9 +457,10 @@ public final class StringBuffer
    * @return this <code>StringBuffer</code>
    * @see String#valueOf(float)
    */
-  public StringBuffer append(float fnum)
+  public synchronized StringBuffer append(float fnum)
   {
-    return append(Float.toString(fnum));
+    super.append(fnum);
+    return this;
   }
 
   /**
@@ -569,9 +472,26 @@ public final class StringBuffer
    * @return this <code>StringBuffer</code>
    * @see String#valueOf(double)
    */
-  public StringBuffer append(double dnum)
+  public synchronized StringBuffer append(double dnum)
   {
-    return append(Double.toString(dnum));
+    super.append(dnum);
+    return this;
+  }
+
+  /**
+   * Append the code point to this <code>StringBuffer</code>.
+   * This is like #append(char), but will append two characters
+   * if a supplementary code point is given.
+   *
+   * @param code the code point to append
+   * @return this <code>StringBuffer</code>
+   * @see Character#toChars(int, char[], int)
+   * @since 1.5
+   */
+  public synchronized StringBuffer appendCodePoint(int code)
+  {
+    super.appendCodePoint(code);
+    return this;
   }
 
   /**
@@ -587,15 +507,8 @@ public final class StringBuffer
    */
   public synchronized StringBuffer delete(int start, int end)
   {
-    if (start < 0 || start > count || start > end)
-      throw new StringIndexOutOfBoundsException(start);
-    if (end > count)
-      end = count;
     // This will unshare if required.
-    ensureCapacity_unsynchronized(count);
-    if (count - end != 0)
-      VMSystem.arraycopy(value, end, value, start, count - end);
-    count -= end - start;
+    super.delete(start, end);
     return this;
   }
 
@@ -607,9 +520,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if index is out of bounds
    * @since 1.2
    */
-  public StringBuffer deleteCharAt(int index)
+  public synchronized StringBuffer deleteCharAt(int index)
   {
-    return delete(index, index + 1);
+    super.deleteCharAt(index);
+    return this;
   }
 
   /**
@@ -628,19 +542,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer replace(int start, int end, String str)
   {
-    if (start < 0 || start > count || start > end)
-      throw new StringIndexOutOfBoundsException(start);
-
-    int len = str.count;
-    // Calculate the difference in 'count' after the replace.
-    int delta = len - (end > count ? count : end) + start;
-    ensureCapacity_unsynchronized(count + delta);
-
-    if (delta != 0 && end < count)
-      VMSystem.arraycopy(value, end, value, end + delta, count - end);
-
-    str.getChars(0, len, value, start);
-    count += delta;
+    super.replace(start, end, str);
     return this;
   }
 
@@ -720,13 +622,7 @@ public final class StringBuffer
   public synchronized StringBuffer insert(int offset,
                                           char[] str, int str_offset, int len)
   {
-    if (offset < 0 || offset > count || len < 0
-        || str_offset < 0 || str_offset > str.length - len)
-      throw new StringIndexOutOfBoundsException();
-    ensureCapacity_unsynchronized(count + len);
-    VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
-    VMSystem.arraycopy(str, str_offset, value, offset, len);
-    count += len;
+    super.insert(offset, str, str_offset, len);
     return this;
   }
 
@@ -741,9 +637,10 @@ public final class StringBuffer
    * @exception StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(Object)
    */
-  public StringBuffer insert(int offset, Object obj)
+  public synchronized StringBuffer insert(int offset, Object obj)
   {
-    return insert(offset, obj == null ? "null" : obj.toString());
+    super.insert(offset, obj);
+    return this;
   }
 
   /**
@@ -758,15 +655,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer insert(int offset, String str)
   {
-    if (offset < 0 || offset > count)
-      throw new StringIndexOutOfBoundsException(offset);
-    if (str == null)
-      str = "null";
-    int len = str.count;
-    ensureCapacity_unsynchronized(count + len);
-    VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
-    str.getChars(0, len, value, offset);
-    count += len;
+    super.insert(offset, str);
     return this;
   }
 
@@ -783,9 +672,8 @@ public final class StringBuffer
    */
   public synchronized StringBuffer insert(int offset, CharSequence sequence)
   {
-    if (sequence == null)
-      sequence = "null";
-    return insert(offset, sequence, 0, sequence.length());
+    super.insert(offset, sequence);
+    return this;
   }
 
   /**
@@ -805,16 +693,7 @@ public final class StringBuffer
   public synchronized StringBuffer insert(int offset, CharSequence sequence,
                                          int start, int end)
   {
-    if (sequence == null)
-      sequence = "null";
-    if (start < 0 || end < 0 || start > end || end > sequence.length())
-      throw new IndexOutOfBoundsException();
-    int len = end - start;
-    ensureCapacity_unsynchronized(count + len);
-    VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
-    for (int i = start; i < end; ++i)
-      value[offset++] = sequence.charAt(i);
-    count += len;
+    super.insert(offset, sequence, start, end);
     return this;
   }
 
@@ -829,9 +708,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see #insert(int, char[], int, int)
    */
-  public StringBuffer insert(int offset, char[] data)
+  public synchronized StringBuffer insert(int offset, char[] data)
   {
-    return insert(offset, data, 0, data.length);
+    super.insert(offset, data, 0, data.length);
+    return this;
   }
 
   /**
@@ -845,9 +725,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(boolean)
    */
-  public StringBuffer insert(int offset, boolean bool)
+  public synchronized StringBuffer insert(int offset, boolean bool)
   {
-    return insert(offset, bool ? "true" : "false");
+    super.insert(offset, bool);
+    return this;
   }
 
   /**
@@ -860,12 +741,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer insert(int offset, char ch)
   {
-    if (offset < 0 || offset > count)
-      throw new StringIndexOutOfBoundsException(offset);
-    ensureCapacity_unsynchronized(count + 1);
-    VMSystem.arraycopy(value, offset, value, offset + 1, count - offset);
-    value[offset] = ch;
-    count++;
+    super.insert(offset, ch);
     return this;
   }
 
@@ -880,9 +756,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(int)
    */
-  public StringBuffer insert(int offset, int inum)
+  public synchronized StringBuffer insert(int offset, int inum)
   {
-    return insert(offset, String.valueOf(inum));
+    super.insert(offset, inum);
+    return this;
   }
 
   /**
@@ -896,9 +773,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(long)
    */
-  public StringBuffer insert(int offset, long lnum)
+  public synchronized StringBuffer insert(int offset, long lnum)
   {
-    return insert(offset, Long.toString(lnum, 10));
+    super.insert(offset, lnum);
+    return this;
   }
 
   /**
@@ -912,9 +790,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(float)
    */
-  public StringBuffer insert(int offset, float fnum)
+  public synchronized StringBuffer insert(int offset, float fnum)
   {
-    return insert(offset, Float.toString(fnum));
+    super.insert(offset, fnum);
+    return this;
   }
 
   /**
@@ -928,9 +807,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(double)
    */
-  public StringBuffer insert(int offset, double dnum)
+  public synchronized StringBuffer insert(int offset, double dnum)
   {
-    return insert(offset, Double.toString(dnum));
+    super.insert(offset, dnum);
+    return this;
   }
 
   /**
@@ -942,9 +822,9 @@ public final class StringBuffer
    * @see #indexOf(String, int)
    * @since 1.4
    */
-  public int indexOf(String str)
+  public synchronized int indexOf(String str)
   {
-    return indexOf(str, 0);
+    return super.indexOf(str, 0);
   }
 
   /**
@@ -961,13 +841,7 @@ public final class StringBuffer
    */
   public synchronized int indexOf(String str, int fromIndex)
   {
-    if (fromIndex < 0)
-      fromIndex = 0;
-    int limit = count - str.count;
-    for ( ; fromIndex <= limit; fromIndex++)
-      if (regionMatches(fromIndex, str))
-        return fromIndex;
-    return -1;
+    return super.indexOf(str, fromIndex);
   }
 
   /**
@@ -979,9 +853,9 @@ public final class StringBuffer
    * @see #lastIndexOf(String, int)
    * @since 1.4
    */
-  public int lastIndexOf(String str)
+  public synchronized int lastIndexOf(String str)
   {
-    return lastIndexOf(str, count - str.count);
+    return super.lastIndexOf(str, count - str.count);
   }
 
   /**
@@ -998,11 +872,7 @@ public final class StringBuffer
    */
   public synchronized int lastIndexOf(String str, int fromIndex)
   {
-    fromIndex = Math.min(fromIndex, count - str.count);
-    for ( ; fromIndex >= 0; fromIndex--)
-      if (regionMatches(fromIndex, str))
-        return fromIndex;
-    return -1;
+    return super.lastIndexOf(str, fromIndex);
   }
 
   /**
@@ -1013,14 +883,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer reverse()
   {
-    // Call ensureCapacity to enforce copy-on-write.
-    ensureCapacity_unsynchronized(count);
-    for (int i = count >> 1, j = count - i; --i >= 0; ++j)
-      {
-        char c = value[i];
-        value[i] = value[j];
-        value[j] = c;
-      }
+    super.reverse();
     return this;
   }
 
@@ -1047,19 +910,7 @@ public final class StringBuffer
    */
   public synchronized void trimToSize()
   {
-    int wouldSave = value.length - count;
-    // Some random heuristics: if we save less than 20 characters, who
-    // cares.
-    if (wouldSave < 20)
-      return;
-    // If we save more than 200 characters, shrink.
-    // If we save more than 1/4 of the buffer, shrink.
-    if (wouldSave > 200 || wouldSave * 4 > value.length)
-      {
-       char[] newValue = new char[count];
-       VMSystem.arraycopy(value, 0, newValue, 0, count);
-       value = newValue;
-      }
+    super.trimToSize();
   }
 
   /**
@@ -1076,31 +927,7 @@ public final class StringBuffer
    */
   public synchronized int codePointCount(int start, int end)
   {
-    if (start < 0 || end >= count || start > end)
-      throw new StringIndexOutOfBoundsException();
-
-    int count = 0;
-    while (start < end)
-      {
-       char base = value[start];
-       if (base < Character.MIN_HIGH_SURROGATE
-           || base > Character.MAX_HIGH_SURROGATE
-           || start == end
-           || start == count
-           || value[start + 1] < Character.MIN_LOW_SURROGATE
-           || value[start + 1] > Character.MAX_LOW_SURROGATE)
-         {
-           // Nothing.
-         }
-       else
-         {
-           // Surrogate pair.
-           ++start;
-         }
-       ++start;
-       ++count;
-      }
-    return count;
+    return super.codePointCount(start, end);
   }
 
   /**
@@ -1116,26 +943,7 @@ public final class StringBuffer
    */
   public synchronized int offsetByCodePoints(int start, int codePoints)
   {
-    while (codePoints > 0)
-      {
-       char base = value[start];
-       if (base < Character.MIN_HIGH_SURROGATE
-           || base > Character.MAX_HIGH_SURROGATE
-           || start == count
-           || value[start + 1] < Character.MIN_LOW_SURROGATE
-           || value[start + 1] > Character.MAX_LOW_SURROGATE)
-         {
-           // Nothing.
-         }
-       else
-         {
-           // Surrogate pair.
-           ++start;
-         }
-       ++start;
-       --codePoints;
-      }
-    return start;
+    return super.offsetByCodePoints(start, codePoints);
   }
 
   /**
@@ -1147,7 +955,7 @@ public final class StringBuffer
    * @param minimumCapacity the minimum capacity
    * @see #ensureCapacity(int)
    */
-  private void ensureCapacity_unsynchronized(int minimumCapacity)
+  void ensureCapacity_unsynchronized(int minimumCapacity)
   {
     if (shared || minimumCapacity > value.length)
       {
@@ -1165,26 +973,4 @@ public final class StringBuffer
       }
   }
 
-  /**
-   * Predicate which determines if a substring of this matches another String
-   * starting at a specified offset for each String and continuing for a
-   * specified length. This is more efficient than creating a String to call
-   * indexOf on.
-   *
-   * @param toffset index to start comparison at for this String
-   * @param other non-null String to compare to region of this
-   * @return true if regions match, false otherwise
-   * @see #indexOf(String, int)
-   * @see #lastIndexOf(String, int)
-   * @see String#regionMatches(boolean, int, String, int, int)
-   */
-  private boolean regionMatches(int toffset, String other)
-  {
-    int len = other.count;
-    int index = other.offset;
-    while (--len >= 0)
-      if (value[toffset++] != other.value[index++])
-        return false;
-    return true;
-  }
 }
index 95d04d1e7663011e65a5994f89fda051be03c58f..aefe9272b6eacf454ff532efd8ed0eb5c2674c71 100644 (file)
@@ -1,5 +1,5 @@
 /* StringBuilder.java -- Unsynchronized growable strings
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -75,6 +75,7 @@ import java.io.Serializable;
  * @since 1.5
  */
 public final class StringBuilder
+  extends AbstractStringBuffer
   implements Serializable, CharSequence, Appendable
 {
   // Implementation note: if you change this class, you usually will
@@ -85,34 +86,12 @@ public final class StringBuilder
    */
   private static final long serialVersionUID = 4383685877147921099L;
 
-  /**
-   * Index of next available character (and thus the size of the current
-   * string contents).  Note that this has permissions set this way so that
-   * String can get the value.
-   *
-   * @serial the number of characters in the buffer
-   */
-  int count;
-
-  /**
-   * The buffer.  Note that this has permissions set this way so that String
-   * can get the value.
-   *
-   * @serial the buffer
-   */
-  char[] value;
-
-  /**
-   * The default capacity of a buffer.
-   */
-  private static final int DEFAULT_CAPACITY = 16;
-
   /**
    * Create a new StringBuilder with default capacity 16.
    */
   public StringBuilder()
   {
-    this(DEFAULT_CAPACITY);
+    super();
   }
 
   /**
@@ -124,7 +103,7 @@ public final class StringBuilder
    */
   public StringBuilder(int capacity)
   {
-    value = new char[capacity];
+    super(capacity);
   }
 
   /**
@@ -137,10 +116,7 @@ public final class StringBuilder
    */
   public StringBuilder(String str)
   {
-    // Unfortunately, because the size is 16 larger, we cannot share.
-    count = str.count;
-    value = new char[count + DEFAULT_CAPACITY];
-    str.getChars(0, count, value, 0);
+    super(str);
   }
 
   /**
@@ -154,11 +130,7 @@ public final class StringBuilder
    */
   public StringBuilder(CharSequence seq)
   {
-    int len = seq.length();
-    count = len <= 0 ? 0 : len;
-    value = new char[count + DEFAULT_CAPACITY];
-    for (int i = 0; i < len; ++i)
-      value[i] = seq.charAt(i);
+    super(seq);
   }
 
   /**
@@ -188,122 +160,6 @@ public final class StringBuilder
     return value.length;
   }
 
-  /**
-   * Increase the capacity of this <code>StringBuilder</code>. This will
-   * ensure that an expensive growing operation will not occur until
-   * <code>minimumCapacity</code> is reached. The buffer is grown to the
-   * larger of <code>minimumCapacity</code> and
-   * <code>capacity() * 2 + 2</code>, if it is not already large enough.
-   *
-   * @param minimumCapacity the new capacity
-   * @see #capacity()
-   */
-  public void ensureCapacity(int minimumCapacity)
-  {
-    if (minimumCapacity > value.length)
-      {
-        int max = value.length * 2 + 2;
-        minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
-        char[] nb = new char[minimumCapacity];
-        VMSystem.arraycopy(value, 0, nb, 0, count);
-        value = nb;
-      }
-  }
-
-  /**
-   * Set the length of this StringBuilder. If the new length is greater than
-   * the current length, all the new characters are set to '\0'. If the new
-   * length is less than the current length, the first <code>newLength</code>
-   * characters of the old array will be preserved, and the remaining
-   * characters are truncated.
-   *
-   * @param newLength the new length
-   * @throws IndexOutOfBoundsException if the new length is negative
-   *         (while unspecified, this is a StringIndexOutOfBoundsException)
-   * @see #length()
-   */
-  public void setLength(int newLength)
-  {
-    if (newLength < 0)
-      throw new StringIndexOutOfBoundsException(newLength);
-
-    int valueLength = value.length;
-
-    /* Always call ensureCapacity in order to preserve copy-on-write
-       semantics.  */
-    ensureCapacity(newLength);
-
-    if (newLength < valueLength)
-      {
-        /* If the StringBuilder's value just grew, then we know that
-           value is newly allocated and the region between count and
-           newLength is filled with '\0'.  */
-       count = newLength;
-      }
-    else
-      {
-       /* The StringBuilder's value doesn't need to grow.  However,
-          we should clear out any cruft that may exist.  */
-       while (count < newLength)
-          value[count++] = '\0';
-      }
-  }
-
-  /**
-   * Get the character at the specified index.
-   *
-   * @param index the index of the character to get, starting at 0
-   * @return the character at the specified index
-   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
-   *         (while unspecified, this is a StringIndexOutOfBoundsException)
-   */
-  public char charAt(int index)
-  {
-    if (index < 0 || index >= count)
-      throw new StringIndexOutOfBoundsException(index);
-    return value[index];
-  }
-
-  /**
-   * Get the specified array of characters. <code>srcOffset - srcEnd</code>
-   * characters will be copied into the array you pass in.
-   *
-   * @param srcOffset the index to start copying from (inclusive)
-   * @param srcEnd the index to stop copying from (exclusive)
-   * @param dst the array to copy into
-   * @param dstOffset the index to start copying into
-   * @throws NullPointerException if dst is null
-   * @throws IndexOutOfBoundsException if any source or target indices are
-   *         out of range (while unspecified, source problems cause a
-   *         StringIndexOutOfBoundsException, and dest problems cause an
-   *         ArrayIndexOutOfBoundsException)
-   * @see System#arraycopy(Object, int, Object, int, int)
-   */
-  public void getChars(int srcOffset, int srcEnd,
-                      char[] dst, int dstOffset)
-  {
-    if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
-      throw new StringIndexOutOfBoundsException();
-    VMSystem.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
-  }
-
-  /**
-   * Set the character at the specified index.
-   *
-   * @param index the index of the character to set starting at 0
-   * @param ch the value to set that character to
-   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
-   *         (while unspecified, this is a StringIndexOutOfBoundsException)
-   */
-  public void setCharAt(int index, char ch)
-  {
-    if (index < 0 || index >= count)
-      throw new StringIndexOutOfBoundsException(index);
-    // Call ensureCapacity to enforce copy-on-write.
-    ensureCapacity(count);
-    value[index] = ch;
-  }
-
   /**
    * Append the <code>String</code> value of the argument to this
    * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
@@ -316,7 +172,8 @@ public final class StringBuilder
    */
   public StringBuilder append(Object obj)
   {
-    return append(obj == null ? "null" : obj.toString());
+    super.append(obj);
+    return this;
   }
 
   /**
@@ -328,12 +185,7 @@ public final class StringBuilder
    */
   public StringBuilder append(String str)
   {
-    if (str == null)
-      str = "null";
-    int len = str.count;
-    ensureCapacity(count + len);
-    str.getChars(0, len, value, count);
-    count += len;
+    super.append(str);
     return this;
   }
 
@@ -348,15 +200,7 @@ public final class StringBuilder
    */
   public StringBuilder append(StringBuffer stringBuffer)
   {
-    if (stringBuffer == null)
-      return append("null");
-    synchronized (stringBuffer)
-      {
-       int len = stringBuffer.count;
-       ensureCapacity(count + len);
-       VMSystem.arraycopy(stringBuffer.value, 0, value, count, len);
-       count += len;
-      }
+    super.append(stringBuffer);
     return this;
   }
 
@@ -372,7 +216,8 @@ public final class StringBuilder
    */
   public StringBuilder append(char[] data)
   {
-    return append(data, 0, data.length);
+    super.append(data, 0, data.length);
+    return this;
   }
 
   /**
@@ -391,11 +236,7 @@ public final class StringBuilder
    */
   public StringBuilder append(char[] data, int offset, int count)
   {
-    if (offset < 0 || count < 0 || offset > data.length - count)
-      throw new StringIndexOutOfBoundsException();
-    ensureCapacity(this.count + count);
-    VMSystem.arraycopy(data, offset, value, this.count, count);
-    this.count += count;
+    super.append(data, offset, count);
     return this;
   }
 
@@ -410,7 +251,8 @@ public final class StringBuilder
    */
   public StringBuilder append(boolean bool)
   {
-    return append(bool ? "true" : "false");
+    super.append(bool);
+    return this;
   }
 
   /**
@@ -421,8 +263,7 @@ public final class StringBuilder
    */
   public StringBuilder append(char ch)
   {
-    ensureCapacity(count + 1);
-    value[count++] = ch;
+    super.append(ch);
     return this;
   }
 
@@ -435,7 +276,8 @@ public final class StringBuilder
    */
   public StringBuilder append(CharSequence seq)
   {
-    return append(seq, 0, seq.length());
+    super.append(seq, 0, seq.length());
+    return this;
   }
 
   /**
@@ -451,33 +293,7 @@ public final class StringBuilder
   public StringBuilder append(CharSequence seq, int start,
                              int end)
   {
-    if (seq == null)
-      return append("null");
-    if (end - start > 0)
-      {
-       ensureCapacity(count + end - start);
-       for (; start < end; ++start)
-         value[count++] = seq.charAt(start);
-      }
-    return this;
-  }
-
-  /**
-   * Append the code point to this <code>StringBuilder</code>.
-   * This is like #append(char), but will append two characters
-   * if a supplementary code point is given.
-   *
-   * @param code the code point to append
-   * @return this <code>StringBuilder</code>
-   * @see Character#toChars(int, char[], int)
-   * @since 1.5
-   */
-  public synchronized StringBuilder appendCodePoint(int code)
-  {
-    int len = Character.charCount(code);
-    ensureCapacity(count + len);
-    Character.toChars(code, value, count);
-    count += len;
+    super.append(seq, start, end);
     return this;
   }
 
@@ -493,7 +309,8 @@ public final class StringBuilder
   // This is native in libgcj, for efficiency.
   public StringBuilder append(int inum)
   {
-    return append(String.valueOf(inum));
+    super.append(inum);
+    return this;
   }
 
   /**
@@ -507,7 +324,8 @@ public final class StringBuilder
    */
   public StringBuilder append(long lnum)
   {
-    return append(Long.toString(lnum, 10));
+    super.append(lnum);
+    return this;
   }
 
   /**
@@ -521,7 +339,8 @@ public final class StringBuilder
    */
   public StringBuilder append(float fnum)
   {
-    return append(Float.toString(fnum));
+    super.append(fnum);
+    return this;
   }
 
   /**
@@ -535,7 +354,24 @@ public final class StringBuilder
    */
   public StringBuilder append(double dnum)
   {
-    return append(Double.toString(dnum));
+    super.append(dnum);
+    return this;
+  }
+
+  /**
+   * Append the code point to this <code>StringBuilder</code>.
+   * This is like #append(char), but will append two characters
+   * if a supplementary code point is given.
+   *
+   * @param code the code point to append
+   * @return this <code>StringBuilder</code>
+   * @see Character#toChars(int, char[], int)
+   * @since 1.5
+   */
+  public StringBuilder appendCodePoint(int code)
+  {
+    super.appendCodePoint(code);
+    return this;
   }
 
   /**
@@ -550,15 +386,7 @@ public final class StringBuilder
    */
   public StringBuilder delete(int start, int end)
   {
-    if (start < 0 || start > count || start > end)
-      throw new StringIndexOutOfBoundsException(start);
-    if (end > count)
-      end = count;
-    // This will unshare if required.
-    ensureCapacity(count);
-    if (count - end != 0)
-      VMSystem.arraycopy(value, end, value, start, count - end);
-    count -= end - start;
+    super.delete(start, end);
     return this;
   }
 
@@ -571,7 +399,8 @@ public final class StringBuilder
    */
   public StringBuilder deleteCharAt(int index)
   {
-    return delete(index, index + 1);
+    super.deleteCharAt(index);
+    return this;
   }
 
   /**
@@ -589,19 +418,7 @@ public final class StringBuilder
    */
   public StringBuilder replace(int start, int end, String str)
   {
-    if (start < 0 || start > count || start > end)
-      throw new StringIndexOutOfBoundsException(start);
-
-    int len = str.count;
-    // Calculate the difference in 'count' after the replace.
-    int delta = len - (end > count ? count : end) + start;
-    ensureCapacity(count + delta);
-
-    if (delta != 0 && end < count)
-      VMSystem.arraycopy(value, end, value, end + delta, count - end);
-
-    str.getChars(0, len, value, start);
-    count += delta;
+    super.replace(start, end, str);
     return this;
   }
 
@@ -672,13 +489,7 @@ public final class StringBuilder
   public StringBuilder insert(int offset,
                              char[] str, int str_offset, int len)
   {
-    if (offset < 0 || offset > count || len < 0
-        || str_offset < 0 || str_offset > str.length - len)
-      throw new StringIndexOutOfBoundsException();
-    ensureCapacity(count + len);
-    VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
-    VMSystem.arraycopy(str, str_offset, value, offset, len);
-    count += len;
+    super.insert(offset, str, str_offset, len);
     return this;
   }
 
@@ -695,7 +506,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, Object obj)
   {
-    return insert(offset, obj == null ? "null" : obj.toString());
+    super.insert(offset, obj);
+    return this;
   }
 
   /**
@@ -710,15 +522,7 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, String str)
   {
-    if (offset < 0 || offset > count)
-      throw new StringIndexOutOfBoundsException(offset);
-    if (str == null)
-      str = "null";
-    int len = str.count;
-    ensureCapacity(count + len);
-    VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
-    str.getChars(0, len, value, offset);
-    count += len;
+    super.insert(offset, str);
     return this;
   }
 
@@ -732,11 +536,10 @@ public final class StringBuilder
    * @return this <code>StringBuilder</code>
    * @throws IndexOutOfBoundsException if offset is out of bounds
    */
-  public synchronized StringBuilder insert(int offset, CharSequence sequence)
+  public StringBuilder insert(int offset, CharSequence sequence)
   {
-    if (sequence == null)
-      sequence = "null";
-    return insert(offset, sequence, 0, sequence.length());
+    super.insert(offset, sequence);
+    return this;
   }
 
   /**
@@ -752,19 +555,10 @@ public final class StringBuilder
    * @throws IndexOutOfBoundsException if offset, start,
    * or end are out of bounds
    */
-  public synchronized StringBuilder insert(int offset, CharSequence sequence,
-                      int start, int end)
+  public StringBuilder insert(int offset, CharSequence sequence,
+                             int start, int end)
   {
-    if (sequence == null)
-      sequence = "null";
-    if (start < 0 || end < 0 || start > end || end > sequence.length())
-      throw new IndexOutOfBoundsException();
-    int len = end - start;
-    ensureCapacity(count + len);
-    VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
-    for (int i = start; i < end; ++i)
-      value[offset++] = sequence.charAt(i);
-    count += len;
+    super.insert(offset, sequence, start, end);
     return this;
   }
 
@@ -781,7 +575,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, char[] data)
   {
-    return insert(offset, data, 0, data.length);
+    super.insert(offset, data);
+    return this;
   }
 
   /**
@@ -797,7 +592,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, boolean bool)
   {
-    return insert(offset, bool ? "true" : "false");
+    super.insert(offset, bool);
+    return this;
   }
 
   /**
@@ -810,12 +606,7 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, char ch)
   {
-    if (offset < 0 || offset > count)
-      throw new StringIndexOutOfBoundsException(offset);
-    ensureCapacity(count + 1);
-    VMSystem.arraycopy(value, offset, value, offset + 1, count - offset);
-    value[offset] = ch;
-    count++;
+    super.insert(offset, ch);
     return this;
   }
 
@@ -832,7 +623,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, int inum)
   {
-    return insert(offset, String.valueOf(inum));
+    super.insert(offset, inum);
+    return this;
   }
 
   /**
@@ -848,7 +640,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, long lnum)
   {
-    return insert(offset, Long.toString(lnum, 10));
+    super.insert(offset, lnum);
+    return this;
   }
 
   /**
@@ -864,7 +657,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, float fnum)
   {
-    return insert(offset, Float.toString(fnum));
+    super.insert(offset, fnum);
+    return this;
   }
 
   /**
@@ -880,75 +674,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, double dnum)
   {
-    return insert(offset, Double.toString(dnum));
-  }
-
-  /**
-   * Finds the first instance of a substring in this StringBuilder.
-   *
-   * @param str String to find
-   * @return location (base 0) of the String, or -1 if not found
-   * @throws NullPointerException if str is null
-   * @see #indexOf(String, int)
-   */
-  public int indexOf(String str)
-  {
-    return indexOf(str, 0);
-  }
-
-  /**
-   * Finds the first instance of a String in this StringBuilder, starting at
-   * a given index.  If starting index is less than 0, the search starts at
-   * the beginning of this String.  If the starting index is greater than the
-   * length of this String, or the substring is not found, -1 is returned.
-   *
-   * @param str String to find
-   * @param fromIndex index to start the search
-   * @return location (base 0) of the String, or -1 if not found
-   * @throws NullPointerException if str is null
-   */
-  public int indexOf(String str, int fromIndex)
-  {
-    if (fromIndex < 0)
-      fromIndex = 0;
-    int limit = count - str.count;
-    for ( ; fromIndex <= limit; fromIndex++)
-      if (regionMatches(fromIndex, str))
-        return fromIndex;
-    return -1;
-  }
-
-  /**
-   * Finds the last instance of a substring in this StringBuilder.
-   *
-   * @param str String to find
-   * @return location (base 0) of the String, or -1 if not found
-   * @throws NullPointerException if str is null
-   * @see #lastIndexOf(String, int)
-   */
-  public int lastIndexOf(String str)
-  {
-    return lastIndexOf(str, count - str.count);
-  }
-
-  /**
-   * Finds the last instance of a String in this StringBuilder, starting at a
-   * given index.  If starting index is greater than the maximum valid index,
-   * then the search begins at the end of this String.  If the starting index
-   * is less than zero, or the substring is not found, -1 is returned.
-   *
-   * @param str String to find
-   * @param fromIndex index to start the search
-   * @return location (base 0) of the String, or -1 if not found
-   * @throws NullPointerException if str is null
-   */
-  public int lastIndexOf(String str, int fromIndex)
-  {
-    fromIndex = Math.min(fromIndex, count - str.count);
-    for ( ; fromIndex >= 0; fromIndex--)
-      if (regionMatches(fromIndex, str))
-        return fromIndex;
-    return -1;
+    super.insert(offset, dnum);
+    return this;
   }
 
   /**
@@ -959,14 +686,7 @@ public final class StringBuilder
    */
   public StringBuilder reverse()
   {
-    // Call ensureCapacity to enforce copy-on-write.
-    ensureCapacity(count);
-    for (int i = count >> 1, j = count - i; --i >= 0; ++j)
-      {
-        char c = value[i];
-        value[i] = value[j];
-        value[j] = c;
-      }
+    super.reverse();
     return this;
   }
 
@@ -983,87 +703,4 @@ public final class StringBuilder
     return new String(this);
   }
 
-  /**
-   * Predicate which determines if a substring of this matches another String
-   * starting at a specified offset for each String and continuing for a
-   * specified length. This is more efficient than creating a String to call
-   * indexOf on.
-   *
-   * @param toffset index to start comparison at for this String
-   * @param other non-null String to compare to region of this
-   * @return true if regions match, false otherwise
-   * @see #indexOf(String, int)
-   * @see #lastIndexOf(String, int)
-   * @see String#regionMatches(boolean, int, String, int, int)
-   */
-  private boolean regionMatches(int toffset, String other)
-  {
-    int len = other.count;
-    int index = other.offset;
-    while (--len >= 0)
-      if (value[toffset++] != other.value[index++])
-        return false;
-    return true;
-  }
-
-  /**
-   * Get the code point at the specified index.  This is like #charAt(int),
-   * but if the character is the start of a surrogate pair, and the
-   * following character completes the pair, then the corresponding
-   * supplementary code point is returned.
-   * @param index the index of the codepoint to get, starting at 0
-   * @return the codepoint at the specified index
-   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
-   * @since 1.5
-   */
-  public int codePointAt(int index)
-  {
-    return Character.codePointAt(value, index, count);
-  }
-
-    /**
-   * Get the code point before the specified index.  This is like
-   * #codePointAt(int), but checks the characters at <code>index-1</code> and
-   * <code>index-2</code> to see if they form a supplementary code point.
-   * @param index the index just past the codepoint to get, starting at 0
-   * @return the codepoint at the specified index
-   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
-   * @since 1.5
-   */
-  public int codePointBefore(int index)
-  {
-    // Character.codePointBefore() doesn't perform this check.  We
-    // could use the CharSequence overload, but this is just as easy.
-    if (index >= count)
-      throw new IndexOutOfBoundsException();
-    return Character.codePointBefore(value, index, 1);
-  }
-
-  /**
-   * Returns the number of Unicode code points in the specified sub sequence.
-   * Surrogate pairs count as one code point.
-   * @param beginIndex the start of the subarray
-   * @param endIndex the index after the last char in the subarray
-   * @return the number of code points
-   * @throws IndexOutOfBoundsException if beginIndex is less than zero or 
-   * greater than endIndex or if endIndex is greater than the length of this 
-   * StringBuilder
-   */
-  public int codePointCount(int beginIndex,int endIndex)
-  {
-    if (beginIndex < 0 || beginIndex > endIndex || endIndex > count)
-      throw new IndexOutOfBoundsException("invalid indices: " + beginIndex
-                                          + ", " + endIndex);
-    return Character.codePointCount(value, beginIndex, endIndex - beginIndex);
-  }
-
-  public void trimToSize()
-  {
-    if (count < value.length)
-      {
-        char[] newValue = new char[count];
-        VMSystem.arraycopy(value, 0, newValue, 0, count);
-        value = newValue;
-      }
-  }
 }
index 01b380b67b5e09f5807af361e69613439efd318b..82e7261878058ea2e408e1a60b0dbca62951bb37 100644 (file)
@@ -159,7 +159,7 @@ public class Thread implements Runnable
   /** Thread local storage. Package accessible for use by
     * InheritableThreadLocal.
     */
-  WeakIdentityHashMap locals;
+  final ThreadLocalMap locals;
 
   /** The uncaught exception handler.  */
   UncaughtExceptionHandler exceptionHandler;
@@ -367,6 +367,7 @@ public class Thread implements Runnable
     this.name = name.toString();
     this.runnable = target;
     this.stacksize = size;
+    this.locals = new ThreadLocalMap();
     
     synchronized (Thread.class)
       {
@@ -398,6 +399,7 @@ public class Thread implements Runnable
    */
   Thread(VMThread vmThread, String name, int priority, boolean daemon)
   {
+    this.locals = new ThreadLocalMap();
     this.vmThread = vmThread;
     this.runnable = null;
     if (name == null)
@@ -1063,21 +1065,15 @@ public class Thread implements Runnable
   {
     group.removeThread(this);
     vmThread = null;
-    locals = null;
+    locals.clear();
   }
 
   /**
    * Returns the map used by ThreadLocal to store the thread local values.
    */
-  static Map getThreadLocals()
+  static ThreadLocalMap getThreadLocals()
   {
-    Thread thread = currentThread();
-    Map locals = thread.locals;
-    if (locals == null)
-      {
-        locals = thread.locals = new WeakIdentityHashMap();
-      }
-    return locals;
+    return currentThread().locals;
   }
 
   /** 
index 6c4ba176a417c418f9c8108000acd1adf99546a4..14778c65c2fffe96a86d3b1acbe7047753c9866c 100644 (file)
@@ -37,9 +37,6 @@ exception statement from your version. */
 
 package java.lang;
 
-import java.util.Map;
-
-
 /**
  * ThreadLocal objects have a different state associated with every
  * Thread that accesses them. Every access to the ThreadLocal object
@@ -93,13 +90,31 @@ public class ThreadLocal<T>
    * user. Do not expose this to the public. Package visible for use by
    * InheritableThreadLocal
    */
-  static final Object sentinel = new Object();
+  static final Object notFound = new Object();
+
+  /**
+   * The base for the computation of the next hash for a thread local.
+   */
+  private static int nextHashBase = 1;
+
+  /**
+   * Allocate a new hash.
+   */
+  private synchronized int computeNextHash() {
+    return nextHashBase++ * 6709;
+  }
+
+  /**
+   * Hash code computed for ThreadLocalMap
+   */
+  final int fastHash;
 
   /**
    * Creates a ThreadLocal object without associating any value to it yet.
    */
   public ThreadLocal()
   {
+    fastHash = computeNextHash();
   }
 
   /**
@@ -125,16 +140,16 @@ public class ThreadLocal<T>
    */
   public T get()
   {
-    Map<ThreadLocal<T>,T> map = (Map<ThreadLocal<T>,T>) Thread.getThreadLocals();
+    ThreadLocalMap map = Thread.getThreadLocals();
     // Note that we don't have to synchronize, as only this thread will
     // ever modify the map.
-    T value = map.get(this);
-    if (value == null)
+    T value = (T) map.get(this);
+    if (value == notFound)
       {
         value = initialValue();
-        map.put(this, (T) (value == null ? sentinel : value));
+        map.set(this, value);
       }
-    return value == (T) sentinel ? null : value;
+    return value;
   }
 
   /**
@@ -147,10 +162,10 @@ public class ThreadLocal<T>
    */
   public void set(T value)
   {
-    Map map = Thread.getThreadLocals();
+    ThreadLocalMap map = Thread.getThreadLocals();
     // Note that we don't have to synchronize, as only this thread will
     // ever modify the map.
-    map.put(this, value == null ? sentinel : value);
+    map.set(this, value);
   }
 
   /**
@@ -160,7 +175,7 @@ public class ThreadLocal<T>
    */
   public void remove()
   {
-    Map map = Thread.getThreadLocals();
+    ThreadLocalMap map = Thread.getThreadLocals();
     map.remove(this);
   }
 }
diff --git a/libjava/classpath/java/lang/ThreadLocalMap.java b/libjava/classpath/java/lang/ThreadLocalMap.java
new file mode 100644 (file)
index 0000000..7f67b13
--- /dev/null
@@ -0,0 +1,325 @@
+/* ThreadLocal -- a variable with a unique value per thread
+   Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.lang.ref.WeakReference;
+
+/**
+ * ThreadLocalMap is the basic storage for the map of ThreadLocal instance
+ * to a thread's current value.
+ *
+ * Some applications really work out ThreadLocals, leading to this
+ * optimized implementation.
+ */
+final class ThreadLocalMap
+{
+  /**
+   * The log (base 2) of the initial size of the map
+   */
+  private static final int LOG_INITIAL_SIZE = 3;
+
+  /**
+   * The maximum occupancy rate (after which we grow)
+   */
+  private static final float MAX_OCCUPANCY = 0.7f;
+
+  /**
+   * The target occupancy rate.
+   */
+  private static final float TARGET_OCCUPANCY = 0.5f;
+
+  /**
+   * The deleted entry sentinel value.
+   */
+  private static final Entry deletedEntry = new Entry(null);
+
+  /**
+   * Constructor
+   */
+  ThreadLocalMap()
+  {
+    /* Dummy value to ensure fast path can be optimized */
+    entries = new Entry[1];
+    hashMask = 0;
+    count = 0;
+  }
+
+  /**
+   * The map entries
+   */
+  private Entry[] entries;
+
+  /**
+   * Used for start index computation
+   */
+  private int hashMask;
+
+  /**
+   * The number of entries currently in the map
+   */
+  private int count;
+
+  /**
+   * Create or grow the table to the specified size. The size must be a
+   * power of two for the efficient mask/hash computation.
+   *
+   * @param newSize The new table size.
+   */
+  private void newEntryArray(int newSize)
+  {
+    int mask = newSize - 1;
+    Entry[] oldEntries = this.entries;
+    this.entries = new Entry[newSize];
+    this.hashMask = mask;
+
+    /* Copy old entries to new table */
+    count = 0;
+    if (oldEntries != null)
+      {
+        for(Entry e: oldEntries)
+          {
+            if (e != null)
+              {
+                ThreadLocal<?> key = e.get();
+                if (e != deletedEntry && key != null)
+                  {
+                    for(int i = key.fastHash & mask;; i = (i + 1) & mask)
+                      {
+                        if (entries[i] == null)
+                          {
+                            entries[i] = e;
+                            count++;
+                            break;
+                          }
+                      }
+                  }
+              }
+          }
+      }
+  }
+
+  /**
+   * We have run out of space in our locals. We use this as the
+   * trigger to attempt to find unused slots as ThreadLocals have
+   * died. If we recover any slots this way then we do not grow.
+   */
+  private void overflow()
+  {
+    /* First 'actual' use */
+    if (entries.length == 1)
+      {
+        newEntryArray(1 << LOG_INITIAL_SIZE);
+        return;
+      }
+
+    /* Attempt to recover unused slots */
+    int deleted = 0;
+    for(int i=0; i < entries.length; i++)
+      {
+        Entry e = entries[i];
+        if (e != null)
+          {
+            if (e == deletedEntry)
+              {
+                deleted++;
+              }
+            else if (e.get() == null)
+              {
+                entries[i] = deletedEntry;
+                deleted++;
+              }
+          }
+      }
+
+    if ((count-deleted) <= (TARGET_OCCUPANCY * entries.length))
+      {
+        /* We currently rehash by simple reallocating into a same-sized table.
+         * An alternative would be to implement a clever hashing algorithm but
+         * as this happens infrequently this seems preferred */
+        newEntryArray(entries.length);
+        return;
+      }
+
+    /* Double the size */
+    newEntryArray(entries.length << 1);
+  }
+
+  /**
+   * This is the class that is used to refer to a thread local weakly.
+   *
+   * As we want to minimize indirections we extend WeakReference.
+   */
+  static final class Entry extends WeakReference<ThreadLocal<?>> {
+    /**
+     * The value stored in this slot
+     */
+    Object value;
+
+    /**
+     * Constructor
+     */
+    Entry(ThreadLocal<?> threadLocal) {
+      super(threadLocal);
+    }
+  }
+
+  /**
+   * Gets the value associated with the ThreadLocal object for the currently
+   * executing Thread. If this is the first time the current thread has called
+   * get(), and it has not already called set(), the sentinel value is returned.
+   *
+   * @return the value of the variable in this thread, or sentinel if not present.
+   */
+  public Object get(ThreadLocal<?> key)
+  {
+    int mask = this.hashMask;
+    for(int i = key.fastHash & mask;; i = (i + 1) & mask) {
+      Entry e = entries[i];
+      if (e != null) {
+        if (e.get() == key) {
+          return e.value;
+        }
+      } else {
+        return ThreadLocal.sentinel;
+      }
+    }
+  }
+
+  /**
+   * Sets the value associated with the ThreadLocal object for the currently
+   * executing Thread. This overrides any existing value associated with the
+   * current Thread and prevents <code>initialValue()</code> from being
+   * called if this is the first access to this ThreadLocal in this Thread.
+   *
+   * @param value the value to set this thread's view of the variable to
+   */
+  public void set(ThreadLocal<?> key, Object value)
+  {
+    /* Overflow ? */
+    if ((count+1) >= (MAX_OCCUPANCY * entries.length))
+      {
+        overflow();
+      }
+
+    /* Set the entry */
+    int mask = this.hashMask;
+    for(int i = key.fastHash & mask;; i = (i + 1) & mask)
+      {
+        Entry e = entries[i];
+        if (e == null || e == deletedEntry)
+          {
+            /* Create entry */
+            if (e == null) count++;
+            entries[i] = e = new Entry(key);
+            e.value = value;
+            return;
+          }
+        else
+          {
+            ThreadLocal<?> entryKey = e.get();
+            if (entryKey == null)
+              {
+              entries[i] = deletedEntry;
+              }
+            else if (entryKey == key)
+              {
+                /* Update entry */
+                e.value = value;
+                return;
+              }
+          }
+      }
+  }
+
+  /**
+   * Removes the value associated with the ThreadLocal object for the
+   * currently executing Thread.
+   * @since 1.5
+   */
+  public void remove(ThreadLocal<?> key)
+  {
+    int mask = this.hashMask;
+    for(int i = key.fastHash & mask;; i = (i + 1) & mask)
+      {
+        Entry e = entries[i];
+        if (e != null)
+          {
+            ThreadLocal<?> entryKey = e.get();
+            if (entryKey != key)
+              {
+                if (entryKey == null) {
+                  entries[i] = deletedEntry;
+                }
+                continue;
+              }
+            else
+              {
+                /* Remove from the table */
+                entries[i] = deletedEntry;
+              }
+          }
+          return;
+      }
+  }
+
+  /**
+   * Clear out the map. Done once during thread death.
+   */
+  void clear() {
+    entries = null;
+  }
+
+  /**
+   * Inherit all the InheritableThreadLocal instances from the given parent.
+   *
+   * @param parentMap The map to inherit from.
+   */
+  public void inherit(ThreadLocalMap parentMap) {
+    for(Entry e: parentMap.entries)
+      {
+        if (e != null && e != deletedEntry)
+          {
+            ThreadLocal<?> key = e.get();
+            if (key instanceof InheritableThreadLocal)
+              {
+                set(key, ((InheritableThreadLocal)key).childValue(e.value));
+              }
+          }
+      }
+  }
+}
index 72f9e7f520b02963962ee0c35c3fdcaa42ec52c3..f74851f0b1b0a3071f0f962e9faec59a065e0f16 100644 (file)
@@ -39,6 +39,8 @@ package java.lang;
 
 import gnu.classpath.SystemProperties;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.PrintStream;
 import java.io.PrintWriter;
 import java.io.Serializable;
@@ -411,7 +413,7 @@ public class Throwable implements Serializable
   // different threads to get mixed up when written to the same PrintWriter.
   private String stackTraceString()
   {
-    StringBuilder sb = new StringBuilder();
+    CPStringBuilder sb = new CPStringBuilder();
 
     // Main stacktrace
     StackTraceElement[] stack = getStackTrace();
@@ -455,7 +457,7 @@ public class Throwable implements Serializable
 
   // Adds to the given StringBuffer a line containing the name and
   // all stacktrace elements minus the last equal ones.
-  private static void stackTraceStringBuffer(StringBuilder sb, String name,
+  private static void stackTraceStringBuffer(CPStringBuilder sb, String name,
                                        StackTraceElement[] stack, int equal)
   {
     String nl = StaticData.nl;
index fd46a53dc8c7c1d97d94d8f8e57c44cb3fc85bbb..328f81d7933bf8b329e02677e3cb1970a7ba5aaa 100644 (file)
@@ -160,21 +160,72 @@ public class AccessibleObject
     this.flag = flag;
   }
 
+  /**
+   * <p>
+   * Returns the element's annotation for the specified annotation type,
+   * or <code>null</code> if no such annotation exists.
+   * </p>
+   * <p>
+   * <strong>This method must be overridden by subclasses to provide
+   * appropriate behaviour.</strong>
+   * </p>
+   *
+   * @param annotationClass the type of annotation to look for.
+   * @return this element's annotation for the specified type, or
+   *         <code>null</code> if no such annotation exists.
+   * @throws NullPointerException if the annotation class is <code>null</code>.
+   */
   public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
   {
     throw new AssertionError("Subclass must override this method");
   }
 
+  /**
+   * Returns all annotations associated with the element.  If there are
+   * no annotations associated with the element, then a zero-length array
+   * will be returned.  The returned array may be modified by the client
+   * code, but this will have no effect on the annotation content of the
+   * element, and hence no effect on the return value of this method for
+   * future callers.
+   *
+   * @return this element's annotations.
+   */
   public Annotation[] getAnnotations()
   {
     return getDeclaredAnnotations();
   }
 
+  /**
+   * <p>
+   * Returns all annotations directly defined by the element.  If there are
+   * no annotations directly associated with the element, then a zero-length
+   * array will be returned.  The returned array may be modified by the client
+   * code, but this will have no effect on the annotation content of this
+   * class, and hence no effect on the return value of this method for
+   * future callers.
+   * </p>
+   * <p>
+   * <strong>This method must be overridden by subclasses to provide
+   * appropriate behaviour.</strong>
+   * </p>
+   *
+   * @return the annotations directly defined by the element.
+   * @since 1.5
+   */
   public Annotation[] getDeclaredAnnotations()
   {
     throw new AssertionError("Subclass must override this method");
   }
 
+  /**
+   * Returns true if an annotation for the specified type is associated
+   * with the element.  This is primarily a short-hand for using marker
+   * annotations.
+   *
+   * @param annotationClass the type of annotation to look for.
+   * @return true if an annotation exists for the specified type.
+   * @since 1.5
+   */
   public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
   {
     return getAnnotation(annotationClass) != null;
diff --git a/libjava/classpath/java/lang/reflect/Constructor.java b/libjava/classpath/java/lang/reflect/Constructor.java
new file mode 100644 (file)
index 0000000..d9b7e83
--- /dev/null
@@ -0,0 +1,453 @@
+/* java.lang.reflect.Constructor - reflection of Java constructors
+   Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import gnu.java.lang.ClassHelper;
+import gnu.java.lang.CPStringBuilder;
+
+import gnu.java.lang.reflect.MethodSignatureParser;
+
+import java.lang.annotation.Annotation;
+
+/**
+ * The Constructor class represents a constructor of a class. It also allows
+ * dynamic creation of an object, via reflection. Invocation on Constructor
+ * objects knows how to do widening conversions, but throws
+ * {@link IllegalArgumentException} if a narrowing conversion would be
+ * necessary. You can query for information on this Constructor regardless
+ * of location, but construction access may be limited by Java language
+ * access controls. If you can't do it in the compiler, you can't normally
+ * do it here either.<p>
+ *
+ * <B>Note:</B> This class returns and accepts types as Classes, even
+ * primitive types; there are Class types defined that represent each
+ * different primitive type.  They are <code>java.lang.Boolean.TYPE,
+ * java.lang.Byte.TYPE,</code>, also available as <code>boolean.class,
+ * byte.class</code>, etc.  These are not to be confused with the
+ * classes <code>java.lang.Boolean, java.lang.Byte</code>, etc., which are
+ * real classes.<p>
+ *
+ * Also note that this is not a serializable class.  It is entirely feasible
+ * to make it serializable using the Externalizable interface, but this is
+ * on Sun, not me.
+ *
+ * @author John Keiser
+ * @author Eric Blake <ebb9@email.byu.edu>
+ * @see Member
+ * @see Class
+ * @see java.lang.Class#getConstructor(Class[])
+ * @see java.lang.Class#getDeclaredConstructor(Class[])
+ * @see java.lang.Class#getConstructors()
+ * @see java.lang.Class#getDeclaredConstructors()
+ * @since 1.1
+ * @status updated to 1.4
+ */
+public final class Constructor<T>
+  extends AccessibleObject
+  implements GenericDeclaration, Member
+{  
+  private static final int CONSTRUCTOR_MODIFIERS
+    = Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC;
+
+  private MethodSignatureParser p;
+
+  VMConstructor cons;
+
+  /**
+   * This class is uninstantiable outside this package.
+   */
+  Constructor(VMConstructor cons)
+  {
+    this.cons = cons;
+    cons.cons = this;
+  }
+
+  private Constructor()
+  {
+  }
+
+  /**
+   * Gets the class that declared this constructor.
+   * @return the class that declared this member
+   */
+  public Class<T> getDeclaringClass()
+  {
+    // Inescapable as the VM layer is 1.4 based. 
+    @SuppressWarnings("unchecked")
+      Class<T> declClass = (Class<T>) cons.getDeclaringClass();
+    return declClass;
+  }
+
+  /**
+   * Gets the name of this constructor (the non-qualified name of the class
+   * it was declared in).
+   * @return the name of this constructor
+   */
+  public String getName()
+  {
+    return cons.getDeclaringClass().getName();
+  }
+
+  /**
+   * Gets the modifiers this constructor uses.  Use the <code>Modifier</code>
+   * class to interpret the values. A constructor can only have a subset of the
+   * following modifiers: public, private, protected.
+   *
+   * @return an integer representing the modifiers to this Member
+   * @see Modifier
+   */
+  public int getModifiers()
+  {
+    return cons.getModifiersInternal() & CONSTRUCTOR_MODIFIERS;
+  }
+
+  /**
+   * Return true if this constructor is synthetic, false otherwise.
+   * A synthetic member is one which is created by the compiler,
+   * and which does not appear in the user's source code.
+   * @since 1.5
+   */
+  public boolean isSynthetic()
+  {
+    return (cons.getModifiersInternal() & Modifier.SYNTHETIC) != 0;
+  }
+
+  /**
+   * Return true if this is a varargs constructor, that is if
+   * the constructor takes a variable number of arguments.
+   * @since 1.5
+   */
+  public boolean isVarArgs()
+  {
+    return (cons.getModifiersInternal() & Modifier.VARARGS) != 0;
+  }
+
+  /**
+   * Get the parameter list for this constructor, in declaration order. If the
+   * constructor takes no parameters, returns a 0-length array (not null).
+   *
+   * @return a list of the types of the constructor's parameters
+   */
+  public Class<?>[] getParameterTypes()
+  {
+    return (Class<?>[]) cons.getParameterTypes();
+  }
+
+  /**
+   * Get the exception types this constructor says it throws, in no particular
+   * order. If the constructor has no throws clause, returns a 0-length array
+   * (not null).
+   *
+   * @return a list of the types in the constructor's throws clause
+   */
+  public Class<?>[] getExceptionTypes()
+  {
+    return (Class<?>[]) cons.getExceptionTypes();
+  }
+
+  /**
+   * Compare two objects to see if they are semantically equivalent.
+   * Two Constructors are semantically equivalent if they have the same
+   * declaring class and the same parameter list.  This ignores different
+   * exception clauses, but since you can't create a Method except through the
+   * VM, this is just the == relation.
+   *
+   * @param o the object to compare to
+   * @return <code>true</code> if they are equal; <code>false</code> if not.
+   */
+  public boolean equals(Object o)
+  {
+    return cons.equals(o);
+  }
+
+  /**
+   * Get the hash code for the Constructor. The Constructor hash code is the
+   * hash code of the declaring class's name.
+   *
+   * @return the hash code for the object
+   */
+  public int hashCode()
+  {
+    return getName().hashCode();
+  }
+
+  /**
+   * Get a String representation of the Constructor. A Constructor's String
+   * representation is "&lt;modifier&gt; &lt;classname&gt;(&lt;paramtypes&gt;)
+   * throws &lt;exceptions&gt;", where everything after ')' is omitted if
+   * there are no exceptions.<br> Example:
+   * <code>public java.io.FileInputStream(java.lang.Runnable)
+   * throws java.io.FileNotFoundException</code>
+   *
+   * @return the String representation of the Constructor
+   */
+  public String toString()
+  {
+    // 128 is a reasonable buffer initial size for constructor
+    CPStringBuilder sb = new CPStringBuilder(128);
+    Modifier.toString(getModifiers(), sb).append(' ');
+    sb.append(getDeclaringClass().getName()).append('(');
+    Class[] c = getParameterTypes();
+    if (c.length > 0)
+      {
+        sb.append(ClassHelper.getUserName(c[0]));
+        for (int i = 1; i < c.length; i++)
+          sb.append(',').append(ClassHelper.getUserName(c[i]));
+      }
+    sb.append(')');
+    c = getExceptionTypes();
+    if (c.length > 0)
+      {
+        sb.append(" throws ").append(c[0].getName());
+        for (int i = 1; i < c.length; i++)
+          sb.append(',').append(c[i].getName());
+      }
+    return sb.toString();
+  }
+
+  static <X extends GenericDeclaration>
+  void addTypeParameters(CPStringBuilder sb, TypeVariable<X>[] typeArgs)
+  {
+    if (typeArgs.length == 0)
+      return;
+    sb.append('<');
+    for (int i = 0; i < typeArgs.length; ++i)
+      {
+        if (i > 0)
+          sb.append(',');
+        sb.append(typeArgs[i]);
+      }
+    sb.append("> ");
+  }
+
+  public String toGenericString()
+  {
+    CPStringBuilder sb = new CPStringBuilder(128);
+    Modifier.toString(getModifiers(), sb).append(' ');
+    addTypeParameters(sb, getTypeParameters());
+    sb.append(getDeclaringClass().getName()).append('(');
+    Type[] types = getGenericParameterTypes();
+    if (types.length > 0)
+      {
+        sb.append(types[0]);
+        for (int i = 1; i < types.length; ++i)
+          sb.append(',').append(types[i]);
+      }
+    sb.append(')');
+    types = getGenericExceptionTypes();
+    if (types.length > 0)
+      {
+        sb.append(" throws ").append(types[0]);
+        for (int i = 1; i < types.length; i++)
+          sb.append(',').append(types[i]);
+      }
+    return sb.toString();
+  }
+
+  /**
+   * Create a new instance by invoking the constructor. Arguments are
+   * automatically unwrapped and widened, if needed.<p>
+   *
+   * If this class is abstract, you will get an
+   * <code>InstantiationException</code>. If the constructor takes 0
+   * arguments, you may use null or a 0-length array for <code>args</code>.<p>
+   *
+   * If this Constructor enforces access control, your runtime context is
+   * evaluated, and you may have an <code>IllegalAccessException</code> if
+   * you could not create this object in similar compiled code. If the class
+   * is uninitialized, you trigger class initialization, which may end in a
+   * <code>ExceptionInInitializerError</code>.<p>
+   *
+   * Then, the constructor is invoked. If it completes normally, the return
+   * value will be the new object. If it completes abruptly, the exception is
+   * wrapped in an <code>InvocationTargetException</code>.
+   *
+   * @param args the arguments to the constructor
+   * @return the newly created object
+   * @throws IllegalAccessException if the constructor could not normally be
+   *         called by the Java code (i.e. it is not public)
+   * @throws IllegalArgumentException if the number of arguments is incorrect;
+   *         or if the arguments types are wrong even with a widening
+   *         conversion
+   * @throws InstantiationException if the class is abstract
+   * @throws InvocationTargetException if the constructor throws an exception
+   * @throws ExceptionInInitializerError if construction triggered class
+   *         initialization, which then failed
+   */
+  public T newInstance(Object... args)
+    throws InstantiationException, IllegalAccessException,
+           InvocationTargetException
+  {
+    // Inescapable as the VM layer is 1.4 based. 
+    @SuppressWarnings("unchecked")
+      T ins = (T) cons.construct(args);
+    return ins;
+  }
+
+  /**
+   * Returns an array of <code>TypeVariable</code> objects that represents
+   * the type variables declared by this constructor, in declaration order.
+   * An array of size zero is returned if this constructor has no type
+   * variables.
+   *
+   * @return the type variables associated with this constructor.
+   * @throws GenericSignatureFormatError if the generic signature does
+   *         not conform to the format specified in the Virtual Machine
+   *         specification, version 3.
+   * @since 1.5
+   */
+  public TypeVariable<Constructor<T>>[] getTypeParameters()
+  {
+    if (p == null)
+      {
+       String sig = cons.getSignature();
+       if (sig == null)
+         return new TypeVariable[0];
+       p = new MethodSignatureParser(this, sig);
+      }
+    return p.getTypeParameters();
+  }
+
+  /**
+   * Returns an array of <code>Type</code> objects that represents
+   * the exception types declared by this constructor, in declaration order.
+   * An array of size zero is returned if this constructor declares no
+   * exceptions.
+   *
+   * @return the exception types declared by this constructor. 
+   * @throws GenericSignatureFormatError if the generic signature does
+   *         not conform to the format specified in the Virtual Machine
+   *         specification, version 3.
+   * @since 1.5
+   */
+  public Type[] getGenericExceptionTypes()
+  {
+    if (p == null)
+      {
+       String sig = cons.getSignature();
+       if (sig == null)
+         return getExceptionTypes();
+       p = new MethodSignatureParser(this, sig);
+      }
+    return p.getGenericExceptionTypes();
+  }
+
+  /**
+   * Returns an array of <code>Type</code> objects that represents
+   * the parameter list for this constructor, in declaration order.
+   * An array of size zero is returned if this constructor takes no
+   * parameters.
+   *
+   * @return a list of the types of the constructor's parameters
+   * @throws GenericSignatureFormatError if the generic signature does
+   *         not conform to the format specified in the Virtual Machine
+   *         specification, version 3.
+   * @since 1.5
+   */
+  public Type[] getGenericParameterTypes()
+  {
+    if (p == null)
+      {
+       String sig = cons.getSignature();
+       if (sig == null)
+         return getParameterTypes();
+       p = new MethodSignatureParser(this, sig);
+      }
+    return p.getGenericParameterTypes();
+  }
+
+  /**
+   * <p>
+   * Return an array of arrays representing the annotations on each
+   * of the constructor's parameters.  The outer array is aligned against
+   * the parameters of the constructors and is thus equal in length to
+   * the number of parameters (thus having a length zero if there are none).
+   * Each array element in the outer array contains an inner array which
+   * holds the annotations.  This array has a length of zero if the parameter
+   * has no annotations.
+   * </p>
+   * <p>
+   * The returned annotations are serialized.  Changing the annotations has
+   * no affect on the return value of future calls to this method.
+   * </p>
+   * 
+   * @return an array of arrays which represents the annotations used on the
+   *         parameters of this constructor.  The order of the array elements
+   *         matches the declaration order of the parameters.
+   * @since 1.5
+   */
+  public Annotation[][] getParameterAnnotations()
+  {
+    return cons.getParameterAnnotations();
+  }
+
+  /**
+   * Returns the element's annotation for the specified annotation type,
+   * or <code>null</code> if no such annotation exists.
+   *
+   * @param annotationClass the type of annotation to look for.
+   * @return this element's annotation for the specified type, or
+   *         <code>null</code> if no such annotation exists.
+   * @throws NullPointerException if the annotation class is <code>null</code>.
+   */
+  public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
+  {
+    // Inescapable as the VM layer is 1.4 based. 
+    @SuppressWarnings("unchecked")
+      T ann = (T) cons.getAnnotation(annotationClass);
+    return ann;
+  }
+
+  /**
+   * Returns all annotations directly defined by the element.  If there are
+   * no annotations directly associated with the element, then a zero-length
+   * array will be returned.  The returned array may be modified by the client
+   * code, but this will have no effect on the annotation content of this
+   * class, and hence no effect on the return value of this method for
+   * future callers.
+   *
+   * @return the annotations directly defined by the element.
+   * @since 1.5
+   */
+  public Annotation[] getDeclaredAnnotations()
+  {
+    return cons.getDeclaredAnnotations();
+  }
+
+}
diff --git a/libjava/classpath/java/lang/reflect/Field.java b/libjava/classpath/java/lang/reflect/Field.java
new file mode 100644 (file)
index 0000000..b9d9288
--- /dev/null
@@ -0,0 +1,735 @@
+/* java.lang.reflect.Field - reflection of Java fields
+   Copyright (C) 1998, 2001, 2005, 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import gnu.java.lang.ClassHelper;
+import gnu.java.lang.CPStringBuilder;
+
+import gnu.java.lang.reflect.FieldSignatureParser;
+
+import java.lang.annotation.Annotation;
+
+/**
+ * The Field class represents a member variable of a class. It also allows
+ * dynamic access to a member, via reflection. This works for both
+ * static and instance fields. Operations on Field objects know how to
+ * do widening conversions, but throw {@link IllegalArgumentException} if
+ * a narrowing conversion would be necessary. You can query for information
+ * on this Field regardless of location, but get and set access may be limited
+ * by Java language access controls. If you can't do it in the compiler, you
+ * can't normally do it here either.<p>
+ *
+ * <B>Note:</B> This class returns and accepts types as Classes, even
+ * primitive types; there are Class types defined that represent each
+ * different primitive type.  They are <code>java.lang.Boolean.TYPE,
+ * java.lang.Byte.TYPE,</code>, also available as <code>boolean.class,
+ * byte.class</code>, etc.  These are not to be confused with the
+ * classes <code>java.lang.Boolean, java.lang.Byte</code>, etc., which are
+ * real classes.<p>
+ *
+ * Also note that this is not a serializable class.  It is entirely feasible
+ * to make it serializable using the Externalizable interface, but this is
+ * on Sun, not me.
+ *
+ * @author John Keiser
+ * @author Eric Blake <ebb9@email.byu.edu>
+ * @see Member
+ * @see Class
+ * @see Class#getField(String)
+ * @see Class#getDeclaredField(String)
+ * @see Class#getFields()
+ * @see Class#getDeclaredFields()
+ * @since 1.1
+ * @status updated to 1.4
+ */
+public final class Field
+extends AccessibleObject implements Member
+{
+  static final int FIELD_MODIFIERS
+    = Modifier.FINAL | Modifier.PRIVATE | Modifier.PROTECTED
+      | Modifier.PUBLIC | Modifier.STATIC | Modifier.TRANSIENT
+      | Modifier.VOLATILE;
+
+  private FieldSignatureParser p;
+
+  VMField f;
+
+  /**
+   * This class is uninstantiable outside the package.
+   */
+  Field(VMField f)
+  {
+    this.f = f;
+    f.f = this;
+  }
+
+  /**
+   * Gets the class that declared this field, or the class where this field
+   * is a non-inherited member.
+   * @return the class that declared this member
+   */
+  public Class<?> getDeclaringClass()
+  {
+    return (Class<?>) f.getDeclaringClass();
+  }
+
+  /**
+   * Gets the name of this field.
+   * @return the name of this field
+   */
+  public String getName()
+  {
+    return f.getName();
+  }
+
+  /**
+   * Gets the modifiers this field uses.  Use the <code>Modifier</code>
+   * class to interpret the values.  A field can only have a subset of the
+   * following modifiers: public, private, protected, static, final,
+   * transient, and volatile.
+   *
+   * @return an integer representing the modifiers to this Member
+   * @see Modifier
+   */
+  public int getModifiers()
+  {
+    return f.getModifiersInternal() & FIELD_MODIFIERS;
+  }
+
+  /**
+   * Return true if this field is synthetic, false otherwise.
+   * @since 1.5
+   */
+  public boolean isSynthetic()
+  {
+    return (f.getModifiersInternal() & Modifier.SYNTHETIC) != 0;
+  }
+
+  /**
+   * Return true if this field represents an enum constant,
+   * false otherwise.
+   * @since 1.5
+   */
+  public boolean isEnumConstant()
+  {
+    return (f.getModifiersInternal() & Modifier.ENUM) != 0;
+  }
+
+  /**
+   * Gets the type of this field.
+   * @return the type of this field
+   */
+  public Class<?> getType()
+  {
+    return f.getType();
+  }
+
+  /**
+   * Compare two objects to see if they are semantically equivalent.
+   * Two Fields are semantically equivalent if they have the same declaring
+   * class, name, and type. Since you can't creat a Field except through
+   * the VM, this is just the == relation.
+   *
+   * @param o the object to compare to
+   * @return <code>true</code> if they are equal; <code>false</code> if not
+   */
+  public boolean equals(Object o)
+  {
+    return f.equals(o);
+  }
+
+  /**
+   * Get the hash code for the Field. The Field hash code is the hash code
+   * of its name XOR'd with the hash code of its class name.
+   *
+   * @return the hash code for the object.
+   */
+  public int hashCode()
+  {
+    return f.getDeclaringClass().getName().hashCode() ^ f.getName().hashCode();
+  }
+
+  /**
+   * Get a String representation of the Field. A Field's String
+   * representation is "&lt;modifiers&gt; &lt;type&gt;
+   * &lt;class&gt;.&lt;fieldname&gt;".<br> Example:
+   * <code>public transient boolean gnu.parse.Parser.parseComplete</code>
+   *
+   * @return the String representation of the Field
+   */
+  public String toString()
+  {
+    // 64 is a reasonable buffer initial size for field
+    CPStringBuilder sb = new CPStringBuilder(64);
+    Modifier.toString(getModifiers(), sb).append(' ');
+    sb.append(ClassHelper.getUserName(getType())).append(' ');
+    sb.append(getDeclaringClass().getName()).append('.');
+    sb.append(getName());
+    return sb.toString();
+  }
+
+  public String toGenericString()
+  {
+    CPStringBuilder sb = new CPStringBuilder(64);
+    Modifier.toString(getModifiers(), sb).append(' ');
+    sb.append(getGenericType()).append(' ');
+    sb.append(getDeclaringClass().getName()).append('.');
+    sb.append(getName());
+    return sb.toString();
+  }
+
+  /**
+   * Get the value of this Field.  If it is primitive, it will be wrapped
+   * in the appropriate wrapper type (boolean = java.lang.Boolean).<p>
+   *
+   * If the field is static, <code>o</code> will be ignored. Otherwise, if
+   * <code>o</code> is null, you get a <code>NullPointerException</code>,
+   * and if it is incompatible with the declaring class of the field, you
+   * get an <code>IllegalArgumentException</code>.<p>
+   *
+   * Next, if this Field enforces access control, your runtime context is
+   * evaluated, and you may have an <code>IllegalAccessException</code> if
+   * you could not access this field in similar compiled code. If the field
+   * is static, and its class is uninitialized, you trigger class
+   * initialization, which may end in a
+   * <code>ExceptionInInitializerError</code>.<p>
+   *
+   * Finally, the field is accessed, and primitives are wrapped (but not
+   * necessarily in new objects). This method accesses the field of the
+   * declaring class, even if the instance passed in belongs to a subclass
+   * which declares another field to hide this one.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if <code>o</code> is not an instance of
+   *         the class or interface declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #getBoolean(Object)
+   * @see #getByte(Object)
+   * @see #getChar(Object)
+   * @see #getShort(Object)
+   * @see #getInt(Object)
+   * @see #getLong(Object)
+   * @see #getFloat(Object)
+   * @see #getDouble(Object)
+   */
+  public Object get(Object o)
+    throws IllegalAccessException
+  {
+    return f.get(o);
+  }
+
+  /**
+   * Get the value of this boolean Field. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a boolean field of
+   *         <code>o</code>, or if <code>o</code> is not an instance of the
+   *         declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  public boolean getBoolean(Object o)
+    throws IllegalAccessException
+  {
+    return f.getBoolean(o);
+  }
+
+  /**
+   * Get the value of this byte Field. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte field of
+   *         <code>o</code>, or if <code>o</code> is not an instance of the
+   *         declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  public byte getByte(Object o)
+    throws IllegalAccessException
+  {
+    return f.getByte(o);
+  }
+
+  /**
+   * Get the value of this Field as a char. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a char field of
+   *         <code>o</code>, or if <code>o</code> is not an instance
+   *         of the declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  public char getChar(Object o)
+    throws IllegalAccessException
+  {
+    return f.getChar(o);
+  }
+
+  /**
+   * Get the value of this Field as a short. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte or short
+   *         field of <code>o</code>, or if <code>o</code> is not an instance
+   *         of the declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  public short getShort(Object o)
+    throws IllegalAccessException
+  {
+    return f.getShort(o);
+  }
+
+  /**
+   * Get the value of this Field as an int. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte, short, char, or
+   *         int field of <code>o</code>, or if <code>o</code> is not an
+   *         instance of the declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  public int getInt(Object o)
+    throws IllegalAccessException
+  {
+    return f.getInt(o);
+  }
+
+  /**
+   * Get the value of this Field as a long. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte, short, char, int,
+   *         or long field of <code>o</code>, or if <code>o</code> is not an
+   *         instance of the declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  public long getLong(Object o)
+    throws IllegalAccessException
+  {
+    return f.getLong(o);
+  }
+
+  /**
+   * Get the value of this Field as a float. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte, short, char, int,
+   *         long, or float field of <code>o</code>, or if <code>o</code> is
+   *         not an instance of the declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  public float getFloat(Object o)
+    throws IllegalAccessException
+  {
+    return f.getFloat(o);
+  }
+
+  /**
+   * Get the value of this Field as a double. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte, short, char, int,
+   *         long, float, or double field of <code>o</code>, or if
+   *         <code>o</code> is not an instance of the declaring class of this
+   *         field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  public double getDouble(Object o)
+    throws IllegalAccessException
+  {
+    return f.getDouble(o);
+  }
+
+  /**
+   * Set the value of this Field.  If it is a primitive field, the value
+   * will be unwrapped from the passed object (boolean = java.lang.Boolean).<p>
+   *
+   * If the field is static, <code>o</code> will be ignored. Otherwise, if
+   * <code>o</code> is null, you get a <code>NullPointerException</code>,
+   * and if it is incompatible with the declaring class of the field, you
+   * get an <code>IllegalArgumentException</code>.<p>
+   *
+   * Next, if this Field enforces access control, your runtime context is
+   * evaluated, and you may have an <code>IllegalAccessException</code> if
+   * you could not access this field in similar compiled code. This also
+   * occurs whether or not there is access control if the field is final.
+   * If the field is primitive, and unwrapping your argument fails, you will
+   * get an <code>IllegalArgumentException</code>; likewise, this error
+   * happens if <code>value</code> cannot be cast to the correct object type.
+   * If the field is static, and its class is uninitialized, you trigger class
+   * initialization, which may end in a
+   * <code>ExceptionInInitializerError</code>.<p>
+   *
+   * Finally, the field is set with the widened value. This method accesses
+   * the field of the declaring class, even if the instance passed in belongs
+   * to a subclass which declares another field to hide this one.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if <code>value</code> cannot be
+   *         converted by a widening conversion to the underlying type of
+   *         the Field, or if <code>o</code> is not an instance of the class
+   *         declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #setBoolean(Object, boolean)
+   * @see #setByte(Object, byte)
+   * @see #setChar(Object, char)
+   * @see #setShort(Object, short)
+   * @see #setInt(Object, int)
+   * @see #setLong(Object, long)
+   * @see #setFloat(Object, float)
+   * @see #setDouble(Object, double)
+   */
+  public void set(Object o, Object value)
+    throws IllegalAccessException
+  {
+    f.set(o, value);
+  }
+
+  /**
+   * Set this boolean Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a boolean field, or if
+   *         <code>o</code> is not an instance of the class declaring this
+   *         field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  public void setBoolean(Object o, boolean value)
+    throws IllegalAccessException
+  {
+    f.setBoolean(o, value);
+  }
+
+  /**
+   * Set this byte Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte, short, int, long,
+   *         float, or double field, or if <code>o</code> is not an instance
+   *         of the class declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  public void setByte(Object o, byte value)
+    throws IllegalAccessException
+  {
+    f.setByte(o, value);
+  }
+
+  /**
+   * Set this char Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a char, int, long,
+   *         float, or double field, or if <code>o</code> is not an instance
+   *         of the class declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  public void setChar(Object o, char value)
+    throws IllegalAccessException
+  {
+    f.setChar(o, value);
+  }
+
+  /**
+   * Set this short Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a short, int, long,
+   *         float, or double field, or if <code>o</code> is not an instance
+   *         of the class declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  public void setShort(Object o, short value)
+    throws IllegalAccessException
+  {
+    f.setShort(o, value);
+  }
+
+  /**
+   * Set this int Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not an int, long, float, or
+   *         double field, or if <code>o</code> is not an instance of the
+   *         class declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  public void setInt(Object o, int value)
+    throws IllegalAccessException
+  {
+    f.setInt(o, value);
+  }
+
+  /**
+   * Set this long Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a long, float, or double
+   *         field, or if <code>o</code> is not an instance of the class
+   *         declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  public void setLong(Object o, long value)
+    throws IllegalAccessException
+  {
+    f.setLong(o, value);
+  }
+
+  /**
+   * Set this float Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a float or long field, or
+   *         if <code>o</code> is not an instance of the class declaring this
+   *         field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  public void setFloat(Object o, float value)
+    throws IllegalAccessException
+  {
+    f.setFloat(o, value);
+  }
+
+  /**
+   * Set this double Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a double field, or if
+   *         <code>o</code> is not an instance of the class declaring this
+   *         field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  public void setDouble(Object o, double value)
+    throws IllegalAccessException
+  {
+    f.setDouble(o, value);
+  }
+
+  /**
+   * Return the generic type of the field. If the field type is not a generic
+   * type, the method returns the same as <code>getType()</code>.
+   *
+   * @throws GenericSignatureFormatError if the generic signature does
+   *         not conform to the format specified in the Virtual Machine
+   *         specification, version 3.
+   * @since 1.5
+   */
+  public Type getGenericType()
+  {
+    if (p == null)
+      {
+       String signature = f.getSignature();
+       if (signature == null)
+         return getType();
+       p = new FieldSignatureParser(getDeclaringClass(),
+                                    signature);
+      }
+    return p.getFieldType();
+  }
+
+  /**
+   * Returns the element's annotation for the specified annotation type,
+   * or <code>null</code> if no such annotation exists.
+   *
+   * @param annotationClass the type of annotation to look for.
+   * @return this element's annotation for the specified type, or
+   *         <code>null</code> if no such annotation exists.
+   * @throws NullPointerException if the annotation class is <code>null</code>.
+   */
+  public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
+  {
+    // Inescapable as the VM layer is 1.4 based. T will erase to Annotation anyway. 
+    @SuppressWarnings("unchecked") T ann = (T) f.getAnnotation(annotationClass);
+    return ann;
+  }
+
+  /**
+   * Returns all annotations directly defined by the element.  If there are
+   * no annotations directly associated with the element, then a zero-length
+   * array will be returned.  The returned array may be modified by the client
+   * code, but this will have no effect on the annotation content of this
+   * class, and hence no effect on the return value of this method for
+   * future callers.
+   *
+   * @return the annotations directly defined by the element.
+   * @since 1.5
+   */
+  public Annotation[] getDeclaredAnnotations()
+  {
+    return f.getDeclaredAnnotations();
+  }
+
+}
diff --git a/libjava/classpath/java/lang/reflect/Method.java b/libjava/classpath/java/lang/reflect/Method.java
new file mode 100644 (file)
index 0000000..0a532dd
--- /dev/null
@@ -0,0 +1,497 @@
+/* java.lang.reflect.Method - reflection of Java methods
+   Copyright (C) 1998, 2001, 2002, 2005, 2007, 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import gnu.java.lang.ClassHelper;
+import gnu.java.lang.CPStringBuilder;
+
+import gnu.java.lang.reflect.MethodSignatureParser;
+
+import java.lang.annotation.Annotation;
+
+/**
+ * The Method class represents a member method of a class. It also allows
+ * dynamic invocation, via reflection. This works for both static and
+ * instance methods. Invocation on Method objects knows how to do
+ * widening conversions, but throws {@link IllegalArgumentException} if
+ * a narrowing conversion would be necessary. You can query for information
+ * on this Method regardless of location, but invocation access may be limited
+ * by Java language access controls. If you can't do it in the compiler, you
+ * can't normally do it here either.<p>
+ *
+ * <B>Note:</B> This class returns and accepts types as Classes, even
+ * primitive types; there are Class types defined that represent each
+ * different primitive type.  They are <code>java.lang.Boolean.TYPE,
+ * java.lang.Byte.TYPE,</code>, also available as <code>boolean.class,
+ * byte.class</code>, etc.  These are not to be confused with the
+ * classes <code>java.lang.Boolean, java.lang.Byte</code>, etc., which are
+ * real classes.<p>
+ *
+ * Also note that this is not a serializable class.  It is entirely feasible
+ * to make it serializable using the Externalizable interface, but this is
+ * on Sun, not me.
+ *
+ * @author John Keiser
+ * @author Eric Blake <ebb9@email.byu.edu>
+ * @see Member
+ * @see Class
+ * @see java.lang.Class#getMethod(String,Class[])
+ * @see java.lang.Class#getDeclaredMethod(String,Class[])
+ * @see java.lang.Class#getMethods()
+ * @see java.lang.Class#getDeclaredMethods()
+ * @since 1.1
+ * @status updated to 1.4
+ */
+public final class Method
+extends AccessibleObject implements Member, GenericDeclaration
+{
+  private static final int METHOD_MODIFIERS
+    = Modifier.ABSTRACT | Modifier.FINAL | Modifier.NATIVE
+      | Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC
+      | Modifier.STATIC | Modifier.STRICT | Modifier.SYNCHRONIZED;
+
+  private MethodSignatureParser p;
+
+  VMMethod m;
+
+  /**
+   * This class is uninstantiable outside this package.
+   */
+  Method(VMMethod m)
+  {
+    this.m = m;
+    m.m = this;
+  }
+
+  /**
+   * Gets the class that declared this method, or the class where this method
+   * is a non-inherited member.
+   * @return the class that declared this member
+   */
+  public Class<?> getDeclaringClass()
+  {
+    return (Class<?>) m.getDeclaringClass();
+  }
+
+  /**
+   * Gets the name of this method.
+   * @return the name of this method
+   */
+  public String getName()
+  {
+    return m.getName();
+  }
+
+  /**
+   * Gets the modifiers this method uses.  Use the <code>Modifier</code>
+   * class to interpret the values.  A method can only have a subset of the
+   * following modifiers: public, private, protected, abstract, static,
+   * final, synchronized, native, and strictfp.
+   *
+   * @return an integer representing the modifiers to this Member
+   * @see Modifier
+   */
+  public int getModifiers()
+  {
+    return m.getModifiersInternal() & METHOD_MODIFIERS;
+  }
+
+  /**
+   * Return true if this method is a bridge method.  A bridge method
+   * is generated by the compiler in some situations involving
+   * generics and inheritance.
+   * @since 1.5
+   */
+  public boolean isBridge()
+  {
+    return (m.getModifiersInternal() & Modifier.BRIDGE) != 0;
+  }
+
+  /**
+   * Return true if this method is synthetic, false otherwise.
+   * @since 1.5
+   */
+  public boolean isSynthetic()
+  {
+    return (m.getModifiersInternal() & Modifier.SYNTHETIC) != 0;
+  }
+
+  /**
+   * Return true if this is a varargs method, that is if
+   * the method takes a variable number of arguments.
+   * @since 1.5
+   */
+  public boolean isVarArgs()
+  {
+    return (m.getModifiersInternal() & Modifier.VARARGS) != 0;
+  }
+
+  /**
+   * Gets the return type of this method.
+   * @return the type of this method
+   */
+  public Class<?> getReturnType()
+  {
+    return (Class<?>) m.getReturnType();
+  }
+
+  /**
+   * Get the parameter list for this method, in declaration order. If the
+   * method takes no parameters, returns a 0-length array (not null).
+   *
+   * @return a list of the types of the method's parameters
+   */
+  public Class<?>[] getParameterTypes()
+  {
+    return (Class<?>[]) m.getParameterTypes();
+  }
+
+  /**
+   * Get the exception types this method says it throws, in no particular
+   * order. If the method has no throws clause, returns a 0-length array
+   * (not null).
+   *
+   * @return a list of the types in the method's throws clause
+   */
+  public Class<?>[] getExceptionTypes()
+  {
+    return (Class<?>[]) m.getExceptionTypes();
+  }
+
+  /**
+   * Compare two objects to see if they are semantically equivalent.
+   * Two Methods are semantically equivalent if they have the same declaring
+   * class, name, parameter list, and return type.
+   *
+   * @param o the object to compare to
+   * @return <code>true</code> if they are equal; <code>false</code> if not
+   */
+  public boolean equals(Object o)
+  {
+    return m.equals(o);
+  }
+
+  /**
+   * Get the hash code for the Method. The Method hash code is the hash code
+   * of its name XOR'd with the hash code of its class name.
+   *
+   * @return the hash code for the object
+   */
+  public int hashCode()
+  {
+    return m.getDeclaringClass().getName().hashCode() ^ m.getName().hashCode();
+  }
+
+  /**
+   * Get a String representation of the Method. A Method's String
+   * representation is "&lt;modifiers&gt; &lt;returntype&gt;
+   * &lt;methodname&gt;(&lt;paramtypes&gt;) throws &lt;exceptions&gt;", where
+   * everything after ')' is omitted if there are no exceptions.<br> Example:
+   * <code>public static int run(java.lang.Runnable,int)</code>
+   *
+   * @return the String representation of the Method
+   */
+  public String toString()
+  {
+    // 128 is a reasonable buffer initial size for constructor
+    CPStringBuilder sb = new CPStringBuilder(128);
+    Modifier.toString(getModifiers(), sb).append(' ');
+    sb.append(ClassHelper.getUserName(getReturnType())).append(' ');
+    sb.append(getDeclaringClass().getName()).append('.');
+    sb.append(getName()).append('(');
+    Class[] c = getParameterTypes();
+    if (c.length > 0)
+      {
+        sb.append(ClassHelper.getUserName(c[0]));
+        for (int i = 1; i < c.length; i++)
+          sb.append(',').append(ClassHelper.getUserName(c[i]));
+      }
+    sb.append(')');
+    c = getExceptionTypes();
+    if (c.length > 0)
+      {
+        sb.append(" throws ").append(c[0].getName());
+        for (int i = 1; i < c.length; i++)
+          sb.append(',').append(c[i].getName());
+      }
+    return sb.toString();
+  }
+
+  public String toGenericString()
+  {
+    // 128 is a reasonable buffer initial size for constructor
+    CPStringBuilder sb = new CPStringBuilder(128);
+    Modifier.toString(getModifiers(), sb).append(' ');
+    Constructor.addTypeParameters(sb, getTypeParameters());
+    sb.append(getGenericReturnType()).append(' ');
+    sb.append(getDeclaringClass().getName()).append('.');
+    sb.append(getName()).append('(');
+    Type[] types = getGenericParameterTypes();
+    if (types.length > 0)
+      {
+        sb.append(types[0]);
+        for (int i = 1; i < types.length; i++)
+          sb.append(',').append(types[i]);
+      }
+    sb.append(')');
+    types = getGenericExceptionTypes();
+    if (types.length > 0)
+      {
+        sb.append(" throws ").append(types[0]);
+        for (int i = 1; i < types.length; i++)
+          sb.append(',').append(types[i]);
+      }
+    return sb.toString();
+  }
+
+  /**
+   * Invoke the method. Arguments are automatically unwrapped and widened,
+   * and the result is automatically wrapped, if needed.<p>
+   *
+   * If the method is static, <code>o</code> will be ignored. Otherwise,
+   * the method uses dynamic lookup as described in JLS 15.12.4.4. You cannot
+   * mimic the behavior of nonvirtual lookup (as in super.foo()). This means
+   * you will get a <code>NullPointerException</code> if <code>o</code> is
+   * null, and an <code>IllegalArgumentException</code> if it is incompatible
+   * with the declaring class of the method. If the method takes 0 arguments,
+   * you may use null or a 0-length array for <code>args</code>.<p>
+   *
+   * Next, if this Method enforces access control, your runtime context is
+   * evaluated, and you may have an <code>IllegalAccessException</code> if
+   * you could not acces this method in similar compiled code. If the method
+   * is static, and its class is uninitialized, you trigger class
+   * initialization, which may end in a
+   * <code>ExceptionInInitializerError</code>.<p>
+   *
+   * Finally, the method is invoked. If it completes normally, the return value
+   * will be null for a void method, a wrapped object for a primitive return
+   * method, or the actual return of an Object method. If it completes
+   * abruptly, the exception is wrapped in an
+   * <code>InvocationTargetException</code>.
+   *
+   * @param o the object to invoke the method on
+   * @param args the arguments to the method
+   * @return the return value of the method, wrapped in the appropriate
+   *         wrapper if it is primitive
+   * @throws IllegalAccessException if the method could not normally be called
+   *         by the Java code (i.e. it is not public)
+   * @throws IllegalArgumentException if the number of arguments is incorrect;
+   *         if the arguments types are wrong even with a widening conversion;
+   *         or if <code>o</code> is not an instance of the class or interface
+   *         declaring this method
+   * @throws InvocationTargetException if the method throws an exception
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static method triggered
+   *         class initialization, which then failed
+   */
+  public Object invoke(Object o, Object... args)
+    throws IllegalAccessException, InvocationTargetException
+  {
+    return m.invoke(o, args);
+  }
+
+  /**
+   * Returns an array of <code>TypeVariable</code> objects that represents
+   * the type variables declared by this constructor, in declaration order.
+   * An array of size zero is returned if this class has no type
+   * variables.
+   *
+   * @return the type variables associated with this class. 
+   * @throws GenericSignatureFormatError if the generic signature does
+   *         not conform to the format specified in the Virtual Machine
+   *         specification, version 3.
+   * @since 1.5
+   */
+  public TypeVariable<Method>[] getTypeParameters()
+  {
+    if (p == null)
+      {
+       String sig = m.getSignature();
+       if (sig == null)
+         return (TypeVariable<Method>[]) new TypeVariable[0];
+       p = new MethodSignatureParser(this, sig);
+      }
+    return p.getTypeParameters();
+  }
+
+  /**
+   * Returns an array of <code>Type</code> objects that represents
+   * the exception types declared by this method, in declaration order.
+   * An array of size zero is returned if this method declares no
+   * exceptions.
+   *
+   * @return the exception types declared by this method. 
+   * @throws GenericSignatureFormatError if the generic signature does
+   *         not conform to the format specified in the Virtual Machine
+   *         specification, version 3.
+   * @since 1.5
+   */
+  public Type[] getGenericExceptionTypes()
+  {
+    if (p == null)
+      {
+       String sig = m.getSignature();
+       if (sig == null)
+         return getExceptionTypes();
+       p = new MethodSignatureParser(this, sig);
+      }
+    return p.getGenericExceptionTypes();
+  }
+
+  /**
+   * Returns an array of <code>Type</code> objects that represents
+   * the parameter list for this method, in declaration order.
+   * An array of size zero is returned if this method takes no
+   * parameters.
+   *
+   * @return a list of the types of the method's parameters
+   * @throws GenericSignatureFormatError if the generic signature does
+   *         not conform to the format specified in the Virtual Machine
+   *         specification, version 3.
+   * @since 1.5
+   */
+  public Type[] getGenericParameterTypes()
+  {
+    if (p == null)
+      {
+       String sig = m.getSignature();
+       if (sig == null)
+         return getParameterTypes();
+       p = new MethodSignatureParser(this, sig);
+      }
+    return p.getGenericParameterTypes();
+  }
+
+  /**
+   * Returns the return type of this method.
+   *
+   * @return the return type of this method
+   * @throws GenericSignatureFormatError if the generic signature does
+   *         not conform to the format specified in the Virtual Machine
+   *         specification, version 3.
+   * @since 1.5
+   */
+  public Type getGenericReturnType()
+  {
+    if (p == null)
+      {
+       String sig = m.getSignature();
+       if (sig == null)
+         return getReturnType();
+       p = new MethodSignatureParser(this, sig);
+      }
+    return p.getGenericReturnType();
+  }
+
+  /**
+   * If this method is an annotation method, returns the default
+   * value for the method.  If there is no default value, or if the
+   * method is not a member of an annotation type, returns null.
+   * Primitive types are wrapped.
+   *
+   * @throws TypeNotPresentException if the method returns a Class,
+   * and the class cannot be found
+   *
+   * @since 1.5
+   */
+  public Object getDefaultValue()
+  {
+    return m.getDefaultValue();
+  }
+
+  /**
+   * <p>
+   * Return an array of arrays representing the annotations on each
+   * of the method's parameters.  The outer array is aligned against
+   * the parameters of the method and is thus equal in length to
+   * the number of parameters (thus having a length zero if there are none).
+   * Each array element in the outer array contains an inner array which
+   * holds the annotations.  This array has a length of zero if the parameter
+   * has no annotations.
+   * </p>
+   * <p>
+   * The returned annotations are serialized.  Changing the annotations has
+   * no affect on the return value of future calls to this method.
+   * </p>
+   * 
+   * @return an array of arrays which represents the annotations used on the
+   *         parameters of this method.  The order of the array elements
+   *         matches the declaration order of the parameters.
+   * @since 1.5
+   */
+  public Annotation[][] getParameterAnnotations()
+  {
+    return m.getParameterAnnotations();
+  }
+
+  /**
+   * Returns the element's annotation for the specified annotation type,
+   * or <code>null</code> if no such annotation exists.
+   *
+   * @param annotationClass the type of annotation to look for.
+   * @return this element's annotation for the specified type, or
+   *         <code>null</code> if no such annotation exists.
+   * @throws NullPointerException if the annotation class is <code>null</code>.
+   */
+  public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
+  {
+    // Inescapable as the VM layer is 1.4 based. T will erase to Annotation anyway. 
+    @SuppressWarnings("unchecked")
+      T ann = (T) m.getAnnotation(annotationClass);
+    return ann;
+  }
+
+  /**
+   * Returns all annotations directly defined by the element.  If there are
+   * no annotations directly associated with the element, then a zero-length
+   * array will be returned.  The returned array may be modified by the client
+   * code, but this will have no effect on the annotation content of this
+   * class, and hence no effect on the return value of this method for
+   * future callers.
+   *
+   * @return the annotations directly defined by the element.
+   * @since 1.5
+   */
+  public Annotation[] getDeclaredAnnotations()
+  {
+    return m.getDeclaredAnnotations();
+  }
+
+}
index 45fc4e37e695f5f242dc5fe4b97151a2f20e41b4..45d9b51a75e7e8d73babbee37b293bbd722b9967 100644 (file)
@@ -1,5 +1,5 @@
 /* java.lang.reflect.Modifier
-   Copyright (C) 1998, 1999, 2001, 2002, 2005  Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2001, 2002, 2005, 2008  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.lang.reflect;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * Modifier is a helper class with static methods to determine whether an
  * int returned from getModifiers() represents static, public, protected,
@@ -308,28 +310,16 @@ public class Modifier
    */
   public static String toString(int mod)
   {
-    return toString(mod, new StringBuilder()).toString();
-  }
-
-  /**
-   * Package helper method that can take a StringBuilder.
-   * @param mod the modifier
-   * @param r the StringBuilder to which the String representation is appended
-   * @return r, with information appended
-   */
-  static StringBuilder toString(int mod, StringBuilder r)
-  {
-    r.append(toString(mod, new StringBuffer()));
-    return r;
+    return toString(mod, new CPStringBuilder()).toString();
   }
 
   /**
-   * Package helper method that can take a StringBuffer.
+   * Package helper method that can take a CPStringBuilder.
    * @param mod the modifier
-   * @param r the StringBuffer to which the String representation is appended
+   * @param r the CPStringBuilder to which the String representation is appended
    * @return r, with information appended
    */
-  static StringBuffer toString(int mod, StringBuffer r)
+  static CPStringBuilder toString(int mod, CPStringBuilder r)
   {
     if (isPublic(mod))
       r.append("public ");
index 6c1e975a2876c95968ed48bbd4afdd340bde6ae6..fb2004e790bdf4eda2e4a87583633cfc4eb63f3e 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.lang.reflect;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.lang.reflect.TypeSignature;
 
 import java.io.Serializable;
@@ -1033,7 +1035,7 @@ public class Proxy implements Serializable
           code_length += 9; // new, dup_x1, swap, invokespecial, athrow
         }
       int handler_pc = code_length - 1;
-      StringBuilder signature = new StringBuilder("(");
+      CPStringBuilder signature = new CPStringBuilder("(");
       for (int j = 0; j < paramtypes.length; j++)
         signature.append(TypeSignature.getEncodingOfClass(paramtypes[j]));
       signature.append(")").append(TypeSignature.getEncodingOfClass(ret_type));
@@ -1492,7 +1494,7 @@ public class Proxy implements Serializable
       if (i == len)
         return str;
 
-      final StringBuilder sb = new StringBuilder(str);
+      final CPStringBuilder sb = new CPStringBuilder(str);
       sb.setLength(i);
       for ( ; i < len; i++)
         {
index 28c4d45d3eb21990c1d0b625ddcff965669c54b6..eceaf8cddc24bb4a44c96bc43a0863984a940772 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.math;
 
+import gnu.java.lang.CPStringBuilder;
+
 public class BigDecimal extends Number implements Comparable<BigDecimal>
 {
   private BigInteger intVal;
@@ -451,7 +453,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal>
 
     // val is a StringBuilder from which we'll create a BigInteger
     // which will be the unscaled value for this BigDecimal
-    StringBuilder val = new StringBuilder(point - start - 1);
+    CPStringBuilder val = new CPStringBuilder(point - start - 1);
     if (dot != -1)
       {
         // If there was a decimal we must combine the two parts that 
@@ -1070,7 +1072,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal>
     boolean negative = (bigStr.charAt(0) == '-');
     int point = bigStr.length() - scale - (negative ? 1 : 0);
 
-    StringBuilder val = new StringBuilder();
+    CPStringBuilder val = new CPStringBuilder();
 
     if (scale >= 0 && (point - 1) >= -6)
       {
@@ -1137,7 +1139,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal>
 
     // This is the adjusted exponent described above.
     int adjExp = point - 1;
-    StringBuilder val = new StringBuilder();
+    CPStringBuilder val = new CPStringBuilder();
 
     if (scale >= 0 && adjExp >= -6)
       {
@@ -1242,8 +1244,8 @@ public class BigDecimal extends Number implements Comparable<BigDecimal>
 
     int point = bigStr.length() - scale - (negative ? 1 : 0);
 
-    StringBuffer sb = new StringBuffer(bigStr.length() + 2
-                                       + (point <= 0 ? (-point + 1) : 0));
+    CPStringBuilder sb = new CPStringBuilder(bigStr.length() + 2
+                                            + (point <= 0 ? (-point + 1) : 0));
     if (point <= 0)
       {
         // We have to prepend zeros and a decimal point.
index 3fb75ffa37b2ac9d430ae823179b2b80c31215b4..9d7abc755acbf405e8adffc53b246ef8ccc1ab82 100644 (file)
@@ -38,12 +38,17 @@ exception statement from your version. */
 
 package java.math;
 
+import gnu.classpath.Configuration;
+
+import gnu.java.lang.CPStringBuilder;
+import gnu.java.math.GMP;
 import gnu.java.math.MPN;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.util.Random;
+import java.util.logging.Logger;
 
 /**
  * Written using on-line Java Platform 1.2 API Specification, as well
@@ -59,6 +64,8 @@ import java.util.Random;
  */
 public class BigInteger extends Number implements Comparable<BigInteger>
 {
+  private static final Logger log = Logger.getLogger(BigInteger.class.getName());
+
   /** All integers are stored in 2's-complement form.
    * If words == null, the ival is the value of this BigInteger.
    * Otherwise, the first ival elements of words make the value
@@ -67,9 +74,10 @@ public class BigInteger extends Number implements Comparable<BigInteger>
   private transient int[] words;
 
   // Serialization fields.
+  // the first three, although not used in the code, are present for
+  // compatibility with older RI versions of this class. DO NOT REMOVE.
   private int bitCount = -1;
   private int bitLength = -1;
-  private int firstNonzeroByteNum = -2;
   private int lowestSetBit = -2;
   private byte[] magnitude;
   private int signum;
@@ -81,31 +89,52 @@ public class BigInteger extends Number implements Comparable<BigInteger>
   private static final int minFixNum = -100;
   private static final int maxFixNum = 1024;
   private static final int numFixNum = maxFixNum-minFixNum+1;
-  private static final BigInteger[] smallFixNums = new BigInteger[numFixNum];
+  private static final BigInteger[] smallFixNums;
+  
+  /** The alter-ego GMP instance for this. */
+  private transient GMP mpz;
+
+  private static final boolean USING_NATIVE = Configuration.WANT_NATIVE_BIG_INTEGER
+                                              && initializeLibrary();
 
   static
   {
-    for (int i = numFixNum;  --i >= 0; )
-      smallFixNums[i] = new BigInteger(i + minFixNum);
+    if (USING_NATIVE)
+      {
+        smallFixNums = null;
+        ZERO = valueOf(0L);
+        ONE = valueOf(1L);
+        TEN = valueOf(10L);
+      }
+    else
+      {
+        smallFixNums = new BigInteger[numFixNum];
+       for (int i = numFixNum;  --i >= 0; )
+         smallFixNums[i] = new BigInteger(i + minFixNum);
+
+        ZERO = smallFixNums[-minFixNum];
+        ONE = smallFixNums[1 - minFixNum];
+        TEN = smallFixNums[10 - minFixNum];
+      }
   }
 
   /**
    * The constant zero as a BigInteger.
    * @since 1.2
    */
-  public static final BigInteger ZERO = smallFixNums[0 - minFixNum];
+  public static final BigInteger ZERO;
 
   /**
    * The constant one as a BigInteger.
    * @since 1.2
    */
-  public static final BigInteger ONE = smallFixNums[1 - minFixNum];
+  public static final BigInteger ONE;
 
   /**
    * The constant ten as a BigInteger.
    * @since 1.5
    */
-  public static final BigInteger TEN = smallFixNums[10 - minFixNum];
+  public static final BigInteger TEN;
 
   /* Rounding modes: */
   private static final int FLOOR = 1;
@@ -130,19 +159,72 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   private BigInteger()
   {
+    super();
+
+    if (USING_NATIVE)
+      mpz = new GMP();
   }
 
   /* Create a new (non-shared) BigInteger, and initialize to an int. */
   private BigInteger(int value)
   {
+    super();
+
     ival = value;
   }
 
-  public BigInteger(String val, int radix)
+  public BigInteger(String s, int radix)
   {
-    BigInteger result = valueOf(val, radix);
-    this.ival = result.ival;
-    this.words = result.words;
+    this();
+
+    int len = s.length();
+    int i, digit;
+    boolean negative;
+    byte[] bytes;
+    char ch = s.charAt(0);
+    if (ch == '-')
+      {
+        negative = true;
+        i = 1;
+        bytes = new byte[len - 1];
+      }
+    else
+      {
+        negative = false;
+        i = 0;
+        bytes = new byte[len];
+      }
+    int byte_len = 0;
+    for ( ; i < len;  i++)
+      {
+        ch = s.charAt(i);
+        digit = Character.digit(ch, radix);
+        if (digit < 0)
+          throw new NumberFormatException("Invalid character at position #" + i);
+        bytes[byte_len++] = (byte) digit;
+      }
+
+    if (USING_NATIVE)
+      {
+        bytes = null;
+        if (mpz.fromString(s, radix) != 0)
+          throw new NumberFormatException("String \"" + s
+                                          + "\" is NOT a valid number in base "
+                                          + radix);
+      }
+    else
+      {
+        BigInteger result;
+        // Testing (len < MPN.chars_per_word(radix)) would be more accurate,
+        // but slightly more expensive, for little practical gain.
+        if (len <= 15 && radix <= 16)
+          result = valueOf(Long.parseLong(s, radix));
+        else
+          result = valueOf(bytes, byte_len, negative, radix);
+
+        this.ival = result.ival;
+        this.words = result.words;
+      }
   }
 
   public BigInteger(String val)
@@ -153,17 +235,26 @@ public class BigInteger extends Number implements Comparable<BigInteger>
   /* Create a new (non-shared) BigInteger, and initialize from a byte array. */
   public BigInteger(byte[] val)
   {
+    this();
+
     if (val == null || val.length < 1)
       throw new NumberFormatException();
 
-    words = byteArrayToIntArray(val, val[0] < 0 ? -1 : 0);
-    BigInteger result = make(words, words.length);
-    this.ival = result.ival;
-    this.words = result.words;
+    if (USING_NATIVE)
+      mpz.fromByteArray(val);
+    else
+      {
+        words = byteArrayToIntArray(val, val[0] < 0 ? -1 : 0);
+        BigInteger result = make(words, words.length);
+        this.ival = result.ival;
+        this.words = result.words;
+      }
   }
 
   public BigInteger(int signum, byte[] magnitude)
   {
+    this();
+
     if (magnitude == null || signum > 1 || signum < -1)
       throw new NumberFormatException();
 
@@ -177,18 +268,25 @@ public class BigInteger extends Number implements Comparable<BigInteger>
         return;
       }
 
-    // Magnitude is always positive, so don't ever pass a sign of -1.
-    words = byteArrayToIntArray(magnitude, 0);
-    BigInteger result = make(words, words.length);
-    this.ival = result.ival;
-    this.words = result.words;
+    if (USING_NATIVE)
+      mpz.fromSignedMagnitude(magnitude, signum == -1);
+    else
+      {
+        // Magnitude is always positive, so don't ever pass a sign of -1.
+        words = byteArrayToIntArray(magnitude, 0);
+        BigInteger result = make(words, words.length);
+        this.ival = result.ival;
+        this.words = result.words;
 
-    if (signum < 0)
-      setNegative();
+        if (signum < 0)
+          setNegative();
+      }
   }
 
   public BigInteger(int numBits, Random rnd)
   {
+    this();
+
     if (numBits < 0)
       throw new IllegalArgumentException();
 
@@ -197,6 +295,22 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   private void init(int numBits, Random rnd)
   {
+    if (USING_NATIVE)
+      {
+        int length = (numBits + 7) / 8;
+        byte[] magnitude = new byte[length];
+        rnd.nextBytes(magnitude);
+        int discardedBitCount = numBits % 8;
+        if (discardedBitCount != 0)
+          {
+            discardedBitCount = 8 - discardedBitCount;
+            magnitude[0] = (byte)((magnitude[0] & 0xFF) >>> discardedBitCount);
+          }
+        mpz.fromSignedMagnitude(magnitude, false);
+        magnitude = null;
+        return;
+      }
+
     int highbits = numBits & 31;
     // minimum number of bytes to store the above number of bits
     int highBitByteCount = (highbits + 7) / 8;
@@ -235,20 +349,23 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger(int bitLength, int certainty, Random rnd)
   {
-    this(bitLength, rnd);
+    this();
 
-    // Keep going until we find a probable prime.
-    BigInteger result;
+    BigInteger result = new BigInteger();
     while (true)
       {
-        // ...but first ensure that BI has bitLength bits
-        result = setBit(bitLength - 1);
+        result.init(bitLength, rnd);
+        result = result.setBit(bitLength - 1);
+        if (result.isProbablePrime(certainty))
+          break;
+      }
+
+    if (USING_NATIVE)
+      mpz.fromBI(result.mpz);
+    else
+      {
         this.ival = result.ival;
         this.words = result.words;
-       if (isProbablePrime(certainty))
-         return;
-
-       init(bitLength, rnd);
       }
   }
 
@@ -272,6 +389,13 @@ public class BigInteger extends Number implements Comparable<BigInteger>
   /** Return a (possibly-shared) BigInteger with a given long value. */
   public static BigInteger valueOf(long val)
   {
+    if (USING_NATIVE)
+      {
+        BigInteger result = new BigInteger();
+        result.mpz.fromLong(val);
+        return result;
+      }
+
     if (val >= minFixNum && val <= maxFixNum)
       return smallFixNums[(int) val - minFixNum];
     int i = (int) val;
@@ -284,6 +408,31 @@ public class BigInteger extends Number implements Comparable<BigInteger>
     return result;
   }
 
+  /**
+   * @return <code>true</code> if the GMP-based native implementation library
+   *         was successfully loaded. Returns <code>false</code> otherwise.
+   */
+  private static boolean initializeLibrary()
+  {
+    boolean result;
+    try
+    {
+      System.loadLibrary("javamath");
+      GMP.natInitializeLibrary();
+      result = true;
+    }
+    catch (Throwable x)
+    {
+      result = false;
+      if (Configuration.DEBUG)
+        {
+          log.info("Unable to use native BigInteger: " + x);
+          log.info("Will use a pure Java implementation instead");
+        }
+    }
+    return result;
+  }
+
   /** Make a canonicalized BigInteger from an array of words.
    * The array may be reused (without copying). */
   private static BigInteger make(int[] words, int len)
@@ -374,6 +523,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public int signum()
   {
+    if (USING_NATIVE)
+      return mpz.compare(ZERO.mpz);
+
     if (ival == 0 && words == null)
       return 0;
     int top = words == null ? ival : words[ival-1];
@@ -382,6 +534,12 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   private static int compareTo(BigInteger x, BigInteger y)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = y.signum; // force NPE check
+        return x.mpz.compare(y.mpz);
+      }
+
     if (x.words == null && y.words == null)
       return x.ival < y.ival ? -1 : x.ival > y.ival ? 1 : 0;
     boolean x_negative = x.isNegative();
@@ -586,11 +744,27 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger add(BigInteger val)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = val.signum; // force NPE check
+        BigInteger result = new BigInteger();
+        mpz.add(val.mpz, result.mpz);
+        return result;
+      }
+
     return add(this, val, 1);
   }
 
   public BigInteger subtract(BigInteger val)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = val.signum; // force NPE check
+        BigInteger result = new BigInteger();
+        mpz.subtract(val.mpz, result.mpz);
+        return result;
+      }
+
     return add(this, val, -1);
   }
 
@@ -672,6 +846,14 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger multiply(BigInteger y)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = y.signum; // force NPE check
+        BigInteger result = new BigInteger();
+        mpz.multiply(y.mpz, result.mpz);
+        return result;
+      }
+
     return times(this, y);
   }
 
@@ -947,6 +1129,16 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger divide(BigInteger val)
   {
+    if (USING_NATIVE)
+      {
+        if (val.compareTo(ZERO) == 0)
+          throw new ArithmeticException("divisor is zero");
+
+        BigInteger result = new BigInteger();
+        mpz.quotient(val.mpz, result.mpz);
+        return result;
+      }
+
     if (val.isZero())
       throw new ArithmeticException("divisor is zero");
 
@@ -957,6 +1149,16 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger remainder(BigInteger val)
   {
+    if (USING_NATIVE)
+      {
+        if (val.compareTo(ZERO) == 0)
+          throw new ArithmeticException("divisor is zero");
+
+        BigInteger result = new BigInteger();
+        mpz.remainder(val.mpz, result.mpz);
+        return result;
+      }
+
     if (val.isZero())
       throw new ArithmeticException("divisor is zero");
 
@@ -967,6 +1169,17 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger[] divideAndRemainder(BigInteger val)
   {
+    if (USING_NATIVE)
+      {
+        if (val.compareTo(ZERO) == 0)
+          throw new ArithmeticException("divisor is zero");
+
+        BigInteger q = new BigInteger();
+        BigInteger r = new BigInteger();
+        mpz.quotientAndRemainder(val.mpz, q.mpz, r.mpz);
+        return new BigInteger[] { q, r };
+      }
+
     if (val.isZero())
       throw new ArithmeticException("divisor is zero");
 
@@ -981,6 +1194,17 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger mod(BigInteger m)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = m.signum; // force NPE check
+        if (m.compareTo(ZERO) < 1)
+          throw new ArithmeticException("non-positive modulus");
+
+        BigInteger result = new BigInteger();
+        mpz.modulo(m.mpz, result.mpz);
+        return result;
+      }
+
     if (m.isNegative() || m.isZero())
       throw new ArithmeticException("non-positive modulus");
 
@@ -1000,6 +1224,14 @@ public class BigInteger extends Number implements Comparable<BigInteger>
          return ONE;
          throw new ArithmeticException("negative exponent");
       }
+
+    if (USING_NATIVE)
+      {
+        BigInteger result = new BigInteger();
+        mpz.pow(exponent, result.mpz);
+        return result;
+      }
+
     if (isZero())
       return this;
     int plen = words == null ? 1 : ival;  // Length of pow2.
@@ -1097,6 +1329,17 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger modInverse(BigInteger y)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = y.signum; // force NPE check
+        if (mpz.compare(ZERO.mpz) < 1)
+          throw new ArithmeticException("non-positive modulo");
+
+        BigInteger result = new BigInteger();
+        mpz.modInverse(y.mpz, result.mpz);
+        return result;
+      }
+
     if (y.isNegative() || y.isZero())
       throw new ArithmeticException("non-positive modulo");
 
@@ -1175,6 +1418,17 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger modPow(BigInteger exponent, BigInteger m)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = exponent.signum; // force NPE check
+        if (m.mpz.compare(ZERO.mpz) < 1)
+          throw new ArithmeticException("non-positive modulo");
+
+        BigInteger result = new BigInteger();
+        mpz.modPow(exponent.mpz, m.mpz, result.mpz);
+        return result;
+      }
+
     if (m.isNegative() || m.isZero())
       throw new ArithmeticException("non-positive modulo");
 
@@ -1228,6 +1482,14 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger gcd(BigInteger y)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = y.signum; // force NPE check
+        BigInteger result = new BigInteger();
+        mpz.gcd(y.mpz, result.mpz);
+        return result;
+      }
+
     int xval = ival;
     int yval = y.ival;
     if (words == null)
@@ -1281,6 +1543,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
     if (certainty < 1)
       return true;
 
+    if (USING_NATIVE)
+      return mpz.testPrimality(certainty) != 0;
+
     /** We'll use the Rabin-Miller algorithm for doing a probabilistic
      * primality test.  It is fast, easy and has faster decreasing odds of a
      * composite passing than with other tests.  This means that this
@@ -1460,15 +1725,41 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger shiftLeft(int n)
   {
+    if (n == 0)
+      return this;
+
+    if (USING_NATIVE)
+      {
+        BigInteger result = new BigInteger();
+        if (n < 0)
+          mpz.shiftRight(-n, result.mpz);
+        else
+          mpz.shiftLeft(n, result.mpz);
+        return result;
+      }
+
     return shift(this, n);
   }
 
   public BigInteger shiftRight(int n)
   {
+    if (n == 0)
+      return this;
+
+    if (USING_NATIVE)
+      {
+        BigInteger result = new BigInteger();
+        if (n < 0)
+          mpz.shiftLeft(-n, result.mpz);
+        else
+          mpz.shiftRight(n, result.mpz);
+        return result;
+      }
+
     return shift(this, -n);
   }
 
-  private void format(int radix, StringBuffer buffer)
+  private void format(int radix, CPStringBuilder buffer)
   {
     if (words == null)
       buffer.append(Integer.toString(ival, radix));
@@ -1537,18 +1828,27 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public String toString(int radix)
   {
+    if (USING_NATIVE)
+      return mpz.toString(radix);
+
     if (words == null)
       return Integer.toString(ival, radix);
     if (ival <= 2)
       return Long.toString(longValue(), radix);
     int buf_size = ival * (MPN.chars_per_word(radix) + 1);
-    StringBuffer buffer = new StringBuffer(buf_size);
+    CPStringBuilder buffer = new CPStringBuilder(buf_size);
     format(radix, buffer);
     return buffer.toString();
   }
 
   public int intValue()
   {
+    if (USING_NATIVE)
+      {
+        int result = mpz.absIntValue();
+        return mpz.compare(ZERO.mpz) < 0 ? - result : result;
+      }
+
     if (words == null)
       return ival;
     return words[0];
@@ -1556,6 +1856,15 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public long longValue()
   {
+    if (USING_NATIVE)
+      {
+        long result;
+        result = (abs().shiftRight(32)).mpz.absIntValue();
+        result <<= 32;
+        result |= mpz.absIntValue() & 0xFFFFFFFFL;
+        return this.compareTo(ZERO) < 0 ? - result : result;
+      }
+
     if (words == null)
       return ival;
     if (ival == 1)
@@ -1566,12 +1875,25 @@ public class BigInteger extends Number implements Comparable<BigInteger>
   public int hashCode()
   {
     // FIXME: May not match hashcode of JDK.
+    if (USING_NATIVE)
+      {
+        // TODO: profile to decide whether to make it native
+        byte[] bytes = this.toByteArray();
+        int result = 0;
+        for (int i = 0; i < bytes.length; i++)
+          result ^= (bytes[i] & 0xFF) << (8 * (i % 4));
+        return result;
+      }
+
     return words == null ? ival : (words[0] + words[ival - 1]);
   }
 
   /* Assumes x and y are both canonicalized. */
   private static boolean equals(BigInteger x, BigInteger y)
   {
+    if (USING_NATIVE)
+      return x.mpz.compare(y.mpz) == 0;
+
     if (x.words == null && y.words == null)
       return x.ival == y.ival;
     if (x.words == null || y.words == null || x.ival != y.ival)
@@ -1592,43 +1914,6 @@ public class BigInteger extends Number implements Comparable<BigInteger>
     return equals(this, (BigInteger) obj);
   }
 
-  private static BigInteger valueOf(String s, int radix)
-       throws NumberFormatException
-  {
-    int len = s.length();
-    // Testing (len < MPN.chars_per_word(radix)) would be more accurate,
-    // but slightly more expensive, for little practical gain.
-    if (len <= 15 && radix <= 16)
-      return valueOf(Long.parseLong(s, radix));
-
-    int i, digit;
-    boolean negative;
-    byte[] bytes;
-    char ch = s.charAt(0);
-    if (ch == '-')
-      {
-        negative = true;
-        i = 1;
-        bytes = new byte[len - 1];
-      }
-    else
-      {
-        negative = false;
-        i = 0;
-        bytes = new byte[len];
-      }
-    int byte_len = 0;
-    for ( ; i < len;  i++)
-      {
-        ch = s.charAt(i);
-        digit = Character.digit(ch, radix);
-        if (digit < 0)
-          throw new NumberFormatException();
-        bytes[byte_len++] = (byte) digit;
-      }
-    return valueOf(bytes, byte_len, negative, radix);
-  }
-
   private static BigInteger valueOf(byte[] digits, int byte_len,
                                    boolean negative, int radix)
   {
@@ -1646,6 +1931,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public double doubleValue()
   {
+    if (USING_NATIVE)
+      return mpz.doubleValue();
+
     if (words == null)
       return (double) ival;
     if (ival <= 2)
@@ -1827,6 +2115,13 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger abs()
   {
+    if (USING_NATIVE)
+      {
+        BigInteger result = new BigInteger();
+        mpz.abs(result.mpz);
+        return result;
+      }
+
     return abs(this);
   }
 
@@ -1841,6 +2136,13 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public BigInteger negate()
   {
+    if (USING_NATIVE)
+      {
+        BigInteger result = new BigInteger();
+       mpz.negate(result.mpz);
+        return result;
+      }
+
     return neg(this);
   }
 
@@ -1849,6 +2151,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
    */
   public int bitLength()
   {
+    if (USING_NATIVE)
+      return mpz.bitLength();
+
     if (words == null)
       return MPN.intLength(ival);
       return MPN.intLength(words, ival);
@@ -1856,6 +2161,25 @@ public class BigInteger extends Number implements Comparable<BigInteger>
 
   public byte[] toByteArray()
   {
+    if (signum() == 0)
+      return new byte[1];
+
+    if (USING_NATIVE)
+      {
+        // the minimal number of bytes required to represent the MPI is function
+        // of (a) its bit-length, and (b) its sign.  only when this MPI is both
+        // positive, and its bit-length is a multiple of 8 do we add one zero
+        // bit for its sign.  we do this so if we construct a new MPI from the
+        // resulting byte array, we wouldn't mistake a positive number, whose
+        // bit-length is a multiple of 8, for a similar-length negative one.
+        int bits = bitLength();
+        if (bits % 8 == 0 || this.signum() == 1)
+          bits++;
+        byte[] bytes = new byte[(bits + 7) / 8];
+        mpz.toByteArray(bytes);
+        return bytes;
+      }
+
     // Determine number of bytes needed.  The method bitlength returns
     // the size without the sign bit, so add one bit for that and then
     // add 7 more to emulate the ceil function using integer math.
@@ -2112,6 +2436,14 @@ public class BigInteger extends Number implements Comparable<BigInteger>
   /** Return the logical (bit-wise) "and" of two BigIntegers. */
   public BigInteger and(BigInteger y)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = y.signum; // force NPE check
+        BigInteger result = new BigInteger();
+        mpz.and(y.mpz, result.mpz);
+        return result;
+      }
+
     if (y.words == null)
       return and(this, y.ival);
     else if (words == null)
@@ -2135,23 +2467,54 @@ public class BigInteger extends Number implements Comparable<BigInteger>
   /** Return the logical (bit-wise) "(inclusive) or" of two BigIntegers. */
   public BigInteger or(BigInteger y)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = y.signum; // force NPE check
+        BigInteger result = new BigInteger();
+        mpz.or(y.mpz, result.mpz);
+        return result;
+      }
+
     return bitOp(7, this, y);
   }
 
   /** Return the logical (bit-wise) "exclusive or" of two BigIntegers. */
   public BigInteger xor(BigInteger y)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = y.signum; // force NPE check
+        BigInteger result = new BigInteger();
+        mpz.xor(y.mpz, result.mpz);
+        return result;
+      }
+
     return bitOp(6, this, y);
   }
 
   /** Return the logical (bit-wise) negation of a BigInteger. */
   public BigInteger not()
   {
+    if (USING_NATIVE)
+      {
+        BigInteger result = new BigInteger();
+        mpz.not(result.mpz);
+        return result;
+      }
+
     return bitOp(12, this, ZERO);
   }
 
   public BigInteger andNot(BigInteger val)
   {
+    if (USING_NATIVE)
+      {
+        int dummy = val.signum; // force NPE check
+        BigInteger result = new BigInteger();
+        mpz.andNot(val.mpz, result.mpz);
+        return result;
+      }
+
     return and(val.not());
   }
 
@@ -2160,6 +2523,13 @@ public class BigInteger extends Number implements Comparable<BigInteger>
     if (n < 0)
       throw new ArithmeticException();
 
+    if (USING_NATIVE)
+      {
+        BigInteger result = new BigInteger();
+        mpz.setBit(n, false, result.mpz);
+        return result;
+      }
+
     return and(ONE.shiftLeft(n).not());
   }
 
@@ -2168,6 +2538,13 @@ public class BigInteger extends Number implements Comparable<BigInteger>
     if (n < 0)
       throw new ArithmeticException();
 
+    if (USING_NATIVE)
+      {
+        BigInteger result = new BigInteger();
+        mpz.setBit(n, true, result.mpz);
+        return result;
+      }
+
     return or(ONE.shiftLeft(n));
   }
 
@@ -2176,6 +2553,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
     if (n < 0)
       throw new ArithmeticException();
 
+    if (USING_NATIVE)
+      return mpz.testBit(n) != 0;
+
     return !and(ONE.shiftLeft(n)).isZero();
   }
 
@@ -2184,11 +2564,21 @@ public class BigInteger extends Number implements Comparable<BigInteger>
     if (n < 0)
       throw new ArithmeticException();
 
+    if (USING_NATIVE)
+      {
+        BigInteger result = new BigInteger();
+        mpz.flipBit(n, result.mpz);
+        return result;
+      }
+
     return xor(ONE.shiftLeft(n));
   }
 
   public int getLowestSetBit()
   {
+    if (USING_NATIVE)
+      return mpz.compare(ZERO.mpz) == 0 ? -1 : mpz.lowestSetBit();
+
     if (isZero())
       return -1;
 
@@ -2225,6 +2615,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
    * If argument is negative, count zero bits instead. */
   public int bitCount()
   {
+    if (USING_NATIVE)
+      return mpz.bitCount();
+
     int i, x_len;
     int[] x_words = words;
     if (x_words == null)
@@ -2243,19 +2636,30 @@ public class BigInteger extends Number implements Comparable<BigInteger>
   private void readObject(ObjectInputStream s)
     throws IOException, ClassNotFoundException
   {
-    s.defaultReadObject();
-    if (magnitude.length == 0 || signum == 0)
+    if (USING_NATIVE)
       {
-        this.ival = 0;
-        this.words = null;
+        mpz = new GMP();
+        s.defaultReadObject();
+        if (signum != 0)
+          mpz.fromByteArray(magnitude);
+        // else it's zero and we need to do nothing
       }
     else
       {
-        words = byteArrayToIntArray(magnitude, signum < 0 ? -1 : 0);
-        BigInteger result = make(words, words.length);
-        this.ival = result.ival;
-        this.words = result.words;        
-      }    
+       s.defaultReadObject();
+       if (magnitude.length == 0 || signum == 0)
+         {
+           this.ival = 0;
+           this.words = null;
+         }
+       else
+         {
+           words = byteArrayToIntArray(magnitude, signum < 0 ? -1 : 0);
+           BigInteger result = make(words, words.length);
+           this.ival = result.ival;
+           this.words = result.words;        
+         }    
+      }
   }
 
   private void writeObject(ObjectOutputStream s)
@@ -2264,5 +2668,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
     signum = signum();
     magnitude = signum == 0 ? new byte[0] : toByteArray();
     s.defaultWriteObject();
+    magnitude = null; // not needed anymore
   }
+
+  // inner class(es) ..........................................................
+
 }
index a8a726ecf80a6f7510286bdbffbe5d26f4eabfd1..1a50a472925dbd1623ba1c163e631ce6a45c5050 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.net;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.ObjectStreamException;
 
 /*
@@ -212,7 +214,7 @@ public final class Inet4Address extends InetAddress
    */
   public String getHostAddress()
   {
-    StringBuffer sb = new StringBuffer(40);
+    CPStringBuilder sb = new CPStringBuilder(40);
 
     int len = addr.length;
     int i = 0;
index f4893eb09f39e04191b0256104869024c9791dad..9a1c4ea96da889f03ba68a162857d5d0b06232b2 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.net;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Arrays;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -317,7 +319,7 @@ public final class Inet6Address extends InetAddress
    */
   public String getHostAddress()
   {
-    StringBuffer sbuf = new StringBuffer(40);
+    CPStringBuilder sbuf = new CPStringBuilder(40);
 
     for (int i = 0; i < 16; i += 2)
       {
index a3a6058afa1a4d33a9d2638e149bc0f877a685ea..5ec64ff16ce377e9e0b38229a3777c93cc214ff9 100644 (file)
@@ -1,5 +1,5 @@
 /* NetworkInterface.java --
-   Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -40,6 +40,8 @@ package java.net;
 
 import gnu.classpath.SystemProperties;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.Vector;
@@ -247,10 +249,10 @@ public final class NetworkInterface
   public String toString()
   {
     // FIXME: check if this is correct
-    StringBuffer result;
+    CPStringBuilder result;
     String separator = SystemProperties.getProperty("line.separator");
 
-    result = new StringBuffer();
+    result = new CPStringBuilder();
     
     result.append("name: ");
     result.append(getDisplayName());
@@ -265,4 +267,50 @@ public final class NetworkInterface
 
     return result.toString();
   }
+
+  /**
+   * Determines whether this interface is ready to transfer data.
+   *
+   * @return whether the interface is up
+  */
+  public boolean isUp()
+    throws SocketException
+  {
+    return VMNetworkInterface.isUp(netif.name);
+  }
+
+  /**
+   * Determines whether this interface does point to point
+   * transmission.
+   *
+   * @return whether the interface does point to point transmission
+  */
+  public boolean isPointToPoint()
+    throws SocketException
+  {
+    return VMNetworkInterface.isPointToPoint(netif.name);
+  }
+
+  /**
+   * Determines whether this interface is the loopback interface.
+   *
+   * @return whether the interface is the loopback interface
+  */
+  public boolean isLoopback()
+    throws SocketException
+  {
+    return VMNetworkInterface.isLoopback(netif.name);
+  }
+
+  /**
+   * Determines whether this interface supports multicast transmission.
+   *
+   * @return whether the interface supports multicast transmission.
+  */
+  public boolean supportsMulticast()
+    throws SocketException
+  {
+    return VMNetworkInterface.supportsMulticast(netif.name);
+  }
+
 }
index 64885438aed51b5df6c6542ec216106c789617f9..a5a848eee7aae53632890b2acc657623fe19f45a 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.net;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -431,7 +433,7 @@ public final class SocketPermission extends Permission implements Serializable
    */
   public String getActions()
   {
-    StringBuffer sb = new StringBuffer("");
+    CPStringBuilder sb = new CPStringBuilder("");
 
     for (int i = 0; i < ACTIONS.length; i++)
       {
index 85e0e04f236358a2b47fa275e41ffd5c2cb33f4f..933e4f451f073d3bd524c6b1da88d598d65df4b8 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.net;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -483,7 +485,7 @@ public final class URI
    */
   private static String quote(String str, String legalCharacters)
   {
-    StringBuilder sb = new StringBuilder(str.length());
+    CPStringBuilder sb = new CPStringBuilder(str.length());
     for (int i = 0; i < str.length(); i++)
       {
        char c = str.charAt(i);
@@ -778,8 +780,8 @@ public final class URI
        This follows the algorithm in section 5.2.4. of RFC3986,
        but doesn't modify the input buffer.
     */
-    StringBuilder input = new StringBuilder(relativePath);
-    StringBuilder output = new StringBuilder();
+    CPStringBuilder input = new CPStringBuilder(relativePath);
+    CPStringBuilder output = new CPStringBuilder();
     int start = 0;
     while (start < input.length())
       {
@@ -853,7 +855,7 @@ public final class URI
    *
    * @param buffer the buffer containing the path.
    */
-  private void removeLastSegment(StringBuilder buffer)
+  private void removeLastSegment(CPStringBuilder buffer)
   {
     int lastSlash = buffer.lastIndexOf("/");
     if (lastSlash == -1)
@@ -899,7 +901,7 @@ public final class URI
              path = "";
            if (! (path.startsWith("/")))
              {
-               StringBuilder basepath = new StringBuilder(this.path);
+               CPStringBuilder basepath = new CPStringBuilder(this.path);
                int i = this.path.lastIndexOf('/');
 
                if (i >= 0)
@@ -1388,8 +1390,8 @@ public final class URI
   {
     String strRep = toString();
     boolean inNonAsciiBlock = false;
-    StringBuilder buffer = new StringBuilder();
-    StringBuilder encBuffer = null;
+    CPStringBuilder buffer = new CPStringBuilder();
+    CPStringBuilder encBuffer = null;
     for (int i = 0; i < strRep.length(); i++)
       {
        char c = strRep.charAt(i);
@@ -1406,7 +1408,7 @@ public final class URI
          {
            if (!inNonAsciiBlock)
              {
-               encBuffer = new StringBuilder();
+               encBuffer = new CPStringBuilder();
                inNonAsciiBlock = true;
              }
            encBuffer.append(c);
@@ -1428,7 +1430,7 @@ public final class URI
   {
     try
       {
-       StringBuilder sb = new StringBuilder(); 
+       CPStringBuilder sb = new CPStringBuilder(); 
        // this is far from optimal, but it works
        byte[] utf8 = str.getBytes("utf-8");
        for (int j = 0; j < utf8.length; j++)
index e1db2a18e556faf890a9d77fa0d6eddbe6aefef5..52d297a3c174643f7c4f44273d761f161255399f 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.net;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.net.loader.FileURLLoader;
 import gnu.java.net.loader.JarURLLoader;
 import gnu.java.net.loader.RemoteURLLoader;
@@ -452,7 +454,7 @@ public class URLClassLoader extends SecureClassLoader
   {
     // Compute the name of the package as it may appear in the
     // Manifest.
-    StringBuilder xform = new StringBuilder(name);
+    CPStringBuilder xform = new CPStringBuilder(name);
     for (int i = xform.length () - 1; i >= 0; --i)
       if (xform.charAt(i) == '.')
        xform.setCharAt(i, '/');
@@ -641,7 +643,7 @@ public class URLClassLoader extends SecureClassLoader
       {
        if (thisString == null)
          {
-           StringBuilder sb = new StringBuilder();
+           CPStringBuilder sb = new CPStringBuilder();
            sb.append(this.getClass().getName());
            sb.append("{urls=[" );
            URL[] thisURLs = getURLs();
index ca40c386a529fe876b46874f26cfc28f1e76dde2..fb7ab591696eb6e4f864f8c8cd974b150ca41332 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.net;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.UnsupportedEncodingException;
 
 
@@ -127,7 +129,7 @@ public class URLDecoder
     int start = 0;
     byte[] bytes = null;
     int length = str.length();
-    StringBuffer result = new StringBuffer(length);
+    CPStringBuilder result = new CPStringBuilder(length);
     while ((i = str.indexOf('%', start)) >= 0)
       {
        // Add all non-encoded characters to the result buffer
index 2f11c501b178a8308f4457b8b447abce8436728c..89d9a0bd04cf2bd2b03a7ed31646603f032693b9 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.net;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.UnsupportedEncodingException;
 
 
@@ -113,7 +115,7 @@ public class URLEncoder
     int start = 0;
     int i = 0;
 
-    StringBuilder result = new StringBuilder(length);
+    CPStringBuilder result = new CPStringBuilder(length);
     while (true)
       {
        while (i < length && isSafe(s.charAt(i)))
index 9a5d73ad0d04ee63ddee3abd9e13ced12fe35793..4748191e07b017792249b933428384c51937c596 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.net;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.File;
 import java.io.IOException;
 
@@ -510,7 +512,7 @@ public abstract class URLStreamHandler
     // Guess a reasonable size for the string buffer so we have to resize
     // at most once.
     int size = protocol.length() + authority.length() + file.length() + 24;
-    StringBuffer sb = new StringBuffer(size);
+    CPStringBuilder sb = new CPStringBuilder(size);
 
     if (protocol.length() > 0)
       {
index c2569eea9754238a669cfb3f03b3c446e1749f26..fce60c88ce29c1d1db9888de8a30fd225db721a8 100644 (file)
@@ -45,19 +45,21 @@ import gnu.classpath.Pointer;
  */
 public abstract class Buffer
 {
-  int cap = 0;
-  int limit = 0;
-  int pos = 0;
-  int mark = -1;
-  Pointer address;
+  private final int cap;
+  int limit;
+  int pos;
+  int mark;
+  final Pointer address;
 
   /**
    * Creates a new Buffer.
    *
    * Should be package private.
    */
-  Buffer (int capacity, int limit, int position, int mark)
+  Buffer (int capacity, int limit, int position, int mark, Pointer address)
   {
+    this.address = address;
+
     if (capacity < 0)
       throw new IllegalArgumentException ();
     
@@ -72,6 +74,10 @@ public abstract class Buffer
       
       this.mark = mark;
     }
+    else
+    {
+      this.mark = -1;
+    }
   }
   
   /**
index 78ad4471836a8bd930bff459c7d43f7f97ef7057..94aae4bf02186648b731779351cd456883a3de11 100644 (file)
@@ -38,6 +38,10 @@ exception statement from your version. */
 
 package java.nio;
 
+// GCJ LOCAL: Change gnu.classpath.Pointer to RawData
+import gnu.gcj.RawData;
+import gnu.classpath.Pointer;
+
 /**
  * @since 1.4
  */
@@ -45,13 +49,15 @@ public abstract class ByteBuffer extends Buffer
   implements Comparable<ByteBuffer>
 {
   ByteOrder endian = ByteOrder.BIG_ENDIAN;
+  final byte[] backing_buffer;
+  final int array_offset;
 
-  int array_offset;
-  byte[] backing_buffer;
-
-  ByteBuffer (int capacity, int limit, int position, int mark)
+  ByteBuffer (int capacity, int limit, int position, int mark,
+             RawData address, byte[] backing_buffer, int array_offset)
   {
-    super (capacity, limit, position, mark);
+    super (capacity, limit, position, mark, address);
+    this.backing_buffer = backing_buffer;
+    this.array_offset = array_offset;
   }
 
   /**
index aa51a65bdd5b02141de565434f4bad58ae68d01b..6a1ac4681dad89dedd3e301139020009a5834cbf 100644 (file)
@@ -43,13 +43,12 @@ package java.nio;
  */
 final class ByteBufferImpl extends ByteBuffer
 {
-  private boolean readOnly;
+  private final boolean readOnly;
 
-  ByteBufferImpl (byte[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
+  ByteBufferImpl (byte[] buffer, int offset, int capacity, int limit,
+                 int position, int mark, boolean readOnly)
   {
-    super (capacity, limit, position, mark);
-    this.backing_buffer = buffer;
-    this.array_offset = offset;
+    super (capacity, limit, position, mark, null, buffer, offset);
     this.readOnly = readOnly;
   }
   
@@ -90,17 +89,20 @@ final class ByteBufferImpl extends ByteBuffer
   
   public ByteBuffer slice ()
   {
-    return new ByteBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ());
+    return new ByteBufferImpl (backing_buffer, array_offset + position (),
+                              remaining (), remaining (), 0, -1, isReadOnly ());
   }
   
   public ByteBuffer duplicate ()
   {
-    return new ByteBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ());
+    return new ByteBufferImpl (backing_buffer, array_offset, capacity (),
+                              limit (), position (), mark, isReadOnly ());
   }
   
   public ByteBuffer asReadOnlyBuffer ()
   {
-    return new ByteBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true);
+    return new ByteBufferImpl (backing_buffer, array_offset, capacity (),
+                              limit (), position (), mark, true);
   }
   
   void shiftDown (int dst_offset, int src_offset, int count)
index 2feada4c81742f8b40ee7eb96d55447e744025e9..969b5bb3df34ec0b878f1dd629af46ff40c185c4 100644 (file)
@@ -38,6 +38,9 @@ exception statement from your version. */
 
 package java.nio;
 
+// GCJ LOCAL: Use RawData instead of gnu.classpath.Pointer
+import gnu.gcj.RawData;
+
 import java.io.IOException;
 
 /**
@@ -46,13 +49,15 @@ import java.io.IOException;
 public abstract class CharBuffer extends Buffer
   implements Comparable<CharBuffer>, CharSequence, Readable, Appendable
 {
-  int array_offset;
-  char[] backing_buffer;
+  final int array_offset;
+  final char[] backing_buffer;
 
-  CharBuffer (int capacity, int limit, int position, int mark)
+  CharBuffer (int capacity, int limit, int position, int mark,
+             RawData address, char[] backing_buffer, int array_offset)
   {
-    super (capacity, limit, position, mark);
-    array_offset = 0;
+    super (capacity, limit, position, mark, address);
+    this.backing_buffer = backing_buffer;
+    this.array_offset = array_offset;
   }
 
   /**
@@ -78,7 +83,8 @@ public abstract class CharBuffer extends Buffer
    */
   public static final CharBuffer wrap(char[] array, int offset, int length)
   {
-    return new CharBufferImpl(array, 0, array.length, offset + length, offset, -1, false);
+    return new CharBufferImpl(array, 0, array.length, offset + length, offset,
+                             -1, false);
   }
   
   /**
index e6097cb75160a1e9376226874c87654a06f0117c..d35ca5962f1b7bdf46c7551ce6092729fcd4916a 100644 (file)
@@ -43,7 +43,7 @@ package java.nio;
  */
 final class CharBufferImpl extends CharBuffer
 {
-  private boolean readOnly;
+  private final boolean readOnly;
 
   CharBufferImpl (int capacity)
   {
@@ -52,18 +52,14 @@ final class CharBufferImpl extends CharBuffer
   
   CharBufferImpl (char[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
   {
-    super (capacity, limit, position, mark);
-    this.backing_buffer = buffer;
-    this.array_offset = offset;
+    super (capacity, limit, position, mark, null, buffer, offset);
     this.readOnly = readOnly;
   }
   
   public CharBufferImpl (CharBufferImpl copy)
   {
-    super (copy.capacity (), copy.limit (), copy.position (), 0);
-    backing_buffer = copy.backing_buffer;
-    array_offset = copy.array_offset;
-    readOnly = copy.isReadOnly ();
+    super (copy.capacity (), copy.limit (), copy.position (), 0, null, copy.backing_buffer, copy.array_offset);
+    this.readOnly = copy.isReadOnly ();
   }
   
   public boolean isReadOnly ()
index 26aad1c38ac7b26664076c2b6b83ef425c7bcf72..3003670d83ce8e345ed0c7a72a62f298d64f9326 100644 (file)
@@ -48,7 +48,7 @@ final class CharSequenceBuffer
   /**
    * The wrapped char sequence.
    */
-  private CharSequence charSequence;
+  private final CharSequence charSequence;
 
   /**
    * Creates a new CharSequenceBuffer.
@@ -63,9 +63,8 @@ final class CharSequenceBuffer
   CharSequenceBuffer(CharSequence charSeq, int capacity, int limit,
                      int position, int mark, int offs)
   {
-    super(capacity, limit, position, mark);
-    charSequence = charSeq;
-    array_offset = offs;
+    super(capacity, limit, position, mark, null, null, offs);
+    this.charSequence = charSeq;
   }
 
   /**
@@ -105,7 +104,7 @@ final class CharSequenceBuffer
    */
   public CharBuffer duplicate()
   {
-    return new CharSequenceBuffer(charSequence, cap, limit, pos, mark, 0);
+    return new CharSequenceBuffer(charSequence, capacity(), limit, pos, mark, 0);
   }
 
   /**
index 33bbac8b0008eedb757f6e20213fbbd8cb08c8fd..98a27a6e601c6e0bc0679ba3362797a77fd8169a 100644 (file)
@@ -41,33 +41,33 @@ package java.nio;
 class CharViewBufferImpl extends CharBuffer
 {
   /** Position in bb (i.e. a byte offset) where this buffer starts. */
-  private int offset;
-  private ByteBuffer bb;
-  private boolean readOnly;
-  private ByteOrder endian;
+  private final int offset;
+  private final ByteBuffer bb;
+  private final boolean readOnly;
+  private final ByteOrder endian;
   
   CharViewBufferImpl (ByteBuffer bb, int capacity)
   {
-    super (capacity, capacity, 0, -1);
+    super (capacity, capacity, 0, -1, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, bb.position()) : null,
+          null, 0);
     this.bb = bb;
     this.offset = bb.position();
     this.readOnly = bb.isReadOnly();
     this.endian = bb.order();
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
   
   public CharViewBufferImpl (ByteBuffer bb, int offset, int capacity,
                             int limit, int position, int mark,
                             boolean readOnly, ByteOrder endian)
   {
-    super (capacity, limit, position, mark);
+    super (capacity, limit, position, mark, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, offset) : null,
+          null, 0);
     this.bb = bb;
     this.offset = offset;
     this.readOnly = readOnly;
     this.endian = endian;
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
 
   /**
index 8c907f597f0a2b3b4f1b2f601d598511a58bafb4..60df3611ac9760d3ac19a0b4430485f5f48c4473 100644 (file)
@@ -104,18 +104,16 @@ abstract class DirectByteBufferImpl extends ByteBuffer
 
   DirectByteBufferImpl(int capacity)
   {
-    super(capacity, capacity, 0, -1);
+    super(capacity, capacity, 0, -1, VMDirectByteBuffer.allocate(capacity), null, 0);
     this.owner = this;
-    this.address = VMDirectByteBuffer.allocate(capacity);
   }
 
   DirectByteBufferImpl(Object owner, Pointer address,
                        int capacity, int limit,
                        int position)
   {
-    super(capacity, limit, position, -1);
+    super(capacity, limit, position, -1, address, null, 0);
     this.owner = owner;
-    this.address = address;
   }
 
   /**
index be7861cbd5e4770eb5815454e06e7454fb4d8971..1a51f1889be93573e82d5773af8945d5953a4ce6 100644 (file)
@@ -38,19 +38,24 @@ exception statement from your version. */
 
 package java.nio;
 
+// GCJ LOCAL: Change gnu.classpath.Pointer to RawData
+import gnu.gcj.RawData;
+
 /**
  * @since 1.4
  */
 public abstract class DoubleBuffer extends Buffer
   implements Comparable<DoubleBuffer>
 {
-  int array_offset;
-  double[] backing_buffer;
+  final int array_offset;
+  final double[] backing_buffer;
 
-  DoubleBuffer (int capacity, int limit, int position, int mark)
+  DoubleBuffer (int capacity, int limit, int position, int mark,
+               RawData address, double[] backing_buffer, int array_offset)
   {
-    super (capacity, limit, position, mark);
-    array_offset = 0;
+    super (capacity, limit, position, mark, address);
+    this.backing_buffer = backing_buffer;
+    this.array_offset = array_offset;
   }
 
   /**
index 98e8e974fff1610e3d7569d926e3613f652cfedd..bc292df646d508731961ddef92dd2d83f3874e47 100644 (file)
@@ -43,18 +43,17 @@ package java.nio;
  */
 final class DoubleBufferImpl extends DoubleBuffer
 {
-  private boolean readOnly;
+  private final boolean readOnly;
 
   DoubleBufferImpl (int capacity)
   {
     this (new double [capacity], 0, capacity, capacity, 0, -1, false);
   }
   
-  DoubleBufferImpl (double[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
+  DoubleBufferImpl (double[] buffer, int offset, int capacity, int limit,
+                   int position, int mark, boolean readOnly)
   {
-    super (capacity, limit, position, mark);
-    this.backing_buffer = buffer;
-    this.array_offset = offset;
+    super (capacity, limit, position, mark, null, buffer, offset);
     this.readOnly = readOnly;
   }
   
@@ -65,17 +64,20 @@ final class DoubleBufferImpl extends DoubleBuffer
   
   public DoubleBuffer slice ()
   {
-    return new DoubleBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ());
+    return new DoubleBufferImpl (backing_buffer, array_offset + position (),
+                                remaining (), remaining (), 0, -1, isReadOnly ());
   }
   
   public DoubleBuffer duplicate ()
   {
-    return new DoubleBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ());
+    return new DoubleBufferImpl (backing_buffer, array_offset, capacity (),
+                                limit (), position (), mark, isReadOnly ());
   }
   
   public DoubleBuffer asReadOnlyBuffer ()
   {
-    return new DoubleBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true);
+    return new DoubleBufferImpl (backing_buffer, array_offset, capacity (),
+                                limit (), position (), mark, true);
   }
   
   public DoubleBuffer compact ()
index d1399154a71a73d6d18be229bfe9519e3004027f..d82fa92c4a7da53a710b4f8fabc3fd622a36bd67 100644 (file)
@@ -41,33 +41,31 @@ package java.nio;
 final class DoubleViewBufferImpl extends DoubleBuffer
 {
   /** Position in bb (i.e. a byte offset) where this buffer starts. */
-  private int offset;
-  private ByteBuffer bb;
-  private boolean readOnly;
-  private ByteOrder endian;
+  private final int offset;
+  private final ByteBuffer bb;
+  private final boolean readOnly;
+  private final ByteOrder endian;
   
   DoubleViewBufferImpl (ByteBuffer bb, int capacity)
   {
-    super (capacity, capacity, 0, -1);
+    super (capacity, capacity, 0, -1, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, bb.position()) : null, null, 0);
     this.bb = bb;
     this.offset = bb.position();
     this.readOnly = bb.isReadOnly();
     this.endian = bb.order();
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
   
   public DoubleViewBufferImpl (ByteBuffer bb, int offset, int capacity,
                                int limit, int position, int mark,
                                boolean readOnly, ByteOrder endian)
   {
-    super (capacity, limit, position, mark);
+    super (capacity, limit, position, mark, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, bb.position()) : null, null, 0);
     this.bb = bb;
     this.offset = offset;
     this.readOnly = readOnly;
     this.endian = endian;
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
 
   /**
index 62e353a68184bf2041017856492efe0a56ebc5c1..ce40a09e37bf6c48943731be706cf7647abc40e2 100644 (file)
@@ -38,19 +38,24 @@ exception statement from your version. */
 
 package java.nio;
 
+// GCJ LOCAL: Change gnu.classpath.Pointer to RawData
+import gnu.gcj.RawData;
+
 /**
  * @since 1.4
  */
 public abstract class FloatBuffer extends Buffer
   implements Comparable<FloatBuffer>
 {
-  int array_offset;
-  float[] backing_buffer;
+  final int array_offset;
+  final float[] backing_buffer;
 
-  FloatBuffer (int capacity, int limit, int position, int mark)
+  FloatBuffer (int capacity, int limit, int position, int mark,
+              RawData address, float[] backing_buffer, int array_offset)
   {
-    super (capacity, limit, position, mark);
-    array_offset = 0;
+    super (capacity, limit, position, mark, address);
+    this.backing_buffer = backing_buffer;
+    this.array_offset = array_offset;
   }
 
   /**
index f1182ba38f3da858d0a2166a1bcd7aaa2277ca4d..5d0e7ca8590ee2e0cbe21b9acc9125c19da3a74d 100644 (file)
@@ -43,18 +43,17 @@ package java.nio;
  */
 final class FloatBufferImpl extends FloatBuffer
 {
-  private boolean readOnly;
+  private final boolean readOnly;
 
   FloatBufferImpl (int capacity)
   {
     this (new float [capacity], 0, capacity, capacity, 0, -1, false);
   }
   
-  FloatBufferImpl (float[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
+  FloatBufferImpl (float[] buffer, int offset, int capacity, int limit,
+                  int position, int mark, boolean readOnly)
   {
-    super (capacity, limit, position, mark);
-    this.backing_buffer = buffer;
-    this.array_offset = offset;
+    super (capacity, limit, position, mark, null, buffer, offset);
     this.readOnly = readOnly;
   }
   
index 8bb342d103d775105031150df19dca253b58f482..9f10d824fe055a1f5c360cb02304626bdc8d4bb3 100644 (file)
@@ -41,33 +41,31 @@ package java.nio;
 final class FloatViewBufferImpl extends FloatBuffer
 {
   /** Position in bb (i.e. a byte offset) where this buffer starts. */
-  private int offset;
-  private ByteBuffer bb;
-  private boolean readOnly;
-  private ByteOrder endian;
+  private final int offset;
+  private final ByteBuffer bb;
+  private final boolean readOnly;
+  private final ByteOrder endian;
   
   FloatViewBufferImpl (ByteBuffer bb, int capacity)
   {
-    super (capacity, capacity, 0, -1);
+    super (capacity, capacity, 0, -1, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, bb.position()):null, null, 0);
     this.bb = bb;
     this.offset = bb.position();
     this.readOnly = bb.isReadOnly();
     this.endian = bb.order();
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
   
   public FloatViewBufferImpl (ByteBuffer bb, int offset, int capacity,
                              int limit, int position, int mark,
                              boolean readOnly, ByteOrder endian)
   {
-    super (capacity, limit, position, mark);
+    super (capacity, limit, position, mark, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0);
     this.bb = bb;
     this.offset = offset;
     this.readOnly = readOnly;
     this.endian = endian;
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
 
   /**
index d6fcb51ddf08e66ef97c228ed324603f74bb75e1..9234c33ef6dc86fd79b96a38644aed3bd7c42d27 100644 (file)
@@ -38,19 +38,24 @@ exception statement from your version. */
 
 package java.nio;
 
+// GCJ LOCAL: Change gnu.classpath.Pointer to RawData
+import gnu.gcj.RawData;
+
 /**
  * @since 1.4
  */
 public abstract class IntBuffer extends Buffer
   implements Comparable<IntBuffer>
 {
-  int array_offset;
-  int[] backing_buffer;
+  final int array_offset;
+  final int[] backing_buffer;
 
-  IntBuffer (int capacity, int limit, int position, int mark)
+  IntBuffer (int capacity, int limit, int position, int mark, RawData address,
+            int[] backing_buffer, int array_offset)
   {
-    super (capacity, limit, position, mark);
-    array_offset = 0;
+    super (capacity, limit, position, mark, address);
+    this.backing_buffer = backing_buffer;
+    this.array_offset = array_offset;
   }
 
   /**
@@ -70,7 +75,8 @@ public abstract class IntBuffer extends Buffer
    */
   public static final IntBuffer wrap (int[] array, int offset, int length)
   {
-    return new IntBufferImpl (array, 0, array.length, offset + length, offset, -1, false);
+    return new IntBufferImpl (array, 0, array.length, offset + length, offset,
+                             -1, false);
   }
 
   /**
index 2bd1842440eb51f0bf83d9e304a021700abda097..c332715fbdaa9d3ecf54b79c8c0fd06dfb878d46 100644 (file)
@@ -43,7 +43,7 @@ package java.nio;
  */
 final class IntBufferImpl extends IntBuffer
 {
-  private boolean readOnly;
+  private final boolean readOnly;
 
   IntBufferImpl (int capacity)
   {
@@ -52,9 +52,7 @@ final class IntBufferImpl extends IntBuffer
   
   IntBufferImpl (int[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
   {
-    super (capacity, limit, position, mark);
-    this.backing_buffer = buffer;
-    this.array_offset = offset;
+    super (capacity, limit, position, mark, null, buffer, offset);
     this.readOnly = readOnly;
   }
   
index cd8307f3ebd99073fc5977e230cefc9ba6554f07..9af5d58a4dc9ac3dbf0f2229294c32d5beac26e6 100644 (file)
@@ -41,33 +41,31 @@ package java.nio;
 final class IntViewBufferImpl extends IntBuffer
 {
   /** Position in bb (i.e. a byte offset) where this buffer starts. */
-  private int offset;
-  private ByteBuffer bb;
-  private boolean readOnly;
-  private ByteOrder endian;
+  private final int offset;
+  private final ByteBuffer bb;
+  private final boolean readOnly;
+  private final ByteOrder endian;
   
   IntViewBufferImpl (ByteBuffer bb, int capacity)
   {
-    super (capacity, capacity, 0, -1);
+    super (capacity, capacity, 0, -1, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, bb.position()):null, null, 0);
     this.bb = bb;
     this.offset = bb.position();
     this.readOnly = bb.isReadOnly();
     this.endian = bb.order();
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
   
   public IntViewBufferImpl (ByteBuffer bb, int offset, int capacity,
                            int limit, int position, int mark,
                            boolean readOnly, ByteOrder endian)
   {
-    super (capacity, limit, position, mark);
+    super (capacity, limit, position, mark, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0);
     this.bb = bb;
     this.offset = offset;
     this.readOnly = readOnly;
     this.endian = endian;
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
 
   /**
index 9c3bfa627416977fc0212d1ae5d5b931ae05a1fc..1195cc88ce2ee4c0c5d9e6df2d73f56b66c0b898 100644 (file)
@@ -38,19 +38,24 @@ exception statement from your version. */
 
 package java.nio;
 
+// GCJ LOCAL: Change gnu.classpath.Pointer to RawData
+import gnu.gcj.RawData;
+
 /**
  * @since 1.4
  */
 public abstract class LongBuffer extends Buffer
   implements Comparable<LongBuffer>
 {
-  int array_offset;
-  long[] backing_buffer;
+  final int array_offset;
+  final long[] backing_buffer;
 
-  LongBuffer (int capacity, int limit, int position, int mark)
+  LongBuffer (int capacity, int limit, int position, int mark,
+             RawData address, long[] backing_buffer, int array_offset)
   {
-    super (capacity, limit, position, mark);
-    array_offset = 0;
+    super (capacity, limit, position, mark, address);
+    this.backing_buffer = backing_buffer;
+    this.array_offset = array_offset;
   }
 
   /**
index c04c41775a92ba2cc3a114683bcf878bde0e6045..4cf922b149d604443d5647b9f0097a1e6bfd9d64 100644 (file)
@@ -43,18 +43,17 @@ package java.nio;
  */
 final class LongBufferImpl extends LongBuffer
 {
-  private boolean readOnly;
+  private final boolean readOnly;
 
   LongBufferImpl (int capacity)
   {
     this (new long [capacity], 0, capacity, capacity, 0, -1, false);
   }
   
-  LongBufferImpl (long[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
+  LongBufferImpl (long[] buffer, int offset, int capacity, int limit,
+                 int position, int mark, boolean readOnly)
   {
-    super (capacity, limit, position, mark);
-    this.backing_buffer = buffer;
-    this.array_offset = offset;
+    super (capacity, limit, position, mark, null, buffer, offset);
     this.readOnly = readOnly;
   }
   
@@ -65,17 +64,20 @@ final class LongBufferImpl extends LongBuffer
   
   public LongBuffer slice ()
   {
-    return new LongBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ());
+    return new LongBufferImpl (backing_buffer, array_offset + position (),
+                              remaining (), remaining (), 0, -1, isReadOnly ());
   }
   
   public LongBuffer duplicate ()
   {
-    return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ());
+    return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (),
+                              position (), mark, isReadOnly ());
   }
   
   public LongBuffer asReadOnlyBuffer ()
   {
-    return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true);
+    return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (),
+                              position (), mark, true);
   }
   
   public LongBuffer compact ()
index eefbcbdc8dd55363f08b398fb3d6cd655ac66e08..b775a99462fa2b072247a43ea79eade0fb044e3d 100644 (file)
@@ -41,33 +41,31 @@ package java.nio;
 final class LongViewBufferImpl extends LongBuffer
 {
   /** Position in bb (i.e. a byte offset) where this buffer starts. */
-  private int offset;
-  private ByteBuffer bb;
-  private boolean readOnly;
-  private ByteOrder endian;
+  private final int offset;
+  private final ByteBuffer bb;
+  private final boolean readOnly;
+  private final ByteOrder endian;
   
   LongViewBufferImpl (ByteBuffer bb, int capacity)
   {
-    super (capacity, capacity, 0, -1);
+    super (capacity, capacity, 0, -1, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, bb.position()):null, null, 0);
     this.bb = bb;
     this.offset = bb.position();
     this.readOnly = bb.isReadOnly();
     this.endian = bb.order();
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
   
   public LongViewBufferImpl (ByteBuffer bb, int offset, int capacity,
                             int limit, int position, int mark,
                             boolean readOnly, ByteOrder endian)
   {
-    super (capacity, limit, position, mark);
+    super (capacity, limit, position, mark, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0);
     this.bb = bb;
     this.offset = offset;
     this.readOnly = readOnly;
     this.endian = endian;
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
 
   /**
index 25b0993079a6632dbca859e3cb7cb15b940972e1..1f82f823f5abfe3b4c5e2bb5aa92ee3476055b89 100644 (file)
@@ -38,15 +38,19 @@ exception statement from your version. */
 
 package java.nio;
 
+// GCJ LOCAL: Use RawData instead of gnu.classpath.Pointer
+import gnu.gcj.RawData;
+
 /**
  * @author Michael Koch (konqueror@gmx.de)
  * @since 1.4
  */
 public abstract class MappedByteBuffer extends ByteBuffer
 {
-  MappedByteBuffer (int capacity, int limit, int position, int mark)
+  MappedByteBuffer (int capacity, int limit, int position, int mark,
+                   RawData address)
   {
-    super (capacity, limit, position, mark);
+    super (capacity, limit, position, mark, address, null, 0);
   }
   
   void forceImpl()
index a53040f576c3f32f41af25aea4157d5d96d20a05..f11d1e72eb26c44630a39321575cfc568981df61 100644 (file)
@@ -44,7 +44,7 @@ import java.io.IOException;
 
 final class MappedByteBufferImpl extends MappedByteBuffer
 {
-  boolean readOnly;
+  private final boolean readOnly;
 
   /** Posix uses this for the pointer returned by mmap;
    * Win32 uses it for the pointer returned by MapViewOfFile. */
@@ -56,8 +56,7 @@ final class MappedByteBufferImpl extends MappedByteBuffer
   public MappedByteBufferImpl(Pointer address, int size, boolean readOnly)
     throws IOException
   {
-    super(size, size, 0, -1);
-    this.address = address;
+    super(size, size, 0, -1, address);
     this.readOnly = readOnly;
   }
 
index 33e458a4b1e57f0ac416870dad64748f1988e92c..f15c063557710223427266ce8fc53a087b27f64c 100644 (file)
@@ -38,19 +38,25 @@ exception statement from your version. */
 
 package java.nio;
 
+// GCJ LOCAL: Use RawData instead of gnu.classpath.Pointer
+import gnu.gcj.RawData;
+
 /**
  * @since 1.4
  */
 public abstract class ShortBuffer extends Buffer
   implements Comparable<ShortBuffer>
 {
-  int array_offset;
-  short[] backing_buffer;
+  final int array_offset;
+  final short[] backing_buffer;
 
-  ShortBuffer (int capacity, int limit, int position, int mark)
+  ShortBuffer (int capacity, int limit, int position,
+              int mark, RawData address, short[] backing_buffer,
+              int array_offset)
   {
-    super (capacity, limit, position, mark);
-    array_offset = 0;
+    super (capacity, limit, position, mark, address);
+    this.backing_buffer = backing_buffer;
+    this.array_offset = array_offset;
   }
 
   /**
index 50f65ecbfc03dc51d5aba8a2eb69d47d4e60a782..3a8ff57f8226e99ef8482170a409d2cb15a570a9 100644 (file)
@@ -43,18 +43,17 @@ package java.nio;
  */
 final class ShortBufferImpl extends ShortBuffer
 {
-  private boolean readOnly;
+  private final boolean readOnly;
 
   ShortBufferImpl (int capacity)
   {
     this (new short [capacity], 0, capacity, capacity, 0, -1, false);
   }
   
-  ShortBufferImpl (short[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
+  ShortBufferImpl (short[] buffer, int offset, int capacity,
+                  int limit, int position, int mark, boolean readOnly)
   {
-    super (capacity, limit, position, mark);
-    this.backing_buffer = buffer;
-    this.array_offset = offset;
+    super (capacity, limit, position, mark, null, buffer, offset);
     this.readOnly = readOnly;
   }
   
@@ -65,17 +64,20 @@ final class ShortBufferImpl extends ShortBuffer
   
   public ShortBuffer slice ()
   {
-    return new ShortBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ());
+    return new ShortBufferImpl (backing_buffer, array_offset + position (),
+                               remaining (), remaining (), 0, -1, isReadOnly ());
   }
   
   public ShortBuffer duplicate ()
   {
-    return new ShortBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ());
+    return new ShortBufferImpl (backing_buffer, array_offset, capacity (),
+                               limit (), position (), mark, isReadOnly ());
   }
   
   public ShortBuffer asReadOnlyBuffer ()
   {
-    return new ShortBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true);
+    return new ShortBufferImpl (backing_buffer, array_offset, capacity (), limit (),
+                               position (), mark, true);
   }
   
   public ShortBuffer compact ()
index df7133612d26ad994f951c1cb52881047b974846..3c7c774780296c0ad0b92f10a6b6a5ad6ae102cc 100644 (file)
@@ -41,33 +41,31 @@ package java.nio;
 final class ShortViewBufferImpl extends ShortBuffer
 {
   /** Position in bb (i.e. a byte offset) where this buffer starts. */
-  private int offset;
-  private ByteBuffer bb;
-  private boolean readOnly;
-  private ByteOrder endian;
+  private final int offset;
+  private final ByteBuffer bb;
+  private final boolean readOnly;
+  private final ByteOrder endian;
 
   ShortViewBufferImpl (ByteBuffer bb, int capacity)
   {
-    super (capacity, capacity, 0, -1);
+    super (capacity, capacity, 0, -1, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, bb.position()):null, null, 0);
     this.bb = bb;
     this.offset = bb.position();
     this.readOnly = bb.isReadOnly();
     this.endian = bb.order();
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
   
   public ShortViewBufferImpl (ByteBuffer bb, int offset, int capacity,
                              int limit, int position, int mark,
                              boolean readOnly, ByteOrder endian)
   {
-    super (capacity, limit, position, mark);
+    super (capacity, limit, position, mark, bb.isDirect() ?
+           VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0);
     this.bb = bb;
     this.offset = offset;
     this.readOnly = readOnly;
     this.endian = endian;
-    if (bb.isDirect())
-      this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
   }
 
   /**
index c46695837a7cc8acd7e212b933a98568e84c2a3b..78210b34d4da70f934a69b8afeb92e511e6628c1 100644 (file)
@@ -37,8 +37,9 @@ exception statement from your version. */
 
 package java.nio.channels;
 
-import java.io.IOException;
+import gnu.java.lang.CPStringBuilder;
 
+import java.io.IOException;
 
 /**
  * @since 1.4
@@ -132,7 +133,7 @@ public abstract class FileLock
    */
   public final String toString()
   {
-    StringBuffer buf = new StringBuffer(getClass().getName());
+    CPStringBuilder buf = new CPStringBuilder(getClass().getName());
     buf.append("[");
     buf.append(position);
     buf.append(":");
index 0f201cacf63608a079441b089f99fef2c89de19c..eb51100304f50dfefd8166b2fdea741c4dcb576c 100644 (file)
@@ -462,8 +462,8 @@ public abstract class Activatable
    *          means anonymous port.
    * @param serverSocketFactory the server socket factory
    */
-  public static Remote export(ActivationID id, Remote obj, int port,
-                              RMIServerSocketFactory serverSocketFactory)
+  private static Remote export(ActivationID id, Remote obj, int port,
+                              RMIServerSocketFactory serverSocketFactory)
       throws RemoteException
   {
     ActivatableServerRef sref = null;
@@ -479,7 +479,7 @@ public abstract class Activatable
    * 
    * @return the object id
    */
-  public static ObjID makeId(ActivationID aid)
+  private static ObjID makeId(ActivationID aid)
   {
     ObjID id = new ObjID(0);
     
index dc989c265d8167c3d67538166541de85eea8e1b1..22b737367df34a7a2c0dba128ad633cfa8c35e27 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.rmi.dgc;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -168,7 +170,7 @@ public final class VMID     implements Serializable
    */
   public String toString ()
   {
-    StringBuffer buf = new StringBuffer ("[VMID: ");
+    CPStringBuilder buf = new CPStringBuilder ("[VMID: ");
     
     for (int i = 0; i < addr.length; i++)
       {
index e2a17d4bf9c4926f964c45c435e1ef5064df4380..da1ea46d2147e32ef549230ac042f383bc1d7f19 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.security;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Engine;
 
 import java.lang.reflect.InvocationTargetException;
@@ -171,7 +173,7 @@ public class AlgorithmParameterGenerator
                                                         Provider provider)
       throws NoSuchAlgorithmException
   {
-    StringBuilder sb = new StringBuilder()
+    CPStringBuilder sb = new CPStringBuilder()
         .append("AlgorithmParameterGenerator for algorithm [")
         .append(algorithm).append("] from provider[")
         .append(provider).append("] could not be created");
index f5e5063a17d8dc55e3cd20157ee7c1db7dd9dc76..3de8ad02c054259eda5b112edbd00874e6283e53 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.security;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Engine;
 
 import java.io.IOException;
@@ -175,7 +177,7 @@ public class AlgorithmParameters
                                                 Provider provider)
       throws NoSuchAlgorithmException
   {
-    StringBuilder sb = new StringBuilder("AlgorithmParameters for algorithm [")
+    CPStringBuilder sb = new CPStringBuilder("AlgorithmParameters for algorithm [")
         .append(algorithm).append("] from provider[")
         .append(provider).append("] could not be created");
     Throwable cause;
index b516170281cfccd4ee457497c8109796ef7a11fb..90eb089079da2ff4c1fa6d7aba3d18ffeed08a5a 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.security;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -259,7 +261,7 @@ public class CodeSource implements Serializable
    */
   public String toString()
   {
-    StringBuffer sb = new StringBuffer("(").append(location);
+    CPStringBuilder sb = new CPStringBuilder("(").append(location);
     if (certs == null || certs.isEmpty())
       sb.append(" <no certificates>");
     else
index 043dd59a15120378c2ca3e20251c5d093ac12ac2..f06004bad7e49a5cbc63db82c453c0eddab58c0a 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.security;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Engine;
 
 import java.lang.reflect.InvocationTargetException;
@@ -165,7 +167,7 @@ public class KeyFactory
   public static KeyFactory getInstance(String algorithm, Provider provider)
       throws NoSuchAlgorithmException
   {
-    StringBuilder sb = new StringBuilder("KeyFactory for algorithm [")
+    CPStringBuilder sb = new CPStringBuilder("KeyFactory for algorithm [")
         .append(algorithm).append("] from provider[")
         .append(provider).append("] could not be created");
     Throwable cause;
index 6974035fd6b0fe3eb3ae3fc918e98aec667c3455..f4ca20611e1711f0f0468461e38830becc530bb5 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.security;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Engine;
 
 import java.lang.reflect.InvocationTargetException;
@@ -165,7 +167,7 @@ public abstract class KeyPairGenerator extends KeyPairGeneratorSpi
                                             Provider provider)
     throws NoSuchAlgorithmException
   {
-    StringBuilder sb = new StringBuilder("KeyPairGenerator for algorithm [")
+    CPStringBuilder sb = new CPStringBuilder("KeyPairGenerator for algorithm [")
         .append(algorithm).append("] from provider[")
         .append(provider).append("] ");
     Object o;
index 0f8e934e5e90894b09e831614a3d989e96d9ef71..d94d96b1aa612e195aec16997a79b3eb10d1a43a 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.security;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Engine;
 import java.nio.ByteBuffer;
 
@@ -146,7 +148,7 @@ public abstract class MessageDigest extends MessageDigestSpi
   public static MessageDigest getInstance(String algorithm, Provider provider)
     throws NoSuchAlgorithmException
   {
-    StringBuilder sb = new StringBuilder("MessageDigest for algorithm [")
+    CPStringBuilder sb = new CPStringBuilder("MessageDigest for algorithm [")
         .append(algorithm).append("] from provider[")
         .append(provider).append("] ");
     Object o;
@@ -235,7 +237,7 @@ public abstract class MessageDigest extends MessageDigestSpi
    * @param input The input byte buffer.
    * @since 1.5
    */
-  public void update (ByteBuffer input)
+  public final void update (ByteBuffer input)
   {
     engineUpdate (input);
   }
@@ -363,7 +365,7 @@ public abstract class MessageDigest extends MessageDigestSpi
     if (digest == null)
       return "incomplete";
 
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     int len = digest.length;
     for (int i = 0; i < len; ++i)
       {
index 9072d95652e105eff5c431a1893344a353b9e1df..8f3e2a236460ffdc6b9341338fc9b16bf8798e62 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.security;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
 /**
@@ -181,7 +183,7 @@ public abstract class Permission implements Guard, Serializable
    */
   public String toString()
   {
-    StringBuffer string = new StringBuffer(); 
+    CPStringBuilder string = new CPStringBuilder(); 
     
     string = string.append('(');
     string = string.append(getClass().getName());
index c5849830ad74ab6a2e247ec92df2bc2bc064ae45..ef87cc7e1d5a3552ac74893c70e02135d2702ecb 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.security;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 import java.util.Enumeration;
 
@@ -156,7 +158,7 @@ public abstract class PermissionCollection implements Serializable
    */
   public String toString()
   {
-    StringBuffer sb = new StringBuffer(super.toString());
+    CPStringBuilder sb = new CPStringBuilder(super.toString());
 
     sb.append(" (\n");
     Enumeration<Permission> e = elements();
index 33af8fdb843ca457e8b03b45b3fdcda235e3e91e..b1eb049e3f2cde93d3b84b9a0aecd0bfd29ff75b 100644 (file)
@@ -39,6 +39,8 @@ package java.security;
 
 import gnu.classpath.SystemProperties;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * This class represents a group of classes, along with their granted
  * permissions. The classes are identified by a {@link CodeSource}. Thus, any
@@ -204,7 +206,7 @@ public class ProtectionDomain
   public String toString()
   {
     String linesep = SystemProperties.getProperty("line.separator");
-    StringBuffer sb = new StringBuffer("ProtectionDomain (").append(linesep);
+    CPStringBuilder sb = new CPStringBuilder("ProtectionDomain (").append(linesep);
 
     if (code_source == null)
       sb.append("CodeSource:null");
index 005f4670efc686828d4e95d8a33e0211de81fc6c..f965782369c8a6ee71a8ddafb74566fd3707db70 100644 (file)
@@ -39,6 +39,7 @@ exception statement from your version. */
 package java.security;
 
 import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
 import gnu.java.security.Engine;
 import gnu.java.security.action.GetSecurityPropertyAction;
 import gnu.java.security.jce.prng.Sha160RandomSpi;
@@ -262,7 +263,7 @@ public class SecureRandom extends Random
   public static SecureRandom getInstance(String algorithm, Provider provider)
       throws NoSuchAlgorithmException
   {
-    StringBuilder sb = new StringBuilder("SecureRandom for algorithm [")
+    CPStringBuilder sb = new CPStringBuilder("SecureRandom for algorithm [")
         .append(algorithm).append("] from provider[")
         .append(provider).append("] could not be created");
     Throwable cause;
index 1245707f7af2f74a4ade4b58a15874316e1ef11e..26333b686870c773906a53284da569d20a8a0328 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.security;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Engine;
 
 import java.lang.reflect.InvocationTargetException;
@@ -198,7 +200,7 @@ public abstract class Signature extends SignatureSpi
   public static Signature getInstance(String algorithm, Provider provider)
     throws NoSuchAlgorithmException
   {
-    StringBuilder sb = new StringBuilder("Signature algorithm [")
+    CPStringBuilder sb = new CPStringBuilder("Signature algorithm [")
         .append(algorithm).append("] from provider[")
         .append(provider).append("] ");
     Object o;
index 781eb3e2776ee8bb4cae3930f312608cb0b68e7c..7211647a40ec71ab216dab0d840b1fe57ce97f15 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.security.cert;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.ByteArrayInputStream;
 import java.io.NotSerializableException;
 import java.io.ObjectStreamException;
@@ -196,7 +198,7 @@ public abstract class CertPath implements Serializable
     List l = getCertificates();
     int size = l.size();
     int i = 0;
-    StringBuffer result = new StringBuffer(type);
+    CPStringBuilder result = new CPStringBuilder(type);
     result.append(" Cert Path: length = ").append(size).append(".\n[\n");
     while (--size >= 0)
       result.append(l.get(i++)).append('\n');
index 519ed2b6c52327e00a5d6012522e82042de5706e..99f7c9752524f79960fb1db4f073f95ec214ede4 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.security.cert;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Engine;
 
 import java.lang.reflect.InvocationTargetException;
@@ -182,7 +184,7 @@ public class CertPathBuilder
   public static CertPathBuilder getInstance(String algorithm, Provider provider)
       throws NoSuchAlgorithmException
   {
-    StringBuilder sb = new StringBuilder("CertPathBuilder for algorithm [")
+    CPStringBuilder sb = new CPStringBuilder("CertPathBuilder for algorithm [")
         .append(algorithm).append("] from provider[")
         .append(provider).append("] could not be created");
     Throwable cause;
index bf7c9746e24e4d4de3d0bd94dc2f41ef56804714..af08b54a84ec02c6d7b2a6bcf4eff47885399a92 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.security.cert;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Engine;
 
 import java.lang.reflect.InvocationTargetException;
@@ -196,7 +198,7 @@ public class CertPathValidator {
                                               Provider provider)
     throws NoSuchAlgorithmException
   {
-    StringBuilder sb = new StringBuilder("CertPathValidator for algorithm [")
+    CPStringBuilder sb = new CPStringBuilder("CertPathValidator for algorithm [")
         .append(algorithm).append("] from provider[")
         .append(provider).append("] could not be created");
     Throwable cause;
index a27086562e68a57cbeaba0f81c6c2a603002a6aa..1ebdb50337b9f5e95781c2923b94ffe798b01a21 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.security.cert;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.Engine;
 
 import java.lang.reflect.InvocationTargetException;
@@ -207,7 +209,7 @@ public class CertStore
                                       Provider provider)
       throws InvalidAlgorithmParameterException, NoSuchAlgorithmException
   {
-    StringBuilder sb = new StringBuilder("CertStore of type [")
+    CPStringBuilder sb = new CPStringBuilder("CertStore of type [")
         .append(type).append("] from provider[")
         .append(provider).append("] could not be created");
     Throwable cause;
index 5e234cec158f20bd8947260f6ef4618b52e69021..fd5f1f87fd0ea9b19a75e6681b20dfc64f53315f 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.security.cert;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.security.InvalidAlgorithmParameterException;
 import java.security.KeyStore;
 import java.security.KeyStoreException;
@@ -140,7 +142,7 @@ public class PKIXBuilderParameters extends PKIXParameters
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer(super.toString());
+    CPStringBuilder buf = new CPStringBuilder(super.toString());
     buf.insert(buf.length() - 2, "; Max Path Length=" + maxPathLength);
     return buf.toString();
   }
index 5091dd412980c5f336f31749a9af7024edb22ff6..fa160913c7db49ab307366a70db254e309bbf7a7 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.security.cert;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * The result of calling the {@link
  * CertPathBuilder#build(java.security.cert.CertPathParameters)} method
@@ -95,7 +97,7 @@ public class PKIXCertPathBuilderResult extends PKIXCertPathValidatorResult
 
   public String toString()
   {
-    StringBuffer buf = new StringBuffer(super.toString());
+    CPStringBuilder buf = new CPStringBuilder(super.toString());
     buf.insert(buf.length() - 2, "; CertPath=" + certPath);
     return buf.toString();
   }
index b50f3f31245aab38f8d63e79dbb9c94332cea795..d4d9f99844de86609fc02589363238586e32fb84 100644 (file)
@@ -124,7 +124,7 @@ PolicyQualifierId ::= OBJECT IDENTIFIER
    *
    * @return This structure's OID field.
    */
-  public String getPolicyQualifierId()
+  public final String getPolicyQualifierId()
   {
     return oid.toString();
   }
@@ -137,7 +137,7 @@ PolicyQualifierId ::= OBJECT IDENTIFIER
    *
    * @return The encoded form.
    */
-  public byte[] getEncoded()
+  public final byte[] getEncoded()
   {
     return (byte[]) encoded.clone();
   }
@@ -149,7 +149,7 @@ PolicyQualifierId ::= OBJECT IDENTIFIER
    *
    * @return The encoded qualifier.
    */
-  public byte[] getPolicyQualifier()
+  public final byte[] getPolicyQualifier()
   {
     if (qualifier == null)
       return new byte[0];
index 56b171369fb6e0eb4b9ddaad4fefd1b13e552a9e..d412a1ae39e7774fceb70d42c252774e4de22634 100644 (file)
@@ -39,6 +39,7 @@ exception statement from your version. */
 package java.security.cert;
 
 import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
 import gnu.java.security.der.DERReader;
 import gnu.java.security.der.DERValue;
 
@@ -335,7 +336,7 @@ public class X509CRLSelector implements CRLSelector, Cloneable
    */
   public String toString()
   {
-    StringBuffer str = new StringBuffer(X509CRLSelector.class.getName());
+    CPStringBuilder str = new CPStringBuilder(X509CRLSelector.class.getName());
     String nl = SystemProperties.getProperty("line.separator");
     String eol = ";" + nl;
 
index 7a7db086b0a8cd7720c94a7177be536514dd400f..4115fffacfa560cd5c4a7e9575affdc75bc84e88 100644 (file)
@@ -39,6 +39,7 @@ exception statement from your version. */
 package java.security.cert;
 
 import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
 import gnu.java.security.OID;
 import gnu.java.security.x509.GnuPKIExtension;
 import gnu.java.security.x509.ext.CertificatePolicies;
@@ -1251,7 +1252,7 @@ public class X509CertSelector implements CertSelector, Cloneable
   
   public String toString()
   {
-    StringBuffer str = new StringBuffer(X509CertSelector.class.getName());
+    CPStringBuilder str = new CPStringBuilder(X509CertSelector.class.getName());
     String nl = SystemProperties.getProperty("line.separator");
     String eol = ";" + nl;
     str.append(" {").append(nl);
index 6785bd3c58fe04aa1d3a121c8b92890a28a95dc6..cb338bfe8df4ffe6f24ab1d6df63ca5577f66f4e 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -182,7 +184,7 @@ public class AttributedString
     if ((begin < 0) || (end < begin) || end > aci.getEndIndex())
       throw new IllegalArgumentException("Bad index values");
 
-    StringBuffer sb = new StringBuffer("");
+    CPStringBuilder sb = new CPStringBuilder("");
 
     // Get the valid attribute list
     Set allAttribs = aci.getAllAttributeKeys();
index 629701c171abdd00ce9746f314e9675f6db4b6a0..a552dd4a6c230d8e5625ea4e5300ad6c64011c15 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Vector;
 
 /**
@@ -98,8 +100,8 @@ public class ChoiceFormat extends NumberFormat
     int index = 0, max = newPattern.length();
     Vector stringVec = new Vector ();
     Vector limitVec = new Vector ();
-    StringBuffer buf = new StringBuffer ();
-    
+    final CPStringBuilder buf = new CPStringBuilder ();
+
     while (true)
       {
        // Find end of double.
@@ -442,7 +444,7 @@ public class ChoiceFormat extends NumberFormat
     this.choiceLimits = (double[]) choiceLimits.clone();
   }
 
-  private void quoteString (StringBuffer dest, String text)
+  private void quoteString (CPStringBuilder dest, String text)
   {
     int max = text.length();
     for (int i = 0; i < max; ++i)
@@ -473,7 +475,7 @@ public class ChoiceFormat extends NumberFormat
    */
   public String toPattern ()
   {
-    StringBuffer result = new StringBuffer ();
+    CPStringBuilder result = new CPStringBuilder ();
     for (int i = 0; i < choiceLimits.length; ++i)
       {
        result.append(choiceLimits[i]);
index 08c5cb56361e132c99fc76f6cd5f937d109073c4..f6e0022aa3d47c7b6f1da1eb25af466b0180cc3e 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.ArrayList;
 
 /* Written using "Java Class Libraries", 2nd edition, plus online
@@ -416,7 +418,7 @@ public final class CollationElementIterator
    */
   public void setText(CharacterIterator source)
   {
-    StringBuffer expand = new StringBuffer();
+    CPStringBuilder expand = new CPStringBuilder();
 
     // For now assume we read from the beginning of the string.
     for (char c = source.first();
index 16ee6b1241b8931a40a69a094e6de24978c10bfd..d6cb5ac0eb92749a4d9ecae41f0dc5711d09b5a7 100644 (file)
@@ -406,10 +406,12 @@ public abstract class Collator implements Comparator<Object>, Cloneable
   // Decompose a single character and append results to the buffer.
   // FIXME: for libgcj this is a native method which handles
   // decomposition.  For Classpath, for now, it does nothing.
+  /*
   final void decomposeCharacter (char c, StringBuffer buf)
   {
     buf.append (c);
   }
+  */
 
   /**
    * This is the current collation decomposition setting.
index 53b757e88b6ade2bbd0ccb24242214c1dbe49f75..dabcb867079fecd6730563928f0e41090f544c02 100644 (file)
@@ -219,80 +219,6 @@ public abstract class DateFormat extends Format implements Cloneable
    * In the U.S. locale, this is 'z'.
    */
   public static final int TIMEZONE_FIELD = 17;
-  /**
-   * Represents the position of the ISO year
-   * pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'Y'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  This value may
-   * differ from the normal year value.
-   */
-  public static final int ISO_YEAR_FIELD = 18;
-  /**
-   * Represents the position of the localized
-   * day of the week pattern character in the
-   * array of localized pattern characters.
-   * In the U.S. locale, this is 'e'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  This value only
-   * differs from the day of the week with
-   * numeric formatting, in which case the
-   * locale's first day of the week is used.
-   */
-  public static final int LOCALIZED_DAY_OF_WEEK_FIELD = 19;
-  /**
-   * Represents the position of the extended year
-   * pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'u'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  This value modifies
-   * the year value, so as to incorporate the era.
-   * For example, in the Gregorian calendar system,
-   * the extended year is negative instead of being
-   * marked as BC.
-   */
-  public static final int EXTENDED_YEAR_FIELD = 20;
-  /**
-   * Represents the position of the modified Julian
-   * day pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'g'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  This value differs
-   * from the standard Julian day in that days
-   * are marked from midnight onwards rather than
-   * noon, and the local time zone affects the value.
-   * In simple terms, it can be thought of as all
-   * the date fields represented as a single number.
-   */
-  public static final int MODIFIED_JULIAN_DAY_FIELD = 21;
-  /**
-   * Represents the position of the millisecond
-   * in the day pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'A'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  This value represents
-   * all the time fields (excluding the time zone)
-   * numerically, giving the number of milliseconds
-   * into the day (e.g. 10 in the morning would
-   * be 10 * 60 * 60 * 1000).  Any daylight savings
-   * offset also affects this value.
-   */
-  public static final int MILLISECOND_IN_DAY_FIELD = 22;
-  /**
-   * Represents the position of the RFC822
-   * timezone pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'Z'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  The value is the offset
-   * of the current time from GMT e.g. -0500 would
-   * be five hours prior to GMT.
-   */
-  public static final int RFC822_TIMEZONE_FIELD = 23;
 
   public static class Field extends Format.Field
   {
@@ -336,18 +262,6 @@ public abstract class DateFormat extends Format implements Cloneable
        = new Field("hour0", Calendar.HOUR);
     public static final DateFormat.Field TIME_ZONE
        = new Field("timezone", Calendar.ZONE_OFFSET);
-    public static final DateFormat.Field ISO_YEAR
-       = new Field("iso year", Calendar.YEAR);
-    public static final DateFormat.Field LOCALIZED_DAY_OF_WEEK
-       = new Field("localized day of week", Calendar.DAY_OF_WEEK);
-    public static final DateFormat.Field EXTENDED_YEAR
-      = new Field("extended year", Calendar.YEAR);
-    public static final DateFormat.Field MODIFIED_JULIAN_DAY
-       = new Field("julian day", -1);
-    public static final DateFormat.Field MILLISECOND_IN_DAY
-       = new Field("millisecond in day", -1);
-    public static final DateFormat.Field RFC822_TIME_ZONE
-       = new Field("rfc822 timezone", Calendar.ZONE_OFFSET);
 
     static final DateFormat.Field[] allFields =
     {
@@ -355,9 +269,7 @@ public abstract class DateFormat extends Format implements Cloneable
       HOUR_OF_DAY0, MINUTE, SECOND, MILLISECOND,
       DAY_OF_WEEK, DAY_OF_YEAR, DAY_OF_WEEK_IN_MONTH,
       WEEK_OF_YEAR, WEEK_OF_MONTH, AM_PM, HOUR1, HOUR0,
-      TIME_ZONE, ISO_YEAR, LOCALIZED_DAY_OF_WEEK,
-      EXTENDED_YEAR, MODIFIED_JULIAN_DAY, MILLISECOND_IN_DAY,
-      RFC822_TIME_ZONE
+      TIME_ZONE
     };
 
     // For deserialization
index 406376a0ff5047799efab3daa6757c4b2117c142..ed953dd0733794fc7c89cc909c2efb8884248fb6 100644 (file)
@@ -40,12 +40,17 @@ package java.text;
 
 import gnu.java.locale.LocaleHelper;
 
+import java.io.IOException;
+
 import java.text.spi.DateFormatSymbolsProvider;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
+import java.util.Map;
 import java.util.MissingResourceException;
+import java.util.Properties;
 import java.util.ResourceBundle;
 import java.util.ServiceLoader;
 import java.util.TimeZone;
@@ -73,6 +78,27 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
   String[] shortWeekdays;
   String[] weekdays;
 
+  /**
+   * The set of properties for obtaining the metazone data.
+   */
+  private static transient final Properties properties;
+
+  /**
+   * Reads in the properties.
+   */
+  static
+  {
+    properties = new Properties();
+    try 
+      {
+        properties.load(DateFormatSymbols.class.getResourceAsStream("metazones.properties"));
+      }
+    catch (IOException exception)
+      {
+        System.out.println("Failed to load weeks resource: " + exception);
+      }
+  }
+
   /**
    * The timezone strings supplied by the runtime.
    */
@@ -109,11 +135,71 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
     List<String[]> allZones = new ArrayList<String[]>();
     try
       {
-        int index = 0;
-        String data = res.getString("zoneStrings");
-       String[] zones = data.split("\u00a9");
-       for (int a = 0; a < zones.length; ++a)
-         allZones.add(zones[a].split("\u00ae"));
+       Map<String,String[]> systemZones = new HashMap<String,String[]>();
+       while (true)
+         {
+           int index = 0;
+           String country = locale.getCountry();
+           String data = res.getString("zoneStrings");
+           String[] zones = data.split("\u00a9");
+           for (int a = 0; a < zones.length; ++a)
+             {
+               String[] strings = zones[a].split("\u00ae");
+               String type = properties.getProperty(strings[0] + "." + country);
+               if (type == null)
+                 type = properties.getProperty(strings[0] + ".DEFAULT");
+               if (type != null)
+                 strings[0] = type;
+               if (strings.length < 5)
+                 {
+                   String[] newStrings = new String[5];
+                   System.arraycopy(strings, 0, newStrings, 0, strings.length);
+                   for (int b = strings.length; b < newStrings.length; ++b)
+                     newStrings[b] = "";
+                   strings = newStrings;
+                 }
+               String[] existing = systemZones.get(strings[0]);
+               if (existing != null && existing.length > 1)
+                 {
+                   for (int b = 1; b < existing.length; ++b)
+                     if (!existing[b].equals(""))
+                       strings[b] = existing[b];          
+                 }
+               systemZones.put(strings[0], strings);
+             }
+           if (res.getLocale() == Locale.ROOT)
+             break;
+           else
+             res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", 
+                                            LocaleHelper.getFallbackLocale(res.getLocale()),
+                                            ClassLoader.getSystemClassLoader());
+         }
+       /* Final sanity check for missing values */
+       for (String[] zstrings : systemZones.values())
+         {
+           if (zstrings[1].equals("") && zstrings[2].equals(""))
+             {
+               for (Map.Entry<Object,Object> entry : properties.entrySet())
+                 {
+                   String val = (String) entry.getValue();
+                   if (val.equals(zstrings[0]))
+                     {
+                       String key = (String) entry.getKey();
+                       String metazone = key.substring(0, key.indexOf("."));
+                       String type = properties.getProperty(metazone + "." + locale.getCountry());
+                       if (type == null)
+                         type = properties.getProperty(metazone + ".DEFAULT");
+                       if (type != null)
+                         {
+                           String[] ostrings = systemZones.get(type);
+                           zstrings[1] = ostrings[1];
+                           zstrings[2] = ostrings[2];
+                         }
+                     }
+                 }
+             }
+         }
+       allZones.addAll(systemZones.values());  
       }
     catch (MissingResourceException e)
       {
@@ -189,9 +275,9 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
     shortMonths = getStringArray(res, "shortMonths");
     shortWeekdays = getStringArray(res, "shortWeekdays");
     weekdays = getStringArray(res, "weekdays");
-    runtimeZoneStrings = getZoneStrings(res, locale);
     dateFormats = formatsForKey(res, "DateFormat");
     timeFormats = formatsForKey(res, "TimeFormat");
+    runtimeZoneStrings = getZoneStrings(res, locale);
   }
 
   /**
index 61732c1123d6145d498faa9e8dbc022c460da8b5..425174437a7c88adc8a7495affc7c966790b94ae 100644 (file)
@@ -43,6 +43,8 @@ exception statement from your version. */
 
 package java.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.math.BigDecimal;
 import java.math.BigInteger;
 
@@ -71,7 +73,7 @@ import java.util.Locale;
  * Generally, to get an instance of DecimalFormat you should call the factory
  * methods in the <code>NumberFormat</code> base class.
  * 
- * @author Mario Torre <neugens@limasoftware.net>
+ * @author Mario Torre (neugens@limasoftware.net)
  * @author Tom Tromey (tromey@cygnus.com)
  * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
  */
@@ -310,7 +312,7 @@ public class DecimalFormat extends NumberFormat
    * field. If used on output defines the offsets of the alignment field.
    * @return The String representation of this long.
    */
-  public StringBuffer format(Object obj, StringBuffer sbuf, FieldPosition pos)
+  public final StringBuffer format(Object obj, StringBuffer sbuf, FieldPosition pos)
   {
     if (obj instanceof BigInteger)
       {
@@ -588,7 +590,7 @@ public class DecimalFormat extends NumberFormat
       return Double.valueOf(Double.NaN);
    
     // this will be our final number
-    StringBuffer number = new StringBuffer();
+    CPStringBuilder number = new CPStringBuilder();
     
     // special character
     char minus = symbols.getMinusSign();
@@ -799,7 +801,30 @@ public class DecimalFormat extends NumberFormat
    */
   public void setCurrency(Currency currency)
   {
-    symbols.setCurrency(currency);
+    Currency current = symbols.getCurrency();
+    if (current != currency)
+      {
+       String oldSymbol = symbols.getCurrencySymbol();
+       int len = oldSymbol.length();
+       symbols.setCurrency(currency);
+       String newSymbol = symbols.getCurrencySymbol();
+       int posPre = positivePrefix.indexOf(oldSymbol);
+       if (posPre != -1)
+         positivePrefix = positivePrefix.substring(0, posPre) +
+           newSymbol + positivePrefix.substring(posPre+len);
+       int negPre = negativePrefix.indexOf(oldSymbol);
+       if (negPre != -1)
+         negativePrefix = negativePrefix.substring(0, negPre) +
+           newSymbol + negativePrefix.substring(negPre+len);
+       int posSuf = positiveSuffix.indexOf(oldSymbol);
+       if (posSuf != -1)
+         positiveSuffix = positiveSuffix.substring(0, posSuf) +
+           newSymbol + positiveSuffix.substring(posSuf+len);
+       int negSuf = negativeSuffix.indexOf(oldSymbol);
+       if (negSuf != -1)
+         negativeSuffix = negativeSuffix.substring(0, negSuf) +
+           newSymbol + negativeSuffix.substring(negSuf+len);
+      }
   }
   
   /**
@@ -1003,7 +1028,7 @@ public class DecimalFormat extends NumberFormat
    */
   private String patternChars (DecimalFormatSymbols syms)
   {
-    StringBuffer buf = new StringBuffer ();
+    CPStringBuilder buf = new CPStringBuilder ();
     
     buf.append(syms.getDecimalSeparator());
     buf.append(syms.getDigit());
@@ -1028,9 +1053,9 @@ public class DecimalFormat extends NumberFormat
    * @param patChars
    * @return A StringBuffer with special characters quoted.
    */
-  private StringBuffer quoteFix(String text, String patChars)
+  private CPStringBuilder quoteFix(String text, String patChars)
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     
     int len = text.length();
     char ch;
@@ -1058,7 +1083,7 @@ public class DecimalFormat extends NumberFormat
    */
   private String computePattern(DecimalFormatSymbols symbols)
   {
-    StringBuffer mainPattern = new StringBuffer();
+    StringBuilder mainPattern = new StringBuilder();
     
     // We have to at least emit a zero for the minimum number of
     // digits. Past that we need hash marks up to the grouping
@@ -1225,7 +1250,7 @@ public class DecimalFormat extends NumberFormat
   private int scanFix(String pattern, DecimalFormatSymbols sourceSymbols,
                       int start, boolean prefix)
   {
-    StringBuffer buffer = new StringBuffer();
+    CPStringBuilder buffer = new CPStringBuilder();
     
     // the number portion is always delimited by one of those
     // characters
@@ -1296,7 +1321,7 @@ public class DecimalFormat extends NumberFormat
             currencySymbol = this.symbols.getCurrencySymbol();
 
             // if \u00A4 is doubled, we use the international currency symbol
-            if (i < len && pattern.charAt(i + 1) == '\u00A4')
+            if ((i + 1) < len && pattern.charAt(i + 1) == '\u00A4')
               {
                 currencySymbol = this.symbols.getInternationalCurrencySymbol();
                 i++;
@@ -1320,7 +1345,7 @@ public class DecimalFormat extends NumberFormat
         else if (ch == '\'')
           {
             // QUOTE
-            if (i < len && pattern.charAt(i + 1) == '\'')
+            if ((i + 1) < len && pattern.charAt(i + 1) == '\'')
               {
                 // we need to add ' to the buffer 
                 buffer.append(ch);
@@ -1599,7 +1624,7 @@ public class DecimalFormat extends NumberFormat
                                    DecimalFormatSymbols sourceSymbols,
                                    int start)
   {
-    StringBuffer buffer = new StringBuffer();
+    StringBuilder buffer = new StringBuilder();
     
     // the number portion is always delimited by one of those
     // characters
@@ -1692,7 +1717,7 @@ public class DecimalFormat extends NumberFormat
         else if (ch == '\'')
           {
             // QUOTE
-            if (i < len && pattern.charAt(i + 1) == '\'')
+            if ((i + 1) < len && pattern.charAt(i + 1) == '\'')
               {
                 // we need to add ' to the buffer 
                 buffer.append(ch);
@@ -2180,7 +2205,7 @@ public class DecimalFormat extends NumberFormat
     else
       {
         char zero = symbols.getZeroDigit();
-        StringBuffer _result = new StringBuffer(src);
+        CPStringBuilder _result = new CPStringBuilder(src);
         for (int i = len; i < minimumDigits; i++)
           {
             _result.append(zero);
index f87ebbf138f288c1a765268f15fe7d9b4b4ac3f9..b7edf39c45ea64292f143b9de6fb8e810c552c38 100644 (file)
@@ -170,6 +170,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable
       {
        res = null;
       }
+    locale = loc;
     currency = Currency.getInstance("XXX");
     currencySymbol = "?";
     intlCurrencySymbol = "XXX";
@@ -204,7 +205,6 @@ public class DecimalFormatSymbols implements Cloneable, Serializable
     percent = safeGetChar (res, "percent", '%');
     perMill = safeGetChar (res, "perMill", '\u2030');
     zeroDigit = safeGetChar (res, "zeroDigit", '0');
-    locale = loc;
   }
 
   /**
@@ -430,7 +430,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable
   public void setCurrency (Currency currency)
   {
     intlCurrencySymbol = currency.getCurrencyCode();
-    currencySymbol = currency.getSymbol();
+    currencySymbol = currency.getSymbol(locale);
     this.currency = currency;
   }
 
index 38fda34ff645c7595077898921cd1790ed7a6e11..7159f468552b114160f8f26b3686b9e0a68f9fde 100644 (file)
@@ -81,7 +81,7 @@ public abstract class Format implements Serializable, Cloneable
    * It performs no actions, but acts as a default constructor for
    * subclasses.
    */
-  public Format ()
+  protected Format ()
   {
   }
 
index 5a595f57615a996925ff849aa128dd821a9af3f4..c5579bff1f08d39920ba7fcefe5f20e3e9657b0e 100644 (file)
@@ -194,7 +194,7 @@ public class MessageFormat extends Format
   // Helper that returns the text up to the next format opener.  The
   // text is put into BUFFER.  Returns index of character after end of
   // string.  Throws IllegalArgumentException on error.
-  private static int scanString(String pat, int index, StringBuffer buffer)
+  private static int scanString(String pat, int index, StringBuilder buffer)
   {
     int max = pat.length();
     buffer.setLength(0);
@@ -234,7 +234,7 @@ public class MessageFormat extends Format
   // This helper retrieves a single part of a format element.  Returns
   // the index of the terminating character.
   private static int scanFormatElement(String pat, int index,
-                                       StringBuffer buffer, char term)
+                                       StringBuilder buffer, char term)
   {
     int max = pat.length();
     buffer.setLength(0);
@@ -281,7 +281,7 @@ public class MessageFormat extends Format
 
   // This is used to parse a format element and whatever non-format
   // text might trail it.
-  private static int scanFormat(String pat, int index, StringBuffer buffer,
+  private static int scanFormat(String pat, int index, StringBuilder buffer,
                                 Vector elts, Locale locale)
   {
     MessageFormatElement mfe = new MessageFormatElement ();
@@ -342,7 +342,7 @@ public class MessageFormat extends Format
   {
     pattern = newPattern;
 
-    StringBuffer tempBuffer = new StringBuffer ();
+    StringBuilder tempBuffer = new StringBuilder ();
 
     int index = scanString (newPattern, 0, tempBuffer);
     leader = tempBuffer.toString();
index 4a72f443a7b5ed9b8eaf75a4407d89430ca7a8aa..0a436d0043947bd1dc3cd0905d9b62a6be408418 100644 (file)
@@ -653,7 +653,7 @@ public abstract class NumberFormat extends Format implements Cloneable
   /**
    * This is a default constructor for use by subclasses.
    */
-  public NumberFormat ()
+  protected NumberFormat ()
   {
   }
 
index 7ec18dcc92f2162db42d54c5d319acac5e2d4221..fdd1446cc0cdf628b214083ec91fe81e389de1fd 100644 (file)
@@ -404,7 +404,7 @@ public class RuleBasedCollator extends Collator
   {
     boolean ignoreChars = (base_offset == 0);
     int operator = -1;
-    StringBuffer sb = new StringBuffer();
+    StringBuilder sb = new StringBuilder();
     boolean doubleQuote = false;
     boolean eatingChars = false;
     boolean nextIsModifier = false;
index 934fb42e2a1d079c65fe10255582b6bfdb95d8cb..4dcda4f487cf4a8c1ecc87d5c3f56bf7b7fa6c27 100644 (file)
@@ -40,6 +40,8 @@ exception statement from your version. */
 
 package java.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.text.AttributedFormatBuffer;
 import gnu.java.text.FormatBuffer;
 import gnu.java.text.FormatCharacterIterator;
@@ -61,6 +63,8 @@ import java.util.regex.Pattern;
 /**
  * SimpleDateFormat provides convenient methods for parsing and formatting
  * dates using Gregorian calendars (see java.util.GregorianCalendar). 
+ * This class is not thread-safe; external synchronisation should be applied
+ * if an instance is to be accessed from multiple threads.
  */
 public class SimpleDateFormat extends DateFormat 
 {
@@ -139,9 +143,9 @@ public class SimpleDateFormat extends DateFormat
      */
     public String toString()
     {
-      StringBuilder builder;
+      CPStringBuilder builder;
 
-      builder = new StringBuilder(getClass().getName());
+      builder = new CPStringBuilder(getClass().getName());
       builder.append("[field=");
       builder.append(field);
       builder.append(", size=");
@@ -231,10 +235,16 @@ public class SimpleDateFormat extends DateFormat
    */
   private static final long serialVersionUID = 4774881970558875024L;
 
-  // This string is specified in the root of the CLDR.  We set it here
-  // rather than doing a DateFormatSymbols(Locale.US).getLocalPatternChars()
-  // since someone could theoretically change those values (though unlikely).
-  private static final String standardChars = "GyMdkHmsSEDFwWahKzYeugAZ";
+  // This string is specified in the Java class libraries.
+  private static final String standardChars = "GyMdkHmsSEDFwWahKzZ";
+
+  /**  
+   * Represents the position of the RFC822 timezone pattern character
+   * in the array of localized pattern characters.  In the
+   * U.S. locale, this is 'Z'.  The value is the offset of the current
+   * time from GMT e.g. -0500 would be five hours prior to GMT.
+   */  
+  private static final int RFC822_TIMEZONE_FIELD = 18;
 
   /**
    * Reads the serialized version of this object.
@@ -322,7 +332,7 @@ public class SimpleDateFormat extends DateFormat
                    // Look for the terminating quote.  However, if we
                    // see a '', that represents a literal quote and
                    // we must iterate.
-                   StringBuilder buf = new StringBuilder();
+                   CPStringBuilder buf = new CPStringBuilder();
                    int oldPos = i + 1;
                    do
                      {
@@ -372,7 +382,7 @@ public class SimpleDateFormat extends DateFormat
    */
   public String toString() 
   {
-    StringBuilder output = new StringBuilder(getClass().getName());
+    CPStringBuilder output = new CPStringBuilder(getClass().getName());
     output.append("[tokens=");
     output.append(tokens);
     output.append(", formatData=");
@@ -554,7 +564,7 @@ public class SimpleDateFormat extends DateFormat
                                           String oldChars, String newChars)
   {
     int len = pattern.length();
-    StringBuilder buf = new StringBuilder(len);
+    CPStringBuilder buf = new CPStringBuilder(len);
     boolean quoted = false;
     for (int i = 0;  i < len;  i++)
       {
@@ -802,7 +812,7 @@ public class SimpleDateFormat extends DateFormat
                buffer.append (zoneID);
                break;
              case RFC822_TIMEZONE_FIELD:
-               buffer.setDefaultAttribute(DateFormat.Field.RFC822_TIME_ZONE);
+               buffer.setDefaultAttribute(DateFormat.Field.TIME_ZONE);
                int pureMinutes = (calendar.get(Calendar.ZONE_OFFSET) +
                                   calendar.get(Calendar.DST_OFFSET)) / (1000 * 60);
                String sign = (pureMinutes < 0) ? "-" : "+";
index ef74342237a3537d41a9d126133b94039e17a624..a11654ebbaf56eba0c0be26cbfd103af8bd7a6ed 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.lang.reflect.Array;
 
 /**
@@ -434,7 +436,7 @@ public abstract class AbstractCollection<E>
   public String toString()
   {
     Iterator itr = iterator();
-    StringBuffer r = new StringBuffer("[");
+    CPStringBuilder r = new CPStringBuilder("[");
     boolean hasNext = itr.hasNext();
     while (hasNext)
       {
index 02a30a294de100fbbbd58daa1cbf1ff712e964a6..5d59db9a666947244007cc0a4cafb3bd10ed629b 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
 /**
@@ -524,7 +526,7 @@ public abstract class AbstractMap<K, V> implements Map<K, V>
   public String toString()
   {
     Iterator<Map.Entry<K, V>> entries = entrySet().iterator();
-    StringBuilder r = new StringBuilder("{");
+    CPStringBuilder r = new CPStringBuilder("{");
     for (int pos = size(); pos > 0; pos--)
       {
         Map.Entry<K, V> entry = entries.next();
index 0693049b53ac28e17ae914003f7a60f179d5dd96..1fb25d801524ddcf4020131f22ff771127c7f65b 100644 (file)
@@ -472,8 +472,7 @@ public class ArrayList<E> extends AbstractList<E>
     // use of a negative index will cause an ArrayIndexOutOfBoundsException,
     // a subclass of the required exception, with no effort on our part.
     if (index > size)
-      throw new IndexOutOfBoundsException("Index: " + index + ", Size: "
-                                          + size);
+      raiseBoundsError(index);
   }
 
   /**
@@ -488,10 +487,24 @@ public class ArrayList<E> extends AbstractList<E>
     // use of a negative index will cause an ArrayIndexOutOfBoundsException,
     // a subclass of the required exception, with no effort on our part.
     if (index >= size)
-      throw new IndexOutOfBoundsException("Index: " + index + ", Size: "
-                                          + size);
+      raiseBoundsError(index);
   }
 
+  /**
+   * Raise the ArrayIndexOfOutBoundsException.
+   *
+   * @param index the index of the access
+   * @throws IndexOutOfBoundsException unconditionally
+   */
+  private void raiseBoundsError(int index)
+  {
+    // Implementaion note: put in a separate method to make the JITs job easier
+    // (separate common from uncommon code at method boundaries when trivial to
+    // do so).
+    throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
+  }
+  
+  
   /**
    * Remove from this list all elements contained in the given collection.
    * This is not public, due to Sun's API, but this performs in linear
index e5f772778c2f50069a395e6d65f71b8b49d03a15..d154eb1d1ba83d5c890386c8114ea2f742697bc7 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 import java.lang.reflect.Array;
 
@@ -2935,7 +2937,7 @@ public class Arrays
   {
     if (v == null)
       return "null";
-    StringBuilder b = new StringBuilder("[");
+    CPStringBuilder b = new CPStringBuilder("[");
     for (int i = 0; i < v.length; ++i)
       {
        if (i > 0)
@@ -2957,7 +2959,7 @@ public class Arrays
   {
     if (v == null)
       return "null";
-    StringBuilder b = new StringBuilder("[");
+    CPStringBuilder b = new CPStringBuilder("[");
     for (int i = 0; i < v.length; ++i)
       {
        if (i > 0)
@@ -2979,7 +2981,7 @@ public class Arrays
   {
     if (v == null)
       return "null";
-    StringBuilder b = new StringBuilder("[");
+    CPStringBuilder b = new CPStringBuilder("[");
     for (int i = 0; i < v.length; ++i)
       {
        if (i > 0)
@@ -3001,7 +3003,7 @@ public class Arrays
   {
     if (v == null)
       return "null";
-    StringBuilder b = new StringBuilder("[");
+    CPStringBuilder b = new CPStringBuilder("[");
     for (int i = 0; i < v.length; ++i)
       {
        if (i > 0)
@@ -3023,7 +3025,7 @@ public class Arrays
   {
     if (v == null)
       return "null";
-    StringBuilder b = new StringBuilder("[");
+    CPStringBuilder b = new CPStringBuilder("[");
     for (int i = 0; i < v.length; ++i)
       {
        if (i > 0)
@@ -3045,7 +3047,7 @@ public class Arrays
   {
     if (v == null)
       return "null";
-    StringBuilder b = new StringBuilder("[");
+    CPStringBuilder b = new CPStringBuilder("[");
     for (int i = 0; i < v.length; ++i)
       {
        if (i > 0)
@@ -3067,7 +3069,7 @@ public class Arrays
   {
     if (v == null)
       return "null";
-    StringBuilder b = new StringBuilder("[");
+    CPStringBuilder b = new CPStringBuilder("[");
     for (int i = 0; i < v.length; ++i)
       {
        if (i > 0)
@@ -3089,7 +3091,7 @@ public class Arrays
   {
     if (v == null)
       return "null";
-    StringBuilder b = new StringBuilder("[");
+    CPStringBuilder b = new CPStringBuilder("[");
     for (int i = 0; i < v.length; ++i)
       {
        if (i > 0)
@@ -3111,7 +3113,7 @@ public class Arrays
   {
     if (v == null)
       return "null";
-    StringBuilder b = new StringBuilder("[");
+    CPStringBuilder b = new CPStringBuilder("[");
     for (int i = 0; i < v.length; ++i)
       {
        if (i > 0)
@@ -3122,7 +3124,7 @@ public class Arrays
     return b.toString();
   }
 
-  private static void deepToString(Object[] v, StringBuilder b, HashSet seen)
+  private static void deepToString(Object[] v, CPStringBuilder b, HashSet seen)
   {
     b.append("[");
     for (int i = 0; i < v.length; ++i)
@@ -3171,7 +3173,7 @@ public class Arrays
     if (v == null)
       return "null";
     HashSet seen = new HashSet();
-    StringBuilder b = new StringBuilder();
+    CPStringBuilder b = new CPStringBuilder();
     deepToString(v, b, seen);
     return b.toString();
   }
index e4f923b7f22adb7e16c108fa4fed071b383b0a8f..13bf8a13cffffd4cbf42517006f6d1d12d6aa912 100644 (file)
@@ -36,6 +36,9 @@ obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
 
 package java.util;
+
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
 /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
@@ -687,7 +690,7 @@ public class BitSet implements Cloneable, Serializable
    */
   public String toString()
   {
-    StringBuffer r = new StringBuffer("{");
+    CPStringBuilder r = new CPStringBuilder("{");
     boolean first = true;
     for (int i = 0; i < bits.length; ++i)
       {
index 712296b1a2a907999d1462c51a3195ee7bcf1734..0449e126db8c461dbc911544bdee5af1d76c69a0 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -484,6 +486,28 @@ public abstract class Calendar
                                     ClassLoader.getSystemClassLoader());
   }
 
+  /**
+   * The set of properties for obtaining the minimum number of days in 
+   * the first week.
+   */
+  private static transient final Properties properties;
+
+  /**
+   * Reads in the properties.
+   */
+  static
+  {
+    properties = new Properties();
+    try 
+      {
+        properties.load(Calendar.class.getResourceAsStream("weeks.properties"));
+      }
+    catch (IOException exception)
+      {
+        System.out.println("Failed to load weeks resource: " + exception);
+      }
+  }
+
   /**
    * Constructs a new Calendar with the default time zone and the default
    * locale.
@@ -505,9 +529,13 @@ public abstract class Calendar
     lenient = true;
     String[] days = { "", "sun", "mon", "tue", "wed", "thu", "fri", "sat" };
 
-    ResourceBundle rb = getBundle(locale);
-    String min = (String) rb.getObject("minNumberOfDaysInFirstWeek");
-    String first = (String) rb.getObject("firstDayOfWeek");
+    String country = locale.getCountry();
+    String min = properties.getProperty("minDays." + country);
+    if (min == null)
+      min = properties.getProperty("minDays.DEFAULT");
+    String first = properties.getProperty("firstDay." + country);
+    if (first == null)
+      first = properties.getProperty("firstDay.DEFAULT");
     try
       {
        if (min != null)
@@ -1328,7 +1356,7 @@ public abstract class Calendar
    */
   public String toString()
   {
-    StringBuilder sb = new StringBuilder(getClass().getName());
+    CPStringBuilder sb = new CPStringBuilder(getClass().getName());
     sb.append('[');
     sb.append("time=");
     if (isTimeSet)
index ae2010f1ce5b77f449d1ab076017a9b037250fcb..066c9d5389390618a48803e3179f58b3a4776100 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
 /**
@@ -1135,7 +1137,7 @@ public class Collections
      */
     public String toString()
     {
-      StringBuffer r = new StringBuffer("{");
+      CPStringBuilder r = new CPStringBuilder("{");
       for (int i = n - 1; --i > 0; )
         r.append(element).append(", ");
       r.append(element).append("}");
index b5da13c37f1a81ba9c8d1064a21a940e61ac3249..11235f14b3547690da5f55b9d131a87958b03424 100644 (file)
@@ -139,7 +139,7 @@ public final class Currency
       }
     catch (IOException exception)
       {
-        System.out.println("Failed to load currency resource: " + exception);
+        throw new InternalError("Failed to load currency resource: " + exception);
       }
   }
 
index 8646c19175e6af1e04023adea7de12002a15d0c7..5f83cd06cb3dbe30d65efbb3c4ae81e3a56d8d15 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -722,7 +724,7 @@ public class Date
     boolean localTimezone = true;
 
     // Trim out any nested stuff in parentheses now to make parsing easier.
-    StringBuilder buf = new StringBuilder();
+    CPStringBuilder buf = new CPStringBuilder();
     int parenNesting = 0;
     int len = string.length();
     for (int i = 0;  i < len;  i++)
index 82130782e0f2a3eeac827d12322ebf1aa8178d13..9217d93b6e914f8501fac9fba19d77e5add95fff 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Closeable;
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -470,7 +472,7 @@ public final class Formatter
    * @param width the width of the numeric value.
    * @param isNegative true if the value is negative.
    */
-  private void applyLocalization(StringBuilder builder, int flags, int width,
+  private void applyLocalization(CPStringBuilder builder, int flags, int width,
                                 boolean isNegative)
   {
     DecimalFormatSymbols dfsyms;
@@ -741,9 +743,9 @@ public final class Formatter
    * @param conversion the conversion character.
    * @return the result.
    */
-  private StringBuilder basicIntegralConversion(Object arg, int flags,
-                                               int width, int precision,
-                                               int radix, char conversion)
+  private CPStringBuilder basicIntegralConversion(Object arg, int flags,
+                                                 int width, int precision,
+                                                 int radix, char conversion)
   {
     assert radix == 8 || radix == 10 || radix == 16;
     noPrecision(precision);
@@ -798,7 +800,7 @@ public final class Formatter
     else
       throw new IllegalFormatConversionException(conversion, arg.getClass());
 
-    return new StringBuilder(result);
+    return new CPStringBuilder(result);
   }
 
   /** 
@@ -819,9 +821,9 @@ public final class Formatter
   {
     assert radix == 8 || radix == 16;
 
-    StringBuilder builder = basicIntegralConversion(arg, flags, width,
-                                                   precision, radix,
-                                                   conversion);
+    CPStringBuilder builder = basicIntegralConversion(arg, flags, width,
+                                                     precision, radix,
+                                                     conversion);
     int insertPoint = 0;
 
     // Insert the sign.
@@ -897,9 +899,9 @@ public final class Formatter
                                 int precision, char conversion)
     throws IOException
   {
-    StringBuilder builder = basicIntegralConversion(arg, flags, width,
-                                                   precision, 10,
-                                                   conversion);
+    CPStringBuilder builder = basicIntegralConversion(arg, flags, width,
+                                                     precision, 10,
+                                                     conversion);
     boolean isNegative = false;
     if (builder.charAt(0) == '-')
       {
@@ -920,7 +922,7 @@ public final class Formatter
    * @param conversion the formatting character to specify the type of data.
    * @param syms the date formatting symbols.
    */
-  private void singleDateTimeConversion(StringBuilder builder, Calendar cal,
+  private void singleDateTimeConversion(CPStringBuilder builder, Calendar cal,
                                        char conversion,
                                        DateFormatSymbols syms)
   {
@@ -1151,7 +1153,7 @@ public final class Formatter
     else
       syms = new DateFormatSymbols(fmtLocale);
 
-    StringBuilder result = new StringBuilder();
+    CPStringBuilder result = new CPStringBuilder();
     singleDateTimeConversion(result, cal, subConversion, syms);
 
     genericFormat(result.toString(), flags, width, precision);
index 07bd94693184031eb0f3cc56ed88472e5a102091..0851de8249add11f2ab45a5e930f79e3604143db 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -579,7 +581,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
     // would repeatedly re-lock/release the monitor, we directly use the
     // unsynchronized EntryIterator instead.
     Iterator<Map.Entry<K, V>> entries = new EntryIterator();
-    StringBuilder r = new StringBuilder("{");
+    CPStringBuilder r = new CPStringBuilder("{");
     for (int pos = size; pos > 0; pos--)
       {
         r.append(entries.next());
index cd372f245518106605f81be9128df65c241653c9..c28709f95d6beff4624d90598e3fad08a28d10fa 100644 (file)
@@ -39,6 +39,9 @@ exception statement from your version. */
 package java.util;
 
 import gnu.classpath.SystemProperties;
+
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.locale.LocaleHelper;
 
 import java.io.IOException;
@@ -548,7 +551,7 @@ public final class Locale implements Serializable, Cloneable
       return "";
     else if (country.length() == 0 && variant.length() == 0)
       return language;
-    StringBuffer result = new StringBuffer(language);
+    CPStringBuilder result = new CPStringBuilder(language);
     result.append('_').append(country);
     if (variant.length() != 0)
       result.append('_').append(variant);
@@ -922,7 +925,7 @@ public final class Locale implements Serializable, Cloneable
    */
   public String getDisplayName(Locale locale)
   {
-    StringBuffer result = new StringBuffer();
+    CPStringBuilder result = new CPStringBuilder();
     int count = 0;
     String[] delimiters = {"", " (", ","};
     if (language.length() != 0)
index e294fee7ea946c9eac13bb8881af92895e8268e5..a57004b3415975b0358d96a0db2ce6f2065cdfa6 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
@@ -46,6 +48,7 @@ import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintStream;
 import java.io.PrintWriter;
+import java.io.Reader;
 
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamConstants;
@@ -155,7 +158,7 @@ public class Properties extends Hashtable<Object, Object>
   }
 
   /**
-   * Reads a property list from an input stream.  The stream should
+   * Reads a property list from a character stream.  The stream should
    * have the following format: <br>
    *
    * An empty line or a line starting with <code>#</code> or
@@ -187,15 +190,14 @@ weekdays: Sunday,Monday,Tuesday,Wednesday,\\
 # The safest way to include a space at the end of a value:
 label   = Name:\\u0020</pre>
    *
-   * @param inStream the input stream
+   * @param inReader the input {@link java.io.Reader}.
    * @throws IOException if an error occurred when reading the input
    * @throws NullPointerException if in is null
+   * @since 1.6
    */
-  public void load(InputStream inStream) throws IOException
+  public void load(Reader inReader) throws IOException
   {
-    // The spec says that the file must be encoded using ISO-8859-1.
-    BufferedReader reader =
-      new BufferedReader(new InputStreamReader(inStream, "ISO-8859-1"));
+    BufferedReader reader = new BufferedReader(inReader);
     String line;
 
     while ((line = reader.readLine()) != null)
@@ -217,7 +219,7 @@ label   = Name:\\u0020</pre>
        // Try to short-circuit when there is no escape char.
        int start = pos;
        boolean needsEscape = line.indexOf('\\', pos) != -1;
-        StringBuilder key = needsEscape ? new StringBuilder() : null;
+        CPStringBuilder key = needsEscape ? new CPStringBuilder() : null;
         while (pos < line.length()
                && ! Character.isWhitespace(c = line.charAt(pos++))
                && c != '=' && c != ':')
@@ -360,6 +362,24 @@ label   = Name:\\u0020</pre>
       }
   }
 
+  /**
+   * Reads a property list from the supplied input stream.
+   * This method has the same functionality as {@link #load(Reader)}
+   * but the character encoding is assumed to be ISO-8859-1.
+   * Unicode characters not within the Latin1 set supplied by
+   * ISO-8859-1 should be escaped using '\\uXXXX' where XXXX
+   * is the UTF-16 code unit in hexadecimal.
+   *
+   * @param inStream the byte stream to read the property list from.
+   * @throws IOException if an I/O error occurs.
+   * @see #load(Reader)
+   * @since 1.2
+   */
+  public void load(InputStream inStream) throws IOException
+  {
+    load(new InputStreamReader(inStream, "ISO-8859-1"));
+  }
+
   /**
    * Calls <code>store(OutputStream out, String header)</code> and
    * ignores the IOException that may be thrown.
@@ -421,7 +441,7 @@ label   = Name:\\u0020</pre>
     
     Iterator iter = entrySet ().iterator ();
     int i = size ();
-    StringBuilder s = new StringBuilder (); // Reuse the same buffer.
+    CPStringBuilder s = new CPStringBuilder (); // Reuse the same buffer.
     while (--i >= 0)
       {
         Map.Entry entry = (Map.Entry) iter.next ();
@@ -564,7 +584,7 @@ label   = Name:\\u0020</pre>
    *        leading spaces must be escaped for the value
    * @see #store(OutputStream, String)
    */
-  private void formatForOutput(String str, StringBuilder buffer, boolean key)
+  private void formatForOutput(String str, CPStringBuilder buffer, boolean key)
   {
     if (key)
       {
@@ -745,7 +765,7 @@ label   = Name:\\u0020</pre>
                             Boolean.FALSE);
         XMLStreamReader reader = factory.createXMLStreamReader(in);
         String name, key = null;
-        StringBuffer buf = null;
+        CPStringBuilder buf = null;
         while (reader.hasNext())
           {
             switch (reader.next())
@@ -760,7 +780,7 @@ label   = Name:\\u0020</pre>
                         String msg = "missing 'key' attribute";
                         throw new InvalidPropertiesFormatException(msg);
                       }
-                    buf = new StringBuffer();
+                    buf = new CPStringBuilder();
                   }
                 else if (!"properties".equals(name) && !"comment".equals(name))
                   {
index 53a1af5360bd36e9b44cc880da7c53bb4b1ecaec..b528f08ca85ae28373e2f640a63f2bc43598358a 100644 (file)
@@ -40,6 +40,7 @@ package java.util;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.Reader;
 
 /**
  * This class is a concrete <code>ResourceBundle</code> that gets it
@@ -97,7 +98,8 @@ public class PropertyResourceBundle extends ResourceBundle
   private Properties properties;
 
   /**
-   * Creates a new property resource bundle.
+   * Creates a new property resource bundle.  The property file must
+   * be encoded using ISO-8859-1.
    *
    * @param stream an input stream, where the resources are read from
    * @throws NullPointerException if stream is null
@@ -109,6 +111,21 @@ public class PropertyResourceBundle extends ResourceBundle
     properties.load(stream);
   }
 
+  /**
+   * Creates a new property resource bundle.  The encoding of the property
+   * file is determined by the supplied {@link Reader} object.
+   *
+   * @param reader an input stream, where the resources are read from
+   * @throws NullPointerException if stream is null
+   * @throws IOException if reading the stream fails
+   * @since 1.6
+   */
+  public PropertyResourceBundle(Reader reader) throws IOException
+  {
+    properties = new Properties();
+    properties.load(reader);
+  }
+
   /**
    * Called by <code>getObject</code> when a resource is needed. This
    * returns the resource given by the key.
index 9b82bc80152a563fffbd8a67d45d2026b0fd863e..21243403c5faa891c4cc113e8a484da5d4c87272 100644 (file)
@@ -41,6 +41,8 @@ package java.util;
 
 import gnu.classpath.VMStackWalker;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.InputStream;
 
@@ -121,9 +123,10 @@ public abstract class ResourceBundle
    * 
    * @see BundleKey
    */
-  private static Map bundleCache = new LinkedHashMap(CACHE_SIZE + 1, 0.75F, true)
+  private static Map<BundleKey,Object> bundleCache =
+    new LinkedHashMap<BundleKey,Object>(CACHE_SIZE + 1, 0.75F, true)
   {
-    public boolean removeEldestEntry(Map.Entry entry)
+    public boolean removeEldestEntry(Map.Entry<BundleKey,Object> entry)
     {
       return size() > CACHE_SIZE;
     }
@@ -294,14 +297,29 @@ public abstract class ResourceBundle
           && locale.equals(key.locale)
           && classLoader.equals(key.classLoader);
     }    
+
+    public String toString()
+    {
+      CPStringBuilder builder = new CPStringBuilder(getClass().getName());
+      builder.append("[defaultLocale=");
+      builder.append(defaultLocale);
+      builder.append(",baseName=");
+      builder.append(baseName);
+      builder.append(",locale=");
+      builder.append(locale);
+      builder.append(",classLoader=");
+      builder.append(classLoader);
+      builder.append("]");
+      return builder.toString();
+    }
   }
   
   /** A cache lookup key. This avoids having to a new one for every
    *  getBundle() call. */
-  private static BundleKey lookupKey = new BundleKey();
+  private static final BundleKey lookupKey = new BundleKey();
   
   /** Singleton cache entry to represent previous failed lookups. */
-  private static Object nullEntry = new Object();
+  private static final Object nullEntry = new Object();
 
   /**
    * Get the appropriate ResourceBundle for the given locale. The following
@@ -452,7 +470,7 @@ public abstract class ResourceBundle
     ResourceBundle bundle = null;
     try
       {
-        Class rbClass;
+        Class<?> rbClass;
         if (classloader == null)
           rbClass = Class.forName(localizedName);
         else
@@ -495,7 +513,7 @@ public abstract class ResourceBundle
   }
 
   /**
-   * Tries to load the bundle for a given locale, also loads the backup
+   * Tries to load the bundle for a given locale, also loads the backup
    * locales with the same language.
    *
    * @param baseName the raw bundle name, without locale qualifiers
@@ -515,9 +533,9 @@ public abstract class ResourceBundle
     
     int baseLen = baseName.length();
 
-    // Build up a StringBuffer containing the complete bundle name, fully
+    // Build up a CPStringBuilder containing the complete bundle name, fully
     // qualified by locale.
-    StringBuffer sb = new StringBuffer(baseLen + variant.length() + 7);
+    CPStringBuilder sb = new CPStringBuilder(baseLen + variant.length() + 7);
 
     sb.append(baseName);
     
@@ -568,4 +586,40 @@ public abstract class ResourceBundle
     
     return first;
   }
+
+  /**
+   * Remove all resources from the cache that were loaded
+   * using the class loader of the calling class.
+   *
+   * @since 1.6
+   */
+  public static final void clearCache()
+  {
+    clearCache(VMStackWalker.getCallingClassLoader());
+  }
+
+  /**
+   * Remove all resources from the cache that were loaded
+   * using the specified class loader.
+   *
+   * @param loader the loader used for the bundles that will be removed.
+   * @throws NullPointerException if {@code loader} is {@code null}.
+   * @since 1.6
+   */
+  public static final void clearCache(ClassLoader loader)
+  {
+    if (loader == null)
+      throw new NullPointerException("The loader can not be null.");
+    synchronized (ResourceBundle.class)
+      {    
+       Iterator<BundleKey> iter = bundleCache.keySet().iterator();
+       while (iter.hasNext())
+         {
+           BundleKey key = iter.next();
+           if (key.classLoader == loader)
+             iter.remove();
+         }
+      }
+  }
+
 }
diff --git a/libjava/classpath/java/util/Scanner.java b/libjava/classpath/java/util/Scanner.java
new file mode 100644 (file)
index 0000000..cc39f19
--- /dev/null
@@ -0,0 +1,2223 @@
+/* java.util.Scanner -- Parses primitive types and strings using regexps
+   Copyright (C) 2007  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.util;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.channels.ReadableByteChannel;
+
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.text.NumberFormat;
+import java.text.ParseException;
+
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.regex.MatchResult;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @author E0327023 Hernadi Laszlo
+ */
+public class Scanner 
+  implements Iterator <String>
+{
+  private static final String NOT_LONG = "\" is not a long";   //$NON-NLS-1$
+
+  private static final String ERR_PREFIX = "\"";       //$NON-NLS-1$
+
+  private static final String NOT_INT = "\" is not an integer";        //$NON-NLS-1$
+
+  private static final String NOT_DOUBLE = "\" is not a double";       //$NON-NLS-1$
+
+  private static final String NOT_BYTE = "\" is not a byte";   //$NON-NLS-1$
+
+  private static final String NOT_BOOLEAN = "\" is not a boolean";     //$NON-NLS-1$
+
+  private static final String IS_NOT = "\" is not ";   //$NON-NLS-1$
+
+  private static final String DEFAULT_PATTERN_S = "\\p{javaWhitespace}+";      //$NON-NLS-1$
+
+  private static final Pattern DEFAULT_PATTERN =
+    Pattern.compile (DEFAULT_PATTERN_S);
+
+  private static final String BIG_INTEGER = "BigInteger";      //$NON-NLS-1$
+
+  private final static String NEW_LINE =
+    System.getProperty ("line.separator");
+
+  private IOException lastIOException = null;
+
+  /**
+   * An InputStream source if a Constructor with an InputStream source is called, otherwise it
+   * stays <source> null </source>.
+   */
+  private InputStream bIS = null;
+
+  /**
+   * Length of the input Buffer, which is the maximum bytes to be read at once.
+   */
+  private final int MaxBufferLen = 1000000;
+
+  /**
+   * Minimum buffer length. If there are less chars in the Buffer than this value reading from
+   * source is tried.
+   */
+  private final int MIN_BUF_LEN = 100;
+
+  /**
+   * Maximum number of processed chars in the Buffer. If exeeded, all processed chars from the
+   * beginning of the Buffer will be discarded to save space. The bytes left are copyed into a new
+   * Buffer.
+   */
+  private final int MAX_PREFIX = 10000;
+
+  /**
+   * The Buffer which is used by the Matcher to find given patterns. It is filled up when matcher
+   * hits end or <code> MIN_BUF_LEN </code> is reached.
+   */
+  private String actBuffer = new String ();
+
+  /**
+   * The current radix to use by the methods getNextXXX and hasNextXXX.
+   */
+  private int currentRadix = 10;
+
+  /**
+   * The current locale.
+   * 
+   * @see #useLocale(Locale)
+   * @see #locale()
+   */
+  private Locale actLocale = Locale.getDefault ();
+
+  /**
+   * The current pattern for the matcher.
+   */
+  private Pattern p = DEFAULT_PATTERN;
+
+  /**
+   * The current position in the Buffer, at which the next match should start.
+   */
+  private int actPos = 0;
+
+  /**
+   * A global buffer to save new allocations by reading from source.
+   */
+  private final byte[] tmpBuffer = new byte[this.MaxBufferLen];
+
+  /**
+   * The charsetName to use with the source.
+   */
+  private String charsetName = null;
+
+  /**
+   * The Matcher which is used.
+   */
+  private Matcher myMatcher = this.p.matcher (this.actBuffer);
+
+  /**
+   * The MatchResult is generated at each match, even if match() isn't called.
+   */
+  private MatchResult actResult = null;
+
+  /**
+   * A Readable source if a Constructor with a Readable source is called, otherwise it stays
+   * <source> null </source>.
+   */
+  private Readable readableSource = null;
+  
+  /**
+   * A ReadableByteChannel source if a Constructor with a ReadableByteChannel source is called,
+   * otherwise it stays <source> null </source>.
+   */
+  private ReadableByteChannel rbcSource = null;
+
+  /**
+   * Indicates if the close() method was called.
+   */
+  private boolean isClosed = false;
+  
+  /**
+   * For performance reasons the last Found is saved, if a hasNextXXX method was called.
+   */
+  private String lastFound = null;
+
+  private boolean lastFoundPresent = false;
+
+  private int lastNextPos = 0;
+
+  private int lastPatternHash = 0;
+
+  private int last_RegionStart = 0;
+
+  private int last_RegionEnd = 0;
+
+  private boolean last_anchor = false;
+
+  private boolean last_transparent = false;
+
+  private MatchResult lastResult = null;
+
+  /**
+   * To keep track of the current position in the stream for the toString method, each time
+   * processed chars are removed the amount is added to processedChars.
+   */
+  private int procesedChars = 0;
+
+  /**
+   * needInput is set <code> true </code> before a read method, and if there is no input it blocks
+   * and stays <code>true</code>. Right after a read it is set to <code>false</code>.
+   */
+  private boolean needInput = false;
+
+  private boolean skipped = false;
+
+  /**
+   * <code> {@link #doSkipp} </code> indicates that the found pattern belongs to the result. If
+   * <code> {@link #doSkipp} </code> is false the match result ends at the beginning of the match.
+   * In both cases the current position is set after the pattern, if the found pattern has to be
+   * removed, a nextXXX method is called.
+   */
+  private boolean doSkipp = false;
+
+  /**
+   * Indicates if the last match was valid or not.
+   */
+  private boolean matchValid = false;
+
+  private NumberFormat actFormat = NumberFormat.getInstance (this.actLocale);
+
+  private DecimalFormat df = (DecimalFormat) this.actFormat;
+
+  /**
+   * Indicates if current Locale should be used at the input.
+   */
+  private boolean useLocale = true;
+
+  private DecimalFormatSymbols dfs =
+    new DecimalFormatSymbols (this.actLocale);
+
+  /**
+   * Constructs a new Scanner with the given File as source.
+   * {@link #Scanner(InputStream, String)} is called with <code> null </code> as charsetName.
+   * 
+   * @param source
+   *            The File to use as source.
+   * @throws FileNotFoundException
+   *             If the file is not found an Exception is thrown.
+   */
+  public Scanner (final File source) throws FileNotFoundException      // TESTED
+  {
+    this (source, null);
+  }
+  
+  /**
+   * Constructs a new Scanner with the given File as source. <br>
+   * {@link #Scanner(InputStream, String)} is called with the given charsetName.
+   * 
+   * @param source
+   *            The File to use as source.
+   * @param charsetName
+   *            Current charset name of the file. If charsetName is null it behaves if it was not
+   *            set.
+   * @throws FileNotFoundException
+   *             If the file is not found an Exception is thrown.
+   */
+  public Scanner (final File source,
+                 final String charsetName) throws FileNotFoundException
+  {
+    this (new FileInputStream (source), charsetName);
+  }
+
+  /**
+   * Constructs a new Scanner with the given inputStream. <br>
+   * {@link #Scanner(InputStream, String)} is called with <code> null </code> as charsetName.
+   * 
+   * @param source
+   *            The InputStream to use as source.
+   */
+  public Scanner (final InputStream source)    // TESTED
+  {
+    this (source, null);
+  }
+
+  /**
+   * Constructs a new Scanner with the InputSream and a charsetName. Afterwards the Buffer is
+   * filled.
+   * 
+   * @param source
+   *            The InputStream to use as source.
+   * @param charsetName
+   *            The charsetName to apply on the source's data.
+   */
+  public Scanner (final InputStream source, final String charsetName)
+  {
+    this.bIS = (new BufferedInputStream (source));
+    this.charsetName = charsetName;
+    myFillBuffer ();
+  }
+  
+  /**
+   * Constructs a new Scanner with a Readable input as source.
+   * 
+   * @param source
+   *            The Readable to use as source.
+   */
+  public Scanner (final Readable source)
+  {
+    this.readableSource = source;
+    myFillBuffer ();
+  }
+
+  /**
+   * Constructs a new Scanner with a ReadableByteChannel as
+   * source. Therfore the {@link #Scanner(ReadableByteChannel,
+   * String)} is called with <code> null </code> as charsetName.
+   * 
+   * @param source
+   *            The ReadableByteChannel to use as source.
+   */
+  public Scanner (final ReadableByteChannel source)
+  {
+    this (source, null);
+  }
+
+  /**
+   * Constructs a new Scanner with a ReadableByteChannel as source and
+   * a given charsetName, which is to be applied on it. <br> It also
+   * initiates the main Buffer.
+   * 
+   * @param source
+   *            The ReadableByteChannel to use as source.
+   * @param charsetName
+   *            The charsetName to be applied on the source.
+   */
+  public Scanner (final ReadableByteChannel source, final String charsetName)
+  {
+    this.charsetName = charsetName;
+    this.rbcSource = source;
+    myFillBuffer ();
+  }
+
+  /**
+   * Constructs a new Scanner using the given String as input only.
+   * 
+   * @param source
+   *            The whole String to be used as source.
+   */
+  public Scanner (final String source) // TESTED
+  {
+    this.actBuffer = new String (source);
+    this.myMatcher.reset (this.actBuffer);
+  }
+
+  /**
+   * Closes this Scanner. If an {@link IOException} occurs it is
+   * catched and is available under {@link #ioException()}.<br> After
+   * the Scanner is closed, all searches will lead to a {@link
+   * IllegalStateException}.
+   */
+  public void close ()        
+  {
+    try
+    {
+      if (this.bIS != null)
+       this.bIS.close ();
+      if (this.rbcSource != null)
+       this.rbcSource.close ();
+      this.isClosed = true;
+    }
+    catch (IOException ioe)
+    {
+      this.lastIOException = ioe;
+    }
+  }
+
+  /**
+   * Returns the current delimiter.
+   * 
+   * @return the current delimiter.
+   */
+  public Pattern delimiter ()  // TESTED
+  {
+    return this.p;
+  }
+
+  /**
+   * Tries to find the pattern in the current line.
+   * 
+   * @param pattern The pattern which should be searched in the
+   * current line of the input.
+   * @throws NoSuchElementException
+   *             If the pattern was not found.
+   * @return If the search was successful, the result or otherwise a
+   *         {@link NoSuchElementException} is thrown.
+   */
+  public String findInLine (final Pattern pattern) throws NoSuchElementException       // TESTED
+  {
+    String tmpStr = myNextLine (false);
+    return myFindPInStr (pattern, tmpStr, 0);
+  }
+  
+  /**
+   * Compiles the given pattern into a {@link Pattern} and calls
+   * {@link #findInLine(Pattern)} with the compiled pattern and
+   * returns whatever it returns.
+   * 
+   * @param pattern
+   *            The pattern which should be matched in the input.
+   * @throws NoSuchElementException
+   *             If the pattern was not found.
+   * @return The match in the current line.
+   */
+  public String findInLine (final String pattern)      // TESTED
+  {
+    return findInLine (Pattern.compile (pattern));
+  }
+
+  /**
+   * Trys to match the pattern within the given horizon.
+   * 
+   * @param pattern
+   *            Pattern to search.
+   * @param horizon
+   * @return The result of the match.
+   * @throws IllegalArgumentException
+   *             if the horizon is negative.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public String findWithinHorizon (final Pattern pattern, final int horizon)
+    throws IllegalArgumentException, IllegalStateException
+  {
+    if (horizon < 0)
+      {
+       throw new IllegalArgumentException (horizon + " is negative");
+      }
+
+    if (this.isClosed)
+      {
+       throw new IllegalStateException ("Scanner is closed");
+      }
+
+    // doSkipp is set true to get the matching patern together with the found String
+    this.doSkipp = true;
+    String rc = myFindPInStr (pattern, this.actBuffer, horizon);
+
+    if (rc != null)
+      {
+       this.actPos += rc.length ();
+      }
+
+    return rc;
+  }
+
+  /**
+   * Compile the pattern and call {@link #findWithinHorizon(Pattern,
+   * int)}.
+   * 
+   * @param pattern
+   *            Pattern to search.
+   * @param horizon
+   * @return The result of the match.
+   * @throws IllegalArgumentException
+   *             if the horizon is negative.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public String findWithinHorizon (final String pattern, final int horizon)
+    throws IllegalArgumentException, IllegalStateException
+  {
+    return findWithinHorizon (Pattern.compile (pattern), horizon);
+  }
+
+  /**
+   * Checks if there is any next String using the current
+   * delimiter. Therefore the string must not be <code> null </code>
+   * and the length must be greater then 0. If a {@link
+   * NoSuchElementException} is thrown by the search method, it is
+   * catched and false is returned.
+   * 
+   * @return <code> true </code> if there is any result using the current delimiter. This wouldn't
+   *         lead to a {@link NoSuchElementException}.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNext () throws IllegalStateException       // TESTED
+  {
+    String tmpStr = null;
+    
+    try
+    {
+      tmpStr = myCoreNext (false, this.p);
+    }
+    catch (NoSuchElementException nf)
+    {
+    }
+
+    if (tmpStr == null || tmpStr.length () <= 0)
+      {
+       return false;
+      }
+    return true;
+  }
+
+  /**
+   * Searches the pattern in the next subString before the next
+   * current delimiter.
+   * 
+   * @param pattern
+   *            The pattern to search for.
+   * @return <code> true </code> if the pattern is found before the current delimiter.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNext (final Pattern pattern) throws IllegalStateException  // TESTED
+  {
+    String tmpStr;
+
+      tmpStr = myNext (pattern, false);
+
+    if (tmpStr == null || tmpStr.length () <= 0)
+      {
+       return false;
+      }
+    return true;
+  }
+
+  /**
+   * Compiles the pattern to a {@link Pattern} and calls {@link
+   * #hasNext(Pattern)}.
+   * 
+   * @see #hasNext(Pattern)
+   * @param pattern
+   *            The pattern as string to search for.
+   * @return <code> true </code> if the pattern is found before the current delimiter.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNext (final String pattern) throws IllegalStateException   // TESTED
+  {
+    return hasNext (Pattern.compile (pattern));
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * a BigDecimal number. <br> BigDecimal numbers are always tryed
+   * with radix 10.
+   * 
+   * @see #nextBigDecimal()
+   * @return <code> true </code> if the next string is a BigDecimal number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextBigDecimal () throws IllegalStateException     // TESTED
+  {
+    try
+    {
+      myBigDecimal (false);
+      return true;
+    }
+    catch (InputMismatchException nfe)
+    {
+      return false;
+    }
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * a BigInteger number. <br> Call {@link #hasNextBigInteger(int)}
+   * with the current radix.
+   * 
+   * @see #nextBigInteger()
+   * @return <code> true </code> if the next string is a BigInteger number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextBigInteger () throws IllegalStateException     // TESTED
+  {
+    return hasNextBigInteger (this.currentRadix);
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * a BigInteger number. <br>
+   * 
+   * @param radix
+   *            The radix to use for this check. The global radix of the Scanner will not be
+   *            changed.
+   * @return <code> true </code> if the next string is a BigInteger number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextBigInteger (final int radix) throws
+    IllegalStateException
+  {
+    try
+    {
+      myNextBigInteger (radix, false, BIG_INTEGER);
+      return true;
+    }
+    catch (InputMismatchException ime)
+    {
+      return false;
+    }
+  }
+
+  /**
+   * Checks if the next string could be a boolean. The method handles
+   * the input not case sensitiv, so "true" and "TRUE" and even "tRuE"
+   * are <code> true </code>.
+   * 
+   * @see #nextBoolean()
+   * @return Return <code> true </code> if the next string is a boolean.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextBoolean () throws IllegalStateException        // TESTED
+  {
+    try
+    {
+      myNextBoolean (false);
+      return true;
+    }
+    catch (InputMismatchException ime)
+    {
+      return false;
+    }
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * a byte number. <br> Calls {@link #hasNextByte(int)} with the
+   * current radix.
+   * 
+   * @see #nextByte()
+   * @return <code> true </code> if the next string is a byte number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextByte () throws IllegalStateException   // TESTED
+  {
+    return hasNextByte (this.currentRadix);
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * a byte number with the given radix. <br> To check, the private
+   * method {@link #myNextByte(int, boolean)} is called, and if no
+   * error occurs the next string could be a byte.
+   * 
+   * @see #nextByte(int)
+   * @param radix The radix to use for this check. The global radix of
+   * the Scanner will not be changed.
+   * @return <code> true </code> if the next string is a byte number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextByte (final int radix) throws IllegalStateException
+  {
+    try
+    {
+      myNextByte (radix, false);
+      return true;
+    }
+    catch (InputMismatchException ime)
+    {
+      return false;
+    }
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * a double number. <br> To check, the private method {@link
+   * #myNextDouble(boolean)} is called, and if no error occurs the
+   * next string could be a double.
+   * 
+   * @see #nextDouble()
+   * @return <code> true </code> if the next string is a double number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextDouble () throws IllegalStateException // TESTED
+  {
+    try
+    {
+      myNextDouble (false);
+      return true;
+    }
+    catch (InputMismatchException ime)
+    {
+      return false;
+    }
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * a double number. Because every float is a double this is
+   * checked.<br> To check, the private method {@link
+   * #myNextDouble(boolean)} is called, and if no error occurs the
+   * next string could be a double.
+   * 
+   * @see #nextFloat()
+   * @return <code> true </code> if the next string is a double number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextFloat () throws IllegalStateException  // TESTED
+  {
+    try
+    {
+      myNextDouble (false);
+      // myNextFloat(false);
+      return true;
+    }
+    catch (InputMismatchException ime)
+    {
+      return false;
+    }
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * an int number. <br> To check, the private method {@link
+   * #myNextInt(int, boolean)} is called, and if no error occurs the
+   * next string could be an int.
+   * 
+   * @see #nextInt(int)
+   * @return <code> true </code> if the next string is an int number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextInt () throws IllegalStateException    // TESTED
+  {
+    return hasNextInt (this.currentRadix);
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * an int number with the given radix. <br> To check, the private
+   * method {@link #myNextInt(int, boolean)} is called, and if no
+   * error occurs the next string could be an int.
+   * 
+   * @see #nextInt(int)
+   * @param radix
+   *            The radix to use for this check. The global radix of the Scanner will not be
+   *            changed.
+   * @return <code> true </code> if the next string is an int number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextInt (final int radix) throws IllegalStateException
+  {
+    try
+    {
+      myNextInt (radix, false);
+      return true;
+    }
+    catch (InputMismatchException ime)
+    {
+      return false;
+    }
+  }
+
+  /**
+   * Checks if there is a current line, which ends at the next line
+   * break or the end of the input.
+   * 
+   * @return <code> true </code> if there is a current line.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextLine () throws IllegalStateException   // TESTED
+  {
+    return (myNextLine (false) != null);
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * a long number. <br> To check, the private method {@link
+   * #myNextLong(int, boolean)} is called, and if no error occurs the
+   * next string could be a long.
+   * 
+   * @see #nextLong()
+   * @return <code> true </code> if the next string is a long number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextLong () throws IllegalStateException   // TESTED
+  {
+    return hasNextLong (this.currentRadix);
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * a long number with the given radix. <br> To check, the private
+   * method {@link #myNextLong(int, boolean)} is called, and if no
+   * error occurs the next string could be a long.
+   * 
+   * @see #nextLong(int)
+   * @param radix
+   *            The radix to use for this check. The global radix of the Scanner will not be
+   *            changed.
+   * @return <code> true </code> if the next string is a long number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextLong (final int radix) throws IllegalStateException
+  {
+    try
+    {
+      myNextLong (radix, false);
+      return true;
+    }
+    catch (InputMismatchException ime)
+    {
+      return false;
+    }
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * a short number with the given radix. <br> To check, the private
+   * method {@link #myNextShort(int, boolean)} is called, and if no
+   * error occurs the next string could be a short.
+   * 
+   * @see #nextShort(int)
+   * @return <code> true </code> if the next string is a short number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextShort () throws IllegalStateException  // TESTED
+  {
+    return hasNextShort (this.currentRadix);
+  }
+
+  /**
+   * Checks if the string to the next delimiter can be interpreted as
+   * a short number. <br> To check, the private method {@link
+   * #myNextShort(int, boolean)} is called, and if no error occurs the
+   * next string could be a short.
+   * 
+   * @see #nextShort(int)
+   * @param radix
+   *            The radix to use for this check. The global radix of the Scanner will not be
+   *            changed.
+   * @return <code> true </code> if the next string is a short number.
+   * @throws IllegalStateException
+   *             if the Scanner is closed.
+   */
+  public boolean hasNextShort (final int radix) throws IllegalStateException
+  {
+    try
+    {
+      myNextShort (radix, false);
+      return true;
+    }
+    catch (InputMismatchException ime)
+    {
+      return false;
+    }
+  }
+
+  /**
+   * Returns the last {@link IOException} occured.
+   * 
+   * @return Returns the last {@link IOException}.
+   */
+  public IOException ioException ()
+  {
+    return this.lastIOException;
+  }
+
+  /**
+   * Returns the current value of {@link #useLocale}. This is used to
+   * tell the Scanner if it should use the Locale format or just
+   * handle numbers of the default format.
+   * 
+   * @see #setUseLocale(boolean)
+   * @return the useLoclae.
+   */
+  public boolean isUseLocale ()        // TESTED
+  {
+    return this.useLocale;
+  }
+
+  /**
+   * Returns the current Locale. It is initialized with {@link
+   * Locale#getDefault()}.
+   * 
+   * @see #useLocale(Locale)
+   * @return Returns the current Locale.
+   */
+  public Locale locale ()      // TESTED
+  {
+    return this.actLocale;
+  }
+
+  /**
+   * Returns the last MatchResult found. This is updated after every
+   * successfully search.
+   * 
+   * @return Returns the last {@link MatchResult} found.
+   */
+  public MatchResult match ()  // TESTED
+  {
+    return this.actResult;
+  }
+
+  /**
+   * Uses the current delimiter to find the next string in the
+   * buffer. If a string is found the current position is set after
+   * the delimiter, otherwise a {@link NoSuchElementException} is
+   * thrown. A successful match sets the matchResult.
+   * 
+   * @see #match()
+   * @return Returns the next string of the buffer.
+   * @throws NoSuchElementException
+   *             If no element was found an exception is thrown.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public String next () throws NoSuchElementException, IllegalStateException   // TESTED
+  {
+    return myCoreNext (true, this.p);
+  }
+
+  /**
+   * Tries to match the buffer with the given pattern. The current
+   * delimiter will not be changed.
+   * 
+   * @param pattern
+   *            The pattern to match.
+   * @return Returns the next string matching the pattern.
+   * @throws NoSuchElementException
+   *             If no element was found an exception is thrown.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public String next (final Pattern pattern) throws NoSuchElementException, IllegalStateException      // TESTED
+  {
+    return myNext (pattern, true);
+  }
+
+  /**
+   * Tries to match the buffer with the given pattern. The current
+   * delimiter will not be changed.  Calls the {@link #next(Pattern)}
+   * with the compiled pattern.
+   * 
+   * @see #next(Pattern)
+   * @param pattern
+   *            The pattern to match.
+   * @return Returns the next string matching the pattern.
+   * @throws NoSuchElementException
+   *             If no element was found an exception is thrown.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public String next (final String pattern) throws NoSuchElementException, IllegalStateException       // TESTED
+  {
+    return next (Pattern.compile (pattern));
+  }
+
+  /**
+   * Tries to interpret the next string as a BigDecimal value.
+   * 
+   * @return Returns the BigDecimal value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a BigDecimal.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public BigDecimal nextBigDecimal () throws NoSuchElementException, IllegalStateException     // TESTED
+  {
+    return myBigDecimal (true);
+  }
+
+  /**
+   * Tries to interpret the next string as a BigInteger value. Call
+   * {@link #nextBigInteger(int)} with the current radix as parameter,
+   * and return the value.
+   * 
+   * @see #nextBigInteger(int)
+   * @return Returns the BigInteger value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a BigInteger.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public BigInteger nextBigInteger () throws NoSuchElementException, IllegalStateException     // TESTED
+  {
+    return nextBigInteger (this.currentRadix);
+  }
+
+  /**
+   * Tries to interpret the next string as a BigInteger value with the
+   * given radix.
+   * 
+   * @param radix
+   *            The radix to be used for this BigInteger. The current radix of the Scanner is not
+   *            changed.
+   * @return Returns the BigInteger value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a BigInteger.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public BigInteger nextBigInteger (final int radix) throws
+    NoSuchElementException, IllegalStateException
+  {
+    return myNextBigInteger (radix, true, BIG_INTEGER);
+  }
+
+  /**
+   * Tries to interpret the next string to the delimiter as a boolean
+   * value, ignoring case.
+   * 
+   * @return Returns the boolean value of the next matching string or throws an exception.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a boolean.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public boolean nextBoolean () throws NoSuchElementException, IllegalStateException   // TESTED
+  {
+    return myNextBoolean (true);
+  }
+
+  /**
+   * Tries to interpret the next string as a byte value. Call {@link
+   * #nextByte(int)} with the current radix as parameter, and return
+   * the value.
+   * 
+   * @see #nextByte(int)
+   * @return Returns the byte value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a byte
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public byte nextByte () throws NoSuchElementException, IllegalStateException // TESTED
+  {
+    return nextByte (this.currentRadix);
+  }
+
+  /**
+   * Tries to interpret the next string as a byte value with the given
+   * radix.
+   * 
+   * @param radix
+   *            The radix to be used for this byte. The current radix of the Scanner is not
+   *            changed.
+   * @return Returns the byte value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a byte.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public byte nextByte (final int radix) throws NoSuchElementException,
+    IllegalStateException
+  {
+    return myNextByte (radix, true);
+  }
+
+  /**
+   * Tries to interpret the next string as a double value.
+   * 
+   * @return Returns the int value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a double.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public double nextDouble () throws NoSuchElementException, IllegalStateException     // TESTED
+  {
+    return myNextDouble (true);
+  }
+
+  /**
+   * Tries to interpret the next string as a double value, and then
+   * casts down to float.
+   * 
+   * @return Returns the int value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a double.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public float nextFloat () throws NoSuchElementException, IllegalStateException       // TESTED
+  {
+    return (float) myNextDouble (true);
+    // return myNextFloat(true);
+  }
+
+  /**
+   * Tries to interpret the next string as an int value. Calls {@link
+   * #nextInt(int)} with the current radix as parameter, and return
+   * the value.
+   * 
+   * @see #nextInt(int)
+   * @return Returns the int value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not an int.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public int nextInt () throws NoSuchElementException, IllegalStateException   // TESTED
+  {
+    return nextInt (this.currentRadix);
+  }
+
+  /**
+   * Tries to interpret the next string as an int value with the given
+   * radix.
+   * 
+   * @param radix
+   *            The radix to be used for this int. The current radix of the Scanner is not changed
+   * @return Returns the int value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not an int.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public int nextInt (final int radix) throws NoSuchElementException,
+    IllegalStateException
+  {
+    return myNextInt (radix, true);
+  }
+
+  /**
+   * Tries to match the system line seperator, and returns the current
+   * line.
+   * 
+   * @return Returns the current line.
+   * @throws NoSuchElementException
+   *             If the current delimiter is not found.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public String nextLine () throws NoSuchElementException, IllegalStateException       // TESTED
+  {
+    return myNextLine (true);
+  }
+
+  /**
+   * Tries to interpret the next string as a long value. Calls {@link
+   * #nextLong(int)} with the current radix as parameter, and return
+   * the value.
+   * 
+   * @see #nextLong(int)
+   * @return Returns the long value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a long.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public long nextLong () throws NoSuchElementException, IllegalStateException // TESTED
+  {
+    return nextLong (this.currentRadix);
+  }
+
+  /**
+   * Tries to interpret the next string as a long value with the given
+   * radix.
+   * 
+   * @param radix
+   *            The radix to be used for this long. The current radix of the Scanner is not
+   *            changed
+   * @return Returns the long value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a long.
+   * @throws IllegalStateException
+   *             If the Scanner is closed.
+   */
+  public long nextLong (final int radix) throws NoSuchElementException,
+    IllegalStateException
+  {
+    return myNextLong (radix, true);
+  }
+
+  /**
+   * Tries to interpret the next string as a short value. Calls {@link
+   * #nextShort(int)} with the current radix as parameter, and return
+   * the value.
+   * 
+   * @see #nextShort(int)
+   * @return Returns the short value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a short.
+   */
+  public short nextShort () throws NoSuchElementException      // TESTED
+  {
+    return nextShort (this.currentRadix);
+  }
+
+  /**
+   * Tries to interpret the next string as a short value with the
+   * given radix.
+   * 
+   * @param radix
+   *            The radix to be used for this short. The current radix of the Scanner is not
+   *            changed.
+   * @return Returns the short value of the next string.
+   * @throws NoSuchElementException
+   *             If no string is found or the string is not a short.
+   */
+  public short nextShort (final int radix) throws NoSuchElementException
+  {
+    return myNextShort (radix, true);
+  }
+
+  /**
+   * @return Returns the current radix.
+   */
+  public int radix ()
+  {
+    return this.currentRadix;
+  }
+
+  /**
+   * The remove operation is not supported by this implementation of
+   * Iterator.
+   */
+  public void remove ()
+  {
+  }
+
+  /**
+   * @param useLocale the useLocale to set.
+   */
+  public void setUseLocale (final boolean useLocale)   // TESTED
+  {
+    this.useLocale = useLocale;
+  }
+
+  /**
+   * Skips the given pattern. Sets skipped <code>true</code>.
+   * 
+   * @param pattern
+   *            Pattern which should be skipped.
+   * @return <code>this</code> with the skipped buffer.
+   * @throws NoSuchElementException
+   *             If the Pattern is not found.
+   */
+  public Scanner skip (final Pattern pattern) throws NoSuchElementException
+  {
+    this.doSkipp = true;
+    int end;
+    boolean found;
+    Matcher matcher = pattern.matcher (this.actBuffer);
+      matcher.region (this.actPos - 1, this.actBuffer.length ());
+
+      found = matcher.find ();
+      found = myFillBuffer_loop (matcher, this.actPos - 1, found);
+      end = matcher.end ();
+
+      this.actPos = end + 1;
+
+      this.doSkipp = false;
+      this.skipped = true;
+
+      actResult = null;
+
+    if (!found)
+      {
+       throw new NoSuchElementException ();
+      }
+    return this;
+  }
+
+  /**
+   * Skips a given pattern. Calls {@link #skip(Pattern)} with the
+   * compiled pattern.
+   * 
+   * @see #skip(Pattern)
+   * @param pattern
+   *            Pattern which should be skipped.
+   * @return <code>this</code> with the skipped buffer.
+   */
+  public Scanner skip (final String pattern)
+  {
+    return skip (Pattern.compile (pattern));
+  }
+
+  /**
+   * Returns the string representation of this Scanner.
+   */
+  @Override 
+    public String toString ()
+  {
+    String tmpStr2;
+    String rc = this.getClass ().getName ();
+    tmpStr2 = rc;
+    tmpStr2 = "[delimiters=" + this.p.pattern () + "]";
+    rc += tmpStr2;
+    tmpStr2 = "[position=" + (this.procesedChars + this.actPos) + "]";
+    rc += tmpStr2;
+    tmpStr2 = "[match valid=" + this.matchValid + "]";
+    rc += tmpStr2;
+    tmpStr2 = "[need input=" + this.needInput + "]";
+    rc += tmpStr2;
+    tmpStr2 = "[source closed=" + this.isClosed + "]";
+    rc += tmpStr2;
+    tmpStr2 = "[skipped=" + this.skipped + "]";
+    rc += tmpStr2;
+    tmpStr2 = "[group separator=\\" + this.dfs.getGroupingSeparator () + "]";
+    rc += tmpStr2;
+    tmpStr2 = "[decimal separator=\\" + this.dfs.getDecimalSeparator () + "]";
+    rc += tmpStr2;
+    tmpStr2 =
+      "[positive prefix=" + myConvert (this.df.getPositivePrefix ()) + "]";
+    rc += tmpStr2;
+    tmpStr2 =
+      "[negative prefix=" + myConvert (this.df.getNegativePrefix ()) + "]";
+    rc += tmpStr2;
+    tmpStr2 =
+      "[positive suffix=" + myConvert (this.df.getPositiveSuffix ()) + "]";
+    rc += tmpStr2;
+    tmpStr2 =
+      "[negative suffix=" + myConvert (this.df.getNegativeSuffix ()) + "]";
+    rc += tmpStr2;
+    tmpStr2 = "[NaN string=" + myConvert (this.dfs.getNaN ()) + "]";
+    rc += tmpStr2;
+    tmpStr2 = "[infinity string=" + myConvert (this.dfs.getInfinity ()) + "]";
+    rc += tmpStr2;
+    return rc;
+  }
+
+  /**
+   * Sets the current pattern to the given parameter, and updates the
+   * {@link Matcher} with the new pattern.
+   * 
+   * @param pattern
+   *            The new pattern to use.
+   * @return Returns the Scanner (<code>this</code>) with the new pattern.
+   */
+  public Scanner useDelimiter (final Pattern pattern)  // TESTED
+  {
+    if (pattern != null)
+      {
+       this.p = pattern;
+       this.myMatcher = this.p.matcher (this.actBuffer);
+      }
+    return this;
+  }
+
+  /**
+   * Sets the current pattern to the given parameter. Compiles the
+   * pattern and calls {@link #useDelimiter(Pattern)}
+   * 
+   * @see #useDelimiter(Pattern)
+   * @param pattern
+   *            The new pattern to use.
+   * @return Returns the Scanner (<code>this</code>) with the new pattern.
+   */
+  public Scanner useDelimiter (final String pattern)   // TESTED
+  {
+    return useDelimiter (Pattern.compile (pattern));
+  }
+
+  /**
+   * Sets the current Locale to the given parameter. Formats and
+   * Symbols are also set using the new Locale.
+   * 
+   * @param locale The new Locale to use. If it is <code>null</code>
+   * nothing happens.
+   * @return Returns the Scanner (<code>this</code>) with the new Locale.
+   */
+  public Scanner useLocale (final Locale locale)       // TESTED
+  {
+    if (locale != null)
+      {
+       this.actLocale = locale;
+       this.actFormat = NumberFormat.getInstance (this.actLocale);
+       this.dfs = new DecimalFormatSymbols (this.actLocale);
+       this.df = (DecimalFormat) this.actFormat;
+      }
+    return this;
+  }
+
+  /**
+   * Sets the current radix to the current value if the given radix is
+   * >= 2 and <= 36 otherwise an {@link IllegalArgumentException} is
+   * thrown.
+   * 
+   * @param radix
+   *            the new radix to use as default.
+   * @return <code> this </code> with the new radix value.
+   * @throws IllegalArgumentException
+   *             When the given radix is out of bounds.
+   */
+  public Scanner useRadix (final int radix) throws IllegalArgumentException
+  {
+    if (radix < 2 || radix > 36)
+      {
+       throw new IllegalArgumentException ();
+      }
+    this.currentRadix = radix;
+    return this;
+  }
+
+  /**
+   * Checks if it is necessary to apply the current Locale on the
+   * String. If so the String is converted using the {@link
+   * NumberFormat#parse(String)} into a Number and then back to a
+   * default stringrepresentation of that Number.
+   * 
+   * @see #setUseLocale(boolean)
+   * @param str
+   *            String to convert into another string.
+   * @param radix Radix of the Number in the original string. It has
+   * to be 10 for anything to happen.
+   * @return Eighter the Stringrepresention of the number without the
+   * Locale or an unchanged string.
+   * @throws ParseException
+   *             if {@link NumberFormat#parse(String)} fails to parse.
+   */
+  private String myApplyLocale (final String str,
+                               final int radix) throws ParseException
+  {
+    String rc;
+
+    if (this.useLocale && radix == 10)
+      {
+       rc = this.actFormat.parse (str).toString ();
+       return rc;
+      }
+
+    return str;
+  }
+
+  /**
+   * If {@link #useLocale} is set and radix is 10 the string is tryed
+   * to be converted to string without Locale settings, because the
+   * "normal" convert from Local has only double precision and it is
+   * not enough for the about 50 digits of precision of the
+   * BigDecimal. So in the first step the string is seperated into the
+   * integer part which is converted to a long, and the fraction part
+   * is appended afterwards. Between the integer and the fraction part
+   * comes a ".". Finally the resulting string is returned.
+   * 
+   * @see #setUseLocale(boolean)
+   * @param str String representation of a BigDecimal number.
+   * @return The default String representation (without Locale) of the
+   * BigInteger.
+   * @throws ParseException
+   *             If the String has more than one decimal seperators a parse exception is thrown.
+   */
+  private String myApplyLocaleBD (final String str) throws ParseException
+  {
+    if (!this.useLocale || this.currentRadix != 10)
+      {
+       return str;
+      }
+
+    String negPrefix = this.df.getNegativePrefix ();
+    String negSuffix = this.df.getNegativeSuffix ();
+    String posPrefix = this.df.getPositivePrefix ();
+    String posSuffix = this.df.getPositiveSuffix ();
+
+    char d = this.dfs.getDecimalSeparator ();
+    int begin1, begin2;
+    boolean isNegativ = false;
+    String parts = null;
+
+    String tmpStr1 = "";
+
+    begin1 = str.indexOf (d);
+    begin2 = str.indexOf (d, begin1 + 1);
+
+    if (begin2 > 0)
+      {
+       throw new ParseException ("more than one Decimal seperators", begin2);
+      }
+
+    parts = str.substring (0, begin1);
+
+    if ((negPrefix.length () > 0
+        && str.substring (0, negPrefix.length ()).equals (negPrefix))
+       || (negSuffix.length () > 0
+           && str.substring (str.length () -
+                             negSuffix.length ()).equals (negSuffix)))
+      {
+       parts += negSuffix;
+       isNegativ = true;
+      }
+    else
+      if ((posPrefix.length () > 0
+          && str.substring (0, posPrefix.length ()).equals (posPrefix))
+         || (posSuffix.length () > 0
+             && str.substring (str.length () -
+                               posSuffix.length ()).equals (posSuffix)))
+      {
+       parts += posSuffix;
+      }
+
+    tmpStr1 = this.actFormat.parse (parts).toString ();
+
+    if (isNegativ)
+      {
+       tmpStr1 +=
+         "." + str.substring (str.indexOf (d) + 1,
+                              str.length () - negSuffix.length ());
+      }
+    else
+      {
+       tmpStr1 +=
+         "." + str.substring (str.indexOf (d) + 1,
+                              str.length () - posSuffix.length ());
+      }
+
+    return tmpStr1;
+  }
+
+  /**
+   * Tries to interpret the next String as a BigDecimal. Therfore the
+   * next String is get with {@link #myCoreNext(boolean, Pattern)} and
+   * then {@link #myApplyLocaleBD(String)} is called to convert the
+   * String into a BigDecimal.
+   * 
+   * @param delete
+   *            Should the found string be deleted or not.
+   * @return Returns the BigDecimal value of the next string.
+   * @throws InputMismatchException
+   *             If the string is not a BigDecimal
+   */
+  private BigDecimal myBigDecimal (final boolean delete) throws
+    InputMismatchException
+  {
+    BigDecimal rc;
+    String tmp = myCoreNext (delete, this.p);
+      try
+    {
+      tmp = myApplyLocaleBD (tmp);
+    }
+    catch (ParseException e)
+    {
+      throw new InputMismatchException (ERR_PREFIX + tmp + IS_NOT +
+                                       "BigDecimal!!");
+    }
+    rc = new BigDecimal (tmp);
+
+    return rc;
+  }
+
+  /**
+   * Applies suffix ("\E") and prefix ("\Q") if str.length != 0 Used
+   * by the toString method.
+   * 
+   * @param str
+   *            the string on which the suffix and prefix should be applied.
+   * @return The new new string with the suffix and prefix.
+   */
+  private String myConvert (final String str)
+  {
+    if (str != null && str.length () > 0)
+      {
+       return "\\Q" + str + "\\E";
+      }
+    return str;
+  }
+
+  /**
+   * Searches the current Matcher for the current Pattern. If the end
+   * is reached during the search it tried to read again from the
+   * source. The search results are always saved in {@link #actResult}
+   * which is returned when match() is called. If doSkip is true the
+   * pattern is also taken.
+   * 
+   * @param delete
+   *            if true the aktPos is set.
+   * @param pattern
+   *            pattern to search for.
+   * @return Returns the String which matches the pattern.
+   * @throws NoSuchElementException
+   *             If the search has no result.
+   */
+  private String myCoreNext (final boolean delete, final Pattern pattern)
+    throws NoSuchElementException
+  {
+    if (this.isClosed)
+      {
+       throw new IllegalStateException ("Scanner closed");
+      }
+    if (shallUseLastFound (pattern != null ? pattern : this.p))
+      {
+       if (this.last_RegionEnd != this.myMatcher.regionEnd ())
+         {
+           System.out.println (this.last_RegionEnd + " != " +
+                               this.myMatcher.regionEnd () + " (" +
+                               (this.last_RegionEnd -
+                                this.myMatcher.regionEnd ()) + ")");
+         }
+       if (delete)
+         {
+           this.actPos = this.lastNextPos;
+           this.lastFoundPresent = false;
+           this.actResult = this.lastResult;
+         }
+       return this.lastFound;
+      }
+
+    boolean found = false;
+    int left;
+    int endIndex;
+
+    String tmp2 = null;
+
+    if (this.actPos > this.MAX_PREFIX)
+      {
+       // skipp the processed chars so that the size of the buffer don't grow to much even with
+       // huge files
+       this.procesedChars += this.actPos;
+       this.actBuffer = this.actBuffer.substring (this.actPos);
+       this.actPos = 0;
+       this.myMatcher = pattern.matcher (this.actBuffer);
+      }
+
+    left = this.actBuffer.length () - this.actPos;
+    if (left < this.MIN_BUF_LEN)
+      {
+       myFillBuffer ();
+      }
+    found = this.myMatcher.find (this.actPos);
+
+    found = myFillBuffer_loop (this.myMatcher, this.actPos, found);
+
+    this.needInput = false;
+
+    if (found)
+      {
+       if (this.doSkipp)
+         {
+           endIndex = this.myMatcher.end ();
+         }
+       else
+         {
+           endIndex = this.myMatcher.start ();
+         }
+       tmp2 = this.actBuffer.substring (this.actPos, endIndex);
+       this.lastNextPos = this.myMatcher.end ();
+       /*
+        * if the delete flag is set, just set the current position after the end of the matched
+        * pattern.
+        */
+       if (delete)
+         {
+           this.actPos = this.lastNextPos;
+         }
+       else
+         {
+           this.lastFound = tmp2;
+           this.lastFoundPresent = true;
+           this.lastPatternHash = pattern.hashCode ();
+         }
+       this.last_RegionStart = this.myMatcher.regionStart ();
+       this.last_RegionEnd = this.myMatcher.regionEnd ();
+       this.last_anchor = this.myMatcher.hasAnchoringBounds ();
+       this.last_transparent = this.myMatcher.hasTransparentBounds ();
+      }
+    else if (this.myMatcher.hitEnd ())
+      // the end of input is matched
+      {
+       tmp2 = this.actBuffer.substring (this.actPos);
+       this.lastNextPos = this.actBuffer.length ();
+       if (delete)
+         {
+           this.actPos = this.lastNextPos;
+         }
+       else
+         {
+           this.lastFound = tmp2;
+           this.lastFoundPresent = true;
+           this.lastPatternHash = pattern.hashCode ();
+         }
+       this.last_RegionStart = this.myMatcher.regionStart ();
+       this.last_RegionEnd = this.myMatcher.regionEnd ();
+       this.last_anchor = this.myMatcher.hasAnchoringBounds ();
+       this.last_transparent = this.myMatcher.hasTransparentBounds ();
+      }
+    else
+      {
+       /*
+        * if no match found an Exception is throwed
+        */
+       throw new NoSuchElementException ();
+      }
+    /*
+     * change the Result only when a nextXXX() method was called, not if a hasNextXXX() method
+     * is called
+     */
+    if (delete)
+      {
+       this.actResult = this.myMatcher.toMatchResult ();
+
+       this.matchValid = this.actResult != null;
+      }
+    else
+      {
+       this.lastResult = this.myMatcher.toMatchResult ();
+      }
+
+    this.skipped = this.doSkipp;
+    this.doSkipp = false;
+
+    return tmp2;
+  }
+
+  /**
+   * Used to fill the String buffer from a source. Therfore the 3
+   * possible sources are checked if they are not <code>null</code>
+   * and this not used, otherwise the read method is called on the
+   * source. If a charsetName is set and not <code>null</code> it is
+   * applied to convert to String.
+   */
+  private void myFillBuffer ()
+  {
+    int len;
+    String tmpStr;
+    CharBuffer cb = null;
+    ByteBuffer bb = null;
+
+    if (this.bIS != null)
+      {
+       try
+       {
+         len = this.bIS.read (this.tmpBuffer);
+         if (len < 0)
+           {
+             return;
+           }
+         if (this.charsetName != null)
+           {
+             tmpStr = new String (this.tmpBuffer, 0, len, this.charsetName);
+           }
+         else
+           {
+             tmpStr = new String (this.tmpBuffer, 0, len);
+           }
+         this.actBuffer += tmpStr;
+       }
+       catch (IOException e)
+       {
+         this.lastIOException = e;
+       }
+      }
+    else if (this.readableSource != null)
+      {
+       try
+       {
+         cb = CharBuffer.allocate (1000);
+         this.needInput = true;
+         len = this.readableSource.read (cb);
+         if (len < 0)
+           {
+             return;
+           }
+         this.needInput = false;
+         tmpStr = new String (cb.array ());
+         this.actBuffer += tmpStr;
+       }
+       catch (IOException e)
+       {
+         this.lastIOException = e;
+       }
+      }
+    else if (this.rbcSource != null)
+      {
+       try
+       {
+         bb = ByteBuffer.allocate (1000);
+         this.needInput = true;
+         len = this.rbcSource.read (bb);
+         this.needInput = false;
+         if (len < 0)
+           {
+             return;
+           }
+         if (this.charsetName != null)
+           {
+             tmpStr = new String (bb.array (), 0, len, this.charsetName);
+           }
+         else
+           {
+             tmpStr = new String (bb.array (), 0, len);
+           }
+         this.actBuffer += tmpStr;
+       }
+       catch (IOException e)
+       {
+         this.lastIOException = e;
+       }
+      }
+
+    this.myMatcher.reset (this.actBuffer);
+  }
+
+  /**
+   * A loop in which the {@link #myFillBuffer()} is called and checked
+   * if the pattern is found in the matcher and if the buffersize
+   * changes after the read.
+   * 
+   * @param aktM
+   *            The current Matcher.
+   * @param pos
+   *            Position from which the matcher should start matching.
+   * @param found
+   *            if already found.
+   * @return <code> true </code> if the matcher has found a match.
+   */
+  private boolean myFillBuffer_loop (final Matcher aktM, final int pos,
+                                    boolean found)
+  {
+    int tmp;
+
+    tmp = this.actBuffer.length ();
+    while (aktM.hitEnd ()
+          && ((this.bIS != null) || (this.readableSource != null)
+              || (this.rbcSource != null)))
+      {
+       myFillBuffer ();
+       if (tmp == this.actBuffer.length ())
+         {
+           break;
+         }
+       found = aktM.find (pos);
+       this.needInput = true;
+      }
+    return found;
+  }
+
+  /**
+   * Used to find the given pattern in the given string before the
+   * given horizon. Therfore the current matcher is copied, and
+   * overwritten using the given pattern and the given Sting. <br>
+   * After the search the original values are restored, and skipped is
+   * set <code> true </code>.
+   * 
+   * @param pattern
+   *            Pattern which should be matched.
+   * @param str
+   *            The String in which the pattern should be matched.
+   * @param horizon
+   *            the horizon whithin the match should be, if 0 then it is ignored.
+   * @return Returns the String in the given String that matches the pattern.
+   */
+  private String myFindPInStr (final Pattern pattern, final String str,
+                              final int horizon)
+  {
+    String rc = null;
+    int curPos = this.actPos;
+    Matcher aktMatcher = this.myMatcher;
+
+    this.myMatcher = pattern.matcher (str);
+    if (horizon > 0)
+      {
+       this.myMatcher.useAnchoringBounds (true);
+       this.myMatcher.useTransparentBounds (true);
+       this.myMatcher.region (this.actPos, this.actPos + horizon);
+      }
+    rc = myCoreNext (true, pattern);
+    this.myMatcher = aktMatcher;
+
+    this.actPos = curPos;
+    this.skipped = true;
+
+    return rc;
+  }
+
+  /**
+   * Used by the {@link #hasNext(Pattern)} and {@link #next(Pattern)}
+   * methods. Therfore a substring is taken first to the current
+   * delimiter, afterwards the given pattern is searched in this
+   * subsring.<br> Finally the current Buffer and matcher (which have
+   * been temporarily changed) are set back.<br> <br> The {@link
+   * #skipped} is set <code> true </code>.
+   * 
+   * @param pattern
+   *            Pattern to find until the current delimiter.
+   * @param delete
+   *            Is <code> true </code> if a next method is called.<br>
+   *            Is <code> false </code> if a hasNext method is called.
+   * @return Returns the String which is returned by the public methods.
+   */
+  private String myNext (final Pattern pattern, final boolean delete)
+  {
+    String tmpStr;
+    Matcher aktMatcher = this.myMatcher;
+    String result;
+    String currBuffer = this.actBuffer;
+    int currAktPos;
+
+    tmpStr = myCoreNext (delete, this.p);
+    this.myMatcher = pattern.matcher (tmpStr);
+    this.actBuffer = tmpStr;
+    currAktPos = this.actPos;
+    this.actPos = 0;
+    result = myCoreNext (delete, pattern);
+    this.actPos = currAktPos;
+
+    this.actBuffer = currBuffer;
+    this.myMatcher = aktMatcher;
+    this.skipped = true;
+
+    return result;
+  }
+
+  /**
+   * Calls the next() method internally to get the next String, and
+   * trys to apply a locale which is only applied if the radix is 10
+   * and useLocale is <code> true </code>. Afterwards it is tried to
+   * call the Constructor of a {@link BigInteger} with the given
+   * radix.
+   * 
+   * @param radix The radix to use.
+   * @param delete If the found String should be removed from input or
+   * not.
+   * @param name name of "BigInteger" in case of an Error.
+   * @return Returns the new BigInteger created if there is no Error.
+   * @throws InputMismatchException
+   *             If there is a {@link ParseException} or a {@link NumberFormatException}.
+   */
+  private BigInteger myNextBigInteger (final int radix, final boolean delete,
+                                      final String name)
+  {
+    BigInteger rc;
+    String tmp = myPrepareForNext (this.p, delete);
+
+    try
+    {
+      tmp = myApplyLocale (tmp, radix);
+      rc = new BigInteger (tmp, radix);
+      return rc;
+    }
+    catch (NumberFormatException nfe)
+    {
+    }
+    catch (ParseException e)
+    {
+    }
+    throw new InputMismatchException (ERR_PREFIX + tmp + IS_NOT + name);
+  }
+
+  /**
+   * Checks if the next String is either "true" or "false", otherwise
+   * an {@link InputMismatchException} is thrown. It ignores the case
+   * of the string so that "true" and "TRUE" and even "TrUe" are
+   * accepted.
+   * 
+   * @param delete Should the found value be removed from the input or
+   * not.
+   * @return Returns the boolean value (if it is a boolean).
+   * @throws InputMismatchException
+   *             If the next String is not a boolean.
+   */
+  private boolean myNextBoolean (final boolean delete) throws
+    InputMismatchException
+  {
+    String tmp = myPrepareForNext (this.p, delete);
+    if (tmp.equalsIgnoreCase ("true"))
+      {
+       return true;
+      }
+    else if (tmp.equalsIgnoreCase ("false"))
+      {
+       return false;
+      }
+    else
+      {
+       throw new InputMismatchException (ERR_PREFIX + tmp + NOT_BOOLEAN);
+      }
+  }
+
+  /**
+   * Calls the {@link #myPrepareForNext(Pattern, boolean)} which calls
+   * the {@link #myCoreNext(boolean, Pattern)} to return the next
+   * String matching the current delimier. Afterwards it is tryed to
+   * convert the String into a byte. Any Error will lead into a {@link
+   * InputMismatchException}.
+   * 
+   * @param radix The radix to use.
+   * @param delete Should the found String be removed from the input.
+   * @return Returns the byte value of the String.
+   * @throws InputMismatchException if the next String is not a byte.
+   */
+  private byte myNextByte (final int radix,
+                          final boolean delete) throws InputMismatchException
+  {
+    byte rc;
+    String tmp = myPrepareForNext (this.p, delete);
+
+      try
+    {
+      tmp = myApplyLocale (tmp, radix);
+      rc = Byte.parseByte (tmp, radix);
+      return rc;
+    }
+    catch (NumberFormatException nfe)
+    {
+    }
+    catch (ParseException e)
+    {
+    }
+    throw new InputMismatchException (ERR_PREFIX + tmp + NOT_BYTE);
+  }
+
+  /**
+   * Tries to interpret the next String as a double value. To verify
+   * if the double value is correct, it is converted back to a String
+   * using the default Locale and this String is compared with the
+   * String from which the double was converted. If the two Strings
+   * don't match, an {@link InputMismatchException} is thrown.<br>
+   * <br> The radix used is always 10 even if the global radix is
+   * changed.
+   * 
+   * @param delete Should the String be removed, if true it will be
+   * also removed if the String is not a double value.
+   * @return Returns the double value of the next String.
+   * @throws InputMismatchException if the next String is not a
+   * double.
+   */
+  private double myNextDouble (final boolean delete) throws
+    InputMismatchException
+  {
+    double rc;
+    String tmp = myPrepareForNext (this.p, delete);
+
+      try
+    {
+      tmp = myApplyLocale (tmp, 10);
+      rc = Double.parseDouble (tmp);
+      if (("" + rc).equals (tmp))
+       {
+         return rc;
+       }
+    }
+    catch (ParseException e)
+    {
+    }
+    throw new InputMismatchException (ERR_PREFIX + tmp + NOT_DOUBLE);
+  }
+
+  /**
+   * Tries to interpret the next String as an int value. Therfore
+   * {@link #myApplyLocale(String, int)} decides if the current Locale
+   * should be applied or not and then the result is parsed using
+   * {@link Integer#parseInt(String, int)}. Any Error will lead to an
+   * {@link InputMismatchException}.
+   * 
+   * @param radix The radix to use.
+   * @param delete <code> true </code> if the String should be deleted
+   * from the input.
+   * @return Returns the int value of the String.
+   * @throws InputMismatchException if the next String is not an int.
+   */
+  private int myNextInt (final int radix,
+                        final boolean delete) throws InputMismatchException
+  {
+    int rc;
+    String tmp = myPrepareForNext (this.p, delete);
+    try
+      {
+       tmp = myApplyLocale (tmp, radix);
+       rc = Integer.parseInt (tmp, radix);
+       return rc;
+      }
+    catch (NumberFormatException nfe)
+    {
+    }
+    catch (ParseException e)
+    {
+    }
+    throw new InputMismatchException (ERR_PREFIX + tmp + NOT_INT);
+  }
+
+  /**
+   * Finds the next line using the {@link #NEW_LINE} constant which is
+   * set to the system specific line seperator.
+   * 
+   * @param delete Should the found line be deleted from the input.
+   * @return Returns the current line.
+   */
+  private String myNextLine (final boolean delete)
+  {
+    String rc = null;
+    rc = myPrepareForNext (Pattern.compile (NEW_LINE), delete);
+    return rc;
+  }
+
+  /**
+   * Tries to interpret the next String as a long value with the given
+   * radix. Therfore the {@link Long#parseLong(String, int)} is called
+   * and every Error will lead into a {@link InputMismatchException}.
+   * 
+   * @param radix The radix to be used.
+   * @param delete Should the found String be deleted from the input.
+   * @return the long value of the next String.
+   * @throws InputMismatchException if the next String is not a long.
+   */
+  private long myNextLong (final int radix,
+                          final boolean delete) throws InputMismatchException
+  {
+    long rc;
+    String tmp = myPrepareForNext (this.p, delete);
+
+    try
+      {
+       tmp = myApplyLocale (tmp, radix);
+       rc = Long.parseLong (tmp, radix);
+       return rc;
+      }
+    catch (NumberFormatException nfe)
+      {
+      }
+    catch (ParseException e)
+      {
+      }
+    throw new InputMismatchException (ERR_PREFIX + tmp + NOT_LONG);
+  }
+
+  /**
+   * Tries to interpret the next String as a short value with the
+   * given radix. Therfore the {@link Short#parseShort(String, int)}
+   * is called and every Error will lead into a {@link
+   * InputMismatchException} .
+   * 
+   * @param radix
+   *            The radix to be used.
+   * @param delete
+   *            Should the found String be deleted from the input.
+   * @return the long value of the next String.
+   * @throws InputMismatchException
+   *             if the next String is not a short.
+   */
+  private short myNextShort (final int radix,
+                            final boolean delete) throws
+    InputMismatchException
+  {
+    short rc;
+    String tmp = myPrepareForNext (this.p, delete);
+    
+    try
+      {
+       tmp = myApplyLocale (tmp, radix);
+       rc = Short.parseShort (tmp, radix);
+       return rc;
+      }
+    catch (NumberFormatException nfe)
+      {
+      }
+    catch (ParseException e)
+      {
+      }
+    throw new InputMismatchException (ERR_PREFIX + tmp +
+                                     "\" is not a short");
+  }
+
+  /**
+   * Sets the current pattern to the given pattern and calls the
+   * {@link #myCoreNext(boolean, Pattern)}. Finally sets the pattern
+   * back to its old value.
+   * 
+   * @param aktPattern Pattern to be used for the next match.
+   * @param delete Should the found String be deleted or not.
+   * @return Return the String returned from {@link
+   * #myCoreNext(boolean, Pattern)}.
+   */
+  private String myPrepareForNext (final Pattern aktPattern,
+                                  final boolean delete)
+  {
+
+    String rc;
+    Pattern oldPattern = this.p;
+    useDelimiter (aktPattern);
+
+    rc = myCoreNext (delete, aktPattern);
+
+    useDelimiter (oldPattern);
+
+    return rc;
+  }
+
+  /**
+   * Determinates if the last found can be used, so that after a
+   * hasNextXXX the nextXXX has not to search if nothing has
+   * changed.<br /> Used in {@link #myCoreNext(boolean, Pattern)}.
+   * 
+   * @param aktP The pattern which should be checked.
+   * @return <code> true </code> if the searchresult is already ready.
+   */
+  private boolean shallUseLastFound (final Pattern aktP)
+  {
+    if (this.lastFoundPresent &&
+       this.lastPatternHash == aktP.hashCode () &&
+       this.last_RegionStart == this.myMatcher.regionStart () &&
+       this.last_anchor == this.myMatcher.hasAnchoringBounds () &&
+       this.last_transparent == this.myMatcher.hasTransparentBounds ())
+      {
+       if (this.last_RegionEnd != this.myMatcher.regionEnd ())
+         {
+           int tmpVal =
+             this.myMatcher.regionEnd () -
+             this.last_RegionEnd - this.MAX_PREFIX;
+           if (tmpVal > 0 && tmpVal < 20)
+             {
+               this.last_RegionEnd =
+                 this.myMatcher.regionEnd ();
+               return true;
+             }
+         }
+       else
+         return true;
+      }
+    return false;
+  }
+
+}
index 404a146c2723ff170950265e2c168bb6cddbef25..1d8792882efe98d931bb03265ff93074ee88078d 100644 (file)
@@ -102,13 +102,14 @@ public class Stack<T> extends Vector<T>
    * @return the Object popped from the stack
    * @throws EmptyStackException if the stack is empty
    */
+  @SuppressWarnings("unchecked")
   public synchronized T pop()
   {
     if (elementCount == 0)
       throw new EmptyStackException();
 
     modCount++;
-    T obj = elementData[--elementCount];
+    T obj = (T) elementData[--elementCount];
 
     // Set topmost element to null to assist the gc in cleanup.
     elementData[elementCount] = null;
@@ -121,12 +122,13 @@ public class Stack<T> extends Vector<T>
    * @return the top Object on the stack
    * @throws EmptyStackException if the stack is empty
    */
+  @SuppressWarnings("unchecked")
   public synchronized T peek()
   {
     if (elementCount == 0)
       throw new EmptyStackException();
 
-    return elementData[elementCount - 1];
+    return (T) elementData[elementCount - 1];
   }
 
   /**
index 5329e06c11fe4a75d58c5e831923ca2e5ef303ae..681a6a24ad496650f1b51551df0c4e38a20325eb 100644 (file)
@@ -40,7 +40,9 @@ exception statement from your version. */
 package java.util;
 
 import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
 import gnu.java.util.ZoneInfo;
+
 import java.io.File;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
@@ -1404,7 +1406,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
   {
     int offset = getRawOffset() + (dst ? getDSTSavings() : 0);
 
-    StringBuffer sb = new StringBuffer(9);
+    CPStringBuilder sb = new CPStringBuilder(9);
     sb.append("GMT");
 
     offset = offset / (1000 * 60);
@@ -1564,7 +1566,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
              }
 
            // Custom IDs have to be normalized
-           StringBuffer sb = new StringBuffer(9);
+           CPStringBuilder sb = new CPStringBuilder(9);
            sb.append("GMT");
 
            sb.append(offset_direction >= 0 ? '+' : '-');
index f54cbc336ec9ff3e9596b68fc1fdb44be49e46b7..1068100d562c73a6407059ee4f73851d0cde23ca 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.util;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -2720,7 +2722,7 @@ public class TreeMap<K, V> extends AbstractMap<K, V>
 
     public String toString()
     {
-      StringBuilder r = new StringBuilder("{");
+      CPStringBuilder r = new CPStringBuilder("{");
       final Iterator<Entry<DK,DV>> it = entrySet().iterator();
       while (it.hasNext())
       {
@@ -3158,7 +3160,7 @@ public class TreeMap<K, V> extends AbstractMap<K, V>
 
     public String toString()
     {
-      StringBuilder r = new StringBuilder("[");
+      CPStringBuilder r = new CPStringBuilder("[");
       final Iterator<D> it = iterator();
       while (it.hasNext())
       {
index ea29ce09315c39eacff205c2015c86aa988eced1..101a78ddac22f27dfb75e0dd076bd1584644d452 100644 (file)
@@ -95,7 +95,7 @@ public class Vector<T> extends AbstractList<T>
    * in positions 0 through elementCount - 1, and all remaining slots are null.
    * @serial the elements
    */
-  protected T[] elementData;
+  protected Object[] elementData;
 
   /**
    * The number of elements currently in the vector, also returned by
@@ -133,7 +133,7 @@ public class Vector<T> extends AbstractList<T>
   public Vector(Collection<? extends T> c)
   {
     elementCount = c.size();
-    elementData = c.toArray((T[]) new Object[elementCount]);
+    elementData = c.toArray(new Object[elementCount]);
   }
 
   /**
@@ -149,7 +149,7 @@ public class Vector<T> extends AbstractList<T>
   {
     if (initialCapacity < 0)
       throw new IllegalArgumentException();
-    elementData = (T[]) new Object[initialCapacity];
+    elementData = new Object[initialCapacity];
     this.capacityIncrement = capacityIncrement;
   }
 
@@ -295,11 +295,12 @@ public class Vector<T> extends AbstractList<T>
         return i < elementCount;
       }
 
+      @SuppressWarnings("unchecked")
       public T nextElement()
       {
         if (i >= elementCount)
           throw new NoSuchElementException();
-        return elementData[i++];
+        return (T) elementData[i++];
       }
     };
   }
@@ -385,10 +386,11 @@ public class Vector<T> extends AbstractList<T>
    * @throws ArrayIndexOutOfBoundsException index &lt; 0 || index &gt;= size()
    * @see #get(int)
    */
+  @SuppressWarnings("unchecked")
   public synchronized T elementAt(int index)
   {
     checkBoundExclusive(index);
-    return elementData[index];
+    return (T) elementData[index];
   }
 
   /**
@@ -397,12 +399,13 @@ public class Vector<T> extends AbstractList<T>
    * @return the first Object in the Vector
    * @throws NoSuchElementException the Vector is empty
    */
+  @SuppressWarnings("unchecked")
   public synchronized T firstElement()
   {
     if (elementCount == 0)
       throw new NoSuchElementException();
 
-    return elementData[0];
+    return (T) elementData[0];
   }
 
   /**
@@ -411,12 +414,13 @@ public class Vector<T> extends AbstractList<T>
    * @return the last Object in the Vector
    * @throws NoSuchElementException the Vector is empty
    */
+  @SuppressWarnings("unchecked")
   public synchronized T lastElement()
   {
     if (elementCount == 0)
       throw new NoSuchElementException();
 
-    return elementData[elementCount - 1];
+    return (T) elementData[elementCount - 1];
   }
 
   /**
@@ -604,10 +608,11 @@ public class Vector<T> extends AbstractList<T>
    * @throws ArrayIndexOutOfBoundsException index &lt; 0 || index &gt;= size()
    * @since 1.2
    */
+  @SuppressWarnings("unchecked")
   public synchronized T set(int index, T element)
   {
     checkBoundExclusive(index);
-    T temp = elementData[index];
+    T temp = (T) elementData[index];
     elementData[index] = element;
     return temp;
   }
@@ -660,10 +665,11 @@ public class Vector<T> extends AbstractList<T>
    * @throws ArrayIndexOutOfBoundsException index &lt; 0 || index &gt;= size()
    * @since 1.2
    */
+  @SuppressWarnings("unchecked")
   public synchronized T remove(int index)
   {
     checkBoundExclusive(index);
-    T temp = elementData[index];
+    T temp = (T) elementData[index];
     modCount++;
     elementCount--;
     if (index < elementCount)
@@ -903,7 +909,7 @@ public class Vector<T> extends AbstractList<T>
     // use of a negative index will cause an ArrayIndexOutOfBoundsException
     // with no effort on our part.
     if (index > elementCount)
-      throw new ArrayIndexOutOfBoundsException(index + " > " + elementCount);
+      raiseBoundsError(index, " > ");
   }
 
   /**
@@ -918,9 +924,24 @@ public class Vector<T> extends AbstractList<T>
     // use of a negative index will cause an ArrayIndexOutOfBoundsException
     // with no effort on our part.
     if (index >= elementCount)
-      throw new ArrayIndexOutOfBoundsException(index + " >= " + elementCount);
+      raiseBoundsError(index, " >= ");
   }
 
+  /**
+   * Raise the ArrayIndexOfOutBoundsException.
+   *
+   * @param index the index of the access
+   * @param operator the operator to include in the error message
+   * @throws IndexOutOfBoundsException unconditionally
+   */
+  private void raiseBoundsError(int index, String operator)
+  {
+    // Implementaion note: put in a separate method to make the JITs job easier
+    // (separate common from uncommon code at method boundaries when trivial to
+    // do so).
+    throw new ArrayIndexOutOfBoundsException(index + operator + elementCount);
+  }
+  
   /**
    * Serializes this object to the given stream.
    *
index 357d51e14fc6f817e2b851efb2a01ff09610b127..deba5c2e55c1f994c542cbeeb262fe9892d91dd0 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.util.logging;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.FilterOutputStream;
@@ -478,7 +480,7 @@ public class FileHandler
                                               int uniqueNumber,
                                               int count)
   {
-    StringBuffer buf = new StringBuffer(pattern);
+    CPStringBuilder buf = new CPStringBuilder(pattern);
     String       replaceWith;
     boolean      foundGeneration = false;
 
index f7157c1769845f455e5fe206a27511885cba41f4..cddc02d1c9cd3b1bf390f94778d80d422cc1eebd 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.util.logging;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.List;
 import java.util.MissingResourceException;
 import java.util.ResourceBundle;
@@ -776,7 +778,7 @@ public class Logger
       {
         if (isLoggable(Level.FINER))
           {
-            StringBuffer buf = new StringBuffer(80);
+            CPStringBuilder buf = new CPStringBuilder(80);
             buf.append("ENTRY");
             for (int i = 0; i < params.length; i++)
               {
index 2ebb1a1485fc149e7448e9044ff15bd51ab8dd3a..da731f2b1de45c3c7ecd6a3b8a2a0b36bf74cbdc 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.util.logging;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.text.DateFormat;
@@ -98,7 +100,7 @@ public class SimpleFormatter
    */
   public String format(LogRecord record)
   {
-    StringBuffer buf = new StringBuffer(180);
+    CPStringBuilder buf = new CPStringBuilder(180);
 
     if (dateFormat == null)
       dateFormat = DateFormat.getDateTimeInstance();
index 8f5769be1b9483a014873d810507b4f3bf855e4b..194fcd238cef85667f6332fed2c0aabdfe96c10b 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package java.util.logging;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.ResourceBundle;
@@ -86,10 +88,10 @@ public class XMLFormatter
   /**
    * Appends a line consisting of indentation, opening element tag,
    * element content, closing element tag and line separator to
-   * a StringBuffer, provided that the element content is
+   * a CPStringBuilder, provided that the element content is
    * actually existing.
    *
-   * @param buf the StringBuffer to which the line will be appended.
+   * @param buf the CPStringBuilder to which the line will be appended.
    *
    * @param indent the indentation level.
    *
@@ -98,7 +100,7 @@ public class XMLFormatter
    * @param content the element content, or <code>null</code> to
    *        have no output whatsoever appended to <code>buf</code>.
    */
-  private static void appendTag(StringBuffer buf, int indent,
+  private static void appendTag(CPStringBuilder buf, int indent,
                                 String tag, String content)
   {
     int i;
@@ -163,9 +165,9 @@ public class XMLFormatter
   /**
    * Appends a line consisting of indentation, opening element tag,
    * numeric element content, closing element tag and line separator
-   * to a StringBuffer.
+   * to a CPStringBuilder.
    *
-   * @param buf the StringBuffer to which the line will be appended.
+   * @param buf the CPStringBuilder to which the line will be appended.
    *
    * @param indent the indentation level.
    *
@@ -173,7 +175,7 @@ public class XMLFormatter
    *
    * @param content the element content.
    */
-  private static void appendTag(StringBuffer buf, int indent,
+  private static void appendTag(CPStringBuilder buf, int indent,
                                 String tag, long content)
   {
     appendTag(buf, indent, tag, Long.toString(content));
@@ -182,7 +184,7 @@ public class XMLFormatter
 
   public String format(LogRecord record)
   {
-    StringBuffer    buf = new StringBuffer(400);
+    CPStringBuilder    buf = new CPStringBuilder(400);
     Level           level = record.getLevel();
     long            millis = record.getMillis();
     Object[]        params = record.getParameters();
@@ -314,10 +316,10 @@ public class XMLFormatter
    */
   public String getHead(Handler h)
   {
-    StringBuffer  buf;
+    CPStringBuilder  buf;
     String        encoding;
 
-    buf = new StringBuffer(80);
+    buf = new CPStringBuilder(80);
     buf.append("<?xml version=\"1.0\" encoding=\"");
 
     encoding = h.getEncoding();
index f3a62e6980db2b521990d42d65a0ae9a1faf4650..9562e1bbf5b81a19c457d71e2fd7e7a8ed378e4f 100644 (file)
@@ -38,7 +38,8 @@ exception statement from your version. */
 
 package java.util.prefs;
 
-import gnu.java.util.prefs.EventDispatcher;
+import gnu.classpath.toolkit.DefaultDaemonThreadFactory;
+import gnu.java.lang.CPStringBuilder;
 import gnu.java.util.prefs.NodeWriter;
 
 import java.io.ByteArrayOutputStream;
@@ -49,6 +50,8 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.TreeSet;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
 
 /**
  * Partial implementation of a Preference node.
@@ -841,7 +844,7 @@ public abstract class AbstractPreferences extends Preferences {
      * Helper method for encoding an array of bytes as a Base64 String.
      */
     private static String encode64(byte[] b) {
-        StringBuffer sb = new StringBuffer((b.length/3)*4);
+        CPStringBuilder sb = new CPStringBuilder((b.length/3)*4);
 
         int i = 0;
         int remaining = b.length;
@@ -1236,17 +1239,18 @@ public abstract class AbstractPreferences extends Preferences {
      */
     private void fire(final PreferenceChangeEvent event)
     {
-      Iterator it = preferenceListeners.iterator();
-      while (it.hasNext())
+      for (final PreferenceChangeListener listener : preferenceListeners)
         {
-          final PreferenceChangeListener l = (PreferenceChangeListener) it.next();
-          EventDispatcher.dispatch(new Runnable()
-                                   {
-                                     public void run()
-                                     {
-                                       l.preferenceChange(event);
-                                     }
-                                   });
+          Runnable dispatcher = new Runnable() {
+            public void run()
+            {
+              listener.preferenceChange(event);
+            }
+          };
+          
+          Executor executor =
+            Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory());
+          executor.execute(dispatcher);
         }
     }
 
@@ -1258,20 +1262,21 @@ public abstract class AbstractPreferences extends Preferences {
      */
     private void fire(final NodeChangeEvent event, final boolean added)
     {
-      Iterator it = nodeListeners.iterator();
-      while (it.hasNext())
+      for (final NodeChangeListener listener : nodeListeners)
         {
-          final NodeChangeListener l = (NodeChangeListener) it.next();
-          EventDispatcher.dispatch(new Runnable()
-                                   {
-                                     public void run()
-                                     {
-                                       if (added)
-                                         l.childAdded(event);
-                                       else
-                                         l.childRemoved(event);
-                                     }
-                                   });
+          Runnable dispatcher = new Runnable() {
+            public void run()
+            {
+              if (added)
+                listener.childAdded(event);
+              else
+                listener.childRemoved(event);
+            }
+          };
+          
+          Executor executor =
+            Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory());
+          executor.execute(dispatcher);
         }
     }
 
index bf833673b0e80ba6f0a33df2f7824c65d6f1f97f..50cb065f28733b547f41d8702d28c872e6bed850 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.util.regex;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.util.regex.CharIndexed;
 import gnu.java.util.regex.RE;
 import gnu.java.util.regex.REMatch;
@@ -59,11 +61,45 @@ public final class Matcher implements MatchResult
   private int appendPosition;
   private REMatch match;
 
+  /**
+   * The start of the region of the input on which to match.
+   */
+  private int regionStart;
+
+  /**
+   * The end of the region of the input on which to match.
+   */
+  private int regionEnd;
+  
+  /**
+   * True if the match process should look beyond the 
+   * region marked by regionStart to regionEnd when
+   * performing lookAhead, lookBehind and boundary
+   * matching.
+   */
+  private boolean transparentBounds;
+
+  /**
+   * The flags that affect the anchoring bounds.
+   * If {@link #hasAnchoringBounds()} is {@code true},
+   * the match process will honour the
+   * anchoring bounds: ^, \A, \Z, \z and $.  If
+   * {@link #hasAnchoringBounds()} is {@code false},
+   * the anchors are ignored and appropriate flags,
+   * stored in this variable, are used to provide this
+   * behaviour.
+   */
+  private int anchoringBounds;
+
   Matcher(Pattern pattern, CharSequence input)
   {
     this.pattern = pattern;
     this.input = input;
     this.inputCharIndexed = RE.makeCharIndexed(input, 0);
+    regionStart = 0;
+    regionEnd = input.length();
+    transparentBounds = false;
+    anchoringBounds = 0;
   }
   
   /**
@@ -125,13 +161,17 @@ public final class Matcher implements MatchResult
   public boolean find ()
   {
     boolean first = (match == null);
-    match = pattern.getRE().getMatch(inputCharIndexed, position);
+    if (transparentBounds || (regionStart == 0 && regionEnd == input.length()))
+      match = pattern.getRE().getMatch(inputCharIndexed, position, anchoringBounds);
+    else
+      match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd),
+                                      position, anchoringBounds);
     if (match != null)
       {
        int endIndex = match.getEndIndex();
        // Are we stuck at the same position?
        if (!first && endIndex == position)
-         {
+         {         
            match = null;
            // Not at the end of the input yet?
            if (position < input.length() - 1)
@@ -156,7 +196,11 @@ public final class Matcher implements MatchResult
    */
   public boolean find (int start)
   {
-    match = pattern.getRE().getMatch(inputCharIndexed, start);
+    if (transparentBounds || (regionStart == 0 && regionEnd == input.length()))
+      match = pattern.getRE().getMatch(inputCharIndexed, start, anchoringBounds);
+    else
+      match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd),
+                                      start, anchoringBounds);
     if (match != null)
       {
        position = match.getEndIndex();
@@ -218,7 +262,12 @@ public final class Matcher implements MatchResult
  
   public boolean lookingAt ()
   {
-    match = pattern.getRE().getMatch(inputCharIndexed, 0, RE.REG_FIX_STARTING_POSITION, null);
+    if (transparentBounds || (regionStart == 0 && regionEnd == input.length()))
+      match = pattern.getRE().getMatch(inputCharIndexed, regionStart,
+                                      anchoringBounds|RE.REG_FIX_STARTING_POSITION|RE.REG_ANCHORINDEX);
+    else
+      match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), 0,
+                                      anchoringBounds|RE.REG_FIX_STARTING_POSITION);
     if (match != null)
       {
        if (match.getStartIndex() == 0)
@@ -243,7 +292,12 @@ public final class Matcher implements MatchResult
    */
   public boolean matches ()
   {
-    match = pattern.getRE().getMatch(inputCharIndexed, 0, RE.REG_TRY_ENTIRE_MATCH|RE.REG_FIX_STARTING_POSITION, null);
+    if (transparentBounds || (regionStart == 0 && regionEnd == input.length()))
+      match = pattern.getRE().getMatch(inputCharIndexed, regionStart,
+                                      anchoringBounds|RE.REG_TRY_ENTIRE_MATCH|RE.REG_FIX_STARTING_POSITION|RE.REG_ANCHORINDEX);
+    else
+      match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), 0,
+                                      anchoringBounds|RE.REG_TRY_ENTIRE_MATCH|RE.REG_FIX_STARTING_POSITION);
     if (match != null)
       {
        if (match.getStartIndex() == 0)
@@ -265,15 +319,40 @@ public final class Matcher implements MatchResult
     return pattern;
   }
   
+  /**
+   * Resets the internal state of the matcher, including
+   * resetting the region to its default state of encompassing
+   * the whole input.  The state of {@link #hasTransparentBounds()}
+   * and {@link #hasAnchoringBounds()} are unaffected.
+   *
+   * @return a reference to this matcher.
+   * @see #regionStart()
+   * @see #regionEnd()
+   * @see #hasTransparentBounds()
+   * @see #hasAnchoringBounds()
+   */
   public Matcher reset ()
   {
     position = 0;
     match = null;
+    regionStart = 0;
+    regionEnd = input.length();
+    appendPosition = 0;
     return this;
   }
   
   /**
-   * @param input The new input character sequence
+   * Resets the internal state of the matcher, including
+   * resetting the region to its default state of encompassing
+   * the whole input.  The state of {@link #hasTransparentBounds()}
+   * and {@link #hasAnchoringBounds()} are unaffected.
+   *
+   * @param input The new input character sequence.
+   * @return a reference to this matcher.
+   * @see #regionStart()
+   * @see #regionEnd()
+   * @see #hasTransparentBounds()
+   * @see #hasAnchoringBounds()
    */
   public Matcher reset (CharSequence input)
   {
@@ -283,7 +362,7 @@ public final class Matcher implements MatchResult
   }
   
   /**
-   * @returns the index of a capturing group in this matcher's pattern
+   * @return the index of a capturing group in this matcher's pattern
    *
    * @exception IllegalStateException If no match has yet been attempted,
    * or if the previous match operation failed
@@ -312,6 +391,7 @@ public final class Matcher implements MatchResult
 
   /**
    * @return True if and only if the matcher hit the end of input.
+   * @since 1.5
    */
   public boolean hitEnd()
   {
@@ -323,10 +403,12 @@ public final class Matcher implements MatchResult
    */
   public String toString()
   {
-    StringBuilder sb = new StringBuilder();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append(this.getClass().getName())
       .append("[pattern=").append(pattern.pattern())
-      .append(" region=").append("0").append(",").append(input.length())
+      .append(" region=").append(regionStart).append(",").append(regionEnd)
+      .append(" anchoringBounds=").append(anchoringBounds == 0)
+      .append(" transparentBounds=").append(transparentBounds)
       .append(" lastmatch=").append(match == null ? "" : match.toString())
       .append("]");
     return sb.toString();
@@ -336,4 +418,193 @@ public final class Matcher implements MatchResult
   {
     if (match == null) throw new IllegalStateException();
   }
+
+  /**
+   * <p>
+   * Defines the region of the input on which to match.
+   * By default, the {@link Matcher} attempts to match
+   * the whole string (from 0 to the length of the input),
+   * but a region between {@code start} (inclusive) and
+   * {@code end} (exclusive) on which to match may instead
+   * be defined using this method.
+   * </p>
+   * <p>
+   * The behaviour of region matching is further affected
+   * by the use of transparent or opaque bounds (see
+   * {@link #useTransparentBounds(boolean)}) and whether or not
+   * anchors ({@code ^} and {@code $}) are in use
+   * (see {@link #useAnchoringBounds(boolean)}).  With transparent
+   * bounds, the matcher is aware of input outside the bounds
+   * set by this method, whereas, with opaque bounds (the default)
+   * only the input within the bounds is used.  The use of
+   * anchors are affected by this setting; with transparent
+   * bounds, anchors will match the beginning of the real input,
+   * while with opaque bounds they match the beginning of the
+   * region.  {@link #useAnchoringBounds(boolean)} can be used
+   * to turn on or off the matching of anchors.
+   * </p>
+   *
+   * @param start the start of the region (inclusive).
+   * @param end the end of the region (exclusive).
+   * @return a reference to this matcher.
+   * @throws IndexOutOfBoundsException if either {@code start} or
+   *                                   {@code end} are less than zero,
+   *                                   if either {@code start} or
+   *                                   {@code end} are greater than the
+   *                                   length of the input, or if
+   *                                   {@code start} is greater than
+   *                                   {@code end}.
+   * @see #regionStart()
+   * @see #regionEnd()
+   * @see #hasTransparentBounds()
+   * @see #useTransparentBounds(boolean)
+   * @see #hasAnchoringBounds()
+   * @see #useAnchoringBounds(boolean)
+   * @since 1.5
+   */
+  public Matcher region(int start, int end)
+  {
+    int length = input.length();
+    if (start < 0)
+      throw new IndexOutOfBoundsException("The start position was less than zero.");
+    if (start >= length)
+      throw new IndexOutOfBoundsException("The start position is after the end of the input.");
+    if (end < 0)
+      throw new IndexOutOfBoundsException("The end position was less than zero.");
+    if (end > length)
+      throw new IndexOutOfBoundsException("The end position is after the end of the input.");
+    if (start > end)
+      throw new IndexOutOfBoundsException("The start position is after the end position.");
+    reset();
+    regionStart = start;
+    regionEnd = end;
+    return this;
+  }
+
+  /**
+   * The start of the region on which to perform matches (inclusive).
+   *
+   * @return the start index of the region.
+   * @see #region(int,int)
+   * #see #regionEnd()
+   * @since 1.5
+   */
+  public int regionStart()
+  {
+    return regionStart;
+  }
+  
+  /**
+   * The end of the region on which to perform matches (exclusive).
+   *
+   * @return the end index of the region.
+   * @see #region(int,int)
+   * @see #regionStart()
+   * @since 1.5
+   */
+  public int regionEnd()
+  {
+    return regionEnd;
+  }
+
+  /**
+   * Returns true if the bounds of the region marked by
+   * {@link #regionStart()} and {@link #regionEnd()} are
+   * transparent.  When these bounds are transparent, the
+   * matching process can look beyond them to perform
+   * lookahead, lookbehind and boundary matching operations.
+   * By default, the bounds are opaque.
+   *
+   * @return true if the bounds of the matching region are
+   *         transparent.
+   * @see #useTransparentBounds(boolean)
+   * @see #region(int,int)
+   * @see #regionStart()
+   * @see #regionEnd()
+   * @since 1.5
+   */
+  public boolean hasTransparentBounds()
+  {
+    return transparentBounds;
+  }
+
+  /**
+   * Sets the transparency of the bounds of the region
+   * marked by {@link #regionStart()} and {@link #regionEnd()}.
+   * A value of {@code true} makes the bounds transparent,
+   * so the matcher can see beyond them to perform lookahead,
+   * lookbehind and boundary matching operations.  A value
+   * of {@code false} (the default) makes the bounds opaque,
+   * restricting the match to the input region denoted
+   * by {@link #regionStart()} and {@link #regionEnd()}.
+   *
+   * @param transparent true if the bounds should be transparent.
+   * @return a reference to this matcher.
+   * @see #hasTransparentBounds()
+   * @see #region(int,int)
+   * @see #regionStart()
+   * @see #regionEnd()
+   * @since 1.5
+   */
+  public Matcher useTransparentBounds(boolean transparent)
+  {
+    transparentBounds = transparent;
+    return this;
+  }
+
+  /**
+   * Returns true if the matcher will honour the use of
+   * the anchoring bounds: {@code ^}, {@code \A}, {@code \Z},
+   * {@code \z} and {@code $}.  By default, the anchors
+   * are used.  Note that the effect of the anchors is
+   * also affected by {@link #hasTransparentBounds()}.
+   *
+   * @return true if the matcher will attempt to match
+   *         the anchoring bounds.
+   * @see #useAnchoringBounds(boolean)
+   * @see #hasTransparentBounds()
+   * @since 1.5
+   */
+  public boolean hasAnchoringBounds()
+  {
+    return anchoringBounds == 0;
+  }
+
+  /**
+   * Enables or disables the use of the anchoring bounds:
+   * {@code ^}, {@code \A}, {@code \Z}, {@code \z} and
+   * {@code $}. By default, their use is enabled.  When
+   * disabled, the matcher will not attempt to match
+   * the anchors.
+   *
+   * @param useAnchors true if anchoring bounds should be used.
+   * @return a reference to this matcher.
+   * @since 1.5
+   * @see #hasAnchoringBounds()
+   */
+  public Matcher useAnchoringBounds(boolean useAnchors)
+  {
+    if (useAnchors)
+      anchoringBounds = 0;
+    else
+      anchoringBounds = RE.REG_NOTBOL|RE.REG_NOTEOL;
+    return this;
+  }
+
+  /**
+   * Returns a read-only snapshot of the current state of
+   * the {@link Matcher} as a {@link MatchResult}.  Any
+   * subsequent changes to this instance are not reflected
+   * in the returned {@link MatchResult}.
+   *
+   * @return a {@link MatchResult} instance representing the
+   *         current state of the {@link Matcher}.
+   */
+  public MatchResult toMatchResult()
+  {
+    Matcher snapshot = new Matcher(pattern, input);
+    snapshot.match = (REMatch) match.clone();
+    return snapshot;
+  }
+
 }
index 217ce0862a92cbee1111ac06e227b852c20ab1e1..35ec0b89eb6a16c229b7de84749eb1039e1af986 100644 (file)
@@ -191,7 +191,7 @@ public final class Pattern implements Serializable
   public String[] split (CharSequence input, int limit)
   {
     Matcher matcher = new Matcher(this, input);
-    ArrayList list = new ArrayList();
+    ArrayList<String> list = new ArrayList<String>();
     int empties = 0;
     int count = 0;
     int start = 0;
@@ -251,9 +251,7 @@ public final class Pattern implements Serializable
          list.add(t);
       }
 
-    String[] output = new String [list.size()];
-    list.toArray(output);
-    return output;
+    return list.toArray(new String[list.size()]);
   }
   
   public String pattern ()
index 41e650d324bb68246110e3c785b28a3eb5cdcba4..38e27db2709184780dd5dffa8bca9e24e5be127a 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package java.util.regex;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * Indicates illegal pattern for regular expression.
  * Includes state to inspect the pattern and what and where the expression
@@ -115,7 +117,7 @@ public class PatternSyntaxException extends IllegalArgumentException
   public String getMessage()
   {
     String lineSep = System.getProperty("line.separator");
-    StringBuffer sb = new StringBuffer(desc);
+    CPStringBuilder sb = new CPStringBuilder(desc);
     sb.append(lineSep);
     sb.append('\t');
     sb.append(pattern);
index e97c6054ff428be12b2a7154b386f03ce68a6992..41d9881448cd282a4b34df43e39c63bd2432aec8 100644 (file)
@@ -241,7 +241,6 @@ public class Deflater
   /** 
    * Gets the number of input bytes processed so far.
    */
-  @Deprecated
   public int getTotalIn()
   {
     return (int) engine.getTotalIn();
@@ -259,7 +258,6 @@ public class Deflater
   /** 
    * Gets the number of output bytes so far.
    */
-  @Deprecated
   public int getTotalOut()
   {
     return (int) totalOut;
index 509b9576429d70b1acb383cf5ebd31444a00784a..e3e555ab9958b23524f1ec84ccc549553041739d 100644 (file)
@@ -246,7 +246,6 @@ public class Inflater
    * Gets the total number of processed compressed input bytes.
    * @return the total number of bytes of processed input bytes.
    */
-  @Deprecated
   public int getTotalIn()
   {
     return (int) (totalIn - getRemaining());
@@ -266,7 +265,6 @@ public class Inflater
    * Gets the total number of output bytes returned by inflate().
    * @return the total number of output bytes.
    */
-  @Deprecated
   public int getTotalOut()
   {
     return (int) totalOut;
index 893f043746d4a820c64605fac40860a57b9759ce..a6d01af5ff6b2deb831c3a349c8a441cad8772e3 100644 (file)
@@ -50,23 +50,39 @@ import java.util.Calendar;
  */
 public class ZipEntry implements ZipConstants, Cloneable
 {
-  private static final int KNOWN_SIZE   = 1;
-  private static final int KNOWN_CSIZE  = 2;
-  private static final int KNOWN_CRC    = 4;
-  private static final int KNOWN_TIME   = 8;
-  private static final int KNOWN_EXTRA  = 16;
-
-  private static Calendar cal;
-
-  private String name;
+  private static final byte KNOWN_SIZE    = 1;
+  private static final byte KNOWN_CSIZE   = 2;
+  private static final byte KNOWN_CRC     = 4;
+  private static final byte KNOWN_TIME    = 8;
+  private static final byte KNOWN_DOSTIME = 16;
+  private static final byte KNOWN_EXTRA   = 32;
+
+  /** Immutable name of the entry */
+  private final String name;
+  /** Uncompressed size */
   private int size;
+  /** Compressed size */
   private long compressedSize = -1;
+  /** CRC of uncompressed data */
   private int crc;
+  /** Comment or null if none */
+  private String comment = null;
+  /** The compression method. Either DEFLATED or STORED, by default -1. */
+  private byte method = -1;
+  /** Flags specifying what we know about this entry */
+  private byte known = 0;
+  /**
+   * The 32bit DOS encoded format for the time of this entry. Only valid if
+   * KNOWN_DOSTIME is set in known.
+   */
   private int dostime;
-  private short known = 0;
-  private short method = -1;
+  /**
+   * The 64bit Java encoded millisecond time since the beginning of the epoch.
+   * Only valid if KNOWN_TIME is set in known.
+   */
+  private long time;
+  /** Extra data */
   private byte[] extra = null;
-  private String comment = null;
 
   int flags;              /* used by ZipOutputStream */
   int offset;             /* used by ZipFile and ZipOutputStream */
@@ -113,6 +129,7 @@ public class ZipEntry implements ZipConstants, Cloneable
     compressedSize = e.compressedSize;
     crc = e.crc;
     dostime = e.dostime;
+    time = e.time;
     method = e.method;
     extra = e.extra;
     comment = e.comment;
@@ -121,37 +138,60 @@ public class ZipEntry implements ZipConstants, Cloneable
   final void setDOSTime(int dostime)
   {
     this.dostime = dostime;
-    known |= KNOWN_TIME;
+    known |= KNOWN_DOSTIME;
+    known &= ~KNOWN_TIME;
   }
 
   final int getDOSTime()
   {
-    if ((known & KNOWN_TIME) == 0)
-      return 0;
-    else
+    if ((known & KNOWN_DOSTIME) != 0)
       return dostime;
+    else  if ((known & KNOWN_TIME) != 0)
+      {
+       Calendar cal = Calendar.getInstance();
+       cal.setTimeInMillis(time);
+       dostime = (cal.get(Calendar.YEAR) - 1980 & 0x7f) << 25
+          | (cal.get(Calendar.MONTH) + 1) << 21
+          | (cal.get(Calendar.DAY_OF_MONTH)) << 16
+          | (cal.get(Calendar.HOUR_OF_DAY)) << 11
+          | (cal.get(Calendar.MINUTE)) << 5
+          | (cal.get(Calendar.SECOND)) >> 1;
+       known |= KNOWN_DOSTIME;
+       return dostime;
+      }
+    else
+      return 0;
   }
 
   /**
    * Creates a copy of this zip entry.
    */
-  /**
-   * Clones the entry.
-   */
   public Object clone()
   {
-    try
+    // JCL defines this as being the same as the copy constructor above,
+    // except that value of the "extra" field is also copied. Take care
+    // that in the case of a subclass we use clone() rather than the copy
+    // constructor.
+    ZipEntry clone;
+    if (this.getClass() == ZipEntry.class)
+      clone = new ZipEntry(this);
+    else
       {
-       // The JCL says that the `extra' field is also copied.
-       ZipEntry clone = (ZipEntry) super.clone();
-       if (extra != null)
-         clone.extra = (byte[]) extra.clone();
-       return clone;
+       try
+         {
+          clone = (ZipEntry) super.clone();
+         }
+       catch (CloneNotSupportedException e)
+         {
+          throw new InternalError();
+         }
       }
-    catch (CloneNotSupportedException ex)
+    if (extra != null)
       {
-       throw new InternalError();
+       clone.extra = new byte[extra.length];
+       System.arraycopy(extra, 0, clone.extra, 0, extra.length);
       }
+    return clone;
   }
 
   /**
@@ -169,18 +209,9 @@ public class ZipEntry implements ZipConstants, Cloneable
    */
   public void setTime(long time)
   {
-    Calendar cal = getCalendar();
-    synchronized (cal)
-      {
-       cal.setTimeInMillis(time);
-       dostime = (cal.get(Calendar.YEAR) - 1980 & 0x7f) << 25
-         | (cal.get(Calendar.MONTH) + 1) << 21
-         | (cal.get(Calendar.DAY_OF_MONTH)) << 16
-         | (cal.get(Calendar.HOUR_OF_DAY)) << 11
-         | (cal.get(Calendar.MINUTE)) << 5
-         | (cal.get(Calendar.SECOND)) >> 1;
-      }
+    this.time = time;
     this.known |= KNOWN_TIME;
+    this.known &= ~KNOWN_DOSTIME;
   }
 
   /**
@@ -192,39 +223,34 @@ public class ZipEntry implements ZipConstants, Cloneable
     // The extra bytes might contain the time (posix/unix extension)
     parseExtra();
 
-    if ((known & KNOWN_TIME) == 0)
-      return -1;
-
-    int sec = 2 * (dostime & 0x1f);
-    int min = (dostime >> 5) & 0x3f;
-    int hrs = (dostime >> 11) & 0x1f;
-    int day = (dostime >> 16) & 0x1f;
-    int mon = ((dostime >> 21) & 0xf) - 1;
-    int year = ((dostime >> 25) & 0x7f) + 1980; /* since 1900 */
-   
-    try
-      {
-       cal = getCalendar();
-       synchronized (cal)
-         {
-           cal.set(year, mon, day, hrs, min, sec);
-           return cal.getTimeInMillis();
-         }
-      }
-    catch (RuntimeException ex)
+    if ((known & KNOWN_TIME) != 0)
+      return time;
+    else if ((known & KNOWN_DOSTIME) != 0)
       {
-       /* Ignore illegal time stamp */
-       known &= ~KNOWN_TIME;
-       return -1;
+       int sec = 2 * (dostime & 0x1f);
+       int min = (dostime >> 5) & 0x3f;
+       int hrs = (dostime >> 11) & 0x1f;
+       int day = (dostime >> 16) & 0x1f;
+       int mon = ((dostime >> 21) & 0xf) - 1;
+       int year = ((dostime >> 25) & 0x7f) + 1980; /* since 1900 */
+
+       try
+         {
+          Calendar cal = Calendar.getInstance();
+          cal.set(year, mon, day, hrs, min, sec);
+          time = cal.getTimeInMillis();
+          known |= KNOWN_TIME;
+          return time;
+        }
+       catch (RuntimeException ex)
+         {
+          /* Ignore illegal time stamp */
+          known &= ~KNOWN_TIME;
+          return -1;
+         }
       }
-  }
-
-  private static synchronized Calendar getCalendar()
-  {
-    if (cal == null)
-      cal = Calendar.getInstance();
-
-    return cal;
+    else
+      return -1;
   }
 
   /**
@@ -298,7 +324,7 @@ public class ZipEntry implements ZipConstants, Cloneable
     if (method != ZipOutputStream.STORED
        && method != ZipOutputStream.DEFLATED)
        throw new IllegalArgumentException();
-    this.method = (short) method;
+    this.method = (byte) method;
   }
 
   /**
index 3b34bd1f50b50223c21bd2f13f34d7dc6d4f9a26..7cf7007ed8f783cf14cff740274ee0165fd26519 100644 (file)
@@ -340,7 +340,7 @@ public class ZipFile implements ZipConstants
       }
     catch (IOException ioe)
       {
-       return EmptyEnumeration.getInstance();
+       return new EmptyEnumeration<ZipEntry>();
       }
   }
 
index 49161d77e9d34e2fc262a151aa82d44f0d8c92ca..0770fdbeb781c98a3018c9c6a62412dcf4c92301 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.accessibility;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Locale;
 import java.util.Vector;
 
@@ -216,7 +218,7 @@ public class AccessibleRelationSet
     if (i == 0)
       return "";
     // Pre-allocate an average of 10 chars per state.
-    StringBuffer b = new StringBuffer(i * 10);
+    CPStringBuilder b = new CPStringBuilder(i * 10);
     while (--i >= 0)
       b.append(relations.get(i)).append(',');
     return b.substring(0, b.length() - 1);
index 783f5412742e7d3c81f3ddf9c07fb2fb4396b011..83bf3d49167ddd692e635ef1ef07192532ebf534 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.accessibility;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Locale;
 import java.util.Vector;
 
@@ -165,7 +167,7 @@ public class AccessibleStateSet
     if (i == 0)
       return "";
     // Pre-allocate an average of 10 chars per state.
-    StringBuffer b = new StringBuffer(i * 10);
+    CPStringBuilder b = new CPStringBuilder(i * 10);
     while (--i >= 0)
       b.append(states.get(i)).append(',');
     return b.substring(0, b.length() - 1);
diff --git a/libjava/classpath/javax/activation/ActivationDataFlavor.java b/libjava/classpath/javax/activation/ActivationDataFlavor.java
new file mode 100644 (file)
index 0000000..07ba1a3
--- /dev/null
@@ -0,0 +1,161 @@
+/* ActivationDataFlavor.java -- Activation-specific DataFlavor instance.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+import java.awt.datatransfer.DataFlavor;
+import java.io.InputStream;
+
+/**
+ * Activation-specific DataFlavor with improved MIME parsing.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.0.2
+ */
+public class ActivationDataFlavor extends DataFlavor
+{
+
+    private final String mimeType;
+    private final Class<?> representationClass;
+    private String humanPresentableName;
+
+    /**
+     * Constructor.
+     * @param representationClass the representation class
+     * @param mimeType the MIME type of the data
+     * @param humanPresentableName the human-presentable name of the data
+     * flavor
+     */
+  // Raw types enforced as part of spec.
+  @SuppressWarnings("unchecked")
+    public ActivationDataFlavor(Class representationClass, String mimeType,
+            String humanPresentableName)
+    {
+        super(mimeType, humanPresentableName);
+        this.mimeType = mimeType;
+        this.humanPresentableName = humanPresentableName;
+        this.representationClass = representationClass;
+    }
+
+    /**
+     * Constructor.
+     * @param representationClass the representation class
+     * @param humanPresentableName the human-presentable name of the data
+     * flavor
+     */
+  // Raw types enforced as part of spec.
+  @SuppressWarnings("unchecked")
+    public ActivationDataFlavor(Class representationClass,
+            String humanPresentableName)
+    {
+        super(representationClass, humanPresentableName);
+        mimeType = super.getMimeType();
+        this.representationClass = representationClass;
+        this.humanPresentableName = humanPresentableName;
+    }
+
+    /**
+     * Constructor. The representation class is an InputStream.
+     * @param mimeType the MIME type of the data
+     * @param humanPresentableName the human-presentable name of the data
+     * flavor
+     */
+    public ActivationDataFlavor(String mimeType, String humanPresentableName)
+    {
+        super(mimeType, humanPresentableName);
+        this.mimeType = mimeType;
+        this.humanPresentableName = humanPresentableName;
+        representationClass = InputStream.class;
+    }
+
+    public String getMimeType()
+    {
+        return mimeType;
+    }
+
+  // Raw types enforced as part of spec.
+  @SuppressWarnings("unchecked")
+    public Class getRepresentationClass()
+    {
+        return representationClass;
+    }
+
+    public String getHumanPresentableName()
+    {
+        return humanPresentableName;
+    }
+
+    public void setHumanPresentableName(String humanPresentableName)
+    {
+        this.humanPresentableName = humanPresentableName;
+    }
+    
+    public boolean equals(DataFlavor dataFlavor)
+    {
+        return (isMimeTypeEqual(dataFlavor) &&
+                dataFlavor.getRepresentationClass() == representationClass);
+    }
+
+    public boolean isMimeTypeEqual(String mimeType)
+    {
+        try
+        {
+            return new MimeType(this.mimeType).match(new MimeType(mimeType));
+        }
+        catch (MimeTypeParseException e)
+        {
+            return false;
+        }
+    }
+
+    protected String normalizeMimeTypeParameter(String parameterName,
+            String parameterValue)
+    {
+        return new CPStringBuilder(parameterName)
+            .append('=')
+            .append(parameterValue)
+            .toString();
+    }
+
+    protected String normalizeMimeType(String mimeType)
+    {
+        return mimeType;
+    }
+
+}
diff --git a/libjava/classpath/javax/activation/CommandInfo.java b/libjava/classpath/javax/activation/CommandInfo.java
new file mode 100644 (file)
index 0000000..d420c6e
--- /dev/null
@@ -0,0 +1,117 @@
+/* CommandInfo.java -- Description of the result of a command request.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.beans.Beans;
+import java.io.Externalizable;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+
+/**
+ * Description of the result of a command request.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class CommandInfo
+{
+
+  private final String verb;
+  private final String className;
+  
+  /**
+   * Constructor.
+   * @param verb the command verb
+   * @param className the command class name
+   */
+  public CommandInfo(String verb, String className)
+  {
+    this.verb = verb;
+    this.className = className;
+  }
+  
+  /**
+   * Returns the command verb.
+   */
+  public String getCommandName()
+  {
+    return verb;
+  }
+  
+  /**
+   * Returns the command class name.
+   */
+  public String getCommandClass()
+  {
+    return className;
+  }
+  
+  /**
+   * Returns the instantiated bean.
+   * If the bean implements <code>CommandObject</code>, its
+   * <code>setCommandContext</code> method will be called.
+   * @param dh the data handler describing the command data
+   * @param loader the class loader used to instantiate the bean
+   */
+  public Object getCommandObject(DataHandler dh, ClassLoader loader)
+    throws IOException, ClassNotFoundException
+  {
+    Object object = Beans.instantiate(loader, className);
+    if (object != null)
+      {
+        if (object instanceof CommandObject)
+          {
+            CommandObject command = (CommandObject)object;
+            command.setCommandContext(verb, dh);
+          }
+        else if (dh != null && (object instanceof Externalizable))
+          {
+            InputStream in = dh.getInputStream();
+            if (in != null)
+              {
+                Externalizable externalizable = (Externalizable)object;
+                externalizable.readExternal(new ObjectInputStream(in));
+              }
+          }
+      }
+    return object;
+  }
+  
+}
+
diff --git a/libjava/classpath/javax/activation/CommandMap.java b/libjava/classpath/javax/activation/CommandMap.java
new file mode 100644 (file)
index 0000000..fd74961
--- /dev/null
@@ -0,0 +1,212 @@
+/* CommandMap.java -- Registry of available command objects.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+/**
+ * Registry of command objects available to the system.
+ * 
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public abstract class CommandMap
+{
+
+  /* Class scope */
+  
+  private static CommandMap defaultCommandMap;
+  
+  /**
+   * Returns the default command map.
+   * This returns a MailcapCommandMap if no value has been set using
+   * <code>setDefaultCommandMap</code>.
+   */
+  public static CommandMap getDefaultCommandMap()
+  {
+    if (defaultCommandMap == null)
+      {
+        defaultCommandMap = new MailcapCommandMap();
+      }
+    return defaultCommandMap;
+  }
+  
+  /**
+   * Sets the default command map.
+   * @param commandMap the new default command map
+   */
+  public static void setDefaultCommandMap(CommandMap commandMap)
+  {
+    SecurityManager security = System.getSecurityManager();
+    if (security != null)
+      {
+        try
+          {
+            security.checkSetFactory();
+          }
+        catch (SecurityException e)
+          {
+            if (commandMap != null && CommandMap.class.getClassLoader() !=
+                commandMap.getClass().getClassLoader())
+              {
+                throw e;
+              }
+          }
+      }
+    defaultCommandMap = commandMap;
+  }
+
+  /* Instance scope */
+  
+  /**
+   * Returns the list of preferred commands for a MIME type.
+   * @param mimeType the MIME type
+   */
+  public abstract CommandInfo[] getPreferredCommands(String mimeType);
+  
+  /**
+   * Returns the complete list of commands for a MIME type.
+   * @param mimeType the MIME type
+   */
+  public abstract CommandInfo[] getAllCommands(String mimeType);
+  
+  /**
+   * Returns the command corresponding to the specified MIME type and
+   * command name.
+   * @param mimeType the MIME type
+   * @param cmdName the command name
+   */
+  public abstract CommandInfo getCommand(String mimeType, String cmdName);
+  
+  /**
+   * Returns a DataContentHandler corresponding to the MIME type.
+   * @param mimeType the MIME type
+   */
+  public abstract DataContentHandler createDataContentHandler(String mimeType);
+  
+  /**
+   * Get all the MIME types known to this command map.
+   * If the command map doesn't support this operation, null is returned.
+   * @return array of MIME types as strings, or null if not supported
+   * @since JAF 1.1
+   */
+  public String[] getMimeTypes()
+  {
+    return null;
+  }
+  
+  /**
+   * Get the preferred command list from a MIME Type. The actual semantics
+   * are determined by the implementation of the CommandMap.
+   * <p>
+   * The <code>DataSource</code> provides extra information, such as
+   * the file name, that a CommandMap implementation may use to further
+   * refine the list of commands that are returned.  The implementation
+   * in this class simply calls the <code>getPreferredCommands</code>
+   * method that ignores this argument.
+   * @param mimeType the MIME type
+   * @param ds a DataSource for the data
+   * @return the CommandInfo classes that represent the command Beans.
+   * @since JAF 1.1
+   */
+  public CommandInfo[] getPreferredCommands(String mimeType,
+                                            DataSource ds)
+  {
+    return getPreferredCommands(mimeType);
+  }
+  
+  /**
+   * Get all the available commands for this type. This method
+   * should return all the possible commands for this MIME type.
+   * <p>
+   * The <code>DataSource</code> provides extra information, such as
+   * the file name, that a CommandMap implementation may use to further
+   * refine the list of commands that are returned.  The implementation
+   * in this class simply calls the <code>getAllCommands</code>
+   * method that ignores this argument.
+   * @param mimeType the MIME type
+   * @param ds a DataSource for the data
+   * @return the CommandInfo objects representing all the commands.
+   * @since JAF 1.1
+   */
+  public CommandInfo[] getAllCommands(String mimeType, DataSource ds)
+  {
+    return getAllCommands(mimeType);
+  }
+  
+  /**
+   * Get the default command corresponding to the MIME type.
+   * <p>
+   * The <code>DataSource</code> provides extra information, such as
+   * the file name, that a CommandMap implementation may use to further
+   * refine the command that is chosen.  The implementation
+   * in this class simply calls the <code>getCommand</code>
+   * method that ignores this argument.
+   * @param mimeType the MIME type
+   * @param cmdName the command name
+   * @param ds a DataSource for the data
+   * @return the CommandInfo corresponding to the command.
+   * @since JAF 1.1
+   */
+  public CommandInfo getCommand(String mimeType, String cmdName,
+                                DataSource ds)
+  {
+    return getCommand(mimeType, cmdName);
+  }
+  
+  /**
+   * Locate a DataContentHandler that corresponds to the MIME type.
+   * The mechanism and semantics for determining this are determined
+   * by the implementation of the particular CommandMap.
+   * <p>
+   * The <code>DataSource</code> provides extra information, such as
+   * the file name, that a CommandMap implementation may use to further
+   * refine the choice of DataContentHandler.  The implementation
+   * in this class simply calls the <code>createDataContentHandler</code>
+   * method that ignores this argument.
+   * @param mimeType the MIME type
+   * @param ds a DataSource for the data
+   * @return the DataContentHandler for the MIME type
+   * @since JAF 1.1
+   */
+  public DataContentHandler createDataContentHandler(String mimeType,
+                                                     DataSource ds)
+  {
+    return createDataContentHandler(mimeType);
+  }  
+
+}
+
diff --git a/libjava/classpath/javax/activation/CommandObject.java b/libjava/classpath/javax/activation/CommandObject.java
new file mode 100644 (file)
index 0000000..594622d
--- /dev/null
@@ -0,0 +1,62 @@
+/* CommandObject.java -- Bean interface for notifications.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.IOException;
+
+/**
+ * Bean interface to implement in order to receive notification of the
+ * command verb.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public interface CommandObject
+{
+
+  /**
+   * Initializes the command with the verb it is expected to perform and
+   * the data handler describing the data to operate on.
+   * @param verb the command verb
+   * @param dh the data handler describing the data to process
+   */
+  void setCommandContext(String verb, DataHandler dh)
+    throws IOException;
+  
+}
+
diff --git a/libjava/classpath/javax/activation/DataContentHandler.java b/libjava/classpath/javax/activation/DataContentHandler.java
new file mode 100644 (file)
index 0000000..f950739
--- /dev/null
@@ -0,0 +1,85 @@
+/* DataContentHandler.java -- Converts streams to objects and vice versa.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Provider that can convert streams to objects and vice versa.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public interface DataContentHandler
+{
+
+  /**
+   * Returns a list of the flavors that data can be provided in, ordered
+   * by preference.
+   */
+  DataFlavor[] getTransferDataFlavors();
+  
+  /**
+   * Returns an object representing the data to be transferred.
+   * @param df the flavor representing the requested type
+   * @param ds the data source of the data to be converted
+   */
+  Object getTransferData(DataFlavor df, DataSource ds)
+    throws UnsupportedFlavorException, IOException;
+  
+  /**
+   * Returns an object representing the data in its most preferred form.
+   * @param ds the data source of the data to be converted
+   */
+  Object getContent(DataSource ds)
+    throws IOException;
+  
+  /**
+   * Writes the object as a stream of bytes.
+   * @param obj the object to convert
+   * @param mimeType the MIME type of the stream
+   * @param os the byte stream
+   */
+  void writeTo(Object obj, String mimeType, OutputStream os)
+    throws IOException;
+  
+}
+
diff --git a/libjava/classpath/javax/activation/DataContentHandlerFactory.java b/libjava/classpath/javax/activation/DataContentHandlerFactory.java
new file mode 100644 (file)
index 0000000..c1f2b78
--- /dev/null
@@ -0,0 +1,56 @@
+/* DataContentHandlerFactory.java -- Factory for creating DataContentHandlers.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+/**
+ * Factory interface for creating data content handlers.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public interface DataContentHandlerFactory
+{
+
+  /**
+   * Returns a new data content handler for the specified MIME type.
+   * @param mimeType the MIME type
+   */
+  DataContentHandler createDataContentHandler(String mimeType);
+  
+}
+
diff --git a/libjava/classpath/javax/activation/DataHandler.java b/libjava/classpath/javax/activation/DataHandler.java
new file mode 100644 (file)
index 0000000..de786f9
--- /dev/null
@@ -0,0 +1,482 @@
+/* DataHandler.java -- Handler for data available in multiple formats.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PipedInputStream;
+import java.io.PipedOutputStream;
+import java.net.URL;
+
+/**
+ * Handler for data available in multiple sources and formats.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class DataHandler
+  implements Transferable
+{
+
+  private static final DataFlavor[] NO_FLAVORS = new DataFlavor[0];
+  private static DataContentHandlerFactory factory = null;
+  
+  private final DataSource dataSource;
+  private DataSource objDataSource;
+  private Object object;
+  private String objectMimeType;
+  private CommandMap currentCommandMap;
+  private DataFlavor[] transferFlavors = NO_FLAVORS;
+  private DataContentHandler dataContentHandler;
+  private DataContentHandler factoryDCH;
+  private DataContentHandlerFactory oldFactory;
+  private String shortType;
+  
+  /**
+   * Constructor in which the data is read from a data source.
+   * @param ds the data source
+   */
+  public DataHandler(DataSource ds)
+  {
+    dataSource = ds;
+    oldFactory = factory;
+  }
+  
+  /**
+   * Constructor using a reified object representation.
+   * @param obj the object representation of the data
+   * @param mimeType the MIME type of the object
+   */
+  public DataHandler(Object obj, String mimeType)
+  {
+    dataSource = null;
+    object = obj;
+    objectMimeType = mimeType;
+    oldFactory = factory;
+  }
+  
+  /**
+   * Constructor in which the data is read from a URL.
+   * @param url the URL
+   */
+  public DataHandler(URL url)
+  {
+    dataSource = new URLDataSource(url);
+    oldFactory = factory;
+  }
+  
+  /**
+   * Returns the data source from which data is read.
+   */
+  public DataSource getDataSource()
+  {
+    if (dataSource != null)
+      {
+        return dataSource;
+      }
+    if (objDataSource == null)
+      {
+        objDataSource = new DataHandlerDataSource(this);
+      }
+    return objDataSource;
+  }
+  
+  /**
+   * Returns the name of the data object if created with a DataSource.
+   */
+  public String getName()
+  {
+    if (dataSource != null)
+      {
+        return dataSource.getName();
+      }
+    return null;
+  }
+  
+  /**
+   * Returns the MIME type of the data (with parameters).
+   */
+  public String getContentType()
+  {
+    if (dataSource != null)
+      {
+        return dataSource.getContentType();
+      }
+    return objectMimeType;
+  }
+  
+  /**
+   * Returns an input stream from which the data can be read.
+   */
+  public InputStream getInputStream()
+    throws IOException
+  {
+    if (dataSource != null)
+      {
+        return dataSource.getInputStream();
+      }
+    DataContentHandler dch = getDataContentHandler();
+    if (dch == null)
+      {
+        throw new UnsupportedDataTypeException("no DCH for MIME type " +
+                                               getShortType());
+      }
+    if ((dch instanceof ObjectDataContentHandler) &&
+        ((ObjectDataContentHandler)dch).getDCH() == null)
+      {
+        throw new UnsupportedDataTypeException("no object DCH " +
+                                               "for MIME type " +
+                                               getShortType());
+      }
+    PipedOutputStream pos = new PipedOutputStream();
+    DataContentHandlerWriter dchw =
+      new DataContentHandlerWriter(dch, object, objectMimeType, pos);
+    Thread thread = new Thread(dchw, "DataHandler.getInputStream");
+    thread.start();
+    return new PipedInputStream(pos);
+  }
+  
+  static class DataContentHandlerWriter
+    implements Runnable
+  {
+    
+    DataContentHandler dch;
+    Object object;
+    String mimeType;
+    OutputStream out;
+    
+    DataContentHandlerWriter(DataContentHandler dch, Object object,
+                             String mimeType, OutputStream out)
+    {
+      this.dch = dch;
+      this.object = object;
+      this.mimeType = mimeType;
+      this.out = out;
+    }
+    
+    public void run()
+    {
+      try
+        {
+          dch.writeTo(object, mimeType, out);
+        }
+      catch(IOException e)
+        {
+        }
+      finally
+        {
+          try
+            {
+              out.close();
+            }
+          catch(IOException e)
+            {
+            }
+        }
+    }
+  }
+  
+  /**
+   * Writes the data as a byte stream.
+   * @param os the stream to write to
+   */
+  public void writeTo(OutputStream os)
+    throws IOException
+  {
+    if (dataSource != null)
+      {
+        InputStream in = dataSource.getInputStream();
+        byte[] buf = new byte[8192];
+        for (int len = in.read(buf); len != -1; len = in.read(buf))
+          {
+            os.write(buf, 0, len);
+          }
+        in.close();
+      }
+    else
+      {
+        DataContentHandler dch = getDataContentHandler();
+        dch.writeTo(object, objectMimeType, os);
+      }
+  }
+  
+  /**
+   * Returns an output stream that can be used to overwrite the underlying
+   * data, if the DataSource constructor was used.
+   */
+  public OutputStream getOutputStream()
+    throws IOException
+  {
+    if (dataSource != null)
+      {
+        return dataSource.getOutputStream();
+      }
+    return null;
+  }
+  
+  /**
+   * Returns the data flavors in which this data is available.
+   */
+  public synchronized DataFlavor[] getTransferDataFlavors()
+  {
+    if (factory != oldFactory || transferFlavors == NO_FLAVORS)
+      {
+        DataContentHandler dch = getDataContentHandler();
+        transferFlavors = dch.getTransferDataFlavors();
+      }
+    return transferFlavors;
+  }
+  
+  /**
+   * Indicates whether the specified data flavor is supported for this
+   * data.
+   */
+  public boolean isDataFlavorSupported(DataFlavor flavor)
+  {
+    DataFlavor[] flavors = getTransferDataFlavors();
+    for (int i = 0; i < flavors.length; i++)
+      {
+        if (flavors[i].equals(flavor))
+          {
+            return true;
+          }
+      }
+    return false;
+  }
+  
+  /**
+   * Returns an object representing the data to be transferred.
+   * @param flavor the requested data flavor
+   */
+  public Object getTransferData(DataFlavor flavor)
+    throws UnsupportedFlavorException, IOException
+  {
+    DataContentHandler dch = getDataContentHandler();
+    return dch.getTransferData(flavor, dataSource);
+  }
+  
+  /**
+   * Sets the command map to be used by this data handler.
+   * Setting to null uses the default command map.
+   * @param commandMap the command map to use
+   */
+  public synchronized void setCommandMap(CommandMap commandMap)
+  {
+    if (commandMap != currentCommandMap || commandMap == null)
+      {
+        transferFlavors = NO_FLAVORS;
+        dataContentHandler = null;
+        currentCommandMap = commandMap;
+      }
+  }
+  
+  /**
+   * Returns the preferred commands for this type of data.
+   */
+  public CommandInfo[] getPreferredCommands()
+  {
+    CommandMap commandMap = getCommandMap();
+    return commandMap.getPreferredCommands(getShortType());
+  }
+
+  /**
+   * Returns the complete list of commands for this type of data.
+   */
+  public CommandInfo[] getAllCommands()
+  {
+    CommandMap commandMap = getCommandMap();
+    return commandMap.getAllCommands(getShortType());
+  }
+
+  /**
+   * Returns the specified command.
+   * @param cmdName the command name
+   */
+  public CommandInfo getCommand(String cmdName)
+  {
+    CommandMap commandMap = getCommandMap();
+    return commandMap.getCommand(getShortType(), cmdName);
+  }
+  
+  /**
+   * Returns the data as a reified object.
+   */
+  public Object getContent()
+    throws IOException
+  {
+    DataContentHandler dch = getDataContentHandler();
+    return dch.getContent(getDataSource());
+  }
+  
+  /**
+   * Returns the instantiated bean using the specified command.
+   * @param cmdInfo the command to instantiate the bean with
+   */
+  public Object getBean(CommandInfo cmdInfo)
+  {
+    try
+      {
+        return cmdInfo.getCommandObject(this, getClass().getClassLoader());
+      }
+    catch (IOException e)
+      {
+        e.printStackTrace(System.err);
+        return null;
+      }
+    catch (ClassNotFoundException e)
+      {
+        e.printStackTrace(System.err);
+        return null;
+      }
+  }
+
+  /**
+   * Sets the data content handler factory.
+   * If the factory has already been set, throws an Error.
+   * @param newFactory the factory to set
+   */
+  public static synchronized void
+    setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
+  {
+    if (factory != null)
+      {
+        throw new Error("DataContentHandlerFactory already defined");
+      }
+    SecurityManager security = System.getSecurityManager();
+    if (security != null)
+      {
+        try
+          {
+            security.checkSetFactory();
+          }
+        catch (SecurityException e)
+          {
+            if (newFactory != null && DataHandler.class.getClassLoader()
+                != newFactory.getClass().getClassLoader())
+              {
+                throw e;
+              }
+          }
+      }
+    factory = newFactory;
+  }
+  
+  /*
+   * Returns just the base part of the data's content-type, with no
+   * parameters.
+   */
+  private synchronized String getShortType()
+  {
+    if (shortType == null)
+      {
+        String contentType = getContentType();
+        try
+          {
+            MimeType mimeType = new MimeType(contentType);
+            shortType = mimeType.getBaseType();
+          }
+        catch (MimeTypeParseException e)
+          {
+            shortType = contentType;
+          }
+      }
+    return shortType;
+  }
+  
+  /*
+   * Returns the command map for this handler.
+   */
+  private synchronized CommandMap getCommandMap()
+  {
+    if (currentCommandMap != null)
+      {
+        return currentCommandMap;
+      }
+    return CommandMap.getDefaultCommandMap();
+  }
+  
+  /*
+   * Returns the DCH for this handler.
+   */
+  private synchronized DataContentHandler getDataContentHandler()
+  {
+    if (factory != oldFactory)
+      {
+        oldFactory = factory;
+        factoryDCH = null;
+        dataContentHandler = null;
+        transferFlavors = NO_FLAVORS;
+      }
+    if (dataContentHandler != null)
+      {
+        return dataContentHandler;
+      }
+    String mimeType = getShortType();
+    if (factoryDCH == null && factory != null)
+      {
+        factoryDCH = factory.createDataContentHandler(mimeType);
+      }
+    if (factoryDCH != null)
+      {
+        dataContentHandler = factoryDCH;
+      }
+    if (dataContentHandler == null)
+      {
+        CommandMap commandMap = getCommandMap();
+        dataContentHandler = commandMap.createDataContentHandler(mimeType);
+      }
+    if (dataSource != null)
+      {
+        dataContentHandler =
+          new DataSourceDataContentHandler(dataContentHandler, dataSource);
+      }
+    else
+      {
+        dataContentHandler =
+          new ObjectDataContentHandler(dataContentHandler, object,
+                                       objectMimeType);
+      }
+    return dataContentHandler;
+  }
+  
+}
+
diff --git a/libjava/classpath/javax/activation/DataHandlerDataSource.java b/libjava/classpath/javax/activation/DataHandlerDataSource.java
new file mode 100644 (file)
index 0000000..8dcd1a7
--- /dev/null
@@ -0,0 +1,84 @@
+/* DataHandlerDataSource.java -- Data source proxy for a DataHandler.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Data source that is a proxy for a data handler.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+final class DataHandlerDataSource
+  implements DataSource
+{
+
+  final DataHandler dh;
+  
+  DataHandlerDataSource(DataHandler dh)
+  {
+    this.dh = dh;
+  }
+  
+  public String getContentType()
+  {
+    return dh.getContentType();
+  }
+  
+  public InputStream getInputStream()
+    throws IOException
+  {
+    return dh.getInputStream();
+  }
+  
+  public String getName()
+  {
+    return dh.getName();
+  }
+  
+  public OutputStream getOutputStream()
+    throws IOException
+  {
+    return dh.getOutputStream();
+  }
+
+}
+
diff --git a/libjava/classpath/javax/activation/DataSource.java b/libjava/classpath/javax/activation/DataSource.java
new file mode 100644 (file)
index 0000000..0d70843
--- /dev/null
@@ -0,0 +1,76 @@
+/* DataSource.java -- An interface for MIME data storage and retrieval.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * An interface by which MIME data can be retrieved and stored.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public interface DataSource
+{
+  
+  /**
+   * Returns an input stream from which the data can be read.
+   */
+  InputStream getInputStream()
+    throws IOException;
+  
+  /**
+   * Returns an output stream to which the data can be written.
+   */
+  OutputStream getOutputStream()
+    throws IOException;
+  
+  /**
+   * Returns the MIME content type of the data.
+   */
+  String getContentType();
+  
+  /**
+   * Returns the underlying name of this object.
+   */
+  String getName();
+  
+}
+
diff --git a/libjava/classpath/javax/activation/DataSourceDataContentHandler.java b/libjava/classpath/javax/activation/DataSourceDataContentHandler.java
new file mode 100644 (file)
index 0000000..9706ac1
--- /dev/null
@@ -0,0 +1,126 @@
+/* DataSourceDataContentHolder.java -- DCH using an existing data source.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Data content handler using an existing DCH and a data source.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+class DataSourceDataContentHandler
+  implements DataContentHandler
+{
+
+  private DataSource ds;
+  private DataFlavor[] flavors;
+  private DataContentHandler dch;
+  
+  public DataSourceDataContentHandler(DataContentHandler dch, DataSource ds)
+  {
+    this.ds = ds;
+    this.dch = dch;
+  }
+  
+  public Object getContent(DataSource ds)
+    throws IOException
+  {
+    if (dch != null)
+      {
+        return dch.getContent(ds);
+      }
+    else
+      {
+        return ds.getInputStream();
+      }
+  }
+  
+  public Object getTransferData(DataFlavor flavor, DataSource ds)
+    throws UnsupportedFlavorException, IOException
+  {
+    if (dch != null)
+      {
+        return dch.getTransferData(flavor, ds);
+      }
+    DataFlavor[] tdf = getTransferDataFlavors();
+    if (tdf.length > 0 && flavor.equals(tdf[0]))
+      {
+        return ds.getInputStream();
+      }
+    else
+      {
+        throw new UnsupportedFlavorException(flavor);
+      }
+  }
+  
+  public DataFlavor[] getTransferDataFlavors()
+  {
+    if (flavors == null)
+      {
+        if (dch != null)
+          {
+            flavors = dch.getTransferDataFlavors();
+          }
+        else
+          {
+            String mimeType = ds.getContentType();
+            flavors = new DataFlavor[1];
+            flavors[0] = new ActivationDataFlavor(mimeType, mimeType);
+          }
+      }
+    return flavors;
+  }
+
+  public void writeTo(Object obj, String mimeType, OutputStream out)
+    throws IOException
+  {
+    if (dch == null)
+      {
+        throw new UnsupportedDataTypeException("no DCH for content type " +
+                                               ds.getContentType());
+      }
+    dch.writeTo(obj, mimeType, out);
+  }
+    
+}
+
diff --git a/libjava/classpath/javax/activation/FileDataSource.java b/libjava/classpath/javax/activation/FileDataSource.java
new file mode 100644 (file)
index 0000000..6e9035f
--- /dev/null
@@ -0,0 +1,123 @@
+/* FileDataSource.java -- Data source for a File object.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Data source encapsulating a file.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class FileDataSource
+  implements DataSource
+{
+
+  private final File file;
+  private FileTypeMap typeMap;
+  
+  /**
+   * Constructor.
+   * @param file the underlying file to use
+   */
+  public FileDataSource(File file)
+  {
+    this.file = file;
+  }
+  
+  /**
+   * Constructor.
+   * @param name the path to the underlying file to use
+   */
+  public FileDataSource(String name)
+  {
+    this(new File(name));
+  }
+  
+  public InputStream getInputStream()
+    throws IOException
+  {
+    return new FileInputStream(file);
+  }
+
+  public OutputStream getOutputStream()
+    throws IOException
+  {
+    return new FileOutputStream(file);
+  }
+  
+  public String getContentType()
+  {
+    if (typeMap == null)
+      {
+        FileTypeMap dftm = FileTypeMap.getDefaultFileTypeMap();
+        return dftm.getContentType(file);
+      }
+    return typeMap.getContentType(file);
+  }
+  
+  public String getName()
+  {
+    return file.getName();
+  }
+  
+  /**
+   * Returns the underlying file.
+   */
+  public File getFile()
+  {
+    return file;
+  }
+
+  /**
+   * Sets the file type map to use to determine the content type of the file.
+   * @param map the file type map
+   */
+  public void setFileTypeMap(FileTypeMap map)
+  {
+    typeMap = map;
+  }
+  
+}
+
diff --git a/libjava/classpath/javax/activation/FileTypeMap.java b/libjava/classpath/javax/activation/FileTypeMap.java
new file mode 100644 (file)
index 0000000..2ef7805
--- /dev/null
@@ -0,0 +1,108 @@
+/* FileTypeMap.java -- Classifies the MIME content of files.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.File;
+
+/**
+ * Classifier for the MIME content type of files.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public abstract class FileTypeMap
+{
+
+  /* Class scope */
+  
+  private static FileTypeMap defaultMap;
+  
+  /**
+   * Returns the system default file type map.
+   * If one has not been set, this returns a MimetypesFileTypeMap.
+   */
+  public static FileTypeMap getDefaultFileTypeMap()
+  {
+    if (defaultMap == null)
+      {
+        defaultMap = new MimetypesFileTypeMap();
+      }
+    return defaultMap;
+  }
+  
+  /**
+   * Sets the default file type map.
+   * @param map the new file type map
+   */
+  public static void setDefaultFileTypeMap(FileTypeMap map)
+  {
+    SecurityManager security = System.getSecurityManager();
+    if (security != null)
+      {
+        try
+          {
+            security.checkSetFactory();
+          }
+        catch (SecurityException e)
+          {
+            if (map != null && FileTypeMap.class.getClassLoader() !=
+                map.getClass().getClassLoader())
+              {
+                throw e;
+              }
+          }
+      }
+    defaultMap = map;
+  }
+
+  /* Instance scope */
+  
+  /**
+   * Returns the content type of the specified file.
+   * @param file the file to classify
+   */
+  public abstract String getContentType(File file);
+  
+  /**
+   * Returns the content type of the specified file path.
+   * @param filename the path of the file to classify
+   */
+  public abstract String getContentType(String filename);
+
+}
+
diff --git a/libjava/classpath/javax/activation/MailcapCommandMap.java b/libjava/classpath/javax/activation/MailcapCommandMap.java
new file mode 100644 (file)
index 0000000..cca5f04
--- /dev/null
@@ -0,0 +1,804 @@
+/* MailcapCommandMap.java -- Command map implementation using a mailcap file.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.LinkedHashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Implementation of a command map using a <code>mailcap</code> file (RFC
+ * 1524). Mailcap files are searched for in the following places:
+ * <ol>
+ * <li>Programmatically added entries to this interface</li>
+ * <li>the file <tt>.mailcap</tt> in the user's home directory</li>
+ * <li>the file <i>&lt;java.home&gt;</i><tt>/lib/mailcap</tt></li>
+ * <li>the resource <tt>META-INF/mailcap</tt></li>
+ * <li>the resource <tt>META-INF/mailcap.default</tt> in the JAF
+ * distribution</li>
+ * </ol>
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class MailcapCommandMap
+    extends CommandMap
+{
+
+  private static final int PROG = 0;
+  private static final int HOME = 1;
+  private static final int SYS = 2;
+  private static final int JAR = 3;
+  private static final int DEF = 4;
+  private static boolean debug = false;
+  private static final int NORMAL = 0;
+  private static final int FALLBACK = 1;
+  
+  static 
+  {
+    try
+      {
+        String d = System.getProperty("javax.activation.debug");
+        debug = Boolean.valueOf(d).booleanValue();
+      }
+    catch (SecurityException e)
+      {
+      }
+  }
+  
+  private Map<String,Map<String,List<String>>>[][] mailcaps;
+  
+  /**
+   * Default constructor.
+   */
+  public MailcapCommandMap()
+  {
+    init(null);
+  }
+  
+  /**
+   * Constructor specifying a filename.
+   * @param fileName the name of the file to read mailcap entries from
+   */
+  public MailcapCommandMap(String fileName)
+    throws IOException
+  {
+    Reader in = null;
+    try
+      {
+        in = new FileReader(fileName);
+      }
+    catch (IOException e)
+      {
+      }
+    init(in);
+    if (in != null)
+      {
+        try
+          {
+            in.close();
+          }
+        catch (IOException e)
+          {
+          }
+      }
+  }
+  
+  /**
+   * Constructor specifying an input stream.
+   * @param is the input stream to read mailcap entries from
+   */
+  public MailcapCommandMap(InputStream is)
+  {
+    init(new InputStreamReader(is));
+  }
+
+  private void init(Reader in)
+  {
+    mailcaps = new Map[5][2];
+    for (int i = 0; i < 5; i++)
+      {
+        for (int j = 0; j < 2; j++)
+          {
+            mailcaps[i][j] =
+             new LinkedHashMap<String,Map<String,List<String>>>();
+          }
+      }
+    if (in != null)
+      {
+        if (debug)
+          {
+            System.out.println("MailcapCommandMap: load PROG");
+          }
+        try
+          {
+            parse(PROG, in);
+          }
+        catch (IOException e)
+          {
+          }
+      }
+    
+    if (debug)
+      {
+        System.out.println("MailcapCommandMap: load HOME");
+      }
+    try
+      {
+        String home = System.getProperty("user.home");
+        if (home != null)
+          {
+            parseFile(HOME, new CPStringBuilder(home)
+                      .append(File.separatorChar)
+                      .append(".mailcap")
+                      .toString());
+          }
+      }
+    catch (SecurityException e)
+      {
+      }
+    
+    if (debug)
+      {
+        System.out.println("MailcapCommandMap: load SYS");
+      }
+    try
+      {
+        parseFile(SYS, 
+                  new CPStringBuilder(System.getProperty("java.home"))
+                  .append(File.separatorChar)                                                     
+                 .append("lib")
+                  .append(File.separatorChar)
+                  .append("mailcap")
+                  .toString());
+      }
+    catch (SecurityException e)
+      {
+      }
+    
+    if (debug)
+      {
+        System.out.println("MailcapCommandMap: load JAR");
+      }
+    List<URL> systemResources = getSystemResources("META-INF/mailcap");
+    int len = systemResources.size();
+    if (len > 0)
+      {
+        for (int i = 0; i < len ; i++)
+          {
+            Reader urlIn = null;
+            URL url = systemResources.get(i);
+            try
+              {
+                if (debug)
+                  {
+                    System.out.println("\t" + url.toString());
+                  }
+                urlIn = new InputStreamReader(url.openStream());
+                parse(JAR, urlIn);
+              }
+            catch (IOException e)
+              {
+                if (debug)
+                  {
+                    System.out.println(e.getClass().getName() + ": " +
+                                       e.getMessage());
+                  }
+              }
+            finally
+              {
+                if (urlIn != null)
+                  {
+                    try
+                      {
+                        urlIn.close();
+                      }
+                    catch (IOException e)
+                      {
+                      }
+                  }
+              }
+          }
+      }
+    else
+      {
+        parseResource(JAR, "/META-INF/mailcap");
+      }
+    
+    if (debug)
+      {
+        System.out.println("MailcapCommandMap: load DEF");
+      }
+    parseResource(DEF, "/META-INF/mailcap.default");
+  }
+  
+  /**
+   * Returns the list of preferred commands for a given MIME type.
+   * @param mimeType the MIME type
+   */
+  public synchronized CommandInfo[] getPreferredCommands(String mimeType)
+  {
+    List<CommandInfo> cmdList = new ArrayList<CommandInfo>();
+    List<String> verbList = new ArrayList<String>();
+    for (int i = 0; i < 2; i++)
+      {
+        for (int j = 0; j < 5; j++)
+          {
+            Map<String,List<String>> map = getCommands(mailcaps[j][i], mimeType);
+            if (map != null)
+              {
+                for (Map.Entry<String,List<String>> entry : map.entrySet())
+                  {
+                    String verb = entry.getKey();
+                    if (!verbList.contains(verb))
+                      {
+                        List<String> classNames = entry.getValue();
+                        String className = classNames.get(0);
+                        CommandInfo cmd = new CommandInfo(verb, className);
+                        cmdList.add(cmd);
+                        verbList.add(verb);
+                      }
+                  }
+              }
+          }
+      }
+    CommandInfo[] cmds = new CommandInfo[cmdList.size()];
+    cmdList.toArray(cmds);
+    return cmds;
+  }
+  
+  /**
+   * Returns all commands for the given MIME type.
+   * @param mimeType the MIME type
+   */
+  public synchronized CommandInfo[] getAllCommands(String mimeType)
+  {
+    List<CommandInfo> cmdList = new ArrayList<CommandInfo>();
+    for (int i = 0; i < 2; i++)
+      {
+        for (int j = 0; j < 5; j++)
+          {
+            Map<String,List<String>> map = getCommands(mailcaps[j][i], mimeType);
+            if (map != null)
+              {
+                for (Map.Entry<String,List<String>> entry : map.entrySet())
+                  {
+                    String verb = entry.getKey();
+                    List<String> classNames = entry.getValue();
+                    int len = classNames.size();
+                    for (int l = 0; l < len; l++)
+                      {
+                        String className = classNames.get(l);
+                        CommandInfo cmd = new CommandInfo(verb, className);
+                        cmdList.add(cmd);
+                      }
+                  }
+              }
+          }
+      }
+    CommandInfo[] cmds = new CommandInfo[cmdList.size()];
+    cmdList.toArray(cmds);
+    return cmds;
+  }
+
+  /**
+   * Returns the command with the specified name for the given MIME type.
+   * @param mimeType the MIME type
+   * @param cmdName the command verb
+   */
+  public synchronized CommandInfo getCommand(String mimeType,
+                                             String cmdName)
+  {
+    for (int i = 0; i < 2; i++)
+      {
+        for (int j = 0; j < 5; j++)
+          {
+            Map<String,List<String>> map =
+             getCommands(mailcaps[j][i], mimeType);
+            if (map != null)
+              {
+                List<String> classNames = map.get(cmdName);
+                if (classNames == null)
+                  {
+                    classNames = map.get("x-java-" + cmdName);
+                  }
+                if (classNames != null)
+                  {
+                    String className = classNames.get(0);
+                    return new CommandInfo(cmdName, className);
+                  }
+              }
+          }
+      }
+    return null;
+  }
+
+  /**
+   * Adds entries programmatically to the registry.
+   * @param mailcap a mailcap string
+   */
+  public synchronized void addMailcap(String mailcap)
+  {
+    if (debug)
+      {
+        System.out.println("MailcapCommandMap: add to PROG");
+      }
+    try
+      {
+        parse(PROG, new StringReader(mailcap));
+      }
+    catch (IOException e)
+      {
+      }
+  }
+
+  /**
+   * Returns the DCH for the specified MIME type.
+   * @param mimeType the MIME type
+   */
+  public synchronized DataContentHandler
+    createDataContentHandler(String mimeType)
+  {
+    if (debug)
+      {
+        System.out.println("MailcapCommandMap: " +
+                           "createDataContentHandler for " + mimeType);
+      }
+    for (int i = 0; i < 2; i++)
+      {
+        for (int j = 0; j < 5; j++)
+          {
+            if (debug)
+              {
+                System.out.println("  search DB #" + i);
+              }
+            Map<String,List<String>> map = getCommands(mailcaps[j][i], mimeType);
+            if (map != null)
+              {
+                List<String> classNames = map.get("content-handler");
+                if (classNames == null)
+                  {
+                    classNames = map.get("x-java-content-handler");
+                  }
+                if (classNames != null)
+                  {
+                    String className = classNames.get(0);
+                    if (debug)
+                      {
+                        System.out.println("  In " + nameOf(j) +
+                                           ", content-handler=" + className);
+                      }
+                    try
+                      {
+                        Class<?> clazz = Class.forName(className);
+                        return (DataContentHandler)clazz.newInstance();
+                      }
+                    catch (IllegalAccessException e)
+                      {
+                        if (debug)
+                          {
+                            e.printStackTrace();
+                          }
+                      }
+                    catch (ClassNotFoundException e)
+                      {
+                        if (debug)
+                      {
+                        e.printStackTrace();
+                      }
+                      }
+                    catch (InstantiationException e)
+                      {
+                        if (debug)
+                          {
+                            e.printStackTrace();
+                          }
+                      }
+                  }
+              }
+          }
+      }
+    return null;
+  }
+    
+  /**
+   * Get the native commands for the given MIME type.
+   * Returns an array of strings where each string is
+   * an entire mailcap file entry.  The application
+   * will need to parse the entry to extract the actual
+   * command as well as any attributes it needs. See
+   * <a href="http://www.ietf.org/rfc/rfc1524.txt">RFC 1524</a>
+   * for details of the mailcap entry syntax.  Only mailcap
+   * entries that specify a view command for the specified
+   * MIME type are returned.
+   * @return array of native command entries
+   * @since JAF 1.1
+   */
+  public String[] getNativeCommands(String mimeType)
+  {
+    List<String> acc = new ArrayList<String>();
+    for (int i = 0; i < 2; i++)
+      {
+        for (int j = 0; j < 5; j++)
+          {
+            addNativeCommands(acc, mailcaps[j][i], mimeType);
+          }
+      }
+    String[] ret = new String[acc.size()];
+    acc.toArray(ret);
+    return ret;
+  }
+
+  private void addNativeCommands(List<String> acc,
+                                Map<String,Map<String,List<String>>> mailcap,
+                                String mimeType)
+  {
+    for (Map.Entry<String,Map<String,List<String>>> mEntry : mailcap.entrySet())
+      {
+        String entryMimeType = mEntry.getKey();
+        if (!entryMimeType.equals(mimeType))
+          {
+            continue;
+          }
+        Map<String,List<String>> commands = mEntry.getValue();
+        String viewCommand = commands.get("view-command").get(0);
+        if (viewCommand == null)
+          {
+            continue;
+          }
+        CPStringBuilder buf = new CPStringBuilder();
+        buf.append(mimeType);
+        buf.append(';');
+        buf.append(' ');
+        buf.append(viewCommand);
+        for (Map.Entry<String,List<String>> cEntry : commands.entrySet())
+          {
+            String verb = cEntry.getKey();
+            List<String> classNames = cEntry.getValue();
+            if (!"view-command".equals(verb))
+              {
+                for (String command : classNames)
+                  {
+                    buf.append(';');
+                    buf.append(' ');
+                    buf.append(verb);
+                    buf.append('=');
+                    buf.append(command);
+                  }
+              }
+          }
+        if (buf.length() > 0)
+          {
+            acc.add(buf.toString());
+          }
+      }
+  }
+  
+  private static String nameOf(int mailcap)
+  {
+    switch (mailcap)
+      {
+      case PROG:
+        return "PROG";
+      case HOME:
+        return "HOME";
+      case SYS:
+        return "SYS";
+      case JAR:
+        return "JAR";
+      case DEF:
+        return "DEF";
+      default:
+        return "ERR";
+      }   
+  }
+
+  private void parseFile(int index, String filename)
+  {
+    Reader in = null;
+    try
+      {
+        if (debug)
+          {
+            System.out.println("\t" + filename);
+          }
+        in = new FileReader(filename);
+        parse(index, in);
+      }
+    catch (IOException e)
+      {
+        if (debug)
+          {
+            System.out.println(e.getClass().getName() + ": " +
+                               e.getMessage());
+          }
+      }
+    finally
+      {
+        if (in != null)
+          {
+            try
+              {
+                in.close();
+              }
+            catch (IOException e)
+              {
+              }
+          }
+      }
+  }
+  
+  private void parseResource(int index, String name)
+  {
+    Reader in = null;
+    try
+      {
+        InputStream is = getClass().getResourceAsStream(name);
+        if (is != null)
+          {
+            if (debug)
+              {
+                System.out.println("\t" + name);
+              }
+            in = new InputStreamReader(is);
+            parse(index, in);
+          }
+      }
+    catch (IOException e)
+      {
+        if (debug)
+          {
+            System.out.println(e.getClass().getName() + ": " +
+                               e.getMessage());
+          }
+      }
+    finally
+      {
+        if (in != null)
+          {
+            try
+              {
+                in.close();
+              }
+            catch (IOException e)
+              {
+              }
+          }
+      }
+  }
+  
+  private void parse(int index, Reader in)
+    throws IOException
+  {
+    BufferedReader br = new BufferedReader(in);
+    CPStringBuilder buf = null;
+    for (String line = br.readLine(); line != null; line = br.readLine())
+      {
+        line = line.trim();
+        int len = line.length();
+        if (len == 0 || line.charAt(0) == '#')
+          {
+            continue; // Comment
+          }
+        if (line.charAt(len - 1) == '\\')
+          {
+            if (buf == null)
+              {
+                buf = new CPStringBuilder();
+              }
+            buf.append(line.substring(0, len - 1));
+          }
+        else if (buf != null)
+          {
+            buf.append(line);
+            parseEntry(index, buf.toString());
+            buf = null;
+          }
+        else
+          {
+            parseEntry(index, line);
+          }
+      }
+  }
+  
+  private void parseEntry(int index, String line)
+  {
+    // Tokenize entry into fields
+    char[] chars = line.toCharArray();
+    int len = chars.length;
+    boolean inQuotedString = false;
+    boolean fallback = false;
+    CPStringBuilder buffer = new CPStringBuilder();
+    List<String> fields = new ArrayList<String>();
+    for (int i = 0; i < len; i++)
+      {
+        char c = chars[i];
+        if (c == '\\')
+          {
+            c = chars[++i]; // qchar
+          }
+        if (c == ';' && !inQuotedString)
+          {
+            String field = buffer.toString().trim();
+            if ("x-java-fallback-entry".equals(field))
+              {
+                fallback = true;
+              }
+            fields.add(field);
+            buffer.setLength(0);
+          }
+        else
+          {
+            if (c == '"')
+              {
+                inQuotedString = !inQuotedString;
+              }
+            buffer.append(c);
+          }
+      }
+    String field = buffer.toString().trim();
+    if ("x-java-fallback-entry".equals(field))
+      {
+        fallback = true;
+      }
+    fields.add(field);
+    
+    len = fields.size();
+    if (len < 2)
+      {
+        if (debug)
+          {
+            System.err.println("Invalid mailcap entry: " + line);
+          }
+        return;
+      }
+    
+    Map<String,Map<String,List<String>>> mailcap =
+      fallback ? mailcaps[index][FALLBACK] : mailcaps[index][NORMAL];
+    String mimeType = fields.get(0);
+    addField(mailcap, mimeType, "view-command", (String) fields.get(1));
+    for (int i = 2; i < len; i++)
+      {
+        addField(mailcap, mimeType, null, (String) fields.get(i));
+      }
+  }
+    
+  private void addField(Map<String,Map<String,List<String>>> mailcap,
+                       String mimeType, String verb, String command)
+  {
+    if (verb == null)
+      {
+        int ei = command.indexOf('=');
+        if (ei != -1)
+          {
+            verb = command.substring(0, ei);
+            command = command.substring(ei + 1);
+          }
+      }
+    if (command.length() == 0 || verb == null || verb.length() == 0)
+      {
+        return; // Invalid field or flag
+      }
+      
+    Map<String,List<String>> commands = mailcap.get(mimeType);
+    if (commands == null)
+      {
+        commands = new LinkedHashMap<String,List<String>>();
+        mailcap.put(mimeType, commands);
+      }
+    List<String> classNames = commands.get(verb);
+    if (classNames == null)
+      {
+        classNames = new ArrayList<String>();
+        commands.put(verb, classNames);
+      }
+    classNames.add(command);
+  }
+  
+  private Map<String,List<String>>
+    getCommands(Map<String,Map<String,List<String>>> mailcap,
+               String mimeType)
+  {
+    int si = mimeType.indexOf('/');
+    String genericMimeType = new CPStringBuilder(mimeType.substring(0, si))
+      .append('/')
+      .append('*')
+      .toString();
+    Map<String,List<String>> specific = mailcap.get(mimeType);
+    Map<String,List<String>> generic = mailcap.get(genericMimeType);
+    if (generic == null)
+      {
+        return specific;
+      }
+    if (specific == null)
+      {
+        return generic;
+      }
+    Map<String,List<String>> combined = new LinkedHashMap<String,List<String>>();
+    combined.putAll(specific);
+    for (String verb : generic.keySet())
+      {
+        List<String> genericClassNames = generic.get(verb);
+        List<String> classNames = combined.get(verb);
+        if (classNames == null)
+          {
+            combined.put(verb, genericClassNames);
+          }
+        else
+          {
+            classNames.addAll(genericClassNames);
+          }
+      }
+    return combined;
+  }
+
+  // -- Utility methods --
+  
+  private List<URL> getSystemResources(String name)
+  {
+    List<URL> acc = new ArrayList<URL>();
+    try
+      {
+        for (Enumeration<URL> i = ClassLoader.getSystemResources(name);
+             i.hasMoreElements(); )
+          {
+            acc.add(i.nextElement());
+          }
+      }
+    catch (IOException e)
+      {
+      }
+    return acc;
+  }
+  
+}
+
diff --git a/libjava/classpath/javax/activation/MimeType.java b/libjava/classpath/javax/activation/MimeType.java
new file mode 100644 (file)
index 0000000..70045d6
--- /dev/null
@@ -0,0 +1,293 @@
+/* MimeType.java -- A MIME type as defined in RFC2046 and RFC2047.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+/**
+ * A MIME content type, as defined in RFCs 2045 and 2046.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class MimeType
+  implements Externalizable
+{
+    
+  static final String TSPECIALS = "()<>@,;:/[]?=\\\"";
+  
+  private String primaryType;
+  private String subType;
+  private MimeTypeParameterList parameters;
+  
+  /**
+   * Constructor for an <code>application/*</code> content type.
+   */
+  public MimeType()
+  {
+    primaryType = "application";
+    subType = "*";
+    parameters = new MimeTypeParameterList();
+  }
+  
+  /**
+   * Constructor that parses a raw String.
+   * @param rawdata the MIME type string
+   */
+  public MimeType(String rawdata)
+    throws MimeTypeParseException
+  {
+    parse(rawdata);
+  }
+  
+  /**
+   * Constructor for a new MIME type with the given primary and sub types
+   * and an empty parameter list.
+   * @param primary the primary type
+   * @param sub the subtype
+   */
+  public MimeType(String primary, String sub)
+    throws MimeTypeParseException
+  {
+    checkValidity(primary, "Primary type is invalid");
+    checkValidity(sub, "Sub type is invalid");
+    primaryType = primary.toLowerCase();
+    subType = sub.toLowerCase();
+    parameters = new MimeTypeParameterList();
+  }
+
+  /**
+   * Returns the primary type.
+   */
+  public String getPrimaryType()
+  {
+    return primaryType;
+  }
+  
+  /**
+   * Sets the primary type.
+   * @param primary the new primary type
+   */
+  public void setPrimaryType(String primary)
+    throws MimeTypeParseException
+  {
+    checkValidity(primary, "Primary type is invalid");
+    primaryType = primary.toLowerCase();
+  }
+  
+  /**
+   * Returns the subtype.
+   */
+  public String getSubType()
+  {
+    return subType;
+  }
+  
+  /**
+   * Sets the subtype.
+   * @param sub the new subtype
+   */
+  public void setSubType(String sub)
+    throws MimeTypeParseException
+  {
+    checkValidity(sub, "Sub type is invalid");
+    subType = sub.toLowerCase();
+  }
+  
+  /**
+   * Returns the MIME parameters.
+   */
+  public MimeTypeParameterList getParameters()
+  {
+    return parameters;
+  }
+  
+  /**
+   * Returns the parameter value for the specified name.
+   * @param name the parameter name
+   */
+  public String getParameter(String name)
+  {
+    return parameters.get(name);
+  }
+  
+  /**
+   * Sets the parameter value for the specified name.
+   * @param name the parameter name
+   * @param value the new value
+   */
+  public void setParameter(String name, String value)
+  {
+    parameters.set(name, value);
+  }
+  
+  /**
+   * Removes the parameter value for the specified name.
+   * @param name the parameter name
+   */
+  public void removeParameter(String name)
+  {
+    parameters.remove(name);
+  }
+  
+  /**
+   * Returns the complete string representation of this MIME type.
+   */
+  public String toString()
+  {
+    return new CPStringBuilder(primaryType)
+      .append('/')
+      .append(subType)
+      .append(parameters.toString())
+      .toString();
+  }
+  
+  /**
+   * Returns the string representation of this MIME type without
+   * parameters.
+   */
+  public String getBaseType()
+  {
+    return new CPStringBuilder(primaryType)
+      .append('/')
+      .append(subType)
+      .toString();
+  }
+  
+  /**
+   * Returns true if the primary and subtype of this MIME type are the
+   * same as in the given MIME type.
+   */
+  public boolean match(MimeType type)
+  {
+    String primary2 = type.getPrimaryType();
+    String sub2 = type.getSubType();
+    return primaryType.equals(primary2) && (subType.equals(sub2) ||
+                                            "*".equals(subType) ||
+                                            "*".equals(sub2));
+  }
+  
+  /**
+   * Returns true if the primary and subtype of this MIME type are the
+   * same as in the given MIME type string.
+   */
+  public boolean match(String rawdata)
+    throws MimeTypeParseException
+  {
+    return match(new MimeType(rawdata));
+  }
+  
+  public void writeExternal(ObjectOutput out)
+    throws IOException
+  {
+    out.writeUTF(toString());
+    out.flush();
+  }
+    
+  public void readExternal(ObjectInput in)
+    throws IOException, ClassNotFoundException
+  {
+    try
+      {
+        parse(in.readUTF());
+      }
+    catch (MimeTypeParseException e)
+      {
+        throw new IOException(e.getMessage());
+      }
+  }
+  
+  private void parse(String rawdata)
+    throws MimeTypeParseException
+  {
+    int si = rawdata.indexOf('/');
+    int pi = rawdata.indexOf(';');
+    if (si == -1)
+      {
+        throw new MimeTypeParseException("Unable to find a sub type.");
+      }
+    if (pi == -1)
+      {
+        primaryType = rawdata.substring(0, si).toLowerCase().trim();
+        subType = rawdata.substring(si + 1).toLowerCase().trim();
+        parameters = new MimeTypeParameterList();
+      }
+    else if (si < pi)
+      {
+        primaryType = rawdata.substring(0, si).toLowerCase().trim();
+        subType = rawdata.substring(si + 1, pi).toLowerCase().trim();
+        parameters = new MimeTypeParameterList(rawdata.substring(pi));
+      }
+    else
+      {
+        throw new MimeTypeParseException("Unable to find a sub type.");
+      }
+    checkValidity(primaryType, "Primary type is invalid");
+    checkValidity(subType, "Sub type is invalid");
+  }
+
+  static void checkValidity(String token, String message)
+    throws MimeTypeParseException
+  {
+    int len = token.length();
+    if (len == 0)
+      {
+        throw new MimeTypeParseException(message, token);
+      }
+    for (int i = 0; i < len; i++)
+      {
+        char c = token.charAt(i);
+        if (!isValidChar(c))
+          {
+            throw new MimeTypeParseException(message, token);
+          }
+      }
+  }
+  
+  static boolean isValidChar(char c)
+  {
+    return c > ' ' && c <= '~' && TSPECIALS.indexOf(c) == -1;
+  }
+
+}
+
diff --git a/libjava/classpath/javax/activation/MimeTypeParameterList.java b/libjava/classpath/javax/activation/MimeTypeParameterList.java
new file mode 100644 (file)
index 0000000..e15469d
--- /dev/null
@@ -0,0 +1,336 @@
+/* MimeTypeParameterList.java -- Handle a list of MIME type parameters.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * A list of MIME type parameters, as specified in RFCs 2045 and 2046.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class MimeTypeParameterList
+{
+
+  private final List<String> parameterNames;
+  private final Map<String,String> parameterValues;
+  
+  /**
+   * Constructor for an empty parameter list.
+   */
+  public MimeTypeParameterList()
+  {
+    parameterNames = new ArrayList<String>();
+    parameterValues = new HashMap<String,String>();
+  }
+
+  /**
+   * Constructor that parses the specified MIME parameter data.
+   * @param parameterList a MIME parameter list string representation
+   */
+  public MimeTypeParameterList(String parameterList)
+    throws MimeTypeParseException
+  {
+    this();
+    parse(parameterList);
+  }
+
+  /**
+   * Parses the specified MIME parameter data, storing the results in this
+   * object.
+   * @param parameterList a MIME parameter list string representation
+   */
+  protected void parse(String parameterList)
+    throws MimeTypeParseException
+  {
+    if (parameterList == null)
+      {
+        return;
+      }
+    // Tokenize list into parameters
+    char[] chars = parameterList.toCharArray();
+    int len = chars.length;
+    boolean inQuotedString = false;
+    CPStringBuilder buffer = new CPStringBuilder();
+    List<String> params = new ArrayList<String>();
+    for (int i = 0; i < len; i++)
+      {
+        char c = chars[i];
+        if (c == ';' && !inQuotedString)
+          {
+            String param = buffer.toString().trim();
+            if (param.length() > 0)
+              {
+                params.add(param);
+              }
+            buffer.setLength(0);
+          }
+        else
+          {
+            if (c == '"')
+              {
+                inQuotedString = !inQuotedString;
+              }
+            buffer.append(c);
+          }
+      }
+    String param = buffer.toString().trim();
+    if (param.length() > 0)
+      {
+        params.add(param);
+      }
+    
+    // Tokenize each parameter into name + value
+    for (Iterator<String> i = params.iterator(); i.hasNext();)
+      {
+       param = i.next();
+        int ei = param.indexOf('=');
+        if (ei == -1)
+          {
+            throw new MimeTypeParseException("Couldn't find the '=' that " +
+                                             "separates a parameter name " +
+                                             "from its value.");
+          }
+        String name = param.substring(0, ei).trim();
+        MimeType.checkValidity(name, "Parameter name is invalid");
+        String value = param.substring(ei + 1).trim();
+        len = value.length();
+        if (len > 1 && value.charAt(0) == '"' &&
+            value.charAt(len - 1) == '"')
+          {
+            value = unquote(value);
+          }
+        else
+          {
+            MimeType.checkValidity(name, "Parameter value is invalid");
+          }
+        
+        parameterNames.add(name);
+        parameterValues.put(name.toLowerCase(), value);
+      }
+  }
+  
+  /**
+   * Returns the number of parameters.
+   */
+  public synchronized int size()
+  {
+    return parameterNames.size();
+  }
+  
+  /**
+   * Indicates if there are no parameters.
+   */
+  public synchronized boolean isEmpty()
+  {
+    return parameterNames.isEmpty();
+  }
+
+  /**
+   * Returns the value for the specified parameter name.
+   * @param name the parameter name
+   */
+  public synchronized String get(String name)
+  {
+    name = name.trim();
+    return parameterValues.get(name.toLowerCase());
+  }
+  
+  /**
+   * Sets the value for the specified parameter name.
+   * @param name the parameter name
+   * @param value the parameter value
+   */
+  public synchronized void set(String name, String value)
+  {
+    name = name.trim();
+    boolean exists = false;
+    for (String pname : parameterNames)
+      {
+        if (name.equalsIgnoreCase(pname))
+          {
+            exists = true;
+          }
+      }
+    if (!exists)
+      {
+        parameterNames.add(name);
+      }
+    parameterValues.put(name.toLowerCase(), value);
+  }
+  
+  /**
+   * Removes the parameter identified by the specified name.
+   * @param name the parameter name
+   */
+  public synchronized void remove(String name)
+  {
+    name = name.trim();
+    for (Iterator<String> i = parameterNames.iterator();i.hasNext();)
+      {
+       String pname = i.next();
+        if (name.equalsIgnoreCase(pname))
+          {
+            i.remove();
+          }
+      }
+    parameterValues.remove(name.toLowerCase());
+  }
+  
+  /**
+   * Returns an enumeration of all the parameter names.
+   */
+  // Raw type is forced by public spec.
+  @SuppressWarnings("unchecked")
+  public synchronized Enumeration getNames()
+  {
+    return new IteratorEnumeration(parameterNames.iterator());
+  }
+  
+  /**
+   * Returns an RFC 2045-compliant string representation of this parameter
+   * list.
+   */
+  public synchronized String toString()
+  {
+    CPStringBuilder buffer = new CPStringBuilder();
+    for (String name : parameterNames)
+      {
+        String value = parameterValues.get(name.toLowerCase());
+        
+        buffer.append(';');
+        buffer.append(' ');
+        buffer.append(name);
+        buffer.append('=');
+        buffer.append(quote(value));
+      }
+    return buffer.toString();
+  }
+  
+  private static String quote(String value)
+  {
+    boolean needsQuoting = false;
+    int len = value.length();
+    for (int i = 0; i < len; i++)
+      {
+        if (!MimeType.isValidChar(value.charAt(i)))
+          {
+            needsQuoting = true;
+            break;
+          }
+      }
+    
+    if (needsQuoting)
+      {
+        CPStringBuilder buffer = new CPStringBuilder();
+        buffer.append('"');
+        for (int i = 0; i < len; i++)
+          {
+            char c = value.charAt(i);
+            if (c == '\\' || c == '"')
+              {
+                buffer.append('\\');
+              }
+            buffer.append(c);
+          }
+        buffer.append('"');
+        return buffer.toString();
+      }
+    return value;
+  }
+  
+  private static String unquote(String value)
+  {
+    int len = value.length();
+    CPStringBuilder buffer = new CPStringBuilder();
+    for (int i = 1; i < len - 1; i++)
+      {
+        char c = value.charAt(i);
+        if (c == '\\')
+          {
+            i++;
+            if (i < len - 1)
+              {
+                c = value.charAt(i);
+                if (c != '\\' && c != '"')
+                  {
+                    buffer.append('\\');
+                  }
+              }
+          }
+        buffer.append(c);
+      }
+    return buffer.toString();
+  }
+  
+  /**
+   * Enumeration proxy for an Iterator.
+   */
+  static class IteratorEnumeration
+    implements Enumeration<String>
+  {
+    
+    final Iterator<String> iterator;
+    
+    IteratorEnumeration(Iterator<String> iterator)
+    {
+      this.iterator = iterator;
+    }
+    
+    public boolean hasMoreElements()
+    {
+      return iterator.hasNext();
+    }
+    
+    public String nextElement()
+    {
+      return iterator.next();
+    }
+    
+  }
+  
+}
+
diff --git a/libjava/classpath/javax/activation/MimeTypeParseException.java b/libjava/classpath/javax/activation/MimeTypeParseException.java
new file mode 100644 (file)
index 0000000..b46e244
--- /dev/null
@@ -0,0 +1,84 @@
+/* MimeTypeParseException.java -- Exception due to invalid MIME type.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+/**
+ * Exception thrown to indicate a malformed MIME content type.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class MimeTypeParseException
+  extends Exception
+{
+
+  /**
+   * Constructs a MimeTypeParseException with no detail message.
+   */
+  public MimeTypeParseException()
+  {
+  }
+  
+  /**
+   * MimeTypeParseException with the specified detail message.
+   * @param message the exception message
+   */
+  public MimeTypeParseException(String message)
+  {
+    super(message);
+  }
+
+  /**
+   * Constructs a MimeTypeParseException with the specified detail message
+   * and token in error.
+   * @param message the exception message
+   * @param token the token in error
+   */
+  MimeTypeParseException(String message, String token)
+  {
+    this(new CPStringBuilder(message)
+         .append(':')
+         .append(' ')
+         .append(token)
+         .toString());
+  }
+  
+}
+
diff --git a/libjava/classpath/javax/activation/MimetypesFileTypeMap.java b/libjava/classpath/javax/activation/MimetypesFileTypeMap.java
new file mode 100644 (file)
index 0000000..d1566fd
--- /dev/null
@@ -0,0 +1,440 @@
+/* MimeTypesFileTypeMap.java -- A file type map using mime.types.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Implementation of FileTypeMap that uses the <tt>mime.types</tt> format.
+ * File entries are searched for in the following locations and order:
+ * <ol>
+ * <li>Programmatically added entries to this instance</li>
+ * <li>The file <tt>.mime.types</tt> in the user's home directory</li>
+ * <li>The file <i>&lt;java.home&gt;</i><tt>/lib/mime.types</tt></li>
+ * <li>The resource <tt>META-INF/mime.types</tt></li>
+ * <li>The resource <tt>META-INF/mimetypes.default</tt> in the JAF
+ * distribution</li>
+ * </ol>
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class MimetypesFileTypeMap
+  extends FileTypeMap
+{
+
+  private static final int PROG = 0;
+  private static final int HOME = 1;
+  private static final int SYS = 2;
+  private static final int JAR = 3;
+  private static final int DEF = 4;
+  private static final String DEFAULT_MIME_TYPE = "application/octet-stream";
+  private static boolean debug = false;
+  static
+  {
+    try
+      {
+        String d = System.getProperty("javax.activation.debug");
+        debug = Boolean.valueOf(d).booleanValue();
+      }
+    catch (SecurityException e)
+      {
+      }
+  }
+  
+  private Map<String,String>[] mimetypes;
+  
+  /**
+   * Default constructor.
+   */
+  public MimetypesFileTypeMap()
+  {
+    init(null);
+  }
+  
+  /**
+   * Constructor specifying a filename.
+   * @param mimeTypeFileName the name of the file to read mime.types
+   * entries from
+   */
+  public MimetypesFileTypeMap(String mimeTypeFileName)
+    throws IOException
+  {
+    Reader in = null;
+    try
+      {
+        in = new FileReader(mimeTypeFileName);
+        init(in);
+      }
+    finally
+      {
+        if (in != null)
+          {
+            in.close();
+          }
+      }
+  }
+  
+  /**
+   * Constructor specifying an input stream.
+   * @param is the input stream to read mime.types entries from
+   */
+  public MimetypesFileTypeMap(InputStream is)
+  {
+    init(new InputStreamReader(is));
+  }
+
+  private void init(Reader in)
+  {
+    mimetypes = new Map[5];
+    for (int i = 0; i < mimetypes.length; i++)
+      {
+        mimetypes[i] = new HashMap<String,String>();
+      }
+    if (in != null)
+      {
+        if (debug)
+          {
+            System.out.println("MimetypesFileTypeMap: load PROG");
+          }
+        try
+          {
+            parse(mimetypes[PROG], in);
+          }
+        catch (IOException e)
+          {
+          }
+      }
+    
+    if (debug)
+      {
+        System.out.println("MimetypesFileTypeMap: load HOME");
+      }
+    try
+      {
+        String home = System.getProperty("user.home");
+        if (home != null)
+          {
+            parseFile(mimetypes[HOME], new CPStringBuilder(home)
+                      .append(File.separatorChar)
+                      .append(".mime.types")
+                      .toString());
+          }
+      }
+    catch (SecurityException e)
+      {
+      }
+    
+    if (debug)
+      {
+        System.out.println("MimetypesFileTypeMap: load SYS");
+      }
+    try
+      {
+        parseFile(mimetypes[SYS],
+                  new CPStringBuilder(System.getProperty("java.home"))
+                  .append(File.separatorChar)                                                     
+                 .append("lib")
+                  .append(File.separatorChar)
+                  .append("mime.types")
+                  .toString());
+      }
+    catch (SecurityException e)
+      {
+      }
+    if (debug)
+      {
+        System.out.println("MimetypesFileTypeMap: load JAR");
+      }
+    List<URL> systemResources = getSystemResources("META-INF/mime.types");
+    int len = systemResources.size();
+    if (len > 0)
+      {
+        for (int i = 0; i < len ; i++)
+          {
+            Reader urlIn = null;
+            URL url = (URL)systemResources.get(i);
+            try
+              {
+                urlIn = new InputStreamReader(url.openStream());
+                parse(mimetypes[JAR], urlIn);
+              }
+            catch (IOException e)
+              {
+              }
+            finally
+              {
+                if (urlIn != null)
+                  {
+                    try
+                      {
+                        urlIn.close();
+                      }
+                    catch (IOException e)
+                      {
+                      }
+                  }
+              }
+          }
+      }
+    else
+      {
+        parseResource(mimetypes[JAR], "/META-INF/mime.types");
+      }
+    
+    if (debug)
+      {
+        System.out.println("MimetypesFileTypeMap: load DEF");
+      }
+    parseResource(mimetypes[DEF], "/META-INF/mimetypes.default");
+  }
+  
+  /**
+   * Adds entries prorammatically to the registry.
+   * @param mime_types a mime.types formatted entries string
+   */
+  public synchronized void addMimeTypes(String mime_types)
+  {
+    if (debug)
+      {
+        System.out.println("MimetypesFileTypeMap: add to PROG");
+      }
+    try
+      {
+        parse(mimetypes[PROG], new StringReader(mime_types));
+      }
+    catch (IOException e)
+      {
+      }
+  }
+
+  /**
+   * Returns the MIME content type of the file.
+   * This calls <code>getContentType(f.getName())</code>.
+   * @param f the file
+   */
+  public String getContentType(File f)
+  {
+    return getContentType(f.getName());
+  }
+  
+  /**
+   * Returns the MIME type based on the given filename.
+   * If no entry is found, returns "application/octet-stream".
+   * @param filename the filename
+   */
+  public synchronized String getContentType(String filename)
+  {
+    int di = filename.lastIndexOf('.');
+    if (di < 0)
+      {
+        return DEFAULT_MIME_TYPE;
+      }
+    String tail = filename.substring(di + 1);
+    if (tail.length() < 1)
+      {
+        return DEFAULT_MIME_TYPE;
+      }
+    for (int i = 0; i < mimetypes.length; i++)
+      {
+        String mimeType = (String)mimetypes[i].get(tail);
+        if (mimeType != null)
+          {
+            return mimeType;
+          }
+      }
+    return DEFAULT_MIME_TYPE;
+  }
+  
+  private void parseFile(Map<String,String> mimetypes, String filename)
+  {
+    Reader in = null;
+    try
+      {
+        in = new FileReader(filename);
+        parse(mimetypes, in);
+      }
+    catch (IOException e)
+      {
+      }
+    finally
+      {
+        if (in != null)
+          {
+            try
+              {
+                in.close();
+              }
+            catch (IOException e)
+              {
+              }
+          }
+      }
+  }
+  
+  private void parseResource(Map<String,String> mimetypes, String name)
+  {
+    Reader in = null;
+    try
+      {
+        InputStream is = getClass().getResourceAsStream(name);
+        if (is != null)
+          {
+            in = new InputStreamReader(is);
+            parse(mimetypes, in);
+          }
+      }
+    catch (IOException e)
+      {
+      }
+    finally
+      {
+        if (in != null)
+          {
+            try
+              {
+                in.close();
+              }
+            catch (IOException e)
+              {
+              }
+          }
+      }
+  }
+  
+  private void parse(Map<String,String> mimetypes, Reader in)
+    throws IOException
+  {
+    BufferedReader br = new BufferedReader(in);
+    CPStringBuilder buf = null;
+    for (String line = br.readLine(); line != null; line = br.readLine())
+      {
+        line = line.trim();
+        int len = line.length();
+        if (len == 0 || line.charAt(0) == '#')
+          {
+            continue; // Empty line / comment
+          }
+        if (line.charAt(len - 1) == '\\')
+          {
+            if (buf == null)
+              {
+                buf = new CPStringBuilder();
+              }
+            buf.append(line.substring(0, len - 1));
+          }
+        else if (buf != null)
+          {
+            buf.append(line);
+            parseEntry(mimetypes, buf.toString());
+            buf = null;
+          }
+        else
+          {
+            parseEntry(mimetypes, line);
+          }
+      }
+  }
+  
+  private void parseEntry(Map<String,String> mimetypes,
+                         String line)
+  {
+    // Tokenize
+    String mimeType = null;
+    char[] chars = line.toCharArray();
+    int len = chars.length;
+    CPStringBuilder buffer = new CPStringBuilder();
+    for (int i = 0; i < len; i++)
+      {
+        char c = chars[i];
+        if (Character.isWhitespace(c))
+          {
+            if (mimeType == null)
+              {
+                mimeType = buffer.toString();
+              }
+            else if (buffer.length() > 0)
+              {
+                mimetypes.put(buffer.toString(), mimeType);
+              }
+            buffer.setLength(0);
+          }
+        else
+          buffer.append(c);
+      }
+    if (buffer.length() > 0)
+      {
+        mimetypes.put(buffer.toString(), mimeType);
+      }
+  }
+  
+  // -- Utility methods --
+  
+  private List<URL> getSystemResources(String name)
+  {
+    List<URL> acc = new ArrayList<URL>();
+    try
+      {
+        for (Enumeration<URL> i = ClassLoader.getSystemResources(name);
+             i.hasMoreElements(); )
+          acc.add(i.nextElement());
+      }
+    catch (IOException e)
+      {
+      }
+    return acc;
+  }
+  
+}
+
diff --git a/libjava/classpath/javax/activation/ObjectDataContentHandler.java b/libjava/classpath/javax/activation/ObjectDataContentHandler.java
new file mode 100644 (file)
index 0000000..5105cb4
--- /dev/null
@@ -0,0 +1,128 @@
+/* ObjectDataContentHandler.java -- Data content handler using an object.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Data content handler that uses an existing DCH and reified object.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+class ObjectDataContentHandler
+  implements DataContentHandler
+{
+
+  private DataContentHandler dch;
+  private Object object;
+  private String mimeType;
+  private DataFlavor[] flavors;
+  
+  public ObjectDataContentHandler(DataContentHandler dch, Object object,
+                                  String mimeType)
+  {
+    this.dch = dch;
+    this.object = object;
+    this.mimeType = mimeType;
+  }
+  
+  public Object getContent(DataSource ds)
+  {
+    return object;
+  }
+  
+  public DataContentHandler getDCH()
+  {
+    return dch;
+  }
+
+  public Object getTransferData(DataFlavor flavor, DataSource ds)
+    throws UnsupportedFlavorException, IOException
+  {
+    if (dch != null)
+      {
+        return dch.getTransferData(flavor, ds);
+      }
+    if (flavors == null)
+      {
+        getTransferDataFlavors();
+      }
+    if (flavor.equals(flavors[0]))
+      {
+        return object;
+      }
+    throw new UnsupportedFlavorException(flavor);
+  }
+  
+  public DataFlavor[] getTransferDataFlavors()
+  {
+    if (flavors == null)
+      {
+        if (dch != null)
+          {
+            flavors = dch.getTransferDataFlavors();
+          }
+        else
+          {
+            flavors = new DataFlavor[1];
+            flavors[0] = new ActivationDataFlavor(object.getClass(),
+                                                  mimeType, mimeType);
+          }
+      }
+    return flavors;
+  }
+
+  public void writeTo(Object object, String mimeType, OutputStream out)
+    throws IOException
+  {
+    if (dch != null)
+      {
+        dch.writeTo(object, mimeType, out);
+      }
+    else
+      {
+        throw new UnsupportedDataTypeException("no object DCH for MIME type " + mimeType);
+      }
+  }
+  
+}
+
diff --git a/libjava/classpath/javax/activation/URLDataSource.java b/libjava/classpath/javax/activation/URLDataSource.java
new file mode 100644 (file)
index 0000000..8b77567
--- /dev/null
@@ -0,0 +1,138 @@
+/* URLDataSource.java -- Data source for a URL object.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URL;
+import java.net.URLConnection;
+
+/**
+ * DataSource implementation that retrieves its data from a URL.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class URLDataSource
+    implements DataSource
+{
+
+  private final URL url;
+  private URLConnection connection;
+  
+  /**
+   * Constructor.
+   * This will not open the connection to the URL.
+   */
+  public URLDataSource(URL url)
+  {
+    this.url = url;
+  }
+  
+  /**
+   * Returns the Content-Type header for the URL.
+   * In the case of failure or lack of such a header,
+   * returns "application/octet-stream".
+   */
+  public String getContentType()
+  {
+    try
+      {
+        if (connection == null)
+          {
+            connection = url.openConnection();
+          }
+      }
+    catch (IOException e)
+      {
+      }
+    String contentType = null;
+    if (connection != null)
+      {
+        contentType = connection.getContentType();
+      }
+    if (contentType == null)
+      {
+        contentType = "application/octet-stream";
+      }
+    return contentType;
+  }
+  
+  /**
+   * Returns the result of <code>getFile</code> of the underlying URL.
+   */
+  public String getName()
+  {
+    return url.getFile();
+  }
+  
+  public InputStream getInputStream()
+    throws IOException
+  {
+    connection = url.openConnection();
+    if (connection != null)
+      {
+        connection.setDoInput(true);
+        return connection.getInputStream();
+      }
+    return null;
+  }
+
+  public OutputStream getOutputStream()
+    throws IOException
+  {
+    connection = url.openConnection();
+    if (connection != null)
+      {
+        connection.setDoOutput(true);
+        return connection.getOutputStream();
+      }
+    return null;
+  }
+  
+  /**
+   * Returns the underlying URL.
+   */
+  public URL getURL()
+  {
+    return url;
+  }
+  
+}
+
diff --git a/libjava/classpath/javax/activation/UnsupportedDataTypeException.java b/libjava/classpath/javax/activation/UnsupportedDataTypeException.java
new file mode 100644 (file)
index 0000000..09460b0
--- /dev/null
@@ -0,0 +1,70 @@
+/* UnsupportedDataTypeException.java -- Thrown when a data type is not supported.
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.IOException;
+
+/**
+ * Exception indicating that the requested method doesn't support the
+ * specified data type.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class UnsupportedDataTypeException extends IOException
+{
+
+  /**
+   * Constructs an UnsupportedDataTypeException with no detail message.
+   */
+  public UnsupportedDataTypeException()
+  {
+  }
+  
+  /**
+   * Constructs an UnsupportedDataTypeException with the specified detail
+   * message.
+   * @param message the message
+   */
+  public UnsupportedDataTypeException(String message)
+  {
+    super(message);
+  }
+  
+}
+
diff --git a/libjava/classpath/javax/activation/package.html b/libjava/classpath/javax/activation/package.html
new file mode 100644 (file)
index 0000000..74027ec
--- /dev/null
@@ -0,0 +1,44 @@
+<body>
+
+<p>
+The GNU JavaBeans&trade; Activation Framework (JAF) provides a 
+<a href="http://www.gnu.org/">Free</a> implementation of the 
+JavaBeans&trade; Activation Framework, version 1.1.
+</p>
+
+<p>
+JAF links together beans and internet standards for specifying MIME
+types and how MIME types are processed. It provides a means to associate
+data of a given MIME type with bean actions operating on that data.
+</p>
+
+
+<h4>Important files</h4>
+
+<p>
+Standard <code>mime.types</code> files are parsed by the JAF MIME
+handling classes to work out the MIME types available on the local
+system.
+</p>
+
+<p>
+Standard <code>mailcap</code> files (defined in RFC1524) are parsed by
+mail capability handling classes to work out what beans should be linked
+to what MIME types.
+</p>
+
+<p>
+<small>Neither the authors nor the Free Software Foundation offer
+ANY SUPPORT for this software or imply any warranty.<br>
+Use it at your own risk.
+</small>
+</p>
+
+<p>
+<small>If you can suggest improvements in either the implementation
+code or in the documentation please contact the 
+<a href="mailto:classpath@gnu.org">GNU Classpath project</a> developers.
+</small>
+</p>
+
+</body>
index a3d967726b9e2e35419ca0287c3ce99dcd13b4c0..5f0d71d60a9555d2d86b936b2fb85043b7fefd0b 100644 (file)
@@ -851,6 +851,7 @@ public final class ImageIO
           }
         
         w.write(null, img, null);
+        w.dispose();
         output.close();
         return true;
       }
index c0567be7830bb72d16b00754c36b836ccf2f5da1..378e11fa617ed9ec9c77f5ce214c3ffb571855ea 100644 (file)
@@ -38,6 +38,8 @@
 
 package javax.imageio.plugins.jpeg;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * The JPEGHuffmanTable class represents a Huffman table read from a
  * JPEG image file.  The standard JPEG AC and DC chrominance and
@@ -263,7 +265,7 @@ public class JPEGHuffmanTable
    */
   public String toString()
   {
-    StringBuffer buffer = new StringBuffer();
+    CPStringBuilder buffer = new CPStringBuilder();
     
     buffer.append("JPEGHuffmanTable:\nlengths:");
     
index a94e8b1880d276cc5aaafb595e8eb59a1c1724a0..259d0aa643710d6700389d44d8160f13b8f741e5 100644 (file)
@@ -38,6 +38,8 @@
 
 package javax.imageio.plugins.jpeg;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * The JPEGQTable class represents a quantization table that can be
  * used to encode or decode a JPEG stream.  The standard JPEG
@@ -178,7 +180,7 @@ public class JPEGQTable
    */
   public String toString()
   {
-    StringBuffer buffer = new StringBuffer();
+    CPStringBuilder buffer = new CPStringBuilder();
 
     buffer.append("JPEGQTable:\n");
     for (int i = 0; i < 8; i++)
index 71eec41a998be44ebb2407dc70373455658bbd33..e338f1dbe3d6eda1d0f8435154a5d52dd053ff27 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.imageio.stream;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.DataInputStream;
 import java.io.EOFException;
 import java.io.IOException;
@@ -341,7 +343,7 @@ public abstract class ImageInputStreamImpl implements ImageInputStream
 
     int c = -1;
     boolean eol = false;
-    StringBuffer buffer = new StringBuffer();
+    CPStringBuilder buffer = new CPStringBuilder();
 
     c = read();
     if (c == -1)
index b905af22ff29c472d278dace60bca70edc754014..38f7d0206525244722111e307e6c2feb98842741 100644 (file)
@@ -77,6 +77,8 @@ import java.util.List;
    * @throws ClassNotFoundException if all the class loaders fail
    *                                to load the class.
    */
+  // API issue with lack of <?> on Class
+  @SuppressWarnings("unchecked")
   public static Class loadClass(String name)
     throws ClassNotFoundException
   {
@@ -124,6 +126,8 @@ import java.util.List;
    * @throws ClassNotFoundException if all the class loaders fail
    *                                to load the class.
    */
+  // API issue with lack of <?> on Class
+  @SuppressWarnings("unchecked")
   public static Class loadClassWithout(ClassLoader exclude, String name)
     throws ClassNotFoundException
   {
index a435d3e6b7718843b981e01ae92208187d4520e1..e5fb2586fc38c99bfd89aafb0f0a707fa9b2aff7 100644 (file)
@@ -324,6 +324,8 @@ public class JMX
    *         server using the given name.
    * @see #newMXBeanProxy(MBeanServerConnection, ObjectName, Class)
    */
+  // Suppress warnings as we know an instance of T will be returned.
+  @SuppressWarnings("unchecked")
   public static <T> T newMXBeanProxy(MBeanServerConnection conn,
                                    ObjectName name, Class<T> iface,
                                    boolean bcast)
index 2e8475ea0eb7acf51b9ffe56fab0123d5969d835..85e4e453b0d2598727bf3ad9a379eddf7808ba06 100644 (file)
@@ -117,7 +117,7 @@ public class MBeanAttributeInfo
       {
        Type t = setter.getGenericParameterTypes()[0];
        if (t instanceof Class)
-         attributeType = ((Class) t).getName();
+         attributeType = ((Class<?>) t).getName();
        else
          attributeType = t.toString();
        isRead = false;
@@ -127,7 +127,7 @@ public class MBeanAttributeInfo
       {
        Type t = getter.getGenericReturnType();
        if (t instanceof Class)
-         attributeType = ((Class) t).getName();
+         attributeType = ((Class<?>) t).getName();
        else
          attributeType = t.toString();
        isRead = true;
index 15c8227c24680d4c26830f66f28294d8d0fdd2e2..041f3e904b69adc3831bc94f6ad50969c6da8f4f 100644 (file)
@@ -75,6 +75,8 @@ public class MBeanConstructorInfo
    * @param desc a description of the attribute.
    * @param cons the constructor.
    */
+  // API issue with lack of <?> on Constructor
+  @SuppressWarnings("unchecked")
   public MBeanConstructorInfo(String desc, Constructor cons)
   {
     super(cons.getName(), desc);
@@ -85,7 +87,7 @@ public class MBeanConstructorInfo
        Type t = paramTypes[a];
        if (t instanceof Class)
          signature[a] = new MBeanParameterInfo(null,
-                                               ((Class) t).getName(),
+                                               ((Class<?>) t).getName(),
                                                null);
        else
          signature[a] = new MBeanParameterInfo(null, t.toString(), null);
index 6495072e627f6246e42dbb92b31839cb3fd06fdb..03220c15e103c4e09f0ec7d82f87c43e40dafef0 100644 (file)
@@ -121,14 +121,14 @@ public class MBeanOperationInfo
        Type t = paramTypes[a];
        if (t instanceof Class)
          signature[a] = new MBeanParameterInfo(null,
-                                               ((Class) t).getName(),
+                                               ((Class<?>) t).getName(),
                                                 null);
        else
          signature[a] = new MBeanParameterInfo(null, t.toString(), null);
       }
     Type retType = method.getGenericReturnType();
     if (retType instanceof Class)
-      type = ((Class) retType).getName();
+      type = ((Class<?>) retType).getName();
     else
       type = retType.toString();
     if (method.getReturnType() == Void.TYPE)
index 1ee0e710433210f12f72046a19b6eae54495214f..076ac86f1af2b1b03fdfb8cf7a60ce8a13b352f8 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.management;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.security.Permission;
 
 import java.io.IOException;
@@ -154,19 +156,19 @@ public class MBeanPermission
   /**
    * The list of actions as an ordered set.
    */
-  private transient Set actionSet;
+  private transient Set<String> actionSet;
 
   /**
    * The set of valid actions.
    */
-  private static final Set validSet;
+  private static final Set<String> validSet;
 
   /**
    * Initialise the set of valid actions.
    */
   static 
   {
-    validSet = new HashSet();
+    validSet = new HashSet<String>();
     validSet.add("addNotificationListener");
     validSet.add("getAttribute");
     validSet.add("getClassLoader");
@@ -263,8 +265,8 @@ public class MBeanPermission
    */
   public String getActions()
   {
-    Iterator it = actionSet.iterator();
-    StringBuilder builder = new StringBuilder();
+    Iterator<String> it = actionSet.iterator();
+    CPStringBuilder builder = new CPStringBuilder();
     while (it.hasNext())
       {
        builder.append(it.next());
@@ -323,10 +325,8 @@ public class MBeanPermission
        NameHolder name = new NameHolder(getName());
        if (!(name.equals(pName)))
          return false;
-       Iterator i = mp.getActionSet().iterator();
-       while (i.hasNext())
+       for (String nextAction : mp.actionSet)
          {
-           String nextAction = (String) i.next();
            boolean found = actions.contains(nextAction);
            if (!found)
              if (nextAction.equals("queryNames"))
@@ -501,16 +501,6 @@ public class MBeanPermission
     }
   }
 
-  /**
-   * Returns the set of actions.
-   *
-   * @return the actions as an ordered set.
-   */
-  Set getActionSet()
-  {
-    return actionSet;
-  }
-
   /**
    * Updates the action set from the current value of
    * the actions string.
@@ -518,7 +508,7 @@ public class MBeanPermission
   private void updateActionSet()
   {
     String[] actionsArray = actions.split(",");
-    actionSet = new TreeSet();
+    actionSet = new TreeSet<String>();
     for (int a = 0; a < actionsArray.length; ++a)
       actionSet.add(actionsArray[a].trim());
   }
@@ -548,10 +538,8 @@ public class MBeanPermission
    */
   private void checkActions()
   {
-    Iterator it = actionSet.iterator();
-    while (it.hasNext())
+    for (String action : actionSet)
       {
-       String action = (String) it.next();
        if (!(validSet.contains(action)))
          throw new IllegalArgumentException("Invalid action " 
                                             + action + " found.");
index 9e9d19111a83b7e1942e8c156aac049955cfb0d0..c55faa3d069cf60efca15b06f49f05427d965f89 100644 (file)
@@ -69,7 +69,8 @@ public class MBeanServerDelegate
   /**
    * The listeners registered with the delegate.
    */
-  private final List listeners = new ArrayList();
+  private final List<ListenerData> listeners =
+    new ArrayList<ListenerData>();
 
   /**
    * The sequence identifier used by the delegate.
@@ -234,12 +235,11 @@ public class MBeanServerDelegate
   public void removeNotificationListener(NotificationListener listener)
     throws ListenerNotFoundException
   {
-    Iterator it = listeners.iterator();
+    Iterator<ListenerData> it = listeners.iterator();
     boolean foundOne = false;
     while (it.hasNext())
       {
-       ListenerData data = (ListenerData) it.next();
-       if (data.getListener() == listener)
+       if (it.next().getListener() == listener)
          {
            it.remove();
            foundOne = true;
@@ -293,10 +293,8 @@ public class MBeanServerDelegate
   {
     if (notification.getSequenceNumber() <= 0)
       notification.setSequenceNumber(++seqNo);
-    Iterator it = listeners.iterator();
-    while (it.hasNext())
+    for (ListenerData ldata : listeners)
       {
-       ListenerData ldata = (ListenerData) it.next();
        NotificationFilter filter = ldata.getFilter();
        if (filter == null || filter.isNotificationEnabled(notification))
          ldata.getListener().handleNotification(notification, ldata.getPassback());
index a8dac948984e75f3433b1b84cb464aeecc88e61c..d798b0c4517b6bb99bfa1b498679945fe4be60ca 100644 (file)
@@ -89,7 +89,8 @@ public class MBeanServerFactory
   /**
    * The map of registered servers (identifiers to servers).
    */
-  private static final Map<Object,MBeanServer> servers = new HashMap();
+  private static final Map<Object,MBeanServer> servers =
+    new HashMap<Object,MBeanServer>();
 
   /**
    * Private constructor to prevent instance creation.
@@ -212,7 +213,7 @@ public class MBeanServerFactory
     if (sm != null)
       sm.checkPermission(new MBeanServerPermission("findMBeanServer"));
     if (id == null)
-      return new ArrayList(servers.values());
+      return new ArrayList<MBeanServer>(servers.values());
     ArrayList<MBeanServer> list = new ArrayList<MBeanServer>();
     MBeanServer server = servers.get(id);
     if (server != null)
@@ -342,7 +343,7 @@ public class MBeanServerFactory
          cl = MBeanServerFactory.class.getClassLoader();
        try
          {
-           Class bClass = Class.forName(builderClass, true, cl);
+           Class<?> bClass = Class.forName(builderClass, true, cl);
            builder = (MBeanServerBuilder) bClass.newInstance();
          }
        catch (ClassNotFoundException e)
index 948996764d9e9d6822d5ae1a152740d9567faddd..acc8543f11bc6aa2e8f5432e5e82c207fc64b94e 100644 (file)
@@ -204,7 +204,7 @@ public class MBeanServerInvocationHandler
     throws Throwable
   {
     String mName = method.getName();
-    Class proxyClass = proxy.getClass();
+    Class<?> proxyClass = proxy.getClass();
     if (mName.equals("toString"))
       {
        if (inInterface(mName, proxyClass))
@@ -352,6 +352,8 @@ public class MBeanServerInvocationHandler
    * @return a proxy for the specified bean.
    * @see JMX#newMBeanProxy(MBeanServerConnection,ObjectName,Class)
    */
+  // Suppress warnings as we know an instance of T will be returned.
+  @SuppressWarnings("unchecked")
   public static <T> T newProxyInstance(MBeanServerConnection conn,
                                       ObjectName name, Class<T> iface,
                                       boolean broadcaster)
index e622781444392be453b40d825d5f632fc785a9fd..045573aba0264d828ce6c574eb456f00222c1c4a 100644 (file)
@@ -280,6 +280,7 @@ public class MBeanServerPermission
      * @see #isReadOnly()
      * @see #setReadOnly(boolean)
      */
+    @Override
     public void add(Permission p)
     {
       if (isReadOnly())
@@ -305,13 +306,14 @@ public class MBeanServerPermission
                      String cps = cp[b].trim();
                      if (cps.equals(nps))
                        found = true;
-                     if (np.equals("newMBeanServer") 
+                     if (nps.equals("newMBeanServer") 
                          && createms != -1)
                        found = true;
-                     if (np.equals("createMBeanServer")
+                     if (nps.equals("createMBeanServer")
                          && newms != -1)
-                       finalString.replace("newMBeanServer",
-                                           "createMBeanServer");
+                       finalString =
+                         finalString.replace("newMBeanServer",
+                                             "createMBeanServer");
                    }
                  if (!found)
                    finalString += "," + nps;
@@ -327,7 +329,8 @@ public class MBeanServerPermission
      *
      * @return an enumeration over the collection permission.
      */
-    public Enumeration elements()
+    @Override
+    public Enumeration<Permission> elements()
     {
       return new
        MBeanServerPermissionEnumeration(collectionPermission);
@@ -341,7 +344,7 @@ public class MBeanServerPermission
      * @since 1.5
      */
     private class MBeanServerPermissionEnumeration
-      implements Enumeration
+      implements Enumeration<Permission>
     {
 
       /**
@@ -381,7 +384,7 @@ public class MBeanServerPermission
        *
        * @return the next capability.
        */
-      public Object nextElement()
+      public Permission nextElement()
       {
        if (hasMoreElements())
          {
@@ -405,6 +408,7 @@ public class MBeanServerPermission
      * @param p the permission to check for implication.
      * @return true if this permission implies <code>p</code>.
      */
+    @Override
     public boolean implies(Permission p)
     {
       return collectionPermission.implies(p);
index 1fb51506f04ac491f54ec190a67e6cfb218c2b11..d3ccd201fbdc856dfac327500db9444b02ffe7e1 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.management;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
 import java.util.Hashtable;
@@ -304,17 +306,14 @@ public class ObjectName
                                             "character.");
     char[] keychars = new char[] { '\n', ':', ',', '*', '?', '=' };
     char[] valchars = new char[] { '\n', ':', ',', '=' };
-    Iterator i = properties.entrySet().iterator();
-    while (i.hasNext())
+    for (Map.Entry<String,String> entry : properties.entrySet())
       {
-       Map.Entry entry = (Map.Entry) i.next();
-       String key = (String) entry.getKey();
        for (int a = 0; a < keychars.length; ++a)
-         if (key.indexOf(keychars[a]) != -1)
+         if (entry.getKey().indexOf(keychars[a]) != -1)
            throw new MalformedObjectNameException("A key contains a '" +
                                                   keychars[a] + "' " +
                                                   "character.");
-       String value = (String) entry.getValue();
+       String value = entry.getValue();
        int quote = value.indexOf('"');
        if (quote == 0)
          {
@@ -387,15 +386,13 @@ public class ObjectName
 
     if (isPropertyPattern())
       {
-       Hashtable oProps = name.getKeyPropertyList();
-       Iterator i = properties.entrySet().iterator();
-       while (i.hasNext())
+       Hashtable<String,String> oProps = name.getKeyPropertyList();
+       for (Map.Entry<String,String> entry : properties.entrySet())
          {
-           Map.Entry entry = (Map.Entry) i.next();
-           String key = (String) entry.getKey();
+           String key = entry.getKey();
            if (!(oProps.containsKey(key)))
              return false;
-           String val = (String) entry.getValue();
+           String val = entry.getValue();
            if (!(val.equals(oProps.get(key))))
              return false;
          }
@@ -476,11 +473,11 @@ public class ObjectName
    */
   public String getCanonicalKeyPropertyListString()
   {
-    StringBuilder builder = new StringBuilder();
-    Iterator i = properties.entrySet().iterator();
+    CPStringBuilder builder = new CPStringBuilder();
+    Iterator<Map.Entry<String,String>> i = properties.entrySet().iterator();
     while (i.hasNext())
       {
-       Map.Entry entry = (Map.Entry) i.next();
+       Map.Entry<String,String> entry = i.next();
        builder.append(entry.getKey() + "=" + entry.getValue());
        if (i.hasNext())
          builder.append(",");
@@ -795,7 +792,7 @@ public class ObjectName
    */
   public static String quote(String string)
   {
-    StringBuilder builder = new StringBuilder();
+    CPStringBuilder builder = new CPStringBuilder();
     builder.append('"');
     for (int a = 0; a < string.length(); ++a)
       {
@@ -863,7 +860,7 @@ public class ObjectName
     throws IOException
   {
     out.defaultWriteObject();
-    StringBuffer buffer = new StringBuffer(getDomain());
+    CPStringBuilder buffer = new CPStringBuilder(getDomain());
     buffer.append(':');
     String properties = getKeyPropertyListString();
     buffer.append(properties);
@@ -924,7 +921,7 @@ public class ObjectName
     if (q.charAt(q.length() - 1) != '"')
       throw new IllegalArgumentException("The string does " +
                                         "not end with a quote.");
-    StringBuilder builder = new StringBuilder();
+    CPStringBuilder builder = new CPStringBuilder();
     for (int a = 1; a < (q.length() - 1); ++a)
       {
        char n = q.charAt(a);
index bd59c68ae225cf95e76d7cab844ee1dadae5d161..13e95bd396d0dd6f5691f5914a5ba5a710a359c8 100644 (file)
@@ -569,8 +569,8 @@ public class StandardMBean
     if (info != null)
       return info;
     Method[] methods = iface.getMethods();
-    Map attributes = new HashMap();
-    List operations = new ArrayList();
+    Map<String,Method[]> attributes = new HashMap<String,Method[]>();
+    List<MBeanOperationInfo> operations = new ArrayList<MBeanOperationInfo>();
     for (int a = 0; a < methods.length; ++a)
       {
        String name = methods[a].getName();
@@ -614,16 +614,14 @@ public class StandardMBean
          operations.add(new MBeanOperationInfo(methods[a].getName(),
                                                methods[a]));
       }
-    List attribs = new ArrayList(attributes.size());
-    Iterator it = attributes.entrySet().iterator();
-    while (it.hasNext())
+    List<MBeanAttributeInfo> attribs = new ArrayList<MBeanAttributeInfo>(attributes.size());
+    for (Map.Entry<String,Method[]> entry : attributes.entrySet())
       {
-       Map.Entry entry = (Map.Entry) it.next();
-       Method[] amethods = (Method[]) entry.getValue();
+       Method[] amethods = entry.getValue();
        try
          {
-           attribs.add(new MBeanAttributeInfo((String) entry.getKey(),
-                                              (String) entry.getKey(),
+           attribs.add(new MBeanAttributeInfo(entry.getKey(),
+                                              entry.getKey(),
                                               amethods[0], amethods[1]));
          }
        catch (IntrospectionException e)
@@ -646,7 +644,7 @@ public class StandardMBean
                                          oldInfo.isWritable(),
                                          oldInfo.isIs());
       }
-    Constructor[] cons = impl.getClass().getConstructors();
+    Constructor<?>[] cons = impl.getClass().getConstructors();
     MBeanConstructorInfo[] cinfo = new MBeanConstructorInfo[cons.length];
     for (int a = 0; a < cinfo.length; ++a)
       {
@@ -778,10 +776,10 @@ public class StandardMBean
                                    "Invocation of an attribute " +
                                    "method is disallowed.");
     ClassLoader loader = getClass().getClassLoader();
-    Class[] sigTypes;
+    Class<?>[] sigTypes;
     if (signature != null)
       {
-       sigTypes = new Class[signature.length];
+       sigTypes = new Class<?>[signature.length];
        for (int a = 0; a < signature.length; ++a)
          try 
            {
@@ -892,7 +890,7 @@ public class StandardMBean
   public AttributeList setAttributes(AttributeList attributes)
   {
     AttributeList list = new AttributeList(attributes.size());
-    Iterator it = attributes.iterator();
+    Iterator<Object> it = attributes.iterator();
     while (it.hasNext())
       {
        try
index e6cf5261aaadca85d62d3bd4694ca5429e194469..1a23f666f10e8b6ebdd3dd51544a8b4254b2eabb 100644 (file)
@@ -152,7 +152,7 @@ public class ArrayType<T>
       throw new IllegalArgumentException("Dimensions must be greater " +
                                         "than or equal to 1.");
     if (elementType instanceof ArrayType)
-      return dim + ((ArrayType) elementType).getDimension();
+      return dim + ((ArrayType<?>) elementType).getDimension();
     return dim;
   }
 
@@ -236,7 +236,7 @@ public class ArrayType<T>
   private static final OpenType<?> getElementType(OpenType<?> elemType)
   {
     if (elemType instanceof ArrayType)
-      return ((ArrayType) elemType).getElementOpenType();
+      return ((ArrayType<?>) elemType).getElementOpenType();
     return elemType;
   }
 
@@ -257,7 +257,7 @@ public class ArrayType<T>
   {
     OpenType<?> trueElemType = getElementType(elemType);
     if (elemType instanceof ArrayType &&
-       ((ArrayType) elemType).isPrimitiveArray())
+       ((ArrayType<?>) elemType).isPrimitiveArray())
       return getPrimitiveTypeClass((SimpleType<?>) trueElemType).getName();
     return trueElemType.getClassName();
   }
@@ -323,7 +323,7 @@ public class ArrayType<T>
     dimension = getDimensions(elementType, dim);
     this.elementType = getElementType(elementType);
     primitiveArray = (elementType instanceof ArrayType &&
-                     ((ArrayType) elementType).isPrimitiveArray());
+                     ((ArrayType<?>) elementType).isPrimitiveArray());
   }
 
   /**
@@ -408,7 +408,7 @@ public class ArrayType<T>
   {
     if (!(obj instanceof ArrayType))
       return false;
-    ArrayType atype = (ArrayType) obj;
+    ArrayType<?> atype = (ArrayType<?>) obj;
     return (atype.getDimension() == dimension &&
            atype.getElementOpenType().equals(elementType) &&
            atype.isPrimitiveArray() == primitiveArray);
@@ -439,13 +439,14 @@ public class ArrayType<T>
    *                           is not in {@link OpenType#ALLOWED_CLASSNAMES_LIST}.
    * @since 1.6
    */ 
+  @SuppressWarnings("unchecked")
   public static <E> ArrayType<E[]> getArrayType(OpenType<E> elementType)
     throws OpenDataException
   {
     ArrayType<E[]> arr = (ArrayType<E[]>) cache.get(elementType);
     if (arr != null)
       return arr;
-    arr = new ArrayType(1, elementType);
+    arr = new ArrayType<E[]>(1, elementType);
     cache.put(elementType, arr);
     return arr;
   }
@@ -484,6 +485,7 @@ public class ArrayType<T>
    *                                  array.
    * @since 1.6
    */ 
+  @SuppressWarnings("unchecked")
   public static <T> ArrayType<T> getPrimitiveArrayType(Class<T> type)
   {
     ArrayType<T> arr = (ArrayType<T>) primCache.get(type);
@@ -499,10 +501,9 @@ public class ArrayType<T>
          throw new IllegalArgumentException("The given class is " +
                                             "not an array.");
       } while (comType.isArray());
-    String className = type.getName();
     try
       {
-       arr = new ArrayType(getPrimitiveType(comType), true);
+       arr = new ArrayType<T>(getPrimitiveType(comType), true);
       }
     catch (OpenDataException e)
       {
@@ -512,7 +513,7 @@ public class ArrayType<T>
     while (dim > 1)
       try
        {
-         arr = new ArrayType(1, arr);
+         arr = new ArrayType<T>(1, arr);
          --dim;
        }
       catch (OpenDataException e)
@@ -610,12 +611,12 @@ public class ArrayType<T>
   {
     if (obj == null)
       return false;
-    Class objClass = obj.getClass();
+    Class<?> objClass = obj.getClass();
     if (!(objClass.isArray()))
       return false;
     if (elementType instanceof SimpleType)
       return getClassName().equals(objClass.getName());
-    Class elementClass = null;
+    Class<?> elementClass = null;
     try
       {
        elementClass = Class.forName(getClassName());
index d4c9d450c38978a9c1fe8b4a29373ae30cd2ea3a..6bce2672d4f3ddc78a0008c48a51f7eacf5a1061 100644 (file)
@@ -154,7 +154,7 @@ public class CompositeDataSupport
       throw new IllegalArgumentException("The values array is null.");
     if (names.length != values.length)
       throw new IllegalArgumentException("The sizes of the arrays differ.");
-    Set typeKeys = type.keySet();
+    Set<String> typeKeys = type.keySet();
     if (typeKeys.size() != names.length)
       throw new OpenDataException("The number of field names does not match " +
                                  "the type description.");
@@ -227,10 +227,8 @@ public class CompositeDataSupport
     CompositeData data = (CompositeData) obj;
     if (!(data.getCompositeType().equals(compositeType)))
       return false;
-    Iterator it = contents.keySet().iterator();
-    while (it.hasNext())
+    for (String key : contents.keySet())
       {
-       String key = (String) it.next();
        if (!(data.containsKey(key)))
          return false;
        if (!(data.get(key).equals(contents.get(key))))
@@ -308,9 +306,8 @@ public class CompositeDataSupport
   public int hashCode()
   {
     int code = compositeType.hashCode();
-    Iterator it = values().iterator();
-    while (it.hasNext())
-      code += it.next().hashCode();
+    for (Object o : contents.values())
+      code += o.hashCode();
     return code;
   }
 
index 1a213f607c98f6f0ef5418ff22784d7cfbc1cc0c..3244c6457c1528fe4a7a9b05487f06771563ab3b 100644 (file)
@@ -118,7 +118,7 @@ public class CompositeType
        || names.length != types.length)
       throw new IllegalArgumentException("Arrays must be non-empty " +
                                         "and of equal size.");
-    nameToDescription = new TreeMap();
+    nameToDescription = new TreeMap<String,String>();
     for (int a = 0; a < names.length; ++a)
       {
        if (names[a] == null)
@@ -243,10 +243,8 @@ public class CompositeType
     if (hashCode == null)
       {
        int elementTotal = 0;
-       Iterator it = nameToType.entrySet().iterator();
-       while (it.hasNext())
+       for (Map.Entry<String,OpenType<?>> entry : nameToType.entrySet())
          {
-           Map.Entry entry = (Map.Entry) it.next();
            elementTotal += (entry.getKey().hashCode() +
                             entry.getValue().hashCode());
          }
index 22667aadf7dd4938d7f1da5bc647871fd4556494..6da2e95e6899bdb6fcbe678f6c6a2f90830ab7bb 100644 (file)
@@ -77,12 +77,12 @@ public class OpenMBeanAttributeInfoSupport
   /**
    * The minimum value of the attribute (may be <code>null</code>).
    */
-  private Comparable<Object> minValue;
+  private Comparable<?> minValue;
 
   /**
    * The maximum value of the attribute (may be <code>null</code>).
    */
-  private Comparable<Object> maxValue;
+  private Comparable<?> maxValue;
 
   /**
    * The hash code of this instance.
@@ -203,6 +203,7 @@ public class OpenMBeanAttributeInfoSupport
    *                                  the empty string.
    * @throws OpenDataException if any condition in the list above is broken.
    */
+  @SuppressWarnings("unchecked")
   public <T> OpenMBeanAttributeInfoSupport(String name, String desc, OpenType<T> type,
                                           boolean isReadable, boolean isWritable,
                                           boolean isIs, T defaultValue,
@@ -224,23 +225,23 @@ public class OpenMBeanAttributeInfoSupport
                                 type instanceof TabularType))
       throw new OpenDataException("Default values are not applicable for " +
                                  "array or tabular types.");
-    if (minValue != null && maxValue != null 
-       && minValue.compareTo(maxValue) > 0)
+    if (minimumValue != null && maximumValue != null 
+       && minimumValue.compareTo((T) maximumValue) > 0)
       throw new OpenDataException("The minimum value is greater than the " +
                                  "maximum.");
-    if (minValue != null && defaultValue != null 
-       && minValue.compareTo(defaultValue) > 0)
+    if (minimumValue != null && defaultValue != null 
+       && minimumValue.compareTo(defaultValue) > 0)
       throw new OpenDataException("The minimum value is greater than the " +
                                  "default.");
-    if (defaultValue != null && maxValue != null
-       && maxValue.compareTo(defaultValue) < 0)
+    if (defaultValue != null && maximumValue != null
+       && maximumValue.compareTo(defaultValue) < 0)
       throw new OpenDataException("The default value is greater than the " +
                                  "maximum.");
     
     openType = type;
     this.defaultValue = defaultValue;
-    minValue = (Comparable<Object>) minimumValue;
-    maxValue = (Comparable<Object>) maximumValue;
+    minValue = minimumValue;
+    maxValue = maximumValue;
   }
 
   /**
@@ -300,7 +301,7 @@ public class OpenMBeanAttributeInfoSupport
                                  "array or tabular types.");
     if (legalValues != null && legalValues.length > 0)
       {
-       Set lv = new HashSet(legalValues.length);
+       Set<T> lv = new HashSet<T>(legalValues.length);
        for (int a = 0; a < legalValues.length; ++a)
          {
            if (legalValues[a] != null && 
index 5f8d55b8377f2dc7175976b68a1cf4d915cf3a0e..d67ff76a0f3cc7c6ed6fa75396b05f3d8de61f66 100644 (file)
@@ -151,10 +151,10 @@ public class OpenMBeanInfoSupport
     if (hashCode == null)
       hashCode = 
        Integer.valueOf(getClassName().hashCode() + 
-                       new HashSet(Arrays.asList(getAttributes())).hashCode() +
-                       new HashSet(Arrays.asList(getConstructors())).hashCode() +
-                       new HashSet(Arrays.asList(getNotifications())).hashCode() +
-                       new HashSet(Arrays.asList(getOperations())).hashCode());
+                       new HashSet<MBeanAttributeInfo>(Arrays.asList(getAttributes())).hashCode() +
+                       new HashSet<MBeanConstructorInfo>(Arrays.asList(getConstructors())).hashCode() +
+                       new HashSet<MBeanNotificationInfo>(Arrays.asList(getNotifications())).hashCode() +
+                       new HashSet<MBeanOperationInfo>(Arrays.asList(getOperations())).hashCode());
     return hashCode.intValue();
   }
 
index 7fad2a131619fc6cc951b879255df1c0788f1bae..5f86bf4af9694371505549631434c761a5fbca0f 100644 (file)
@@ -78,12 +78,12 @@ public class OpenMBeanParameterInfoSupport
   /**
    * The minimum value of the parameter (may be <code>null</code>).
    */
-  private Comparable<Object> minValue;
+  private Comparable<?> minValue;
 
   /**
    * The maximum value of the parameter (may be <code>null</code>).
    */
-  private Comparable<Object> maxValue;
+  private Comparable<?> maxValue;
 
   /**
    * The hash code of this instance.
@@ -190,6 +190,7 @@ public class OpenMBeanParameterInfoSupport
    *                                  the empty string.
    * @throws OpenDataException if any condition in the list above is broken.
    */
+  @SuppressWarnings("unchecked")
   public <T> OpenMBeanParameterInfoSupport(String name, String desc, OpenType<T> type,
                                           T defaultValue, Comparable<T> minimumValue,
                                           Comparable<T> maximumValue)
@@ -209,22 +210,22 @@ public class OpenMBeanParameterInfoSupport
                                 type instanceof TabularType))
       throw new OpenDataException("Default values are not applicable for " +
                                  "array or tabular types.");
-    if (minValue != null && maxValue != null 
-       && minValue.compareTo(maxValue) > 0)
+    if (minimumValue != null && maximumValue != null 
+       && minimumValue.compareTo((T) maximumValue) > 0)
       throw new OpenDataException("The minimum value is greater than the " +
                                  "maximum.");
-    if (minValue != null && defaultValue != null 
-       && minValue.compareTo(defaultValue) > 0)
+    if (minimumValue != null && defaultValue != null 
+       && minimumValue.compareTo(defaultValue) > 0)
       throw new OpenDataException("The minimum value is greater than the " +
                                  "default.");
-    if (defaultValue != null && maxValue != null
-       && maxValue.compareTo(defaultValue) < 0)
+    if (defaultValue != null && maximumValue != null
+       && maximumValue.compareTo(defaultValue) < 0)
       throw new OpenDataException("The default value is greater than the " +
                                  "maximum.");
     
     this.defaultValue = defaultValue;
-    minValue = (Comparable<Object>) minimumValue;
-    maxValue = (Comparable<Object>) maximumValue;
+    minValue = minimumValue;
+    maxValue = maximumValue;
   }
 
   /**
@@ -279,7 +280,7 @@ public class OpenMBeanParameterInfoSupport
                                  "array or tabular types.");
     if (legalValues != null && legalValues.length > 0)
       {
-       Set lv = new HashSet(legalValues.length);
+       Set<T> lv = new HashSet<T>(legalValues.length);
        for (int a = 0; a < legalValues.length; ++a)
          {
            if (legalValues[a] != null && 
index fb3b1bc28b7d3e90cb585c71d96344b662478eeb..ef05e9dfe4fffac2f9837762015dbfad4747fed6 100644 (file)
@@ -232,7 +232,7 @@ public final class SimpleType<T>
   {
     if (!(obj instanceof SimpleType))
       return false;
-    SimpleType sType = (SimpleType) obj;
+    SimpleType<?> sType = (SimpleType<?>) obj;
     return sType.getClassName().equals(getClassName());
   }
 
index 1d340e86f59f1c76e7ab9d84fde045432aed1114..8557f5f24646c8017d8c4f3bab638a00ed2d4b28 100644 (file)
@@ -68,7 +68,7 @@ public class TabularDataSupport
    *
    * @serial the map of rows to column values.
    */
-  private Map<Object,Object> dataMap;
+  private HashMap<Object,Object> dataMap;
 
   /**
    * The tabular type which represents this tabular data instance.
@@ -141,14 +141,10 @@ public class TabularDataSupport
       throw new InvalidOpenTypeException("The type of the given value " +
                                         "does not match the row type " +
                                         "of this instance.");
-    List indexNames = tabularType.getIndexNames();
-    List matchingIndicies = new ArrayList(indexNames.size());
-    Iterator it = indexNames.iterator();
-    while (it.hasNext())
-      {
-       String name = (String) it.next();
-       matchingIndicies.add(val.get(name));
-      }
+    List<String> indexNames = tabularType.getIndexNames();
+    List<String> matchingIndicies = new ArrayList<String>(indexNames.size());
+    for (String name : indexNames)
+      matchingIndicies.add(val.get(name).toString());
     return matchingIndicies.toArray();
   }
 
@@ -167,13 +163,14 @@ public class TabularDataSupport
    *
    * @return a shallow clone of this {@link TabularDataSupport}.
    */
+  @SuppressWarnings("unchecked")
   public Object clone()
   {
     TabularDataSupport clone = null;
     try
       {
        clone = (TabularDataSupport) super.clone();
-       clone.setMap((HashMap) ((HashMap) dataMap).clone());
+       clone.setMap((HashMap<Object,Object>) dataMap.clone());
       }
     catch (CloneNotSupportedException e)
       {
@@ -390,11 +387,11 @@ public class TabularDataSupport
    */
   private boolean isKeyValid(Object[] key)
   {
-    Iterator it = tabularType.getIndexNames().iterator();
+    Iterator<String> it = tabularType.getIndexNames().iterator();
     CompositeType rowType = tabularType.getRowType();
     for (int a = 0; it.hasNext(); ++a)
       {
-       OpenType type = rowType.getType((String) it.next());
+       OpenType<?> type = rowType.getType(it.next());
        if (!(type.isValue(key[a])))
          return false;
       }
@@ -496,7 +493,7 @@ public class TabularDataSupport
   {
     if (vals == null || vals.length == 0)
       return;
-    Map mapToAdd = new HashMap(vals.length);
+    Map<Object,Object> mapToAdd = new HashMap<Object,Object>(vals.length);
     for (int a = 0; a < vals.length; ++a)
       {
        Object[] key = calculateIndex(vals[a]);
@@ -539,9 +536,9 @@ public class TabularDataSupport
   {
     if (m == null || m.size() == 0)
       return;
-    Collection vals = m.values();
+    Collection<?> vals = m.values();
     CompositeData[] data = new CompositeData[vals.size()];
-    Iterator it = vals.iterator();
+    Iterator<?> it = vals.iterator();
     for (int a = 0; it.hasNext(); ++a)
       {
        data[a] = (CompositeData) it.next();
@@ -591,12 +588,12 @@ public class TabularDataSupport
   }
 
   /**
-   * Package-private method to set the internal {@link java.util.Map}
+   * Private method to set the internal {@link java.util.Map}
    * instance (used in cloning).
    *
    * @param map the new map used.
    */
-  void setMap(Map map)
+  private void setMap(HashMap<Object,Object> map)
   {
     dataMap = map;
   }
index 9a0881e0f92ddf8065380d9ddf9d37172f4b5417..5a861d061bddc9da258d41d1674d099cfb806452 100644 (file)
@@ -206,9 +206,8 @@ public class TabularType
     if (hashCode == null)
       {
        int elementTotal = 0;
-       Iterator it = indexNames.iterator();
-       while (it.hasNext())
-         elementTotal += it.next().hashCode();
+       for (String s : indexNames)
+         elementTotal += s.hashCode();
        hashCode = Integer.valueOf(elementTotal 
                                   + getTypeName().hashCode()
                                   + rowType.hashCode());
index 38fb544fe457279347147dfdd95c1a52f7e4fb1c..430f1c7dc97ff20a94533ebfb899adb9f0714c57 100644 (file)
@@ -152,6 +152,7 @@ public interface RMIConnection
    *                                                      NotificationFilter,
    *                                                      Object)
    */
+  @SuppressWarnings("unchecked")
   void addNotificationListener(ObjectName name, ObjectName listener,
                               MarshalledObject filter, MarshalledObject passback,
                               Subject delegationSubject)
@@ -223,6 +224,7 @@ public interface RMIConnection
    *                                                      NotificationFilter,
    *                                                      Object)
    */
+  @SuppressWarnings("unchecked")
   Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters,
                                     Subject[] delegationSubjects)
     throws InstanceNotFoundException, IOException;
@@ -296,6 +298,7 @@ public interface RMIConnection
    * @throws IOException if an I/O error occurred in communicating with
    *                     the bean server.
    */  
+  @SuppressWarnings("unchecked")
   ObjectInstance createMBean(String className, ObjectName name,
                             MarshalledObject params, String[] sig,
                             Subject delegationSubject)
@@ -364,6 +367,7 @@ public interface RMIConnection
    * @throws IOException if an I/O error occurred in communicating with
    *                     the bean server.
    */
+  @SuppressWarnings("unchecked")
   ObjectInstance createMBean(String className, ObjectName name,
                             ObjectName loaderName, MarshalledObject params,
                             String[] sig, Subject delegationSubject)
@@ -763,6 +767,7 @@ public interface RMIConnection
    *                     the bean server.
    * @see DynamicMBean#invoke(String, Object[], String[])
    */
+  @SuppressWarnings("unchecked")
   Object invoke(ObjectName bean, String name, MarshalledObject params,
                String[] sig, Subject delegationSubject)
     throws InstanceNotFoundException, MBeanException,
@@ -866,6 +871,7 @@ public interface RMIConnection
    * @throws SecurityException if the client or delegated subject (if any) does
    *                           not have permission to invoke this operation.
    */
+  @SuppressWarnings("unchecked")
   Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query,
                                  Subject delegationSubject)
     throws IOException;
@@ -908,6 +914,7 @@ public interface RMIConnection
    * @throws IOException if an I/O error occurred in communicating with
    *                     the bean server.
    */
+  @SuppressWarnings("unchecked")
   Set<ObjectName> queryNames(ObjectName name, MarshalledObject query,
                             Subject delegationSubject)
     throws IOException;
@@ -953,6 +960,7 @@ public interface RMIConnection
    *                                                     NotificationFilter,
    *                                                     Object)
    */
+  @SuppressWarnings("unchecked")
   void removeNotificationListener(ObjectName name,
                                  ObjectName listener,
                                  MarshalledObject filter,
@@ -1072,6 +1080,7 @@ public interface RMIConnection
    * @see #getAttribute(ObjectName, String, Subject)
    * @see javax.management.DynamicMBean#setAttribute(Attribute)
    */
+  @SuppressWarnings("unchecked")
   void setAttribute(ObjectName name, MarshalledObject attribute,
                    Subject delegationSubject)
     throws InstanceNotFoundException, AttributeNotFoundException,
@@ -1112,6 +1121,7 @@ public interface RMIConnection
    * @see #getAttributes(ObjectName, String[])
    * @see DynamicMBean#setAttributes(AttributeList)
    */
+  @SuppressWarnings("unchecked")
   AttributeList setAttributes(ObjectName name, MarshalledObject attributes,
                              Subject delegationSubject)
     throws InstanceNotFoundException, ReflectionException,
index 0b813abc352b63318ae3f3c3151f39e1de879b24..923c48e2368ffb334d06e7342721bb2b4cf954d9 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.naming;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Arrays;
 
 /**
@@ -139,7 +141,7 @@ public class BinaryRefAddr extends RefAddr
    */
   public String toString()
   {
-    StringBuffer sb = new StringBuffer("[RefAddr type: ");
+    CPStringBuilder sb = new CPStringBuilder("[RefAddr type: ");
     sb.append(getType());
     sb.append(" content: 0x");
     byte[] b = (byte[]) getContent();
index 7227f9d78e43071fb56bf4364ec7ea90e19e9ec4..4593bae631ae57b0fd2b14993791f159cead402a 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.naming;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -85,7 +87,7 @@ public class CompositeName implements Name, Cloneable, Serializable
     final char no_quote = 'x'; // Use 'x' to mean no quoting.
     char quote = no_quote;
     boolean escaped = false;
-    StringBuffer new_element = new StringBuffer ();
+    StringBuilder new_element = new StringBuilder ();
     for (int i = 0; i < n.length (); ++i)
       {
        char c = n.charAt (i);
@@ -294,7 +296,7 @@ public class CompositeName implements Name, Cloneable, Serializable
 
   public String toString ()
   {
-    StringBuffer result = new StringBuffer ();
+    CPStringBuilder result = new CPStringBuilder ();
     for (int i = 0; i < elts.size (); ++i)
       {
        // For simplicity we choose to always quote using escapes and
index f345d3efd503376479fe3f9ec60dfc31dac9b74e..26b44c16fdb3b28a72abfa5707a5f3052355977d 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.naming;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -95,7 +97,7 @@ public class CompoundName implements Name, Cloneable, Serializable
     mySyntax = syntax;
     initializeSyntax ();
 
-    StringBuffer new_element = new StringBuffer ();
+    StringBuilder new_element = new StringBuilder ();
     int i = 0;
     // QUOTE==null means no quoting right now.  When it is set it is
     // the value of the closing quote.
@@ -376,7 +378,7 @@ public class CompoundName implements Name, Cloneable, Serializable
 
   public String toString ()
   {
-    StringBuffer result = new StringBuffer ();
+    CPStringBuilder result = new CPStringBuilder ();
     int size = elts.size ();
     for (int i = 0; i < size; ++i)
       {
index dbe1e3792a7ddbcbc99b11d204e5158136a00401..7a5c35eb57b25ce3a5c8746f1a64809728f590af 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.naming;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.PrintStream;
 import java.io.PrintWriter;
 
@@ -237,7 +239,7 @@ public class NamingException extends Exception
    */
   public String toString(boolean objectInfo)
   {
-    StringBuffer sb = new StringBuffer(super.toString());
+    CPStringBuilder sb = new CPStringBuilder(super.toString());
     Throwable cause = getRootCause();
     if (cause != null)
       {
index 3dfba0f668d4ab263392c7774ed0c679d043a347..cc8d46fa49739c6ce9fdc21b00f5957498ae4164 100644 (file)
@@ -41,6 +41,8 @@ package javax.naming.spi;
 
 import gnu.classpath.VMStackWalker;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.StringTokenizer;
@@ -197,7 +199,7 @@ public class NamingManager
     // The final default location, as specified in the documentation.
     String finalPrefix = "com.sun.jndi.url";
   
-    StringBuffer allPrefixes = new StringBuffer();
+    CPStringBuilder allPrefixes = new CPStringBuilder();
 
     String prefixes;
       if (environment != null)
index d78b0d3eec4abc857870a5d65ef648813e1aa102..0a1e8c665182b771cfed51820ba6ee7b8033b2a3 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.security.auth.x500;
 
+import gnu.java.lang.CPStringBuilder;
+
 import gnu.java.security.OID;
 import gnu.java.security.der.DER;
 import gnu.java.security.der.DERReader;
@@ -200,7 +202,7 @@ public final class X500Principal implements Principal, Serializable
     boolean canon   = CANONICAL.equalsIgnoreCase (format);
     if (! (rfc2253 || rfc1779 || canon))
       throw new IllegalArgumentException ("unsupported format " + format);
-    StringBuffer str = new StringBuffer();
+    CPStringBuilder str = new CPStringBuilder();
     for (Iterator it = components.iterator(); it.hasNext(); )
       {
         Map m = (Map) it.next();
@@ -323,7 +325,7 @@ public final class X500Principal implements Principal, Serializable
 
   private String readAttributeType(Reader in) throws IOException
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     int ch;
     while ((ch = in.read()) != '=')
       {
@@ -345,7 +347,7 @@ public final class X500Principal implements Principal, Serializable
 
   private String readAttributeValue(Reader in) throws IOException
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     int ch = in.read();
     if (ch == '#')
       {
@@ -518,7 +520,7 @@ public final class X500Principal implements Principal, Serializable
 
   private static String compressWS(String str)
   {
-    StringBuffer buf = new StringBuffer();
+    CPStringBuilder buf = new CPStringBuilder();
     char lastChar = 0;
     for (int i = 0; i < str.length(); i++)
       {
index 89764bb18f08983d42bbd1a423b4c0c329fab951..f4407e761e6b154ae7dbf930a19fb0a6964f118f 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.security.sasl;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.PrintStream;
 import java.io.PrintWriter;
@@ -178,7 +180,7 @@ public class SaslException extends IOException implements Serializable
    */
   public String toString()
   {
-    StringBuffer sb = new StringBuffer(this.getClass().getName())
+    CPStringBuilder sb = new CPStringBuilder(this.getClass().getName())
       .append(": ").append(super.toString());
     if (_exception != null)
       sb.append("; caused by: ").append(_exception.toString());
index 7b6ebc4b03b92ea1eb307b06358d2dfce22a046d..1f31c9929d14f7968a1a3f6b5b70148b5659e487 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.sound.sampled;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
@@ -329,7 +331,7 @@ public class AudioFormat
    */
   public String toString()
   {
-    StringBuffer result = new StringBuffer();
+    CPStringBuilder result = new CPStringBuilder();
     
     // usually at least encoding should be somewhat specified
     result.append(encoding);
index 057bdfd7248e9a5cf422b9c6f9bcf6e88382909a..556c805ad3b09e42c0d442ad28d642c6ee3775cf 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.sound.sampled;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * A compound control provides control over several other controls.
  * @since 1.3
@@ -88,7 +90,7 @@ public abstract class CompoundControl extends Control
    */
   public String toString()
   {
-    StringBuffer result = new StringBuffer();
+    CPStringBuilder result = new CPStringBuilder();
     result.append(super.toString());
     result.append(": ");
     for (int i = 0; i < memberControls.length; ++i)
index b7cb70e493145ed23a815bc2acea2f08336a24b5..4482c9885db87945e04dfdbcdf8ccfc5bdc76445 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.sound.sampled;
 
+import gnu.java.lang.CPStringBuilder;
+
 /**
  * The DataLine interface adds data-related functionality to the Line
  * interface.  For example, it adds methods to start and stop the data
@@ -180,7 +182,7 @@ public interface DataLine extends Line
      */
     public String toString()
     {
-      StringBuffer result = new StringBuffer();
+      CPStringBuilder result = new CPStringBuilder();
       result.append("formats: [");
       for (int i = 0; i < formats.length; ++i)
         {
index cb0f458b89f9e65f096a705c0e514a1053d77dd5..8764f6f8c3db1c8a673b960b31a9824a6862f8d5 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Component;
 import java.awt.Graphics;
 import java.awt.Image;
@@ -2445,7 +2447,7 @@ public abstract class AbstractButton extends JComponent
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append(super.paramString());
     sb.append(",defaultIcon=");
     if (getIcon() != null)
index 878cfa68397aba398013c1a5d9cdfb6f34157bec..705a863810552a243e286161bb902c6049019237 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import javax.accessibility.Accessible;
 import javax.accessibility.AccessibleContext;
 import javax.accessibility.AccessibleRole;
@@ -225,7 +227,7 @@ public class JButton extends AbstractButton
     String superParam = super.paramString();
 
     // 41 is the maximum number of chars which may be needed.
-    StringBuffer sb = new StringBuffer(41);
+    CPStringBuilder sb = new CPStringBuilder(41);
     sb.append(",defaultButton=").append(isDefaultButton());
     sb.append(",defaultCapable=").append(defaultCapable);
 
index fa6941cf9777cc6b9561dea6d3014850bcae38d3..74ff315eab7961005613c03d04c63c37e3997df9 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.ItemSelectable;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -1104,7 +1106,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
   protected String paramString()
   {
     String superParamStr = super.paramString();
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append(",isEditable=").append(isEditable());
     sb.append(",lightWeightPopupEnabled=").append(isLightWeightPopupEnabled());
     sb.append(",maximumRowCount=").append(getMaximumRowCount());
index a22a92e3b06f11f0269e01ede6e170878e070594..f71217867bcf4b346d8b47f356a646e19a63a3e8 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.applet.Applet;
 import java.awt.AWTEvent;
 import java.awt.Color;
@@ -2405,7 +2407,7 @@ public abstract class JComponent extends Container implements Serializable
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append(super.paramString());
     sb.append(",alignmentX=").append(getAlignmentX());
     sb.append(",alignmentY=").append(getAlignmentY());
index 454870ea6fcbc5307189ba12fc0dcfd7b05507bb..b068a2998a5830677c025216d941dca2935efbd1 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Component;
 import java.beans.PropertyVetoException;
 
@@ -306,7 +308,7 @@ public class JDesktopPane extends JLayeredPane implements Accessible
   protected String paramString()
   {
     String superParamStr = super.paramString();
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append(",isOptimizedDrawingPossible=");
     sb.append(isOptimizedDrawingEnabled());
     sb.append(",desktopManager=");
index a508b8fcb202d44a2d798f631bde4b9300d2e027..b7615a58d0e148dca85f574e46d03996d3ca5750 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Component;
 import java.awt.Frame;
 import java.awt.GraphicsEnvironment;
@@ -1543,7 +1545,7 @@ public class JFileChooser extends JComponent implements Accessible
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer(super.paramString());
+    CPStringBuilder sb = new CPStringBuilder(super.paramString());
     sb.append(",approveButtonText=");
     if (approveButtonText != null)
       sb.append(approveButtonText);
index e54d453b8df4d049df278af2a332701b8f418898..0c956b3969ef39feae78b6a2bd3f923b79a8bcc6 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.AWTEvent;
 import java.awt.BorderLayout;
 import java.awt.Component;
@@ -341,7 +343,7 @@ public class JFrame extends Frame
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer(super.paramString());
+    CPStringBuilder sb = new CPStringBuilder(super.paramString());
     sb.append(",defaultCloseOperation=");
     sb.append(SwingUtilities.convertWindowConstantToString(
         getDefaultCloseOperation()));
index 721287b21df444a9f0333e4c89355dd27c44ba49..2bbd1ee5f8cf8b065047b3cb19c7fe3fc6f4e144 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Component;
 import java.awt.Font;
 import java.awt.FontMetrics;
@@ -555,7 +557,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer(super.paramString());
+    CPStringBuilder sb = new CPStringBuilder(super.paramString());
     sb.append(",defaultIcon=");
     if (icon != null)
       sb.append(icon);
index ff1b239217a6686b486f33100e072ffe46baaea3..bd744064c397f36679b44cccf98c850891279ff6 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.ComponentOrientation;
@@ -2481,7 +2483,7 @@ public class JList extends JComponent implements Accessible, Scrollable
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer(super.paramString());
+    CPStringBuilder sb = new CPStringBuilder(super.paramString());
     sb.append(",fixedCellHeight=").append(getFixedCellHeight());
     sb.append(",fixedCellWidth=").append(getFixedCellWidth());
     sb.append(",selectionBackground=");
index 73b409e42dbd5a91adbd6b689615bba2594d1235..030fc4cb87d9b390fc17c1dd6f52b420fa63112d 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Component;
 import java.awt.Graphics;
 import java.awt.Insets;
@@ -481,7 +483,7 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append(super.paramString());
     sb.append(",margin=");
     if (getMargin() != null)
index 1ae8adad02a9d82447cbd86e03ed9b35f267e3a1..ac1a9ebf253bd6106a0cb1fb4f768c2f4fb20e81 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.Insets;
@@ -767,7 +769,7 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append(super.paramString());
     sb.append(",label=");
     if (getLabel() != null)
index ed2d0088d065afa4635f3732dfcad325086c5b83..b20b02a060653d9243f93f19dc7ead76fc927627 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Graphics;
 import java.beans.PropertyChangeEvent;
 
@@ -786,7 +788,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
   protected String paramString()
   {
     String superParamStr = super.paramString();
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append(",orientation=");
     if (orientation == HORIZONTAL)
       sb.append("HORIZONTAL");
index f55feb3f22a4782fcb7f826d1567a99bca915370..371bb60c65ee4f134461d6f345be858b69714032 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Adjustable;
 import java.awt.Dimension;
 import java.awt.event.AdjustmentEvent;
@@ -671,7 +673,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer(super.paramString());
+    CPStringBuilder sb = new CPStringBuilder(super.paramString());
     sb.append(",blockIncrement=").append(blockIncrement);
     sb.append(",orientation=");
     if (this.orientation == JScrollBar.HORIZONTAL)
index 948a9629b4c6e350324f35fec3d486b9df284c21..979707a7264ad19450d135999609262131c4295c 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.MenuContainer;
 import java.awt.image.ImageObserver;
 import java.beans.PropertyChangeEvent;
@@ -1104,7 +1106,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
   protected String paramString()
   {
     String superParamStr = super.paramString();
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append(",isInverted=").append(getInverted());
     sb.append(",majorTickSpacing=").append(getMajorTickSpacing());
     sb.append(",minorTickSpacing=").append(getMinorTickSpacing());
index fcdc1c041283981ef8a9420d135fb9a208923d61..5b6ec158e6df3f5d94de4cddf7b48f810e9828ce 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Component;
 import java.awt.Graphics;
 import java.beans.PropertyChangeEvent;
@@ -597,7 +599,7 @@ public class JSplitPane extends JComponent implements Accessible
   {
     // FIXME: the next line can be restored once PR27208 is fixed
     String superParamStr = ""; //super.paramString();
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append(",continuousLayout=").append(isContinuousLayout());
     sb.append(",dividerSize=").append(getDividerSize());
     sb.append(",lastDividerLocation=").append(getLastDividerLocation());
index c7244bf2b71f713e4187991304a0a1f5a8e0f2f0..79521be3fecc094b358b8779f085d5fa1901899f 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Point;
@@ -1692,7 +1694,7 @@ public class JTabbedPane extends JComponent implements Serializable,
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer(super.paramString());
+    CPStringBuilder sb = new CPStringBuilder(super.paramString());
     sb.append(",tabPlacement=");
     if (tabPlacement == TOP)
       sb.append("TOP");
index fe4d2ae204630fcc598fd08fca94c1bb110833ca..33ebcfcaf897584d7fc86e387eb460ed6deba250 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Component;
 import java.awt.Container;
 import java.awt.Dimension;
@@ -766,7 +768,7 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer(super.paramString());
+    CPStringBuilder sb = new CPStringBuilder(super.paramString());
     sb.append(",floatable=").append(floatable);
     sb.append(",margin=");
     if (margin != null)
index 16bdd2d7e73708cd4f72e921caa6c3abd073306d..f59ec95fba444182279487e7be59a4a232953110 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.AWTEvent;
 import java.beans.PropertyChangeEvent;
 
@@ -179,7 +181,7 @@ public class JToolTip extends JComponent implements Accessible
    */
   protected String paramString()
   {
-    StringBuffer sb = new StringBuffer(super.paramString());
+    CPStringBuilder sb = new CPStringBuilder(super.paramString());
     sb.append(",tiptext=");
     if (text != null)
       sb.append(text);
index 3b1b3f72b387b0881daa3ba94fd4df5ebb0f3fb5..0369b6514ae198073092bdf85936f9ce53671619 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Color;
 import java.awt.Dimension;
 import java.awt.Font;
@@ -107,7 +109,7 @@ public class UIManager implements Serializable
      */
     public String toString()
     {
-      StringBuffer s = new StringBuffer();
+      CPStringBuilder s = new CPStringBuilder();
       s.append(getClass().getName());
       s.append('[');
       s.append(getName());
index 1568039f0ff479c02426cc15490b1e53248c12de..8c76f7f87e6998da38843336d96925116a89b61f 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.swing.event;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -295,7 +297,7 @@ public class EventListenerList
    */
   public String toString()
   {
-    StringBuffer buf = new StringBuffer("EventListenerList: ");
+    CPStringBuilder buf = new CPStringBuilder("EventListenerList: ");
     buf.append(listenerList.length / 2);
     buf.append(" listeners: ");
     for (int i = 0; i < listenerList.length; i += 2)
index 66b6a0743b65a24a020399a3e7f252f746cb3bf0..743e5d4dc2169e022a8345e426d0a9a806bbf89c 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing.table;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 import java.util.EventListener;
 
@@ -80,7 +82,7 @@ public abstract class AbstractTableModel implements TableModel, Serializable
    */
   public String getColumnName(int columnIndex)
   {
-    StringBuffer buffer = new StringBuffer();
+    CPStringBuilder buffer = new CPStringBuilder();
     while (columnIndex >= 0)
       {
         buffer.insert(0, (char) ('A' + columnIndex % 26));
index 72178f840f39d33c450e747521072ea8cf7aa607..29b20b321fbf4da219bd6f196ca96a17d51b0f62 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.font.TextAttribute;
 import java.io.PrintStream;
 import java.io.Serializable;
@@ -2013,7 +2015,7 @@ public abstract class AbstractDocument implements Document, Serializable
      */
     public void dump(PrintStream stream, int indent)
     {
-      StringBuffer b = new StringBuffer();
+      CPStringBuilder b = new CPStringBuilder();
       for (int i = 0; i < indent; ++i)
         b.append(' ');
       b.append('<');
index aa69deca545b79fd6e319b28d965eaf4c84f8398..0d999a38096b6b4808be55a181c125ce720291ef 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 
@@ -1634,7 +1636,7 @@ public class DefaultEditorKit extends EditorKit
     BufferedReader reader = new BufferedReader(in);
 
     String line;
-    StringBuffer content = new StringBuffer();
+    CPStringBuilder content = new CPStringBuilder();
 
     while ((line = reader.readLine()) != null)
       {
index 341579e3df8ace86d5a6aad625d2bbec9be6a907..8c70a8a3bfd75d5aec4a2c31c5d20f93ee0a2ae3 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.Color;
 import java.awt.Font;
 import java.io.Serializable;
@@ -374,7 +376,7 @@ public class DefaultStyledDocument extends AbstractDocument implements
      */
     public String toString()
     {
-      StringBuilder b = new StringBuilder();
+      CPStringBuilder b = new CPStringBuilder();
       switch (type)
         {
         case StartTagType:
@@ -2420,7 +2422,7 @@ public class DefaultStyledDocument extends AbstractDocument implements
         writeLock();
 
         // First we collect the content to be inserted.
-        StringBuffer contentBuffer = new StringBuffer();
+        CPStringBuilder contentBuffer = new CPStringBuilder();
         for (int i = 0; i < data.length; i++)
           {
             // Collect all inserts into one so we can get the correct
index 8e70fe2bb2b6c186eaff16def3d7f303785740b9..24035e35ac2f9e3d42842e9ecf7d732d638a0079 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.awt.AWTEvent;
 import java.awt.Color;
 import java.awt.Container;
@@ -2016,7 +2018,7 @@ public abstract class JTextComponent extends JComponent
           d.putProperty(Document.StreamDescriptionProperty, streamDescription);
       }
 
-    StringBuffer b = new StringBuffer();
+    CPStringBuilder b = new CPStringBuilder();
     int c;
 
     // Read till -1 (EOF).
index 581cceb617d35b0ce5f3b55c6c2d8c317e11921a..4ebf65b9332ce5b72c5439fb831038e65099ab10 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.text.ParseException;
 
 import javax.swing.JFormattedTextField;
@@ -311,7 +313,7 @@ public class MaskFormatter extends DefaultFormatter
   private String convertStringToValue(String value)
     throws ParseException
   {
-    StringBuffer result = new StringBuffer();
+    CPStringBuilder result = new CPStringBuilder();
     char valueChar;
     boolean isPlaceHolder;
 
@@ -447,7 +449,7 @@ public class MaskFormatter extends DefaultFormatter
   private String convertValueToString(String value)
     throws ParseException
   {
-    StringBuffer result = new StringBuffer();
+    CPStringBuilder result = new CPStringBuilder();
     char valueChar;
     boolean isPlaceHolder;
 
index 0f2c8c7c1eeac6f8e24d916bf362557206f09d1b..c08a650fb11f059156bec73e56c61c51d15cfd60 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.swing.text;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
 /**
@@ -194,7 +196,7 @@ public class TabSet implements Serializable
    */
   public String toString()
   {
-    StringBuffer sb = new StringBuffer();
+    CPStringBuilder sb = new CPStringBuilder();
     sb.append("[ ");
     for (int i = 0; i < tabs.length; ++i)
       {
index 54a16bcc599ee8e3b73488a6357e8c38e08d8f0d..d49ac3a6fc942bae6b8635c67adc7e691b9bf328 100644 (file)
@@ -162,11 +162,6 @@ class CSSParser
    */
   private int pushedChar;
 
-  /**
-   * Temporary place to hold identifiers.
-   */
-  private StringBuffer unitBuffer;
-
   /**
    * Used to indicate blocks.
    */
@@ -212,7 +207,6 @@ class CSSParser
    */
   CSSParser()
   {
-    unitBuffer = new StringBuffer();
     tokenBuffer = new char[10];
   }
 
index 44119c73286f5d0faad21cc1b0581a34d17d1e97..6cc23df9aabe20087a6a6021298998bbf0e582a7 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package javax.swing.text.html;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.IOException;
 import java.io.Writer;
 
@@ -574,7 +576,7 @@ public class HTMLWriter
   protected void output(char[] chars, int off, int len)
    throws IOException
   {
-    StringBuffer strBuffer = new StringBuffer();
+    CPStringBuilder strBuffer = new CPStringBuilder();
 
     for (int i = 0; i < chars.length; i++)
       {
@@ -1081,4 +1083,4 @@ public class HTMLWriter
       return ret_str;
   } // private String escapeCharHtmlEntity(char param_char)
 
-} // public class HTMLWriter extends AbstractWriter
\ No newline at end of file
+} // public class HTMLWriter extends AbstractWriter
index 01f19fd7bdd8cbcda29faf8a4c88bd8fd10070b9..08578c80fad6e92630b7f072756c59a744d93220 100644 (file)
@@ -182,7 +182,7 @@ public class StyleSheet extends StyleContext
    */
   private class CSSStyle
     extends SimpleAttributeSet
-    implements Style, Comparable
+    implements Style, Comparable<CSSStyle>
   {
 
     static final int PREC_UA = 0;
@@ -229,9 +229,8 @@ public class StyleSheet extends StyleContext
      * Sorts the rule according to the style's precedence and the
      * selectors specificity.
      */
-    public int compareTo(Object o)
+    public int compareTo(CSSStyle other)
     {
-      CSSStyle other = (CSSStyle) o;
       return other.precedence + other.selector.getSpecificity()
              - precedence - selector.getSpecificity();
     }
@@ -247,18 +246,18 @@ public class StyleSheet extends StyleContext
   /**
    * The linked style sheets stored.
    */
-  private ArrayList linked;
+  private ArrayList<StyleSheet> linked;
 
   /**
    * Maps element names (selectors) to AttributSet (the corresponding style
    * information).
    */
-  ArrayList css = new ArrayList();
+  ArrayList<CSSStyle> css = new ArrayList<CSSStyle>();
 
   /**
    * Maps selectors to their resolved styles.
    */
-  private HashMap resolvedStyles;
+  private HashMap<String,Style> resolvedStyles;
 
   /**
    * Constructs a StyleSheet.
@@ -267,7 +266,7 @@ public class StyleSheet extends StyleContext
   {
     super();
     baseFontSize = 4; // Default font size from CSS
-    resolvedStyles = new HashMap();
+    resolvedStyles = new HashMap<String,Style>();
   }
 
   /**
@@ -283,7 +282,7 @@ public class StyleSheet extends StyleContext
   {
     // Create list of the element and all of its parents, starting
     // with the bottommost element.
-    ArrayList path = new ArrayList();
+    ArrayList<Element> path = new ArrayList<Element>();
     Element el;
     AttributeSet atts;
     for (el = e; el != null; el = el.getParentElement())
@@ -295,7 +294,7 @@ public class StyleSheet extends StyleContext
     // We append the actual element after this loop.
     for (int i = count - 1; i > 0; i--)
       {
-        el = (Element) path.get(i);
+        el = path.get(i);
         atts = el.getAttributes();
         Object name = atts.getAttribute(StyleConstants.NameAttribute);
         selector.append(name.toString());
@@ -322,7 +321,7 @@ public class StyleSheet extends StyleContext
         selector.append(' ');
       }
     selector.append(t.toString());
-    el = (Element) path.get(0);
+    el = path.get(0);
     atts = el.getAttributes();
     // For leaf elements, we have to fetch the tag specific attributes.
     if (el.isLeaf())
@@ -372,7 +371,7 @@ public class StyleSheet extends StyleContext
    */
   private Style getResolvedStyle(String selector, List path, HTML.Tag tag)
   {
-    Style style = (Style) resolvedStyles.get(selector);
+    Style style = resolvedStyles.get(selector);
     if (style == null)
       style = resolveStyle(selector, path, tag);
     return style;
@@ -439,11 +438,9 @@ public class StyleSheet extends StyleContext
   {
     // FIXME: This style resolver is not correct. But it works good enough for
     // the default.css.
-    int count = tags.length;
-    ArrayList styles = new ArrayList();
-    for (Iterator i = css.iterator(); i.hasNext();)
+    ArrayList<CSSStyle> styles = new ArrayList<CSSStyle>();
+    for (CSSStyle style : css)
       {
-        CSSStyle style = (CSSStyle) i.next();
         if (style.selector.matches(tags, attributes))
           styles.add(style);
       }
@@ -453,10 +450,10 @@ public class StyleSheet extends StyleContext
       {
         for (int i = linked.size() - 1; i >= 0; i--)
           {
-            StyleSheet ss = (StyleSheet) linked.get(i);
+            StyleSheet ss = linked.get(i);
             for (int j = ss.css.size() - 1; j >= 0; j--)
               {
-                CSSStyle style = (CSSStyle) ss.css.get(j);
+                CSSStyle style = ss.css.get(j);
                 if (style.selector.matches(tags, attributes))
                   styles.add(style);
               }
@@ -615,7 +612,7 @@ public class StyleSheet extends StyleContext
     if (linked != null)
       {
         linkedSS = new StyleSheet[linked.size()];
-        linkedSS = (StyleSheet[]) linked.toArray(linkedSS);
+        linkedSS = linked.toArray(linkedSS);
       }
     else
       {
@@ -1074,7 +1071,7 @@ public class StyleSheet extends StyleContext
    */
   public void setBaseFontSize(String size)
   {
-    size.trim();
+    size = size.trim();
     int temp = 0;
     try
       {
@@ -1446,8 +1443,8 @@ public class StyleSheet extends StyleContext
    */
   private Map attributeSetToMap(AttributeSet atts)
   {
-    HashMap map = new HashMap();
-    Enumeration keys = atts.getAttributeNames();
+    HashMap<String,String> map = new HashMap<String,String>();
+    Enumeration<?> keys = atts.getAttributeNames();
     while (keys.hasMoreElements())
       {
         Object key = keys.nextElement();
index 25db89fc40517c988fa4363c13d47a00608f8280..8838646d5f5f29fe737345f585f49b165d147fa4 100644 (file)
@@ -83,7 +83,7 @@ class ViewAttributeSet
   {
     styleSheet = ss;
     view = v;
-    ArrayList atts = new ArrayList();
+    ArrayList<AttributeSet> atts = new ArrayList<AttributeSet>();
 
     Element el = v.getElement();
     AttributeSet elAtts = el.getAttributes();
@@ -93,7 +93,7 @@ class ViewAttributeSet
 
     if (el.isLeaf())
       {
-        Enumeration n = elAtts.getAttributeNames();
+        Enumeration<?> n = elAtts.getAttributeNames();
         while (n.hasMoreElements())
           {
             Object key = n.nextElement();
@@ -115,7 +115,7 @@ class ViewAttributeSet
       }
 
     AttributeSet[] atts1 = new AttributeSet[atts.size()];
-    atts1 = (AttributeSet[]) atts.toArray(atts1);
+    atts1 = atts.toArray(atts1);
     init(atts1);
   }
 
index a1afe781324c1dbae1d14d8410ba31299fc23b78..34a70c19b59b65d8e274614b3293221ea31e795b 100644 (file)
@@ -68,7 +68,7 @@ public class DefaultMutableTreeNode
    * children.
    */
   public static final Enumeration<TreeNode> EMPTY_ENUMERATION =
-    EmptyEnumeration.getInstance();
+    new EmptyEnumeration<TreeNode>();
 
   /**
    * The parent of this node (possibly <code>null</code>).
index 2bb0d0045a6fe8d89c4e9323a4e685a17bdfba60..b2806f2728b78f12ddba9e08b47e58f03895c830 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing.tree;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.beans.PropertyChangeListener;
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -224,7 +226,7 @@ public class DefaultTreeSelectionModel
       return "[selection empty]";
     else
       {
-        StringBuffer b = new StringBuffer("selected rows: [");
+        CPStringBuilder b = new CPStringBuilder("selected rows: [");
         for (int i = 0; i < selection.length; i++)
           {
             b.append(getRow(selection[i]));
index 56ecaba6d28b6544f0952e3f82a308b073aa56c8..a1d65c64250cebb9b74ebdc70893072da407ae11 100644 (file)
@@ -60,7 +60,7 @@ public interface FileObject
    *
    * @return a URI that represents this file object
    */
-  URI toURI();
+  URI toUri();
 
   /**
    * Returns a name for this file object. The exact name is implementation
@@ -99,6 +99,8 @@ public interface FileObject
   /**
    * Opens this file for reading and returns a reader.
    *
+   * @param ignoreEncodingErrors <code>true</code> when encoding errors should be ignored
+   *                             <code>false</code> otherwise
    * @return a reader for reading this file object
    *
    * @throws IOException if an I/O error occurs
@@ -107,7 +109,7 @@ public interface FileObject
    * @throws UnsupportedOperationException if this kind of file does not allow
    *         character reading
    */
-  Reader openReader() throws IOException;
+  Reader openReader(boolean ignoreEncodingErrors) throws IOException;
 
   /**
    * Returns the character content of the file, if available. Any byte
index 06f465c353ecd33d32ee7df69c1641e1a92b49fe..386d5b852864669997613178af7c4a793e279b1d 100644 (file)
@@ -44,7 +44,7 @@ import java.math.BigInteger;
 import java.util.GregorianCalendar;
 import java.util.Iterator;
 import java.util.Properties;
-import gnu.classpath.ServiceFactory;
+import java.util.ServiceLoader;
 
 /**
  * Factory class to create new datatype objects mapping XML to and from Java
@@ -97,11 +97,11 @@ public abstract class DatatypeFactory
               return (DatatypeFactory) Class.forName(className).newInstance();
           }
         // 3. services
-        Iterator i = ServiceFactory.lookupProviders(DatatypeFactory.class);
+        Iterator<DatatypeFactory> i = ServiceLoader.load(DatatypeFactory.class).iterator();
         if (i.hasNext())
-          return (DatatypeFactory) i.next();
+          return i.next();
         // 4. fallback
-        Class t = Class.forName(DATATYPEFACTORY_IMPLEMENTATION_CLASS);
+        Class<?> t = Class.forName(DATATYPEFACTORY_IMPLEMENTATION_CLASS);
         return (DatatypeFactory) t.newInstance();
       }
     catch (Exception e)
index 1bcb85006c16cb4bb076a367ff1b24fa2ebba9ac..b9722a47a535b7e267dcda2b2039826aee912b88 100644 (file)
@@ -61,6 +61,7 @@ public interface NamespaceContext
   /**
    * Returns all the prefixes currently bound to the given namespace URI.
    */
+  @SuppressWarnings("unchecked")
   public Iterator getPrefixes(String namespaceURI);
   
 }
index 18dee79bbffbb03e1c0e3659019f58f2e868c970..3c756237895297ed173baa8ad1f2ce3ba6f25189 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.xml.namespace;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.Serializable;
 
 import javax.xml.XMLConstants;
@@ -126,7 +128,7 @@ public class QName implements Serializable
   {
     if (qName == null)
       {
-       StringBuffer buf = new StringBuffer();
+       CPStringBuilder buf = new CPStringBuilder();
        if (namespaceURI.length() > 0)
          {
            buf.append('{');
index 9312e65e06d8cc70b0c69bfacf2b6e22275d0b2b..a1350c54920a419c7ceda77e50b113ed90e5a756 100644 (file)
@@ -99,7 +99,7 @@ public abstract class DocumentBuilderFactory
           {
             try
               {
-                Class t = (loader != null) ? loader.loadClass(className) :
+                Class<?> t = (loader != null) ? loader.loadClass(className) :
                   Class.forName(className);
                 return (DocumentBuilderFactory) t.newInstance();
               }
index 549fe4b5409f6837af4bab6b0e7f7133e48897a7..9f8f7bafee9ae257e817735814a2ca76447de72f 100644 (file)
@@ -99,7 +99,7 @@ public abstract class SAXParserFactory
           {
             try
               {
-                Class t = (loader != null) ? loader.loadClass(className) :
+                Class<?> t = (loader != null) ? loader.loadClass(className) :
                   Class.forName(className);
                 return (SAXParserFactory) t.newInstance();
               }
index cb850baaec8ac3b73aec45f08ac053ba8d204d53..30e160793b9680ec9545434dbc18b0a5bf7bdb88 100644 (file)
@@ -116,7 +116,7 @@ public abstract class XMLEventFactory
           {
             try
               {
-                Class t = (loader != null) ? loader.loadClass(className) :
+                Class<?> t = (loader != null) ? loader.loadClass(className) :
                   Class.forName(className);
                 return (XMLEventFactory) t.newInstance();
               }
@@ -217,6 +217,7 @@ public abstract class XMLEventFactory
   /**
    * Create a start-element event.
    */
+  @SuppressWarnings("unchecked")
   public abstract StartElement createStartElement(QName name,
                                                   Iterator attributes,
                                                   Iterator namespaces);
@@ -231,6 +232,7 @@ public abstract class XMLEventFactory
   /**
    * Create a start-element event.
    */
+  @SuppressWarnings("unchecked")
   public abstract StartElement createStartElement(String prefix,
                                                   String namespaceUri,
                                                   String localName,
@@ -240,6 +242,7 @@ public abstract class XMLEventFactory
   /**
    * Create a start-element event.
    */
+  @SuppressWarnings("unchecked")
   public abstract StartElement createStartElement(String prefix,
                                                   String namespaceUri,
                                                   String localName,
@@ -250,6 +253,7 @@ public abstract class XMLEventFactory
   /**
    * Create an end-element event.
    */
+  @SuppressWarnings("unchecked")
   public abstract EndElement createEndElement(QName name,
                                               Iterator namespaces);
 
@@ -263,6 +267,7 @@ public abstract class XMLEventFactory
   /**
    * Create an end-element event.
    */
+  @SuppressWarnings("unchecked")
   public abstract EndElement createEndElement(String prefix,
                                               String namespaceUri,
                                               String localName,
index 35ad5696eda57d75b0f476641647fc374e300cac..ee0354f94f38a05398b96c27ae7c7d8c6d53a8f1 100644 (file)
@@ -43,6 +43,7 @@ import javax.xml.stream.events.XMLEvent;
 /**
  * An XML parser.
  */
+@SuppressWarnings("unchecked")
 public interface XMLEventReader
   extends Iterator
 {
index f88451e54bfbf482a2c9d70c77f4b73fca088898..437bf83b5eca9a549afbde306ada65b55262f17a 100644 (file)
@@ -229,7 +229,7 @@ public abstract class XMLInputFactory
           {
             try
               {
-                Class t = (loader != null) ? loader.loadClass(className) :
+                Class<?> t = (loader != null) ? loader.loadClass(className) :
                   Class.forName(className);
                 return (XMLInputFactory) t.newInstance();
               }
index e4c9dd40d46433177983713b17030af2323beafc..908f84f262a41382cf1a120a1041e7f3a5aa7cc9 100644 (file)
@@ -116,7 +116,7 @@ public abstract class XMLOutputFactory
           {
             try
               {
-                Class t = (loader != null) ? loader.loadClass(className) :
+                Class<?> t = (loader != null) ? loader.loadClass(className) :
                   Class.forName(className);
                 return (XMLOutputFactory) t.newInstance();
               }
index 6c7bcc4ced0859eecf5cd1ecf3989fa7989d36b2..943572ef32feb3c724f73825e6fc06fd1e4fe69c 100644 (file)
@@ -60,11 +60,13 @@ public interface DTD
   /**
    * Returns the notations declared in the DTD.
    */
+  @SuppressWarnings("unchecked")
   List getNotations();
 
   /**
    * Returns the entities declared in the DTD.
    */
+  @SuppressWarnings("unchecked")
   List getEntities();
   
 }
index 86a2e1617e4d3442e3a2cfd690c4e1e82c28df7c..3bde8f8ad9e2cde1d692fc37b09950390c9246b3 100644 (file)
@@ -55,6 +55,7 @@ public interface EndElement
   /**
    * Returns the namespaces that have gone out of scope.
    */
+  @SuppressWarnings("unchecked")
   Iterator getNamespaces();
   
 }
index a35b3b4121f013d3bdc910a057e7452bb38aa0bb..0916368c92bd6e07113d03e9037261d032dfd892 100644 (file)
@@ -56,11 +56,13 @@ public interface StartElement
   /**
    * Returns the attributes declared on this element.
    */
+  @SuppressWarnings("unchecked")
   Iterator getAttributes();
 
   /**
    * Returns the namespaces declared on this element.
    */
+  @SuppressWarnings("unchecked")
   Iterator getNamespaces();
 
   /**
index 3d97eda1bbb97365fda98f9f2dd803358ca4ae5c..7a0b5ad9888dc79944f92410199696db852f2339 100644 (file)
@@ -34,8 +34,11 @@ or based on this library.  If you modify this library, you may extend
 this exception to your version of the library, but you are not
 obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
+
 package javax.xml.transform;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.PrintStream;
 import java.io.PrintWriter;
 
@@ -179,7 +182,7 @@ public class TransformerException
     String systemId = locator.getSystemId();
     int lineNumber = locator.getLineNumber();
     int columnNumber = locator.getColumnNumber();
-    StringBuffer buffer = new StringBuffer ();
+    CPStringBuilder buffer = new CPStringBuilder ();
     if (publicId != null)
       {
         buffer.append ("publicId=");
index e3c895361a292d1b548cdad66c817dfb3777da05..e3e6c0cbdc3fc5fe3b2fd0a91aa8f5a196c54210 100644 (file)
@@ -89,7 +89,7 @@ public abstract class TransformerFactory
           {
             try
               {
-                Class t = (loader != null) ? loader.loadClass(className) :
+                Class<?> t = (loader != null) ? loader.loadClass(className) :
                   Class.forName(className);
                 return (TransformerFactory) t.newInstance();
               }
@@ -107,7 +107,7 @@ public abstract class TransformerFactory
     while (className == null && count < 3);
     try
       {
-        Class t =
+        Class<?> t =
           Class.forName("gnu.xml.transform.TransformerFactoryImpl");
         return (TransformerFactory) t.newInstance();
       }
index 0c24104445b7390f5cc4c4f8868be2a1f6e17085..0b83b6f4d4dd30315a3e8fb8e9981b522f784ddc 100644 (file)
@@ -89,7 +89,7 @@ public abstract class SchemaFactory
           {
             try
               {
-                Class t = (loader != null) ? loader.loadClass(className) :
+                Class<?> t = (loader != null) ? loader.loadClass(className) :
                     Class.forName(className);
                 return (SchemaFactory) t.newInstance();
               }
@@ -118,7 +118,7 @@ public abstract class SchemaFactory
                 for (String line = r.readLine(); line != null;
                         line = r.readLine())
                   {
-                    Class t = (loader != null) ? loader.loadClass(className) :
+                    Class<?> t = (loader != null) ? loader.loadClass(className) :
                         Class.forName(className);
                     SchemaFactory ret = (SchemaFactory) t.newInstance();
                     if (ret.isSchemaLanguageSupported(schemaLanguage))
index e87475f13d448f80a9d5fe4f0489cad0a5d8cf33..76a88a10cecbdcfd37a9bd3d6ae4575311903957 100644 (file)
@@ -117,7 +117,7 @@ public abstract class XPathFactory
           {
             try
               {
-                Class t = (loader != null) ? loader.loadClass(className) :
+                Class<?> t = (loader != null) ? loader.loadClass(className) :
                   Class.forName(className);
                 XPathFactory ret = (XPathFactory) t.newInstance();
                 if (ret.isObjectModelSupported(uri))
index c7ea733141fdfdc9d0dbc5827067aae303eead65..dbda11bfe6c4ee1d04f99c1036eb59bd1941e6d6 100644 (file)
@@ -52,6 +52,7 @@ public interface XPathFunction
    * Evaluate the function with the specified arguments.
    * @param args the list of arguments
    */
+  @SuppressWarnings("unchecked")
   Object evaluate(List args)
     throws XPathFunctionException;
   
index 74ddaf84829f713ea1851249142b5b0de7af9c37..5491a99de0030c43941660cafeab290b070152fb 100644 (file)
@@ -8,20 +8,26 @@ sinclude $(JAVA_DEPEND)
 compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(PATH_TO_GLIBJ_ZIP):$(PATH_TO_ESCHER)
 
 # handling source to bytecode compiler programs like gcj, jikes  and kjc
-## GCJ LOCAL: use srcdir, don't pass $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.5 -target 1.5
-JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes
+if GCJ_JAVAC
+## GCJ LOCAL: use srcdir
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --bootclasspath='' --classpath=$(compile_classpath) -d $(srcdir) @classes
+else
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.5 -target 1.5 -bootclasspath '' -classpath $(compile_classpath) -d . @classes
+endif
 
 if CREATE_COLLECTIONS
 COLLECTIONS = collections.jar
 
+if WITH_JAR
+CREATE_COLLECTIONS_JAR=$(JAR) cf $@ $(COLLECTIONS_PREFIX)
+else
+CREATE_COLLECTIONS_JAR=$(ZIP) -r -D $@ $(COLLECTIONS_PREFIX) > /dev/null
+endif
+
 collections.jar: mkcollections.pl
        ./mkcollections.pl $(top_srcdir)
        $(JCOMPILER) `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print`
-       if test "$(FASTJAR)" != ""; then \
-         "$(FASTJAR)" cf $@ $(COLLECTIONS_PREFIX); \
-       else \
-         echo "fastjar not found" > collections.jar; \
-       fi
+       $(CREATE_COLLECTIONS_JAR)
 endif # CREATE_COLLECTIONS
 
 if INSTALL_GLIBJ_ZIP
@@ -67,27 +73,31 @@ glibj.zip:
 
 else
 
-glibj.zip: classes compile-classes resources
-       if test "$(ZIP)" != ""; then $(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null; fi
-       if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf glibj.zip gnu java javax org sun META-INF; fi
+if WITH_JAR
+CREATE_GLIBJ_ZIP=$(JAR) cf glibj.zip gnu java javax org sun META-INF
+else
+CREATE_GLIBJ_ZIP=$(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null
+endif
 
+glibj.zip: classes compile-classes resources
+       $(CREATE_GLIBJ_ZIP)
 endif # USE_PREBUILT_GLIBJ_ZIP
 
 resources: copy-vmresources.sh
        @list=`cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print -o -name \*\.css -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
-          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+          if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
          cp $(top_srcdir)/resource/$$p $$p; \
        done
        @list=`cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name .svn -prune -o -name \*\.in -prune -o -type f -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
-          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+          if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
          cp $(top_srcdir)/resource/$$p $$p; \
        done
        @$(SHELL) ./copy-vmresources.sh
        @list=`cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
-          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+          if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
          cp $(top_srcdir)/$$p $$p; \
        done
        touch resources
@@ -95,7 +105,7 @@ resources: copy-vmresources.sh
 classes: genclasses
 
 $(top_builddir)/gnu/java/locale/LocaleData.java: $(top_srcdir)/scripts/generate-locale-list.sh 
-       mkdir -p $(top_builddir)/gnu/java/locale
+       @mkdir_p@ $(top_builddir)/gnu/java/locale
        $(top_srcdir)/scripts/generate-locale-list.sh > $(top_builddir)/gnu/java/locale/LocaleData.java
 
 genclasses: gen-classlist.sh standard.omit $(top_builddir)/gnu/java/locale/LocaleData.java gen-xpath-parser
@@ -155,7 +165,7 @@ clean-local:
        -rm -rf lists
 
 dist-hook:
-       mkdir -p $(distdir)
+       @mkdir_p@ $(distdir)
        cp -pdfR $(top_srcdir)/gnu $(top_srcdir)/java $(top_srcdir)/javax $(top_srcdir)/org $(top_srcdir)/sun $(top_srcdir)/vm $(top_srcdir)/resource $(distdir)/..
 # Delete not wanted files.
        $(FIND) $(distdir)/../gnu $(distdir)/../java $(distdir)/../javax $(distdir)/../org $(distdir)/../sun $(distdir)/../vm $(distdir)/../resource -name CVS -print | xargs rm -fr
index 807da3cfa07a874908a451988e0317ded7b22714..f3d508389d8a82885a5a46873126dd8f005cdef9 100644 (file)
@@ -53,6 +53,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -77,6 +80,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -108,6 +113,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -146,11 +157,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -160,6 +172,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -181,7 +195,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -247,8 +264,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -259,6 +278,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -318,14 +338,20 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 JAVA_DEPEND = java.dep
 compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(PATH_TO_GLIBJ_ZIP):$(PATH_TO_ESCHER)
+@GCJ_JAVAC_FALSE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.5 -target 1.5 -bootclasspath '' -classpath $(compile_classpath) -d . @classes
 
 # handling source to bytecode compiler programs like gcj, jikes  and kjc
-JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes
+@GCJ_JAVAC_TRUE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --bootclasspath='' --classpath=$(compile_classpath) -d $(srcdir) @classes
 @CREATE_COLLECTIONS_TRUE@COLLECTIONS = collections.jar
+@CREATE_COLLECTIONS_TRUE@@WITH_JAR_FALSE@CREATE_COLLECTIONS_JAR = $(ZIP) -r -D $@ $(COLLECTIONS_PREFIX) > /dev/null
+@CREATE_COLLECTIONS_TRUE@@WITH_JAR_TRUE@CREATE_COLLECTIONS_JAR = $(JAR) cf $@ $(COLLECTIONS_PREFIX)
 @BUILD_CLASS_FILES_TRUE@noinst_DATA = genclasses compile-classes resources
+@USE_PREBUILT_GLIBJ_ZIP_FALSE@@WITH_JAR_FALSE@CREATE_GLIBJ_ZIP = $(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null
+@USE_PREBUILT_GLIBJ_ZIP_FALSE@@WITH_JAR_TRUE@CREATE_GLIBJ_ZIP = $(JAR) cf glibj.zip gnu java javax org sun META-INF
 # endif
 EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh glibj.zip
 CLEANFILES = compile-classes resources classes \
@@ -514,11 +540,7 @@ sinclude $(JAVA_DEPEND)
 @CREATE_COLLECTIONS_TRUE@collections.jar: mkcollections.pl
 @CREATE_COLLECTIONS_TRUE@      ./mkcollections.pl $(top_srcdir)
 @CREATE_COLLECTIONS_TRUE@      $(JCOMPILER) `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print`
-@CREATE_COLLECTIONS_TRUE@      if test "$(FASTJAR)" != ""; then \
-@CREATE_COLLECTIONS_TRUE@        "$(FASTJAR)" cf $@ $(COLLECTIONS_PREFIX); \
-@CREATE_COLLECTIONS_TRUE@      else \
-@CREATE_COLLECTIONS_TRUE@        echo "fastjar not found" > collections.jar; \
-@CREATE_COLLECTIONS_TRUE@      fi
+@CREATE_COLLECTIONS_TRUE@      $(CREATE_COLLECTIONS_JAR)
 
 @INSTALL_CLASS_FILES_TRUE@install-data-local: genclasses compile-classes
 @INSTALL_CLASS_FILES_TRUE@     $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
@@ -544,24 +566,23 @@ sinclude $(JAVA_DEPEND)
 @USE_PREBUILT_GLIBJ_ZIP_TRUE@  cp $(PATH_TO_GLIBJ_ZIP) .
 
 @USE_PREBUILT_GLIBJ_ZIP_FALSE@glibj.zip: classes compile-classes resources
-@USE_PREBUILT_GLIBJ_ZIP_FALSE@ if test "$(ZIP)" != ""; then $(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null; fi
-@USE_PREBUILT_GLIBJ_ZIP_FALSE@ if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf glibj.zip gnu java javax org sun META-INF; fi
+@USE_PREBUILT_GLIBJ_ZIP_FALSE@ $(CREATE_GLIBJ_ZIP)
 
 resources: copy-vmresources.sh
        @list=`cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print -o -name \*\.css -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
-          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+          if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
          cp $(top_srcdir)/resource/$$p $$p; \
        done
        @list=`cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name .svn -prune -o -name \*\.in -prune -o -type f -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
-          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+          if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
          cp $(top_srcdir)/resource/$$p $$p; \
        done
        @$(SHELL) ./copy-vmresources.sh
        @list=`cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
-          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+          if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
          cp $(top_srcdir)/$$p $$p; \
        done
        touch resources
@@ -569,7 +590,7 @@ resources: copy-vmresources.sh
 classes: genclasses
 
 $(top_builddir)/gnu/java/locale/LocaleData.java: $(top_srcdir)/scripts/generate-locale-list.sh 
-       mkdir -p $(top_builddir)/gnu/java/locale
+       @mkdir_p@ $(top_builddir)/gnu/java/locale
        $(top_srcdir)/scripts/generate-locale-list.sh > $(top_builddir)/gnu/java/locale/LocaleData.java
 
 genclasses: gen-classlist.sh standard.omit $(top_builddir)/gnu/java/locale/LocaleData.java gen-xpath-parser
@@ -615,7 +636,7 @@ clean-local:
        -rm -rf lists
 
 dist-hook:
-       mkdir -p $(distdir)
+       @mkdir_p@ $(distdir)
        cp -pdfR $(top_srcdir)/gnu $(top_srcdir)/java $(top_srcdir)/javax $(top_srcdir)/org $(top_srcdir)/sun $(top_srcdir)/vm $(top_srcdir)/resource $(distdir)/..
 # Delete not wanted files.
        $(FIND) $(distdir)/../gnu $(distdir)/../java $(distdir)/../javax $(distdir)/../org $(distdir)/../sun $(distdir)/../vm $(distdir)/../resource -name CVS -print | xargs rm -fr
index dbda9de202e0e9ae2f4dddb5e7c0f5d6d226a896..8dc8c0f5b4d5c9a3f8ef167fc0ce0feb7b6d0266 100644 (file)
@@ -11,7 +11,7 @@ for p in ${vmdirs}; do
                (cd $p/META-INF; 
                 dirs=`find . -name "CVS" -prune -o -type d -print`;
                 for u in ${dirs}; do
-                        mkdir -p ${destMetaDir}/${u};
+                        @mkdir_p@ ${destMetaDir}/${u};
                 done;
                 files=`find . -name "CVS" -prune -o -name "*.in" -prune -o -type f -print`;
                 for u in ${files}; do
@@ -31,7 +31,7 @@ for p in ${vmdirs}; do
          resnewdirs=`echo ${resdirs} | uniq`;
 
          for u in ${resnewdirs}; do
-                 mkdir -p ${destResDir}/${u};
+                 @mkdir_p@ ${destResDir}/${u};
          done
   
          for f in ${resfiles}; do
index 88eef1abe923c1f6e2ded0e8a768b3f7935f58aa..9cb32ff1494072310c47c9c80d4edf5b8dee34ec 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class and b/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class differ
index 1935411e9de37e6be7d6185405a9625f16c78033..4af7c25116757df668dd78ff9f5274008947f45e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class and b/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class differ
index 1d738de5f76a5ba789ae962bb2cd8d5daba034d7..5dc83f2121648f9f379184c05772a442bfaee18f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/CDR/Vio.class and b/libjava/classpath/lib/gnu/CORBA/CDR/Vio.class differ
index 93acd1438add6e3212099e4f31e8974610594ec6..79bada0f96c131ac1f540aab67427b187970f2c3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.class and b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.class differ
index 2ed828f2daf2c99268293d640c2383ce3421362f..18acc6d7eabd21ccf3a902feaa32d72694d5b5ec 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Entry.class and b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Entry.class differ
index f8364f4994f0bde4c6d5519e3d26a525231d0465..4b172dcfc0e7f9b0d29da0f96fa714e456ff38f6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Redirection.class and b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Redirection.class differ
index a985b18424f717eb37b65c0a2e0f27f9e4bb8e3f..ebee731f2db37773aca047db1ab3b82d8e9d9593 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime.class and b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime.class differ
index 35147ecbaab4cc41e77580760234cc170cc5b833..7c70824d27eb6883f67ecc256558f5e06c8227b3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/GIOP/MessageHeader.class and b/libjava/classpath/lib/gnu/CORBA/GIOP/MessageHeader.class differ
index 21fdb446625022d6950ab79c783bd65c917b2d11..43a72f23e4c2a931a20239a14ef63ab45b66a5c0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/GIOP/RequestHeader.class and b/libjava/classpath/lib/gnu/CORBA/GIOP/RequestHeader.class differ
index 37f52f82a02615e44ee0ea08557448413e4c5d02..d8a473c2c01181d7b73f4385d28a0d9511a3854b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class and b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class differ
index 9bcc7b4bfa65d2b35d1a66e8601eabdf4211b95c..9c30524d4e728a4463f27d5f534fb1a72aa43e8f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/RequestHeader.class and b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/RequestHeader.class differ
index 3be7042133e0732b0a4487ccaad4f84c5f37afee..994bd1761c48e6e3623976adf3bae256311dfc09 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.class and b/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.class differ
index ffdb1728b26aef5820dd42ab4bbfa5c1c120c65b..08f0aa939a8ece9b2895c6aa8820719b615e3c31 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile.class and b/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile.class differ
index ce083880e50bab9a087929a2270597f788a642fb..455cbc75953930ef0723695dd4879004c12ecb58 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/IOR$Internet_profile.class and b/libjava/classpath/lib/gnu/CORBA/IOR$Internet_profile.class differ
index 3f1774a7e82972f38ff565a945f20adb107b9208..658b34d368ea9a95a8041ad21915b38f07ae53de 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/IOR.class and b/libjava/classpath/lib/gnu/CORBA/IOR.class differ
index 220af43ef4ce6bdcb9ce3657a59eb9a97203d2c9..474588e6109bfa4280302b79c1828e60cb48b3c7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class and b/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class differ
index a65900972fef27a4ba2b683c8ee8db11e674d552..1300ecb709a2890ee09b18c18cd7d756e03f48b8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/NamingService/NameTransformer.class and b/libjava/classpath/lib/gnu/CORBA/NamingService/NameTransformer.class differ
index 3a723dabe8ec15f9ec76c67f12e2953a80d778a8..d9eb540b144c487b89a2e2e02033ba263f8358b8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/OrbFunctional.class and b/libjava/classpath/lib/gnu/CORBA/OrbFunctional.class differ
index fa7a1412bd28130ff7943549fb210dcf3f45ca21..5ba09f0a1a9dec858a95b17a0f61d34178f22c0a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.class and b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.class differ
index 997b4270aab835b5099fcbbb0d2617f28ce6520d..8f9878b1c6238d4fe2187e09c92f73d691f63180 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.class and b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.class differ
index 7274a870970961e4848993a50beee7656a277779..5c76c5013e12b3f66fc574920b9e14b259e2f69a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/Poa/gnuServantObject.class and b/libjava/classpath/lib/gnu/CORBA/Poa/gnuServantObject.class differ
index 752cc06aa79f905275b6cc18d372466378175e72..1b3fe05043c7c2531a5d043d717b80ba8d45cc5c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/Configuration.class and b/libjava/classpath/lib/gnu/classpath/Configuration.class differ
index 773ebac5d96050abcbfcdc7e4aafaec0980fcd3c..b430d0761a564ae2d38b847fea83f19c3b43a409 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/SystemProperties.class and b/libjava/classpath/lib/gnu/classpath/SystemProperties.class differ
index 287db6bb7eab5ad0d9a56e0acd95d7aa37cba761..67b80881014259230219c9b659bebc7a7977a814 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.class and b/libjava/classpath/lib/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.class differ
index e9525687d3ca255c46f8451470cb6de77e66b729..b06d5a8497260071897fb9e34a63b4dd6edb7862 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/jdwp/util/Signature.class and b/libjava/classpath/lib/gnu/classpath/jdwp/util/Signature.class differ
index 0ea8a6a917bd8ede96221ddbcb1d547f6761d3ca..fee66109d09dd5fbd17cdc214c33d68d42ef333c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class and b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class differ
index 982715f1981f63e100cc3f5dd99d972c250ae05f..2c416a3136e7be2c7e12a7561f90289f18bdffb5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class and b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class differ
index 9162dad3033f39cba297b5ea450d1c929d333f0c..629ac631a54d7da5355ab66e5ba85b0ab2f44d2e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class and b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class differ
index 967fc0894dec1661eab333dd0a43bf02f519a3cf..bf8028538966b8f77ece55123cad5fe1e0f3b36a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/autofit/Edge.class and b/libjava/classpath/lib/gnu/java/awt/font/autofit/Edge.class differ
index 5ca5115ea0cbfcdb974996d381581cdbf7f27416..f2f8483928d534639778d70a987339f2dc4e2c76 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/autofit/LatinBlue.class and b/libjava/classpath/lib/gnu/java/awt/font/autofit/LatinBlue.class differ
index 5f4b4722f5e10a6912aca367305d1b7aba9d8757..34a82a1a7d7954aa2234181ea9c5bb0e9d7d8e44 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/autofit/Segment.class and b/libjava/classpath/lib/gnu/java/awt/font/autofit/Segment.class differ
index ca16b93bef9164b07640c4d54fa99b75b3fba09d..aa4a2dea9db0c43a5a881b5a2e380a01737b1818 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/autofit/Width.class and b/libjava/classpath/lib/gnu/java/awt/font/autofit/Width.class differ
index 31a1d649f9b60815620e8fdef0ba7b93d72ecf00..727bd233dc2791c1702e6b8ce2dcc9e14d54a3fe 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/opentype/GlyphNamer.class and b/libjava/classpath/lib/gnu/java/awt/font/opentype/GlyphNamer.class differ
index 74468fd6a11a46e98d358c236904dd0c0d9c82cf..699993ab95736b7f956f4050f26f0d6f310583c6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Fixed.class and b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Fixed.class differ
index 6b1e0dd9f3e5316516c7d02242b347955c22238a..bd8faab01cb011689963a170a675bfc6aec82a6b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Point.class and b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Point.class differ
index 2c2fef0ff2bd951a8aa00c734991fd43fd42d3be..6bd9b3c8f4cd0bccf026f1da67ff1683f31edddf 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/VirtualMachine.class and b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/VirtualMachine.class differ
index ff4c6e491f5f6d96ceb2bd05b0120d5a1634aa19..fce1b31ce6c6a79b9fc4a135eb0ce14f9717adea 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class and b/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class differ
index 14be883980ed3ddbbce89dc15e068881c9a9c80e..43fdc71fd4c01df157b6dc30d29de1e3ceb1a6fc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/java2d/ActiveEdges.class and b/libjava/classpath/lib/gnu/java/awt/java2d/ActiveEdges.class differ
index c52e502d6ede5204781bdcd88341401fca419c9e..fd0126f12c583597dc888c8a5c091ed8736a0364 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/java2d/RasterGraphics.class and b/libjava/classpath/lib/gnu/java/awt/java2d/RasterGraphics.class differ
index e3b450ed8e39a7017fa628b3aaafcfa091c8a21b..ed1c75dff4f94b4ae2f5c9aedbbeff3d864f89dc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class and b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class differ
index 7419929f2e04e748da8a8320b04e9c0d7d838b6b..59dfdfc9a2092b1509379af615b95e1b659a1d74 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/GnomeDesktopPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/GnomeDesktopPeer.class differ
index e8b506246a7a4319968d69f879cb296502e46f4f..a02a464bb5adf01133fcd83e43bfdf7b559e5679 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class differ
index 1dace9a00f1ea278903fc3a9e4975b836153c48d..a30392d577b0551cdfc6634afd121f225838a473 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class differ
index e6495e90232a8b81e4bd5ed4da91811978dfa71e..c9afa57a1f2b8718eb39c010ecc80755dedd2564 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class differ
index 1a1b941a8d23e1430c612b9916f7c0f7f1e5dac3..ce59f5634ea7c6dfec63341f671bd3108a637aef 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class differ
index 65ad993794b53c53ec7241fb86fdcd591e72af09..08cae72356e2cfe379fcea819dcb8e3cb03764ba 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboard.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboard.class differ
diff --git a/libjava/classpath/lib/gnu/java/lang/CPStringBuilder.class b/libjava/classpath/lib/gnu/java/lang/CPStringBuilder.class
new file mode 100644 (file)
index 0000000..7bb5793
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/lang/CPStringBuilder.class differ
index 484c4a8ef80dbe99426977bb8544359d25d22d2f..aff31475460125d79d9d1111b05d1c3568c01cd4 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/lang/ClassHelper.class and b/libjava/classpath/lib/gnu/java/lang/ClassHelper.class differ
diff --git a/libjava/classpath/lib/gnu/java/lang/VMCPStringBuilder.class b/libjava/classpath/lib/gnu/java/lang/VMCPStringBuilder.class
new file mode 100644 (file)
index 0000000..c2bab06
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/lang/VMCPStringBuilder.class differ
index 84f2433cbaa11070173a7599dbbb8f92e55eda6d..8f33abff4d112b6709704278e9a93c5016f0e680 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/lang/reflect/GenericArrayTypeImpl.class and b/libjava/classpath/lib/gnu/java/lang/reflect/GenericArrayTypeImpl.class differ
index 11a8fa0af7b53fc8cd293cac6a0599fdd26b61c7..37070b0d9f6875a9689e787db3800c77794ffea7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/lang/reflect/GenericSignatureParser.class and b/libjava/classpath/lib/gnu/java/lang/reflect/GenericSignatureParser.class differ
index a244f0f43130dd7cc55f189166c2eaf8579d7b8e..dc2d14a3b0c5bef1f6256c1c2ae3890d9ce1663f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/lang/reflect/ParameterizedTypeImpl.class and b/libjava/classpath/lib/gnu/java/lang/reflect/ParameterizedTypeImpl.class differ
index f2eb3336b2758dd426e32ac70c70a7f0e6eac5b8..3bb063f6a91436b2ec0c087849cbc2b695fbf2cf 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class and b/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class differ
index 78946cd10becaaae06d553d0cc475be314c1b072..8d5f6365dbc4c5156791e3ee88fa0c9d80bf94fa 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/lang/reflect/TypeVariableImpl.class and b/libjava/classpath/lib/gnu/java/lang/reflect/TypeVariableImpl.class differ
index 8a717e3b9493227a693e42c455b0e5881b3667d1..51a3eb067c32a6f2264db793fc62bbed88094ae0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/lang/reflect/UnresolvedTypeVariable.class and b/libjava/classpath/lib/gnu/java/lang/reflect/UnresolvedTypeVariable.class differ
index 98b51a98f91764eb664504e997ef232118fa0fc3..d128dd27f19fb50bd8dfe8fc43e23a73ddb24efa 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/lang/reflect/WildcardTypeImpl.class and b/libjava/classpath/lib/gnu/java/lang/reflect/WildcardTypeImpl.class differ
index 338cc8fc352a2d477e3f498381944692138b1126..64d83fd1a9dc4994b50fadd68669120352d0a0f7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/locale/LocaleData.class and b/libjava/classpath/lib/gnu/java/locale/LocaleData.class differ
diff --git a/libjava/classpath/lib/gnu/java/math/GMP.class b/libjava/classpath/lib/gnu/java/math/GMP.class
new file mode 100644 (file)
index 0000000..1e1e78b
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/math/GMP.class differ
index 07323693321273cd269b96c2ae95a16c260391f0..4bec2e5132a66a231b46ed825f991bd44aca965f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPConnection.class and b/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPConnection.class differ
index 970facb38a220af7138a0fc104121249786acf4c..ca8dcf2586e90e5a4af5a0e3fc21b2427d3bf207 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/http/ChunkedInputStream.class and b/libjava/classpath/lib/gnu/java/net/protocol/http/ChunkedInputStream.class differ
index ecba5b060feac7dae114dd54d1ac1c3bce57ad4c..49736ddfa6e219dc9abec31d471c656eac442c6c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/http/Cookie.class and b/libjava/classpath/lib/gnu/java/net/protocol/http/Cookie.class differ
index 6cf9d364701ec205b0b431d7eee024bc49f8c998..ed18303647628c7240e1daa7ff76cc1fab576d8e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.class and b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.class differ
index 1e1abbd608341f8a4496635145d97ff42a9c6859..6808a384ff059dde13609967d31afe364cf5cd52 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool.class and b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool.class differ
index eb765d168b0121ba6e56234ca5985203208a0352..dba375bf861b6f0ed1b47ef0222b606b42af44da 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection.class and b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection.class differ
index 3de6ac43d3e4767327908434c8d35d4cbfa256bd..890feec6f8a423e3dce2679397e37e441e1ab689 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/http/Headers$HeaderElement.class and b/libjava/classpath/lib/gnu/java/net/protocol/http/Headers$HeaderElement.class differ
index d34ca8e3ed0e4a9af8fa3f8eb82ce7de07f901e4..8692050233a211b7c834c16615dc5e0339a20698 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/http/Headers.class and b/libjava/classpath/lib/gnu/java/net/protocol/http/Headers.class differ
index 630f16a4c9c43882b9d2988c454cff4d31e4e143..cfc5dead0f56dac26acf9f41849ce48066c7e1b9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/http/LimitedLengthInputStream.class and b/libjava/classpath/lib/gnu/java/net/protocol/http/LimitedLengthInputStream.class differ
index fac66baa2e34628e3ca3812324675c7bfd54e5c9..a8c4ad3cecb34c0411bd41014b016828e5faebfe 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class and b/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class differ
index b175969212fa6180f40615078116a39670ee4b93..c0e5642449e62eed4b177a69a3128bf8eb26e5c8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/jar/Handler.class and b/libjava/classpath/lib/gnu/java/net/protocol/jar/Handler.class differ
index 27a0d839d5513f72a131633d1ad319c7f27fcad2..af7505ba0b19e2b81f2c6c403d93ffe8c42f489d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class and b/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class differ
index 654da730121c9f6dce6d66680dec63cbbac4bf0a..ee34d5988306e7477b22f245eeb4819f7338393a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class and b/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class differ
index f453e3176fbe34d1d398978c18f34753602bab62..3b2322aac5f7e70723b3335ab540ddeee614a62b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class and b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class differ
index 96787de186e352b3dcfb3200faa697bcae25009b..e68f227e0e5c4f2bc3b3cd99d886f5b6b55f1219 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class and b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class differ
index ca9e12924be8ee44e2a1d5f4a3cb03ed0a3b25d7..7dd92cf7f605833473bb6855999d71d5235d0aeb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class and b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class differ
index 1a661494888bd5daf4a8fa830925f540b4a8bcb4..7f03c62ff45c66cb44ed424cd32698c56d27f63b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/rmi/server/RMIHashes.class and b/libjava/classpath/lib/gnu/java/rmi/server/RMIHashes.class differ
index cf92b9675192477d442d24a5eb157148ceaaa688..e22db95dd26d57d5f4bba804d68b07e044f1a328 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/Engine.class and b/libjava/classpath/lib/gnu/java/security/Engine.class differ
index db37e6964a97b0ecd67fa4d6cec4317c13f7592c..d1cf9885e128181a879f30b18aae3e985d3d1c69 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/OID.class and b/libjava/classpath/lib/gnu/java/security/OID.class differ
index 99e4c99683811a0e12a3688f43c943cc3dfa4703..9e3951ad06aecdb926fc7a034fbe4ed58399d4b3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/PolicyFile$1.class and b/libjava/classpath/lib/gnu/java/security/PolicyFile$1.class differ
index e544dbc9a1eb83a6e3169a423db9830d23be1462..e07bd4ce943ae017de6448547293009620a75fc5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/PolicyFile.class and b/libjava/classpath/lib/gnu/java/security/PolicyFile.class differ
index c70e401c4566f390abff42b65e73ed52d0621fb3..532f7190f032bd37c6fd4d96344682c5daeb6139 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/der/BitString.class and b/libjava/classpath/lib/gnu/java/security/der/BitString.class differ
index 44bfc6f861c2f2c93501ef3a438f03d7094e66c7..5521a166071262a2c3a77190ee151a70d08d405a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/der/DERReader.class and b/libjava/classpath/lib/gnu/java/security/der/DERReader.class differ
index d734a4d5bebefdf162315e746825e292efad87bf..becb2e590fe6396a8027ec15eae6844043f05559 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/hash/Whirlpool.class and b/libjava/classpath/lib/gnu/java/security/hash/Whirlpool.class differ
index 895c8f221833ad2cc25e7e6ad4b2ab2ec8ba505d..241cfe3da2e8ed381d61b0f0cddda7f5183068b5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/jce/sig/DSSParameters.class and b/libjava/classpath/lib/gnu/java/security/jce/sig/DSSParameters.class differ
index c5462e165599f687f10c25064d48cad7b1427c4e..1c72206641e33f277c5948b34d9f099a6838c58c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/key/dss/DSSKey.class and b/libjava/classpath/lib/gnu/java/security/key/dss/DSSKey.class differ
index 958c05228e401ba94a41b6f3c068e072f3901700..426f3510242c1cccd5186e6016d63ef920a8d47a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/key/dss/DSSPrivateKey.class and b/libjava/classpath/lib/gnu/java/security/key/dss/DSSPrivateKey.class differ
index 909a027c038df2d7f5386afab3ffa8961dd67fb5..54494666d8d909a8afc1ed978993477f8b8ea4a1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/key/dss/DSSPublicKey.class and b/libjava/classpath/lib/gnu/java/security/key/dss/DSSPublicKey.class differ
index c95e6c418fc6532439a50cc02b52f6f97de80ccc..83f93b1aeb6e952065d6303c5420832e4ef43904 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAKey.class and b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAKey.class differ
index 1c7f6fd41296809b450a5911f91c52dad0bff00e..975a662e6eeca32ad0ffae7039e801b984dade80 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPrivateKey.class and b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPrivateKey.class differ
index 5d93064f5d7a94950e61060f90362f679ba140a0..27ed78d3a58a6c95893a7f4e1ea460b88cf0320f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPublicKey.class and b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPublicKey.class differ
index 3fedb12ef5335db159adefba60671ca317f1446d..3f40991b18ae41d708475c27facbc264132932ba 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/provider/X509CertificateFactory.class and b/libjava/classpath/lib/gnu/java/security/provider/X509CertificateFactory.class differ
index beb2df456191a7a9b47c350732d2aaba3f0d2856..dc7b37c72736a1a7e455b878fafea090eff6ee1f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/util/ByteArray.class and b/libjava/classpath/lib/gnu/java/security/util/ByteArray.class differ
index 8e14cae7ca10ad0bb16ed0cecffc4c052ac0dce7..dd1a5732f48b4727f2d258a58fcad4e613ba0b85 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/util/Util.class and b/libjava/classpath/lib/gnu/java/security/util/Util.class differ
index bfca58d7b4427dd13fa820c46484122ee9f91d83..251a1d0f91a394699bdc04c2dfb2d307e17547b9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/x509/PolicyNodeImpl.class and b/libjava/classpath/lib/gnu/java/security/x509/PolicyNodeImpl.class differ
index b21e8d818cfea6aa67e625c3b7e08c0714b9f0b7..cf54f281a132a10a454207ac7b6bdd12dc9e10d8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/x509/Util.class and b/libjava/classpath/lib/gnu/java/security/x509/Util.class differ
index eeb8bced0d44e8d91faa5a482daafa931dd0a5bf..818ef3a791bd5c8327f989a7d143b171b2b48b06 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/x509/X500DistinguishedName.class and b/libjava/classpath/lib/gnu/java/security/x509/X500DistinguishedName.class differ
index 265b8934434311e8c18d05acb468a960834adeae..d079038dc97869d389765be88deac035495a695e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class and b/libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class differ
index d677e8900b92fdbec9e7d708bf6319a479244d44..a186739030b60d3617e2892fa6d0808a39e0220b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/text/StringFormatBuffer.class and b/libjava/classpath/lib/gnu/java/text/StringFormatBuffer.class differ
index 3c5f7914872f369c0b2ef0d9797c005e02056d6e..254403e802078ed8c31d2eb17448978758dc1f44 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/Base64.class and b/libjava/classpath/lib/gnu/java/util/Base64.class differ
index 808980d83cfc851428ee1567c9457eae3bbdb3ce..32153eae3f977b51de50b4fcb36df769fc47716e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/EmptyEnumeration.class and b/libjava/classpath/lib/gnu/java/util/EmptyEnumeration.class differ
diff --git a/libjava/classpath/lib/gnu/java/util/prefs/EventDispatcher.class b/libjava/classpath/lib/gnu/java/util/prefs/EventDispatcher.class
deleted file mode 100644 (file)
index 932eb99..0000000
Binary files a/libjava/classpath/lib/gnu/java/util/prefs/EventDispatcher.class and /dev/null differ
index 78bc0ca803d11d0ea91022f0f00e3ac30838fc94..8384bc61d7934e7299e6ef20fd68391c702471b8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/prefs/GConfBasedPreferences.class and b/libjava/classpath/lib/gnu/java/util/prefs/GConfBasedPreferences.class differ
index 929229e540a9c61fd0c1ed4e958159ef88f34e45..1d33606540dae1bf56e67a5daacd37949fc4f839 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/prefs/NodeWriter.class and b/libjava/classpath/lib/gnu/java/util/prefs/NodeWriter.class differ
index fb4d70370c43bce43ad6d8602b96dbf4fbfad37a..9460692ac02cede5cb144c856f5e01ee59ab1442 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/prefs/gconf/GConfNativePeer.class and b/libjava/classpath/lib/gnu/java/util/prefs/gconf/GConfNativePeer.class differ
index 34b9e51a650c9c2193817bd080349aed128af3f6..affd6bac7ea31ae459d73b4e7dc45073327867dd 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack$Backtrack.class and b/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack$Backtrack.class differ
index b615849609e9fc136c7c9a257e94d59c9e3451c8..3de501808a170082e0dd7c0a7cb8cfd5f0c50eae 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack.class and b/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack.class differ
index 2ede3d6452512ad39f0485b4ccfab59cb277f49c..02a1a0e840291efe7404ea3184993237f4908505 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharArray.class and b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharArray.class differ
index 351c0af1abea953df7705bedc0a6da3898fb32a8..fa653735cc01e06ecfea6448692d371a1c26c5f8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharSequence.class and b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharSequence.class differ
index cf5fd881cfe816ccccad37aed692fee01b364fce..ce535b6fe1e0f9596676a1bd85bdadf9c2f8fa36 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedInputStream.class and b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedInputStream.class differ
index 0710442c6028bf5167214800a9d89002045e0b46..9b09ba5da7b442a99a175e306fe2543540311882 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedString.class and b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedString.class differ
index 8dfff383393d40295e5086453c0486005bfd15b0..2b1f3dc246a80a373fe6539326c2f9fd598f12f6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedStringBuffer.class and b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedStringBuffer.class differ
index f84e8b759e7c78c53a5e2bf3921c65a8a994d337..586daf5597211c533d15d19544e20e25c3cfe6b9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class and b/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class differ
index c4f07208943d1a4d32e0a7911491f04d93f6f00b..e067733ff4d3832427e6e5dfef234445a6592179 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class and b/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class differ
index 8e926135966a84ae77f1896ca82ca2ef7663f3a9..6218bdacd0da5455ffb596c40d8f2862ba33a809 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class and b/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class differ
index b0cbde240ab684a83db17ef8606179417c2fb24e..b4fb5d1941057a1c38bc46ec2750fc322fc87a1e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class and b/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class differ
index 25f1aafacb4570384f2a2f960940ad409b2cd46c..58d5e7c6fb5dd3d8360430f6b8335901fc062702 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class and b/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class differ
index ff81c5978757ea5ef6fabd34ba6be03387e34a6a..1f3b9e6a8743cd4353fd218913ae237bbbce1363 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE.class and b/libjava/classpath/lib/gnu/java/util/regex/RE.class differ
index 46de3c96815136574973bf4df60ccc33c5b8a0bc..0f064ad55c966ab250f47a33903907e96a690f33 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/REException.class and b/libjava/classpath/lib/gnu/java/util/regex/REException.class differ
index 46830048af89ef0182e6bb897f4e975c00334429..ec202a95ea1c65e8106bc5d745dff0d513a1fea1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/REFilterInputStream.class and b/libjava/classpath/lib/gnu/java/util/regex/REFilterInputStream.class differ
index aa08c348abcd156f6bfe1da753ff440509a9f44d..b2ba9e4b0881fb33a0359f068ba21202da233645 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/REMatch.class and b/libjava/classpath/lib/gnu/java/util/regex/REMatch.class differ
index d3f9af9c84e5b5ac09e45b2334ddb06a614a68ed..4d610dcbfbbc994e5d253760f7079da00f42ab01 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/REMatchEnumeration.class and b/libjava/classpath/lib/gnu/java/util/regex/REMatchEnumeration.class differ
index 6c630cb677b69afa7d91d876f22ea5ed249184bb..b73819e5c469fac8571bc10f231f2581765c67fb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RESyntax.class and b/libjava/classpath/lib/gnu/java/util/regex/RESyntax.class differ
index 4d639446e7deab5901995bfbbaf250d21db58d0d..b6b04cd17f75752d13db1a26a18320e7fbd5c1b7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/REToken.class and b/libjava/classpath/lib/gnu/java/util/regex/REToken.class differ
index f41668e1ba9a92d21e355f92c50f4bb304e6e920..74795b4563b7cf70e9c2401663b20b47e73ea1a6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenAny.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenAny.class differ
index 72d37f4d897aef88d70b2b1846333dbda9e1c685..67b1e92e6085e96f55e02687321fb963b92e9f5e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenBackRef.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenBackRef.class differ
index f2804f0935e5009ece891f967509f3290cfcc379..ca87498d47e3848aee0881d3a7a555511c1cb669 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenChar.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenChar.class differ
index 47cd3b90e59586dc9587a242e8fcc3e4c8531e8c..bf26787524b68e7bd1a1c698e2c3f59ad7454dc3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenEnd.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenEnd.class differ
index a5a3db55d131881bebee2c2203930c5389e185e4..ef4ca644db810348ebe55961c7f386366f5dd39f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenEndOfPreviousMatch.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenEndOfPreviousMatch.class differ
index 15fd74c5ad2d270db6b8475ab2d60ad79e1e16b0..4b86e1dc1a4c40bdc7cd0c4509f55e5eb047d586 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenEndSub.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenEndSub.class differ
index ae764c80b6c76d2584dd6e7da2e298b61ee43dd9..ef4b840eeeff7375363856d517edc915df8e7a33 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenIndependent.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenIndependent.class differ
index a77b64b1951d12a210410bedd777a292c59b061a..79b4ca167584ca5e62d201c53a44a8fef6e096fd 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookAhead.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookAhead.class differ
index 9c8b3a3deb75e6918ab67959c5b1e3d16650dd51..15fd40efc3987fa87adfe1437e365c77016b6d94 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.class differ
index 3e09060fd270af8a5c2f830c38aa6694258b7955..fde86c934758c204ac15275a753ba84c755a69cf 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind.class differ
index 6426e92eb88a13593a7989dcae66ef5cf7a08d41..eb3b70ef1d9e7b79bf0028c660637b759ed69cc9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class differ
index e9747317af1242d2d72a1959923a929fc8847ff7..0b8ad8956702da0cfe6bc56e6481719f6fec47b7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class differ
index a23e960f04a1f2345bf6a59f9294e3e6e262c927..89302d3a250eaf336cb67bbe512d215f69369ce7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class differ
index 86b3605ca1347af67b8a2bb67fed2d04d6c8e694..477a6c4ce672335a05a8524683ef493158c76055 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class differ
index b54a750ae82af68ac9f48dfdeabadb716db6bf71..bfbe101947a929bb532609344fe51d7ff1128bda 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class differ
index 00fe6e6d4e8d133709c35f566f1b2749698f32af..02546e0de44a926c81c18d7c40d3114806f88e68 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class differ
index 9aa8ae42badd005cc5039a70ae520989f88db396..a58e6a34ff6ccf7c0d6cabaf9df61e63d33e0a20 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class differ
index 317420b764298e76b061f0974af369def6e4c2f5..fed279b24fab8e8707c159ac6376e7cb872fe712 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class differ
index 00c99bd289de30c76779adbb6c803358dd2f5ad7..60459f696747fb5496235d56e9eada82b9bce066 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenOneOf.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenOneOf.class differ
index 6db3c463cf1740195d91ec9eee01b13f92c678ba..19637b1eaf2818cdd872828ed845e2c79957fd91 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenPOSIX.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenPOSIX.class differ
index e5ec4b23bb85224b44f75217b1267082b0a4e972..4fce8ef78132f3f99f0ae5c329440f86c30abfb8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenRange.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenRange.class differ
index b265e510f45248f9dd116ed0350d0fe343a26e2a..e139579a4e6273318ae98c5635fe0ae7ac9c95c3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$DoablesFinder.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$DoablesFinder.class differ
index 5deb76f61db95c6846a3cb46adb5ad64a272d936..0db04c32539a4b846f12c608aeb9806df18196f5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControl.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControl.class differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.class
deleted file mode 100644 (file)
index 6e0260d..0000000
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.class and /dev/null differ
index 827bfe73d54400d8ede104fe283b6b52069d77b3..8e8a99eeb8ef0efb5607f73a22a9d8322eee4ebd 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$StackedInfo.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$StackedInfo.class differ
index cc1574552aed8d21e1653d8a2d633fb0e79181b1..5aed9b043d36a273c1a6c9025f1f1bc858821ef1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.class differ
index 40629db5d10b944f07d1e170f67c42ed7cb3cd07..6f19726faed089710f695eb9d065c7008041c73d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated.class differ
index c1bfc44dbf2f2688781e695d4f4c1a383f7c64c6..7a8cdd729a3d635ae2a1194b0e9ff43d48478c0f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenStart.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenStart.class differ
index e83e5fd23fe0e7b49c6c5a03d74191b8d87dbca9..108f71341b0494dd76f3e35cda2ed2c6d5e43e3e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenWordBoundary.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenWordBoundary.class differ
index e9684862f5338eb238230fc0e797b2e4e29ae4f5..ad6dddd0fa1d1b7f761d615b2f767e61067031bc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/UncheckedRE.class and b/libjava/classpath/lib/gnu/java/util/regex/UncheckedRE.class differ
diff --git a/libjava/classpath/lib/gnu/javax/activation/viewers/ImageViewer.class b/libjava/classpath/lib/gnu/javax/activation/viewers/ImageViewer.class
new file mode 100644 (file)
index 0000000..dcacc9d
Binary files /dev/null and b/libjava/classpath/lib/gnu/javax/activation/viewers/ImageViewer.class differ
diff --git a/libjava/classpath/lib/gnu/javax/activation/viewers/TextEditor.class b/libjava/classpath/lib/gnu/javax/activation/viewers/TextEditor.class
new file mode 100644 (file)
index 0000000..0a15fdf
Binary files /dev/null and b/libjava/classpath/lib/gnu/javax/activation/viewers/TextEditor.class differ
diff --git a/libjava/classpath/lib/gnu/javax/activation/viewers/TextViewer.class b/libjava/classpath/lib/gnu/javax/activation/viewers/TextViewer.class
new file mode 100644 (file)
index 0000000..693f878
Binary files /dev/null and b/libjava/classpath/lib/gnu/javax/activation/viewers/TextViewer.class differ
index 6b37720404e44c64dd2ede6ed5438bc8f1bba51f..5314fa1660d2686705bf01558ba37a6ac8ed1040 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/assembly/TransformerException.class and b/libjava/classpath/lib/gnu/javax/crypto/assembly/TransformerException.class differ
index dc48fc22ee42c173b1feec6f070c23a3e7d6daed..27ac57882f5bc75d71efa78f4d5a055f45cc7320 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class and b/libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class differ
index 39c15bce981f2f5c6e0bbb576a13b3e6de5f1cad..49fb95e2feab0ddf9b1939293686e7e06abf7f46 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParameters.class and b/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParameters.class differ
index d56655ed3a6e45c8d4f679e07101bc05c2d67e43..b9320ded98671ce221f10635ba54b0e38fd38ee0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementException.class and b/libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementException.class differ
index f608e3f6363b1970ff07a38d883323c4ee6ecd10..daefa752b8da8c476a4dec663eb50d3918d2b181 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/mode/BaseMode.class and b/libjava/classpath/lib/gnu/javax/crypto/mode/BaseMode.class differ
index 8c8468361ff6c7f42d12daa9ebeabfcefd380628..f26e749961db90afadcda0d3e3ac087517bedce0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/pad/BasePad.class and b/libjava/classpath/lib/gnu/javax/crypto/pad/BasePad.class differ
index ac4fc0bc8c4ef0572af1452f004d6ca46197ffb2..179b8e36a805f918cae95d01a89cd45db824a851 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Util.class and b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Util.class differ
index 51523b5a7a0aac36f73ed66b2ff4777598efc038..230604bf8f13f45215ed657d3c071a8cbbc3f3b2 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/PasswordFile.class and b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/PasswordFile.class differ
index b7e4cc00b58fb81a127d29b6133321fee61ccf4b..9d4c8108565d3bdcb82f5b1a3aa5d3a2d3e860ae 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PasswordFile.class and b/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PasswordFile.class differ
index 928a8694f146a4ba1725461f0a1584121dfa814d..d9ff9cbc9a8f5f11e0287129fe15fa6592cc9f9b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainClient.class and b/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainClient.class differ
index e4dfabc6a3ae963093b89a6bc84e803c2026ab3d..54e69ef8eed2edc2234ffb51411f4d381a1b7c27 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/PasswordFile.class and b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/PasswordFile.class differ
index e20ffb6333fdeda6b65aa0c8e921af87a9bca369..b8fc56d34fe2a9ca05a8a4f26ab09fdb8ca0feda 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPClient.class and b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPClient.class differ
index c81ddc2ec85e67b8b0a0d1bd47a83ad29ea0fef1..7793ac3cd9437b8e81c7935293cb2403fbbb086d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPServer.class and b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPServer.class differ
index 9757964c614dc73c37c381013c8598e81f045eb9..00670dd66dac048a5cd576e9ab1b10f321d6ac8b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ServerStore.class and b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ServerStore.class differ
index 23934b7a076a5da37e624b0e9d0253f6c3765d59..6d411061472eff68db26d0f4f4e1a8a73bdd4bcb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriter.class and b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriter.class differ
index d29770d6e16ef68f4dfea497d985d985fdddd046..1f010f48ec42d96079eac7164474d6e04881d900 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriterSpi.class and b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriterSpi.class differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Server$LazyListenersHolder.class b/libjava/classpath/lib/gnu/javax/management/Server$LazyListenersHolder.class
new file mode 100644 (file)
index 0000000..a4c3384
Binary files /dev/null and b/libjava/classpath/lib/gnu/javax/management/Server$LazyListenersHolder.class differ
index 0ef1b5cb0286941ca414afaa69cf00e1b2e8b2e3..de23feddf63f359a2972aa77d8d22d1ea5b9f30e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class and b/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class differ
index 6081214dc6a54a14adeca726c39a22156bb0a89c..5bad91cb321071614db2564e29b28fda7e8649ec 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class and b/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class differ
index 86f3ef079540bb96e015affe2440460609315248..9588e80001a993d2a706c6264d321998b2a3bf5b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class and b/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class differ
index c31cffe1ddbce759a6cb0ab8ee3a76a931c2a1e9..60927a5494ee5f896b4dfa0b676c8dffb63c000a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/management/Server.class and b/libjava/classpath/lib/gnu/javax/management/Server.class differ
index 4572fa4fa45a62f2daa300687a9448da941c358e..eefd7a7cfdd7809482ac87d83c5e045692ae069b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/management/Translator.class and b/libjava/classpath/lib/gnu/javax/management/Translator.class differ
index 77c8c4c5f6b88f34005052981442e82890ecb4c7..548db71c0e527c817b2fec7802a414edc2b6a417 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/naming/giop/CorbalocParser.class and b/libjava/classpath/lib/gnu/javax/naming/giop/CorbalocParser.class differ
index a264643bb7810c6398cf69c98c3fbd665d85e2db..6acf5a847121b2e8badeae2068bd636d1ef98cc3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory$1.class and b/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory$1.class differ
index 3a731ce82248d9c82761cdc450f4d983458a4d8c..cbb2433477e9445ec2e64c56f3572414d6d355f9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory.class and b/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory.class differ
index e668e2170695a0537c278d0e93fe0dd349f5bdee..758b7f0ffa742be75e16884ffe2572a572c8bcc6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/naming/giop/ListBindingsEnumeration.class and b/libjava/classpath/lib/gnu/javax/naming/giop/ListBindingsEnumeration.class differ
index 0232cc693f8b11a796bf1ab00e7840313204b898..56da472f8f004b2c523c29e281374fc597fe6bab 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/naming/giop/ListEnumeration.class and b/libjava/classpath/lib/gnu/javax/naming/giop/ListEnumeration.class differ
index 778e041966106d043a9aa32966c6d8e79d3a1a2c..46238323016727db7f9830ef8edb717a818c27be 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.class and b/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.class differ
index 23f9833499e8c29e9fd19bc16cf0c8b1889b1098..e7ec8c08a4718be5ffe08788dc29dd31843975cc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName.class and b/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName.class differ
index 71ce1ad77e01e8fd1cb3bc1ab00a086f1f7e3a3d..975b3d74222ac66ef7763d54db5b97f32d597d3b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/PrivateCredentials.class and b/libjava/classpath/lib/gnu/javax/net/ssl/PrivateCredentials.class differ
index e9803984522d968115bc68d82510c683020a9175..d21f88b0d82df9f9514f6350ce270a9bc3d73c25 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/Session$ID.class and b/libjava/classpath/lib/gnu/javax/net/ssl/Session$ID.class differ
index fce5c3c40d86178317b5a796df4a8336b9e51f69..efb1d98edcaf28335d8b496ad1b31ea8a46b4da7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/Session.class and b/libjava/classpath/lib/gnu/javax/net/ssl/Session.class differ
index 8c915a66d5f096e1914387c195301e9ac255b742..7060cac3bd3ed9f3ccdb7d3af50fa61fbee41afe 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/HelloRequest.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/HelloRequest.class differ
index 9f0a629f4f7b41ad4b602199a004b3f6cbf7f9d4..cfa4d1346c6c711c38f25e1baae4ca97f9f2f963 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$1.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$1.class differ
index 5368b25724321597381bd9e26fefd912dd4025da..970d3cdc0449d9a48b63fd7f4bc6ad7f397a2bca 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$2.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$2.class differ
index 663d50bcb4da29ea09c74b0618a76a4c933ba22a..d72c74c681434c9cb31eb0e34b9f02b031ece532 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$WrappedBuffer.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$WrappedBuffer.class differ
index 678d1487ff7abed7b28862316a4ab4c3f12e2085..c410ccb56ca6a04f7bb23659e5fd842028692765 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util.class differ
index ef631bbc2e260e75e0fb717ec78e3bf26f37e0df..e23fa9d15a202e737cc546b9cd30fd017f1a747f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class and b/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class differ
index ce51861aabd2e9fa805f7fba16ecef334b55064c..95b93f0f92d426718898d5eb9853f93cb60c3624 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class and b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class differ
index 6971b3df46752e59b2388d262f28c7b81bd13685..9432c307eb5892452df0865a3a48850db25ec2cc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$1.class and b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$1.class differ
index 5389f3d884b2cac00d448dbc5223ec1ec8ac78d5..1a4ed44b0f9a78f23111997b1dceacb9a332a308 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$2.class and b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$2.class differ
index 1e31584f398451cb29ca2a1558f6cea9392b402d..e5f3cde0703f696b880033bc5d508898ab5c8201 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities.class and b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities.class differ
index e387600a32dbe0432033a9df4a6210b7113ade04..f1ff81e0c78cbcb487b90fc4f94f0eb4bfc6dc8c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/security/auth/callback/AWTCallbackHandler.class and b/libjava/classpath/lib/gnu/javax/security/auth/callback/AWTCallbackHandler.class differ
index 751608e5faf9721af4df6108894d0eb3b9c9d280..f4f76c8e89b6b6d4ba49fe7d58f98ee226e72353 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileTokenizer.class and b/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileTokenizer.class differ
index fc3c438b46960fdf0722f22d1f87fb3f10ad02fc..899bc6e8339d5759f244fe15d21b729cc1b3fffb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class differ
index 5cad2295badfcb76c4adb1f67addbc3234a2c547..5408b42f6650acdb4f28465c1ec49ab20672302f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator$hTag.class and b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator$hTag.class differ
index db700243b650eb574472f3637de73a8ada71754f..b8ed2c065c5cb1fa733dea24f39155df3693d172 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator.class and b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator.class differ
index d90cc458729559e4426488b79a0eb68cb4353e90..a6351cd5acf40590db58d2e76768f5d9273a715a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/list.class and b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/list.class differ
index f551dbf59770532e101a42ecf697ac375e270ecb..80be6811af87d1db86554bf3a3ba78b3aa8f62ab 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/node.class and b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/node.class differ
index eb2767df7f2047fbf95b63a7d96723193f360f31..3d6b595ce9b8a7d092f2481de21202dfa0e24226 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$1.class and b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$1.class differ
index e6f89ee84c12cb4a6fe78af9db6590df9b7bec3e..e25727b1acbfa1d5812805ed74d07ba371d2a237 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$2.class and b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$2.class differ
index 6de4c8342fd78ab9286a6b34200abc29f5026417..785f0a54fcb6676ae519aebc10c39ee191020231 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class and b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class differ
index 5a2a8e73058f75b07b3b546dcff6a02306f4f6d1..1282e66e3a95f93b4b46d5152d2c42808112404e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomAttr.class and b/libjava/classpath/lib/gnu/xml/dom/DomAttr.class differ
index 07a45dedd84812af42b9ce24736846a4025318f3..c7af6ab34d28e661359e029d959813b0ce2e5819 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomDocument.class and b/libjava/classpath/lib/gnu/xml/dom/DomDocument.class differ
index 4c7d97f5afc67712ac474a2b2ca562bdfbb79112..b081fc2df2b3c50538cb333425a498653644be7b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomElement.class and b/libjava/classpath/lib/gnu/xml/dom/DomElement.class differ
index d8932f652b7f52edb0d8038c3406b5dcefbac782..f1eee7e1e1fb783c9bc5187ab2b3f012ae22f514 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomMutationEvent.class and b/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomMutationEvent.class differ
index 860ab7772a7011d4bf8e444b8585290f26211b7b..4b45d8e609970047928e41b31969182ba9057354 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomUIEvent.class and b/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomUIEvent.class differ
index a2f853f54ac0ac3f22f470477982a4c3c11dc204..c99968df2dd16ca56f3829abeb7b9e7d02104130 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomEvent.class and b/libjava/classpath/lib/gnu/xml/dom/DomEvent.class differ
index ef4159ec9f506a303029568793fd7a7601de69f6..3135f87c905dd57016b0fef3f8fce4e8f4590ae6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class and b/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class differ
index a01897c9416e0fc207fe4bdf03ddf4432136df42..aefc7d181668e190b26c2ed1eede29f087ddb9c8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class and b/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class differ
index 9c50f2b1af7abc738be67c2d0cc906d61bbb4434..8a6543408c6f7d2bf1d604c2bb6b911234ac7cfe 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class and b/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class differ
index aef279fcbc8b266cc0930ffa830bcc920371ebdc..8bdaa3cefefb2a8b4deae174be8e0ca7ac7f55e0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class and b/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class differ
index cf1ae634f87ff132a0f8549beb68e8c0ed68ecf7..5b3f6f6ee2dcd2d9cbba68d1b73f6ca582565315 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNode.class and b/libjava/classpath/lib/gnu/xml/dom/DomNode.class differ
index 63a6addf9d213efcf34d7141a64974f9c242ef38..022c857ee011770da127572e17e2e839d8ef9467 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNsNode.class and b/libjava/classpath/lib/gnu/xml/dom/DomNsNode.class differ
index fd371db59cbdcdafef723a36a516ed7e5fdd04e9..b321cabd69e86ee766b2a8d93cb0556bb7c56497 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomText.class and b/libjava/classpath/lib/gnu/xml/dom/DomText.class differ
index ebff3b21f07468df7037f7cb8387322f61b67022..fab560ded131b7109db85b635e2c4a4ce8b4bd0c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/ls/DomLSInput.class and b/libjava/classpath/lib/gnu/xml/dom/ls/DomLSInput.class differ
index 1298baa24d599b640438de987e1a8ee68c0e2f8d..106500560bf870280a0f093456dd98cdcf433b46 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/ls/DomLSParser.class and b/libjava/classpath/lib/gnu/xml/dom/ls/DomLSParser.class differ
index 34ee47d5329e5b0e1db7fd69bf81dd38428c0668..9a2fe327ca28e9aa05e9cc94598ce45951b33240 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class and b/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class differ
index b9bde45fbdcc6e0747d869b0c5e89ec00583a8d9..720f64fae16389738e52bfe7a5fd15b84e733dd2 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeAttr.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeAttr.class differ
index 1c746262886eb3074c07e6ac13106b4237843214..13be6734b6b9b325a520eb1b92bcd8e1b45488a5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCharacterData.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCharacterData.class differ
index fec965957a8ebd68392ef6935ad72881d9d1b8ce..54c104d2c1431c3b12b6e9ee5320fc531d61aa33 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocument.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocument.class differ
index 0ca7bd4c5ef784cf4769a8ae356af88d3f38cac6..e7d5151b5b90f2d49fda223c2fddbe080cd7e837 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentType.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentType.class differ
index 8e398a215d88d1fc2b3ab1c041c97c8195714d1a..c48ea1bb020f066e58da0c760688c9bdee93e99f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeElement.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeElement.class differ
index 24197b0b881e4d22732c09f3b09c2a2e8d2c5265..19890e185621eaea9278ce124562deb3b8151b95 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntity.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntity.class differ
index 3f3b6f30f9968e6d4ae52c1fe6fb38ca99989d07..dd101b69f87792e152ab1d1be996ea6fc280f304 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNode.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNode.class differ
index f6b5d11d411f337fb36afdca656511544a024a90..2dd2e8e4dc15df8d34af208d8fd026d7df3d945b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNotation.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNotation.class differ
index 7e0c32059f4ee06b6e4d0c9d4935df4bff954a01..66933798ba2cfa0134ad6dbe51caf05286249fcc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.class differ
index 79299bd1dc4893e111d9730f04eed8d95020ff12..8ddaba19ed5edaa09ca905f7816195a1b08ecd85 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeText.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeText.class differ
index 3289a5969c49be84edd77c9d0e6c4893af888fa8..75b0bb488d1978ecb507bc0281bdc222db71eb7d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class differ
index 5d989edf2b7ef2aed3e126b8a4a2d6b2b095a17d..0453ee9d64e477e3d5b4c9adab5d704b7dce61b3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class and b/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class differ
index af7afc820b4393e56d5ddb02b790cb98ec2952b5..7e64954f56de01c4d4df45c5103dcae3d7a414de 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class differ
index 21af86839551375a5322f00fa3e023f91ed02784..45f6ab83b811484f5acbb0377d1bb8929b0b52ee 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class differ
index 7ea4289dadeac103a9865769252fc6a8a1857d09..f0ca4f002952f4a2172aadcff030b18e8cd3e45c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class differ
index 15ca13ca8a380cdc720dcab6b89652fb863c0a7e..86cba0fe9f4076e399ae37c30dddf7666bd4ef56 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class differ
index b9a9d7db78db41971eb6cf425a919b19d6932bdb..cd7acfe30cce52fd6b82430476b576c8f7012ad7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class differ
index 277d09631096a0c11cc8c4486416cd3778577058..3c17511cd3650207b2571f2e5fc3631df8e932ce 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class differ
index 756e31153303d90d08c77851e281c23098faf6e7..5eeed5aca99e8b2de733e3ba233fcee5ec97ff36 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class differ
index 1beaf13fd1087a0074797a5814f9221d03f5ccd8..0275f802ac7ee8c9cd1e9c1ec1afdb04d2747ea8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class differ
index 8921d02b9b4093bbc9312918ee0d5bbdaa9be79a..e2d9b966367b154050addd2a9c5d053c7495638f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class differ
index 0081e42cb028e32fd9ec09806f805a22e2d4f33a..0a37ec3d4fcc8d863225b12c58be9ab4245eb13e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class differ
index d3614647c116adca81840752197065a578864225..28888f642f6cb0850b43e951c2dda9321d47af39 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class differ
index 88a6803d94e027f3a91d8fb1fbc13aa910ef5703..f9f823ad36b0bcacfd6d71296805bbe291056762 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser.class differ
index 6a14d1be698b8c013c314674a1ea28e691bb1f9a..a94115bd3bc3fc00716cc55a84e047a5e9ce8ad8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/AbstractNumberNode.class and b/libjava/classpath/lib/gnu/xml/transform/AbstractNumberNode.class differ
index bb84b9ed7bb482a84666800e29b16c586546d324..d6f87597593c1ad5c8d8297c31cd180064e487ca 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/ApplyTemplatesNode.class and b/libjava/classpath/lib/gnu/xml/transform/ApplyTemplatesNode.class differ
index a73cf7ee874bebf20b13fe7fc94b5d084d97f775..fd1a2ae1bbd5872e86bd7e51333765da9ce25f2d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/AttributeNode.class and b/libjava/classpath/lib/gnu/xml/transform/AttributeNode.class differ
index 70aa63e6e096d28125c38ab4a53a2056f5baeb93..c27e72ca97f00f07b3e5dba7764d392993893333 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/Bindings.class and b/libjava/classpath/lib/gnu/xml/transform/Bindings.class differ
index af045b2c671aaee45455f7c48770c3c5a77f75c7..c4c27e122df625bbf98eb0a6159218366c98d77e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/CallTemplateNode.class and b/libjava/classpath/lib/gnu/xml/transform/CallTemplateNode.class differ
index fa8495e5fd63addbca59fd738051feb1efcc2b0d..2b846a62abadb69091a15b7ffb1de89972b75982 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/ChooseNode.class and b/libjava/classpath/lib/gnu/xml/transform/ChooseNode.class differ
index c74f384beeb57ef88eefbea77ea4ddf7415449d5..4346c7442f4b4aa6d6215d6131afcd468916b51a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/CopyNode.class and b/libjava/classpath/lib/gnu/xml/transform/CopyNode.class differ
index e15bc898a51f3733fd2c8de4e485a60a41e27ac4..17a49703854c0f619d0650ae56df7fdfd8940bd6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/CopyOfNode.class and b/libjava/classpath/lib/gnu/xml/transform/CopyOfNode.class differ
index b6f5f4ae90e5047b41228cd34dbb288a0113723e..8ee094a4de3341660d3603a26db94e2b49dac8af 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/ElementNode.class and b/libjava/classpath/lib/gnu/xml/transform/ElementNode.class differ
index 1ba63386b77d9d6802c403278a2519b520a9ef2b..a7c7b367b8f681e2e3b0d77949360036e3cb98e7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/ForEachNode.class and b/libjava/classpath/lib/gnu/xml/transform/ForEachNode.class differ
index 4abd1d272a0e9eec29f507c233dc0fced289d30f..c9802eff1bcb7a37c7507cc3b9ef8dbcef75bccf 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/IfNode.class and b/libjava/classpath/lib/gnu/xml/transform/IfNode.class differ
index b07186678dbb834f9517c744ea40bb2cda920a1b..bd9d14e449beaa3f8345f7d182b6c76c39cd8914 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/MessageNode.class and b/libjava/classpath/lib/gnu/xml/transform/MessageNode.class differ
index 7352637c78f16372f2215d7223fc1499bea43a16..ca0c63cb98f9fbf52b6c6374a96ed1cb740c41da 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/ParameterNode.class and b/libjava/classpath/lib/gnu/xml/transform/ParameterNode.class differ
index 9ce2b35e6bd197d404e6b28ce3a96de8cf5c1ca3..122424fe59e02bc4e3347df6aa097a44782ea709 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/ProcessingInstructionNode.class and b/libjava/classpath/lib/gnu/xml/transform/ProcessingInstructionNode.class differ
index dbcaf406225e6cc44de30dca08322237a23a3b60..b8ba353ce24e7056b2dfb51291de5425fb81ab73 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/SortKey.class and b/libjava/classpath/lib/gnu/xml/transform/SortKey.class differ
index 406c9d5f9cec68d20d69d78c9c6e8ad2022e2cbe..3371054e0dba9a98e0d037b43facc26e1f854cb2 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class and b/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class differ
index b7f401dff947a413d04db8c7d133cfaa17018e07..1810ed921623c5e5a803ada328cef09154131092 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class and b/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class differ
index 693eab11c7404fd717833f23ea615bed6904e254..2be0fdcb65286f0462396ea780eeb2cef663248e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/Template.class and b/libjava/classpath/lib/gnu/xml/transform/Template.class differ
index 507c38f0d28b001421cd7ba905aa7e12c9ce9192..1c4116aff377ba2c89b88a18a4f9ce7dc3059eae 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/TemplateNode.class and b/libjava/classpath/lib/gnu/xml/transform/TemplateNode.class differ
index 34e0f74af369cd539d84aa1b3164dc49dc17aa9a..cc879207183fbb93c8a93992858ba8ee956ce607 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/TemplatesImpl.class and b/libjava/classpath/lib/gnu/xml/transform/TemplatesImpl.class differ
index dcea7b96ef5250f5d0fdf514fd5cf7168ab14642..5c1122f7bbd03c3d3a867af5fb72cbc0558a0c69 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/TextNode.class and b/libjava/classpath/lib/gnu/xml/transform/TextNode.class differ
index 55db4fe5ba1f783b61a497ad7a8bcaec2e1b9a67..05c1284c9fdcbf68e9dda247faa3d9167c95ae20 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/TransformerImpl.class and b/libjava/classpath/lib/gnu/xml/transform/TransformerImpl.class differ
index b66ccf7f78fc438f5c7e3018ad703b71d2a835ae..8785f2ea73dbaff7ee17e923f3c46d880407fc94 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/TransformerOutputProperties.class and b/libjava/classpath/lib/gnu/xml/transform/TransformerOutputProperties.class differ
index 470c75c99fc279ce0a51d0d97fc652bf045d7e88..263c92358930c5eb174cae8d8b7d38a59d770937 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/UnparsedEntityUriFunction.class and b/libjava/classpath/lib/gnu/xml/transform/UnparsedEntityUriFunction.class differ
index d583dcfd35e92ed1dbfe63fc25d4df26dccef571..110db7ba6bf5cc31947025cc682fa46d85e9c50f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/ValueOfNode.class and b/libjava/classpath/lib/gnu/xml/transform/ValueOfNode.class differ
index fccfca9b54e957df5f9314dfa084098657ddafd6..4f4886b7e5749d053e3b4a30367bd83c0b2e221c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/WhenNode.class and b/libjava/classpath/lib/gnu/xml/transform/WhenNode.class differ
index 2eb3867b94ed83c9764ec74c36c7cea1c7c470c7..1baad2f6c468a9397629451061641adb15f4166c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/XSLComparator.class and b/libjava/classpath/lib/gnu/xml/transform/XSLComparator.class differ
index 064742c935a5b7fb5c9a94e0b77dbb7c22e6d59f..9d4fe55242d0d5657c9792e3d3d7ff9f71cb9db9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/XSLURIResolver.class and b/libjava/classpath/lib/gnu/xml/transform/XSLURIResolver.class differ
index eb178d755fbdae883035d4e0c5a820fc5a31fccc..1e83d31706285e9b9605b675ac19d1889a6b7649 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/util/DoParse$MyErrorHandler.class and b/libjava/classpath/lib/gnu/xml/util/DoParse$MyErrorHandler.class differ
index 7f87a146613f4714faa88290fe04cfd48f1f6751..c656fd56ea545adbfa38cd6341e7e5b4ac0a0c04 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/util/DoParse.class and b/libjava/classpath/lib/gnu/xml/util/DoParse.class differ
index efeb4cbc83a977d436a6b6f39237572b4fd931cd..2c41633e43d482a5ba624d4ee28b01f26e27f03a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/util/XCat$Catalog.class and b/libjava/classpath/lib/gnu/xml/util/XCat$Catalog.class differ
index 3d8b904cbc51516cbdb3df96da1ab5bb6c3e27bd..8af5791b6f4255c38b63e42ab29d7e044a130f91 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/util/XCat$DoneDelegation.class and b/libjava/classpath/lib/gnu/xml/util/XCat$DoneDelegation.class differ
index a603a84759f1de854fe34008e278294035f05d61..2bb8f572ebbd55ae683f98f3685e7b25cde2d2c4 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/util/XCat$Loader.class and b/libjava/classpath/lib/gnu/xml/util/XCat$Loader.class differ
index b80b15b417eb7e27743e05b41df3fca850e4773f..c558c1a34ecefbc599b41570a7d2063565d331b3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/util/XCat.class and b/libjava/classpath/lib/gnu/xml/util/XCat.class differ
index 65ac2d0eb621ac916c4673c4542d5a5c1bf651bb..7ccb56f9b59a22d0029d953151fd137f2e0102ae 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/util/XMLWriter.class and b/libjava/classpath/lib/gnu/xml/util/XMLWriter.class differ
index 26034eef8e154c7f332c266355d848a41e1f7455..f1a8a34f721ab42bbba6332b43eb482bf2fde538 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/EntitiesType.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/EntitiesType.class differ
index f0a0dffd7060e2bc60b9c599086621dbc143954e..0c6e17f14a42d8acf4360b1bb0468b4504753198 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/NMTokensType.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/NMTokensType.class differ
index de7f2fcb68477d515a268acc3c941820eb378dac..652ff6418d5da2deab4f498eeebd1b2f23086ee3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/ArithmeticExpr.class and b/libjava/classpath/lib/gnu/xml/xpath/ArithmeticExpr.class differ
index 960604c8314084e1ab3a0cea6bb089c054dfafb8..f07b5333452b37962f89a200af88c5e58b48e079 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/BooleanFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/BooleanFunction.class differ
index 361d12464db6d907057dab9a11838f5b3e28a430..02a47f47396f58e662868b9eeef99be62225159f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/CeilingFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/CeilingFunction.class differ
index 4c706a233c03eb3f9927d3be1f2815ab243219ca..fac4294d53b24d93d1223805ae6d872c56556435 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/ConcatFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/ConcatFunction.class differ
index 5fb6023a045e244bb0b3185fbf44d96e9ebfff52..0d43e27e245ff66a2077fa2265aa90bdf2703379 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/ContainsFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/ContainsFunction.class differ
index fad78cae443d5f88db9cacbc208fb251076420eb..05f832f2c457f141577092d8271c07a6bb27f7bf 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/CountFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/CountFunction.class differ
index 8b375856f4d3796a58f13b1da54339af20c64387..2d192a3f8312a140b5111acc1ac6997accf152bb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/DocumentOrderComparator.class and b/libjava/classpath/lib/gnu/xml/xpath/DocumentOrderComparator.class differ
index fb3075b1939a92cd0474a31b91f1fee4cd50eb00..896077421677e530af5f070d5340d73080601a82 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/EqualityExpr.class and b/libjava/classpath/lib/gnu/xml/xpath/EqualityExpr.class differ
index ebf27e41d19e0202c2f0f1b401a1a4919562d1a1..d09ed205ac89a4dfdc8ab50f26b4b1841aea6145 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/Expr$ExprNodeSet.class and b/libjava/classpath/lib/gnu/xml/xpath/Expr$ExprNodeSet.class differ
index cc1e8c7c22aa4a5190b6dd5928a05a8cd4225e5f..5553fcf6e31da744c34165fae4e81f9aea0c597b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/Expr.class and b/libjava/classpath/lib/gnu/xml/xpath/Expr.class differ
index e630680de5c351cfa04ca47d48973a5f66319f3b..8f95ae0de22c442f715ae92de9e7a570a6af21a5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/FloorFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/FloorFunction.class differ
index eb4c96e1c393d5cdd1996531344e027ff293ca30..7e7c47078f124847f599a9a1fca507fb3240020d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/Function.class and b/libjava/classpath/lib/gnu/xml/xpath/Function.class differ
index e78249cf237601e6abdf6cce12d3b03fd9431207..a0578b03e7a8bdd8ea60fe0f74a65bff58525e8b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/FunctionCall.class and b/libjava/classpath/lib/gnu/xml/xpath/FunctionCall.class differ
index 701fe7e5d19fb43d55e8a8c510eaa1425978401f..51b3a307d1611bdd643eaf3616d104e66562e5e3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/IdFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/IdFunction.class differ
index 454957c448773301a176567a325746c6f4da1646..b9f00d6a0a96d245743b4d24e6bc01808d228fa7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/LangFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/LangFunction.class differ
index 3e5d22afd6ceb5c09fd071d591e2e6873196cfd9..d37032d52036990ec05a2ea8e835d3c5b8106eb6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/LocalNameFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/LocalNameFunction.class differ
index ae556d205b74ed8e25cad1f1f3c91bff224646ae..7cf554634279639c060f1307a1f288c6351538ca 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/NameFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/NameFunction.class differ
index d143bfd8dd0b0b9d32a9eb6c31fd8095cc33a89f..57ad9a7362efe1c7baf967b704e6ce8708c718e2 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/NamespaceUriFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/NamespaceUriFunction.class differ
index 8077365c42eb4adb32e9a55cdee049040b45a60c..8cc99c83d7e111fbd100f4cb8bf9c608a1251185 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/NormalizeSpaceFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/NormalizeSpaceFunction.class differ
index a62c05e96466e5ea958cc85ab1fd13490feadd38..6473f2c514c3d47cd139499bc9ddc69d10ea100d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/NotFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/NotFunction.class differ
index 49843d274dd2115f13207b7e4ce10ca9a7034c6c..abe9e641c2848bb52b0437f38fe1d2cb1dcfcf75 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/NumberFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/NumberFunction.class differ
index 3204f7ab7ac12ad1f432808dc8289cd7817f813e..bc9ebf21054097307299ebe6f70042921b2dd7e0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/ParenthesizedExpr.class and b/libjava/classpath/lib/gnu/xml/xpath/ParenthesizedExpr.class differ
index 9dfbb9f355735ebfc0f52cf0c69863972fd849dc..c4f9589fea6d669e64d85dc35584824808f356d9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/Path.class and b/libjava/classpath/lib/gnu/xml/xpath/Path.class differ
index f72433e704e429d75018a9a799ef9d2c29cfd404..09af651230125b8b9ae58c32995404da84e3b733 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/Root.class and b/libjava/classpath/lib/gnu/xml/xpath/Root.class differ
index 69af4c9bc7ec8b827aa4bf6bd8a33d7ba81c31e1..2af9ee5a9b7923f0b0f1f27c095835ae35278a3f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/RoundFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/RoundFunction.class differ
index d31e58ca0ee5f313c357b859f251f87da939a6be..d4899fac1199fc17a0c59def0be3cb96acd38b36 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/Selector.class and b/libjava/classpath/lib/gnu/xml/xpath/Selector.class differ
index e44af9f17ba3891b25c95adc6be3cc0b319b7701..0df9e72d4af8426644a67f25da3a3ba74720447c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/StartsWithFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/StartsWithFunction.class differ
index e2feed64d0482f86d951e6d32e591ff86ffdd7ac..23cf9e7205de4ce36f9d27e080c330bbfe1f7aa4 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/Steps.class and b/libjava/classpath/lib/gnu/xml/xpath/Steps.class differ
index de96161567bde4966410c0e6ded631d9687b3bb0..cc96a50e48c9ffa39136e03018a3926bf27731f9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/StringFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/StringFunction.class differ
index ef7032bd1d9e2fbc30fb55761b44eb46d10300d5..0f7566b0ab5e7efd22e82027672730865dcc5400 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/StringLengthFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/StringLengthFunction.class differ
index df689d64aad803aef205214074e4d8a52c90e162..dac3c106c24d387fd13295e211a78ab7c10af6b8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/SubstringAfterFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/SubstringAfterFunction.class differ
index ccbe7c5fd9322ddb2659c9c9b0c672742eb5fc1b..fbf682ba6f69a0ce9c21aef66dd7a41c89cb8510 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/SubstringBeforeFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/SubstringBeforeFunction.class differ
index 53746375c65b4cfa07865bd26a7d4bf3a6a2e65a..9b6906f6b609bd388c1b4a4c68483d6f2a202e11 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/SubstringFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/SubstringFunction.class differ
index e4fbcbea6c6118295185be6e7c2dcdaf8786b056..9e4c57a79a72d4cee0ba4ffe8404f49025210203 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/SumFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/SumFunction.class differ
index afbe0b2d2a553761b750eefc47d17ed21a3b28e8..fc36db219ed11b198f2c392799ca80369338f2cf 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/TranslateFunction.class and b/libjava/classpath/lib/gnu/xml/xpath/TranslateFunction.class differ
index 1d0f4c3be0f58b8ed1107290cbbd749e44c196cb..d806be88e55ea3b2519dbc03c05935c89aecffa5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/UnionExpr.class and b/libjava/classpath/lib/gnu/xml/xpath/UnionExpr.class differ
index 43e13e0153da9081a10a27504b98f8ae387fa3a3..579dcbd20b4159cce378a75aea8bcb486aa90315 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/VariableReference.class and b/libjava/classpath/lib/gnu/xml/xpath/VariableReference.class differ
index 99015763c7171eb186a2d0a2409fe26b29ba9a9a..b5150523c7a6fe1de9667f487cad96c53b166fc7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class differ
index 5463ec7459e743e63941f9b3ab376f7154e246cc..4f291f59ccd531988e88342c46dce2d1b5dd1a33 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class differ
index def77566450421c14d20f22bea075853e3e561c6..0edc7d84a9473ff6da87c4ff326cead6afe9b905 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class differ
index 210ac236ddbf54c32d217b7ceb3d62b4a7214ece..b31846a4921e1c9d020f0cb9f7e22d60b93b7359 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class differ
index cf416f56a969738bc9f2e57d90a8215d51826dd6..473e6c04e84abdb3631e30fa226b14bb1a2a67c5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class differ
index 39660d055da113c78325cbf00239beb91a2d29c9..e3c6f9d55719d164b93deba84fb99ec87cc28cb1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class differ
index 321c5683054885cbeb8280009267e3084080873d..c3b44a48a3ddfbdb506963b30307f00240bcda06 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class differ
index 3305a4a97e686a3681e36e80ac8f1903cbd733bd..0c7a8b7f551c6eaa6b18b1960262cd0655d3089b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class differ
index a02bc9ac72365d8618a30b34d4449bb8101d8a6e..3befbea4541fd2a7d9e9b0b055d7724d91518f38 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class differ
index c1144a39df7774b096157e3c71c45dd73b06535e..1e4c7558ab9c17e9c5193184b04ff6410a36d7b6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class differ
index ec9063df491fabba3e8577f0dd14458782ba1097..cffbc2891c695781ee14bf3c6bb7432e019916f9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class differ
index 008542333198f43bebc1c84c1339b71ac0d9a3da..357503f75fb0d91016b1902a6d3e644ab28ce69d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer$XPathToken.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer$XPathToken.class differ
index 14b23a30e42d507cb5c9046de5ef0ace97b25616..833824764652bae97321171db6776065e2699cc9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer.class differ
index 9aa4fec23f2bcb49d277df092d663f24a6294413..2747d338ff3acd7a889882ecdeaed56c6c5d6a6e 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/AlphaComposite.class and b/libjava/classpath/lib/java/awt/AlphaComposite.class differ
index 6c5bdeb7565acf653b2fb2ea1b17693ac629f441..80ac9591964f85f9dcfe1d408eb68f5bb44db8b0 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class and b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class differ
index e2e3e879254f03f02233e762137559a317e310bf..80a28f7ba1f40c41581291f62dcaa4a3c6d9bbe4 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class and b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class differ
index 22532323a23c48aae7cb9cc9c5672b73a6fd9def..10a5172d96ec7c59774c8ce58db5047a0ae053b9 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class and b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class differ
index e796a03a7f4bd12840c034d0e2138d5811afce4d..5773bf7576e8bd5b28009468d02635a1673458fa 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class and b/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class differ
index f0857dc8ea3d2d6400478221e574e9de954fef6b..1883e38b9c0eefbece84672da9c482b102456c42 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class and b/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class differ
index 60503e61e1d2382e703b079b07461454858baf96..783f6c5970396d74c5990b950678eed0f37afd2f 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class and b/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class differ
index 90b546ccd3a8bc5e208f638e00b5432ae4358a8f..e9643390f42159f3517d0148697f4ad9ec3966be 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Component.class and b/libjava/classpath/lib/java/awt/Component.class differ
index 5f045ab2123f369c9115b8849d05154b22ffa81f..a65f76aac8e2d13544908a9b975c979c457cd903 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class and b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class differ
index 167660a70ba3aad921bf1f9b24a9c1ec302b01d5..7fc76222824c13779ca1ae10fa99c28e62f02f92 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class and b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class differ
index cd7fd4c64930d3a08cf132bc29c5d8951751eb8a..00faf85300372bb463aa97375fed09c301d57f95 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class and b/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class differ
index 791d8579f0ff3cb816670735951113a24851de7d..63ccd7ecf3f4201334af0dbccdffccb429aec226 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class and b/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class differ
index 087631893fb153a2de73bbae80511d0bbcba9092..a8dfd54058b68f93d9db85d5b345ed9452e1e917 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class and b/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class differ
index c8557e99c45554e42dc3cc2c2333c03576935b34..6e0285cf8a6c082115e809320aa55900c82da1eb 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class and b/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class differ
index 9fd2811aad91576777515d178c0f0e871e924694..c216c2a895ef524d8726c0d56c3cd365838b737d 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Container$GfxVisitor.class and b/libjava/classpath/lib/java/awt/Container$GfxVisitor.class differ
index 73f55656a0f525a8b40b257ac52a93c1f0c999b2..f7d3b8c0104f7e357fe56537dce36f7d00cd4e20 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Container.class and b/libjava/classpath/lib/java/awt/Container.class differ
index 6f8e4779fa2096e37632caaecb8beee813513822..441c785c20730a702c9912f3aee17f36660fbed6 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/JobAttributes$DefaultSelectionType.class and b/libjava/classpath/lib/java/awt/JobAttributes$DefaultSelectionType.class differ
index 944d5ec8af5f21543c72ee74dd280d3c78e380ff..046846e899fdab160469a173dff0f28b2d95b536 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/JobAttributes$DestinationType.class and b/libjava/classpath/lib/java/awt/JobAttributes$DestinationType.class differ
index 0657d71262bc74258029e7f40d436c9f3be4ef32..310cda346d2497218753306a89c9636b370a7b48 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/JobAttributes$DialogType.class and b/libjava/classpath/lib/java/awt/JobAttributes$DialogType.class differ
index ede25d6102d994655ff7d5ca983b514a1ed5511d..9700f78c97529d94e6df6a580f7002e6ed2abf2c 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/JobAttributes$MultipleDocumentHandlingType.class and b/libjava/classpath/lib/java/awt/JobAttributes$MultipleDocumentHandlingType.class differ
index 23984c1520c8c6f911c433dfcf7b4a6277f6a8f1..e0a5292b8e84b8396a1879af98035a2087fe4867 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/JobAttributes$SidesType.class and b/libjava/classpath/lib/java/awt/JobAttributes$SidesType.class differ
index 7aec91609898c243ccb9f22d0718ea26bc59060c..8c3bb978f8ba3605bf663d0678238036e896476b 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/JobAttributes.class and b/libjava/classpath/lib/java/awt/JobAttributes.class differ
index dd9eb3a962e7bb9271004bcc1baef886f92d6b99..9d180d19ccdc2df6b7d15bce20ea716a9339ff83 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/MouseInfo.class and b/libjava/classpath/lib/java/awt/MouseInfo.class differ
index 32f936acfb864e665d8c76da561dfc514362ee6a..4994b29025fcda41cc650a0b7aba66c66c069632 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/datatransfer/MimeType.class and b/libjava/classpath/lib/java/awt/datatransfer/MimeType.class differ
index 2fa8ea42b65b7aa9ad0b6a8af440e04a70503384..8fdce74ca2338a679c4eef3455b687ad839c22db 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/event/ActionEvent.class and b/libjava/classpath/lib/java/awt/event/ActionEvent.class differ
index 08c2ede9db852cb90fcaf41be2bd5528d237a61f..51b83f756e2f7d2457a97b95e42c079ba8885f39 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/event/ComponentEvent.class and b/libjava/classpath/lib/java/awt/event/ComponentEvent.class differ
index b1efe7988eacac2c220f55f70af4ae2ce1b8d13a..e85e0834a002fe6e59ad5b235d0c61c1c3cd195b 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/event/HierarchyEvent.class and b/libjava/classpath/lib/java/awt/event/HierarchyEvent.class differ
index f4fa20c5b3959e40446379aed38a17cb3f8140a4..c7717d7d9c209625a15320ee4247d737574bfefd 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/event/InputEvent.class and b/libjava/classpath/lib/java/awt/event/InputEvent.class differ
index c1889bbb9259ddc2c8dea1e3c9d6a135783dc4a8..4b0c3404b6ac8554e6d14cc35c1a6d40435c6dd8 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/event/InputMethodEvent.class and b/libjava/classpath/lib/java/awt/event/InputMethodEvent.class differ
index 7b2198393409312290eecd5e5951e68d85bac925..27c84936034c2823268a78f5af24ba9c28557dff 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/event/KeyEvent.class and b/libjava/classpath/lib/java/awt/event/KeyEvent.class differ
index 2f6cffea92dbf12cda3e1fb4b63ea390149c9cf9..f0c16e577b95abfd45f1785da59a4ac57fb24dec 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/event/MouseEvent.class and b/libjava/classpath/lib/java/awt/event/MouseEvent.class differ
index 38aa1d6401737e029bf33ba400b6b4aafd3e49ee..33357d5420e89b2cfcab981f6501d2d5d215b942 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/event/WindowEvent.class and b/libjava/classpath/lib/java/awt/event/WindowEvent.class differ
index 5b4117e5c89bc631b5af35240accf5a3cd40a9f4..578b7102487ae7a681c586a0b63ffb3bfab5e66c 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/font/TextLayout$CaretPolicy.class and b/libjava/classpath/lib/java/awt/font/TextLayout$CaretPolicy.class differ
index 09bb71dc8b9eb650b638085c13e29b99f85ea196..09a0d03db2250fc6578c34a1c0ff6238e4d845d7 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/font/TextLayout$Run.class and b/libjava/classpath/lib/java/awt/font/TextLayout$Run.class differ
index 706bedb40d582176f946245a5bfb1701117efaf2..ef367a4dee8ab7932428173bd47cf076d9acbf98 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/font/TextLayout.class and b/libjava/classpath/lib/java/awt/font/TextLayout.class differ
index 534e15f266fdf02eca18db1cc6f63d8db4f2af82..53b92f90694d0b1e16448ae6eec436493a34cc8c 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/BandedSampleModel.class and b/libjava/classpath/lib/java/awt/image/BandedSampleModel.class differ
index 5d5a3c8e1d813368ea76328765e225bcf8415b37..5654d4267bcb02c54038f28f053a76d18189af89 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/BufferedImage$1.class and b/libjava/classpath/lib/java/awt/image/BufferedImage$1.class differ
index dc90bfc626b4ed9994327ca692ba4776259d20b2..ea8d17b44b92d3e623274a64f8be860706f50d71 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/BufferedImage.class and b/libjava/classpath/lib/java/awt/image/BufferedImage.class differ
index 5806aabe368374463e495e9c561716c8ca8a5bbe..7817ed99a14a8f13555b4de82f6206f795c4c3cf 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/ColorModel.class and b/libjava/classpath/lib/java/awt/image/ColorModel.class differ
index e9be93f657ef081686c1b4448251180a9d5b3f04..4838fa2f9af9cde52e0ff2e5abbbf0d98c5594dd 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/ComponentColorModel.class and b/libjava/classpath/lib/java/awt/image/ComponentColorModel.class differ
index a149ac6313549bd86f597e5d49f965953d6f1b32..006220b99a4db64fe9be5bda00ceee7a4f5c8dd2 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/DirectColorModel.class and b/libjava/classpath/lib/java/awt/image/DirectColorModel.class differ
index 9fae4aba8559e298bee5866462bf05e358fa8a28..7c3a3e2cda14bd0fe203aa4584ace3f2b89cdaab 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/MultiPixelPackedSampleModel.class and b/libjava/classpath/lib/java/awt/image/MultiPixelPackedSampleModel.class differ
index bc95252b6c322058611533adffc9a2a28fd37c68..c20f40ebac6c3f509dbcc9bf5e12f6a1918ca480 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/Raster.class and b/libjava/classpath/lib/java/awt/image/Raster.class differ
index 15bf99e42c498e2f444f3a7c322177d7e178ace3..3dd2603eead7674d51cbcde2e36bc93b3198b97a 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/SinglePixelPackedSampleModel.class and b/libjava/classpath/lib/java/awt/image/SinglePixelPackedSampleModel.class differ
index d80cfee662c58f3e3a514f0988b213a683289919..b70eb327bb8f41fe9c155f3cfbc58632cfb4d681 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/WritableRaster.class and b/libjava/classpath/lib/java/awt/image/WritableRaster.class differ
index c9eddc2cb449eeaef2ccf6c20351cae1258c2a6b..d07ba1c22dfcd0369180eebcb8437396e8774cae 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/Statement.class and b/libjava/classpath/lib/java/beans/Statement.class differ
index 8e653bbf182482ef8317a8c4737599152a828cf4..a63427f90edf4d394ff3a652d70a21f8555bb8bb 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class differ
index a4b93fd5a38a4b78c8612fb3d3f1424553fbb0b7..aa6333ba7c5a83f9f253dc3bea5919e8cad89c76 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class differ
index d9a621d1631318d242bec58f560ebac1f8ab7a01..27b6ba9a9251c9c27dc2d06fdfdb1dd48dff0257 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class differ
index b8af638dc5c265335cfc135a650d0f9efa54256a..449fcd3f724dcd9a63c0f7e76e4af6282104ed27 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class differ
index 5ecc39bb60edd87fee6c4c0bf5c07316e12c446d..4f4843d8106a93e56fc5771658a37811c8b27d4d 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class differ
index 369f5f93eaf46743f1e54a63ec34efe05dbf5eda..753e2d8a2cfa2f2aa6e75c96664a8a73b4a0f468 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class differ
index 8189aac893d538efc767a06cadc88f37b33d2b47..9f721f5a264c017b3247fb79933427cb06bedfcf 100644 (file)
Binary files a/libjava/classpath/lib/java/io/BufferedReader.class and b/libjava/classpath/lib/java/io/BufferedReader.class differ
index 87ac5bd3ee03634e7217fa1c548ca273e86c95e9..7a14ca309fb0211b8bb2afd61ef36f6adf66f1c1 100644 (file)
Binary files a/libjava/classpath/lib/java/io/DataInputStream.class and b/libjava/classpath/lib/java/io/DataInputStream.class differ
index 2afe400cfb368e0063d49ba5ba89060c2d464566..c3ae04b275ec30669d65e66595d13bfb485989b9 100644 (file)
Binary files a/libjava/classpath/lib/java/io/StreamTokenizer.class and b/libjava/classpath/lib/java/io/StreamTokenizer.class differ
diff --git a/libjava/classpath/lib/java/lang/AbstractStringBuffer.class b/libjava/classpath/lib/java/lang/AbstractStringBuffer.class
new file mode 100644 (file)
index 0000000..76b509c
Binary files /dev/null and b/libjava/classpath/lib/java/lang/AbstractStringBuffer.class differ
index 1ace4ada996f86e0355a1dabd0d5d1369c232780..56635ac580c1dc7bb6b433af9cf680589dd23fee 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Byte.class and b/libjava/classpath/lib/java/lang/Byte.class differ
index 694b514cc98be32d6bf989b6d8a22b36bff871cb..67bb49eeb35899f40c59581f74a10d2e94d96bb2 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/ClassLoader.class and b/libjava/classpath/lib/java/lang/ClassLoader.class differ
index 8316ce2d5e4ea1e15fc83cfda4fa490a1e8ac023..a9042ea3a687b2b72833473b022b6515c71b4fc4 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Double.class and b/libjava/classpath/lib/java/lang/Double.class differ
index 82d20416f108d47b7b0918b28ba9b8e8f75fbfb5..76411a60420e2393dacb48baf851d2174babc77f 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Enum.class and b/libjava/classpath/lib/java/lang/Enum.class differ
index 8a47f1edf5167178b084d21aa9ca1756c04d99c0..bccf4057928dd5186cb351a0c3d57f021fbc8d16 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Float.class and b/libjava/classpath/lib/java/lang/Float.class differ
index 3eea8f7bb470a0d0b3b514ec0e0764545d3cdb26..7d85022c691e31fd49b00bc4c37250c2772a9389 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/InheritableThreadLocal.class and b/libjava/classpath/lib/java/lang/InheritableThreadLocal.class differ
index c1d69f894944a9ed2dbd16864b282440deb6bc11..2f894a434cbb1e44f11453c08f4a4f9314ef2fc2 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Integer.class and b/libjava/classpath/lib/java/lang/Integer.class differ
index 3b8b9041c543174b4200b3a917d1ce5fca1b7ec0..7223992a11cd5c1f0730b069727f5aab289dd784 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Long.class and b/libjava/classpath/lib/java/lang/Long.class differ
index 0c6abf13070c0fdb8c5dd13c3c513dcc5dbe160c..0baf8dc1405c95a4744df46157b87b0034ede5b2 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Short.class and b/libjava/classpath/lib/java/lang/Short.class differ
index 43cc87f7c0c73cb4b4b8cecee12ab26ce7b62bed..4855eab0af4481cdc9e0a10e793fe9842ef262c6 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/String.class and b/libjava/classpath/lib/java/lang/String.class differ
index 60b7144904619f5f26220fc42d9ab6007fb81fe5..fd34059cddbc15005fa38bc0546cd0c1144e9569 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/StringBuffer.class and b/libjava/classpath/lib/java/lang/StringBuffer.class differ
index 90e6fab2565cd49207f3fed26af29f48a8891739..c69d892fde690c1acb010e24a13a1d4963278e7c 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/StringBuilder.class and b/libjava/classpath/lib/java/lang/StringBuilder.class differ
index d3d92a8ec9b40d56ec36180773aefb7830e6f8b7..bbe06344f00868dc411f43a0194bbad87b21fd3d 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Thread$State.class and b/libjava/classpath/lib/java/lang/Thread$State.class differ
index e164da7598c8fee40d4444efb7603dbba03b8259..5807ecae3e62cd089a3fe282048fa48bf71e053a 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Thread.class and b/libjava/classpath/lib/java/lang/Thread.class differ
index 35c7fb8e56c10ecbce18828e9302b6d2eb53f1c9..86f3a03281bef7ccf21362cd2ffdaac9b2d18f55 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/ThreadLocal.class and b/libjava/classpath/lib/java/lang/ThreadLocal.class differ
diff --git a/libjava/classpath/lib/java/lang/ThreadLocalMap$Entry.class b/libjava/classpath/lib/java/lang/ThreadLocalMap$Entry.class
new file mode 100644 (file)
index 0000000..ae19442
Binary files /dev/null and b/libjava/classpath/lib/java/lang/ThreadLocalMap$Entry.class differ
diff --git a/libjava/classpath/lib/java/lang/ThreadLocalMap.class b/libjava/classpath/lib/java/lang/ThreadLocalMap.class
new file mode 100644 (file)
index 0000000..aefc7b7
Binary files /dev/null and b/libjava/classpath/lib/java/lang/ThreadLocalMap.class differ
index 540bf1d49ade5ff76de47ac142721e1a7636b15d..3f7db815e2e49627e7cb98b53eaa852990d4cbbe 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Throwable$StaticData.class and b/libjava/classpath/lib/java/lang/Throwable$StaticData.class differ
index 48ea036748531ed731e48c5f5a2fec8d2d3291c0..df135cce2f1f904c3a9199552160d452ab0b3728 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Throwable.class and b/libjava/classpath/lib/java/lang/Throwable.class differ
index 6f4023f2910ccdf6a9b66d2979432def464d0d3f..ccf3403f2b912f59383741de6b65a00885009883 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/reflect/AccessibleObject.class and b/libjava/classpath/lib/java/lang/reflect/AccessibleObject.class differ
index 245c4e6e5a83180496fdb3afc943d5f86e617ecc..dacb338e2928b8e106600665bc86f2f9321b6456 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class and b/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class differ
index 3556b585976db0220617a6ff2f865341423c92ae..d75929d759161e407250d8e3f143cfe6c55e0d1f 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyData.class and b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyData.class differ
index 97905c6c995b2930567b2be8bf5d36fb8d62bbe5..be484676cdfa5f454658b05099548ed7c13f9197 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class and b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class differ
index d43a4836ef478cbc59dc2e1513825a82b88617ed..324f00ed3b22ce5598c81f8e65d032c85b3e1185 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyType.class and b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyType.class differ
index 96b42f8bb7cdcfd0d0c5aa67fb2308663af5f9cf..b0803ab824aa96058546648b7c9a75e5b9ddbfc5 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/reflect/Proxy.class and b/libjava/classpath/lib/java/lang/reflect/Proxy.class differ
index 6ba16bad4c46e5996c72a309a64cc2181e164aa7..6f4b14446cd469342a0df5371ed3b031f679310a 100644 (file)
Binary files a/libjava/classpath/lib/java/math/BigDecimal.class and b/libjava/classpath/lib/java/math/BigDecimal.class differ
index 01a604a9c8f656a579ebafbca4ca985a9610cd6f..c27e41f7593fe643303f3e27ec1e16a226dac037 100644 (file)
Binary files a/libjava/classpath/lib/java/math/BigInteger.class and b/libjava/classpath/lib/java/math/BigInteger.class differ
index b3a652bc637a8e6704312ca26772afc3e3b5c666..f0b7d320cb67bb0fb39480a4d91b2522ce87e9b4 100644 (file)
Binary files a/libjava/classpath/lib/java/net/Inet4Address.class and b/libjava/classpath/lib/java/net/Inet4Address.class differ
index d43e8a77e4202cc8820bc29ea45f8a747924a154..ad7ea39074ee859f37c0f1507685159228bf5839 100644 (file)
Binary files a/libjava/classpath/lib/java/net/Inet6Address.class and b/libjava/classpath/lib/java/net/Inet6Address.class differ
index addeebec615ef402f257e3d9a3d6b9681ccf66ba..61b3a40a16e05acd715c70d2f18b9659d47e49c5 100644 (file)
Binary files a/libjava/classpath/lib/java/net/SocketPermission.class and b/libjava/classpath/lib/java/net/SocketPermission.class differ
index c44d2235e47e01e39b2e4a907ed3726e752cb26d..fdbe8583d85ebb56c4dbddf0d5ffbe4146d05e64 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URI.class and b/libjava/classpath/lib/java/net/URI.class differ
index 6209502f8b53d25bad7af1a23460d576cf0ab151..8f8985584b1c73437b139cbf081fb0dff7018a47 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URLClassLoader$1.class and b/libjava/classpath/lib/java/net/URLClassLoader$1.class differ
index 7f046b870a3e2ca1a8364490b4ca3fb06761a7ad..0079701a38ac04948d242cf2832f76200df68fd7 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URLClassLoader$2.class and b/libjava/classpath/lib/java/net/URLClassLoader$2.class differ
index 80a5e081bc1d893eff5fc7c56a526ac322b2431d..7c97e3666979e2537ed4a3de87f34cf44c7af689 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URLClassLoader.class and b/libjava/classpath/lib/java/net/URLClassLoader.class differ
index 8c27d421871838b8539dea1e509c56894f3dd17b..47d0e4ff3e7d8ae3d114dd484ccaf3a1ba6ab59d 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URLDecoder.class and b/libjava/classpath/lib/java/net/URLDecoder.class differ
index d573af85be79ed04958951779e19a8f37b4ba5af..f12f24316309954c79309cc34dfa24c26e1fd6a6 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URLEncoder.class and b/libjava/classpath/lib/java/net/URLEncoder.class differ
index 2d21739bb28c91d4b639ef069a08ba95428bb393..206be5058a500935593c161d7abd44607df9f282 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URLStreamHandler.class and b/libjava/classpath/lib/java/net/URLStreamHandler.class differ
index 4d9ef52ee855bc535eb1a4e1c38b8099a39d3ce2..d564a14439147f6a08c85fda2fc9daa3ef2b3bee 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/Buffer.class and b/libjava/classpath/lib/java/nio/Buffer.class differ
index 183f21fa87720aabbfe00834a45394a1824d60e0..e460e6f56bb9f0f5dddc38fd2540fe79f4fa7b73 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/ByteBuffer.class and b/libjava/classpath/lib/java/nio/ByteBuffer.class differ
index 91c35308136c5e63ac72a990d2212f365090af22..2508279e34b43e478ba10747d6ca684995945bec 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/ByteBufferImpl.class and b/libjava/classpath/lib/java/nio/ByteBufferImpl.class differ
index 5f4bc4e168c66609e803f2249948d010961d7df3..67b7f775e50af754abec3dce297af52b4874603a 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/CharBuffer.class and b/libjava/classpath/lib/java/nio/CharBuffer.class differ
index e1beb2eaf0215b52e535dac85c3008e605b787dd..77c9ba3116954a30852407a2edad31a1377bfa10 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/CharBufferImpl.class and b/libjava/classpath/lib/java/nio/CharBufferImpl.class differ
index dbd8f15dc84997fb42de473e83fe57d433f4c9b8..836fe11173c5d0a7cbf4d5b318d276e278f283f8 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/CharSequenceBuffer.class and b/libjava/classpath/lib/java/nio/CharSequenceBuffer.class differ
index 2e5c5e82909cf258627059225bc6f1b3abdfe6ed..122788458ed64d8bff11b3edbed27e4e452394b7 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/CharViewBufferImpl.class and b/libjava/classpath/lib/java/nio/CharViewBufferImpl.class differ
index c6b685d8798f34e452596d77ddca3e10aed589e0..8e98339ddcc2db2a642988e05652e85abe3a2cd5 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/DirectByteBufferImpl.class and b/libjava/classpath/lib/java/nio/DirectByteBufferImpl.class differ
index ed274620c770211c2562d425d83b7c3a80d6e882..2a1d81bdad1e0389497fbe628a2a4c5b96b4d04e 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/DoubleBuffer.class and b/libjava/classpath/lib/java/nio/DoubleBuffer.class differ
index 91f3dc2c7e1d51618ff354ad762220aff910c3ce..ea7b1193fdf6672844640e9e07645bfa5b3aac12 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/DoubleBufferImpl.class and b/libjava/classpath/lib/java/nio/DoubleBufferImpl.class differ
index 85c1c4da4b399e3ad56ac212b51a42951a421227..6bca010a1729afb58b1578d8006ab59bc8fde96f 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class and b/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class differ
index 5dde0edc370cf37f4d9ee26aee3ce00960850518..3dbabefe25ae1eec328fc994fb541ce3aef34569 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/FloatBuffer.class and b/libjava/classpath/lib/java/nio/FloatBuffer.class differ
index 4cacfea09ef3c6b302d56785e6b952f481d40375..d680901add784c5eee1eacc02f1b5409bb4e3ef1 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/FloatBufferImpl.class and b/libjava/classpath/lib/java/nio/FloatBufferImpl.class differ
index e5e22a3d6ebb2eb160583a58c44855d8afa7a912..0c6dfed0aee34863018001655e9cb1a98975ec50 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class and b/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class differ
index f604662e64aadca267b8e9964910457f715df3cb..0b420940b44630acf65d9f4fed1f2c4ea90e9e8f 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/IntBuffer.class and b/libjava/classpath/lib/java/nio/IntBuffer.class differ
index 95b0c4d267ca4fe4da4213baa9eedc88d716a098..f18378b3b456ca5bf3e48ec0c5c778ab50f6a629 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/IntBufferImpl.class and b/libjava/classpath/lib/java/nio/IntBufferImpl.class differ
index ec0607c820842a9987c0408158dd3eeeefd2004f..41bba35ffe2a8528a5a5690e06fdc6ee35db04ec 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/IntViewBufferImpl.class and b/libjava/classpath/lib/java/nio/IntViewBufferImpl.class differ
index 510b91eb0efcba5f7200081e8a676ad7132562fa..647b52a38bacb2207eb435dcd3f99c9b84b678ad 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/LongBuffer.class and b/libjava/classpath/lib/java/nio/LongBuffer.class differ
index 6c85f50580d39ee7e0fc2e4a3f6f61ea03d552ea..a4bfbe1cab771fb0961ae95ea5e9496f54b83d83 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/LongBufferImpl.class and b/libjava/classpath/lib/java/nio/LongBufferImpl.class differ
index 5dd6cd4483ef86eed3987f171b6a2f209ca1ad78..2ee4ed2813de052249309914063322cb7b639bd6 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/LongViewBufferImpl.class and b/libjava/classpath/lib/java/nio/LongViewBufferImpl.class differ
index 05f6493a0cdf6bde5f7ec4a386a8fdf41e28b5e3..4de3a2a994f6ca3755cabd34f194409d061ef209 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/MappedByteBuffer.class and b/libjava/classpath/lib/java/nio/MappedByteBuffer.class differ
index 1c3c7d171afe4fb5a33f70bb428b85ebc7425802..94e64b7a94be31dc550e79480ec9f53abf9cc1ee 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/MappedByteBufferImpl.class and b/libjava/classpath/lib/java/nio/MappedByteBufferImpl.class differ
index 40d4faf383979f1b36812b74d2cf95ac3df0a763..e0f128f2bef7b057cd99cb8bfdbaf5627ba73ee4 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/ShortBuffer.class and b/libjava/classpath/lib/java/nio/ShortBuffer.class differ
index cb5b4f3f7218baefd0e7fd2a82203f02a94149a1..9f8b8347237f9bb20efb3855f4ad7f2098214c44 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/ShortBufferImpl.class and b/libjava/classpath/lib/java/nio/ShortBufferImpl.class differ
index 5171ca63386f2f5a8300568eeb27bb89f4d64b9b..76e3467f0831d046d1bf2a0326b786daa9fa2b35 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class and b/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class differ
index 605380da8ae4a82f02bbe9dd30748a6c16b1c5e0..72969c2e832dc1d9e724a818bc9a21a0f9f5dd25 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/channels/FileLock.class and b/libjava/classpath/lib/java/nio/channels/FileLock.class differ
index fd96c1aa83464f2d6e372fcca69d5c06d638019b..7474da811b6b9ea5a2f6cf5777971d44e1d9b3d4 100644 (file)
Binary files a/libjava/classpath/lib/java/rmi/activation/Activatable.class and b/libjava/classpath/lib/java/rmi/activation/Activatable.class differ
index 35a992d8d278cde97ef21b92f363bc43c5ffe8d9..fd493e3a33384997e410675d4c58c7fe0fd83072 100644 (file)
Binary files a/libjava/classpath/lib/java/rmi/dgc/VMID.class and b/libjava/classpath/lib/java/rmi/dgc/VMID.class differ
index 7810eafc93a03f5aba0395d72af38e8f40c60a72..db0edcc2009fc0fd20ab68cdc8b6504899ef6824 100644 (file)
Binary files a/libjava/classpath/lib/java/security/AlgorithmParameterGenerator.class and b/libjava/classpath/lib/java/security/AlgorithmParameterGenerator.class differ
index a9d77c910bfb451bd7b2bdfa28a1f30b842c74d7..418d06f421a6877192feffc8447cb11a81217329 100644 (file)
Binary files a/libjava/classpath/lib/java/security/AlgorithmParameters.class and b/libjava/classpath/lib/java/security/AlgorithmParameters.class differ
index 733d14d841cc1aa5af1030c72ad2529080376113..f93af3c87e3ba3d4ed52b53dcc1da45109790928 100644 (file)
Binary files a/libjava/classpath/lib/java/security/CodeSource.class and b/libjava/classpath/lib/java/security/CodeSource.class differ
index 42a4c971625eaa5ec4ebd9c1e5c3db97d8520c78..a03ecef8de6eedf3dade9f0a1769ee7640cd207d 100644 (file)
Binary files a/libjava/classpath/lib/java/security/KeyFactory.class and b/libjava/classpath/lib/java/security/KeyFactory.class differ
index ad30b19d38b44fb1b8eed9021395a709a4c23235..9e4666f174c475b4ae2b8b7617a7193a4ccee1d2 100644 (file)
Binary files a/libjava/classpath/lib/java/security/KeyPairGenerator.class and b/libjava/classpath/lib/java/security/KeyPairGenerator.class differ
index b2c9e734ea741e367a8613766f7b70b0a9d43b11..6e29544efe13d0e5b250d735dd77fa076ee9531d 100644 (file)
Binary files a/libjava/classpath/lib/java/security/MessageDigest.class and b/libjava/classpath/lib/java/security/MessageDigest.class differ
index c2a3df62605caa680266b534259fa6896d244e9e..b267f2f5612fd64e055beab1a3dc05258ea10ac9 100644 (file)
Binary files a/libjava/classpath/lib/java/security/Permission.class and b/libjava/classpath/lib/java/security/Permission.class differ
index bb61795ca6ceb29ba8c0d2de6dfbf0c5c87fef4e..d6ec0a49b4a901459b472e56450d276277ce4042 100644 (file)
Binary files a/libjava/classpath/lib/java/security/PermissionCollection.class and b/libjava/classpath/lib/java/security/PermissionCollection.class differ
index cfac87e6aea9d4b1f6beb89623e30e0d0a7904d6..46bd0afdd37b1aa14aba58c9982b4a028c7c270d 100644 (file)
Binary files a/libjava/classpath/lib/java/security/ProtectionDomain.class and b/libjava/classpath/lib/java/security/ProtectionDomain.class differ
index 78bdc63f9fec4b147680a41af651f00c018a2bac..e99049bbff0210244dc6f030a9ef7305c0871345 100644 (file)
Binary files a/libjava/classpath/lib/java/security/SecureRandom.class and b/libjava/classpath/lib/java/security/SecureRandom.class differ
index eed75c19d445e672a4c0ad70831d96fe528abc23..17eb13864a76d28c1427d199081de57ee921b960 100644 (file)
Binary files a/libjava/classpath/lib/java/security/Signature.class and b/libjava/classpath/lib/java/security/Signature.class differ
index 58cd7b03bcc1e55e9a84932081fc59a58b592523..a3e85997f2084d69a228cacb78529da0a1675b3b 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/CertPath$CertPathRep.class and b/libjava/classpath/lib/java/security/cert/CertPath$CertPathRep.class differ
index b16f484e0594d2b6062815dd5bf8b14c329a9b37..7747cd8899873470209cf9fb276d558caefdd80a 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/CertPath.class and b/libjava/classpath/lib/java/security/cert/CertPath.class differ
index fba37d76618a23a2e9184273a32646bf749f085c..ae24ff33cc37a63fb82a8cdfb33e6fc8391fd6f2 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/CertPathBuilder.class and b/libjava/classpath/lib/java/security/cert/CertPathBuilder.class differ
index f160e281ffec2c20e3fb3127a7521b40b7aeabc4..50ac04e813bf99ff83e2c0680ab62eec30c9d902 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/CertPathValidator$1.class and b/libjava/classpath/lib/java/security/cert/CertPathValidator$1.class differ
index 3b607d2de62a99f0d9472f945743f8c9fd65ebec..7437375f592a78810e93957bf250cad0041d711e 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/CertPathValidator.class and b/libjava/classpath/lib/java/security/cert/CertPathValidator.class differ
index cad6ee23b5c5fcdefe355e02be916b47d591c53b..f4e9a2dc5b69ae8fd25198b6225b80e7316ec36e 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/CertStore$1.class and b/libjava/classpath/lib/java/security/cert/CertStore$1.class differ
index 17234025bbfb99137b9a6c6a41d8165d0f5b8071..2ec9e9214a7e8931447208791213c64bbfef029d 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/CertStore.class and b/libjava/classpath/lib/java/security/cert/CertStore.class differ
index b6b14258956d8daa4f145b98cb17970c4b0e2312..dd9d6a3d36eed9c90360eea24a4362442ca56853 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/PKIXBuilderParameters.class and b/libjava/classpath/lib/java/security/cert/PKIXBuilderParameters.class differ
index 383ea72a9bd9ef7547c962aa654e70909cf6d9f1..4ceef49601f75d5d2ede50db20b693d322544e03 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/PKIXCertPathBuilderResult.class and b/libjava/classpath/lib/java/security/cert/PKIXCertPathBuilderResult.class differ
index 5cbd3cabd84d29e1a6ebce1b2a0c764b7b9bcf33..30799bc5e657f69d8814a5c32abf09bba771da34 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/PolicyQualifierInfo.class and b/libjava/classpath/lib/java/security/cert/PolicyQualifierInfo.class differ
index 7e1f08ca9a2a0c02ade0bd34dca52e61bff22b69..6327fc809f4f9cb20016fa12552f48696e9e3fe5 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/X509CRLSelector.class and b/libjava/classpath/lib/java/security/cert/X509CRLSelector.class differ
index 6235472cfd62de29fe5662adb21f3d05a11eb615..f10ecf87a046dfc6b81f9a6138f35595eda4892f 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/X509CertSelector.class and b/libjava/classpath/lib/java/security/cert/X509CertSelector.class differ
index f9419962f09fd19e00f680062e60f283d28bac27..53c56927c6db890b1f35a090e783a143c03f30fe 100644 (file)
Binary files a/libjava/classpath/lib/java/text/AttributedString$AttributeRange.class and b/libjava/classpath/lib/java/text/AttributedString$AttributeRange.class differ
index 89daccfd6fe29d66d03568ae5b2af4c5e34d6a3a..dfeeaec86e3fa8acaddf23ee496703909a0dede6 100644 (file)
Binary files a/libjava/classpath/lib/java/text/AttributedString.class and b/libjava/classpath/lib/java/text/AttributedString.class differ
index 77d704b730a29e17a1424a05ca19471cb3e7a7be..7fb2c84fdcf932ec345108f8279abd6b7775f86a 100644 (file)
Binary files a/libjava/classpath/lib/java/text/ChoiceFormat.class and b/libjava/classpath/lib/java/text/ChoiceFormat.class differ
index 23e55d78f903dd28574a4bffd5f7e00514a4376c..2e5675ee45ad2ba8af3ed3406440c15eae469b00 100644 (file)
Binary files a/libjava/classpath/lib/java/text/CollationElementIterator.class and b/libjava/classpath/lib/java/text/CollationElementIterator.class differ
index 18d8e32684f46c3b3479e8830afd7e42527f527f..263c86b6f70ab3b90a3c5169ff1d1d9a9f160f06 100644 (file)
Binary files a/libjava/classpath/lib/java/text/DateFormat$Field.class and b/libjava/classpath/lib/java/text/DateFormat$Field.class differ
index d3e8fc850955f314994ec3cc723dd26dd105327c..b33fe7d37e0b1e30a5308e0f5c466ccb507fe476 100644 (file)
Binary files a/libjava/classpath/lib/java/text/DateFormat.class and b/libjava/classpath/lib/java/text/DateFormat.class differ
index 5e91833888c7e8fc59d27476c937325521d20fce..b58baed7498e5740a8e93ad978d724a417531c36 100644 (file)
Binary files a/libjava/classpath/lib/java/text/DateFormatSymbols.class and b/libjava/classpath/lib/java/text/DateFormatSymbols.class differ
index ad90313d82b9d847660ba576e4b4a787dc2a15e3..ac7c7f9bb54aae771beabdfe7e4b5fe44ecb68e7 100644 (file)
Binary files a/libjava/classpath/lib/java/text/DecimalFormat.class and b/libjava/classpath/lib/java/text/DecimalFormat.class differ
index 3719a028c0722c54c4e27d1bccd37dd695b41bae..c3b31fdbe42e4ec569e768362b14d409d968a066 100644 (file)
Binary files a/libjava/classpath/lib/java/text/DecimalFormatSymbols.class and b/libjava/classpath/lib/java/text/DecimalFormatSymbols.class differ
index 8dae54e1b905a7b91413d9a027bd7225bf9fcd60..317e543130b0c689bba4692e25d784433dd778f0 100644 (file)
Binary files a/libjava/classpath/lib/java/text/Format.class and b/libjava/classpath/lib/java/text/Format.class differ
index 35ac131e24cccbb3335cb99cec8e7b09e0f25f8e..04e2c62471467409b75a99bd3df9e4855a997479 100644 (file)
Binary files a/libjava/classpath/lib/java/text/MessageFormat.class and b/libjava/classpath/lib/java/text/MessageFormat.class differ
index 4398582e64869941092117c57716b32dce2b436b..0a1939e8829cdea64dbc684ebff4183a23d4fedd 100644 (file)
Binary files a/libjava/classpath/lib/java/text/NumberFormat.class and b/libjava/classpath/lib/java/text/NumberFormat.class differ
index b11b44cfa4a038802067514dc062c4f1c32afb13..60a86ed90c031fbe50485f25fda8edcb9c66eecd 100644 (file)
Binary files a/libjava/classpath/lib/java/text/RuleBasedCollator.class and b/libjava/classpath/lib/java/text/RuleBasedCollator.class differ
index 500c6f2918e566f24ec40abe41abb06d1ea6351f..84235883641002ed1c2e70b271d28102948b2371 100644 (file)
Binary files a/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class and b/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class differ
index 443bb4359d343cc1b8e9f88d6ad699be32587942..0feab9a4467892b0d3987450855e8fd07a5762f3 100644 (file)
Binary files a/libjava/classpath/lib/java/text/SimpleDateFormat.class and b/libjava/classpath/lib/java/text/SimpleDateFormat.class differ
index 439e2f88c2d8028a7aeb81b37e2d543399a53b8e..8114a7011dc3946e1a18f911178198fded52d746 100644 (file)
Binary files a/libjava/classpath/lib/java/util/AbstractCollection.class and b/libjava/classpath/lib/java/util/AbstractCollection.class differ
index 0bafa25f3d53895d2092bd8db8b598998ed6367c..1bd0b3f0dad62a0132cb25cd14c1d7c3398553a3 100644 (file)
Binary files a/libjava/classpath/lib/java/util/AbstractMap$1.class and b/libjava/classpath/lib/java/util/AbstractMap$1.class differ
index 899464908f00213d031062425b11a50887a5f057..82a6d519f5a2dfad3805e8fd1171bf1f39b0158c 100644 (file)
Binary files a/libjava/classpath/lib/java/util/AbstractMap$2.class and b/libjava/classpath/lib/java/util/AbstractMap$2.class differ
index cfb86fc5f9f1088049cbb1ccba598150ed30a5fa..e17978fa6870592b6e6179fba1f4943129f8714a 100644 (file)
Binary files a/libjava/classpath/lib/java/util/AbstractMap$3.class and b/libjava/classpath/lib/java/util/AbstractMap$3.class differ
index 4f0fb1331858aec9e9cb92d8fcd0431c5c48b9d2..0a5b27d7e230f353b52bea852338c58935c4aef3 100644 (file)
Binary files a/libjava/classpath/lib/java/util/AbstractMap$4.class and b/libjava/classpath/lib/java/util/AbstractMap$4.class differ
index 2ba043a396dc3694a274eade230667ac5bea6c26..91d77c203183340f4d0e16ab8742061bd1cfb8ae 100644 (file)
Binary files a/libjava/classpath/lib/java/util/AbstractMap$SimpleEntry.class and b/libjava/classpath/lib/java/util/AbstractMap$SimpleEntry.class differ
index 313d8fde0303d66b9d8ced8d1a298c0483f0e427..66e67346862276715ed9b8ecdd9d9840368b4447 100644 (file)
Binary files a/libjava/classpath/lib/java/util/AbstractMap$SimpleImmutableEntry.class and b/libjava/classpath/lib/java/util/AbstractMap$SimpleImmutableEntry.class differ
index 77e9a2566a28fa90cce7ddaaa0f32893b80ab37d..d27b5cc8dbf28d48b2fb6d784e0d33947b73007f 100644 (file)
Binary files a/libjava/classpath/lib/java/util/AbstractMap.class and b/libjava/classpath/lib/java/util/AbstractMap.class differ
index e61f4d4094efbfc6da579df41bac0c6849f617ba..0b46df20107244996eac190f3af8202f886a5f22 100644 (file)
Binary files a/libjava/classpath/lib/java/util/ArrayList.class and b/libjava/classpath/lib/java/util/ArrayList.class differ
index 5d2b9d1b10cb36e5f40cc0ded70ad656864a6677..e89246abf5668646f03ab17c92f4de002c867982 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Arrays$ArrayList.class and b/libjava/classpath/lib/java/util/Arrays$ArrayList.class differ
index be0021123e8a594b3eb868b9dc75d568919f0a24..cbde315bdd74863e1ae8f68e74f4a38d2776883b 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Arrays.class and b/libjava/classpath/lib/java/util/Arrays.class differ
index fb3ddb45d24844ea6d405f6dea061b017acf0142..c5cd4f253274b311041679b5f84067ed9fd696d0 100644 (file)
Binary files a/libjava/classpath/lib/java/util/BitSet.class and b/libjava/classpath/lib/java/util/BitSet.class differ
index 5f32ee15a9c424946aec284d1a9b538e491544d8..95c75c7a7a83c9a78cc1969bb7ea8135b0478a09 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Calendar.class and b/libjava/classpath/lib/java/util/Calendar.class differ
index 78118854154ee60872b8f1ecb62878b4025f096d..b636121d3702f5bf2bab8d87fbda5e6ab61d8429 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$1$SynchronizedMapEntry.class and b/libjava/classpath/lib/java/util/Collections$1$SynchronizedMapEntry.class differ
index 61eee08eba776244cdf8ca142b3730c2086eef05..77207265f37acbae68898ff37ad677105e8e3130 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$1.class and b/libjava/classpath/lib/java/util/Collections$1.class differ
index 1901d1185b3aa0025457a2929cf76d4a683306bd..3a47f69021e929e8575d406e423de42226b8d540 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$2.class and b/libjava/classpath/lib/java/util/Collections$2.class differ
index 24c30fdf1980e6cb13102c6cd0d4b38f4081f91f..7df076ae1e9ea48a878e85a9826dae0d85aebe6b 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$3.class and b/libjava/classpath/lib/java/util/Collections$3.class differ
index 777595717eb8d158bcdddc11c48c43ab8c5ca91a..d0c5a502cfca72c805c897859c9ae8ae2532c074 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$4.class and b/libjava/classpath/lib/java/util/Collections$4.class differ
index 49dfd26208f60c3c845d73e247df5e473064c09c..dd7cdba9f362e31789dc1d44df5d773b7e0aba85 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$5.class and b/libjava/classpath/lib/java/util/Collections$5.class differ
index cedadea3646d70f00f658b4ad67cc108547e43fa..d3981fa1f1f80a148f3adc98c9fcbfe144488ea2 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$6.class and b/libjava/classpath/lib/java/util/Collections$6.class differ
index 8f6f01d1a549e9c0e35dc36754a4013173e547da..cc0a6aeec1c7774e649732aad6fa4ebb1b4bedf1 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$7.class and b/libjava/classpath/lib/java/util/Collections$7.class differ
index 3bb01cbab541ffecb7d2e6f8307644d98dda1042..c1b7661532547cc1d688470dec3da7d839273ac9 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$8.class and b/libjava/classpath/lib/java/util/Collections$8.class differ
index c9c26bc6191452ab0659cb3ce6c4c97390dfab8d..597af13176bf22e29a490b3ac37c55a01a7211ec 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$9.class and b/libjava/classpath/lib/java/util/Collections$9.class differ
index 5dbf53b3cbec03076a45f49ee9032b787f6e68de..519d8b0342c9437e39125c7a36516607416e31b9 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$CheckedCollection.class and b/libjava/classpath/lib/java/util/Collections$CheckedCollection.class differ
index 332c194f58a296ce8150b01687133871054e87c4..4012973b467d2ded9dd47d25f448635b8554d155 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$CheckedIterator.class and b/libjava/classpath/lib/java/util/Collections$CheckedIterator.class differ
index 51c9ab8231aa73c8f88cd94debde43ca51a88bf1..f103934355e9c0a456f02d9967cda91161ff403c 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$CheckedList.class and b/libjava/classpath/lib/java/util/Collections$CheckedList.class differ
index d99fb14e08cd38c42f88e5adedc781e0f50f49f3..621cedfbe5f95a8cbfbda1bc51a86d1938072626 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$CheckedListIterator.class and b/libjava/classpath/lib/java/util/Collections$CheckedListIterator.class differ
index f5456d18393f1313849202f16121d556ce8197fe..a0d77a84368e56872f74f4c693dcaf5ef530ac89 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class and b/libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class differ
index 0072af4324639fdc6875a5103e0ccc9c110dbfae..42fbd4ac730e6c28cd4a7d18ab10ac7b2764f6e4 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$CheckedMap.class and b/libjava/classpath/lib/java/util/Collections$CheckedMap.class differ
index 872d0312c1f6e2939dcee24ca8bf0c3997e524ec..7cb5ae94af934abf2b4261835499375f2ae9ef1a 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class and b/libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class differ
index dae4ce839466f895cef11cd0d3895b95e822d517..e77d9ec4d24a519746896c38795a2fb149655943 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$CheckedSet.class and b/libjava/classpath/lib/java/util/Collections$CheckedSet.class differ
index 77936fa5e289e0f194a5052be52f8ca9a1050921..3e00bc057fdfe0ebbad3778025a647ad4de3cbfe 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class and b/libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class differ
index 36e4a2f60a31f0e589d5934a92fbbf255ee15e48..576324033ad80d1023022330c598c61328954be3 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class and b/libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class differ
index 80b4c8302c763a9b279a25a3213193cdb5e92edf..be0e555f09d01a4ed4865d4d9244b80959b66b50 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$CopiesList.class and b/libjava/classpath/lib/java/util/Collections$CopiesList.class differ
index b8fc74823e14880558fe5479d0e4a06c0028c8f6..d6ff9f337abf6654b1d29514b74fd0e1410245bc 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$EmptyList.class and b/libjava/classpath/lib/java/util/Collections$EmptyList.class differ
index 21786072cf7a94152e0a406e69bd74e7e44c49b1..364722b6c1b2e7c9c0714b53f599603092163e2d 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$EmptyMap.class and b/libjava/classpath/lib/java/util/Collections$EmptyMap.class differ
index 96fa5c491a97d56c67ce08dab8fd03b5cb10b658..a1a88ebf79b92dbabeab9021a47b19b3a8dd76ec 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$EmptySet.class and b/libjava/classpath/lib/java/util/Collections$EmptySet.class differ
index 9f0806a490b600e56b399362bc03a10f6f920ce0..5716fa2175367eb999fdc6cfd2e91df3d26e1dfa 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$LIFOQueue.class and b/libjava/classpath/lib/java/util/Collections$LIFOQueue.class differ
index 59c4adead4437fa47ba0f0a9ea94c1d80e67b747..8a02ecb6d5cbd2f50305115806fdd5d23c4256a3 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$MapSet.class and b/libjava/classpath/lib/java/util/Collections$MapSet.class differ
index 30450fc7ab8598fabb5ced9252e4e9b0bfc6ce68..c07305a5ff1d35ae75b15f76a066537d24710375 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$ReverseComparator.class and b/libjava/classpath/lib/java/util/Collections$ReverseComparator.class differ
index 05b93b7c59d019ff51b2aca3e2b668ee93114886..ba6f153b93d0dc51febb88dbe9ef7ba5f4dfc5a3 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SingletonList.class and b/libjava/classpath/lib/java/util/Collections$SingletonList.class differ
index 8025f0d6e793d880836233b1ee83796c4bc340bd..9fb19b7160f06dbe379047e9b239cecabefb24de 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SingletonMap.class and b/libjava/classpath/lib/java/util/Collections$SingletonMap.class differ
index b5e5a22108566017f62f00716c59479c20e0af09..53a098dc3de258d0212d8372dbb0d44eae651ee4 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SingletonSet.class and b/libjava/classpath/lib/java/util/Collections$SingletonSet.class differ
index 07665ab47e03413741e7bb61764728fb91fb3af5..eccb9db1f9c55a67c3b4ccdef99dbb2052a043d6 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SynchronizedCollection.class and b/libjava/classpath/lib/java/util/Collections$SynchronizedCollection.class differ
index 67c7dda995ad2ccb0ad1d3c2936b7238f705b267..78f7edf7599cd3e12ab0ab73d8c735ebbe0ac99a 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SynchronizedIterator.class and b/libjava/classpath/lib/java/util/Collections$SynchronizedIterator.class differ
index 977bda3f31acfb1d672c0560f1b99058e72674ba..74f95300db4f3994e4c1d44e4bc2abf10bea8fd7 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SynchronizedList.class and b/libjava/classpath/lib/java/util/Collections$SynchronizedList.class differ
index be11fef7dd701cd28abcc787f22c6d0ccc0e766f..2a50db405672fce46c1c7883d91d261ee4a2b41c 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class and b/libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class differ
index ddcc5f8e33aebdedf3ec6ccbb54c746c2cc79532..6a862be6d5ab0dc87179eebe8945e45f08bd6ffd 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SynchronizedMap.class and b/libjava/classpath/lib/java/util/Collections$SynchronizedMap.class differ
index fa128a9b93016606da9492fd337acc3218ffbe46..08fdb6ca728f00535cb3b0ae863ab624b0bc1c00 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class and b/libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class differ
index 9bbf781991d7071d824799fb77e45ac20b4223fc..1ae8ea307c4fe1209226a4ad0863fde972aab74c 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SynchronizedSet.class and b/libjava/classpath/lib/java/util/Collections$SynchronizedSet.class differ
index 525a659e2c7283a7dcc486282e46a48cca017a1b..62a25ade1e2f8b9b179c99d13758ef1442057e2e 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class and b/libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class differ
index 68a5cf64148a9b61384c7727da23d4f10d67e1c6..30ba4a3cd7bea142c610aee7998c63d3116fba5e 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$SynchronizedSortedSet.class and b/libjava/classpath/lib/java/util/Collections$SynchronizedSortedSet.class differ
index 547d7b5b1574ea2480f2ae7cb6867482f9979b15..e51c804ac4c7a0e18b98914694bc5939ed5327b5 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$UnmodifiableCollection.class and b/libjava/classpath/lib/java/util/Collections$UnmodifiableCollection.class differ
index aef79e39ae030f6907d495a8dd8fa4f47ad914e1..6a53b067ee4ca3e0bfa922479fdbd1e7c2da10d6 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$UnmodifiableIterator.class and b/libjava/classpath/lib/java/util/Collections$UnmodifiableIterator.class differ
index 5cc58918f13f202553e043c9a6f02a0a38fd4c7e..db804bfbc60af456377987a95b8361b57195e1b1 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$UnmodifiableList.class and b/libjava/classpath/lib/java/util/Collections$UnmodifiableList.class differ
index 962d17ec021d37a57979a5a171caaf68559055ba..490e99c442ffcde59f8c7b4348e3f6a4760f64a0 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$UnmodifiableListIterator.class and b/libjava/classpath/lib/java/util/Collections$UnmodifiableListIterator.class differ
index 6eb99a72a03080e7d84fbefa158a7079e8755e3b..56f5692fe4981e924f8c23940dccf238b08d3d24 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.class and b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.class differ
index 74a6d46e4e9774d6dcf67467ab9bf99443996a05..081bf52dcc1364755c8894724b49907c16bfca07 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class and b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class differ
index acd7c67775acec3f1036d603c6b354972ce52f16..66fe31c2dc4dc3bf6bd98f869317110fa33f0e41 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class and b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class differ
index eb8b87d09dc78068166f389730a9acbbd72afdaf..63b38d4dfaa76e0724120d366a58d93f202cfffc 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$UnmodifiableRandomAccessList.class and b/libjava/classpath/lib/java/util/Collections$UnmodifiableRandomAccessList.class differ
index cb9ac56dbfe7753d60adbf0080f3e808b631954e..39be8d6650eab8880cbf58e8b0ac56bbea2d7205 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class and b/libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class differ
index ee3e0f6e8369ab0930778674d3cc4f26d2944439..39be88cf4cd87ad706c986efebba6100f1abd992 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class and b/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class differ
index aae09acabb2c266b7385175fa8e99094a87d2995..96c5905bb461b8a4ab22b9cc08cd8f9917c11913 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedSet.class and b/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedSet.class differ
index afd16bb4fae58afdc5f407ae89b6ca34d35ffd32..1e5ed0c27d8290f38cc2b2b4c9eac34d84fe1e38 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Collections.class and b/libjava/classpath/lib/java/util/Collections.class differ
index bc2a965d43b6d716e5d9ed52e8f1110b7b54a475..0a0d2fecdc57bc17b22190caddc4cfd7ed5be6e6 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Currency.class and b/libjava/classpath/lib/java/util/Currency.class differ
index 422dcb544983c1a1d464d4babd39524e5a918c7c..66b63fa402d0e8d8c8ecc53eb4420b24c39d8307 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Date.class and b/libjava/classpath/lib/java/util/Date.class differ
index a4449b5d2ef34a9e62d93c58bfd0eca4658a00d6..ec6433bb84854e05ffc8d9c3140851c42c0f7cdd 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Formatter$BigDecimalLayoutForm.class and b/libjava/classpath/lib/java/util/Formatter$BigDecimalLayoutForm.class differ
index 44bda981046ccc2109b5c86855df0873a635b508..7d9a146a8afee36e9e4322c052ce5ca5ce1e8655 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Formatter.class and b/libjava/classpath/lib/java/util/Formatter.class differ
index 0efaea7b35bb776ddc29daa80b14c0078aa23604..5b4259f5cc5abf7b8fcfaa1335ffbf75110fb700 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$1.class and b/libjava/classpath/lib/java/util/Hashtable$1.class differ
index 61692f8263b88c38e88081204cdd466f7970bbf1..55174e6cd07cd41c53821877fd3c2bd723214aae 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$2.class and b/libjava/classpath/lib/java/util/Hashtable$2.class differ
index 496c00bfc5464cdd370b5dba1852bb35603ce8f8..50d619e5ea012757aa8923f19a0f9c674a21f0cc 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$3.class and b/libjava/classpath/lib/java/util/Hashtable$3.class differ
index 3211b2b5f5589bf5cd41f29049a590c2a434e95a..6aeb344cc3d3a2e161a13a3cc5585fac89df2796 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$EntryEnumerator.class and b/libjava/classpath/lib/java/util/Hashtable$EntryEnumerator.class differ
index cf206dbc1162b075da450dc0bc17102a060ddce7..27754798e342d99ea0dd6b2e814ec49ad3aab7aa 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$EntryIterator.class and b/libjava/classpath/lib/java/util/Hashtable$EntryIterator.class differ
index b70be33c2800a27c0177dc4e97a8da97bee28e22..b127bcd3b5028df3b7dc6b05bbd3cc15f63c8d8e 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$HashEntry.class and b/libjava/classpath/lib/java/util/Hashtable$HashEntry.class differ
index 4e33c8f715e2230ccefbd28d2958ae83040c1dc0..4b56114506f1bd838d5a3a0e4642544390a94cb4 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class and b/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class differ
index e1331ae23d3eb0d8e88d28a425dbfb7d894490d5..d0d68cfc609199f04fc0892660bfc0b43a258404 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class and b/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class differ
index 0a396cb0bf62a6a195f5267687b6f99ebd37ccae..828a1ac60c2cf7fa41616876ccc4e5da8dd70a7e 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class and b/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class differ
index 53ab7e1872dc4d999b35f638d936ccdc93967d06..5c0eb912cd3dd73664acfa22ef1cdcd5b0aa2517 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class and b/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class differ
index 6ffdf57d09622732548c1f46883608324b8b93cd..a501bd5d985198a9e02e0638b9efbc8f8b88a24e 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable.class and b/libjava/classpath/lib/java/util/Hashtable.class differ
index 3ea366f8b2eff964bddeb177fff1144f3246cf8e..2fa28921ea630080b67834c19e0a7e81ae473536 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Locale.class and b/libjava/classpath/lib/java/util/Locale.class differ
index 9b0ef59f7fdcfb3c2b3f90dec3ade0f559c4ac75..b627bc22150586a70744f8365f17d9b4af5f158a 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Properties.class and b/libjava/classpath/lib/java/util/Properties.class differ
index f47155d1ceb63709d10100a6438c9761eb941def..a2d3b3d570c47040ea0d2084a8118f9d379a6fd3 100644 (file)
Binary files a/libjava/classpath/lib/java/util/PropertyResourceBundle.class and b/libjava/classpath/lib/java/util/PropertyResourceBundle.class differ
index 32fecc70a0fca77728f023d32bb38ea13d21d6c3..b798bab4f1bd19c5a21104587e7f80849feeec74 100644 (file)
Binary files a/libjava/classpath/lib/java/util/ResourceBundle$1.class and b/libjava/classpath/lib/java/util/ResourceBundle$1.class differ
index db9c41cc3fd1645912b58112e03680d0f111f9eb..b88a7db3f3072bfbaab4069fac08f0a110833794 100644 (file)
Binary files a/libjava/classpath/lib/java/util/ResourceBundle$BundleKey.class and b/libjava/classpath/lib/java/util/ResourceBundle$BundleKey.class differ
index fdc59abc56f83d8ab4dc3a5eb21ee8d25efbaaad..c66d3719a70981b6c0bbb11ba223f84e66395053 100644 (file)
Binary files a/libjava/classpath/lib/java/util/ResourceBundle.class and b/libjava/classpath/lib/java/util/ResourceBundle.class differ
diff --git a/libjava/classpath/lib/java/util/Scanner.class b/libjava/classpath/lib/java/util/Scanner.class
new file mode 100644 (file)
index 0000000..b84f375
Binary files /dev/null and b/libjava/classpath/lib/java/util/Scanner.class differ
index 9f5112344761c483b4158d101bc75071c2e25e0a..b73aed0f634b1e0e645ee630de44d7d582d1633f 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Stack.class and b/libjava/classpath/lib/java/util/Stack.class differ
index 1d418d82d4acb90e300a50fb2b991039601f973a..31299b01fccd3b9c298f84efb01e800d299e5148 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TimeZone$1.class and b/libjava/classpath/lib/java/util/TimeZone$1.class differ
index 53ecf9d43288f31166173d8e17402d55af59a44a..8856dc33ff0306bb87b304c95d2d26d808cf9930 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TimeZone.class and b/libjava/classpath/lib/java/util/TimeZone.class differ
index a17bbc938c3bf7dc1b3beb4a4e548217b64cd036..82cbf5822a1ead9c48918432892a13eff1febba5 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$1.class and b/libjava/classpath/lib/java/util/TreeMap$1.class differ
index 25cac02bf413934fc7e1d7d50a3466035cf5547a..b29656be6e0a1d4c4b795e8514ee0fb993328d81 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$2.class and b/libjava/classpath/lib/java/util/TreeMap$2.class differ
index 4c2a186aa8e120f7e7220b13e9b1c0780efbbf96..7122503b49bb2988167e4b6f741560b741489081 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$3.class and b/libjava/classpath/lib/java/util/TreeMap$3.class differ
index 0fca5eb81dfacf6d5ba915da1c6e0d045769afeb..44efa9156b508926ad6c310dc1f5fcfeeaa2b6c1 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$4.class and b/libjava/classpath/lib/java/util/TreeMap$4.class differ
index 22c5151095be2d39390056c82c49418474509499..ae6f7bff5986250c6d8b7a4bd0e44856640e7a22 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$5.class and b/libjava/classpath/lib/java/util/TreeMap$5.class differ
index 0cfdc29bec161b4e4ca8a1cf630c86d8e139aaea..63259affee3c12099a46de646d4cdb050ccade5a 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$6.class and b/libjava/classpath/lib/java/util/TreeMap$6.class differ
index aac1ac117086654cf9d7efadb1386ed8be472203..1dac2e4cb01fd4b94794cbb9d31b6b4a9ed502c7 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$7.class and b/libjava/classpath/lib/java/util/TreeMap$7.class differ
index f5675b6d922c4d7ecb65bc6ce1293f2d8801d112..1d592d5aef4c28997ef7558c3ef50f1ac8f4383b 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$DescendingMap.class and b/libjava/classpath/lib/java/util/TreeMap$DescendingMap.class differ
index 31497bac1f5aba6a3b0cebf2262cad270edc23a7..cba2ac5089ad55e8aad7b133e3ff03521a8d0444 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$DescendingSet.class and b/libjava/classpath/lib/java/util/TreeMap$DescendingSet.class differ
index f30a2c9c86e925eadf0d276d161cd58492b139d3..8573cc556bf96cfb81a8f6be61455997384472c8 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$EntrySet.class and b/libjava/classpath/lib/java/util/TreeMap$EntrySet.class differ
index f03155c0db214def75aecaed4e7512503b01327e..2d7bcff867a2c34a895fef8bfc72582cd43d56fb 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$KeySet.class and b/libjava/classpath/lib/java/util/TreeMap$KeySet.class differ
index 3f156faf713e044a4dc5da51134659e38cd9f66a..79ea0347ba4e4dc3dd213903a70ef36f9f6c662c 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$NavigableEntrySet.class and b/libjava/classpath/lib/java/util/TreeMap$NavigableEntrySet.class differ
index 000e8013e897b6a0e23c7e04dee34fada11b4282..cca23432dde821f7ab7971e21727fabbb13dc5f2 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$NavigableKeySet.class and b/libjava/classpath/lib/java/util/TreeMap$NavigableKeySet.class differ
index 8f275d75c21d853a635f3766ca5699ed13ba8231..07dc834656af6450257ef59b2870be42f213bd14 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$Node.class and b/libjava/classpath/lib/java/util/TreeMap$Node.class differ
index e3fe4180c5bac654003740e0937a47fdebeaa723..8fa8a610edb136d5e943ddcae2b9b8f81db74089 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$SubMap$EntrySet.class and b/libjava/classpath/lib/java/util/TreeMap$SubMap$EntrySet.class differ
index 50bce8e2dc020ad77d97c35d3c3393ccc9aefdbf..fe6d6b6773d8f5cd700454d29b91943f516ebd93 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$SubMap$KeySet.class and b/libjava/classpath/lib/java/util/TreeMap$SubMap$KeySet.class differ
index 99248931e4ceef92b337f32db04902a1f88f12b5..3b3c7a841d00234f3c0f74b7cbf891deb8ea845f 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableEntrySet.class and b/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableEntrySet.class differ
index 2e6fe97165ed3347d741b12256267ac5bc0e07f5..77bf28e0315ae95f0d546a959d915bb71a85cc4b 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableKeySet.class and b/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableKeySet.class differ
index 82573b203f4af8f76e3dcd038a1b0c65fd17f63e..528f6460f59063b37aecde2dca9c46ba0792bf65 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$SubMap.class and b/libjava/classpath/lib/java/util/TreeMap$SubMap.class differ
index eb6746c46016291c37316bc921ecb831be24bbde..9767965686ab870797f1a590eae906ce3744b973 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap$TreeIterator.class and b/libjava/classpath/lib/java/util/TreeMap$TreeIterator.class differ
index a8d0a1dc3af525fedf08e22bad9772c3662faa38..22f8f0c195e14910b7e0b3693369ac4cf47815e6 100644 (file)
Binary files a/libjava/classpath/lib/java/util/TreeMap.class and b/libjava/classpath/lib/java/util/TreeMap.class differ
index 42889b5b447bc5acd48a18be4ee9608a16075a81..3822a2eaadefd9f70438168e42e95c5521416d61 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Vector$1.class and b/libjava/classpath/lib/java/util/Vector$1.class differ
index 9dd19b6967bc24a4ab9ae10dee9bf1049f5a15e5..d3c851e34172e8984f585aa37615c5c295a02cff 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Vector.class and b/libjava/classpath/lib/java/util/Vector.class differ
index b89bb0edc3dab26288b4e28e080fb38dd7168249..a8695425fd0aaa2bf3e95279a7bda4b4499fc9a8 100644 (file)
Binary files a/libjava/classpath/lib/java/util/logging/FileHandler$ostr.class and b/libjava/classpath/lib/java/util/logging/FileHandler$ostr.class differ
index 7cb9151e1d53dd34fff41968c3116467bbb0114c..0e0d3f09650db96797001cd94335d339cc126ed3 100644 (file)
Binary files a/libjava/classpath/lib/java/util/logging/FileHandler.class and b/libjava/classpath/lib/java/util/logging/FileHandler.class differ
index b484f73937dbe92f805313a34a29192da08a08dd..c8abf7339b8c738f31ea01cd76dbbbede3682763 100644 (file)
Binary files a/libjava/classpath/lib/java/util/logging/SimpleFormatter.class and b/libjava/classpath/lib/java/util/logging/SimpleFormatter.class differ
index fd47a7d08c3255450c02e5abc8bc4dc9d7c8a4a2..833fba2647f024e5d91d1aecaa77d18a2d64f098 100644 (file)
Binary files a/libjava/classpath/lib/java/util/logging/XMLFormatter.class and b/libjava/classpath/lib/java/util/logging/XMLFormatter.class differ
index 4f25a3d7e25efb88c544c9f3ad1e087ea1e1c6d6..4f3c1f71e9328602c250a982b4c1ed69ed121e50 100644 (file)
Binary files a/libjava/classpath/lib/java/util/prefs/AbstractPreferences$1.class and b/libjava/classpath/lib/java/util/prefs/AbstractPreferences$1.class differ
index 57cf97c230a65d7ff68fe372c3087c0e1fe1c56f..8d3d85154c955da7147ff5012e9392648665193e 100644 (file)
Binary files a/libjava/classpath/lib/java/util/prefs/AbstractPreferences$2.class and b/libjava/classpath/lib/java/util/prefs/AbstractPreferences$2.class differ
index 3675ab886030c676c5ce51ed5a29b9c3cba195f4..fcd1c51d8036722825ca759874234034fae7e459 100644 (file)
Binary files a/libjava/classpath/lib/java/util/prefs/AbstractPreferences.class and b/libjava/classpath/lib/java/util/prefs/AbstractPreferences.class differ
index 6cb429c6fb8c27d90d0b72f9a6b97e90d7fd055b..0eee2c18485787e01d242abf47145f8e95f71310 100644 (file)
Binary files a/libjava/classpath/lib/java/util/regex/Matcher.class and b/libjava/classpath/lib/java/util/regex/Matcher.class differ
index fc3c65c0ed83afc5eef0d93093f320159420ca60..06e4684e3bc7997de88ec136a4d3ff3c697c0c4f 100644 (file)
Binary files a/libjava/classpath/lib/java/util/regex/Pattern.class and b/libjava/classpath/lib/java/util/regex/Pattern.class differ
index 39d83b676e34fdf6574f993a39e455c5a25fb65e..0f44b987aad402f709fc0cfc654e8a3a9c141438 100644 (file)
Binary files a/libjava/classpath/lib/java/util/regex/PatternSyntaxException.class and b/libjava/classpath/lib/java/util/regex/PatternSyntaxException.class differ
index 045a90f56beb386469a5e4aa69e714f617d543dd..5d39640e1d2e2c565c58f1a62459176d2ab19dbb 100644 (file)
Binary files a/libjava/classpath/lib/java/util/zip/ZipEntry.class and b/libjava/classpath/lib/java/util/zip/ZipEntry.class differ
index 2e43b08112c4bb5cd93567db2a97519da298de94..e9ec7f76fee2385b38e9b9ba0b0d4ed1738c28f8 100644 (file)
Binary files a/libjava/classpath/lib/java/util/zip/ZipFile.class and b/libjava/classpath/lib/java/util/zip/ZipFile.class differ
index 43fb3c7b5de555c7213ad6dc15fc687aef04c009..fb6eadd891eeb26d55fa9b4d6229edc1ef7fa19b 100644 (file)
Binary files a/libjava/classpath/lib/javax/accessibility/AccessibleRelationSet.class and b/libjava/classpath/lib/javax/accessibility/AccessibleRelationSet.class differ
index 68fbea360616d0a40661b9502efb5fb0fe7784cc..4979fa87facc534f0248b417297fcb0d40780ee2 100644 (file)
Binary files a/libjava/classpath/lib/javax/accessibility/AccessibleStateSet.class and b/libjava/classpath/lib/javax/accessibility/AccessibleStateSet.class differ
diff --git a/libjava/classpath/lib/javax/activation/ActivationDataFlavor.class b/libjava/classpath/lib/javax/activation/ActivationDataFlavor.class
new file mode 100644 (file)
index 0000000..47dd5a3
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/ActivationDataFlavor.class differ
diff --git a/libjava/classpath/lib/javax/activation/CommandInfo.class b/libjava/classpath/lib/javax/activation/CommandInfo.class
new file mode 100644 (file)
index 0000000..6ab8f2f
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/CommandInfo.class differ
diff --git a/libjava/classpath/lib/javax/activation/CommandMap.class b/libjava/classpath/lib/javax/activation/CommandMap.class
new file mode 100644 (file)
index 0000000..b1f07c6
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/CommandMap.class differ
diff --git a/libjava/classpath/lib/javax/activation/CommandObject.class b/libjava/classpath/lib/javax/activation/CommandObject.class
new file mode 100644 (file)
index 0000000..2f3c044
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/CommandObject.class differ
diff --git a/libjava/classpath/lib/javax/activation/DataContentHandler.class b/libjava/classpath/lib/javax/activation/DataContentHandler.class
new file mode 100644 (file)
index 0000000..a9a93a5
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/DataContentHandler.class differ
diff --git a/libjava/classpath/lib/javax/activation/DataContentHandlerFactory.class b/libjava/classpath/lib/javax/activation/DataContentHandlerFactory.class
new file mode 100644 (file)
index 0000000..ceacdca
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/DataContentHandlerFactory.class differ
diff --git a/libjava/classpath/lib/javax/activation/DataHandler$DataContentHandlerWriter.class b/libjava/classpath/lib/javax/activation/DataHandler$DataContentHandlerWriter.class
new file mode 100644 (file)
index 0000000..bcd1dc4
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/DataHandler$DataContentHandlerWriter.class differ
diff --git a/libjava/classpath/lib/javax/activation/DataHandler.class b/libjava/classpath/lib/javax/activation/DataHandler.class
new file mode 100644 (file)
index 0000000..c6103c5
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/DataHandler.class differ
diff --git a/libjava/classpath/lib/javax/activation/DataHandlerDataSource.class b/libjava/classpath/lib/javax/activation/DataHandlerDataSource.class
new file mode 100644 (file)
index 0000000..74a4c17
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/DataHandlerDataSource.class differ
diff --git a/libjava/classpath/lib/javax/activation/DataSource.class b/libjava/classpath/lib/javax/activation/DataSource.class
new file mode 100644 (file)
index 0000000..ecbc498
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/DataSource.class differ
diff --git a/libjava/classpath/lib/javax/activation/DataSourceDataContentHandler.class b/libjava/classpath/lib/javax/activation/DataSourceDataContentHandler.class
new file mode 100644 (file)
index 0000000..973c02a
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/DataSourceDataContentHandler.class differ
diff --git a/libjava/classpath/lib/javax/activation/FileDataSource.class b/libjava/classpath/lib/javax/activation/FileDataSource.class
new file mode 100644 (file)
index 0000000..aa8ed38
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/FileDataSource.class differ
diff --git a/libjava/classpath/lib/javax/activation/FileTypeMap.class b/libjava/classpath/lib/javax/activation/FileTypeMap.class
new file mode 100644 (file)
index 0000000..936542e
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/FileTypeMap.class differ
diff --git a/libjava/classpath/lib/javax/activation/MailcapCommandMap.class b/libjava/classpath/lib/javax/activation/MailcapCommandMap.class
new file mode 100644 (file)
index 0000000..c06df77
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/MailcapCommandMap.class differ
diff --git a/libjava/classpath/lib/javax/activation/MimeType.class b/libjava/classpath/lib/javax/activation/MimeType.class
new file mode 100644 (file)
index 0000000..d964033
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/MimeType.class differ
diff --git a/libjava/classpath/lib/javax/activation/MimeTypeParameterList$IteratorEnumeration.class b/libjava/classpath/lib/javax/activation/MimeTypeParameterList$IteratorEnumeration.class
new file mode 100644 (file)
index 0000000..2c88ca1
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/MimeTypeParameterList$IteratorEnumeration.class differ
diff --git a/libjava/classpath/lib/javax/activation/MimeTypeParameterList.class b/libjava/classpath/lib/javax/activation/MimeTypeParameterList.class
new file mode 100644 (file)
index 0000000..18c1665
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/MimeTypeParameterList.class differ
diff --git a/libjava/classpath/lib/javax/activation/MimeTypeParseException.class b/libjava/classpath/lib/javax/activation/MimeTypeParseException.class
new file mode 100644 (file)
index 0000000..903aaab
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/MimeTypeParseException.class differ
diff --git a/libjava/classpath/lib/javax/activation/MimetypesFileTypeMap.class b/libjava/classpath/lib/javax/activation/MimetypesFileTypeMap.class
new file mode 100644 (file)
index 0000000..5d663e5
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/MimetypesFileTypeMap.class differ
diff --git a/libjava/classpath/lib/javax/activation/ObjectDataContentHandler.class b/libjava/classpath/lib/javax/activation/ObjectDataContentHandler.class
new file mode 100644 (file)
index 0000000..108357b
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/ObjectDataContentHandler.class differ
diff --git a/libjava/classpath/lib/javax/activation/URLDataSource.class b/libjava/classpath/lib/javax/activation/URLDataSource.class
new file mode 100644 (file)
index 0000000..5cef940
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/URLDataSource.class differ
diff --git a/libjava/classpath/lib/javax/activation/UnsupportedDataTypeException.class b/libjava/classpath/lib/javax/activation/UnsupportedDataTypeException.class
new file mode 100644 (file)
index 0000000..5963206
Binary files /dev/null and b/libjava/classpath/lib/javax/activation/UnsupportedDataTypeException.class differ
index c50353713c78f96ee9b53fa4e1e62cfb6daea3ad..46807f97fbdc7980792abea95554212c72696045 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/ImageIO$1.class and b/libjava/classpath/lib/javax/imageio/ImageIO$1.class differ
index baa2ccc1e81e7837e1f773c6986ad3ee49020a92..02034cd4b30aa17df522a4fe8dcf6cb9501938ff 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/ImageIO.class and b/libjava/classpath/lib/javax/imageio/ImageIO.class differ
index deac559a02a691c978565d3aab30a7066eb95994..7d0383ea171533ae5c58ff54b8480b2310171e7a 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGHuffmanTable.class and b/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGHuffmanTable.class differ
index 6f6d57646a1bb8459267dcefc1620c94d59c248d..6a70a3629969aa1c0d7682bb152fa4cb63d041d9 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGQTable.class and b/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGQTable.class differ
index ae7a2ba72cb5981a224f064528634cda04b0f837..89aad2e06a2c7bd5adc373b145b088a48091b175 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/stream/ImageInputStreamImpl.class and b/libjava/classpath/lib/javax/imageio/stream/ImageInputStreamImpl.class differ
index 12a86e31f2bed84537216926f349d7c47090057c..0ae912b657a56f4ac730ebebfc4f70eacc0dfd5b 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/DefaultLoaderRepository.class and b/libjava/classpath/lib/javax/management/DefaultLoaderRepository.class differ
index e60830e14dcfd468cde6776599ec51b6058de0d2..16f718f0d3b34b1d6e7532591c84cb84dd580023 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/JMX.class and b/libjava/classpath/lib/javax/management/JMX.class differ
index 4933f4932440c065ffa9e1bac1ccac767b444437..be2167e3c5c45b35bfa6776857b91f23803ff74f 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/MBeanConstructorInfo.class and b/libjava/classpath/lib/javax/management/MBeanConstructorInfo.class differ
index 15151ce5108757d12dcc289ec054f2a76d42e96a..1f6702e14807645daf9384c141c6013e88aeff88 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/MBeanPermission.class and b/libjava/classpath/lib/javax/management/MBeanPermission.class differ
index c0c761938cb15f4ca7219cdc1f0b2ee11136cd6c..ffacaaa013d1a1790e1d5b480ad7d3d2935da1d1 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/MBeanServerDelegate.class and b/libjava/classpath/lib/javax/management/MBeanServerDelegate.class differ
index d1a09850473a2895a67b75409b1128154e5dcca8..2920d65a3daea76f8a14a94fef7f09aeaf410c76 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/MBeanServerFactory.class and b/libjava/classpath/lib/javax/management/MBeanServerFactory.class differ
index a54f83321d233cb144a741c08e6eeeb12bdc846e..9d59650ec8bb93a670bbfd936294827842d4cfac 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/MBeanServerInvocationHandler.class and b/libjava/classpath/lib/javax/management/MBeanServerInvocationHandler.class differ
index 9d6fed42a07e86d2407cf130eab6b2817872ad51..73376eda0b2104e3f0805aa3138032bfe7364a1a 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.class and b/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.class differ
index 272e8d375ad0873d439eec1626c552bd01578df2..7de4089104f30320178a0868ef99a84659b2ee83 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.class and b/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.class differ
index e69173d14d8556f135d3cb51d513ab8740bcd07b..764d5de70567fcae251afc9eb4892b246a5d303c 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/MBeanServerPermission.class and b/libjava/classpath/lib/javax/management/MBeanServerPermission.class differ
index 55cb11360f68cc9bb9179f2f4c80b8e4f5f6f66a..b32ae1f27497e5301ee5e12a3d6417810db95bc1 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/ObjectName.class and b/libjava/classpath/lib/javax/management/ObjectName.class differ
index 8a454a156c52fdb970654e54735221d15359cc4b..087daafa940bd5c168f7e624594f21052261d043 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/StandardMBean.class and b/libjava/classpath/lib/javax/management/StandardMBean.class differ
index fe1fdfa512aa384af0e8cc2ce820008caba77adb..0b7767c3ac288abb5b1c3fe4cc04faa9f74146f2 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/openmbean/ArrayType.class and b/libjava/classpath/lib/javax/management/openmbean/ArrayType.class differ
index a35581e1ec9c22f20b6ac7ac0b0af608529fb4a7..ea38f78ee8c0f776745aa8971fb7f11bc04ba1b1 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/openmbean/CompositeDataSupport.class and b/libjava/classpath/lib/javax/management/openmbean/CompositeDataSupport.class differ
index 9daeaed4cc5f330c41f9c8edbc4f9dd3d8f29afb..f26cd8e3449169969cd81c78ac8938c008be860e 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/openmbean/CompositeType.class and b/libjava/classpath/lib/javax/management/openmbean/CompositeType.class differ
index c7833f82d8e93eb51c5e79dcd39890094c9fdd35..85f53a0cc16584a1023b02821d5e0a30f5fb96e4 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfoSupport.class and b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfoSupport.class differ
index 4f20e690b2c7839cd483aa6e4266086dc2e2e85c..5f3bf31eb0eedaaa687dd1b42c38cb7c58bb409d 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfoSupport.class and b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfoSupport.class differ
index 7c16993a5c3977f15f5460baf0f1c5a3b9c9ad86..d61fccc315031aa85604318243bb201a1564e94d 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/openmbean/SimpleType.class and b/libjava/classpath/lib/javax/management/openmbean/SimpleType.class differ
index 80fded321bfc184c7d02681650e7a705cf943614..b45cdca489c97e4a6a7c726aa84be76b1f8960d4 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/openmbean/TabularDataSupport.class and b/libjava/classpath/lib/javax/management/openmbean/TabularDataSupport.class differ
index d2eb8a9b8c7397ae72d0f7f0ba0b4f74dfe01d97..573d1ec2725f6274eef402fe88ea7129bf291ac0 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/openmbean/TabularType.class and b/libjava/classpath/lib/javax/management/openmbean/TabularType.class differ
index 8856b981f0b7159c316419bb1892ae5c3d49faaf..eac405179abfb9aa9fc9b1dce41a8267eb373023 100644 (file)
Binary files a/libjava/classpath/lib/javax/naming/BinaryRefAddr.class and b/libjava/classpath/lib/javax/naming/BinaryRefAddr.class differ
index ad737e672af24e103da15a773f09ad46e748e569..f7c2bac9d2f7165e0c17e8bf9c78f93bfebb997c 100644 (file)
Binary files a/libjava/classpath/lib/javax/naming/CompositeName.class and b/libjava/classpath/lib/javax/naming/CompositeName.class differ
index 9ce16da72dad738be16bf0258f363bf7e17e4ca8..ac8f259e87b803ff43b7af21e5794c6344fbff3e 100644 (file)
Binary files a/libjava/classpath/lib/javax/naming/CompoundName.class and b/libjava/classpath/lib/javax/naming/CompoundName.class differ
index 52bdc3ef577e3f2585f58be67083cb72c7e23faf..bfe3c76f83b4a6a9e3513383555af636a57ee3c7 100644 (file)
Binary files a/libjava/classpath/lib/javax/naming/NamingException.class and b/libjava/classpath/lib/javax/naming/NamingException.class differ
index d0da69412acacfbb0a7d4119f6a26a3c265c69d3..72b3e19ab952beb2baa7166bfe48cc4009b81b5c 100644 (file)
Binary files a/libjava/classpath/lib/javax/naming/spi/NamingManager.class and b/libjava/classpath/lib/javax/naming/spi/NamingManager.class differ
index e2a1287542a8471679c5a165139fe65b841e5f6c..7bfdec2ef6c4e75565be0efc7950a3a71422aaab 100644 (file)
Binary files a/libjava/classpath/lib/javax/security/auth/x500/X500Principal.class and b/libjava/classpath/lib/javax/security/auth/x500/X500Principal.class differ
index 2121acee3579c5533ee8085605bd266dec02af9f..3c4199163a604a52cdefb93246c6847a23db38a8 100644 (file)
Binary files a/libjava/classpath/lib/javax/security/sasl/SaslException.class and b/libjava/classpath/lib/javax/security/sasl/SaslException.class differ
index e76624cd29e35c8ffaff12063cb41075c889213b..5f028793b7e3d2751d6c4b61e01cbca1b8dacce5 100644 (file)
Binary files a/libjava/classpath/lib/javax/sound/sampled/AudioFormat$Encoding.class and b/libjava/classpath/lib/javax/sound/sampled/AudioFormat$Encoding.class differ
index c9d2849a17c138be9fd5e0c47b5da6d4415e1b78..498ff42e9194084d0b79b9f9a065191685be263a 100644 (file)
Binary files a/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class and b/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class differ
index cabba7da19d7f22d5ceab6aefbc7e26e051510fa..7569c749c6bcd67047f0537074eef7dc0dc8b58f 100644 (file)
Binary files a/libjava/classpath/lib/javax/sound/sampled/CompoundControl$Type.class and b/libjava/classpath/lib/javax/sound/sampled/CompoundControl$Type.class differ
index 4334b13ca38785f63793cf186523e77de613ef49..1c46c33171b15d95bdfa9db3de0247874214fdf4 100644 (file)
Binary files a/libjava/classpath/lib/javax/sound/sampled/CompoundControl.class and b/libjava/classpath/lib/javax/sound/sampled/CompoundControl.class differ
index 81c8b23a7763c3a0e046e8fee299dfbeb18f0744..03168bf1a9d557710b6ef38fda0f613d30c74789 100644 (file)
Binary files a/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class and b/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class differ
index 95948d648b0a502da3b5a02e1048b6201f32409c..5657c38b075f4ecf0505a02b7447eab4dced0eab 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/AbstractButton$1.class and b/libjava/classpath/lib/javax/swing/AbstractButton$1.class differ
index b17256ad9db41a5efe767aae204039690ab88568..bdc53132380043fb19c9f295a97c3fcc61cab9b5 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/AbstractButton$AccessibleAbstractButton.class and b/libjava/classpath/lib/javax/swing/AbstractButton$AccessibleAbstractButton.class differ
index e8fce21cf304afff1b3f0eb74cb8a2072f368625..3b9534b05213fd1233a42554f578749bb21bb4da 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/AbstractButton$ButtonChangeListener.class and b/libjava/classpath/lib/javax/swing/AbstractButton$ButtonChangeListener.class differ
index 370e7d3cebe6e84062c4501b5b63f3ddea40fbc3..a19d61a7a92c2679bf31583a445514f1d6cea10a 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/AbstractButton$EventHandler.class and b/libjava/classpath/lib/javax/swing/AbstractButton$EventHandler.class differ
index d02ab057d0e6568c9c47cd428eb55bd5b96eebae..cc9381064076df26af9d139455ba3eb1c5c83c09 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/AbstractButton.class and b/libjava/classpath/lib/javax/swing/AbstractButton.class differ
index a4fe87b92722c46c735c9e2aeedbae832dc04064..9d06cbf570449695864dbcbf4239c3332e026847 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JButton$AccessibleJButton.class and b/libjava/classpath/lib/javax/swing/JButton$AccessibleJButton.class differ
index e58fa25539057158a6aeb727497d3fb46766ab9f..2c2bf77e16d9d20d1f40447463443bd87a14c6aa 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JButton.class and b/libjava/classpath/lib/javax/swing/JButton.class differ
index 0988e4d2d6010e6b7c57722e4273ac695d7ce53c..0361e52fb1b58ab757fed5ba1add666fd76f8cda 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JComboBox$1.class and b/libjava/classpath/lib/javax/swing/JComboBox$1.class differ
index 456a8326836aef8e61938383c919e083e74a1956..f2f7e5886b3a66d3f6a27099ca4771db8946ee13 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JComboBox$AccessibleJComboBox.class and b/libjava/classpath/lib/javax/swing/JComboBox$AccessibleJComboBox.class differ
index 3d9fdca510d68f3a260d107e570775bfb2b7dde3..cc25e96b64ef88dcf93f7703492100cef2d007f2 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JComboBox$DefaultKeySelectionManager.class and b/libjava/classpath/lib/javax/swing/JComboBox$DefaultKeySelectionManager.class differ
index 6b4ed6c78dd26626b101b3c3e06fcdb87a4204dd..87c9f7c6821956d2cc9db8ada26a3e270c5f0db3 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JComboBox.class and b/libjava/classpath/lib/javax/swing/JComboBox.class differ
index b07824f6c48abb2c784957e4dbd969411c41dd49..a13d0e29c6f89e62cbd955bbe5840e44f0729151 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JComponent$1.class and b/libjava/classpath/lib/javax/swing/JComponent$1.class differ
index e3ff2403e64b1bb16a6747b1c89b568f490cd449..4b1507f4ba7007e5c5df9717f9d0fdaf10fa59a7 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.class and b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.class differ
index 04ef17a8bd7941c81a478fe89d4dc6c6f49594ea..9d106d19e1795a2739c4785dd944deb725ea147e 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.class and b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.class differ
index 43abf645d39703e3abd18ddc79531ce8cedd9903..8f48e55f97ef00a949accdc8557748928a27c6ee 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent.class and b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent.class differ
index c9939eaee5757f5e63e1241097ff3bf35754843d..2da01c06877210db424ccc2a174dbcf501a646c6 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JComponent$ActionListenerProxy.class and b/libjava/classpath/lib/javax/swing/JComponent$ActionListenerProxy.class differ
index 5e3051a865733ba1616be0e9be3638751417fcca..93a4b67115df00479473332bbdd052013a55e2cb 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JComponent.class and b/libjava/classpath/lib/javax/swing/JComponent.class differ
index db9bf952ac14be80818d6f3045d75d4d06e820d2..2245d411dcddb0dfcd7208d991fe09d8d90c5833 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JDesktopPane$AccessibleJDesktopPane.class and b/libjava/classpath/lib/javax/swing/JDesktopPane$AccessibleJDesktopPane.class differ
index 1796754c8aa92dd81e74c6e7e3b437dd4a333889..b30dd902f4fd3147e01d518fcef3ad1ea1ce76ba 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JDesktopPane.class and b/libjava/classpath/lib/javax/swing/JDesktopPane.class differ
index 079bcd0d7dd6fc013dcf90e57f7c5cec0749b182..3b3e55cc10edea8462d12bbfc29cc8ba1d41ec4b 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JFileChooser$1.class and b/libjava/classpath/lib/javax/swing/JFileChooser$1.class differ
index 06cee8ed88f78a5dd03636af6e4f1fbb33359a68..1b8b8a5a79ac6de6c07c6cf849bef6aaf1ea1174 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JFileChooser$AccessibleJFileChooser.class and b/libjava/classpath/lib/javax/swing/JFileChooser$AccessibleJFileChooser.class differ
index 7ffc00e14a4157afbe53b367360c11ca99b4f735..a3d31985482c7aeec863c315279d9b7770799a42 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JFileChooser.class and b/libjava/classpath/lib/javax/swing/JFileChooser.class differ
index 6a5f1c82e023c1d2beb647cf3c81c5b52c2bd75b..85c8f0d2df88f95899e949c23f4a423ca91770e4 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JFrame$AccessibleJFrame.class and b/libjava/classpath/lib/javax/swing/JFrame$AccessibleJFrame.class differ
index 4d9e344a4577cd1cba16d93454e3d1d7f00b8980..6d81d8f03c624bbd139d55a8eb3543b361c141b2 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JFrame.class and b/libjava/classpath/lib/javax/swing/JFrame.class differ
index 52730839d67040a0810db41b8fa74477718bda40..b025ca773c1a1f3dc9e0e256679f1f53deb734b8 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JLabel$AccessibleJLabel.class and b/libjava/classpath/lib/javax/swing/JLabel$AccessibleJLabel.class differ
index 20256d03cd82911e5b2ff0946fc310e4a5cc6ccb..736eb1b24d0a13bfefe2ac483c709437e9dc27e8 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JLabel.class and b/libjava/classpath/lib/javax/swing/JLabel.class differ
index ddfc6e07acdfd4e48922a8e6c60e1f1fb1748b30..66ad6e29ea7ad0d4098bdbd480126ab7e553d26f 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JList$1.class and b/libjava/classpath/lib/javax/swing/JList$1.class differ
index 8d05ac0f17ec0aaac2200b51c2bab4545b663e97..ee2259240df5022d520debe54dba6c2846c647d0 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JList$2.class and b/libjava/classpath/lib/javax/swing/JList$2.class differ
index 83935ae0fb87b74675fa453cf8ab79a215493ae3..af69f031e3fb0cc4170c22bd344a246e17fb58ee 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JList$3.class and b/libjava/classpath/lib/javax/swing/JList$3.class differ
index 31d2c9480038be8bb490b3389208958af143999e..b7cccc661c7094d89922de773449c950e454b001 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JList$AccessibleJList$AccessibleJListChild.class and b/libjava/classpath/lib/javax/swing/JList$AccessibleJList$AccessibleJListChild.class differ
index 1d08b8e8567f7975de69bea0182276dbcd762477..378bbba4193886380a6a4434f17306bcc4c8dede 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JList$AccessibleJList.class and b/libjava/classpath/lib/javax/swing/JList$AccessibleJList.class differ
index 3a77f5523181e68d12b043027629960931cb309e..32fdcfebb310f84182d9aeb651c412ba80228e09 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JList$ListListener.class and b/libjava/classpath/lib/javax/swing/JList$ListListener.class differ
index c573c2709217cf4af55fa002797b54be3ef92dfa..06a23e6899b1b5e5711fe0ee333037c3df9fae43 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JList.class and b/libjava/classpath/lib/javax/swing/JList.class differ
index 1cd34fe19c374dcedb80cbe4e68f483846796fb7..3d94be8886b7db80d57b5992e3fef93dd5a38fa7 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JMenuBar$AccessibleJMenuBar.class and b/libjava/classpath/lib/javax/swing/JMenuBar$AccessibleJMenuBar.class differ
index 92fb6702672abb3dc1968c5217bf8786499830aa..887bc3afb00ea982dcd4eeff1de4f232b2666138 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JMenuBar.class and b/libjava/classpath/lib/javax/swing/JMenuBar.class differ
index bdcf1edd5d74444d52e1b817849478857ea25638..853d006dbc04d3e0d688270a88a11ddd404f4eb7 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JPopupMenu$1.class and b/libjava/classpath/lib/javax/swing/JPopupMenu$1.class differ
index 7bf24f6b71d02955eedf5f0c960cf9ba726581ee..d0e4c7cc2995d3815cd394e3e8adea1a8b87bfcc 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JPopupMenu$2.class and b/libjava/classpath/lib/javax/swing/JPopupMenu$2.class differ
index 2faa79d2cd0f1b2db676feccc2378db9bfb7d1c4..29222e8b5748792c9f7bdfa1db13bd252bf3e37b 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JPopupMenu$AccessibleJPopupMenu.class and b/libjava/classpath/lib/javax/swing/JPopupMenu$AccessibleJPopupMenu.class differ
index 0699c204b9cd86cfe61cb609e9375485521078b7..8d7711b884175491fc9c4b4b22f26fb588541b40 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JPopupMenu$ActionChangeListener.class and b/libjava/classpath/lib/javax/swing/JPopupMenu$ActionChangeListener.class differ
index 30e53542570fc06f654b9526a0a5bf171ef369e5..6b30c58661056a403c28b9a2f8b921649e4e846f 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JPopupMenu$Separator.class and b/libjava/classpath/lib/javax/swing/JPopupMenu$Separator.class differ
index 5f6d0f5ad7da03c3baa60cf965a9b635cc5a246a..c90b7b3914dac46e2be65701f0c60e3fae9a4c57 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JPopupMenu.class and b/libjava/classpath/lib/javax/swing/JPopupMenu.class differ
index 724d927f2516412249bf82973a4525532e44f77c..c85f9314517d21aa8c02c18fef3c0b8dccd8cfd9 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JProgressBar$1.class and b/libjava/classpath/lib/javax/swing/JProgressBar$1.class differ
index 7c891a5a34e479212c886db9843c76eeefa7889c..de951cd5d2070081365939230f5f9a8efd75b5f4 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JProgressBar$AccessibleJProgressBar.class and b/libjava/classpath/lib/javax/swing/JProgressBar$AccessibleJProgressBar.class differ
index c626ad4c59d54bbbcbbc1aa5ef50000aef8f0e3c..e552369e87ca1a6acd48114ced1506930bb5cddb 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JProgressBar.class and b/libjava/classpath/lib/javax/swing/JProgressBar.class differ
index bb29b1cedceaa86594a44ca4bc72b352faca286f..8a26293ef6bb5a5579b1a017dc5fe23271da3c7d 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JScrollBar$AccessibleJScrollBar.class and b/libjava/classpath/lib/javax/swing/JScrollBar$AccessibleJScrollBar.class differ
index e102fcbbd7b37cf812c4653cc39346b3207a6b18..5ebce2409d1ead2cb25301d7d9cdaf2061a59d9e 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JScrollBar$ScrollBarChangeListener.class and b/libjava/classpath/lib/javax/swing/JScrollBar$ScrollBarChangeListener.class differ
index 6b208ed58c18882f55ffa3aa777252e184406a5e..ebb56b27dd2f04df711e9d83acf907db973aa03d 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JScrollBar.class and b/libjava/classpath/lib/javax/swing/JScrollBar.class differ
index c8198200c484c228201d831b8c9c5fa441ce41f3..90becf88d251c7997bdd661d1276d2348aa0f943 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JSlider$1.class and b/libjava/classpath/lib/javax/swing/JSlider$1.class differ
index 76cb9d07b408ba6e2525ab184b84080310e23f4e..cfd8a3316616debd6a66a7ffc1903783c6b61e96 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JSlider$AccessibleJSlider.class and b/libjava/classpath/lib/javax/swing/JSlider$AccessibleJSlider.class differ
index 7019accc2c71a426188bb693fbc4aa3557744c9c..d874317a2f9ba00fd754f2c920afc91f3b294ee0 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JSlider$LabelUIResource.class and b/libjava/classpath/lib/javax/swing/JSlider$LabelUIResource.class differ
index bbb333486fc1b062fca5b8f5f24c9f227dc25ee5..73cbffa79d3ef84f56f49da3f6c40b0561e28567 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JSlider.class and b/libjava/classpath/lib/javax/swing/JSlider.class differ
index 05f9b3ed5c06d77420bfececda92953d70e534ac..a11ad3c3efef226e5f0018659a58a96137e91f3d 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JSplitPane$AccessibleJSplitPane.class and b/libjava/classpath/lib/javax/swing/JSplitPane$AccessibleJSplitPane.class differ
index 2e9fff044f65df8f7eff6de5915b64932b67d945..7ef0eb061f652c2b6ba4cdac943432e26960bedd 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JSplitPane.class and b/libjava/classpath/lib/javax/swing/JSplitPane.class differ
index 958e838bfba85ab3e1140ef4cbcddd5b8a139a22..ee241d2c7b68a056ad65dbbd81cb69b0802c5137 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JTabbedPane$AccessibleJTabbedPane.class and b/libjava/classpath/lib/javax/swing/JTabbedPane$AccessibleJTabbedPane.class differ
index 5b8d73e5151582e65f45dae9882af8e3488157d9..377d5a281d93b4594bffa91a2dcee86d4153d9f6 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JTabbedPane$ModelListener.class and b/libjava/classpath/lib/javax/swing/JTabbedPane$ModelListener.class differ
index e28c57d62a9a3445deff989c5910d12138edfa28..0937986d8efe1865682cc733889ca6677fc5061e 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JTabbedPane$Page.class and b/libjava/classpath/lib/javax/swing/JTabbedPane$Page.class differ
index efd5443120437e20e778d73b77854323aab6ea52..10e0212ebd3ce6eefee12c664b1a5353823f93b8 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JTabbedPane.class and b/libjava/classpath/lib/javax/swing/JTabbedPane.class differ
index 29566364585fddc59c6172d10c2727f15321f38d..cc3cccd6e653f3d10455f9b50baa3f58d709b7de 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JToolBar$AccessibleJToolBar.class and b/libjava/classpath/lib/javax/swing/JToolBar$AccessibleJToolBar.class differ
index 59f1e0716018bec131dc7451eb647a00da7b415e..1f4fe9abeae219af9cc1c243033a80750207ec7a 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JToolBar$DefaultToolBarLayout.class and b/libjava/classpath/lib/javax/swing/JToolBar$DefaultToolBarLayout.class differ
index f046b5f0f18a28e898f2219cd6b83af7109ae8b8..ec9e062f92af0a4066f2c33e762898789e78f6c4 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JToolBar$Separator.class and b/libjava/classpath/lib/javax/swing/JToolBar$Separator.class differ
index 6a6953bf3005f01687a49d0afe7e7aa44565efe6..b6ec0400d89f2bf00dc55d6deb2c0aafe8f7c191 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JToolBar.class and b/libjava/classpath/lib/javax/swing/JToolBar.class differ
index 246aa68e61fba94093a88dd16cdd0f395200c7ba..b99cbe567d6b4be2373c5507a9e8c87f014b6555 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JToolTip$AccessibleJToolTip.class and b/libjava/classpath/lib/javax/swing/JToolTip$AccessibleJToolTip.class differ
index 8980fc18bfc1b912c7c5b28ed1989ea803398ad8..973442a6bdb38aab757cec47aaf181eae6284026 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JToolTip.class and b/libjava/classpath/lib/javax/swing/JToolTip.class differ
index e5c53185d6af427bae35f0ef58ab62a8e7cae064..e068c93de7504f4b236671a1f1c41546f1a0fb34 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/UIManager$LookAndFeelInfo.class and b/libjava/classpath/lib/javax/swing/UIManager$LookAndFeelInfo.class differ
index b5d3a363b2e71029c45d1536535d752fb81cc062..9819e1e817eb7965fda86f519b7c25b8434766f5 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class and b/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class differ
index 287c124b8e9289a08576d1b94d4698a822ec91d7..a38776c06a669cece5830cf2395b8d7e4ded29c0 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults.class and b/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults.class differ
index 2cfeef71fcd305e93ed0a805d486faa6b3bf2e51..f080703473161788cc7229fd53c81174e4193018 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/UIManager.class and b/libjava/classpath/lib/javax/swing/UIManager.class differ
index d51511eefccd3eb6fe06008fc5613833006aa5c8..0db34b627bdeb9880f2d6e7ef8cd5852bfeaf1ff 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/event/EventListenerList.class and b/libjava/classpath/lib/javax/swing/event/EventListenerList.class differ
index acb354bb252760c3932eb7118d7334f86985a822..48f5945d960b94f0c9e0568406d392153b51ae2e 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/table/AbstractTableModel.class and b/libjava/classpath/lib/javax/swing/table/AbstractTableModel.class differ
index c7cde324166f29fd9e674607d649650acf2850c6..03c8d402dc4283991715627bbf028f4c1cb836b4 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/AbstractDocument$AbstractElement.class and b/libjava/classpath/lib/javax/swing/text/AbstractDocument$AbstractElement.class differ
index 5b86329bdec72f339a04f4de7a38026edea9f410..2ffd378f2a6f09b2041872f02818d4be538ed813 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiElement.class and b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiElement.class differ
index 75bbf7fcd1962c6330a0cb5fa042cd56a9a0b80e..4f9dd8c047a279a37537dad428b5b196a5b9aaba 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiRootElement.class and b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiRootElement.class differ
index 110449a3873cec05aba9d1035db8503fc86a32d2..aa39539d503e53b219234ed1cc6b514e5988741a 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BranchElement.class and b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BranchElement.class differ
index 9dae382ab13d6b10236dc962df6f71b9b5853dda..f65bc2acca7f88f4352d416991d08cc2279fef52 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/AbstractDocument$Bypass.class and b/libjava/classpath/lib/javax/swing/text/AbstractDocument$Bypass.class differ
index 49c7efb84ba08db2c2c553c6af42d7f569b2030e..5db3284b04fcf6fd90c54bb924997b5d60009b09 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/AbstractDocument$DefaultDocumentEvent.class and b/libjava/classpath/lib/javax/swing/text/AbstractDocument$DefaultDocumentEvent.class differ
index 271079b2eff7c7e9bfc072b6eb94dcee6ca63c99..02011c5f2d84936c159fed65d7e9fc0cfeea246f 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/AbstractDocument$ElementEdit.class and b/libjava/classpath/lib/javax/swing/text/AbstractDocument$ElementEdit.class differ
index cc08b690da609b2d9d22f0ba9847ffe27bf80abf..29253c8ce2a245927b36e26efbac385f1da18504 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/AbstractDocument$LeafElement.class and b/libjava/classpath/lib/javax/swing/text/AbstractDocument$LeafElement.class differ
index 3aef5954745265fd973f9fe96cab2e12c62fc9db..8c2d26f12a2e09b2f5f04cc01cacdfd62491f848 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/AbstractDocument.class and b/libjava/classpath/lib/javax/swing/text/AbstractDocument.class differ
index 0042d053039a8367a53c11a35bfff80288b9ef8f..1a36aa1b05106cbb93960330386742aa29093add 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BackwardAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BackwardAction.class differ
index efb137b75f88029724f69ca3ff874b7af50c92af..07306c4e708e42ce7c5672118be3e579910ba399 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeepAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeepAction.class differ
index b428801dafbe1da1f79a665fd1ce9b3ee61dd0b0..8bd3e995e918cef0367e8eceff4331f8c65c685d 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginAction.class differ
index a0d6cf1e1e7857928e15e3902898a17872b9af40..f07669052fcda0bb24b5d1f6381cb36fbe35c868 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginLineAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginLineAction.class differ
index 64bd8d6ad4a401db829e6155b1e420a2cbbdb72e..6ba6b1b9445a468a795ee572a43fc685be21d19b 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginWordAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginWordAction.class differ
index 93e9be5be3c1bed4ecbe908866c44af3d7ab97d4..38946603a71afe20a620e8e67402dd0df0b8daca 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CopyAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CopyAction.class differ
index 80b43cb521e9d23c5bb26ded9c203406a600d49d..4602bb7592483e657f58c0ea305188479058372c 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CutAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CutAction.class differ
index 1b14036eb4ea43eaddcb39440588e4e82b4c8a09..4664ea9af21283969f8a7c8dfc00dd732ff69fa3 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.class differ
index 2a74bf7f45f1fd293c5534bc32f02f6685675ea8..821e347f9129e079ae75450c9f1c0a77d18d7075 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.class differ
index 88c01ad519cdd68b6a474f906e795f9367e11af2..0b41f8cfc6b45d87cce8857c522e15b086a64a57 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.class differ
index 26b7bf44798a25304a9f2fc519c3ddecd02a0af9..8d75725ee168c4a8495c096039cc6cba9efea0e9 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DownAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DownAction.class differ
index a8319fac35910a5a150370737e1ffacf1561f78a..a9d08202d557812b03389013b04b512d769bb5d3 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndAction.class differ
index 3708263b999f72d2f67148d6459c7155179afcea..2aea49736b58ad42c1250afd7c42b04102b5dda8 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndLineAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndLineAction.class differ
index 66f079ffca25a7458c655efeaed980c0795d4083..4d358f03de64c62ba9760b234683e3beacca4c57 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndWordAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndWordAction.class differ
index bf189a90a0b61f88baf75993b116300acfdbb40e..1947f10de0d6be47324bb71c51ac77243ff0bf1d 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$ForwardAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$ForwardAction.class differ
index 1f7c364be4a7cac1353765532a61e47838d4c761..5368fac5774de0f7c08385689d8a57cc4d3ec6a6 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertBreakAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertBreakAction.class differ
index 5701aaed52d6f0a7dd789d7b07fb8c1c38359f5e..96981c0bf66655b0718b9922cf8fea18a6f2c9b3 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertContentAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertContentAction.class differ
index f5a64f81b6bd18374804a8437ed78207244c9568..424fc999aa2d29a6b25ab7a0060e20f159b585f4 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertTabAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertTabAction.class differ
index bbf055fbf8584186b6bd7a4f12ddb7b3156e416f..45381d8810bb8c3c39d4fe69d4bb6eef9fb21582 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$NextWordAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$NextWordAction.class differ
index 8ebb7f4ecf7e2f5f86dc7c9440d6c89f6ba2d17f..a4c1403c0c903a46958250486099acb812610295 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PasteAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PasteAction.class differ
index 7d2d4b0e4fdad11b254dcb5cdbb8522fbd10d057..ce3b6a28687e63b493c408d38cefc713a44e6ce6 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PreviousWordAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PreviousWordAction.class differ
index cf44390395fa8cbc826746cd99a8b187aca9c23d..c500f59ab3765c74f3a9d377165768d7b12a185b 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectAllAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectAllAction.class differ
index ccc5a6458bf5fb59b4d92aaa164cf15c7bff4344..b6d9b9fec7cc9ff0073d82ae04da7ebb372b9d07 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectLineAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectLineAction.class differ
index 54ed14cc54d373b4e94a3d91f33599d5abf57a11..8aba99c64e05ede2ca0a8308d7c20c2c2b4c225c 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectWordAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectWordAction.class differ
index 5b0695fa9465df0beee5b2998aca4f528dbf0b54..a9fd71e64d69f5ca9c037ea39fab09d8986f8cd5 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.class differ
index 4fbaf30209e5d62d2fa271582de026073f58c17a..6a9c110a2816626285b61910e6ea26e4ebdc9910 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginAction.class differ
index a127a5537e7d4606886dd1f214cd0ccca2fed6b3..930347255117f65ae290fcf50530c26cc623ca56 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.class differ
index c9cb13f7d71824c718a06c346e8755778df90a12..0bc91861e0e8cc63cd5b88d054125c47e7c5b915 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.class differ
index 33c351b6fa3616097b969b9d7745a32b89686361..24ddfdaaf0f61558062b25358c7a23fe112b6692 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionDownAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionDownAction.class differ
index 29fac6c4b03ae6020f7ee130d145cd64eb22f444..aa97d95b15df75d36793c6bc8ccdaea00dd8d625 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndAction.class differ
index 0f6d39be3a1d4b4a35b9b84adfbfd1e36e5a6ace..653aa353950523ca970e62251949cc139ef8266b 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.class differ
index de30976ffee20399500d80a33aa13c796bead7c9..61640357ca28a7f1b2e66991ede1918ec6343f3f 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.class differ
index 162a436293590520578b859a625308ac4494b8e4..3728da84b6a6fd480f0af5a5df4ccc1a3318fbf0 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionForwardAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionForwardAction.class differ
index 3422529b42ae22c2cc3824806528258a468ff131..f1017d51f1d9a8f56e8345ccff16fbc0a81388b7 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.class differ
index ad3ace407da5771c917b6b863e619c56a4ce828f..b821d16ba7982dfbc5b8d81412ec6358cb78b3c5 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.class differ
index 0c5926fb7152efae2c9be940a92561df75c76d9f..37256d95da543468263b4906241dbf31eee04ae4 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionUpAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionUpAction.class differ
index 41609d3d537d9116fbfd31eb8771d3ba72174d96..e8c9ccfa9a63dcf35ac6257f8db2d64fb69a9e89 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$UpAction.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$UpAction.class differ
index dd9e7248ba2ee53cee97cfc23b2bbfbb4c0580c6..c1eb00563bb2fcc6b474e21c45322b76c5c0c4e2 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit.class and b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit.class differ
index 1d2bcd8ce23bd315c0dabb1c32ea692b38790296..0eb927934b288d17574d07265514f49e99ab1c3f 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.class and b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.class differ
index f64b587d337b77e00ccb80b79f3199ac8e6c2b0f..16573e9ca0b9f6fab6d607c467319b9b6c74a6ba 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.class and b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.class differ
index 8cfb9d984fae29035a6d812b543b43a24ac21e55..78fe23c67ae39043de031e1ee077b59134e570f6 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class and b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class differ
index b82e72530333ba97544a5bacbb2d35ee2739eaf8..38ff1478ba3f2cf9a17ca6e6d0f16694824c44de 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementSpec.class and b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementSpec.class differ
index fdf2590afd9f93ed8692b448995b728e3fb40ebc..60a3292db83d4ff57d664780e6b65850941f6ded 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class and b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class differ
index d22f506395c006c02a55652adcb2dd92343b6c60..82faca133d503eaf979dfd291b33a8bae79e995b 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class and b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class differ
index 0418b79e5a1f3275d675ebe01c99ae127d6f454c..d00f9e1d18a36838a0e91c7c923009e95d6554b3 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class and b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class differ
index e6fda06a0e4bda9ade7f2918a141c2547195c41f..fc777b4c28f3883530b7a955ab2d9c1cb014731c 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/JTextComponent$AccessibleJTextComponent.class and b/libjava/classpath/lib/javax/swing/text/JTextComponent$AccessibleJTextComponent.class differ
index 997fa67a757547ddc69c636cd79cea4270be66c8..50365e2920a3158d889eaf8d190844bc062b7281 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultKeymap.class and b/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultKeymap.class differ
index 8533861a6e0a6922c4ce16ff259e8906aef159a7..41f26d9baf5a5cede2906c7b8fd785b5004f01db 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultTransferHandler.class and b/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultTransferHandler.class differ
index bf2683d47d4cb9b4dfe11a86689aaf897813aad6..0648f7eb96a300abb8e3da72048952f6746ee95f 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeyBinding.class and b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeyBinding.class differ
index 8a4084e18db7abdea6cea1183aaf6fc65aae1160..d234a5e95d3f2781d8f1a0b3a2f493d6a174da71 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapActionMap.class and b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapActionMap.class differ
index 13d41ade1757f478a7464d87a5c63bb20445af6b..0ef60fba6096355e345235a6a531bb19e91bdcc6 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapWrapper.class and b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapWrapper.class differ
index 8e04d60067352a3fda70684e7ab9014ea432374c..93fb71c906c936c3446eca7e6851ae230f9d4dc2 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/JTextComponent.class and b/libjava/classpath/lib/javax/swing/text/JTextComponent.class differ
index 559193a6692c3ef1381f79076528fb1efdb28ccc..28c0e257a50ea11f3276c5a80c23dffe10b49bb2 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/MaskFormatter.class and b/libjava/classpath/lib/javax/swing/text/MaskFormatter.class differ
index 5f0b6405411cceb9054c07251e402eeea504dc58..9ff1c9991b64d805dd9b026ffc88bb309f323a1f 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/TabSet.class and b/libjava/classpath/lib/javax/swing/text/TabSet.class differ
index a828807c1fc509f2970bf9a3fed137999c38f78f..ecb7ea118d7d66e2305978a3078c39ecdc838505 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/html/CSSParser.class and b/libjava/classpath/lib/javax/swing/text/html/CSSParser.class differ
index d390a8083d81a31c1a9b34eff7da26deb3aeea7b..d213fcbc6042d423953e16da7c2e0b2e0b1abc2e 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class and b/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class differ
index d358e47ac9031437d17bafe694fc7bcb6c8b1a50..9ceb67c7a63b768593006fb4d2a91360cd94bf3b 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class and b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class differ
index 790a40929cded2bef860ac045eb5b48faf494a2d..896f55e954127d9f1be17190b0ce8204ae8b5b74 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyle.class and b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyle.class differ
index f94d39409657dafcfd9a1da9220a410a8b85ade3..76409493a57567d75ddc4ffa7afc05be2db5ea83 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class and b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class differ
index 7e6f42cf3fe6b8ae1e1d0d8255169cd5c675a80f..c56498c117d93407ef1518251fea29cc99e7a323 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class and b/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class differ
index c52ba99a10e8d4b5fe265428722c45035c671fb9..43660e1361ad8623e5392e48a06372cea82da418 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/html/ViewAttributeSet.class and b/libjava/classpath/lib/javax/swing/text/html/ViewAttributeSet.class differ
index b35ed225f90b5344c11fdf31db085995c4c7c4d7..3a2d2889bffd112937c06adb51ae47c35981b64d 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class and b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class differ
index 03813c3bda63e331e9e06f78dd6a9840b189389b..43810867165885921b9e93c4f9ffba564c3815e8 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.class and b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.class differ
index c87947509a3c7f8e83470c3d5fd581bed1fdd8da..ec0e33c9ae3983399d894432ee6611091d10b397 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class and b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class differ
index 39db6c56f84c8c920ca0e302829a61678bad39a7..5da1d39fd7e560fe1ab8e278ddbf6d33b080f726 100644 (file)
Binary files a/libjava/classpath/lib/javax/tools/FileObject.class and b/libjava/classpath/lib/javax/tools/FileObject.class differ
index 1d3209f009bdbaf5ac1cf09bce0885cd9e50d7d0..a901890102a10f49bf1c1e21cccfe6e7ce352bfe 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class and b/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class differ
index 9c101dec842a6f83ee72b7e82c3b9005d84cc8ce..8bef9fe211b9806a8d238c3098e543a60110c53f 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/namespace/QName.class and b/libjava/classpath/lib/javax/xml/namespace/QName.class differ
index 79e8ac54944ea3a4b81f5a493b072580588a7f9f..e9fdeb86d8d1d28f2e61ebc3d78fc88c5b353881 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/parsers/DocumentBuilderFactory.class and b/libjava/classpath/lib/javax/xml/parsers/DocumentBuilderFactory.class differ
index ae7d1d26eb2192e92be9d51590487cec1321732a..9090c04f4ae46d1dffc3f3d8ad1a854910b87ff0 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/parsers/SAXParserFactory.class and b/libjava/classpath/lib/javax/xml/parsers/SAXParserFactory.class differ
index ec7264a198006469f25013739a5bdc5c308dda5d..1059715baf44e2248b6484c88a3615a8ad0619ef 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class and b/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class differ
index 670d77cb8a9f3bb9cd97081c5a80230ab02d2c9e..24d1a36a60435f05bd99f2436af011e9af9c14d5 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class and b/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class differ
index 6917a3b48ab4d10ab6f3fa06e009c302aa3f18e5..dab5cee5a126aeed5e1763d68388289a180349d9 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class and b/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class differ
index 5429f7122db149b46f78097cf678b84f0d39db88..099fb58c740abb7c1c115f9d6ee74d0203315306 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/transform/TransformerException.class and b/libjava/classpath/lib/javax/xml/transform/TransformerException.class differ
index 382869061c87a94222b5054bdd607cce31336950..b26db701c3bf58dd48be3126154c9dc9387642f8 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/transform/TransformerFactory.class and b/libjava/classpath/lib/javax/xml/transform/TransformerFactory.class differ
index 74de65472e324344b8b75ec17b48c0350fb598d4..b6ef92c1ea31aaad884abff592937f1f72e596ab 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/validation/SchemaFactory.class and b/libjava/classpath/lib/javax/xml/validation/SchemaFactory.class differ
index bcd8cf0dc20d66ebf67ea1d78059b1f689a95b58..73b9fbef1713f01f9627d9363c888c939d588d12 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/xpath/XPathFactory.class and b/libjava/classpath/lib/javax/xml/xpath/XPathFactory.class differ
index a9202919bc9d2968c138397adf4cdf683657dac8..f491079380a18acc4072f8332b6ac68659fcba42 100644 (file)
Binary files a/libjava/classpath/lib/org/ietf/jgss/Oid.class and b/libjava/classpath/lib/org/ietf/jgss/Oid.class differ
index d4900bef027793a6ffc72310a4f7c44fddb5c445..7e5cf6ae038d313f3ed4b44ecdfe2fd9a389d66a 100644 (file)
Binary files a/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class and b/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class differ
diff --git a/libjava/classpath/ltgcc.m4 b/libjava/classpath/ltgcc.m4
new file mode 100644 (file)
index 0000000..844e2bc
--- /dev/null
@@ -0,0 +1,60 @@
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.  Locally modified to
+# run its tests on C programs, because we cannot link Java programs until
+# we have finished building libjava.
+AC_DEFUN([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=c
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+GCC=yes
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+_LT_TAGVAR(compiler, $1)=${GCJ-gcj}
+AC_LANG_RESTORE
+])# _LT_LANG_GCJ_CONFIG
index 9d8441856208704f76a36abd11d6923fb5951165..8dfa0b3b5584265d34f92a05e5eb4fea684d586f 100644 (file)
@@ -1,30 +1,32 @@
-# Generated from ltmain.m4sh; do not edit by hand
+# Generated from ltmain.m4sh.
 
-# ltmain.sh (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
+# ltmain.sh (GNU libtool) 2.2.6
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
-# This program is free software; you can redistribute it and/or modify
+# GNU Libtool is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.
 #
-# This program is distributed in the hope that it will be useful, but
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Usage: $progname [OPTION]... [MODE-ARG]...
 #
@@ -63,7 +65,7 @@
 #       compiler:              $LTCC
 #       compiler flags:                $LTCFLAGS
 #       linker:                $LD (gnu? $with_gnu_ld)
-#       $progname:             (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
+#       $progname:             (GNU libtool) 2.2.6
 #       automake:              $automake_version
 #       autoconf:              $autoconf_version
 #
@@ -71,9 +73,9 @@
 
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=2.1a
-TIMESTAMP=" 1.2435 2007/03/18 18:44:42"
-package_revision=1.2435
+VERSION=2.2.6
+TIMESTAMP=""
+package_revision=1.3012
 
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -93,12 +95,16 @@ DUALCASE=1; export DUALCASE # for MKS sh
 # Only set LANG and LC_ALL to C if already set.
 # These must not be set unconditionally because not all systems understand
 # e.g. LANG=C (notably SCO).
-for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+lt_user_locale=
+lt_safe_locale=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 do
   eval "if test \"\${$lt_var+set}\" = set; then
           save_$lt_var=\$$lt_var
           $lt_var=C
          export $lt_var
+         lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
+         lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
        fi"
 done
 
@@ -110,15 +116,15 @@ $lt_unset CDPATH
 
 : ${CP="cp -f"}
 : ${ECHO="echo"}
-: ${EGREP="/bin/grep -E"}
-: ${FGREP="/bin/grep -F"}
-: ${GREP="/bin/grep"}
+: ${EGREP="/usr/bin/grep -E"}
+: ${FGREP="/usr/bin/grep -F"}
+: ${GREP="/usr/bin/grep"}
 : ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/bin/sed"}
+: ${SED="/opt/local/bin/gsed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -138,6 +144,32 @@ IFS="      $lt_nl"
 dirname="s,/[^/]*$,,"
 basename="s,^.*/,,"
 
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+  # Extract subdirectory from the argument.
+  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+  if test "X$func_dirname_result" = "X${1}"; then
+    func_dirname_result="${3}"
+  else
+    func_dirname_result="$func_dirname_result${2}"
+  fi
+  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+# Generated shell functions inserted here.
+
 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
 # is ksh but when the shell is invoked as "sh" and the current value of
 # the _XPG environment variable is not equal to 1 (one), the special
@@ -148,13 +180,17 @@ progpath="$0"
 # The name of this program:
 # In the unlikely event $progname began with a '-', it would play havoc with
 # func_echo (imagine progname=-n), so we prepend ./ in that case:
-progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'`
+func_dirname_and_basename "$progpath"
+progname=$func_basename_result
+case $progname in
+  -*) progname=./$progname ;;
+esac
 
 # Make sure we have an absolute path for reexecution:
 case $progpath in
   [\\/]*|[A-Za-z]:\\*) ;;
   *[\\/]*)
-     progdir=`$ECHO "X$progpath" | $Xsed -e "$dirname"`
+     progdir=$func_dirname_result
      progdir=`cd "$progdir" && pwd`
      progpath="$progdir/$progname"
      ;;
@@ -200,13 +236,14 @@ opt_dry_run=false
 opt_help=false
 opt_quiet=false
 opt_verbose=false
+opt_warning=:
 
 # func_echo arg...
 # Echo program name prefixed message, along with the current mode
 # name if it has been set yet.
 func_echo ()
 {
-    $ECHO "$progname${mode+: }$mode: "${1+"$@"}
+    $ECHO "$progname${mode+: }$mode: $*"
 }
 
 # func_verbose arg...
@@ -232,7 +269,10 @@ func_error ()
 # Echo program name prefixed warning message to standard error.
 func_warning ()
 {
-    $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+
+    # bash bug again:
+    :
 }
 
 # func_fatal_error arg...
@@ -423,6 +463,32 @@ func_show_eval ()
 }
 
 
+# func_show_eval_locale cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.  Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$lt_user_locale
+           $my_cmd"
+      my_status=$?
+      eval "$lt_safe_locale"
+      if test "$my_status" -eq 0; then :; else
+       eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+
 
 
 
@@ -515,7 +581,7 @@ EOF
 fi
 
 magic="%%%MAGIC variable%%%"
-
+magic_exe="%%%MAGIC EXE variable%%%"
 
 # Global variables.
 # $mode is unset
@@ -626,191 +692,6 @@ func_enable_tag ()
   esac
 }
 
-
-func_mode_help ()
-{
-    # We need to display help for each of the modes.
-    case $mode in
-      "")
-        # Generic help is extracted from the usage comments
-        # at the start of this file.
-        func_help
-        ;;
-
-      clean)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
-        ;;
-
-      compile)
-      $ECHO \
-"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
-  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
-  -no-suppress      do not suppress compiler output for multiple passes
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
-  -shared           do not build a \`.o' file suitable for static linking
-  -static           only build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-        ;;
-
-      execute)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
-  -dlopen FILE      add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
-        ;;
-
-      finish)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
-        ;;
-
-      install)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
-
-The following components of INSTALL-COMMAND are treated specially:
-
-  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-        ;;
-
-      link)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-                    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-                    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -precious-files-regex REGEX
-                    don't remove output files matching REGEX
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -shared           only do dynamic linking of libtool libraries
-  -shrext SUFFIX    override the standard shared library file extension
-  -static           do not do any dynamic linking of uninstalled libtool libraries
-  -static-libtool-libs
-                    do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-                    specify library version info [each variable defaults to 0]
-  -weak LIBNAME     declare that the target provides the LIBNAME interface
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename.  Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
-        ;;
-
-      uninstall)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
-        ;;
-
-      *)
-        func_fatal_help "invalid operation mode \`$mode'"
-        ;;
-    esac
-
-    $ECHO
-    $ECHO "Try \`$progname --help' for more information about other modes."
-
-    exit $?
-}
-
-# Generated shell functions inserted here.
-
-
 # Parse options once, thoroughly.  This comes as soon as possible in
 # the script to make things like `libtool --version' happen quickly.
 {
@@ -846,11 +727,11 @@ Otherwise, only FILE itself is deleted using RM."
     shift
 
     case $opt in
-      --config)                func_config                                     ;;
+      --config)                func_config                                     ;;
 
       --debug)         preserve_args="$preserve_args $opt"
-                       func_echo "enabling shell trace mode"
-                       opt_debug='set -x'
+                       func_echo "enabling shell trace mode"
+                       opt_debug='set -x'
                        $opt_debug
                        ;;
 
@@ -864,7 +745,7 @@ Otherwise, only FILE itself is deleted using RM."
       --finish)                mode="finish"                                   ;;
 
       --mode)          test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       case $1 in
+                       case $1 in
                          # Valid mode arguments:
                          clean)        ;;
                          compile)      ;;
@@ -882,19 +763,19 @@ Otherwise, only FILE itself is deleted using RM."
                             ;;
                        esac
 
-                       mode="$1"
+                       mode="$1"
                        shift
                        ;;
 
       --preserve-dup-deps)
-                       opt_duplicate_deps=:                            ;;
+                       opt_duplicate_deps=:                            ;;
 
       --quiet|--silent)        preserve_args="$preserve_args $opt"
-                       opt_silent=:
+                       opt_silent=:
                        ;;
 
       --verbose| -v)   preserve_args="$preserve_args $opt"
-                       opt_silent=false
+                       opt_silent=false
                        ;;
 
       --tag)           test "$#" -eq 0 && func_missing_arg "$opt" && break
@@ -917,16 +798,14 @@ Otherwise, only FILE itself is deleted using RM."
       -*)              func_fatal_help "unrecognized option \`$opt'"   ;;
 
       *)               nonopt="$opt"
-                       break
+                       break
                        ;;
     esac
   done
 
-  # Now that we've collected a possible --mode arg, show help if necessary
-  $opt_help && func_mode_help
 
   case $host in
-    *cygwin* | *mingw* | *pw32*)
+    *cygwin* | *mingw* | *pw32* | *cegcc*)
       # don't eliminate duplications in $postdeps and $predeps
       opt_duplicate_compiler_generated_deps=:
       ;;
@@ -980,7 +859,7 @@ _LT_EOF
 ##    Main.    ##
 ## ----------- ##
 
-{
+$opt_help || {
   # Sanity checks first:
   func_check_version_match
 
@@ -1014,8 +893,9 @@ _LT_EOF
 # determined imposters.
 func_lalib_p ()
 {
-    $SED -e 4q "$1" 2>/dev/null \
-      | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+    test -f "$1" &&
+      $SED -e 4q "$1" 2>/dev/null \
+        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
 }
 
 # func_lalib_unsafe_p file
@@ -1028,7 +908,7 @@ func_lalib_p ()
 func_lalib_unsafe_p ()
 {
     lalib_p=no
-    if test -r "$1" && exec 5<&1 <"$1"; then
+    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
        for lalib_p_l in 1 2 3 4
        do
            read lalib_p_line
@@ -1036,18 +916,55 @@ func_lalib_unsafe_p ()
                \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
            esac
        done
-       exec 1<&5 5<&-
+       exec 0<&5 5<&-
     fi
     test "$lalib_p" = yes
 }
 
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+    func_lalib_p "$1"
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+    func_ltwrapper_exec_suffix=
+    case $1 in
+    *.exe) ;;
+    *) func_ltwrapper_exec_suffix=.exe ;;
+    esac
+    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+    func_ltwrapper_scriptname_result=""
+    if func_ltwrapper_executable_p "$1"; then
+       func_dirname_and_basename "$1" "" "."
+       func_stripname '' '.exe' "$func_basename_result"
+       func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+    fi
+}
+
 # func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script.
+# True iff FILE is a libtool wrapper script or wrapper executable
 # This function is only a basic sanity check; it will hardly flush out
 # determined imposters.
 func_ltwrapper_p ()
 {
-    func_lalib_p "$1"
+    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
 }
 
 
@@ -1084,62 +1001,13 @@ func_source ()
 }
 
 
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-func_win32_libid ()
-{
-  $opt_debug
-  win32_libid_type="unknown"
-  win32_fileres=`file -L $1 2>/dev/null`
-  case $win32_fileres in
-  *ar\ archive\ import\ library*) # definitely import
-    win32_libid_type="x86 archive import"
-    ;;
-  *ar\ archive*) # could be an import, or static
-    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 |
-       $SED -n -e '
-           1,100{
-               / I /{
-                   s,.*,import,
-                   p
-                   q
-               }
-           }'`
-      case $win32_nmres in
-      import*)  win32_libid_type="x86 archive import";;
-      *)        win32_libid_type="x86 archive static";;
-      esac
-    fi
-    ;;
-  *DLL*)
-    win32_libid_type="x86 DLL"
-    ;;
-  *executable*) # but shell scripts are "executable" too...
-    case $win32_fileres in
-    *MS\ Windows\ PE\ Intel*)
-      win32_libid_type="x86 DLL"
-      ;;
-    esac
-    ;;
-  esac
-  $ECHO "$win32_libid_type"
-}
-
-
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
 {
     $opt_debug
     if test -n "$available_tags" && test -z "$tagname"; then
@@ -1192,759 +1060,577 @@ func_infer_tag ()
 
 
 
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
 {
-    $opt_debug
-    my_outputname="$1"
-    my_originator="$2"
-    my_pic_p="${3-no}"
-    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
-    my_dlsyms=
-
-    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-      if test -n "$NM" && test -n "$global_symbol_pipe"; then
-       my_dlsyms="${my_outputname}S.c"
-      else
-       func_error "not configured to extract global symbols from dlpreopened files"
-      fi
+    write_libobj=${1}
+    if test "$build_libtool_libs" = yes; then
+      write_lobj=\'${2}\'
+    else
+      write_lobj=none
     fi
 
-    if test -n "$my_dlsyms"; then
-      case $my_dlsyms in
-      "") ;;
-      *.c)
-       # Discover the nlist of each of the dlfiles.
-       nlist="$output_objdir/${my_outputname}.nm"
+    if test "$build_old_libs" = yes; then
+      write_oldobj=\'${3}\'
+    else
+      write_oldobj=none
+    fi
 
-       func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+    $opt_dry_run || {
+      cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
 
-       # Parse the name list into a source file.
-       func_echo "creating $output_objdir/$my_dlsyms"
+# Name of the PIC object.
+pic_object=$write_lobj
 
-       $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
 
-#ifdef __cplusplus
-extern \"C\" {
-#endif
+EOF
+      $MV "${write_libobj}T" "${write_libobj}"
+    }
+}
 
-/* External symbol declarations for the compiler. */\
-"
+# func_mode_compile arg...
+func_mode_compile ()
+{
+    $opt_debug
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+    pie_flag=
 
-       if test "$dlself" = yes; then
-         func_echo "generating symbol list for \`$output'"
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+       # do not "continue".  Instead, add this to base_compile
+       lastarg="$arg"
+       arg_mode=normal
+       ;;
 
-         $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+      target )
+       libobj="$arg"
+       arg_mode=normal
+       continue
+       ;;
 
-         # Add our own program objects to the symbol list.
-         progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-         for progfile in $progfiles; do
-           func_echo "extracting global C symbols from \`$progfile'"
-           $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
-         done
+      normal )
+       # Accept any command-line options.
+       case $arg in
+       -o)
+         test -n "$libobj" && \
+           func_fatal_error "you cannot specify \`-o' more than once"
+         arg_mode=target
+         continue
+         ;;
 
-         if test -n "$exclude_expsyms"; then
-           $opt_dry_run || {
-             eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-             eval '$MV "$nlist"T "$nlist"'
-           }
-         fi
+       -pie | -fpie | -fPIE)
+          pie_flag="$pie_flag $arg"
+         continue
+         ;;
 
-         if test -n "$export_symbols_regex"; then
-           $opt_dry_run || {
-             eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-             eval '$MV "$nlist"T "$nlist"'
-           }
-         fi
+       -shared | -static | -prefer-pic | -prefer-non-pic)
+         later="$later $arg"
+         continue
+         ;;
 
-         # Prepare the list of exported symbols
-         if test -z "$export_symbols"; then
-           export_symbols="$output_objdir/$outputname.exp"
-           $opt_dry_run || {
-             $RM $export_symbols
-             eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-             case $host in
-             *cygwin* | *mingw* )
-                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
-               ;;
-             esac
-           }
-         else
-           $opt_dry_run || {
-             eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
-             eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
-             eval '$MV "$nlist"T "$nlist"'
-             case $host in
-               *cygwin | *mingw* )
-                 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-                 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
-                 ;;
-             esac
-           }
-         fi
-       fi
+       -no-suppress)
+         suppress_opt=no
+         continue
+         ;;
 
-       for dlprefile in $dlprefiles; do
-         func_echo "extracting global C symbols from \`$dlprefile'"
-         func_basename "$dlprefile"
-         name="$func_basename_result"
-         $opt_dry_run || {
-           eval '$ECHO ": $name " >> "$nlist"'
-           eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-         }
-       done
+       -Xcompiler)
+         arg_mode=arg  #  the next one goes into the "base_compile" arg list
+         continue      #  The current "srcfile" will either be retained or
+         ;;            #  replaced later.  I would guess that would be a bug.
 
-       $opt_dry_run || {
-         # Make sure we have at least an empty file.
-         test -f "$nlist" || : > "$nlist"
+       -Wc,*)
+         func_stripname '-Wc,' '' "$arg"
+         args=$func_stripname_result
+         lastarg=
+         save_ifs="$IFS"; IFS=','
+         for arg in $args; do
+           IFS="$save_ifs"
+           func_quote_for_eval "$arg"
+           lastarg="$lastarg $func_quote_for_eval_result"
+         done
+         IFS="$save_ifs"
+         func_stripname ' ' '' "$lastarg"
+         lastarg=$func_stripname_result
 
-         if test -n "$exclude_expsyms"; then
-           $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-           $MV "$nlist"T "$nlist"
-         fi
+         # Add the arguments to base_compile.
+         base_compile="$base_compile $lastarg"
+         continue
+         ;;
 
-         # Try sorting and uniquifying the output.
-         if $GREP -v "^: " < "$nlist" |
-             if sort -k 3 </dev/null >/dev/null 2>&1; then
-               sort -k 3
-             else
-               sort +2
-             fi |
-             uniq > "$nlist"S; then
-           :
-         else
-           $GREP -v "^: " < "$nlist" > "$nlist"S
-         fi
+       *)
+         # Accept the current argument as the source file.
+         # The previous "srcfile" becomes the current argument.
+         #
+         lastarg="$srcfile"
+         srcfile="$arg"
+         ;;
+       esac  #  case $arg
+       ;;
+      esac    #  case $arg_mode
 
-         if test -f "$nlist"S; then
-           eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
-         else
-           $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
-         fi
+      # Aesthetically quote the previous argument.
+      func_quote_for_eval "$lastarg"
+      base_compile="$base_compile $func_quote_for_eval_result"
+    done # for arg
 
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
+    case $arg_mode in
+    arg)
+      func_fatal_error "you must specify an argument for -Xcompile"
+      ;;
+    target)
+      func_fatal_error "you must specify a target with \`-o'"
+      ;;
+    *)
+      # Get the name of the library object.
+      test -z "$libobj" && {
+       func_basename "$srcfile"
+       libobj="$func_basename_result"
+      }
+      ;;
+    esac
 
-/* The mapping between symbol names and symbols.  */
-typedef struct {
-  const char *name;
-  void *address;
-} lt_dlsymlist;
-"
-         case $host in
-         *cygwin* | *mingw* )
-           $ECHO >> "$output_objdir/$my_dlsyms" "\
-/* DATA imports from DLLs on WIN32 con't be const, because
-   runtime relocations are performed -- see ld's documentation
-   on pseudo-relocs.  */"
-           lt_dlsym_const= ;;
-         *osf5*)
-           echo >> "$output_objdir/$my_dlsyms" "\
-/* This system does not cope well with relocations in const data */"
-           lt_dlsym_const= ;;
-         *)
-           lt_dlsym_const=const ;;
-         esac
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    case $libobj in
+    *.[cCFSifmso] | \
+    *.ada | *.adb | *.ads | *.asm | \
+    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
+      func_xform "$libobj"
+      libobj=$func_xform_result
+      ;;
+    esac
 
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
-extern $lt_dlsym_const lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
-$lt_dlsym_const lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
-  { \"$my_originator\", (void *) 0 },"
+    case $libobj in
+    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+    *)
+      func_fatal_error "cannot determine name of library object from \`$libobj'"
+      ;;
+    esac
 
-         eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+    func_infer_tag $base_compile
 
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
-  {0, (void *) 0}
-};
+    for arg in $later; do
+      case $arg in
+      -shared)
+       test "$build_libtool_libs" != yes && \
+         func_fatal_configuration "can not build a shared library"
+       build_old_libs=no
+       continue
+       ;;
 
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
+      -static)
+       build_libtool_libs=no
+       build_old_libs=yes
+       continue
+       ;;
 
-#ifdef __cplusplus
-}
-#endif\
-"
-       } # !$opt_dry_run
+      -prefer-pic)
+       pic_mode=yes
+       continue
+       ;;
 
-       pic_flag_for_symtable=
-       case "$compile_command " in
-       *" -static "*) ;;
-       *)
-         case $host in
-         # compiling the symbol table file with pic_flag works around
-         # a FreeBSD bug that causes programs to crash when -lm is
-         # linked before any other PIC object.  But we must not use
-         # pic_flag when linking with -static.  The problem exists in
-         # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-         *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
-           pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
-         *-*-hpux*)
-           pic_flag_for_symtable=" $pic_flag"  ;;
-         *)
-           if test "X$my_pic_p" != Xno; then
-             pic_flag_for_symtable=" $pic_flag"
-           fi
-           ;;
-         esac
-         ;;
-       esac
-       symtab_cflags=
-       for arg in $LTCFLAGS; do
-         case $arg in
-         -pie | -fpie | -fPIE) ;;
-         *) symtab_cflags="$symtab_cflags $arg" ;;
-         esac
-       done
+      -prefer-non-pic)
+       pic_mode=no
+       continue
+       ;;
+      esac
+    done
 
-       # Now compile the dynamic symbol file.
-       func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+    func_quote_for_eval "$libobj"
+    test "X$libobj" != "X$func_quote_for_eval_result" \
+      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'   &()|`$[]' \
+      && func_warning "libobj name \`$libobj' may not contain shell special characters."
+    func_dirname_and_basename "$obj" "/" ""
+    objname="$func_basename_result"
+    xdir="$func_dirname_result"
+    lobj=${xdir}$objdir/$objname
 
-       # Clean up the generated files.
-       func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+    test -z "$base_compile" && \
+      func_fatal_help "you must specify a compilation command"
 
-       # Transform the symbol file into the correct name.
-       symfileobj="$output_objdir/${my_outputname}S.$objext"
-       case $host in
-       *cygwin* | *mingw* )
-         if test -f "$output_objdir/$my_outputname.def"; then
-           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-         else
-           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-         fi
-         ;;
-       *)
-         compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-         finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-         ;;
-       esac
-       ;;
-      *)
-       func_fatal_error "unknown suffix for \`$my_dlsyms'"
-       ;;
-      esac
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
     else
-      # We keep going just in case the user didn't refer to
-      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-      # really was required.
+      removelist="$lobj $libobj ${libobj}T"
+    fi
 
-      # Nullify the symbol file.
-      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2* | cegcc*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
     fi
-}
 
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
-    $opt_debug
-    f_ex_an_ar_dir="$1"; shift
-    f_ex_an_ar_oldlib="$1"
-    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" 'exit $?'
-    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
-     :
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
     else
-      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+      output_obj=
+      need_locks=no
+      lockfile=
     fi
-}
 
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+       func_echo "Waiting for $lockfile to be removed"
+       sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+       $ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
 
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
-    $opt_debug
-    my_gentop="$1"; shift
-    my_oldlibs=${1+"$@"}
-    my_oldobjs=""
-    my_xlib=""
-    my_xabs=""
-    my_xdir=""
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
 
-    for my_xlib in $my_oldlibs; do
-      # Extract the objects.
-      case $my_xlib in
-       [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
-       *) my_xabs=`pwd`"/$my_xlib" ;;
-      esac
-      func_basename "$my_xlib"
-      my_xlib="$func_basename_result"
-      my_xlib_u=$my_xlib
-      while :; do
-        case " $extracted_archives " in
-       *" $my_xlib_u "*)
-         extracted_serial=`expr $extracted_serial + 1`
-         my_xlib_u=lt$extracted_serial-$my_xlib ;;
-       *) break ;;
-       esac
-      done
-      extracted_archives="$extracted_archives $my_xlib_u"
-      my_xdir="$my_gentop/$my_xlib_u"
+       $opt_dry_run || $RM $removelist
+       exit $EXIT_FAILURE
+      fi
+      removelist="$removelist $output_obj"
+      $ECHO "$srcfile" > "$lockfile"
+    fi
 
-      func_mkdir_p "$my_xdir"
+    $opt_dry_run || $RM $removelist
+    removelist="$removelist $lockfile"
+    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
 
-      case $host in
-      *-darwin*)
-       func_echo "Extracting $my_xabs"
-       # Do not bother doing anything if just a dry run
-       $opt_dry_run || {
-         darwin_orig_dir=`pwd`
-         cd $my_xdir || exit $?
-         darwin_archive=$my_xabs
-         darwin_curdir=`pwd`
-         darwin_base_archive=`basename $darwin_archive`
-         darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
-         if test -n "$darwin_arches"; then
-           darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
-           darwin_arch=
-           func_echo "$darwin_base_archive has multiple architectures $darwin_arches"
-           for darwin_arch in  $darwin_arches ; do
-             func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-             lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-             cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-             func_extract_an_archive "`pwd`" "${darwin_base_archive}"
-             cd "$darwin_curdir"
-             $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
-           done # $darwin_arches
-            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
-           darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
-           darwin_file=
-           darwin_files=
-           for darwin_file in $darwin_filelist; do
-             darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
-             lipo -create -output "$darwin_file" $darwin_files
-           done # $darwin_filelist
-           $RM -rf unfat-$$
-           cd "$darwin_orig_dir"
-         else
-           cd $darwin_orig_dir
-           func_extract_an_archive "$my_xdir" "$my_xabs"
-         fi # $darwin_arches
-       } # !$opt_dry_run
-       ;;
-      *)
-        func_extract_an_archive "$my_xdir" "$my_xabs"
-       ;;
-      esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-    done
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+    func_quote_for_eval "$srcfile"
+    qsrcfile=$func_quote_for_eval_result
 
-    func_extract_archives_result="$my_oldobjs"
-}
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
 
+      if test "$pic_mode" != no; then
+       command="$base_compile $qsrcfile $pic_flag"
+      else
+       # Don't build PIC code
+       command="$base_compile $qsrcfile"
+      fi
 
+      func_mkdir_p "$xdir$objdir"
 
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
-{
-    write_libobj=${1}
-    if test "$build_libtool_libs" = yes; then
-      write_lobj=\'${2}\'
-    else
-      write_lobj=none
+      if test -z "$output_obj"; then
+       # Place PIC objects in $objdir
+       command="$command -o $lobj"
+      fi
+
+      func_show_eval_locale "$command" \
+          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+       $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+       $opt_dry_run || $RM $removelist
+       exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+       func_show_eval '$MV "$output_obj" "$lobj"' \
+         'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+
+      # Allow error messages only from the first compilation.
+      if test "$suppress_opt" = yes; then
+       suppress_output=' >/dev/null 2>&1'
+      fi
     fi
 
+    # Only build a position-dependent object if we build old libraries.
     if test "$build_old_libs" = yes; then
-      write_oldobj=\'${3}\'
-    else
-      write_oldobj=none
+      if test "$pic_mode" != yes; then
+       # Don't build PIC code
+       command="$base_compile $qsrcfile$pie_flag"
+      else
+       command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+       command="$command -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      func_show_eval_locale "$command" \
+        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+       $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+       $opt_dry_run || $RM $removelist
+       exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+       func_show_eval '$MV "$output_obj" "$obj"' \
+         'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
     fi
 
     $opt_dry_run || {
-      cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
+      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
 
-# Name of the PIC object.
-pic_object=$write_lobj
+      # Unlock the critical section if it was locked
+      if test "$need_locks" != no; then
+       removelist=$lockfile
+        $RM "$lockfile"
+      fi
+    }
 
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
+    exit $EXIT_SUCCESS
+}
 
-EOF
-      mv -f "${write_libobj}T" "${write_libobj}"
-    }
+$opt_help || {
+test "$mode" = compile && func_mode_compile ${1+"$@"}
 }
 
-# func_mode_compile arg...
-func_mode_compile ()
+func_mode_help ()
 {
-    $opt_debug
-    # Get the compilation command and the source file.
-    base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
-    suppress_opt=yes
-    suppress_output=
-    arg_mode=normal
-    libobj=
-    later=
-    pie_flag=
+    # We need to display help for each of the modes.
+    case $mode in
+      "")
+        # Generic help is extracted from the usage comments
+        # at the start of this file.
+        func_help
+        ;;
 
-    for arg
-    do
-      case $arg_mode in
-      arg  )
-       # do not "continue".  Instead, add this to base_compile
-       lastarg="$arg"
-       arg_mode=normal
-       ;;
+      clean)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
 
-      target )
-       libobj="$arg"
-       arg_mode=normal
-       continue
-       ;;
+Remove files from the build directory.
 
-      normal )
-       # Accept any command-line options.
-       case $arg in
-       -o)
-         test -n "$libobj" && \
-           func_fatal_error "you cannot specify \`-o' more than once"
-         arg_mode=target
-         continue
-         ;;
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
 
-       -pie | -fpie | -fPIE)
-          pie_flag="$pie_flag $arg"
-         continue
-         ;;
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+        ;;
 
-       -shared | -static | -prefer-pic | -prefer-non-pic)
-         later="$later $arg"
-         continue
-         ;;
+      compile)
+      $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
 
-       -no-suppress)
-         suppress_opt=no
-         continue
-         ;;
+Compile a source file into a libtool library object.
 
-       -Xcompiler)
-         arg_mode=arg  #  the next one goes into the "base_compile" arg list
-         continue      #  The current "srcfile" will either be retained or
-         ;;            #  replaced later.  I would guess that would be a bug.
+This mode accepts the following additional options:
 
-       -Wc,*)
-         func_stripname '-Wc,' '' "$arg"
-         args=$func_stripname_result
-         lastarg=
-         save_ifs="$IFS"; IFS=','
-         for arg in $args; do
-           IFS="$save_ifs"
-           func_quote_for_eval "$arg"
-           lastarg="$lastarg $func_quote_for_eval_result"
-         done
-         IFS="$save_ifs"
-         func_stripname ' ' '' "$lastarg"
-         lastarg=$func_stripname_result
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -no-suppress      do not suppress compiler output for multiple passes
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -shared           do not build a \`.o' file suitable for static linking
+  -static           only build a \`.o' file suitable for static linking
 
-         # Add the arguments to base_compile.
-         base_compile="$base_compile $lastarg"
-         continue
-         ;;
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
 
-       *)
-         # Accept the current argument as the source file.
-         # The previous "srcfile" becomes the current argument.
-         #
-         lastarg="$srcfile"
-         srcfile="$arg"
-         ;;
-       esac  #  case $arg
-       ;;
-      esac    #  case $arg_mode
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+        ;;
 
-      # Aesthetically quote the previous argument.
-      func_quote_for_eval "$lastarg"
-      base_compile="$base_compile $func_quote_for_eval_result"
-    done # for arg
+      execute)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
 
-    case $arg_mode in
-    arg)
-      func_fatal_error "you must specify an argument for -Xcompile"
-      ;;
-    target)
-      func_fatal_error "you must specify a target with \`-o'"
-      ;;
-    *)
-      # Get the name of the library object.
-      test -z "$libobj" && {
-       func_basename "$srcfile"
-       libobj="$func_basename_result"
-      }
-      ;;
-    esac
+Automatically set library path, then run a program.
 
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSifmso]'
-    case $libobj in
-    *.ada) xform=ada ;;
-    *.adb) xform=adb ;;
-    *.ads) xform=ads ;;
-    *.asm) xform=asm ;;
-    *.c++) xform=c++ ;;
-    *.cc) xform=cc ;;
-    *.ii) xform=ii ;;
-    *.class) xform=class ;;
-    *.cpp) xform=cpp ;;
-    *.cxx) xform=cxx ;;
-    *.[fF][09]?) xform='[fF][09].' ;;
-    *.for) xform=for ;;
-    *.java) xform=java ;;
-    *.obj) xform=obj ;;
-    esac
+This mode accepts the following additional options:
 
-    libobj=`$ECHO "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+  -dlopen FILE      add the directory containing FILE to the library path
 
-    case $libobj in
-    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
-    *)
-      func_fatal_error "cannot determine name of library object from \`$libobj'"
-      ;;
-    esac
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
 
-    func_infer_tag $base_compile
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
 
-    for arg in $later; do
-      case $arg in
-      -shared)
-       test "$build_libtool_libs" != yes && \
-         func_fatal_configuration "can not build a shared library"
-       build_old_libs=no
-       continue
-       ;;
+Then, COMMAND is executed, with ARGS as arguments."
+        ;;
 
-      -static)
-       build_libtool_libs=no
-       build_old_libs=yes
-       continue
-       ;;
+      finish)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
 
-      -prefer-pic)
-       pic_mode=yes
-       continue
-       ;;
+Complete the installation of libtool libraries.
 
-      -prefer-non-pic)
-       pic_mode=no
-       continue
-       ;;
-      esac
-    done
+Each LIBDIR is a directory that contains libtool libraries.
 
-    func_quote_for_eval "$libobj"
-    test "X$libobj" != "X$func_quote_for_eval_result" \
-      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'  &()|`$[]' \
-      && func_warning "libobj name \`$libobj' may not contain shell special characters."
-    func_basename "$obj"
-    objname="$func_basename_result"
-    func_dirname "$obj" "/" ""
-    xdir="$func_dirname_result"
-    lobj=${xdir}$objdir/$objname
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+        ;;
 
-    test -z "$base_compile" && \
-      func_fatal_help "you must specify a compilation command"
+      install)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
 
-    # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
-      removelist="$obj $lobj $libobj ${libobj}T"
-    else
-      removelist="$lobj $libobj ${libobj}T"
-    fi
+Install executables or libraries.
 
-    $opt_dry_run || $RM $removelist
-    trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
 
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
+The following components of INSTALL-COMMAND are treated specially:
 
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-      removelist="$removelist $output_obj $lockfile"
-      trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
-    else
-      output_obj=
-      need_locks=no
-      lockfile=
-    fi
+  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 
-    # Lock this critical section if it is needed
-    # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
-      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
-       func_echo "Waiting for $lockfile to be removed"
-       sleep 2
-      done
-    elif test "$need_locks" = warn; then
-      if test -f "$lockfile"; then
-       $ECHO "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+        ;;
 
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
+      link)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
 
-       $opt_dry_run || $RM $removelist
-       exit $EXIT_FAILURE
-      fi
-      $ECHO "$srcfile" > "$lockfile"
-    fi
+Link object files or libraries together to form another library, or to
+create an executable program.
 
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
-    func_quote_for_eval "$srcfile"
-    qsrcfile=$func_quote_for_eval_result
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
 
-    $opt_dry_run || $RM "$libobj" "${libobj}T"
+The following components of LINK-COMMAND are treated specially:
 
-    # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
-      # Without this assignment, base_compile gets emptied.
-      fbsd_hideous_sh_bug=$base_compile
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+                    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+                    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -shared           only do dynamic linking of libtool libraries
+  -shrext SUFFIX    override the standard shared library file extension
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+                    specify library version info [each variable defaults to 0]
+  -weak LIBNAME     declare that the target provides the LIBNAME interface
 
-      if test "$pic_mode" != no; then
-       command="$base_compile $qsrcfile $pic_flag"
-      else
-       # Don't build PIC code
-       command="$base_compile $qsrcfile"
-      fi
+All other options (arguments beginning with \`-') are ignored.
 
-      func_mkdir_p "$xdir$objdir"
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
 
-      if test -z "$output_obj"; then
-       # Place PIC objects in $objdir
-       command="$command -o $lobj"
-      fi
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
 
-      $opt_dry_run || $RM "$lobj" "$output_obj"
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
 
-      func_show_eval "$command"        \
-          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+        ;;
 
-      if test "$need_locks" = warn &&
-        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-       $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
+      uninstall)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
 
-but it should contain:
-$srcfile
+Remove libraries from an installation directory.
 
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
 
-       $opt_dry_run || $RM $removelist
-       exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed, then go on to compile the next one
-      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
-       func_show_eval '$MV "$output_obj" "$lobj"' \
-         'error=$?; $opt_dry_run || $RM $removelist; exit $error'
-      fi
-
-      # Allow error messages only from the first compilation.
-      if test "$suppress_opt" = yes; then
-       suppress_output=' >/dev/null 2>&1'
-      fi
-    fi
-
-    # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
-       # Don't build PIC code
-       command="$base_compile $qsrcfile$pie_flag"
-      else
-       command="$base_compile $qsrcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-       command="$command -o $obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
-      $opt_dry_run || $RM "$obj" "$output_obj"
-      func_show_eval "$command" \
-        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
-      if test "$need_locks" = warn &&
-        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-       $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-       $opt_dry_run || $RM $removelist
-       exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed
-      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
-       func_show_eval '$MV "$output_obj" "$obj"' \
-         'error=$?; $opt_dry_run || $RM $removelist; exit $error'
-      fi
-    fi
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+        ;;
 
-    $opt_dry_run || {
-      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+      *)
+        func_fatal_help "invalid operation mode \`$mode'"
+        ;;
+    esac
 
-      # Unlock the critical section if it was locked
-      if test "$need_locks" != no; then
-        $RM "$lockfile"
-      fi
-    }
+    $ECHO
+    $ECHO "Try \`$progname --help' for more information about other modes."
 
-    exit $EXIT_SUCCESS
+    exit $?
 }
 
-test "$mode" = compile && func_mode_compile ${1+"$@"}
+  # Now that we've collected a possible --mode arg, show help if necessary
+  $opt_help && func_mode_help
 
 
 # func_mode_execute arg...
@@ -2029,9 +1715,13 @@ func_mode_execute ()
       -*) ;;
       *)
        # Do a test to see if this is really a libtool program.
-       if func_ltwrapper_p "$file"; then
+       if func_ltwrapper_script_p "$file"; then
          func_source "$file"
-
+         # Transform arg to wrapped name.
+         file="$progdir/$program"
+       elif func_ltwrapper_executable_p "$file"; then
+         func_ltwrapper_scriptname "$file"
+         func_source "$func_ltwrapper_scriptname_result"
          # Transform arg to wrapped name.
          file="$progdir/$program"
        fi
@@ -2049,7 +1739,7 @@ func_mode_execute ()
       fi
 
       # Restore saved environment variables
-      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
       do
        eval "if test \"\${save_$lt_var+set}\" = set; then
                 $lt_var=\$save_$lt_var; export $lt_var
@@ -2197,7 +1887,7 @@ func_mode_install ()
       case $arg in
       -d) isdir=yes ;;
       -f)
-       case " $install_prog " in
+       case " $install_prog " in
        *[\\\ /]cp\ *) ;;
        *) prev=$arg ;;
        esac
@@ -2251,9 +1941,8 @@ func_mode_install ()
       destdir="$dest"
       destname=
     else
-      func_dirname "$dest" "" "."
+      func_dirname_and_basename "$dest" "" "."
       destdir="$func_dirname_result"
-      func_basename "$dest"
       destname="$func_basename_result"
 
       # Not a directory, so check to see that there is only one file specified.
@@ -2358,7 +2047,7 @@ func_mode_install ()
              'exit $?'
          tstripme="$stripme"
          case $host_os in
-         cygwin* | mingw* | pw32*)
+         cygwin* | mingw* | pw32* | cegcc*)
            case $realname in
            *.dll.a)
              tstripme=""
@@ -2464,15 +2153,20 @@ func_mode_install ()
 
        # Do a test to see if this is really a libtool program.
        case $host in
-       *cygwin*|*mingw*)
-           func_stripname '' '.exe' "$file"
-           wrapper=$func_stripname_result
+       *cygwin* | *mingw*)
+           if func_ltwrapper_executable_p "$file"; then
+             func_ltwrapper_scriptname "$file"
+             wrapper=$func_ltwrapper_scriptname_result
+           else
+             func_stripname '' '.exe' "$file"
+             wrapper=$func_stripname_result
+           fi
            ;;
        *)
            wrapper=$file
            ;;
        esac
-       if func_ltwrapper_p "$wrapper"; then
+       if func_ltwrapper_script_p "$wrapper"; then
          notinst_deplibs=
          relink_command=
 
@@ -2589,3442 +2283,4568 @@ func_mode_install ()
 test "$mode" = install && func_mode_install ${1+"$@"}
 
 
-# func_mode_link arg...
-func_mode_link ()
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
 {
     $opt_debug
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-      # It is impossible to link a dll without this setting, and
-      # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
-      # flag for every libtool invocation.
-      # allow_undefined=no
+    my_outputname="$1"
+    my_originator="$2"
+    my_pic_p="${3-no}"
+    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+    my_dlsyms=
 
-      # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
-      # even a static library is built.  For now, we need to specify
-      # -no-undefined on the libtool link line when we can be certain
-      # that all symbols are satisfied, otherwise we get a static library.
-      allow_undefined=yes
-      ;;
-    *)
-      allow_undefined=yes
-      ;;
-    esac
-    libtool_args=$nonopt
-    base_compile="$nonopt $@"
-    compile_command=$nonopt
-    finalize_command=$nonopt
+    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+      if test -n "$NM" && test -n "$global_symbol_pipe"; then
+       my_dlsyms="${my_outputname}S.c"
+      else
+       func_error "not configured to extract global symbols from dlpreopened files"
+      fi
+    fi
 
-    compile_rpath=
-    finalize_rpath=
-    compile_shlibpath=
-    finalize_shlibpath=
-    convenience=
-    old_convenience=
-    deplibs=
-    old_deplibs=
-    compiler_flags=
-    linker_flags=
-    dllsearchpath=
-    lib_search_path=`pwd`
-    inst_prefix_dir=
-    new_inherited_linker_flags=
+    if test -n "$my_dlsyms"; then
+      case $my_dlsyms in
+      "") ;;
+      *.c)
+       # Discover the nlist of each of the dlfiles.
+       nlist="$output_objdir/${my_outputname}.nm"
 
-    avoid_version=no
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    precious_files_regex=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-    vinfo_number=no
-    weak_libs=
-    single_module="${wl}-single_module"
-    func_infer_tag $base_compile
+       func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
 
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -shared)
-       test "$build_libtool_libs" != yes && \
-         func_fatal_configuration "can not build a shared library"
-       build_old_libs=no
-       break
-       ;;
-      -all-static | -static | -static-libtool-libs)
-       case $arg in
-       -all-static)
-         if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-           func_warning "complete static linking is impossible in this configuration"
-         fi
-         if test -n "$link_static_flag"; then
-           dlopen_self=$dlopen_self_static
-           # See comment for -static flag below, for more details.
-           func_append compile_command " $link_static_flag"
-           func_append finalize_command " $link_static_flag"
-         fi
-         prefer_static_libs=yes
-         ;;
-       -static)
-         if test -z "$pic_flag" && test -n "$link_static_flag"; then
-           dlopen_self=$dlopen_self_static
-         fi
-         prefer_static_libs=built
-         ;;
-       -static-libtool-libs)
-         if test -z "$pic_flag" && test -n "$link_static_flag"; then
-           dlopen_self=$dlopen_self_static
-         fi
-         prefer_static_libs=yes
-         ;;
-       esac
-       build_libtool_libs=no
-       build_old_libs=yes
-       break
-       ;;
-      esac
-    done
+       # Parse the name list into a source file.
+       func_verbose "creating $output_objdir/$my_dlsyms"
 
-    # See if our shared archives depend on static archives.
-    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+       $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
 
-    # Go through the arguments, transforming them on the way.
-    while test "$#" -gt 0; do
-      arg="$1"
-      shift
-      func_quote_for_eval "$arg"
-      qarg=$func_quote_for_eval_unquoted_result
-      func_append libtool_args " $func_quote_for_eval_result"
+#ifdef __cplusplus
+extern \"C\" {
+#endif
 
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-       case $prev in
-       output)
-         func_append compile_command " @OUTPUT@"
-         func_append finalize_command " @OUTPUT@"
-         ;;
-       esac
+/* External symbol declarations for the compiler. */\
+"
 
-       case $prev in
-       dlfiles|dlprefiles)
-         if test "$preload" = no; then
-           # Add the symbol object into the linking commands.
-           func_append compile_command " @SYMFILE@"
-           func_append finalize_command " @SYMFILE@"
-           preload=yes
-         fi
-         case $arg in
-         *.la | *.lo) ;;  # We handle these cases below.
-         force)
-           if test "$dlself" = no; then
-             dlself=needless
-             export_dynamic=yes
-           fi
-           prev=
-           continue
-           ;;
-         self)
-           if test "$prev" = dlprefiles; then
-             dlself=yes
-           elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-             dlself=yes
-           else
-             dlself=needless
-             export_dynamic=yes
-           fi
-           prev=
-           continue
-           ;;
-         *)
-           if test "$prev" = dlfiles; then
-             dlfiles="$dlfiles $arg"
-           else
-             dlprefiles="$dlprefiles $arg"
-           fi
-           prev=
-           continue
-           ;;
-         esac
-         ;;
-       expsyms)
-         export_symbols="$arg"
-         test -f "$arg" \
-           || func_fatal_error "symbol file \`$arg' does not exist"
-         prev=
-         continue
-         ;;
-       expsyms_regex)
-         export_symbols_regex="$arg"
-         prev=
-         continue
-         ;;
-       framework)
-         case $host in
-           *-*-darwin*)
-             case "$deplibs " in
-               *" $qarg.ltframework "*) ;;
-               *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
-                  ;;
-             esac
-             ;;
-         esac
-         prev=
-         continue
-         ;;
-       inst_prefix)
-         inst_prefix_dir="$arg"
-         prev=
-         continue
-         ;;
-       objectlist)
-         if test -f "$arg"; then
-           save_arg=$arg
-           moreargs=
-           for fil in `cat "$save_arg"`
-           do
-#            moreargs="$moreargs $fil"
-             arg=$fil
-             # A libtool-controlled object.
-
-             # Check to see that this really is a libtool object.
-             if func_lalib_unsafe_p "$arg"; then
-               pic_object=
-               non_pic_object=
+       if test "$dlself" = yes; then
+         func_verbose "generating symbol list for \`$output'"
 
-               # Read the .lo file
-               func_source "$arg"
+         $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 
-               if test -z "$pic_object" ||
-                  test -z "$non_pic_object" ||
-                  test "$pic_object" = none &&
-                  test "$non_pic_object" = none; then
-                 func_fatal_error "cannot find name of object for \`$arg'"
-               fi
+         # Add our own program objects to the symbol list.
+         progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+         for progfile in $progfiles; do
+           func_verbose "extracting global C symbols from \`$progfile'"
+           $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+         done
 
-               # Extract subdirectory from the argument.
-               func_dirname "$arg" "/" ""
-               xdir="$func_dirname_result"
+         if test -n "$exclude_expsyms"; then
+           $opt_dry_run || {
+             eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+             eval '$MV "$nlist"T "$nlist"'
+           }
+         fi
 
-               if test "$pic_object" != none; then
-                 # Prepend the subdirectory the object is found in.
-                 pic_object="$xdir$pic_object"
+         if test -n "$export_symbols_regex"; then
+           $opt_dry_run || {
+             eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+             eval '$MV "$nlist"T "$nlist"'
+           }
+         fi
 
-                 if test "$prev" = dlfiles; then
-                   if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-                     dlfiles="$dlfiles $pic_object"
-                     prev=
-                     continue
-                   else
-                     # If libtool objects are unsupported, then we need to preload.
-                     prev=dlprefiles
-                   fi
-                 fi
+         # Prepare the list of exported symbols
+         if test -z "$export_symbols"; then
+           export_symbols="$output_objdir/$outputname.exp"
+           $opt_dry_run || {
+             $RM $export_symbols
+             eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+             case $host in
+             *cygwin* | *mingw* | *cegcc* )
+                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+               ;;
+             esac
+           }
+         else
+           $opt_dry_run || {
+             eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+             eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+             eval '$MV "$nlist"T "$nlist"'
+             case $host in
+               *cygwin | *mingw* | *cegcc* )
+                 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+                 ;;
+             esac
+           }
+         fi
+       fi
 
-                 # CHECK ME:  I think I busted this.  -Ossama
-                 if test "$prev" = dlprefiles; then
-                   # Preload the old-style object.
-                   dlprefiles="$dlprefiles $pic_object"
-                   prev=
-                 fi
+       for dlprefile in $dlprefiles; do
+         func_verbose "extracting global C symbols from \`$dlprefile'"
+         func_basename "$dlprefile"
+         name="$func_basename_result"
+         $opt_dry_run || {
+           eval '$ECHO ": $name " >> "$nlist"'
+           eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+         }
+       done
 
-                 # A PIC object.
-                 func_append libobjs " $pic_object"
-                 arg="$pic_object"
-               fi
+       $opt_dry_run || {
+         # Make sure we have at least an empty file.
+         test -f "$nlist" || : > "$nlist"
 
-               # Non-PIC object.
-               if test "$non_pic_object" != none; then
-                 # Prepend the subdirectory the object is found in.
-                 non_pic_object="$xdir$non_pic_object"
+         if test -n "$exclude_expsyms"; then
+           $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+           $MV "$nlist"T "$nlist"
+         fi
 
-                 # A standard non-PIC object
-                 func_append non_pic_objects " $non_pic_object"
-                 if test -z "$pic_object" || test "$pic_object" = none ; then
-                   arg="$non_pic_object"
-                 fi
-               else
-                 # If the PIC object exists, use it instead.
-                 # $xdir was prepended to $pic_object above.
-                 non_pic_object="$pic_object"
-                 func_append non_pic_objects " $non_pic_object"
-               fi
+         # Try sorting and uniquifying the output.
+         if $GREP -v "^: " < "$nlist" |
+             if sort -k 3 </dev/null >/dev/null 2>&1; then
+               sort -k 3
              else
-               # Only an error if not doing a dry-run.
-               if $opt_dry_run; then
-                 # Extract subdirectory from the argument.
-                 func_dirname "$arg" "/" ""
-                 xdir="$func_dirname_result"
+               sort +2
+             fi |
+             uniq > "$nlist"S; then
+           :
+         else
+           $GREP -v "^: " < "$nlist" > "$nlist"S
+         fi
 
-                 func_lo2o "$arg"
-                 pic_object=$xdir$objdir/$func_lo2o_result
-                 non_pic_object=$xdir$func_lo2o_result
-                 func_append libobjs " $pic_object"
-                 func_append non_pic_objects " $non_pic_object"
-               else
-                 func_fatal_error "\`$arg' is not a valid libtool object"
-               fi
-             fi
-           done
+         if test -f "$nlist"S; then
+           eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
          else
-           func_fatal_error "link input file \`$arg' does not exist"
+           $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
          fi
-         arg=$save_arg
-         prev=
-         continue
-         ;;
-       precious_regex)
-         precious_files_regex="$arg"
-         prev=
-         continue
-         ;;
-       release)
-         release="-$arg"
-         prev=
-         continue
-         ;;
-       rpath | xrpath)
-         # We need an absolute path.
-         case $arg in
-         [\\/]* | [A-Za-z]:[\\/]*) ;;
+
+         $ECHO >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols.  */
+typedef struct {
+  const char *name;
+  void *address;
+} lt_dlsymlist;
+"
+         case $host in
+         *cygwin* | *mingw* | *cegcc* )
+           $ECHO >> "$output_objdir/$my_dlsyms" "\
+/* DATA imports from DLLs on WIN32 con't be const, because
+   runtime relocations are performed -- see ld's documentation
+   on pseudo-relocs.  */"
+           lt_dlsym_const= ;;
+         *osf5*)
+           echo >> "$output_objdir/$my_dlsyms" "\
+/* This system does not cope well with relocations in const data */"
+           lt_dlsym_const= ;;
          *)
-           func_fatal_error "only absolute run-paths are allowed"
+           lt_dlsym_const=const ;;
+         esac
+
+         $ECHO >> "$output_objdir/$my_dlsyms" "\
+extern $lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];
+$lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{\
+  { \"$my_originator\", (void *) 0 },"
+
+         case $need_lib_prefix in
+         no)
+           eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+           ;;
+         *)
+           eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
            ;;
          esac
-         if test "$prev" = rpath; then
-           case "$rpath " in
-           *" $arg "*) ;;
-           *) rpath="$rpath $arg" ;;
-           esac
+         $ECHO >> "$output_objdir/$my_dlsyms" "\
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+       } # !$opt_dry_run
+
+       pic_flag_for_symtable=
+       case "$compile_command " in
+       *" -static "*) ;;
+       *)
+         case $host in
+         # compiling the symbol table file with pic_flag works around
+         # a FreeBSD bug that causes programs to crash when -lm is
+         # linked before any other PIC object.  But we must not use
+         # pic_flag when linking with -static.  The problem exists in
+         # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+         *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+           pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+         *-*-hpux*)
+           pic_flag_for_symtable=" $pic_flag"  ;;
+         *)
+           if test "X$my_pic_p" != Xno; then
+             pic_flag_for_symtable=" $pic_flag"
+           fi
+           ;;
+         esac
+         ;;
+       esac
+       symtab_cflags=
+       for arg in $LTCFLAGS; do
+         case $arg in
+         -pie | -fpie | -fPIE) ;;
+         *) symtab_cflags="$symtab_cflags $arg" ;;
+         esac
+       done
+
+       # Now compile the dynamic symbol file.
+       func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+       # Clean up the generated files.
+       func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+
+       # Transform the symbol file into the correct name.
+       symfileobj="$output_objdir/${my_outputname}S.$objext"
+       case $host in
+       *cygwin* | *mingw* | *cegcc* )
+         if test -f "$output_objdir/$my_outputname.def"; then
+           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
          else
-           case "$xrpath " in
-           *" $arg "*) ;;
-           *) xrpath="$xrpath $arg" ;;
-           esac
+           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
          fi
-         prev=
-         continue
-         ;;
-       shrext)
-         shrext_cmds="$arg"
-         prev=
-         continue
-         ;;
-       weak)
-         weak_libs="$weak_libs $arg"
-         prev=
-         continue
-         ;;
-       xcclinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $qarg"
-         prev=
-         func_append compile_command " $qarg"
-         func_append finalize_command " $qarg"
-         continue
-         ;;
-       xcompiler)
-         compiler_flags="$compiler_flags $qarg"
-         prev=
-         func_append compile_command " $qarg"
-         func_append finalize_command " $qarg"
-         continue
-         ;;
-       xlinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $wl$qarg"
-         prev=
-         func_append compile_command " $wl$qarg"
-         func_append finalize_command " $wl$qarg"
-         continue
          ;;
        *)
-         eval "$prev=\"\$arg\""
-         prev=
-         continue
+         compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+         finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
          ;;
        esac
-      fi # test -n "$prev"
-
-      prevarg="$arg"
-
-      case $arg in
-      -all-static)
-       # The effects of -all-static are defined in a previous loop.
-       continue
        ;;
-
-      -allow-undefined)
-       # FIXME: remove this flag sometime in the future.
-       func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+      *)
+       func_fatal_error "unknown suffix for \`$my_dlsyms'"
        ;;
+      esac
+    else
+      # We keep going just in case the user didn't refer to
+      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+      # really was required.
 
-      -avoid-version)
-       avoid_version=yes
-       continue
-       ;;
+      # Nullify the symbol file.
+      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+    fi
+}
 
-      -dlopen)
-       prev=dlfiles
-       continue
-       ;;
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+  $opt_debug
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 |
+       $SED -n -e '
+           1,100{
+               / I /{
+                   s,.*,import,
+                   p
+                   q
+               }
+           }'`
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $ECHO "$win32_libid_type"
+}
 
-      -dlpreopen)
-       prev=dlprefiles
-       continue
-       ;;
 
-      -export-dynamic)
-       export_dynamic=yes
-       continue
-       ;;
 
-      -export-symbols | -export-symbols-regex)
-       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-         func_fatal_error "more than one -exported-symbols argument is not allowed"
-       fi
-       if test "X$arg" = "X-export-symbols"; then
-         prev=expsyms
-       else
-         prev=expsyms_regex
-       fi
-       continue
-       ;;
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    $opt_debug
+    f_ex_an_ar_dir="$1"; shift
+    f_ex_an_ar_oldlib="$1"
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+    fi
+}
 
-      -framework)
-       prev=framework
-       continue
-       ;;
 
-      -inst-prefix-dir)
-       prev=inst_prefix
-       continue
-       ;;
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    $opt_debug
+    my_gentop="$1"; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=""
+    my_xlib=""
+    my_xabs=""
+    my_xdir=""
 
-      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
-      # so, if we see these flags be careful not to treat them like -L
-      -L[A-Z][A-Z]*:*)
-       case $with_gcc/$host in
-       no/*-*-irix* | /*-*-irix*)
-         func_append compile_command " $arg"
-         func_append finalize_command " $arg"
-         ;;
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+       [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+       *) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      func_basename "$my_xlib"
+      my_xlib="$func_basename_result"
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+       *" $my_xlib_u "*)
+         func_arith $extracted_serial + 1
+         extracted_serial=$func_arith_result
+         my_xlib_u=lt$extracted_serial-$my_xlib ;;
+       *) break ;;
        esac
-       continue
-       ;;
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir="$my_gentop/$my_xlib_u"
 
-      -L*)
-       func_stripname '-L' '' "$arg"
-       dir=$func_stripname_result
-       # We need an absolute path.
-       case $dir in
-       [\\/]* | [A-Za-z]:[\\/]*) ;;
-       *)
-         absdir=`cd "$dir" && pwd`
-         test -z "$absdir" && \
-           func_fatal_error "cannot determine absolute directory name of \`$dir'"
-         dir="$absdir"
-         ;;
-       esac
-       case "$deplibs " in
-       *" -L$dir "*) ;;
-       *)
-         deplibs="$deplibs -L$dir"
-         lib_search_path="$lib_search_path $dir"
-         ;;
-       esac
-       case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-         testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
-         case :$dllsearchpath: in
-         *":$dir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$dir";;
-         esac
-         case :$dllsearchpath: in
-         *":$testbindir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
-         esac
-         ;;
-       esac
-       continue
-       ;;
+      func_mkdir_p "$my_xdir"
 
-      -l*)
-       if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-         case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
-           # These systems don't actually have a C or math library (as such)
-           continue
-           ;;
-         *-*-os2*)
-           # These systems don't actually have a C library (as such)
-           test "X$arg" = "X-lc" && continue
-           ;;
-         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-           # Do not include libc due to us having libc/libc_r.
-           test "X$arg" = "X-lc" && continue
-           ;;
-         *-*-rhapsody* | *-*-darwin1.[012])
-           # Rhapsody C and math libraries are in the System framework
-           deplibs="$deplibs System.ltframework"
-           continue
-           ;;
-         *-*-sco3.2v5* | *-*-sco5v6*)
-           # Causes problems with __ctype
-           test "X$arg" = "X-lc" && continue
-           ;;
-         *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-           # Compiler inserts libc in the correct place for threads to work
-           test "X$arg" = "X-lc" && continue
-           ;;
-         esac
-       elif test "X$arg" = "X-lc_r"; then
-        case $host in
-        *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-          # Do not include libc_r directly, use -pthread flag.
-          continue
-          ;;
-        esac
-       fi
-       deplibs="$deplibs $arg"
-       continue
+      case $host in
+      *-darwin*)
+       func_verbose "Extracting $my_xabs"
+       # Do not bother doing anything if just a dry run
+       $opt_dry_run || {
+         darwin_orig_dir=`pwd`
+         cd $my_xdir || exit $?
+         darwin_archive=$my_xabs
+         darwin_curdir=`pwd`
+         darwin_base_archive=`basename "$darwin_archive"`
+         darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+         if test -n "$darwin_arches"; then
+           darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+           darwin_arch=
+           func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+           for darwin_arch in  $darwin_arches ; do
+             func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+             $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+             cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+             func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+             cd "$darwin_curdir"
+             $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+           done # $darwin_arches
+            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+           darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+           darwin_file=
+           darwin_files=
+           for darwin_file in $darwin_filelist; do
+             darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+             $LIPO -create -output "$darwin_file" $darwin_files
+           done # $darwin_filelist
+           $RM -rf unfat-$$
+           cd "$darwin_orig_dir"
+         else
+           cd $darwin_orig_dir
+           func_extract_an_archive "$my_xdir" "$my_xabs"
+         fi # $darwin_arches
+       } # !$opt_dry_run
        ;;
-
-      -module)
-       module=yes
-       continue
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
        ;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+    done
 
-      # Tru64 UNIX uses -model [arg] to determine the layout of C++
-      # classes, name mangling, and exception handling.
-      # Darwin uses the -arch flag to determine output architecture.
-      -model|-arch|-isysroot)
-       compiler_flags="$compiler_flags $arg"
-       func_append compile_command " $arg"
-       func_append finalize_command " $arg"
-       prev=xcompiler
-       continue
-       ;;
+    func_extract_archives_result="$my_oldobjs"
+}
 
-      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-       compiler_flags="$compiler_flags $arg"
-       func_append compile_command " $arg"
-       func_append finalize_command " $arg"
-       case "$new_inherited_linker_flags " in
-           *" $arg "*) ;;
-           * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
-       esac
-       continue
-       ;;
 
-      -multi_module)
-       single_module="${wl}-multi_module"
-       continue
-       ;;
 
-      -no-fast-install)
-       fast_install=no
-       continue
-       ;;
+# func_emit_wrapper_part1 [arg=no]
+#
+# Emit the first part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part1 ()
+{
+       func_emit_wrapper_part1_arg1=no
+       if test -n "$1" ; then
+         func_emit_wrapper_part1_arg1=$1
+       fi
 
-      -no-install)
-       case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-         # The PATH hackery in wrapper scripts is required on Windows
-         # in order for the loader to find any dlls it needs.
-         func_warning "\`-no-install' is ignored for $host"
-         func_warning "assuming \`-no-fast-install' instead"
-         fast_install=no
-         ;;
-       *) no_install=yes ;;
-       esac
-       continue
-       ;;
+       $ECHO "\
+#! $SHELL
 
-      -no-undefined)
-       allow_undefined=no
-       continue
-       ;;
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
 
-      -objectlist)
-       prev=objectlist
-       continue
-       ;;
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
 
-      -o) prev=output ;;
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
 
-      -precious-files-regex)
-       prev=precious_regex
-       continue
-       ;;
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
-      -release)
-       prev=release
-       continue
-       ;;
+relink_command=\"$relink_command\"
 
-      -rpath)
-       prev=rpath
-       continue
-       ;;
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='$macro_version'
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$ECHO are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    ECHO=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$ECHO will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+       $ECHO "\
 
-      -R)
-       prev=xrpath
-       continue
-       ;;
+  # Find the directory that this script lives in.
+  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 
-      -R*)
-       func_stripname '-R' '' "$arg"
-       dir=$func_stripname_result
-       # We need an absolute path.
-       case $dir in
-       [\\/]* | [A-Za-z]:[\\/]*) ;;
-       *)
-         func_fatal_error "only absolute run-paths are allowed"
-         ;;
-       esac
-       case "$xrpath " in
-       *" $dir "*) ;;
-       *) xrpath="$xrpath $dir" ;;
-       esac
-       continue
-       ;;
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
 
-      -shared)
-       # The effects of -shared are defined in a previous loop.
-       continue
-       ;;
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
 
-      -shrext)
-       prev=shrext
-       continue
-       ;;
+    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
+"
+}
+# end: func_emit_wrapper_part1
 
-      -static | -static-libtool-libs)
-       # The effects of -static are defined in a previous loop.
-       # We used to do the same as -all-static on platforms that
-       # didn't have a PIC flag, but the assumption that the effects
-       # would be equivalent was wrong.  It would break on at least
-       # Digital Unix and AIX.
-       continue
-       ;;
+# func_emit_wrapper_part2 [arg=no]
+#
+# Emit the second part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part2 ()
+{
+       func_emit_wrapper_part2_arg1=no
+       if test -n "$1" ; then
+         func_emit_wrapper_part2_arg1=$1
+       fi
 
-      -thread-safe)
-       thread_safe=yes
-       continue
-       ;;
+       $ECHO "\
 
-      -version-info)
-       prev=vinfo
-       continue
-       ;;
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
+  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+    # special case for '.'
+    if test \"\$thisdir\" = \".\"; then
+      thisdir=\`pwd\`
+    fi
+    # remove .libs from thisdir
+    case \"\$thisdir\" in
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    $objdir )   thisdir=. ;;
+    esac
+  fi
 
-      -version-number)
-       prev=vinfo
-       vinfo_number=yes
-       continue
-       ;;
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
 
-      -weak)
-        prev=weak
-       continue
-       ;;
+       if test "$fast_install" = yes; then
+         $ECHO "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
 
-      -Wc,*)
-       func_stripname '-Wc,' '' "$arg"
-       args=$func_stripname_result
-       arg=
-       save_ifs="$IFS"; IFS=','
-       for flag in $args; do
-         IFS="$save_ifs"
-          func_quote_for_eval "$flag"
-         arg="$arg $wl$func_quote_for_eval_result"
-         compiler_flags="$compiler_flags $func_quote_for_eval_result"
-       done
-       IFS="$save_ifs"
-       func_stripname ' ' '' "$arg"
-       arg=$func_stripname_result
-       ;;
+  if test ! -f \"\$progdir/\$program\" ||
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 
-      -Wl,*)
-       func_stripname '-Wl,' '' "$arg"
-       args=$func_stripname_result
-       arg=
-       save_ifs="$IFS"; IFS=','
-       for flag in $args; do
-         IFS="$save_ifs"
-          func_quote_for_eval "$flag"
-         arg="$arg $wl$func_quote_for_eval_result"
-         compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
-         linker_flags="$linker_flags $func_quote_for_eval_result"
-       done
-       IFS="$save_ifs"
-       func_stripname ' ' '' "$arg"
-       arg=$func_stripname_result
-       ;;
+    file=\"\$\$-\$program\"
 
-      -Xcompiler)
-       prev=xcompiler
-       continue
-       ;;
+    if test ! -d \"\$progdir\"; then
+      $MKDIR \"\$progdir\"
+    else
+      $RM \"\$progdir/\$file\"
+    fi"
 
-      -Xlinker)
-       prev=xlinker
-       continue
-       ;;
+         $ECHO "\
 
-      -XCClinker)
-       prev=xcclinker
-       continue
-       ;;
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+       $ECHO \"\$relink_command_output\" >&2
+       $RM \"\$progdir/\$file\"
+       exit 1
+      fi
+    fi
 
-      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
-      # -r[0-9][0-9]* specifies the processor on the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
-      # +DA*, +DD* enable 64-bit mode on the HP compiler
-      # -q* pass through compiler args for the IBM compiler
-      # -m*, -t[45]*, -txscale* pass through architecture-specific
-      # compiler args for GCC
-      # -F/path gives path to uninstalled frameworks, gcc on darwin
-      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
-      # @file GCC response files
-      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
-        func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
-        func_append compile_command " $arg"
-        func_append finalize_command " $arg"
-        compiler_flags="$compiler_flags $arg"
-        continue
-        ;;
+    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $RM \"\$progdir/\$program\";
+      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $RM \"\$progdir/\$file\"
+  fi"
+       else
+         $ECHO "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+       fi
 
-      # Some other compiler flag.
-      -* | +*)
-        func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
-       ;;
+       $ECHO "\
 
-      *.$objext)
-       # A standard object.
-       objs="$objs $arg"
-       ;;
+  if test -f \"\$progdir/\$program\"; then"
 
-      *.lo)
-       # A libtool-controlled object.
+       # Export our shlibpath_var if we have one.
+       if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+         $ECHO "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
 
-       # Check to see that this really is a libtool object.
-       if func_lalib_unsafe_p "$arg"; then
-         pic_object=
-         non_pic_object=
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
 
-         # Read the .lo file
-         func_source "$arg"
+    export $shlibpath_var
+"
+       fi
 
-         if test -z "$pic_object" ||
-            test -z "$non_pic_object" ||
-            test "$pic_object" = none &&
-            test "$non_pic_object" = none; then
-           func_fatal_error "cannot find name of object for \`$arg'"
-         fi
+       # fixup the dll searchpath if we need to.
+       if test -n "$dllsearchpath"; then
+         $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+       fi
 
-         # Extract subdirectory from the argument.
-         func_dirname "$arg" "/" ""
-         xdir="$func_dirname_result"
+       $ECHO "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+       case $host in
+       # Backslashes separate directories on plain windows
+       *-*-mingw | *-*-os2* | *-cegcc*)
+         $ECHO "\
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+         ;;
 
-         if test "$pic_object" != none; then
-           # Prepend the subdirectory the object is found in.
-           pic_object="$xdir$pic_object"
+       *)
+         $ECHO "\
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+         ;;
+       esac
+       $ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
+  fi
+fi\
+"
+}
+# end: func_emit_wrapper_part2
 
-           if test "$prev" = dlfiles; then
-             if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-               dlfiles="$dlfiles $pic_object"
-               prev=
-               continue
-             else
-               # If libtool objects are unsupported, then we need to preload.
-               prev=dlprefiles
-             fi
-           fi
 
-           # CHECK ME:  I think I busted this.  -Ossama
-           if test "$prev" = dlprefiles; then
-             # Preload the old-style object.
-             dlprefiles="$dlprefiles $pic_object"
-             prev=
-           fi
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+       func_emit_wrapper_arg1=no
+       if test -n "$1" ; then
+         func_emit_wrapper_arg1=$1
+       fi
 
-           # A PIC object.
-           func_append libobjs " $pic_object"
-           arg="$pic_object"
-         fi
+       # split this up so that func_emit_cwrapperexe_src
+       # can call each part independently.
+       func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
+       func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
+}
 
-         # Non-PIC object.
-         if test "$non_pic_object" != none; then
-           # Prepend the subdirectory the object is found in.
-           non_pic_object="$xdir$non_pic_object"
 
-           # A standard non-PIC object
-           func_append non_pic_objects " $non_pic_object"
-           if test -z "$pic_object" || test "$pic_object" = none ; then
-             arg="$non_pic_object"
-           fi
-         else
-           # If the PIC object exists, use it instead.
-           # $xdir was prepended to $pic_object above.
-           non_pic_object="$pic_object"
-           func_append non_pic_objects " $non_pic_object"
-         fi
-       else
-         # Only an error if not doing a dry-run.
-         if $opt_dry_run; then
-           # Extract subdirectory from the argument.
-           func_dirname "$arg" "/" ""
-           xdir="$func_dirname_result"
+# func_to_host_path arg
+#
+# Convert paths to host format when used with build tools.
+# Intended for use with "native" mingw (where libtool itself
+# is running under the msys shell), or in the following cross-
+# build environments:
+#    $build          $host
+#    mingw (msys)    mingw  [e.g. native]
+#    cygwin          mingw
+#    *nix + wine     mingw
+# where wine is equipped with the `winepath' executable.
+# In the native mingw case, the (msys) shell automatically
+# converts paths for any non-msys applications it launches,
+# but that facility isn't available from inside the cwrapper.
+# Similar accommodations are necessary for $host mingw and
+# $build cygwin.  Calling this function does no harm for other
+# $host/$build combinations not listed above.
+#
+# ARG is the path (on $build) that should be converted to
+# the proper representation for $host. The result is stored
+# in $func_to_host_path_result.
+func_to_host_path ()
+{
+  func_to_host_path_result="$1"
+  if test -n "$1" ; then
+    case $host in
+      *mingw* )
+        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+        case $build in
+          *mingw* ) # actually, msys
+            # awkward: cmd appends spaces to result
+            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
+              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          *cygwin* )
+            func_to_host_path_tmp1=`cygpath -w "$1"`
+            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          * )
+            # Unfortunately, winepath does not exit with a non-zero
+            # error code, so we are forced to check the contents of
+            # stdout. On the other hand, if the command is not
+            # found, the shell will set an exit code of 127 and print
+            # *an error message* to stdout. So we must check for both
+            # error code of zero AND non-empty stdout, which explains
+            # the odd construction:
+            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
+            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
+              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+                $SED -e "$lt_sed_naive_backslashify"`
+            else
+              # Allow warning below.
+              func_to_host_path_result=""
+            fi
+            ;;
+        esac
+        if test -z "$func_to_host_path_result" ; then
+          func_error "Could not determine host path corresponding to"
+          func_error "  '$1'"
+          func_error "Continuing, but uninstalled executables may not work."
+          # Fallback:
+          func_to_host_path_result="$1"
+        fi
+        ;;
+    esac
+  fi
+}
+# end: func_to_host_path
 
-           func_lo2o "$arg"
-           pic_object=$xdir$objdir/$func_lo2o_result
-           non_pic_object=$xdir$func_lo2o_result
-           func_append libobjs " $pic_object"
-           func_append non_pic_objects " $non_pic_object"
-         else
-           func_fatal_error "\`$arg' is not a valid libtool object"
-         fi
-       fi
-       ;;
+# func_to_host_pathlist arg
+#
+# Convert pathlists to host format when used with build tools.
+# See func_to_host_path(), above. This function supports the
+# following $build/$host combinations (but does no harm for
+# combinations not listed here):
+#    $build          $host
+#    mingw (msys)    mingw  [e.g. native]
+#    cygwin          mingw
+#    *nix + wine     mingw
+#
+# Path separators are also converted from $build format to
+# $host format. If ARG begins or ends with a path separator
+# character, it is preserved (but converted to $host format)
+# on output.
+#
+# ARG is a pathlist (on $build) that should be converted to
+# the proper representation on $host. The result is stored
+# in $func_to_host_pathlist_result.
+func_to_host_pathlist ()
+{
+  func_to_host_pathlist_result="$1"
+  if test -n "$1" ; then
+    case $host in
+      *mingw* )
+        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+        # Remove leading and trailing path separator characters from
+        # ARG. msys behavior is inconsistent here, cygpath turns them
+        # into '.;' and ';.', and winepath ignores them completely.
+        func_to_host_pathlist_tmp2="$1"
+        # Once set for this call, this variable should not be
+        # reassigned. It is used in tha fallback case.
+        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
+          $SED -e 's|^:*||' -e 's|:*$||'`
+        case $build in
+          *mingw* ) # Actually, msys.
+            # Awkward: cmd appends spaces to result.
+            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
+              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          *cygwin* )
+            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
+            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+              $SED -e "$lt_sed_naive_backslashify"`
+            ;;
+          * )
+            # unfortunately, winepath doesn't convert pathlists
+            func_to_host_pathlist_result=""
+            func_to_host_pathlist_oldIFS=$IFS
+            IFS=:
+            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
+              IFS=$func_to_host_pathlist_oldIFS
+              if test -n "$func_to_host_pathlist_f" ; then
+                func_to_host_path "$func_to_host_pathlist_f"
+                if test -n "$func_to_host_path_result" ; then
+                  if test -z "$func_to_host_pathlist_result" ; then
+                    func_to_host_pathlist_result="$func_to_host_path_result"
+                  else
+                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
+                  fi
+                fi
+              fi
+              IFS=:
+            done
+            IFS=$func_to_host_pathlist_oldIFS
+            ;;
+        esac
+        if test -z "$func_to_host_pathlist_result" ; then
+          func_error "Could not determine the host path(s) corresponding to"
+          func_error "  '$1'"
+          func_error "Continuing, but uninstalled executables may not work."
+          # Fallback. This may break if $1 contains DOS-style drive
+          # specifications. The fix is not to complicate the expression
+          # below, but for the user to provide a working wine installation
+          # with winepath so that path translation in the cross-to-mingw
+          # case works properly.
+          lt_replace_pathsep_nix_to_dos="s|:|;|g"
+          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
+            $SED -e "$lt_replace_pathsep_nix_to_dos"`
+        fi
+        # Now, add the leading and trailing path separators back
+        case "$1" in
+          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
+            ;;
+        esac
+        case "$1" in
+          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
+            ;;
+        esac
+        ;;
+    esac
+  fi
+}
+# end: func_to_host_pathlist
 
-      *.$libext)
-       # An archive.
-       deplibs="$deplibs $arg"
-       old_deplibs="$old_deplibs $arg"
-       continue
-       ;;
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+       cat <<EOF
 
-      *.la)
-       # A libtool-controlled library.
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 
-       if test "$prev" = dlfiles; then
-         # This library was specified with -dlopen.
-         dlfiles="$dlfiles $arg"
-         prev=
-       elif test "$prev" = dlprefiles; then
-         # The library was specified with -dlpreopen.
-         dlprefiles="$dlprefiles $arg"
-         prev=
-       else
-         deplibs="$deplibs $arg"
-       fi
-       continue
-       ;;
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
 
-      # Some other compiler argument.
-      *)
-       # Unknown arguments in both finalize_command and compile_command need
-       # to be aesthetically quoted because they are evaled later.
-       func_quote_for_eval "$arg"
-       arg="$func_quote_for_eval_result"
-       ;;
-      esac # arg
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
 
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-       func_append compile_command " $arg"
-       func_append finalize_command " $arg"
-      fi
-    done # argument parsing loop
+   Currently, it simply execs the wrapper *script* "$SHELL $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+           cat <<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+# define setmode _setmode
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+#  include <io.h>
+#  define HAVE_SETENV
+#  ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+#  endif
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
 
-    test -n "$prev" && \
-      func_fatal_help "the \`$prevarg' option requires an argument"
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
 
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      func_append compile_command " $arg"
-      func_append finalize_command " $arg"
-    fi
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
 
-    oldlibs=
-    # calculate the name of the file, without its directory
-    func_basename "$output"
-    outputname="$func_basename_result"
-    libobjs_save="$libobjs"
+#ifdef _MSC_VER
+# define S_IXUSR _S_IEXEC
+# define stat _stat
+# ifndef _INTPTR_T_DEFINED
+#  define intptr_t int
+# endif
+#endif
 
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
 
-    func_dirname "$output" "/" ""
-    output_objdir="$func_dirname_result$objdir"
-    # Create the object directory.
-    func_mkdir_p "$output_objdir"
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
 
-    # Determine the type of output
-    case $output in
-    "")
-      func_fatal_help "you must specify an output file"
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+       (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
 
-    specialdeplibs=
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
 
-    libs=
-    # Find all interdependent deplibs by searching for libraries
-    # that are linked more than once (e.g. -la -lb -la)
-    for deplib in $deplibs; do
-      if $opt_duplicate_deps ; then
-       case "$libs " in
-       *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-       esac
-      fi
-      libs="$libs $deplib"
-    done
+#ifdef __CYGWIN__
+# define FOPEN_WB "wb"
+#endif
 
-    if test "$linkmode" = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
 
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      if $opt_duplicate_compiler_generated_deps; then
-       for pre_post_dep in $predeps $postdeps; do
-         case "$pre_post_deps " in
-         *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
-         esac
-         pre_post_deps="$pre_post_deps $pre_post_dep"
-       done
-      fi
-      pre_post_deps=
-    fi
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
 
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    notinst_path= # paths that contain not-installed libtool libraries
+#undef LTWRAPPER_DEBUGPRINTF
+#if defined DEBUGWRAPPER
+# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
+static void
+ltwrapper_debugprintf (const char *fmt, ...)
+{
+    va_list args;
+    va_start (args, fmt);
+    (void) vfprintf (stderr, fmt, args);
+    va_end (args);
+}
+#else
+# define LTWRAPPER_DEBUGPRINTF(args)
+#endif
 
-    case $linkmode in
-    lib)
-       passes="conv dlpreopen link"
-       for file in $dlfiles $dlprefiles; do
-         case $file in
-         *.la) ;;
-         *)
-           func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
-           ;;
-         esac
-       done
-       ;;
-    prog)
-       compile_deplibs=
-       finalize_deplibs=
-       alldeplibs=no
-       newdlfiles=
-       newdlprefiles=
-       passes="conv scan dlopen dlpreopen link"
-       ;;
-    *)  passes="conv"
-       ;;
-    esac
+const char *program_name = NULL;
 
-    for pass in $passes; do
-      # The preopen pass in lib mode reverses $deplibs; put it back here
-      # so that -L comes before libs that need it for instance...
-      if test "$linkmode,$pass" = "lib,link"; then
-       ## FIXME: Find the place where the list is rebuilt in the wrong
-       ##        order, and fix it there properly
-        tmp_deplibs=
-       for deplib in $deplibs; do
-         tmp_deplibs="$deplib $tmp_deplibs"
-       done
-       deplibs="$tmp_deplibs"
-      fi
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_opt_process_env_set (const char *arg);
+void lt_opt_process_env_prepend (const char *arg);
+void lt_opt_process_env_append (const char *arg);
+int lt_split_name_value (const char *arg, char** name, char** value);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+
+static const char *script_text_part1 =
+EOF
 
-      if test "$linkmode,$pass" = "lib,link" ||
-        test "$linkmode,$pass" = "prog,scan"; then
-       libs="$deplibs"
-       deplibs=
-      fi
-      if test "$linkmode" = prog; then
-       case $pass in
-       dlopen) libs="$dlfiles" ;;
-       dlpreopen) libs="$dlprefiles" ;;
-       link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
-       esac
-      fi
-      if test "$linkmode,$pass" = "lib,dlpreopen"; then
-       # Collect and forward deplibs of preopened libtool libs
-       for lib in $dlprefiles; do
-         # Ignore non-libtool-libs
-         dependency_libs=
-         case $lib in
-         *.la) func_source "$lib" ;;
-         esac
+           func_emit_wrapper_part1 yes |
+               $SED -e 's/\([\\"]\)/\\\1/g' \
+                    -e 's/^/  "/' -e 's/$/\\n"/'
+           echo ";"
+           cat <<EOF
 
-         # Collect preopened libtool deplibs, except any this library
-         # has declared as weak libs
-         for deplib in $dependency_libs; do
-            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
-           case " $weak_libs " in
-           *" $deplib_base "*) ;;
-           *) deplibs="$deplibs $deplib" ;;
-           esac
-         done
-       done
-       libs="$dlprefiles"
-      fi
-      if test "$pass" = dlopen; then
-       # Collect dlpreopened libraries
-       save_deplibs="$deplibs"
-       deplibs=
-      fi
+static const char *script_text_part2 =
+EOF
+           func_emit_wrapper_part2 yes |
+               $SED -e 's/\([\\"]\)/\\\1/g' \
+                    -e 's/^/  "/' -e 's/$/\\n"/'
+           echo ";"
+
+           cat <<EOF
+const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
 
-      for deplib in $libs; do
-       lib=
-       found=no
-       case $deplib in
-       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-         if test "$linkmode,$pass" = "prog,link"; then
-           compile_deplibs="$deplib $compile_deplibs"
-           finalize_deplibs="$deplib $finalize_deplibs"
-         else
-           compiler_flags="$compiler_flags $deplib"
-           if test "$linkmode" = lib ; then
-               case "$new_inherited_linker_flags " in
-                   *" $deplib "*) ;;
-                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
-               esac
-           fi
-         fi
-         continue
-         ;;
-       -l*)
-         if test "$linkmode" != lib && test "$linkmode" != prog; then
-           func_warning "\`-l' is ignored for archives/objects"
-           continue
-         fi
-         func_stripname '-l' '' "$deplib"
-         name=$func_stripname_result
-         for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
-           for search_ext in .la $std_shrext .so .a; do
-             # Search the libtool library
-             lib="$searchdir/lib${name}${search_ext}"
-             if test -f "$lib"; then
-               if test "$search_ext" = ".la"; then
-                 found=yes
-               else
-                 found=no
-               fi
-               break 2
-             fi
-           done
-         done
-         if test "$found" != yes; then
-           # deplib doesn't seem to be a libtool library
-           if test "$linkmode,$pass" = "prog,link"; then
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
+           if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+              func_to_host_pathlist "$temp_rpath"
+             cat <<EOF
+const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
+EOF
            else
-             deplibs="$deplib $deplibs"
-             test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-           fi
-           continue
-         else # deplib is a libtool library
-           # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
-           # We need to do some special things here, and not later.
-           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-             case " $predeps $postdeps " in
-             *" $deplib "*)
-               if func_lalib_p "$lib"; then
-                 library_names=
-                 old_library=
-                 func_source "$lib"
-                 for l in $old_library $library_names; do
-                   ll="$l"
-                 done
-                 if test "X$ll" = "X$old_library" ; then # only static version available
-                   found=no
-                   func_dirname "$lib" "" "."
-                   ladir="$func_dirname_result"
-                   lib=$ladir/$old_library
-                   if test "$linkmode,$pass" = "prog,link"; then
-                     compile_deplibs="$deplib $compile_deplibs"
-                     finalize_deplibs="$deplib $finalize_deplibs"
-                   else
-                     deplibs="$deplib $deplibs"
-                     test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-                   fi
-                   continue
-                 fi
-               fi
-               ;;
-             *) ;;
-             esac
-           fi
-         fi
-         ;; # -l
-       *.ltframework)
-         if test "$linkmode,$pass" = "prog,link"; then
-           compile_deplibs="$deplib $compile_deplibs"
-           finalize_deplibs="$deplib $finalize_deplibs"
-         else
-           deplibs="$deplib $deplibs"
-           if test "$linkmode" = lib ; then
-               case "$new_inherited_linker_flags " in
-                   *" $deplib "*) ;;
-                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
-               esac
+             cat <<"EOF"
+const char * LIB_PATH_VALUE   = "";
+EOF
            fi
-         fi
-         continue
-         ;;
-       -L*)
-         case $linkmode in
-         lib)
-           deplibs="$deplib $deplibs"
-           test "$pass" = conv && continue
-           newdependency_libs="$deplib $newdependency_libs"
-           func_stripname '-L' '' "$deplib"
-           newlib_search_path="$newlib_search_path $func_stripname_result"
-           ;;
-         prog)
-           if test "$pass" = conv; then
-             deplibs="$deplib $deplibs"
-             continue
+
+           if test -n "$dllsearchpath"; then
+              func_to_host_pathlist "$dllsearchpath:"
+             cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
+EOF
+           else
+             cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE   = "";
+EOF
            fi
-           if test "$pass" = scan; then
-             deplibs="$deplib $deplibs"
+
+           if test "$fast_install" = yes; then
+             cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
            else
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
+             cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
            fi
-           func_stripname '-L' '' "$deplib"
-           newlib_search_path="$newlib_search_path $func_stripname_result"
-           ;;
-         *)
-           func_warning "\`-L' is ignored for archives/objects"
-           ;;
-         esac # linkmode
-         continue
-         ;; # -L
-       -R*)
-         if test "$pass" = link; then
-           func_stripname '-R' '' "$deplib"
-           dir=$func_stripname_result
-           # Make sure the xrpath contains only unique directories.
-           case "$xrpath " in
-           *" $dir "*) ;;
-           *) xrpath="$xrpath $dir" ;;
-           esac
-         fi
-         deplibs="$deplib $deplibs"
-         continue
-         ;;
-       *.la) lib="$deplib" ;;
-       *.$libext)
-         if test "$pass" = conv; then
-           deplibs="$deplib $deplibs"
-           continue
-         fi
-         case $linkmode in
-         lib)
-           # Linking convenience modules into shared libraries is allowed,
-           # but linking other static libraries is non-portable.
-           case " $dlpreconveniencelibs " in
-           *" $deplib "*) ;;
-           *)
-             valid_a_lib=no
-             case $deplibs_check_method in
-               match_pattern*)
-                 set dummy $deplibs_check_method; shift
-                 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-                 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
-                   | $EGREP "$match_pattern_regex" > /dev/null; then
-                   valid_a_lib=yes
-                 fi
-               ;;
-               pass_all)
-                 valid_a_lib=yes
+
+
+           cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX         "--lt-"
+#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
+
+static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+
+static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
+
+static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
+static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
+  /* argument is putenv-style "foo=bar", value of foo is set to bar */
+
+static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
+static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
+  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
+
+static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
+static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
+  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int  newargc;
+  char *tmp_pathspec;
+  char *actual_cwrapper_path;
+  char *actual_cwrapper_name;
+  char *target_name;
+  char *lt_argv_zero;
+  intptr_t rval = 127;
+
+  int i;
+
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
+  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+
+  /* very simple arg parsing; don't want to rely on getopt */
+  for (i = 1; i < argc; i++)
+    {
+      if (strcmp (argv[i], dumpscript_opt) == 0)
+       {
+EOF
+           case "$host" in
+             *mingw* | *cygwin* )
+               # make stdout use "unix" line endings
+               echo "          setmode(1,_O_BINARY);"
                ;;
              esac
-             if test "$valid_a_lib" != yes; then
-               $ECHO
-               $ECHO "*** Warning: Trying to link with static lib archive $deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because the file extensions .$libext of this argument makes me believe"
-               $ECHO "*** that it is just a static archive that I should not use here."
-             else
-               $ECHO
-               $ECHO "*** Warning: Linking the shared library $output against the"
-               $ECHO "*** static library $deplib is not portable!"
-               deplibs="$deplib $deplibs"
-             fi
-             ;;
-           esac
-           continue
-           ;;
-         prog)
-           if test "$pass" != link; then
-             deplibs="$deplib $deplibs"
-           else
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           fi
-           continue
-           ;;
-         esac # linkmode
-         ;; # *.$libext
-       *.lo | *.$objext)
-         if test "$pass" = conv; then
-           deplibs="$deplib $deplibs"
-         elif test "$linkmode" = prog; then
-           if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-             # If there is no dlopen support or we're linking statically,
-             # we need to preload.
-             newdlprefiles="$newdlprefiles $deplib"
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           else
-             newdlfiles="$newdlfiles $deplib"
-           fi
-         fi
-         continue
-         ;;
-       %DEPLIBS%)
-         alldeplibs=yes
-         continue
-         ;;
-       esac # case $deplib
 
-       if test "$found" = yes || test -f "$lib"; then :
-       else
-         func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
-       fi
+           cat <<"EOF"
+         printf ("%s", script_text_part1);
+         printf ("%s", script_text_part2);
+         return 0;
+       }
+    }
 
-       # Check to see that this really is a libtool archive.
-       func_lalib_unsafe_p "$lib" \
-         || func_fatal_error "\`$lib' is not a valid libtool archive"
+  newargz = XMALLOC (char *, argc + 1);
+  tmp_pathspec = find_executable (argv[0]);
+  if (tmp_pathspec == NULL)
+    lt_fatal ("Couldn't find %s", argv[0]);
+  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
+                         tmp_pathspec));
+
+  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
+                         actual_cwrapper_path));
+  XFREE (tmp_pathspec);
+
+  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
+  strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+  /* wrapper name transforms */
+  strendzap (actual_cwrapper_name, ".exe");
+  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+  XFREE (actual_cwrapper_name);
+  actual_cwrapper_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  /* target_name transforms -- use actual target program name; might have lt- prefix */
+  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+  strendzap (target_name, ".exe");
+  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+  XFREE (target_name);
+  target_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
+                         target_name));
+EOF
 
-       func_dirname "$lib" "" "."
-       ladir="$func_dirname_result"
+           cat <<EOF
+  newargz[0] =
+    XMALLOC (char, (strlen (actual_cwrapper_path) +
+                   strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+  strcpy (newargz[0], actual_cwrapper_path);
+  strcat (newargz[0], "$objdir");
+  strcat (newargz[0], "/");
+EOF
 
-       dlname=
-       dlopen=
-       dlpreopen=
-       libdir=
-       library_names=
-       old_library=
-       inherited_linker_flags=
-       # If the library was installed with an old release of libtool,
-       # it will not redefine variables installed, or shouldnotlink
-       installed=yes
-       shouldnotlink=no
-       avoidtemprpath=
+           cat <<"EOF"
+  /* stop here, and copy so we don't have to do this twice */
+  tmp_pathspec = xstrdup (newargz[0]);
 
+  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+  strcat (newargz[0], actual_cwrapper_name);
 
-       # Read the .la file
-       func_source "$lib"
+  /* DO want the lt- prefix here if it exists, so use target_name */
+  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+  XFREE (tmp_pathspec);
+  tmp_pathspec = NULL;
+EOF
 
-       # Convert "-framework foo" to "foo.ltframework"
-       if test -n "$inherited_linker_flags"; then
-         tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
-         for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
-           case " $new_inherited_linker_flags " in
-             *" $tmp_inherited_linker_flag "*) ;;
-             *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+           case $host_os in
+             mingw*)
+           cat <<"EOF"
+  {
+    char* p;
+    while ((p = strchr (newargz[0], '\\')) != NULL)
+      {
+       *p = '/';
+      }
+    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+      {
+       *p = '/';
+      }
+  }
+EOF
+           ;;
            esac
-         done
-       fi
-       dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-       if test "$linkmode,$pass" = "prog,link"; then
-         compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
-         finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
-       else
-         compiler_flags="$compiler_flags $inherited_linker_flags"
-       fi
-       if test "$linkmode,$pass" = "lib,link" ||
-          test "$linkmode,$pass" = "prog,scan" ||
-          { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-         test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-         test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
-       fi
 
-       if test "$pass" = conv; then
-         # Only check for convenience libraries
-         deplibs="$lib $deplibs"
-         if test -z "$libdir"; then
-           if test -z "$old_library"; then
-             func_fatal_error "cannot find name of link library for \`$lib'"
-           fi
-           # It is a libtool convenience library, so add in its objects.
-           convenience="$convenience $ladir/$objdir/$old_library"
-           old_convenience="$old_convenience $ladir/$objdir/$old_library"
-         elif test "$linkmode" != prog && test "$linkmode" != lib; then
-           func_fatal_error "\`$lib' is not a convenience library"
-         fi
-         tmp_libs=
-         for deplib in $dependency_libs; do
-           deplibs="$deplib $deplibs"
-           if $opt_duplicate_deps ; then
-             case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-             esac
-           fi
-           tmp_libs="$tmp_libs $deplib"
-         done
-         continue
-       fi # $pass = conv
+           cat <<"EOF"
+  XFREE (target_name);
+  XFREE (actual_cwrapper_path);
+  XFREE (actual_cwrapper_name);
 
+  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
 
-       # Get the name of the library we link against.
-       linklib=
-       for l in $old_library $library_names; do
-         linklib="$l"
-       done
-       if test -z "$linklib"; then
-         func_fatal_error "cannot find name of link library for \`$lib'"
-       fi
+  newargc=0;
+  for (i = 1; i < argc; i++)
+    {
+      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
+        {
+          if (argv[i][env_set_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_set_opt_len + 1;
+              lt_opt_process_env_set (p);
+            }
+          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_set (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_set_opt);
+          continue;
+        }
+      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
+        {
+          if (argv[i][env_prepend_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_prepend_opt_len + 1;
+              lt_opt_process_env_prepend (p);
+            }
+          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_prepend_opt);
+          continue;
+        }
+      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
+        {
+          if (argv[i][env_append_opt_len] == '=')
+            {
+              const char *p = argv[i] + env_append_opt_len + 1;
+              lt_opt_process_env_append (p);
+            }
+          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
+            {
+              lt_opt_process_env_append (argv[++i]); /* don't copy */
+            }
+          else
+            lt_fatal ("%s missing required argument", env_append_opt);
+          continue;
+        }
+      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal ("Unrecognized option in %s namespace: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
+    }
+  newargz[++newargc] = NULL;
 
-       # This library was specified with -dlopen.
-       if test "$pass" = dlopen; then
-         if test -z "$libdir"; then
-           func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
-         fi
-         if test -z "$dlname" ||
-            test "$dlopen_support" != yes ||
-            test "$build_libtool_libs" = no; then
-           # If there is no dlname, no dlopen support or we're linking
-           # statically, we need to preload.  We also need to preload any
-           # dependent libraries so libltdl's deplib preloader doesn't
-           # bomb out in the load deplibs phase.
-           dlprefiles="$dlprefiles $lib $dependency_libs"
-         else
-           newdlfiles="$newdlfiles $lib"
-         fi
-         continue
-       fi # $pass = dlopen
+  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+  for (i = 0; i < newargc; i++)
+    {
+      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
+    }
 
-       # We need an absolute path.
-       case $ladir in
-       [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-       *)
-         abs_ladir=`cd "$ladir" && pwd`
-         if test -z "$abs_ladir"; then
-           func_warning "cannot determine absolute directory name of \`$ladir'"
-           func_warning "passing it literally to the linker, although it might fail"
-           abs_ladir="$ladir"
-         fi
-         ;;
-       esac
-       func_basename "$lib"
-       laname="$func_basename_result"
+EOF
 
-       # Find the relevant object directory and library name.
-       if test "X$installed" = Xyes; then
-         if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-           func_warning "library \`$lib' was moved."
-           dir="$ladir"
-           absdir="$abs_ladir"
-           libdir="$abs_ladir"
-         else
-           dir="$libdir"
-           absdir="$libdir"
-         fi
-         test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
-       else
-         if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-           dir="$ladir"
-           absdir="$abs_ladir"
-           # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
-         else
-           dir="$ladir/$objdir"
-           absdir="$abs_ladir/$objdir"
-           # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
-         fi
-       fi # $installed = yes
-       func_stripname 'lib' '.la' "$laname"
-       name=$func_stripname_result
+           case $host_os in
+             mingw*)
+               cat <<"EOF"
+  /* execv doesn't actually work on mingw as expected on unix */
+  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+  if (rval == -1)
+    {
+      /* failed to start process */
+      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
+      return 127;
+    }
+  return rval;
+EOF
+               ;;
+             *)
+               cat <<"EOF"
+  execv (lt_argv_zero, newargz);
+  return rval; /* =127, but avoids unused variable warning */
+EOF
+               ;;
+           esac
 
-       # This library was specified with -dlpreopen.
-       if test "$pass" = dlpreopen; then
-         if test -z "$libdir" && test "$linkmode" = prog; then
-           func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
-         fi
-         # Prefer using a static library (so that no silly _DYNAMIC symbols
-         # are required to link).
-         if test -n "$old_library"; then
-           newdlprefiles="$newdlprefiles $dir/$old_library"
-           # Keep a list of preopened convenience libraries to check
-           # that they are being used correctly in the link pass.
-           test -z "$libdir" && \
-               dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
-         # Otherwise, use the dlname, so that lt_dlopen finds it.
-         elif test -n "$dlname"; then
-           newdlprefiles="$newdlprefiles $dir/$dlname"
-         else
-           newdlprefiles="$newdlprefiles $dir/$linklib"
-         fi
-       fi # $pass = dlpreopen
+           cat <<"EOF"
+}
 
-       if test -z "$libdir"; then
-         # Link the convenience library
-         if test "$linkmode" = lib; then
-           deplibs="$dir/$old_library $deplibs"
-         elif test "$linkmode,$pass" = "prog,link"; then
-           compile_deplibs="$dir/$old_library $compile_deplibs"
-           finalize_deplibs="$dir/$old_library $finalize_deplibs"
-         else
-           deplibs="$lib $deplibs" # used for prog,scan pass
-         fi
-         continue
-       fi
+void *
+xmalloc (size_t num)
+{
+  void *p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
 
+  return p;
+}
 
-       if test "$linkmode" = prog && test "$pass" != link; then
-         newlib_search_path="$newlib_search_path $ladir"
-         deplibs="$lib $deplibs"
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+                         string) : NULL;
+}
 
-         linkalldeplibs=no
-         if test "$link_all_deplibs" != no || test -z "$library_names" ||
-            test "$build_libtool_libs" = no; then
-           linkalldeplibs=yes
-         fi
+const char *
+base_name (const char *name)
+{
+  const char *base;
 
-         tmp_libs=
-         for deplib in $dependency_libs; do
-           case $deplib in
-           -L*) func_stripname '-L' '' "$deplib"
-                newlib_search_path="$newlib_search_path $func_stripname_result"
-                ;;
-           esac
-           # Need to link against all dependency_libs?
-           if test "$linkalldeplibs" = yes; then
-             deplibs="$deplib $deplibs"
-           else
-             # Need to hardcode shared library paths
-             # or/and link against static libraries
-             newdependency_libs="$deplib $newdependency_libs"
-           fi
-           if $opt_duplicate_deps ; then
-             case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-             esac
-           fi
-           tmp_libs="$tmp_libs $deplib"
-         done # for deplib
-         continue
-       fi # $linkmode = prog...
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+    name += 2;
+#endif
 
-       if test "$linkmode,$pass" = "prog,link"; then
-         if test -n "$library_names" &&
-            { { test "$prefer_static_libs" = no ||
-                test "$prefer_static_libs,$installed" = "built,yes"; } ||
-              test -z "$old_library"; }; then
-           # We need to hardcode the library path
-           if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
-             # Make sure the rpath contains only unique directories.
-             case "$temp_rpath:" in
-             *"$absdir:"*) ;;
-             *) temp_rpath="$temp_rpath$absdir:" ;;
-             esac
-           fi
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
 
-           # Hardcode the library path.
-           # Skip directories that are in the system default run-time
-           # search path.
-           case " $sys_lib_dlsearch_path " in
-           *" $absdir "*) ;;
-           *)
-             case "$compile_rpath " in
-             *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
-             esac
-             ;;
-           esac
-           case " $sys_lib_dlsearch_path " in
-           *" $libdir "*) ;;
-           *)
-             case "$finalize_rpath " in
-             *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
-             esac
-             ;;
-           esac
-         fi # $linkmode,$pass = prog,link...
+int
+check_executable (const char *path)
+{
+  struct stat st;
 
-         if test "$alldeplibs" = yes &&
-            { test "$deplibs_check_method" = pass_all ||
-              { test "$build_libtool_libs" = yes &&
-                test -n "$library_names"; }; }; then
-           # We only need to search for static libraries
-           continue
-         fi
-       fi
+  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
+                         path ? (*path ? path : "EMPTY!") : "NULL!"));
+  if ((!path) || (!*path))
+    return 0;
 
-       link_static=no # Whether the deplib will be linked statically
-       use_static_libs=$prefer_static_libs
-       if test "$use_static_libs" = built && test "$installed" = yes; then
-         use_static_libs=no
-       fi
-       if test -n "$library_names" &&
-          { test "$use_static_libs" = no || test -z "$old_library"; }; then
-         case $host in
-         *cygwin* | *mingw*)
-             # No point in relinking DLLs because paths are not encoded
-             notinst_deplibs="$notinst_deplibs $lib"
-             need_relink=no
-           ;;
-         *)
-           if test "$installed" = no; then
-             notinst_deplibs="$notinst_deplibs $lib"
-             need_relink=yes
-           fi
-           ;;
-         esac
-         # This is a shared library
+  if ((stat (path, &st) >= 0)
+      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+    return 1;
+  else
+    return 0;
+}
 
-         # Warn about portability, can't link against -module's on some
-         # systems (darwin).  Don't bleat about dlopened modules though!
-         dlopenmodule=""
-         for dlpremoduletest in $dlprefiles; do
-           if test "X$dlpremoduletest" = "X$lib"; then
-             dlopenmodule="$dlpremoduletest"
-             break
-           fi
-         done
-         if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
-           $ECHO
-           if test "$linkmode" = prog; then
-             $ECHO "*** Warning: Linking the executable $output against the loadable module"
-           else
-             $ECHO "*** Warning: Linking the shared library $output against the loadable module"
-           fi
-           $ECHO "*** $linklib is not portable!"
-         fi
-         if test "$linkmode" = lib &&
-            test "$hardcode_into_libs" = yes; then
-           # Hardcode the library path.
-           # Skip directories that are in the system default run-time
-           # search path.
-           case " $sys_lib_dlsearch_path " in
-           *" $absdir "*) ;;
-           *)
-             case "$compile_rpath " in
-             *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
-             esac
-             ;;
-           esac
-           case " $sys_lib_dlsearch_path " in
-           *" $libdir "*) ;;
-           *)
-             case "$finalize_rpath " in
-             *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
-             esac
-             ;;
-           esac
-         fi
+int
+make_executable (const char *path)
+{
+  int rval = 0;
+  struct stat st;
 
-         if test -n "$old_archive_from_expsyms_cmds"; then
-           # figure out the soname
-           set dummy $library_names
-           shift
-           realname="$1"
-           shift
-           libname=`eval "\\$ECHO \"$libname_spec\""`
-           # use dlname if we got it. it's perfectly good, no?
-           if test -n "$dlname"; then
-             soname="$dlname"
-           elif test -n "$soname_spec"; then
-             # bleh windows
-             case $host in
-             *cygwin* | mingw*)
-               major=`expr $current - $age`
-               versuffix="-$major"
-               ;;
-             esac
-             eval soname=\"$soname_spec\"
-           else
-             soname="$realname"
-           fi
+  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
+                         path ? (*path ? path : "EMPTY!") : "NULL!"));
+  if ((!path) || (!*path))
+    return 0;
 
-           # Make a new name for the extract_expsyms_cmds to use
-           soroot="$soname"
-           func_basename "$soroot"
-           soname="$func_basename_result"
-           func_stripname 'lib' '.dll' "$soname"
-           newlib=libimp-$func_stripname_result.a
+  if (stat (path, &st) >= 0)
+    {
+      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+    }
+  return rval;
+}
 
-           # If the library has no export list, then create one now
-           if test -f "$output_objdir/$soname-def"; then :
-           else
-             func_echo "extracting exported symbol list from \`$soname'"
-             func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
-           fi
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise
+   Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+  int has_slash = 0;
+  const char *p;
+  const char *p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  int tmp_len;
+  char *concat_name;
 
-           # Create $newlib
-           if test -f "$output_objdir/$newlib"; then :; else
-             func_echo "generating import library for \`$soname'"
-             func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
-           fi
-           # make sure the library variables are pointing to the new library
-           dir=$output_objdir
-           linklib=$newlib
-         fi # test -n "$old_archive_from_expsyms_cmds"
+  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
+                         wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
 
-         if test "$linkmode" = prog || test "$mode" != relink; then
-           add_shlibpath=
-           add_dir=
-           add=
-           lib_linked=yes
-           case $hardcode_action in
-           immediate | unsupported)
-             if test "$hardcode_direct" = no; then
-               add="$dir/$linklib"
-               case $host in
-                 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-                 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
-                 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-                   *-*-unixware7*) add_dir="-L$dir" ;;
-                 *-*-darwin* )
-                   # if the lib is a (non-dlopened) module then we can not
-                   # link against it, someone is ignoring the earlier warnings
-                   if /usr/bin/file -L $add 2> /dev/null |
-                        $GREP ": [^:]* bundle" >/dev/null ; then
-                     if test "X$dlopenmodule" != "X$lib"; then
-                       $ECHO "*** Warning: lib $linklib is a module, not a shared library"
-                       if test -z "$old_library" ; then
-                         $ECHO
-                         $ECHO "*** And there doesn't seem to be a static archive available"
-                         $ECHO "*** The link will probably fail, sorry"
-                       else
-                         add="$dir/$old_library"
-                       fi
-                     elif test -n "$old_library"; then
-                       add="$dir/$old_library"
-                     fi
-                   fi
-               esac
-             elif test "$hardcode_minus_L" = no; then
-               case $host in
-               *-*-sunos*) add_shlibpath="$dir" ;;
-               esac
-               add_dir="-L$dir"
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = no; then
-               add_shlibpath="$dir"
-               add="-l$name"
-             else
-               lib_linked=no
-             fi
-             ;;
-           relink)
-             if test "$hardcode_direct" = yes &&
-                test "$hardcode_direct_absolute" = no; then
-               add="$dir/$linklib"
-             elif test "$hardcode_minus_L" = yes; then
-               add_dir="-L$dir"
-               # Try looking first in the location we're being installed to.
-               if test -n "$inst_prefix_dir"; then
-                 case $libdir in
-                   [\\/]*)
-                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
-                     ;;
-                 esac
-               fi
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = yes; then
-               add_shlibpath="$dir"
-               add="-l$name"
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
+
+  /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable (concat_name))
+       return concat_name;
+      XFREE (concat_name);
+    }
+  else
+    {
+#endif
+      if (IS_DIR_SEPARATOR (wrapper[0]))
+       {
+         concat_name = xstrdup (wrapper);
+         if (check_executable (concat_name))
+           return concat_name;
+         XFREE (concat_name);
+       }
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+    }
+#endif
+
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+      {
+       has_slash = 1;
+       break;
+      }
+  if (!has_slash)
+    {
+      /* no slashes; search PATH */
+      const char *path = getenv ("PATH");
+      if (path != NULL)
+       {
+         for (p = path; *p; p = p_next)
+           {
+             const char *q;
+             size_t p_len;
+             for (q = p; *q; q++)
+               if (IS_PATH_SEPARATOR (*q))
+                 break;
+             p_len = q - p;
+             p_next = (*q == '\0' ? q : q + 1);
+             if (p_len == 0)
+               {
+                 /* empty path: current directory */
+                 if (getcwd (tmp, LT_PATHMAX) == NULL)
+                   lt_fatal ("getcwd failed");
+                 tmp_len = strlen (tmp);
+                 concat_name =
+                   XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+                 memcpy (concat_name, tmp, tmp_len);
+                 concat_name[tmp_len] = '/';
+                 strcpy (concat_name + tmp_len + 1, wrapper);
+               }
              else
-               lib_linked=no
-             fi
-             ;;
-           *) lib_linked=no ;;
-           esac
+               {
+                 concat_name =
+                   XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+                 memcpy (concat_name, p, p_len);
+                 concat_name[p_len] = '/';
+                 strcpy (concat_name + p_len + 1, wrapper);
+               }
+             if (check_executable (concat_name))
+               return concat_name;
+             XFREE (concat_name);
+           }
+       }
+      /* not found in PATH; assume curdir */
+    }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  tmp_len = strlen (tmp);
+  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
 
-           if test "$lib_linked" != yes; then
-             func_fatal_configuration "unsupported hardcode properties"
-           fi
+  if (check_executable (concat_name))
+    return concat_name;
+  XFREE (concat_name);
+  return NULL;
+}
 
-           if test -n "$add_shlibpath"; then
-             case :$compile_shlibpath: in
-             *":$add_shlibpath:"*) ;;
-             *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
-             esac
-           fi
-           if test "$linkmode" = prog; then
-             test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-             test -n "$add" && compile_deplibs="$add $compile_deplibs"
-           else
-             test -n "$add_dir" && deplibs="$add_dir $deplibs"
-             test -n "$add" && deplibs="$add $deplibs"
-             if test "$hardcode_direct" != yes &&
-                test "$hardcode_minus_L" != yes &&
-                test "$hardcode_shlibpath_var" = yes; then
-               case :$finalize_shlibpath: in
-               *":$libdir:"*) ;;
-               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-               esac
-             fi
-           fi
-         fi
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+  return xstrdup (pathspec);
+#else
+  char buf[LT_PATHMAX];
+  struct stat s;
+  char *tmp_pathspec = xstrdup (pathspec);
+  char *p;
+  int has_symlinks = 0;
+  while (strlen (tmp_pathspec) && !has_symlinks)
+    {
+      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
+                             tmp_pathspec));
+      if (lstat (tmp_pathspec, &s) == 0)
+       {
+         if (S_ISLNK (s.st_mode) != 0)
+           {
+             has_symlinks = 1;
+             break;
+           }
 
-         if test "$linkmode" = prog || test "$mode" = relink; then
-           add_shlibpath=
-           add_dir=
-           add=
-           # Finalize command for both is simple: just hardcode it.
-           if test "$hardcode_direct" = yes &&
-              test "$hardcode_direct_absolute" = no; then
-             add="$libdir/$linklib"
-           elif test "$hardcode_minus_L" = yes; then
-             add_dir="-L$libdir"
-             add="-l$name"
-           elif test "$hardcode_shlibpath_var" = yes; then
-             case :$finalize_shlibpath: in
-             *":$libdir:"*) ;;
-             *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-             esac
-             add="-l$name"
-           elif test "$hardcode_automatic" = yes; then
-             if test -n "$inst_prefix_dir" &&
-                test -f "$inst_prefix_dir$libdir/$linklib" ; then
-               add="$inst_prefix_dir$libdir/$linklib"
-             else
-               add="$libdir/$linklib"
-             fi
-           else
-             # We cannot seem to hardcode it, guess we'll fake it.
-             add_dir="-L$libdir"
-             # Try looking first in the location we're being installed to.
-             if test -n "$inst_prefix_dir"; then
-               case $libdir in
-                 [\\/]*)
-                   add_dir="$add_dir -L$inst_prefix_dir$libdir"
-                   ;;
-               esac
-             fi
-             add="-l$name"
-           fi
+         /* search backwards for last DIR_SEPARATOR */
+         p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+         while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+           p--;
+         if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+           {
+             /* no more DIR_SEPARATORS left */
+             break;
+           }
+         *p = '\0';
+       }
+      else
+       {
+         char *errstr = strerror (errno);
+         lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
+       }
+    }
+  XFREE (tmp_pathspec);
 
-           if test "$linkmode" = prog; then
-             test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-             test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
-           else
-             test -n "$add_dir" && deplibs="$add_dir $deplibs"
-             test -n "$add" && deplibs="$add $deplibs"
-           fi
-         fi
-       elif test "$linkmode" = prog; then
-         # Here we assume that one of hardcode_direct or hardcode_minus_L
-         # is not unsupported.  This is valid on all known static and
-         # shared platforms.
-         if test "$hardcode_direct" != unsupported; then
-           test -n "$old_library" && linklib="$old_library"
-           compile_deplibs="$dir/$linklib $compile_deplibs"
-           finalize_deplibs="$dir/$linklib $finalize_deplibs"
-         else
-           compile_deplibs="-l$name -L$dir $compile_deplibs"
-           finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-         fi
-       elif test "$build_libtool_libs" = yes; then
-         # Not a shared library
-         if test "$deplibs_check_method" != pass_all; then
-           # We're trying link a shared library against a static one
-           # but the system doesn't support it.
+  if (!has_symlinks)
+    {
+      return xstrdup (pathspec);
+    }
 
-           # Just print a warning and add the library to dependency_libs so
-           # that the program can be linked against the static library.
-           $ECHO
-           $ECHO "*** Warning: This system can not link to static lib archive $lib."
-           $ECHO "*** I have the capability to make that library automatically link in when"
-           $ECHO "*** you link to this library.  But I can only do this if you have a"
-           $ECHO "*** shared version of the library, which you do not appear to have."
-           if test "$module" = yes; then
-             $ECHO "*** But as you try to build a module library, libtool will still create "
-             $ECHO "*** a static module, that should work as long as the dlopening application"
-             $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
-             if test -z "$global_symbol_pipe"; then
-               $ECHO
-               $ECHO "*** However, this would only work if libtool was able to extract symbol"
-               $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-               $ECHO "*** not find such a program.  So, this module is probably useless."
-               $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
-             fi
-             if test "$build_old_libs" = no; then
-               build_libtool_libs=module
-               build_old_libs=yes
-             else
-               build_libtool_libs=no
-             fi
-           fi
-         else
-           deplibs="$dir/$old_library $deplibs"
-           link_static=yes
-         fi
-       fi # link shared/static library?
+  tmp_pathspec = realpath (pathspec, buf);
+  if (tmp_pathspec == 0)
+    {
+      lt_fatal ("Could not follow symlinks for %s", pathspec);
+    }
+  return xstrdup (tmp_pathspec);
+#endif
+}
 
-       if test "$linkmode" = lib; then
-         if test -n "$dependency_libs" &&
-            { test "$hardcode_into_libs" != yes ||
-              test "$build_old_libs" = yes ||
-              test "$link_static" = yes; }; then
-           # Extract -R from dependency_libs
-           temp_deplibs=
-           for libdir in $dependency_libs; do
-             case $libdir in
-             -R*) func_stripname '-R' '' "$libdir"
-                  temp_xrpath=$func_stripname_result
-                  case " $xrpath " in
-                  *" $temp_xrpath "*) ;;
-                  *) xrpath="$xrpath $temp_xrpath";;
-                  esac;;
-             *) temp_deplibs="$temp_deplibs $libdir";;
-             esac
-           done
-           dependency_libs="$temp_deplibs"
-         fi
+char *
+strendzap (char *str, const char *pat)
+{
+  size_t len, patlen;
 
-         newlib_search_path="$newlib_search_path $absdir"
-         # Link against this library
-         test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-         # ... and its dependency_libs
-         tmp_libs=
-         for deplib in $dependency_libs; do
-           newdependency_libs="$deplib $newdependency_libs"
-           if $opt_duplicate_deps ; then
-             case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-             esac
-           fi
-           tmp_libs="$tmp_libs $deplib"
-         done
+  assert (str != NULL);
+  assert (pat != NULL);
 
-         if test "$link_all_deplibs" != no; then
-           # Add the search paths of all dependency libraries
-           for deplib in $dependency_libs; do
-             case $deplib in
-             -L*) path="$deplib" ;;
-             *.la)
-               func_dirname "$deplib" "" "."
-               dir="$func_dirname_result"
-               # We need an absolute path.
-               case $dir in
-               [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-               *)
-                 absdir=`cd "$dir" && pwd`
-                 if test -z "$absdir"; then
-                   func_warning "cannot determine absolute directory name of \`$dir'"
-                   absdir="$dir"
-                 fi
-                 ;;
-               esac
-               if $GREP "^installed=no" $deplib > /dev/null; then
-               case $host in
-               *-*-darwin*)
-                 depdepl=
-                 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-                 if test -n "$deplibrary_names" ; then
-                   for tmp in $deplibrary_names ; do
-                     depdepl=$tmp
-                   done
-                   if test -f "$absdir/$objdir/$depdepl" ; then
-                     depdepl="$absdir/$objdir/$depdepl"
-                     darwin_install_name=`otool -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
-                     darwin_install_name=`$ECHO $darwin_install_name`
-                      if test -z "$darwin_install_name"; then
-                          darwin_install_name=`otool64 -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
-                          darwin_install_name=`$ECHO $darwin_install_name`
-                      fi
-                     compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-                     linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
-                     path=
-                   fi
-                 fi
-                 ;;
-               *)
-                 path="-L$absdir/$objdir"
-                 ;;
-               esac
-               else
-                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-                 test -z "$libdir" && \
-                   func_fatal_error "\`$deplib' is not a valid libtool archive"
-                 test "$absdir" != "$libdir" && \
-                   func_warning "\`$deplib' seems to be moved"
+  len = strlen (str);
+  patlen = strlen (pat);
 
-                 path="-L$absdir"
-               fi
-               ;;
-             esac
-             case " $deplibs " in
-             *" $path "*) ;;
-             *) deplibs="$path $deplibs" ;;
-             esac
-           done
-         fi # link_all_deplibs != no
-       fi # linkmode = lib
-      done # for deplib in $libs
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
-       # Link the dlpreopened libraries before other libraries
-       for deplib in $save_deplibs; do
-         deplibs="$deplib $deplibs"
-       done
-      fi
-      if test "$pass" != dlopen; then
-       if test "$pass" != conv; then
-         # Make sure lib_search_path contains only unique directories.
-         lib_search_path=
-         for dir in $newlib_search_path; do
-           case "$lib_search_path " in
-           *" $dir "*) ;;
-           *) lib_search_path="$lib_search_path $dir" ;;
-           esac
-         done
-         newlib_search_path=
-       fi
+  if (patlen <= len)
+    {
+      str += len - patlen;
+      if (strcmp (str, pat) == 0)
+       *str = '\0';
+    }
+  return str;
+}
 
-       if test "$linkmode,$pass" != "prog,link"; then
-         vars="deplibs"
-       else
-         vars="compile_deplibs finalize_deplibs"
-       fi
-       for var in $vars dependency_libs; do
-         # Add libraries to $var in reverse order
-         eval tmp_libs=\"\$$var\"
-         new_libs=
-         for deplib in $tmp_libs; do
-           # FIXME: Pedantically, this is the right thing to do, so
-           #        that some nasty dependency loop isn't accidentally
-           #        broken:
-           #new_libs="$deplib $new_libs"
-           # Pragmatically, this seems to cause very few problems in
-           # practice:
-           case $deplib in
-           -L*) new_libs="$deplib $new_libs" ;;
-           -R*) ;;
-           *)
-             # And here is the reason: when a library appears more
-             # than once as an explicit dependence of a library, or
-             # is implicitly linked in more than once by the
-             # compiler, it is considered special, and multiple
-             # occurrences thereof are not removed.  Compare this
-             # with having the same library being listed as a
-             # dependency of multiple other libraries: in this case,
-             # we know (pedantically, we assume) the library does not
-             # need to be listed more than once, so we keep only the
-             # last copy.  This is not always right, but it is rare
-             # enough that we require users that really mean to play
-             # such unportable linking tricks to link the library
-             # using -Wl,-lname, so that libtool does not consider it
-             # for duplicate removal.
-             case " $specialdeplibs " in
-             *" $deplib "*) new_libs="$deplib $new_libs" ;;
-             *)
-               case " $new_libs " in
-               *" $deplib "*) ;;
-               *) new_libs="$deplib $new_libs" ;;
-               esac
-               ;;
-             esac
-             ;;
-           esac
-         done
-         tmp_libs=
-         for deplib in $new_libs; do
-           case $deplib in
-           -L*)
-             case " $tmp_libs " in
-             *" $deplib "*) ;;
-             *) tmp_libs="$tmp_libs $deplib" ;;
-             esac
-             ;;
-           *) tmp_libs="$tmp_libs $deplib" ;;
-           esac
-         done
-         eval $var=\"$tmp_libs\"
-       done # for var
-      fi
-      # Last step: remove runtime libs from dependency_libs
-      # (they stay in deplibs)
-      tmp_libs=
-      for i in $dependency_libs ; do
-       case " $predeps $postdeps $compiler_lib_search_path " in
-       *" $i "*)
-         i=""
-         ;;
-       esac
-       if test -n "$i" ; then
-         tmp_libs="$tmp_libs $i"
-       fi
-      done
-      dependency_libs=$tmp_libs
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-    fi
-    if test "$linkmode" = prog || test "$linkmode" = lib; then
-      dlprefiles="$newdlprefiles"
-    fi
+static void
+lt_error_core (int exit_status, const char *mode,
+              const char *message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
 
-    case $linkmode in
-    oldlib)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       func_warning "\`-dlopen' is ignored for archives"
-      fi
+  if (exit_status >= 0)
+    exit (exit_status);
+}
 
-      test -n "$deplibs" && \
-       func_warning "\`-l' and \`-L' are ignored for archives"
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
 
+void
+lt_setenv (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
+  {
+#ifdef HAVE_SETENV
+    /* always make a copy, for consistency with !HAVE_SETENV */
+    char *str = xstrdup (value);
+    setenv (name, str, 1);
+#else
+    int len = strlen (name) + 1 + strlen (value) + 1;
+    char *str = XMALLOC (char, len);
+    sprintf (str, "%s=%s", name, value);
+    if (putenv (str) != EXIT_SUCCESS)
+      {
+        XFREE (str);
+      }
+#endif
+  }
+}
 
-      test -n "$rpath" && \
-       func_warning "\`-rpath' is ignored for archives"
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+  char *new_value;
+  if (orig_value && *orig_value)
+    {
+      int orig_value_len = strlen (orig_value);
+      int add_len = strlen (add);
+      new_value = XMALLOC (char, add_len + orig_value_len + 1);
+      if (to_end)
+        {
+          strcpy (new_value, orig_value);
+          strcpy (new_value + orig_value_len, add);
+        }
+      else
+        {
+          strcpy (new_value, add);
+          strcpy (new_value + add_len, orig_value);
+        }
+    }
+  else
+    {
+      new_value = xstrdup (add);
+    }
+  return new_value;
+}
 
-      test -n "$xrpath" && \
-       func_warning "\`-R' is ignored for archives"
+int
+lt_split_name_value (const char *arg, char** name, char** value)
+{
+  const char *p;
+  int len;
+  if (!arg || !*arg)
+    return 1;
 
-      test -n "$vinfo" && \
-       func_warning "\`-version-info/-version-number' is ignored for archives"
+  p = strchr (arg, (int)'=');
 
-      test -n "$release" && \
-       func_warning "\`-release' is ignored for archives"
+  if (!p)
+    return 1;
 
-      test -n "$export_symbols$export_symbols_regex" && \
-       func_warning "\`-export-symbols' is ignored for archives"
+  *value = xstrdup (++p);
 
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      objs="$objs$old_deplibs"
-      ;;
+  len = strlen (arg) - strlen (*value);
+  *name = XMALLOC (char, len);
+  strncpy (*name, arg, len-1);
+  (*name)[len - 1] = '\0';
 
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-       func_stripname 'lib' '.la' "$outputname"
-       name=$func_stripname_result
-       eval shared_ext=\"$shrext_cmds\"
-       eval libname=\"$libname_spec\"
-       ;;
-      *)
-       test "$module" = no && \
-         func_fatal_help "libtool library \`$output' must begin with \`lib'"
+  return 0;
+}
 
-       if test "$need_lib_prefix" != no; then
-         # Add the "lib" prefix for modules if required
-         func_stripname '' '.la' "$outputname"
-         name=$func_stripname_result
-         eval shared_ext=\"$shrext_cmds\"
-         eval libname=\"$libname_spec\"
-       else
-         func_stripname '' '.la' "$outputname"
-         libname=$func_stripname_result
-       fi
-       ;;
-      esac
+void
+lt_opt_process_env_set (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
 
-      if test -n "$objs"; then
-       if test "$deplibs_check_method" != pass_all; then
-         func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
-       else
-         $ECHO
-         $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
-         $ECHO "*** objects $objs is not portable!"
-         libobjs="$libobjs $objs"
-       fi
-      fi
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
+    }
 
-      test "$dlself" != no && \
-       func_warning "\`-dlopen self' is ignored for libtool libraries"
+  lt_setenv (name, value);
+  XFREE (name);
+  XFREE (value);
+}
 
-      set dummy $rpath
-      shift
-      test "$#" -gt 1 && \
-       func_warning "ignoring multiple \`-rpath's for a libtool library"
+void
+lt_opt_process_env_prepend (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+  char *new_value = NULL;
 
-      install_libdir="$1"
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
+    }
 
-      oldlibs=
-      if test -z "$rpath"; then
-       if test "$build_libtool_libs" = yes; then
-         # Building a libtool convenience library.
-         # Some compilers have problems with a `.al' extension so
-         # convenience libraries should have the same extension an
-         # archive normally would.
-         oldlibs="$output_objdir/$libname.$libext $oldlibs"
-         build_libtool_libs=convenience
-         build_old_libs=yes
-       fi
+  new_value = lt_extend_str (getenv (name), value, 0);
+  lt_setenv (name, new_value);
+  XFREE (new_value);
+  XFREE (name);
+  XFREE (value);
+}
 
-       test -n "$vinfo" && \
-         func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
+void
+lt_opt_process_env_append (const char *arg)
+{
+  char *name = NULL;
+  char *value = NULL;
+  char *new_value = NULL;
 
-       test -n "$release" && \
-         func_warning "\`-release' is ignored for convenience libraries"
-      else
+  if (lt_split_name_value (arg, &name, &value) != 0)
+    {
+      XFREE (name);
+      XFREE (value);
+      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
+    }
 
-       # Parse the version information argument.
-       save_ifs="$IFS"; IFS=':'
-       set dummy $vinfo 0 0 0
-       shift
-       IFS="$save_ifs"
+  new_value = lt_extend_str (getenv (name), value, 1);
+  lt_setenv (name, new_value);
+  XFREE (new_value);
+  XFREE (name);
+  XFREE (value);
+}
 
-       test -n "$7" && \
-         func_fatal_help "too many parameters to \`-version-info'"
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
 
-       # convert absolute version numbers to libtool ages
-       # this retains compatibility with .la files and attempts
-       # to make the code below a bit more comprehensible
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      /* some systems can't cope with a ':'-terminated path #' */
+      int len = strlen (new_value);
+      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+        {
+          new_value[len-1] = '\0';
+        }
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
 
-       case $vinfo_number in
-       yes)
-         number_major="$1"
-         number_minor="$2"
-         number_revision="$3"
-         #
-         # There are really only two kinds -- those that
-         # use the current revision as the major version
-         # and those that subtract age and use age as
-         # a minor version.  But, then there is irix
-         # which has an extra 1 added just for fun
-         #
-         case $version_type in
-         darwin|linux|osf|windows|none)
-           current=`expr $number_major + $number_minor`
-           age="$number_minor"
-           revision="$number_revision"
-           ;;
-         freebsd-aout|freebsd-elf|sunos)
-           current="$number_major"
-           revision="$number_minor"
-           age="0"
-           ;;
-         irix|nonstopux)
-           current=`expr $number_major + $number_minor - 1`
-           age="$number_minor"
-           revision="$number_minor"
-           ;;
-         esac
-         ;;
-       no)
-         current="$1"
-         revision="$2"
-         age="$3"
-         ;;
-       esac
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                          (name ? name : "<NULL>"),
+                          (value ? value : "<NULL>")));
 
-       # Check that each of the things are valid numbers.
-       case $current in
-       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-       *)
-         func_error "CURRENT \`$current' must be a nonnegative integer"
-         func_fatal_error "\`$vinfo' is not valid version information"
-         ;;
-       esac
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
 
-       case $revision in
-       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-       *)
-         func_error "REVISION \`$revision' must be a nonnegative integer"
-         func_fatal_error "\`$vinfo' is not valid version information"
-         ;;
-       esac
 
-       case $age in
-       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-       *)
-         func_error "AGE \`$age' must be a nonnegative integer"
-         func_fatal_error "\`$vinfo' is not valid version information"
-         ;;
-       esac
+EOF
+}
+# end: func_emit_cwrapperexe_src
 
-       if test "$age" -gt "$current"; then
-         func_error "AGE \`$age' is greater than the current interface number \`$current'"
-         func_fatal_error "\`$vinfo' is not valid version information"
-       fi
+# func_mode_link arg...
+func_mode_link ()
+{
+    $opt_debug
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
 
-       # Calculate the version variables.
-       major=
-       versuffix=
-       verstring=
-       case $version_type in
-       none) ;;
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args=$nonopt
+    base_compile="$nonopt $@"
+    compile_command=$nonopt
+    finalize_command=$nonopt
 
-       darwin)
-         # Like Linux, but with the current version available in
-         # verstring for coding it into the library header
-         major=.`expr $current - $age`
-         versuffix="$major.$age.$revision"
-         # Darwin ld doesn't like 0 for these options...
-         minor_current=`expr $current + 1`
-         verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
-         ;;
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+    new_inherited_linker_flags=
 
-       freebsd-aout)
-         major=".$current"
-         versuffix=".$current.$revision";
-         ;;
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+    weak_libs=
+    single_module="${wl}-single_module"
+    func_infer_tag $base_compile
 
-       freebsd-elf)
-         major=".$current"
-         versuffix=".$current"
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -shared)
+       test "$build_libtool_libs" != yes && \
+         func_fatal_configuration "can not build a shared library"
+       build_old_libs=no
+       break
+       ;;
+      -all-static | -static | -static-libtool-libs)
+       case $arg in
+       -all-static)
+         if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+           func_warning "complete static linking is impossible in this configuration"
+         fi
+         if test -n "$link_static_flag"; then
+           dlopen_self=$dlopen_self_static
+         fi
+         prefer_static_libs=yes
          ;;
-
-       irix | nonstopux)
-         major=`expr $current - $age + 1`
-
-         case $version_type in
-           nonstopux) verstring_prefix=nonstopux ;;
-           *)         verstring_prefix=sgi ;;
-         esac
-         verstring="$verstring_prefix$major.$revision"
-
-         # Add in all the interfaces that we are compatible with.
-         loop=$revision
-         while test "$loop" -ne 0; do
-           iface=`expr $revision - $loop`
-           loop=`expr $loop - 1`
-           verstring="$verstring_prefix$major.$iface:$verstring"
-         done
-
-         # Before this point, $major must not contain `.'.
-         major=.$major
-         versuffix="$major.$revision"
+       -static)
+         if test -z "$pic_flag" && test -n "$link_static_flag"; then
+           dlopen_self=$dlopen_self_static
+         fi
+         prefer_static_libs=built
          ;;
-
-       linux)
-         major=.`expr $current - $age`
-         versuffix="$major.$age.$revision"
+       -static-libtool-libs)
+         if test -z "$pic_flag" && test -n "$link_static_flag"; then
+           dlopen_self=$dlopen_self_static
+         fi
+         prefer_static_libs=yes
          ;;
+       esac
+       build_libtool_libs=no
+       build_old_libs=yes
+       break
+       ;;
+      esac
+    done
 
-       osf)
-         major=.`expr $current - $age`
-         versuffix=".$current.$age.$revision"
-         verstring="$current.$age.$revision"
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
 
-         # Add in all the interfaces that we are compatible with.
-         loop=$age
-         while test "$loop" -ne 0; do
-           iface=`expr $current - $loop`
-           loop=`expr $loop - 1`
-           verstring="$verstring:${iface}.0"
-         done
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      shift
+      func_quote_for_eval "$arg"
+      qarg=$func_quote_for_eval_unquoted_result
+      func_append libtool_args " $func_quote_for_eval_result"
 
-         # Make executables depend on our current version.
-         verstring="$verstring:${current}.0"
-         ;;
-
-       qnx)
-         major=".$current"
-         versuffix=".$current"
-         ;;
-
-       sunos)
-         major=".$current"
-         versuffix=".$current.$revision"
-         ;;
-
-       windows)
-         # Use '-' rather than '.', since we only want one
-         # extension on DOS 8.3 filesystems.
-         major=`expr $current - $age`
-         versuffix="-$major"
-         ;;
-
-       *)
-         func_fatal_configuration "unknown library version type \`$version_type'"
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+       case $prev in
+       output)
+         func_append compile_command " @OUTPUT@"
+         func_append finalize_command " @OUTPUT@"
          ;;
        esac
 
-       # Clear the version info if we defaulted, and they specified a release.
-       if test -z "$vinfo" && test -n "$release"; then
-         major=
-         case $version_type in
-         darwin)
-           # we can't check for "0.0" in archive_cmds due to quoting
-           # problems, so we reset it completely
-           verstring=
+       case $prev in
+       dlfiles|dlprefiles)
+         if test "$preload" = no; then
+           # Add the symbol object into the linking commands.
+           func_append compile_command " @SYMFILE@"
+           func_append finalize_command " @SYMFILE@"
+           preload=yes
+         fi
+         case $arg in
+         *.la | *.lo) ;;  # We handle these cases below.
+         force)
+           if test "$dlself" = no; then
+             dlself=needless
+             export_dynamic=yes
+           fi
+           prev=
+           continue
+           ;;
+         self)
+           if test "$prev" = dlprefiles; then
+             dlself=yes
+           elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+             dlself=yes
+           else
+             dlself=needless
+             export_dynamic=yes
+           fi
+           prev=
+           continue
            ;;
          *)
-           verstring="0.0"
+           if test "$prev" = dlfiles; then
+             dlfiles="$dlfiles $arg"
+           else
+             dlprefiles="$dlprefiles $arg"
+           fi
+           prev=
+           continue
            ;;
          esac
-         if test "$need_version" = no; then
-           versuffix=
-         else
-           versuffix=".0.0"
-         fi
-       fi
-
-       # Remove version info from name if versioning should be avoided
-       if test "$avoid_version" = yes && test "$need_version" = no; then
-         major=
-         versuffix=
-         verstring=""
-       fi
-
-       # Check to see if the archive will have undefined symbols.
-       if test "$allow_undefined" = yes; then
-         if test "$allow_undefined_flag" = unsupported; then
-           func_warning "undefined symbols not allowed in $host shared libraries"
-           build_libtool_libs=no
-           build_old_libs=yes
-         fi
-       else
-         # Don't allow undefined symbols.
-         allow_undefined_flag="$no_undefined_flag"
-       fi
+         ;;
+       expsyms)
+         export_symbols="$arg"
+         test -f "$arg" \
+           || func_fatal_error "symbol file \`$arg' does not exist"
+         prev=
+         continue
+         ;;
+       expsyms_regex)
+         export_symbols_regex="$arg"
+         prev=
+         continue
+         ;;
+       framework)
+         case $host in
+           *-*-darwin*)
+             case "$deplibs " in
+               *" $qarg.ltframework "*) ;;
+               *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+                  ;;
+             esac
+             ;;
+         esac
+         prev=
+         continue
+         ;;
+       inst_prefix)
+         inst_prefix_dir="$arg"
+         prev=
+         continue
+         ;;
+       objectlist)
+         if test -f "$arg"; then
+           save_arg=$arg
+           moreargs=
+           for fil in `cat "$save_arg"`
+           do
+#            moreargs="$moreargs $fil"
+             arg=$fil
+             # A libtool-controlled object.
 
-      fi
+             # Check to see that this really is a libtool object.
+             if func_lalib_unsafe_p "$arg"; then
+               pic_object=
+               non_pic_object=
 
-      func_generate_dlsyms "$libname" "$libname" "yes"
-      libobjs="$libobjs $symfileobj"
-      test "X$libobjs" = "X " && libobjs=
+               # Read the .lo file
+               func_source "$arg"
 
-      if test "$mode" != relink; then
-       # Remove our outputs, but don't remove object files since they
-       # may have been created when compiling PIC objects.
-       removelist=
-       tempremovelist=`$ECHO "$output_objdir/*"`
-       for p in $tempremovelist; do
-         case $p in
-           *.$objext)
-              ;;
-           $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-              if test "X$precious_files_regex" != "X"; then
-                if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
-                then
-                  continue
-                fi
-              fi
-              removelist="$removelist $p"
-              ;;
-           *) ;;
-         esac
-       done
-       test -n "$removelist" && \
-         func_show_eval "${RM}r \$removelist"
-      fi
+               if test -z "$pic_object" ||
+                  test -z "$non_pic_object" ||
+                  test "$pic_object" = none &&
+                  test "$non_pic_object" = none; then
+                 func_fatal_error "cannot find name of object for \`$arg'"
+               fi
 
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-       oldlibs="$oldlibs $output_objdir/$libname.$libext"
+               # Extract subdirectory from the argument.
+               func_dirname "$arg" "/" ""
+               xdir="$func_dirname_result"
 
-       # Transform .lo files to .o files.
-       oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
-      fi
+               if test "$pic_object" != none; then
+                 # Prepend the subdirectory the object is found in.
+                 pic_object="$xdir$pic_object"
 
-      # Eliminate all temporary directories.
-      #for path in $notinst_path; do
-      #        lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
-      #        deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
-      #        dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
-      #done
+                 if test "$prev" = dlfiles; then
+                   if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+                     dlfiles="$dlfiles $pic_object"
+                     prev=
+                     continue
+                   else
+                     # If libtool objects are unsupported, then we need to preload.
+                     prev=dlprefiles
+                   fi
+                 fi
 
-      if test -n "$xrpath"; then
-       # If the user specified any rpath flags, then add them.
-       temp_xrpath=
-       for libdir in $xrpath; do
-         temp_xrpath="$temp_xrpath -R$libdir"
-         case "$finalize_rpath " in
-         *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
-         esac
-       done
-       if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-         dependency_libs="$temp_xrpath $dependency_libs"
-       fi
-      fi
+                 # CHECK ME:  I think I busted this.  -Ossama
+                 if test "$prev" = dlprefiles; then
+                   # Preload the old-style object.
+                   dlprefiles="$dlprefiles $pic_object"
+                   prev=
+                 fi
 
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-       case " $dlprefiles $dlfiles " in
-       *" $lib "*) ;;
-       *) dlfiles="$dlfiles $lib" ;;
-       esac
-      done
+                 # A PIC object.
+                 func_append libobjs " $pic_object"
+                 arg="$pic_object"
+               fi
 
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-       case "$dlprefiles " in
-       *" $lib "*) ;;
-       *) dlprefiles="$dlprefiles $lib" ;;
-       esac
-      done
+               # Non-PIC object.
+               if test "$non_pic_object" != none; then
+                 # Prepend the subdirectory the object is found in.
+                 non_pic_object="$xdir$non_pic_object"
 
-      if test "$build_libtool_libs" = yes; then
-       if test -n "$rpath"; then
-         case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
-           # these systems don't actually have a c library (as such)!
-           ;;
-         *-*-rhapsody* | *-*-darwin1.[012])
-           # Rhapsody C library is in the System framework
-           deplibs="$deplibs System.ltframework"
+                 # A standard non-PIC object
+                 func_append non_pic_objects " $non_pic_object"
+                 if test -z "$pic_object" || test "$pic_object" = none ; then
+                   arg="$non_pic_object"
+                 fi
+               else
+                 # If the PIC object exists, use it instead.
+                 # $xdir was prepended to $pic_object above.
+                 non_pic_object="$pic_object"
+                 func_append non_pic_objects " $non_pic_object"
+               fi
+             else
+               # Only an error if not doing a dry-run.
+               if $opt_dry_run; then
+                 # Extract subdirectory from the argument.
+                 func_dirname "$arg" "/" ""
+                 xdir="$func_dirname_result"
+
+                 func_lo2o "$arg"
+                 pic_object=$xdir$objdir/$func_lo2o_result
+                 non_pic_object=$xdir$func_lo2o_result
+                 func_append libobjs " $pic_object"
+                 func_append non_pic_objects " $non_pic_object"
+               else
+                 func_fatal_error "\`$arg' is not a valid libtool object"
+               fi
+             fi
+           done
+         else
+           func_fatal_error "link input file \`$arg' does not exist"
+         fi
+         arg=$save_arg
+         prev=
+         continue
+         ;;
+       precious_regex)
+         precious_files_regex="$arg"
+         prev=
+         continue
+         ;;
+       release)
+         release="-$arg"
+         prev=
+         continue
+         ;;
+       rpath | xrpath)
+         # We need an absolute path.
+         case $arg in
+         [\\/]* | [A-Za-z]:[\\/]*) ;;
+         *)
+           func_fatal_error "only absolute run-paths are allowed"
            ;;
-         *-*-netbsd*)
-           # Don't link with libc until the a.out ld.so is fixed.
+         esac
+         if test "$prev" = rpath; then
+           case "$rpath " in
+           *" $arg "*) ;;
+           *) rpath="$rpath $arg" ;;
+           esac
+         else
+           case "$xrpath " in
+           *" $arg "*) ;;
+           *) xrpath="$xrpath $arg" ;;
+           esac
+         fi
+         prev=
+         continue
+         ;;
+       shrext)
+         shrext_cmds="$arg"
+         prev=
+         continue
+         ;;
+       weak)
+         weak_libs="$weak_libs $arg"
+         prev=
+         continue
+         ;;
+       xcclinker)
+         linker_flags="$linker_flags $qarg"
+         compiler_flags="$compiler_flags $qarg"
+         prev=
+         func_append compile_command " $qarg"
+         func_append finalize_command " $qarg"
+         continue
+         ;;
+       xcompiler)
+         compiler_flags="$compiler_flags $qarg"
+         prev=
+         func_append compile_command " $qarg"
+         func_append finalize_command " $qarg"
+         continue
+         ;;
+       xlinker)
+         linker_flags="$linker_flags $qarg"
+         compiler_flags="$compiler_flags $wl$qarg"
+         prev=
+         func_append compile_command " $wl$qarg"
+         func_append finalize_command " $wl$qarg"
+         continue
+         ;;
+       *)
+         eval "$prev=\"\$arg\""
+         prev=
+         continue
+         ;;
+       esac
+      fi # test -n "$prev"
+
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+       if test -n "$link_static_flag"; then
+         # See comment for -static flag below, for more details.
+         func_append compile_command " $link_static_flag"
+         func_append finalize_command " $link_static_flag"
+       fi
+       continue
+       ;;
+
+      -allow-undefined)
+       # FIXME: remove this flag sometime in the future.
+       func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+       ;;
+
+      -avoid-version)
+       avoid_version=yes
+       continue
+       ;;
+
+      -dlopen)
+       prev=dlfiles
+       continue
+       ;;
+
+      -dlpreopen)
+       prev=dlprefiles
+       continue
+       ;;
+
+      -export-dynamic)
+       export_dynamic=yes
+       continue
+       ;;
+
+      -export-symbols | -export-symbols-regex)
+       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+         func_fatal_error "more than one -exported-symbols argument is not allowed"
+       fi
+       if test "X$arg" = "X-export-symbols"; then
+         prev=expsyms
+       else
+         prev=expsyms_regex
+       fi
+       continue
+       ;;
+
+      -framework)
+       prev=framework
+       continue
+       ;;
+
+      -inst-prefix-dir)
+       prev=inst_prefix
+       continue
+       ;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+       case $with_gcc/$host in
+       no/*-*-irix* | /*-*-irix*)
+         func_append compile_command " $arg"
+         func_append finalize_command " $arg"
+         ;;
+       esac
+       continue
+       ;;
+
+      -L*)
+       func_stripname '-L' '' "$arg"
+       dir=$func_stripname_result
+       if test -z "$dir"; then
+         if test "$#" -gt 0; then
+           func_fatal_error "require no space between \`-L' and \`$1'"
+         else
+           func_fatal_error "need path for \`-L' option"
+         fi
+       fi
+       # We need an absolute path.
+       case $dir in
+       [\\/]* | [A-Za-z]:[\\/]*) ;;
+       *)
+         absdir=`cd "$dir" && pwd`
+         test -z "$absdir" && \
+           func_fatal_error "cannot determine absolute directory name of \`$dir'"
+         dir="$absdir"
+         ;;
+       esac
+       case "$deplibs " in
+       *" -L$dir "*) ;;
+       *)
+         deplibs="$deplibs -L$dir"
+         lib_search_path="$lib_search_path $dir"
+         ;;
+       esac
+       case $host in
+       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+         testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+         case :$dllsearchpath: in
+         *":$dir:"*) ;;
+         ::) dllsearchpath=$dir;;
+         *) dllsearchpath="$dllsearchpath:$dir";;
+         esac
+         case :$dllsearchpath: in
+         *":$testbindir:"*) ;;
+         ::) dllsearchpath=$testbindir;;
+         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         esac
+         ;;
+       esac
+       continue
+       ;;
+
+      -l*)
+       if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+         case $host in
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
+           # These systems don't actually have a C or math library (as such)
+           continue
+           ;;
+         *-*-os2*)
+           # These systems don't actually have a C library (as such)
+           test "X$arg" = "X-lc" && continue
            ;;
          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
            # Do not include libc due to us having libc/libc_r.
+           test "X$arg" = "X-lc" && continue
+           ;;
+         *-*-rhapsody* | *-*-darwin1.[012])
+           # Rhapsody C and math libraries are in the System framework
+           deplibs="$deplibs System.ltframework"
+           continue
            ;;
          *-*-sco3.2v5* | *-*-sco5v6*)
            # Causes problems with __ctype
+           test "X$arg" = "X-lc" && continue
            ;;
          *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
            # Compiler inserts libc in the correct place for threads to work
-           ;;
-         *)
-           # Add libc to deplibs on all other systems if necessary.
-           if test "$build_libtool_need_lc" = "yes"; then
-             deplibs="$deplibs -lc"
-           fi
+           test "X$arg" = "X-lc" && continue
            ;;
          esac
+       elif test "X$arg" = "X-lc_r"; then
+        case $host in
+        *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+          # Do not include libc_r directly, use -pthread flag.
+          continue
+          ;;
+        esac
        fi
+       deplibs="$deplibs $arg"
+       continue
+       ;;
 
-       # Transform deplibs into only deplibs that can be linked in shared.
-       name_save=$name
-       libname_save=$libname
-       release_save=$release
-       versuffix_save=$versuffix
-       major_save=$major
-       # I'm not sure if I'm treating the release correctly.  I think
-       # release should show up in the -l (ie -lgmp5) so we don't want to
-       # add it in twice.  Is that correct?
-       release=""
-       versuffix=""
-       major=""
-       newdeplibs=
-       droppeddeps=no
-       case $deplibs_check_method in
-       pass_all)
-         # Don't check for shared/static.  Everything works.
-         # This might be a little naive.  We might want to check
-         # whether the library exists or not.  But this is on
-         # osf3 & osf4 and I'm not really sure... Just
-         # implementing what was already the behavior.
-         newdeplibs=$deplibs
+      -module)
+       module=yes
+       continue
+       ;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      # Darwin uses the -arch flag to determine output architecture.
+      -model|-arch|-isysroot)
+       compiler_flags="$compiler_flags $arg"
+       func_append compile_command " $arg"
+       func_append finalize_command " $arg"
+       prev=xcompiler
+       continue
+       ;;
+
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+       compiler_flags="$compiler_flags $arg"
+       func_append compile_command " $arg"
+       func_append finalize_command " $arg"
+       case "$new_inherited_linker_flags " in
+           *" $arg "*) ;;
+           * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+       esac
+       continue
+       ;;
+
+      -multi_module)
+       single_module="${wl}-multi_module"
+       continue
+       ;;
+
+      -no-fast-install)
+       fast_install=no
+       continue
+       ;;
+
+      -no-install)
+       case $host in
+       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+         # The PATH hackery in wrapper scripts is required on Windows
+         # and Darwin in order for the loader to find any dlls it needs.
+         func_warning "\`-no-install' is ignored for $host"
+         func_warning "assuming \`-no-fast-install' instead"
+         fast_install=no
+         ;;
+       *) no_install=yes ;;
+       esac
+       continue
+       ;;
+
+      -no-undefined)
+       allow_undefined=no
+       continue
+       ;;
+
+      -objectlist)
+       prev=objectlist
+       continue
+       ;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+       prev=precious_regex
+       continue
+       ;;
+
+      -release)
+       prev=release
+       continue
+       ;;
+
+      -rpath)
+       prev=rpath
+       continue
+       ;;
+
+      -R)
+       prev=xrpath
+       continue
+       ;;
+
+      -R*)
+       func_stripname '-R' '' "$arg"
+       dir=$func_stripname_result
+       # We need an absolute path.
+       case $dir in
+       [\\/]* | [A-Za-z]:[\\/]*) ;;
+       *)
+         func_fatal_error "only absolute run-paths are allowed"
+         ;;
+       esac
+       case "$xrpath " in
+       *" $dir "*) ;;
+       *) xrpath="$xrpath $dir" ;;
+       esac
+       continue
+       ;;
+
+      -shared)
+       # The effects of -shared are defined in a previous loop.
+       continue
+       ;;
+
+      -shrext)
+       prev=shrext
+       continue
+       ;;
+
+      -static | -static-libtool-libs)
+       # The effects of -static are defined in a previous loop.
+       # We used to do the same as -all-static on platforms that
+       # didn't have a PIC flag, but the assumption that the effects
+       # would be equivalent was wrong.  It would break on at least
+       # Digital Unix and AIX.
+       continue
+       ;;
+
+      -thread-safe)
+       thread_safe=yes
+       continue
+       ;;
+
+      -version-info)
+       prev=vinfo
+       continue
+       ;;
+
+      -version-number)
+       prev=vinfo
+       vinfo_number=yes
+       continue
+       ;;
+
+      -weak)
+        prev=weak
+       continue
+       ;;
+
+      -Wc,*)
+       func_stripname '-Wc,' '' "$arg"
+       args=$func_stripname_result
+       arg=
+       save_ifs="$IFS"; IFS=','
+       for flag in $args; do
+         IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+         arg="$arg $wl$func_quote_for_eval_result"
+         compiler_flags="$compiler_flags $func_quote_for_eval_result"
+       done
+       IFS="$save_ifs"
+       func_stripname ' ' '' "$arg"
+       arg=$func_stripname_result
+       ;;
+
+      -Wl,*)
+       func_stripname '-Wl,' '' "$arg"
+       args=$func_stripname_result
+       arg=
+       save_ifs="$IFS"; IFS=','
+       for flag in $args; do
+         IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+         arg="$arg $wl$func_quote_for_eval_result"
+         compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
+         linker_flags="$linker_flags $func_quote_for_eval_result"
+       done
+       IFS="$save_ifs"
+       func_stripname ' ' '' "$arg"
+       arg=$func_stripname_result
+       ;;
+
+      -Xcompiler)
+       prev=xcompiler
+       continue
+       ;;
+
+      -Xlinker)
+       prev=xlinker
+       continue
+       ;;
+
+      -XCClinker)
+       prev=xcclinker
+       continue
+       ;;
+
+      # -msg_* for osf cc
+      -msg_*)
+       func_quote_for_eval "$arg"
+       arg="$func_quote_for_eval_result"
+       ;;
+
+      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+      # -r[0-9][0-9]* specifies the processor on the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+      # +DA*, +DD* enable 64-bit mode on the HP compiler
+      # -q* pass through compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* pass through architecture-specific
+      # compiler args for GCC
+      # -F/path gives path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
+      # @file GCC response files
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+        func_quote_for_eval "$arg"
+       arg="$func_quote_for_eval_result"
+        func_append compile_command " $arg"
+        func_append finalize_command " $arg"
+        compiler_flags="$compiler_flags $arg"
+        continue
+        ;;
+
+      # Some other compiler flag.
+      -* | +*)
+        func_quote_for_eval "$arg"
+       arg="$func_quote_for_eval_result"
+       ;;
+
+      *.$objext)
+       # A standard object.
+       objs="$objs $arg"
+       ;;
+
+      *.lo)
+       # A libtool-controlled object.
+
+       # Check to see that this really is a libtool object.
+       if func_lalib_unsafe_p "$arg"; then
+         pic_object=
+         non_pic_object=
+
+         # Read the .lo file
+         func_source "$arg"
+
+         if test -z "$pic_object" ||
+            test -z "$non_pic_object" ||
+            test "$pic_object" = none &&
+            test "$non_pic_object" = none; then
+           func_fatal_error "cannot find name of object for \`$arg'"
+         fi
+
+         # Extract subdirectory from the argument.
+         func_dirname "$arg" "/" ""
+         xdir="$func_dirname_result"
+
+         if test "$pic_object" != none; then
+           # Prepend the subdirectory the object is found in.
+           pic_object="$xdir$pic_object"
+
+           if test "$prev" = dlfiles; then
+             if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+               dlfiles="$dlfiles $pic_object"
+               prev=
+               continue
+             else
+               # If libtool objects are unsupported, then we need to preload.
+               prev=dlprefiles
+             fi
+           fi
+
+           # CHECK ME:  I think I busted this.  -Ossama
+           if test "$prev" = dlprefiles; then
+             # Preload the old-style object.
+             dlprefiles="$dlprefiles $pic_object"
+             prev=
+           fi
+
+           # A PIC object.
+           func_append libobjs " $pic_object"
+           arg="$pic_object"
+         fi
+
+         # Non-PIC object.
+         if test "$non_pic_object" != none; then
+           # Prepend the subdirectory the object is found in.
+           non_pic_object="$xdir$non_pic_object"
+
+           # A standard non-PIC object
+           func_append non_pic_objects " $non_pic_object"
+           if test -z "$pic_object" || test "$pic_object" = none ; then
+             arg="$non_pic_object"
+           fi
+         else
+           # If the PIC object exists, use it instead.
+           # $xdir was prepended to $pic_object above.
+           non_pic_object="$pic_object"
+           func_append non_pic_objects " $non_pic_object"
+         fi
+       else
+         # Only an error if not doing a dry-run.
+         if $opt_dry_run; then
+           # Extract subdirectory from the argument.
+           func_dirname "$arg" "/" ""
+           xdir="$func_dirname_result"
+
+           func_lo2o "$arg"
+           pic_object=$xdir$objdir/$func_lo2o_result
+           non_pic_object=$xdir$func_lo2o_result
+           func_append libobjs " $pic_object"
+           func_append non_pic_objects " $non_pic_object"
+         else
+           func_fatal_error "\`$arg' is not a valid libtool object"
+         fi
+       fi
+       ;;
+
+      *.$libext)
+       # An archive.
+       deplibs="$deplibs $arg"
+       old_deplibs="$old_deplibs $arg"
+       continue
+       ;;
+
+      *.la)
+       # A libtool-controlled library.
+
+       if test "$prev" = dlfiles; then
+         # This library was specified with -dlopen.
+         dlfiles="$dlfiles $arg"
+         prev=
+       elif test "$prev" = dlprefiles; then
+         # The library was specified with -dlpreopen.
+         dlprefiles="$dlprefiles $arg"
+         prev=
+       else
+         deplibs="$deplibs $arg"
+       fi
+       continue
+       ;;
+
+      # Some other compiler argument.
+      *)
+       # Unknown arguments in both finalize_command and compile_command need
+       # to be aesthetically quoted because they are evaled later.
+       func_quote_for_eval "$arg"
+       arg="$func_quote_for_eval_result"
+       ;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+       func_append compile_command " $arg"
+       func_append finalize_command " $arg"
+      fi
+    done # argument parsing loop
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prevarg' option requires an argument"
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      func_append compile_command " $arg"
+      func_append finalize_command " $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    func_basename "$output"
+    outputname="$func_basename_result"
+    libobjs_save="$libobjs"
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    func_dirname "$output" "/" ""
+    output_objdir="$func_dirname_result$objdir"
+    # Create the object directory.
+    func_mkdir_p "$output_objdir"
+
+    # Determine the type of output
+    case $output in
+    "")
+      func_fatal_help "you must specify an output file"
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if $opt_duplicate_deps ; then
+       case "$libs " in
+       *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+       esac
+      fi
+      libs="$libs $deplib"
+    done
+
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if $opt_duplicate_compiler_generated_deps; then
+       for pre_post_dep in $predeps $postdeps; do
+         case "$pre_post_deps " in
+         *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+         esac
+         pre_post_deps="$pre_post_deps $pre_post_dep"
+       done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
+
+    case $linkmode in
+    lib)
+       passes="conv dlpreopen link"
+       for file in $dlfiles $dlprefiles; do
+         case $file in
+         *.la) ;;
+         *)
+           func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+           ;;
+         esac
+       done
+       ;;
+    prog)
+       compile_deplibs=
+       finalize_deplibs=
+       alldeplibs=no
+       newdlfiles=
+       newdlprefiles=
+       passes="conv scan dlopen dlpreopen link"
+       ;;
+    *)  passes="conv"
+       ;;
+    esac
+
+    for pass in $passes; do
+      # The preopen pass in lib mode reverses $deplibs; put it back here
+      # so that -L comes before libs that need it for instance...
+      if test "$linkmode,$pass" = "lib,link"; then
+       ## FIXME: Find the place where the list is rebuilt in the wrong
+       ##        order, and fix it there properly
+        tmp_deplibs=
+       for deplib in $deplibs; do
+         tmp_deplibs="$deplib $tmp_deplibs"
+       done
+       deplibs="$tmp_deplibs"
+      fi
+
+      if test "$linkmode,$pass" = "lib,link" ||
+        test "$linkmode,$pass" = "prog,scan"; then
+       libs="$deplibs"
+       deplibs=
+      fi
+      if test "$linkmode" = prog; then
+       case $pass in
+       dlopen) libs="$dlfiles" ;;
+       dlpreopen) libs="$dlprefiles" ;;
+       link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+       esac
+      fi
+      if test "$linkmode,$pass" = "lib,dlpreopen"; then
+       # Collect and forward deplibs of preopened libtool libs
+       for lib in $dlprefiles; do
+         # Ignore non-libtool-libs
+         dependency_libs=
+         case $lib in
+         *.la) func_source "$lib" ;;
+         esac
+
+         # Collect preopened libtool deplibs, except any this library
+         # has declared as weak libs
+         for deplib in $dependency_libs; do
+            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
+           case " $weak_libs " in
+           *" $deplib_base "*) ;;
+           *) deplibs="$deplibs $deplib" ;;
+           esac
+         done
+       done
+       libs="$dlprefiles"
+      fi
+      if test "$pass" = dlopen; then
+       # Collect dlpreopened libraries
+       save_deplibs="$deplibs"
+       deplibs=
+      fi
+
+      for deplib in $libs; do
+       lib=
+       found=no
+       case $deplib in
+       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+         if test "$linkmode,$pass" = "prog,link"; then
+           compile_deplibs="$deplib $compile_deplibs"
+           finalize_deplibs="$deplib $finalize_deplibs"
+         else
+           compiler_flags="$compiler_flags $deplib"
+           if test "$linkmode" = lib ; then
+               case "$new_inherited_linker_flags " in
+                   *" $deplib "*) ;;
+                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+               esac
+           fi
+         fi
+         continue
          ;;
-       test_compile)
-         # This code stresses the "libraries are programs" paradigm to its
-         # limits. Maybe even breaks it.  We compile a program, linking it
-         # against the deplibs as a proxy for the library.  Then we can check
-         # whether they linked in statically or dynamically with ldd.
-         $opt_dry_run || $RM conftest.c
-         cat > conftest.c <<EOF
-         int main() { return 0; }
-EOF
-         $opt_dry_run || $RM conftest
-         if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
-           ldd_output=`ldd conftest`
-           for i in $deplibs; do
-             name=`expr $i : '-l\(.*\)'`
-             # If $name is empty we are operating on a -L argument.
-             if test "$name" != "" && test "$name" != "0"; then
-               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-                 case " $predeps $postdeps " in
-                 *" $i "*)
-                   newdeplibs="$newdeplibs $i"
-                   i=""
-                   ;;
-                 esac
-               fi
-               if test -n "$i" ; then
-                 libname=`eval "\\$ECHO \"$libname_spec\""`
-                 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
-                 set dummy $deplib_matches; shift
-                 deplib_match=$1
-                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                   newdeplibs="$newdeplibs $i"
-                 else
-                   droppeddeps=yes
-                   $ECHO
-                   $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-                   $ECHO "*** I have the capability to make that library automatically link in when"
-                   $ECHO "*** you link to this library.  But I can only do this if you have a"
-                   $ECHO "*** shared version of the library, which I believe you do not have"
-                   $ECHO "*** because a test_compile did reveal that the linker did not use it for"
-                   $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
-                 fi
+       -l*)
+         if test "$linkmode" != lib && test "$linkmode" != prog; then
+           func_warning "\`-l' is ignored for archives/objects"
+           continue
+         fi
+         func_stripname '-l' '' "$deplib"
+         name=$func_stripname_result
+         if test "$linkmode" = lib; then
+           searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+         else
+           searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+         fi
+         for searchdir in $searchdirs; do
+           for search_ext in .la $std_shrext .so .a; do
+             # Search the libtool library
+             lib="$searchdir/lib${name}${search_ext}"
+             if test -f "$lib"; then
+               if test "$search_ext" = ".la"; then
+                 found=yes
+               else
+                 found=no
                fi
-             else
-               newdeplibs="$newdeplibs $i"
+               break 2
              fi
            done
-         else
-           # Error occurred in the first compile.  Let's try to salvage
-           # the situation: Compile a separate program for each library.
-           for i in $deplibs; do
-             name=`expr $i : '-l\(.*\)'`
-             # If $name is empty we are operating on a -L argument.
-             if test "$name" != "" && test "$name" != "0"; then
-               $opt_dry_run || $RM conftest
-               if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
-                 ldd_output=`ldd conftest`
-                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-                   case " $predeps $postdeps " in
-                   *" $i "*)
-                     newdeplibs="$newdeplibs $i"
-                     i=""
-                     ;;
-                   esac
-                 fi
-                 if test -n "$i" ; then
-                   libname=`eval "\\$ECHO \"$libname_spec\""`
-                   deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
-                   set dummy $deplib_matches; shift
-                   deplib_match=$1
-                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                     newdeplibs="$newdeplibs $i"
+         done
+         if test "$found" != yes; then
+           # deplib doesn't seem to be a libtool library
+           if test "$linkmode,$pass" = "prog,link"; then
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           else
+             deplibs="$deplib $deplibs"
+             test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+           fi
+           continue
+         else # deplib is a libtool library
+           # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+           # We need to do some special things here, and not later.
+           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+             case " $predeps $postdeps " in
+             *" $deplib "*)
+               if func_lalib_p "$lib"; then
+                 library_names=
+                 old_library=
+                 func_source "$lib"
+                 for l in $old_library $library_names; do
+                   ll="$l"
+                 done
+                 if test "X$ll" = "X$old_library" ; then # only static version available
+                   found=no
+                   func_dirname "$lib" "" "."
+                   ladir="$func_dirname_result"
+                   lib=$ladir/$old_library
+                   if test "$linkmode,$pass" = "prog,link"; then
+                     compile_deplibs="$deplib $compile_deplibs"
+                     finalize_deplibs="$deplib $finalize_deplibs"
                    else
-                     droppeddeps=yes
-                     $ECHO
-                     $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-                     $ECHO "*** I have the capability to make that library automatically link in when"
-                     $ECHO "*** you link to this library.  But I can only do this if you have a"
-                     $ECHO "*** shared version of the library, which you do not appear to have"
-                     $ECHO "*** because a test_compile did reveal that the linker did not use this one"
-                     $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+                     deplibs="$deplib $deplibs"
+                     test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
                    fi
+                   continue
                  fi
-               else
-                 droppeddeps=yes
-                 $ECHO
-                 $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
-                 $ECHO "*** make it link in!  You will probably need to install it or some"
-                 $ECHO "*** library that it depends on before this library will be fully"
-                 $ECHO "*** functional.  Installing it before continuing would be even better."
                fi
+               ;;
+             *) ;;
+             esac
+           fi
+         fi
+         ;; # -l
+       *.ltframework)
+         if test "$linkmode,$pass" = "prog,link"; then
+           compile_deplibs="$deplib $compile_deplibs"
+           finalize_deplibs="$deplib $finalize_deplibs"
+         else
+           deplibs="$deplib $deplibs"
+           if test "$linkmode" = lib ; then
+               case "$new_inherited_linker_flags " in
+                   *" $deplib "*) ;;
+                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+               esac
+           fi
+         fi
+         continue
+         ;;
+       -L*)
+         case $linkmode in
+         lib)
+           deplibs="$deplib $deplibs"
+           test "$pass" = conv && continue
+           newdependency_libs="$deplib $newdependency_libs"
+           func_stripname '-L' '' "$deplib"
+           newlib_search_path="$newlib_search_path $func_stripname_result"
+           ;;
+         prog)
+           if test "$pass" = conv; then
+             deplibs="$deplib $deplibs"
+             continue
+           fi
+           if test "$pass" = scan; then
+             deplibs="$deplib $deplibs"
+           else
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           fi
+           func_stripname '-L' '' "$deplib"
+           newlib_search_path="$newlib_search_path $func_stripname_result"
+           ;;
+         *)
+           func_warning "\`-L' is ignored for archives/objects"
+           ;;
+         esac # linkmode
+         continue
+         ;; # -L
+       -R*)
+         if test "$pass" = link; then
+           func_stripname '-R' '' "$deplib"
+           dir=$func_stripname_result
+           # Make sure the xrpath contains only unique directories.
+           case "$xrpath " in
+           *" $dir "*) ;;
+           *) xrpath="$xrpath $dir" ;;
+           esac
+         fi
+         deplibs="$deplib $deplibs"
+         continue
+         ;;
+       *.la) lib="$deplib" ;;
+       *.$libext)
+         if test "$pass" = conv; then
+           deplibs="$deplib $deplibs"
+           continue
+         fi
+         case $linkmode in
+         lib)
+           # Linking convenience modules into shared libraries is allowed,
+           # but linking other static libraries is non-portable.
+           case " $dlpreconveniencelibs " in
+           *" $deplib "*) ;;
+           *)
+             valid_a_lib=no
+             case $deplibs_check_method in
+               match_pattern*)
+                 set dummy $deplibs_check_method; shift
+                 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+                 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
+                   | $EGREP "$match_pattern_regex" > /dev/null; then
+                   valid_a_lib=yes
+                 fi
+               ;;
+               pass_all)
+                 valid_a_lib=yes
+               ;;
+             esac
+             if test "$valid_a_lib" != yes; then
+               $ECHO
+               $ECHO "*** Warning: Trying to link with static lib archive $deplib."
+               $ECHO "*** I have the capability to make that library automatically link in when"
+               $ECHO "*** you link to this library.  But I can only do this if you have a"
+               $ECHO "*** shared version of the library, which you do not appear to have"
+               $ECHO "*** because the file extensions .$libext of this argument makes me believe"
+               $ECHO "*** that it is just a static archive that I should not use here."
              else
-               newdeplibs="$newdeplibs $i"
+               $ECHO
+               $ECHO "*** Warning: Linking the shared library $output against the"
+               $ECHO "*** static library $deplib is not portable!"
+               deplibs="$deplib $deplibs"
              fi
-           done
+             ;;
+           esac
+           continue
+           ;;
+         prog)
+           if test "$pass" != link; then
+             deplibs="$deplib $deplibs"
+           else
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           fi
+           continue
+           ;;
+         esac # linkmode
+         ;; # *.$libext
+       *.lo | *.$objext)
+         if test "$pass" = conv; then
+           deplibs="$deplib $deplibs"
+         elif test "$linkmode" = prog; then
+           if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+             # If there is no dlopen support or we're linking statically,
+             # we need to preload.
+             newdlprefiles="$newdlprefiles $deplib"
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           else
+             newdlfiles="$newdlfiles $deplib"
+           fi
+         fi
+         continue
+         ;;
+       %DEPLIBS%)
+         alldeplibs=yes
+         continue
+         ;;
+       esac # case $deplib
+
+       if test "$found" = yes || test -f "$lib"; then :
+       else
+         func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
+       fi
+
+       # Check to see that this really is a libtool archive.
+       func_lalib_unsafe_p "$lib" \
+         || func_fatal_error "\`$lib' is not a valid libtool archive"
+
+       func_dirname "$lib" "" "."
+       ladir="$func_dirname_result"
+
+       dlname=
+       dlopen=
+       dlpreopen=
+       libdir=
+       library_names=
+       old_library=
+       inherited_linker_flags=
+       # If the library was installed with an old release of libtool,
+       # it will not redefine variables installed, or shouldnotlink
+       installed=yes
+       shouldnotlink=no
+       avoidtemprpath=
+
+
+       # Read the .la file
+       func_source "$lib"
+
+       # Convert "-framework foo" to "foo.ltframework"
+       if test -n "$inherited_linker_flags"; then
+         tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+         for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+           case " $new_inherited_linker_flags " in
+             *" $tmp_inherited_linker_flag "*) ;;
+             *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+           esac
+         done
+       fi
+       dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       if test "$linkmode,$pass" = "lib,link" ||
+          test "$linkmode,$pass" = "prog,scan" ||
+          { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+         test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+         test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+       fi
+
+       if test "$pass" = conv; then
+         # Only check for convenience libraries
+         deplibs="$lib $deplibs"
+         if test -z "$libdir"; then
+           if test -z "$old_library"; then
+             func_fatal_error "cannot find name of link library for \`$lib'"
+           fi
+           # It is a libtool convenience library, so add in its objects.
+           convenience="$convenience $ladir/$objdir/$old_library"
+           old_convenience="$old_convenience $ladir/$objdir/$old_library"
+         elif test "$linkmode" != prog && test "$linkmode" != lib; then
+           func_fatal_error "\`$lib' is not a convenience library"
+         fi
+         tmp_libs=
+         for deplib in $dependency_libs; do
+           deplibs="$deplib $deplibs"
+           if $opt_duplicate_deps ; then
+             case "$tmp_libs " in
+             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             esac
+           fi
+           tmp_libs="$tmp_libs $deplib"
+         done
+         continue
+       fi # $pass = conv
+
+
+       # Get the name of the library we link against.
+       linklib=
+       for l in $old_library $library_names; do
+         linklib="$l"
+       done
+       if test -z "$linklib"; then
+         func_fatal_error "cannot find name of link library for \`$lib'"
+       fi
+
+       # This library was specified with -dlopen.
+       if test "$pass" = dlopen; then
+         if test -z "$libdir"; then
+           func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
+         fi
+         if test -z "$dlname" ||
+            test "$dlopen_support" != yes ||
+            test "$build_libtool_libs" = no; then
+           # If there is no dlname, no dlopen support or we're linking
+           # statically, we need to preload.  We also need to preload any
+           # dependent libraries so libltdl's deplib preloader doesn't
+           # bomb out in the load deplibs phase.
+           dlprefiles="$dlprefiles $lib $dependency_libs"
+         else
+           newdlfiles="$newdlfiles $lib"
+         fi
+         continue
+       fi # $pass = dlopen
+
+       # We need an absolute path.
+       case $ladir in
+       [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+       *)
+         abs_ladir=`cd "$ladir" && pwd`
+         if test -z "$abs_ladir"; then
+           func_warning "cannot determine absolute directory name of \`$ladir'"
+           func_warning "passing it literally to the linker, although it might fail"
+           abs_ladir="$ladir"
+         fi
+         ;;
+       esac
+       func_basename "$lib"
+       laname="$func_basename_result"
+
+       # Find the relevant object directory and library name.
+       if test "X$installed" = Xyes; then
+         if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+           func_warning "library \`$lib' was moved."
+           dir="$ladir"
+           absdir="$abs_ladir"
+           libdir="$abs_ladir"
+         else
+           dir="$libdir"
+           absdir="$libdir"
+         fi
+         test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+       else
+         if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+           dir="$ladir"
+           absdir="$abs_ladir"
+           # Remove this search path later
+           notinst_path="$notinst_path $abs_ladir"
+         else
+           dir="$ladir/$objdir"
+           absdir="$abs_ladir/$objdir"
+           # Remove this search path later
+           notinst_path="$notinst_path $abs_ladir"
+         fi
+       fi # $installed = yes
+       func_stripname 'lib' '.la' "$laname"
+       name=$func_stripname_result
+
+       # This library was specified with -dlpreopen.
+       if test "$pass" = dlpreopen; then
+         if test -z "$libdir" && test "$linkmode" = prog; then
+           func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+         fi
+         # Prefer using a static library (so that no silly _DYNAMIC symbols
+         # are required to link).
+         if test -n "$old_library"; then
+           newdlprefiles="$newdlprefiles $dir/$old_library"
+           # Keep a list of preopened convenience libraries to check
+           # that they are being used correctly in the link pass.
+           test -z "$libdir" && \
+               dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
+         # Otherwise, use the dlname, so that lt_dlopen finds it.
+         elif test -n "$dlname"; then
+           newdlprefiles="$newdlprefiles $dir/$dlname"
+         else
+           newdlprefiles="$newdlprefiles $dir/$linklib"
+         fi
+       fi # $pass = dlpreopen
+
+       if test -z "$libdir"; then
+         # Link the convenience library
+         if test "$linkmode" = lib; then
+           deplibs="$dir/$old_library $deplibs"
+         elif test "$linkmode,$pass" = "prog,link"; then
+           compile_deplibs="$dir/$old_library $compile_deplibs"
+           finalize_deplibs="$dir/$old_library $finalize_deplibs"
+         else
+           deplibs="$lib $deplibs" # used for prog,scan pass
+         fi
+         continue
+       fi
+
+
+       if test "$linkmode" = prog && test "$pass" != link; then
+         newlib_search_path="$newlib_search_path $ladir"
+         deplibs="$lib $deplibs"
+
+         linkalldeplibs=no
+         if test "$link_all_deplibs" != no || test -z "$library_names" ||
+            test "$build_libtool_libs" = no; then
+           linkalldeplibs=yes
+         fi
+
+         tmp_libs=
+         for deplib in $dependency_libs; do
+           case $deplib in
+           -L*) func_stripname '-L' '' "$deplib"
+                newlib_search_path="$newlib_search_path $func_stripname_result"
+                ;;
+           esac
+           # Need to link against all dependency_libs?
+           if test "$linkalldeplibs" = yes; then
+             deplibs="$deplib $deplibs"
+           else
+             # Need to hardcode shared library paths
+             # or/and link against static libraries
+             newdependency_libs="$deplib $newdependency_libs"
+           fi
+           if $opt_duplicate_deps ; then
+             case "$tmp_libs " in
+             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             esac
+           fi
+           tmp_libs="$tmp_libs $deplib"
+         done # for deplib
+         continue
+       fi # $linkmode = prog...
+
+       if test "$linkmode,$pass" = "prog,link"; then
+         if test -n "$library_names" &&
+            { { test "$prefer_static_libs" = no ||
+                test "$prefer_static_libs,$installed" = "built,yes"; } ||
+              test -z "$old_library"; }; then
+           # We need to hardcode the library path
+           if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+             # Make sure the rpath contains only unique directories.
+             case "$temp_rpath:" in
+             *"$absdir:"*) ;;
+             *) temp_rpath="$temp_rpath$absdir:" ;;
+             esac
+           fi
+
+           # Hardcode the library path.
+           # Skip directories that are in the system default run-time
+           # search path.
+           case " $sys_lib_dlsearch_path " in
+           *" $absdir "*) ;;
+           *)
+             case "$compile_rpath " in
+             *" $absdir "*) ;;
+             *) compile_rpath="$compile_rpath $absdir"
+             esac
+             ;;
+           esac
+           case " $sys_lib_dlsearch_path " in
+           *" $libdir "*) ;;
+           *)
+             case "$finalize_rpath " in
+             *" $libdir "*) ;;
+             *) finalize_rpath="$finalize_rpath $libdir"
+             esac
+             ;;
+           esac
+         fi # $linkmode,$pass = prog,link...
+
+         if test "$alldeplibs" = yes &&
+            { test "$deplibs_check_method" = pass_all ||
+              { test "$build_libtool_libs" = yes &&
+                test -n "$library_names"; }; }; then
+           # We only need to search for static libraries
+           continue
          fi
-         ;;
-       file_magic*)
-         set dummy $deplibs_check_method; shift
-         file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-         for a_deplib in $deplibs; do
-           name=`expr $a_deplib : '-l\(.*\)'`
-           # If $name is empty we are operating on a -L argument.
-           if test "$name" != "" && test  "$name" != "0"; then
-             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-               case " $predeps $postdeps " in
-               *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
-                 a_deplib=""
-                 ;;
-               esac
-             fi
-             if test -n "$a_deplib" ; then
-               libname=`eval "\\$ECHO \"$libname_spec\""`
-               for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-                 for potent_lib in $potential_libs; do
-                     # Follow soft links.
-                     if ls -lLd "$potent_lib" 2>/dev/null |
-                        $GREP " -> " >/dev/null; then
-                       continue
-                     fi
-                     # The statement above tries to avoid entering an
-                     # endless loop below, in case of cyclic links.
-                     # We might still enter an endless loop, since a link
-                     # loop can be closed while we follow links,
-                     # but so what?
-                     potlib="$potent_lib"
-                     while test -h "$potlib" 2>/dev/null; do
-                       potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
-                       case $potliblink in
-                       [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-                       *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
-                       esac
-                     done
-                     if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
-                        $SED -e 10q |
-                        $EGREP "$file_magic_regex" > /dev/null; then
-                       newdeplibs="$newdeplibs $a_deplib"
-                       a_deplib=""
-                       break 2
-                     fi
-                 done
-               done
-             fi
-             if test -n "$a_deplib" ; then
-               droppeddeps=yes
-               $ECHO
-               $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because I did check the linker path looking for a file starting"
-               if test -z "$potlib" ; then
-                 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
-               else
-                 $ECHO "*** with $libname and none of the candidates passed a file format test"
-                 $ECHO "*** using a file magic. Last file checked: $potlib"
-               fi
-             fi
+       fi
+
+       link_static=no # Whether the deplib will be linked statically
+       use_static_libs=$prefer_static_libs
+       if test "$use_static_libs" = built && test "$installed" = yes; then
+         use_static_libs=no
+       fi
+       if test -n "$library_names" &&
+          { test "$use_static_libs" = no || test -z "$old_library"; }; then
+         case $host in
+         *cygwin* | *mingw* | *cegcc*)
+             # No point in relinking DLLs because paths are not encoded
+             notinst_deplibs="$notinst_deplibs $lib"
+             need_relink=no
+           ;;
+         *)
+           if test "$installed" = no; then
+             notinst_deplibs="$notinst_deplibs $lib"
+             need_relink=yes
+           fi
+           ;;
+         esac
+         # This is a shared library
+
+         # Warn about portability, can't link against -module's on some
+         # systems (darwin).  Don't bleat about dlopened modules though!
+         dlopenmodule=""
+         for dlpremoduletest in $dlprefiles; do
+           if test "X$dlpremoduletest" = "X$lib"; then
+             dlopenmodule="$dlpremoduletest"
+             break
+           fi
+         done
+         if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+           $ECHO
+           if test "$linkmode" = prog; then
+             $ECHO "*** Warning: Linking the executable $output against the loadable module"
            else
-             # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
+             $ECHO "*** Warning: Linking the shared library $output against the loadable module"
            fi
-         done # Gone through all deplibs.
-         ;;
-       match_pattern*)
-         set dummy $deplibs_check_method; shift
-         match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-         for a_deplib in $deplibs; do
-           name=`expr $a_deplib : '-l\(.*\)'`
-           # If $name is empty we are operating on a -L argument.
-           if test -n "$name" && test "$name" != "0"; then
-             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-               case " $predeps $postdeps " in
-               *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
-                 a_deplib=""
-                 ;;
-               esac
-             fi
-             if test -n "$a_deplib" ; then
-               libname=`eval "\\$ECHO \"$libname_spec\""`
-               for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-                 for potent_lib in $potential_libs; do
-                   potlib="$potent_lib" # see symlink-check above in file_magic test
-                   if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
-                      $EGREP "$match_pattern_regex" > /dev/null; then
-                     newdeplibs="$newdeplibs $a_deplib"
-                     a_deplib=""
-                     break 2
+           $ECHO "*** $linklib is not portable!"
+         fi
+         if test "$linkmode" = lib &&
+            test "$hardcode_into_libs" = yes; then
+           # Hardcode the library path.
+           # Skip directories that are in the system default run-time
+           # search path.
+           case " $sys_lib_dlsearch_path " in
+           *" $absdir "*) ;;
+           *)
+             case "$compile_rpath " in
+             *" $absdir "*) ;;
+             *) compile_rpath="$compile_rpath $absdir"
+             esac
+             ;;
+           esac
+           case " $sys_lib_dlsearch_path " in
+           *" $libdir "*) ;;
+           *)
+             case "$finalize_rpath " in
+             *" $libdir "*) ;;
+             *) finalize_rpath="$finalize_rpath $libdir"
+             esac
+             ;;
+           esac
+         fi
+
+         if test -n "$old_archive_from_expsyms_cmds"; then
+           # figure out the soname
+           set dummy $library_names
+           shift
+           realname="$1"
+           shift
+           libname=`eval "\\$ECHO \"$libname_spec\""`
+           # use dlname if we got it. it's perfectly good, no?
+           if test -n "$dlname"; then
+             soname="$dlname"
+           elif test -n "$soname_spec"; then
+             # bleh windows
+             case $host in
+             *cygwin* | mingw* | *cegcc*)
+               func_arith $current - $age
+               major=$func_arith_result
+               versuffix="-$major"
+               ;;
+             esac
+             eval soname=\"$soname_spec\"
+           else
+             soname="$realname"
+           fi
+
+           # Make a new name for the extract_expsyms_cmds to use
+           soroot="$soname"
+           func_basename "$soroot"
+           soname="$func_basename_result"
+           func_stripname 'lib' '.dll' "$soname"
+           newlib=libimp-$func_stripname_result.a
+
+           # If the library has no export list, then create one now
+           if test -f "$output_objdir/$soname-def"; then :
+           else
+             func_verbose "extracting exported symbol list from \`$soname'"
+             func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+           fi
+
+           # Create $newlib
+           if test -f "$output_objdir/$newlib"; then :; else
+             func_verbose "generating import library for \`$soname'"
+             func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+           fi
+           # make sure the library variables are pointing to the new library
+           dir=$output_objdir
+           linklib=$newlib
+         fi # test -n "$old_archive_from_expsyms_cmds"
+
+         if test "$linkmode" = prog || test "$mode" != relink; then
+           add_shlibpath=
+           add_dir=
+           add=
+           lib_linked=yes
+           case $hardcode_action in
+           immediate | unsupported)
+             if test "$hardcode_direct" = no; then
+               add="$dir/$linklib"
+               case $host in
+                 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+                 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+                 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+                   *-*-unixware7*) add_dir="-L$dir" ;;
+                 *-*-darwin* )
+                   # if the lib is a (non-dlopened) module then we can not
+                   # link against it, someone is ignoring the earlier warnings
+                   if /usr/bin/file -L $add 2> /dev/null |
+                        $GREP ": [^:]* bundle" >/dev/null ; then
+                     if test "X$dlopenmodule" != "X$lib"; then
+                       $ECHO "*** Warning: lib $linklib is a module, not a shared library"
+                       if test -z "$old_library" ; then
+                         $ECHO
+                         $ECHO "*** And there doesn't seem to be a static archive available"
+                         $ECHO "*** The link will probably fail, sorry"
+                       else
+                         add="$dir/$old_library"
+                       fi
+                     elif test -n "$old_library"; then
+                       add="$dir/$old_library"
+                     fi
                    fi
-                 done
-               done
+               esac
+             elif test "$hardcode_minus_L" = no; then
+               case $host in
+               *-*-sunos*) add_shlibpath="$dir" ;;
+               esac
+               add_dir="-L$dir"
+               add="-l$name"
+             elif test "$hardcode_shlibpath_var" = no; then
+               add_shlibpath="$dir"
+               add="-l$name"
+             else
+               lib_linked=no
              fi
-             if test -n "$a_deplib" ; then
-               droppeddeps=yes
-               $ECHO
-               $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because I did check the linker path looking for a file starting"
-               if test -z "$potlib" ; then
-                 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
-               else
-                 $ECHO "*** with $libname and none of the candidates passed a file format test"
-                 $ECHO "*** using a regex pattern. Last file checked: $potlib"
+             ;;
+           relink)
+             if test "$hardcode_direct" = yes &&
+                test "$hardcode_direct_absolute" = no; then
+               add="$dir/$linklib"
+             elif test "$hardcode_minus_L" = yes; then
+               add_dir="-L$dir"
+               # Try looking first in the location we're being installed to.
+               if test -n "$inst_prefix_dir"; then
+                 case $libdir in
+                   [\\/]*)
+                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
+                     ;;
+                 esac
                fi
+               add="-l$name"
+             elif test "$hardcode_shlibpath_var" = yes; then
+               add_shlibpath="$dir"
+               add="-l$name"
+             else
+               lib_linked=no
              fi
-           else
-             # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
-           fi
-         done # Gone through all deplibs.
-         ;;
-       none | unknown | *)
-         newdeplibs=""
-         tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
-             -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
-         if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-           for i in $predeps $postdeps ; do
-             # can't use Xsed below, because $i might contain '/'
-             tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
-           done
-         fi
-         if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[     ]//g' |
-            $GREP . >/dev/null; then
-           $ECHO
-           if test "X$deplibs_check_method" = "Xnone"; then
-             $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
-           else
-             $ECHO "*** Warning: inter-library dependencies are not known to be supported."
-           fi
-           $ECHO "*** All declared inter-library dependencies are being dropped."
-           droppeddeps=yes
-         fi
-         ;;
-       esac
-       versuffix=$versuffix_save
-       major=$major_save
-       release=$release_save
-       libname=$libname_save
-       name=$name_save
+             ;;
+           *) lib_linked=no ;;
+           esac
 
-       case $host in
-       *-*-rhapsody* | *-*-darwin1.[012])
-         # On Rhapsody replace the C library with the System framework
-         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
-         ;;
-       esac
+           if test "$lib_linked" != yes; then
+             func_fatal_configuration "unsupported hardcode properties"
+           fi
 
-       if test "$droppeddeps" = yes; then
-         if test "$module" = yes; then
-           $ECHO
-           $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
-           $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
-           $ECHO "*** a static module, that should work as long as the dlopening"
-           $ECHO "*** application is linked with the -dlopen flag."
-           if test -z "$global_symbol_pipe"; then
-             $ECHO
-             $ECHO "*** However, this would only work if libtool was able to extract symbol"
-             $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-             $ECHO "*** not find such a program.  So, this module is probably useless."
-             $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+           if test -n "$add_shlibpath"; then
+             case :$compile_shlibpath: in
+             *":$add_shlibpath:"*) ;;
+             *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+             esac
            fi
-           if test "$build_old_libs" = no; then
-             oldlibs="$output_objdir/$libname.$libext"
-             build_libtool_libs=module
-             build_old_libs=yes
+           if test "$linkmode" = prog; then
+             test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+             test -n "$add" && compile_deplibs="$add $compile_deplibs"
            else
-             build_libtool_libs=no
-           fi
-         else
-           $ECHO "*** The inter-library dependencies that have been dropped here will be"
-           $ECHO "*** automatically added whenever a program is linked with this library"
-           $ECHO "*** or is declared to -dlopen it."
-
-           if test "$allow_undefined" = no; then
-             $ECHO
-             $ECHO "*** Since this library must not contain undefined symbols,"
-             $ECHO "*** because either the platform does not support them or"
-             $ECHO "*** it was explicitly requested with -no-undefined,"
-             $ECHO "*** libtool will only create a static version of it."
-             if test "$build_old_libs" = no; then
-               oldlibs="$output_objdir/$libname.$libext"
-               build_libtool_libs=module
-               build_old_libs=yes
-             else
-               build_libtool_libs=no
+             test -n "$add_dir" && deplibs="$add_dir $deplibs"
+             test -n "$add" && deplibs="$add $deplibs"
+             if test "$hardcode_direct" != yes &&
+                test "$hardcode_minus_L" != yes &&
+                test "$hardcode_shlibpath_var" = yes; then
+               case :$finalize_shlibpath: in
+               *":$libdir:"*) ;;
+               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+               esac
              fi
            fi
          fi
-       fi
-       # Done checking deplibs!
-       deplibs=$newdeplibs
-      fi
-      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
-      case $host in
-       *-*-darwin*)
-         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-         new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-         deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-         ;;
-      esac
-
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-       case " $new_libs " in
-       *" -L$path/$objdir "*) ;;
-       *)
-         case " $deplibs " in
-         *" -L$path/$objdir "*)
-           new_libs="$new_libs -L$path/$objdir" ;;
-         esac
-         ;;
-       esac
-      done
-      for deplib in $deplibs; do
-       case $deplib in
-       -L*)
-         case " $new_libs " in
-         *" $deplib "*) ;;
-         *) new_libs="$new_libs $deplib" ;;
-         esac
-         ;;
-       *) new_libs="$new_libs $deplib" ;;
-       esac
-      done
-      deplibs="$new_libs"
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
 
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-       if test "$hardcode_into_libs" = yes; then
-         # Hardcode the library paths
-         hardcode_libdirs=
-         dep_rpath=
-         rpath="$finalize_rpath"
-         test "$mode" != relink && rpath="$compile_rpath$rpath"
-         for libdir in $rpath; do
-           if test -n "$hardcode_libdir_flag_spec"; then
-             if test -n "$hardcode_libdir_separator"; then
-               if test -z "$hardcode_libdirs"; then
-                 hardcode_libdirs="$libdir"
-               else
-                 # Just accumulate the unique libdirs.
-                 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-                 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-                   ;;
-                 *)
-                   hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+         if test "$linkmode" = prog || test "$mode" = relink; then
+           add_shlibpath=
+           add_dir=
+           add=
+           # Finalize command for both is simple: just hardcode it.
+           if test "$hardcode_direct" = yes &&
+              test "$hardcode_direct_absolute" = no; then
+             add="$libdir/$linklib"
+           elif test "$hardcode_minus_L" = yes; then
+             add_dir="-L$libdir"
+             add="-l$name"
+           elif test "$hardcode_shlibpath_var" = yes; then
+             case :$finalize_shlibpath: in
+             *":$libdir:"*) ;;
+             *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+             esac
+             add="-l$name"
+           elif test "$hardcode_automatic" = yes; then
+             if test -n "$inst_prefix_dir" &&
+                test -f "$inst_prefix_dir$libdir/$linklib" ; then
+               add="$inst_prefix_dir$libdir/$linklib"
+             else
+               add="$libdir/$linklib"
+             fi
+           else
+             # We cannot seem to hardcode it, guess we'll fake it.
+             add_dir="-L$libdir"
+             # Try looking first in the location we're being installed to.
+             if test -n "$inst_prefix_dir"; then
+               case $libdir in
+                 [\\/]*)
+                   add_dir="$add_dir -L$inst_prefix_dir$libdir"
                    ;;
-                 esac
-               fi
-             else
-               eval flag=\"$hardcode_libdir_flag_spec\"
-               dep_rpath="$dep_rpath $flag"
+               esac
              fi
-           elif test -n "$runpath_var"; then
-             case "$perm_rpath " in
-             *" $libdir "*) ;;
-             *) perm_rpath="$perm_rpath $libdir" ;;
-             esac
+             add="-l$name"
            fi
-         done
-         # Substitute the hardcoded libdirs into the rpath.
-         if test -n "$hardcode_libdir_separator" &&
-            test -n "$hardcode_libdirs"; then
-           libdir="$hardcode_libdirs"
-           if test -n "$hardcode_libdir_flag_spec_ld"; then
-             eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+
+           if test "$linkmode" = prog; then
+             test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+             test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
            else
-             eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+             test -n "$add_dir" && deplibs="$add_dir $deplibs"
+             test -n "$add" && deplibs="$add $deplibs"
            fi
          fi
-         if test -n "$runpath_var" && test -n "$perm_rpath"; then
-           # We should set the runpath_var.
-           rpath=
-           for dir in $perm_rpath; do
-             rpath="$rpath$dir:"
+       elif test "$linkmode" = prog; then
+         # Here we assume that one of hardcode_direct or hardcode_minus_L
+         # is not unsupported.  This is valid on all known static and
+         # shared platforms.
+         if test "$hardcode_direct" != unsupported; then
+           test -n "$old_library" && linklib="$old_library"
+           compile_deplibs="$dir/$linklib $compile_deplibs"
+           finalize_deplibs="$dir/$linklib $finalize_deplibs"
+         else
+           compile_deplibs="-l$name -L$dir $compile_deplibs"
+           finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+         fi
+       elif test "$build_libtool_libs" = yes; then
+         # Not a shared library
+         if test "$deplibs_check_method" != pass_all; then
+           # We're trying link a shared library against a static one
+           # but the system doesn't support it.
+
+           # Just print a warning and add the library to dependency_libs so
+           # that the program can be linked against the static library.
+           $ECHO
+           $ECHO "*** Warning: This system can not link to static lib archive $lib."
+           $ECHO "*** I have the capability to make that library automatically link in when"
+           $ECHO "*** you link to this library.  But I can only do this if you have a"
+           $ECHO "*** shared version of the library, which you do not appear to have."
+           if test "$module" = yes; then
+             $ECHO "*** But as you try to build a module library, libtool will still create "
+             $ECHO "*** a static module, that should work as long as the dlopening application"
+             $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
+             if test -z "$global_symbol_pipe"; then
+               $ECHO
+               $ECHO "*** However, this would only work if libtool was able to extract symbol"
+               $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+               $ECHO "*** not find such a program.  So, this module is probably useless."
+               $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+             fi
+             if test "$build_old_libs" = no; then
+               build_libtool_libs=module
+               build_old_libs=yes
+             else
+               build_libtool_libs=no
+             fi
+           fi
+         else
+           deplibs="$dir/$old_library $deplibs"
+           link_static=yes
+         fi
+       fi # link shared/static library?
+
+       if test "$linkmode" = lib; then
+         if test -n "$dependency_libs" &&
+            { test "$hardcode_into_libs" != yes ||
+              test "$build_old_libs" = yes ||
+              test "$link_static" = yes; }; then
+           # Extract -R from dependency_libs
+           temp_deplibs=
+           for libdir in $dependency_libs; do
+             case $libdir in
+             -R*) func_stripname '-R' '' "$libdir"
+                  temp_xrpath=$func_stripname_result
+                  case " $xrpath " in
+                  *" $temp_xrpath "*) ;;
+                  *) xrpath="$xrpath $temp_xrpath";;
+                  esac;;
+             *) temp_deplibs="$temp_deplibs $libdir";;
+             esac
            done
-           eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+           dependency_libs="$temp_deplibs"
          fi
-         test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-       fi
 
-       shlibpath="$finalize_shlibpath"
-       test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-       if test -n "$shlibpath"; then
-         eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-       fi
+         newlib_search_path="$newlib_search_path $absdir"
+         # Link against this library
+         test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+         # ... and its dependency_libs
+         tmp_libs=
+         for deplib in $dependency_libs; do
+           newdependency_libs="$deplib $newdependency_libs"
+           if $opt_duplicate_deps ; then
+             case "$tmp_libs " in
+             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             esac
+           fi
+           tmp_libs="$tmp_libs $deplib"
+         done
 
-       # Get the real and link names of the library.
-       eval shared_ext=\"$shrext_cmds\"
-       eval library_names=\"$library_names_spec\"
-       set dummy $library_names
-       shift
-       realname="$1"
-       shift
+         if test "$link_all_deplibs" != no; then
+           # Add the search paths of all dependency libraries
+           for deplib in $dependency_libs; do
+             case $deplib in
+             -L*) path="$deplib" ;;
+             *.la)
+               func_dirname "$deplib" "" "."
+               dir="$func_dirname_result"
+               # We need an absolute path.
+               case $dir in
+               [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+               *)
+                 absdir=`cd "$dir" && pwd`
+                 if test -z "$absdir"; then
+                   func_warning "cannot determine absolute directory name of \`$dir'"
+                   absdir="$dir"
+                 fi
+                 ;;
+               esac
+               if $GREP "^installed=no" $deplib > /dev/null; then
+               case $host in
+               *-*-darwin*)
+                 depdepl=
+                 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+                 if test -n "$deplibrary_names" ; then
+                   for tmp in $deplibrary_names ; do
+                     depdepl=$tmp
+                   done
+                   if test -f "$absdir/$objdir/$depdepl" ; then
+                     depdepl="$absdir/$objdir/$depdepl"
+                     darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+                      if test -z "$darwin_install_name"; then
+                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
+                      fi
+                     compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+                     linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+                     path=
+                   fi
+                 fi
+                 ;;
+               *)
+                 path="-L$absdir/$objdir"
+                 ;;
+               esac
+               else
+                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+                 test -z "$libdir" && \
+                   func_fatal_error "\`$deplib' is not a valid libtool archive"
+                 test "$absdir" != "$libdir" && \
+                   func_warning "\`$deplib' seems to be moved"
 
-       if test -n "$soname_spec"; then
-         eval soname=\"$soname_spec\"
+                 path="-L$absdir"
+               fi
+               ;;
+             esac
+             case " $deplibs " in
+             *" $path "*) ;;
+             *) deplibs="$path $deplibs" ;;
+             esac
+           done
+         fi # link_all_deplibs != no
+       fi # linkmode = lib
+      done # for deplib in $libs
+      if test "$pass" = link; then
+       if test "$linkmode" = "prog"; then
+         compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+         finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
        else
-         soname="$realname"
+         compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
        fi
-       if test -z "$dlname"; then
-         dlname=$soname
+      fi
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+       # Link the dlpreopened libraries before other libraries
+       for deplib in $save_deplibs; do
+         deplibs="$deplib $deplibs"
+       done
+      fi
+      if test "$pass" != dlopen; then
+       if test "$pass" != conv; then
+         # Make sure lib_search_path contains only unique directories.
+         lib_search_path=
+         for dir in $newlib_search_path; do
+           case "$lib_search_path " in
+           *" $dir "*) ;;
+           *) lib_search_path="$lib_search_path $dir" ;;
+           esac
+         done
+         newlib_search_path=
+       fi
+
+       if test "$linkmode,$pass" != "prog,link"; then
+         vars="deplibs"
+       else
+         vars="compile_deplibs finalize_deplibs"
+       fi
+       for var in $vars dependency_libs; do
+         # Add libraries to $var in reverse order
+         eval tmp_libs=\"\$$var\"
+         new_libs=
+         for deplib in $tmp_libs; do
+           # FIXME: Pedantically, this is the right thing to do, so
+           #        that some nasty dependency loop isn't accidentally
+           #        broken:
+           #new_libs="$deplib $new_libs"
+           # Pragmatically, this seems to cause very few problems in
+           # practice:
+           case $deplib in
+           -L*) new_libs="$deplib $new_libs" ;;
+           -R*) ;;
+           *)
+             # And here is the reason: when a library appears more
+             # than once as an explicit dependence of a library, or
+             # is implicitly linked in more than once by the
+             # compiler, it is considered special, and multiple
+             # occurrences thereof are not removed.  Compare this
+             # with having the same library being listed as a
+             # dependency of multiple other libraries: in this case,
+             # we know (pedantically, we assume) the library does not
+             # need to be listed more than once, so we keep only the
+             # last copy.  This is not always right, but it is rare
+             # enough that we require users that really mean to play
+             # such unportable linking tricks to link the library
+             # using -Wl,-lname, so that libtool does not consider it
+             # for duplicate removal.
+             case " $specialdeplibs " in
+             *" $deplib "*) new_libs="$deplib $new_libs" ;;
+             *)
+               case " $new_libs " in
+               *" $deplib "*) ;;
+               *) new_libs="$deplib $new_libs" ;;
+               esac
+               ;;
+             esac
+             ;;
+           esac
+         done
+         tmp_libs=
+         for deplib in $new_libs; do
+           case $deplib in
+           -L*)
+             case " $tmp_libs " in
+             *" $deplib "*) ;;
+             *) tmp_libs="$tmp_libs $deplib" ;;
+             esac
+             ;;
+           *) tmp_libs="$tmp_libs $deplib" ;;
+           esac
+         done
+         eval $var=\"$tmp_libs\"
+       done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+       case " $predeps $postdeps $compiler_lib_search_path " in
+       *" $i "*)
+         i=""
+         ;;
+       esac
+       if test -n "$i" ; then
+         tmp_libs="$tmp_libs $i"
        fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+    fi
+    if test "$linkmode" = prog || test "$linkmode" = lib; then
+      dlprefiles="$newdlprefiles"
+    fi
 
-       lib="$output_objdir/$realname"
-       linknames=
-       for link
-       do
-         linknames="$linknames $link"
-       done
+    case $linkmode in
+    oldlib)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+       func_warning "\`-dlopen' is ignored for archives"
+      fi
 
-       # Use standard objects if they are pic
-       test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-       test "X$libobjs" = "X " && libobjs=
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+       func_warning "\`-l' and \`-L' are ignored for archives" ;;
+      esac
 
-       delfiles=
-       if test -n "$export_symbols" && test -n "$include_expsyms"; then
-         $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
-         export_symbols="$output_objdir/$libname.uexp"
-         delfiles="$delfiles $export_symbols"
-       fi
+      test -n "$rpath" && \
+       func_warning "\`-rpath' is ignored for archives"
 
-       orig_export_symbols=
-       case $host_os in
-       cygwin* | mingw*)
-         if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
-           # exporting using user supplied symfile
-           if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
-             # and it's NOT already a .def file. Must figure out
-             # which of the given symbols are data symbols and tag
-             # them as such. So, trigger use of export_symbols_cmds.
-             # export_symbols gets reassigned inside the "prepare
-             # the list of exported symbols" if statement, so the
-             # include_expsyms logic still works.
-             orig_export_symbols="$export_symbols"
-             export_symbols=
-             always_export_symbols=yes
-           fi
-         fi
-         ;;
-       esac
+      test -n "$xrpath" && \
+       func_warning "\`-R' is ignored for archives"
 
-       # Prepare the list of exported symbols
-       if test -z "$export_symbols"; then
-         if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-           func_echo "generating symbol list for \`$libname.la'"
-           export_symbols="$output_objdir/$libname.exp"
-           $opt_dry_run || $RM $export_symbols
-           cmds=$export_symbols_cmds
-           save_ifs="$IFS"; IFS='~'
-           for cmd in $cmds; do
-             IFS="$save_ifs"
-             eval cmd=\"$cmd\"
-             if len=`expr "X$cmd" : ".*"` &&
-              test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-               func_show_eval "$cmd" 'exit $?'
-               skipped_export=false
-             else
-               # The command line is too long to execute in one step.
-               func_echo "using reloadable object file for export list..."
-               skipped_export=:
-               # Break out early, otherwise skipped_export may be
-               # set to false by a later but shorter cmd.
-               break
-             fi
-           done
-           IFS="$save_ifs"
-           if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
-             func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-             func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
-           fi
-         fi
-       fi
+      test -n "$vinfo" && \
+       func_warning "\`-version-info/-version-number' is ignored for archives"
 
-       if test -n "$export_symbols" && test -n "$include_expsyms"; then
-         tmp_export_symbols="$export_symbols"
-         test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-         $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
-       fi
+      test -n "$release" && \
+       func_warning "\`-release' is ignored for archives"
 
-       if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
-         # The given exports_symbols file has to be filtered, so filter it.
-         func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
-         # FIXME: $output_objdir/$libname.filter potentially contains lots of
-         # 's' commands which not all seds can handle. GNU sed should be fine
-         # though. Also, the filter scales superlinearly with the number of
-         # global variables. join(1) would be nice here, but unfortunately
-         # isn't a blessed tool.
-         $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-         delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
-         export_symbols=$output_objdir/$libname.def
-         $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
-       fi
+      test -n "$export_symbols$export_symbols_regex" && \
+       func_warning "\`-export-symbols' is ignored for archives"
 
-       tmp_deplibs=
-       for test_deplib in $deplibs; do
-         case " $convenience " in
-         *" $test_deplib "*) ;;
-         *)
-           tmp_deplibs="$tmp_deplibs $test_deplib"
-           ;;
-         esac
-       done
-       deplibs="$tmp_deplibs"
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
 
-       if test -n "$convenience"; then
-         if test -n "$whole_archive_flag_spec" &&
-           test "$compiler_needs_object" = yes &&
-           test -z "$libobjs"; then
-           # extract the archives, so we have objects to list.
-           # TODO: could optimize this to just extract one archive.
-           whole_archive_flag_spec=
-         fi
-         if test -n "$whole_archive_flag_spec"; then
-           save_libobjs=$libobjs
-           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-           test "X$libobjs" = "X " && libobjs=
-         else
-           gentop="$output_objdir/${outputname}x"
-           generated="$generated $gentop"
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+       func_stripname 'lib' '.la' "$outputname"
+       name=$func_stripname_result
+       eval shared_ext=\"$shrext_cmds\"
+       eval libname=\"$libname_spec\"
+       ;;
+      *)
+       test "$module" = no && \
+         func_fatal_help "libtool library \`$output' must begin with \`lib'"
 
-           func_extract_archives $gentop $convenience
-           libobjs="$libobjs $func_extract_archives_result"
-           test "X$libobjs" = "X " && libobjs=
-         fi
+       if test "$need_lib_prefix" != no; then
+         # Add the "lib" prefix for modules if required
+         func_stripname '' '.la' "$outputname"
+         name=$func_stripname_result
+         eval shared_ext=\"$shrext_cmds\"
+         eval libname=\"$libname_spec\"
+       else
+         func_stripname '' '.la' "$outputname"
+         libname=$func_stripname_result
        fi
+       ;;
+      esac
 
-       if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-         eval flag=\"$thread_safe_flag_spec\"
-         linker_flags="$linker_flags $flag"
+      if test -n "$objs"; then
+       if test "$deplibs_check_method" != pass_all; then
+         func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
+       else
+         $ECHO
+         $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+         $ECHO "*** objects $objs is not portable!"
+         libobjs="$libobjs $objs"
        fi
+      fi
 
-       # Make a backup of the uninstalled library when relinking
-       if test "$mode" = relink; then
-         $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
-       fi
+      test "$dlself" != no && \
+       func_warning "\`-dlopen self' is ignored for libtool libraries"
 
-       # Do each of the archive commands.
-       if test "$module" = yes && test -n "$module_cmds" ; then
-         if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-           eval test_cmds=\"$module_expsym_cmds\"
-           cmds=$module_expsym_cmds
-         else
-           eval test_cmds=\"$module_cmds\"
-           cmds=$module_cmds
-         fi
-       else
-         if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-           eval test_cmds=\"$archive_expsym_cmds\"
-           cmds=$archive_expsym_cmds
-         else
-           eval test_cmds=\"$archive_cmds\"
-           cmds=$archive_cmds
-         fi
-       fi
+      set dummy $rpath
+      shift
+      test "$#" -gt 1 && \
+       func_warning "ignoring multiple \`-rpath's for a libtool library"
 
-       if test "X$skipped_export" != "X:" &&
-          len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-          test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-         :
-       else
-         # The command line is too long to link in one step, link piecewise
-         # or, if using GNU ld and skipped_export is not :, use a linker
-         # script.
+      install_libdir="$1"
 
-         # Save the value of $output and $libobjs because we want to
-         # use them later.  If we have whole_archive_flag_spec, we
-         # want to use save_libobjs as it was before
-         # whole_archive_flag_spec was expanded, because we can't
-         # assume the linker understands whole_archive_flag_spec.
-         # This may have to be revisited, in case too many
-         # convenience libraries get linked in and end up exceeding
-         # the spec.
-         if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
-           save_libobjs=$libobjs
-         fi
-         save_output=$output
-         output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+      oldlibs=
+      if test -z "$rpath"; then
+       if test "$build_libtool_libs" = yes; then
+         # Building a libtool convenience library.
+         # Some compilers have problems with a `.al' extension so
+         # convenience libraries should have the same extension an
+         # archive normally would.
+         oldlibs="$output_objdir/$libname.$libext $oldlibs"
+         build_libtool_libs=convenience
+         build_old_libs=yes
+       fi
 
-         # Clear the reloadable object creation command queue and
-         # initialize k to one.
-         test_cmds=
-         concat_cmds=
-         objlist=
-         last_robj=
-         k=1
+       test -n "$vinfo" && \
+         func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
 
-         if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
-           output=${output_objdir}/${output_la}.lnkscript
-           func_echo "creating GNU ld script: $output"
-           $ECHO 'INPUT (' > $output
-           for obj in $save_libobjs
-           do
-             $ECHO "$obj" >> $output
-           done
-           $ECHO ')' >> $output
-           delfiles="$delfiles $output"
-         elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
-           output=${output_objdir}/${output_la}.lnk
-           func_echo "creating linker input file list: $output"
-           : > $output
-           set x $save_libobjs
-           shift
-           firstobj=
-           if test "$compiler_needs_object" = yes; then
-             firstobj="$1 "
-             shift
-           fi
-           for obj
-           do
-             $ECHO "$obj" >> $output
-           done
-           delfiles="$delfiles $output"
-           output=$firstobj\"$file_list_spec$output\"
-         else
-           if test -n "$save_libobjs"; then
-             func_echo "creating reloadable object files..."
-             output=$output_objdir/$output_la-${k}.$objext
-             # Loop over the list of objects to be linked.
-             for obj in $save_libobjs
-             do
-               eval test_cmds=\"$reload_cmds $objlist $last_robj\"
-               if test "X$objlist" = X ||
-                  { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-                    test "$len" -le "$max_cmd_len"; }; then
-                 objlist="$objlist $obj"
-               else
-                 # The command $test_cmds is almost too long, add a
-                 # command to the queue.
-                 if test "$k" -eq 1 ; then
-                   # The first file doesn't have a previous command to add.
-                   eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
-                 else
-                   # All subsequent reloadable object files will link in
-                   # the last one created.
-                   eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
-                 fi
-                 last_robj=$output_objdir/$output_la-${k}.$objext
-                 k=`expr $k + 1`
-                 output=$output_objdir/$output_la-${k}.$objext
-                 objlist=$obj
-                 len=1
-               fi
-             done
-             # Handle the remaining objects by creating one last
-             # reloadable object file.  All subsequent reloadable object
-             # files will link in the last one created.
-             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-             eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+       test -n "$release" && \
+         func_warning "\`-release' is ignored for convenience libraries"
+      else
 
-             # Set up a command to remove the reloadable object files
-             # after they are used.
-             i=0
-             while test "$i" -lt "$k"
-             do
-               i=`expr $i + 1`
-               delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
-             done
-           else
-             output=
-           fi
+       # Parse the version information argument.
+       save_ifs="$IFS"; IFS=':'
+       set dummy $vinfo 0 0 0
+       shift
+       IFS="$save_ifs"
 
-           if ${skipped_export-false}; then
-             func_echo "generating symbol list for \`$libname.la'"
-             export_symbols="$output_objdir/$libname.exp"
-             $opt_dry_run || $RM $export_symbols
-             libobjs=$output
-             # Append the command to create the export file.
-             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-             eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
-           fi
+       test -n "$7" && \
+         func_fatal_help "too many parameters to \`-version-info'"
 
-           test -n "$save_libobjs" &&
-             func_echo "creating a temporary reloadable object file: $output"
+       # convert absolute version numbers to libtool ages
+       # this retains compatibility with .la files and attempts
+       # to make the code below a bit more comprehensible
 
-           # Loop through the commands generated above and execute them.
-           save_ifs="$IFS"; IFS='~'
-           for cmd in $concat_cmds; do
-             IFS="$save_ifs"
-             $opt_silent || {
-                 func_quote_for_expand "$cmd"
-                 eval "func_echo $func_quote_for_expand_result"
-             }
-             $opt_dry_run || eval "$cmd" || {
-               lt_exit=$?
+       case $vinfo_number in
+       yes)
+         number_major="$1"
+         number_minor="$2"
+         number_revision="$3"
+         #
+         # There are really only two kinds -- those that
+         # use the current revision as the major version
+         # and those that subtract age and use age as
+         # a minor version.  But, then there is irix
+         # which has an extra 1 added just for fun
+         #
+         case $version_type in
+         darwin|linux|osf|windows|none)
+           func_arith $number_major + $number_minor
+           current=$func_arith_result
+           age="$number_minor"
+           revision="$number_revision"
+           ;;
+         freebsd-aout|freebsd-elf|sunos)
+           current="$number_major"
+           revision="$number_minor"
+           age="0"
+           ;;
+         irix|nonstopux)
+           func_arith $number_major + $number_minor
+           current=$func_arith_result
+           age="$number_minor"
+           revision="$number_minor"
+           lt_irix_increment=no
+           ;;
+         esac
+         ;;
+       no)
+         current="$1"
+         revision="$2"
+         age="$3"
+         ;;
+       esac
 
-               # Restore the uninstalled library and exit
-               if test "$mode" = relink; then
-                 ( cd "$output_objdir" && \
-                   $RM "${realname}T" && \
-                   $MV "${realname}U" "$realname" )
-               fi
+       # Check that each of the things are valid numbers.
+       case $current in
+       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+       *)
+         func_error "CURRENT \`$current' must be a nonnegative integer"
+         func_fatal_error "\`$vinfo' is not valid version information"
+         ;;
+       esac
 
-               exit $lt_exit
-             }
-           done
-           IFS="$save_ifs"
+       case $revision in
+       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+       *)
+         func_error "REVISION \`$revision' must be a nonnegative integer"
+         func_fatal_error "\`$vinfo' is not valid version information"
+         ;;
+       esac
 
-           if test -n "$export_symbols_regex" && ${skipped_export-false}; then
-             func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-             func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
-           fi
-         fi
+       case $age in
+       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+       *)
+         func_error "AGE \`$age' must be a nonnegative integer"
+         func_fatal_error "\`$vinfo' is not valid version information"
+         ;;
+       esac
 
-          if ${skipped_export-false}; then
-           if test -n "$export_symbols" && test -n "$include_expsyms"; then
-             tmp_export_symbols="$export_symbols"
-             test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-             $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
-           fi
+       if test "$age" -gt "$current"; then
+         func_error "AGE \`$age' is greater than the current interface number \`$current'"
+         func_fatal_error "\`$vinfo' is not valid version information"
+       fi
 
-           if test -n "$orig_export_symbols"; then
-             # The given exports_symbols file has to be filtered, so filter it.
-             func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
-             # FIXME: $output_objdir/$libname.filter potentially contains lots of
-             # 's' commands which not all seds can handle. GNU sed should be fine
-             # though. Also, the filter scales superlinearly with the number of
-             # global variables. join(1) would be nice here, but unfortunately
-             # isn't a blessed tool.
-             $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-             delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
-             export_symbols=$output_objdir/$libname.def
-             $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
-           fi
-         fi
+       # Calculate the version variables.
+       major=
+       versuffix=
+       verstring=
+       case $version_type in
+       none) ;;
 
-         libobjs=$output
-         # Restore the value of output.
-         output=$save_output
+       darwin)
+         # Like Linux, but with the current version available in
+         # verstring for coding it into the library header
+         func_arith $current - $age
+         major=.$func_arith_result
+         versuffix="$major.$age.$revision"
+         # Darwin ld doesn't like 0 for these options...
+         func_arith $current + 1
+         minor_current=$func_arith_result
+         xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+         verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+         ;;
 
-         if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
-           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-           test "X$libobjs" = "X " && libobjs=
-         fi
-         # Expand the library linking commands again to reset the
-         # value of $libobjs for piecewise linking.
+       freebsd-aout)
+         major=".$current"
+         versuffix=".$current.$revision";
+         ;;
 
-         # Do each of the archive commands.
-         if test "$module" = yes && test -n "$module_cmds" ; then
-           if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-             cmds=$module_expsym_cmds
-           else
-             cmds=$module_cmds
-           fi
+       freebsd-elf)
+         major=".$current"
+         versuffix=".$current"
+         ;;
+
+       irix | nonstopux)
+         if test "X$lt_irix_increment" = "Xno"; then
+           func_arith $current - $age
          else
-           if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-             cmds=$archive_expsym_cmds
-           else
-             cmds=$archive_cmds
-           fi
+           func_arith $current - $age + 1
          fi
-       fi
+         major=$func_arith_result
+
+         case $version_type in
+           nonstopux) verstring_prefix=nonstopux ;;
+           *)         verstring_prefix=sgi ;;
+         esac
+         verstring="$verstring_prefix$major.$revision"
+
+         # Add in all the interfaces that we are compatible with.
+         loop=$revision
+         while test "$loop" -ne 0; do
+           func_arith $revision - $loop
+           iface=$func_arith_result
+           func_arith $loop - 1
+           loop=$func_arith_result
+           verstring="$verstring_prefix$major.$iface:$verstring"
+         done
+
+         # Before this point, $major must not contain `.'.
+         major=.$major
+         versuffix="$major.$revision"
+         ;;
 
-       if test -n "$delfiles"; then
-         # Append the command to remove temporary files to $cmds.
-         eval cmds=\"\$cmds~\$RM $delfiles\"
-       fi
+       linux)
+         func_arith $current - $age
+         major=.$func_arith_result
+         versuffix="$major.$age.$revision"
+         ;;
 
-       # Add any objects from preloaded convenience libraries
-       if test -n "$dlprefiles"; then
-         gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+       osf)
+         func_arith $current - $age
+         major=.$func_arith_result
+         versuffix=".$current.$age.$revision"
+         verstring="$current.$age.$revision"
 
-         func_extract_archives $gentop $dlprefiles
-         libobjs="$libobjs $func_extract_archives_result"
-         test "X$libobjs" = "X " && libobjs=
-       fi
+         # Add in all the interfaces that we are compatible with.
+         loop=$age
+         while test "$loop" -ne 0; do
+           func_arith $current - $loop
+           iface=$func_arith_result
+           func_arith $loop - 1
+           loop=$func_arith_result
+           verstring="$verstring:${iface}.0"
+         done
 
-       save_ifs="$IFS"; IFS='~'
-       for cmd in $cmds; do
-         IFS="$save_ifs"
-         eval cmd=\"$cmd\"
-         $opt_silent || {
-           func_quote_for_expand "$cmd"
-           eval "func_echo $func_quote_for_expand_result"
-         }
-         $opt_dry_run || eval "$cmd" || {
-           lt_exit=$?
+         # Make executables depend on our current version.
+         verstring="$verstring:${current}.0"
+         ;;
 
-           # Restore the uninstalled library and exit
-           if test "$mode" = relink; then
-             ( cd "$output_objdir" && \
-               $RM "${realname}T" && \
-               $MV "${realname}U" "$realname" )
-           fi
+       qnx)
+         major=".$current"
+         versuffix=".$current"
+         ;;
 
-           exit $lt_exit
-         }
-       done
-       IFS="$save_ifs"
+       sunos)
+         major=".$current"
+         versuffix=".$current.$revision"
+         ;;
 
-       # Restore the uninstalled library and exit
-       if test "$mode" = relink; then
-         $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+       windows)
+         # Use '-' rather than '.', since we only want one
+         # extension on DOS 8.3 filesystems.
+         func_arith $current - $age
+         major=$func_arith_result
+         versuffix="-$major"
+         ;;
 
-         if test -n "$convenience"; then
-           if test -z "$whole_archive_flag_spec"; then
-             func_show_eval '${RM}r "$gentop"'
-           fi
+       *)
+         func_fatal_configuration "unknown library version type \`$version_type'"
+         ;;
+       esac
+
+       # Clear the version info if we defaulted, and they specified a release.
+       if test -z "$vinfo" && test -n "$release"; then
+         major=
+         case $version_type in
+         darwin)
+           # we can't check for "0.0" in archive_cmds due to quoting
+           # problems, so we reset it completely
+           verstring=
+           ;;
+         *)
+           verstring="0.0"
+           ;;
+         esac
+         if test "$need_version" = no; then
+           versuffix=
+         else
+           versuffix=".0.0"
          fi
+       fi
 
-         exit $EXIT_SUCCESS
+       # Remove version info from name if versioning should be avoided
+       if test "$avoid_version" = yes && test "$need_version" = no; then
+         major=
+         versuffix=
+         verstring=""
        fi
 
-       # Create links to the real library.
-       for linkname in $linknames; do
-         if test "$realname" != "$linkname"; then
-           func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+       # Check to see if the archive will have undefined symbols.
+       if test "$allow_undefined" = yes; then
+         if test "$allow_undefined_flag" = unsupported; then
+           func_warning "undefined symbols not allowed in $host shared libraries"
+           build_libtool_libs=no
+           build_old_libs=yes
          fi
-       done
-
-       # If -module or -export-dynamic was specified, set the dlname.
-       if test "$module" = yes || test "$export_dynamic" = yes; then
-         # On all known operating systems, these are identical.
-         dlname="$soname"
+       else
+         # Don't allow undefined symbols.
+         allow_undefined_flag="$no_undefined_flag"
        fi
-      fi
-      ;;
 
-    obj)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       func_warning "\`-dlopen' is ignored for objects"
       fi
 
-      test -n "$deplibs" && \
-       func_warning "\`-l' and \`-L' are ignored for objects"
-
-      test -n "$rpath" && \
-       func_warning "\`-rpath' is ignored for objects"
-
-      test -n "$xrpath" && \
-       func_warning "\`-R' is ignored for objects"
+      func_generate_dlsyms "$libname" "$libname" "yes"
+      libobjs="$libobjs $symfileobj"
+      test "X$libobjs" = "X " && libobjs=
 
-      test -n "$vinfo" && \
-       func_warning "\`-version-info' is ignored for objects"
+      if test "$mode" != relink; then
+       # Remove our outputs, but don't remove object files since they
+       # may have been created when compiling PIC objects.
+       removelist=
+       tempremovelist=`$ECHO "$output_objdir/*"`
+       for p in $tempremovelist; do
+         case $p in
+           *.$objext | *.gcno)
+              ;;
+           $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+              if test "X$precious_files_regex" != "X"; then
+                if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+                then
+                  continue
+                fi
+              fi
+              removelist="$removelist $p"
+              ;;
+           *) ;;
+         esac
+       done
+       test -n "$removelist" && \
+         func_show_eval "${RM}r \$removelist"
+      fi
 
-      test -n "$release" && \
-       func_warning "\`-release' is ignored for objects"
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+       oldlibs="$oldlibs $output_objdir/$libname.$libext"
 
-      case $output in
-      *.lo)
-       test -n "$objs$old_deplibs" && \
-         func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+       # Transform .lo files to .o files.
+       oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+      fi
 
-       libobj=$output
-       func_lo2o "$libobj"
-       obj=$func_lo2o_result
-       ;;
-      *)
-       libobj=
-       obj="$output"
-       ;;
-      esac
+      # Eliminate all temporary directories.
+      #for path in $notinst_path; do
+      #        lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
+      #        deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
+      #        dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
+      #done
 
-      # Delete the old objects.
-      $opt_dry_run || $RM $obj $libobj
+      if test -n "$xrpath"; then
+       # If the user specified any rpath flags, then add them.
+       temp_xrpath=
+       for libdir in $xrpath; do
+         temp_xrpath="$temp_xrpath -R$libdir"
+         case "$finalize_rpath " in
+         *" $libdir "*) ;;
+         *) finalize_rpath="$finalize_rpath $libdir" ;;
+         esac
+       done
+       if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+         dependency_libs="$temp_xrpath $dependency_libs"
+       fi
+      fi
 
-      # Objects from convenience libraries.  This assumes
-      # single-version convenience libraries.  Whenever we create
-      # different ones for PIC/non-PIC, this we'll have to duplicate
-      # the extraction.
-      reload_conv_objs=
-      gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec and hope we can get by with
-      # turning comma into space..
-      wl=
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+       case " $dlprefiles $dlfiles " in
+       *" $lib "*) ;;
+       *) dlfiles="$dlfiles $lib" ;;
+       esac
+      done
 
-      if test -n "$convenience"; then
-       if test -n "$whole_archive_flag_spec"; then
-         eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-         reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
-       else
-         gentop="$output_objdir/${obj}x"
-         generated="$generated $gentop"
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+       case "$dlprefiles " in
+       *" $lib "*) ;;
+       *) dlprefiles="$dlprefiles $lib" ;;
+       esac
+      done
 
-         func_extract_archives $gentop $convenience
-         reload_conv_objs="$reload_objs $func_extract_archives_result"
+      if test "$build_libtool_libs" = yes; then
+       if test -n "$rpath"; then
+         case $host in
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
+           # these systems don't actually have a c library (as such)!
+           ;;
+         *-*-rhapsody* | *-*-darwin1.[012])
+           # Rhapsody C library is in the System framework
+           deplibs="$deplibs System.ltframework"
+           ;;
+         *-*-netbsd*)
+           # Don't link with libc until the a.out ld.so is fixed.
+           ;;
+         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+           # Do not include libc due to us having libc/libc_r.
+           ;;
+         *-*-sco3.2v5* | *-*-sco5v6*)
+           # Causes problems with __ctype
+           ;;
+         *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+           # Compiler inserts libc in the correct place for threads to work
+           ;;
+         *)
+           # Add libc to deplibs on all other systems if necessary.
+           if test "$build_libtool_need_lc" = "yes"; then
+             deplibs="$deplibs -lc"
+           fi
+           ;;
+         esac
        fi
-      fi
-
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
-      output="$obj"
-      func_execute_cmds "$reload_cmds" 'exit $?'
+       # Transform deplibs into only deplibs that can be linked in shared.
+       name_save=$name
+       libname_save=$libname
+       release_save=$release
+       versuffix_save=$versuffix
+       major_save=$major
+       # I'm not sure if I'm treating the release correctly.  I think
+       # release should show up in the -l (ie -lgmp5) so we don't want to
+       # add it in twice.  Is that correct?
+       release=""
+       versuffix=""
+       major=""
+       newdeplibs=
+       droppeddeps=no
+       case $deplibs_check_method in
+       pass_all)
+         # Don't check for shared/static.  Everything works.
+         # This might be a little naive.  We might want to check
+         # whether the library exists or not.  But this is on
+         # osf3 & osf4 and I'm not really sure... Just
+         # implementing what was already the behavior.
+         newdeplibs=$deplibs
+         ;;
+       test_compile)
+         # This code stresses the "libraries are programs" paradigm to its
+         # limits. Maybe even breaks it.  We compile a program, linking it
+         # against the deplibs as a proxy for the library.  Then we can check
+         # whether they linked in statically or dynamically with ldd.
+         $opt_dry_run || $RM conftest.c
+         cat > conftest.c <<EOF
+         int main() { return 0; }
+EOF
+         $opt_dry_run || $RM conftest
+         if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+           ldd_output=`ldd conftest`
+           for i in $deplibs; do
+             case $i in
+             -l*)
+               func_stripname -l '' "$i"
+               name=$func_stripname_result
+               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+                 case " $predeps $postdeps " in
+                 *" $i "*)
+                   newdeplibs="$newdeplibs $i"
+                   i=""
+                   ;;
+                 esac
+               fi
+               if test -n "$i" ; then
+                 libname=`eval "\\$ECHO \"$libname_spec\""`
+                 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+                 set dummy $deplib_matches; shift
+                 deplib_match=$1
+                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+                   newdeplibs="$newdeplibs $i"
+                 else
+                   droppeddeps=yes
+                   $ECHO
+                   $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+                   $ECHO "*** I have the capability to make that library automatically link in when"
+                   $ECHO "*** you link to this library.  But I can only do this if you have a"
+                   $ECHO "*** shared version of the library, which I believe you do not have"
+                   $ECHO "*** because a test_compile did reveal that the linker did not use it for"
+                   $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
+                 fi
+               fi
+               ;;
+             *)
+               newdeplibs="$newdeplibs $i"
+               ;;
+             esac
+           done
+         else
+           # Error occurred in the first compile.  Let's try to salvage
+           # the situation: Compile a separate program for each library.
+           for i in $deplibs; do
+             case $i in
+             -l*)
+               func_stripname -l '' "$i"
+               name=$func_stripname_result
+               $opt_dry_run || $RM conftest
+               if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+                 ldd_output=`ldd conftest`
+                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+                   case " $predeps $postdeps " in
+                   *" $i "*)
+                     newdeplibs="$newdeplibs $i"
+                     i=""
+                     ;;
+                   esac
+                 fi
+                 if test -n "$i" ; then
+                   libname=`eval "\\$ECHO \"$libname_spec\""`
+                   deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+                   set dummy $deplib_matches; shift
+                   deplib_match=$1
+                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+                     newdeplibs="$newdeplibs $i"
+                   else
+                     droppeddeps=yes
+                     $ECHO
+                     $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+                     $ECHO "*** I have the capability to make that library automatically link in when"
+                     $ECHO "*** you link to this library.  But I can only do this if you have a"
+                     $ECHO "*** shared version of the library, which you do not appear to have"
+                     $ECHO "*** because a test_compile did reveal that the linker did not use this one"
+                     $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+                   fi
+                 fi
+               else
+                 droppeddeps=yes
+                 $ECHO
+                 $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
+                 $ECHO "*** make it link in!  You will probably need to install it or some"
+                 $ECHO "*** library that it depends on before this library will be fully"
+                 $ECHO "*** functional.  Installing it before continuing would be even better."
+               fi
+               ;;
+             *)
+               newdeplibs="$newdeplibs $i"
+               ;;
+             esac
+           done
+         fi
+         ;;
+       file_magic*)
+         set dummy $deplibs_check_method; shift
+         file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+         for a_deplib in $deplibs; do
+           case $a_deplib in
+           -l*)
+             func_stripname -l '' "$a_deplib"
+             name=$func_stripname_result
+             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+               case " $predeps $postdeps " in
+               *" $a_deplib "*)
+                 newdeplibs="$newdeplibs $a_deplib"
+                 a_deplib=""
+                 ;;
+               esac
+             fi
+             if test -n "$a_deplib" ; then
+               libname=`eval "\\$ECHO \"$libname_spec\""`
+               for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+                 for potent_lib in $potential_libs; do
+                     # Follow soft links.
+                     if ls -lLd "$potent_lib" 2>/dev/null |
+                        $GREP " -> " >/dev/null; then
+                       continue
+                     fi
+                     # The statement above tries to avoid entering an
+                     # endless loop below, in case of cyclic links.
+                     # We might still enter an endless loop, since a link
+                     # loop can be closed while we follow links,
+                     # but so what?
+                     potlib="$potent_lib"
+                     while test -h "$potlib" 2>/dev/null; do
+                       potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+                       case $potliblink in
+                       [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+                       *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+                       esac
+                     done
+                     if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+                        $SED -e 10q |
+                        $EGREP "$file_magic_regex" > /dev/null; then
+                       newdeplibs="$newdeplibs $a_deplib"
+                       a_deplib=""
+                       break 2
+                     fi
+                 done
+               done
+             fi
+             if test -n "$a_deplib" ; then
+               droppeddeps=yes
+               $ECHO
+               $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+               $ECHO "*** I have the capability to make that library automatically link in when"
+               $ECHO "*** you link to this library.  But I can only do this if you have a"
+               $ECHO "*** shared version of the library, which you do not appear to have"
+               $ECHO "*** because I did check the linker path looking for a file starting"
+               if test -z "$potlib" ; then
+                 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+               else
+                 $ECHO "*** with $libname and none of the candidates passed a file format test"
+                 $ECHO "*** using a file magic. Last file checked: $potlib"
+               fi
+             fi
+             ;;
+           *)
+             # Add a -L argument.
+             newdeplibs="$newdeplibs $a_deplib"
+             ;;
+           esac
+         done # Gone through all deplibs.
+         ;;
+       match_pattern*)
+         set dummy $deplibs_check_method; shift
+         match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+         for a_deplib in $deplibs; do
+           case $a_deplib in
+           -l*)
+             func_stripname -l '' "$a_deplib"
+             name=$func_stripname_result
+             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+               case " $predeps $postdeps " in
+               *" $a_deplib "*)
+                 newdeplibs="$newdeplibs $a_deplib"
+                 a_deplib=""
+                 ;;
+               esac
+             fi
+             if test -n "$a_deplib" ; then
+               libname=`eval "\\$ECHO \"$libname_spec\""`
+               for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+                 for potent_lib in $potential_libs; do
+                   potlib="$potent_lib" # see symlink-check above in file_magic test
+                   if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
+                      $EGREP "$match_pattern_regex" > /dev/null; then
+                     newdeplibs="$newdeplibs $a_deplib"
+                     a_deplib=""
+                     break 2
+                   fi
+                 done
+               done
+             fi
+             if test -n "$a_deplib" ; then
+               droppeddeps=yes
+               $ECHO
+               $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+               $ECHO "*** I have the capability to make that library automatically link in when"
+               $ECHO "*** you link to this library.  But I can only do this if you have a"
+               $ECHO "*** shared version of the library, which you do not appear to have"
+               $ECHO "*** because I did check the linker path looking for a file starting"
+               if test -z "$potlib" ; then
+                 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+               else
+                 $ECHO "*** with $libname and none of the candidates passed a file format test"
+                 $ECHO "*** using a regex pattern. Last file checked: $potlib"
+               fi
+             fi
+             ;;
+           *)
+             # Add a -L argument.
+             newdeplibs="$newdeplibs $a_deplib"
+             ;;
+           esac
+         done # Gone through all deplibs.
+         ;;
+       none | unknown | *)
+         newdeplibs=""
+         tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
+             -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
+         if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+           for i in $predeps $postdeps ; do
+             # can't use Xsed below, because $i might contain '/'
+             tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
+           done
+         fi
+         if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[      ]//g' |
+            $GREP . >/dev/null; then
+           $ECHO
+           if test "X$deplibs_check_method" = "Xnone"; then
+             $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
+           else
+             $ECHO "*** Warning: inter-library dependencies are not known to be supported."
+           fi
+           $ECHO "*** All declared inter-library dependencies are being dropped."
+           droppeddeps=yes
+         fi
+         ;;
+       esac
+       versuffix=$versuffix_save
+       major=$major_save
+       release=$release_save
+       libname=$libname_save
+       name=$name_save
 
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-       if test -n "$gentop"; then
-         func_show_eval '${RM}r "$gentop"'
-       fi
+       case $host in
+       *-*-rhapsody* | *-*-darwin1.[012])
+         # On Rhapsody replace the C library with the System framework
+         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+         ;;
+       esac
 
-       exit $EXIT_SUCCESS
-      fi
+       if test "$droppeddeps" = yes; then
+         if test "$module" = yes; then
+           $ECHO
+           $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
+           $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
+           $ECHO "*** a static module, that should work as long as the dlopening"
+           $ECHO "*** application is linked with the -dlopen flag."
+           if test -z "$global_symbol_pipe"; then
+             $ECHO
+             $ECHO "*** However, this would only work if libtool was able to extract symbol"
+             $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+             $ECHO "*** not find such a program.  So, this module is probably useless."
+             $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+           fi
+           if test "$build_old_libs" = no; then
+             oldlibs="$output_objdir/$libname.$libext"
+             build_libtool_libs=module
+             build_old_libs=yes
+           else
+             build_libtool_libs=no
+           fi
+         else
+           $ECHO "*** The inter-library dependencies that have been dropped here will be"
+           $ECHO "*** automatically added whenever a program is linked with this library"
+           $ECHO "*** or is declared to -dlopen it."
 
-      if test "$build_libtool_libs" != yes; then
-       if test -n "$gentop"; then
-         func_show_eval '${RM}r "$gentop"'
+           if test "$allow_undefined" = no; then
+             $ECHO
+             $ECHO "*** Since this library must not contain undefined symbols,"
+             $ECHO "*** because either the platform does not support them or"
+             $ECHO "*** it was explicitly requested with -no-undefined,"
+             $ECHO "*** libtool will only create a static version of it."
+             if test "$build_old_libs" = no; then
+               oldlibs="$output_objdir/$libname.$libext"
+               build_libtool_libs=module
+               build_old_libs=yes
+             else
+               build_libtool_libs=no
+             fi
+           fi
+         fi
        fi
-
-       # Create an invalid libtool object if no PIC, so that we don't
-       # accidentally link it into a program.
-       # $show "echo timestamp > $libobj"
-       # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
-       exit $EXIT_SUCCESS
-      fi
-
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
-       # Only do commands if we really have different PIC objects.
-       reload_objs="$libobjs $reload_conv_objs"
-       output="$libobj"
-       func_execute_cmds "$reload_cmds" 'exit $?'
-      fi
-
-      if test -n "$gentop"; then
-       func_show_eval '${RM}r "$gentop"'
+       # Done checking deplibs!
+       deplibs=$newdeplibs
       fi
-
-      exit $EXIT_SUCCESS
-      ;;
-
-    prog)
-      case $host in
-       *cygwin*) func_stripname '' '.exe' "$output"
-                 output=$func_stripname_result.exe;;
-      esac
-      test -n "$vinfo" && \
-       func_warning "\`-version-info' is ignored for programs"
-
-      test -n "$release" && \
-       func_warning "\`-release' is ignored for programs"
-
-      test "$preload" = yes \
-        && test "$dlopen_support" = unknown \
-       && test "$dlopen_self" = unknown \
-       && test "$dlopen_self_static" = unknown && \
-         func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
-
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-       # On Rhapsody replace the C library is the System framework
-       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
-       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
-       ;;
-      esac
-
+      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
       case $host in
-      *-*-darwin*)
-       # Don't allow lazy linking, it breaks C++ global constructors
-       # But is supposedly fixed on 10.4 or later (yay!).
-       if test "$tagname" = CXX ; then
-         case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
-           10.[0123])
-             compile_command="$compile_command ${wl}-bind_at_load"
-             finalize_command="$finalize_command ${wl}-bind_at_load"
-           ;;
-         esac
-       fi
-       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
-       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-       ;;
+       *-*-darwin*)
+         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         ;;
       esac
 
-
       # move library search paths that coincide with paths to not yet
       # installed libraries to the beginning of the library search list
       new_libs=
@@ -6032,14 +6852,14 @@ EOF
        case " $new_libs " in
        *" -L$path/$objdir "*) ;;
        *)
-         case " $compile_deplibs " in
+         case " $deplibs " in
          *" -L$path/$objdir "*)
            new_libs="$new_libs -L$path/$objdir" ;;
          esac
          ;;
        esac
       done
-      for deplib in $compile_deplibs; do
+      for deplib in $deplibs; do
        case $deplib in
        -L*)
          case " $new_libs " in
        *) new_libs="$new_libs $deplib" ;;
        esac
       done
-      compile_deplibs="$new_libs"
-
-
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
-
-      if test -n "$rpath$xrpath"; then
-       # If the user specified any rpath flags, then add them.
-       for libdir in $rpath $xrpath; do
-         # This is the magic to use -rpath.
-         case "$finalize_rpath " in
-         *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
-         esac
-       done
-      fi
+      deplibs="$new_libs"
 
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-       if test -n "$hardcode_libdir_flag_spec"; then
-         if test -n "$hardcode_libdir_separator"; then
-           if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
-           else
-             # Just accumulate the unique libdirs.
-             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-               ;;
-             *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-               ;;
-             esac
-           fi
-         else
-           eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
-         fi
-       elif test -n "$runpath_var"; then
-         case "$perm_rpath " in
-         *" $libdir "*) ;;
-         *) perm_rpath="$perm_rpath $libdir" ;;
-         esac
-       fi
-       case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-         testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
-         case :$dllsearchpath: in
-         *":$libdir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$libdir";;
-         esac
-         case :$dllsearchpath: in
-         *":$testbindir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
-         esac
-         ;;
-       esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-        test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
-       eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
 
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-       if test -n "$hardcode_libdir_flag_spec"; then
-         if test -n "$hardcode_libdir_separator"; then
-           if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
-           else
-             # Just accumulate the unique libdirs.
-             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-               ;;
-             *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-               ;;
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+       if test "$hardcode_into_libs" = yes; then
+         # Hardcode the library paths
+         hardcode_libdirs=
+         dep_rpath=
+         rpath="$finalize_rpath"
+         test "$mode" != relink && rpath="$compile_rpath$rpath"
+         for libdir in $rpath; do
+           if test -n "$hardcode_libdir_flag_spec"; then
+             if test -n "$hardcode_libdir_separator"; then
+               if test -z "$hardcode_libdirs"; then
+                 hardcode_libdirs="$libdir"
+               else
+                 # Just accumulate the unique libdirs.
+                 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+                 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+                   ;;
+                 *)
+                   hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+                   ;;
+                 esac
+               fi
+             else
+               eval flag=\"$hardcode_libdir_flag_spec\"
+               dep_rpath="$dep_rpath $flag"
+             fi
+           elif test -n "$runpath_var"; then
+             case "$perm_rpath " in
+             *" $libdir "*) ;;
+             *) perm_rpath="$perm_rpath $libdir" ;;
              esac
            fi
-         else
-           eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
+         done
+         # Substitute the hardcoded libdirs into the rpath.
+         if test -n "$hardcode_libdir_separator" &&
+            test -n "$hardcode_libdirs"; then
+           libdir="$hardcode_libdirs"
+           if test -n "$hardcode_libdir_flag_spec_ld"; then
+             eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+           else
+             eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+           fi
          fi
-       elif test -n "$runpath_var"; then
-         case "$finalize_perm_rpath " in
-         *" $libdir "*) ;;
-         *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-         esac
+         if test -n "$runpath_var" && test -n "$perm_rpath"; then
+           # We should set the runpath_var.
+           rpath=
+           for dir in $perm_rpath; do
+             rpath="$rpath$dir:"
+           done
+           eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+         fi
+         test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
        fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-        test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
-       eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
 
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-       # Transform all the library objects into standard objects.
-       compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-       finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-      fi
+       shlibpath="$finalize_shlibpath"
+       test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+       if test -n "$shlibpath"; then
+         eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+       fi
 
-      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+       # Get the real and link names of the library.
+       eval shared_ext=\"$shrext_cmds\"
+       eval library_names=\"$library_names_spec\"
+       set dummy $library_names
+       shift
+       realname="$1"
+       shift
 
-      # template prelinking step
-      if test -n "$prelink_cmds"; then
-       func_execute_cmds "$prelink_cmds" 'exit $?'
-      fi
+       if test -n "$soname_spec"; then
+         eval soname=\"$soname_spec\"
+       else
+         soname="$realname"
+       fi
+       if test -z "$dlname"; then
+         dlname=$soname
+       fi
 
-      wrappers_required=yes
-      case $host in
-      *cygwin* | *mingw* )
-        if test "$build_libtool_libs" != yes; then
-          wrappers_required=no
-        fi
-        ;;
-      *)
-        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-          wrappers_required=no
-        fi
-        ;;
-      esac
-      if test "$wrappers_required" = no; then
-       # Replace the output file specification.
-       compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-       link_command="$compile_command$compile_rpath"
+       lib="$output_objdir/$realname"
+       linknames=
+       for link
+       do
+         linknames="$linknames $link"
+       done
 
-       # We have no uninstalled library dependencies, so finalize right now.
-       exit_status=0
-       func_show_eval "$link_command" 'exit_status=$?'
+       # Use standard objects if they are pic
+       test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+       test "X$libobjs" = "X " && libobjs=
 
-       # Delete the generated files.
-       if test -f "$output_objdir/${outputname}S.${objext}"; then
-         func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+       delfiles=
+       if test -n "$export_symbols" && test -n "$include_expsyms"; then
+         $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+         export_symbols="$output_objdir/$libname.uexp"
+         delfiles="$delfiles $export_symbols"
        fi
 
-       exit $exit_status
-      fi
+       orig_export_symbols=
+       case $host_os in
+       cygwin* | mingw* | cegcc*)
+         if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+           # exporting using user supplied symfile
+           if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+             # and it's NOT already a .def file. Must figure out
+             # which of the given symbols are data symbols and tag
+             # them as such. So, trigger use of export_symbols_cmds.
+             # export_symbols gets reassigned inside the "prepare
+             # the list of exported symbols" if statement, so the
+             # include_expsyms logic still works.
+             orig_export_symbols="$export_symbols"
+             export_symbols=
+             always_export_symbols=yes
+           fi
+         fi
+         ;;
+       esac
 
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-       compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-       finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
+       # Prepare the list of exported symbols
+       if test -z "$export_symbols"; then
+         if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+           func_verbose "generating symbol list for \`$libname.la'"
+           export_symbols="$output_objdir/$libname.exp"
+           $opt_dry_run || $RM $export_symbols
+           cmds=$export_symbols_cmds
+           save_ifs="$IFS"; IFS='~'
+           for cmd in $cmds; do
+             IFS="$save_ifs"
+             eval cmd=\"$cmd\"
+             func_len " $cmd"
+             len=$func_len_result
+             if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+               func_show_eval "$cmd" 'exit $?'
+               skipped_export=false
+             else
+               # The command line is too long to execute in one step.
+               func_verbose "using reloadable object file for export list..."
+               skipped_export=:
+               # Break out early, otherwise skipped_export may be
+               # set to false by a later but shorter cmd.
+               break
+             fi
+           done
+           IFS="$save_ifs"
+           if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+             func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+             func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+           fi
+         fi
+       fi
 
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-       if test -n "$perm_rpath"; then
-         # We should set the runpath_var.
-         rpath=
-         for dir in $perm_rpath; do
-           rpath="$rpath$dir:"
-         done
-         compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+       if test -n "$export_symbols" && test -n "$include_expsyms"; then
+         tmp_export_symbols="$export_symbols"
+         test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+         $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
        fi
-       if test -n "$finalize_perm_rpath"; then
-         # We should set the runpath_var.
-         rpath=
-         for dir in $finalize_perm_rpath; do
-           rpath="$rpath$dir:"
-         done
-         finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+
+       if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+         # The given exports_symbols file has to be filtered, so filter it.
+         func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+         # FIXME: $output_objdir/$libname.filter potentially contains lots of
+         # 's' commands which not all seds can handle. GNU sed should be fine
+         # though. Also, the filter scales superlinearly with the number of
+         # global variables. join(1) would be nice here, but unfortunately
+         # isn't a blessed tool.
+         $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+         delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+         export_symbols=$output_objdir/$libname.def
+         $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
        fi
-      fi
 
-      if test "$no_install" = yes; then
-       # We don't need to create a wrapper script.
-       link_command="$compile_var$compile_command$compile_rpath"
-       # Replace the output file specification.
-       link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-       # Delete the old output file.
-       $opt_dry_run || $RM $output
-       # Link the executable and exit
-       func_show_eval "$link_command" 'exit $?'
-       exit $EXIT_SUCCESS
-      fi
+       tmp_deplibs=
+       for test_deplib in $deplibs; do
+         case " $convenience " in
+         *" $test_deplib "*) ;;
+         *)
+           tmp_deplibs="$tmp_deplibs $test_deplib"
+           ;;
+         esac
+       done
+       deplibs="$tmp_deplibs"
 
-      if test "$hardcode_action" = relink; then
-       # Fast installation is not supported
-       link_command="$compile_var$compile_command$compile_rpath"
-       relink_command="$finalize_var$finalize_command$finalize_rpath"
+       if test -n "$convenience"; then
+         if test -n "$whole_archive_flag_spec" &&
+           test "$compiler_needs_object" = yes &&
+           test -z "$libobjs"; then
+           # extract the archives, so we have objects to list.
+           # TODO: could optimize this to just extract one archive.
+           whole_archive_flag_spec=
+         fi
+         if test -n "$whole_archive_flag_spec"; then
+           save_libobjs=$libobjs
+           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+           test "X$libobjs" = "X " && libobjs=
+         else
+           gentop="$output_objdir/${outputname}x"
+           generated="$generated $gentop"
 
-       func_warning "this platform does not like uninstalled shared libraries"
-       func_warning "\`$output' will be relinked during installation"
-      else
-       if test "$fast_install" != no; then
-         link_command="$finalize_var$compile_command$finalize_rpath"
-         if test "$fast_install" = yes; then
-           relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+           func_extract_archives $gentop $convenience
+           libobjs="$libobjs $func_extract_archives_result"
+           test "X$libobjs" = "X " && libobjs=
+         fi
+       fi
+
+       if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+         eval flag=\"$thread_safe_flag_spec\"
+         linker_flags="$linker_flags $flag"
+       fi
+
+       # Make a backup of the uninstalled library when relinking
+       if test "$mode" = relink; then
+         $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+       fi
+
+       # Do each of the archive commands.
+       if test "$module" = yes && test -n "$module_cmds" ; then
+         if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+           eval test_cmds=\"$module_expsym_cmds\"
+           cmds=$module_expsym_cmds
          else
-           # fast_install is set to needless
-           relink_command=
+           eval test_cmds=\"$module_cmds\"
+           cmds=$module_cmds
          fi
        else
-         link_command="$compile_var$compile_command$compile_rpath"
-         relink_command="$finalize_var$finalize_command$finalize_rpath"
+         if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+           eval test_cmds=\"$archive_expsym_cmds\"
+           cmds=$archive_expsym_cmds
+         else
+           eval test_cmds=\"$archive_cmds\"
+           cmds=$archive_cmds
+         fi
        fi
-      fi
 
-      # Replace the output file specification.
-      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+       if test "X$skipped_export" != "X:" &&
+          func_len " $test_cmds" &&
+          len=$func_len_result &&
+          test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+         :
+       else
+         # The command line is too long to link in one step, link piecewise
+         # or, if using GNU ld and skipped_export is not :, use a linker
+         # script.
 
-      func_show_eval "$link_command" 'exit $?'
+         # Save the value of $output and $libobjs because we want to
+         # use them later.  If we have whole_archive_flag_spec, we
+         # want to use save_libobjs as it was before
+         # whole_archive_flag_spec was expanded, because we can't
+         # assume the linker understands whole_archive_flag_spec.
+         # This may have to be revisited, in case too many
+         # convenience libraries get linked in and end up exceeding
+         # the spec.
+         if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+           save_libobjs=$libobjs
+         fi
+         save_output=$output
+         output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
 
-      # Now create the wrapper script.
-      func_echo "creating $output"
+         # Clear the reloadable object creation command queue and
+         # initialize k to one.
+         test_cmds=
+         concat_cmds=
+         objlist=
+         last_robj=
+         k=1
 
-      # Quote the relink command for shipping.
-      if test -n "$relink_command"; then
-       # Preserve any variables that may affect compiler behavior
-       for var in $variables_saved_for_relink; do
-         if eval test -z \"\${$var+set}\"; then
-           relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
-         elif eval var_value=\$$var; test -z "$var_value"; then
-           relink_command="$var=; export $var; $relink_command"
+         if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
+           output=${output_objdir}/${output_la}.lnkscript
+           func_verbose "creating GNU ld script: $output"
+           $ECHO 'INPUT (' > $output
+           for obj in $save_libobjs
+           do
+             $ECHO "$obj" >> $output
+           done
+           $ECHO ')' >> $output
+           delfiles="$delfiles $output"
+         elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
+           output=${output_objdir}/${output_la}.lnk
+           func_verbose "creating linker input file list: $output"
+           : > $output
+           set x $save_libobjs
+           shift
+           firstobj=
+           if test "$compiler_needs_object" = yes; then
+             firstobj="$1 "
+             shift
+           fi
+           for obj
+           do
+             $ECHO "$obj" >> $output
+           done
+           delfiles="$delfiles $output"
+           output=$firstobj\"$file_list_spec$output\"
          else
-           func_quote_for_eval "$var_value"
-           relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
-         fi
-       done
-       relink_command="(cd `pwd`; $relink_command)"
-       relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
+           if test -n "$save_libobjs"; then
+             func_verbose "creating reloadable object files..."
+             output=$output_objdir/$output_la-${k}.$objext
+             eval test_cmds=\"$reload_cmds\"
+             func_len " $test_cmds"
+             len0=$func_len_result
+             len=$len0
 
-      # Quote $ECHO for shipping.
-      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
-       case $progpath in
-       [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
-       *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
-       esac
-       qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-       qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
-      fi
+             # Loop over the list of objects to be linked.
+             for obj in $save_libobjs
+             do
+               func_len " $obj"
+               func_arith $len + $func_len_result
+               len=$func_arith_result
+               if test "X$objlist" = X ||
+                  test "$len" -lt "$max_cmd_len"; then
+                 func_append objlist " $obj"
+               else
+                 # The command $test_cmds is almost too long, add a
+                 # command to the queue.
+                 if test "$k" -eq 1 ; then
+                   # The first file doesn't have a previous command to add.
+                   eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+                 else
+                   # All subsequent reloadable object files will link in
+                   # the last one created.
+                   eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
+                 fi
+                 last_robj=$output_objdir/$output_la-${k}.$objext
+                 func_arith $k + 1
+                 k=$func_arith_result
+                 output=$output_objdir/$output_la-${k}.$objext
+                 objlist=$obj
+                 func_len " $last_robj"
+                 func_arith $len0 + $func_len_result
+                 len=$func_arith_result
+               fi
+             done
+             # Handle the remaining objects by creating one last
+             # reloadable object file.  All subsequent reloadable object
+             # files will link in the last one created.
+             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+             eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+             if test -n "$last_robj"; then
+               eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+             fi
+             delfiles="$delfiles $output"
 
-      # Only actually do things if not in dry run mode.
-      $opt_dry_run || {
-       # win32 will think the script is a binary if it has
-       # a .exe suffix, so we strip it off here.
-       case $output in
-         *.exe) func_stripname '' '.exe' "$output"
-                output=$func_stripname_result ;;
-       esac
-       # test for cygwin because mv fails w/o .exe extensions
-       case $host in
-         *cygwin*)
-           exeext=.exe
-           func_stripname '' '.exe' "$outputname"
-           outputname=$func_stripname_result ;;
-         *) exeext= ;;
-       esac
-       case $host in
-         *cygwin* | *mingw* )
-           output_name=`basename $output`
-           output_path=`dirname $output`
-           cwrappersource="$output_path/$objdir/lt-$output_name.c"
-           cwrapper="$output_path/$output_name.exe"
-           $RM $cwrappersource $cwrapper
-           trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+           else
+             output=
+           fi
 
-           cat > $cwrappersource <<EOF
+           if ${skipped_export-false}; then
+             func_verbose "generating symbol list for \`$libname.la'"
+             export_symbols="$output_objdir/$libname.exp"
+             $opt_dry_run || $RM $export_symbols
+             libobjs=$output
+             # Append the command to create the export file.
+             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+             eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+             if test -n "$last_robj"; then
+               eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+             fi
+           fi
 
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+           test -n "$save_libobjs" &&
+             func_verbose "creating a temporary reloadable object file: $output"
 
-   The $output program cannot be directly executed until all the libtool
-   libraries that it depends on are installed.
+           # Loop through the commands generated above and execute them.
+           save_ifs="$IFS"; IFS='~'
+           for cmd in $concat_cmds; do
+             IFS="$save_ifs"
+             $opt_silent || {
+                 func_quote_for_expand "$cmd"
+                 eval "func_echo $func_quote_for_expand_result"
+             }
+             $opt_dry_run || eval "$cmd" || {
+               lt_exit=$?
 
-   This wrapper executable should never be moved out of the build directory.
-   If it is, it will not operate correctly.
+               # Restore the uninstalled library and exit
+               if test "$mode" = relink; then
+                 ( cd "$output_objdir" && \
+                   $RM "${realname}T" && \
+                   $MV "${realname}U" "$realname" )
+               fi
 
-   Currently, it simply execs the wrapper *script* "/bin/sh $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
-*/
-EOF
-           cat >> $cwrappersource<<"EOF"
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <sys/stat.h>
+               exit $lt_exit
+             }
+           done
+           IFS="$save_ifs"
+
+           if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+             func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+             func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+           fi
+         fi
+
+          if ${skipped_export-false}; then
+           if test -n "$export_symbols" && test -n "$include_expsyms"; then
+             tmp_export_symbols="$export_symbols"
+             test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+             $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+           fi
+
+           if test -n "$orig_export_symbols"; then
+             # The given exports_symbols file has to be filtered, so filter it.
+             func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+             # FIXME: $output_objdir/$libname.filter potentially contains lots of
+             # 's' commands which not all seds can handle. GNU sed should be fine
+             # though. Also, the filter scales superlinearly with the number of
+             # global variables. join(1) would be nice here, but unfortunately
+             # isn't a blessed tool.
+             $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+             delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+             export_symbols=$output_objdir/$libname.def
+             $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+           fi
+         fi
+
+         libobjs=$output
+         # Restore the value of output.
+         output=$save_output
+
+         if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+           test "X$libobjs" = "X " && libobjs=
+         fi
+         # Expand the library linking commands again to reset the
+         # value of $libobjs for piecewise linking.
+
+         # Do each of the archive commands.
+         if test "$module" = yes && test -n "$module_cmds" ; then
+           if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+             cmds=$module_expsym_cmds
+           else
+             cmds=$module_cmds
+           fi
+         else
+           if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+             cmds=$archive_expsym_cmds
+           else
+             cmds=$archive_cmds
+           fi
+         fi
+       fi
 
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
+       if test -n "$delfiles"; then
+         # Append the command to remove temporary files to $cmds.
+         eval cmds=\"\$cmds~\$RM $delfiles\"
+       fi
 
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
+       # Add any objects from preloaded convenience libraries
+       if test -n "$dlprefiles"; then
+         gentop="$output_objdir/${outputname}x"
+         generated="$generated $gentop"
 
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# ifndef DIR_SEPARATOR_2
-#  define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-#  define PATH_SEPARATOR_2 ';'
-# endif
-#endif
+         func_extract_archives $gentop $dlprefiles
+         libobjs="$libobjs $func_extract_archives_result"
+         test "X$libobjs" = "X " && libobjs=
+       fi
 
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
-       (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
+       save_ifs="$IFS"; IFS='~'
+       for cmd in $cmds; do
+         IFS="$save_ifs"
+         eval cmd=\"$cmd\"
+         $opt_silent || {
+           func_quote_for_expand "$cmd"
+           eval "func_echo $func_quote_for_expand_result"
+         }
+         $opt_dry_run || eval "$cmd" || {
+           lt_exit=$?
 
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
+           # Restore the uninstalled library and exit
+           if test "$mode" = relink; then
+             ( cd "$output_objdir" && \
+               $RM "${realname}T" && \
+               $MV "${realname}U" "$realname" )
+           fi
 
-#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
+           exit $lt_exit
+         }
+       done
+       IFS="$save_ifs"
 
-/* -DDEBUG is fairly common in CFLAGS.  */
-#undef DEBUG
-#if defined DEBUGWRAPPER
-# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
-#else
-# define DEBUG(format, ...)
-#endif
+       # Restore the uninstalled library and exit
+       if test "$mode" = relink; then
+         $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
-const char *program_name = NULL;
+         if test -n "$convenience"; then
+           if test -z "$whole_archive_flag_spec"; then
+             func_show_eval '${RM}r "$gentop"'
+           fi
+         fi
 
-void * xmalloc (size_t num);
-char * xstrdup (const char *string);
-const char * base_name (const char *name);
-char * find_executable(const char *wrapper);
-int    check_executable(const char *path);
-char * strendzap(char *str, const char *pat);
-void lt_fatal (const char *message, ...);
+         exit $EXIT_SUCCESS
+       fi
 
-int
-main (int argc, char *argv[])
-{
-  char **newargz;
-  int i;
+       # Create links to the real library.
+       for linkname in $linknames; do
+         if test "$realname" != "$linkname"; then
+           func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+         fi
+       done
 
-  program_name = (char *) xstrdup (base_name (argv[0]));
-  DEBUG("(main) argv[0]      : %s\n",argv[0]);
-  DEBUG("(main) program_name : %s\n",program_name);
-  newargz = XMALLOC(char *, argc+2);
-EOF
+       # If -module or -export-dynamic was specified, set the dlname.
+       if test "$module" = yes || test "$export_dynamic" = yes; then
+         # On all known operating systems, these are identical.
+         dlname="$soname"
+       fi
+      fi
+      ;;
 
-           cat >> $cwrappersource <<EOF
-  newargz[0] = (char *) xstrdup("$SHELL");
-EOF
+    obj)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+       func_warning "\`-dlopen' is ignored for objects"
+      fi
 
-           cat >> $cwrappersource <<"EOF"
-  newargz[1] = find_executable(argv[0]);
-  if (newargz[1] == NULL)
-    lt_fatal("Couldn't find %s", argv[0]);
-  DEBUG("(main) found exe at : %s\n",newargz[1]);
-  /* we know the script has the same name, without the .exe */
-  /* so make sure newargz[1] doesn't end in .exe */
-  strendzap(newargz[1],".exe");
-  for (i = 1; i < argc; i++)
-    newargz[i+1] = xstrdup(argv[i]);
-  newargz[argc+1] = NULL;
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+       func_warning "\`-l' and \`-L' are ignored for objects" ;;
+      esac
 
-  for (i=0; i<argc+1; i++)
-  {
-    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
-    ;
-  }
+      test -n "$rpath" && \
+       func_warning "\`-rpath' is ignored for objects"
 
-EOF
+      test -n "$xrpath" && \
+       func_warning "\`-R' is ignored for objects"
 
-           case $host_os in
-             mingw*)
-               cat >> $cwrappersource <<EOF
-  execv("$SHELL",(char const **)newargz);
-EOF
-             ;;
-             *)
-               cat >> $cwrappersource <<EOF
-  execv("$SHELL",newargz);
-EOF
-             ;;
-           esac
+      test -n "$vinfo" && \
+       func_warning "\`-version-info' is ignored for objects"
 
-           cat >> $cwrappersource <<"EOF"
-  return 127;
-}
+      test -n "$release" && \
+       func_warning "\`-release' is ignored for objects"
 
-void *
-xmalloc (size_t num)
-{
-  void * p = (void *) malloc (num);
-  if (!p)
-    lt_fatal ("Memory exhausted");
+      case $output in
+      *.lo)
+       test -n "$objs$old_deplibs" && \
+         func_fatal_error "cannot build library object \`$output' from non-libtool objects"
 
-  return p;
-}
+       libobj=$output
+       func_lo2o "$libobj"
+       obj=$func_lo2o_result
+       ;;
+      *)
+       libobj=
+       obj="$output"
+       ;;
+      esac
 
-char *
-xstrdup (const char *string)
-{
-  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
-;
-}
+      # Delete the old objects.
+      $opt_dry_run || $RM $obj $libobj
 
-const char *
-base_name (const char *name)
-{
-  const char *base;
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec and hope we can get by with
+      # turning comma into space..
+      wl=
 
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
-    name += 2;
-#endif
+      if test -n "$convenience"; then
+       if test -n "$whole_archive_flag_spec"; then
+         eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+         reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+       else
+         gentop="$output_objdir/${obj}x"
+         generated="$generated $gentop"
 
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-  return base;
-}
+         func_extract_archives $gentop $convenience
+         reload_conv_objs="$reload_objs $func_extract_archives_result"
+       fi
+      fi
 
-int
-check_executable(const char * path)
-{
-  struct stat st;
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
-  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
-  if ((!path) || (!*path))
-    return 0;
+      output="$obj"
+      func_execute_cmds "$reload_cmds" 'exit $?'
 
-  if ((stat (path, &st) >= 0) &&
-      (
-       /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
-#if defined (S_IXOTH)
-       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
-#endif
-#if defined (S_IXGRP)
-       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
-#endif
-       ((st.st_mode & S_IXUSR) == S_IXUSR))
-      )
-    return 1;
-  else
-    return 0;
-}
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+       if test -n "$gentop"; then
+         func_show_eval '${RM}r "$gentop"'
+       fi
 
-/* Searches for the full path of the wrapper.  Returns
-   newly allocated full path name if found, NULL otherwise */
-char *
-find_executable (const char* wrapper)
-{
-  int has_slash = 0;
-  const char* p;
-  const char* p_next;
-  /* static buffer for getcwd */
-  char tmp[LT_PATHMAX + 1];
-  int tmp_len;
-  char* concat_name;
+       exit $EXIT_SUCCESS
+      fi
 
-  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
+      if test "$build_libtool_libs" != yes; then
+       if test -n "$gentop"; then
+         func_show_eval '${RM}r "$gentop"'
+       fi
 
-  if ((wrapper == NULL) || (*wrapper == '\0'))
-    return NULL;
+       # Create an invalid libtool object if no PIC, so that we don't
+       # accidentally link it into a program.
+       # $show "echo timestamp > $libobj"
+       # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+       exit $EXIT_SUCCESS
+      fi
 
-  /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
-  {
-    concat_name = xstrdup (wrapper);
-    if (check_executable(concat_name))
-      return concat_name;
-    XFREE(concat_name);
-  }
-  else
-  {
-#endif
-    if (IS_DIR_SEPARATOR (wrapper[0]))
-    {
-      concat_name = xstrdup (wrapper);
-      if (check_executable(concat_name))
-       return concat_name;
-      XFREE(concat_name);
-    }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  }
-#endif
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+       # Only do commands if we really have different PIC objects.
+       reload_objs="$libobjs $reload_conv_objs"
+       output="$libobj"
+       func_execute_cmds "$reload_cmds" 'exit $?'
+      fi
 
-  for (p = wrapper; *p; p++)
-    if (*p == '/')
-    {
-      has_slash = 1;
-      break;
-    }
-  if (!has_slash)
-  {
-    /* no slashes; search PATH */
-    const char* path = getenv ("PATH");
-    if (path != NULL)
-    {
-      for (p = path; *p; p = p_next)
-      {
-       const char* q;
-       size_t p_len;
-       for (q = p; *q; q++)
-         if (IS_PATH_SEPARATOR(*q))
-           break;
-       p_len = q - p;
-       p_next = (*q == '\0' ? q : q + 1);
-       if (p_len == 0)
-       {
-         /* empty path: current directory */
-         if (getcwd (tmp, LT_PATHMAX) == NULL)
-           lt_fatal ("getcwd failed");
-         tmp_len = strlen(tmp);
-         concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
-         memcpy (concat_name, tmp, tmp_len);
-         concat_name[tmp_len] = '/';
-         strcpy (concat_name + tmp_len + 1, wrapper);
-       }
-       else
-       {
-         concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
-         memcpy (concat_name, p, p_len);
-         concat_name[p_len] = '/';
-         strcpy (concat_name + p_len + 1, wrapper);
-       }
-       if (check_executable(concat_name))
-         return concat_name;
-       XFREE(concat_name);
-      }
-    }
-    /* not found in PATH; assume curdir */
-  }
-  /* Relative path | not found in path: prepend cwd */
-  if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
-  tmp_len = strlen(tmp);
-  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
-  memcpy (concat_name, tmp, tmp_len);
-  concat_name[tmp_len] = '/';
-  strcpy (concat_name + tmp_len + 1, wrapper);
+      if test -n "$gentop"; then
+       func_show_eval '${RM}r "$gentop"'
+      fi
 
-  if (check_executable(concat_name))
-    return concat_name;
-  XFREE(concat_name);
-  return NULL;
-}
+      exit $EXIT_SUCCESS
+      ;;
 
-char *
-strendzap(char *str, const char *pat)
-{
-  size_t len, patlen;
+    prog)
+      case $host in
+       *cygwin*) func_stripname '' '.exe' "$output"
+                 output=$func_stripname_result.exe;;
+      esac
+      test -n "$vinfo" && \
+       func_warning "\`-version-info' is ignored for programs"
 
-  assert(str != NULL);
-  assert(pat != NULL);
+      test -n "$release" && \
+       func_warning "\`-release' is ignored for programs"
 
-  len = strlen(str);
-  patlen = strlen(pat);
+      test "$preload" = yes \
+        && test "$dlopen_support" = unknown \
+       && test "$dlopen_self" = unknown \
+       && test "$dlopen_self_static" = unknown && \
+         func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
 
-  if (patlen <= len)
-  {
-    str += len - patlen;
-    if (strcmp(str, pat) == 0)
-      *str = '\0';
-  }
-  return str;
-}
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+       # On Rhapsody replace the C library is the System framework
+       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+       ;;
+      esac
 
-static void
-lt_error_core (int exit_status, const char * mode,
-         const char * message, va_list ap)
-{
-  fprintf (stderr, "%s: %s: ", program_name, mode);
-  vfprintf (stderr, message, ap);
-  fprintf (stderr, ".\n");
+      case $host in
+      *-*-darwin*)
+       # Don't allow lazy linking, it breaks C++ global constructors
+       # But is supposedly fixed on 10.4 or later (yay!).
+       if test "$tagname" = CXX ; then
+         case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+           10.[0123])
+             compile_command="$compile_command ${wl}-bind_at_load"
+             finalize_command="$finalize_command ${wl}-bind_at_load"
+           ;;
+         esac
+       fi
+       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       ;;
+      esac
 
-  if (exit_status >= 0)
-    exit (exit_status);
-}
 
-void
-lt_fatal (const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
-  va_end (ap);
-}
-EOF
-         # we should really use a build-platform specific compiler
-         # here, but OTOH, the wrappers (shell script and this C one)
-         # are only useful if you want to execute the "real" binary.
-         # Since the "real" binary is built for $host, then this
-         # wrapper might as well be built for $host, too.
-         $opt_dry_run || $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+       case " $new_libs " in
+       *" -L$path/$objdir "*) ;;
+       *)
+         case " $compile_deplibs " in
+         *" -L$path/$objdir "*)
+           new_libs="$new_libs -L$path/$objdir" ;;
+         esac
          ;;
        esac
-       $RM $output
-       trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
-
-       $ECHO > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
+      done
+      for deplib in $compile_deplibs; do
+       case $deplib in
+       -L*)
+         case " $new_libs " in
+         *" $deplib "*) ;;
+         *) new_libs="$new_libs $deplib" ;;
+         esac
+         ;;
+       *) new_libs="$new_libs $deplib" ;;
+       esac
+      done
+      compile_deplibs="$new_libs"
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
 
-# Be Bourne compatible
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
 
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+      if test -n "$rpath$xrpath"; then
+       # If the user specified any rpath flags, then add them.
+       for libdir in $rpath $xrpath; do
+         # This is the magic to use -rpath.
+         case "$finalize_rpath " in
+         *" $libdir "*) ;;
+         *) finalize_rpath="$finalize_rpath $libdir" ;;
+         esac
+       done
+      fi
 
-relink_command=\"$relink_command\"
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+       if test -n "$hardcode_libdir_flag_spec"; then
+         if test -n "$hardcode_libdir_separator"; then
+           if test -z "$hardcode_libdirs"; then
+             hardcode_libdirs="$libdir"
+           else
+             # Just accumulate the unique libdirs.
+             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+               ;;
+             *)
+               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+               ;;
+             esac
+           fi
+         else
+           eval flag=\"$hardcode_libdir_flag_spec\"
+           rpath="$rpath $flag"
+         fi
+       elif test -n "$runpath_var"; then
+         case "$perm_rpath " in
+         *" $libdir "*) ;;
+         *) perm_rpath="$perm_rpath $libdir" ;;
+         esac
+       fi
+       case $host in
+       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+         testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+         case :$dllsearchpath: in
+         *":$libdir:"*) ;;
+         ::) dllsearchpath=$libdir;;
+         *) dllsearchpath="$dllsearchpath:$libdir";;
+         esac
+         case :$dllsearchpath: in
+         *":$testbindir:"*) ;;
+         ::) dllsearchpath=$testbindir;;
+         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         esac
+         ;;
+       esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+        test -n "$hardcode_libdirs"; then
+       libdir="$hardcode_libdirs"
+       eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
 
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variables:
-  generated_by_libtool_version='$macro_version'
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$ECHO are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    ECHO=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$ECHO works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$ECHO will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
-"
-       $ECHO >> $output "\
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+       if test -n "$hardcode_libdir_flag_spec"; then
+         if test -n "$hardcode_libdir_separator"; then
+           if test -z "$hardcode_libdirs"; then
+             hardcode_libdirs="$libdir"
+           else
+             # Just accumulate the unique libdirs.
+             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+               ;;
+             *)
+               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+               ;;
+             esac
+           fi
+         else
+           eval flag=\"$hardcode_libdir_flag_spec\"
+           rpath="$rpath $flag"
+         fi
+       elif test -n "$runpath_var"; then
+         case "$finalize_perm_rpath " in
+         *" $libdir "*) ;;
+         *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+         esac
+       fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+        test -n "$hardcode_libdirs"; then
+       libdir="$hardcode_libdirs"
+       eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
 
-  # Find the directory that this script lives in.
-  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+       # Transform all the library objects into standard objects.
+       compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+       finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
 
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
 
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      # template prelinking step
+      if test -n "$prelink_cmds"; then
+       func_execute_cmds "$prelink_cmds" 'exit $?'
+      fi
+
+      wrappers_required=yes
+      case $host in
+      *cygwin* | *mingw* )
+        if test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      *cegcc)
+        # Disable wrappers for cegcc, we are cross compiling anyway.
+        wrappers_required=no
+        ;;
+      *)
+        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
       esac
-    fi
+      if test "$wrappers_required" = no; then
+       # Replace the output file specification.
+       compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+       link_command="$compile_command$compile_rpath"
 
-    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
-  done
+       # We have no uninstalled library dependencies, so finalize right now.
+       exit_status=0
+       func_show_eval "$link_command" 'exit_status=$?'
 
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
+       # Delete the generated files.
+       if test -f "$output_objdir/${outputname}S.${objext}"; then
+         func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+       fi
 
-       if test "$fast_install" = yes; then
-         $ECHO >> $output "\
-  program=lt-'$outputname'$exeext
-  progdir=\"\$thisdir/$objdir\"
+       exit $exit_status
+      fi
 
-  if test ! -f \"\$progdir/\$program\" ||
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+       compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+       finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
 
-    file=\"\$\$-\$program\"
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+       if test -n "$perm_rpath"; then
+         # We should set the runpath_var.
+         rpath=
+         for dir in $perm_rpath; do
+           rpath="$rpath$dir:"
+         done
+         compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+       fi
+       if test -n "$finalize_perm_rpath"; then
+         # We should set the runpath_var.
+         rpath=
+         for dir in $finalize_perm_rpath; do
+           rpath="$rpath$dir:"
+         done
+         finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+       fi
+      fi
 
-    if test ! -d \"\$progdir\"; then
-      $MKDIR \"\$progdir\"
-    else
-      $RM \"\$progdir/\$file\"
-    fi"
+      if test "$no_install" = yes; then
+       # We don't need to create a wrapper script.
+       link_command="$compile_var$compile_command$compile_rpath"
+       # Replace the output file specification.
+       link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+       # Delete the old output file.
+       $opt_dry_run || $RM $output
+       # Link the executable and exit
+       func_show_eval "$link_command" 'exit $?'
+       exit $EXIT_SUCCESS
+      fi
 
-         $ECHO >> $output "\
+      if test "$hardcode_action" = relink; then
+       # Fast installation is not supported
+       link_command="$compile_var$compile_command$compile_rpath"
+       relink_command="$finalize_var$finalize_command$finalize_rpath"
 
-    # relink executable if necessary
-    if test -n \"\$relink_command\"; then
-      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+       func_warning "this platform does not like uninstalled shared libraries"
+       func_warning "\`$output' will be relinked during installation"
       else
-       $ECHO \"\$relink_command_output\" >&2
-       $RM \"\$progdir/\$file\"
-       exit 1
-      fi
-    fi
-
-    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $RM \"\$progdir/\$program\";
-      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $RM \"\$progdir/\$file\"
-  fi"
+       if test "$fast_install" != no; then
+         link_command="$finalize_var$compile_command$finalize_rpath"
+         if test "$fast_install" = yes; then
+           relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+         else
+           # fast_install is set to needless
+           relink_command=
+         fi
        else
-         $ECHO >> $output "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
+         link_command="$compile_var$compile_command$compile_rpath"
+         relink_command="$finalize_var$finalize_command$finalize_rpath"
        fi
+      fi
 
-       $ECHO >> $output "\
+      # Replace the output file specification.
+      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
-  if test -f \"\$progdir/\$program\"; then"
+      # Delete the old output files.
+      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 
-       # Export our shlibpath_var if we have one.
-       if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-         $ECHO >> $output "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+      func_show_eval "$link_command" 'exit $?'
 
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+      # Now create the wrapper script.
+      func_verbose "creating $output"
 
-    export $shlibpath_var
-"
-       fi
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+       # Preserve any variables that may affect compiler behavior
+       for var in $variables_saved_for_relink; do
+         if eval test -z \"\${$var+set}\"; then
+           relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+         elif eval var_value=\$$var; test -z "$var_value"; then
+           relink_command="$var=; export $var; $relink_command"
+         else
+           func_quote_for_eval "$var_value"
+           relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+         fi
+       done
+       relink_command="(cd `pwd`; $relink_command)"
+       relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      fi
 
-       # fixup the dll searchpath if we need to.
-       if test -n "$dllsearchpath"; then
-         $ECHO >> $output "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-       fi
+      # Quote $ECHO for shipping.
+      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
+       case $progpath in
+       [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+       *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+       esac
+       qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+       qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
+      fi
 
-       $ECHO >> $output "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
+      # Only actually do things if not in dry run mode.
+      $opt_dry_run || {
+       # win32 will think the script is a binary if it has
+       # a .exe suffix, so we strip it off here.
+       case $output in
+         *.exe) func_stripname '' '.exe' "$output"
+                output=$func_stripname_result ;;
+       esac
+       # test for cygwin because mv fails w/o .exe extensions
        case $host in
-       # Backslashes separate directories on plain windows
-       *-*-mingw | *-*-os2*)
-         $ECHO >> $output "\
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
+         *cygwin*)
+           exeext=.exe
+           func_stripname '' '.exe' "$outputname"
+           outputname=$func_stripname_result ;;
+         *) exeext= ;;
+       esac
+       case $host in
+         *cygwin* | *mingw* )
+           func_dirname_and_basename "$output" "" "."
+           output_name=$func_basename_result
+           output_path=$func_dirname_result
+           cwrappersource="$output_path/$objdir/lt-$output_name.c"
+           cwrapper="$output_path/$output_name.exe"
+           $RM $cwrappersource $cwrapper
+           trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+           func_emit_cwrapperexe_src > $cwrappersource
+
+           # The wrapper executable is built using the $host compiler,
+           # because it contains $host paths and files. If cross-
+           # compiling, it, like the target executable, must be
+           # executed on the $host or under an emulation environment.
+           $opt_dry_run || {
+             $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+             $STRIP $cwrapper
+           }
+
+           # Now, create the wrapper script for func_source use:
+           func_ltwrapper_scriptname $cwrapper
+           $RM $func_ltwrapper_scriptname_result
+           trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+           $opt_dry_run || {
+             # note: this script will not be executed, so do not chmod.
+             if test "x$build" = "x$host" ; then
+               $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+             else
+               func_emit_wrapper no > $func_ltwrapper_scriptname_result
+             fi
+           }
          ;;
+         * )
+           $RM $output
+           trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
 
-       *)
-         $ECHO >> $output "\
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
+           func_emit_wrapper no > $output
+           chmod +x $output
          ;;
        esac
-       $ECHO >> $output "\
-      \$ECHO \"\$0: cannot exec \$program \$*\"
-      exit 1
-    fi
-  else
-    # The program doesn't exist.
-    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
-    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
-    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
-  fi
-fi\
-"
-       chmod +x $output
       }
       exit $EXIT_SUCCESS
       ;;
@@ -6940,7 +7943,8 @@ fi\
                # Make sure we don't pick an alternate name that also
                # overlaps.
                newobj=lt$counter-$objbase
-               counter=`expr $counter + 1`
+               func_arith $counter + 1
+               counter=$func_arith_result
                case " $oldobjs " in
                *[\ /]"$newobj "*) ;;
                *) if test ! -f "$gentop/$newobj"; then break; fi ;;
@@ -6955,29 +7959,35 @@ fi\
        fi
        eval cmds=\"$old_archive_cmds\"
 
-       if len=`expr "X$cmds" : ".*" 2>/dev/null` &&
-          test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+       func_len " $cmds"
+       len=$func_len_result
+       if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
          cmds=$old_archive_cmds
        else
          # the command line is too long to link in one step, link in parts
-         func_echo "using piecewise archive linking..."
+         func_verbose "using piecewise archive linking..."
          save_RANLIB=$RANLIB
          RANLIB=:
          objlist=
          concat_cmds=
          save_oldobjs=$oldobjs
+         oldobjs=
          # Is there a better way of finding the last object in the list?
          for obj in $save_oldobjs
          do
            last_oldobj=$obj
          done
+         eval test_cmds=\"$old_archive_cmds\"
+         func_len " $test_cmds"
+         len0=$func_len_result
+         len=$len0
          for obj in $save_oldobjs
          do
-           oldobjs="$objlist $obj"
-           objlist="$objlist $obj"
-           eval test_cmds=\"$old_archive_cmds\"
-           if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-              test "$len" -le "$max_cmd_len"; then
+           func_len " $obj"
+           func_arith $len + $func_len_result
+           len=$func_arith_result
+           func_append objlist " $obj"
+           if test "$len" -lt "$max_cmd_len"; then
              :
            else
              # the above command should be used before it gets too long
@@ -6988,6 +7998,7 @@ fi\
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
              eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
              objlist=
+             len=$len0
            fi
          done
          RANLIB=$save_RANLIB
@@ -7010,7 +8021,7 @@ fi\
     *.la)
       old_library=
       test "$build_old_libs" = yes && old_library="$libname.$libext"
-      func_echo "creating $output"
+      func_verbose "creating $output"
 
       # Preserve any variables that may affect compiler behavior
       for var in $variables_saved_for_relink; do
@@ -7112,7 +8123,7 @@ fi\
          # place dlname in correct position for cygwin
          tdlname=$dlname
          case $host,$output,$installed,$module,$dlname in
-           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
          esac
          $ECHO > $output "\
 # $outputname - a libtool library file
@@ -7311,8 +8322,15 @@ func_mode_uninstall ()
          esac
          # Do a test to see if this is a libtool program.
          if func_ltwrapper_p "$file"; then
-           relink_command=
-           func_source $dir/$noexename
+           if func_ltwrapper_executable_p "$file"; then
+             func_ltwrapper_scriptname "$file"
+             relink_command=
+             func_source $func_ltwrapper_scriptname_result
+             rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+           else
+             relink_command=
+             func_source $dir/$noexename
+           fi
 
            # note $name still contains .exe if it was in $file originally
            # as does the version of $file that was added into $rmfiles
@@ -7385,5 +8403,3 @@ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
 # sh-indentation:2
 # End:
 # vi:sw=2
-
-
diff --git a/libjava/classpath/ltoptions.m4 b/libjava/classpath/ltoptions.m4
new file mode 100644 (file)
index 0000000..34151a3
--- /dev/null
@@ -0,0 +1,368 @@
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+        _LT_MANGLE_DEFUN([$1], [$2]),
+    [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+           [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+                     [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+    [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+  dnl
+  dnl Simply set some default values (i.e off) if boolean options were not
+  dnl specified:
+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+  ])
+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+  ])
+  dnl
+  dnl If no reference was made to various pairs of opposing options, then
+  dnl we run the default mode handler for the pair.  For example, if neither
+  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl archives by default:
+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+                  [_LT_ENABLE_FAST_INSTALL])
+  ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS],      [0], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+       [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_shared=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+       [Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+       [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_static=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+    _LT_DECL([build_old_libs], [enable_static], [0],
+       [Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_fast_install=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+        [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+    [AS_HELP_STRING([--with-pic],
+       [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+
+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+                [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+                [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+                [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+                [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+                [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/libjava/classpath/ltsugar.m4 b/libjava/classpath/ltsugar.m4
new file mode 100644 (file)
index 0000000..9000a05
--- /dev/null
@@ -0,0 +1,123 @@
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+       [$#], [2], [[$2]],
+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+       [$#], 1, [],
+       [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+          m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+            [m4_foreach([_Lt_suffix],
+               ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+       [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+         [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+                [lt_append([$1], [$2], [$3])$4],
+                [$5])],
+         [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+       m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+       [$5],
+    [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+                     [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
diff --git a/libjava/classpath/ltversion.m4 b/libjava/classpath/ltversion.m4
new file mode 100644 (file)
index 0000000..b8e154f
--- /dev/null
@@ -0,0 +1,23 @@
+# ltversion.m4 -- version numbers                      -*- Autoconf -*-
+#
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# Generated from ltversion.in.
+
+# serial 3012 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.2.6])
+m4_define([LT_PACKAGE_REVISION], [1.3012])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.2.6'
+macro_revision='1.3012'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/libjava/classpath/lt~obsolete.m4 b/libjava/classpath/lt~obsolete.m4
new file mode 100644 (file)
index 0000000..637bb20
--- /dev/null
@@ -0,0 +1,92 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 4 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],  [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP],             [AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],        [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT],         [AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],    [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN],           [AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR],             [AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL],    [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN],           [AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER],       [AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK],               [AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],        [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],    [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],    [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR],         [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR],            [AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],  [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC],             [AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU],            [AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],    [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],   [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP],          [AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED],            [AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME],           [AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE],  [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE],    [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL],          [AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP],          [AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN],                [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],     [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG],          [AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL],   [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX],           [AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77],           [AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ],           [AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_RC],             [AC_DEFUN([AC_LIBTOOL_RC])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],  [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG],      [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],    [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG],    [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],    [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG],     [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG],         [AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C],       [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
diff --git a/libjava/classpath/m4/ac_prog_antlr.m4 b/libjava/classpath/m4/ac_prog_antlr.m4
new file mode 100644 (file)
index 0000000..e2c1078
--- /dev/null
@@ -0,0 +1,46 @@
+
+AC_DEFUN([AC_LIB_ANTLR],[
+  AC_MSG_CHECKING([for the ANTLR parser generator JAR file])
+  if test -z "$ANTLR_JAR"; then
+    for antlr_lib_home in `ls -d /usr/local/share/antlr* 2> /dev/null` \
+       /usr/share/antlr/lib /usr/share/java /usr/lib;
+       do
+           if test -f "$antlr_lib_home/antlr.jar"; then
+             ANTLR_JAR="$antlr_lib_home/antlr.jar"
+             break
+           fi
+     done
+  fi
+  test -f $ANTLR_JAR || AC_MSG_ERROR([specified ANTLR jar file $ANTLR_JAR not found.]) \
+        && AC_MSG_RESULT([$ANTLR_JAR])
+  AC_SUBST(ANTLR_JAR)
+  AC_PROVIDE([$0])dnl
+])
+
+AC_DEFUN([AC_PROG_ANTLR],[
+  AC_REQUIRE([AC_PROG_JAVA])dnl
+  AC_CHECK_TOOLS([ANTLR], [cantlr runantlr antlr])
+  if test "x$ANTLR" = x; then
+      if test -z "$JAVA"; then
+        AC_MSG_ERROR(Failed to find either an antlr binary or a suitable Java runtime for ANTLR.)
+      else
+        ANTLR="$JAVA -classpath $ANTLR_JAR antlr.Tool"
+      fi
+  fi
+  AC_SUBST(ANTLR)
+  AC_MSG_CHECKING([for antlr $1.$2.$3 or better])
+  antlr_version_str=`$ANTLR 2>&1 | head -n 1 | sed '/.*Version */!d; s///;q'`
+  if test "$antlr_version_str"; then
+    antlr_version_regex='s/\([[[:digit:]]]\+\)\.\([[[:digit:]]]\+\)\.\([[[:digit:]]]\+\).*$/'
+    antlr_version_major=`echo $antlr_version_str | sed "$antlr_version_regex\\1/"`
+    antlr_version_minor=`echo $antlr_version_str | sed "$antlr_version_regex\\2/"`
+    antlr_version_micro=`echo $antlr_version_str | sed "$antlr_version_regex\\3/"`
+    (test $antlr_version_major -gt $1 || \
+    (test $antlr_version_major -eq $1 && \
+     test $antlr_version_minor -gt $2) || \
+    (test $antlr_version_major -eq $1 && \
+     test $antlr_version_minor -eq $2 && \
+     test $antlr_version_micro -ge $3))
+  fi
+  AC_MSG_RESULT($antlr_version_major.$antlr_version_minor.$antlr_version_micro)
+])
diff --git a/libjava/classpath/m4/ac_prog_java.m4 b/libjava/classpath/m4/ac_prog_java.m4
new file mode 100644 (file)
index 0000000..356d99d
--- /dev/null
@@ -0,0 +1,17 @@
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_prog_java.html
+dnl
+dnl Changes for gjdoc: check for "kaffe, gij, java", not only "kaffe, java"
+dnl Changes for GNU Classpath: check for "cacao, jamvm" as well
+dnl
+AC_DEFUN([AC_PROG_JAVA],[
+AC_REQUIRE([AC_EXEEXT])dnl
+if test "x$JAVAPREFIX" = x; then
+        test "x$JAVA" = x && AC_CHECK_PROGS(JAVA, cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT)
+else
+        test "x$JAVA" = x && AC_CHECK_PROGS(JAVA, cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT, $JAVAPREFIX)
+fi
+test "x$JAVA" = x && AC_MSG_ERROR([no acceptable Java virtual machine found in \$PATH])
+AC_PROG_JAVA_WORKS
+AC_PROVIDE([$0])dnl
+])
diff --git a/libjava/classpath/m4/ac_prog_java_works.m4 b/libjava/classpath/m4/ac_prog_java_works.m4
new file mode 100644 (file)
index 0000000..ffde1ff
--- /dev/null
@@ -0,0 +1,109 @@
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_prog_java_works.html
+dnl
+AC_DEFUN([AC_PROG_JAVA_WORKS], [
+AC_CHECK_PROG(uudecode, uudecode$EXEEXT, yes)
+if test x$uudecode = xyes; then
+AC_CACHE_CHECK([if uudecode can decode base 64 file], ac_cv_prog_uudecode_base64, [
+dnl /**
+dnl  * Test.java: used to test if java compiler works.
+dnl  */
+dnl public class Test
+dnl {
+dnl
+dnl public static void
+dnl main( String[] argv )
+dnl {
+dnl     System.exit (0);
+dnl }
+dnl
+dnl }
+cat << \EOF > Test.uue
+begin-base64 644 Test.class
+yv66vgADAC0AFQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE
+bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51
+bWJlclRhYmxlDAAKAAsBAARleGl0AQAEKEkpVgoADQAJBwAOAQAQamF2YS9s
+YW5nL1N5c3RlbQEABjxpbml0PgEAAygpVgwADwAQCgADABEBAApTb3VyY2VG
+aWxlAQAJVGVzdC5qYXZhACEAAQADAAAAAAACAAkABQAGAAEABwAAACEAAQAB
+AAAABQO4AAyxAAAAAQAIAAAACgACAAAACgAEAAsAAQAPABAAAQAHAAAAIQAB
+AAEAAAAFKrcAErEAAAABAAgAAAAKAAIAAAAEAAQABAABABMAAAACABQ=
+====
+EOF
+if uudecode$EXEEXT Test.uue; then
+        ac_cv_prog_uudecode_base64=yes
+else
+        echo "configure: __oline__: uudecode had trouble decoding base 64 file 'Test.uue'" >&AC_FD_CC
+        echo "configure: failed file was:" >&AC_FD_CC
+        cat Test.uue >&AC_FD_CC
+        ac_cv_prog_uudecode_base64=no
+fi
+rm -f Test.uue])
+fi
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+        rm -f Test.class
+        AC_MSG_WARN([I have to compile Test.class from scratch])
+        if test x$ac_cv_prog_javac_works = xno; then
+                AC_MSG_ERROR([Cannot compile java source. $JAVAC does not work properly])
+        fi
+        if test x$ac_cv_prog_javac_works = x; then
+                AC_PROG_JAVAC
+        fi
+fi
+AC_CACHE_CHECK(if $JAVA works, ac_cv_prog_java_works, [
+JAVA_TEST=Test.java
+CLASS_TEST=Test.class
+TEST=Test
+changequote(, )dnl
+cat << \EOF > $JAVA_TEST
+/* [#]line __oline__ "configure" */
+public class Test {
+public static void main (String args[]) {
+        System.exit (0);
+} }
+EOF
+changequote([, ])dnl
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+        if AC_TRY_COMMAND($JAVAC $JAVACFLAGS $JAVA_TEST) && test -s $CLASS_TEST; then
+                :
+        else
+          echo "configure: failed program was:" >&AC_FD_CC
+          cat $JAVA_TEST >&AC_FD_CC
+          AC_MSG_ERROR(The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?))
+        fi
+fi
+if AC_TRY_COMMAND(CLASSPATH=.:$CLASSPATH $JAVA $JAVAFLAGS $TEST) >/dev/null 2>&1; then
+  ac_cv_prog_java_works=yes
+else
+  echo "configure: failed program was:" >&AC_FD_CC
+  cat $JAVA_TEST >&AC_FD_CC
+  AC_MSG_ERROR(The Java VM $JAVA failed (see config.log, check the CLASSPATH?))
+fi
+rm -fr $JAVA_TEST $CLASS_TEST Test.uue
+])
+AC_PROVIDE([$0])dnl
+]
+)
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_try_compile_java.html
+dnl
+AC_DEFUN([AC_TRY_COMPILE_JAVA],[
+AC_REQUIRE([AC_PROG_JAVAC])dnl
+cat << \EOF > Test.java
+/* [#]line __oline__ "configure" */
+ifelse([$1], , , [import $1;])
+public class Test {
+[$2]
+}
+EOF
+if AC_TRY_COMMAND($JAVAC $JAVACFLAGS Test.java) && test -s Test.class
+then
+dnl Don't remove the temporary files here, so they can be examined.
+  ifelse([$3], , :, [$3])
+else
+  echo "configure: failed program was:" >&AC_FD_CC
+  cat Test.java >&AC_FD_CC
+ifelse([$4], , , [  rm -fr Test*
+  $4
+])dnl
+fi
+rm -fr Test*])
index 869c1942f2ce6adc1cd1899f07d79d7a47736b31..0c505dae8407989be490866cb5f71c9fa08e31c0 100644 (file)
@@ -36,12 +36,22 @@ dnl Modified to remove jikes by Andrew John Hughes on 2008-02-11
 
 AC_DEFUN([AC_PROG_JAVAC],[
 AC_REQUIRE([AC_EXEEXT])dnl
+ECJ_OPTS="-warn:-deprecation,serial,unusedImport"
+JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
+GCJ_OPTS="-g"
 if test "x$JAVAPREFIX" = x; then
-        test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport"] ["javac$EXEEXT -Xlint:unchecked"] "gcj$EXEEXT -C")
+        test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT $ECJ_OPTS"] ["ecj-3.3$EXEEXT $ECJ_OPTS"] ["ecj-3.2$EXEEXT $ECJ_OPTS"] ["javac$EXEEXT $JAVAC_OPTS"] "gcj$EXEEXT -C")
 else
-        test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport"] ["javac$EXEEXT -Xlint:unchecked"] "gcj$EXEEXT -C", $JAVAPREFIX)
+        test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT $ECJ_OPTS"] ["ecj-3.3$EXEEXT $ECJ_OPTS"] ["ecj-3.2$EXEEXT $ECJ_OPTS"] ["javac$EXEEXT $JAVAC_OPTS"] "gcj$EXEEXT -C", $JAVAPREFIX)
 fi
 test "x$JAVAC" = x && AC_MSG_ERROR([no acceptable Java compiler found in \$PATH])
+AC_CACHE_CHECK([if $JAVAC is a version of gcj], ac_cv_prog_javac_is_gcj, [
+if $JAVAC --version | grep gcj > /dev/null; then
+  ac_cv_prog_javac_is_gcj=yes;
+  JAVAC="$JAVAC $GCJ_OPTS";
+fi])
+AC_SUBST(JAVAC_IS_GCJ, $ac_cv_prog_javac_is_gcj)
+AM_CONDITIONAL(GCJ_JAVAC, test x"${JAVAC_IS_GCJ}" = xyes)
 dnl GCJ LOCAL
 if test "$enable_java_maintainer_mode" = yes; then
 AC_PROG_JAVAC_WORKS
index 827ecc9bbdf7e41f42eaf298217aaca77d79619b..a03f476e3f88ad880a3f9fc15c380d55975cf990 100644 (file)
@@ -31,8 +31,12 @@ public class Object
   }
 }
 EOF
-dnl GCJ LOCAL: don't call JAVAC with $JAVACFLAGS -source 1.5 -target 1.5
-if AC_TRY_COMMAND($JAVAC $JAVA_TEST) >/dev/null 2>&1; then
+if test x$JAVAC_IS_GCJ = xyes; then
+  CMD="$JAVAC $JAVACFLAGS -fsource=1.5 -ftarget=1.5 $JAVA_TEST"
+else
+  CMD="$JAVAC $JAVACFLAGS -source 1.5 -target 1.5 $JAVA_TEST"
+fi
+if AC_TRY_COMMAND($CMD) >/dev/null 2>&1; then
   ac_cv_prog_javac_works=yes
 else
   AC_MSG_ERROR([The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)])
index 9f98f1c37f6c817979648ca0123bc6732b297d16..65cb8fc4769f84fbb85c86d50a5f04da0225c409 100644 (file)
@@ -55,18 +55,45 @@ dnl -----------------------------------------------------------
 AC_DEFUN([CLASSPATH_WITH_GLIBJ],
 [
   AC_PATH_PROG(ZIP, zip)
-  AC_ARG_WITH([fastjar],
-             [AS_HELP_STRING([--with-fastjar=PATH], [define to use a fastjar style tool])],
+
+  AC_MSG_CHECKING(for a jar-like tool)
+  AC_ARG_WITH([jar],
+             [AS_HELP_STRING([--with-jar=PATH], [define to use a jar style tool])],
              [
-               AC_MSG_CHECKING([for user supplied fastjar])
-               FASTJAR=${withval}
-               AC_MSG_RESULT([${FASTJAR}])
-             ],
-             [AC_PATH_PROGS([FASTJAR], [fastjar gjar jar])])
-dnl We disable ZIP by default if we find fastjar.
-  if test x"${FASTJAR}" != x; then
-    ZIP=""
+               case "${withval}" in
+                 yes)
+                   JAR=yes
+                   ;;
+                 no)
+                   JAR=no
+                   AC_MSG_RESULT(${JAR})
+                   ;;
+                 *)
+                   if test -f "${withval}"; then
+                     JAR="${withval}"
+                     AC_MSG_RESULT(${JAR})
+                   else
+                     AC_MSG_RESULT([not found])
+                     AC_MSG_ERROR([The jar tool ${withval} was not found.])
+                   fi
+                   ;;
+               esac
+             ],
+             [
+               JAR=yes
+             ])
+  if test x"${JAR}" = "xyes"; then
+    AC_MSG_RESULT([trying fastjar, gjar and jar])
+    AC_PATH_PROGS([JAR], [fastjar gjar jar])
+    if test x"${RHINO_JAR}" = "xyes"; then
+      AC_MSG_RESULT([not found])
+    fi
+  fi
+  if test x"${JAR}" = "xno" && test x"${ZIP}" = ""; then
+    AC_MSG_ERROR([No zip or jar tool found.])
   fi
+  AM_CONDITIONAL(WITH_JAR, test x"${JAR}" != "xno" && test x"${JAR}" != "xyes")
+  AC_SUBST(JAR)
   
   AC_ARG_WITH([glibj],
               [AS_HELP_STRING([--with-glibj],[define what to install (zip|flat|both|none|build) [default=zip]])],
@@ -111,7 +138,7 @@ dnl We disable ZIP by default if we find fastjar.
                  *) AC_MSG_ERROR(bad value ${enableval} for --enable-examples) ;;
                esac],
                [EXAMPLESDIR="examples"])
-  if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
+  if test "x${build_class_files}" = xno; then
     EXAMPLESDIR=""
   fi
   AC_SUBST(EXAMPLESDIR)
@@ -124,7 +151,7 @@ dnl We disable ZIP by default if we find fastjar.
                  *) AC_MSG_ERROR(bad value ${enableval} for --enable-tools) ;;
                esac],
                [TOOLSDIR="tools"])
-  if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
+  if test "x${build_class_files}" = xno; then
     TOOLSDIR=""
   fi
   AC_SUBST(TOOLSDIR)
@@ -155,8 +182,17 @@ AC_DEFUN([CLASSPATH_WITH_GJDOC],
                               AC_MSG_ERROR("Cannot use ${withval} as gjdoc executable since it doesn't exist"))
               fi],
               [WITH_GJDOC=no])
-
   AM_CONDITIONAL(CREATE_API_DOCS, test "x${WITH_GJDOC}" = xyes)
+  if test "x${WITH_GJDOC}" = xyes; then
+    AC_MSG_CHECKING([version of GJDoc])
+    gjdoc_version=$(${GJDOC} --version|cut -d ' ' -f2)
+    AC_MSG_RESULT(${gjdoc_version})
+    case ${gjdoc_version} in
+      0.7.9) ;;
+      0.8*) ;;
+      *) AC_MSG_ERROR([Building documentation requires GJDoc >= 0.7.9, ${gjdoc_version} found.]) ;;
+    esac
+  fi
 ])
 
 dnl -----------------------------------------------------------
@@ -234,14 +270,16 @@ AC_DEFUN([CLASSPATH_JAVAC_MEM_CHECK],
     }
   }
 EOF
-  AC_MSG_CHECKING([whether javac supports -J])
-  $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST
-  javac_result=$?
-  if test "x$javac_result" = "x0"; then
-    AC_MSG_RESULT([yes])
-    JAVAC_MEM_OPT="-J-Xmx768M"
-  else
-    AC_MSG_RESULT([no])
+  if test x$JAVAC_IS_GCJ != xyes; then
+    AC_MSG_CHECKING([whether javac supports -J])
+    $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST
+    javac_result=$?
+    if test "x$javac_result" = "x0"; then
+      AC_MSG_RESULT([yes])
+      JAVAC_MEM_OPT="-J-Xmx768M"
+    else
+      AC_MSG_RESULT([no])
+    fi
   fi
   rm -f $JAVA_TEST $CLASS_TEST
   AC_SUBST(JAVAC_MEM_OPT)
index eb88748da7c0d7693322f85401c6a2c888a0d046..ea9806ef842c0b2ccb23dcfb466d531f97a922a1 100644 (file)
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -80,6 +83,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -111,6 +116,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -149,11 +160,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -163,6 +175,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -184,7 +198,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -250,8 +267,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -262,6 +281,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -321,6 +341,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 @CREATE_JNI_LIBRARIES_TRUE@JNIDIR = jni
 @CREATE_GTK_PEER_LIBRARIES_TRUE@JAWTDIR = jawt
index 172fbed6419e11746d84c70c2d9e3f2f3d6e7f8b..1fad8ebb536593b38ad9126ed730b1de084ae3f3 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -99,6 +102,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -130,6 +135,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -168,11 +179,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -182,6 +194,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -203,7 +217,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -269,8 +286,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -281,6 +300,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -340,6 +360,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 noinst_LTLIBRARIES = libfdlibm.la 
 libfdlibm_la_SOURCES = \
index fbbed4e584b31dcb9dff25a645a7411ffcab97e9..705405ddb7171c59c502c215915adbfdb5c48d7a 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -99,6 +102,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -130,6 +135,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -168,11 +179,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -182,6 +194,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -203,7 +217,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -269,8 +286,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -281,6 +300,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -340,6 +360,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libjawt.la
 libjawt_la_SOURCES = jawt.c
index f37e738648011d15175c9faeeeb7a1abea5c47ab..e8db33214a1772fee481073be48e4029ef186940 100644 (file)
@@ -32,10 +32,14 @@ if CREATE_XMLJ_LIBRARY
   XMLJDIR = xmlj
 endif
 
+if CREATE_GMPBI_LIBRARY
+  GMPDIR = java-math
+endif
+
 SUBDIRS = classpath $(JNIDIRS) \
   $(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR) \
-  $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR)
-DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
+  $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR) $(GMPDIR)
+DIST_SUBDIRS = classpath java-io java-lang java-math java-net java-nio java-util \
                gtk-peer gconf-peer gstreamer-peer qt-peer xmlj midi-alsa \
                midi-dssi native-lib
 
index f2aa08e212d20560020b1e3bb5ee6c83003fd5b4..3d373775bf6929a5c7a168c5c38f948b6684c85c 100644 (file)
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -80,6 +83,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -111,6 +116,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -149,11 +160,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -163,6 +175,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -184,7 +198,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -250,8 +267,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -262,6 +281,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -321,6 +341,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 @CREATE_CORE_JNI_LIBRARIES_TRUE@JNIDIRS = native-lib java-io java-lang java-net java-nio java-util
 @CREATE_ALSA_LIBRARIES_TRUE@ALSADIR = midi-alsa
@@ -330,11 +351,12 @@ vm_classes = @vm_classes@
 @CREATE_GCONF_PEER_LIBRARIES_TRUE@CLASSPATH_GCONF_PEER_DIR = gconf-peer
 @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@CLASSPATH_GSTREAMER_PEER_DIR = gstreamer-peer
 @CREATE_XMLJ_LIBRARY_TRUE@XMLJDIR = xmlj
+@CREATE_GMPBI_LIBRARY_TRUE@GMPDIR = java-math
 SUBDIRS = classpath $(JNIDIRS) \
   $(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR) \
-  $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR)
+  $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR) $(GMPDIR)
 
-DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
+DIST_SUBDIRS = classpath java-io java-lang java-math java-net java-nio java-util \
                gtk-peer gconf-peer gstreamer-peer qt-peer xmlj midi-alsa \
                midi-dssi native-lib
 
index 9aee63fa01afcbf73c989f40cb2593b6aedd5b04..a2a5b0a136e2a2067c72524e5acfdb2b5bc90411 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -90,6 +93,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -121,6 +126,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -159,11 +170,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -173,6 +185,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -194,7 +208,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -260,8 +277,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -272,6 +291,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -331,6 +351,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 
 # Header needed for jawt implementations such as the one found in ../gtk-peer.
index 42986c33a89344cd974e8b226bdd501ef8dfe302..3564f9b69ce956f1b19ad5614bcf000f5a983dd1 100644 (file)
@@ -55,8 +55,8 @@
 /** Reference count */
 static int reference_count = 0;
 
-/** GConfClient backend */
-static GConfClient *client = NULL;
+/** GConfEngine backend */
+static GConfEngine *engine = NULL;
 
 /** java.util.ArrayList class */
 static jclass jlist_class = NULL;
@@ -70,12 +70,10 @@ static jmethodID jlist_add_id = NULL;
 /* ***** PRIVATE FUNCTIONS DELCARATION ***** */
 
 /**
- * Gets the reference of the default GConfClient and initialize the
- * the type system.
+ * Gets the reference of the default GConfEngine..
  * The client reference should be released with g_object_unref after use.
- * This functions must be called with gdk lock held.
  */
-static void init_gconf_client (void);
+static void init_gconf (void);
 
 /**
  * Throws a new runtime exception after a failure, with the given message.
@@ -133,16 +131,14 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache
 {
   reference_count++;
 
-  gdk_threads_enter ();
-  init_gconf_client ();
-  gdk_threads_leave ();
+  init_gconf ();
 
-  /* if client is null, there is probably an out of memory */
-  if (client == NULL)
+  /* if engine is null, there is probably an out of memory */
+  if (engine == NULL)
     {
       /* release the string and throw a runtime exception */
       throw_exception (env,
-               "Unable to initialize GConfClient in native code\n");
+               "Unable to initialize GConfEngine in native code\n");
       return;
     }
 
@@ -157,11 +153,11 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache
 
 /*
  * Class:     gnu_java_util_prefs_gconf_GConfNativePeer
- * Method:    gconf_client_all_keys
+ * Method:    gconf_all_keys
  * Signature: (Ljava/lang/String;)Ljava/util/List;
  */
 JNIEXPORT jobject JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1all_1keys
   (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
 {
   /* TODO: check all the calls to gdk_threads_enter/leave */
@@ -183,9 +179,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys
       return NULL;
     }
 
-  gdk_threads_enter ();
-  entries = gconf_client_all_entries (client, dir, &err);
-  gdk_threads_leave ();
+  entries = gconf_engine_all_entries (engine, dir, &err);
   if (err != NULL)
     {
       throw_exception_by_name (env, "java/util/prefs/BackingStoreException",
@@ -235,11 +229,11 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys
 
 /*
  * Class:     gnu_java_util_prefs_gconf_GConfNativePeer
- * Method:    gconf_client_all_nodes
+ * Method:    gconf_all_nodes
  * Signature: (Ljava/lang/String;)Ljava/util/List;
  */
 JNIEXPORT jobject JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1all_1nodes
   (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
 {
   const char *dir = NULL;
@@ -259,9 +253,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes
       return NULL;
     }
 
-  gdk_threads_enter ();
-  entries = gconf_client_all_dirs (client, dir, &err);
-  gdk_threads_leave ();
+  entries = gconf_engine_all_dirs (engine, dir, &err);
   if (err != NULL)
     {
       throw_exception_by_name (env, "java/util/prefs/BackingStoreException",
@@ -311,18 +303,16 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes
 
 /*
  * Class:     gnu_java_util_prefs_gconf_GConfNativePeer
- * Method:    gconf_client_suggest_sync
+ * Method:    gconf_suggest_sync
  * Signature: ()V
  */
 JNIEXPORT void JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1suggest_1sync
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1suggest_1sync
   (JNIEnv *env, jclass clazz __attribute__ ((unused)))
 {
   GError *err = NULL;
 
-  gdk_threads_enter ();
-  gconf_client_suggest_sync (client, &err);
-  gdk_threads_leave ();
+  gconf_engine_suggest_sync (engine, &err);
   if (err != NULL)
     {
       throw_exception_by_name (env, "java/util/prefs/BackingStoreException",
@@ -334,11 +324,11 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1suggest_1sync
 
 /*
  * Class:     gnu_java_util_prefs_gconf_GConfNativePeer
- * Method:    gconf_client_unset
+ * Method:    gconf_unset
  * Signature: (Ljava/lang/String;)Z
  */
 JNIEXPORT jboolean JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unset
   (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring key)
 {
   const char *_key = NULL;
@@ -351,9 +341,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset
       return JNI_FALSE;
     }
 
-  gdk_threads_enter ();
-  result = gconf_client_unset (client, _key, &err);
-  gdk_threads_leave ();
+  result = gconf_engine_unset (engine, _key, &err);
   if (err != NULL)
     {
       result = JNI_FALSE;
@@ -368,11 +356,11 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset
 
 /*
  * Class:     gnu_java_util_prefs_gconf_GConfNativePeer
- * Method:    gconf_client_get_string
+ * Method:    gconf_get_string
  * Signature: (Ljava/lang/String;)Ljava/lang/String;
  */
 JNIEXPORT jstring JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1get_1string
   (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring key)
 {
   const char *_key = NULL;
@@ -386,9 +374,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string
       return NULL;
     }
 
-  gdk_threads_enter ();
-  _value = gconf_client_get_string (client, _key, &err);
-  gdk_threads_leave ();
+  _value = gconf_engine_get_string (engine, _key, &err);
   JCL_free_cstring (env, key, _key);
   if (err != NULL)
     {
@@ -407,17 +393,19 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string
       result = (*env)->NewStringUTF (env, _value);
       g_free ((gpointer) _value);
     }
-
+  
+  gconf_engine_suggest_sync (engine, NULL);
+  
   return result;
 }
 
 /*
  * Class:     gnu_java_util_prefs_gconf_GConfNativePeer
- * Method:    gconf_client_set_string
+ * Method:    gconf_set_string
  * Signature: (Ljava/lang/String;Ljava/lang/String;)Z
  */
 JNIEXPORT jboolean JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1set_1string
   (JNIEnv *env, jclass clazz __attribute__ ((unused)),
    jstring key, jstring value)
 {
@@ -435,9 +423,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string
       return JNI_FALSE;
     }
 
-  gdk_threads_enter ();
-  result = gconf_client_set_string (client, _key, _value, &err);
-  gdk_threads_leave ();
+  result = gconf_engine_set_string (engine, _key, _value, &err);
   if (err != NULL)
        {
       g_error_free (err);
@@ -453,56 +439,11 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string
 
 /*
  * Class:     gnu_java_util_prefs_gconf_GConfNativePeer
- * Method:    gconf_client_remove_dir
- * Signature: (Ljava/lang/String;)V
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1remove_1dir
-  (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
-{
-  const char *dir = NULL;
-
-  dir = JCL_jstring_to_cstring (env, node);
-  if (dir == NULL)
-    return;
-
-  gdk_threads_enter ();
-  gconf_client_remove_dir (client, dir, NULL);
-  gdk_threads_leave ();
-
-  JCL_free_cstring (env, node, dir);
-}
-
-/*
- * Class:     gnu_java_util_prefs_gconf_GConfNativePeer
- * Method:    gconf_client_add_dir
- * Signature: (Ljava/lang/String;)V
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1add_1dir
-  (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
-{
-  const char *dir = NULL;
-
-  dir = JCL_jstring_to_cstring (env, node);
-  if (dir == NULL)
-    return;
-
-  /* ignore errors */
-  gdk_threads_enter ();
-  gconf_client_add_dir (client, dir, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
-  gdk_threads_leave ();
-
-  JCL_free_cstring (env, node, dir);
-}
-
-/*
- * Class:     gnu_java_util_prefs_gconf_GConfNativePeer
- * Method:    gconf_client_dir_exists
+ * Method:    gconf_dir_exists
  * Signature: (Ljava/lang/String;)Z
  */
 JNIEXPORT jboolean JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1dir_1exists
   (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
 {
   const char *dir = NULL;
@@ -514,9 +455,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists
     return value;
 
   /* on error return false */
-  gdk_threads_enter ();
-  value = gconf_client_dir_exists (client, dir, &err);
-  gdk_threads_leave ();
+  value = gconf_engine_dir_exists (engine, dir, &err);
   if (err != NULL)
     value = JNI_FALSE;
 
@@ -537,10 +476,8 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class
   if (reference_count == 0)
     {
       /* last reference, free all resources and return */
-      gdk_threads_enter ();
-      g_object_unref (G_OBJECT (client));
-      gdk_threads_leave ();
-
+      g_object_unref (G_OBJECT (engine));
+      
       (*env)->DeleteGlobalRef (env, jlist_class);
 
       jlist_class = NULL;
@@ -572,9 +509,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key
       return NULL;
     }
 
-  gdk_threads_enter ();
   escaped = gconf_escape_key (_plain, strlen (_plain));
-  gdk_threads_leave ();
   
   JCL_free_cstring (env, plain, _plain);
   /* check for NULL, if so prevent string creation */
@@ -606,9 +541,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key
       return NULL;
     }
 
-  gdk_threads_enter ();
   plain = gconf_unescape_key (_escaped, strlen (_escaped));
-  gdk_threads_leave ();
   
   JCL_free_cstring (env, escaped, _escaped);
   /* check for NULL, if so prevent string creation */
@@ -636,10 +569,9 @@ throw_exception_by_name (JNIEnv *env, const char *name, const char *msg)
   JCL_ThrowException (env, name, msg);
 }
 
-static void init_gconf_client (void)
+static void init_gconf (void)
 {
-  g_type_init ();
-  client = gconf_client_get_default ();
+  engine = gconf_engine_get_default ();
 }
 
 static gboolean set_jlist_class (JNIEnv *env)
index 26b2b22dd06d986124d0d708662d4f39f071f1ec..d3163e7628a0e6565970d31061106fb28b27aae4 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -99,6 +102,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -130,6 +135,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -168,11 +179,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -182,6 +194,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -203,7 +217,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -269,8 +286,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -281,6 +300,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -340,6 +360,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libgconfpeer.la
 libgconfpeer_la_SOURCES = GConfNativePeer.c
index cecf1ffcb04cb952321597a90f63188b11ee6955..3a576a208c8134c1b9cf9d6128f0649028b6adb4 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -101,6 +104,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -132,6 +137,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -170,11 +181,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -184,6 +196,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -205,7 +219,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -271,8 +288,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -283,6 +302,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -342,6 +362,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libgstreamerpeer.la
 libgstreamerpeer_la_SOURCES = gst_peer.c \
index 3e32568974676c6a5328f57285d0ba32a6cb846b..e0caa4775e3d5a5b27d566f313c03d96332a3a15 100644 (file)
@@ -509,7 +509,7 @@ static jint get_free_space (int fd)
 
   result = GST_DETECTED_PIPE_CAPACITY - result;
   
-#elif
+#else
    g_warning("IMPLEMENT ME!!! - !defined (FIONSPACE), !defined (FIONREAD");
  
 #endif
index 56d8b80f20868ded0c1fe8f7abcf7dc60667bae0..1941b4e0d5b6d71aa7d3463dc3a3dce6a8c6d218 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -137,6 +140,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -168,6 +173,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -206,11 +217,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -220,6 +232,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -241,7 +255,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -307,8 +324,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -319,6 +338,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -378,6 +398,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libgtkpeer.la
 
index 6e49428f40385aeb54c58825c57d37490bb30daf..8423de836bbf29c901295783125b9f46bc5d0531 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -101,6 +104,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -132,6 +137,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -170,11 +181,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -184,6 +196,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -205,7 +219,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -271,8 +288,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -283,6 +302,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -342,6 +362,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libjavaio.la 
 libjavaio_la_SOURCES = java_io_VMFile.c \
index e79704fa6729c212c2313d4724ff0e7ae2312e79..a15cec769eee8dc4171995dfdaeaed0bfc8d9c1c 100644 (file)
@@ -97,7 +97,7 @@ Java_java_io_VMFile_create (JNIEnv * env,
   if (result != CPNATIVE_OK)
     {
       if (result != EEXIST)
-       JCL_ThrowException (env,
+        JCL_ThrowException (env,
                            "java/io/IOException",
                            cpnative_getErrorString (result));
       JCL_free_cstring (env, name, filename);
@@ -124,12 +124,11 @@ Java_java_io_VMFile_create (JNIEnv * env,
 
 JNIEXPORT jboolean JNICALL
 Java_java_io_VMFile_canRead (JNIEnv * env,
-                            jobject obj __attribute__ ((__unused__)),
-                            jstring name)
+                             jclass clazz __attribute__ ((__unused__)),
+                             jstring name)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *filename;
-  int fd;
   int result;
 
   /* Don't use the JCL convert function because it throws an exception
@@ -137,20 +136,18 @@ Java_java_io_VMFile_canRead (JNIEnv * env,
   filename = (*env)->GetStringUTFChars (env, name, 0);
   if (filename == NULL)
     {
-      return 0;
+      return JNI_FALSE;
     }
 
-  /* The lazy man's way out.  We actually do open the file for reading
-     briefly to verify it can be done */
-  result = cpio_openFile (filename, &fd, CPFILE_FLAG_READ, 0);
+  result = cpio_checkAccess (filename, CPFILE_FLAG_READ);
+  
   (*env)->ReleaseStringUTFChars (env, name, filename);
   if (result != CPNATIVE_OK)
-    return 0;
-  cpio_closeFile (fd);
+    return JNI_FALSE;
 
-  return 1;
+  return JNI_TRUE;
 #else /* not WITHOUT_FILESYSTEM */
-  return 0;
+  return JNI_FALSE;
 #endif /* not WITHOUT_FILESYSTEM */
 }
 
@@ -166,12 +163,11 @@ Java_java_io_VMFile_canRead (JNIEnv * env,
 
 JNIEXPORT jboolean JNICALL
 Java_java_io_VMFile_canWrite (JNIEnv * env,
-                             jobject obj __attribute__ ((__unused__)),
-                             jstring name)
+                              jclass clazz __attribute__ ((__unused__)),
+                              jstring name)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *filename;
-  int fd;
   int result;
 
   /* Don't use the JCL convert function because it throws an exception
@@ -179,27 +175,34 @@ Java_java_io_VMFile_canWrite (JNIEnv * env,
   filename = (*env)->GetStringUTFChars (env, name, 0);
   if (filename == NULL)
     {
-      return 0;
+      return JNI_FALSE;
     }
 
-  /* The lazy man's way out.  We actually do open the file for writing
-     briefly to verify it can be done */
-  result = cpio_openFile (filename, &fd, CPFILE_FLAG_READWRITE, 0);
+  result = cpio_checkAccess (filename, CPFILE_FLAG_WRITE);
+  
   (*env)->ReleaseStringUTFChars (env, name, filename);
   if (result != CPNATIVE_OK)
     {
-      return 0;
+      return JNI_FALSE;
     }
-  cpio_closeFile (fd);
 
-  return 1;
+  return JNI_TRUE;
 #else /* not WITHOUT_FILESYSTEM */
-  return 0;
+  return JNI_FALSE;
 #endif /* not WITHOUT_FILESYSTEM */
 }
 
 /*************************************************************************/
 
+JNIEXPORT jboolean JNICALL
+Java_java_io_VMFile_canWriteDirectory (JNIEnv *env, jclass clazz, jstring path)
+{
+  /* this is only valid on *nix systems  */
+  return Java_java_io_VMFile_canWrite(env, clazz, path);
+}
+
+/*************************************************************************/
+
 /*
  * This method checks to see if we have execute permission on a file.
  *
@@ -250,8 +253,8 @@ Java_java_io_VMFile_canExecute (JNIEnv * env,
 
 JNIEXPORT jboolean JNICALL
 Java_java_io_VMFile_setReadOnly (JNIEnv * env,
-                                jobject obj __attribute__ ((__unused__)),
-                                jstring name)
+                                 jclass clazz __attribute__ ((__unused__)),
+                                 jstring name)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *filename;
@@ -326,10 +329,10 @@ Java_java_io_VMFile_setWritable (JNIEnv *env,
  */
 JNIEXPORT jboolean JNICALL
 Java_java_io_VMFile_setExecutable (JNIEnv *env,
-                                 jclass clazz __attribute__ ((__unused__)),
-                                 jstring name,
-                                 jboolean executable,
-                                 jboolean ownerOnly)
+                                   jclass clazz __attribute__ ((__unused__)),
+                                   jstring name,
+                                   jboolean executable,
+                                   jboolean ownerOnly)
 {
   return set_file_permissions (env, name, executable, ownerOnly,
                                CPFILE_FLAG_EXEC);
@@ -434,8 +437,8 @@ Java_java_io_VMFile_getUsableSpace (JNIEnv *env,
 
 JNIEXPORT jboolean JNICALL
 Java_java_io_VMFile_exists (JNIEnv * env,
-                           jobject obj __attribute__ ((__unused__)),
-                           jstring name)
+                            jclass clazz __attribute__ ((__unused__)),
+                                       jstring name)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *filename;
@@ -471,8 +474,8 @@ Java_java_io_VMFile_exists (JNIEnv * env,
 
 JNIEXPORT jboolean JNICALL
 Java_java_io_VMFile_isFile (JNIEnv * env,
-                           jobject obj __attribute__ ((__unused__)),
-                           jstring name)
+                            jclass clazz __attribute__ ((__unused__)),
+                            jstring name)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *filename;
@@ -508,8 +511,8 @@ Java_java_io_VMFile_isFile (JNIEnv * env,
 
 JNIEXPORT jboolean JNICALL
 Java_java_io_VMFile_isDirectory (JNIEnv * env,
-                                jobject obj __attribute__ ((__unused__)),
-                                jstring name)
+                                 jclass clazz __attribute__ ((__unused__)),
+                                 jstring name)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *filename;
@@ -545,8 +548,8 @@ Java_java_io_VMFile_isDirectory (JNIEnv * env,
 
 JNIEXPORT jlong JNICALL
 Java_java_io_VMFile_length (JNIEnv * env,
-                           jobject obj __attribute__ ((__unused__)),
-                           jstring name)
+                            jclass clazz __attribute__ ((__unused__)),
+                            jstring name)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *filename;
@@ -593,8 +596,8 @@ Java_java_io_VMFile_length (JNIEnv * env,
 
 JNIEXPORT jlong JNICALL
 Java_java_io_VMFile_lastModified (JNIEnv * env,
-                                 jobject obj __attribute__ ((__unused__)),
-                                 jstring name)
+                                  jclass clazz __attribute__ ((__unused__)),
+                                  jstring name)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *filename;
@@ -630,8 +633,8 @@ Java_java_io_VMFile_lastModified (JNIEnv * env,
 
 JNIEXPORT jboolean JNICALL
 Java_java_io_VMFile_setLastModified (JNIEnv * env,
-                                    jobject obj __attribute__ ((__unused__)),
-                                    jstring name, jlong newtime)
+                                     jclass clazz __attribute__ ((__unused__)),
+                                     jstring name, jlong newtime)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *filename;
@@ -667,8 +670,8 @@ Java_java_io_VMFile_setLastModified (JNIEnv * env,
 
 JNIEXPORT jboolean JNICALL
 Java_java_io_VMFile_delete (JNIEnv * env,
-                           jobject obj __attribute__ ((__unused__)),
-                           jstring name)
+                            jclass clazz __attribute__ ((__unused__)),
+                            jstring name)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *filename;
@@ -703,8 +706,8 @@ Java_java_io_VMFile_delete (JNIEnv * env,
 
 JNIEXPORT jboolean JNICALL
 Java_java_io_VMFile_mkdir (JNIEnv * env,
-                          jobject obj __attribute__ ((__unused__)),
-                          jstring name)
+                           jclass clazz __attribute__ ((__unused__)),
+                           jstring name)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *pathname;
@@ -739,8 +742,8 @@ Java_java_io_VMFile_mkdir (JNIEnv * env,
 
 JNIEXPORT jboolean JNICALL
 Java_java_io_VMFile_renameTo (JNIEnv * env,
-                             jobject obj __attribute__ ((__unused__)),
-                             jstring t, jstring d)
+                              jclass clazz __attribute__ ((__unused__)),
+                              jstring t, jstring d)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *old_filename, *new_filename;
@@ -783,8 +786,9 @@ Java_java_io_VMFile_renameTo (JNIEnv * env,
  */
 
 JNIEXPORT jobjectArray JNICALL
-Java_java_io_VMFile_list (JNIEnv * env, jobject obj
-                         __attribute__ ((__unused__)), jstring name)
+Java_java_io_VMFile_list (JNIEnv * env,
+                          jclass clazz __attribute__ ((__unused__)),
+                          jstring name)
 {
 #ifndef WITHOUT_FILESYSTEM
   const int REALLOC_SIZE = 10;
@@ -991,8 +995,8 @@ maybeGrowBuf (JNIEnv *env, char *buf, int *size, int required)
 
 JNIEXPORT jstring JNICALL
 Java_java_io_VMFile_toCanonicalForm (JNIEnv *env,
-                                    jclass class __attribute__ ((__unused__)),
-                                    jstring jpath)
+                                                    jclass class __attribute__ ((__unused__)),
+                                                    jstring jpath)
 {
 #ifndef WITHOUT_FILESYSTEM
   const char *path;
index 1789670ba2ef22ff56da27aa774fa3b1d5e98bfc..e07e20682d4f88d35031b27c732accc9e3d3c137 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -115,6 +118,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -146,6 +151,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -184,11 +195,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -198,6 +210,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -219,7 +233,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -285,8 +302,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -297,6 +316,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -356,6 +376,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libjavalang.la libjavalangreflect.la libjavalangmanagement.la
 libjavalang_la_SOURCES = java_lang_VMSystem.c \
diff --git a/libjava/classpath/native/jni/java-math/Makefile.am b/libjava/classpath/native/jni/java-math/Makefile.am
new file mode 100644 (file)
index 0000000..9bc756b
--- /dev/null
@@ -0,0 +1,11 @@
+nativeexeclib_LTLIBRARIES = libjavamath.la
+
+libjavamath_la_SOURCES = gnu_java_math_GMP.c
+
+libjavamath_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
+
+libjavamath_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
+
+AM_LDFLAGS = @CLASSPATH_MODULE@ @GMP_LIBS@
+AM_CPPFLAGS = @CLASSPATH_INCLUDES@
+AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ @GMP_CFLAGS@
diff --git a/libjava/classpath/native/jni/java-math/Makefile.in b/libjava/classpath/native/jni/java-math/Makefile.in
new file mode 100644 (file)
index 0000000..832739b
--- /dev/null
@@ -0,0 +1,646 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = native/jni/java-math
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
+       $(top_srcdir)/../../config/lead-dot.m4 \
+       $(top_srcdir)/../../config/multi.m4 \
+       $(top_srcdir)/../../config/no-executables.m4 \
+       $(top_srcdir)/../../config/override.m4 \
+       $(top_srcdir)/../../config/proginstall.m4 \
+       $(top_srcdir)/../../libtool.m4 \
+       $(top_srcdir)/../../ltoptions.m4 \
+       $(top_srcdir)/../../ltsugar.m4 \
+       $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
+       $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
+       $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
+       $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/include/config.h
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(nativeexeclibdir)"
+nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
+libjavamath_la_DEPENDENCIES =  \
+       $(top_builddir)/native/jni/classpath/jcl.lo
+am_libjavamath_la_OBJECTS = gnu_java_math_GMP.lo
+libjavamath_la_OBJECTS = $(am_libjavamath_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+depcomp = $(SHELL) $(top_srcdir)/../../depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libjavamath_la_SOURCES)
+DIST_SOURCES = $(libjavamath_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@
+BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@
+CAIRO_CFLAGS = @CAIRO_CFLAGS@
+CAIRO_LIBS = @CAIRO_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@
+CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@
+CLASSPATH_MODULE = @CLASSPATH_MODULE@
+COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@
+CP = @CP@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
+CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
+CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
+CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
+CREATE_COLLECTIONS_FALSE = @CREATE_COLLECTIONS_FALSE@
+CREATE_COLLECTIONS_TRUE = @CREATE_COLLECTIONS_TRUE@
+CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
+CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
+CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
+CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
+CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
+CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
+CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
+CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
+CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
+CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@
+CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@
+CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@
+CREATE_PLUGIN_FALSE = @CREATE_PLUGIN_FALSE@
+CREATE_PLUGIN_TRUE = @CREATE_PLUGIN_TRUE@
+CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@
+CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@
+CREATE_WRAPPERS_FALSE = @CREATE_WRAPPERS_FALSE@
+CREATE_WRAPPERS_TRUE = @CREATE_WRAPPERS_TRUE@
+CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@
+CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATE = @DATE@
+DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+ECJ_JAR = @ECJ_JAR@
+EGREP = @EGREP@
+ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
+ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@
+ERROR_CFLAGS = @ERROR_CFLAGS@
+EXAMPLESDIR = @EXAMPLESDIR@
+EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+FGREP = @FGREP@
+FIND = @FIND@
+FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
+FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GDK_CFLAGS = @GDK_CFLAGS@
+GDK_LIBS = @GDK_LIBS@
+GENINSRC_FALSE = @GENINSRC_FALSE@
+GENINSRC_TRUE = @GENINSRC_TRUE@
+GJDOC = @GJDOC@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
+GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
+INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@
+INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@
+INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
+JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
+JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
+JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
+JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
+JAY = @JAY@
+JAY_SKELETON = @JAY_SKELETON@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDEBUG = @LIBDEBUG@
+LIBICONV = @LIBICONV@
+LIBMAGIC = @LIBMAGIC@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBVERSION = @LIBVERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MKDIR = @MKDIR@
+MOC = @MOC@
+MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
+MOZILLA_LIBS = @MOZILLA_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
+PANGOFT2_LIBS = @PANGOFT2_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PATH_TO_ESCHER = @PATH_TO_ESCHER@
+PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGIN_DIR = @PLUGIN_DIR@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@
+REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@
+REMOVE = @REMOVE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
+STRIP = @STRIP@
+TOOLSDIR = @TOOLSDIR@
+USER_JAVAH = @USER_JAVAH@
+USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
+USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
+USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
+USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
+VERSION = @VERSION@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
+XML_CFLAGS = @XML_CFLAGS@
+XML_LIBS = @XML_LIBS@
+XSLT_CFLAGS = @XSLT_CFLAGS@
+XSLT_LIBS = @XSLT_LIBS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DSYMUTIL = @ac_ct_DSYMUTIL@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_LIPO = @ac_ct_LIPO@
+ac_ct_NMEDIT = @ac_ct_NMEDIT@
+ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
+ac_ct_OTOOL = @ac_ct_OTOOL@
+ac_ct_OTOOL64 = @ac_ct_OTOOL64@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+default_toolkit = @default_toolkit@
+exec_prefix = @exec_prefix@
+glibjdir = @glibjdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+multi_basedir = @multi_basedir@
+nativeexeclibdir = @nativeexeclibdir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
+vm_classes = @vm_classes@
+nativeexeclib_LTLIBRARIES = libjavamath.la
+libjavamath_la_SOURCES = gnu_java_math_GMP.c
+libjavamath_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
+libjavamath_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
+AM_LDFLAGS = @CLASSPATH_MODULE@ @GMP_LIBS@
+AM_CPPFLAGS = @CLASSPATH_INCLUDES@
+AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ @GMP_CFLAGS@
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  native/jni/java-math/Makefile'; \
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  native/jni/java-math/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES)
+       @$(NORMAL_INSTALL)
+       test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)"
+       @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
+         if test -f $$p; then \
+           f=$(am__strip_dir) \
+           echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \
+           $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \
+         else :; fi; \
+       done
+
+uninstall-nativeexeclibLTLIBRARIES:
+       @$(NORMAL_UNINSTALL)
+       @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
+         p=$(am__strip_dir) \
+         echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \
+         $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \
+       done
+
+clean-nativeexeclibLTLIBRARIES:
+       -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES)
+       @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
+         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+         test "$$dir" != "$$p" || dir=.; \
+         echo "rm -f \"$${dir}/so_locations\""; \
+         rm -f "$${dir}/so_locations"; \
+       done
+libjavamath.la: $(libjavamath_la_OBJECTS) $(libjavamath_la_DEPENDENCIES) 
+       $(LINK) -rpath $(nativeexeclibdir) $(libjavamath_la_LDFLAGS) $(libjavamath_la_OBJECTS) $(libjavamath_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_math_GMP.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+distclean-libtool:
+       -rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+           $$tags $$unique; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkdir_p) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+       for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \
+         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-nativeexeclibLTLIBRARIES
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \
+       distclean-compile distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
+       install-nativeexeclibLTLIBRARIES install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags uninstall uninstall-am uninstall-info-am \
+       uninstall-nativeexeclibLTLIBRARIES
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c b/libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c
new file mode 100644 (file)
index 0000000..85c2e6b
--- /dev/null
@@ -0,0 +1,1396 @@
+/* gnu_java_math_GMP.c -- Native MPI implemenetation over GNU MP
+   Copyright (C) 2006  Free Software Foundation, Inc.
+
+This file is a part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
+USA
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.  */
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include "gnu_java_math_GMP.h"
+#include <jcl.h>
+
+#if defined(HAVE_GMP_H)
+#include <gmp.h>
+#endif /* defined(HAVE_GMP_H) */
+
+#if defined(WITH_GNU_MP)
+#else
+#warning GNU MP not available or wanted!
+#warning Invocation of natXXX() methods will raise an exception
+#endif
+
+/*
+ * This is the implementation of the native BigInteger$NativeMPI methods which
+ * use the GNU MP (GMP) library.
+ *
+ * In all the Java non-statically declared native methods, the second argument,
+ * an instance of jobject, refers to the current NativeMPI instance; i.e.
+ * "this" in Java parlance. The corresponding allocated data structure
+ * representing the GMP's counter-part is pointed-to by the pointer stored in a
+ * transient java field named "native_ptr". The first thing these methods do is
+ * (a) access that field with a JNI GetObjectField() call to obtain the
+ * reference to the gnu.classpath.Pointer subclass instance, then (b) obtain
+ * the native GMP pointer (an mpz_ptr), in order to perform their job; e.g.
+ *
+ *   JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr))
+ *
+ * For static methods the second argument, an instance of jclass, is almost
+ * always unused --except when initializing the library, which is the only time
+ * we get hold of the native pointer field.
+ *
+ * This code was written and tested with GNU MP version 4.1.2. More recent
+ * versions of that library offer more operations; e.g. in the implementation
+ * of the method Java_java_math_BigInteger_00024NativeMPI_natFlipBit, mpz_combit()
+ * should be used with GNU MP versions later than 4.2. As a consequence, this
+ * code should be reviewed, from time to time, to use newer features of the GNU
+ * MP library.
+ */
+
+static jfieldID native_ptr;
+
+#ifdef DEBUG
+#define TRACE(msg) fprintf (stderr, "%s(%s:%d) -- %s\n", __FUNCTION__, __FILE__, __LINE__, msg)
+#else
+#define TRACE(msg)
+#endif
+
+#define throw_config_exception(env) JCL_ThrowException (env, "java/lang/Error", "GNU MP was not specified/found by configure")
+
+/*
+ * Initialize the native library. Specifically this method:
+ *
+ * a. Pass NULLs to the mp_set_memory_functions implying that GMP should use
+ *    malloc, realloc and free for memory allocation, and if they fail GMP
+ *    will print a message to the standard error output and terminates the
+ *    program.
+ * b. Find out and store the reference to the NativeMPI class's 'native_ptr'
+ *    field. This is done so later in the method invocations we can access that
+ *    field and acquire the native value associated with that Pointer instance.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natInitializeLibrary (JNIEnv *env,
+                                                               jclass nativeMPI)
+{
+#if defined(WITH_GNU_MP)
+  TRACE("Loading GMP-based BigInteger native library");
+  mp_set_memory_functions (NULL, NULL, NULL);
+  native_ptr = (*env)->GetFieldID (env, nativeMPI, "native_ptr",
+                                   "Lgnu/classpath/Pointer;");
+  TRACE("Loaded GMP-based BigInteger native library");
+#else /* !defined(WITH_GNU_MP) */
+  (void) nativeMPI;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * Allocate and initialize the data structure for an instance of a NativeMPI.
+ *
+ * @param this  an instance of NativeMPI.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natInitialize(JNIEnv *env, jobject this)
+{
+#if defined(WITH_GNU_MP)
+  mpz_ptr _this;
+
+  TRACE("begin");
+  _this = (mpz_ptr)JCL_malloc (env, sizeof (mpz_t));
+  /* initialize --GMP sets the value to zero. */
+  mpz_init (_this);
+  /* instantiate the Pointer instance for this NativeMPI. */
+  jobject native_ptr_fld = JCL_NewRawDataObject (env, _this);
+  /* ... and assign it to the native_ptr field. */
+  (*env)->SetObjectField (env, this, native_ptr, native_ptr_fld);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * Clear and free the data structure for an instance of a NativeMPI.
+ *
+ * @param this  an instance of NativeMPI.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFinalize(JNIEnv *env, jobject this)
+{
+#if defined(WITH_GNU_MP)
+  mpz_ptr _this;
+
+  TRACE("begin");
+  _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  if (_this != NULL)
+    {
+      mpz_clear (_this);
+      free (_this);
+      _this = NULL;
+    }
+  else
+    {
+      TRACE("WARNING: Already cleared + freed");
+    }
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+
+/*
+ * @param this  an instance of NativeMPI. On exit, this will have a value of n.
+ * @param n  a Java long primitive value.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFromLong(JNIEnv *env, jobject this,
+                                                     jlong n)
+{
+#if defined(WITH_GNU_MP)
+  mpz_ptr _this;
+
+  TRACE("begin");
+  _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  /* the size of jlong (64-bit) is either the same as a long, or that of a long long.
+   * if it's the former, we use as is. */
+  if (sizeof (jlong) == sizeof (long))
+    {
+      mpz_set_si (_this, (signed long)n);
+    }
+  else
+    {
+      /* ...otherwise, we operate on the two halves of the long long, each half
+       * being 32-bit wide.  for simplicity, we work with positive
+       * values negating, if necessary, the final outcome.
+       */
+      const int isnegative = n < 0 ? 1 : 0;
+      if (isnegative)
+        {
+          n = -n;
+        }
+      mpz_set_ui (_this, (unsigned long)(((unsigned long long)n) >> 32));
+      mpz_mul_2exp (_this, _this, 32); /* shift left by 32 bits */
+      mpz_add_ui (_this, _this, (unsigned long)n);
+      if (isnegative)
+        {
+          mpz_neg (_this, _this);
+        }
+    }
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) n;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI. On exit, this will have the same
+ *           value as x.
+ * @param x  an instance of a NativeMPI's Pointer.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFromBI(JNIEnv *env, jobject this,
+                                                   jobject x)
+{
+#if defined(WITH_GNU_MP)
+  mpz_ptr _this;
+  mpz_srcptr _x;
+
+  TRACE("begin");
+  _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  mpz_set (_this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI. On exit, this will have the value
+ *           represented by the v Java byte array (in 2's complement with most
+ *           significant byte at index position 0). The sign is implied by the
+ *           value of the most significant byte.
+ * @param v  a Java byte array containing the byte representation, in 2's
+ *           complement of the signed value to assign to this.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFromByteArray(JNIEnv *env,
+                                                          jobject this,
+                                                          jbyteArray v)
+{
+#if defined(WITH_GNU_MP)
+  mpz_ptr _this;
+  jbyte *_v;
+  unsigned long b;
+  int vlength, isnegative, i;
+
+  TRACE("begin");
+  _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _v = (*env)->GetByteArrayElements (env, v, NULL);
+  vlength = (*env)->GetArrayLength (env, v);
+  b = (unsigned long)(_v[0] & 0xFF);
+  isnegative = (b > 0x7F) ? 1 : 0;
+  mpz_set_ui (_this, 0);
+  for (i = 0; i < vlength; i++)
+    {
+      mpz_mul_2exp (_this, _this, 8); /* shift left 8 positions. */
+      b = (unsigned long)(_v[i] & 0xFF);
+      b = (isnegative) ? ~b : b;
+      mpz_add_ui (_this, _this, (unsigned long)(b & 0xFF));
+    }
+  (*env)->ReleaseByteArrayElements (env, v, _v, JNI_ABORT);
+  if (isnegative)
+    {
+      mpz_add_ui (_this, _this, 1);
+      mpz_neg (_this, _this);
+    }
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) v;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI. On exit, this will have the value
+ *           represented by the s Java string.
+ * @param s  a Java string containing, a possibly signed, value to assign to
+ *           this.
+ * @param rdx  the base in which the symbols, in s, are represented.
+ * @return  0 if the entire string is a valid number in base rdx. Otherwise it
+ *          returns -1.
+ *
+ * Implementation note:
+ * While the GMP library is more tolerant in what it accepts as parameter values
+ * for conversions from strings, the BigInteger code, which calls this method,
+ * ensures that the contract described in the RI's documentation is respected;
+ * e.g. no white spaces in the middle, limited valid radix values, etc...
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natFromString(JNIEnv *env,
+                                                       jobject this, jstring s,
+                                                       jint rdx)
+{
+#if defined(WITH_GNU_MP)
+  mpz_ptr _this;
+  const char *_s;
+  int result;
+
+  TRACE("begin");
+  _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _s = (*env)->GetStringUTFChars (env, s, NULL);
+  result = mpz_set_str (_this, _s, (int)rdx);
+  JCL_free_cstring (env, s, _s);
+  TRACE("end");
+  return (result);
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) s;
+  (void) rdx;
+  throw_config_exception(env);
+  return (-1);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI. On exit, this will have the value
+ *           represented by the m Java byte array (most significant byte at
+ *           index position 0). It will be positive, or negative, depending on
+ *           the value of isnegative.
+ * @param m  a Java byte array containing the byte representation of the
+ *           absolute value (most significant byte being at index position 0)
+ *           to assign to this.
+ * @param isnegative  true if this should be negative and false if it should
+ *           be positive.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFromSignedMagnitude(JNIEnv *env,
+                                                                jobject this,
+                                                                jbyteArray m,
+                                                                jboolean isnegative)
+{
+#if defined(WITH_GNU_MP)
+  mpz_ptr _this;
+  jbyte *_m;
+  int mlength, i;
+
+  TRACE("begin");
+  _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _m = (*env)->GetByteArrayElements (env, m, NULL);
+  mlength = (*env)->GetArrayLength (env, m);
+  mpz_set_ui (_this, 0);
+  for (i = 0; i < mlength; i++)
+    {
+      mpz_mul_2exp (_this, _this, 8);
+      mpz_add_ui (_this, _this, (unsigned long)(_m[i] & 0xFF));
+    }
+  (*env)->ReleaseByteArrayElements (env, m, _m, JNI_ABORT);
+  if (isnegative == JNI_TRUE)
+    {
+      mpz_neg (_this, _this);
+    }
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) m;
+  (void) isnegative;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param n  the base in which to represent this.
+ * @return  the Java string representing the value of this in base n.
+ */
+JNIEXPORT jstring JNICALL
+Java_gnu_java_math_GMP_natToString(JNIEnv *env, jobject this,
+                                                     jint n)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+  char *cstr;
+  jstring result;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  cstr = mpz_get_str (NULL, (int)n, _this);
+  result  = (*env)->NewStringUTF (env, cstr);
+  free (cstr);
+  TRACE("end");
+  return (result);
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) n;
+  throw_config_exception(env);
+  return (NULL);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  a non-ZERO instance of NativeMPI.
+ *
+ * output:
+ * @param r  a Java byte array which shall contain the byte representation of
+ *           this.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natToByteArray(JNIEnv *env,
+                                                        jobject this,
+                                                        jbyteArray r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+  mpz_t _w;  /* a temporary work mpi */
+  jbyte *_r;
+  int rlength, sign, i;
+  unsigned long b;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _r = (*env)->GetByteArrayElements (env, r, NULL);
+  rlength = (*env)->GetArrayLength (env, r);
+  mpz_init (_w);
+  /* if this is negative set w to its 2's complement otherwise use as is. */
+  sign = mpz_sgn (_this);
+  if (sign == 1)
+    {
+      mpz_set (_w, _this);
+    }
+  else
+    {
+      mpz_neg (_w, _this);
+      mpz_sub_ui (_w, _w, 1);
+    }
+  /* _w SHOULD be >= 0.
+   * start filling the array starting from the least significant byte. */
+  for (i = rlength; --i >= 0; )
+    {
+      b = mpz_tdiv_q_ui (_w, _w, 256);
+      b = (sign == -1) ? ~b : b;
+      _r[i] = (unsigned long)(b & 0xFF);
+    }
+  (*env)->ReleaseByteArrayElements (env, r, _r, JNI_COMMIT);
+  /* if _w > 0 the byte array was short. */
+  if (mpz_cmp_ui (_w, 0) > 0)
+    {
+      TRACE("WARNING: byte array is too short");
+    }
+  mpz_clear (_w);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @return  the "int" value (least significant 32 bits) of the absolute value
+ *          of this NativeMPI. The calling code MUST handle the sign. We do
+ *          this so we can use the same method when computing the "long" value
+ *          as well.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natAbsIntValue(JNIEnv *env,
+                                                        jobject this)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  TRACE("end");
+  return ((jint)mpz_get_ui (_this));
+#else /* !defined(WITH_GNU_MP) */
+  (void) s;
+  throw_config_exception(env);
+  return (-1);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @return  the, eventually truncated, double value of this NativeMPI.
+ */
+JNIEXPORT jdouble JNICALL
+Java_gnu_java_math_GMP_natDoubleValue(JNIEnv *env,
+                                                        jobject this)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  TRACE("end");
+  return ((jdouble)mpz_get_d (_this));
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  throw_config_exception(env);
+  return (0.0);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  a NativeMPI instance.
+ * @param x  an instance of NativeMPI's Pointer.
+ * @return  -1, 0, +1 if x is respectively less than, equal to, or greater
+ *          than y.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natCompare(JNIEnv *env, jobject this,
+                                                    jobject x)
+{
+#if defined(WITH_GNU_MP)
+  mpz_ptr _this, _x;
+  int res;
+
+  TRACE("begin");
+  _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_ptr)JCL_GetRawData (env, x);
+  res = mpz_cmp (_this, _x);
+  TRACE("end");
+  if (res == 0)
+    return ((jint)0);
+  else if (res < 0)
+    return ((jint)-1);
+  else
+    return ((jint)1);
+#else /* !defined(WITH_GNU_MP) */
+  (void) x;
+  (void) y;
+  throw_config_exception(env);
+  return (0);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this + x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natAdd(JNIEnv *env, jobject this,
+                                                jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_add (_r, _this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this - x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natSubtract(JNIEnv *env, jobject this,
+                                                     jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_sub (_r, _this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this * x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natMultiply(JNIEnv *env, jobject this,
+                                                     jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_mul (_r, _this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this div x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natQuotient(JNIEnv *env, jobject this,
+                                                     jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_tdiv_q (_r, _this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this mod x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natRemainder(JNIEnv *env, jobject this,
+                                                      jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_tdiv_r (_r, _this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param q  a NativeMPI's Pointer such that q = this div x.
+ * @param r  a NativeMPI's Pointer such that r = this mod x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natQuotientAndRemainder(JNIEnv *env,
+                                                                 jobject this,
+                                                                 jobject x,
+                                                                 jobject q,
+                                                                 jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _q, _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _q = (mpz_ptr)JCL_GetRawData (env, q);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_tdiv_qr (_q, _r, _this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) q;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this mod x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natModulo(JNIEnv *env, jobject this,
+                                                   jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_mod (_r, _this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param n  a non-negative number to raise this to.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this ** n.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natPow(JNIEnv *env, jobject this,
+                                                jint n, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_pow_ui (_r, _this, (unsigned long)n);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) n;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param e  an instance of NativeMPI's Pointer.
+ * @param m  another instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = (this**e) mod m.
+ *
+ * @throws java.lang.ArithmeticException if e is negative and (1 / this) mod m
+ *         has no multiplicative inverse.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natModPow(JNIEnv *env, jobject this,
+                                                   jobject e, jobject m,
+                                                   jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _e, _m;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _e = (mpz_srcptr)JCL_GetRawData (env, e);
+  _m = (mpz_srcptr)JCL_GetRawData (env, m);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  /* the documentation of mpz_powm(rop, b, e, m) states that it: "Set rop to
+   * (b raised to e) modulo m.  Negative e is supported if an inverse b^-1 mod m
+   * exists.... If an inverse doesn't exist then a divide by zero is raised."
+   * to work around this case we use the same code as in the pure java class;
+   * i.e.:
+   *     if (e.isNegative())
+   *       return this.modInverse(m).modPow(e.negate(), m); */
+  if (mpz_sgn (_e) == -1)
+    {
+      mpz_t _w;  /* a temporary work mpi */
+      const int res = mpz_invert (_r, _this, _m);
+      if (res == 0)
+        {
+          JCL_ThrowException (env, "java/lang/ArithmeticException",
+                              "No multiplicative inverse modulo the designated number exists");
+        }
+      mpz_init (_w);
+      mpz_neg (_w, _e);
+      mpz_powm (_r, _r, _w, _m);
+      mpz_clear (_w);
+    }
+  else
+    {
+      mpz_powm (_r, _this, _e, _m);
+    }
+
+  while (mpz_sgn (_r) == -1)
+    {
+      mpz_add (_r, _r, _m);
+    }
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) e;
+  (void) m;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param m  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = (1 / this) mod m.
+ * @throws java.lang.ArithmeticException if (1 / this) mod m has no
+ *         multiplicative inverse.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natModInverse(JNIEnv *env,
+                                                       jobject this,
+                                                       jobject m, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _m;
+  mpz_ptr _r;
+  int res;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _m = (mpz_srcptr)JCL_GetRawData (env, m);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  res = mpz_invert (_r, _this, _m);
+  if (res == 0)
+    {
+      JCL_ThrowException (env, "java/lang/ArithmeticException",
+                          "No multiplicative inverse modulo the designated number exists");
+    }
+
+  while (mpz_sgn (_r) == -1)
+    {
+      mpz_add (_r, _r, _m);
+    }
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r is the GCD of this and x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natGCD(JNIEnv *env, jobject this,
+                                                jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_gcd (_r, _this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param n  number of Miller-Rabin tests to conduct.
+ * @return  2 if this is definitely prime. Returns 1 if this is probably prime
+ *          (without being certain). Finally, returns 0 if this is definitely
+ *          composite.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natTestPrimality(JNIEnv *env,
+                                                          jobject this, jint n)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  TRACE("end");
+  return ((jint)mpz_probab_prime_p (_this, (int)n));
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) n;
+  throw_config_exception(env);
+  return (0);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param n  the non-negative number of positions to shift right this by.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this * 2**n.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natShiftLeft(JNIEnv *env, jobject this,
+                                                      jint n, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_mul_2exp (_r, _this, (unsigned long)n);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) n;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param n  the non-negative number of positions to shift left this by.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = floor(this / 2**n).
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natShiftRight(JNIEnv *env,
+                                                       jobject this, jint n,
+                                                       jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_fdiv_q_2exp (_r, _this, (unsigned long)n);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) n;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @return  the 0-based index of the lowest significant bit set (to 1) in this.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natLowestSetBit(JNIEnv *env,
+                                                         jobject this)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  TRACE("end");
+  return ((jint)mpz_scan1 (_this, 0));
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  throw_config_exception(env);
+  return (-1);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = abs(x).
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natAbs(JNIEnv *env, jobject this,
+                                                jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_abs (_r, _this);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = -x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natNegate(JNIEnv *env, jobject this,
+                                                   jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_neg (_r, _this);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @return  the number of bits needed to represent this.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natBitLength(JNIEnv *env, jobject this)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  TRACE("end");
+  return ((jint)mpz_sizeinbase (_this, 2));
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  throw_config_exception(env);
+  return (-1);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI. It MUST be >= ZERO.
+ * @return  the number of bits set (to 1) in this.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natSetBitCount(JNIEnv *env,
+                                                        jobject this)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+  mpz_ptr _bi;
+  unsigned long res = 0;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  switch (mpz_sgn (_this))
+    {
+      case -1:
+        /* initialize --GMP sets the value to zero. */
+        _bi = (mpz_ptr)JCL_malloc (env, sizeof (mpz_t));
+        mpz_init (_bi);
+        mpz_neg (_bi, _this);
+        res = mpz_popcount (_bi);
+        mpz_clear (_bi);
+        free (_bi);
+        break;
+      case 0:
+        res = 0;
+        break;
+      case 1:
+        res = mpz_popcount (_this);
+      default:
+        JCL_ThrowException (env, "java/lang/Error",
+                            "Unexpected sign value for a native MPI");
+    }
+  TRACE("end");
+  return ((jint)res);
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  throw_config_exception(env);
+  return (ULONG_MAX);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this ^ x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natXor(JNIEnv *env, jobject this,
+                                                jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_xor (_r, _this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this | x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natOr(JNIEnv *env, jobject this,
+                                               jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_ior (_r, _this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this & x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natAnd(JNIEnv *env, jobject this,
+                                                jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_and (_r, _this, _x);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param x  an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = this & ~x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natAndNot(JNIEnv *env, jobject this,
+                                                   jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this, _x;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _x = (mpz_srcptr)JCL_GetRawData (env, x);
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_com (_r, _x);
+  mpz_and (_r, _this, _r);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) x;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param n  the 0-based index position of the bit to flip in this. n MUST be
+ *           greater than, or equal to 0.
+ *
+ * output:
+ * @param r  a copy of this NativeMPI's Pointer with its n-th bit flipped.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFlipBit(JNIEnv *env, jobject this,
+                                                    jint n, jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_set (_r, _this);
+  /* GNU MP versions earlier than 4.2 do not define this method:
+   *   mpz_combit (_r, (unsigned long)n); */
+  if (mpz_tstbit (_r, (unsigned long)n) == 1)
+    {
+      mpz_clrbit (_r, (unsigned long)n);
+    }
+  else
+    {
+      mpz_setbit (_r, (unsigned long)n);
+    }
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) n;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param n  the 0-based index position of the bit to test in this. n MUST be
+ *           greater than, or equal to 0.
+ * @return  +1, or -1 depending on whether the n-th bit in this is set or not
+ *          respectively.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natTestBit(JNIEnv *env, jobject this,
+                                                    jint n)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  TRACE("end");
+  return ((jint)mpz_tstbit (_this, (unsigned long)n));
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) n;
+  throw_config_exception(env);
+  return (-1);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ * @param n  the 0-based index position of the bit to set, or clear, in this.
+ *           n MUST be greater than, or equal to 0.
+ * @param setIt  if true, then the n-th bit in this will be set, otherwise it
+ *           will be cleared.
+ *
+ * output:
+ * @param r  a copy of this NativeMPI's Pointer with its n-th bit set or cleared
+ *           as requested.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natSetBit(JNIEnv *env, jobject this,
+                                                   jint n, jboolean setIt,
+                                                   jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_set (_r, _this);
+  if (setIt == JNI_TRUE)
+    {
+      mpz_setbit (_r, (unsigned long)n);
+    }
+  else
+    {
+      mpz_clrbit (_r, (unsigned long)n);
+    }
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) n;
+  (void) setIt;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this  an instance of NativeMPI.
+ *
+ * output:
+ * @param r  a NativeMPI's Pointer such that r = ~this.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natNot(JNIEnv *env, jobject this,
+                                                jobject r)
+{
+#if defined(WITH_GNU_MP)
+  mpz_srcptr _this;
+  mpz_ptr _r;
+
+  TRACE("begin");
+  _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+  _r = (mpz_ptr)JCL_GetRawData (env, r);
+  mpz_com (_r, _this);
+  TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+  (void) this;
+  (void) r;
+  throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
index a4e6442282c8b35e71027f3b6f4359996451aefc..69390bc4a0a5f66554d79a5ec9c681be34345e7e 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -111,6 +114,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -142,6 +147,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -180,11 +191,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -194,6 +206,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -215,7 +229,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -281,8 +298,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -293,6 +312,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -352,6 +372,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libjavanet.la
 @ENABLE_LOCAL_SOCKETS_FALSE@local_sources = gnu_java_net_local_LocalSocketImpl.c
index 73da5ee24f67b10633e6952b450f09aa44f20979..658299733e54e523140cd5095a7555df6dbfe577 100644 (file)
@@ -1,5 +1,5 @@
 /* VMNetworkInterface.c - Native methods for NetworkInterface class
-   Copyright (C) 2003, 2005, 2006  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005, 2006, 2008 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -50,11 +50,24 @@ exception statement from your version. */
 #include <stdio.h>
 #include <string.h>
 
+#include <net/if.h>
+#include <sys/ioctl.h>
+/* Required on Solaris. */
+#include <unistd.h>
+
+#ifdef HAVE_SYS_SOCKIO_H
+# include <sys/sockio.h>
+#endif
+
 #include <jni.h>
 #include <jcl.h>
 
+#include <cpnative.h>
+#include <cpnet.h>
+
 #include "java_net_VMNetworkInterface.h"
 
+int iff_flags(JNIEnv *, jstring, jint *);
 
 static jmethodID java_net_VMNetworkInterface_init;
 static jmethodID java_net_VMNetworkInterface_addAddress;
@@ -251,4 +264,136 @@ Java_java_net_VMNetworkInterface_getVMInterfaces (JNIEnv * env,
 #endif /* HAVE_IFADDRS_H && HAVE_GETIFADDRS */
 }
 
+int iff_flags(JNIEnv *env, jstring name, jint *flags)
+{
+  struct ifreq iff;
+  const char *iff_name;
+  jint socket;
+  int error, retval;
+
+  if ((error = cpnet_openSocketDatagram(env, &socket, AF_INET)))
+  {
+    return error;
+  }
+
+  iff_name = JCL_jstring_to_cstring(env, name);
+  memset(&iff, 0, sizeof(iff));
+  strcpy(iff.ifr_name, iff_name);
+  if (ioctl(socket, SIOCGIFFLAGS, &iff) >= 0)
+  {
+    *flags = (jint) iff.ifr_flags;
+
+    retval = 0;
+  }
+  else
+  {
+    retval = errno;
+  }
+
+  cpnet_close(env, socket);
+
+  JCL_free_cstring(env, name, iff_name);
+
+  return retval;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_java_net_VMNetworkInterface_isUp (JNIEnv *env, jclass class UNUSED,
+                                       jstring name)
+{
+  jint flags;
+  int error;
+  jboolean retval;
+
+  if ((error = iff_flags(env, name, &flags)))
+  {
+    JCL_ThrowException(env, "java/net/SocketException",
+                       cpnative_getErrorString(error));
+
+    retval = JNI_FALSE;
+  }
+  else
+  {
+    retval = (flags & (IFF_UP | IFF_RUNNING))
+             ? JNI_TRUE
+             : JNI_FALSE;
+  }
+
+  return retval;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_java_net_VMNetworkInterface_isPointToPoint (JNIEnv *env,
+                                                 jclass class UNUSED,
+                                                 jstring name)
+{
+  jint flags;
+  int error;
+  jboolean retval;
+
+  if ((error = iff_flags(env, name, &flags)))
+  {
+    JCL_ThrowException(env, "java/net/SocketException",
+                       cpnative_getErrorString(error));
+
+    retval = JNI_FALSE;
+  }
+  else
+  {
+    retval = (flags & IFF_POINTOPOINT) ? JNI_TRUE
+                                       : JNI_FALSE;
+  }
+
+  return retval;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_java_net_VMNetworkInterface_isLoopback (JNIEnv *env,
+                                             jclass class UNUSED,
+                                             jstring name)
+{
+  jint flags;
+  int error;
+  jboolean retval;
+
+  if ((error = iff_flags(env, name, &flags)))
+  {
+    JCL_ThrowException(env, "java/net/SocketException",
+                       cpnative_getErrorString(error));
+
+    retval = JNI_FALSE;
+  }
+  else
+  {
+    retval = (flags & IFF_LOOPBACK) ? JNI_TRUE : JNI_FALSE;
+  }
+
+  return retval;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_java_net_VMNetworkInterface_supportsMulticast (JNIEnv *env,
+                                                    jclass class UNUSED,
+                                                    jstring name)
+{
+  jint flags;
+  int error;
+  jboolean retval;
+
+  if ((error = iff_flags(env, name, &flags)))
+  {
+    JCL_ThrowException(env, "java/net/SocketException",
+                       cpnative_getErrorString(error));
+
+    retval = JNI_FALSE;
+  }
+  else
+  {
+    retval = (flags & IFF_MULTICAST) ? JNI_TRUE : JNI_FALSE;
+  }
+
+  return retval;
+}
+
 /* end of file */
index b7ec6f2648003556a111aff136a9b42188890ceb..53830f371795fee9a34206cbc52483ea43d97883 100644 (file)
@@ -73,27 +73,18 @@ local_create (int stream)
   return socket (PF_UNIX, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
 }
 
-static int gcc_sucks = 0;
-
 int
 local_bind (int fd, const char *addr)
 {
   struct sockaddr_un saddr;
 
-  /* For some reason, GCC 4.0.1 on Darwin/x86 MODIFIES the `addr'
-     pointer in the CALLER's STACK FRAME after calling this function,
-     but if we add this statement below, it doesn't!  */
-  if (gcc_sucks)
-    fprintf (stderr, "bind %p\n", addr);
-
-  if (strlen (addr) > sizeof (saddr.sun_path))
+  if (strlen (addr) >= sizeof (saddr.sun_path))
     {
       errno = ENAMETOOLONG;
       return -1;
     }
 
-  strncpy (saddr.sun_path, addr, sizeof (saddr.sun_path));
-  saddr.sun_path[sizeof (saddr.sun_path)] = '\0';
+  strcpy (saddr.sun_path, addr);
   saddr.sun_family = AF_LOCAL;
 
   return bind (fd, (struct sockaddr *) &saddr, SUN_LEN (&saddr));
index fc4035343cd477826ae984b47d28b631a755a89a..150b968c8270f3bb6faa3aa51edf79a65829b31f 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -109,6 +112,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -140,6 +145,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -178,11 +189,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -192,6 +204,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -213,7 +227,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -279,8 +296,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -291,6 +310,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -350,6 +370,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libjavanio.la
 libjavanio_la_SOURCES = gnu_java_nio_VMPipe.c \
index 2e3333f4471f2a0f67090e1353730e188155f2f9..d84792419ae97e1d33718edf1dc982f0cb386c1a 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -98,6 +101,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -129,6 +134,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -167,11 +178,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -181,6 +193,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -202,7 +216,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -268,8 +285,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -280,6 +299,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -339,6 +359,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libjavautil.la
 libjavautil_la_SOURCES = java_util_VMTimeZone.c
index b8433a12d271ab3da68036a63ba9553a09647f3f..5ea89f306efe92566183896d07af31e345383645 100644 (file)
@@ -8,6 +8,6 @@ libgjsmalsa_la_LIBADD = -lasound
 libgjsmalsa_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
 
 AM_LDFLAGS = @CLASSPATH_MODULE@
-AM_CPPFLAGS = @CLASSPATH_INCLUDES@ `pkg-config  --cflags-only-I alsa`
+AM_CPPFLAGS = @CLASSPATH_INCLUDES@ `pkg-config --cflags-only-I alsa`
 AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ `pkg-config --cflags-only-other alsa` \
             @EXTRA_CFLAGS@
index 64212aaf3f66d977296c756fe6d90cb70f0e4f78..c9e96f17874ae97a126fbe550929e88b6fa53c3d 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -101,6 +104,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -132,6 +137,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -170,11 +181,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -184,6 +196,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -205,7 +219,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -271,8 +288,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -283,6 +302,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -342,6 +362,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libgjsmalsa.la 
 libgjsmalsa_la_SOURCES = gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.c \
@@ -351,7 +372,7 @@ gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.c
 libgjsmalsa_la_LIBADD = -lasound
 libgjsmalsa_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
 AM_LDFLAGS = @CLASSPATH_MODULE@
-AM_CPPFLAGS = @CLASSPATH_INCLUDES@ `pkg-config  --cflags-only-I alsa`
+AM_CPPFLAGS = @CLASSPATH_INCLUDES@ `pkg-config --cflags-only-I alsa`
 AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ `pkg-config --cflags-only-other alsa` \
             @EXTRA_CFLAGS@
 
index e478d0f20d7fe045ecc261d747373fb6a1040afb..764f38e9bd0f37159dcab414ac7c0a593871773d 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -101,6 +104,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -132,6 +137,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -170,11 +181,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -184,6 +196,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -205,7 +219,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -271,8 +288,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -283,6 +302,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -342,6 +362,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libgjsmdssi.la 
 libgjsmdssi_la_SOURCES = gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.c \
index 535f21ba916726509fe191c54abb74f38627bc3d..d1bde494c9f5b87e494276e35214f299d203fb73 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -90,6 +93,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -121,6 +126,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -159,11 +170,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -173,6 +185,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -194,7 +208,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -260,8 +277,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -272,6 +291,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -331,6 +351,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 noinst_LTLIBRARIES = libclasspathnative.la
 libclasspathnative_la_SOURCES = cpnet.c \
index a045ec15f5311619117a95b5e55a5674d9d15603..1c1b8d0647b493e13400b6611f945d0f5e6bbe04 100644 (file)
@@ -54,6 +54,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -116,6 +119,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -147,6 +152,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -185,11 +196,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -199,6 +211,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -220,7 +234,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -286,8 +303,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -298,6 +317,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -357,6 +377,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 noinst_LTLIBRARIES = libqtpeer.la
 AM_LDFLAGS = @CLASSPATH_MODULE@ @QT_LIBS@
index fbdca1e52de85128d79d78d805509ffb6d6a50a7..a5b48e1374e37bf9a1ebdd67ca2fa3561f7455e0 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -100,6 +103,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -131,6 +136,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -169,11 +180,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -183,6 +195,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -204,7 +218,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -270,8 +287,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -282,6 +301,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -341,6 +361,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libxmlj.la
 libxmlj_la_SOURCES = \
index 5babda39523641851b9398a7091fbf839b2ac056..d779b74b5eb5d3214c2ff279de96a24f70060297 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -98,6 +101,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -129,6 +134,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -167,11 +178,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -181,6 +193,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -202,7 +216,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -268,8 +285,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -280,6 +299,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -339,6 +359,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libgcjwebplugin.la
 libgcjwebplugin_la_SOURCES = gcjwebplugin.cc
index 769745611b21ab5e4c2cdc102cbb996d491023eb..bd01f9cfe9b3d5744ba95babe1b52e0d80dddeef 100644 (file)
@@ -67,6 +67,8 @@ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. */
 
 package org.ietf.jgss;
 
+import gnu.java.lang.CPStringBuilder;
+
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.DataInputStream;
@@ -241,7 +243,7 @@ public class Oid
   {
     if (strOid == null)
       {
-        StringBuffer buf = new StringBuffer();
+        CPStringBuilder buf = new CPStringBuilder();
         for (int i = 0; i < components.length; i++)
           {
             buf.append(components[i]);
index 2f056ac3177be4f7018dd039a5d45f3a2f1e06a2..6d1024461a7f783643ccb8da13cfe466886f31db 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package org.omg.CORBA.portable;
 
+import gnu.java.lang.CPStringBuilder;
+
 import org.omg.CORBA.BAD_PARAM;
 import org.omg.CORBA.Context;
 import org.omg.CORBA.ContextList;
@@ -417,7 +419,7 @@ public abstract class Delegate
     if (self instanceof ObjectImpl)
       {
         ObjectImpl x = (ObjectImpl) self;
-        StringBuffer b = new StringBuffer(x.getClass().getName());
+        CPStringBuilder b = new CPStringBuilder(x.getClass().getName());
         b.append(": [");
         for (int i = 0; i < x._ids().length; i++)
           {
diff --git a/libjava/classpath/resource/META-INF/mailcap.default b/libjava/classpath/resource/META-INF/mailcap.default
new file mode 100644 (file)
index 0000000..b7bdcd8
--- /dev/null
@@ -0,0 +1,8 @@
+#
+# Default mailcap entries for GNU JAF
+#
+image/gif;;     x-java-view=gnu.javax.activation.viewers.ImageViewer
+image/jpeg;;    x-java-view=gnu.javax.activation.viewers.ImageViewer
+image/png;;     x-java-view=gnu.javax.activation.viewers.ImageViewer
+text/*;;        x-java-view=gnu.javax.activation.viewers.TextViewer
+text/*;;        x-java-edit=gnu.javax.activation.viewers.TextEditor
diff --git a/libjava/classpath/resource/META-INF/mimetypes.default b/libjava/classpath/resource/META-INF/mimetypes.default
new file mode 100644 (file)
index 0000000..aa87b42
--- /dev/null
@@ -0,0 +1,28 @@
+#
+# A simple, old format, mime.types file
+# 
+#
+# It would be cool to have this auto-generated by configure.in
+# depending on some dependancy somehow
+#
+text/html              html htm
+text/plain             txt text
+image/gif              gif GIF
+image/ief              ief
+image/jpeg             jpeg jpg jpe JPG
+image/tiff             tiff tif
+image/x-xwindowdump    xwd
+application/postscript ai eps ps
+application/rtf                rtf
+application/x-tex      tex
+application/x-texinfo  texinfo texi
+application/x-troff    t tr roff
+audio/basic            au
+audio/midi             midi mid
+audio/x-aifc           aifc
+audio/x-aiff            aif aiff
+audio/x-mpeg           mpeg mpg
+audio/x-wav             wav
+video/mpeg             mpeg mpg mpe
+video/quicktime                qt mov
+video/x-msvideo                avi
index fbf8471a40d5057e69289d33763a8734155e1250..71e9303bbaeea34295b5647a6baabee311cd27b2 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -83,6 +86,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -114,6 +119,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -152,11 +163,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -166,6 +178,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -187,7 +201,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -253,8 +270,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -265,6 +284,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -324,6 +344,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 logging_DATA = java/util/logging/logging.properties
 loggingdir = $(toolexeclibdir)
index 8bcc77e395318720dfcfdbf0ebe1a7081008dbab..5df9ef9d575239e610c80d697e532d54879aefa3 100644 (file)
@@ -9,36 +9,36 @@ percent=%
 perMill=\u2030
 exponential=E
 infinity=\u221e
-NaN=\ufffd
+NaN=NaN
 minusSign=-
 zeroDigit=0
 decimalSeparator=.
 groupingSeparator=,
 digit=#
 percentFormat=#,##0%
-currencyFormat=\u00a4 #,##0.00;-\u00a4 #,##0.00
-localPatternChars=GyMdkHmsSEDFwWahKzYeugAZ
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+localPatternChars=GyMdkHmsSEDFwWahKzYeugAZvcL
 currenciesDisplayName.INR=INR
 currenciesDisplayName.JPY=JPY
 currenciesDisplayName.ITL=ITL
 currenciesDisplayName.EUR=EUR
 currenciesDisplayName.GBP=GBP
+currenciesDisplayName.BRL=BRL
 currenciesDisplayName.USD=USD
-currenciesSymbol.INR==0#Rs.|1#Re.|1<Rs.
-currenciesSymbol.JPY=\u00a5
-currenciesSymbol.ITL=\u20a4
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.JPY=JP\u00a5
+currenciesSymbol.ITL=IT\u20a4
 currenciesSymbol.EUR=\u20ac
-currenciesSymbol.GBP=\u00a3
-currenciesSymbol.USD=$
-shortMonths=1®2®3®4®5®6®7®8®9®10®11®12®®
-months=1®2®3®4®5®6®7®8®9®10®11®12®®
-shortWeekdays=®1®2®3®4®5®6®7®
-weekdays=®1®2®3®4®5®6®7®
-minNumberOfDaysInFirstWeek=1
-firstDayOfWeek=sun
-eras=BCE®CE®
-ampms=AM®PM®
-shortDateFormat=yy/MM/dd
+currenciesSymbol.GBP=UK\u00a3
+currenciesSymbol.BRL=R$
+currenciesSymbol.USD=US$
+shortMonths=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+weekdays=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yyyy-MM-dd
 mediumDateFormat=yyyy MMM d
 longDateFormat=yyyy MMMM d
 fullDateFormat=EEEE, yyyy MMMM dd
@@ -46,3 +46,4 @@ shortTimeFormat=HH:mm
 mediumTimeFormat=HH:mm:ss
 longTimeFormat=HH:mm:ss z
 fullTimeFormat=HH:mm:ss z
+zoneStrings=Marshall_Islands\u00ae\u00aeMHT\u00ae\u00ae\u00ae\u00a9Shevchenko\u00ae\u00aeSHET\u00ae\u00aeSHEST\u00ae\u00a9Bangladesh\u00ae\u00aeBDT\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00ae\u00aeACWST\u00ae\u00aeACWDT\u00ae\u00a9Marquesas\u00ae\u00aeMART\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00ae\u00aeCIT\u00ae\u00ae\u00ae\u00a9America_Eastern\u00ae\u00aeEST\u00ae\u00aeEDT\u00ae\u00a9China\u00ae\u00aeCST (CN)\u00ae\u00aeCDT (CN)\u00ae\u00a9Omsk\u00ae\u00aeOMST\u00ae\u00aeOMSST\u00ae\u00a9Guyana\u00ae\u00aeGYT\u00ae\u00ae\u00ae\u00a9Uzbekistan\u00ae\u00aeUZT\u00ae\u00aeUZST\u00ae\u00a9Uruguay\u00ae\u00aeUYT\u00ae\u00aeUYST\u00ae\u00a9Kazakhstan_Eastern\u00ae\u00aeEKST\u00ae\u00ae\u00ae\u00a9Karachi\u00ae\u00aeKART\u00ae\u00ae\u00ae\u00a9Tbilisi\u00ae\u00aeTBIT\u00ae\u00aeTBIST\u00ae\u00a9Tashkent\u00ae\u00aeTAST\u00ae\u00aeTASST\u00ae\u00a9Changbai\u00ae\u00aeCHAT\u00ae\u00ae\u00ae\u00a9Chatham\u00ae\u00aeCHAST\u00ae\u00aeCHADT\u00ae\u00a9South_Georgia\u00ae\u00aeGST (GS)\u00ae\u00ae\u00ae\u00a9French_Guiana\u00ae\u00aeGFT\u00ae\u00ae\u00ae\u00a9Frunze\u00ae\u00aeFRUT\u00ae\u00aeFRUST\u00ae\u00a9Europe_Eastern\u00ae\u00aeEET\u00ae\u00aeEEST\u00ae\u00a9Greenland_Eastern\u00ae\u00aeEGT\u00ae\u00aeEGST\u00ae\u00a9Dacca\u00ae\u00aeDACT\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u00aeDUST\u00ae\u00aeDUSST\u00ae\u00a9Chile\u00ae\u00aeCLT\u00ae\u00aeCLST\u00ae\u00a9Europe_Central\u00ae\u00aeCET\u00ae\u00aeCEST\u00ae\u00a9Acre\u00ae\u00aeACT (Acre)\u00ae\u00aeACST (Acre)\u00ae\u00a9Arabian\u00ae\u00aeAST (SA)\u00ae\u00aeADT (SA)\u00ae\u00a9East_Timor\u00ae\u00aeTLT\u00ae\u00ae\u00ae\u00a9New_Zealand\u00ae\u00aeNZST\u00ae\u00aeNZDT\u00ae\u00a9Indochina\u00ae\u00aeICT\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00ae\u00aeSAST\u00ae\u00ae\u00ae\u00a9Kwajalein\u00ae\u00aeKWAT\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u00aeMST\u00ae\u00aeMDT\u00ae\u00a9DumontDUrville\u00ae\u00aeDDUT\u00ae\u00ae\u00ae\u00a9Tokelau\u00ae\u00aeTKT\u00ae\u00ae\u00ae\u00a9Ecuador\u00ae\u00aeECT\u00ae\u00ae\u00ae\u00a9Hovd\u00ae\u00aeHOVT\u00ae\u00aeHOVST\u00ae\u00a9Africa_Central\u00ae\u00aeCAT\u00ae\u00ae\u00ae\u00a9Phoenix_Islands\u00ae\u00aePHOT\u00ae\u00ae\u00ae\u00a9Armenia\u00ae\u00aeAMT (AM)\u00ae\u00aeAMST (AM)\u00ae\u00a9Tuvalu\u00ae\u00aeTVT\u00ae\u00ae\u00ae\u00a9Sakhalin\u00ae\u00aeSAKT\u00ae\u00aeSAKST\u00ae\u00a9Samara\u00ae\u00aeSAMT\u00ae\u00aeSAMST\u00ae\u00a9Palau\u00ae\u00aePWT\u00ae\u00ae\u00ae\u00a9Kosrae\u00ae\u00aeKOST\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u00aeAHST\u00ae\u00aeAHDT\u00ae\u00a9Pitcairn\u00ae\u00aePNT\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\u00aeCST\u00ae\u00aeCDT\u00ae\u00a9Malaysia\u00ae\u00aeMYT\u00ae\u00ae\u00ae\u00a9Moscow\u00ae\u00aeMSK\u00ae\u00aeMSKS\u00ae\u00a9Vanuatu\u00ae\u00aeVUT\u00ae\u00aeVUST\u00ae\u00a9Kamchatka\u00ae\u00aePETT\u00ae\u00aePETST\u00ae\u00a9Cape_Verde\u00ae\u00aeCVT\u00ae\u00aeCVST\u00ae\u00a9Aqtobe\u00ae\u00aeAQTT (Aqtobe)\u00ae\u00aeAQTST (Aqtobe)\u00ae\u00a9Falkland\u00ae\u00aeFKT\u00ae\u00aeFKST\u00ae\u00a9Peru\u00ae\u00aePET\u00ae\u00aePEST\u00ae\u00a9Argentina\u00ae\u00aeART\u00ae\u00aeARST\u00ae\u00a9Krasnoyarsk\u00ae\u00aeKRAT\u00ae\u00aeKRAST\u00ae\u00a9Qyzylorda\u00ae\u00aeQYZT\u00ae\u00aeQYZST\u00ae\u00a9Tahiti\u00ae\u00aeTAHT\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00ae\u00aeIOT\u00ae\u00ae\u00ae\u00a9GMT\u00ae\u00aeGMT\u00ae\u00ae\u00ae\u00a9Vladivostok\u00ae\u00aeVLAT\u00ae\u00aeVLAST\u00ae\u00a9Atlantic\u00ae\u00aeAST\u00ae\u00aeADT\u00ae\u00a9Truk\u00ae\u00aeTRUT\u00ae\u00ae\u00ae\u00a9Rothera\u00ae\u00aeROTT\u00ae\u00ae\u00ae\u00a9Wallis\u00ae\u00aeWFT\u00ae\u00ae\u00ae\u00a9Syowa\u00ae\u00aeSYOT\u00ae\u00ae\u00ae\u00a9Korea\u00ae\u00aeKST\u00ae\u00aeKDT\u00ae\u00a9Ashkhabad\u00ae\u00aeASHT\u00ae\u00aeASHST\u00ae\u00a9Australia_Western\u00ae\u00aeAWST\u00ae\u00aeAWDT\u00ae\u00a9Gilbert_Islands\u00ae\u00aeGILT\u00ae\u00ae\u00ae\u00a9Seychelles\u00ae\u00aeSCT\u00ae\u00ae\u00ae\u00a9Cocos\u00ae\u00aeCCT\u00ae\u00ae\u00ae\u00a9Venezuela\u00ae\u00aeVET\u00ae\u00ae\u00ae\u00a9Solomon\u00ae\u00aeSBT\u00ae\u00ae\u00ae\u00a9Paraguay\u00ae\u00aePYT\u00ae\u00aePYST\u00ae\u00a9Yakutsk\u00ae\u00aeYAKT\u00ae\u00aeYAKST\u00ae\u00a9Azerbaijan\u00ae\u00aeAZT\u00ae\u00aeAZST\u00ae\u00a9Kizilorda\u00ae\u00aeKIZT\u00ae\u00aeKIZST\u00ae\u00a9Yukon\u00ae\u00aeYST\u00ae\u00aeYDT\u00ae\u00a9Dutch_Guiana\u00ae\u00aeNEGT\u00ae\u00ae\u00ae\u00a9Yerevan\u00ae\u00aeYERT\u00ae\u00aeYERST\u00ae\u00a9Turkmenistan\u00ae\u00aeTMT\u00ae\u00aeTMST\u00ae\u00a9Newfoundland\u00ae\u00aeNST\u00ae\u00aeNDT\u00ae\u00a9Africa_Eastern\u00ae\u00aeEAT\u00ae\u00ae\u00ae\u00a9Wake\u00ae\u00aeWAKT\u00ae\u00ae\u00ae\u00a9Pakistan\u00ae\u00aePKT\u00ae\u00aePKST\u00ae\u00a9Singapore\u00ae\u00aeSGT\u00ae\u00ae\u00ae\u00a9Europe_Western\u00ae\u00aeWET\u00ae\u00aeWEST\u00ae\u00a9Kuybyshev\u00ae\u00aeKUYT\u00ae\u00aeKUYST\u00ae\u00a9India\u00ae\u00aeIST\u00ae\u00ae\u00ae\u00a9Chamorro\u00ae\u00aeChST\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00ae\u00aeWGT\u00ae\u00aeWGST\u00ae\u00a9Bolivia\u00ae\u00aeBOT\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u00aeWIT\u00ae\u00ae\u00ae\u00a9Galapagos\u00ae\u00aeGALT\u00ae\u00ae\u00ae\u00a9Iran\u00ae\u00aeIRST\u00ae\u00aeIRDT\u00ae\u00a9Suriname\u00ae\u00aeSRT\u00ae\u00ae\u00ae\u00a9Vostok\u00ae\u00aeVOST\u00ae\u00ae\u00ae\u00a9Papua_New_Guinea\u00ae\u00aePGT\u00ae\u00ae\u00ae\u00a9Malaya\u00ae\u00aeMALT\u00ae\u00ae\u00ae\u00a9Bering\u00ae\u00aeBST (Bering)\u00ae\u00aeBDT (Bering)\u00ae\u00a9Mawson\u00ae\u00aeMAWT\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u00aeGET\u00ae\u00aeGEST\u00ae\u00a9Kyrgystan\u00ae\u00aeKGT\u00ae\u00ae\u00ae\u00a9French_Southern\u00ae\u00aeTFT\u00ae\u00ae\u00ae\u00a9Ponape\u00ae\u00aePONT\u00ae\u00ae\u00ae\u00a9Christmas\u00ae\u00aeCXT\u00ae\u00ae\u00ae\u00a9Lanka\u00ae\u00aeLKT\u00ae\u00ae\u00ae\u00a9Philippines\u00ae\u00aePHT\u00ae\u00aePHST\u00ae\u00a9Argentina_Western\u00ae\u00aeWART\u00ae\u00ae\u00ae\u00a9Volgograd\u00ae\u00aeVOLT\u00ae\u00aeVOLST\u00ae\u00a9Hong_Kong\u00ae\u00aeHKT\u00ae\u00aeHKST\u00ae\u00a9Kazakhstan_Western\u00ae\u00aeWKST\u00ae\u00ae\u00ae\u00a9Guam\u00ae\u00aeGST (GU)\u00ae\u00ae\u00ae\u00a9Amazon\u00ae\u00aeAMT\u00ae\u00aeAMST\u00ae\u00a9Pierre_Miquelon\u00ae\u00aePMST\u00ae\u00aePMDT\u00ae\u00a9Niue\u00ae\u00aeNUT\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u00aeTRT\u00ae\u00aeTRST\u00ae\u00a9Nepal\u00ae\u00aeNPT\u00ae\u00ae\u00ae\u00a9Cook\u00ae\u00aeCKT\u00ae\u00aeCKHST\u00ae\u00a9Macau\u00ae\u00aeMOT\u00ae\u00aeMOST\u00ae\u00a9Mauritius\u00ae\u00aeMUT\u00ae\u00ae\u00ae\u00a9Cuba\u00ae\u00aeCST (CU)\u00ae\u00aeCDT (CU)\u00ae\u00a9Lord_Howe\u00ae\u00aeLHST\u00ae\u00aeLHDT\u00ae\u00a9Tonga\u00ae\u00aeTOT\u00ae\u00aeTOST\u00ae\u00a9Maldives\u00ae\u00aeMVT\u00ae\u00ae\u00ae\u00a9Mongolia\u00ae\u00aeULAT\u00ae\u00aeULAST\u00ae\u00a9Norfolk\u00ae\u00aeNFT\u00ae\u00ae\u00ae\u00a9Anadyr\u00ae\u00aeANAT\u00ae\u00aeANAST\u00ae\u00a9Irkutsk\u00ae\u00aeIRKT\u00ae\u00aeIRKST\u00ae\u00a9Indonesia_Eastern\u00ae\u00aeEIT\u00ae\u00ae\u00ae\u00a9Myanmar\u00ae\u00aeMMT\u00ae\u00ae\u00ae\u00a9Reunion\u00ae\u00aeRET\u00ae\u00ae\u00ae\u00a9Gulf\u00ae\u00aeGST\u00ae\u00ae\u00ae\u00a9Afghanistan\u00ae\u00aeAFT\u00ae\u00ae\u00ae\u00a9Kashgar\u00ae\u00aeKAST\u00ae\u00ae\u00ae\u00a9Brunei\u00ae\u00aeBNT\u00ae\u00ae\u00ae\u00a9Novosibirsk\u00ae\u00aeNOVT\u00ae\u00aeNOVST\u00ae\u00a9Brasilia\u00ae\u00aeBRT\u00ae\u00aeBRST\u00ae\u00a9Line_Islands\u00ae\u00aeLINT\u00ae\u00ae\u00ae\u00a9America_Pacific\u00ae\u00aePST\u00ae\u00aePDT\u00ae\u00a9Hawaii_Aleutian\u00ae\u00aeHST\u00ae\u00ae\u00ae\u00a9Samarkand\u00ae\u00aeSAMT (Samarkand)\u00ae\u00aeSAMST (Samarkand)\u00ae\u00a9Australia_Central\u00ae\u00aeACST\u00ae\u00aeACDT\u00ae\u00a9Long_Shu\u00ae\u00aeLONT\u00ae\u00ae\u00ae\u00a9Fiji\u00ae\u00aeFJT\u00ae\u00aeFJST\u00ae\u00a9Israel\u00ae\u00aeIST (IL)\u00ae\u00aeIDT\u00ae\u00a9Yekaterinburg\u00ae\u00aeYEKT\u00ae\u00aeYEKST\u00ae\u00a9Easter\u00ae\u00aeEAST\u00ae\u00aeEASST\u00ae\u00a9Almaty\u00ae\u00aeALMT\u00ae\u00aeALMST\u00ae\u00a9Sverdlovsk\u00ae\u00aeSVET\u00ae\u00aeSVEST\u00ae\u00a9Africa_Western\u00ae\u00aeWAT\u00ae\u00aeWAST\u00ae\u00a9Samoa\u00ae\u00aeSST\u00ae\u00ae\u00ae\u00a9Bhutan\u00ae\u00aeBTT\u00ae\u00ae\u00ae\u00a9Uralsk\u00ae\u00aeURAT\u00ae\u00aeURAST\u00ae\u00a9Alaska\u00ae\u00aeAKST\u00ae\u00aeAKDT\u00ae\u00a9Urumqi\u00ae\u00aeURUT\u00ae\u00ae\u00ae\u00a9Colombia\u00ae\u00aeCOT\u00ae\u00aeCOST\u00ae\u00a9Aktyubinsk\u00ae\u00aeAKTT\u00ae\u00aeAKTST\u00ae\u00a9Nauru\u00ae\u00aeNRT\u00ae\u00ae\u00ae\u00a9North_Mariana\u00ae\u00aeMPT\u00ae\u00ae\u00ae\u00a9Magadan\u00ae\u00aeMAGT\u00ae\u00aeMAGST\u00ae\u00a9Tajikistan\u00ae\u00aeTJT\u00ae\u00ae\u00ae\u00a9Choibalsan\u00ae\u00aeCHOT\u00ae\u00aeCHOST\u00ae\u00a9New_Caledonia\u00ae\u00aeNCT\u00ae\u00aeNCST\u00ae\u00a9Azores\u00ae\u00aeAZOT\u00ae\u00aeAZOST\u00ae\u00a9Aqtau\u00ae\u00aeAQTT (Aqtau)\u00ae\u00aeAQTST (Aqtau)\u00ae\u00a9Baku\u00ae\u00aeBAKT\u00ae\u00aeBAKST\u00ae\u00a9Australia_Eastern\u00ae\u00aeAEST\u00ae\u00aeAEDT\u00ae\u00a9Davis\u00ae\u00aeDAVT\u00ae\u00ae\u00ae\u00a9Gambier\u00ae\u00aeGAMT\u00ae\u00ae\u00ae\u00a9Noronha\u00ae\u00aeFNT\u00ae\u00aeFNST\u00ae\u00a9Greenland_Central\u00ae\u00aeCGT\u00ae\u00aeCGST\u00ae\u00a9Japan\u00ae\u00aeJST\u00ae\u00aeJDT\u00ae\u00a9Borneo\u00ae\u00aeBORT\u00ae\u00aeBORST\u00ae\u00a9
index ca40f9b24828cf872d565217efe9bda142397029..e09003388f5068a87f44b720008c5f4124d68a7a 100644 (file)
@@ -5,6 +5,7 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.INR=Indian Rupee
 currenciesDisplayName.JPY=Japanese Yen
 currenciesDisplayName.RUB=Russian Ruble
@@ -13,32 +14,31 @@ currenciesDisplayName.GBP=British Pound Sterling
 currenciesDisplayName.EUR=Euro
 currenciesDisplayName.USD=US Dollar
 currenciesDisplayName.BRL=Brazilian Real
+currenciesSymbol.ETB=Br
 currenciesSymbol.DJF=FD
-currenciesSymbol.ERN=$
-currenciesSymbol.USD=US$
-shortMonths=Qun®Nah®Cig®Agd®Cax®Qas®Qad®Leq®Way®Dit®Xim®Kax®®
-months=Qunxa Garablu®Naharsi Kudo®Ciggilta Kudo®Agda Baxisso®Caxah Alsa®Qasa Dirri®Qado Dirri®Leqeeni®Waysu®Diteli®Ximoli®Kaxxa Garablu®®
-shortWeekdays=®Aca®Etl®Tal®Arb®Kam®Gum®Sab®
-weekdays=®Acaada®Etleeni®Talaata®Arbaqa®Kamiisi®Gumqata®Sabti®
-firstDayOfWeek=sat
-eras=Yaasuusuk Duma®Yaasuusuk Wadir®
-ampms=saaku®carra®
+currenciesSymbol.ERN=Nfk
+shortMonths=Qun\u00aeNah\u00aeCig\u00aeAgd\u00aeCax\u00aeQas\u00aeQad\u00aeLeq\u00aeWay\u00aeDit\u00aeXim\u00aeKax\u00ae\u00ae
+months=Qunxa Garablu\u00aeKudo\u00aeCiggilta Kudo\u00aeAgda Baxis\u00aeCaxah Alsa\u00aeQasa Dirri\u00aeQado Dirri\u00aeLiiqen\u00aeWaysu\u00aeDiteli\u00aeXimoli\u00aeKaxxa Garablu\u00ae\u00ae
+shortWeekdays=\u00aeAca\u00aeEtl\u00aeTal\u00aeArb\u00aeKam\u00aeGum\u00aeSab\u00ae
+weekdays=\u00aeAcaada\u00aeEtleeni\u00aeTalaata\u00aeArbaqa\u00aeKamiisi\u00aeGumqata\u00aeSabti\u00ae
+eras=Yaasuusuk Duma\u00aeYaasuusuk Wadir\u00ae
+ampms=saaku\u00aecarra\u00ae
 shortDateFormat=dd/MM/yy
 mediumDateFormat=dd-MMM-yyyy
 longDateFormat=dd MMMM yyyy
 fullDateFormat=EEEE, MMMM dd, yyyy
 shortTimeFormat=h:mm a
 mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.FR=France
 territories.DJ=Yabuuti
 territories.IN=India
 territories.CN=China
-territories.ET=Otobbia
 territories.DE=Germany
-territories.GB=United Kingdom
+territories.ET=Otobbia
 territories.ER=Eretria
+territories.GB=United Kingdom
 territories.BR=Brazil
 territories.RU=Russia
 territories.JP=Japan
index 2000d9426e2be7cb19e64a5179011dc501accc73..fcde5e2c72fbabe3062a117176ba72b7fa6506fb 100644 (file)
@@ -5,4 +5,6 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ETB=ETB
+currenciesSymbol.ERN=$
+months=\u00aeNaharsi Kudo\u00ae\u00aeAgda Baxisso\u00ae\u00ae\u00ae\u00aeLeqeeni\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
index 2f6445f5b3c8daef695f304d40628053092beb58..4271bbbdedf9640acd80940a81870eabd3c2b768 100644 (file)
@@ -5,5 +5,5 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
-months=®Kudo®®Agda Baxis®®®®Liiqen®®®®®®
+currenciesSymbol.ETB=ETB
+currenciesSymbol.ERN=$
index 12ee51eb3b96f3f3c831ce86b979a4f16511d04e..5399d6ce2974c34f98def2acd0e0e7044352aabc 100644 (file)
@@ -5,5 +5,5 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-shortWeekdays=®Nab®San®Sal®Rab®Cam®Jum®Qun®
-weekdays=®Naba Sambat®Sani®Salus®Rabuq®Camus®Jumqata®Qunxa Sambat®
+shortWeekdays=\u00aeNab\u00aeSan\u00aeSal\u00aeRab\u00aeCam\u00aeJum\u00aeQun\u00ae
+weekdays=\u00aeNaba Sambat\u00aeSani\u00aeSalus\u00aeRabuq\u00aeCamus\u00aeJumqata\u00aeQunxa Sambat\u00ae
index cae92849194253bf1765199403b0b3ca0c56041a..fd99f45a078be4457f0476fb415cdee380abb705 100644 (file)
 
 decimalSeparator=,
 groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesDisplayName.ITL=Italiaanse lier
+currenciesDisplayName.NAD=Namibiese dollar
+currenciesDisplayName.JPY=Japannese jen
+currenciesDisplayName.RUB=Roebel
 currenciesDisplayName.ZAR=Rand
+currenciesDisplayName.TRL=Ou Turkse lier
+currenciesDisplayName.CHF=Switserse frank
+currenciesDisplayName.BRL=Reaal
+currenciesDisplayName.CNY=Joean
+currenciesDisplayName.USD=Amerikaanse dollar
+currenciesDisplayName.XXX=Onbekende of ongeldige geldeenheid
+currenciesDisplayName.EUR=Euro
+currenciesDisplayName.TRY=Turkse lier
+currenciesDisplayName.GBP=Britse pond
 currenciesSymbol.ZAR=R
-shortMonths=Jan®Feb®Mar®Apr®Mei®Jun®Jul®Aug®Sep®Okt®Nov®Des®®
-months=Januarie®Februarie®Maart®April®Mei®Junie®Julie®Augustus®September®Oktober®November®Desember®®
-shortWeekdays=®So®Ma®Di®Wo®Do®Vr®Sa®
-weekdays=®Sondag®Maandag®Dinsdag®Woensdag®Donderdag®Vrydag®Saterdag®
-eras=v.C.®n.C.®
-ampms=vm.®nm.®
-territories.AU=Australi\u00eb
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMei\u00aeJun\u00aeJul\u00aeAug\u00aeSep\u00aeOkt\u00aeNov\u00aeDes\u00ae\u00ae
+months=Januarie\u00aeFebruarie\u00aeMaart\u00aeApril\u00aeMei\u00aeJunie\u00aeJulie\u00aeAugustus\u00aeSeptember\u00aeOktober\u00aeNovember\u00aeDesember\u00ae\u00ae
+shortWeekdays=\u00aeSo\u00aeMa\u00aeDi\u00aeWo\u00aeDo\u00aeVr\u00aeSa\u00ae
+weekdays=\u00aeSondag\u00aeMaandag\u00aeDinsdag\u00aeWoensdag\u00aeDonderdag\u00aeVrydag\u00aeSaterdag\u00ae
+eras=v.C.\u00aen.C.\u00ae
+ampms=vm.\u00aenm.\u00ae
+shortDateFormat=yyyy/MM/dd
+mediumDateFormat=dd MMM yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+territories.TJ=Tadjikistan
+territories.TH=Thailand
 territories.TD=Tsjaad
-territories.AT=Oostenryk
-territories.AR=Argentini\u00eb
 territories.GW=Guinee-Bissau
-territories.MZ=Mosambiek
-territories.MY=Maleisi\u00eb
-territories.MX=Meksiko
-territories.AM=Armeni\u00eb
 territories.GR=Griekeland
-territories.ZA=Suid-Afrika
-territories.MV=Maldive
-territories.AL=Albani\u00eb
 territories.GQ=Ekwatoriaal-Guinee
+territories.SZ=Swaziland
 territories.SY=Siri\u00eb
 territories.GN=Guinee
-territories.MR=Mouritani\u00eb
 territories.GM=Gambi\u00eb
+territories.GL=Groenland
 territories.SV=Salvador
-territories.AG=Antigua en Barbuda
-territories.AF=Afganistan
 territories.ST=Sao Tome en Principe
-territories.AE=Verenigde Arabiese Emirate
-territories.MN=Mongoli\u00eb
-territories.MK=Macedoni\u00eb
-territories.SO=Somali\u00eb
+territories.061=Polinesi\u00eb
+territories.GH=Ghana
+territories.SR=Suriname
+territories.GF=Frans-Guyana
 territories.GE=Georgi\u00eb
-territories.MH=Marshall-eilande
-territories.MG=Madagaskar
+territories.SO=Somali\u00eb
+territories.SN=Senegal
+territories.SM=San Marino
 territories.GB=Groot-Brittanje
-territories.SK=Slowakye
+territories.SL=Sierra Leone
 territories.GA=Gaboen
+territories.SK=Slowakye
 territories.SI=Sloweni\u00eb
 territories.SG=Singapoer
-territories.MA=Marokko
 territories.SE=Swede
 territories.SD=Soedan
 territories.SC=Seychelle
 territories.SB=Solomon Eilande
 territories.SA=Saoedi-Arabi\u00eb
-territories.YE=Jemen
-territories.LY=Libi\u00eb
 territories.FR=Frankryk
-territories.LV=Letland
-territories.LU=Luxemburg
-territories.LT=Litaue
-territories.LR=Liberi\u00eb
+territories.FO=Faro\u00ebreilande
 territories.FM=Mikronesi\u00eb
+territories.RW=Rwanda
+territories.054=Melanesi\u00eb
+territories.FK=Falklandeilande
+territories.053=Australi\u00eb en Nieu-Seeland
 territories.RU=Rusland
 territories.FJ=Fidji
+territories.FI=Finland
 territories.RO=Roemeni\u00eb
-territories.LB=Libanon
-territories.KZ=Kasakstan
+territories.RE=R\u00e9union
 territories.ET=Ethiopi\u00eb
 territories.ES=Spanje
-territories.KW=Koeweit
-territories.KR=Suid-Korea
-territories.KP=Noord-Korea
-territories.KN=Saint Kitts en Nevis
 territories.EH=Wes-Sahara
-territories.KM=Comore
 territories.EG=Egipte
 territories.EE=Estland
-territories.KH=Kambodja
-territories.KG=Kirgisi\u00eb
-territories.KE=Kenia
 territories.DZ=Algeri\u00eb
 territories.QA=Katar
+territories.039=Suid-Europa
 territories.DO=Dominikaanse Republiek
+territories.PY=Paraguay
+territories.035=Suidoos-Asi\u00eb
+territories.034=Suid-Asi\u00eb
 territories.DK=Denemarke
 territories.DJ=Djiboeti
-territories.JO=Jordani\u00eb
-territories.JM=Jamaika
+territories.PT=Portugal
+territories.030=Oos-Asi\u00eb
+territories.PR=Puerto Rico
 territories.DE=Duitsland
 territories.PL=Pole
-territories.VN=Vi\u00ebtnam
+territories.PK=Pakistan
 territories.PH=Filippyne
 territories.PG=Papoea Nieu-Guinee
 territories.CZ=Tjeggiese Republiek
+territories.PE=Peru
 territories.CY=Ciprus
 territories.CV=Kaap Verde
+territories.PA=Panama
 territories.CU=Kuba
-territories.VC=Saint Vincent en die Grenadine
-territories.CS=Serwi\u00eb
-territories.VA=Vatikaan
-territories.IT=Itali\u00eb
+territories.CS=Serwi\u00eb en Montenegro
+territories.CR=Costa Rica
+territories.029=Karibies
 territories.CN=Sjina
-territories.IS=Ysland
 territories.CM=Kameroen
 territories.CL=Chili
-territories.IQ=Irak
-territories.UZ=Oesbekistan
+territories.021=Noord-Amerika
 territories.CI=Ivoorkus
-territories.IN=Indi\u00eb
 territories.CH=Switserland
 territories.CG=Kongo
 territories.CF=Sentraal-Afrikaanse Republiek
-territories.US=Verenigde State van Amerika
+territories.OM=Oman
 territories.CA=Kanada
-territories.IE=Ierland
-territories.ID=Indonesi\u00eb
 territories.BY=Wit-Rusland
+territories.BW=Botswana
 territories.BT=Bhoetan
+territories.BS=Bahamas
 territories.BR=Brasili\u00eb
-territories.UA=Oekraine
+territories.019=Amerikas
+territories.018=Suider-Afrika
 territories.NZ=Nieu-Seeland
-territories.HU=Hongarye
+territories.017=Midde-Afrika
 territories.BO=Bolivi\u00eb
-territories.HT=Ha\u00efti
 territories.BN=Broenei
-territories.HR=Kroasi\u00eb
-territories.TZ=Tanzani\u00eb
-territories.NR=Naoeroe
+territories.015=Noord-Afrika
+territories.014=Oos-Afrika
+territories.013=Sentraal-Amerika
+territories.BJ=Benin
+territories.011=Wes-Afrika
+territories.172=Statebond
 territories.BH=Bahrein
+territories.NR=Naoeroe
 territories.BG=Bulgarye
 territories.BF=Boerkina Fasso
-territories.TT=Trinidad en Tobago
-territories.NO=Noorwe\u00eb
 territories.BE=Belgi\u00eb
+territories.NO=Noorwe\u00eb
 territories.BD=Bangladesj
-territories.TR=Turkye
+territories.ZW=Zimbabwe
 territories.NL=Nederland
 territories.BA=Bosni\u00eb en Herzegowina
-territories.TN=Tunisi\u00eb
-territories.TM=Turkmeni\u00eb
-territories.TJ=Tadjikistan
-territories.NE=Nigeri\u00eb
+territories.NI=Nicaragua
+territories.NG=Nigeri\u00eb
 territories.AZ=Aserbeidjan
+territories.NE=Niger
+territories.NC=Nieu-Kaledoni\u00eb
 territories.ZM=Zambi\u00eb
 territories.NA=Namibi\u00eb
+territories.AU=Australi\u00eb
+territories.AT=Oostenryk
+territories.AS=Amerikaans Samoa
+territories.AR=Argentini\u00eb
+territories.AQ=Antarktika
+territories.009=Oseani\u00eb
+territories.MZ=Mosambiek
+territories.AO=Angola
+territories.MY=Maleisi\u00eb
+territories.AN=Nederlands-Antille
+territories.MX=Meksiko
+territories.AM=Armeni\u00eb
+territories.005=Suid-Amerika
+territories.AL=Albani\u00eb
+territories.MV=Maldive
+territories.ZA=Suid-Afrika
+territories.MU=Mauritius
+territories.002=Afrika
+territories.MT=Malta
+territories.001=W\u00eareld
+territories.MR=Mouritani\u00eb
+territories.AG=Antigua en Barbuda
+territories.AF=Afganistan
+territories.AE=Verenigde Arabiese Emirate
+territories.MO=Macao
+territories.AD=Andorra
+territories.MN=Mongoli\u00eb
+territories.ML=Mali
+territories.MK=Macedoni\u00eb
+territories.MH=Marshall-eilande
+territories.MG=Madagaskar
+territories.MC=Monaco
+territories.MA=Marokko
+territories.YE=Jemen
+territories.LY=Libi\u00eb
+territories.LV=Letland
+territories.155=Wes-Europa
+territories.LU=Luxemburg
+territories.154=Noord-Europa
+territories.LT=Litaue
+territories.LS=Lesotho
+territories.LR=Liberi\u00eb
+territories.151=Oos-Europa
+territories.150=Europa
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LB=Libanon
+territories.LA=Laos
+territories.KZ=Kasakstan
+territories.KY=Kaaimanseilande
+territories.KW=Koeweit
+territories.145=Wes-Asi\u00eb
+territories.143=Sentraal-Asi\u00eb
+territories.142=Asi\u00eb
+territories.KR=Suid-Korea
+territories.KP=Noord-Korea
+territories.KN=Saint Kitts en Nevis
+territories.KM=Comore
+territories.WS=Samoa
+territories.KH=Kambodja
+territories.KG=Kirgisi\u00eb
+territories.KE=Kenia
+territories.JP=Japan
+territories.JO=Jordani\u00eb
+territories.JM=Jamaika
+territories.VN=Vi\u00ebtnam
+territories.VE=Venezuela
+territories.VC=Saint Vincent en die Grenadine
+territories.VA=Vatikaan
+territories.IT=Itali\u00eb
+territories.IS=Ysland
+territories.IR=Iran
+territories.IQ=Irak
+territories.UZ=Oesbekistan
+territories.IN=Indi\u00eb
+territories.IL=Israel
+territories.US=Verenigde State van Amerika
+territories.IE=Ierland
+territories.ID=Indonesi\u00eb
+territories.UG=Uganda
+territories.UA=Oekraine
+territories.HU=Hongarye
+territories.HT=Ha\u00efti
+territories.HR=Kroasi\u00eb
+territories.TZ=Tanzani\u00eb
+territories.TW=Taiwan
+territories.HK=Hongkong
+territories.TT=Trinidad en Tobago
+territories.TR=Turkye
+territories.TO=Tonga
+territories.TN=Tunisi\u00eb
+territories.TM=Turkmeni\u00eb
+languages.la=Latyn
+languages.xh=Xhosa
+languages.ky=Kirgisies
+languages.kw=Kornies
+languages.ku=Koerdies
+languages.ko=Koreaans
+languages.kn=Kannada
+languages.km=Khmer
+languages.grc=Antieke Grieks
+languages.art=Ander Kunsmatig
+languages.ka=Georgies
+languages.gem=Ander Germaans
+languages.afa=Ander Afro-Asiaties
+languages.jv=Javaans
+languages.arc=Aramees
+languages.cel=Ander Kelties
+languages.sco=Skots
+languages.ja=Japannees
+languages.vi=Vi\u00ebtnamees
+languages.ve=Venda
+languages.it=Italiaans
+languages.is=Yslands
+languages.uz=Oesbekies
+languages.ur=Oerdoe
+languages.ie=Interlingue
+languages.id=Indonesies
+languages.hit=Hetities
+languages.ia=Interlingua
+languages.uk=Oekra\u00efens
+languages.ug=Uighoers
+languages.hy=Armeens
+languages.und=Onbepaald
+languages.phn=Fenisies
+languages.got=Goties
+languages.hu=Hongaars
+languages.hr=Kroaties
+languages.fil=Filippyns
+languages.tw=Twi
+languages.hi=Hindi
+languages.ts=Tsonga
+languages.tr=Turks
+languages.cop=Kopties
+languages.he=Hebreeus
+languages.tn=Tswana
+languages.tk=Turkmeens
+languages.ti=Tigrinya
+languages.th=Thais
+languages.te=Telugees
+languages.mas=Masai
+languages.gv=Manx
+languages.ta=Tamil
+languages.gu=Gujarati
+languages.ine=Ander Indo-Europees
+languages.gn=Guarani
+languages.sw=Swahili
+languages.gl=Galicies
+languages.sv=Sweeds
+languages.su=Soedanees
+languages.st=Suid-Sotho
+languages.ss=Swazi
+languages.sr=Serwies
+languages.nso=Sepedi
+languages.sq=Albanees
+languages.so=Somalies
+languages.gd=Skots-Gaelies
+languages.sn=Shona
+languages.sl=Sloweens
+languages.ga=Iers
+languages.sk=Slowaaks
+languages.si=Singalees
+languages.sh=Serwo-Kroaties
+languages.fy=Fries
+languages.sd=Sindhi
+languages.sa=Sanskrit
+languages.fr=Frans
+languages.sla=Ander Slawies
+languages.fo=Faro\u00ebes
+languages.ru=Russies
+languages.fj=Fidjiaans
+languages.fi=Fins
+languages.ro=Roemeens
+languages.fa=Persies
+languages.nl_BE=Vlaams
+languages.es_419=Latyns-Amerikaanse Spaans
+languages.eu=Baskies
+languages.et=Estnies
+languages.es=Spaans
+languages.eo=Esperanto
+languages.en=Engels
+languages.el=Grieks
+languages.pt=Portugees
+languages.pt_BR=Brasiliaanse Portugees
+languages.ber=Berbers
+languages.ps=Pasjtoe
+languages.de=Duits
+languages.pl=Pools
+languages.da=Deens
+languages.cy=Wallies
+languages.pa=Pandjabi
+languages.cu=Kerkslawies
+languages.cs=Tsjeggies
+languages.or=Oria
+languages.ca=Katalaans
+languages.mul=Veelvuldige tale
+languages.oc=Occitaans
+languages.bs=Bosnies
+languages.br=Bretons
+languages.zh_Hans=Vereenvoudigde Sjinees
+languages.bn=Bengaals
+languages.zh_Hant=Tradisionele Sjinees
+languages.bh=Bihari
+languages.nr=Suid-Ndebele
+languages.bg=Bulgaars
+languages.be=Wit-Russies
+languages.no=Noors
+languages.nn=Noorweegse Nynorsk
+languages.nl=Nederlands
+languages.zu=Zoeloe
+languages.sgn=Gebaretaal
+languages.khi=Ander Khoi-San
+languages.az=Aserbeidjaans
+languages.ne=Nepalees
+languages.nd=Noord-Ndebele
+languages.as=Assamees
+languages.ar=Arabies
+languages.zh=Sjinees
+languages.my=Birmaans
+languages.am=Amharies
+languages.mt=Maltees
+languages.ms=Maleisies
+languages.chr=Cherokees
+languages.mr=Mahratti
 languages.af=Afrikaans
+languages.mn=Mongalees
+languages.ml=Malabaars
+languages.bnt=Bantoe
+languages.mk=Macedonies
+languages.mg=Malgassies
+languages.egy=Antieke Egipties
+languages.tlh=Klingon
+languages.yi=Jiddisj
+languages.bat=Ander Balties
+languages.lv=Letties
+languages.lt=Litaus
+languages.lo=Laotanees
+languages.ln=Lingala
+languages.li=Limburgs
+languages.sem=Ander Semities
+languages.kru=kru
+variants.1901=Tradisionele Duitse ortografie
+variants.1996=Duitse ortografie van 1996
+variants.REVISED=Hersiene ortografie
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_af_NA.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_af_NA.properties
new file mode 100644 (file)
index 0000000..2f32086
--- /dev/null
@@ -0,0 +1,16 @@
+# LocaleInformation_af_NA.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+shortDateFormat=yyyy-MM-dd
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ak.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ak.properties
new file mode 100644 (file)
index 0000000..11fb2a0
--- /dev/null
@@ -0,0 +1,23 @@
+# LocaleInformation_ak.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.GHC=Sidi
+currenciesSymbol.GHC=GH\u00a2
+shortMonths=S-\u0186\u00aeK-\u0186\u00aeE-\u0186\u00aeE-O\u00aeE-K\u00aeO-A\u00aeA-K\u00aeD-\u0186\u00aeF-\u0190\u00ae\u0186-A\u00ae\u0186-O\u00aeM-\u0186\u00ae\u00ae
+months=Sanda-\u0186p\u025bp\u0254n\u00aeKwakwar-\u0186gyefuo\u00aeEb\u0254w-\u0186benem\u00aeEb\u0254bira-Oforisuo\u00aeEsusow Aketseaba-K\u0254t\u0254nimba\u00aeObirade-Ay\u025bwohomumu\u00aeAy\u025bwoho-Kitawonsa\u00aeDifuu-\u0186sandaa\u00aeFankwa-\u0190b\u0254\u00ae\u0186b\u025bs\u025b-Ahinime\u00ae\u0186ber\u025bf\u025bw-Obubuo\u00aeMumu-\u0186p\u025bnimba\u00ae\u00ae
+shortWeekdays=\u00aeKwe\u00aeDwo\u00aeBen\u00aeWuk\u00aeYaw\u00aeFia\u00aeMem\u00ae
+weekdays=\u00aeKwesida\u00aeDwowda\u00aeBenada\u00aeWukuda\u00aeYawda\u00aeFida\u00aeMemeneda\u00ae
+eras=AK\u00aeKE\u00ae
+ampms=AN\u00aeEW\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
index e0f52641f71dfe99e1abc2da35b7b6ad8324c1f7..2f4a643129a9c9a66ca5d1d0e41cc11484940c05 100644 (file)
@@ -5,25 +5,35 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+decimalSeparator=.
+groupingSeparator=,
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
 currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
 currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
 currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
-currenciesDisplayName.EUR=\u12a0\u12cd\u122e
+currenciesDisplayName.EUR=\u12e9\u122e
 currenciesDisplayName.ETB=\u12e8\u12a2\u1275\u12ee\u1335\u12eb \u1265\u122d
 currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u1295\u12f5 \u1235\u1270\u122d\u120a\u1295\u130d
-currenciesSymbol.ETB=$
+currenciesSymbol.ETB=\u1265\u122d
 currenciesSymbol.CNY=Y
 currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u1303\u1295\u12e9®\u134c\u1265\u1229®\u121b\u122d\u127d®\u12a4\u1355\u1228®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235®\u1234\u1355\u1274®\u12a6\u12ad\u1270®\u1296\u126c\u121d®\u12f2\u1234\u121d®®
-months=\u1303\u1295\u12e9\u12c8\u122a®\u134c\u1265\u1229\u12c8\u122a®\u121b\u122d\u127d®\u12a4\u1355\u1228\u120d®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235\u1275®\u1234\u1355\u1274\u121d\u1260\u122d®\u12a6\u12ad\u1270\u12cd\u1260\u122d®\u1296\u126c\u121d\u1260\u122d®\u12f2\u1234\u121d\u1260\u122d®®
-shortWeekdays=®\u12a5\u1211\u12f5®\u1230\u129e®\u121b\u12ad\u1230®\u1228\u1261\u12d5®\u1210\u1219\u1235®\u12d3\u122d\u1265®\u1245\u12f3\u121c®
-weekdays=®\u12a5\u1211\u12f5®\u1230\u129e®\u121b\u12ad\u1230\u129e®\u1228\u1261\u12d5®\u1210\u1219\u1235®\u12d3\u122d\u1265®\u1245\u12f3\u121c®
-firstDayOfWeek=sat
-eras=\u12d3/\u12d3®\u12d3/\u121d®
+shortMonths=\u1303\u1295\u12e9\u00ae\u134c\u1265\u1229\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u00ae\u1234\u1355\u1274\u00ae\u12a6\u12ad\u1270\u00ae\u1296\u126c\u121d\u00ae\u12f2\u1234\u121d\u00ae\u00ae
+months=\u1303\u1295\u12e9\u12c8\u122a\u00ae\u134c\u1265\u1229\u12c8\u122a\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u120d\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u1275\u00ae\u1234\u1355\u1274\u121d\u1260\u122d\u00ae\u12a6\u12ad\u1270\u12cd\u1260\u122d\u00ae\u1296\u126c\u121d\u1260\u122d\u00ae\u12f2\u1234\u121d\u1260\u122d\u00ae\u00ae
+shortWeekdays=\u00ae\u12a5\u1211\u12f5\u00ae\u1230\u129e\u00ae\u121b\u12ad\u1230\u00ae\u1228\u1261\u12d5\u00ae\u1210\u1219\u1235\u00ae\u12d3\u122d\u1265\u00ae\u1245\u12f3\u121c\u00ae
+weekdays=\u00ae\u12a5\u1211\u12f5\u00ae\u1230\u129e\u00ae\u121b\u12ad\u1230\u129e\u00ae\u1228\u1261\u12d5\u00ae\u1210\u1219\u1235\u00ae\u12d3\u122d\u1265\u00ae\u1245\u12f3\u121c\u00ae
+eras=\u12d3/\u12d3\u00ae\u12d3/\u121d\u00ae
+ampms=\u1321\u12cb\u1275\u00ae\u12a8\u1233\u12d3\u1275\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=MMM d yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1363 dd MMMM \u1240\u1295 yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=hh:mm:ss a z
+fullTimeFormat=hh:mm:ss a z
 territories.TL=\u121d\u1235\u122b\u1245 \u1272\u121e\u122d
 territories.TK=\u1276\u12ad\u120b\u12cd
 territories.TJ=\u1273\u1303\u12aa\u1235\u1273\u1295
@@ -47,8 +57,8 @@ territories.GM=\u130b\u121d\u1262\u12eb
 territories.GL=\u130d\u122a\u1295\u120b\u1295\u12f5
 territories.SV=\u12a4\u120d \u1233\u120d\u126b\u12f6\u122d
 territories.ST=\u1233\u12a6 \u1276\u121c \u12a5\u1293 \u1355\u122a\u1295\u1232\u1354
-territories.061=\u1356\u120a\u1294\u12e2\u12eb
 territories.GI=\u130a\u1265\u122b\u120d\u1273\u122d
+territories.061=\u1356\u120a\u1294\u12e2\u12eb
 territories.GH=\u130b\u1293
 territories.SR=\u1231\u122a\u1293\u121d
 territories.GF=\u12e8\u1348\u1228\u1295\u1233\u12ed \u1309\u12ca\u12a0\u1293
@@ -71,11 +81,13 @@ territories.SC=\u1232\u123c\u120d\u1235
 territories.SB=\u1230\u120e\u121e\u1295 \u12f0\u1234\u1275
 territories.SA=\u1233\u12cd\u12f5\u12a0\u1228\u1262\u12eb
 territories.FR=\u1348\u1228\u1295\u1233\u12ed
-territories.057=\u121a\u12ad\u122e\u1294\u12e2\u12eb
 territories.FO=\u12e8\u134b\u122e\u12ed \u12f0\u1234\u1276\u127d
+territories.057=\u121a\u12ad\u122e\u1294\u12e2\u12eb [057]
 territories.FM=\u121a\u12ad\u122e\u1294\u12e2\u12eb
 territories.RW=\u1229\u12cb\u1295\u12f3
+territories.054=\u121c\u120b\u1294\u1232\u12eb
 territories.FK=\u12e8\u134e\u120d\u12ad\u120b\u1295\u12f5 \u12f0\u1234\u1276\u127d
+territories.053=\u12a0\u12cd\u1235\u1275\u122b\u120a\u12eb \u12a5\u1293 \u1292\u12cd \u12da\u120b\u1295\u12f5
 territories.RU=\u122b\u123a\u12eb
 territories.FJ=\u134a\u1302
 territories.FI=\u134a\u1295\u120b\u1295\u12f5
@@ -87,6 +99,7 @@ territories.ER=\u12a4\u122d\u1275\u122b
 territories.EH=\u121d\u12d5\u122b\u1263\u12ca \u1233\u1205\u122b
 territories.EG=\u130d\u1265\u133d
 territories.EE=\u12a4\u1235\u1276\u1292\u12eb
+territories.QO=\u12c8\u1323 \u12eb\u1208 \u12a6\u123d\u1292\u12eb
 territories.EC=\u12a2\u12b3\u12f6\u122d
 territories.DZ=\u12a0\u120d\u1304\u122a\u12eb
 territories.QA=\u12b3\u1273\u122d
@@ -94,11 +107,14 @@ territories.039=\u12f0\u1261\u1263\u12ca \u12a0\u12cd\u122e\u1353
 territories.DO=\u12f6\u121a\u1292\u12ad \u122a\u1351\u1265\u120a\u12ad
 territories.PY=\u1353\u122b\u1313\u12ed
 territories.DM=\u12f6\u121a\u1292\u12ab
+territories.035=\u12f0\u1261\u1265-\u121d\u1225\u122b\u1243\u12ca \u12a5\u1235\u12eb [035]
 territories.PW=\u1353\u120b\u12cd
+territories.034=\u121d\u1225\u122b\u1243\u12ca \u12a5\u1235\u12eb
 territories.DK=\u12f4\u1295\u121b\u122d\u12ad
 territories.DJ=\u1302\u1261\u1272
 territories.PT=\u1356\u122d\u1271\u130b\u120d
 territories.PS=\u12e8\u134d\u120d\u1235\u1324\u121d \u130d\u12db\u1275
+territories.030=\u12f0\u1261\u1265-\u121d\u1225\u122b\u1243\u12ca \u12a5\u1235\u12eb [030]
 territories.PR=\u1356\u122d\u1273 \u122a\u12ae
 territories.DE=\u1300\u122d\u1218\u1295
 territories.PN=\u1352\u1275\u12ab\u12a2\u122d\u1295
@@ -117,13 +133,14 @@ territories.PA=\u1353\u1293\u121b
 territories.CU=\u12a9\u1263
 territories.CS=\u1230\u122d\u1262\u12eb
 territories.CR=\u12ae\u1235\u1273 \u122a\u12ab
+territories.029=\u12ab\u122a\u1262\u12eb\u1295
 territories.CO=\u12ae\u120e\u121d\u1262\u12eb
 territories.CN=\u127b\u12ed\u1293
 territories.CM=\u12ab\u121c\u1229\u1295
 territories.CL=\u127a\u120a
 territories.CK=\u12a9\u12ad \u12f0\u1234\u1276\u127d
-territories.CI=\u12ae\u1275 \u12f2\u126f\u122d
 territories.021=\u1230\u121c\u1293\u12ca \u12a0\u121c\u122a\u12ab
+territories.CI=\u12ae\u1275 \u12f2\u126f\u122d
 territories.CH=\u1235\u12ca\u12d8\u122d\u120b\u1295\u12f5
 territories.CG=\u12ae\u1295\u1310
 territories.CF=\u12e8\u1218\u12ab\u12a8\u1208\u129b\u12cd \u12a0\u134d\u122a\u12ab \u122a\u1350\u1265\u120a\u12ad
@@ -138,18 +155,20 @@ territories.BV=\u12e8\u1266\u12cd\u126c\u1275 \u12f0\u1234\u1275
 territories.BT=\u1261\u1205\u1273\u1295
 territories.BS=\u1263\u1203\u121b\u1235
 territories.BR=\u1265\u122b\u12da\u120d
+territories.019=\u12a0\u121c\u122a\u12ab\u12ce\u127d
 territories.018=\u12f0\u1261\u1263\u12ca \u12a0\u134d\u122a\u12ab
 territories.NZ=\u1292\u12cd \u12da\u120b\u1295\u12f5
+territories.017=\u1218\u12ab\u12a8\u1208\u129b \u12a0\u134d\u122a\u12ab
 territories.BO=\u1266\u120a\u126a\u12eb
-territories.017=Middle \u12a0\u134d\u122a\u12ab
 territories.BN=\u1265\u1229\u1292
-territories.BM=\u1264\u122d\u1219\u12f3
 territories.015=\u1230\u121c\u1293\u12ca \u12a0\u134d\u122a\u12ab
+territories.BM=\u1264\u122d\u1219\u12f3
 territories.014=\u121d\u1235\u122b\u1243\u12ca \u12a0\u134d\u122a\u12ab
+territories.013=\u1218\u12ab\u12a8\u1208\u129b \u12a0\u121c\u122a\u12ab [013]
 territories.NU=\u1292\u12a1\u12ed
 territories.BJ=\u1264\u1292\u1295
-territories.BI=\u1265\u1229\u1295\u12f2
 territories.011=\u121d\u12d5\u122b\u1263\u12ca \u12a0\u134d\u122a\u12ab
+territories.BI=\u1265\u1229\u1295\u12f2
 territories.BH=\u1263\u1205\u122c\u1295
 territories.NR=\u1293\u12a1\u1229
 territories.BG=\u1261\u120d\u130c\u122a\u12eb
@@ -167,6 +186,7 @@ territories.NG=\u1293\u12ed\u1304\u122a\u12eb
 territories.NF=\u1296\u122d\u134e\u120d\u12ad \u12f0\u1234\u1275
 territories.AZ=\u12a0\u12d8\u122d\u1263\u1303\u1295
 territories.NE=\u1292\u1300\u122d
+territories.AX=\u12e8\u12a0\u120b\u1295\u12f5 \u12f0\u1234\u1276\u127d
 territories.NC=\u1292\u12cd \u12ab\u120c\u12f6\u1292\u12eb
 territories.AW=\u12a0\u1229\u1263
 territories.ZM=\u12db\u121d\u1262\u12eb
@@ -176,22 +196,23 @@ territories.AT=\u12a6\u1235\u1275\u122a\u12eb
 territories.AS=\u12e8\u12a0\u121c\u122a\u12ab \u1233\u121e\u12a0
 territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
 territories.AQ=\u12a0\u1295\u1273\u122d\u12ad\u1272\u12ab
+territories.009=\u12a6\u123d\u1292\u12eb
 territories.MZ=\u121e\u12db\u121d\u1262\u12ad
 territories.AO=\u12a0\u1295\u1310\u120b
 territories.MY=\u121b\u120c\u12e2\u12eb
 territories.AN=\u1294\u12d8\u122d\u120b\u1295\u12f5\u1235 \u12a0\u1295\u1272\u120d\u1235
 territories.MX=\u121c\u12ad\u1232\u12ae
-territories.005=\u12f0\u1261\u1263\u12ca \u12a0\u121c\u122a\u12ab
 territories.AM=\u12a0\u122d\u121c\u1292\u12eb
+territories.005=\u12f0\u1261\u1263\u12ca \u12a0\u121c\u122a\u12ab
 territories.MW=\u121b\u120b\u12ca
 territories.AL=\u12a0\u120d\u1263\u1292\u12eb
 territories.MV=\u121b\u120d\u12f2\u126d\u1235
 territories.ZA=\u12f0\u1261\u1265 \u12a0\u134d\u122a\u12ab
 territories.MU=\u121b\u1229\u1238\u1235
-territories.002=\u12a0\u121c\u122a\u12ab
+territories.002=\u12a0\u134d\u122a\u12ab
 territories.MT=\u121b\u120d\u1273
-territories.001=\u12d3\u1208\u121d
 territories.AI=\u12a0\u1295\u1309\u12a2\u120b
+territories.001=\u12d3\u1208\u121d
 territories.MS=\u121e\u1295\u1275\u1234\u122b\u1275
 territories.MR=\u121e\u122a\u1274\u1292\u12eb
 territories.AG=\u12a0\u1295\u1272\u1313 \u12a5\u1293 \u1263\u1229\u12f3
@@ -219,25 +240,26 @@ territories.LU=\u1209\u12ad\u1230\u121d\u1260\u122d\u130d
 territories.154=\u1230\u121c\u1293\u12ca \u12a0\u12cd\u122e\u1353
 territories.LT=\u120a\u1271\u12cc\u1292\u12eb
 territories.LS=\u120c\u1236\u1276
-territories.151=\u121d\u1235\u122b\u1243\u12ca \u12a0\u12cd\u122e\u1353
 territories.LR=\u120b\u12ed\u1264\u122a\u12eb
+territories.151=\u121d\u1235\u122b\u1243\u12ca \u12a0\u12cd\u122e\u1353
 territories.150=\u12a0\u12cd\u122e\u1353
 territories.LK=\u1232\u122a\u120b\u1295\u12ab
 territories.LI=\u120a\u127d\u1270\u1295\u1235\u1273\u12ed\u1295
 territories.LC=\u1234\u1295\u1275 \u1209\u127a\u12eb
 territories.LB=\u120a\u1263\u1296\u1235
 territories.LA=\u120b\u12a6\u1235
-territories.KZ=\u12ab\u12db\u12aa\u1235\u1273\u1295
 territories.KY=\u12ab\u12ed\u121b\u1295 \u12f0\u1234\u1276\u127d
 territories.KW=\u12ad\u12cc\u1275
-territories.KR=\u1230\u121c\u1295 \u12ae\u122a\u12eb
-territories.KP=\u12f0\u1261\u1265 \u12ae\u122a\u12eb
+territories.145=\u121d\u12d5\u122b\u1263\u12ca \u12a5\u1235\u12eb
+territories.143=\u1218\u12ab\u12a8\u1208\u129b \u12a0\u121c\u122a\u12ab [143]
+territories.142=\u12a5\u1235\u12eb
+territories.KR=\u12f0\u1261\u1265 \u12ae\u122a\u12eb
+territories.KP=\u1230\u121c\u1295 \u12ae\u122a\u12eb
 territories.KN=\u1245\u12f1\u1235 \u12aa\u1275\u1235 \u12a5\u1293 \u1294\u126a\u1235
 territories.KM=\u12ae\u121e\u122e\u1235
 territories.KI=\u12aa\u122a\u1263\u1272
 territories.WS=\u1233\u121e\u12a0
 territories.KH=\u12ab\u121d\u1266\u12f2\u12eb
-territories.KG=\u12ab\u12db\u12aa\u1235\u1273\u1295
 territories.KE=\u12ac\u1295\u12eb
 territories.WF=\u12cb\u120a\u1235 \u12a5\u1293 \u1349\u1271\u1293 \u12f0\u1234\u1276\u127d
 territories.JP=\u1303\u1353\u1295
@@ -279,145 +301,153 @@ territories.TR=\u1271\u122d\u12ad
 territories.TO=\u1276\u1295\u130b
 territories.TN=\u1271\u1292\u12da\u12eb
 territories.TM=\u1271\u122d\u12ad\u121c\u1292\u1235\u1273\u1295
-languages.es=\u1235\u1353\u1292\u123d
+languages.la=\u120b\u1272\u1295\u129b
+languages.xh=\u12de\u1233\u129b
+languages.byn=\u1265\u120a\u1295
+languages.ky=\u12aa\u122d\u130a\u12dd\u129b
 languages.ku=\u12a9\u122d\u12f5\u123d\u129b
-languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
-languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
 languages.ks=\u12ab\u123d\u121a\u122d\u129b
-languages.el=\u130d\u122a\u12ad\u129b
-languages.qu=\u12b5\u127f\u129b
 languages.ko=\u12ae\u122a\u12eb\u129b
 languages.kn=\u12ab\u1293\u12f3\u129b
 languages.km=\u12ad\u1218\u122d\u129b
 languages.kl=\u12ab\u120b\u120a\u1231\u1275\u129b
 languages.kk=\u12ab\u12db\u12ad\u129b
+languages.gez=\u130d\u12d5\u12dd\u129b
 languages.wo=\u12ce\u120e\u134d\u129b
 languages.ka=\u130a\u12ee\u122d\u130a\u12eb\u1295
-languages.dz=\u12f5\u12de\u1295\u130d\u12bb\u129b
 languages.jv=\u1303\u126b\u1295\u129b
-languages.pt=\u1356\u122d\u1271\u130b\u120a\u129b
-languages.ps=\u1351\u123d\u1276\u129b
-languages.de=\u1300\u122d\u1218\u1295
-languages.pl=\u1356\u120a\u123d
-languages.da=\u12f4\u1292\u123d
 languages.vo=\u126e\u120b\u1351\u12ad\u129b
 languages.ja=\u1303\u1353\u1295\u129b
+languages.tig=\u1275\u130d\u1228
 languages.vi=\u126a\u1275\u1293\u121d\u129b
-languages.cy=\u12c8\u120d\u123d
-languages.pa=\u1353\u1295\u1303\u1262\u129b
-languages.cs=\u127c\u12ad\u129b
 languages.iu=\u12a5\u1291\u12ad\u1272\u1271\u1275\u129b
-languages.co=\u12ae\u122d\u1232\u12ab\u129b
 languages.it=\u1323\u120a\u12eb\u1295\u129b
 languages.is=\u12a0\u12ed\u1235\u120b\u1295\u12f5\u129b
 languages.uz=\u12a1\u12dd\u1260\u12ad\u129b
-languages.or=\u12a6\u122a\u12eb\u129b
 languages.ik=\u12a5\u1291\u1352\u12eb\u1245\u129b
 languages.ur=\u12a1\u122d\u12f1\u129b
-languages.om=\u12a6\u122e\u121d\u129b
-languages.ca=\u12ab\u1273\u120b\u1295\u129b
 languages.ie=\u12a5\u1295\u1270\u122d\u120a\u1295\u130d\u12c8
 languages.id=\u12a5\u1295\u12f6\u1292\u1232\u129b
-languages.uk=\u12e9\u12ad\u1228\u1292\u129b
 languages.ia=\u12a2\u1295\u1274\u122d\u120a\u1295\u1313
-languages.oc=\u12a6\u12aa\u1273\u1295\u129b
+languages.uk=\u12e9\u12ad\u1228\u1292\u129b
 languages.ug=\u12a1\u12ca\u130d\u1201\u122d\u129b
 languages.hy=\u12a0\u122d\u1218\u1293\u12ca
-languages.br=\u1265\u122c\u1276\u1295\u129b
+languages.und=\u12eb\u120d\u1270\u12c8\u1230\u1290
 languages.hu=\u1200\u1295\u130b\u122a\u129b
-languages.bo=\u1275\u1260\u1275\u1295\u129b
-languages.bn=\u1260\u1295\u130b\u120a\u129b
 languages.hr=\u12ad\u122e\u123d\u12eb\u1295\u129b
-languages.bi=\u1262\u1235\u120b\u121d\u129b
+languages.fil=\u134a\u120a\u1355\u1295\u129b
 languages.tw=\u1275\u12ca\u129b
-languages.bh=\u1262\u1203\u122a
-languages.bg=\u1261\u120d\u130b\u122a\u129b
 languages.tt=\u1273\u1273\u122d\u129b
-languages.no=\u1296\u122d\u12cc\u1302\u12eb\u1295
-languages.be=\u1264\u120b\u122b\u123b\u129b
-languages.ts=\u133e\u1295\u130b\u129b
 languages.hi=\u1210\u1295\u12f5\u129b
+languages.ts=\u133e\u1295\u130b\u129b
 languages.tr=\u1271\u122d\u12ad\u129b
-languages.nl=\u12f0\u127d
-languages.zu=\u12d9\u1209\u129b
-languages.ba=\u1263\u1235\u12aa\u122d\u129b
-languages.to=\u1276\u1295\u130b
 languages.he=\u12d5\u1265\u122b\u1235\u1325
+languages.to=\u1276\u1295\u130b
 languages.tn=\u133d\u12cb\u1293\u12ca\u129b
 languages.tl=\u1273\u130b\u120e\u1308\u129b
-languages.tk=\u1271\u122d\u12ad\u1218\u1295\u129b
 languages.ha=\u1203\u12cd\u1233\u129b
-languages.ne=\u1294\u1353\u120a\u129b
-languages.az=\u12a0\u12dc\u122d\u1263\u12ed\u1303\u1295\u129b
+languages.tk=\u1271\u122d\u12ad\u1218\u1295\u129b
 languages.ti=\u1275\u130d\u122d\u129b
-languages.ay=\u12a0\u12eb\u121b\u122d\u129b
 languages.th=\u1273\u12ed\u129b
 languages.tg=\u1273\u1302\u12aa\u129b
-languages.na=\u1293\u12a1\u1229
 languages.te=\u1270\u1209\u1309\u129b
-languages.zh=\u127b\u12ed\u1295\u129b
-languages.as=\u12a0\u1233\u121c\u12db\u12ca
-languages.ar=\u12d0\u122d\u1262\u129b
 languages.ta=\u1273\u121a\u120d\u129b
 languages.gu=\u1309\u1303\u122d\u1272\u129b
-languages.my=\u1261\u122d\u121b\u129b
-languages.am=\u12a0\u121b\u122d\u129b
-languages.za=\u12e1\u12cb\u1295\u130d\u129b
-languages.mt=\u121b\u120d\u1272\u1235\u129b
-languages.ms=\u121b\u120b\u12ed\u129b
 languages.gn=\u1313\u122b\u1292\u129b
-languages.byn=\u1265\u120a\u1295
 languages.sw=\u1235\u12cb\u1202\u120a\u129b
-languages.mr=\u121b\u122b\u12da\u129b
-languages.sv=\u1235\u12ca\u12f5\u1295\u129b
 languages.gl=\u130b\u1208\u130b\u129b
+languages.sv=\u1235\u12ca\u12f5\u1295\u129b
 languages.su=\u1231\u12f3\u1295\u129b
-languages.af=\u12a0\u134d\u122a\u1243\u1295\u1235\u129b
 languages.st=\u1236\u12de\u129b
-languages.mo=\u121e\u120d\u12f3\u126b\u12ca\u1293
 languages.ss=\u1235\u12cb\u1272\u129b
-languages.mn=\u121e\u1295\u130e\u120b\u12ca\u129b
-languages.gez=\u130d\u12d5\u12dd\u129b
 languages.sr=\u1230\u122d\u1262\u129b
 languages.sq=\u120d\u1264\u1292\u129b
-languages.ml=\u121b\u120b\u12eb\u120b\u121d\u129b
-languages.ab=\u12a0\u1265\u1210\u12da\u129b
-languages.mk=\u121b\u12a8\u12f6\u1292\u129b
-languages.aa=\u12a0\u134b\u122d\u129b
 languages.so=\u1231\u121b\u120d\u129b
-languages.sn=\u123e\u1293\u129b
-languages.mi=\u121b\u12ee\u122a\u129b
 languages.gd=\u12a5\u1235\u12ae\u1275\u1235 \u130c\u120d\u12ad\u129b
+languages.sn=\u123e\u1293\u129b
 languages.sm=\u1233\u121e\u12a0\u129b
 languages.sl=\u1235\u120e\u126a\u129b
-languages.mg=\u121b\u120b\u130b\u1235\u129b
-languages.tig=\u1275\u130d\u1228
-languages.sk=\u1235\u120e\u126b\u12ad\u129b
 languages.ga=\u12a0\u12ed\u122a\u123d
-languages.yo=\u12ee\u1229\u1263\u12ca\u129b
+languages.sk=\u1235\u120e\u126b\u12ad\u129b
 languages.si=\u1235\u1295\u1203\u120d\u129b
+languages.sh=\u1230\u122d\u1266-\u12ad\u122e\u12a4\u123d\u12eb\u129b
 languages.sg=\u1233\u1295\u130e\u129b
-languages.yi=\u12ed\u12f2\u123b\u12ca\u129b
-languages.sd=\u1232\u1295\u12f5\u1202\u129b
 languages.fy=\u134d\u122a\u1235\u129b
-languages.sid=\u1232\u12f3\u121d\u129b
+languages.sd=\u1232\u1295\u12f5\u1202\u129b
 languages.sa=\u1233\u1295\u1235\u12ad\u122a\u1275\u129b
 languages.fr=\u1348\u1228\u1295\u1233\u12ed\u129b
-languages.lv=\u120b\u1275\u126a\u12eb\u1295
 languages.fo=\u134b\u122e\u129b
-languages.lt=\u120a\u1271\u12a0\u1292\u12eb\u1295
 languages.rw=\u12aa\u1295\u12eb\u122d\u12cb\u1295\u12f5\u129b
 languages.ru=\u122b\u123d\u129b
 languages.fj=\u134a\u1302\u129b
-languages.lo=\u120b\u12cd\u1235\u129b
 languages.fi=\u134a\u1292\u123d
-languages.ln=\u120a\u1295\u130b\u120b\u129b
 languages.ro=\u122e\u121b\u1292\u12eb\u1295
 languages.rn=\u1229\u1295\u12f2\u129b
 languages.rm=\u122e\u121b\u1295\u1235
 languages.fa=\u1350\u122d\u1232\u12eb\u129b
-languages.la=\u120b\u1272\u1295\u129b
-languages.xh=\u12de\u1233\u129b
+languages.pt_PT=\u1356\u122d\u1271\u130b\u120a\u129b (\u12e8\u1356\u122d\u1271\u130b\u120d)
 languages.eu=\u1263\u1235\u12ad\u129b
 languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
-languages.ky=\u12aa\u122d\u130a\u12dd\u129b
+languages.es=\u1235\u1353\u1292\u123d
+languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
+languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
+languages.el=\u130d\u122a\u12ad\u129b
+languages.qu=\u12b5\u127f\u129b
+languages.dz=\u12f5\u12de\u1295\u130d\u12bb\u129b
+languages.pt=\u1356\u122d\u1271\u130b\u120a\u129b
+languages.pt_BR=\u1356\u122d\u1271\u130b\u120a\u129b (\u12e8\u1265\u122b\u12da\u120d)
+languages.ps=\u1351\u123d\u1276\u129b
+languages.de=\u1300\u122d\u1218\u1295
+languages.pl=\u1356\u120a\u123d
+languages.da=\u12f4\u1292\u123d
+languages.cy=\u12c8\u120d\u123d
+languages.pa=\u1353\u1295\u1303\u1262\u129b
+languages.cs=\u127c\u12ad\u129b
+languages.sid=\u1232\u12f3\u121d\u129b
+languages.co=\u12ae\u122d\u1232\u12ab\u129b
+languages.or=\u12a6\u122a\u12eb\u129b
+languages.om=\u12a6\u122e\u121d\u129b
+languages.ca=\u12ab\u1273\u120b\u1295\u129b
+languages.oc=\u12a6\u12aa\u1273\u1295\u129b
+languages.bs=\u1266\u1235\u1292\u12eb\u1295\u129b
+languages.br=\u1265\u122c\u1276\u1295\u129b
+languages.bo=\u1275\u1260\u1275\u1295\u129b
+languages.bn=\u1260\u1295\u130b\u120a\u129b
+languages.bi=\u1262\u1235\u120b\u121d\u129b
+languages.bh=\u1262\u1203\u122a
+languages.bg=\u1261\u120d\u130b\u122a\u129b
+languages.be=\u1264\u120b\u122b\u123b\u129b
+languages.no=\u1296\u122d\u12cc\u1302\u12eb\u1295
+languages.nn=\u12e8\u1296\u122d\u12cc \u12a0\u12f2\u1231 \u1296\u122d\u12cc\u1305\u12eb\u1295\u129b
+languages.nl=\u12f0\u127d
+languages.ba=\u1263\u1235\u12aa\u122d\u129b
+languages.zu=\u12d9\u1209\u129b
+languages.az=\u12a0\u12dc\u122d\u1263\u12ed\u1303\u1295\u129b
+languages.ne=\u1294\u1353\u120a\u129b
+languages.ay=\u12a0\u12eb\u121b\u122d\u129b
+languages.na=\u1293\u12a1\u1229
+languages.as=\u12a0\u1233\u121c\u12db\u12ca
+languages.ar=\u12d0\u122d\u1262\u129b
+languages.zh=\u127b\u12ed\u1295\u129b
+languages.my=\u1261\u122d\u121b\u129b
+languages.am=\u12a0\u121b\u122d\u129b
+languages.za=\u12e1\u12cb\u1295\u130d\u129b
+languages.mt=\u121b\u120d\u1272\u1235\u129b
+languages.ms=\u121b\u120b\u12ed\u129b
+languages.mr=\u121b\u122b\u12da\u129b
+languages.af=\u12a0\u134d\u122a\u12ab\u1295\u1235\u129b
+languages.mo=\u121e\u120d\u12f3\u126b\u12ca\u1293
+languages.mn=\u121e\u1295\u130e\u120b\u12ca\u129b
+languages.ab=\u12a0\u1265\u1210\u12da\u129b
+languages.ml=\u121b\u120b\u12eb\u120b\u121d\u129b
+languages.aa=\u12a0\u134b\u122d\u129b
+languages.mk=\u121b\u12a8\u12f6\u1292\u129b
+languages.mi=\u121b\u12ee\u122a\u129b
+languages.mg=\u121b\u120b\u130b\u1235\u129b
+languages.yo=\u12ee\u1229\u1263\u12ca\u129b
+languages.tlh=\u12ad\u120a\u1295\u130d\u12a6\u1295\u129b
+languages.yi=\u12ed\u12f2\u123b\u12ca\u129b
+languages.lv=\u120b\u1275\u126a\u12eb\u1295
+languages.lt=\u120a\u1271\u12a0\u1292\u12eb\u1295
+languages.lo=\u120b\u12cd\u1235\u129b
+languages.ln=\u120a\u1295\u130b\u120b\u129b
index b929f64a9438679b32789acf2290d6bd00785f20..2e9c50ff08c97f2a42ad30c468938da0420b475a 100644 (file)
 # This file was automatically generated by gnu.localegen from CLDR.
 
 percent=\u066a
+exponential=\u0627\u0633
+NaN=\u0644\u064a\u0633 \u0631\u0642\u0645
 zeroDigit=\u0660
 decimalSeparator=\u066b
 groupingSeparator=\u066c
-currencyFormat=\u00a4 #,##0.00;\u00a4 #,##0.00-
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.INR=\u0631\u0648\u0628\u064a\u0647 \u0647\u0646\u062f\u064a
-currenciesDisplayName.RUB=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u064a
-currenciesDisplayName.JPY=\u064a\u0646 \u064a\u0627\u0628\u0627\u0646\u064a
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u062f\u064a\u0646\u0627\u0631 \u064a\u0645\u0646\u0649
+currenciesDisplayName.KES=\u0634\u0644\u0646 \u0643\u064a\u0646\u064a\u064a
+currenciesDisplayName.TWD=\u062f\u0648\u0644\u0627\u0631 \u062a\u0627\u064a\u0648\u0627\u0646\u0649
+currenciesDisplayName.LKR=\u0631\u0648\u0628\u064a\u0629 \u0633\u0631\u064a\u0644\u0627\u0646\u0643\u064a\u0629
+currenciesDisplayName.BYB=\u0631\u0648\u0628\u0644 \u0628\u064a\u0644\u0627\u0631\u0648\u0633\u064a \u062c\u062f\u064a\u062f
+currenciesDisplayName.TJS=\u0633\u0648\u0645\u0648\u0646\u064a \u0637\u0627\u062c\u064a\u0643\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.RWF=\u0641\u0631\u0646\u0643 \u0631\u0648\u0627\u0646\u062f\u0649
+currenciesDisplayName.ERN=\u0646\u0627\u0643\u0641\u0627 \u0623\u0631\u064a\u062a\u0631\u0649
+currenciesDisplayName.TJR=\u0631\u0648\u0628\u0644 \u0637\u0627\u062c\u064a\u0643\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.SDP=\u062c\u0646\u064a\u0647 \u0633\u0648\u062f\u0627\u0646\u0649
+currenciesDisplayName.GRD=\u062f\u0631\u0627\u062e\u0645\u0627 \u064a\u0648\u0646\u0627\u0646\u0649
+currenciesDisplayName.AFN=\u0623\u0641\u063a\u0627\u0646\u0649
+currenciesDisplayName.IEP=\u062c\u0646\u064a\u0647 \u0627\u064a\u0631\u0644\u0646\u062f\u0649
+currenciesDisplayName.ARS=\u0628\u064a\u0632\u0648 \u0623\u0631\u062c\u0646\u062a\u064a\u0646\u064a
+currenciesDisplayName.ARP=\u0632\u0648 \u0623\u0631\u062c\u0646\u062a\u064a\u0646\u064a
 currenciesDisplayName.SDD=\u062f\u064a\u0646\u0627\u0631 \u0633\u0648\u062f\u0627\u0646\u064a
-currenciesDisplayName.XAF=\u0641\u0631\u0646\u0643 \u0627\u0641\u0631\u064a\u0642\u064a
+currenciesDisplayName.GEL=\u0644\u0627\u0631\u0649 \u062c\u0648\u0631\u062c\u0649
+currenciesDisplayName.AFA=\u0623\u0641\u063a\u0627\u0646\u064a - 1927-2002
+currenciesDisplayName.CRC=\u0643\u0648\u0644\u0646 \u0643\u0648\u0633\u062a\u0627 \u0631\u064a\u0643\u0649
+currenciesDisplayName.FKP=\u062c\u0646\u064a\u0647 \u062c\u0632\u0631 \u0641\u0648\u0643\u0644\u0627\u0646\u062f
+currenciesDisplayName.EEK=\u0643\u0631\u0648\u0646\u0629 \u0627\u0633\u062a\u0648\u0646\u064a\u0629
+currenciesDisplayName.MDL=\u0644\u0627\u0648 \u0645\u0648\u0644\u062f\u0648\u0641\u0649
+currenciesDisplayName.HKD=\u062f\u0648\u0644\u0627\u0631 \u0647\u0648\u0646\u062c \u0643\u0648\u0646\u062c
+currenciesDisplayName.IQD=\u062f\u064a\u0646\u0627\u0631 \u0639\u0631\u0627\u0642\u0649
+currenciesDisplayName.ARA=\u0627\u0633\u062a\u0631\u0627\u0644 \u0627\u0631\u062c\u0646\u062a\u064a\u0646\u0649
+currenciesDisplayName.SCR=\u0631\u0648\u0628\u064a\u0629 \u0633\u064a\u0634\u064a\u0644\u064a\u0629
+currenciesDisplayName.KPW=\u0648\u0648\u0646 \u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
+currenciesDisplayName.DKK=\u0643\u0631\u0648\u0646\u0629 \u062f\u0627\u0646\u0645\u0627\u0631\u0643\u0649
+currenciesDisplayName.IDR=\u0631\u0648\u0628\u064a\u0629 \u0627\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0629
+currenciesDisplayName.GQE=\u0627\u0643\u0648\u064a\u0644 \u062c\u0648\u0646\u064a\u0646\u0627 \u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u0627\u0633\u062a\u0648\u0627\u0626\u064a\u0651\u0629
+currenciesDisplayName.SOS=\u0634\u0644\u0646 \u0635\u0648\u0645\u0627\u0644\u0649
+currenciesDisplayName.LVR=\u0631\u0648\u0628\u0644 \u0644\u0627\u062a\u0641\u064a\u0627
+currenciesDisplayName.AED=\u062f\u0631\u0647\u0645 \u0627\u0645\u0627\u0631\u0627\u062a\u0649
+currenciesDisplayName.LVL=\u0644\u0627\u062a\u0633 \u0644\u0627\u062a\u0641\u064a\u0627
+currenciesDisplayName.BWP=\u0628\u0648\u0644\u0627 \u0628\u062a\u0633\u0648\u0627\u0646\u0649
+currenciesDisplayName.RUR=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u0649 - 1991-1998
+currenciesDisplayName.XTS=\u0643\u0648\u062f \u0627\u062e\u062a\u0628\u0627\u0631 \u0627\u0644\u0639\u0645\u0644\u0629
+currenciesDisplayName.MOP=\u0628\u0627\u062a\u0627\u0643\u0627 \u0645\u0627\u0643\u0627\u0648\u0649
+currenciesDisplayName.FJD=\u062f\u0648\u0644\u0627\u0631 \u0641\u064a\u062c\u0649
+currenciesDisplayName.ADP=\u0628\u064a\u0633\u062a\u0627 \u0623\u0646\u062f\u0648\u0631\u064a
+currenciesDisplayName.RUB=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u064a
+currenciesDisplayName.CDF=\u0641\u0646\u0643 \u0643\u0648\u0646\u063a\u0648\u0644\u0649
+currenciesDisplayName.NIC=\u0643\u0648\u0631\u062f\u0648\u0628\u0629 \u0646\u064a\u0643\u0627\u0631\u0627\u062c\u0648\u0627
+currenciesDisplayName.DJF=\u0641\u0631\u0646\u0643 \u062c\u064a\u0628\u0648\u062a\u0649
+currenciesDisplayName.UZS=\u0633\u0648\u0645 \u0623\u0648\u0632\u0628\u0643\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.SBD=\u062f\u0648\u0644\u0627\u0631 \u062c\u0632\u0631 \u0633\u0644\u064a\u0645\u0627\u0646
+currenciesDisplayName.LUL=\u0641\u0631\u0646\u0643 \u0644\u0648\u0643\u0633\u0645\u0628\u0631\u062c \u0627\u0644\u0645\u0627\u0644\u0649
+currenciesDisplayName.THB=\u0628\u0627\u062e\u062a \u062a\u0627\u064a\u0644\u0627\u0646\u062f\u0649
+currenciesDisplayName.PHP=\u0628\u064a\u0632\u0648 \u0641\u0644\u0628\u064a\u0646\u0649
+currenciesDisplayName.LUF=\u0641\u0631\u0646\u0643 \u0644\u0648\u0643\u0633\u0645\u0628\u0631\u062c
+currenciesDisplayName.RHD=\u062f\u0648\u0644\u0627\u0631 \u0631\u0648\u062f\u064a\u0633\u0649
+currenciesDisplayName.LUC=\u0641\u0631\u0646\u0643 \u0644\u0648\u0643\u0633\u0645\u0628\u0631\u062c \u0642\u0627\u0628\u0644 \u0644\u0644\u062a\u062d\u0648\u064a\u0644
+currenciesDisplayName.FIM=\u0645\u0627\u0631\u0643\u0627 \u0641\u0646\u0644\u0646\u062f\u0649
+currenciesDisplayName.TTD=\u062f\u0648\u0644\u0627\u0631 \u062a\u0631\u064a\u0646\u062f\u0627\u062f \u0648 \u062a\u0648\u0628\u0627\u062c\u0648
+currenciesDisplayName.SZL=\u0644\u064a\u0644\u0627\u0646\u062c\u064a\u0646\u064a \u0633\u0648\u0627\u0632\u064a\u0644\u0646\u062f\u0649
+currenciesDisplayName.MNT=\u062a\u0648\u063a\u0631\u0648\u063a \u0645\u0646\u063a\u0648\u0644\u0649
+currenciesDisplayName.SAR=\u0631\u064a\u0627\u0644 \u0633\u0639\u0648\u062f\u0649
+currenciesDisplayName.UAH=\u0647\u0631\u064a\u0641\u0646\u064a\u0627 \u0623\u0648\u0643\u0631\u0627\u0646\u0649
+currenciesDisplayName.HUF=\u0641\u0648\u0631\u064a\u0646\u062a \u0645\u062c\u0631\u0649
+currenciesDisplayName.QAR=\u0631\u064a\u0627\u0644 \u0642\u0637\u0631\u0649
+currenciesDisplayName.COP=\u0628\u064a\u0632\u0648 \u0643\u0648\u0644\u0648\u0645\u0628\u0649
+currenciesDisplayName.LTT=\u062a\u0627\u0644\u0648\u0646\u0627\u0633 \u0644\u064a\u062a\u0648\u0627\u0646\u0649
+currenciesDisplayName.PTE=\u0627\u0633\u0643\u0648\u062f \u0628\u0631\u062a\u063a\u0627\u0644\u0649
+currenciesDisplayName.AOR=\u0643\u0648\u0627\u0646\u0632\u0627 \u0623\u0646\u062c\u0648\u0644\u0649 \u0645\u0639\u062f\u0644\u0629 - 1995 - 1999
+currenciesDisplayName.GBP=\u062c\u0646\u064a\u0647 \u0633\u062a\u0631\u0644\u064a\u0646\u064a
+currenciesDisplayName.ZRZ=\u0632\u0627\u0626\u064a\u0631 \u0632\u0627\u0626\u064a\u0631\u0649
+currenciesDisplayName.INR=\u0631\u0648\u0628\u064a\u0647 \u0647\u0646\u062f\u064a
+currenciesDisplayName.BIF=\u0641\u0631\u0646\u0643 \u0628\u0631\u0648\u0646\u062f\u0649
+currenciesDisplayName.LTL=\u0627\u0644\u0644\u064a\u062a\u0627 \u0627\u0644\u0644\u064a\u062a\u0648\u0627\u0646\u064a\u0629
+currenciesDisplayName.AON=\u0643\u0648\u0627\u0646\u0632\u0627 \u0623\u0646\u062c\u0648\u0644\u0649 \u062c\u062f\u064a\u062f\u0629 - 1990-2000
+currenciesDisplayName.UYP=\u0628\u064a\u0632\u0648 \u0623\u0648\u0631\u0648\u062c\u0648\u0627\u0649 - 1975-1993
+currenciesDisplayName.KZT=\u062a\u064a\u0646\u063a \u0643\u0627\u0632\u0627\u062e\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.AOK=\u0643\u0648\u0627\u0646\u0632\u0627 \u0623\u0646\u062c\u0648\u0644\u064a
+currenciesDisplayName.GNS=\u0633\u064a\u0644\u0649 \u063a\u064a\u0646\u064a\u0627
+currenciesDisplayName.BUK=\u0643\u064a\u0627\u062a \u0628\u0648\u0631\u0645\u0649
+currenciesDisplayName.XFO=\u0641\u0631\u0646\u0643 \u0641\u0631\u0646\u0633\u0649 \u0630\u0647\u0628\u0649
+currenciesDisplayName.PGK=\u0643\u064a\u0646\u0627 \u0628\u0627\u0628\u0648\u0627 \u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629
+currenciesDisplayName.SYP=\u062c\u0646\u064a\u0647 \u0633\u0648\u0631\u0649
+currenciesDisplayName.OMR=\u0631\u064a\u0627\u0644 \u0639\u0645\u0627\u0646\u0649
+currenciesDisplayName.MZE=\u0627\u0633\u0643\u0648\u062f \u0645\u0648\u0632\u0645\u0628\u064a\u0642\u0649
+currenciesDisplayName.ZRN=\u0632\u0627\u0626\u064a\u0631 \u0632\u0627\u0626\u064a\u0631\u0649 \u062c\u062f\u064a\u062f
+currenciesDisplayName.NGN=\u0646\u0627\u064a\u0631\u0627 \u0646\u064a\u062c\u064a\u0631\u0649
+currenciesDisplayName.CNY=\u064a\u0648\u0627\u0646 \u0635\u064a\u0646\u064a
+currenciesDisplayName.AOA=\u0643\u0648\u0627\u0646\u0632\u0627 \u0623\u0646\u062c\u0648\u0644\u064a
+currenciesDisplayName.MAF=\u0641\u0631\u0646\u0643 \u0645\u063a\u0631\u0628\u064a
+currenciesDisplayName.GNF=\u0641\u0631\u0646\u0643 \u063a\u064a\u0646\u064a\u0627
+currenciesDisplayName.MAD=\u062f\u0631\u0647\u0645 \u0645\u063a\u0631\u0628\u0649
+currenciesDisplayName.HTG=\u062c\u0648\u0631\u062f\u0649 \u0647\u0627\u064a\u062a\u0649
+currenciesDisplayName.TRY=\u0644\u064a\u0631\u0629 \u062a\u0631\u0643\u064a\u0629 \u062c\u062f\u064a\u062f\u0629
+currenciesDisplayName.MMK=\u0643\u064a\u0627\u062a \u0645\u064a\u0627\u0646\u0645\u0627\u0631
+currenciesDisplayName.MYR=\u0631\u064a\u0646\u063a\u064a\u062a \u0645\u0627\u0644\u064a\u0632\u0649
+currenciesDisplayName.LSM=\u0645\u0627\u0644\u0648\u062a\u0649
+currenciesDisplayName.XEU=\u0648\u062d\u062f\u0629 \u0627\u0644\u0646\u0642\u062f \u0627\u0644\u0623\u0648\u0631\u0648\u0628\u064a\u0629
+currenciesDisplayName.LSL=\u0644\u0648\u062a\u0649 \u0644\u064a\u0633\u0648\u062a\u0648
+currenciesDisplayName.SLL=\u0644\u064a\u0648\u0646 \u0633\u064a\u0631\u0627\u0644\u064a\u0648\u0646\u0649
+currenciesDisplayName.BHD=\u062f\u064a\u0646\u0627\u0631 \u0628\u062d\u0631\u064a\u0646\u064a
+currenciesDisplayName.BTN=\u0646\u0648\u0644\u062a\u0648\u0645 \u0628\u0648\u062a\u0627\u0646\u0649
+currenciesDisplayName.TRL=\u0644\u064a\u0631\u0629 \u062a\u0631\u0643\u064a
 currenciesDisplayName.KMF=\u0641\u0631\u0646\u0643 \u062c\u0632\u0631 \u0627\u0644\u0642\u0645\u0631
+currenciesDisplayName.CZK=\u0643\u0631\u0648\u0646\u0629 \u062a\u0634\u064a\u0643\u064a\u0629
+currenciesDisplayName.ANG=\u062c\u0644\u062f\u0631 \u0647\u0648\u0644\u0646\u062f\u0649 [ANG]
+currenciesDisplayName.AZM=\u0645\u0627\u0646\u0627\u062a \u0623\u0630\u0631\u064a\u0628\u062c\u0627\u0646\u064a
+currenciesDisplayName.KYD=\u062f\u0648\u0644\u0627\u0631 \u062c\u0632\u0631 \u0643\u064a\u0645\u0646
+currenciesDisplayName.GMD=\u062f\u0644\u0627\u0633\u064a \u062c\u0627\u0645\u0628\u064a
+currenciesDisplayName.BGN=\u0644\u064a\u0641 \u0628\u0644\u063a\u0627\u0631\u0649 \u062c\u062f\u064a\u062f
+currenciesDisplayName.CAD=\u062f\u0648\u0644\u0627\u0631 \u0643\u0646\u062f\u0649
+currenciesDisplayName.BGL=\u0644\u064a\u0641 \u0628\u0644\u063a\u0627\u0631\u0649
+currenciesDisplayName.VEB=\u0628\u0648\u0644\u064a\u0641\u0627\u0631 \u0641\u0646\u0632\u0648\u064a\u0644\u064a
+currenciesDisplayName.MLF=\u0641\u0631\u0646\u0643 \u0645\u0627\u0644\u0649
+currenciesDisplayName.MXP=\u0628\u064a\u0632\u0648 \u0641\u0636\u0649 \u0645\u0643\u0633\u064a\u0643\u0649 - 1861-1992
+currenciesDisplayName.ILS=\u0634\u064a\u0643\u0644 \u0627\u0633\u0631\u0627\u0626\u064a\u0644\u0649 \u062c\u062f\u064a\u062f
+currenciesDisplayName.MXN=\u0628\u064a\u0632\u0648 \u0645\u0643\u0633\u064a\u0643\u0649
+currenciesDisplayName.GYD=\u062f\u0648\u0644\u0627\u0631 \u063a\u064a\u0627\u0646\u0627
+currenciesDisplayName.ILP=\u062c\u0646\u064a\u0647 \u0627\u0633\u0631\u0627\u0626\u064a\u0644\u0649
+currenciesDisplayName.CYP=\u062c\u0646\u064a\u0647 \u0642\u0628\u0631\u0635\u0649
+currenciesDisplayName.SKK=\u0643\u0631\u0648\u0646\u0629 \u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0629
+currenciesDisplayName.LRD=\u062f\u0648\u0644\u0627\u0631 \u0644\u064a\u0628\u064a\u0631\u064a
+currenciesDisplayName.AMD=\u062f\u0631\u0627\u0645 \u0623\u0631\u0645\u064a\u0646\u064a
+currenciesDisplayName.BSD=\u062f\u0648\u0644\u0627\u0631 \u0628\u0627\u0647\u0627\u0645\u064a
+currenciesDisplayName.XPT=\u0627\u0644\u0628\u0644\u0627\u062a\u064a\u0646
+currenciesDisplayName.HRK=\u0643\u0648\u0646\u0627 \u0643\u0631\u0648\u0627\u062a\u0649
+currenciesDisplayName.HRD=\u062f\u064a\u0646\u0627\u0631 \u0643\u0631\u0648\u0627\u062a\u0649
+currenciesDisplayName.CLP=\u0628\u064a\u0632\u0648 \u0634\u064a\u0644\u0649
+currenciesDisplayName.FRF=\u0641\u0631\u0646\u0643 \u0641\u0631\u0646\u0633\u0649
+currenciesDisplayName.MKD=\u062f\u064a\u0646\u0627\u0631 \u0645\u0642\u062f\u0648\u0646\u0649
+currenciesDisplayName.ALL=\u0644\u064a\u0643 \u0623\u0644\u0628\u0627\u0646\u064a
+currenciesDisplayName.MWK=\u0643\u0648\u0627\u0634\u0627 \u0645\u0627\u0644\u0627\u0648\u0649
 currenciesDisplayName.BRL=\u0631\u064a\u0627\u0644 \u0628\u0631\u0627\u0632\u064a\u0644\u064a
-currenciesDisplayName.CNY=\u064a\u0648\u0627\u0646 \u0635\u064a\u0646\u064a
+currenciesDisplayName.TPE=\u0627\u0633\u0643\u0648\u062f \u062a\u064a\u0645\u0648\u0631\u0649
+currenciesDisplayName.BRE=\u0643\u0631\u0648\u0632\u0627\u064a\u0631\u0648 \u0628\u0631\u0627\u0632\u064a\u0644\u0649 - 1990-1993
+currenciesDisplayName.BRC=\u0643\u0631\u0648\u0632\u0627\u062f\u0648 \u0628\u0631\u0627\u0632\u064a\u0644\u0649
+currenciesDisplayName.BRB=\u0646\u0648\u0641\u0648 \u0643\u0631\u0648\u0632\u0627\u064a\u0631\u0648 \u0628\u0631\u0627\u0632\u064a\u0644\u0649 - 1967-1986
+currenciesDisplayName.DEM=\u0645\u0627\u0631\u0643 \u0627\u0644\u0645\u0627\u0646\u0649
+currenciesDisplayName.XCD=\u062f\u0648\u0644\u0627\u0631 \u0634\u0631\u0642 \u0627\u0644\u0643\u0627\u0631\u064a\u0628\u0649
+currenciesDisplayName.KWD=\u062f\u064a\u0646\u0627\u0631 \u0643\u0648\u064a\u062a\u0649
+currenciesDisplayName.NPR=\u0631\u0648\u0628\u064a\u0629 \u0646\u064a\u0628\u0627\u0644\u064a
+currenciesDisplayName.GWP=\u0628\u064a\u0632\u0648 \u063a\u064a\u0646\u064a\u0627 \u0628\u064a\u0633\u0627\u0648
+currenciesDisplayName.YUN=\u062f\u064a\u0646\u0627\u0631 \u064a\u0648\u063a\u0633\u0644\u0627\u0641\u0649 \u0642\u0627\u0628\u0644 \u0644\u0644\u062a\u062d\u0648\u064a\u0644
+currenciesDisplayName.SVC=\u0643\u0648\u0644\u0648\u0646 \u0633\u0644\u0641\u0627\u062f\u0648\u0631\u0649
+currenciesDisplayName.SIT=\u062a\u0648\u0644\u0627\u0631 \u0633\u0644\u0648\u0641\u064a\u0646\u064a
+currenciesDisplayName.BEL=\u0641\u0631\u0646\u0643 \u0628\u0644\u062c\u064a\u0643\u0649 (\u0645\u0627\u0644\u064a)\u200f
+currenciesDisplayName.JPY=\u064a\u0646 \u064a\u0627\u0628\u0627\u0646\u064a
+currenciesDisplayName.MVR=\u0631\u0648\u0641\u064a\u0647 \u062c\u0632\u0631 \u0627\u0644\u0645\u0627\u0644\u062f\u064a\u0641
+currenciesDisplayName.BEF=\u0641\u0631\u0646\u0643 \u0628\u0644\u062c\u064a\u0643\u064a
+currenciesDisplayName.GWE=\u0627\u0633\u0643\u0648\u062f \u0628\u0631\u062a\u063a\u0627\u0644\u0649 \u063a\u064a\u0646\u064a\u0627
+currenciesDisplayName.YUD=\u062f\u064a\u0646\u0627\u0631 \u064a\u0648\u063a\u0633\u0644\u0627\u0641\u0649
+currenciesDisplayName.BEC=\u0641\u0631\u0646\u0643 \u0628\u0644\u062c\u064a\u0643\u0649 (\u062a\u062d\u0648\u064a\u0644\u0627\u062a)\u200f
+currenciesDisplayName.SUR=\u0631\u0648\u0628\u0644 \u0633\u0648\u0641\u064a\u062a\u0649
+currenciesDisplayName.ROL=\u0644\u064a\u0648 \u0631\u0648\u0645\u0627\u0646\u0649 \u0642\u062f\u064a\u0645
+currenciesDisplayName.BDT=\u062a\u0627\u0643\u0627 \u0628\u0646\u062c\u0644\u0627\u062f\u064a\u0634\u064a
+currenciesDisplayName.DDM=\u0623\u0648\u0633\u062a\u0645\u0627\u0631\u0643 \u0627\u0644\u0645\u0627\u0646\u0649 \u0634\u0631\u0642\u0649
+currenciesDisplayName.AWG=\u062c\u0644\u062f\u0631 \u0622\u0631\u0648\u0628\u064a
+currenciesDisplayName.XBC=\u0627\u0644\u0648\u062d\u062f\u0629 \u0627\u0644\u062d\u0633\u0627\u0628\u064a\u0629 \u0627\u0644\u0623\u0648\u0631\u0648\u0628\u064a\u0629
+currenciesDisplayName.XBB=\u0627\u0644\u0648\u062d\u062f\u0629 \u0627\u0644\u0645\u0627\u0644\u064a\u0629 \u0627\u0644\u0623\u0648\u0631\u0648\u0628\u064a\u0629
+currenciesDisplayName.XBA=\u0627\u0644\u0648\u062d\u062f\u0629 \u0627\u0644\u0623\u0648\u0631\u0648\u0628\u064a\u0629 \u0627\u0644\u0645\u0631\u0643\u0628\u0629
+currenciesDisplayName.NOK=\u0643\u0631\u0648\u0646\u0629 \u0646\u0631\u0648\u064a\u062c\u064a\u0629
+currenciesDisplayName.MUR=\u0631\u0648\u0628\u064a \u0645\u0648\u0631\u064a\u0634\u064a
+currenciesDisplayName.ZAR=\u0631\u0627\u0646\u062f \u062c\u0646\u0648\u0628 \u0623\u0641\u0631\u064a\u0642\u064a\u0627
+currenciesDisplayName.SHP=\u062c\u0646\u064a\u0647 \u0633\u0627\u0646\u062a \u0647\u064a\u0644\u064a\u0646
+currenciesDisplayName.XAU=\u0630\u0647\u0628
+currenciesDisplayName.ZAL=\u0631\u0627\u0646\u062f \u062c\u0646\u0648\u0628 \u0623\u0641\u0631\u064a\u0642\u064a\u0627 -\u0645\u0627\u0644\u0649
+currenciesDisplayName.VND=\u062f\u0648\u0646\u062c \u0641\u064a\u062a\u0646\u0627\u0645\u0649
+currenciesDisplayName.TZS=\u0634\u0644\u0646 \u062a\u0646\u0632\u0627\u0646\u0649
+currenciesDisplayName.GIP=\u062c\u0646\u064a\u0647 \u062c\u0628\u0644 \u0637\u0627\u0631\u0642
+currenciesDisplayName.TND=\u062f\u064a\u0646\u0627\u0631\u062a\u0648\u0646\u0633\u0649
+currenciesDisplayName.CVE=\u0627\u0633\u0643\u0648\u062f\u0648 \u0627\u0644\u0631\u0623\u0633 \u0627\u0644\u062e\u0636\u0631\u0627\u0621
+currenciesDisplayName.UGX=\u0634\u0644\u0646 \u0623\u0648\u063a\u0646\u062f\u0649
+currenciesDisplayName.XAG=\u0641\u0636\u0629
+currenciesDisplayName.ZMK=\u0643\u0648\u0627\u0634\u0627 \u0632\u0627\u0645\u0628\u0649
+currenciesDisplayName.JOD=\u062f\u064a\u0646\u0627\u0631 \u0623\u0631\u062f\u0646\u0649
+currenciesDisplayName.XAF=\u0641\u0631\u0646\u0643 \u0627\u0641\u0631\u064a\u0642\u064a
+currenciesDisplayName.LBP=\u062c\u0646\u064a\u0629 \u0644\u0628\u0646\u0627\u0646\u0649
+currenciesDisplayName.UGS=\u0634\u0644\u0646 \u0623\u0648\u063a\u0646\u062f\u0649 - 1966-1987
+currenciesDisplayName.STD=\u062f\u0648\u0628\u0631\u0627 \u0633\u0627\u0648 \u062a\u0648\u0645\u064a \u0648\u0628\u0631\u064a\u0646\u0633\u064a\u0628\u064a
+currenciesDisplayName.KHR=\u0631\u064a\u064a\u0627\u0644 \u0643\u0645\u0628\u0648\u062f\u0649
+currenciesDisplayName.DOP=\u0628\u064a\u0632\u0648 \u0627\u0644\u062f\u0648\u0645\u0646\u064a\u0643\u0627\u0646
+currenciesDisplayName.EUR=\u064a\u0648\u0631\u0648
+currenciesDisplayName.BOV=\u0645\u0641\u062f\u0648\u0644 \u0628\u0648\u0644\u064a\u0641\u0649
+currenciesDisplayName.MTP=\u062c\u0646\u064a\u0647 \u0645\u0627\u0644\u0637\u0649
+currenciesDisplayName.USS=\u062f\u0648\u0644\u0627\u0631 \u0623\u0645\u0631\u064a\u0643\u064a (\u0646\u0641\u0633 \u0627\u0644\u064a\u0648\u0645)\u200f
+currenciesDisplayName.BOP=\u0628\u064a\u0632\u0648 \u0628\u0648\u0644\u064a\u0641\u064a
+currenciesDisplayName.CUP=\u0628\u064a\u0632\u0648 \u0643\u0648\u0628\u0649
+currenciesDisplayName.MTL=\u0644\u064a\u0631\u0629 \u0645\u0627\u0644\u0637\u064a\u0629
+currenciesDisplayName.TMM=\u0645\u0627\u0646\u0627\u062a \u062a\u0631\u0643\u0645\u0646\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.USN=\u062f\u0648\u0644\u0627\u0631 \u0623\u0645\u0631\u064a\u0643\u064a (\u0627\u0644\u064a\u0648\u0645 \u0627\u0644\u062a\u0627\u0644\u064a)\u200f
+currenciesDisplayName.SGD=\u062f\u0648\u0644\u0627\u0631 \u0633\u0646\u063a\u0627\u0641\u0648\u0631\u0649
+currenciesDisplayName.NZD=\u062f\u0648\u0644\u0627\u0631 \u0646\u064a\u0648\u0632\u064a\u0644\u0646\u062f\u0649
 currenciesDisplayName.USD=\u062f\u0648\u0644\u0627\u0631 \u0623\u0645\u0631\u064a\u0643\u064a
+currenciesDisplayName.BOB=\u0628\u0648\u0644\u064a\u0641\u0627\u0631\u064a\u0648
+currenciesDisplayName.HNL=\u0644\u064a\u0645\u0628\u064a\u0631\u0627 \u0647\u0646\u062f\u0627\u0631\u0648\u0633
+currenciesDisplayName.ITL=\u0644\u064a\u0631\u0629 \u0627\u064a\u0637\u0627\u0644\u064a\u0629
+currenciesDisplayName.PAB=\u0628\u0627\u0644\u0628\u0648\u0627 \u0628\u0646\u0645\u0649
+currenciesDisplayName.GTQ=\u0643\u0648\u062a\u0632\u0627\u0644 \u062c\u0648\u0627\u062a\u064a\u0645\u0627\u0644\u0627
 currenciesDisplayName.XXX=\u0628\u062f\u0648\u0646 \u0639\u0645\u0644\u0629
+currenciesDisplayName.AUD=\u062f\u0648\u0644\u0627\u0631 \u0623\u0633\u062a\u0631\u0627\u0644\u064a
+currenciesDisplayName.GHC=\u0633\u064a\u062f\u0649 \u063a\u0627\u0646\u0649
+currenciesDisplayName.LAK=\u0643\u064a\u0628 \u0644\u0627\u0648\u0633\u0649
+currenciesDisplayName.NAD=\u062f\u0648\u0644\u0627\u0631 \u0646\u0627\u0645\u0628\u064a\u0627
+currenciesDisplayName.KGS=\u0633\u0648\u0645 \u0642\u064a\u0631\u063a\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.MGF=\u0641\u0631\u0646\u0643 \u0645\u062f\u063a\u0634\u0642\u0631
+currenciesDisplayName.BBD=\u062f\u0648\u0644\u0627\u0631 \u0628\u0631\u0628\u0627\u062f\u0648\u0633\u064a
+currenciesDisplayName.CHF=\u0641\u0631\u0646\u0643 \u0633\u0648\u064a\u0633\u0631\u0649
+currenciesDisplayName.MGA=\u0627\u0631\u064a\u0627\u0631\u064a \u0645\u062f\u063a\u0634\u0642\u0631
+currenciesDisplayName.PYG=\u062c\u0648\u0627\u0631\u0627\u0646\u064a \u0628\u0627\u0631\u0627\u062c\u0648\u0627\u064a
+currenciesDisplayName.PLZ=\u0632\u0644\u0648\u062a\u0649 \u0628\u0648\u0644\u0646\u062f\u0649 - 1950-1995
+currenciesDisplayName.YER=\u0631\u064a\u0627\u0644 \u064a\u0645\u0646\u0649
+currenciesDisplayName.ATS=\u0634\u0644\u0646 \u0646\u0645\u0633\u0627\u0648\u064a
+currenciesDisplayName.ETB=\u0628\u064a\u0631 \u0623\u062b\u064a\u0648\u0628\u0649
+currenciesDisplayName.BND=\u062f\u0648\u0644\u0627\u0631 \u0628\u0631\u0648\u0646\u0627\u064a
+currenciesDisplayName.EGP=\u062c\u0646\u064a\u0647 \u0645\u0635\u0631\u0649
+currenciesDisplayName.JMD=\u062f\u0648\u0644\u0627\u0631 \u062c\u0627\u0645\u0627\u064a\u0643\u0649
+currenciesDisplayName.PLN=\u0632\u0644\u0648\u062a\u0649 \u0628\u0648\u0644\u0646\u062f\u0649
+currenciesDisplayName.DZD=\u062f\u064a\u0646\u0627\u0631 \u062c\u0632\u0627\u0626\u0631\u0649
+currenciesDisplayName.ISK=\u0643\u0631\u0648\u0646\u0647 \u0623\u064a\u0633\u0644\u0646\u062f\u0649
+currenciesDisplayName.SRG=\u062c\u0644\u062f\u0631 \u0633\u0648\u0631\u064a\u0646\u0627\u0645\u0649
+currenciesDisplayName.LYD=\u062f\u064a\u0646\u0627\u0631 \u0644\u064a\u0628\u0649
+currenciesDisplayName.SRD=\u062f\u0648\u0644\u0627\u0631 \u0633\u0648\u0631\u064a\u0646\u0627\u0645\u0649
+currenciesDisplayName.BAM=\u0645\u0627\u0631\u0643 \u0627\u0644\u0628\u0648\u0633\u0646\u0629 \u0648 \u0627\u0644\u0647\u0631\u0633\u0643 \u0642\u0627\u0628\u0644 \u0644\u0644\u062a\u062d\u0648\u064a\u0644
+currenciesDisplayName.BZD=\u062f\u0648\u0644\u0627\u0631 \u0628\u0644\u064a\u0632\u064a
+currenciesDisplayName.ESP=\u0628\u064a\u0632\u064a\u062a\u0627 \u0627\u0633\u0628\u0627\u0646\u064a
+currenciesDisplayName.KRW=\u0648\u0648\u0646 \u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
+currenciesDisplayName.NLG=\u062c\u0644\u062f\u0631 \u0647\u0648\u0644\u0646\u062f\u0649
 currenciesDisplayName.MRO=\u0623\u0648\u0642\u064a\u0629 \u0645\u0648\u0631\u064a\u062a\u0627\u0646\u064a\u0629
-currenciesDisplayName.EUR=\u064a\u0648\u0631\u0648
-currenciesDisplayName.TRY=\u0644\u064a\u0631\u0629 \u062a\u0631\u0643\u064a\u0629 \u062c\u062f\u064a\u062f\u0629
-currenciesDisplayName.GBP=\u062c\u0646\u064a\u0647 \u0633\u062a\u0631\u0644\u064a\u0646\u064a
+currenciesDisplayName.BAD=\u062f\u064a\u0646\u0627\u0631 \u0627\u0644\u0628\u0648\u0633\u0646\u0629 \u0648 \u0627\u0644\u0647\u0631\u0633\u0643
+currenciesDisplayName.ZWD=\u062f\u0648\u0644\u0627\u0631 \u0632\u0645\u0628\u0627\u0628\u0648\u0649
+currenciesDisplayName.SEK=\u0643\u0631\u0648\u0646\u0629 \u0633\u0648\u064a\u062f\u064a\u0629
+currenciesDisplayName.CSK=\u0643\u0631\u0648\u0646\u0629 \u062a\u0634\u064a\u0643\u0648\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0627
+currenciesDisplayName.BYR=\u0631\u0648\u0628\u0644 \u0628\u064a\u0644\u0627\u0631\u0648\u0633\u064a
+currenciesDisplayName.IRR=\u0631\u064a\u0627\u0644 \u0627\u064a\u0631\u0627\u0646\u0649
+currenciesDisplayName.PKR=\u0631\u0648\u0628\u064a\u0629 \u0628\u0627\u0643\u0633\u062a\u0627\u0646\u064a
+currenciesDisplayName.BMD=\u062f\u0648\u0644\u0627\u0631 \u0628\u0631\u0645\u0648\u062f\u064a
+currenciesDisplayName.CSD=\u062f\u064a\u0646\u0627\u0631 \u0635\u0631\u0628\u0649
 currenciesSymbol.OMR=\u0631.\u0639.\u200f
-currenciesSymbol.QAR=\u0631.\u0642.\u200f
 currenciesSymbol.INR=.\u200f\u0631.\u0647
+currenciesSymbol.QAR=\u0631.\u0642.\u200f
 currenciesSymbol.KMF=.\u200f\u0641.\u062c.\u0642
 currenciesSymbol.MAD=\u062f.\u0645.\u200f
 currenciesSymbol.SAR=\u0631.\u0633.\u200f
 currenciesSymbol.XAF=.\u200f\u0641.\u0627
 currenciesSymbol.SDP=\u062c.\u0633.\u200f
 currenciesSymbol.JOD=\u062f.\u0623.\u200f
-currenciesSymbol.IQD=\u062f.\u0639.\u200f
 currenciesSymbol.SYP=\u0644.\u0633.\u200f
-currenciesSymbol.BHD=\u062f.\u0628.\u200f
+currenciesSymbol.IQD=\u062f.\u0639.\u200f
 currenciesSymbol.TND=\u062f.\u062a.\u200f
+currenciesSymbol.BHD=\u062f.\u0628.\u200f
 currenciesSymbol.SDD=.\u200f\u062f.\u0633
 currenciesSymbol.EGP=\u062c.\u0645.\u200f
 currenciesSymbol.KWD=\u062f.\u0643.\u200f
-currenciesSymbol.CNY=.\u200f\u064a.\u0635
-currenciesSymbol.XXX=XXX\u200f
+currenciesSymbol.CNY=\u0649.\u0635
+currenciesSymbol.XXX=***
+currenciesSymbol.DZD=\u062f.\u062c.\u200f
 currenciesSymbol.LBP=\u0644.\u0644.\u200f
 currenciesSymbol.BRL=.\u200f\u0631.\u0628
-currenciesSymbol.DZD=\u062f.\u062c.\u200f
 currenciesSymbol.MRO=.\u200f\u0623.\u0645
 currenciesSymbol.LYD=\u062f.\u0644.\u200f
 currenciesSymbol.RUB=\u0631.\u0631.\u200f
 currenciesSymbol.YER=\u0631.\u064a.\u200f
 currenciesSymbol.AED=\u062f.\u0625.\u200f
-shortMonths=\u064a\u0646\u0627\u064a\u0631®\u0641\u0628\u0631\u0627\u064a\u0631®\u0645\u0627\u0631\u0633®\u0623\u0628\u0631\u064a\u0644®\u0645\u0627\u064a\u0648®\u064a\u0648\u0646\u064a\u0648®\u064a\u0648\u0644\u064a\u0648®\u0623\u063a\u0633\u0637\u0633®\u0633\u0628\u062a\u0645\u0628\u0631®\u0623\u0643\u062a\u0648\u0628\u0631®\u0646\u0648\u0641\u0645\u0628\u0631®\u062f\u064a\u0633\u0645\u0628\u0631®®
-months=\u064a\u0646\u0627\u064a\u0631®\u0641\u0628\u0631\u0627\u064a\u0631®\u0645\u0627\u0631\u0633®\u0623\u0628\u0631\u064a\u0644®\u0645\u0627\u064a\u0648®\u064a\u0648\u0646\u064a\u0648®\u064a\u0648\u0644\u064a\u0648®\u0623\u063a\u0633\u0637\u0633®\u0633\u0628\u062a\u0645\u0628\u0631®\u0623\u0643\u062a\u0648\u0628\u0631®\u0646\u0648\u0641\u0645\u0628\u0631®\u062f\u064a\u0633\u0645\u0628\u0631®®
-shortWeekdays=®\u062d®\u0646®\u062b®\u0631®\u062e®\u062c®\u0633®
-weekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
-firstDayOfWeek=sat
-eras=\u0642.\u0645®\u0645®
-ampms=\u0635®\u0645®
-shortDateFormat=d/M/yyyy
-mediumDateFormat=dd/MM/yyyy
-longDateFormat=d MMMM, yyyy
-fullDateFormat=EEEE, d MMMM, yyyy
+shortMonths=\u064a\u0646\u0627\u064a\u0631\u00ae\u0641\u0628\u0631\u0627\u064a\u0631\u00ae\u0645\u0627\u0631\u0633\u00ae\u0623\u0628\u0631\u064a\u0644\u00ae\u0645\u0627\u064a\u0648\u00ae\u064a\u0648\u0646\u064a\u0648\u00ae\u064a\u0648\u0644\u064a\u0648\u00ae\u0623\u063a\u0633\u0637\u0633\u00ae\u0633\u0628\u062a\u0645\u0628\u0631\u00ae\u0623\u0643\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0641\u0645\u0628\u0631\u00ae\u062f\u064a\u0633\u0645\u0628\u0631\u00ae\u00ae
+months=\u064a\u0646\u0627\u064a\u0631\u00ae\u0641\u0628\u0631\u0627\u064a\u0631\u00ae\u0645\u0627\u0631\u0633\u00ae\u0623\u0628\u0631\u064a\u0644\u00ae\u0645\u0627\u064a\u0648\u00ae\u064a\u0648\u0646\u064a\u0648\u00ae\u064a\u0648\u0644\u064a\u0648\u00ae\u0623\u063a\u0633\u0637\u0633\u00ae\u0633\u0628\u062a\u0645\u0628\u0631\u00ae\u0623\u0643\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0641\u0645\u0628\u0631\u00ae\u062f\u064a\u0633\u0645\u0628\u0631\u00ae\u00ae
+shortWeekdays=\u00ae\u0623\u062d\u062f\u00ae\u0627\u062b\u0646\u064a\u0646\u00ae\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u062e\u0645\u064a\u0633\u00ae\u062c\u0645\u0639\u0629\u00ae\u0633\u0628\u062a\u00ae
+weekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
+eras=\u0642.\u0645\u00ae\u0645\u00ae
+ampms=\u0635\u00ae\u0645\u00ae
+shortDateFormat=d\u200f/M\u200f/yyyy
+mediumDateFormat=dd\u200f/MM\u200f/yyyy
+longDateFormat=d MMMM\u060c yyyy
+fullDateFormat=EEEE\u060c d MMMM\u060c yyyy
 shortTimeFormat=h:mm a
 mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a
 fullTimeFormat=z h:mm:ss a
-territories.TJ=\u062a\u0627\u062c\u064a\u0643\u0633\u062a\u0627\u0646
+territories.TL=\u062a\u064a\u0645\u0648\u0631 \u0627\u0644\u0634\u0631\u0642\u064a\u0629
+territories.TK=\u062a\u0648\u0643\u064a\u0644\u0648
+territories.TJ=\u0637\u0627\u062c\u0643\u0633\u062a\u0627\u0646
 territories.TH=\u062a\u0627\u064a\u0644\u0646\u062f
-territories.TG=\u062a\u0648\u063a\u0648
-territories.GY=\u063a\u0648\u0627\u064a\u0627\u0646\u0627
+territories.TG=\u062a\u0648\u062c\u0648
+territories.TF=\u0627\u0644\u0645\u0642\u0627\u0637\u0639\u0627\u062a \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629
+territories.GY=\u063a\u064a\u0627\u0646\u0627
 territories.TD=\u062a\u0634\u0627\u062f
+territories.TC=\u062c\u0632\u0631 \u0627\u0644\u062a\u0631\u0643 \u0648\u062c\u0627\u064a\u0643\u0648\u0633
 territories.GW=\u063a\u064a\u0646\u064a\u0627 \u0628\u064a\u0633\u0627\u0648
-territories.GT=\u063a\u0648\u0627\u062a\u064a\u0645\u0627\u0644\u0627
+territories.GU=\u062c\u0648\u0627\u0645
+territories.GT=\u062c\u0648\u0627\u062a\u064a\u0645\u0627\u0644\u0627
+territories.GS=\u062c\u0648\u0631\u062c\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 \u0648\u062c\u0632\u0631 \u0633\u0627\u0646\u062f\u0648\u064a\u062a\u0634 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
 territories.GR=\u0627\u0644\u064a\u0648\u0646\u0627\u0646
 territories.GQ=\u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u0627\u0633\u062a\u0648\u0627\u0626\u064a\u0629
+territories.GP=\u062c\u0648\u0627\u062f\u0644\u0648\u0628
 territories.SZ=\u0633\u0648\u0627\u0632\u064a\u0644\u0627\u0646\u062f
-territories.SY=\u0633\u0648\u0631\u064a\u0629
+territories.SY=\u0633\u0648\u0631\u064a\u0627
 territories.GN=\u063a\u064a\u0646\u064a\u0627
 territories.GM=\u063a\u0627\u0645\u0628\u064a\u0627
+territories.GL=\u062c\u0631\u064a\u0646\u0644\u0627\u0646\u062f
 territories.SV=\u0627\u0644\u0633\u0644\u0641\u0627\u062f\u0648\u0631
-territories.ST=\u0633\u0627\u0646 \u062a\u0648\u0645\u064a \u0648\u0628\u0631\u064a\u0646\u0633\u064a\u0628\u064a
+territories.062=\u062c\u0646\u0648\u0628 \u0648\u0633\u0637 \u0622\u0633\u064a\u0627
+territories.ST=\u0633\u0627\u0648 \u062a\u0648\u0645\u064a \u0648\u0628\u0631\u064a\u0646\u0633\u064a\u0628\u064a
+territories.GI=\u062c\u0628\u0644 \u0637\u0627\u0631\u0642
+territories.061=\u0628\u0648\u0644\u064a\u0646\u064a\u0632\u064a\u0627
 territories.GH=\u063a\u0627\u0646\u0627
 territories.SR=\u0633\u0648\u0631\u064a\u0646\u0627\u0645
+territories.GF=\u063a\u0648\u064a\u0627\u0646\u0627
 territories.GE=\u062c\u0648\u0631\u062c\u064a\u0627
 territories.SO=\u0627\u0644\u0635\u0648\u0645\u0627\u0644
-territories.GD=\u063a\u0631\u064a\u0646\u0627\u062f\u0627
+territories.GD=\u062c\u0631\u064a\u0646\u0627\u062f\u0627
 territories.SN=\u0627\u0644\u0633\u0646\u063a\u0627\u0644
 territories.SM=\u0633\u0627\u0646 \u0645\u0627\u0631\u064a\u0646\u0648
 territories.GB=\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629
 territories.SL=\u0633\u064a\u0631\u0627\u0644\u064a\u0648\u0646
-territories.GA=\u063a\u0627\u0628\u0648\u0646
+territories.GA=\u0627\u0644\u062c\u0627\u0628\u0648\u0646
 territories.SK=\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0627
+territories.SJ=\u0633\u0641\u0627\u0644\u0628\u0627\u0631\u062f \u0648\u062c\u0627\u0646 \u0645\u0627\u064a\u0627\u0646
 territories.SI=\u0633\u0644\u0648\u0641\u064a\u0646\u064a\u0627
+territories.SH=\u0633\u0627\u0646\u062a \u0647\u064a\u0644\u0646\u0627
 territories.SG=\u0633\u0646\u063a\u0627\u0641\u0648\u0631\u0629
 territories.SE=\u0627\u0644\u0633\u0648\u064a\u062f
 territories.SD=\u0627\u0644\u0633\u0648\u062f\u0627\u0646
 territories.SC=\u0633\u064a\u0634\u0644
 territories.SB=\u062c\u0632\u0631 \u0633\u0644\u064a\u0645\u0627\u0646
-territories.SA=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629
+territories.SA=\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629
 territories.FR=\u0641\u0631\u0646\u0633\u0627
+territories.FO=\u062c\u0632\u0631 \u0641\u0627\u0631\u0648
+territories.057=\u0627\u0644\u062c\u0632\u0631 \u0627\u0644\u0645\u064a\u0643\u0631\u0648\u0646\u064a\u0632\u064a\u0629
 territories.FM=\u0645\u064a\u0643\u0631\u0648\u0646\u064a\u0632\u064a\u0627
 territories.RW=\u0631\u0648\u0627\u0646\u062f\u0627
+territories.054=\u0645\u064a\u0644\u0627\u0646\u064a\u0632\u064a\u0627
+territories.FK=\u062c\u0632\u0631 \u0641\u0648\u0643\u0644\u0627\u0646\u062f
+territories.053=\u0623\u0633\u062a\u0631\u0627\u0644\u064a\u0627 \u0648\u0646\u064a\u0648\u0632\u064a\u0644\u0646\u062f\u0627
 territories.RU=\u0631\u0648\u0633\u064a\u0627
 territories.FJ=\u0641\u064a\u062c\u064a
 territories.FI=\u0641\u0646\u0644\u0646\u062f\u0627
+territories.RS=\u0635\u0631\u0628\u064a\u0627
 territories.RO=\u0631\u0648\u0645\u0627\u0646\u064a\u0627
-territories.ET=\u0627\u062b\u064a\u0648\u0628\u064a\u0627
-territories.ES=\u0627\u0633\u0628\u0627\u0646\u064a\u0627
-territories.ER=\u0627\u0631\u062a\u064a\u0631\u064a\u0627
+territories.RE=\u0631\u0648\u064a\u0646\u064a\u0648\u0646
+territories.ET=\u0625\u062b\u064a\u0648\u0628\u064a\u0627
+territories.ES=\u0623\u0633\u0628\u0627\u0646\u064a\u0627
+territories.ER=\u0623\u0631\u064a\u062a\u0631\u064a\u0627
+territories.QU=\u0627\u0644\u0627\u062a\u062d\u0627\u062f \u0627\u0644\u0623\u0648\u0631\u0648\u0628\u064a
 territories.EH=\u0627\u0644\u0635\u062d\u0631\u0627\u0621 \u0627\u0644\u063a\u0631\u0628\u064a\u0629
 territories.EG=\u0645\u0635\u0631
 territories.EE=\u0627\u0633\u062a\u0648\u0646\u064a\u0627
-territories.EC=\u0627\u0643\u0648\u0627\u062f\u0648\u0631
+territories.QO=\u0623\u0648\u0642\u064a\u0627\u0646\u0648\u0633\u064a\u0627 \u0627\u0644\u0646\u0627\u0626\u064a\u0629
+territories.EC=\u0627\u0644\u0625\u0643\u0648\u0627\u062f\u0648\u0631
 territories.DZ=\u0627\u0644\u062c\u0632\u0627\u0626\u0631
 territories.QA=\u0642\u0637\u0631
-territories.DO=\u0627\u0644\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0644\u062f\u0648\u0645\u064a\u0646\u064a\u0643\u064a\u0629
-territories.PY=\u0628\u0627\u0631\u0627\u063a\u0648\u0627\u064a
+territories.039=\u062c\u0646\u0648\u0628 \u0623\u0648\u0631\u0648\u0628\u0627
+territories.DO=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0644\u062f\u0648\u0645\u064a\u0646\u064a\u0643
+territories.PY=\u0628\u0627\u0631\u0627\u062c\u0648\u0627\u064a
 territories.DM=\u062f\u0648\u0645\u064a\u0646\u064a\u0643\u0627
+territories.035=\u062c\u0646\u0648\u0628 \u0634\u0631\u0642 \u0622\u0633\u064a\u0627
 territories.PW=\u0628\u0627\u0644\u0627\u0648
+territories.034=\u062c\u0646\u0648\u0628 \u0622\u0633\u064a\u0627
 territories.DK=\u0627\u0644\u062f\u0627\u0646\u0645\u0631\u0643
 territories.DJ=\u062c\u064a\u0628\u0648\u062a\u064a
 territories.PT=\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644
 territories.PS=\u0641\u0644\u0633\u0637\u064a\u0646
-territories.DE=\u0627\u0644\u0645\u0627\u0646\u064a\u0627
+territories.030=\u0634\u0631\u0642 \u0622\u0633\u064a\u0627
+territories.PR=\u0628\u0648\u0631\u062a\u0648\u0631\u064a\u0643\u0648
+territories.DE=\u0623\u0644\u0645\u0627\u0646\u064a\u0627
+territories.PN=\u0628\u062a\u0643\u0627\u064a\u0631\u0646
+territories.PM=\u0633\u0627\u0646\u062a \u0628\u064a\u064a\u0631 \u0648\u0645\u064a\u0643\u0648\u0644\u0648\u0646
 territories.PL=\u0628\u0648\u0644\u0646\u062f\u0627
-territories.PK=\u0627\u0644\u0628\u0627\u0643\u0633\u062a\u0627\u0646
+territories.PK=\u0628\u0627\u0643\u0633\u062a\u0627\u0646
 territories.PH=\u0627\u0644\u0641\u064a\u0644\u0628\u064a\u0646
 territories.PG=\u0628\u0627\u0628\u0648\u0627 \u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629
+territories.PF=\u0628\u0648\u0644\u064a\u0646\u064a\u0632\u064a\u0627 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629
 territories.CZ=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0644\u062a\u0634\u064a\u0643
-territories.CY=\u0642\u0628\u0631\u0635
 territories.PE=\u0628\u064a\u0631\u0648
-territories.CV=\u0627\u0644\u0631\u0623\u0633 \u0627\u0644\u0627\u062e\u0636\u0631
-territories.CU=\u0643\u0648\u0628\u0627
+territories.CY=\u0642\u0628\u0631\u0635
+territories.CX=\u062c\u0632\u064a\u0631\u0629 \u0627\u0644\u0643\u0631\u064a\u0633\u0645\u0627\u0633
+territories.CV=\u0627\u0644\u0631\u0623\u0633 \u0627\u0644\u0623\u062e\u0636\u0631
 territories.PA=\u0628\u0646\u0645\u0627
+territories.CU=\u0643\u0648\u0628\u0627
+territories.CS=\u0635\u0631\u0628\u064a\u0627 \u0648\u0627\u0644\u062c\u0628\u0644 \u0627\u0644\u0623\u0633\u0648\u062f
 territories.CR=\u0643\u0648\u0633\u062a\u0627\u0631\u064a\u0643\u0627
+territories.029=\u0627\u0644\u0643\u0627\u0631\u064a\u0628\u064a
 territories.CO=\u0643\u0648\u0644\u0648\u0645\u0628\u064a\u0627
 territories.CN=\u0627\u0644\u0635\u064a\u0646
 territories.CM=\u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0648\u0646
-territories.CL=\u062a\u0634\u064a\u0644\u064a
+territories.CL=\u0634\u064a\u0644\u064a
+territories.CK=\u062c\u0632\u0631 \u0643\u0648\u0643
+territories.021=\u0634\u0645\u0627\u0644 \u0623\u0645\u0631\u064a\u0643\u0627
+territories.CI=\u0633\u0627\u062d\u0644 \u0627\u0644\u0639\u0627\u062c
 territories.CH=\u0633\u0648\u064a\u0633\u0631\u0627
-territories.CG=\u0627\u0644\u0643\u0648\u0646\u063a\u0648
-territories.CF=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0641\u0631\u064a\u0642\u064a\u0627 \u0627\u0644\u0648\u0633\u0637\u0649
+territories.CG=\u0627\u0644\u0643\u0648\u0646\u063a\u0648 - \u0628\u0631\u0627\u0632\u0627\u0641\u064a\u0644
+territories.CF=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0625\u0641\u0631\u064a\u0642\u064a\u0627 \u0627\u0644\u0648\u0633\u0637\u0649
+territories.CD=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0644\u0643\u0648\u0646\u063a\u0648 \u0627\u0644\u062f\u064a\u0645\u0642\u0631\u0627\u0637\u064a\u0629
+territories.CC=\u062c\u0632\u0631 \u0643\u0648\u0643\u0648\u0633
 territories.OM=\u0639\u0645\u0627\u0646
 territories.CA=\u0643\u0646\u062f\u0627
+territories.419=\u0623\u0645\u0631\u064a\u0643\u0627 \u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629 \u0648 \u0627\u0644\u0643\u0627\u0631\u064a\u0628\u064a
 territories.BZ=\u0628\u0644\u064a\u0632
 territories.BY=\u0631\u0648\u0633\u064a\u0627 \u0627\u0644\u0628\u064a\u0636\u0627\u0621
-territories.BW=\u0628\u0648\u062a\u0633\u0648\u0627\u0646\u0627
+territories.BW=\u0628\u062a\u0633\u0648\u0627\u0646\u0627
+territories.BV=\u062c\u0632\u064a\u0631\u0629 \u0628\u0648\u0641\u064a\u0647
 territories.BT=\u0628\u0648\u062a\u0627\u0646
-territories.BS=\u0627\u0644\u0628\u0647\u0627\u0645\u0627
+territories.BS=\u0627\u0644\u0628\u0627\u0647\u0627\u0645\u0627
 territories.BR=\u0627\u0644\u0628\u0631\u0627\u0632\u064a\u0644
+territories.019=\u0627\u0644\u0623\u0645\u0631\u064a\u0643\u062a\u064a\u0646
+territories.018=\u062c\u0646\u0648\u0628 \u0625\u0641\u0631\u064a\u0642\u064a\u0627
+territories.NZ=\u0646\u064a\u0648\u0632\u064a\u0644\u0627\u0646\u062f\u0627
+territories.017=\u0648\u0633\u0637 \u0625\u0641\u0631\u064a\u0642\u064a\u0627
 territories.BO=\u0628\u0648\u0644\u064a\u0641\u064a\u0627
-territories.NZ=\u0632\u064a\u0644\u0646\u062f\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629
 territories.BN=\u0628\u0631\u0648\u0646\u0627\u064a
+territories.015=\u0634\u0645\u0627\u0644 \u0625\u0641\u0631\u064a\u0642\u064a\u0627
+territories.BM=\u0628\u0631\u0645\u0648\u062f\u0627
+territories.014=\u0634\u0631\u0642 \u0625\u0641\u0631\u064a\u0642\u064a\u0627
+territories.013=\u0623\u0645\u0631\u064a\u0643\u0627 \u0627\u0644\u0648\u0633\u0637\u0649
+territories.NU=\u0646\u064a\u0648\u064a
 territories.BJ=\u0628\u0646\u064a\u0646
+territories.011=\u063a\u0631\u0628 \u0625\u0641\u0631\u064a\u0642\u064a\u0627
 territories.BI=\u0628\u0648\u0631\u0648\u0646\u062f\u064a
+territories.172=\u0643\u0648\u0645\u0646\u0648\u0644\u062b \u0627\u0644\u062f\u0648\u0644 \u0627\u0644\u0645\u0633\u062a\u0642\u0644\u0629
 territories.BH=\u0627\u0644\u0628\u062d\u0631\u064a\u0646
+territories.NR=\u0646\u0648\u0631\u0648
 territories.BG=\u0628\u0644\u063a\u0627\u0631\u064a\u0627
-territories.NR=\u0646\u0627\u0648\u0631\u0648
 territories.BF=\u0628\u0648\u0631\u0643\u064a\u0646\u0627 \u0641\u0627\u0633\u0648
+territories.NP=\u0646\u064a\u0628\u0627\u0644
 territories.BE=\u0628\u0644\u062c\u064a\u0643\u0627
-territories.NP=\u0627\u0644\u0646\u064a\u0628\u0627\u0644
-territories.BD=\u0628\u0646\u063a\u0644\u0627\u062f\u064a\u0634
+territories.ZZ=\u0645\u0646\u0637\u0642\u0629 \u063a\u064a\u0631 \u0645\u0639\u0631\u0641\u0629
 territories.NO=\u0627\u0644\u0646\u0631\u0648\u064a\u062c
+territories.BD=\u0628\u0646\u062c\u0644\u0627\u062f\u064a\u0634
 territories.BB=\u0628\u0631\u0628\u0627\u062f\u0648\u0633
 territories.ZW=\u0632\u064a\u0645\u0628\u0627\u0628\u0648\u064a
-territories.BA=\u0627\u0644\u0628\u0648\u0633\u0646\u0629 \u0648\u0627\u0644\u0647\u0631\u0633\u0643
 territories.NL=\u0647\u0648\u0644\u0646\u062f\u0627
-territories.NI=\u0646\u064a\u0643\u0627\u0631\u0627\u063a\u0648\u0627
+territories.BA=\u0627\u0644\u0628\u0648\u0633\u0646\u0629 \u0648\u0627\u0644\u0647\u0631\u0633\u0643
+territories.NI=\u0646\u064a\u0643\u0627\u0631\u0627\u062c\u0648\u0627
 territories.NG=\u0646\u064a\u062c\u064a\u0631\u064a\u0627
-territories.AZ=\u0622\u0630\u0631\u0628\u064a\u062c\u0627\u0646
+territories.NF=\u062c\u0632\u064a\u0631\u0629 \u0646\u0648\u0631\u0641\u0648\u0643
+territories.AZ=\u0623\u0630\u0631\u0628\u064a\u062c\u0627\u0646
 territories.NE=\u0627\u0644\u0646\u064a\u062c\u0631
+territories.AX=\u062c\u0632\u0631 \u0623\u0648\u0644\u0627\u0646
+territories.NC=\u0643\u0627\u0644\u064a\u062f\u0648\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629
+territories.AW=\u0622\u0631\u0648\u0628\u0627
 territories.ZM=\u0632\u0627\u0645\u0628\u064a\u0627
 territories.NA=\u0646\u0627\u0645\u064a\u0628\u064a\u0627
-territories.AU=\u0627\u0633\u062a\u0631\u0627\u0644\u064a\u0627
+territories.AU=\u0623\u0633\u062a\u0631\u0627\u0644\u064a\u0627
 territories.AT=\u0627\u0644\u0646\u0645\u0633\u0627
-territories.AR=\u0627\u0644\u0627\u0631\u062c\u0646\u062a\u064a\u0646
-territories.AO=\u0627\u0646\u063a\u0648\u0644\u0627
+territories.AS=\u0633\u0627\u0645\u0648\u0627 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629
+territories.AR=\u0627\u0644\u0623\u0631\u062c\u0646\u062a\u064a\u0646
+territories.AQ=\u0627\u0644\u0642\u0637\u0628 \u0627\u0644\u062c\u0646\u0648\u0628\u064a
+territories.009=\u0623\u0648\u0642\u064a\u0627\u0646\u0648\u0633\u064a\u0627
 territories.MZ=\u0645\u0648\u0632\u0645\u0628\u064a\u0642
+territories.AO=\u0623\u0646\u062c\u0648\u0644\u0627
 territories.MY=\u0645\u0627\u0644\u064a\u0632\u064a\u0627
-territories.AM=\u0627\u0631\u0645\u064a\u0646\u064a\u0627
+territories.AN=\u062c\u0632\u0631 \u0627\u0644\u0623\u0646\u062a\u064a\u0644 \u0627\u0644\u0647\u0648\u0644\u0646\u062f\u064a\u0629
 territories.MX=\u0627\u0644\u0645\u0643\u0633\u064a\u0643
+territories.AM=\u0623\u0631\u0645\u064a\u0646\u064a\u0627
+territories.005=\u0623\u0645\u0631\u064a\u0643\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
 territories.MW=\u0645\u0644\u0627\u0648\u064a
-territories.MV=\u0645\u0627\u0644\u062f\u064a\u0641
-territories.ZA=\u062c\u0646\u0648\u0628 \u0627\u0641\u0631\u064a\u0642\u064a\u0627
-territories.MU=\u0645\u0648\u0631\u064a\u0634\u0648\u0633
-territories.AI=\u0627\u0644\u0628\u0627\u0646\u064a\u0627
-territories.MT=\u0645\u0627\u0644\u0637\u0629
-territories.AG=\u0627\u0646\u062a\u064a\u063a\u0648\u0627 \u0648\u0628\u0631\u0628\u0648\u062f\u0627
+territories.AL=\u0623\u0644\u0628\u0627\u0646\u064a\u0627
+territories.MV=\u062c\u0632\u0631 \u0627\u0644\u0645\u0644\u062f\u064a\u0641
+territories.003=\u0623\u0645\u0631\u064a\u0643\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
+territories.ZA=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u062c\u0646\u0648\u0628 \u0627\u0641\u0631\u064a\u0642\u064a\u0627
+territories.MU=\u0645\u0648\u0631\u064a\u0634\u064a\u0648\u0633
+territories.002=\u0623\u0641\u0631\u064a\u0642\u064a\u0627
+territories.MT=\u0645\u0627\u0644\u0637\u0627
+territories.AI=\u0623\u0646\u062c\u0648\u064a\u0644\u0627
+territories.001=\u0627\u0644\u0639\u0627\u0644\u0645
+territories.MS=\u0645\u0648\u0646\u062a\u0633\u0631\u0627\u062a
 territories.MR=\u0645\u0648\u0631\u064a\u062a\u0627\u0646\u064a\u0627
-territories.AF=\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646
-territories.AE=\u0627\u0644\u0627\u0645\u0627\u0631\u0627\u062a \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629
-territories.AD=\u0627\u0646\u062f\u0648\u0631\u0627
+territories.AG=\u0623\u0646\u062a\u064a\u062c\u0648\u0627 \u0648\u0628\u0631\u0628\u0648\u062f\u0627
+territories.MQ=\u0645\u0627\u0631\u062a\u064a\u0646\u064a\u0643
+territories.AF=\u0623\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646
+territories.MP=\u062c\u0632\u0631 \u0645\u0627\u0631\u064a\u0627\u0646\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
+territories.AE=\u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062a \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629
+territories.MO=\u0645\u0627\u0643\u0627\u0648
+territories.AD=\u0623\u0646\u062f\u0648\u0631\u0627
 territories.MN=\u0645\u0646\u063a\u0648\u0644\u064a\u0627
 territories.MM=\u0645\u064a\u0627\u0646\u0645\u0627\u0631
 territories.ML=\u0645\u0627\u0644\u064a
 territories.MK=\u0645\u0642\u062f\u0648\u0646\u064a\u0627
+territories.YT=\u0645\u0627\u064a\u0648\u062a
 territories.MH=\u062c\u0632\u0631 \u0627\u0644\u0645\u0627\u0631\u0634\u0627\u0644
 territories.MG=\u0645\u062f\u063a\u0634\u0642\u0631
-territories.MD=\u0645\u0648\u0644\u062f\u0648\u0641\u0627
+territories.MF=\u0633\u0627\u0646\u062a \u0645\u0627\u0631\u062a\u064a\u0646
+territories.ME=\u0627\u0644\u062c\u0628\u0644 \u0627\u0644\u0623\u0633\u0648\u062f
+territories.MD=\u0645\u0648\u0644\u062f\u0627\u0641\u064a\u0627
 territories.MC=\u0645\u0648\u0646\u0627\u0643\u0648
 territories.MA=\u0627\u0644\u0645\u063a\u0631\u0628
 territories.YE=\u0627\u0644\u064a\u0645\u0646
 territories.LY=\u0644\u064a\u0628\u064a\u0627
 territories.LV=\u0644\u0627\u062a\u0641\u064a\u0627
-territories.LU=\u0644\u0648\u0643\u0633\u0648\u0645\u0628\u0631\u063a
+territories.155=\u063a\u0631\u0628 \u0623\u0648\u0631\u0648\u0628\u0627
+territories.LU=\u0644\u0648\u0643\u0633\u0645\u0628\u0648\u0631\u062c
+territories.154=\u0634\u0645\u0627\u0644 \u0623\u0648\u0631\u0648\u0628\u0627
 territories.LT=\u0644\u064a\u062a\u0648\u0627\u0646\u064a\u0627
 territories.LS=\u0644\u064a\u0633\u0648\u062a\u0648
 territories.LR=\u0644\u064a\u0628\u064a\u0631\u064a\u0627
-territories.LK=\u0633\u0631\u064a \u0644\u0627\u0646\u0643\u0627
+territories.151=\u0634\u0631\u0642 \u0623\u0648\u0631\u0648\u0628\u0627
+territories.150=\u0623\u0648\u0631\u0648\u0628\u0627
+territories.LK=\u0633\u0631\u064a\u0644\u0627\u0646\u0643\u0627
 territories.LI=\u0644\u064a\u062e\u062a\u0646\u0634\u062a\u0627\u064a\u0646
 territories.LC=\u0633\u0627\u0646\u062a \u0644\u0648\u0633\u064a\u0627
 territories.LB=\u0644\u0628\u0646\u0627\u0646
 territories.LA=\u0644\u0627\u0648\u0633
 territories.KZ=\u0643\u0627\u0632\u0627\u062e\u0633\u062a\u0627\u0646
+territories.KY=\u062c\u0632\u0631 \u0627\u0644\u0643\u0627\u064a\u0645\u0646
 territories.KW=\u0627\u0644\u0643\u0648\u064a\u062a
+territories.145=\u063a\u0631\u0628 \u0622\u0633\u064a\u0627
+territories.143=\u0648\u0633\u0637 \u0622\u0633\u064a\u0627
+territories.142=\u0622\u0633\u064a\u0627
 territories.KR=\u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
 territories.KP=\u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
 territories.KN=\u0633\u0627\u0646\u062a \u0643\u064a\u062a\u0633 \u0648\u0646\u064a\u0641\u064a\u0633
@@ -222,117 +521,554 @@ territories.KM=\u062c\u0632\u0631 \u0627\u0644\u0642\u0645\u0631
 territories.KI=\u0643\u064a\u0631\u064a\u0628\u0627\u062a\u064a
 territories.WS=\u0633\u0627\u0645\u0648\u0627
 territories.KH=\u0643\u0645\u0628\u0648\u062f\u064a\u0627
-territories.KG=\u0642\u064a\u0631\u063a\u064a\u0632\u0633\u062a\u0627\u0646
+territories.KG=\u0642\u0631\u063a\u064a\u0632\u0633\u062a\u0627\u0646
 territories.KE=\u0643\u064a\u0646\u064a\u0627
+territories.WF=\u062c\u0632\u0631 \u0648\u0627\u0644\u0633 \u0648\u0641\u0648\u062a\u0648\u0646\u0627
 territories.JP=\u0627\u0644\u064a\u0627\u0628\u0627\u0646
-territories.JO=\u0627\u0644\u0627\u0631\u062f\u0646
+territories.JO=\u0627\u0644\u0623\u0631\u062f\u0646
 territories.JM=\u062c\u0627\u0645\u0627\u064a\u0643\u0627
-territories.VU=\u0641\u0627\u0646\u0648\u0622\u062a\u0648
+territories.VU=\u0641\u0627\u0646\u0648\u0627\u062a\u0648
+territories.JE=\u062c\u064a\u0631\u0633\u064a
 territories.VN=\u0641\u064a\u062a\u0646\u0627\u0645
+territories.VI=\u062c\u0632\u0631 \u0641\u0631\u062c\u064a\u0646 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629
+territories.VG=\u062c\u0632\u0631 \u0641\u0631\u062c\u064a\u0646 \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a\u0629
 territories.VE=\u0641\u0646\u0632\u0648\u064a\u0644\u0627
-territories.VC=\u0633\u0627\u0646\u062a \u0641\u0646\u0633\u0646\u062a \u0648\u062c\u0632\u0631 \u063a\u0631\u064a\u0646\u0627\u062f\u064a\u0646
+territories.VC=\u0633\u0627\u0646\u062a \u0641\u0646\u0633\u0646\u062a \u0648\u063a\u0631\u0646\u0627\u062f\u064a\u0646
 territories.VA=\u0627\u0644\u0641\u0627\u062a\u064a\u0643\u0627\u0646
-territories.IT=\u0627\u064a\u0637\u0627\u0644\u064a\u0627
-territories.IS=\u0627\u064a\u0633\u0644\u0646\u062f\u0627
-territories.IR=\u0627\u064a\u0631\u0627\u0646
+territories.IT=\u0625\u064a\u0637\u0627\u0644\u064a\u0627
+territories.IS=\u0623\u064a\u0633\u0644\u0646\u062f\u0627
+territories.IR=\u0625\u064a\u0631\u0627\u0646
 territories.IQ=\u0627\u0644\u0639\u0631\u0627\u0642
-territories.UZ=\u0627\u0632\u0628\u0643\u0633\u062a\u0627\u0646
-territories.UY=\u0627\u0631\u0648\u063a\u0648\u0627\u064a
+territories.UZ=\u0623\u0648\u0632\u0628\u0643\u0633\u062a\u0627\u0646
+territories.IO=\u0627\u0644\u0645\u062d\u064a\u0637 \u0627\u0644\u0647\u0646\u062f\u064a \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a
+territories.UY=\u0623\u0648\u0631\u062c\u0648\u0627\u064a
 territories.IN=\u0627\u0644\u0647\u0646\u062f
-territories.IL=\u0627\u0633\u0631\u0627\u0626\u064a\u0644
-territories.US=\u0627\u0644\u0627\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629 \u0627\u0644\u0627\u0645\u0631\u064a\u0643\u064a\u0629
-territories.IE=\u0627\u064a\u0631\u0644\u0646\u062f\u0627
+territories.IM=\u062c\u0632\u064a\u0631\u0629 \u0645\u0627\u0646
+territories.IL=\u0625\u0633\u0631\u0627\u0626\u064a\u0644
+territories.US=\u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629
+territories.IE=\u0623\u064a\u0631\u0644\u0627\u0646\u062f\u0627
 territories.ID=\u0627\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0627
-territories.UG=\u0627\u0648\u063a\u0646\u062f\u0627
-territories.UA=\u0627\u0648\u0643\u0631\u0627\u0646\u064a\u0627
-territories.HU=\u0647\u0646\u063a\u0627\u0631\u064a\u0627
+territories.UM=\u062c\u0632\u0631 \u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629 \u0627\u0644\u0628\u0639\u064a\u062f\u0629 \u0627\u0644\u0635\u063a\u064a\u0631\u0629
+territories.UG=\u0623\u0648\u063a\u0646\u062f\u0627
+territories.UA=\u0623\u0648\u0643\u0631\u0627\u0646\u064a\u0627
+territories.HU=\u0627\u0644\u0645\u062c\u0631
 territories.HT=\u0647\u0627\u064a\u062a\u064a
 territories.HR=\u0643\u0631\u0648\u0627\u062a\u064a\u0627
 territories.TZ=\u062a\u0627\u0646\u0632\u0627\u0646\u064a\u0627
 territories.HN=\u0647\u0646\u062f\u0648\u0631\u0627\u0633
+territories.HM=\u062c\u0632\u064a\u0631\u0629 \u0647\u064a\u0631\u062f \u0648\u0645\u0627\u0643\u062f\u0648\u0646\u0627\u0644\u062f
 territories.TW=\u062a\u0627\u064a\u0648\u0627\u0646
 territories.TV=\u062a\u0648\u0641\u0627\u0644\u0648
+territories.HK=\u0647\u0648\u0646\u062c \u0643\u0648\u0646\u062c
 territories.TT=\u062a\u0631\u064a\u0646\u064a\u062f\u0627\u062f \u0648\u062a\u0648\u0628\u0627\u063a\u0648
 territories.TR=\u062a\u0631\u0643\u064a\u0627
-territories.TO=\u062a\u0648\u0646\u063a\u0627
+territories.TO=\u062a\u0648\u0646\u062c\u0627
 territories.TN=\u062a\u0648\u0646\u0633
 territories.TM=\u062a\u0631\u0643\u0645\u0627\u0646\u0633\u062a\u0627\u0646
-languages.es=\u0627\u0644\u0627\u0633\u0628\u0627\u0646\u064a\u0629
+languages.akk=\u0627\u0644\u0623\u0643\u0627\u062f\u064a\u0629
+languages.eka=\u0627\u0644\u0627\u0643\u0627\u062c\u0643
+languages.ijo=\u0627\u0644\u0627\u064a\u062c\u0648
+languages.sux=\u0627\u0644\u0633\u0648\u0645\u0627\u0631\u064a\u0629
+languages.sus=\u0627\u0644\u0633\u0648\u0633\u0648
+languages.mis=\u0644\u063a\u0627\u062a \u0645\u062a\u0646\u0648\u0639\u0629
+languages.loz=\u0627\u0644\u0644\u0648\u0632\u0649
+languages.tog=\u062a\u0648\u0646\u062c\u0627 - \u0646\u064a\u0627\u0633\u0627
+languages.pon=\u0627\u0644\u0628\u0648\u0647\u0646\u0628\u064a\u0627\u064a\u0627\u0646
+languages.min=\u0627\u0644\u0645\u064a\u0646\u0627\u0646\u062c\u0643\u0627\u0628\u0627\u0648
+languages.suk=\u0627\u0644\u0633\u0648\u0643\u0648\u0645\u0627
+languages.wo=\u0627\u0644\u0648\u0644\u0648\u0641
+languages.lol=\u0645\u0648\u0646\u062c\u0648
+languages.kut=\u0627\u0644\u0643\u062a\u064a\u0646\u0627\u0649
+languages.mic=\u0627\u0644\u0645\u064a\u0643\u0645\u0627\u0643\u064a\u0648\u0646\u064a\u0629
+languages.wa=\u0627\u0644\u0648\u0644\u0648\u0646\u064a\u0629
+languages.kum=\u0627\u0644\u0643\u0645\u064a\u0643
+languages.zap=\u0627\u0644\u0632\u0627\u0628\u0648\u062a\u064a\u0643
+languages.ain=\u0627\u0644\u0622\u064a\u0646\u0648\u064a\u0629
+languages.cus=\u0644\u063a\u0629 \u0643\u0634\u064a\u062a\u064a\u0643\u064a\u0629
+languages.jbo=\u0627\u0644\u0644\u0648\u062c\u0628\u0627\u0646
+languages.doi=\u0627\u0644\u062f\u0648\u062c\u0631\u0649
+languages.oto=\u0644\u063a\u0629 \u0623\u062a\u0648\u0645\u064a\u0629
+languages.vi=\u0627\u0644\u0641\u064a\u062a\u0646\u0627\u0645\u064a\u0629
+languages.vai=\u0627\u0644\u0641\u0627\u0649
+languages.rar=\u0627\u0644\u0631\u0627\u0631\u0648\u062a\u0648\u0646\u062c\u0627\u0646\u0649
+languages.ve=\u0627\u0644\u0641\u064a\u0646\u062f\u0627
+languages.rap=\u0627\u0644\u0631\u0627\u0628\u0627\u0646\u0649
+languages.raj=\u0627\u0644\u0631\u0627\u062c\u0627\u0633\u062b\u0627\u0646\u064a\u0629
+languages.ota=\u0627\u0644\u062a\u0631\u0643\u064a\u0629 \u0627\u0644\u0639\u062b\u0645\u0627\u0646\u064a\u0629
+languages.nzi=\u0627\u0644\u0646\u0632\u064a\u0645\u0627
+languages.nap=\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0646\u0627\u0628\u0648\u0644\u064a\u0629
+languages.uz=\u0627\u0644\u0627\u0648\u0632\u0628\u0627\u0643\u064a\u0629
+languages.uga=\u0627\u0644\u064a\u062c\u0627\u0631\u064a\u062a\u064a\u0643
+languages.tmh=\u0627\u0644\u062a\u0627\u0645\u0627\u0634\u064a\u0643
+languages.nai=\u0644\u063a\u0629 \u0647\u0646\u062f \u0623\u0645\u0631\u064a\u0643\u064a\u0629 \u0634\u0645\u0627\u0644\u064a\u0629
+languages.nah=\u0627\u0644\u0646\u0627\u0647\u064a\u0648\u062a\u0644
+languages.ur=\u0627\u0644\u0623\u0631\u062f\u064a\u0629
+languages.fat=\u0627\u0644\u0641\u0627\u0646\u062a\u0649
+languages.uk=\u0627\u0644\u0623\u0648\u0643\u0631\u0627\u0646\u064a\u0629
+languages.egy=\u0627\u0644\u0645\u0635\u0631\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.zxx=\u0628\u062f\u0648\u0646 \u0645\u062d\u062a\u0648\u0649 \u0644\u063a\u0648\u064a
+languages.ug=\u0627\u0644\u0623\u063a\u0648\u0631\u064a\u0629
+languages.fan=\u0627\u0644\u0641\u0627\u0646\u062c
+languages.ssa=\u0644\u063a\u0629 \u0646\u064a\u0644\u064a\u0629 \u0635\u062d\u0631\u0627\u0648\u064a\u0629
+languages.mga=\u0627\u0644\u0623\u064a\u0631\u0644\u0646\u062f\u064a\u0629 \u0627\u0644\u0648\u0633\u0637\u0649
+languages.bat=\u0644\u063a\u0629 \u0628\u0644\u0637\u064a\u0642\u064a\u0629
+languages.nyo=\u0627\u0644\u0646\u064a\u0648\u0631\u0648
+languages.bas=\u0627\u0644\u0628\u0627\u0633\u0627
+languages.nyn=\u0627\u0644\u0646\u064a\u0627\u0646\u0643\u0648\u0644
+languages.nym=\u0627\u0644\u0646\u064a\u0627\u0645\u0648\u064a\u0632\u0649
+languages.gsw=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 (\u0633\u0648\u064a\u0633\u0631\u0627)\u200f
+languages.hmn=\u0627\u0644\u0647\u0645\u0648\u0646\u062c\u064a\u0629
+languages.ban=\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0628\u0627\u0644\u064a\u0629
+languages.osa=\u0627\u0644\u0623\u0648\u0633\u0627\u062c
+languages.bal=\u0627\u0644\u0628\u0644\u0648\u0634\u064a\u0629
+languages.ty=\u0627\u0644\u062a\u0627\u0647\u064a\u062a\u064a\u0629
+languages.bai=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0628\u0627\u0645\u064a\u0644\u064a\u0643\u064a\u0629
+languages.tw=\u0627\u0644\u062a\u0648\u0649
+languages.srr=\u0627\u0644\u0633\u0631\u0631
+languages.tli=\u0627\u0644\u062a\u0644\u064a\u0646\u063a\u064a\u062a\u064a\u0629
+languages.tlh=\u0627\u0644\u0643\u0644\u064a\u0646\u062c\u0648\u0646
+languages.tt=\u0627\u0644\u062a\u062a\u0627\u0631\u064a\u0629
+languages.ts=\u0627\u0644\u0633\u0648\u0646\u062c\u0627
+languages.srn=\u0627\u0644\u0633\u0631\u0627\u0646\u0627\u0646 \u062a\u0648\u0646\u062c\u0648
+languages.bad=\u0627\u0644\u0628\u0627\u0646\u062f\u0627
+languages.tr=\u0627\u0644\u062a\u0631\u0643\u064a\u0629
+languages.to=\u062a\u0648\u0646\u062c\u0627 - \u062c\u0632\u0631 \u062a\u0648\u0646\u062c\u0627
+languages.tn=\u0627\u0644\u062a\u0633\u0648\u0627\u0646\u064a\u0629
+languages.tl=\u0627\u0644\u062a\u0627\u063a\u0627\u0644\u0648\u063a\u064a\u0629
+languages.tk=\u0627\u0644\u062a\u0631\u0643\u0645\u0627\u0646\u064a\u0629
+languages.ti=\u0627\u0644\u062a\u064a\u062c\u0631\u064a\u0646\u064a\u0627
+languages.th=\u0627\u0644\u062a\u0627\u064a\u0644\u0627\u0646\u062f\u064a\u0629
+languages.tg=\u0627\u0644\u0637\u0627\u062c\u064a\u0643\u064a\u0629
+languages.byn=\u0627\u0644\u0628\u0644\u064a\u0646\u064a\u0629
+languages.te=\u0627\u0644\u062a\u064a\u0644\u062c\u0648
+languages.kro=\u0627\u0644\u0643\u0631\u0648
+languages.csb=\u0627\u0644\u0643\u0627\u0634\u0628\u0627\u064a\u0627\u0646
+languages.ta=\u0627\u0644\u062a\u0627\u0645\u064a\u0644\u064a\u0629
+languages.krl=\u0627\u0644\u0643\u0631\u064a\u0644\u064a\u0629
+languages.tkl=\u0627\u0644\u062a\u0648\u0643\u064a\u0644\u0627\u0648
+languages.efi=\u0627\u0644\u0627\u0641\u064a\u0643
+languages.sw=\u0627\u0644\u0633\u0648\u0627\u062d\u0644\u064a\u0629
+languages.sv=\u0627\u0644\u0633\u0648\u064a\u062f\u064a\u0629
+languages.su=\u0627\u0644\u0633\u0646\u062f\u064a\u0629
+languages.krc=\u0627\u0644\u0643\u0627\u0631\u0627\u062a\u0634\u0627\u0649-\u0628\u0627\u0644\u0643\u0627\u0631
+languages.st=\u0627\u0644\u0633\u0648\u062a\u0648 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
+languages.ss=\u0627\u0644\u0633\u0648\u0627\u062a\u0649
+languages.sr=\u0627\u0644\u0635\u0631\u0628\u064a\u0629
+languages.sq=\u0627\u0644\u0623\u0644\u0628\u0627\u0646\u064a\u0629
+languages.men=\u0627\u0644\u0645\u064a\u0646\u062f
+languages.crp=\u0627\u0644\u0643\u0631\u064a\u064a\u0648\u0644\u0649 \u0648 \u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0645\u0628\u0633\u0637\u0629 \u0627\u0644\u0623\u062e\u0631\u0649 \u0644\u0644\u062a\u0641\u0627\u0647\u0645 \u0628\u064a\u0646 \u0627\u0644\u0634\u0639\u0648\u0628 - \u0623\u062e\u0631\u0649
+languages.so=\u0627\u0644\u0635\u0648\u0645\u0627\u0644\u064a\u0629
+languages.afh=\u0627\u0644\u0623\u0641\u0631\u064a\u0647\u064a\u0644\u064a\u0629
+languages.sn=\u0627\u0644\u0634\u0648\u0646\u0627
+languages.sm=\u0627\u0644\u0633\u0627\u0645\u0648\u0627\u0626\u064a\u0629
+languages.sl=\u0627\u0644\u0633\u0644\u0648\u0641\u0627\u0646\u064a\u0629
+languages.grc=\u0627\u0644\u064a\u0648\u0646\u0627\u0646\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.sk=\u0627\u0644\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0629
+languages.grb=\u0627\u0644\u062c\u0631\u064a\u0628\u0648
+languages.si=\u0627\u0644\u0633\u0631\u064a\u0644\u0627\u0646\u0643\u064a\u0629
+languages.crh=\u062a\u0631\u0643\u064a\u0629 \u0643\u0631\u064a\u0645\u064a\u0646\u064a\u0629
+languages.afa=\u0644\u063a\u0629 \u0623\u0641\u0631\u0648 \u0622\u0633\u064a\u0648\u064a\u0629
+languages.sg=\u0627\u0644\u0633\u0627\u0646\u062c\u0648
+languages.se=\u0627\u0644\u0633\u0627\u0645\u064a \u0627\u0644\u0634\u0645\u0627\u0644\u0649
+languages.sd=\u0627\u0644\u0633\u064a\u0646\u062f\u0649
+languages.udm=\u0627\u0644\u0623\u062f\u0645\u0631\u062a
+languages.sc=\u0627\u0644\u0633\u0631\u062f\u064a\u0646\u064a\u0629
+languages.sa=\u0627\u0644\u0633\u0646\u0633\u0643\u0631\u064a\u062a\u064a\u0629
+languages.rw=\u0627\u0644\u0643\u064a\u0646\u064a\u0627\u0631\u0648\u0627\u0646\u062f\u0627
+languages.nwc=\u0627\u0644\u0646\u0648\u0627\u0631\u064a\u0629 \u0627\u0644\u062a\u0642\u0644\u064a\u062f\u064a\u0629
+languages.ru=\u0627\u0644\u0631\u0648\u0633\u064a\u0629
+languages.mdr=\u0627\u0644\u0645\u0627\u0646\u062f\u0627\u0631
+languages.ro=\u0627\u0644\u0631\u0648\u0645\u0627\u0646\u064a\u0629
+languages.rn=\u0627\u0644\u0631\u0646\u062f\u0649
+languages.rm=\u0627\u0644\u0631\u0647\u0627\u064a\u062a\u0648-\u0631\u0648\u0645\u0627\u0646\u0633
+languages.fr_CH=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629 (\u0633\u0648\u064a\u0633\u0631\u0627)\u200f
+languages.mdf=\u0627\u0644\u0645\u0648\u0643\u0634\u0627
+languages.tiv=\u0627\u0644\u062a\u064a\u0641
+languages.fr_CA=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629 \u0627\u0644\u0643\u0646\u062f\u064a\u0629
+languages.ady=\u0627\u0644\u0623\u062f\u064a\u062c\u0647
+languages.zun=\u0627\u0644\u0632\u0648\u0646\u064a\u0629
+languages.kpe=\u0627\u0644\u0643\u0628\u064a\u0644
+languages.qu=\u0627\u0644\u0643\u0648\u064a\u062a\u0634\u0648\u0627
+languages.tig=\u0627\u0644\u062a\u064a\u062c\u0631
+languages.son=\u0627\u0644\u0633\u0648\u0646\u062c\u0647\u0627\u0649
+languages.cpp=\u0627\u0644\u0643\u0631\u064a\u064a\u0648\u0644\u0649 \u0648 \u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0645\u0628\u0633\u0637\u0629 \u0627\u0644\u0623\u062e\u0631\u0649 \u0644\u0644\u062a\u0641\u0627\u0647\u0645 \u0628\u064a\u0646 \u0627\u0644\u0634\u0639\u0648\u0628 \u0639\u0644\u0649 \u0623\u0633\u0627\u0633 \u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644\u064a\u0629
+languages.rup=\u0627\u0644\u0623\u0631\u0648\u0645\u0627\u0646\u064a\u0627\u0646
+languages.sog=\u0627\u0644\u0633\u0648\u062c\u062f\u064a\u0646
+languages.ada=\u0627\u0644\u0623\u062f\u0627\u0646\u062c\u0645\u064a\u0629
+languages.kos=\u0627\u0644\u0643\u0648\u0633\u0631\u0627\u064a\u0646
+languages.hit=\u0627\u0644\u062d\u062b\u064a\u0629
+languages.cpf=\u0627\u0644\u0643\u0631\u064a\u064a\u0648\u0644\u0649 \u0648 \u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0645\u0628\u0633\u0637\u0629 \u0627\u0644\u0623\u062e\u0631\u0649 \u0644\u0644\u062a\u0641\u0627\u0647\u0645 \u0628\u064a\u0646 \u0627\u0644\u0634\u0639\u0648\u0628 \u0639\u0644\u0649 \u0623\u0633\u0627\u0633 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629
+languages.cpe=\u0627\u0644\u0643\u0631\u064a\u064a\u0648\u0644\u0649 \u0648 \u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0645\u0628\u0633\u0637\u0629 \u0627\u0644\u0623\u062e\u0631\u0649 \u0644\u0644\u062a\u0641\u0627\u0647\u0645 \u0628\u064a\u0646 \u0627\u0644\u0634\u0639\u0648\u0628 \u0639\u0644\u0649 \u0623\u0633\u0627\u0633 \u0627\u0644\u0623\u0646\u062c\u0644\u064a\u0632\u064a\u0629
+languages.him=\u0627\u0644\u0647\u064a\u0645\u0627\u062a\u0634\u0627\u0644\u0649
+languages.kok=\u0627\u0644\u0643\u0648\u0646\u0643\u0627\u0646\u064a\u0629
+languages.hil=\u0627\u0644\u0647\u064a\u0644\u064a\u062c\u064a\u0646\u0648\u0646
+languages.got=\u0627\u0644\u0642\u0648\u0637\u064a\u0629
+languages.gor=\u0627\u0644\u062c\u0648\u0631\u0648\u0646\u062a\u0627\u0644\u0648
+languages.gon=\u0627\u0644\u062c\u0646\u062f\u0649
+languages.din=\u0627\u0644\u062f\u0646\u0643\u0627
+languages.nub=\u0644\u063a\u0629 \u0646\u0648\u0628\u064a\u0629
+languages.pt=\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644\u064a\u0629
+languages.ps=\u0627\u0644\u0628\u0634\u062a\u0648\u0646\u064a\u0629
+languages.fur=\u0627\u0644\u0641\u0631\u064a\u0644\u0627\u064a\u0627\u0646
+languages.phn=\u0627\u0644\u0641\u064a\u0646\u064a\u0642\u064a\u0629
+languages.de_CH=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u0639\u0644\u064a\u0627 \u0627\u0644\u0633\u0648\u064a\u0633\u0631\u064a\u0629
+languages.goh=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u0639\u0644\u064a\u0627 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.snk=\u0627\u0644\u0633\u0648\u0646\u064a\u0646\u0643
+languages.cop=\u0627\u0644\u0642\u0628\u0637\u064a\u0629
+languages.yap=\u0627\u0644\u064a\u0627\u0628\u064a\u0632
+languages.ach=\u0627\u0644\u0623\u0643\u0648\u0644\u064a\u0629
+languages.yao=\u0627\u0644\u064a\u0627\u0648
+languages.phi=\u0644\u063a\u0629 \u0641\u0644\u0628\u064a\u0646\u064a\u0629
+languages.pl=\u0627\u0644\u0628\u0648\u0644\u0646\u062f\u064a\u0629
+languages.ace=\u0627\u0644\u0623\u062a\u0634\u064a\u0646\u064a\u0632\u064a\u0629
+languages.pi=\u0627\u0644\u0628\u0627\u0644\u064a\u0629
+languages.pt_PT=\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644\u064a\u0629 \u0627\u0644\u0623\u064a\u0628\u064a\u0631\u064a\u0629
+languages.pa=\u0627\u0644\u0628\u0646\u062c\u0627\u0628\u064a\u0629
+languages.bug=\u0627\u0644\u0628\u062c\u064a\u0646\u064a\u0632\u064a\u0629
+languages.iba=\u0627\u0644\u0627\u064a\u0628\u0627\u0646
+languages.sms=\u0627\u0644\u0633\u0643\u0648\u0644\u062a \u0633\u0627\u0645\u0649
+languages.bua=\u0627\u0644\u0628\u0631\u064a\u0627\u062a\u064a\u0629
+languages.mas=\u0627\u0644\u0645\u0627\u0633\u0627\u064a
+languages.smn=\u0627\u0644\u0627\u064a\u0646\u0627\u0631\u0649 \u0633\u0627\u0645\u0649
+languages.os=\u0627\u0644\u0623\u0648\u0633\u064a\u062a\u064a\u0643
+languages.map=\u0627\u0644\u0623\u0648\u0633\u062a\u0631\u0648\u0646\u064a\u0633\u064a\u0627\u0646
+languages.or=\u0627\u0644\u0623\u0648\u0631\u064a\u064a\u0627
+languages.man=\u0627\u0644\u0645\u0627\u0646\u062f\u064a\u0646\u063a
+languages.smj=\u0627\u0644\u0644\u0648\u0644 \u0633\u0627\u0645\u0649
+languages.smi=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0633\u0627\u0645\u064a\u0629 - \u0623\u062e\u0631\u0649
+languages.mak=\u0627\u0644\u0645\u0627\u0643\u0627\u0633\u0627\u0631
+languages.om=\u0627\u0644\u0623\u0648\u0631\u0648\u0645\u0648
+languages.mai=\u0627\u0644\u0645\u0627\u064a\u062b\u064a\u0644\u064a
+languages.oj=\u0627\u0644\u0623\u0648\u062c\u064a\u0628\u0648\u0627
+languages.mag=\u0627\u0644\u0645\u0627\u062c\u0627
+languages.mad=\u0627\u0644\u0645\u0627\u062f\u0631\u064a\u0632
+languages.sma=\u0627\u0644\u0633\u0627\u0645\u064a \u0627\u0644\u062c\u0646\u0648\u0628\u0649
+languages.oc=\u0627\u0644\u0623\u0648\u0643\u064a\u062a\u0627\u0646\u064a\u0629
+languages.nso=\u0627\u0644\u0633\u0648\u062a\u0648 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
+languages.btk=\u0627\u0644\u0628\u0627\u062a\u0627\u0643\u064a\u0629
+languages.myv=\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0627\u0631\u0632\u064a\u0629
+languages.es_ES=\u0627\u0644\u0623\u0633\u0628\u0627\u0646\u064a\u0629 \u0627\u0644\u0623\u064a\u0628\u064a\u0631\u064a\u0629
+languages.de_AT=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u0646\u0645\u0633\u0627\u0648\u064a\u0629
+languages.dgr=\u0627\u0644\u062f\u0648\u062c\u0631\u064a\u0628
+languages.ny=\u0627\u0644\u0646\u064a\u0627\u0646\u062c\u0627\u060c \u0627\u0644\u062a\u0634\u064a\u062a\u0634\u0648\u0627\u060c \u0627\u0644\u062a\u0634\u0648\u0627
+languages.myn=\u0644\u063a\u0629 \u0645\u0627\u064a\u0627
+languages.nv=\u0627\u0644\u0646\u0627\u0641\u0627\u062c\u0648
+languages.kmb=\u0627\u0644\u0643\u064a\u0645\u0628\u0646\u062f\u0648
+languages.nr=\u0627\u0644\u0646\u062f\u064a\u0628\u064a\u0644 \u0627\u0644\u062c\u0646\u0648\u0628\u0649
+languages.gmh=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u0639\u0644\u064a\u0627 \u0627\u0644\u0648\u0633\u0637\u0649
+languages.no=\u0627\u0644\u0646\u0631\u0648\u064a\u062c\u064a\u0629
+languages.nn=\u0627\u0644\u0646\u064a\u0646\u0648\u0631\u0633\u0643 \u0627\u0644\u0646\u0631\u0648\u064a\u062c\u064a
+languages.nl=\u0627\u0644\u0647\u0648\u0644\u0646\u062f\u064a\u0629
+languages.root=\u0627\u0644\u062c\u0630\u0631
+languages.ng=\u0627\u0644\u0646\u062f\u0648\u0646\u062c\u0627
+languages.sla=\u0644\u063a\u0629 \u0633\u0644\u0627\u0641\u064a\u0629
+languages.ne=\u0627\u0644\u0646\u064a\u0628\u0627\u0644\u064a\u0629
+languages.nd=\u0627\u0644\u0646\u062f\u064a\u0628\u064a\u0644 \u0627\u0644\u0634\u0645\u0627\u0644\u0649
+languages.cmc=\u0644\u063a\u0629 \u062a\u0634\u0627\u0645\u064a\u0643\u064a\u0629
+languages.tet=\u0627\u0644\u062a\u064a\u062a\u0645
+languages.nb=\u0627\u0644\u0628\u0648\u0643\u0645\u0627\u0644\u064a\u0629 \u0627\u0644\u0646\u0631\u0648\u064a\u062c\u064a\u0629
+languages.na=\u0627\u0644\u0646\u0648\u0631\u0648
+languages.ter=\u0627\u0644\u062a\u064a\u0631\u064a\u0646\u0648
+languages.tem=\u0627\u0644\u062a\u064a\u0645\u0646
+languages.my=\u0627\u0644\u0628\u0648\u0631\u0645\u064a\u0629
+languages.lez=\u0627\u0644\u0644\u064a\u0632\u062c\u0647\u0627\u064a\u0627\u0646\u064a\u0629
+languages.mt=\u0627\u0644\u0645\u0627\u0644\u0637\u064a\u0629
+languages.frs=\u0627\u0644\u0641\u0631\u064a\u0632\u064a\u0646\u064a\u0629 \u0627\u0644\u0634\u0631\u0642\u064a\u0629
+languages.peo=\u0627\u0644\u0641\u0627\u0631\u0633\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.ms=\u0644\u063a\u0629 \u0627\u0644\u0645\u0644\u0627\u064a\u0648
+languages.frr=\u0627\u0644\u0641\u0631\u064a\u0632\u064a\u0646\u064a\u0629 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
+languages.mr=\u0627\u0644\u0645\u0627\u0631\u0627\u062b\u0649
+languages.fro=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.mo=\u0627\u0644\u0645\u0648\u0644\u062f\u0648\u0641\u064a\u0629
+languages.mn=\u0627\u0644\u0645\u0646\u063a\u0648\u0644\u064a\u0629
+languages.frm=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629 \u0627\u0644\u0648\u0633\u0637\u0649
+languages.ml=\u0627\u0644\u0645\u0627\u0644\u064a\u0627\u0644\u0627\u0645
+languages.jrb=\u0627\u0644\u064a\u0647\u0648\u062f\u064a\u0629 - \u0627\u0644\u0639\u0631\u0628\u064a\u0629
+languages.mk=\u0627\u0644\u0645\u0642\u062f\u0648\u0646\u064a\u0629
+languages.mi=\u0627\u0644\u0645\u0627\u0648\u0631\u064a\u0629
+languages.mh=\u0627\u0644\u0645\u0627\u0631\u0634\u0627\u0644\u064a\u0629
+languages.mg=\u0627\u0644\u0645\u0627\u0644\u0627\u062c\u0627\u0634\u064a\u0629
+languages.nqo=\u0627\u0646\u0643\u0648
+languages.mwr=\u0627\u0644\u0645\u0627\u0631\u0648\u0627\u0631\u0649
+languages.bra=\u0627\u0644\u0628\u0631\u0627\u062c\u064a\u0629
+languages.mwl=\u0627\u0644\u0645\u064a\u0631\u0627\u0646\u062f\u064a\u0632
+languages.den=\u0627\u0644\u0633\u0644\u0627\u0641\u064a\u0629
+languages.lv=\u0627\u0644\u0644\u0627\u062a\u0641\u064a\u0629
+languages.lu=\u0627\u0644\u0644\u0628\u0627-\u0643\u0627\u062a\u0627\u0646\u062c\u0627
+languages.del=\u0627\u0644\u062f\u064a\u0644\u0648\u064a\u0631
+languages.lt=\u0627\u0644\u0644\u062a\u0648\u0627\u0646\u064a\u0629
+languages.lo=\u0627\u0644\u0644\u0627\u0648\u064a\u0629
+languages.ln=\u0627\u0644\u0644\u064a\u0646\u062c\u0627\u0644\u0627
+languages.li=\u0627\u0644\u0644\u064a\u0645\u0628\u0631\u062c\u064a\u0634\u064a\u0629
+languages.ewo=\u0627\u0644\u0623\u064a\u0648\u0646\u062f\u0648
+languages.lg=\u0627\u0644\u062c\u0627\u0646\u062f\u0627
+languages.lb=\u0627\u0644\u0644\u0648\u0643\u0633\u0645\u0628\u0631\u062c\u064a\u0629
+languages.la=\u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629
+languages.jpr=\u0627\u0644\u064a\u0647\u0648\u062f\u064a\u0629 - \u0627\u0644\u0641\u0627\u0631\u0633\u064a\u0629
+languages.vot=\u0627\u0644\u0641\u0648\u062a\u064a\u0643
+languages.sit=\u0644\u063a\u0629 \u0635\u064a\u0646\u064a\u0629 \u062a\u0628\u064a\u062a\u064a\u0629
+languages.ky=\u0627\u0644\u0642\u064a\u0631\u063a\u0633\u062a\u0627\u0646\u064a\u0629
+languages.kw=\u0627\u0644\u0643\u0648\u0631\u0646\u064a\u0629
+languages.kv=\u0627\u0644\u0643\u0648\u0645\u0649
 languages.ku=\u0627\u0644\u0643\u0631\u062f\u064a\u0629
-languages.eo=\u0627\u0633\u0628\u0631\u0627\u0646\u062a\u0648
-languages.en=\u0627\u0644\u0627\u0646\u062c\u0644\u064a\u0632\u064a\u0629
+languages.sio=\u0644\u063a\u0627\u062a \u0627\u0644\u0633\u064a\u0648\u064a\u0648\u0646
 languages.ks=\u0627\u0644\u0643\u0627\u0634\u0645\u064a\u0631\u064a\u0629
-languages.el=\u0627\u0644\u064a\u0648\u0646\u0627\u0646\u064a\u0629
+languages.kr=\u0627\u0644\u0643\u0627\u0646\u064a\u0648\u0631\u0649
+languages.awa=\u0627\u0644\u0623\u0648\u0627\u062f\u064a\u0629
 languages.ko=\u0627\u0644\u0643\u0648\u0631\u064a\u0629
+languages.kn=\u0627\u0644\u0643\u0627\u0646\u0627\u062f\u0627
 languages.km=\u0627\u0644\u062e\u0645\u064a\u0631\u064a\u0629
+languages.en_GB=\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629 \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a\u0629
+languages.kl=\u0627\u0644\u0643\u0627\u0644\u0627\u0644\u064a\u0633\u062a
+languages.kk=\u0627\u0644\u0643\u0627\u0632\u0627\u062e\u0633\u062a\u0627\u0646\u064a\u0629
+languages.rom=\u0627\u0644\u0631\u0648\u0645\u0627\u0646\u064a\u0629 [rom]
+languages.kj=\u0627\u0644\u0643\u064a\u0648\u0646\u064a\u0627\u0645\u0627
+languages.sid=\u0627\u0644\u0633\u064a\u062f\u0627\u0645\u0648
+languages.ki=\u0627\u0644\u0643\u064a\u0643\u064a\u0648
+languages.kg=\u0627\u0644\u0643\u0648\u0646\u063a\u0648
+languages.non=\u0627\u0644\u0646\u0648\u0631\u0633 \u0627\u0644\u0642\u062f\u064a\u0645
+languages.ka=\u0627\u0644\u062c\u0648\u0631\u062c\u064a\u0629
+languages.mus=\u0627\u0644\u0643\u0631\u064a\u0643
+languages.roa=\u0627\u0644\u0631\u0648\u0645\u0627\u0646\u0633\u064a\u0629 - \u0623\u062e\u0631\u0649
+languages.nog=\u0627\u0644\u0646\u0648\u062c\u0627\u0649
+languages.mun=\u0644\u063a\u0627\u062a \u0627\u0644\u0645\u0646\u062f\u0627
+languages.mul=\u0644\u063a\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u0629
+languages.jv=\u0627\u0644\u062c\u0627\u0648\u064a\u0629
+languages.gil=\u0644\u063a\u0629 \u0623\u0647\u0644 \u062c\u0628\u0644 \u0637\u0627\u0631\u0642
+languages.znd=\u0627\u0644\u0632\u0627\u0646\u062f
+languages.shn=\u0627\u0644\u0634\u0627\u0646\u064a\u0629
+languages.fon=\u0627\u0644\u0641\u0648\u0646
+languages.xal=\u0627\u0644\u0643\u0627\u0644\u0645\u064a\u0643
+languages.aus=\u0644\u063a\u0629 \u0623\u0633\u062a\u0631\u0627\u0644\u064a\u0629
+languages.kho=\u0627\u0644\u062e\u0648\u062a\u0627\u0646\u064a\u0632
+languages.ja=\u0627\u0644\u064a\u0627\u0628\u0627\u0646\u064a\u0629
+languages.khi=\u0644\u063a\u0629 \u062e\u0648\u064a\u0633\u0627\u0646\u064a\u0629
+languages.pau=\u0627\u0644\u0628\u0627\u0644\u0648\u0627\u0646
+languages.chy=\u0627\u0644\u0634\u0627\u064a\u0627\u0646
+languages.tai=\u062a\u0627\u0649 - \u0623\u062e\u0631\u0649
+languages.iu=\u0627\u0644\u0627\u064a\u0646\u0643\u062a\u064a\u062a\u062a
+languages.pap=\u0627\u0644\u0628\u0627\u0628\u064a\u0627\u0645\u064a\u0646\u062a\u0648
+languages.it=\u0627\u0644\u0625\u064a\u0637\u0627\u0644\u064a\u0629
+languages.sgn=\u0644\u063a\u0629 \u0625\u0634\u0627\u0631\u0629
+languages.is=\u0627\u0644\u0623\u064a\u0633\u0644\u0627\u0646\u062f\u064a\u0629
+languages.kha=\u0627\u0644\u0643\u0627\u0632\u064a\u0629
+languages.chr=\u0627\u0644\u0634\u064a\u0631\u0648\u0643\u0649
+languages.pam=\u0627\u0644\u0628\u0627\u0645\u0628\u0627\u0646\u062c\u0627
+languages.pal=\u0627\u0644\u0628\u0647\u0644\u0648\u064a\u0629
+languages.chp=\u0627\u0644\u0634\u064a\u0628\u0627\u0648\u0627\u064a\u0627\u0646
+languages.io=\u0627\u0644\u0627\u064a\u062f\u0648
+languages.cho=\u0627\u0644\u0634\u0648\u0643\u062a\u0648
+languages.chn=\u0627\u0644\u0634\u064a\u0646\u0648\u0643 \u062c\u0627\u0631\u062c\u0648\u0646
+languages.chm=\u0627\u0644\u0645\u0627\u0631\u064a
+languages.bnt=\u0627\u0644\u0628\u0627\u0646\u062a\u0648
+languages.pag=\u0627\u0644\u0628\u0627\u0646\u062c\u0627\u0633\u064a\u0646\u0627\u0646
+languages.ik=\u0627\u0644\u0627\u064a\u0646\u0628\u064a\u0627\u0643
+languages.chk=\u0627\u0644\u062a\u0634\u0643\u064a\u0632\u064a\u0629
+languages.ii=\u0627\u0644\u0633\u064a\u062a\u0634\u064a\u0648\u0646 \u064a\u0649
+languages.haw=\u0644\u063a\u0629 \u0647\u0627\u0648\u0627\u064a
+languages.lam=\u0627\u0644\u0644\u0627\u0645\u0628\u0627
+languages.ig=\u0627\u0644\u0627\u064a\u062c\u0628\u0648
+languages.chg=\u0627\u0644\u062a\u0634\u0627\u062c\u0627\u062a\u0627\u0649
+languages.sga=\u0627\u0644\u0623\u064a\u0631\u0644\u0646\u062f\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.paa=\u0644\u063a\u0629 \u0628\u0627\u0628\u0648\u0646\u064a\u0629
+languages.ie=\u0627\u0644\u0627\u0646\u062a\u0631\u0644\u064a\u0646\u062c
+languages.id=\u0627\u0644\u0625\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0629
+languages.lah=\u0627\u0644\u0644\u0627\u0647\u0646\u062f\u0627
+languages.day=\u0627\u0644\u062f\u064a\u0627\u0643
+languages.chb=\u0627\u0644\u062a\u0634\u064a\u0628\u0634\u0627
+languages.ia=\u0627\u0644\u0644\u0651\u063a\u0629 \u0627\u0644\u0648\u0633\u064a\u0637\u0629
+languages.lad=\u0627\u0644\u0627\u0633\u0628\u0627\u0639\u0628\u0631\u064a\u0629
+languages.hz=\u0627\u0644\u0647\u064a\u0631\u064a\u0631\u0648
+languages.hai=\u0627\u0644\u0647\u064a\u062f\u0627
+languages.dar=\u0627\u0644\u062f\u0627\u0631\u062c\u0648\u0627
+languages.hy=\u0627\u0644\u0623\u0631\u0645\u064a\u0646\u064a\u0629
+languages.ath=\u0644\u063a\u0629 \u0623\u0632\u0628\u0627\u0633\u0643\u0627\u0646\u064a\u0629
+languages.hu=\u0627\u0644\u0647\u0646\u063a\u0627\u0631\u064a\u0629
+languages.ht=\u0627\u0644\u0647\u0627\u064a\u062a\u064a\u0629
+languages.dak=\u0627\u0644\u062f\u0627\u0643\u0648\u062a\u0627
+languages.hr=\u0627\u0644\u0643\u0631\u0648\u0627\u062a\u064a\u0629
+languages.ho=\u0627\u0644\u0647\u064a\u0631\u0649 \u0645\u0648\u062a\u0648
+languages.hi=\u0627\u0644\u0647\u0646\u062f\u064a\u0629
+languages.dyu=\u0627\u0644\u062f\u0627\u064a\u0644\u0627
+languages.he=\u0627\u0644\u0639\u0628\u0631\u064a\u0629
+languages.ast=\u0627\u0644\u0623\u0633\u062a\u0631\u064a\u0629
+languages.kfo=\u0627\u0644\u0643\u0648\u0631\u0648
+languages.ha=\u0627\u0644\u0647\u0648\u0633\u0627
+languages.wen=\u0644\u063a\u0629 \u0635\u0631\u0628\u064a\u0629
+languages.gv=\u0627\u0644\u0645\u0646\u0643\u064a\u0629
+languages.gu=\u0627\u0644\u063a\u0648\u062c\u0627\u0631\u0627\u062a\u064a\u0629
+languages.sem=\u0644\u063a\u0629 \u0633\u0627\u0645\u064a\u0629
+languages.sel=\u0627\u0644\u0633\u064a\u0644\u0643\u0628
+languages.iro=\u0644\u063a\u0629 \u0625\u064a\u0631\u0648\u0643\u0648\u064a\u0627\u0646\u064a\u0629
+languages.gn=\u0627\u0644\u062c\u0648\u0627\u0631\u0627\u0646\u0649
+languages.gl=\u0627\u0644\u062c\u0627\u0644\u064a\u0643\u064a\u0629
+languages.en_CA=\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629 (\u0643\u0646\u062f\u0627)
+languages.arw=\u0627\u0644\u0623\u0631\u0627\u0648\u0627\u0643\u064a\u0629
+languages.gez=\u0627\u0644\u062c\u064a\u0632
+languages.art=\u0644\u063a\u0629 \u0627\u0635\u0637\u0646\u0627\u0639\u064a\u0629
+languages.gd=\u0627\u0644\u063a\u064a\u0644\u064a\u0629 \u0627\u0644\u0623\u0633\u0643\u062a\u0644\u0646\u062f\u064a\u0629
+languages.ira=\u0644\u063a\u0629 \u0625\u064a\u0631\u0627\u0646\u064a\u0629
+languages.ga=\u0627\u0644\u0623\u064a\u0631\u0644\u0646\u062f\u064a\u0629
+languages.arp=\u0627\u0644\u0623\u0631\u0627\u0628\u0627\u0647\u0648
+languages.arn=\u0627\u0644\u0623\u0631\u0648\u0643\u0627\u0646\u064a\u0629
+languages.fy=\u0627\u0644\u0641\u0631\u064a\u0632\u064a\u0627\u0646
+languages.bla=\u0627\u0644\u0633\u064a\u0643\u0633\u064a\u0643\u064a\u0629
+languages.gem=\u0644\u063a\u0629 \u062c\u0631\u0645\u0627\u0646\u064a\u0629
+languages.ypk=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u064a\u0648\u0628\u064a\u0643\u064a\u0629
+languages.arc=\u0627\u0644\u0622\u0631\u0627\u0645\u064a\u0629
+languages.fr=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629
+languages.fo=\u0627\u0644\u0641\u0627\u0631\u0648\u064a\u0632
+languages.cel=\u0644\u063a\u0629 \u0633\u0644\u062a\u064a\u0629
+languages.fj=\u0627\u0644\u0641\u064a\u062c\u064a\u0629
+languages.fi=\u0627\u0644\u0641\u0646\u0644\u0646\u062f\u064a\u0629
+languages.ff=\u0627\u0644\u0641\u0644\u0629
+languages.tvl=\u0627\u0644\u062a\u0648\u0641\u0627\u0644\u0648
+languages.ceb=\u0627\u0644\u0633\u064a\u0628\u064a\u0648\u0646\u0648
+languages.fa=\u0627\u0644\u0641\u0627\u0631\u0633\u064a\u0629
+languages.en_AU=\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629 \u0627\u0644\u0623\u0633\u062a\u0631\u0627\u0644\u064a\u0629
+languages.zh_Hans=\u0627\u0644\u0635\u064a\u0646\u064a\u0629 \u0627\u0644\u0645\u0628\u0633\u0637\u0629
+languages.zh_Hant=\u0627\u0644\u0635\u064a\u0646\u064a\u0629 \u0627\u0644\u062a\u0642\u0644\u064a\u062f\u064a\u0629
+languages.eu=\u0644\u063a\u0629 \u0627\u0644\u0628\u0627\u0633\u0643
+languages.sco=\u0627\u0644\u0623\u0633\u0643\u062a\u0644\u0646\u062f\u064a\u0629
+languages.et=\u0627\u0644\u0625\u0633\u062a\u0648\u0646\u064a\u0629
+languages.scn=\u0627\u0644\u0635\u0642\u0644\u064a\u0629
+languages.es=\u0627\u0644\u0623\u0633\u0628\u0627\u0646\u064a\u0629
+languages.eo=\u0625\u0633\u0628\u0631\u0627\u0646\u062a\u0648
+languages.en=\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629
+languages.el=\u0627\u0644\u064a\u0648\u0646\u0627\u0646\u064a\u0629
+languages.tut=\u0644\u063a\u0629 \u0623\u0644\u0637\u0627\u0626\u064a\u0629
+languages.niu=\u0627\u0644\u0646\u064a\u0648\u064a
+languages.tup=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u062a\u0648\u0628\u064a\u0629
+languages.ee=\u0627\u0644\u0627\u064a\u0648\u064a
+languages.tum=\u0627\u0644\u062a\u0627\u0645\u0628\u0648\u0643\u0627
+languages.es_419=\u0623\u0633\u0628\u0627\u0646\u064a\u0629 \u0623\u0645\u0631\u064a\u0643\u0627 \u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629
+languages.mos=\u0627\u0644\u0645\u0648\u0633\u064a
 languages.dz=\u0627\u0644\u0632\u0648\u0646\u062e\u0627\u064a\u0629
-languages.smi=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0633\u0627\u0645\u064a\u0629
-languages.syr=\u0627\u0644\u0633\u0631\u064a\u0627\u0646\u064a\u0629
+languages.nic=\u0627\u0644\u0646\u064a\u062c\u0631 - \u0643\u0648\u0631\u062f\u0648\u0641\u0627\u0646\u0627\u064a\u0627\u0646
+languages.lus=\u0627\u0644\u0644\u0634\u0627\u0649
+languages.fiu=\u0644\u063a\u0629 \u0641\u064a\u0646\u0648 \u0623\u062c\u0631\u064a\u0627\u0646\u064a\u0629
 languages.dv=\u0627\u0644\u0645\u0627\u0644\u062f\u064a\u0641\u064a\u0629
-languages.pt=\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644\u064a\u0629
-languages.ps=\u0627\u0644\u0628\u0634\u062a\u0648\u0646\u064a\u0629
-languages.de=\u0627\u0644\u0627\u0644\u0645\u0627\u0646\u064a\u0629
-languages.pl=\u0627\u0644\u0628\u0648\u0644\u0648\u0646\u064a\u0629
+languages.nia=\u0627\u0644\u0646\u064a\u0627\u0633
+languages.moh=\u0627\u0644\u0645\u0648\u0647\u0648\u0643
+languages.luo=\u0627\u0644\u0644\u0648
+languages.lun=\u0627\u0644\u0644\u0648\u0646\u062f\u0627
+languages.apa=\u0644\u063a\u0629 \u0623\u0628\u0627\u062a\u0634\u064a\u0629
+languages.fil=\u0627\u0644\u0641\u0644\u0628\u064a\u0646\u064a\u0629
+languages.lui=\u0627\u0644\u0644\u0648\u0633\u064a\u0646\u0648
+languages.hup=\u0627\u0644\u0647\u0628\u0627
+languages.cch=\u0627\u0644\u0623\u062a\u0633\u0627\u0645
+languages.bin=\u0627\u0644\u0628\u064a\u0646\u064a\u0629
+languages.de=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629
+languages.lua=\u0627\u0644\u0644\u0628\u0627-\u0644\u0624\u0644\u0624
+languages.bik=\u0627\u0644\u0628\u064a\u0643\u0648\u0644\u064a\u0629
+languages.was=\u0627\u0644\u0648\u0627\u0634\u0648
+languages.und=\u0644\u063a\u0629 \u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641\u0629
+languages.war=\u0627\u0644\u0648\u0627\u0631\u0627\u0649
 languages.da=\u0627\u0644\u062f\u0627\u0646\u0645\u0627\u0631\u0643\u064a\u0629
-languages.ja=\u0627\u0644\u064a\u0627\u0628\u0627\u0646\u064a\u0629
-languages.cop=\u0642\u0628\u0637\u064a\u0629
-languages.vi=\u0627\u0644\u0641\u064a\u062a\u0646\u0627\u0645\u064a\u0629
+languages.dum=\u0627\u0644\u0647\u0648\u0644\u0646\u062f\u064a\u0629 \u0627\u0644\u0648\u0633\u0637\u0649
+languages.wal=\u0627\u0644\u0648\u0627\u0644\u0627\u0645\u0648
+languages.mno=\u0644\u063a\u0627\u062a \u0645\u0627\u0646\u0648\u0628\u0648
+languages.wak=\u0644\u063a\u0627\u062a \u0627\u0644\u0648\u0627\u0643\u0627\u0634\u0627\u0646
+languages.sat=\u0627\u0644\u0633\u0627\u0646\u062a\u0627\u0644\u0649
 languages.cy=\u0627\u0644\u0648\u0644\u0632\u064a\u0629
-languages.pa=\u0627\u0644\u0628\u0646\u062c\u0627\u0628\u064a\u0629
+languages.sas=\u0627\u0644\u0633\u0627\u0633\u0627\u0643
+languages.kbd=\u0627\u0644\u0643\u0627\u0628\u0627\u0631\u062f\u0627\u064a\u0627\u0646
+languages.cv=\u0627\u0644\u062a\u0634\u0641\u0627\u0634
+languages.cu=\u0633\u0644\u0627\u0641\u064a\u0629 \u0643\u0646\u0633\u064a\u0629
+languages.mni=\u0627\u0644\u0645\u0627\u0646\u064a\u0628\u0631\u0649
 languages.cs=\u0627\u0644\u062a\u0634\u064a\u0643\u064a\u0629
-languages.it=\u0627\u0644\u0627\u064a\u0637\u0627\u0644\u064a\u0629
+languages.sam=\u0627\u0644\u0622\u0631\u0627\u0645\u064a\u0629 \u0627\u0644\u0633\u0648\u0645\u0627\u0631\u064a\u0629
+languages.cr=\u0627\u0644\u0643\u0631\u0649
+languages.sal=\u0644\u063a\u0627\u062a \u0633\u0627\u0644\u064a\u0634\u0627\u0646
+languages.dua=\u0627\u0644\u062f\u064a\u0648\u0644\u0627
+languages.co=\u0627\u0644\u0643\u0648\u0631\u0633\u064a\u0643\u064a\u0629
+languages.sai=\u0627\u0644\u0647\u0646\u062f\u064a\u0629 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 - \u0623\u062e\u0631\u0649
+languages.mnc=\u0627\u0644\u0645\u0627\u0646\u0634\u0648
+languages.sah=\u0627\u0644\u064a\u0627\u0643\u062a
+languages.kaw=\u0627\u0644\u0643\u0648\u0649
+languages.inh=\u0627\u0644\u0625\u0646\u062c\u0648\u0634\u064a\u0629
+languages.gba=\u0627\u0644\u062c\u0628\u064a\u0627
+languages.sad=\u0627\u0644\u0633\u0627\u0646\u062f\u0627\u0648\u0649
+languages.ch=\u0627\u0644\u062a\u0634\u0627\u0645\u0648\u0631\u0648
+languages.ine=\u0644\u063a\u0629 \u0647\u0646\u062f \u0623\u0648\u0631\u0648\u0628\u064a\u0629
+languages.bho=\u0627\u0644\u0628\u0647\u0648\u062c\u0628\u0631\u064a\u0629
+languages.enm=\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629 \u0627\u0644\u0648\u0633\u0637\u0649
+languages.kar=\u0627\u0644\u0643\u0627\u0631\u064a\u064a\u0646
+languages.inc=\u0644\u063a\u0629 \u0647\u0646\u062f\u064a\u0629
 languages.ce=\u0627\u0644\u0634\u064a\u0634\u0627\u0646\u064a\u0629
-languages.ur=\u0627\u0644\u0627\u0631\u062f\u064a\u0629
-languages.ca=\u0627\u0644\u0643\u0627\u062a\u0627\u0644\u0648\u064a\u0646\u064a\u0629
-languages.id=\u0627\u0644\u0627\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0629
-languages.uk=\u0627\u0644\u0627\u0648\u0643\u0631\u0627\u0646\u064a\u0629
-languages.ug=\u0627\u0644\u0627\u063a\u0648\u0631\u064a\u0629
-languages.egy=\u0645\u0635\u0631\u064a\u0629\u060c \u0642\u062f\u064a\u0645\u0629
-languages.hy=\u0627\u0644\u0627\u0631\u0645\u0646\u064a\u0629
+languages.gay=\u0627\u0644\u062c\u0627\u064a\u0648
+languages.ca=\u0627\u0644\u0643\u062a\u0627\u0644\u0648\u0646\u064a\u0629
+languages.umb=\u0627\u0644\u0623\u0645\u0628\u0646\u062f\u0648
+languages.syr=\u0627\u0644\u0633\u0631\u064a\u0627\u0646\u064a\u0629
+languages.kam=\u0627\u0644\u0643\u0627\u0645\u0628\u0627
+languages.anp=\u0627\u0644\u0623\u0646\u062c\u064a\u0643\u0627
+languages.tsi=\u0627\u0644\u062a\u0633\u064a\u0645\u0634\u064a\u0627\u0646
+languages.kaj=\u0627\u0644\u062c\u0648
+languages.ang=\u0627\u0644\u0627\u0646\u062c\u0644\u064a\u0632\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.kac=\u0627\u0644\u0643\u0627\u062a\u0634\u064a\u0646
+languages.cau=\u0644\u063a\u0629 \u0642\u0648\u0642\u0627\u0632\u064a\u0629
+languages.kab=\u0627\u0644\u0642\u0628\u064a\u0644\u064a\u0629
+languages.kaa=\u0627\u0644\u0643\u0627\u0631\u0627-\u0643\u0627\u0644\u0628\u0627\u0643
 languages.bs=\u0627\u0644\u0628\u0648\u0633\u0646\u064a\u0629
-languages.hu=\u0627\u0644\u0647\u0646\u063a\u0627\u0631\u064a\u0629
+languages.car=\u0627\u0644\u0643\u0627\u0631\u064a\u0628\u064a\u0629
+languages.br=\u0627\u0644\u0628\u0631\u064a\u062a\u0648\u0646\u064a\u0629
+languages.syc=\u0633\u0631\u064a\u0627\u0646\u064a\u0629 \u062a\u0642\u0644\u064a\u062f\u064a\u0629
 languages.bo=\u0627\u0644\u062a\u0628\u062a\u064a\u0629
-languages.ht=\u0627\u0644\u0647\u0627\u064a\u062a\u064a\u0629
 languages.bn=\u0627\u0644\u0628\u0646\u063a\u0627\u0644\u064a\u0629
-languages.hr=\u0627\u0644\u0643\u0631\u0648\u0627\u062a\u064a\u0629
+languages.bm=\u0627\u0644\u0628\u0627\u0645\u0628\u0627\u0631\u0627
+languages.gaa=\u0627\u0644\u062c\u0627
+languages.cai=\u0644\u063a\u0629 \u0647\u0646\u062f \u0623\u0645\u0631\u064a\u0643\u064a\u0629 \u0648\u0633\u0637\u0649
+languages.bi=\u0627\u0644\u0628\u064a\u0633\u0644\u0627\u0645\u064a\u0629
+languages.bh=\u0627\u0644\u0628\u064a\u0647\u0627\u0631\u064a\u0629
 languages.bg=\u0627\u0644\u0628\u0644\u063a\u0627\u0631\u064a\u0629
-languages.ang=\u0627\u0646\u0643\u0644\u064a\u0632\u064a\u0629\u060c \u0642\u062f\u064a\u0645
-languages.tt=\u0627\u0644\u062a\u062a\u0631\u064a\u0629
-languages.be=\u0627\u0644\u0628\u064a\u0644\u0648\u0631\u0648\u0633\u064a\u0629
-languages.hi=\u0627\u0644\u0647\u0646\u062f\u064a\u0629
-languages.tr=\u0627\u0644\u062a\u0631\u0643\u064a\u0629
-languages.nl=\u0627\u0644\u0647\u0648\u0644\u0646\u062f\u064a\u0629
-languages.he=\u0627\u0644\u0639\u0628\u0631\u064a\u0629
-languages.tl=\u0627\u0644\u062a\u0627\u063a\u0627\u0644\u0648\u063a\u064a\u0629
-languages.bal=\u0627\u0644\u0628\u0644\u0648\u0634\u064a\u0629
-languages.az=\u0627\u0630\u0631\u064a\u0629
-languages.ne=\u0627\u0644\u0646\u064a\u0628\u0627\u0644\u064a\u0629
-languages.th=\u0627\u0644\u062a\u0627\u064a\u0644\u0627\u0646\u062f\u064a\u0629
-languages.zh=\u0627\u0644\u0635\u064a\u0646\u064a\u0629
+languages.be=\u0627\u0644\u0628\u064a\u0644\u0627\u0631\u0648\u0633\u064a\u0629
+languages.pt_BR=\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644\u064a\u0629 \u0627\u0644\u0628\u0631\u0627\u0632\u064a\u0644\u064a\u0629
+languages.cad=\u0627\u0644\u0643\u0627\u062f\u0648
+languages.ba=\u0627\u0644\u0628\u0627\u0634\u0643\u064a\u0631\u064a\u0629
+languages.zu=\u0627\u0644\u0632\u0648\u0644\u0648
+languages.zen=\u0627\u0644\u0632\u064a\u0646\u0627\u062c\u0627
+languages.pro=\u0627\u0644\u0628\u0631\u0648\u0641\u0627\u0646\u0633\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.hsb=\u0627\u0644\u0635\u0631\u0628\u064a\u0629 \u0627\u0644\u0639\u0644\u064a\u0627
+languages.az=\u0627\u0644\u0623\u0630\u0631\u064a\u0629
+languages.ay=\u0627\u0644\u0623\u064a\u0645\u0627\u0631\u0627
+languages.av=\u0627\u0644\u0623\u0641\u0627\u0631\u064a\u0643\u064a\u0629
+languages.as=\u0627\u0644\u0623\u0633\u0627\u0645\u064a\u0629
+languages.dsb=\u0627\u0644\u0635\u0631\u0628\u064a\u0629 \u0627\u0644\u0633\u0641\u0644\u0649
 languages.ar=\u0627\u0644\u0639\u0631\u0628\u064a\u0629
-languages.gu=\u0627\u0644\u063a\u0648\u062c\u0627\u0631\u0627\u062a\u064a\u0629
-languages.my=\u0627\u0644\u0628\u0648\u0631\u0645\u064a\u0629
-languages.ira=\u0627\u0644\u0627\u064a\u0631\u0627\u0646\u064a\u0629
-languages.mt=\u0627\u0644\u0645\u0627\u0644\u0637\u064a\u0629
-languages.ms=\u0644\u063a\u0629 \u0627\u0644\u0645\u0644\u0627\u064a\u0648
-languages.sw=\u0627\u0644\u0633\u0648\u0627\u062d\u0644\u064a\u0629
-languages.sv=\u0627\u0644\u0633\u0648\u064a\u062f\u064a\u0629
-languages.af=\u0627\u0644\u0627\u0641\u0631\u064a\u0642\u064a\u0629
-languages.mn=\u0627\u0644\u0645\u0646\u063a\u0648\u0644\u064a\u0629
-languages.sr=\u0627\u0644\u0635\u0631\u0628\u064a\u0629
-languages.ab=\u0627\u0644\u0627\u0628\u062e\u0627\u0632\u064a\u0629
-languages.sq=\u0627\u0644\u0627\u0644\u0628\u0627\u0646\u064a\u0629
-languages.aa=\u0627\u0644\u0627\u0641\u0627\u0631\u064a\u0629
-languages.fr=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629
-languages.lv=\u0627\u0644\u0644\u0627\u062a\u0641\u064a\u0629
-languages.lt=\u0627\u0644\u0644\u062a\u0648\u0627\u0646\u064a\u0629
-languages.ru=\u0627\u0644\u0631\u0648\u0633\u064a\u0629
-languages.fj=\u0627\u0644\u0641\u064a\u062c\u064a\u0629
-languages.afa=\u0627\u0641\u0631\u0648-\u0627\u0633\u064a\u0648\u064a\u0629
-languages.fi=\u0627\u0644\u0641\u0646\u0644\u0646\u062f\u064a\u0629
-languages.ro=\u0627\u0644\u0631\u0648\u0645\u0627\u0646\u064a\u0629
-languages.arc=\u0627\u0644\u0627\u0631\u0627\u0645\u064a\u0629
+languages.ilo=\u0627\u0644\u0627\u064a\u0644\u0648\u0643\u0648
+languages.elx=\u0627\u0644\u0627\u0645\u0627\u064a\u062a
+languages.zh=\u0627\u0644\u0635\u064a\u0646\u064a\u0629
+languages.an=\u0627\u0644\u0623\u0631\u0627\u062c\u0648\u0646\u064a\u0629
+languages.pra=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0628\u0631\u0627\u0642\u0631\u064a\u0637\u064a\u0629
+languages.am=\u0627\u0644\u0623\u0645\u0647\u0631\u064a\u0629
+languages.new=\u0627\u0644\u0646\u064a\u0648\u0627\u0631\u0649
+languages.ak=\u0627\u0644\u0623\u0643\u0627\u0646\u064a\u0629
+languages.za=\u0627\u0644\u0632\u0647\u064a\u0648\u0646\u062c
+languages.en_US=\u0627\u0644\u0627\u0646\u062c\u0644\u064a\u0632\u064a\u0629 (\u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629)\u200f
+languages.af=\u0627\u0644\u0623\u0641\u0631\u064a\u0642\u064a\u0629
+languages.ae=\u0627\u0644\u0623\u0641\u0633\u062a\u064a\u0629
+languages.alt=\u0627\u0644\u0623\u0644\u0637\u0627\u0626\u064a\u0629 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
+languages.ab=\u0627\u0644\u0623\u0628\u062e\u0627\u0632\u064a\u0629
+languages.aa=\u0627\u0644\u0623\u0641\u0627\u0631\u064a\u0629
+languages.yo=\u0627\u0644\u064a\u0648\u0631\u0648\u0628\u064a\u0629
+languages.alg=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629 \u0627\u0644\u0647\u0646\u062f\u064a\u0629
+languages.ale=\u0627\u0644\u0623\u0644\u064a\u0648\u062a\u064a\u0629
+languages.mkh=\u0644\u063a\u0629 \u0645\u0648\u0646 - \u062e\u0645\u064a\u0631
+languages.yi=\u0627\u0644\u064a\u062f\u064a\u0634\u064a\u0629
+languages.dra=\u0644\u063a\u0629 \u062f\u0631\u0627\u0641\u064a\u062f\u064a\u0646\u064a\u0629
 languages.ber=\u0627\u0644\u0628\u0631\u0628\u0631\u064a\u0629
-languages.fa=\u0627\u0644\u0641\u0627\u0631\u0633\u064a\u0629
-languages.la=\u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629
-languages.et=\u0627\u0633\u062a\u0648\u0646\u064a\u0629
+languages.nds=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u0633\u0641\u0644\u0649
+languages.bem=\u0627\u0644\u0628\u064a\u0645\u0628\u0627
+languages.bej=\u0627\u0644\u0628\u064a\u062c\u0627
+languages.tpi=\u0627\u0644\u062a\u0648\u0643 \u0628\u064a\u0633\u064a\u0646
+variants.REVISED=\u0643\u062a\u0627\u0628\u0629 \u062a\u0645 \u0645\u0631\u0627\u062c\u0639\u062a\u0647\u0627
+variants.AREVELA=\u0623\u0631\u0645\u0646\u064a\u0629 \u0634\u0631\u0642\u064a\u0629
+variants.POSIX=\u062d\u0627\u0633\u0648\u0628
+variants.POLYTON=\u0645\u062a\u0639\u062f\u062f \u0627\u0644\u0646\u063a\u0645\u0627\u062a
+variants.1996=\u0627\u0644\u0643\u062a\u0627\u0628\u0629 \u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0644\u0639\u0627\u0645 1996
+variants.AREVMDA=\u0627\u0631\u0645\u0646\u064a\u0629 \u063a\u0631\u0628\u064a\u0629
+variants.VALENCIA=\u0628\u0644\u0646\u0633\u064a\u0629
+variants.1901=\u0627\u0644\u0643\u062a\u0627\u0628\u0629 \u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u062a\u0642\u0644\u064a\u062f\u064a\u0629
+variants.MONOTON=\u0623\u062d\u0627\u062f\u064a \u0627\u0644\u0646\u063a\u0645\u0629
+variants.BAKU1926=\u0627\u0644\u0623\u0628\u062c\u062f\u064a\u0629 \u0627\u0644\u062a\u0631\u0643\u064a\u0629 \u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629 \u0627\u0644\u0645\u0648\u062d\u062f\u0629
+variants.NEDIS=\u0644\u0647\u062c\u0629 \u0646\u0627\u062a\u064a\u0633\u0648\u0646
index e16164cd6b99d46db4812475e567ebcf810840c9..e3970980e82b5761fc0357f9bcc2b03685a762c4 100644 (file)
@@ -5,6 +5,6 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0623\u064a\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0623\u064a\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0623\u064a\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0623\u064a\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
index 3396386224b983e798823892ace533bdb8f9be7b..f033e8c0b78dd9af051e76a395ad78e788685d9d 100644 (file)
@@ -5,6 +5,7 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0646\u0648\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0646\u0648\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+exponential=E
+shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0623\u064a\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0623\u064a\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
index 30061aa2c4d50b4be6391982cc42ca9a962d60d6..22255f9383e8d937b12abb030219770edfc59531 100644 (file)
@@ -6,4 +6,4 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 currencyFormat=\u00a4#0.00;-\u00a4#0.00
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
index ebb48f6a7d29406d1594536c7a0397f25c182d78..fa3f44c9bf0663812fa5bb5e41675df4c1adb7f2 100644 (file)
@@ -6,4 +6,4 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 currencyFormat=\u00a4#0.00;-\u00a4#0.00
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
index f0964779500d06cf20b1b15d85c9936c3120896e..a14702cef3fc82d538b7bd68e075f93cd5ee4db5 100644 (file)
@@ -6,7 +6,6 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 currencyFormat=\u00a4#0.00;-\u00a4#0.00
-shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0646\u0648\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0646\u0648\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
-firstDayOfWeek=thu
+shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0646\u0648\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0646\u0648\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
index 32a12df14f41fb1945e1427e57b444056a6c6e26..195c92f184a4910d21fe405d572b5da60f71a495 100644 (file)
@@ -5,6 +5,7 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+exponential=E
 zeroDigit=0
 currencyFormat=\u00a4#0.00;-\u00a4#0.00
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
index 1cebfe4ad08ae19fb6dc50aeb17ae0be6d0b2726..aca8eb991b94da1b80c60f909005163843971abd 100644 (file)
@@ -6,4 +6,4 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 currencyFormat=\u00a4#0.00;-\u00a4#0.00
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
index 0167d434d34448836fb5319e17541b50fd897f92..0a21e2abef61171a1f2c3c853c5649dd99a1ce0f 100644 (file)
@@ -5,12 +5,41 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currenciesSymbol.INR=Rs.
-shortMonths=\u099c\u09be\u09a8\u09c1®\u09ab\u09c7\u09ac\u09cd\u09f0\u09c1®\u09ae\u09be\u09f0\u09cd\u099a®\u098f\u09aa\u09cd\u09f0\u09bf\u09b2®\u09ae\u09c7®\u099c\u09c1\u09a8®\u099c\u09c1\u09b2\u09be\u0987®\u0986\u0997®\u09b8\u09c7\u09aa\u09cd\u099f®\u0985\u0995\u09cd\u099f\u09cb®\u09a8\u09ad\u09c7®\u09a1\u09bf\u09b8\u09c7®®
-months=\u099c\u09be\u09a8\u09c1\u09df\u09be\u09f0\u09c0®\u09ab\u09c7\u09ac\u09cd\u09f0\u09c1\u09df\u09be\u09f0\u09c0®\u09ae\u09be\u09f0\u09cd\u099a®\u098f\u09aa\u09cd\u09f0\u09bf\u09b2®\u09ae\u09c7®\u099c\u09c1\u09a8®\u099c\u09c1\u09b2\u09be\u0987®\u0986\u0997\u09b7\u09cd\u099f®\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09f0®\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09f0®\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09f0®\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09f0®®
-shortWeekdays=®\u09f0\u09ac\u09bf®\u09b8\u09cb\u09ae®\u09ae\u0999\u09cd\u0997\u09b2®\u09ac\u09c1\u09a7®\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf®\u09b6\u09c1\u0995\u09cd\u09f0®\u09b6\u09a8\u09bf®
-weekdays=®\u09f0\u09ac\u09bf\u09ac\u09be\u09f0®\u09b8\u09cb\u09ae\u09ac\u09be\u09f0®\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09f0®\u09ac\u09c1\u09a7\u09ac\u09be\u09f0®\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09f0®\u09b6\u09c1\u0995\u09cd\u09f0\u09ac\u09be\u09f0®\u09b6\u09a8\u09bf\u09ac\u09be\u09f0®
-ampms=\u09aa\u09c2\u09f0\u09cd\u09ac\u09be®\u0985\u09aa®
-zoneStrings=Asia/Calcutta®\u09ad\u09be. \u09b8.®\u09ad\u09be\u09f0\u09a4\u09c0\u09df \u09b8\u09ae\u09df®\u09ad\u09be. \u09b8.®\u09ad\u09be\u09f0\u09a4\u09c0\u09df \u09b8\u09ae\u09df®©
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
+currenciesSymbol.INR=\u099f\u0995\u09be
+shortMonths=\u099c\u09be\u09a8\u09c1\u00ae\u09ab\u09c7\u09ac\u09cd\u09f0\u09c1\u00ae\u09ae\u09be\u09f0\u09cd\u099a\u00ae\u098f\u09aa\u09cd\u09f0\u09bf\u09b2\u00ae\u09ae\u09c7\u00ae\u099c\u09c1\u09a8\u00ae\u099c\u09c1\u09b2\u09be\u0987\u00ae\u0986\u0997\u00ae\u09b8\u09c7\u09aa\u09cd\u099f\u00ae\u0985\u0995\u09cd\u099f\u09cb\u00ae\u09a8\u09ad\u09c7\u00ae\u09a1\u09bf\u09b8\u09c7\u00ae\u00ae
+months=\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09f0\u09c0\u00ae\u09ab\u09c7\u09ac\u09cd\u09f0\u09c1\u09af\u09bc\u09be\u09f0\u09c0\u00ae\u09ae\u09be\u09f0\u09cd\u099a\u00ae\u098f\u09aa\u09cd\u09f0\u09bf\u09b2\u00ae\u09ae\u09c7\u00ae\u099c\u09c1\u09a8\u00ae\u099c\u09c1\u09b2\u09be\u0987\u00ae\u0986\u0997\u09b7\u09cd\u099f\u00ae\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09f0\u00ae\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09f0\u00ae\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09f0\u00ae\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09f0\u00ae\u00ae
+shortWeekdays=\u00ae\u09f0\u09ac\u09bf\u00ae\u09b8\u09cb\u09ae\u00ae\u09ae\u0999\u09cd\u0997\u09b2\u00ae\u09ac\u09c1\u09a7\u00ae\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u00ae\u09b6\u09c1\u0995\u09cd\u09f0\u00ae\u09b6\u09a8\u09bf\u00ae
+weekdays=\u00ae\u09a6\u09c7\u0993\u09ac\u09be\u09f0\u00ae\u09b8\u09cb\u09ae\u09ac\u09be\u09f0\u00ae\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09f0\u00ae\u09ac\u09c1\u09a7\u09ac\u09be\u09f0\u00ae\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09f0\u00ae\u09b6\u09c1\u0995\u09cd\u09f0\u09ac\u09be\u09f0\u00ae\u09b6\u09a8\u09bf\u09ac\u09be\u09f0\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u09aa\u09c2\u09f0\u09cd\u09ac\u09be\u00ae\u0985\u09aa\u00ae
+shortDateFormat=d-M-yyyy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM, yyyy
+fullDateFormat=EEEE, d MMMM, yyyy
+shortTimeFormat=h.mm. a
+mediumTimeFormat=h.mm.ss a
+longTimeFormat=h.mm.ss a z
+fullTimeFormat=h.mm.ss a z
+zoneStrings=India\u00ae\u09ad\u09be\u09f0\u09a4\u09c0\u09af\u09bc \u09b8\u09ae\u09af\u09bc\u00ae\u09ad\u09be. \u09b8.\u00ae\u00ae\u00ae\u00a9
+territories.FR=\u09ab\u09cd\u09f0\u09be\u09a8\u09cd\u09b8
+territories.IO=\u09ac\u09cd\u09f0\u09bf\u099f\u09bf\u09b6\u09cd\u09ac \u0987\u09a3\u09cd\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09ae\u09b9\u09be\u09b8\u09be\u0997\u09f0\u09f0 \u0985\u099e\u09cd\u099a\u09b2
 territories.IN=\u09ad\u09be\u09f0\u09a4
-languages.as=\u0985\u09b8\u09ae\u09c0\u09df\u09be
+territories.CN=\u099a\u09c0\u09a8
+territories.BV=\u09ac\u09ad\u09c7\u099f \u09a6\u09cd\u09ac\u09c0\u09aa
+territories.DE=\u099c\u09be\u09f0\u09cd\u09ae\u09be\u09a8\u09bf
+territories.GB=\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u09f0\u09be\u099c\u09cd\u09af
+territories.BR=\u09ac\u09cd\u09f0\u09be\u099c\u09bf\u09b2
+territories.HM=\u09b9\u09be\u09f0\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa \u0986\u09f0\u09c1 \u09ae\u09c7\u0995\u09cd\u200c\u09a1\u09cb\u09a8\u09be\u09b2\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa
+territories.GS=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u099c\u09f0\u09cd\u099c\u09bf\u09af\u09bc\u09be \u0986\u09f0\u09c1 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u099a\u09c7\u09a3\u09cd\u09a1\u09f1\u09bf\u099a\u09cd\u200c \u09a6\u09cd\u09ac\u09c0\u09aa
+territories.TF=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u09ab\u09cd\u09f0\u09be\u09a8\u09cd\u09b8\u09f0 \u0985\u099e\u09cd\u099a\u09b2
+territories.ZZ=\u0985\u099c\u09cd\u099e\u09be\u09a4 \u09ac\u09be \u0985\u09ac\u09c8\u09a7 \u0985\u099e\u09cd\u099a\u09b2
+territories.RU=\u09f0\u09c1\u099a
+territories.JP=\u099c\u09be\u09aa\u09be\u09a8
+territories.US=\u09af\u09c1\u0995\u09cd\u09a4\u09f0\u09be\u09b7\u09cd\u099f\u09cd\u09f0
+territories.AQ=\u098f\u09a8\u09cd\u099f\u09be\u09f0\u09cd\u099f\u09bf\u0995\u09be
+territories.IT=\u0987\u099f\u09be\u09b2\u09bf
+languages.as=\u0985\u09b8\u09ae\u09c0\u09af\u09bc\u09be
+languages.km=\u0995\u09ae\u09cd\u09ac\u09cb\u09a1\u09bf\u09af\u09bc\u09be\u09a8
+languages.ie=\u0989\u09aa\u09b8\u09cd\u09a5\u09be\u09aa\u09a8 \u09ad\u09be\u09b7\u09be
index addff83c02fe45a249c31cc1ab30cc081a5d0304..cab3fbb1f41f4b304b6d7a42323b2ed67f2037f5 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
-groupingSeparator=\u00a0
-currenciesDisplayName.AZM=Manat
+groupingSeparator=.
+digit=#
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.YDD=Yemen dinar\u0131
+currenciesDisplayName.KES=Kenya \u015fillingi
+currenciesDisplayName.TWD=Tayvan yeni dollar\u0131
+currenciesDisplayName.LKR=\u015eri Lanka rupisi
+currenciesDisplayName.BYB=Belarusiya yeni rublu
+currenciesDisplayName.TJS=Tacikistan somoni
+currenciesDisplayName.RWF=Rvanda frank\u0131
+currenciesDisplayName.ERN=Eritreya nakfas\u0131
+currenciesDisplayName.TJR=Tacikistan rublu
+currenciesDisplayName.GRD=Yunan draxmas\u0131
+currenciesDisplayName.AFN=\u018ffg\u0259n
+currenciesDisplayName.IEP=\u0130rlandiya paundu
+currenciesDisplayName.ARS=Argentina pesosu
+currenciesDisplayName.SDG=Sudan paundu
+currenciesDisplayName.ARP=Argentina pesosu (ARP)
+currenciesDisplayName.GEL=G\u00fcrc\u00fcstan larisi
+currenciesDisplayName.GEK=G\u00fcrc\u00fcstan kupon lariti
+currenciesDisplayName.AFA=\u018ffg\u0259n (AFA)
+currenciesDisplayName.CRC=Kosta Rika kolonu
+currenciesDisplayName.FKP=Folkland adas\u0131 paundu
+currenciesDisplayName.EEK=Estoniya krunu
+currenciesDisplayName.MDL=Moldova leyusu
+currenciesDisplayName.HKD=Honk Konq dollar\u0131
+currenciesDisplayName.IQD=\u0130raq dinar\u0131
+currenciesDisplayName.ARA=Argentina avstral\u0131
+currenciesDisplayName.SCR=Sey\u00e7el rupiyi
+currenciesDisplayName.KPW=\u015eimal Koreya vonu
+currenciesDisplayName.DKK=Danemarka kronas\u0131
+currenciesDisplayName.IDR=\u0130ndoneziya rupisi
+currenciesDisplayName.GQE=Ekvatoriya Gvineya ekvele quneanas\u0131
+currenciesDisplayName.SOS=Somaliya \u015fillingi
+currenciesDisplayName.LVR=Latviya rublu
+currenciesDisplayName.EQE=Ekvele
+currenciesDisplayName.AED=B\u018fE dirham\u0131
+currenciesDisplayName.LVL=Latviya lats\u0131
+currenciesDisplayName.BWP=Botsvana pulas\u0131
+currenciesDisplayName.RUR=Rusiya rublu (RUR)
+currenciesDisplayName.MOP=Makao patakas\u0131
+currenciesDisplayName.FJD=Fici dollar\u0131
+currenciesDisplayName.ADP=Andora pesetas\u0131
+currenciesDisplayName.RUB=Rusiya rublu
+currenciesDisplayName.CDF=Konqoliz frank konqolays\u0131
+currenciesDisplayName.NIC=Nikaraqua kordobu
+currenciesDisplayName.DJF=Jibouti frankas\u0131
+currenciesDisplayName.UZS=\u00d6zb\u0259kistan sumu
+currenciesDisplayName.SBD=Solomon Adalar\u0131 dollar\u0131
+currenciesDisplayName.LUL=Luksemburq finans frankas\u0131
+currenciesDisplayName.ECS=Ekvador sukresi
+currenciesDisplayName.THB=Tay baht\u0131
+currenciesDisplayName.PHP=Filipin pesosu
+currenciesDisplayName.LUF=Luksemburq frankas\u0131
+currenciesDisplayName.RHD=Rodezian dollar\u0131
+currenciesDisplayName.LUC=Luksemburq d\u0259yi\u015fik frankas\u0131
+currenciesDisplayName.FIM=Fin markas\u0131
+currenciesDisplayName.SZL=Svazil\u0259nd lilangeni
+currenciesDisplayName.MNT=Monqoliya tuqriki
+currenciesDisplayName.UAK=Ukraina karbovenesas\u0131
+currenciesDisplayName.SAR=Saudi riyal\u0131
+currenciesDisplayName.UAH=Ukraina hrivnyas\u0131
+currenciesDisplayName.HUF=Macar\u0131stan forinti
+currenciesDisplayName.QAR=Qatar rial\u0131
+currenciesDisplayName.COP=Kolombiya pesosu
+currenciesDisplayName.LTT=Litva talonas\u0131
+currenciesDisplayName.PTE=Portuqal eskudosu
+currenciesDisplayName.UYU=Uruqvay pesosu
+currenciesDisplayName.AOR=Anqola kvanzasi (AOR)
+currenciesDisplayName.GBP=Britaniya paund sterlingi
+currenciesDisplayName.ZRZ=Zair zairi
+currenciesDisplayName.INR=Hindistan rupisi
+currenciesDisplayName.BIF=Burundi frankas\u0131
+currenciesDisplayName.XFU=Frans\u0131z U\u0130C frank\u0131
+currenciesDisplayName.MZN=Mozambik metikal\u0131
+currenciesDisplayName.LTL=Litva litas\u0131
+currenciesDisplayName.AON=Anqola yeni kvanzasi (AON)
+currenciesDisplayName.UYP=Uruqvay pesosu (UYP)
+currenciesDisplayName.MZM=Q\u0259dim mozambik metikal\u0131
+currenciesDisplayName.KZT=Kazaxstan tenqesi
+currenciesDisplayName.AOK=Anqola kvanzasi (AOK)
+currenciesDisplayName.GNS=Gineya sulisi
+currenciesDisplayName.BUK=Burmis kyat\u0131
+currenciesDisplayName.XFO=Frans\u0131z g\u0131z\u0131l frank\u0131
+currenciesDisplayName.PGK=Papua Yeni Qvineya kini
+currenciesDisplayName.UYI=Uruqvay pesosu unidades indexadas
+currenciesDisplayName.SYP=Siriya paundu
+currenciesDisplayName.OMR=Oman rial\u0131
+currenciesDisplayName.MZE=Mozambik eskudosu
+currenciesDisplayName.ZRN=Zair yeni zairi
+currenciesDisplayName.NGN=Nigeriya nairi
+currenciesDisplayName.CNY=\u00c7in yuan\u0131
+currenciesDisplayName.AOA=Anqola kvanzasi
+currenciesDisplayName.MAF=Morokko frankas\u0131
+currenciesDisplayName.RSD=Serbiya dinar\u0131
+currenciesDisplayName.GNF=qvineya frankas\u0131
+currenciesDisplayName.MAD=Morokko dirham\u0131
+currenciesDisplayName.HTG=Haiti qourdu
+currenciesDisplayName.TRY=T\u00fcrk lira
+currenciesDisplayName.MMK=Myanmar kiyat\u0131
+currenciesDisplayName.MYR=Malaysiya rinqiti
+currenciesDisplayName.LSM=Maloti
+currenciesDisplayName.LSL=Lesoto lotisi
+currenciesDisplayName.BHD=Bahreyn dinar\u0131
+currenciesDisplayName.BTN=Butan ngultrumu
+currenciesDisplayName.TRL=T\u00fcrk k\u00f6hn\u0259 liras\u0131
+currenciesDisplayName.KMF=Komoro frank\u0131
+currenciesDisplayName.CZK=Cex respublika korunas\u0131
+currenciesDisplayName.ANG=Hollandiya Antila gilderi
+currenciesDisplayName.AZN=Az\u0259rbaycan manat\u0131
+currenciesDisplayName.AZM=az\u0259rbaycan manat\u0131 (1993-2006)
+currenciesDisplayName.KYD=Keyman Adalar\u0131 dollar\u0131
+currenciesDisplayName.GMD=Qambiya dalasi
+currenciesDisplayName.VEF=Venesuela Bolivar fuerti
+currenciesDisplayName.BGN=Bolqariya yeni levas\u0131
+currenciesDisplayName.CAD=Kanada dollar\u0131
+currenciesDisplayName.BGL=Bolqariya levas\u0131
+currenciesDisplayName.VEB=Venesuela bolivar\u0131
+currenciesDisplayName.MLF=Mali frank\u0131
+currenciesDisplayName.MXP=Meksika g\u00fcm\u00fc\u015f pesosu
+currenciesDisplayName.ILS=\u0130zrail ail yeni \u015fekeli
+currenciesDisplayName.PES=Peru solu
+currenciesDisplayName.MXN=Meksika pesosu
+currenciesDisplayName.GYD=Quyana dollar\u0131
+currenciesDisplayName.ILP=\u0130zrail paundu
+currenciesDisplayName.CYP=Kipr paundu
+currenciesDisplayName.SKK=Slovak korunas\u0131
+currenciesDisplayName.PEN=Peru sol nuyevosu
+currenciesDisplayName.LRD=Liberiya dollar\u0131
+currenciesDisplayName.PEI=Peru inti
+currenciesDisplayName.AMD=Erm\u0259ni dram\u0131
+currenciesDisplayName.BSD=Bahama dollar\u0131
+currenciesDisplayName.XPT=platinum
+currenciesDisplayName.HRK=Xorvatiya kunu
+currenciesDisplayName.HRD=Xorvatiya dinar\u0131
+currenciesDisplayName.CLP=\u00c7ili pesosu
+currenciesDisplayName.XPF=CFP frank\u0131
+currenciesDisplayName.FRF=Frans\u0131z markas\u0131
+currenciesDisplayName.XPD=Palladium
+currenciesDisplayName.BRR=Braziliya kruzeyrosu
+currenciesDisplayName.MKD=Masedoniya denar\u0131
+currenciesDisplayName.BRN=Braziliya kruzado novas\u0131
+currenciesDisplayName.ALL=Alban leki
+currenciesDisplayName.MWK=Malavi kva\u00e7as\u0131
+currenciesDisplayName.BRL=Braziliya real\u0131
+currenciesDisplayName.TPE=Timor eskudu
+currenciesDisplayName.BRE=Braziliya kruzeyrosu (BRE)
+currenciesDisplayName.BRC=Braziliya kruzadosu
+currenciesDisplayName.BRB=Braziliya kruzeyro novas\u0131
+currenciesDisplayName.DEM=Alman markas\u0131
+currenciesDisplayName.KWD=Kuveyt dinar\u0131
+currenciesDisplayName.XCD=\u015e\u0259rq karib dollar\u0131
+currenciesDisplayName.NPR=Nepal rupiyi
+currenciesDisplayName.GWP=Qvineya-Bisau pesosu
+currenciesDisplayName.YUN=Yuqoslaviya dinar\u0131 (d\u0259yi\u015fik)
+currenciesDisplayName.SVC=El Salvador kolonu
+currenciesDisplayName.YUM=Yuqoslaviya yeni  dinar\u0131 (hard)
+currenciesDisplayName.BEL=Bel\u00e7ika frank\u0131 (finans)
+currenciesDisplayName.SIT=Sloveniya tolar\u0131
+currenciesDisplayName.JPY=Yapon yeni
+currenciesDisplayName.XOF=CFA franka BCEAO
+currenciesDisplayName.MVR=Maldiv adalar\u0131 rufiyi
+currenciesDisplayName.BEF=Bel\u00e7ika frank\u0131
+currenciesDisplayName.GWE=Portugal Qvineya eskudosu
+currenciesDisplayName.TOP=Tonqa panqas\u0131
+currenciesDisplayName.YUD=Yuqoslaviya dinar\u0131 (hard)
+currenciesDisplayName.BEC=Bel\u00e7ika frank\u0131 (dey\u015firik)
+currenciesDisplayName.SUR=Sovet rublu
+currenciesDisplayName.RON=Roman leyu
+currenciesDisplayName.ROL=Roman q\u0259dimi leyu
+currenciesDisplayName.BDT=Banqlade\u015f takas\u0131
+currenciesDisplayName.DDM=\u015e\u0259rq Almaniya ostmark\u0131
+currenciesDisplayName.AWG=Aruba qilderi
+currenciesDisplayName.NOK=Norve\u00e7 kronu
+currenciesDisplayName.MUR=Mavritis rupiyi
+currenciesDisplayName.ZAR=C\u0259nub Afrika rand\u0131
+currenciesDisplayName.XAU=q\u0131z\u0131l
+currenciesDisplayName.ZAL=C\u0259nub Afrika rand\u0131 (finans)
+currenciesDisplayName.VND=Vyetnam donqu
+currenciesDisplayName.TZS=Tanzaniya \u015filingi
+currenciesDisplayName.GIP=Gibraltar paundu
+currenciesDisplayName.TND=Tunis dinar\u0131
+currenciesDisplayName.CVE=Kape Verde eskudosu
+currenciesDisplayName.UGX=Uqanda \u015felingi
+currenciesDisplayName.XAG=g\u00fcm\u00fc\u015f
+currenciesDisplayName.ZMK=Zambiya kva\u00e7\u0131
+currenciesDisplayName.JOD=\u0130ordaniya dinar\u0131
+currenciesDisplayName.LBP=Lebanon paundu
+currenciesDisplayName.UGS=Uqanda \u015felingi (UGS)
+currenciesDisplayName.WST=Q\u0259rb Samoa talas\u0131
+currenciesDisplayName.KHR=Kambodiya riyeli
+currenciesDisplayName.DOP=Dominika pesosu
+currenciesDisplayName.EUR=yevro
+currenciesDisplayName.BOV=Boliviya mvdol\u0131
+currenciesDisplayName.MTP=Maltiz paundu
+currenciesDisplayName.USS=AB\u015e dollar\u0131 (h\u0259min g\u00fcn)
+currenciesDisplayName.BOP=Boliviya pesosu
+currenciesDisplayName.CUP=Kuba pesosu
+currenciesDisplayName.TMM=T\u00fcrkm\u0259nistan manat\u0131
+currenciesDisplayName.USN=AB\u015e dollar\u0131 (yeni g\u00fcn)
+currenciesDisplayName.GHS=Qana sedisi
+currenciesDisplayName.SGD=Sinqapur dollar\u0131
+currenciesDisplayName.NZD=Yeni Zelandiya dollar\u0131
+currenciesDisplayName.USD=AB\u015e dollar\u0131
+currenciesDisplayName.BOB=Boliviano
+currenciesDisplayName.HNL=Honduras lempiras\u0131
+currenciesDisplayName.CHW=WIR frankas\u0131
+currenciesDisplayName.ITL=\u0130taliya liras\u0131
+currenciesDisplayName.PAB=Panamaniya balboa
+currenciesDisplayName.GTQ=Qvatemala k\u00fcetzal\u0131
+currenciesDisplayName.XXX=bilinm\u0259y\u0259n v\u0259ya g\u0259c\u0259rsiz
+currenciesDisplayName.AUD=Avstraliya dollar\u0131
+currenciesDisplayName.GHC=Qana sedisi (GHC)
+currenciesDisplayName.LAK=Laotiya kipi
+currenciesDisplayName.NAD=Namibiya dollar\u0131
+currenciesDisplayName.KGS=K\u0131r\u011f\u0131zstan somu
+currenciesDisplayName.MGF=Madaqaskar frankas\u0131
+currenciesDisplayName.BBD=Barbados dollar\u0131
+currenciesDisplayName.CHF=\u0130sve\u00e7riya frankas\u0131
+currenciesDisplayName.CHE=WIR Yevrosu
+currenciesDisplayName.MGA=Madaqaskar ariarisi
+currenciesDisplayName.PYG=Paraqvay quarani
+currenciesDisplayName.PLZ=Polsha zlotisi (PLZ)
+currenciesDisplayName.YER=Yemen rial\u0131
+currenciesDisplayName.ATS=Avstriya \u015filingi
+currenciesDisplayName.ETB=Efiopiya biras\u0131
+currenciesDisplayName.BND=Bruney dollar\u0131
+currenciesDisplayName.EGP=Misir paundu
+currenciesDisplayName.JMD=Yamayka dollar\u0131
+currenciesDisplayName.PLN=Polsha zlotisi
+currenciesDisplayName.DZD=Alc\u0259zir dinar\u0131
+currenciesDisplayName.ISK=Aysland kronas\u0131
+currenciesDisplayName.LYD=Liviya dinar\u0131
+currenciesDisplayName.SRD=Surinam dollar\u0131
+currenciesDisplayName.BAM=Bosniya-Herzeqovina markas\u0131
+currenciesDisplayName.BZD=Beliz dollar\u0131
+currenciesDisplayName.ESP=\u0130span pesetas\u0131
+currenciesDisplayName.KRW=C\u0259nub Koreya vonu
+currenciesDisplayName.NLG=Hollandiya gilderi
+currenciesDisplayName.MRO=Mavritaniya oyuquyas\u0131
+currenciesDisplayName.BAD=Bosniya-Herzeqovina dinar\u0131
+currenciesDisplayName.ZWD=Zimbabve dollar\u0131
+currenciesDisplayName.SEK=\u0130sve\u00e7 kronu
+currenciesDisplayName.CSK=\u00c7exoslavakiya korunas\u0131
+currenciesDisplayName.BYR=Belarusiya rublu
+currenciesDisplayName.ESB=\u0130span pesetas\u0131 (d\u0259y\u015firik)
+currenciesDisplayName.IRR=\u0130ran rial\u0131
+currenciesDisplayName.ESA=\u0130span pesetas\u0131 (A account)
+currenciesDisplayName.PKR=Pakistan rupiyi
+currenciesDisplayName.BMD=Bermuda dollar\u0131
+currenciesDisplayName.CSD=Q\u0259dimi serb dinar\u0131
+currenciesSymbol.GEL=lari
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.JPY=JP\u00a5
+currenciesSymbol.ALL=lek
+currenciesSymbol.AMD=dram
+currenciesSymbol.RUB=RUB
+currenciesSymbol.AZN=AZN
 currenciesSymbol.AZM=man.
-shortMonths=yan®fev®mar®apr®may®iyn®iyl®avq®sen®okt®noy®dek®®
-months=Yanvar®Fevral®Mart®Aprel®May®\u0130yun®\u0130yul®Avqust®Sentyabr®Oktyabr®Noyabr®Dekabr®®
-shortWeekdays=®B.®B.e.®\u00c7.a.®\u00c7.®C.a.®C.®\u015e.®
-weekdays=®bazar®bazar ert\u0259si®\u00e7\u0259r\u015f\u0259nb\u0259 ax\u015fam®\u00e7\u0259r\u015f\u0259nb\u0259®c\u00fcm\u0259 ax\u015fam\u0131®c\u00fcm\u0259®\u015f\u0259nb\u0259®
-eras=e.\u0259.®b.e.®
+currenciesSymbol.BRL=R$
+currenciesSymbol.CNY=CNY
+currenciesSymbol.USD=US$
+currenciesSymbol.XXX=XXX
+currenciesSymbol.EUR=\u20ac
+currenciesSymbol.GBP=UK\u00a3
+shortMonths=yan\u00aefev\u00aemar\u00aeapr\u00aemay\u00aeiyn\u00aeiyl\u00aeavq\u00aesen\u00aeokt\u00aenoy\u00aedek\u00ae\u00ae
+months=Yanvar\u00aeFevral\u00aeMart\u00aeAprel\u00aeMay\u00ae\u0130yun\u00ae\u0130yul\u00aeAvqust\u00aeSentyabr\u00aeOktyabr\u00aeNoyabr\u00aeDekabr\u00ae\u00ae
+shortWeekdays=\u00aeB.\u00aeB.E.\u00ae\u00c7.A.\u00ae\u00c7.\u00aeC.A.\u00aeC\u00ae\u015e.\u00ae
+weekdays=\u00aebazar\u00aebazar ert\u0259si\u00ae\u00e7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131\u00ae\u00e7\u0259r\u015f\u0259nb\u0259\u00aec\u00fcm\u0259 ax\u015fam\u0131\u00aec\u00fcm\u0259\u00ae\u015f\u0259nb\u0259\u00ae
+eras=e.\u0259.\u00aeb.e.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00ae\u015e\u0259rq Avropa\u00ae\u015e\u0259rq Avropa/standart\u00ae\u015e\u0259rq Avropa/yay\u00ae\u015e\u0259rq Avropa/yaz\u00ae\u00a9Europe_Central\u00aeOrta Avropa\u00aeOrta Avropa/standart\u00aeOrta Avropa/yay\u00aeOrta Avropa/yaz\u00ae\u00a9Samara\u00aeSamara\u00ae\u00aeSamara/yay\u00ae\u00ae\u00a9Moscow\u00aeMoskva/standart\u00ae\u00aeMoskva/yay\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybu\u015fev\u00ae\u00aeKuybu\u015fev/yay\u00ae\u00ae\u00a9Volgograd\u00aeVolqoqrad\u00ae\u00aeVolqoqrad/yay\u00ae\u00ae\u00a9Turkey\u00aeT\u00fcrkiya\u00ae\u00aeT\u00fcrkiya/yay\u00ae\u00ae\u00a9
+territories.TL=\u015e\u0259rq Timor
+territories.TK=Tokelau
+territories.TJ=tacikistan
+territories.TH=tayland
+territories.TG=Toqo
+territories.TF=Frans\u0131z C\u0259nub teritoriyas\u0131
+territories.GY=Quyana
+territories.TD=\u00c7ad
+territories.TC=T\u00fcrk v\u0259 Kaykos Adalar\u0131
+territories.GW=Qvineya-Bisau
+territories.GU=Quam
+territories.GT=Qvatemala
+territories.GS=C\u0259nub G\u00fcrc\u00fcstan v\u0259 C\u0259nub Sandvil\u00e7 Adalar\u0131
+territories.GR=Yunan\u0131stan
+territories.GQ=Ekvator Qineya
+territories.GP=Qvadalup
+territories.SZ=svazil\u0259nd
+territories.SY=siriya
+territories.GN=Qvineya
+territories.GM=Qambiya
+territories.GL=Qrinland
+territories.SV=El Salvador
+territories.062=C\u0259nub Orta Asiya
+territories.ST=Sao Tom v\u0259 Prinsip
+territories.GI=Gibraltar
+territories.061=Polineziya
+territories.GH=Qana
+territories.SR=surinam\u0259
+territories.GG=G\u00f6rnsey
+territories.GF=Frans\u0131z Quyanas\u0131
+territories.GE=G\u00fcrc\u00fcstan
+territories.SO=Somaliya
+territories.GD=Qrenada
+territories.SN=Seneqal
+territories.SM=San Marino
+territories.GB=Birl\u0259\u015fmi\u015f Krall\u0131q
+territories.SL=Siyera Leon
+territories.GA=Qabon
+territories.SK=Slovakiya
+territories.SJ=svalbard v\u0259 yan mayen
+territories.SI=Sloveniya
+territories.SH=Seynt Elena
+territories.SG=Sinqapur
+territories.SE=isve\u00e7
+territories.SD=sudan
+territories.SC=Sey\u00e7els
+territories.SB=Solomon Adalar\u0131
+territories.SA=Saudi \u018fr\u0259bistan
+territories.FR=Fransa
+territories.FO=Faro Adalar\u0131
+territories.057=Mikronesiya reqionu
+territories.FM=Mikronesiya
+territories.RW=Rvanda
+territories.054=Melanesya
+territories.FK=Folkland Adalar\u0131
+territories.053=Avstraliya v\u0259 Yeni Zelandiya
+territories.RU=Rusiya
+territories.FJ=Fici
+territories.FI=Finlandiya
+territories.RS=Serbiya
+territories.RO=Romaniya
+territories.RE=Reyunion
+territories.ET=Efiopiya
+territories.ES=\u0130spaniya
+territories.ER=Eritreya
+territories.QU=Avropa Birl\u0259\u015fliyi
+territories.EH=Q\u0259rb Sahara
+territories.EG=Misir
+territories.EE=Estoniya
+territories.QO=Uzak Okeyaniya
+territories.EC=Ekvador
+territories.DZ=Cezay\u0131r
+territories.QA=Qatar
+territories.039=C\u0259nub Avropa
+territories.DO=Dominik Respublikas\u0131
+territories.PY=Paraqvay
+territories.DM=Dominika
+territories.035=C\u0259nub \u015e\u0259rq Asiya
+territories.PW=Palav
+territories.034=C\u0259nub Asiya
+territories.DK=Danemarka
+territories.DJ=Ciboti
+territories.PT=Portuqal
+territories.PS=F\u0259l\u0259stin B\u00f6lq\u00fcs\u00fc
+territories.030=\u015e\u0259rq Asiya
+territories.PR=Puerto Riko
+territories.DE=Almaniya
+territories.PN=Pitkarn
+territories.PM=Seynt Piyer v\u0259 Mikelon
+territories.PL=Pol\u015fa
+territories.PK=Pakistan
+territories.PH=Filipin
+territories.PG=Papua Yeni Qvineya
+territories.PF=Frans\u0131z Polineziya
+territories.CZ=\u00c7ex respublikas\u0131
+territories.PE=Peru
+territories.CY=Kipr
+territories.CX=\u00c7ristmas Adas\u0131
+territories.CV=Kape Verde
+territories.PA=Panama
+territories.CU=Kuba
+territories.CR=Kosta Rika
+territories.029=Kariy\u0131plar
+territories.CO=Kolumbiya
+territories.CN=\u00c7in
+territories.CM=Kamerun
+territories.CL=\u00c7ile
+territories.CK=Kuk Adalar\u0131
+territories.021=021
+territories.CI=\u0130vori Sahili
+territories.CH=isve\u00e7riya
+territories.CG=Konqo - Brazavil
+territories.CF=Orta Afrika respublikas\u0131
+territories.CD=Konqo - Kin\u015fasa
+territories.CC=Kokos Adalar\u0131
+territories.OM=Oman
+territories.CA=Kanada
+territories.419=Lat\u0131n Amerikas\u0131 v\u0259 Karibl\u0259r
+territories.BZ=Beliz
+territories.BY=Belarus
+territories.BW=Botsvana
+territories.BV=Bove Adas\u0131
+territories.BT=Butan
+territories.BS=Bahamalar
+territories.BR=Braziliya
+territories.019=Amerikalar
+territories.018=018
+territories.NZ=Yeni Zelandiya
+territories.017=Orta Afrika
+territories.BO=Boliviya
+territories.BN=Bruney
+territories.015=\u015eimal Afrika
+territories.BM=Bermuda
+territories.014=\u015e\u0259rq Afrika
+territories.BL=Seynt Bartelemey
+territories.013=Orta Amerika
+territories.NU=Niye
+territories.BJ=Benin
+territories.011=Q\u0259rb afrika
+territories.BI=Burundi
+territories.172=172
+territories.BH=Bahreyn
+territories.NR=Nauru
+territories.BG=Bolqariya
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Bel\u00e7ika
+territories.ZZ=bilinmir
+territories.NO=Norvec
+territories.BD=Banqlade\u015f
+territories.BB=Barbados
+territories.ZW=Zimbabve
+territories.NL=Hollandiya
+territories.BA=Bosniya v\u0259 Herzokovina
+territories.NI=Nikaraqua
+territories.NG=Nijeriya
+territories.NF=Norfolk Adas\u0131
 territories.AZ=Az\u0259rbaycan
+territories.NE=nijer
+territories.AX=Aland Adalar\u0131
+territories.NC=Yeni Kaledoniya
+territories.AW=Aruba
+territories.ZM=Zambiya
+territories.NA=Namibiya
+territories.AU=Avstraliya
+territories.AT=Avstriya
+territories.AS=Amerika Samoas\u0131
+territories.AR=Arqentina
+territories.AQ=Antarktika
+territories.009=Okeyaniya
+territories.MZ=Mazambik
+territories.AO=Angola
+territories.MY=Malaysiya
+territories.AN=Hollandiya antilleri
+territories.MX=Meksika
+territories.AM=Erm\u0259nistan
+territories.005=C\u0259nub Amerika
+territories.MW=Malavi
+territories.AL=Albaniya
+territories.MV=Maldiv
+territories.003=\u015eimal Amerika
+territories.ZA=C\u0259nub Afrika
+territories.MU=Mavritis
+territories.002=Afrika
+territories.MT=Malta
+territories.AI=Anquila
+territories.001=D\u00fcnya
+territories.MS=Montserat
+territories.MR=Mavritaniya
+territories.AG=Antiqua v\u0259 Barbuda
+territories.MQ=Martiniqu
+territories.AF=\u018ffq\u0259nistan
+territories.MP=\u015eimal Mariana Adalar\u0131
+territories.AE=Birl\u0259\u015fmi\u015f \u018fr\u0259b Emiratlar\u0131
+territories.MO=Makao
+territories.AD=Andorra
+territories.MN=Monqoliya
+territories.MM=Myanmar
+territories.ML=Mali
+territories.MK=Masedoniya
+territories.YT=Mayot
+territories.MH=Mar\u015fal Adalar\u0131
+territories.MG=Madaqaskar
+territories.MF=Seynt Martin
+territories.ME=Monteneqro
+territories.MD=Moldova
+territories.MC=Monako
+territories.MA=Morokko
+territories.YE=Yemen
+territories.LY=Libya
+territories.LV=Latviya
+territories.155=Q\u0259rb Avropa
+territories.LU=L\u00fcksemburq
+territories.154=\u015eimal Avropa
+territories.LT=Litva
+territories.LS=Lesoto
+territories.LR=Liberiya
+territories.151=\u015e\u0259rq Avropa
+territories.150=Avropa
+territories.LK=\u015eri Lanka
+territories.LI=Lixten\u015fteyn
+territories.LC=Seynt Lusiya
+territories.LB=Lebanon
+territories.LA=Laos
+territories.KZ=Kazaxstan
+territories.KY=Kayman Adalar\u0131
+territories.KW=Kuveyt
+territories.145=Q\u0259rb Asiya
+territories.143=Orta Aziya
+territories.142=Aziya
+territories.KR=C\u0259nub Koreya
+territories.KP=\u015eimal Koreya
+territories.KN=Seynt Kits v\u0259 Nevis
+territories.KM=Komoros
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Kambodiya
+territories.KG=K\u0131rq\u0131zstan
+territories.KE=Kenya
+territories.WF=Valis v\u0259 Futuna
+territories.JP=Yaponiya
+territories.JO=\u00dcrd\u00fcn
+territories.JM=Yamayka
+territories.VU=Vanuatu
+territories.JE=C\u00f6rsi
+territories.VN=Vyetnam
+territories.VI=AB\u015e Virqin Adalar\u0131
+territories.VG=Britaniya Virgin Adalar\u0131
+territories.VE=Venesuela
+territories.VC=Seynt Vinsent v\u0259 Qrenada
+territories.VA=Vatikan
+territories.IT=italiya
+territories.IS=\u0130slandiya
+territories.IR=\u0130ran
+territories.IQ=\u0130rak
+territories.UZ=\u00d6zb\u0259kistan
+territories.IO=Britaniya-Hindistan Okeanik territoriyas\u0131
+territories.UY=Uruqvay
+territories.IN=Hindistan
+territories.IM=Man Adas\u0131
+territories.IL=\u0130zrail
+territories.US=Birl\u0259\u015fmi\u015f \u015etatlar\u0131
+territories.IE=\u0130rlandiya
+territories.ID=\u0130ndoneziya
+territories.UM=Birl\u0259\u015fmi\u015f \u015etatlar\u0131n uzaq adalar\u0131
+territories.UG=Uqanda
+territories.UA=Ukraina
+territories.HU=Macaristan
+territories.HT=Haiti
+territories.HR=Xorvatiya
+territories.TZ=tanzaniya
+territories.HN=Qonduras
+territories.HM=H\u00f6rd v\u0259 Makdonald Adalar\u0131
+territories.TW=tayvan
+territories.TV=Tuvalu
+territories.HK=Honk Konq
+territories.TT=Trinidan v\u0259 Tobaqo
+territories.TR=T\u00fcrkiya
+territories.TO=Tonqa
+territories.TN=Tunisiya
+territories.TM=T\u00fcrkm\u0259nistan
+languages.gwi=qvi\u00e7in dili
+languages.akk=akadianca
+languages.eka=ekacuk dili
+languages.ijo=ico dili
+languages.xh=xosa dili
+languages.sux=sumeryan dili
+languages.sus=susu dili
+languages.mis=\u00e7e\u015fitli diller
+languages.loz=lozi dili
+languages.tog=niyasa tonga dili
+languages.zbl=blisimbols dili
+languages.pon=ponpeyan dili
+languages.min=minanqkaban dili
+languages.suk=sukuma dili
+languages.wo=volof dili
+languages.lol=monqo dili
+languages.kut=kutenay dili
+languages.mic=mikmak dili
+languages.wa=valun dili
+languages.kum=kumuk dili
+languages.zap=zapotek dili
+languages.ain=aynuca
+languages.cus=ku\u015fitik dili
+languages.jbo=lo\u011fban dili
+languages.doi=doqri dili
+languages.zza=zaza dili
+languages.vo=volap\u00fck dili
+languages.oto=otomian dili
+languages.vi=vyetnamca
+languages.vai=vay dili
+languages.rar=rarotonqan dili
+languages.ve=venda dili
+languages.rap=rapanu dili
+languages.raj=racastan dili
+languages.ota=osman dili
+languages.nzi=nizima dili
+languages.nap=neapolital dili
+languages.uz=\u00f6zb\u0259kc\u0259
+languages.uga=uqaritik dili
+languages.tmh=tama\u015fek dili
+languages.nai=\u015fimal amerika yerli dili
+languages.nah=nahuatl dili
+languages.ur=urduca
+languages.fat=fanti dili
+languages.uk=ukraynaca
+languages.egy=q\u0259dimi misir dili
+languages.ug=uy\u011furca
+languages.fan=fang dili
+languages.ssa=nilo-sahara dili
+languages.mga=ortacaq irlandca
+languages.bat=baltik dili
+languages.nyo=niyoro dili
+languages.bas=basa dili
+languages.nyn=nyankol dili
+languages.nym=nyamvezi dili
+languages.gsw=isve\u00e7 almanca
+languages.hmn=monq dili
+languages.ban=balinc\u0259
+languages.osa=osage dili
+languages.bal=baluc dili
+languages.ty=taxiti dili
+languages.bai=bamilek dili
+languages.tw=Tvi dili
+languages.srr=serer dilii
+languages.tli=tlinqit dili
+languages.tlh=klinqon
+languages.tt=tatarca
+languages.ts=sonqa dili
+languages.srn=sranan tonqo dili
+languages.bad=banda dili
+languages.tr=t\u00fcrkc\u0259
+languages.to=tonqa dili
+languages.tn=svana dili
+languages.tl=taqaloq dili
+languages.tk=t\u00fcrkm\u0259nc\u0259
+languages.ti=tiqrin dili
+languages.th=tayca
+languages.kru=kurux dili
+languages.tg=tacik dili
+languages.byn=bilinc\u0259
+languages.te=teluqu dili
+languages.kro=kru dili
+languages.csb=ka\u015fubyan dili
+languages.ta=tamilc\u0259
+languages.krl=karelyan dili
+languages.tkl=tokelay dili
+languages.efi=efik dili
+languages.sw=suahilic\u0259
+languages.sv=isve\u00e7c\u0259
+languages.su=sundanca
+languages.krc=qara\u00e7ay-balkar dili
+languages.st=Sesoto dili
+languages.ss=svati dili
+languages.sr=serb dili
+languages.sq=Albanca
+languages.men=mende dili
+languages.crp=kreol dili
+languages.so=somali dili
+languages.afh=afrihili dili
+languages.sn=\u015fona dili
+languages.sm=samoa dili
+languages.sl=slovenc\u0259
+languages.grc=q\u0259dimi yunanca
+languages.sk=slovakca
+languages.grb=qrebo dili
+languages.si=sinhalisc\u0259
+languages.sh=serb-xorvatca
+languages.crh=kr\u0131m t\u00fcrk\u00e7\u0259
+languages.afa=afro-aziat dili
+languages.sg=sanqo dili
+languages.se=\u015fimal sami dili
+languages.sd=sindhi dili
+languages.udm=udmurt dili
+languages.sc=sardin dili
+languages.sa=Sanskrit dili
+languages.rw=kinyarvanda dili
+languages.ru=rusca
+languages.mdr=mandar dili
+languages.ro=rum\u0131n
+languages.rn=rundi dili
+languages.fr_CH=isve\u00e7 frans\u0131zca
+languages.mdf=mok\u015fa dili
+languages.tiv=tiv dili
+languages.fr_CA=frans\u0131zca (CA)
+languages.ady=aduge dili
+languages.zun=zuni dili
+languages.kpe=kpelle dili
+languages.qu=kuechya dili
+languages.tig=tiqre dili
+languages.son=sonqay dili
+languages.cpp=portugal kreol dili
+languages.rup=aromanca
+languages.sog=soqdiyen dili
+languages.ada=adangme dili
+languages.kos=kosreyan dili
+languages.hit=hittit dili
+languages.cpf=frans\u0131z kreol dili
+languages.cpe=inglis kreol dili
+languages.him=hima\u00e7ali dili
+languages.kok=konkan dili
+languages.hil=hiliqaynon dili
+languages.got=got\u00e7a
+languages.gor=qorontalo dili
+languages.gon=qondi dili
+languages.din=dinka dili
+languages.nub=nubiy dili
+languages.pt=portuqalca
+languages.ps=Pu\u015ftu dili
+languages.fur=friul dili
+languages.phn=foyenik dili
+languages.de_CH=isve\u00e7 y\u00fcks\u0259k almancas\u0131
+languages.goh=q\u0259dimi almanca
+languages.snk=soninke dili
+languages.cop=kopt dili
+languages.yap=yapiz dili
+languages.ach=akoli dili
+languages.yao=yao dili
+languages.phi=filipin dili
+languages.pl=Polish dili
+languages.ace=akin dili
+languages.pi=pali dili
+languages.pt_PT=\u0130ber portuqalca
+languages.pa=puncab dili
+languages.bug=bugin dili
+languages.iba=iban dili
+languages.sms=skolt dili
+languages.bua=buryat dili
+languages.mas=masay dili
+languages.smn=inari sami
+languages.os=osetik dili
+languages.map=avstronezic\u0259
+languages.or=Oriy\u0259 dili
+languages.man=m\u0259ndinqo dili
+languages.smj=lule sami dili
+languages.smi=s\u0259mi dili
+languages.mak=makasar dili
+languages.om=oromo dili
+languages.mai=maitili dili
+languages.oj=ocibva dili
+languages.mag=maqahi dili
+languages.mad=maduriz dili
+languages.sma=c\u0259nub sami dili
+languages.oc=oksitanca
+languages.nso=\u015fimal soto dili
+languages.btk=batak dili
+languages.myv=erzya dili
+languages.es_ES=iber-ispanca
+languages.de_AT=almanca (AT)
+languages.dgr=doqrib dili
+languages.ny=nyanca dili
+languages.myn=maya dili
+languages.nv=navayo dili
+languages.kmb=kimbundu dili
+languages.nr=c\u0259nub ndebele dili
+languages.gmh=ortacaq y\u00fcks\u0259k almanca
+languages.no=norve\u00e7 dili
+languages.nn=norve\u00e7 ninorsk dili
+languages.nl=hollandca
+languages.root=rut dili
+languages.ng=nqonka dili
+languages.sla=slav dili
+languages.ne=nepalca
+languages.nd=\u015fimal ndebele dili
+languages.cmc=\u00e7amik dili
+languages.tet=tetum dili
+languages.nb=norvec bokmal dili
+languages.na=nauru dili
+languages.ter=tereno dili
+languages.tem=timne dili
+languages.my=burmis dili
+languages.lez=l\u0259zqi dili
+languages.mt=malta dili
+languages.peo=q\u0259dimi farsca
+languages.ms=malayca
+languages.frr=\u015fimal fris dili
+languages.mr=marati dili
+languages.fro=q\u0259dimi frans\u0131zca
+languages.mo=moldavca
+languages.mn=monqolca
+languages.frm=ortacaq frans\u0131zca
+languages.ml=malayalamca
+languages.jrb=jude-\u0259r\u0259bc\u0259
+languages.mk=makedoniya dili
+languages.mi=maori dili
+languages.mh=mar\u015fal dili
+languages.mg=malaqas dili
+languages.nqo=nqo dili
+languages.mwr=maruari dili
+languages.bra=braj dili
+languages.mwl=mirand dili
+languages.den=slavey
+languages.lv=lat\u0131\u015fca
+languages.lu=luba-katanqa dili
+languages.del=delaver dili
+languages.lt=litva dili
+languages.lo=laos dili
+languages.ln=Linqala dili
+languages.li=limburqi\u015f dili
+languages.ewo=evondo dili
+languages.lg=qanda dili
+languages.lb=luksemburq dili
+languages.la=lat\u0131nca
+languages.jpr=judo-farsca
+languages.vot=votik dili
+languages.sit=sino-tibet dili
+languages.ky=q\u0131r\u011f\u0131zca
+languages.kw=korni\u015f dili
+languages.kv=komi dili
+languages.ku=k\u00fcrdc\u0259
+languages.sio=sioyan dili
+languages.ks=k\u0259\u015fmir dili
+languages.kr=kanur dili
+languages.awa=avadic\u0259
+languages.ko=koreya dili
+languages.kn=kannada dili
+languages.km=kambodiya dili
+languages.en_GB=ingilisc\u0259 (GB)
+languages.kl=kalalisut dili
+languages.kk=qazax dili
+languages.rom=roman dili
+languages.kj=kuanyama dili
+languages.sid=sidamo dili
+languages.ki=kikuyu dili
+languages.kg=konqo dili
+languages.non=q\u0259dimi norsca
+languages.ka=g\u00fcrc\u00fc dili
+languages.mus=krik dili
+languages.nog=noqay dili
+languages.mun=munda dili
+languages.mul=dig\u0259r dill\u0259r
+languages.jv=yavaca dili
+languages.gil=qilbert gili
+languages.znd=zande dili
+languages.shn=\u015fan dili
+languages.fon=fon dili
+languages.xal=kalm\u0131qca
+languages.aus=avstraliyca
+languages.kho=xotan dili
+languages.ja=yaponca
+languages.khi=xoyzan dili
+languages.pau=palayanca
+languages.chy=\u00e7eyen dili
+languages.tai=tay dili
+languages.iu=inuktikut dili
+languages.pap=papyamento dili
+languages.it=italyanca
+languages.sgn=i\u015far\u0259t dili
+languages.is=isl\u0259ndc\u0259
+languages.kha=xazi dili
+languages.chr=\u00e7iroki dili
+languages.pam=pampanqa dili
+languages.pal=paxlavi dili
+languages.chp=\u00e7ipevyan dili
+languages.io=ido dili
+languages.cho=\u00e7oktau dili
+languages.chn=\u00e7inuk l\u0259h\u00e7\u0259si
+languages.chm=mari dili
+languages.tyv=tuvinyan dili
+languages.bnt=bantu dili
+languages.pag=panqasinan dili
+languages.ik=inupiaq dili
+languages.chk=\u00e7ukiz dili
+languages.ii=si\u00e7uan yi dili
+languages.haw=Qavayca
+languages.lam=lamba dili
+languages.ig=iqbo dili
+languages.chg=\u00e7a\u011fatay dili
+languages.sga=q\u0259dimi irlandca
+languages.paa=papua dili
+languages.ie=interlingue dili
+languages.id=indoneziya dili
+languages.lah=laxnda dili
+languages.day=dayak dili
+languages.chb=\u00e7ib\u00e7\u0259 dili
+languages.ia=interlingua dili
+languages.lad=ladin dili
+languages.hz=Herer dili
+languages.hai=hayda dili
+languages.dar=darqva dili
+languages.hy=Erm\u0259nic\u0259
+languages.ath=atapaskanca
+languages.hu=macarca
+languages.ht=haiti dili
+languages.dak=dakota dili
+languages.hr=xorvatca
+languages.ho=hiri motu dili
+languages.hi=hindi dili
+languages.dyu=dyula dili
+languages.he=ivritc\u0259
+languages.ast=asturic\u0259
+languages.kfo=koro dili
+languages.ha=Hausa dili
+languages.wen=sorb dili
+languages.gv=manks dili
+languages.gu=gujarati dili
+languages.sem=ivrit dili
+languages.sel=selkup dili
+languages.iro=irokuay dili
+languages.gn=quaranic\u0259
+languages.gl=qalisian dili
+languages.en_CA=ingilisc\u0259 (CA)
+languages.arw=aravak\u00e7a
+languages.gez=qez dili
+languages.art=suni dil
+languages.gd=skot gaelik dili
+languages.ira=iranca
+languages.ga=irlandca
+languages.arp=arapaho dili
+languages.arn=araukanca
+languages.fy=frisk dili
+languages.bla=siksik\u0259 dili
+languages.gem=Alman dili
+languages.ypk=yupik dili
+languages.arc=aramik dili
+languages.fr=frans\u0131zca
+languages.fo=farer dili
+languages.cel=kelt dili
+languages.fj=fiji dili
+languages.fi=finc\u0259
+languages.ff=fula dili
+languages.tvl=tuvalu dili
+languages.ceb=kebuano dili
+languages.fa=farsca
+languages.en_AU=ingilisc\u0259 (AU)
+languages.zh_Hans=adi \u00e7inc\u0259
+languages.zh_Hant=g\u0259l\u0259n\u0259ks\u0259l \u00e7inc\u0259
+languages.eu=bask dili
+languages.sco=skots dili
+languages.et=estonca
+languages.scn=sisili dili
+languages.es=ispanca
+languages.eo=esperanto dili
+languages.en=ingilisc\u0259
+languages.el=yunanca
+languages.tut=altaik dili
+languages.niu=niyuan dili
+languages.tup=tupi dili
+languages.ee=eve dili
+languages.tum=tumbuka dili
+languages.nl_BE=flem dili
+languages.es_419=lat\u0131n amerika ispancas\u0131
+languages.mos=mosi dili
+languages.dz=dzonqa dili
+languages.kcg=tiyap dili
+languages.nic=niger-kordofyan dili
+languages.lus=lushayca
+languages.fiu=fin-u\u011fri dili
+languages.dv=diveh dili
+languages.nia=nyas dili
+languages.moh=moxak dili
+languages.luo=luo dili
+languages.lun=lunda dili
+languages.apa=apa\u00e7i dili
+languages.fil=taqaloqca
+languages.lui=luyseno dili
+languages.hup=hupa dili
+languages.cch=atsamca
+languages.bin=bini dili
+languages.de=almanca
+languages.lua=luba-lulua dili
+languages.bik=bikolca
+languages.was=va\u015fo dili
+languages.und=bilinm\u0259y\u0259n v\u0259ya g\u0259c\u0259rsiz dil
+languages.war=varay dili
+languages.da=danimarka dili
+languages.dum=ortacaq hollandca
+languages.wal=valamo dili
+languages.mno=manobo dili
+languages.wak=vaka\u015fan dili
+languages.sat=santal dili
+languages.cy=uelsc\u0259
+languages.sas=sasak dili
+languages.kbd=kabardca
+languages.cv=\u00e7uva\u015f dili
+languages.cu=kils\u0259 slav dili
+languages.mni=manip\u00fcri dili
+languages.cs=\u00e7ex dili
+languages.sam=samaritan dili
+languages.cr=kri dili
+languages.sal=sali\u015fan dili
+languages.dua=duala dili
+languages.co=korsikan dili
+languages.sai=c\u0259nub amerika yerli dili
+languages.mnc=man\u00e7u dili
+languages.sah=yakut dili
+languages.kaw=kavi dili
+languages.inh=inqu\u015f dili
+languages.gba=qabaya dili
+languages.sad=sandave dili
+languages.ch=\u00e7amoro dili
+languages.ine=hint-yevropa dili
+languages.bho=bxo\u00e7puri dili
+languages.enm=ortacaq ingilisc\u0259
+languages.kar=karen dili
+languages.inc=diq\u0259r hint dili
+languages.ce=\u00e7e\u00e7en dili
+languages.gay=qayo dili
+languages.ca=katalanca
+languages.umb=umbundu dili
+languages.syr=siryak dili
+languages.kam=kamba dili
+languages.anp=angik\u0259 dili
+languages.tsi=sim\u015fyan dili
+languages.kaj=ju dili
+languages.ang=q\u0259dimi ingilisc\u0259
+languages.kac=ka\u00e7inca
+languages.cau=qavqaz dili
+languages.kab=kabule dili
+languages.kaa=qara-qalpaq dili
+languages.bs=bosniya dili
+languages.car=karib dili
+languages.br=Bretonca
+languages.bo=tibet dili
+languages.bn=Benqal dili
+languages.bm=bambara dili
+languages.gaa=qa dili
+languages.cai=m\u0259rk\u0259zi amerika indus dili
+languages.bi=bislama dili
+languages.bh=biharic\u0259
+languages.bg=bolqarca
+languages.be=belarusca
+languages.cad=kado dili
+languages.ba=ba\u015fkir dili
+languages.zu=zulu dili
+languages.zen=zenaqa dili
+languages.pro=q\u0259dimi provensialca
+languages.hsb=yuxar\u0131 sorbca
 languages.az=az\u0259rbaycanca
+languages.ay=aymarca
+languages.av=avarikc\u0259
+languages.as=Assam dili
+languages.dsb=a\u015fa\u011f\u0131 sorbca
+languages.ar=\u018fr\u0259bc\u0259
+languages.ilo=iloko dili
+languages.elx=elamit dili
+languages.zh=\u00e7inc\u0259
+languages.an=aragonca
+languages.pra=prakrit dili
+languages.am=amarikc\u0259
+languages.new=nevari dili
+languages.ak=akanca
+languages.za=ju\u0259nq dili
+languages.en_US=ingilisc\u0259 (AB\u015e)
+languages.af=Afrikaanca
+languages.ae=avestanca
+languages.alt=c\u0259nub altay dili
+languages.ab=abxazca
+languages.aa=afarca
+languages.yo=yoruba dili
+languages.alg=algonguyan dili
+languages.ale=aleutca
+languages.mkh=mon-xmer dili
+languages.yi=Yahudi dili
+languages.dra=dravid dili
+languages.ber=berber dili
+languages.nds=a\u015fa\u011f\u0131 almanca
+languages.bem=bemba dili
+languages.bej=beja dili
+languages.tpi=tok pisin dili
index 8e7e207963a75d9744e67d25b5b7a16e44dd6451..9c9adf4b2c989422a376a2ac875fefc4b846ab05 100644 (file)
@@ -7,7 +7,25 @@
 
 currenciesDisplayName.AZM=\u043c\u0430\u043d\u0430\u0442
 currenciesSymbol.AZM=\u043c\u0430\u043d.
-months=\u0458\u0430\u043d\u0432\u0430\u0440®\u0444\u0435\u0432\u0440\u0430\u043b®\u043c\u0430\u0440\u0442®\u0430\u043f\u0440\u0435\u043b®\u043c\u0430\u0439®\u0438\u0458\u0443\u043d®\u0438\u0458\u0443\u043b®\u0430\u0432\u0433\u0443\u0441\u0442®\u0441\u0435\u043d\u0442\u0458\u0430\u0431\u0440®\u043e\u043a\u0442\u0458\u0430\u0431\u0440®\u043d\u043e\u0458\u0430\u0431\u0440®\u0434\u0435\u043a\u0430\u0431\u0440®®
-weekdays=®\u0431\u0430\u0437\u0430\u0440®\u0431\u0430\u0437\u0430\u0440 \u0435\u0440\u0442\u04d9\u0441\u0438®\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b®\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9®\u04b9\u04af\u043c\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b®\u04b9\u04af\u043c\u04d9®\u0448\u04d9\u043d\u0431\u04d9®
+months=\u0458\u0430\u043d\u0432\u0430\u0440\u00ae\u0444\u0435\u0432\u0440\u0430\u043b\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440\u0435\u043b\u00ae\u043c\u0430\u0439\u00ae\u0438\u0458\u0443\u043d\u00ae\u0438\u0458\u0443\u043b\u00ae\u0430\u0432\u0433\u0443\u0441\u0442\u00ae\u0441\u0435\u043d\u0442\u0458\u0430\u0431\u0440\u00ae\u043e\u043a\u0442\u0458\u0430\u0431\u0440\u00ae\u043d\u043e\u0458\u0430\u0431\u0440\u00ae\u0434\u0435\u043a\u0430\u0431\u0440\u00ae\u00ae
+weekdays=\u00ae\u0431\u0430\u0437\u0430\u0440\u00ae\u0431\u0430\u0437\u0430\u0440 \u0435\u0440\u0442\u04d9\u0441\u0438\u00ae\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b\u00ae\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9\u00ae\u04b9\u04af\u043c\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b\u00ae\u04b9\u04af\u043c\u04d9\u00ae\u0448\u04d9\u043d\u0431\u04d9\u00ae
+territories.FR=\u0424\u0440\u0430\u043d\u0441\u0430
+territories.IN=\u04ba\u0438\u043d\u0434\u0438\u0441\u0442\u0430\u043d
+territories.CN=\u0427\u0438\u043d
+territories.DE=\u0410\u043b\u043c\u0430\u043d\u0438\u0458\u0430
+territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u0458\u0430
 territories.AZ=\u0410\u0437\u04d9\u0440\u0431\u0430\u0458\u04b9\u0430\u043d
+territories.RU=\u0420\u0443\u0441\u0438\u0458\u0430
+territories.JP=\u0408\u0430\u043f\u043e\u043d\u0438\u0458\u0430
+territories.US=\u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0411\u0438\u0440\u043b\u04d9\u0448\u043c\u0438\u0448 \u0428\u0442\u0430\u0442\u043b\u0430\u0440\u044b
+territories.IT=\u0418\u0442\u0430\u043b\u0438\u0458\u0430
+languages.zh=\u0447\u0438\u043d\u04b9\u04d9
+languages.en=\u0438\u043d\u049d\u0438\u043b\u0438\u0441\u04b9\u04d9
+languages.ru=\u0440\u0443\u0441\u04b9\u0430
+languages.it=\u0438\u0442\u0430\u043b\u0458\u0430\u043d\u04b9\u0430
+languages.fr=\u0444\u0440\u0430\u043d\u0441\u044b\u0437\u04b9\u0430
+languages.de=\u0430\u043b\u043c\u0430\u043d\u04b9\u0430
+languages.es=\u0438\u0441\u043f\u0430\u043d\u04b9\u0430
+languages.ja=\u0458\u0430\u043f\u043e\u043d\u04b9\u0430
 languages.az=\u0410\u0437\u04d9\u0440\u0431\u0430\u0458\u04b9\u0430\u043d
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u04b9\u0430
index feea4f3a54e6870fdd7e8795bcf3ecb179ee169a..15190d53e8ce6e00017dba2d01c948205275ae51 100644 (file)
@@ -7,23 +7,35 @@
 
 decimalSeparator=,
 groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.ERN=\u044d\u0440\u044b\u0442\u0440\u044d\u0439\u0441\u043a\u0430\u044f \u043d\u0430\u043a\u0444\u0430
 currenciesDisplayName.INR=\u0456\u043d\u0434\u044b\u0439\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0456\u044f
-currenciesDisplayName.RUB=\u0440\u0443\u0441\u043a\u0456 \u0440\u0443\u0431\u0435\u043b\u044c
+currenciesDisplayName.NOK=\u043d\u0430\u0440\u0432\u044d\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.JPY=\u044f\u043f\u043e\u043d\u0441\u043a\u0430\u044f \u0456\u0435\u043d\u0430
+currenciesDisplayName.RUB=\u0440\u0430\u0441\u0435\u0439\u0441\u043a\u0456 \u0440\u0443\u0431\u0435\u043b\u044c
 currenciesDisplayName.BRL=\u0431\u0440\u0430\u0437\u0456\u043b\u044c\u0441\u043a\u0456 \u0440\u044d\u0430\u043b
-currenciesDisplayName.CNY=\u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0456 \u044e\u0430\u043d\u044c Renminbi
-currenciesDisplayName.USD=\u0434\u043e\u043b\u0430\u0440 \u0417\u0428\u0410
+currenciesDisplayName.CNY=\u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0456 \u044e\u0430\u043d\u044c
+currenciesDisplayName.AUD=\u0430\u045e\u0441\u0442\u0440\u0430\u043b\u0456\u0439\u0441\u043a\u0456 \u0434\u0430\u043b\u044f\u0440
+currenciesDisplayName.USD=\u0434\u0430\u043b\u044f\u0440 \u0417\u0428\u0410
+currenciesDisplayName.XXX=\u043d\u0435\u0432\u044f\u0434\u043e\u043c\u0430\u044f \u0430\u0431\u043e \u043d\u0435\u0434\u0430\u043f\u0443\u0448\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0430\u043b\u044e\u0442\u0430
 currenciesDisplayName.BYR=\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0456 \u0440\u0443\u0431\u0435\u043b\u044c
-currenciesDisplayName.EUR=\u0435\u045e\u0440\u0430
-currenciesDisplayName.GBP=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u043a\u0456 \u0444\u0443\u043d\u0442
-currenciesSymbol.BYB=\u0420\u0443\u0431
-shortMonths=\u0441\u0442\u0443®\u043b\u044e\u0442®\u0441\u0430\u043a®\u043a\u0440\u0430®\u043c\u0430\u0439®\u0447\u044d\u0440®\u043b\u0456\u043f®\u0436\u043d\u0456®\u0432\u0435\u0440®\u043a\u0430\u0441®\u043b\u0456\u0441®\u0441\u043d\u0435®®
-months=\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c®\u043b\u044e\u0442\u044b®\u0441\u0430\u043a\u0430\u0432\u0456\u043a®\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a®\u043c\u0430\u0439®\u0447\u044d\u0440\u0432\u0435\u043d\u044c®\u043b\u0456\u043f\u0435\u043d\u044c®\u0436\u043d\u0456\u0432\u0435\u043d\u044c®\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c®\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a®\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434®\u0441\u043d\u0435\u0436\u0430\u043d\u044c®®
-shortWeekdays=®\u043d\u0434®\u043f\u043d®\u0430\u045e®\u0441\u0440®\u0447\u0446®\u043f\u0442®\u0441\u0431®
-weekdays=®\u043d\u044f\u0434\u0437\u0435\u043b\u044f®\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a®\u0430\u045e\u0442\u043e\u0440\u0430\u043a®\u0441\u0435\u0440\u0430\u0434\u0430®\u0447\u0430\u0446\u0432\u0435\u0440®\u043f\u044f\u0442\u043d\u0456\u0446\u0430®\u0441\u0443\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u0434\u0430 \u043d.\u0435.®\u043d.\u0435.®
+currenciesDisplayName.EUR=\u044d\u045e\u0440\u0430
+currenciesDisplayName.GBP=\u0431\u0440\u044b\u0442\u0430\u043d\u0441\u043a\u0456 \u0444\u0443\u043d\u0442 \u0441\u0442\u044d\u0440\u043b\u0456\u043d\u0433\u0430\u045e
+currenciesSymbol.BYB=\u0440\u0443\u0431
+currenciesSymbol.INR=Rs.
+currenciesSymbol.JPY=\u00a5
+currenciesSymbol.AUD=$A
+currenciesSymbol.RUB=\u0440\u0430\u0441. \u0440\u0443\u0431.
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.USD=$
+shortMonths=\u00ae\u00ae\u00ae\u00ae\u0442\u0440\u0430\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u00ae\u00ae\u00ae\u00ae\u0442\u0440\u0430\u0432\u0435\u043d\u044c\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00ae\u043d\u0434\u00ae\u043f\u043d\u00ae\u0430\u045e\u00ae\u0441\u0440\u00ae\u0447\u0446\u00ae\u043f\u0442\u00ae\u0441\u0431\u00ae
+weekdays=\u00ae\u043d\u044f\u0434\u0437\u0435\u043b\u044f\u00ae\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a\u00ae\u0430\u045e\u0442\u043e\u0440\u0430\u043a\u00ae\u0441\u0435\u0440\u0430\u0434\u0430\u00ae\u0447\u0430\u0446\u0432\u0435\u0440\u00ae\u043f\u044f\u0442\u043d\u0456\u0446\u0430\u00ae\u0441\u0443\u0431\u043e\u0442\u0430\u00ae
+eras=\u0434\u0430 \u043d.\u0435.\u00ae\u043d.\u0435.\u00ae
+ampms=\u0434\u0430 \u043f\u0430\u043b\u0443\u0434\u043d\u044f\u00ae\u043f\u0430\u0441\u043b\u044f \u043f\u0430\u043b\u0443\u0434\u043d\u044f\u00ae
 shortDateFormat=d.M.yy
 mediumDateFormat=d.M.yyyy
 longDateFormat=d MMMM yyyy
@@ -32,26 +44,447 @@ shortTimeFormat=HH.mm
 mediumTimeFormat=HH.mm.ss
 longTimeFormat=HH.mm.ss z
 fullTimeFormat=HH.mm.ss z
+zoneStrings=America_Pacific\u00ae\u0426\u0456\u0445\u0430\u0430\u043a\u0456\u044f\u043d\u0441\u043a\u0456 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b \u0447\u0430\u0441\u00ae\u00ae\u0426\u0456\u0445\u0430\u0430\u043a\u0456\u044f\u043d\u0441\u043a\u0456 \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9Europe_Western\u00ae\u0417\u0430\u0445\u043e\u0434\u043d\u0435\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u0447\u0430\u0441\u00ae\u00ae\u0417\u0430\u0445\u043e\u0434\u043d\u0435\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9America_Central\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0446\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b \u0447\u0430\u0441\u00ae\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0446\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0423\u0441\u0445\u043e\u0434\u043d\u0435\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u0447\u0430\u0441\u00ae\u00ae\u0423\u0441\u0445\u043e\u0434\u043d\u0435\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9America_Mountain\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0433\u043e\u0440\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b \u0447\u0430\u0441\u00ae\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0433\u043e\u0440\u043d\u044b \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9Europe_Central\u00ae\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u0447\u0430\u0441\u00ae\u00ae\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9GMT\u00ae\u0413\u0440\u044b\u043d\u0432\u0456\u0447\u0441\u043a\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0443\u0441\u0445\u043e\u0434\u043d\u0456 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b \u0447\u0430\u0441\u00ae\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0443\u0441\u0445\u043e\u0434\u043d\u0456 \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9Atlantic\u00ae\u0410\u0442\u043b\u044f\u043d\u0442\u044b\u0447\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b \u0447\u0430\u0441\u00ae\u00ae\u0410\u0442\u043b\u044f\u043d\u0442\u044b\u0447\u043d\u044b \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9
+territories.TL=\u0423\u0441\u0445\u043e\u0434\u043d\u0456 \u0422\u044b\u043c\u043e\u0440
+territories.TK=\u0422\u0430\u043a\u0435\u043b\u0430\u045e
+territories.TJ=\u0422\u0430\u0434\u0436\u044b\u043a\u0456\u0441\u0442\u0430\u043d
+territories.TH=\u0422\u0430\u0439\u043b\u0430\u043d\u0434
+territories.TG=\u0422\u043e\u0433\u0430
+territories.TF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0456\u044f \u041f\u0430\u045e\u0434\u043d\u0451\u0432\u044b\u044f \u0442\u044d\u0440\u044b\u0442\u043e\u0440\u044b\u0456
+territories.GY=\u0413\u0430\u044f\u043d\u0430
+territories.TD=\u0427\u0430\u0434
+territories.TC=\u0422\u044d\u0440\u043a\u0441 \u0456 \u041a\u0430\u0439\u043a\u0430\u0441 \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.GW=\u0413\u0432\u0456\u043d\u0435\u044f-\u0411\u0456\u0441\u0430\u045e
+territories.GT=\u0413\u0432\u0430\u0442\u044d\u043c\u0430\u043b\u0430
+territories.GS=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0414\u0436\u043e\u0440\u0434\u0436\u044b\u044f \u0456 \u041f\u0430\u045e\u0434\u043d\u0451\u0432\u044b\u044f \u0421\u0430\u043d\u0434\u0432\u0456\u0447\u0430\u0432\u044b \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.GR=\u0413\u0440\u044d\u0446\u044b\u044f
+territories.GQ=\u042d\u043a\u0432\u0430\u0442\u0430\u0440\u044b\u044f\u043b\u044c\u043d\u0430\u044f \u0413\u0432\u0456\u043d\u0435\u044f
+territories.GP=\u0413\u0432\u0430\u0434\u044d\u043b\u0443\u043f\u0430
+territories.SZ=\u0421\u0432\u0430\u0437\u0456\u043b\u0435\u043d\u0434
+territories.SY=\u0421\u0456\u0440\u044b\u0439\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0431\u0441\u043a\u0430\u044f \u0420\u044d\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.GN=\u0413\u0432\u0456\u043d\u0435\u044f
+territories.GM=\u0413\u0430\u043c\u0431\u0456\u044f
+territories.GL=\u0413\u0440\u044d\u043d\u043b\u0430\u043d\u0434\u044b\u044f
+territories.SV=\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440
+territories.062=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430-\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u0437\u0456\u044f
+territories.ST=\u0421\u0430\u043d-\u0422\u043e\u043c\u044d \u0456 \u041f\u0440\u044b\u043d\u0441\u0456\u043f\u0456
+territories.GI=\u0413\u0456\u0431\u0440\u0430\u043b\u0442\u0430\u0440
+territories.061=\u041f\u0430\u043b\u0456\u043d\u0435\u0437\u0456\u044f
+territories.GH=\u0413\u0430\u043d\u0430
+territories.SR=\u0421\u0443\u0440\u044b\u043d\u0430\u043c
+territories.GF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u0413\u0432\u0456\u044f\u043d\u0430
+territories.GE=\u0413\u0440\u0443\u0437\u0456\u044f
+territories.SO=\u0421\u0430\u043c\u0430\u043b\u0456
+territories.GD=\u0413\u0440\u044d\u043d\u0430\u0434\u0430
+territories.SN=\u0421\u0435\u043d\u0435\u0433\u0430\u043b
+territories.GB=\u0412\u0435\u043b\u0456\u043a\u0430\u0431\u0440\u044b\u0442\u0430\u043d\u0456\u044f
+territories.SL=\u0421\u044c\u0435\u0440\u0430-\u041b\u0435\u043e\u043d\u044d
+territories.GA=\u0413\u0430\u0431\u043e\u043d
+territories.SK=\u0421\u043b\u0430\u0432\u0430\u043a\u0456\u044f
+territories.SJ=\u0421\u0432\u0430\u043b\u044c\u0431\u0430\u0440\u0434 \u0456 \u042f\u043d-\u041c\u0430\u0435\u043d
+territories.SI=\u0421\u043b\u0430\u0432\u0435\u043d\u0456\u044f
+territories.SH=\u0421\u044c\u0432\u044f\u0442\u0430\u044f \u0410\u043b\u0435\u043d\u0430
+territories.SG=\u0421\u0456\u043d\u0433\u0430\u043f\u0443\u0440
+territories.SE=\u0428\u0432\u0435\u0446\u044b\u044f
+territories.SD=\u0421\u0443\u0434\u0430\u043d
+territories.SC=\u0421\u0435\u0439\u0448\u044d\u043b\u044c\u0441\u043a\u0456\u044f \u0410\u0441\u0442\u0440\u0430\u0432\u044b
+territories.SB=\u0421\u0430\u043b\u0430\u043c\u043e\u043d\u0430\u0432\u044b \u0410\u0441\u0442\u0440\u0430\u0432\u044b
+territories.SA=\u0421\u0430\u0443\u0434\u0430\u045e\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0456\u044f
 territories.FR=\u0424\u0440\u0430\u043d\u0446\u044b\u044f
-territories.BY=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c
-territories.IN=\u0406\u043d\u0434\u044b\u044f
-territories.CN=\u041a\u0456\u0442\u0430\u0439
+territories.FM=\u041c\u0456\u043a\u0440\u0430\u043d\u0435\u0437\u0456\u044f
+territories.RW=\u0420\u0443\u0430\u043d\u0434\u0430
+territories.FK=\u0424\u043e\u043b\u043a\u043b\u044d\u043d\u0434\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.053=\u0410\u045e\u0441\u0442\u0440\u0430\u043b\u0456\u044f \u0456 \u041d\u043e\u0432\u0430\u044f \u0417\u044d\u043b\u0430\u043d\u0434\u044b\u044f
+territories.RU=\u0420\u0430\u0441\u0456\u044f
+territories.FJ=\u0424\u0456\u0434\u0436\u044b
+territories.FI=\u0424\u0456\u043d\u043b\u044f\u043d\u0434\u044b\u044f
+territories.RS=\u0421\u0435\u0440\u0431\u0456\u044f
+territories.RO=\u0420\u0443\u043c\u044b\u043d\u0456\u044f
+territories.RE=\u0420\u044d\u044e\u043d\u044c\u0451\u043d
+territories.ET=\u042d\u0444\u0456\u043e\u043f\u0456\u044f
+territories.ES=\u0406\u0441\u043f\u0430\u043d\u0456\u044f
+territories.ER=\u042d\u0440\u044b\u0442\u0440\u044d\u044f
+territories.QU=\u0415\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u0417\u0432\u044f\u0437
+territories.EH=\u0417\u0430\u0445\u043e\u0434\u043d\u044f\u044f \u0421\u0430\u0445\u0430\u0440\u0430
+territories.EG=\u0415\u0433\u0456\u043f\u0435\u0442
+territories.EE=\u042d\u0441\u0442\u043e\u043d\u0456\u044f
+territories.QO=\u0412\u043e\u043d\u043a\u0430\u0432\u0430\u044f \u0410\u043a\u0456\u044f\u043d\u0456\u044f
+territories.EC=\u042d\u043a\u0432\u0430\u0434\u043e\u0440
+territories.DZ=\u0410\u043b\u0436\u044b\u0440
+territories.QA=\u041a\u0430\u0442\u0430\u0440
+territories.039=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0415\u045e\u0440\u043e\u043f\u0430
+territories.DO=\u0414\u0430\u043c\u0456\u043d\u0456\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u044d\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.PY=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439
+territories.DM=\u0414\u0430\u043c\u0456\u043d\u0456\u043a\u0430
+territories.035=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430-\u0423\u0441\u0445\u043e\u0434\u043d\u044f\u044f \u0410\u0437\u0456\u044f
+territories.PW=\u041f\u0430\u043b\u0430\u045e
+territories.034=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0410\u0437\u0456\u044f
+territories.DK=\u0414\u0430\u043d\u0456\u044f
+territories.DJ=\u0414\u0436\u044b\u0431\u0443\u0446\u0456
+territories.PT=\u041f\u0430\u0440\u0442\u0443\u0433\u0430\u043b\u0456\u044f
+territories.PS=\u041f\u0430\u043b\u0435\u0441\u0442\u044b\u043d\u0441\u043a\u0456\u044f \u0442\u044d\u0440\u044b\u0442\u043e\u0440\u044b\u0456
+territories.030=\u0423\u0441\u0445\u043e\u0434\u043d\u044f\u044f \u0410\u0437\u0456\u044f
 territories.DE=\u0413\u0435\u0440\u043c\u0430\u043d\u0456\u044f
-territories.GB=\u0412\u0435\u043b\u0456\u043a\u0430\u0431\u0440\u044b\u0442\u0430\u043d\u0456\u044f
+territories.PL=\u041f\u043e\u043b\u044c\u0448\u0447\u0430
+territories.PK=\u041f\u0430\u043a\u0456\u0441\u0442\u0430\u043d
+territories.PH=\u0424\u0456\u043b\u0456\u043f\u0456\u043d\u044b
+territories.PG=\u041f\u0430\u043f\u0443\u0430-\u041d\u043e\u0432\u0430\u044f \u0413\u0432\u0456\u043d\u0435\u044f
+territories.PF=\u0424\u0440\u0430\u043d\u0443\u0437\u0441\u043a\u0430\u044f \u041f\u0430\u043b\u0456\u043d\u044d\u0437\u0456\u044f
+territories.CZ=\u0427\u044d\u0445\u0456\u044f
+territories.PE=\u041f\u0435\u0440\u0443
+territories.CY=\u041a\u0456\u043f\u0440
+territories.CX=\u041a\u0430\u043b\u044f\u0434\u0430\u045e \u0432\u043e\u0441\u0442\u0440\u0430\u045e
+territories.CV=\u041a\u0430\u0431\u0430-\u0412\u0435\u0440\u0434\u044d
+territories.PA=\u041f\u0430\u043d\u0430\u043c\u0430
+territories.CU=\u041a\u0443\u0431\u0430
+territories.CR=\u041a\u043e\u0441\u0442\u0430-\u0420\u044b\u043a\u0430
+territories.029=\u041a\u0430\u0440\u044b\u0431\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.CO=\u041a\u0430\u043b\u0443\u043c\u0431\u0456\u044f
+territories.CN=\u041a\u0456\u0442\u0430\u0439
+territories.CM=\u041a\u0430\u043c\u0435\u0440\u0443\u043d
+territories.CL=\u0427\u044b\u043b\u0456
+territories.CK=\u041a\u0443\u043a\u0430 \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.021=\u0417\u0428\u0410 \u0456 \u041a\u0430\u043d\u0430\u0434\u0430
+territories.CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u044b\u044f
+territories.CG=\u041a\u043e\u043d\u0433\u0430
+territories.CF=\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430-\u0410\u0444\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u044d\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.CD=\u041a\u043e\u043d\u0433\u0430 - \u041a\u0456\u043d\u0448\u0430\u0441\u0430
+territories.CC=\u041a\u0430\u043a\u043e\u0441\u0430\u0432\u044b\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.OM=\u0410\u043c\u0430\u043d
+territories.CA=\u041a\u0430\u043d\u0430\u0434\u0430
+territories.BZ=\u0411\u0435\u043b\u0456\u0437
+territories.BY=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c
+territories.BW=\u0411\u0430\u0442\u0441\u0432\u0430\u043d\u0430
+territories.BV=\u0411\u0443\u0432\u044d \u0432\u043e\u0441\u0442\u0440\u0430\u045e
+territories.BT=\u0411\u0443\u0442\u0430\u043d
+territories.BS=\u0411\u0430\u0433\u0430\u043c\u0441\u043a\u0456\u044f \u0410\u0441\u0442\u0440\u0430\u0432\u044b
 territories.BR=\u0411\u0440\u0430\u0437\u0456\u043b\u0456\u044f
-territories.RU=\u0420\u0430\u0441\u0456\u044f
+territories.019=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u044f \u0456 \u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0410\u043c\u0435\u0440\u044b\u043a\u0456
+territories.018=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0410\u0444\u0440\u044b\u043a\u0430
+territories.NZ=\u041d\u043e\u0432\u0430\u044f \u0417\u0435\u043b\u0430\u043d\u0434\u044b\u044f
+territories.017=\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u0444\u0440\u044b\u043a\u0430
+territories.BO=\u0411\u0430\u043b\u0456\u0432\u0456\u044f
+territories.BN=\u0411\u0440\u0443\u043d\u0435\u0439-\u0414\u0430\u0440\u0443\u0441\u0430\u043b\u0430\u043c
+territories.015=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u044f \u0410\u0444\u0440\u044b\u043a\u0430
+territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.014=\u0423\u0441\u0445\u043e\u0434\u043d\u044f\u044f \u0410\u0444\u0440\u044b\u043a\u0430
+territories.013=\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u043c\u044d\u0440\u044b\u043a\u0430
+territories.NU=\u041d\u0456\u0443\u044d
+territories.BJ=\u0411\u0435\u043d\u0456\u043d
+territories.011=\u0417\u0430\u0445\u043e\u0434\u043d\u044f\u044f \u0410\u0444\u0440\u044b\u043a\u0430
+territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0437\u0456
+territories.172=\u0421\u0430\u0434\u0440\u0443\u0436\u043d\u0430\u0441\u0446\u044c \u041d\u0435\u0437\u0430\u043b\u0435\u0436\u043d\u044b\u0445 \u0414\u0437\u044f\u0440\u0436\u0430\u045e
+territories.BH=\u0411\u0430\u0445\u0440\u044d\u0439\u043d
+territories.NR=\u041d\u0430\u0443\u0440\u0443
+territories.BG=\u0411\u0430\u043b\u0433\u0430\u0440\u044b\u044f
+territories.BF=\u0411\u0443\u0440\u043a\u0456\u043d\u0430-\u0424\u0430\u0441\u043e
+territories.NP=\u041d\u0435\u043f\u0430\u043b
+territories.BE=\u0411\u0435\u043b\u044c\u0433\u0456\u044f
+territories.ZZ=\u041d\u0435\u0432\u044f\u0434\u043e\u043c\u044b \u0440\u044d\u0433\u0456\u0451\u043d
+territories.NO=\u041d\u0430\u0440\u0432\u0435\u0433\u0456\u044f
+territories.BD=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u044d\u0448
+territories.BB=\u0411\u0430\u0440\u0431\u0430\u0434\u0430\u0441
+territories.ZW=\u0417\u0456\u043c\u0431\u0430\u0431\u0432\u044d
+territories.NL=\u041d\u0456\u0434\u044d\u0440\u043b\u0430\u043d\u0434\u044b
+territories.BA=\u0411\u043e\u0441\u043d\u0456\u044f \u0456 \u0413\u0435\u0440\u0446\u0430\u0433\u0430\u0432\u0456\u043d\u0430
+territories.NI=\u041d\u0456\u043a\u0430\u0440\u0430\u0433\u0443\u0430
+territories.NG=\u041d\u0456\u0433\u0435\u0440\u044b\u044f
+territories.NF=\u041d\u043e\u0440\u0444\u0430\u043b\u043a\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.AZ=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d
+territories.NE=\u041d\u0456\u0433\u0435\u0440
+territories.AX=\u0410\u043b\u0430\u043d\u0434\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.NC=\u041d\u043e\u0432\u0430\u044f \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0456\u044f
+territories.AW=\u0410\u0440\u0443\u0431\u0430
+territories.ZM=\u0417\u0430\u043c\u0431\u0456\u044f
+territories.NA=\u041d\u0430\u043c\u0456\u0431\u0456\u044f
+territories.AU=\u0410\u045e\u0441\u0442\u0440\u0430\u043b\u0456\u044f
+territories.AT=\u0410\u045e\u0441\u0442\u0440\u044b\u044f
+territories.AS=\u0410\u043c\u0435\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0430\u0435 \u0421\u0430\u043c\u043e\u0430
+territories.AR=\u0410\u0440\u0433\u0435\u043d\u0446\u0456\u043d\u0430
+territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u044b\u043a\u0430
+territories.009=\u0410\u043a\u0456\u044f\u043d\u0456\u044f
+territories.MZ=\u041c\u0430\u0437\u0430\u043c\u0431\u0456\u043a
+territories.AO=\u0410\u043d\u0433\u043e\u043b\u0430
+territories.MY=\u041c\u0430\u043b\u0430\u0439\u0437\u0456\u044f
+territories.AN=\u041d\u0456\u0434\u044d\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0456\u044f \u0410\u043d\u0442\u044b\u043b\u044b
+territories.MX=\u041c\u0435\u043a\u0441\u0456\u043a\u0430
+territories.AM=\u0410\u0440\u043c\u0435\u043d\u0456\u044f
+territories.005=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0410\u043c\u044d\u0440\u044b\u043a\u0430
+territories.MW=\u041c\u0430\u043b\u0430\u0432\u0456
+territories.AL=\u0410\u043b\u0431\u0430\u043d\u0456\u044f
+territories.MV=\u041c\u0430\u043b\u044c\u0434\u044b\u045e\u0441\u043a\u0456\u044f \u0410\u0441\u0442\u0440\u0430\u0432\u044b
+territories.003=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u044f \u0410\u043c\u044d\u0440\u044b\u043a\u0430
+territories.ZA=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430-\u0410\u0444\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u044d\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.MU=\u041c\u0430\u045e\u0440\u044b\u043a\u0456\u0439
+territories.002=\u0410\u0444\u0440\u044b\u043a\u0430
+territories.MT=\u041c\u0430\u043b\u044c\u0442\u0430
+territories.AI=\u0410\u043d\u0433\u0443\u0456\u043b\u043b\u044f
+territories.001=\u0421\u0432\u0435\u0442
+territories.MS=\u041c\u043e\u043d\u0441\u044d\u0440\u0430\u0442
+territories.MR=\u041c\u0430\u045e\u0440\u044b\u0442\u0430\u043d\u0456\u044f
+territories.AG=\u0410\u043d\u0442\u044b\u0433\u0443\u0430 \u0456 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
+territories.MQ=\u041c\u0430\u0440\u0446\u0456\u043d\u0456\u043a\u0430
+territories.AF=\u0410\u0444\u0433\u0430\u043d\u0456\u0441\u0442\u0430\u043d
+territories.MP=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u044b\u044f \u041c\u0430\u0440\u044b\u044f\u043d\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.AE=\u0410\u0431'\u044f\u0434\u043d\u0430\u043d\u044b\u044f \u0410\u0440\u0430\u0431\u0441\u043a\u0456\u044f \u042d\u043c\u0456\u0440\u0430\u0442\u044b
+territories.MO=\u041c\u0430\u043a\u0430\u043e
+territories.AD=\u0410\u043d\u0434\u043e\u0440\u0430
+territories.MN=\u041c\u0430\u043d\u0433\u043e\u043b\u0456\u044f
+territories.MM=\u041c'\u044f\u043d\u043c\u0430
+territories.ML=\u041c\u0430\u043b\u0456
+territories.MK=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f
+territories.MH=\u041c\u0430\u0440\u0448\u0430\u043b\u0430\u0432\u044b \u0410\u0441\u0442\u0440\u0430\u0432\u044b
+territories.MG=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
+territories.ME=\u0427\u0430\u0440\u043d\u0430\u0433\u043e\u0440\u044b\u044f
+territories.MD=\u041c\u0430\u043b\u0434\u043e\u0432\u0430
+territories.MC=\u041c\u0430\u043d\u0430\u043a\u0430
+territories.MA=\u041c\u0430\u0440\u043e\u043a\u0430
+territories.YE=\u0415\u043c\u0435\u043d
+territories.LY=\u041b\u0456\u0432\u0456\u0439\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0431\u0441\u043a\u0430\u044f \u0414\u0436\u0430\u043c\u0430\u0445\u0456\u0440\u044b\u044f
+territories.LV=\u041b\u0430\u0442\u0432\u0456\u044f
+territories.155=\u0417\u0430\u0445\u043e\u0434\u043d\u044f\u044f \u0415\u045e\u0440\u043e\u043f\u0430
+territories.LU=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433
+territories.154=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u044f \u0415\u045e\u0440\u043e\u043f\u0430
+territories.LT=\u041b\u0456\u0442\u0432\u0430
+territories.LS=\u041b\u0435\u0441\u043e\u0442\u0430
+territories.LR=\u041b\u0456\u0431\u0435\u0440\u044b\u044f
+territories.151=\u0423\u0441\u0445\u043e\u0434\u043d\u044f\u044f \u0415\u045e\u0440\u043e\u043f\u0430
+territories.150=\u0415\u045e\u0440\u043e\u043f\u0430
+territories.LK=\u0428\u0440\u044b-\u041b\u0430\u043d\u043a\u0430
+territories.LI=\u041b\u0456\u0445\u0442\u044d\u043d\u0448\u0442\u044d\u0439\u043d
+territories.LC=\u0421\u044d\u043d\u0442-\u041b\u044e\u0441\u0456\u044f
+territories.LB=\u041b\u0456\u0432\u0430\u043d
+territories.LA=\u041b\u0430\u043e\u0441\u043a\u0430\u044f \u041d\u0430\u0440\u043e\u0434\u043d\u0430-\u0414\u044d\u043c\u0430\u043a\u0440\u0430\u0442\u044b\u0447\u043d\u0430\u044f \u0420\u044d\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.KZ=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d
+territories.KY=\u041a\u0430\u0439\u043c\u0430\u043d\u0430\u0432\u044b \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.KW=\u041a\u0443\u0432\u0435\u0439\u0442
+territories.145=\u0417\u0430\u0445\u043e\u0434\u043d\u044f\u044f \u0410\u0437\u0456\u044f
+territories.143=\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u0437\u0456\u044f
+territories.142=\u0410\u0437\u0456\u044f
+territories.KR=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u041a\u0430\u0440\u044d\u044f
+territories.KP=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u044f \u041a\u0430\u0440\u044d\u044f
+territories.KN=\u0421\u044d\u043d\u0442-\u041a\u0456\u0442\u0441 \u0456 \u041d\u044d\u0432\u0456\u0441
+territories.KM=\u041a\u0430\u043c\u043e\u0440\u0441\u043a\u0456\u044f \u0410\u0441\u0442\u0440\u0430\u0432\u044b
+territories.KI=\u041a\u0456\u0440\u044b\u0431\u0430\u0446\u0456
+territories.WS=\u0421\u0430\u043c\u043e\u0430
+territories.KH=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430
+territories.KG=\u041a\u044b\u0440\u0433\u044b\u0437\u0441\u0442\u0430\u043d
+territories.KE=\u041a\u0435\u043d\u0456\u044f
+territories.WF=\u0423\u043e\u043b\u0456\u0441 \u0456 \u0424\u0443\u0442\u0443\u043d\u0430
 territories.JP=\u042f\u043f\u043e\u043d\u0456\u044f
-territories.US=\u0417\u043b\u0443\u0447\u0430\u043d\u044b\u044f \u0428\u0442\u0430\u0442\u044b
+territories.JO=\u0406\u0430\u0440\u0434\u0430\u043d\u0456\u044f
+territories.JM=\u042f\u043c\u0430\u0439\u043a\u0430
+territories.VU=\u0412\u0430\u043d\u0443\u0430\u0442\u0443
+territories.VN=\u0412'\u0435\u0442\u043d\u0430\u043c
+territories.VI=\u0412\u0456\u0440\u0433\u0456\u043d\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b \u0417\u0428\u0410
+territories.VG=\u0412\u0456\u0440\u0433\u0456\u043d\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.VE=\u0412\u0435\u043d\u0435\u0441\u0443\u044d\u043b\u0430
+territories.VC=\u0421\u044d\u043d\u0442-\u0412\u0456\u043d\u0441\u044d\u043d\u0442 \u0456 \u0413\u0440\u044d\u043d\u0430\u0434\u044b\u043d\u044b
+territories.VA=\u0412\u0430\u0442\u044b\u043a\u0430\u043d
 territories.IT=\u0406\u0442\u0430\u043b\u0456\u044f
-languages.zh=\u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0456
-languages.en=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u043a\u0456
-languages.ru=\u0440\u0443\u0441\u043a\u0456
+territories.IS=\u0406\u0441\u043b\u0430\u043d\u0434\u044b\u044f
+territories.IR=\u0406\u0440\u0430\u043d
+territories.IQ=\u0406\u0440\u0430\u043a
+territories.UZ=\u0423\u0437\u0431\u0435\u043a\u0456\u0441\u0442\u0430\u043d
+territories.IO=\u0411\u0440\u044b\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0442\u044d\u0440\u044b\u0442\u043e\u0440\u044b\u044f \u0406\u043d\u0434\u044b\u0439\u0441\u043a\u0430\u0433\u0430 \u0430\u043a\u0456\u044f\u043d\u0443
+territories.UY=\u0423\u0440\u0443\u0433\u0432\u0430\u0439
+territories.IN=\u0406\u043d\u0434\u044b\u044f
+territories.IL=\u0406\u0437\u0440\u0430\u0456\u043b\u044c
+territories.US=\u0417\u043b\u0443\u0447\u0430\u043d\u044b\u044f \u0428\u0442\u0430\u0442\u044b
+territories.IE=\u0406\u0440\u043b\u0430\u043d\u0434\u044b\u044f
+territories.ID=\u0406\u043d\u0434\u0430\u043d\u0435\u0437\u0456\u044f
+territories.UG=\u0423\u0433\u0430\u043d\u0434\u0430
+territories.UA=\u0423\u043a\u0440\u0430\u0456\u043d\u0430
+territories.HU=\u0412\u0435\u043d\u0433\u0440\u044b\u044f
+territories.HT=\u0413\u0430\u0456\u0446\u0456
+territories.HR=\u0425\u0430\u0440\u0432\u0430\u0442\u044b\u044f
+territories.TZ=\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f
+territories.HN=\u0413\u0430\u043d\u0434\u0443\u0440\u0430\u0441
+territories.HM=\u0413\u044d\u0440\u0434\u0430 \u0432\u043e\u0441\u0442\u0440\u0430\u045e \u0456 \u041c\u0430\u043a\u0414\u043e\u043d\u0430\u043b\u0434\u0430 \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.TW=\u0422\u0430\u0439\u0432\u0430\u043d\u044c
+territories.TV=\u0422\u0443\u0432\u0430\u043b\u0443
+territories.HK=\u0413\u0430\u043d\u043a\u043e\u043d\u0433
+territories.TT=\u0422\u0440\u044b\u043d\u0456\u0434\u0430\u0434 \u0456 \u0422\u0430\u0431\u0430\u0433\u0430
+territories.TR=\u0422\u0443\u0440\u0446\u044b\u044f
+territories.TO=\u0422\u0430\u043d\u0433\u0456\u0439\u0441\u043a\u0430\u044f
+territories.TN=\u0422\u0443\u043d\u0456\u0441
+territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0456\u0441\u0442\u0430\u043d
+languages.ast=\u0430\u0441\u0442\u0443\u0440\u044b\u0439\u0441\u043a\u0430\u044f
+languages.la=\u043b\u0430\u0446\u0456\u043d\u0441\u043a\u0430\u044f
+languages.xh=\u0445\u043e\u0441\u0430
+languages.ku=\u043a\u0443\u0440\u0434\u0437\u043a\u0430\u044f
+languages.men=\u043c\u0435\u043d\u0434\u044d
+languages.ko=\u043a\u0430\u0440\u044d\u0439\u0441\u043a\u0430\u044f
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.kk=\u043a\u0430\u0437\u0430\u0445\u0441\u043a\u0430\u044f
+languages.en_GB=\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a\u0430\u044f (\u0412\u044f\u043b\u0456\u043a\u0430\u0431\u0440\u044b\u0442\u0430\u043d\u0456\u044f)
+languages.grc=\u0441\u0442\u0430\u0440\u0430\u0433\u0440\u044d\u0447\u0430\u0441\u043a\u0430\u044f
+languages.art=\u0448\u0442\u0443\u0447\u043d\u0430\u044f \u043c\u043e\u0432\u0430
+languages.ka=\u0433\u0440\u0443\u0437\u0456\u043d\u0441\u043a\u0430\u044f
+languages.afa=\u0430\u0444\u0440\u0430-\u0430\u0437\u0456\u044f\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.jv=\u044f\u0432\u0430\u043d\u0441\u043a\u0430\u044f
+languages.arc=\u0430\u0440\u0430\u043c\u0435\u0439\u0441\u043a\u0430\u044f
+languages.cel=\u043a\u0435\u043b\u044c\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.vo=\u0432\u0430\u043b\u0430\u043f\u044e\u043a
+languages.tut=\u0430\u043b\u0442\u0430\u0439\u0441\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.ja=\u044f\u043f\u043e\u043d\u0441\u043a\u0430\u044f
+languages.vi=\u0432'\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0430\u044f
+languages.tup=\u043c\u043e\u0432\u0430 \u0442\u0443\u043f\u0456
+languages.it=\u0456\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0430\u044f
+languages.is=\u0456\u0441\u044c\u043b\u044f\u043d\u0434\u0437\u043a\u0430\u044f
+languages.ady=\u0430\u0434\u044b\u0433\u0435\u0439\u0441\u043a\u0430\u044f
+languages.uz=\u0443\u0437\u0431\u044d\u0446\u043a\u0430\u044f
+languages.mos=\u043c\u043e\u0441\u0456
+languages.ur=\u0443\u0440\u0434\u0443
+languages.ie=\u0456\u043d\u0442\u044d\u0440\u043b\u0456\u043d\u0433\u0432\u0435
+languages.id=\u0456\u043d\u0434\u0430\u043d\u044d\u0437\u0456\u0439\u0441\u043a\u0430\u044f
+languages.ia=\u0456\u043d\u0442\u044d\u0440\u043b\u0456\u043d\u0433\u0432\u0430
+languages.uk=\u0443\u043a\u0440\u0430\u0456\u043d\u0441\u043a\u0430\u044f
+languages.luo=\u043b\u0443\u043e
+languages.ug=\u0443\u0439\u0433\u0443\u0440\u0441\u043a\u0430\u044f
+languages.und=\u043d\u0435\u0432\u044f\u0434\u043e\u043c\u0430\u044f \u043c\u043e\u0432\u0430
+languages.hy=\u0430\u0440\u043c\u044f\u043d\u0441\u043a\u0430\u044f
+languages.nub=\u043d\u0443\u0431\u0456\u0439\u0441\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.phn=\u0444\u0456\u043d\u0456\u043a\u0456\u0439\u0441\u043a\u0430\u044f
+languages.hu=\u0432\u0443\u0433\u043e\u0440\u0441\u043a\u0430\u044f
+languages.hr=\u0445\u0430\u0440\u0432\u0430\u0446\u043a\u0430\u044f
+languages.fil=\u0442\u0430\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.tt=\u0442\u0430\u0442\u0430\u0440\u0441\u043a\u0430\u044f
 languages.hi=\u0445\u0456\u043d\u0434\u0437\u0456
-languages.ar=\u0430\u0440\u0430\u0431\u0441\u043a\u0456
-languages.it=\u0456\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0456
-languages.be=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0456
-languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0456
-languages.de=\u043d\u044f\u043c\u0435\u0446\u043a\u0456
-languages.es=\u0456\u0441\u043f\u0430\u043d\u0441\u043a\u0456
-languages.ja=\u044f\u043f\u043e\u043d\u0441\u043a\u0456
-languages.pt=\u043f\u0430\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0456
+languages.tr=\u0442\u0443\u0440\u044d\u0446\u043a\u0430\u044f
+languages.cop=\u043a\u043e\u043f\u0446\u043a\u0430\u044f
+languages.he=\u0456\u045e\u0440\u044b\u0442
+languages.sai=\u043c\u043e\u0432\u0430 \u0456\u043d\u0434\u0437\u0435\u0439\u0446\u0430\u045e \u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u0439 \u0410\u043c\u0435\u0440\u044b\u043a\u0456
+languages.sah=\u044f\u043a\u0443\u0446\u043a\u0430\u044f
+languages.tk=\u0442\u0443\u0440\u043a\u043c\u044d\u043d\u0441\u043a\u0430\u044f
+languages.ti=\u0442\u044b\u0433\u0440\u044b\u043d\u044c\u044f
+languages.th=\u0442\u0430\u0439\u0441\u043a\u0430\u044f
+languages.tg=\u0442\u0430\u0434\u0436\u044b\u043a\u0441\u043a\u0430\u044f
+languages.te=\u0442\u044d\u043b\u0443\u0433\u0443
+languages.mas=\u043c\u0430\u0441\u0430\u0456
+languages.ta=\u0442\u0430\u043c\u0456\u043b\u044c\u0441\u043a\u0430\u044f
+languages.gu=\u0433\u0443\u044f\u0440\u0430\u0446\u0456
+languages.map=\u0430\u045e\u0441\u0442\u0440\u0430\u043d\u0435\u0437\u0456\u0439\u0441\u043a\u0430\u044f
+languages.man=\u043c\u0430\u043d\u0434\u044b\u043d\u0433\u0430
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0456
+languages.sw=\u0441\u0443\u0430\u0445\u0456\u043b\u0456
+languages.bua=\u0431\u0443\u0440\u0430\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.gl=\u0433\u0430\u043b\u0456\u0441\u0456\u0439\u0441\u043a\u0430\u044f
+languages.sv=\u0448\u0432\u044d\u0434\u0437\u043a\u0430\u044f
+languages.su=\u0441\u0443\u0434\u0430\u043d\u0441\u043a\u0430\u044f
+languages.sr=\u0441\u044d\u0440\u0431\u0441\u043a\u0430\u044f
+languages.sq=\u0430\u043b\u044c\u0431\u0430\u043d\u0441\u043a\u0430\u044f
+languages.en_CA=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u043a\u0430\u044f (\u043a\u0430\u043d\u0430\u0434.)
+languages.so=\u0441\u0430\u043c\u0430\u043b\u0456\u0439\u0441\u043a\u0430\u044f
+languages.gd=\u0448\u0430\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0430\u044f \u0433\u044d\u043b\u044c\u0441\u043a\u0430\u044f
+languages.sl=\u0441\u043b\u0430\u0432\u0435\u043d\u0441\u043a\u0430\u044f
+languages.ga=\u0456\u0440\u043b\u044f\u043d\u0434\u0437\u043a\u0430\u044f
+languages.sk=\u0441\u043b\u0430\u0432\u0430\u0446\u043a\u0430\u044f
+languages.si=\u0441\u0456\u043d\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.sh=\u0441\u044d\u0440\u0431\u0430-\u0445\u0430\u0440\u0432\u0430\u0446\u043a\u0430\u044f
+languages.fy=\u0444\u0440\u044b\u0437\u0441\u043a\u0430\u044f
+languages.sd=\u0441\u0456\u043d\u0434\u0445\u0456
+languages.cau=\u043a\u0430\u045e\u043a\u0430\u0437\u0441\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.sa=\u0441\u0430\u043d\u0441\u043a\u0440\u044b\u0442
+languages.ang=\u0441\u0442\u0430\u0440\u0430\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a\u0430\u044f
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0430\u044f
+languages.sla=\u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.fo=\u0444\u0430\u0440\u044d\u0440\u0441\u043a\u0430\u044f
+languages.pro=\u0441\u0442\u0430\u0440\u0430\u043f\u0440\u0430\u0432\u0430\u043d\u0441\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.ru=\u0440\u0430\u0441\u0435\u0439\u0441\u043a\u0430\u044f
+languages.cai=\u043c\u043e\u0432\u0430 \u0456\u043d\u0434\u0437\u0435\u0439\u0446\u0430\u045e \u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u0439 \u0410\u043c\u0435\u0440\u044b\u043a\u0456
+languages.fi=\u0444\u0456\u043d\u0441\u043a\u0430\u044f
+languages.ro=\u0440\u0443\u043c\u044b\u043d\u0441\u043a\u0430\u044f
+languages.rm=\u0440\u044d\u0442\u0430-\u0440\u0430\u043c\u0430\u043d\u0441\u043a\u0430\u044f
+languages.fa=\u0444\u0430\u0440\u0441\u0456
+languages.nl_BE=\u0444\u043b\u0430\u043c\u0430\u043d\u0434\u0441\u043a\u0430\u044f
+languages.es_419=\u0456\u0441\u043f\u0430\u043d\u0441\u043a\u0430\u044f (\u043b\u0430\u0446\u0456\u043d\u0430\u0430\u043c\u0435\u0440.)
+languages.en_AU=\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a\u0430\u044f (\u0430\u045e\u0441\u0442\u0440\u0430\u043b.)
+languages.peo=\u0441\u0442\u0430\u0440\u0430\u043f\u0435\u0440\u0441\u0456\u0434\u0441\u043a\u0430\u044f
+languages.eu=\u0431\u0430\u0441\u043a\u0441\u043a\u0430\u044f
+languages.et=\u044d\u0441\u0442\u043e\u043d\u0441\u043a\u0430\u044f
+languages.es=\u0433\u0456\u0448\u043f\u0430\u043d\u0441\u043a\u0430\u044f
+languages.eo=\u044d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u0430
+languages.en=\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a\u0430\u044f
+languages.el=\u0433\u0440\u044d\u0446\u043a\u0430\u044f
+languages.qu=\u043a\u0435\u0447\u0443\u0430
+languages.fro=\u0441\u0442\u0430\u0440\u0430\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f
+languages.ale=\u0430\u043b\u0435\u0443\u0446\u043a\u0430\u044f
+languages.pt=\u043f\u0430\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.pt_BR=\u043f\u0430\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f (\u0431\u0440\u0430\u0437\u044b\u043b\u0456\u044f)
+languages.ps=\u043f\u0443\u0448\u0442\u0443
+languages.de=\u043d\u044f\u043c\u0435\u0446\u043a\u0430\u044f
+languages.sit=\u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0430-\u0442\u044b\u0431\u0435\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.pl=\u043f\u043e\u043b\u044c\u0441\u043a\u0430\u044f
+languages.da=\u0434\u0430\u0446\u043a\u0430\u044f
+languages.sux=\u0448\u0443\u043c\u0435\u0440\u0441\u043a\u0430\u044f
+languages.cy=\u0432\u0430\u043b\u0456\u0439\u0441\u043a\u0430\u044f
+languages.akk=\u0430\u043a\u0430\u0434\u0441\u043a\u0430\u044f
+languages.cv=\u0447\u0443\u0432\u0430\u0448\u0441\u043a\u0430\u044f
+languages.pa=\u043f\u0430\u043d\u0434\u0436\u0430\u0431\u0456
+languages.cs=\u0447\u044d\u0441\u043a\u0430\u044f
+languages.de_CH=\u043d\u044f\u043c\u0435\u0446\u043a\u0430\u044f (\u0448\u0432\u0435\u0439\u0446.)
+languages.os=\u0430\u0441\u0435\u0446\u0456\u043d\u0441\u043a\u0430\u044f
+languages.or=\u043e\u0440\u044b\u044f
+languages.ce=\u0447\u0430\u0447\u044d\u043d\u0441\u043a\u0430\u044f
+languages.non=\u0441\u0442\u0430\u0440\u0430\u043d\u0430\u0440\u0432\u0435\u0436\u0441\u043a\u0430\u044f
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u0451\u043d\u0441\u043a\u0430\u044f
+languages.oj=\u0430\u0434\u0436\u044b\u0431\u0432\u0435
+languages.zap=\u0441\u0430\u043f\u0430\u0442\u044d\u043a\u0430\u045e
+languages.nog=\u043d\u0430\u0433\u0430\u0439\u0441\u043a\u0430\u044f
+languages.lol=\u043c\u043e\u043d\u0433\u0430
+languages.oc=\u043f\u0440\u0430\u0432\u0430\u043d\u0441\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.bs=\u0431\u0430\u0441\u044c\u043d\u0456\u0439\u0441\u043a\u0430\u044f
+languages.br=\u0431\u0440\u044d\u0442\u043e\u043d\u0441\u043a\u0430\u044f
+languages.zh_Hans=\u0441\u043f\u0440\u043e\u0448\u0447\u0430\u043d\u0430\u044f \u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0430\u044f
+languages.bn=\u0431\u044d\u043d\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.zh_Hant=\u0442\u0440\u0430\u0434\u044b\u0446\u044b\u0439\u043d\u0430\u044f \u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0430\u044f
+languages.bh=\u0431\u0456\u0445\u0430\u0440\u0441\u043a\u0430\u044f
+languages.bg=\u0431\u0430\u045e\u0433\u0430\u0440\u0441\u043a\u0430\u044f
+languages.be=\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f
+languages.no=\u043d\u0430\u0440\u0432\u044d\u0441\u043a\u0430\u044f
+languages.nn=\u043d\u0430\u0440\u0432\u044d\u0441\u043a\u0430\u044f \u043d\u044e\u043d\u043e\u0440\u0441\u043a
+languages.tai=\u043c\u043e\u0432\u0430 \u0442\u0430\u0456
+languages.nl=\u0433\u0430\u043b\u044f\u043d\u0434\u0437\u043a\u0430\u044f
+languages.ba=\u0431\u0430\u0448\u043a\u0456\u0440\u0441\u043a\u0430\u044f
+languages.zu=\u0437\u0443\u043b\u0443
+languages.sgn=\u0437\u043d\u0430\u043a\u0430\u0432\u0430\u044f \u043c\u043e\u0432\u0430
+languages.cus=\u043a\u0443\u0448\u044b\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.raj=\u0440\u0430\u0434\u0436\u0430\u0441\u0442\u0445\u0430\u043d\u0441\u043a\u0430\u044f
+languages.az=\u0430\u0437\u044d\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0430\u044f
+languages.ne=\u043d\u044d\u043f\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.ay=\u0430\u0439\u043c\u0430\u0440\u0430
+languages.tyv=\u0442\u0443\u0432\u0456\u043d\u0441\u043a\u0430\u044f
+languages.nb=\u043d\u0430\u0440\u0432\u0435\u0436\u0441\u043a\u0430\u044f (\u0431\u0443\u043a\u043c\u0430\u043b)
+languages.av=\u0430\u0432\u0430\u0440\u0441\u043a\u0430\u044f
+languages.de_AT=\u043d\u044f\u043c\u0435\u0446\u043a\u0430\u044f (\u0430\u045e\u0441\u0442\u0440.)
+languages.aus=\u0430\u045e\u0441\u0442\u0440\u0430\u043b\u0456\u0439\u0441\u043a\u0430\u044f
+languages.as=\u0430\u0441\u0430\u043c\u0441\u043a\u0430\u044f
+languages.ar=\u0430\u0440\u0430\u0431\u0441\u043a\u0430\u044f
+languages.zh=\u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0430\u044f
+languages.sga=\u0441\u0442\u0430\u0440\u0430\u0456\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0430\u044f
+languages.an=\u0430\u0440\u0430\u0433\u043e\u043d\u0441\u043a\u0430\u044f
+languages.am=\u0430\u043c\u0445\u0430\u0440\u0441\u043a\u0430\u044f
+languages.nai=\u043c\u043e\u0432\u0430 \u0456\u043d\u0434\u0437\u0435\u0439\u0446\u0430\u045e \u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0439 \u0410\u043c\u0435\u0440\u044b\u043a\u0456
+languages.mt=\u043c\u0430\u043b\u044c\u0442\u044b\u0439\u0441\u043a\u0430\u044f
+languages.ms=\u043c\u0430\u043b\u0430\u0439\u0441\u043a\u0430\u044f
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0445\u0456
+languages.af=\u0430\u0444\u0440\u044b\u043a\u0430\u043d\u0441
+languages.mo=\u043c\u0430\u043b\u0434\u0430\u045e\u0441\u043a\u0430\u044f
+languages.mn=\u043c\u0430\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0430\u044f
+languages.en_US=\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a\u0430\u044f (\u0417\u0428\u0410)
+languages.ab=\u0430\u0431\u0445\u0430\u0441\u043a\u0430\u044f
+languages.ml=\u043c\u0430\u043b\u0430\u044f\u043b\u0430\u043c\u0441\u043a\u0430\u044f
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0430\u044f
+languages.mg=\u043c\u0430\u043b\u044c\u0433\u0430\u0448\u0441\u043a\u0430\u044f
+languages.chb=\u0447\u044b\u0431\u0447\u0430
+languages.egy=\u0441\u0442\u0430\u0440\u0430\u0436\u044b\u0442\u043d\u0430-\u0435\u0433\u0456\u043f\u0435\u0446\u043a\u0430\u044f
+languages.tlh=\u043a\u043b\u0456\u043d\u0433\u043e\u043d
+languages.yi=\u0456\u0434\u044b\u0448
+languages.lv=\u043b\u0430\u0442\u044b\u0441\u043a\u0430\u044f
+languages.lt=\u043b\u0456\u0442\u043e\u045e\u0441\u043a\u0430\u044f
+languages.fr_CH=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f (\u0448\u0432\u0435\u0439\u0446.)
+languages.lo=\u043b\u0430\u043e\u0441\u043a\u0430\u044f
+languages.ln=\u043b\u0456\u043d\u0433\u0430\u043b\u0430
+languages.fr_CA=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f (\u043a\u0430\u043d\u0430\u0434.)
+languages.sem=\u0441\u0435\u043c\u0456\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
index 9ac9b7274356ae4b5421d31bbb36a5467d07dbf9..e61392befc6761331e9215e81501138aae93acd9 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+infinity=\u221e
+NaN=\u041d/\u0427
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+percentFormat=#0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
 currenciesDisplayName.YDD=\u0419\u0435\u043c\u0435\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.TWD=\u0422\u0430\u0439\u0432\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.KES=\u041a\u0435\u043d\u0438\u0439\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
-currenciesDisplayName.BYB=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u0440\u0443\u0431\u043b\u0430 (1994-1999)
+currenciesDisplayName.TWD=\u0422\u0430\u0439\u0432\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.LKR=\u0428\u0440\u0438\u043b\u0430\u043d\u043a\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
-currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.BYB=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u0440\u0443\u0431\u043b\u0430 (1994-1999)
 currenciesDisplayName.TJS=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0441\u043e\u043c\u043e\u043d\u0438
-currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
-currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
+currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.ERN=\u0415\u0440\u0438\u0442\u0440\u0435\u0439\u0441\u043a\u0430 \u043d\u0430\u043a\u0444\u0430
-currenciesDisplayName.AFN=\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0430\u0444\u0433\u0430\u043d
+currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
+currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
 currenciesDisplayName.GRD=\u0413\u0440\u044a\u0446\u043a\u0430 \u0434\u0440\u0430\u0445\u043c\u0430
+currenciesDisplayName.AFN=\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0430\u0444\u0433\u0430\u043d
 currenciesDisplayName.IEP=\u0418\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
 currenciesDisplayName.ARS=\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e
-currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.ARP=\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e (1983-1985)
+currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.GEL=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438 \u043b\u0430\u0440\u0438
 currenciesDisplayName.AFA=\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0430\u0444\u0433\u0430\u043d (1927-2002)
 currenciesDisplayName.CRC=\u041a\u043e\u0441\u0442\u0430\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u043a\u043e\u043b\u043e\u043d
 currenciesDisplayName.FKP=\u0424\u043e\u043b\u043a\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
 currenciesDisplayName.EEK=\u0415\u0441\u0442\u043e\u043d\u0441\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.HKD=\u0425\u043e\u043d\u0433\u043a\u043e\u043d\u0433\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.MDL=\u041c\u043e\u043b\u0434\u043e\u0432\u0441\u043a\u043e \u043b\u0435\u0443
+currenciesDisplayName.HKD=\u0425\u043e\u043d\u0433\u043a\u043e\u043d\u0433\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.IQD=\u0418\u0440\u0430\u043a\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.SCR=\u0421\u0435\u0439\u0448\u0435\u043b\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
 currenciesDisplayName.VUV=\u0412\u0430\u043d\u0443\u0430\u0442\u0443 - \u0432\u0430\u0442\u0443
-currenciesDisplayName.DKK=\u0414\u0430\u0442\u0441\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.KPW=\u0421\u0435\u0432\u0435\u0440\u043d\u043e\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438 \u0432\u043e\u043d
+currenciesDisplayName.DKK=\u0414\u0430\u0442\u0441\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.IDR=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
-currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
 currenciesDisplayName.SOS=\u0421\u043e\u043c\u0430\u043b\u0438\u0439\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
+currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
 currenciesDisplayName.AED=\u041e\u0431\u0435\u0434\u0438\u043d\u0435\u043d\u0438 \u0430\u0440\u0430\u0431\u0441\u043a\u0438 \u0435\u043c\u0438\u0440\u0441\u0442\u0432\u0430-\u0434\u0438\u0440\u0445\u0430\u043c
-currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0443\u0430\u043d\u0441\u043a\u0430 \u043f\u0443\u043b\u0430
 currenciesDisplayName.LVL=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0438 \u043b\u0430\u0442
+currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0443\u0430\u043d\u0441\u043a\u0430 \u043f\u0443\u043b\u0430
 currenciesDisplayName.RUR=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430 (1991-1998)
-currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0441\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
-currenciesDisplayName.FJD=\u0424\u0438\u0434\u0436\u0438 - \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.MOP=\u041c\u0430\u043a\u0430\u043e - \u043f\u0430\u0442\u0430\u043a\u0430
+currenciesDisplayName.FJD=\u0424\u0438\u0434\u0436\u0438 - \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0441\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
 currenciesDisplayName.RUB=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
 currenciesDisplayName.CDF=\u041a\u043e\u043d\u0433\u043e\u0430\u043d\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.NIC=\u041d\u0438\u043a\u0430\u0440\u0430\u0433\u0443\u0430\u043d\u0441\u043a\u0430 \u043a\u043e\u0440\u0434\u043e\u0431\u0430
 currenciesDisplayName.DJF=\u0414\u0436\u0438\u0431\u0443\u0442\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.SBD=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 - \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.UZS=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0441\u0443\u043c
+currenciesDisplayName.SBD=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 - \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.ECS=\u0415\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u043e \u0441\u0443\u043a\u0440\u0435
-currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e
 currenciesDisplayName.THB=\u0422\u0430\u0439\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0431\u0430\u0442
+currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e
 currenciesDisplayName.LUF=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.FIM=\u0424\u0438\u043d\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
 currenciesDisplayName.TTD=\u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0442 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e - \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.SZL=\u0421\u0432\u0430\u0437\u0438\u043b\u0435\u043d\u0434\u0441\u043a\u0438 \u043b\u0438\u043b\u0430\u043d\u0433\u0435\u043d\u0438
 currenciesDisplayName.MNT=\u041c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438 \u0442\u0443\u0433\u0440\u0438\u043a
-currenciesDisplayName.SAR=\u0421\u0430\u0443\u0434\u0438\u0442\u0441\u043a\u043e\u0430\u0440\u0430\u0431\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
 currenciesDisplayName.UAK=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438 \u043a\u0430\u0440\u0431\u043e\u0432\u0430\u043d\u0435\u0446
+currenciesDisplayName.SAR=\u0421\u0430\u0443\u0434\u0438\u0442\u0441\u043a\u043e\u0430\u0440\u0430\u0431\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
 currenciesDisplayName.UAH=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0430 \u0445\u0440\u0438\u0432\u043d\u044f
 currenciesDisplayName.HUF=\u0423\u043d\u0433\u0430\u0440\u0441\u043a\u0438 \u0444\u043e\u0440\u0438\u043d\u0442
-currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
 currenciesDisplayName.QAR=\u041a\u0430\u0442\u0430\u0440\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
+currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
 currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
-currenciesDisplayName.AOR=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0446\u0430 (1995-1999)
 currenciesDisplayName.UYU=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
+currenciesDisplayName.AOR=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0446\u0430 (1995-1999)
 currenciesDisplayName.GBP=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
-currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
 currenciesDisplayName.ZRZ=\u0417\u0430\u0438\u0440\u0441\u043a\u043e \u0437\u0430\u0439\u0440\u0435
-currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0446\u0430 (1990-2000)
+currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
+currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.LTL=\u041b\u0438\u0442\u043e\u0432\u0441\u043a\u0438 \u043b\u0438\u0442\u0430\u0437
-currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0441\u043a\u043e \u0442\u0435\u043d\u0433\u0435
-currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u0438 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0446\u0430 (1990-2000)
 currenciesDisplayName.UYP=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e (1975-1993)
+currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u0438 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0441\u043a\u043e \u0442\u0435\u043d\u0433\u0435
 currenciesDisplayName.AOK=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043a\u0432\u0430\u043d\u0446\u0430 (1977-1990)
 currenciesDisplayName.XFO=\u0424\u0440\u0435\u043d\u0441\u043a\u0438 \u0437\u043b\u0430\u0442\u0435\u043d \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.PGK=\u041f\u0430\u043f\u0443\u0430-\u043d\u043e\u0432\u043e\u0433\u0432\u0438\u043d\u0435\u0439\u0441\u043a\u0430 \u043a\u0438\u043d\u0430
 currenciesDisplayName.SYP=\u0421\u0438\u0440\u0438\u0439\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
-currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.OMR=\u041e\u043c\u0430\u043d\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
-currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0439\u0441\u043a\u0430 \u043d\u0430\u0439\u0440\u0430
+currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.ZRN=\u0417\u0430\u0438\u0440\u0441\u043a\u043e \u043d\u043e\u0432\u043e \u0437\u0430\u0439\u0440\u0435
-currenciesDisplayName.AOA=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043a\u0432\u0430\u043d\u0446\u0430
+currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0439\u0441\u043a\u0430 \u043d\u0430\u0439\u0440\u0430
 currenciesDisplayName.CNY=\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438 \u0440\u0435\u043d\u043c\u0438\u043d\u0431\u0438 \u044e\u0430\u043d
+currenciesDisplayName.AOA=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043a\u0432\u0430\u043d\u0446\u0430
 currenciesDisplayName.MAF=\u041c\u0430\u0440\u043e\u043a\u0430\u043d\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.RSD=\u0421\u0440\u044a\u0431\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.GNF=\u0413\u0432\u0438\u043d\u0435\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.HTG=\u0425\u0430\u0438\u0442\u0441\u043a\u0438 \u0433\u0443\u0440\u0434
 currenciesDisplayName.MAD=\u041c\u0430\u0440\u043e\u043a\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u0440\u0445\u0430\u043c
+currenciesDisplayName.HTG=\u0425\u0430\u0438\u0442\u0441\u043a\u0438 \u0433\u0443\u0440\u0434
 currenciesDisplayName.TRY=\u041d\u043e\u0432\u0430 \u0442\u0443\u0440\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
 currenciesDisplayName.MMK=\u041c\u0438\u044f\u043d\u043c\u0430\u0440\u0441\u043a\u0438 (\u0411\u0438\u0440\u043c\u0430) \u043a\u0438\u044f\u0442
 currenciesDisplayName.MYR=\u041c\u0430\u043b\u0430\u0439\u0437\u0438\u0439\u0441\u043a\u0438 \u0440\u0438\u043d\u0433\u0438\u0442
-currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u043a\u043e \u043b\u043e\u0442\u0438
 currenciesDisplayName.XEU=\u0415\u043a\u0443 \u043d\u0430 \u0415\u0418\u041e
-currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u043a\u043e \u043b\u043e\u0442\u0438
 currenciesDisplayName.SLL=\u0421\u0438\u0435\u0440\u0430\u043b\u0435\u043e\u043d\u0441\u043a\u043e \u043b\u0435\u043e\u043d\u0435
+currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.BTN=\u0411\u0443\u0442\u0430\u043d\u0441\u043a\u0438 \u043d\u0433\u0443\u043b\u0442\u0440\u0443\u043c
 currenciesDisplayName.TRL=\u0422\u0443\u0440\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
 currenciesDisplayName.KMF=\u041a\u043e\u043c\u043e\u0440\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.ANG=\u0410\u043d\u0442\u0438\u043b\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
 currenciesDisplayName.CZK=\u0427\u0435\u0448\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
+currenciesDisplayName.ANG=\u0410\u043d\u0442\u0438\u043b\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
 currenciesDisplayName.AZM=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438 \u043c\u0430\u043d\u0430\u0442
 currenciesDisplayName.KYD=\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 - \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.GMD=\u0413\u0430\u043c\u0431\u0438\u0439\u0441\u043a\u0438 \u0434\u0430\u043b\u0430\u0441\u0438
 currenciesDisplayName.BGN=\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u043b\u0435\u0432
 currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.BGL=\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u043b\u0435\u0432 (1962-1999)
 currenciesDisplayName.VEB=\u0412\u0435\u043d\u0435\u0441\u0443\u0435\u043b\u0441\u043a\u0438 \u0431\u043e\u043b\u0438\u0432\u0430\u0440
-currenciesDisplayName.ILS=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0438 \u043d\u043e\u0432 \u0448\u0435\u043a\u0435\u043b
 currenciesDisplayName.MXP=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u043e \u0441\u0440\u0435\u0431\u044a\u0440\u043d\u043e \u043f\u0435\u0441\u043e (1861-1992)
+currenciesDisplayName.ILS=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0438 \u043d\u043e\u0432 \u0448\u0435\u043a\u0435\u043b
 currenciesDisplayName.PES=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438 \u0441\u043e\u043b
-currenciesDisplayName.GYD=\u0413\u0430\u044f\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.MXN=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u043e \u043d\u043e\u0432\u043e \u043f\u0435\u0441\u043e
+currenciesDisplayName.GYD=\u0413\u0430\u044f\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.ILP=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
-currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0448\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.CYP=\u041a\u0438\u043f\u044a\u0440\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0448\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.PEN=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438 \u043d\u043e\u0432 \u0441\u043e\u043b
 currenciesDisplayName.LRD=\u041b\u0438\u0431\u0435\u0440\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.AMD=\u0410\u0440\u043c\u0435\u043d\u0441\u043a\u0438 \u0434\u0440\u0430\u043c
 currenciesDisplayName.BSD=\u0411\u0430\u0445\u0430\u043c\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.HRK=\u0425\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0430 \u043a\u0443\u043d\u0430
-currenciesDisplayName.CLP=\u0427\u0438\u043b\u0438\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
 currenciesDisplayName.HRD=\u0425\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.CLP=\u0427\u0438\u043b\u0438\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
 currenciesDisplayName.XPF=\u0424\u0440\u0435\u043d\u0441\u043a\u043e\u043f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.FRF=\u0424\u0440\u0435\u043d\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.MKD=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 \u0434\u0435\u043d\u0430\u0440
@@ -133,23 +143,24 @@ currenciesDisplayName.MWK=\u041c\u0430\u043b\u0430\u0432\u0438\u0439\u0441\u043a
 currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b\u0441\u043a\u0438 \u0440\u0435\u0430\u043b
 currenciesDisplayName.TPE=\u0422\u0438\u043c\u043e\u0440\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.DEM=\u0413\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
-currenciesDisplayName.KWD=\u041a\u0443\u0432\u0435\u0439\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.XCD=\u0418\u0437\u0442\u043e\u0447\u043d\u043e\u043a\u0430\u0440\u0438\u0431\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440 - \u0410\u043d\u0442\u0438\u0433\u0443\u0430
+currenciesDisplayName.KWD=\u041a\u0443\u0432\u0435\u0439\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.NPR=\u041d\u0435\u043f\u0430\u043b\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
 currenciesDisplayName.GWP=\u0413\u0432\u0438\u043d\u0435\u044f-\u0411\u0438\u0441\u0430\u0443 \u043f\u0435\u0441\u043e
 currenciesDisplayName.YUN=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.SVC=\u0421\u0430\u043b\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u0438 \u043a\u043e\u043b\u043e\u043d
 currenciesDisplayName.YUM=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.BEL=\u0411\u0435\u043b\u0433\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a (\u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432)
+currenciesDisplayName.SVC=\u0421\u0430\u043b\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u0438 \u043a\u043e\u043b\u043e\u043d
 currenciesDisplayName.SIT=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438 \u0442\u043e\u043b\u0430\u0440
+currenciesDisplayName.BEL=\u0411\u0435\u043b\u0433\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a (\u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432)
 currenciesDisplayName.JPY=\u042f\u043f\u043e\u043d\u0441\u043a\u0430 \u0439\u0435\u043d\u0430
 currenciesDisplayName.XOF=\u0411\u0435\u043d\u0438\u043d - CFA \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.MVR=\u041c\u0430\u043b\u0434\u0438\u0432\u0441\u043a\u0430 \u0440\u0443\u0444\u0438\u044f
-currenciesDisplayName.BEF=\u0411\u0435\u043b\u0433\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.TOP=\u0422\u043e\u043d\u0433\u0430 - \u043f\u0430 \u0430\u043d\u0433\u0430
+currenciesDisplayName.BEF=\u0411\u0435\u043b\u0433\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.BEC=\u0411\u0435\u043b\u0433\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c)
 currenciesDisplayName.SUR=\u0421\u044a\u0432\u0435\u0442\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
-currenciesDisplayName.ROL=\u0420\u0443\u043c\u044a\u043d\u0441\u043a\u0430 \u043b\u0435\u044f
+currenciesDisplayName.RON=\u0420\u0443\u043c\u044a\u043d\u0441\u043a\u0430 \u043b\u0435\u044f
+currenciesDisplayName.ROL=\u0421\u0442\u0430\u0440\u0430 \u0440\u0443\u043c\u044a\u043d\u0441\u043a\u0430 \u043b\u0435\u044f
 currenciesDisplayName.BDT=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448\u043a\u0430 \u0442\u0430\u043a\u0430
 currenciesDisplayName.AWG=\u0410\u0440\u0443\u0431\u0441\u043a\u0438 \u0433\u0438\u043b\u0434\u0435\u0440 - \u043e. \u0410\u0440\u0443\u0431\u0430
 currenciesDisplayName.NOK=\u041d\u043e\u0440\u0432\u0435\u0436\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
@@ -172,46 +183,47 @@ currenciesDisplayName.UGS=\u0423\u0433\u0430\u043d\u0434\u0438\u0439\u0441\u043a
 currenciesDisplayName.STD=\u0421\u0430\u043e \u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0441\u0438\u043f\u0438 - \u0434\u043e\u0431\u0440\u0430
 currenciesDisplayName.WST=\u0421\u0430\u043c\u043e\u0430 - \u0442\u0430\u043b\u0430
 currenciesDisplayName.KHR=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430\u043d\u0441\u043a\u0438 \u0440\u0438\u0435\u043b
-currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
 currenciesDisplayName.DOP=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e
+currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
 currenciesDisplayName.BOP=\u0411\u043e\u043b\u0438\u0432\u0438\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
-currenciesDisplayName.MTL=\u041c\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
 currenciesDisplayName.CUP=\u041a\u0443\u0431\u0438\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e
+currenciesDisplayName.MTL=\u041c\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
 currenciesDisplayName.TMM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u043c\u0430\u043d\u0430\u0442
 currenciesDisplayName.SGD=\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.NZD=\u041d\u043e\u0432\u043e\u0437\u0435\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.USD=\u0421\u0410\u0429 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.HNL=\u0425\u043e\u043d\u0434\u0443\u0440\u0430\u0441\u043a\u0430 \u043b\u0435\u043c\u043f\u0438\u0440\u0430
 currenciesDisplayName.BOB=\u0411\u043e\u043b\u0438\u0432\u0438\u0439\u0441\u043a\u043e \u0431\u043e\u043b\u0438\u0432\u0438\u0430\u043d\u043e
-currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u0438 \u0431\u0430\u043b\u0431\u043e\u0430
+currenciesDisplayName.HNL=\u0425\u043e\u043d\u0434\u0443\u0440\u0430\u0441\u043a\u0430 \u043b\u0435\u043c\u043f\u0438\u0440\u0430
 currenciesDisplayName.ITL=\u0418\u0442\u0430\u043b\u0438\u0430\u043d\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u0438 \u0431\u0430\u043b\u0431\u043e\u0430
 currenciesDisplayName.GTQ=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0441\u043a\u0438 \u043a\u0432\u0435\u0442\u0437\u0430\u043b
-currenciesDisplayName.NAD=\u041d\u0430\u043c\u0438\u0431\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u043a\u0438 \u043a\u0438\u043f
-currenciesDisplayName.GHC=\u0413\u0430\u043d\u0430\u0439\u0441\u043a\u0438 \u0441\u0435\u0434\u0438
+currenciesDisplayName.XXX=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442\u0430 \u0438\u043b\u0438 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430 \u0432\u0430\u043b\u0443\u0442\u0430
 currenciesDisplayName.AUD=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.GHC=\u0413\u0430\u043d\u0430\u0439\u0441\u043a\u0438 \u0441\u0435\u0434\u0438
+currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u043a\u0438 \u043a\u0438\u043f
+currenciesDisplayName.NAD=\u041d\u0430\u043c\u0438\u0431\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.KGS=\u041a\u0438\u0440\u0433\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0441\u043e\u043c
 currenciesDisplayName.MGF=\u041c\u0430\u043b\u0433\u0430\u0448\u043a\u0438 \u0444\u0440\u0430\u043d\u043a - \u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
-currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.BBD=\u0411\u0430\u0440\u0431\u0435\u0439\u0434\u043e\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.PYG=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439\u0441\u043a\u043e \u0433\u0443\u0430\u0440\u0430\u043d\u0438
 currenciesDisplayName.PLZ=\u041f\u043e\u043b\u0441\u043a\u0430 \u0437\u043b\u043e\u0442\u0430 (1950-1995)
 currenciesDisplayName.YER=\u0419\u0435\u043c\u0435\u043d\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
 currenciesDisplayName.ATS=\u0410\u0432\u0441\u0442\u0440\u0438\u0439\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
 currenciesDisplayName.ETB=\u0415\u0442\u0438\u043e\u043f\u0441\u043a\u0438 \u0431\u0438\u0440
 currenciesDisplayName.BND=\u0411\u0440\u0443\u043d\u0435\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.EGP=\u0415\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.PLN=\u041f\u043e\u043b\u0441\u043a\u0430 \u0437\u043b\u043e\u0442\u0430
 currenciesDisplayName.DZD=\u0410\u043b\u0436\u0438\u0440\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.ISK=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.SRG=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u043a\u0438 \u0433\u0438\u043b\u0434\u0435\u0440
 currenciesDisplayName.LYD=\u041b\u0438\u0431\u0438\u0439\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.BZD=\u0411\u0435\u043b\u0438\u0437\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.BAM=\u0411\u043e\u0441\u043d\u0435\u043d\u0441\u043a\u0430 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u0430 \u043c\u0430\u0440\u043a\u0430
+currenciesDisplayName.BZD=\u0411\u0435\u043b\u0438\u0437\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.ESP=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
-currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
 currenciesDisplayName.KRW=\u041a\u041d\u0414\u0420 \u0432\u043e\u043d
+currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
 currenciesDisplayName.MRO=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430 \u043e\u0433\u0438\u044f
 currenciesDisplayName.BAD=\u0411\u043e\u0441\u043d\u0430 \u0438 \u0425\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u0430-\u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.ZWD=\u0417\u0438\u043c\u0431\u0430\u0431\u0432\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
@@ -221,32 +233,31 @@ currenciesDisplayName.BYR=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430
 currenciesDisplayName.IRR=\u0418\u0440\u0430\u043d\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
 currenciesDisplayName.PKR=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
 currenciesDisplayName.BMD=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesSymbol.BGL=\u043b\u0432
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=\u043b\u0432.
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
@@ -265,27 +276,26 @@ currenciesSymbol.FJD=F$
 currenciesSymbol.UYU=Ur$
 currenciesSymbol.BDT=Tk
 currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
 currenciesSymbol.DJF=DF
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
 currenciesSymbol.SGD=S$
 currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
 currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -294,8 +304,8 @@ currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
 currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.BOB=Bs
 currenciesSymbol.CNY=Y
@@ -310,10 +320,10 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.ANG=NA f.
@@ -323,19 +333,21 @@ currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
 currenciesSymbol.BGN=\u043b\u0432.
-shortMonths=\u044f\u043d\u0443®\u0444\u0435\u0432®\u043c\u0430\u0440®\u0430\u043f\u0440®\u043c\u0430\u0439®\u044e\u043d\u0438®\u044e\u043b\u0438®\u0430\u0432\u0433®\u0441\u0435\u043f®\u043e\u043a\u0442®\u043d\u043e\u0435®\u0434\u0435\u043a®®
-months=\u044f\u043d\u0443\u0430\u0440\u0438®\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438®\u043c\u0430\u0440\u0442®\u0430\u043f\u0440\u0438\u043b®\u043c\u0430\u0439®\u044e\u043d\u0438®\u044e\u043b\u0438®\u0430\u0432\u0433\u0443\u0441\u0442®\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438®\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438®\u043d\u043e\u0435\u043c\u0432\u0440\u0438®\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438®®
-shortWeekdays=®\u043d\u0434®\u043f\u043d®\u0432\u0442®\u0441\u0440®\u0447\u0442®\u043f\u0442®\u0441\u0431®
-weekdays=®\u043d\u0435\u0434\u0435\u043b\u044f®\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a®\u0432\u0442\u043e\u0440\u043d\u0438\u043a®\u0441\u0440\u044f\u0434\u0430®\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a®\u043f\u0435\u0442\u044a\u043a®\u0441\u044a\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u043f\u0440.\u0425\u0440.®\u0441\u043b.\u0425\u0440.®
-ampms=\u043f\u0440. \u043e\u0431.®\u0441\u043b. \u043e\u0431.®
+shortMonths=\u044f\u043d.\u00ae\u0444\u0435\u0432\u0440.\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440.\u00ae\u043c\u0430\u0439\u00ae\u044e\u043d\u0438\u00ae\u044e\u043b\u0438\u00ae\u0430\u0432\u0433.\u00ae\u0441\u0435\u043f\u0442.\u00ae\u043e\u043a\u0442.\u00ae\u043d\u043e\u0435\u043c.\u00ae\u0434\u0435\u043a.\u00ae\u00ae
+months=\u044f\u043d\u0443\u0430\u0440\u0438\u00ae\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440\u0438\u043b\u00ae\u043c\u0430\u0439\u00ae\u044e\u043d\u0438\u00ae\u044e\u043b\u0438\u00ae\u0430\u0432\u0433\u0443\u0441\u0442\u00ae\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438\u00ae\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438\u00ae\u043d\u043e\u0435\u043c\u0432\u0440\u0438\u00ae\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438\u00ae\u00ae
+shortWeekdays=\u00ae\u043d\u0434\u00ae\u043f\u043d\u00ae\u0432\u0442\u00ae\u0441\u0440\u00ae\u0447\u0442\u00ae\u043f\u0442\u00ae\u0441\u0431\u00ae
+weekdays=\u00ae\u043d\u0435\u0434\u0435\u043b\u044f\u00ae\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a\u00ae\u0432\u0442\u043e\u0440\u043d\u0438\u043a\u00ae\u0441\u0440\u044f\u0434\u0430\u00ae\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a\u00ae\u043f\u0435\u0442\u044a\u043a\u00ae\u0441\u044a\u0431\u043e\u0442\u0430\u00ae
+eras=\u043f\u0440. \u043d. \u0435.\u00ae\u043e\u0442 \u043d. \u0435.\u00ae
+ampms=\u043f\u0440. \u043e\u0431.\u00ae\u0441\u043b. \u043e\u0431.\u00ae
 shortDateFormat=dd.MM.yy
 mediumDateFormat=dd.MM.yyyy
 longDateFormat=dd MMMM yyyy
 fullDateFormat=dd MMMM yyyy, EEEE
-longTimeFormat=HH:mm:ss
-zoneStrings=America/Halifax®AST®\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®ADT®\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/Indianapolis®EST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®EST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©Europe/Paris®CET®\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®CEST®\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/Phoenix®MST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®MST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/Los_Angeles®PST®\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®PDT®\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©Pacific/Honolulu®HST®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0425\u0430\u0432\u0430\u0439®HST®\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0425\u0430\u0432\u0430\u0439®©America/Denver®MST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®MDT®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©Europe/Bucharest®EET®\u0418\u0437\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®EEST®\u0418\u0437\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/New_York®EST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®EDT®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©Asia/Tokyo®JST®\u042f\u043f\u043e\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®JST®\u042f\u043f\u043e\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/Anchorage®AST®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0410\u043b\u044f\u0441\u043a\u0430®ADT®\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0410\u043b\u044f\u0441\u043a\u0430®©Asia/Shanghai®CTT®\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®CDT®\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/Chicago®CST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®CDT®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©Africa/Casablanca®GMT®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0413\u0440\u0438\u043d\u0443\u0438\u0447®GMT®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0413\u0440\u0438\u043d\u0443\u0438\u0447®©America/St_Johns®CNT®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u041d\u044e\u0444\u0430\u0443\u043d\u0434\u043b\u0435\u043d\u0434®CDT®\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u041d\u044e\u0444\u0430\u0443\u043d\u0434\u043b\u0435\u043d\u0434®©Asia/Jerusalem®IST®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0418\u0437\u0440\u0430\u0435\u043b®IDT®\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0418\u0437\u0440\u0430\u0435\u043b®©
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Central\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9Alaska\u00ae\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0410\u043b\u044f\u0441\u043a\u0430\u00ae\u00ae\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0410\u043b\u044f\u0441\u043a\u0430\u00ae\u00ae\u00a9America_Pacific\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9Israel\u00ae\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0418\u0437\u0440\u0430\u0435\u043b\u00ae\u00ae\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0418\u0437\u0440\u0430\u0435\u043b\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0418\u0437\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0418\u0437\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9Newfoundland\u00ae\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u041d\u044e\u0444\u0430\u0443\u043d\u0434\u043b\u0435\u043d\u0434\u00ae\u00ae\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u041d\u044e\u0444\u0430\u0443\u043d\u0434\u043b\u0435\u043d\u0434\u00ae\u00ae\u00a9Atlantic\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9America_Eastern\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9China\u00ae\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9GMT\u00ae\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0413\u0440\u0438\u043d\u0443\u0438\u0447\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9Japan\u00ae\u042f\u043f\u043e\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u042f\u043f\u043e\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9
 territories.TL=\u0418\u0437\u0442\u043e\u0447\u0435\u043d \u0422\u0438\u043c\u043e\u0440
 territories.TK=\u0422\u043e\u043a\u0435\u043b\u0430\u0443
 territories.TJ=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d
@@ -358,12 +370,13 @@ territories.GN=\u0413\u0432\u0438\u043d\u0435\u044f
 territories.GM=\u0413\u0430\u043c\u0431\u0438\u044f
 territories.GL=\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0438\u044f
 territories.SV=\u0415\u043b \u0421\u0430\u043b\u0432\u0430\u0434\u043e\u0440
-territories.062=\u042e\u0436\u043d\u0430 \u0410\u0437\u0438\u044f
+territories.062=\u042e\u0436\u043d\u0430 \u0410\u0437\u0438\u044f [062]
 territories.ST=\u0421\u0430\u043e \u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u0435
-territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f
 territories.GI=\u0413\u0438\u0431\u0440\u0430\u043b\u0442\u0430\u0440
+territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f
 territories.GH=\u0413\u0430\u043d\u0430
 territories.SR=\u0421\u0443\u0440\u0438\u043d\u0430\u043c
+territories.GG=\u043e. \u0413\u044a\u0440\u043d\u0437\u0438
 territories.GF=\u0424\u0440\u0435\u043d\u0441\u043a\u0430 \u0413\u0432\u0438\u0430\u043d\u0430
 territories.GE=\u0413\u0440\u0443\u0437\u0438\u044f
 territories.SO=\u0421\u043e\u043c\u0430\u043b\u0438\u044f
@@ -384,36 +397,38 @@ territories.SC=\u0421\u0435\u0439\u0448\u0435\u043b\u0438
 territories.SB=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.SA=\u0421\u0430\u0443\u0434\u0438\u0442\u0441\u043a\u0430 \u0410\u0440\u0430\u0431\u0438\u044f
 territories.FR=\u0424\u0440\u0430\u043d\u0446\u0438\u044f
-territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
 territories.FO=\u0424\u0430\u0440\u044c\u043e\u0440\u0441\u043a\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
+territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
 territories.FM=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f, \u041e\u0431\u0435\u0434\u0438\u043d\u0435\u043d\u0438 \u0429\u0430\u0442\u0438
 territories.RW=\u0420\u0443\u0430\u043d\u0434\u0430
 territories.054=\u041c\u0435\u043b\u0430\u043d\u0435\u0437\u0438\u044f
-territories.053=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f \u0438 \u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f
 territories.FK=\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u043a\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
+territories.053=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f \u0438 \u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f
 territories.RU=\u0420\u0443\u0441\u043a\u0430 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u044f
 territories.FJ=\u0424\u0438\u0434\u0436\u0438
 territories.FI=\u0424\u0438\u043d\u043b\u0430\u043d\u0434\u0438\u044f
+territories.RS=\u0421\u044a\u0440\u0431\u0438\u044f
 territories.RO=\u0420\u0443\u043c\u044a\u043d\u0438\u044f
 territories.RE=\u0420\u0435\u044e\u043d\u0438\u044a\u043d
 territories.ET=\u0415\u0442\u0438\u043e\u043f\u0438\u044f
 territories.ES=\u0418\u0441\u043f\u0430\u043d\u0438\u044f
 territories.ER=\u0415\u0440\u0438\u0442\u0440\u0435\u044f
-territories.833=\u043e.\u041c\u0430\u043d
+territories.QU=\u0415\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438 \u0441\u044a\u044e\u0437
 territories.EH=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0421\u0430\u0445\u0430\u0440\u0430
 territories.EG=\u0415\u0433\u0438\u043f\u0435\u0442
-territories.830=\u041d\u043e\u0440\u043c\u0430\u043d\u0434\u0441\u043a\u0438 \u043e-\u0432\u0438
 territories.EE=\u0415\u0441\u0442\u043e\u043d\u0438\u044f
-territories.QO=\u041e\u043a\u0435\u0430\u043d\u0438\u044f
+territories.830=\u041d\u043e\u0440\u043c\u0430\u043d\u0434\u0441\u043a\u0438 \u043e-\u0432\u0438
+territories.QO=\u041e\u043a\u0435\u0430\u043d\u0438\u044f [QO]
 territories.EC=\u0415\u043a\u0432\u0430\u0434\u043e\u0440
 territories.DZ=\u0410\u043b\u0436\u0438\u0440
 territories.QA=\u041a\u0430\u0442\u0430\u0440
 territories.039=\u042e\u0436\u043d\u0430 \u0415\u0432\u0440\u043e\u043f\u0430
 territories.DO=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
 territories.PY=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439
-territories.035=\u042e\u0433\u043e\u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0410\u0437\u0438\u044f
 territories.DM=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430
+territories.035=\u042e\u0433\u043e\u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0410\u0437\u0438\u044f
 territories.PW=\u041f\u0430\u043b\u0430\u0443
+territories.034=\u042e\u0436\u043d\u0430 \u0410\u0437\u0438\u044f
 territories.DK=\u0414\u0430\u043d\u0438\u044f
 territories.DJ=\u0414\u0436\u0438\u0431\u0443\u0442\u0438
 territories.PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u044f
@@ -435,6 +450,7 @@ territories.CX=\u041e\u0441\u0442\u0440\u043e\u0432 \u041a\u0440\u0438\u0441\u04
 territories.CV=\u041a\u0430\u0431\u043e \u0412\u0435\u0440\u0434\u0435
 territories.PA=\u041f\u0430\u043d\u0430\u043c\u0430
 territories.CU=\u041a\u0443\u0431\u0430
+territories.CS=\u0421\u044a\u0440\u0431\u0438\u044f \u0438 \u0427\u0435\u0440\u043d\u0430 \u0413\u043e\u0440\u0430
 territories.CR=\u041a\u043e\u0441\u0442\u0430 \u0420\u0438\u043a\u0430
 territories.029=\u041a\u0430\u0440\u0438\u0431\u0441\u043a\u0438 \u043e-\u0432\u0438
 territories.CO=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u044f
@@ -442,8 +458,8 @@ territories.CN=\u041a\u0438\u0442\u0430\u0439
 territories.CM=\u041a\u0430\u043c\u0435\u0440\u0443\u043d
 territories.CL=\u0427\u0438\u043b\u0438
 territories.CK=\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041a\u0443\u043a
-territories.CI=\u041a\u043e\u0442 \u0434\u2019\u0418\u0432\u043e\u0430\u0440
 territories.021=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
+territories.CI=\u0411\u0440\u044f\u0433 \u043d\u0430 \u0421\u043b\u043e\u043d\u043e\u0432\u0430\u0442\u0430 \u043a\u043e\u0441\u0442
 territories.CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u044f
 territories.CG=\u041a\u043e\u043d\u0433\u043e
 territories.CF=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
@@ -451,6 +467,7 @@ territories.CD=\u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u043
 territories.CC=\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u0438 (\u041a\u0438\u0439\u043b\u0438\u043d\u0433) \u043e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.OM=\u041e\u043c\u0430\u043d
 territories.CA=\u041a\u0430\u043d\u0430\u0434\u0430
+territories.419=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0438 \u041a\u0430\u0440\u0438\u0431\u0441\u043a\u0438 \u0431\u0430\u0441\u0435\u0439\u043d
 territories.BZ=\u0411\u0435\u043b\u0438\u0437
 territories.BY=\u0411\u0435\u043b\u0430\u0440\u0443\u0441
 territories.BW=\u0411\u043e\u0442\u0441\u0443\u0430\u043d\u0430
@@ -459,25 +476,27 @@ territories.BT=\u0411\u0443\u0442\u0430\u043d
 territories.BS=\u0411\u0430\u0445\u0430\u043c\u0438
 territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f
 territories.019=\u0410\u043c\u0435\u0440\u0438\u043a\u0430
-territories.018=\u042e\u0436\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.018=\u042e\u0436\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0440\u0435\u0433\u0438\u043e\u043d
 territories.NZ=\u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f
-territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u044f
 territories.017=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u044f
 territories.BN=\u0411\u0440\u0443\u043d\u0435\u0439 \u0414\u0430\u0440\u0443\u0441\u0430\u043b\u0430\u043c
-territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0430
 territories.015=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0430
 territories.014=\u0418\u0437\u0442\u043e\u0447\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
 territories.013=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.NU=\u041d\u0438\u0443\u0435
 territories.BJ=\u0411\u0435\u043d\u0438\u043d
-territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
 territories.011=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0410\u0444\u0438\u0440\u043a\u0430
+territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
+territories.172=\u041e\u0431\u0449\u043d\u043e\u0441\u0442 \u043d\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0438\u0442\u0435 \u0434\u044a\u0440\u0436\u0430\u0432\u0438
 territories.BH=\u0411\u0430\u0445\u0440\u0435\u0439\u043d
 territories.NR=\u041d\u0430\u0443\u0440\u0443
 territories.BG=\u0411\u044a\u043b\u0433\u0430\u0440\u0438\u044f
 territories.BF=\u0411\u0443\u0440\u043a\u0438\u043d\u0430 \u0424\u0430\u0441\u043e
 territories.NP=\u041d\u0435\u043f\u0430\u043b
 territories.BE=\u0411\u0435\u043b\u0433\u0438\u044f
+territories.ZZ=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442a \u0438\u043b\u0438 \u043d\u0435\u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0430 \u043e\u0431\u043b\u0430\u0441\u0442
 territories.NO=\u041d\u043e\u0440\u0432\u0435\u0433\u0438\u044f
 territories.BD=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448
 territories.BB=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441
@@ -498,24 +517,25 @@ territories.AU=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f
 territories.AT=\u0410\u0432\u0441\u0442\u0440\u0438\u044f
 territories.AS=\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e \u0421\u0430\u043c\u043e\u0430
 territories.AR=\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0430
-territories.009=\u041e\u043a\u0435\u0430\u043d\u0438\u044f
 territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u043a\u0430
+territories.009=\u041e\u043a\u0435\u0430\u043d\u0438\u044f
 territories.MZ=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a
 territories.AO=\u0410\u043d\u0433\u043e\u043b\u0430
 territories.MY=\u041c\u0430\u043b\u0430\u0439\u0437\u0438\u044f
 territories.AN=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0410\u043d\u0442\u0438\u043b\u0438
 territories.MX=\u041c\u0435\u043a\u0441\u0438\u043a\u043e
-territories.005=\u042e\u0436\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.AM=\u0410\u0440\u043c\u0435\u043d\u0438\u044f
+territories.005=\u042e\u0436\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.MW=\u041c\u0430\u043b\u0430\u0432\u0438
 territories.AL=\u0410\u043b\u0431\u0430\u043d\u0438\u044f
 territories.MV=\u041c\u0430\u043b\u0434\u0438\u0432\u0438
+territories.003=\u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u043a\u043e\u043d\u0442\u0438\u043d\u0435\u043d\u0442
 territories.ZA=\u042e\u0436\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
 territories.MU=\u041c\u0430\u0432\u0440\u0438\u0446\u0438\u0439
 territories.002=\u0410\u0444\u0440\u0438\u043a\u0430
 territories.MT=\u041c\u0430\u043b\u0442\u0430
-territories.001=\u0417\u0435\u043c\u044f\u0442\u0430
 territories.AI=\u0410\u043d\u0433\u0443\u0438\u043b\u0430
+territories.001=\u0417\u0435\u043c\u044f\u0442\u0430
 territories.MS=\u041c\u043e\u043d\u0441\u0435\u0440\u0430\u0442
 territories.MR=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0438\u044f
 territories.AG=\u0410\u043d\u0442\u0438\u0433\u0443\u0430 \u0438 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
@@ -523,7 +543,7 @@ territories.MQ=\u041c\u0430\u0440\u0442\u0438\u043d\u0438\u043a\u0430
 territories.AF=\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d
 territories.MP=\u0421\u0435\u0432\u0435\u0440\u043d\u0438 \u041c\u0430\u0440\u0438\u0430\u043d\u0441\u043a\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.AE=\u041e\u0431\u0435\u0434\u0438\u043d\u0435\u043d\u0438 \u0410\u0440\u0430\u0431\u0441\u043a\u0438 \u0415\u043c\u0438\u0440\u0441\u0442\u0432\u0430
-territories.MO=\u041c\u0430\u043a\u0430\u043e \u041e.\u0410.\u0420. \u043d\u0430 \u041a\u0438\u0442\u0430\u0439
+territories.MO=\u041c\u0430\u043a\u0430\u043e
 territories.AD=\u0410\u043d\u0434\u043e\u0440\u0430
 territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u044f
 territories.MM=\u041c\u0438\u0430\u043d\u043c\u0430\u0440
@@ -532,6 +552,7 @@ territories.MK=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u044f, \u0420\u0
 territories.YT=\u041c\u0435\u0439\u043e\u0442
 territories.MH=\u041c\u0430\u0440\u0448\u0430\u043b\u043e\u0432\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.MG=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
+territories.ME=\u0427\u0435\u0440\u043d\u0430 \u0413\u043e\u0440\u0430
 territories.MD=\u041c\u043e\u043b\u0434\u043e\u0432\u0430, \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
 territories.MC=\u041c\u043e\u043d\u0430\u043a\u043e
 territories.MA=\u041c\u0430\u0440\u043e\u043a\u043e
@@ -555,6 +576,7 @@ territories.KZ=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d
 territories.KY=\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.KW=\u041a\u0443\u0432\u0435\u0439\u0442
 territories.145=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0410\u0437\u0438\u044f
+territories.143=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0437\u0438\u044f
 territories.142=\u0410\u0437\u0438\u044f
 territories.KR=\u041a\u043e\u0440\u0435\u044f, \u042e\u0436\u043d\u0430
 territories.KP=\u041a\u043e\u0440\u0435\u044f, \u0421\u0435\u0432\u0435\u0440\u043d\u0430
@@ -570,6 +592,7 @@ territories.JP=\u042f\u043f\u043e\u043d\u0438\u044f
 territories.JO=\u0419\u043e\u0440\u0434\u0430\u043d\u0438\u044f
 territories.JM=\u042f\u043c\u0430\u0439\u043a\u0430
 territories.VU=\u0412\u0430\u043d\u0443\u0430\u0442\u0443
+territories.JE=\u043e. \u0414\u0436\u044a\u0440\u0437\u0438
 territories.VN=\u0412\u0438\u0435\u0442\u043d\u0430\u043c
 territories.VI=\u0421\u0410\u0429, \u0412\u0438\u0440\u0434\u0436\u0438\u043d\u0441\u043a\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.VG=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438 \u0412\u0438\u0440\u0434\u0436\u0438\u043d\u0441\u043a\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
@@ -584,6 +607,7 @@ territories.UZ=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d
 territories.IO=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0432 \u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u044f \u043e\u043a\u0435\u0430\u043d
 territories.UY=\u0423\u0440\u0443\u0433\u0432\u0430\u0439
 territories.IN=\u0418\u043d\u0434\u0438\u044f
+territories.IM=\u043e.\u041c\u0430\u043d
 territories.IL=\u0418\u0437\u0440\u0430\u0435\u043b
 territories.US=\u0421\u0410\u0429
 territories.IE=\u0418\u0440\u043b\u0430\u043d\u0434\u0438\u044f
@@ -599,187 +623,348 @@ territories.HN=\u0425\u043e\u043d\u0434\u0443\u0440\u0430\u0441
 territories.HM=\u041e\u0441\u0442\u0440\u043e\u0432 \u0425\u044a\u0440\u0434 \u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u0434
 territories.TW=\u0422\u0430\u0439\u0432\u0430\u043d
 territories.TV=\u0422\u0443\u0432\u0430\u043b\u0443
-territories.HK=\u0425\u043e\u043d\u0433-\u041a\u043e\u043d\u0433 \u041e.\u0410.\u0420. \u043d\u0430 \u041a\u0438\u0442\u0430\u0439
+territories.HK=\u0425\u043e\u043d\u0433-\u041a\u043e\u043d\u0433
 territories.TT=\u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0434 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e
 territories.TR=\u0422\u0443\u0440\u0446\u0438\u044f
 territories.TO=\u0422\u043e\u043d\u0433\u0430
 territories.TN=\u0422\u0443\u043d\u0438\u0441
 territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d
-languages.lb=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0441\u043a\u0438
-languages.la=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0438
-languages.ky=\u041a\u0438\u0440\u0433\u0438\u0437\u0441\u043a\u0438
-languages.ku=\u041a\u044e\u0440\u0434\u0441\u043a\u0438
-languages.ks=\u041a\u0430\u0448\u043c\u0438\u0440\u0441\u043a\u0438
-languages.ko=\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u0438
-languages.km=\u041a\u0445\u043c\u0435\u0440\u0441\u043a\u0438
-languages.ira=\u0418\u0440\u0430\u043d\u0441\u043a\u0438
-languages.kk=\u041a\u0430\u0437\u0430\u0445\u0441\u043a\u0438
-languages.ki=\u043a\u0438\u043a\u0443\u0439\u0443
-languages.kg=\u041a\u043e\u043d\u0433\u043e\u0430\u043d\u0441\u043a\u0438
-languages.grc=\u0414\u0440\u0435\u0432\u043d\u043e\u0433\u0440\u044a\u0446\u043a\u0438 (\u0434\u043e 1453)
-languages.crp=\u041a\u0440\u0435\u043e\u043b\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.art=\u0418\u0437\u043a\u0443\u0441\u0442\u0432\u0435\u043d (\u0434\u0440\u0443\u0433\u0438)
-languages.afh=\u0410\u0444\u0440\u0438\u0445\u0438\u043b\u0438
-languages.ka=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438
-languages.gem=\u0413\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.afa=\u0410\u0444\u0440\u043e-\u0430\u0437\u0438\u0430\u0442\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.jv=\u042f\u0432\u0430\u043d\u0441\u043a\u0438
-languages.cel=\u041a\u0435\u043b\u0442\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.tut=\u0410\u043b\u0442\u0430\u0439\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ja=\u042f\u043f\u043e\u043d\u0441\u043a\u0438
-languages.vi=\u0412\u0438\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438
-languages.it=\u0418\u0442\u0430\u043b\u0438\u0430\u043d\u0441\u043a\u0438
-languages.is=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438
-languages.uz=\u0423\u0437\u0431\u0435\u043a\u0441\u043a\u0438
-languages.io=\u0418\u0434\u043e
-languages.ur=\u0423\u0440\u0434\u0443
-languages.cpp=\u041a\u0440\u0435\u043e\u043b\u0441\u043a\u0438, \u043e\u0442 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.id=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0438
-languages.hit=\u0425\u0438\u0442\u0441\u043a\u0438
-languages.uk=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438
-languages.cpf=\u041a\u0440\u0435\u043e\u043b\u0441\u043a\u0438, \u043e\u0442 \u0444\u0440\u0435\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.fiu=\u0423\u0433\u0440\u043e\u0444\u0438\u043d\u0441\u043a\u0430  (\u0434\u0440\u0443\u0433\u0438)
-languages.und=\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d
-languages.hy=\u0410\u0440\u043c\u0435\u043d\u0441\u043a\u0438
-languages.cpe=\u041a\u0440\u0435\u043e\u043b\u0441\u043a\u0438, \u043e\u0442 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.nub=\u041d\u0443\u0431\u0438\u0439\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
-languages.got=\u0413\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438
-languages.phn=\u0424\u0438\u043d\u0438\u043a\u0438\u0439\u0441\u043a\u0438
-languages.hu=\u0423\u043d\u0433\u0430\u0440\u0441\u043a\u0438
-languages.ht=\u0425\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438
-languages.hr=\u0425\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438
-languages.phi=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ty=\u0422\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438
-languages.apa=\u0415\u0437\u0438\u0446\u0438 \u043d\u0430 \u0430\u043f\u0430\u0445\u0438\u0442\u0435
-languages.goh=\u041d\u0435\u043c\u0441\u043a\u0438 (750-1050)
-languages.tt=\u0422\u0430\u0442\u0430\u0440\u0441\u043a\u0438
-languages.hi=\u0425\u0438\u043d\u0434\u0438
-languages.tr=\u0422\u0443\u0440\u0441\u043a\u0438
-languages.he=\u0418\u0432\u0440\u0438\u0442
-languages.sai=\u042e\u0436\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.sah=\u042f\u043a\u0443\u0442\u0441\u043a\u0438
-languages.tk=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u043a\u0438
-languages.dum=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438, \u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d (1050-1350)
-languages.th=\u0422\u0430\u0438
-languages.tg=\u0422\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438
-languages.te=\u0422\u0435\u043b\u0443\u0433\u0443
+languages.akk=\u0430\u043a\u0430\u0434\u0441\u043a\u0438
+languages.eka=\u0435\u043a\u0430\u0436\u0443\u043a
+languages.ijo=\u0438\u0434\u0436\u043e
+languages.xh=\u043a\u0441\u043e\u0441\u0430
+languages.sux=\u0448\u0443\u043c\u0435\u0440\u0441\u043a\u0438
+languages.mis=\u0434\u0440\u0443\u0433\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.wo=\u0432\u043e\u043b\u043e\u0444
+languages.kut=\u043a\u0443\u0442\u0435\u043d\u0430\u0439
+languages.kum=\u043a\u0443\u043c\u0438\u043a\u0441\u043a\u0438
+languages.ain=\u0430\u0439\u043d\u0443
+languages.cus=\u043a\u0443\u0448\u0438\u0442\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.jbo=\u043b\u043e\u0434\u0436\u0431\u0430\u043d
+languages.doi=\u0434\u043e\u0433\u0440\u0438
+languages.oto=\u0441\u0442\u0430\u0440\u043e\u0442\u0443\u0440\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.vi=\u0432\u0438\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438
+languages.raj=\u0440\u0430\u0434\u0436\u0430\u0441\u0442\u0430\u043d\u0441\u043a\u0438
+languages.ota=\u043e\u0442\u043e\u043c\u0430\u043d\u0441\u043a\u0438 \u0442\u0443\u0440\u0441\u043a\u0438
+languages.nap=\u043d\u0435\u0430\u043f\u043e\u043b\u0438\u0442\u0430\u043d\u0441\u043a\u0438
+languages.uz=\u0443\u0437\u0431\u0435\u043a\u0441\u043a\u0438
+languages.nai=\u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438
+languages.ur=\u0443\u0440\u0434\u0443
+languages.fat=\u0424\u0430\u043d\u0442\u0438
+languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438
+languages.egy=\u0435\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0438
+languages.ug=\u0443\u0439\u0433\u0443\u0440\u0441\u043a\u0438
+languages.fan=\u0424\u0430\u043d\u0433
+languages.mga=\u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d \u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.bat=\u0431\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438
+languages.bas=\u0431\u0430\u0441\u0430
+languages.hmn=\u0445\u043c\u043e\u043d\u0433
+languages.ban=\u0431\u0430\u043b\u0438\u043d\u0435\u0439\u0441\u043a\u0438
+languages.bal=\u0431\u0430\u043b\u0443\u0447\u0438
+languages.ty=\u0442\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438
+languages.bai=\u0431\u0430\u043c\u0438\u043a\u0435\u043b\u0435
+languages.tw=\u0442\u0443\u0438
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d
+languages.tt=\u0442\u0430\u0442\u0430\u0440\u0441\u043a\u0438
+languages.bad=\u0431\u0430\u043d\u0434\u0430
+languages.tr=\u0442\u0443\u0440\u0441\u043a\u0438
+languages.tl=\u0442\u0430\u0433\u0430\u043b\u043e\u0433
+languages.tk=\u0442\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u043a\u0438
+languages.ti=\u0442\u0438\u0433\u0440\u0438\u043d\u044f
+languages.th=\u0442\u0430\u0438
+languages.kru=\u041a\u0443\u0440\u0443\u043a
+languages.tg=\u0442\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438
+languages.byn=\u0431\u0438\u043b\u0435\u043d\u0441\u043a\u0438
+languages.te=\u0442\u0435\u043b\u0443\u0433\u0443
+languages.kro=\u041a\u0440\u0443
+languages.csb=\u043a\u0430\u0448\u0443\u0431\u0441\u043a\u0438
+languages.ta=\u0442\u0430\u043c\u0438\u043b\u0441\u043a\u0438
+languages.efi=\u0435\u0444\u0438\u043a
+languages.sw=\u0441\u0443\u0430\u0445\u0438\u043b\u0438
+languages.sv=\u0448\u0432\u0435\u0434\u0441\u043a\u0438
+languages.su=\u0441\u0443\u043d\u0434\u0430\u043d\u0441\u043a\u0438
+languages.krc=\u043a\u0430\u0440\u0430\u0447\u0430\u0439-\u0431\u0430\u043b\u043a\u0430\u0440\u0441\u043a\u0438
+languages.st=\u0441\u0435\u0441\u0443\u0442\u043e
+languages.ss=\u0441\u0443\u0430\u0437\u0438
+languages.sr=\u0441\u0440\u044a\u0431\u0441\u043a\u0438
+languages.sq=\u0430\u043b\u0431\u0430\u043d\u0441\u043a\u0438
+languages.crp=\u043a\u0440\u0435\u043e\u043b\u0441\u043a\u0438
+languages.so=\u0441\u043e\u043c\u0430\u043b\u0438\u0439\u0441\u043a\u0438
+languages.afh=\u0430\u0444\u0440\u0438\u0445\u0438\u043b\u0438
+languages.sm=\u0441\u0430\u043c\u043e\u0430\u043d\u0441\u043a\u0438
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438
+languages.grc=\u0434\u0440\u0435\u0432\u043d\u043e\u0433\u0440\u044a\u0446\u043a\u0438
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u0448\u043a\u0438
+languages.grb=\u0433\u0440\u0435\u0431\u043e
+languages.si=\u0441\u0438\u043d\u0445\u0430\u043b\u0441\u043a\u0438
+languages.sh=\u0441\u044a\u0440\u0431\u043e\u0445\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.crh=\u043a\u0440\u0438\u043c\u0441\u043a\u043e\u0442\u0430\u0442\u0430\u0440\u0441\u043a\u0438
+languages.afa=\u0430\u0444\u0440\u043e-\u0430\u0437\u0438\u0430\u0442\u0441\u043a\u0438
+languages.sg=\u0441\u0430\u043d\u0433\u043e
+languages.sd=\u0441\u0438\u043d\u0434\u0445\u0438
+languages.sc=\u0441\u0430\u0440\u0434\u0438\u043d\u0441\u043a\u0438
+languages.sa=\u0441\u0430\u043d\u043a\u0441\u043a\u0440\u0438\u0442\u0441\u043a\u0438
+languages.rw=\u043a\u0438\u043d\u044f\u0440\u0443\u0430\u043d\u0434\u0430
+languages.ru=\u0440\u0443\u0441\u043a\u0438
+languages.ro=\u0440\u0443\u043c\u044a\u043d\u0441\u043a\u0438
+languages.rn=\u0440\u0443\u043d\u0434\u0438
+languages.rm=\u0440\u0435\u0442\u043e\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438
+languages.ady=\u0430\u0434\u0438\u0433\u0435
+languages.kpe=\u043a\u043f\u0435\u043b\u0435
+languages.qu=\u043a\u0435\u0447\u0443\u0430
+languages.cpp=\u043a\u0440\u0435\u043e\u043b\u0441\u043a\u0438 \u0438\u043b\u0438 \u043f\u0438\u0434\u0436\u0438\u043d \u043e\u0442 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
+languages.ada=\u0430\u0434\u0430\u043d\u0433\u043c\u0435
+languages.hit=\u0445\u0438\u0442\u0441\u043a\u0438
+languages.cpf=\u043a\u0440\u0435\u043e\u043b\u0441\u043a\u0438 \u0438 \u043f\u0438\u0434\u0436\u0438\u043d \u043e\u0442 \u0444\u0440\u0435\u043d\u0441\u043a\u0438
+languages.cpe=\u043a\u0440\u0435\u043e\u043b\u0441\u043a\u0438, \u043e\u0442 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.him=\u0445\u0438\u043c\u0430\u0447\u0430\u043b\u0438
+languages.kok=\u043a\u043e\u043d\u043a\u0430\u043d\u0438
+languages.hil=\u0445\u0438\u043b\u0438\u0433\u0430\u0439\u043d\u043e\u043d
+languages.got=\u0433\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438
+languages.gor=\u0433\u043e\u0440\u043e\u043d\u0442\u0430\u043b\u043e
+languages.gon=\u0433\u043e\u043d\u0434\u0438
+languages.din=\u0414\u0438\u043d\u043a\u0430
+languages.nub=\u043d\u0443\u0431\u0438\u0439\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
+languages.fur=\u0424\u0440\u0438\u0443\u043b\u0438\u0430\u043d\u0441\u043a\u0438
+languages.ps=\u043f\u0443\u0449\u0443
+languages.phn=\u0444\u0438\u043d\u0438\u043a\u0438\u0439\u0441\u043a\u0438
+languages.goh=\u0441\u0442\u0430\u0440\u043e\u0432\u0438\u0441\u043e\u043a\u043e\u043d\u0435\u043c\u0441\u043a\u0438
+languages.cop=\u043a\u043e\u043f\u0442\u0441\u043a\u0438
+languages.ach=\u0430\u043a\u043e\u043b\u0438
+languages.phi=\u0444\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438
+languages.ace=\u0430\u0447\u0438\u043d\u0441\u043a\u0438
+languages.pl=\u043f\u043e\u043b\u0441\u043a\u0438
+languages.pa=\u043f\u0435\u043d\u0434\u0436\u0430\u0431\u0441\u043a\u0438
+languages.bug=\u0431\u0443\u0433\u0438\u043d\u0441\u043a\u0438
+languages.iba=\u0438\u0431\u0430\u043d
+languages.bua=\u0431\u0443\u0440\u044f\u0442\u0441\u043a\u0438
 languages.mas=\u043c\u0430\u0441\u0430\u0439\u0441\u043a\u0438
-languages.ta=\u0422\u0430\u043c\u0438\u043b\u0441\u043a\u0438
-languages.syr=\u0421\u0438\u0440\u0438\u0439\u0441\u043a\u0438
-languages.gu=\u0413\u0443\u0434\u0436\u0430\u0440\u0430\u0442\u0438
-languages.ine=\u0418\u043d\u0434\u043e-\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.inc=\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.sw=\u0421\u0443\u0430\u0445\u0438\u043b\u0438
-languages.sv=\u0428\u0432\u0435\u0434\u0441\u043a\u0438
-languages.st=\u0421\u0435\u0441\u0443\u0442\u043e
-languages.enm=\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 (1100-1500)
-languages.ss=\u0421\u0443\u0430\u0437\u0438
-languages.sr=\u0421\u0440\u044a\u0431\u0441\u043a\u0438
-languages.sq=\u0410\u043b\u0431\u0430\u043d\u0441\u043a\u0438
-languages.so=\u0421\u043e\u043c\u0430\u043b\u0438\u0439\u0441\u043a\u0438
-languages.gd=\u0428\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0430\u043b\u0441\u043a\u0438
-languages.sm=\u0421\u0430\u043c\u043e\u0430\u043d\u0441\u043a\u0438
-languages.sl=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438
-languages.ga=\u0418\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438
-languages.sk=\u0421\u043b\u043e\u0432\u0430\u0448\u043a\u0438
-languages.si=\u0421\u0438\u043d\u0445\u0430\u043b\u0441\u043a\u0438
-languages.sh=\u0421\u044a\u0440\u0431\u043e\u0445\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438
-languages.sg=\u0421\u0430\u043d\u0433\u043e
-languages.sc=\u0421\u0430\u0440\u0434\u0438\u043d\u0441\u043a\u0438
-languages.sa=\u0421\u0430\u043d\u043a\u0441\u043a\u0440\u0438\u0442\u0441\u043a\u0438
-languages.cau=\u041a\u0430\u0432\u043a\u0430\u0437\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ang=\u0421\u0442\u0430\u0440\u043e\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 (ca.450-1100)
-languages.fr=\u0424\u0440\u0435\u043d\u0441\u043a\u0438
-languages.car=\u041a\u0430\u0440\u0438\u0431\u0441\u043a\u0438
-languages.sla=\u0421\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.pro=\u041f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u0441\u043a\u0438 (to 1500)
-languages.rw=\u041a\u0438\u043d\u044f\u0440\u0443\u0430\u043d\u0434\u0430
-languages.gmh=\u041d\u0435\u043c\u0441\u043a\u0438 (1050-1500)
-languages.ru=\u0420\u0443\u0441\u043a\u0438
-languages.fi=\u0424\u0438\u043d\u0441\u043a\u0438
-languages.cai=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ro=\u0420\u0443\u043c\u044a\u043d\u0441\u043a\u0438
-languages.rn=\u0420\u0443\u043d\u0434\u0438
-languages.rm=\u0420\u0435\u0442\u043e\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438
-languages.fa=\u041f\u0435\u0440\u0441\u0438\u0439\u0441\u043a\u0438
-languages.peo=\u0421\u0442\u0430\u0440\u043e\u043f\u0435\u0440\u0441\u0438\u0439\u0441\u043a\u0438 (600-400 \u043f\u0440.\u043d.\u0435.)
-languages.eu=\u0411\u0430\u0441\u043a\u0438
-languages.et=\u0415\u0441\u0442\u043e\u043d\u0441\u043a\u0438
-languages.es=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438
-languages.eo=\u0415\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
-languages.en=\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
-languages.el=\u0413\u0440\u044a\u0446\u043a\u0438
+languages.os=\u043e\u0441\u0435\u0442\u0441\u043a\u0438
+languages.or=\u043e\u0440\u0438\u044f
+languages.btk=\u0431\u0430\u0442\u0430\u043a
+languages.oc=\u043e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438
+languages.dgr=\u0434\u043e\u0433\u0440\u0438\u0431
+languages.ny=\u0447\u0438\u043d\u044f\u043d\u0434\u0436\u0430
+languages.kmb=\u043a\u0438\u043c\u0431\u0443\u043d\u0434\u0443
+languages.gmh=\u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d \u043d\u0435\u043c\u0441\u043a\u0438
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0436\u043a\u0438
+languages.nn=\u0441\u044a\u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043d \u043d\u043e\u0440\u0432\u0435\u0436\u043a\u0438
+languages.nl=\u0445\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.sla=\u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438
+languages.ne=\u043d\u0435\u043f\u0430\u043b\u0441\u043a\u0438
+languages.cmc=\u0447\u0430\u043c\u0441\u043a\u0438
+languages.my=\u0431\u0438\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.mt=\u043c\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438
+languages.peo=\u0441\u0442\u0430\u0440\u043e\u043f\u0435\u0440\u0441\u0438\u0439\u0441\u043a\u0438
+languages.ms=\u043c\u0430\u043b\u0430\u0439\u0441\u043a\u0438
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0445\u0438
+languages.fro=\u0441\u0442\u0430\u0440\u043e\u0444\u0440\u0435\u043d\u0441\u043a\u0438
+languages.mo=\u043c\u043e\u043b\u0434\u043e\u0432\u0441\u043a\u0438
+languages.frm=\u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d \u0444\u0440\u0435\u043d\u0441\u043a\u0438
+languages.mn=\u043c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438
 languages.jrb=\u0435\u0432\u0440\u0435\u0439\u0441\u043a\u043e-\u0430\u0440\u0430\u0431\u0441\u043a\u0438
-languages.qu=\u041a\u0435\u0447\u0443\u0430
-languages.fro=\u0424\u0440\u0435\u043d\u0441\u043a\u0438 (842-1400)
-languages.frm=\u0424\u0440\u0435\u043d\u0441\u043a\u0438 (1400-1600)
-languages.dv=\u0414\u0438\u0432\u0435\u0445\u0438
-languages.ale=\u0410\u043b\u0435\u0443\u0442\u0441\u043a\u0438
-languages.den=\u0421\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438
-languages.ber=\u0431\u0435\u0440\u0431\u0435\u0440\u0441\u043a\u0438
-languages.pt=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
-languages.ps=\u041f\u0443\u0449\u0443
-languages.de=\u041d\u0435\u043c\u0441\u043a\u0438
-languages.da=\u0414\u0430\u0442\u0441\u043a\u0438
-languages.pl=\u041f\u043e\u043b\u0441\u043a\u0438
-languages.sux=\u0428\u0443\u043c\u0435\u0440\u0441\u043a\u0438
+languages.ml=\u043c\u0430\u043b\u0430\u044f\u043b\u0430\u043c
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438
+languages.mi=\u043c\u0430\u043e\u0440\u0441\u043a\u0438
+languages.mg=\u043c\u0430\u043b\u0433\u0430\u0448\u043a\u0438
+languages.bra=\u0431\u0440\u0430\u0434\u0436
+languages.den=\u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438
+languages.lv=\u043b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0438
+languages.del=\u0414\u0435\u043b\u0430\u0443\u0435\u0440
+languages.lt=\u043b\u0438\u0442\u043e\u0432\u0441\u043a\u0438
+languages.lo=\u043b\u0430\u043e\u0441\u043a\u0438
+languages.ln=\u043b\u0438\u043d\u0433\u0430\u043b\u0430
+languages.ewo=\u0435\u0432\u043e\u043d\u0434\u043e
+languages.lb=\u043b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0441\u043a\u0438
+languages.la=\u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438
 languages.jpr=\u0435\u0432\u0440\u0435\u0439\u0441\u043a\u043e-\u043f\u0435\u0440\u0441\u0438\u0439\u0441\u043a\u0438
-languages.cy=\u0423\u0435\u043b\u0441\u043a\u0438
-languages.cu=\u0426\u044a\u0440\u043a\u043e\u0432\u043d\u043e \u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438
-languages.pa=\u041f\u0435\u043d\u0434\u0436\u0430\u0431\u0441\u043a\u0438
-languages.cs=\u0427\u0435\u0448\u043a\u0438
-languages.co=\u041a\u043e\u0440\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438
-languages.mis=\u0414\u0440\u0443\u0433\u0438 \u0435\u0437\u0438\u0446\u0438
-languages.os=\u041e\u0441\u0435\u0442\u0441\u043a\u0438
-languages.roa=\u0420\u043e\u043c\u0430\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ce=\u0427\u0435\u0447\u0435\u043d\u0441\u043a\u0438
-languages.ca=\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438
-languages.bs=\u0411\u043e\u0441\u043d\u0435\u043d\u0441\u043a\u0438
-languages.br=\u0411\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438
-languages.bo=\u0422\u0438\u0431\u0435\u0442\u0441\u043a\u0438
-languages.bn=\u0411\u0435\u043d\u0433\u0430\u043b\u0441\u043a\u0438
-languages.ny=\u0427\u0438\u043d\u044f\u043d\u0434\u0436\u0430
-languages.bg=\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438
-languages.be=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0438
-languages.no=\u041d\u043e\u0440\u0432\u0435\u0436\u043a\u0438
-languages.oto=\u0421\u0442\u0430\u0440\u043e\u0442\u0443\u0440\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
-languages.tai=\u0422\u0430\u0439\u043b\u0430\u043d\u0434\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ba=\u0411\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u0438
-languages.nl=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438
-languages.zu=\u0417\u0443\u043b\u0443\u0441\u043a\u0438
-languages.az=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438
-languages.raj=\u0420\u0430\u0434\u0436\u0430\u0441\u0442\u0430\u043d\u0441\u043a\u0438
-languages.ay=\u0410\u0439\u043c\u0430\u0440\u0430
-languages.ne=\u041d\u0435\u043f\u0430\u043b\u0441\u043a\u0438
-languages.av=\u0410\u0432\u0430\u0440\u0441\u043a\u0438
-languages.aus=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
-languages.ota=\u0422\u0443\u0440\u0441\u043a\u0438, \u043e\u0442\u043e\u043c\u0430\u043d\u0441\u043a\u0438 (1500-1928)
-languages.ar=\u0410\u0440\u0430\u0431\u0441\u043a\u0438
-languages.nap=\u041d\u0435\u0430\u043f\u043e\u043b\u0438\u0442\u0430\u043d\u0441\u043a\u0438
-languages.zh=\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438
-languages.sga=\u0421\u0442\u0430\u0440\u043e\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438 (\u0434\u043e 900)
-languages.my=\u0411\u0438\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.ky=\u043a\u0438\u0440\u0433\u0438\u0437\u0441\u043a\u0438
+languages.kw=\u043a\u043e\u0440\u043d\u0443\u043e\u043b\u0441\u043a\u0438 \u043a\u0435\u043b\u0442\u0441\u043a\u0438
+languages.kv=\u041a\u043e\u043c\u0438
+languages.ku=\u043a\u044e\u0440\u0434\u0441\u043a\u0438
+languages.ks=\u043a\u0430\u0448\u043c\u0438\u0440\u0441\u043a\u0438
+languages.kr=\u043a\u0430\u043d\u0443\u0440\u0438
+languages.awa=\u0430\u0432\u0430\u0434\u0438
+languages.ko=\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.km=\u043a\u0445\u043c\u0435\u0440\u0441\u043a\u0438
+languages.en_GB=\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 (\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f)
+languages.kl=\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0435\u0441\u043a\u0438\u043c\u043e\u0441\u043a\u0438
+languages.kk=\u043a\u0430\u0437\u0430\u0445\u0441\u043a\u0438
+languages.kj=\u041a\u0432\u0430\u043d\u044f\u043c\u0430
+languages.rom=\u0446\u0438\u0433\u0430\u043d\u0441\u043a\u0438 \u0435\u0437\u0438\u043a
+languages.ki=\u043a\u0438\u043a\u0443\u0439\u0443
+languages.kg=\u043a\u043e\u043d\u0433\u043e\u0430\u043d\u0441\u043a\u0438
+languages.ka=\u0433\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438
+languages.roa=\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438
+languages.jv=\u044f\u0432\u0430\u043d\u0441\u043a\u0438
+languages.gil=\u0413\u0438\u043b\u0431\u0435\u0440\u0442\u0441\u043a\u0438
+languages.fon=\u0424\u043e\u043d
+languages.aus=\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.kho=\u043a\u043e\u0442\u0441\u043a\u0438
+languages.ja=\u044f\u043f\u043e\u043d\u0441\u043a\u0438
+languages.khi=\u0435\u0437\u0438\u0446\u0438 \u043a\u043e\u0438\u0441\u0430\u043d
 languages.chy=\u0447\u0435\u0439\u0435\u043d\u0441\u043a\u0438
-languages.am=\u0410\u043c\u0445\u0430\u0440\u0441\u043a\u0438
-languages.nai=\u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.paa=\u041f\u0430\u043f\u0443\u0430\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.mt=\u041c\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438
-languages.ms=\u041c\u0430\u043b\u0430\u0439\u0441\u043a\u0438
+languages.tai=\u0442\u0430\u0439\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.iu=\u0438\u043d\u0443\u043a\u0442\u0438\u0442\u0443\u0442
+languages.it=\u0438\u0442\u0430\u043b\u0438\u0430\u043d\u0441\u043a\u0438
+languages.sgn=\u0436\u0435\u0441\u0442\u043e\u043c\u0438\u043c\u0438\u0447\u0435\u043d \u0435\u0437\u0438\u043a
+languages.is=\u0438\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.kha=\u043a\u0445\u0430\u0441\u0438
 languages.chr=\u0447\u0435\u0440\u043e\u043a\u0438
-languages.af=\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441
-languages.mo=\u041c\u043e\u043b\u0434\u043e\u0432\u0441\u043a\u0438
-languages.haw=\u0425\u0430\u0432\u0430\u0439\u0441\u043a\u0438
-languages.mn=\u041c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438
-languages.ab=\u0410\u0431\u043a\u0445\u0430\u0437\u0441\u043a\u0438
-languages.ml=\u041c\u0430\u043b\u0430\u0439\u0441\u043a\u0438
-languages.mk=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438
-languages.bnt=\u0411\u0430\u043d\u0442\u0443
-languages.mi=\u041c\u0430\u043e\u0440\u0441\u043a\u0438
-languages.mg=\u041c\u0430\u043b\u0433\u0430\u0448\u043a\u0438
-languages.mga=\u0418\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438 (900-1200)
-languages.egy=\u0415\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0438 (\u0434\u0440\u0435\u0432\u0435\u043d)
-languages.lv=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0438
-languages.bat=\u041f\u0440\u0438\u0431\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.lt=\u041b\u0438\u0442\u043e\u0432\u0441\u043a\u0438
-languages.lo=\u041b\u0430\u043e\u0441\u043a\u0438
-languages.sem=\u0421\u0435\u043c\u0438\u0442\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
+languages.chp=\u0427\u0438\u0438\u043f\u0443\u0432\u0441\u043a\u0438
+languages.io=\u0438\u0434\u043e
+languages.cho=\u0447\u043e\u043a\u0442\u043e
+languages.chn=\u0436\u0430\u0440\u0433\u043e\u043d \u0447\u0438\u043d\u0443\u0443\u043a
+languages.chm=\u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438
+languages.bnt=\u0431\u0430\u043d\u0442\u0443
+languages.ik=\u0438\u043d\u0443\u043f\u0438\u0430\u043a
+languages.chk=\u0447\u0443\u0443\u043a
+languages.haw=\u0445\u0430\u0432\u0430\u0439\u0441\u043a\u0438
+languages.ig=\u0438\u0433\u0431\u043e
+languages.chg=\u0447\u0430\u0433\u0430\u0442\u0430\u0439
+languages.sga=\u0441\u0442\u0430\u0440\u043e\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.ie=\u043e\u043a\u0441\u0438\u0434\u0435\u043d\u0442\u0430\u043b
+languages.paa=\u043f\u0430\u043f\u0443\u0430\u0441\u043a\u0438
+languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0438
+languages.day=\u0414\u0430\u044f\u043a\u0441\u043a\u0438
+languages.chb=\u0447\u0438\u0431\u0447\u0430
+languages.ia=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0430
+languages.hz=\u0445\u0435\u0440\u0435\u0440\u043e
+languages.hai=\u0445\u0430\u0439\u0434\u0430
+languages.dar=\u0434\u0430\u0440\u0433\u0432\u0430
+languages.hy=\u0430\u0440\u043c\u0435\u043d\u0441\u043a\u0438
+languages.ath=\u0430\u0442\u0430\u0431\u0430\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.hu=\u0443\u043d\u0433\u0430\u0440\u0441\u043a\u0438
+languages.ht=\u0445\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438
+languages.dak=\u0434\u0430\u043a\u043e\u0442\u0441\u043a\u0438
+languages.hr=\u0445\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.ho=\u0445\u0438\u0440\u0438 \u043c\u043e\u0442\u0443
+languages.hi=\u0445\u0438\u043d\u0434\u0438
+languages.dyu=\u0434\u0438\u0443\u043b\u0430
+languages.he=\u0438\u0432\u0440\u0438\u0442
+languages.ast=\u0430\u0441\u0442\u0443\u0440\u0441\u043a\u0438
+languages.ha=\u0445\u0430\u0443\u0437\u0430
+languages.gv=\u043c\u0430\u043d\u043a\u0441\u043a\u0438
+languages.gu=\u0433\u0443\u0434\u0436\u0430\u0440\u0430\u0442\u0438
+languages.sem=\u0441\u0435\u043c\u0438\u0442\u0441\u043a\u0438
+languages.iro=\u0418\u0440\u043e\u043a\u0432\u0438\u0430\u043d\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0438
+languages.gl=\u0433\u0430\u043b\u0438\u0441\u0438\u0439\u0441\u043a\u0438
+languages.arw=\u0430\u0440\u0430\u0432\u0430\u043a
+languages.gez=\u0413\u0438\u0438\u0437
+languages.art=\u0438\u0437\u043a\u0443\u0441\u0442\u0432\u0435\u043d
+languages.gd=\u0448\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0430\u043b\u0441\u043a\u0438
+languages.ira=\u0438\u0440\u0430\u043d\u0441\u043a\u0438
+languages.ga=\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.arp=\u0430\u0440\u0430\u043f\u0430\u0445\u043e
+languages.arn=\u043c\u0430\u043f\u0443\u0447\u0435
+languages.fy=\u0444\u0440\u0438\u0437\u0438\u0439\u0441\u043a\u0438
+languages.bla=\u0441\u0438\u043a\u0441\u0438\u043a\u0430
+languages.gem=\u0433\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.arc=\u0430\u0440\u0430\u043c\u0435\u0439\u0441\u043a\u0438
+languages.fr=\u0444\u0440\u0435\u043d\u0441\u043a\u0438
+languages.fo=\u0424\u0430\u0440\u044c\u043e\u0440\u0441\u043a\u0438
+languages.cel=\u043a\u0435\u043b\u0442\u0441\u043a\u0438
+languages.fj=\u0424\u0438\u0434\u0436\u0438\u0439\u0441\u043a\u0438
+languages.fi=\u0444\u0438\u043d\u0441\u043a\u0438
+languages.ff=\u0424\u0443\u043b\u0430
+languages.ceb=\u0441\u0435\u0431\u0443\u0430\u043d\u043e
+languages.fa=\u043f\u0435\u0440\u0441\u0438\u0439\u0441\u043a\u0438
+languages.en_AU=\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.zh_Hans=\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438 (\u043e\u043f\u0440\u043e\u0441\u0442\u0435\u043d)
+languages.zh_Hant=\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438 (\u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u0435\u043d)
+languages.eu=\u0435\u0437\u0438\u043a \u043d\u0430 \u0431\u0430\u0441\u043a\u0438\u0442\u0435
+languages.et=\u0435\u0441\u0442\u043e\u043d\u0441\u043a\u0438
+languages.scn=\u0441\u0438\u0446\u0438\u043b\u0438\u0430\u043d\u0441\u043a\u0438
+languages.es=\u0438\u0441\u043f\u0430\u043d\u0441\u043a\u0438
+languages.eo=\u0435\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.el=\u0433\u0440\u044a\u0446\u043a\u0438
+languages.tut=\u0430\u043b\u0442\u0430\u0439\u0441\u043a\u0438
+languages.ee=\u0435\u0443\u0435
+languages.nl_BE=\u0444\u043b\u0430\u043c\u0430\u043d\u0434\u0441\u043a\u0438
+languages.dz=\u0434\u0437\u043e\u043d\u0445\u0430
+languages.fiu=\u0443\u0433\u0440\u043e\u0444\u0438\u043d\u0441\u043a\u0438
+languages.dv=\u0434\u0438\u0432\u0435\u0445\u0438
+languages.apa=\u0435\u0437\u0438\u0446\u0438 \u043d\u0430 \u0430\u043f\u0430\u0445\u0438\u0442\u0435
+languages.fil=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438
+languages.hup=\u0445\u0443\u043f\u0430
+languages.bin=\u0431\u0438\u043d\u0438
+languages.de=\u043d\u0435\u043c\u0441\u043a\u0438
+languages.bik=\u0431\u0438\u043a\u043e\u043b\u0441\u043a\u0438
+languages.und=\u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d
+languages.da=\u0434\u0430\u0442\u0441\u043a\u0438
+languages.dum=\u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d \u0445\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.cy=\u0443\u0435\u043b\u0441\u043a\u0438
+languages.kbd=\u043a\u0430\u0431\u0430\u0440\u0434\u0438\u0430\u043d
+languages.cv=\u0447\u0443\u0432\u0430\u0448\u043a\u0438
+languages.cu=\u0446\u044a\u0440\u043a\u043e\u0432\u043d\u043e \u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438
+languages.cs=\u0447\u0435\u0448\u043a\u0438
+languages.cr=\u043a\u0440\u0438\u0438
+languages.dua=\u0434\u0443\u0430\u043b\u0430
+languages.co=\u043a\u043e\u0440\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438
+languages.sai=\u044e\u0436\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438
+languages.sah=\u044f\u043a\u0443\u0442\u0441\u043a\u0438
+languages.kaw=\u043a\u0430\u0432\u0438
+languages.inh=\u0438\u043d\u0433\u0443\u0448\u0435\u0442\u0441\u043a\u0438
+languages.gba=\u0433\u0431\u0430\u044f
+languages.ch=\u0447\u0430\u043c\u043e\u0440\u043e
+languages.ine=\u0438\u043d\u0434\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438
+languages.bho=\u0431\u043e\u0436\u043f\u0443\u0440\u0438
+languages.enm=\u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.kar=\u043a\u0430\u0440\u0435\u043d\u0441\u043a\u0438
+languages.inc=\u0438\u043d\u0434\u0438\u0439\u0441\u043a\u0430 \u0433\u0440\u0443\u043f\u0430
+languages.ce=\u0447\u0435\u0447\u0435\u043d\u0441\u043a\u0438
+languages.gay=\u0433\u0430\u0439\u043e
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438
+languages.syr=\u0441\u0438\u0440\u0438\u0439\u0441\u043a\u0438
+languages.kam=\u043a\u0430\u043c\u0431\u0430
+languages.ang=\u0441\u0442\u0430\u0440\u043e\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.kac=\u041a\u0430\u0447\u0438\u043d\u0441\u043a\u0438
+languages.cau=\u043a\u0430\u0432\u043a\u0430\u0437\u0441\u043a\u0438
+languages.kab=\u043a\u0430\u0431\u0438\u043b\u0441\u043a\u0438
+languages.kaa=\u041a\u0430\u0440\u0430\u043a\u0430\u043b\u043f\u0430\u0448\u043a\u0438
+languages.bs=\u0431\u043e\u0441\u043d\u0435\u043d\u0441\u043a\u0438
+languages.car=\u043a\u0430\u0440\u0438\u0431\u0441\u043a\u0438
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438
+languages.bo=\u0442\u0438\u0431\u0435\u0442\u0441\u043a\u0438
+languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b\u0441\u043a\u0438
+languages.bm=\u0431\u0430\u043c\u0431\u0430\u0440\u0430
+languages.gaa=\u0433\u0430
+languages.cai=\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438
+languages.bi=\u0431\u0438\u0441\u043b\u0430\u043c\u0430
+languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438
+languages.bg=\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438
+languages.be=\u0431\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0438
+languages.cad=\u043a\u0430\u0434\u0434\u043e
+languages.ba=\u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u0438
+languages.zu=\u0437\u0443\u043b\u0443\u0441\u043a\u0438
+languages.pro=\u043f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u0441\u043a\u0438
+languages.hsb=\u0413\u043e\u0440\u043d\u043e\u0441\u0435\u0440\u0431\u0441\u043a\u0438
+languages.az=\u0430\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438
+languages.ay=\u0430\u0439\u043c\u0430\u0440\u0430
+languages.av=\u0430\u0432\u0430\u0440\u0441\u043a\u0438
+languages.as=\u0430\u0441\u0430\u043c\u0441\u043a\u0438
+languages.dsb=\u0414\u043e\u043b\u043d\u043e\u0441\u0435\u0440\u0431\u0441\u043a\u0438
+languages.ar=\u0430\u0440\u0430\u0431\u0441\u043a\u0438
+languages.ilo=\u0438\u043b\u043e\u043a\u043e
+languages.elx=\u0435\u043b\u0430\u043c\u0438\u0442\u0441\u043a\u0438
+languages.zh=\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438
+languages.an=\u0430\u0440\u0430\u0433\u043e\u043d\u0441\u043a\u0438
+languages.am=\u0430\u043c\u0445\u0430\u0440\u0441\u043a\u0438
+languages.ak=\u0430\u043a\u0430\u043d
+languages.en_US=\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.af=\u0430\u0444\u0440\u0438\u043a\u0430\u0430\u043d\u0441
+languages.ae=\u0430\u0432\u0435\u0441\u0442\u0441\u043a\u0438
+languages.alt=\u044e\u0436\u043d\u043e\u0430\u043b\u0442\u0430\u0439\u0441\u043a\u0438
+languages.ab=\u0430\u0431\u0445\u0430\u0437\u0441\u043a\u0438
+languages.aa=\u0430\u0444\u0430\u0440
+languages.alg=\u0430\u043b\u0433\u043e\u043d\u043a\u0432\u0438\u043d
+languages.ale=\u0430\u043b\u0435\u0443\u0442\u0441\u043a\u0438
+languages.yi=\u0438\u0434\u0438\u0448
+languages.dra=\u0434\u0440\u0430\u0432\u0438\u0434\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.ber=\u0431\u0435\u0440\u0431\u0435\u0440\u0441\u043a\u0438
+languages.bem=\u0431\u0435\u043c\u0431\u0430
+languages.bej=\u0431\u0435\u044f
index 9f0d5c34906404666028b7a25b3b0b2cfd4cec21..41b3c9e3054faaf308e86b285c8c2ac1881f07d2 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+minusSign=-
+zeroDigit=\u09e6
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##,##0%
+currencyFormat=#,##,##0.00\u00a4;(#,##,##0.00\u00a4)
+currenciesDisplayName.YDD=\u0987\u09af\u09bc\u09c7\u09ae\u09c7\u09a8\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.KES=\u0995\u09c7\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09b6\u09bf\u09b2\u09bf\u0982
+currenciesDisplayName.TWD=\u09a8\u09c2\u09a4\u09a8 \u09a4\u09be\u0987\u0993\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09af\u09be\u09b0\u09be\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.LKR=\u09b6\u09cd\u09b0\u09c0\u09b2\u0999\u09cd\u0995\u09be\u09a8 \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.BYB=\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09a8\u09bf\u0989 \u09b0\u09c1\u09ac\u09c7\u09b2 (\u09e7\u09ef\u09ef\u09ea-\u09e7\u09ef\u09ef\u09ef)
+currenciesDisplayName.TJS=\u09a4\u09be\u099c\u09bf\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8 \u09b8\u09cb\u09ae\u09cb\u09a8\u09bf
+currenciesDisplayName.RWF=\u09b0\u09c1\u09af\u09bc\u09be\u09a8\u09cd\u09a1\u09be\u09a8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.TJR=\u09a4\u09be\u099c\u09bf\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8 \u09b0\u09c1\u09ac\u09b2
+currenciesDisplayName.SDP=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09b8\u09c1\u09a6\u09be\u09a8\u09bf \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.GRD=\u0997\u09cd\u09b0\u09c0\u0995 \u09a6\u09cd\u09b0\u09be\u099a\u09ae\u09be
+currenciesDisplayName.AFN=\u0986\u09ab\u0997\u09be\u09a8\u09bf
+currenciesDisplayName.IEP=\u0987\u09b0\u09bf\u09b6 \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.ARS=\u0986\u09b0\u09cd\u099c\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09be \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.SDG=\u09b8\u09c1\u09a6\u09be\u09a8\u09bf \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.ARP=\u0986\u09b0\u09cd\u099c\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09be \u09aa\u09c7\u09b8\u09cb (\u09e7\u09ef\u09ee\u09e9-\u09e7\u09ef\u09ee\u09eb)
+currenciesDisplayName.SDD=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09b8\u09c1\u09a6\u09be\u09a8\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.GEL=\u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be\u09a8 \u09b2\u09be\u09b0\u09bf
+currenciesDisplayName.GEK=\u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09c1\u09aa\u09a8 \u09b2\u09be\u09b0\u09bf\u099f
+currenciesDisplayName.AFA=\u0986\u09ab\u0997\u09be\u09a8\u09bf (\u09e7\u09ef\u09e8\u09ed-\u09e8\u09e6\u09e6\u09e8)
+currenciesDisplayName.CRC=\u0995\u09cb\u09b8\u09cd\u099f\u09be \u09b0\u09bf\u0995\u09be \u0995\u09cb\u09b2\u09cb\u09a8
+currenciesDisplayName.FKP=\u09ab\u0995\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.EEK=\u098f\u09b8\u09cd\u09a4\u09cb\u09a8\u09bf\u09af\u09bc\u09be \u0995\u09cd\u09b0\u09c1\u09a8\u09bf
+currenciesDisplayName.MDL=\u09ae\u09cb\u09b2\u09cd\u09a1\u09cb\u09ad\u09be\u09a8 \u09b2\u09c7\u09af\u09bc\u09c1
+currenciesDisplayName.HKD=\u09b9\u0982\u0995\u0982 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.IQD=\u0987\u09b0\u09be\u0995\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.ARA=\u0986\u09b0\u09cd\u099c\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09be \u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09be\u09b2
+currenciesDisplayName.SCR=\u09b8\u09c7\u09af\u09bc\u099a\u09c7\u09b2\u09cd\u09b2\u09cb\u0987\u09b8 \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.KPW=\u09a8\u09be\u0987\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.DKK=\u09a1\u09cd\u09af\u09be\u09a8\u09bf\u09b6 \u0995\u09cd\u09b0\u09cc\u09a8
+currenciesDisplayName.IDR=\u0987\u09a8\u09cd\u09a6\u09cb\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be \u09b0\u09c1\u09aa\u09bf\u09af\u09bc\u09be\u09b9
+currenciesDisplayName.SOS=\u09b8\u09cb\u09ae\u09be\u09b2\u09bf \u09b6\u09bf\u09b2\u09bf\u0982
+currenciesDisplayName.LVR=\u09b2\u09cd\u09af\u09be\u099f\u09ad\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09c1\u09ac\u09b2
+currenciesDisplayName.EQE=\u0987\u0995\u09c1\u09af\u09bc\u09c7\u09b2\u09c7
+currenciesDisplayName.AED=\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0986\u09b0\u09ac \u0986\u09ae\u09bf\u09b0\u09be\u09a4 \u09a6\u09bf\u09b0\u09b9\u09be\u09ae
+currenciesDisplayName.LVL=\u09b2\u09cd\u09af\u09be\u099f\u09cd\u200c\u09b8
+currenciesDisplayName.BWP=\u09ac\u09a4\u09cd\u09b8\u0993\u09af\u09bc\u09be\u09a8\u09be \u09aa\u09c1\u09b2\u09be
+currenciesDisplayName.RUR=\u09b0\u09be\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09c1\u09ac\u09b2 (\u09e7\u09ef\u09ef\u09e7-\u09e7\u09ef\u09ef\u09ee)
+currenciesDisplayName.NIO=\u09a8\u09bf\u0995\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09be\u09a8 \u0995\u09b0\u09cd\u09a1\u09cb\u09ac\u09be \u0993\u09b0\u09cb
+currenciesDisplayName.MOP=\u09ae\u09cd\u09af\u09be\u0995\u09cd\u09af\u09be\u0993 \u09aa\u09be\u099f\u09be\u0995\u09be
+currenciesDisplayName.FJD=\u09ab\u09bf\u099c\u09bf \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.ADP=\u098f\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09cb\u09b0\u09be\u09a8 \u09aa\u09c7\u09b8\u09c7\u09a4\u09be
+currenciesDisplayName.RUB=\u09b0\u09be\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09c1\u09ac\u09c7\u09b2
+currenciesDisplayName.CDF=\u0995\u0999\u09cd\u0997\u09cb \u09ab\u09cd\u09b0\u09cd\u09af\u09be\u0999\u09cd\u0995 \u0995\u0999\u09cd\u0997\u09cb\u09b2\u09be\u0987\u09b8
+currenciesDisplayName.NIC=\u09a8\u09bf\u0995\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09be\u09a8 \u0995\u09b0\u09cd\u09a1\u09cb\u09ac\u09be
+currenciesDisplayName.DJF=\u099c\u09bf\u09ac\u09c1\u09a4\u09bf \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.UZS=\u0989\u099c\u09ac\u09c7\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8\u09bf \u09b8\u09cb\u09ae
+currenciesDisplayName.SBD=\u09b8\u09b2\u09cb\u09ae\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.ECV=\u0987\u0995\u09c1\u09af\u09bc\u09be\u09a1\u09cb\u09b0 \u0989\u09a8\u09bf\u09a6\u09be\u09a6\u09c7\u09b8 \u09a6\u09bf \u09ad\u09c7\u09b2\u09b0 \u0995\u09a8\u09b8\u09a4\u09be\u09a8\u09cd\u09a4\u09c7 (UVC)
+currenciesDisplayName.LUL=\u09b2\u09c1\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997 \u09ab\u09be\u0987\u09a8\u09c7\u09a8\u09b6\u09bf\u09af\u09bc\u09be\u09b2 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.ECS=\u0987\u0995\u09c1\u09af\u09bc\u09be\u09a1\u09cb\u09b0 \u09b8\u09c1\u0995\u09cd\u09b0\u09c7
+currenciesDisplayName.THB=\u09a5\u09be\u0987 \u09ac\u09be\u09a4
+currenciesDisplayName.PHP=\u09ab\u09bf\u09b2\u09bf\u09aa\u09be\u0987\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.LUF=\u09b2\u09c1\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.RHD=\u09b0\u09cb\u09a1\u09c7\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.LUC=\u09b2\u09c1\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997 \u09b0\u09c1\u09aa\u09be\u09a8\u09cd\u09a4\u09af\u09cb\u0997\u09cd\u09af \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.TTD=\u09a4\u09cd\u09b0\u09bf\u09a8\u09bf\u09a6\u09be\u09a6 \u098f\u09ac\u0982 \u099f\u09cb\u09ac\u09be\u0997\u09cb \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.SZL=\u09b8\u09cb\u09af\u09bc\u09be\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09b2\u09bf\u09b2\u09be\u0999\u09cd\u0997\u09c7\u09a8\u09bf
+currenciesDisplayName.MNT=\u09ae\u0999\u09cd\u0997\u09cb\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u09a4\u09c1\u0997\u09b0\u09bf\u0995
+currenciesDisplayName.UAK=\u0987\u0989\u0995\u09cd\u09b0\u09c7\u0987\u09a8 \u0995\u09be\u09b0\u09cd\u09ac\u09cb\u09ad\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09b8
+currenciesDisplayName.SAR=\u09b8\u09cc\u09a6\u09bf \u09b0\u09bf\u09af\u09bc\u09cd\u09af\u09be\u09b2
+currenciesDisplayName.UAH=\u0987\u0989\u0995\u09cd\u09b0\u09c7\u0987\u09a8 \u09b9\u09c3\u09ad\u09a8\u09bf\u09af\u09bc\u09be
+currenciesDisplayName.HUF=\u09b9\u09be\u0999\u09cd\u0997\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09ab\u09cb\u09b0\u09bf\u09a8\u09cd\u099f
+currenciesDisplayName.QAR=\u0995\u09be\u09a4\u09be\u09b0 \u09b0\u09bf\u09af\u09bc\u09cd\u09af\u09be\u09b2
+currenciesDisplayName.COP=\u0995\u09b2\u09cb\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.LTT=\u09b2\u09bf\u09a5\u09c1\u0987\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u099f\u09be\u09b2\u09cb\u09a8\u09cd\u09af\u09be\u09b8
+currenciesDisplayName.PTE=\u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09bf\u099c \u098f\u09b8\u0995\u09c1\u09a1\u09cb
+currenciesDisplayName.UYU=\u0989\u09b0\u09c1\u0997\u09c1\u09af\u09bc\u09c7 \u09aa\u09c7\u09b8\u09cb \u0989\u09b0\u09c1\u0997\u09c1\u09af\u09bc\u09c7\u0993
+currenciesDisplayName.AOR=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be\u09a8 \u0995\u0993\u09af\u09bc\u09be\u09a8\u099c\u09be (\u09e7\u09ef\u09ef\u09eb-\u09e7\u09ef\u09ef\u09ef)
+currenciesDisplayName.GBP=\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09aa\u09be\u0989\u09a8\u09cd\u09a1 \u09b8\u09cd\u099f\u09be\u09b0\u09cd\u09b2\u09bf\u0982
+currenciesDisplayName.ZRZ=\u099c\u09be\u0987\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u099c\u09be\u0987\u09b0\u09c7
+currenciesDisplayName.INR=\u09ad\u09be\u09b0\u09a4\u09c0\u09af\u09bc \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.BIF=\u09ac\u09c1\u09b0\u09c1\u09a8\u09cd\u09a1\u09bf \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.XFU=\u09ab\u09b0\u09be\u09b8\u09bf \u0987\u0989\u0986\u0987\u09b8\u09bf - \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.MZN=\u09ae\u09cb\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u0995 \u09ae\u09c7\u099f\u09bf\u0995\u09c7\u09b2
+currenciesDisplayName.LTL=\u09b2\u09bf\u09a5\u09c1\u0987\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09b2\u09bf\u099f\u09be
+currenciesDisplayName.AON=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be\u09a8 \u09a8\u09a4\u09c1\u09a8 \u0995\u0993\u09af\u09bc\u09be\u09a8\u099c\u09be (\u09e7\u09ef\u09ef\u09eb-\u09e8\u09e6\u09e6\u09e6)
+currenciesDisplayName.UYP=\u0989\u09b0\u09c1\u0997\u09c1\u09af\u09bc\u09c7 \u09aa\u09c7\u09b8\u09cb (\u09e7\u09ef\u09ed\u09eb-\u09e7\u09ef\u09ef\u09e9)
+currenciesDisplayName.MZM=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09ae\u09cb\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u0995 \u09ae\u09c7\u099f\u09bf\u0995\u09c7\u09b2
+currenciesDisplayName.KZT=\u0995\u09be\u099c\u09be\u0995\u09cd\u09b8\u099f\u09be\u09a8 \u099f\u09c7\u0999\u09cd\u0997\u09c7
+currenciesDisplayName.AOK=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be\u09a8 \u0995\u0993\u09af\u09bc\u09be\u09a8\u099c\u09be (\u09e7\u09ef\u09ed\u09ed-\u09e7\u09ef\u09ef\u09e6)
+currenciesDisplayName.GNS=\u0997\u09bf\u09a8\u09bf \u09b8\u09be\u0987\u09b2\u09bf
+currenciesDisplayName.BUK=\u09ac\u09b0\u09cd\u09ae\u09bf \u0995\u09bf\u09af\u09bc\u09be\u09ce
+currenciesDisplayName.XFO=\u09ab\u09b0\u09be\u09b8\u09bf \u0997\u09cb\u09b2\u09cd\u09a1 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.PGK=\u09aa\u09aa\u09c1\u09af\u09bc\u09be\u09a8\u09bf\u0989\u0997\u09bf\u09a8\u09bf \u0995\u09bf\u09a8\u09be
+currenciesDisplayName.SYP=\u09b8\u09bf\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.OMR=\u0993\u09ae\u09be\u09a8\u09bf \u09b0\u09bf\u09af\u09bc\u09be\u09b2
+currenciesDisplayName.MZE=\u09ae\u09cb\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u0995 \u098f\u09b8\u0995\u09c1\u09a1\u09cb
+currenciesDisplayName.ZRN=\u099c\u09be\u0987\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09a8\u09bf\u0989 \u099c\u09be\u0987\u09b0\u09c7
+currenciesDisplayName.NGN=\u09a8\u09be\u0987\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09a8\u09be\u09af\u09bc\u09b0\u09be
+currenciesDisplayName.CNY=\u099a\u09c0\u09a8\u09be \u09af\u09bc\u09c1\u09af\u09bc\u09be\u09a8 \u09b0\u09c7\u09a8\u09cd\u09ae\u09bf\u09a8\u09cd\u200c\u09ac\u09bf
+currenciesDisplayName.AOA=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be\u09a8 \u0995\u0993\u09af\u09bc\u09be\u09a8\u099c\u09be
+currenciesDisplayName.MAF=\u09ae\u09cb\u09b0\u09cb\u0995\u09cd\u0995\u09be\u09a8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.RSD=\u09b8\u09be\u09b0\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.GNF=\u0997\u09bf\u09a8\u09bf \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.MAD=\u09ae\u09cb\u09b0\u09cb\u0995\u09cd\u0995\u09be\u09a8 \u09a6\u09bf\u09b0\u09b9\u09be\u09ae
+currenciesDisplayName.HTG=\u09b9\u09be\u0987\u09a4\u09bf \u0997\u09cc\u09b0\u09cd\u09a6\u09c7
+currenciesDisplayName.TRY=\u09a4\u09c1\u09b0\u09cd\u0995\u09bf \u09b2\u09bf\u09b0\u09be
+currenciesDisplayName.MMK=\u09ae\u09be\u09af\u09bc\u09be\u09a8\u09ae\u09be\u09b0 \u0995\u09bf\u09af\u09bc\u09be\u09a4
+currenciesDisplayName.MYR=\u09ae\u09be\u09b2\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09bf\u0999\u09cd\u0997\u09bf\u09ce
+currenciesDisplayName.LSM=\u09ae\u09be\u09b2\u09cb\u099f\u09bf
+currenciesDisplayName.XEU=\u0987\u0989\u09b0\u09cb\u09aa\u09c0\u09af\u09bc \u09ae\u09c1\u09a6\u09cd\u09b0\u09be \u098f\u0995\u0995
+currenciesDisplayName.LSL=\u09b2\u09c7\u09b8\u09c1\u099f\u09c1 \u09b2\u09cb\u099f\u09bf
+currenciesDisplayName.SLL=\u09b8\u09bf\u09af\u09bc\u09c7\u09b0\u09be\u09b2\u09bf\u09af\u09bc\u09a8 \u09b2\u09bf\u09af\u09bc\u09a8
+currenciesDisplayName.BHD=\u09ac\u09be\u09b9\u09b0\u09be\u0987\u09a8\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.BTN=\u09ad\u09c1\u099f\u09be\u09a8 \u098f\u09a8\u0997\u09c1\u09b2\u09cd\u099f\u09cd\u09b0\u09c1\u09ae
+currenciesDisplayName.TRL=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09a4\u09c1\u09b0\u09cd\u0995\u09bf \u09b2\u09bf\u09b0\u09be
+currenciesDisplayName.KMF=\u0995\u09ae\u09cd\u09ac\u09cb\u09b0\u09cb \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.CZK=\u099a\u09c7\u0995\u09cb\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u0995 \u0995\u09cb\u09b0\u09c1\u09a8\u09be
+currenciesDisplayName.ANG=\u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u098f\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0997\u09c1\u09b2\u09cd\u09a1\u09c7\u09b0
+currenciesDisplayName.AZN=\u0986\u099c\u09be\u09b0\u09ac\u09be\u0987\u099c\u09be\u09a8 \u09ae\u09be\u09a8\u09be\u09a4
+currenciesDisplayName.AZM=\u0986\u099c\u09be\u09b0\u09ac\u09be\u0987\u099c\u09be\u09a8 \u09ae\u09be\u09a8\u09be\u09a4 (\u09e7\u09ef\u09ef\u09e9-\u09e8\u09e6\u09e6\u09ec)
+currenciesDisplayName.KYD=\u0995\u09c7\u09ae\u09cd\u09af\u09be\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c\u09c7\u09b0 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.GMD=\u0997\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be \u09a1\u09be\u09b2\u09be\u09b8\u09bf
+currenciesDisplayName.VEF=\u09ad\u09c7\u09a8\u09bf\u099c\u09c1\u09af\u09bc\u09c7\u09b2\u09c0\u09af\u09bc \u09ac\u09b2\u09bf\u09ad\u09be\u09b0 \u09b0\u09cd\u09ab\u09c1\u09a4\u09c7
+currenciesDisplayName.BGN=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09c0\u09af\u09bc \u09a8\u09bf\u0989 \u09b2\u09c7\u09ad
+currenciesDisplayName.CAD=\u0995\u09ae\u09cd\u09ac\u09cb\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.BGL=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09c0\u09af\u09bc \u09b9\u09be\u09b0\u09cd\u09a1 \u09b2\u09c7\u09ad
+currenciesDisplayName.VEB=\u09ad\u09c7\u09a8\u09bf\u099c\u09c1\u09af\u09bc\u09c7\u09b2\u09be\u09a8 \u09ac\u09b2\u09bf\u09ad\u09be\u09b0
+currenciesDisplayName.MLF=\u09ae\u09be\u09b2\u09bf \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.MXP=\u09ae\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09bf\u0995\u09be\u09a8 \u09b8\u09bf\u09b2\u09ad\u09be\u09b0 \u09aa\u09c7\u09b8\u09cb (\u09e7\u09ee\u09ec\u09e7-\u09e7\u09ef\u09ef\u09e8)
+currenciesDisplayName.ILS=\u0987\u09b8\u09cd\u09b0\u09be\u0987\u09b2\u09bf \u09a8\u09a4\u09c1\u09a8 \u09b6\u09c7\u0995\u09c7\u09b2
+currenciesDisplayName.PES=\u09aa\u09c7\u09b0\u09c1\u09ad\u09bf\u09af\u09bc\u09be\u09a8 \u09b8\u09cb\u09b2
+currenciesDisplayName.MXN=\u09ae\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09bf\u0995\u09be\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.GYD=\u0997\u09bf\u09a8\u09bf \u09ac\u09bf\u09b8\u09be\u0989 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.ILP=\u0987\u09b8\u09cd\u09b0\u09be\u0987\u09b2\u09bf \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.CYP=\u09b8\u09be\u0987\u09aa\u09cd\u09b0\u09be\u09b8 \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.SKK=\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u0995 \u0995\u09cb\u09b0\u09c1\u09a8\u09be
+currenciesDisplayName.PEN=\u09aa\u09c7\u09b0\u09c1\u09ad\u09bf\u09af\u09bc\u09be\u09a8 \u09b8\u09cb\u09b2 \u09a8\u09c1\u09af\u09bc\u09c7\u09ad\u09cb
+currenciesDisplayName.LRD=\u09b2\u09be\u0987\u09ac\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.PEI=\u09aa\u09c7\u09b0\u09c1\u09ad\u09bf\u09af\u09bc\u09be\u09a8 \u0987\u09a8\u09cd\u09a4\u09bf
+currenciesDisplayName.AMD=\u0986\u09b0\u09ae\u09c7\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09cd\u09b0\u09be\u09ae
+currenciesDisplayName.BSD=\u09ac\u09be\u09b9\u09be\u09ae\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.XPT=\u09aa\u09cd\u09b2\u09be\u099f\u09bf\u09a8\u09be\u09ae
+currenciesDisplayName.HRK=\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09c1\u09a8\u09be\u09b8
+currenciesDisplayName.HRD=\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.CLP=\u099a\u09bf\u09b2\u09bf \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.XPF=CFP \u09ab\u09cd\u09b0\u09cd\u09af\u09be\u0999\u09cd\u0995
+currenciesDisplayName.FRF=\u09ab\u09b0\u09be\u09b8\u09bf \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.XPD=\u09aa\u09cd\u09af\u09be\u09b2\u09c7\u09a1\u09bf\u09af\u09bc\u09be\u09ae
+currenciesDisplayName.BRR=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09b0\u09c1\u099c\u09c7\u09af\u09bc\u09b0\u09cb
+currenciesDisplayName.MKD=\u09ae\u09cd\u09af\u09be\u09b8\u09c7\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.CLF=\u099a\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0989\u09a8\u09bf\u09a6\u09be\u09a6\u09c7\u09b8 \u09a6\u09bf \u09ab\u09cb\u09ae\u09c7\u09a8\u09cd\u09a4\u09cb
+currenciesDisplayName.ALL=\u0986\u09b2\u09ac\u09c7\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09b2\u09c7\u0995
+currenciesDisplayName.BRN=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09b0\u09c1\u099c\u09c7\u0987\u09a1\u09cb \u09a8\u09cb\u09ad\u09cb
+currenciesDisplayName.MWK=\u09ae\u09be\u09b2\u09be\u0989\u0987\u09af\u09bc\u09be\u09a8 \u0995\u0993\u09af\u09bc\u09be\u099a
+currenciesDisplayName.BRL=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09bf\u09af\u09bc\u09c7\u09b2
+currenciesDisplayName.TPE=\u09a4\u09bf\u09ae\u09c1\u09b0 \u098f\u09b8\u0995\u09c1\u09a1\u09cb
+currenciesDisplayName.BRE=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09b0\u09c1\u099c\u09c7\u09af\u09bc\u09b0\u09cb (\u09e7\u09ef\u09ef\u09e6-\u09e7\u09ef\u09ef\u09e9)
+currenciesDisplayName.BRC=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09b0\u09c1\u099c\u09c7\u0987\u09a1\u09be\u0989
+currenciesDisplayName.BRB=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09b0\u09c1\u099c\u09c7\u09af\u09bc\u09b0\u09cb\u09a8\u09cb\u09ad\u09cb (\u09e7\u09ef\u09ec\u09ed-\u09e7\u09ef\u09ee\u09ec)
+currenciesDisplayName.DEM=\u09a1\u09af\u09bc\u099a\u09cd \u09ae\u09be\u09b0\u09cd\u0995
+currenciesDisplayName.KWD=\u0995\u09c1\u09af\u09bc\u09c7\u09a4\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.XCD=\u09aa\u09c2\u09b0\u09cd\u09ac \u0995\u09cd\u09af\u09be\u09b0\u09be\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.NPR=\u09a8\u09c7\u09aa\u09be\u09b2\u09bf \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.GWP=\u0997\u09bf\u09a8\u09bf \u09ac\u09bf\u09b8\u09be\u0989 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.YUN=\u09af\u09c1\u0997\u09cb\u09b6\u09cd\u09b2\u09be\u09ad\u09bf\u09af\u09bc \u09b0\u09c1\u09aa\u09be\u09a8\u09cd\u09a4\u09b0\u09af\u09cb\u0997\u09cd\u09af \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.SVC=\u098f\u09b2 \u09b8\u09cd\u09af\u09be\u09b2\u09ad\u09cb\u09a1\u09cb\u09b0 \u0995\u09cb\u09b2\u09cb\u09a8
+currenciesDisplayName.YUM=\u09af\u09c1\u0997\u09cb\u09b6\u09cd\u09b2\u09be\u09ad\u09bf\u09af\u09bc \u09a8\u09cb\u09ad\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.BEL=\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09a8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995 (\u0986\u09b0\u09cd\u09a5\u09bf\u0995)
+currenciesDisplayName.SIT=\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u09a8\u09bf\u09af\u09bc\u09be \u099f\u09cb\u09b2\u09be\u09b0
+currenciesDisplayName.JPY=\u099c\u09be\u09aa\u09be\u09a8\u09bf\u099c \u0987\u09af\u09bc\u09c7\u09a8
+currenciesDisplayName.XOF=CFA \u09ab\u09cd\u09b0\u09cd\u09af\u09be\u0999\u09cd\u0995 BCEAO
+currenciesDisplayName.BEF=\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09a8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.GWE=\u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09bf\u099c \u0997\u09bf\u09a8\u09bf \u098f\u09b8\u0995\u09c1\u09a1\u09cb
+currenciesDisplayName.TOP=\u099f\u09cb\u0999\u09cd\u0997\u09be \u09aa\u09be\u2019\u0986\u0999\u09cd\u0997\u09be
+currenciesDisplayName.YUD=\u09af\u09c1\u0997\u09cb\u09b6\u09cd\u09b2\u09be\u09ad\u09bf\u09af\u09bc \u09b9\u09be\u09b0\u09cd\u09a1 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.BEC=\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09a8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995 (\u09b0\u09c2\u09aa\u09be\u09a8\u09cd\u09a4\u09b0\u09af\u09cb\u0997\u09cd\u09af)
+currenciesDisplayName.SUR=\u09b8\u09cb\u09ad\u09bf\u09af\u09bc\u09c7\u09a4 \u09b0\u09c1\u09ac\u09b2
+currenciesDisplayName.RON=\u09b0\u09c1\u09ae\u09be\u09a8\u09bf\u09af\u09bc\u09be \u09b2\u09c7\u09af\u09bc\u09c1
+currenciesDisplayName.ROL=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09b0\u09c1\u09ae\u09be\u09a8\u09bf\u09af\u09bc\u09be \u09b2\u09c7\u09af\u09bc\u09c1
+currenciesDisplayName.BDT=\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6 \u099f\u09be\u0995\u09be
+currenciesDisplayName.DDM=\u09aa\u09c2\u09b0\u09cd\u09ac \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8 \u09ae\u09be\u09b0\u09cd\u0995
+currenciesDisplayName.AWG=\u0986\u09b0\u09c1\u09ac\u09be \u0997\u09bf\u09b2\u09cd\u09a1\u09be\u09b0
+currenciesDisplayName.XBB=\u0987\u0989\u09b0\u09cb\u09aa\u09c0\u09af\u09bc \u0986\u09b0\u09cd\u09a5\u09bf\u0995 \u098f\u0995\u0995
+currenciesDisplayName.NOK=\u09a8\u09b0\u0993\u09af\u09bc\u09c7 \u0995\u09cd\u09b0\u09cc\u09a8
+currenciesDisplayName.MUR=\u09ae\u09cc\u09b0\u09bf\u09a4\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.ZAR=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be\u09a8 \u09b0\u09c7\u09a8\u09cd\u09a1
+currenciesDisplayName.SHP=\u09b8\u09c7\u09a8\u09cd\u099f \u09b9\u09c7\u09b2\u09c7\u09a8\u09be \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.XAU=\u0997\u09cb\u09b2\u09cd\u09a1
+currenciesDisplayName.ZAL=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be\u09a8 \u09b0\u200c\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+currenciesDisplayName.VND=\u09ad\u09bf\u09af\u09bc\u09c7\u09a4\u09a8\u09be\u09ae\u09bf \u09a1\u0999\u09cd\u0997
+currenciesDisplayName.TZS=\u09a4\u09be\u099e\u09cd\u099c\u09a8\u09bf\u09af\u09bc\u09be \u09b6\u09bf\u09b2\u09bf\u0982
+currenciesDisplayName.GIP=\u099c\u09bf\u09ac\u09cd\u09b0\u09be\u09b2\u09cd\u099f\u09be\u09b0 \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.TND=\u09a4\u09bf\u0989\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.CVE=\u0995\u09c7\u09aa \u09ad\u09be\u09b0\u09cd\u09a6\u09c7 \u098f\u09b8\u0995\u09c1\u09a1\u09cb
+currenciesDisplayName.UGX=\u0989\u0997\u09be\u09a8\u09cd\u09a1\u09be\u09a8 \u09b6\u09bf\u09b2\u09bf\u0982
+currenciesDisplayName.XAG=\u09b8\u09bf\u09b2\u09ad\u09be\u09b0
+currenciesDisplayName.ZMK=\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u0993\u09af\u09bc\u09be\u099a\u09be
+currenciesDisplayName.JOD=\u099c\u09b0\u09cd\u09a1\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.XAF=CFA \u09ab\u09cd\u09b0\u09cd\u09af\u09be\u0999\u09cd\u0995 BEAC
+currenciesDisplayName.LBP=\u09b2\u09c7\u09ac\u09be\u09a8\u09bf\u099c \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.UGS=\u0989\u0997\u09be\u09a8\u09cd\u09a1\u09be\u09a8 \u09b6\u09bf\u09b2\u09bf\u0982 (\u09e7\u09ef\u09ec\u09ec-\u09e7\u09ef\u09ee\u09ed)
+currenciesDisplayName.STD=\u09b8\u09be\u0993 \u099f\u09cb\u09ae\u09c7 \u098f\u09ac\u0982 \u09aa\u09cd\u09b0\u09bf\u09a8\u09cd\u09b8\u09bf\u09aa\u09c7  \u09a1\u09cb\u09ac\u09b0\u09be
+currenciesDisplayName.WST=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be\u09a8 \u099f\u09be\u09b2\u09be
+currenciesDisplayName.KHR=\u0995\u09ae\u09cd\u09ac\u09cb\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09bf\u09af\u09bc\u09c7\u09b2
+currenciesDisplayName.DOP=\u09a1\u09cb\u09ae\u09bf\u09a8\u09bf\u0995\u09be\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.EUR=\u0987\u0989\u09b0\u09cb
+currenciesDisplayName.BOV=\u09ac\u09b2\u09bf\u09ad\u09bf\u09af\u09bc\u09be\u09a8 Mvdol
+currenciesDisplayName.MTP=\u09ae\u09be\u09b2\u09cd\u099f\u09be \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.USS=\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09a1\u09b2\u09be\u09b0 (\u098f\u0995\u0987 \u09a6\u09bf\u09a8)
+currenciesDisplayName.BOP=\u09ac\u09b2\u09bf\u09ad\u09bf\u09af\u09bc\u09be\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.CUP=\u0995\u09bf\u0989\u09ac\u09be\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.MTL=\u09ae\u09be\u09b2\u09cd\u099f\u09be \u09b2\u09bf\u09b0\u09be
+currenciesDisplayName.TMM=\u09a4\u09c1\u09b0\u09cd\u0995\u09ae\u09c7\u09a8\u09bf\u09b8\u09cd\u099f\u09be\u09a8\u09bf \u09ae\u09be\u09a8\u09be\u09a4
+currenciesDisplayName.USN=\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09a1\u09b2\u09be\u09b0 (\u09aa\u09b0\u09ac\u09b0\u09cd\u09a4\u09c0 \u09a6\u09bf\u09a8)
+currenciesDisplayName.GHS=\u0998\u09be\u09a8\u09be \u09b8\u09c7\u09a1\u09bf
+currenciesDisplayName.SGD=\u09b8\u09bf\u0999\u09cd\u0997\u09be\u09aa\u09c1\u09b0 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.NZD=\u09a8\u09bf\u0989\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.USD=\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.BOB=\u09ac\u09b2\u09bf\u09ad\u09bf\u09af\u09bc\u09be\u09a8\u09cb
+currenciesDisplayName.HNL=\u09b9\u09a8\u09cd\u09a1\u09c1\u09b0\u09be\u09b8 \u09b2\u09c7\u09ae\u09cd\u09aa\u09bf\u09b0\u09be
+currenciesDisplayName.CHW=\u09b8\u09c1\u0987\u099c\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.ITL=\u0987\u09a4\u09be\u09b2\u09c0\u09af\u09bc \u09b2\u09bf\u09b0\u09be
+currenciesDisplayName.PAB=\u09aa\u09be\u09a8\u09be\u09ae\u09be \u09ac\u09c7\u09b2\u09ac\u09cb\u09af\u09bc\u09be
+currenciesDisplayName.GTQ=\u0997\u09c1\u09af\u09bc\u09be\u09a4\u09c7\u09ae\u09be\u09b2\u09be \u0995\u09c1\u09af\u09bc\u09c7\u09ce\u099c\u09be\u09b2
+currenciesDisplayName.XXX=\u0985\u099c\u09be\u09a8\u09be \u09ac\u09be \u09ad\u09c1\u09b2 \u09ae\u09c1\u09a6\u09cd\u09b0\u09be
+currenciesDisplayName.AUD=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.GHC=\u0998\u09be\u09a8\u09be \u09b8\u09c7\u09a1\u09bf (\u09e7\u09ef\u09ed\u09ef-\u09e8\u09e6\u09e6\u09ed)
+currenciesDisplayName.LAK=\u09b2\u09c7\u0989\u09b6\u09be\u09a8 \u0995\u09bf\u09aa
+currenciesDisplayName.NAD=\u09a8\u09be\u09ae\u09bf\u09ac\u09bf\u09af\u09bc\u09be \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.KGS=\u0995\u09bf\u09b0\u0997\u09bf\u099c\u09b8\u09cd\u09a4\u09be\u09a8 \u09b8\u09cb\u09ae
+currenciesDisplayName.MGF=\u09ae\u09be\u09a6\u09be\u0997\u09be\u09b8\u09cd\u0995\u09be\u09b0 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.BBD=\u09ac\u09be\u09b0\u09cd\u09ac\u09c7\u09a1\u09cb\u099c \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.CHF=\u09b8\u09c1\u0987\u09b8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.CHE=\u09b8\u09c1\u0987\u099c\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u0987\u0989\u09b0\u09cb
+currenciesDisplayName.MGA=\u09ae\u09be\u09a6\u09be\u0997\u09be\u09b8\u09cd\u0995\u09be\u09b0 \u0986\u09b0\u09bf\u09af\u09bc\u09be\u09b0\u09bf
+currenciesDisplayName.PYG=\u09aa\u09cd\u09af\u09be\u09b0\u0997\u09c1\u09af\u09bc\u09be\u09a8
+currenciesDisplayName.PLZ=\u09aa\u09cb\u09b2\u09bf\u09b6 \u099c\u09cd\u09b2\u09cb\u099f\u09bf (\u09e7\u09ef\u09eb\u09e6-\u09e7\u09ef\u09ef\u09eb)
+currenciesDisplayName.YER=\u0987\u09af\u09bc\u09c7\u09ae\u09c7\u09a8\u09bf \u09b0\u09bf\u09af\u09bc\u09be\u09b2
+currenciesDisplayName.ATS=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09b6\u09bf\u09b2\u09bf\u0982
+currenciesDisplayName.BND=\u09ac\u09cd\u09b0\u09c1\u09a8\u09c7\u0987 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.EGP=\u09ae\u09bf\u09b6\u09b0\u09c0\u09af\u09bc \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.JMD=\u099c\u09cd\u09af\u09be\u09ae\u09be\u0987\u0995\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.PLN=\u09aa\u09cb\u09b2\u09bf\u09b6 \u099c\u09cd\u09b2\u09cb\u099f\u09bf
+currenciesDisplayName.DZD=\u0986\u09b2\u099c\u09c7\u09b0\u09c0\u09af\u09bc \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.ISK=\u0986\u0987\u09b8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u0995\u09cd\u09b0\u09cc\u09a8
+currenciesDisplayName.SRG=\u09b8\u09c1\u09b0\u09bf\u09a8\u09be\u09ae \u0997\u09bf\u09b2\u09cd\u09a1\u09be\u09b0
+currenciesDisplayName.LYD=\u09b2\u09bf\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.SRD=\u09b8\u09c1\u09b0\u09bf\u09a8\u09be\u09ae \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.BAM=\u09ac\u09b8\u09a8\u09bf\u09af\u09bc\u09be \u098f\u09ac\u0982 \u09b9\u09be\u09b0\u09cd\u099c\u09c7\u0997\u09cb\u09ad\u09bf\u09a8\u09be \u09ae\u09be\u09b0\u09cd\u0995
+currenciesDisplayName.BZD=\u09ac\u09c7\u09b2\u09bf\u099c \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.ESP=\u09b8\u09cd\u09aa\u09cd\u09af\u09be\u09a8\u09bf\u09b6 \u09aa\u09c7\u09b8\u09c7\u09a4\u09be
+currenciesDisplayName.KRW=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u0993\u09a8
+currenciesDisplayName.NLG=\u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u0997\u09c1\u09b2\u09cd\u09a1\u09c7\u09b0
+currenciesDisplayName.MRO=\u09ae\u09cc\u09b0\u09bf\u09a4\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u0993\u0989\u0997\u09c1\u0987\u09af\u09bc\u09be
+currenciesDisplayName.BAD=\u09ac\u09b8\u09a8\u09bf\u09af\u09bc\u09be \u098f\u09ac\u0982 \u09b9\u09be\u09b0\u09cd\u099c\u09c7\u0997\u09cb\u09ad\u09bf\u09a8\u09be \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.ZWD=\u099c\u09bf\u09ae\u09cd\u09ac\u09be\u09ac\u09c1\u09af\u09bc\u09c7 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.SEK=\u09b8\u09c1\u0987\u09a1\u09c7\u09b6 \u0995\u09cd\u09b0\u09cb\u09a8\u09be
+currenciesDisplayName.CSK=\u099a\u09c7\u0995\u09cb\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u0995 \u09b9\u09be\u09b0\u09cd\u09a1 \u0995\u09cb\u09b0\u09c1\u09a8\u09be
+currenciesDisplayName.BYR=\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09c1\u09ac\u09c7\u09b2
+currenciesDisplayName.ESB=\u09b8\u09cd\u09aa\u09cd\u09af\u09be\u09a8\u09bf\u09b6 \u09aa\u09c7\u09b8\u09c7\u09a4\u09be (\u09b0\u09c2\u09aa\u09be\u09a8\u09cd\u09a4\u09b0\u09af\u09cb\u0997\u09cd\u09af \u09b9\u09bf\u09b8\u09be\u09ac)
+currenciesDisplayName.IRR=\u0987\u09b0\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09bf\u09af\u09bc\u09be\u09b2
+currenciesDisplayName.ESA=\u09b8\u09cd\u09aa\u09cd\u09af\u09be\u09a8\u09bf\u09b6 \u09aa\u09c7\u09b8\u09c7\u09a4\u09be (\u098f\u0995\u0987 \u09b9\u09bf\u09b8\u09be\u09ac)
+currenciesDisplayName.PKR=\u09aa\u09be\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8\u09bf \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.BMD=\u09ac\u09be\u09b0\u09ae\u09bf\u0989\u09a1\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.CSD=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09b8\u09be\u09b0\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
 currenciesSymbol.INR=\u099f\u09be\u0995\u09be
 currenciesSymbol.BDT=\u09f3
-shortMonths=\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0®\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09c0®\u09ae\u09be\u09b0\u09cd\u099a®\u098f\u09aa\u09cd\u09b0\u09bf\u09b2®\u09ae\u09c7®\u099c\u09c1\u09a8®\u099c\u09c1\u09b2\u09be\u0987®\u0986\u0997\u09b8\u09cd\u099f®\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0®\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0®\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0®\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0®®
-months=\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0®\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09c0®\u09ae\u09be\u09b0\u09cd\u099a®\u098f\u09aa\u09cd\u09b0\u09bf\u09b2®\u09ae\u09c7®\u099c\u09c1\u09a8®\u099c\u09c1\u09b2\u09be\u0987®\u0986\u0997\u09b8\u09cd\u099f®\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0®\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0®\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0®\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0®®
-shortWeekdays=®\u09b0\u09ac\u09bf®\u09b8\u09cb\u09ae®\u09ae\u0999\u09cd\u0997\u09b2®\u09ac\u09c1\u09a7®\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf®\u09b6\u09c1\u0995\u09cd\u09b0®\u09b6\u09a8\u09bf®
-weekdays=®\u09b0\u09ac\u09bf\u09ac\u09be\u09b0®\u09b8\u09cb\u09ae\u09ac\u09be\u09b0®\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0®\u09ac\u09c1\u09a7\u09ac\u09be\u09b0®\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0®\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0®\u09b6\u09a8\u09bf\u09ac\u09be\u09b0®
-ampms=\u09aa\u09c2\u09b0\u09cd\u09ac\u09be\u09b9\u09cd\u09a3®\u0985\u09aa\u09b0\u09be\u09b9\u09cd\u09a3®
-territories.AU=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09df\u09be
-territories.AT=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09df\u09be
-territories.GY=\u0997\u09bf\u09df\u09be\u09a8\u09be
-territories.AR=\u0986\u09b0\u09cd\u099c\u09c7\u09a3\u09cd\u099f\u09be\u0987\u09a8\u09be
-territories.GT=\u0997\u09cb\u09df\u09be\u099f\u09bf\u09ae\u09be\u09b2\u09be
-territories.MY=\u09ae\u09be\u09b2\u09cd\u09af\u09be\u09b6\u09bf\u09df\u09be
-territories.MX=\u09ae\u0995\u09cd\u09b8\u09bf\u0995\u09cb
-territories.AM=\u0986\u09b0\u09cd\u09ae\u09c7\u09a8\u09bf\u09df\u09be
-territories.GR=\u0997\u09cd\u09b0\u09c0\u09b8\u09cd
-territories.ZA=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
-territories.AL=\u0986\u09b2\u09ac\u09cd\u09af\u09be\u09a8\u09bf\u09df\u09be
-territories.SY=\u09b8\u09bf\u09b0\u09bf\u09df\u09be
-territories.SV=\u09b8\u09be\u09b2\u09ad\u09c7\u09a1\u09b0
-territories.AF=\u0986\u09ab\u0997\u09be\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
-territories.MN=\u09ae\u0999\u09cd\u0997\u09cb\u09b2\u09bf\u09df\u09be
-territories.GH=\u0997\u09be\u09a8\u09be
-territories.SO=\u09b8\u09cb\u09ae\u09be\u09b2\u09bf
-territories.GE=\u099c\u09b0\u09cd\u099c\u09bf\u09df\u09be
-territories.GB=\u0997\u09cd\u09b0\u09c7\u099f\u09ac\u09c3\u099f\u09c7\u09a8
-territories.MG=\u09ae\u09be\u09a6\u09be\u0997\u09be\u09b8\u09cd\u0995\u09be\u09b0
-territories.SK=\u09b6\u09cd\u09b2\u09cb\u09ad\u09be\u0995\u09bf\u09df\u09be
-territories.MD=\u09ae\u09cb\u09b2\u09cd\u09a6\u09be\u09ad\u09bf\u09df\u09be
+currenciesSymbol.XXX=XXX
+shortMonths=\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09c0\u00ae\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09c0\u00ae\u09ae\u09be\u09b0\u09cd\u099a\u00ae\u098f\u09aa\u09cd\u09b0\u09bf\u09b2\u00ae\u09ae\u09c7\u00ae\u099c\u09c1\u09a8\u00ae\u099c\u09c1\u09b2\u09be\u0987\u00ae\u0986\u0997\u09b8\u09cd\u099f\u00ae\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0\u00ae\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u00ae
+months=\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09c0\u00ae\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09c0\u00ae\u09ae\u09be\u09b0\u09cd\u099a\u00ae\u098f\u09aa\u09cd\u09b0\u09bf\u09b2\u00ae\u09ae\u09c7\u00ae\u099c\u09c1\u09a8\u00ae\u099c\u09c1\u09b2\u09be\u0987\u00ae\u0986\u0997\u09b8\u09cd\u099f\u00ae\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0\u00ae\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u00ae
+shortWeekdays=\u00ae\u09b0\u09ac\u09bf\u00ae\u09b8\u09cb\u09ae\u00ae\u09ae\u0999\u09cd\u0997\u09b2\u00ae\u09ac\u09c1\u09a7\u00ae\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u00ae\u09b6\u09c1\u0995\u09cd\u09b0\u00ae\u09b6\u09a8\u09bf\u00ae
+weekdays=\u00ae\u09b0\u09ac\u09bf\u09ac\u09be\u09b0\u00ae\u09b8\u09cb\u09ae\u09ac\u09be\u09b0\u00ae\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0\u00ae\u09ac\u09c1\u09a7\u09ac\u09be\u09b0\u00ae\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0\u00ae\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0\u00ae\u09b6\u09a8\u09bf\u09ac\u09be\u09b0\u00ae
+eras=\u0996\u09c3\u09b7\u09cd\u099f\u09aa\u09c2\u09b0\u09cd\u09ac\u00ae\u0996\u09c3\u09b7\u09cd\u099f\u09be\u09ac\u09cd\u09a6\u00ae
+ampms=\u09aa\u09c2\u09b0\u09cd\u09ac\u09be\u09b9\u09cd\u09a3\u00ae\u0985\u09aa\u09b0\u09be\u09b9\u09cd\u09a3\u00ae
+shortDateFormat=d/M/yy
+mediumDateFormat=d MMM, yyyy
+longDateFormat=d MMMM, yyyy
+fullDateFormat=EEEE, d MMMM, yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=Bangladesh\u00ae\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6 \u09b8\u09ae\u09af\u09bc\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u09aa\u09c2\u09b0\u09cd\u09ac-\u09a4\u09bf\u09ae\u09c1\u09b0
+territories.TK=\u099f\u09cb\u0995\u09c7\u09b2\u09be\u0989
+territories.TJ=\u09a4\u09be\u099c\u09bf\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+territories.TH=\u09a5\u09be\u0987\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.TG=\u099f\u09cb\u0997\u09cb
+territories.TF=\u09ab\u09b0\u09be\u09b8\u09c0 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2
+territories.GY=\u0997\u09be\u09af\u09bc\u09be\u09a8\u09be
+territories.TD=\u099a\u09be\u09a6
+territories.TC=\u09a4\u09c1\u09b0\u09cd\u0995\u09b8 \u0993 \u0995\u09be\u0987\u0995\u09cb\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.GW=\u0997\u09bf\u09a8\u09bf-\u09ac\u09bf\u09b8\u09be\u0989
+territories.GU=\u0997\u09c1\u09af\u09bc\u09be\u09ae
+territories.GT=\u0997\u09c1\u09af\u09bc\u09be\u09a4\u09c7\u09ae\u09be\u09b2\u09be
+territories.GS=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be \u0993 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u09b8\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u0989\u0987\u099a \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e
+territories.GR=\u0997\u09cd\u09b0\u09c0\u09b8
+territories.GQ=\u09a8\u09bf\u09b0\u0995\u09cd\u09b7\u09c0\u09af\u09bc \u0997\u09bf\u09a8\u09bf
+territories.GP=\u0997\u09c1\u09af\u09bc\u09be\u09a6\u09c7\u09b2\u09cc\u09aa
+territories.SZ=\u09b8\u09cb\u09af\u09bc\u09be\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.SY=\u09b8\u09bf\u09b0\u09bf\u09af\u09bc\u09be
+territories.GN=\u0997\u09bf\u09a8\u09bf
+territories.GM=\u0997\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be
+territories.GL=\u0997\u09cd\u09b0\u09c0\u09a8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.SV=\u098f\u09b2 \u09b8\u09be\u09b2\u09ad\u09c7\u09a6\u09b0
+territories.062=\u09a6\u0995\u09cd\u09b7\u09bf\u09a8 \u09ae\u09a7\u09cd\u09af \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.ST=\u09b8\u09be\u0993\u099f\u09cb\u09ae\u09be \u0993 \u09aa\u09cd\u09b0\u09bf\u09a8\u09cd\u09b8\u09bf\u09aa\u09be\u09b2
+territories.GI=\u099c\u09bf\u09ac\u09cd\u09b0\u09be\u09b2\u09cd\u099f\u09be\u09b0
+territories.061=\u09aa\u09b2\u09bf\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.GH=\u0998\u09be\u09a8\u09be
+territories.SR=\u09b8\u09c1\u09b0\u09bf\u09a8\u09be\u09ae
+territories.GG=\u0997\u09cd\u09b0\u09be\u099e\u09cd\u099c\u09bf
+territories.GF=\u09ab\u09b0\u09be\u09b8\u09c0 \u0997\u09be\u09af\u09bc\u09be\u09a8\u09be
+territories.GE=\u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be
+territories.SO=\u09b8\u09cb\u09ae\u09be\u09b2\u09bf\u09af\u09bc\u09be
+territories.GD=\u0997\u09cd\u09b0\u09c7\u09a8\u09be\u09a1\u09be
+territories.SN=\u09b8\u09c7\u09a8\u09c7\u0997\u09be\u09b2
+territories.SM=\u09b8\u09be\u09a8 \u09ae\u09be\u09b0\u09bf\u09a8\u09cb
+territories.GB=\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u099c\u09cd\u09af
+territories.SL=\u09b8\u09bf\u09af\u09bc\u09c7\u09b0\u09be\u09b2\u09bf\u0993\u09a8
+territories.GA=\u0997\u09cd\u09af\u09be\u09ac\u09a8
+territories.SK=\u09b6\u09cd\u09b2\u09cb\u09ad\u09be\u0995\u09bf\u09af\u09bc\u09be
+territories.SJ=\u09b8\u09cd\u09ac\u09be\u09b2\u09ac\u09be\u09b0\u09cd\u09a1 \u0993 \u099c\u09be\u09a8 \u09ae\u09c7\u09af\u09bc\u09c7\u09a8
+territories.SI=\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.SH=\u09b8\u09c7\u09a8\u09cd\u099f \u09b9\u09c7\u09b2\u09c7\u09a8
 territories.SG=\u09b8\u09bf\u0999\u09cd\u0997\u09be\u09aa\u09c1\u09b0
-territories.MA=\u09ae\u09cb\u09b0\u0995\u09cd\u0995\u09cb
 territories.SE=\u09b8\u09c1\u0987\u09a1\u09c7\u09a8
 territories.SD=\u09b8\u09c1\u09a6\u09be\u09a8
-territories.SA=\u09b8\u09be\u0989\u09a6\u09bf \u0986\u09b0\u09ac
-territories.YE=\u0987\u09ae\u09c7\u09a8
-territories.LY=\u09b2\u09bf\u09ac\u09bf\u09df\u09be
+territories.SC=\u09b8\u09bf\u09b8\u09bf\u09b2\u09bf
+territories.SB=\u09b8\u09b2\u09cb\u09ae\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.SA=\u09b8\u09cc\u09a6\u09bf \u0986\u09b0\u09ac
 territories.FR=\u09ab\u09cd\u09b0\u09be\u09a8\u09cd\u09b8
-territories.LV=\u09b2\u09be\u09a4\u09cd\u09ad\u09bf\u09df\u09be
-territories.LU=\u09b2\u09be\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997
-territories.LT=\u09b2\u09bf\u09a4\u09cd\u09ad\u09be
-territories.LR=\u09b2\u09be\u0987\u09ac\u09bf\u09b0\u09bf\u09df\u09be
-territories.RU=\u09b0\u09be\u09b6\u09bf\u09df\u09be
-territories.FI=\u09ab\u09bf\u09a8\u09cd\u09b2\u09cd\u09af\u09be\u09a3\u09cd\u09a1
-territories.LK=\u09b6\u09cd\u09b0\u09c0\u09b2\u0999\u09cd\u0995\u09be
-territories.RO=\u09b0\u09c1\u09ae\u09be\u09a8\u09bf\u09df\u09be
-territories.LB=\u09b2\u09c7\u09ac\u09be\u09a8\u09a8
-territories.LA=\u09b2\u09be\u0993\u09b8
-territories.KZ=\u0995\u09be\u099c\u09be\u0995\u09b8\u09cd\u09a5\u09be\u09a8
-territories.ET=\u0987\u09ab\u09bf\u0993\u09aa\u09bf\u09df\u09be
+territories.FO=\u09ab\u09cd\u09af\u09be\u09b0\u0993 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.057=\u09ae\u09cd\u09af\u09be\u09b2\u09c7\u09a8\u09bf\u09b6\u09be \u0985\u099e\u09cd\u099a\u09b2
+territories.FM=\u09ae\u09be\u0987\u0995\u09cd\u09b0\u09cb\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.RW=\u09b0\u09c1\u09af\u09bc\u09be\u09a8\u09cd\u09a1\u09be
+territories.054=\u09ae\u09cd\u09af\u09be\u09b2\u09c7\u09a8\u09bf\u09b6\u09be
+territories.FK=\u09ab\u0995\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.053=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be \u098f\u09ac\u0982 \u09a8\u09bf\u0989\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.RU=\u09b0\u09be\u09b6\u09bf\u09af\u09bc\u09be
+territories.FJ=\u09ab\u09bf\u099c\u09bf
+territories.FI=\u09ab\u09bf\u09a8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.RS=\u09b8\u09be\u09b0\u09ac\u09bf\u09af\u09bc\u09be
+territories.RO=\u09b0\u09cb\u09ae\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.RE=\u09b0\u09bf\u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8
+territories.ET=\u0987\u09a5\u09bf\u0993\u09aa\u09bf\u09af\u09bc\u09be
 territories.ES=\u09b8\u09cd\u09aa\u09c7\u09a8
-territories.KR=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0995\u09cb\u09b0\u09bf\u09df\u09be
-territories.EH=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae\u09c0 \u09b8\u09be\u09b9\u09be\u09b0\u09be
+territories.ER=\u0987\u09b0\u09bf\u09a4\u09cd\u09b0\u09bf\u09af\u09bc\u09be
+territories.QU=\u0987\u0989\u09b0\u09cb\u09aa\u09c0\u09af\u09bc \u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8
+territories.EH=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u09b8\u09be\u09b9\u09be\u09b0\u09be
 territories.EG=\u09ae\u09bf\u09b6\u09b0
-territories.EE=\u098f\u09b8\u09cd\u09a4\u09cb\u09a8\u09bf\u09df\u09be
-territories.EC=\u0987\u0995\u09cb\u09df\u09be\u09a1\u09b0
-territories.KH=\u0995\u09be\u09ae\u09cd\u09ac\u09cb\u099c
-territories.KG=\u0995\u09bf\u09b0\u09cd\u0997\u09bf\u099c\u09bf\u09df\u09be
-territories.KE=\u0995\u09c7\u09a8\u09bf\u09df\u09be
-territories.DZ=\u098f\u09b2\u099c\u09bf\u09b0\u09bf\u09df\u09be
-territories.PY=\u09aa\u09cd\u09af\u09be\u09b0\u09be\u0997\u09cb\u09df\u09c7
-territories.DK=\u09a1\u09c7\u09a8\u09cd\u09ae\u09be\u09b0\u09cd\u0995
-territories.JP=\u099c\u09be\u09aa\u09be\u09a8
+territories.EE=\u098f\u09b8\u09cd\u09a4\u09cb\u09a8\u09bf\u09af\u09bc\u09be
+territories.QO=\u0986\u0989\u099f\u09b2\u09be\u0987\u09a8\u09bf\u0982 \u0993\u09b8\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.EC=\u0987\u0995\u09c1\u09af\u09bc\u09c7\u09a1\u09b0
+territories.DZ=\u0986\u09b2\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be
+territories.QA=\u0995\u09be\u09a4\u09be\u09b0
+territories.039=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0987\u0989\u09b0\u09cb\u09aa
+territories.DO=\u09a1\u09cb\u09ae\u09c7\u09a8\u09bf\u0995\u09be\u09a8 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0
+territories.PY=\u09aa\u09cd\u09af\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09c7
+territories.DM=\u09a1\u09cb\u09ae\u09c7\u09a8\u09bf\u0995\u09be
+territories.035=\u09a6\u0995\u09cd\u09b7\u09bf\u09a8 \u09aa\u09c2\u09b0\u09cd\u09ac \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.PW=\u09aa\u09be\u09b2\u09be\u0989
+territories.034=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.DK=\u09a1\u09c7\u09a8\u09ae\u09be\u09b0\u09cd\u0995
+territories.DJ=\u099c\u09bf\u09ac\u09c1\u09a4\u09bf
 territories.PT=\u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09be\u09b2
-territories.JO=\u099c\u09b0\u09cd\u09a1\u09a8
-territories.JM=\u099c\u09cd\u09af\u09be\u09ae\u09c7\u0995\u09be
+territories.PS=\u09ab\u09bf\u09b2\u09bf\u09b8\u09cd\u09a4\u09bf\u09a8 \u0985\u099e\u09cd\u099a\u09b2
+territories.030=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.PR=\u09aa\u09c1\u09af\u09bc\u09c7\u09b0\u09cd\u099f\u09cb\u09b0\u09bf\u0995\u09cb
 territories.DE=\u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
-territories.PL=\u09aa\u09cb\u09b2\u09cd\u09af\u09be\u09a3\u09cd\u09a1
+territories.PN=\u09aa\u09bf\u099f\u0995\u09c7\u09af\u09bc\u09be\u09b0\u09cd\u09a8
+territories.PM=\u09b8\u09c7\u09a8\u09cd\u099f \u09aa\u09bf\u09af\u09bc\u09c7\u09b0 \u0993 \u09ae\u09bf\u0995\u09c1\u09af\u09bc\u09c7\u09b2\u09a8
+territories.PL=\u09aa\u09cb\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
 territories.PK=\u09aa\u09be\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
-territories.VN=\u09ad\u09bf\u09df\u09c7\u09a4\u09a8\u09be\u09ae
 territories.PH=\u09ab\u09bf\u09b2\u09bf\u09aa\u09be\u0987\u09a8
-territories.PE=\u09aa\u09bf\u09b0\u09c1
-territories.CZ=\u099a\u09c7\u0995\u09bf\u09df\u09be
+territories.PG=\u09aa\u09be\u09aa\u09c1\u09af\u09bc\u09be \u09a8\u09bf\u0989 \u0997\u09bf\u09a8\u09bf
+territories.PF=\u09ab\u09b0\u09be\u09b8\u09c0 \u09aa\u09b2\u09bf\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.CZ=\u099a\u09c7\u0995 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0
+territories.PE=\u09aa\u09c7\u09b0\u09c1
+territories.CY=\u09b8\u09be\u0987\u09aa\u09cd\u09b0\u09be\u09b8
+territories.CX=\u0995\u09cd\u09b0\u09bf\u09b8\u09ae\u09be\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa
+territories.CV=\u0995\u09c7\u09aa\u09ad\u09be\u09b0\u09cd\u09a6\u09c7
 territories.PA=\u09aa\u09be\u09a8\u09be\u09ae\u09be
-territories.VE=\u09ad\u09c7\u09a8\u09c7\u099c\u09c1\u09df\u09c7\u09b2\u09be
 territories.CU=\u0995\u09bf\u0989\u09ac\u09be
 territories.CR=\u0995\u09cb\u09b8\u09cd\u099f\u09be\u09b0\u09bf\u0995\u09be
-territories.CO=\u0995\u09cb\u09b2\u09cb\u09ae\u09cd\u09ac\u09bf\u09df\u09be
-territories.IT=\u0987\u09a4\u09be\u09b2\u09c0
+territories.029=\u0995\u09cd\u09af\u09be\u09b0\u09be\u09ac\u09bf\u09af\u09bc\u09be\u09a8
+territories.CO=\u0995\u09b2\u09cb\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be
 territories.CN=\u099a\u09c0\u09a8
-territories.IS=\u0986\u0987\u09b8\u09b2\u09a3\u09cd\u09a1
-territories.IR=\u0987\u09b0\u09be\u09a8
+territories.CM=\u0995\u09cd\u09af\u09be\u09ae\u09c7\u09b0\u09c1\u09a8
 territories.CL=\u099a\u09bf\u09b2\u09bf
-territories.IQ=\u0987\u09b0\u09be\u0995
-territories.UZ=\u0989\u099c\u09cd\u09ac\u09c7\u0995\u09bf\u09b8\u09cd\u09a5\u09be\u09a8
-territories.UY=\u0989\u09b0\u09c1\u0997\u09cb\u09df\u09c7
-territories.IN=\u09ad\u09be\u09b0\u09a4
-territories.CH=\u09b8\u09c1\u0987\u099c\u09b0\u09cd\u09b2\u09a3\u09cd\u09a1
-territories.CG=\u0995\u0999\u09cd\u0997\u09cb
-territories.IL=\u0987\u09b8\u09cd\u09b0\u09be\u09df\u09c7\u09b2
-territories.US=\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0
-territories.IE=\u0986\u09df\u09be\u09b0\u09cd\u09b2\u09a3\u09cd\u09a1
-territories.ID=\u0987\u09a8\u09cd\u09a6\u09cb\u09a8\u09c7\u09b6\u09bf\u09df\u09be
-territories.BY=\u09ac\u09c7\u09b2\u09cb\u09b0\u09c1\u09b6\u09bf\u09df\u09be
+territories.CK=\u0995\u09c1\u0995 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.021=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be
+territories.CI=\u0986\u0987\u09ad\u09b0\u09bf \u0995\u09cb\u09b8\u09cd\u099f
+territories.CH=\u09b8\u09c1\u0987\u099c\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.CG=\u0995\u0999\u09cd\u0997\u09cb - \u09ac\u09cd\u09b0\u09cd\u09af\u09be\u099c\u09c7\u09ac\u09bf\u09b2
+territories.CF=\u09ae\u09a7\u09cd\u09af \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be\u09a8 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0
+territories.CD=\u0995\u0999\u09cd\u0997\u09cb - \u0995\u09bf\u09a8\u09b8\u09be\u09b8\u09be
+territories.CC=\u0995\u09cb\u0995\u09cb\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.OM=\u0993\u09ae\u09be\u09a8
+territories.CA=\u0995\u09be\u09a8\u09be\u09a1\u09be
+territories.419=\u09b2\u09cd\u09af\u09be\u099f\u09bf\u09a8 \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be \u098f\u09ac\u0982 \u0995\u09cd\u09af\u09be\u09b0\u09be\u09ac\u09bf\u09af\u09bc\u09be\u09a8
+territories.BZ=\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09ae
+territories.BY=\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b8
+territories.BW=\u09ac\u09a4\u09b8\u09cb\u09af\u09bc\u09be\u09a8\u09be
+territories.BV=\u09ac\u09cb\u09ad\u09c7\u099f \u09a6\u09cd\u09ac\u09c0\u09aa
 territories.BT=\u09ad\u09c1\u099f\u09be\u09a8
+territories.BS=\u09ac\u09be\u09b9\u09be\u09ae\u09be \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
 territories.BR=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2
-territories.UA=\u0987\u0989\u0995\u09cd\u09b0\u09c7\u0987\u09a8
-territories.NZ=\u09a8\u09bf\u0989 \u099c\u09bf\u09b2\u09a3\u09cd\u09a1
-territories.HU=\u09b9\u09be\u0999\u09cd\u0997\u09c7\u09b0\u09bf
-territories.BO=\u09ac\u09cb\u09b2\u09bf\u09ad\u09bf\u09df\u09be
-territories.HN=\u09b9\u09a3\u09cd\u09a1\u09c1\u09b0\u09be\u09b8
-territories.TW=\u09a4\u09be\u0987\u0993\u09df\u09be\u09a8
-territories.BG=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09bf\u09df\u09be
+territories.019=\u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be
+territories.018=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.NZ=\u09a8\u09bf\u0989\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.017=\u09ae\u09a7\u09cd\u09af \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.BO=\u09ac\u09b2\u09bf\u09ad\u09bf\u09af\u09bc\u09be
+territories.BN=\u09ac\u09cd\u09b0\u09c1\u09a8\u09c7\u0987
+territories.015=\u0989\u09a4\u09cd\u09a4\u09b0 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.BM=\u09ac\u09be\u09b0\u09ae\u09c1\u09a1\u09be
+territories.014=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.BL=\u09b8\u09c7\u09a8\u09cd\u099f
+territories.013=\u09ae\u09a7\u09cd\u09af \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be
+territories.NU=\u09a8\u09bf\u0989\u09af\u09bc\u09c7
+territories.BJ=\u09ac\u09c7\u09a8\u09bf\u09a8
+territories.011=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.BI=\u09ac\u09c1\u09b0\u09c1\u09a8\u09cd\u09a1\u09bf
+territories.172=\u09b8\u09cd\u09ac\u09be\u09a7\u09c0\u09a8 \u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0\u09c7\u09b0 \u0995\u09ae\u09a8\u0993\u09af\u09bc\u09c7\u09b2\u09a5
+territories.BH=\u09ac\u09be\u09b9\u09b0\u09be\u0987\u09a8
+territories.NR=\u09a8\u09be\u0989\u09b0\u09c1
+territories.BG=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09bf\u09af\u09bc\u09be
+territories.BF=\u09ac\u09c1\u09b0\u0995\u09bf\u09a8\u09be \u09ab\u09be\u09b8\u09cb
 territories.NP=\u09a8\u09c7\u09aa\u09be\u09b2
-territories.NO=\u09a8\u09b0\u0993\u09df\u09c7
-territories.BE=\u09ac\u09c7\u09b2\u09cd\u099c\u09bf\u09df\u09ae
+territories.BE=\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09ae
+territories.ZZ=\u0985\u099c\u09be\u09a8\u09be \u0985\u09a5\u09ac\u09be \u09ad\u09c1\u09b2 \u09b8\u09cd\u09a5\u09be\u09a8
+territories.NO=\u09a8\u09b0\u0993\u09af\u09bc\u09c7
 territories.BD=\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6
-territories.TR=\u09a4\u09c1\u09b0\u09b8\u09cd\u0995
-territories.NL=\u09b9\u09b2\u09a3\u09cd\u09a1
-territories.TN=\u099f\u09bf\u0989\u09a8\u09bf\u09b8\u09cd
-territories.NI=\u09a8\u09bf\u0995\u09be\u09b0\u09be\u0997\u09cb\u09df\u09be
-territories.TM=\u09a4\u09c1\u09b0\u09cd\u0995\u09ae\u09c7\u09a8\u09bf\u09df\u09be
-territories.TJ=\u09a4\u09be\u099c\u09bf\u0995\u09b8\u09cd\u09a5\u09be\u09a8
+territories.BB=\u09ac\u09be\u09b0\u09ac\u09be\u09a6\u09cb\u09b8
+territories.ZW=\u099c\u09bf\u09ae\u09cd\u09ac\u09be\u09ac\u09c1\u09af\u09bc\u09c7
+territories.NL=\u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.BA=\u09ac\u09b8\u09a8\u09bf\u09af\u09bc\u09be \u0993 \u09b9\u09be\u09b0\u09cd\u099c\u09c7\u0997\u09cb\u09ad\u09bf\u09a8\u09be
+territories.NI=\u09a8\u09bf\u0995\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09be
+territories.NG=\u09a8\u09be\u0987\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be
+territories.NF=\u09a8\u09bf\u09b0\u09ab\u09cb\u0995 \u09a6\u09cd\u09ac\u09c0\u09aa
 territories.AZ=\u0986\u099c\u09be\u09b0\u09ac\u09be\u0987\u099c\u09be\u09a8
-territories.TH=\u09a5\u09be\u0987
+territories.NE=\u09a8\u09be\u0987\u099c\u09be\u09b0
+territories.AX=\u0986\u09b2\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.NC=\u09a8\u09bf\u0989 \u0995\u09cd\u09af\u09be\u09b2\u09c7\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be
+territories.AW=\u0986\u09b0\u09c1\u09ac\u09be
+territories.ZM=\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be
+territories.NA=\u09a8\u09be\u09ae\u09bf\u09ac\u09bf\u09af\u09bc\u09be
+territories.AU=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be
+territories.AT=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be
+territories.AS=\u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09a8 \u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be
+territories.AR=\u0986\u09b0\u09cd\u099c\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09be
+territories.AQ=\u098f\u09a8\u09cd\u099f\u09be\u09b0\u09cd\u0995\u099f\u09bf\u0995\u09be
+territories.009=\u0993\u09b8\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.MZ=\u09ae\u09cb\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u0995
+territories.AO=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be
+territories.MY=\u09ae\u09be\u09b2\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.AN=\u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8 \u098f\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09bf\u09b2\u09bf\u09b8
+territories.MX=\u09ae\u09c7\u0995\u09cd\u09b8\u09bf\u0995\u09cb
+territories.AM=\u0986\u09b0\u09cd\u09ae\u09c7\u09a8\u09bf\u09af\u09bc\u09be
+territories.005=\u09a6\u0995\u09cd\u09b7\u09bf\u09a8 \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be
+territories.MW=\u09ae\u09be\u09b2\u09be\u0989\u0987
+territories.AL=\u0986\u09b2\u09ac\u09c7\u09a8\u09bf\u09af\u09bc\u09be
+territories.MV=\u09ae\u09be\u09b2\u09a6\u09cd\u09ac\u09c0\u09aa
+territories.003=\u0989\u09a4\u09cd\u09a4\u09b0 \u0986\u09ae\u09c7\u09b0\u09bf\u0995
+territories.ZA=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.MU=\u09ae\u09b0\u09bf\u09b6\u09be\u09b8
+territories.002=\u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.MT=\u09ae\u09be\u09b2\u09cd\u099f\u09be
+territories.AI=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09c1\u0987\u09b2\u09be
+territories.001=\u09aa\u09c3\u09a5\u09bf\u09ac\u09c0
+territories.MS=\u09ae\u09a8\u09cd\u099f\u09b8\u09c7\u09b0\u09be\u099f
+territories.MR=\u09ae\u09b0\u09bf\u09a4\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.AG=\u098f\u09a8\u09cd\u099f\u09bf\u0997\u09c1\u09af\u09bc\u09be \u0993 \u09ac\u09be\u09b0\u09ac\u09c1\u09a1\u09be
+territories.MQ=\u09ae\u09be\u09b0\u09cd\u099f\u09bf\u09a8\u09bf\u0995
+territories.AF=\u0986\u09ab\u0997\u09be\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+territories.MP=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09ae\u09be\u09b0\u09bf\u09af\u09bc\u09be\u09a8\u09be \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.AE=\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0986\u09b0\u09ac \u0986\u09ae\u09bf\u09b0\u09be\u09a4
+territories.MO=\u09ae\u09cd\u09af\u09be\u0995\u09be\u0993
+territories.AD=\u098f\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09cb\u09b0\u09be
+territories.MN=\u09ae\u0999\u09cd\u0997\u09cb\u09b2\u09bf\u09af\u09bc\u09be
+territories.MM=\u09ae\u09be\u09af\u09bc\u09be\u09a8\u09ae\u09be\u09b0
+territories.ML=\u09ae\u09be\u09b2\u09bf
+territories.MK=\u09ae\u09cd\u09af\u09be\u09b8\u09be\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be
+territories.YT=\u09ae\u09be\u09af\u09bc\u09cb\u09a4\u09cd\u09a4\u09c7
+territories.MH=\u09ae\u09be\u09b0\u09cd\u09b6\u09be\u09b2 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.MG=\u09ae\u09be\u09a6\u09be\u0997\u09be\u09b8\u09cd\u0995\u09be\u09b0
+territories.MF=\u09b8\u09c7\u09a8\u09cd\u099f \u09ae\u09be\u09b0\u09cd\u099f\u09bf\u09a8
+territories.ME=\u09ae\u09a8\u09cd\u099f\u09bf\u09a8\u09bf\u0997\u09cd\u09b0\u09cb
+territories.MD=\u09ae\u09b2\u09a1\u09cb\u09ad\u09be
+territories.MC=\u09ae\u09cb\u09a8\u09be\u0995\u09cb
+territories.MA=\u09ae\u09b0\u0995\u09cd\u0995\u09cb
+territories.YE=\u0987\u09af\u09bc\u09c7\u09ae\u09c7\u09a8
+territories.LY=\u09b2\u09bf\u09ac\u09bf\u09af\u09bc\u09be
+territories.LV=\u09b2\u09be\u099f\u09ad\u09bf\u09af\u09bc\u09be
+territories.155=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0987\u0989\u09b0\u09cb\u09aa
+territories.LU=\u09b2\u09c1\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997
+territories.154=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0987\u0989\u09b0\u09cb\u09aa
+territories.LT=\u09b2\u09bf\u09a5\u09c1\u09af\u09bc\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.LS=\u09b2\u09c7\u09b8\u09cb\u09a5\u09cb
+territories.LR=\u09b2\u09be\u0987\u09ac\u09c7\u09b0\u09bf\u09af\u09bc\u09be
+territories.151=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u0987\u0989\u09b0\u09cb\u09aa
+territories.150=\u0987\u0989\u09b0\u09cb\u09aa
+territories.LK=\u09b6\u09cd\u09b0\u09c0\u09b2\u0999\u09cd\u0995\u09be
+territories.LI=\u09b2\u09bf\u099a\u09c7\u09a8\u09b8\u09cd\u099f\u09c7\u0987\u09a8
+territories.LC=\u09b8\u09c7\u09a8\u09cd\u099f \u09b2\u09c1\u09b8\u09bf\u09af\u09bc\u09be
+territories.LB=\u09b2\u09c7\u09ac\u09be\u09a8\u09a8
+territories.LA=\u09b2\u09be\u0993\u09b8
+territories.KZ=\u0995\u09be\u099c\u09be\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+territories.KY=\u0995\u09c7\u09ae\u09cd\u09af\u09be\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.KW=\u0995\u09c1\u09af\u09bc\u09c7\u09a4
+territories.145=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.143=\u09ae\u09a7\u09cd\u09af \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.142=\u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.KR=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be
+territories.KP=\u0989\u09a4\u09cd\u09a4\u09b0 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be
+territories.KN=\u09b8\u09c7\u09a8\u09cd\u099f \u0995\u09bf\u099f\u09b8 \u0993 \u09a8\u09c7\u09ad\u09bf\u09b8
+territories.KM=\u0995\u09ae\u09cb\u09b0\u09cb\u09b8
+territories.KI=\u0995\u09bf\u09b0\u09bf\u09ac\u09be\u09a4\u09bf
+territories.WS=\u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be
+territories.KH=\u0995\u09ae\u09cd\u09ac\u09cb\u09a1\u09bf\u09af\u09bc\u09be
+territories.KG=\u0995\u09bf\u09b0\u0997\u09bf\u099c\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+territories.KE=\u0995\u09c7\u09a8\u09bf\u09af\u09bc\u09be
+territories.WF=\u0993\u09af\u09bc\u09be\u09b2\u09bf\u09b8 \u0993 \u09ab\u09c1\u099f\u09c1\u09a8\u09be
+territories.JP=\u099c\u09be\u09aa\u09be\u09a8
+territories.JO=\u099c\u09b0\u09cd\u09a1\u09be\u09a8
+territories.JM=\u099c\u09cd\u09af\u09be\u09ae\u09be\u0987\u0995\u09be
+territories.VU=\u09ad\u09be\u09a8\u09c1\u09af\u09bc\u09be\u099f\u09c1
+territories.JE=\u099c\u09be\u09b0\u09cd\u09b8\u09bf
+territories.VN=\u09ad\u09bf\u09af\u09bc\u09c7\u09a4\u09a8\u09be\u09ae
+territories.VI=\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09ad\u09be\u09b0\u09cd\u099c\u09bf\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.VG=\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09ad\u09be\u09b0\u09cd\u099c\u09bf\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.VE=\u09ad\u09c7\u09a8\u09bf\u099c\u09c1\u09af\u09bc\u09c7\u09b2\u09be
+territories.VC=\u09b8\u09c7\u09a8\u09cd\u099f \u09ad\u09bf\u09a8\u09b8\u09c7\u09a8\u09cd\u099f \u0993 \u09a6\u09cd\u09af\u09be \u0997\u09cd\u09b0\u09c7\u09a8\u09be\u09a1\u09bf\u09a8\u09b8
+territories.VA=\u09ad\u09cd\u09af\u09be\u099f\u09bf\u0995\u09be\u09a8 \u09b8\u09bf\u099f\u09bf
+territories.IT=\u0987\u09a4\u09be\u09b2\u09bf
+territories.IS=\u0986\u0987\u09b8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.IR=\u0987\u09b0\u09be\u09a8
+territories.IQ=\u0987\u09b0\u09be\u0995
+territories.UZ=\u0989\u099c\u09ac\u09c7\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+territories.IO=\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09ad\u09be\u09b0\u09a4 \u09ae\u09b9\u09be\u09b8\u09be\u0997\u09b0\u09c0\u09af\u09bc \u0985\u099e\u09cd\u099a\u09b2
+territories.UY=\u0989\u09b0\u09c1\u0997\u09c1\u09af\u09bc\u09c7
+territories.IN=\u09ad\u09be\u09b0\u09a4
+territories.IM=\u09ae\u09cd\u09af\u09be\u09a8\u09a6\u09cd\u09ac\u09c0\u09aa
+territories.IL=\u0987\u09b8\u09b0\u09be\u0987\u09b2
+territories.US=\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0
+territories.IE=\u0986\u09af\u09bc\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.ID=\u0987\u09a8\u09cd\u09a6\u09cb\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.UM=\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0\u09c7\u09b0 \u0995\u09cd\u09b7\u09c1\u09a6\u09cd\u09b0 \u0993 \u09aa\u09be\u09b0\u09cd\u09b6\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.UG=\u0989\u0997\u09be\u09a8\u09cd\u09a1\u09be
+territories.UA=\u0987\u0989\u0995\u09cd\u09b0\u09c7\u09a8
+territories.HU=\u09b9\u09be\u0999\u09cd\u0997\u09c7\u09b0\u09bf
+territories.HT=\u09b9\u09be\u0987\u09a4\u09bf
+territories.HR=\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.TZ=\u09a4\u09be\u099e\u09cd\u099c\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.HN=\u09b9\u09a3\u09cd\u09a1\u09b0\u09be\u09b8
+territories.HM=\u09b9\u09be\u09b0\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa \u098f\u09ac\u0982 \u09ae\u09cd\u09af\u09be\u0995\u09a1\u09cb\u09a8\u09be\u09b2\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.TW=\u09a4\u09be\u0987\u0993\u09af\u09bc\u09be\u09a8
+territories.TV=\u099f\u09c1\u09ad\u09be\u09b2\u09c1
+territories.HK=\u09b9\u0982\u0995\u0982
+territories.TT=\u09a4\u09cd\u09b0\u09bf\u09a8\u09bf\u09a8\u09be\u09a6 \u0993 \u099f\u09cb\u09ac\u09cd\u09af\u09be\u0997\u09cb
+territories.TR=\u09a4\u09c1\u09b0\u09b8\u09cd\u0995
+territories.TO=\u099f\u09cb\u0999\u09cd\u0997\u09be
+territories.TN=\u09a4\u09bf\u0989\u09a8\u09bf\u09b6\u09bf\u09af\u09bc\u09be
+territories.TM=\u09a4\u09c1\u09b0\u09cd\u0995\u09ae\u09c7\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+languages.gwi=\u0997\u0993\u0987\u099a\u09cd\u2019\u0987\u09a8
+languages.akk=\u0986\u0995\u09cd\u0995\u09be\u09a6\u09bf\u09af\u09bc\u09be\u09a8
+languages.eka=\u0987\u0995\u09be\u099c\u09c1\u0995
+languages.ijo=\u0987\u099c\u09cb
+languages.xh=\u099c\u09cb\u09b8\u09be
+languages.sux=\u09b8\u09c1\u09ae\u09c7\u09b0\u09c0\u09af\u09bc
+languages.sus=\u09b8\u09c1\u09b8\u09c1
+languages.mis=\u09ac\u09bf\u09ac\u09bf\u09a7 \u09ad\u09be\u09b7\u09be
+languages.loz=\u09b2\u09cb\u099c\u09bf
+languages.tog=\u09a8\u09be\u09af\u09bc\u09be\u09b8\u09be \u099f\u09cb\u0999\u09cd\u0997\u09be
+languages.zbl=\u099a\u09bf\u09a4\u09cd\u09b0 \u09ad\u09be\u09b7\u09be
+languages.pon=\u09aa\u09cb\u09b9\u09cd\u09a8\u09aa\u09c7\u0987\u09af\u09bc\u09be\u09a8
+languages.min=\u09ae\u09bf\u09a8\u09be\u0999\u09cd\u0997\u09cd\u200c\u0995\u09be\u09ac\u09be\u0989
+languages.suk=\u09b8\u09c1\u0995\u09c1\u09ae\u09be
+languages.wo=\u0989\u0993\u09b2\u09cb\u09ab
+languages.lol=\u09ae\u09cb\u0999\u09cd\u0997\u09cb
+languages.kut=\u0995\u09c1\u099f\u09c7\u09a8\u09be\u0987
+languages.mic=\u09ae\u09bf\u0995\u09ae\u09cd\u09af\u09be\u0995
+languages.wa=\u0993\u09af\u09bc\u09be\u09b2\u09c1\u09a8
+languages.kum=\u0995\u09c1\u09ae\u09bf\u0995
+languages.zap=\u099c\u09be\u09aa\u09cb\u099f\u09c7\u0995
+languages.ain=\u0986\u0987\u09a8\u09c1
+languages.cus=\u0995\u09c1\u09b6\u09bf\u09a4\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.jbo=\u09b2\u09cb\u099c\u09ac\u09be\u09a8
+languages.doi=\u09a6\u09cb\u0997\u09b0\u09bf
+languages.zza=\u099c\u09be\u099c\u09be
+languages.vo=\u09ad\u09cb\u09b2\u09be\u09aa\u09c1\u0995
+languages.oto=\u0985\u099f\u09cb\u09ae\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.vi=\u09ad\u09bf\u09af\u09bc\u09c7\u09a4\u09a8\u09be\u09ae\u09c0
+languages.vai=\u09ad\u09be\u0987
+languages.rar=\u09b0\u09be\u09b0\u09cb\u099f\u09cb\u0997\u09cd\u09af\u09be\u09a8
+languages.ve=\u09ad\u09c7\u09a8\u09cd\u09a1\u09be
+languages.rap=\u09b0\u09be\u09aa\u09be\u09a8\u09c1\u0987
+languages.raj=\u09b0\u09be\u099c\u09b8\u09cd\u09a5\u09be\u09a8\u09c0
+languages.ota=\u0985\u099f\u09cb\u09ae\u09be\u09a8 \u09a4\u09c1\u09b0\u09cd\u0995\u09bf
+languages.nzi=\u098f\u09a8\u09cd.\u099c\u09bf\u09ae\u09be
+languages.nap=\u09a8\u09c7\u09af\u09bc\u09be\u09aa\u09cb\u09b2\u09bf\u099f\u09be\u09a8
+languages.uz=\u0989\u099c\u09ac\u09c7\u0995\u09c0\u09af\u09bc
+languages.uga=\u0989\u0997\u09be\u09b0\u09bf\u099f\u09bf\u0995
+languages.tmh=\u09a4\u09be\u09ae\u09be\u09b6\u09c7\u0995
+languages.nai=\u0989\u09a4\u09cd\u09a4\u09f1 \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09b0 \u0987\u09a8\u09cd\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.nah=\u09a8\u09be\u09b9\u09c1\u09ce\u09b2
+languages.ur=\u0989\u09b0\u09cd\u09a6\u09c1
+languages.fat=\u09ab\u09be\u09a8\u09cd\u09a4\u09bf
+languages.uk=\u0987\u0989\u0995\u09cd\u09b0\u09c7\u09a8\u09c0\u09af\u09bc
+languages.egy=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09ae\u09bf\u09b6\u09b0\u09c0\u09af\u09bc
+languages.zxx=\u09ad\u09be\u09b7\u09be\u09a4\u09be\u09a4\u09cd\u09a4\u09bf\u0995 \u09ac\u09bf\u09b7\u09af\u09bc\u09b8\u09c2\u099a\u09c0 \u09ac\u09b9\u09bf\u09b0\u09cd\u09ad\u09c1\u09a4
+languages.ug=\u0989\u0987\u0998\u09c1\u09b0
+languages.fan=\u09ab\u09cd\u09af\u09be\u0999\u09cd\u0997
+languages.ssa=\u09a8\u09bf\u09b2\u09cb-\u09b8\u09be\u09b9\u09be\u09b0\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.mga=\u09ae\u09a7\u09cd\u09af \u0986\u0987\u09b0\u09bf\u09b6
+languages.bat=\u09ac\u09be\u09b2\u09cd\u099f\u09bf\u0995
+languages.nyo=\u09a8\u09be\u09af\u09bc\u09cb\u09b0\u09cb
+languages.bas=\u09ac\u09be\u09b8\u09be
+languages.nyn=\u09a8\u09be\u09af\u09bc\u09be\u0999\u09cd\u0995\u09cb\u09b2\u09c7
+languages.nym=\u09a8\u09be\u09af\u09bc\u09be\u09ae\u0993\u09af\u09bc\u09c7\u099c\u09bf
+languages.gsw=\u09b8\u09c1\u0987\u09b8 \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.hmn=\u09b9\u09cd\u200c\u09ae\u09cb\u0999
+languages.ban=\u09ac\u09be\u09b2\u09bf\u09a8\u09c0\u09af\u09bc
+languages.osa=\u0993\u09b8\u09cd\u09af\u09be\u0997\u09c7
+languages.bal=\u09ac\u09c7\u09b2\u09c1\u099a\u09c0\u09af\u09bc
+languages.ty=\u09a4\u09be\u09b9\u09bf\u09a4\u09bf\u09af\u09bc\u09be\u09a8
+languages.bai=\u09ac\u09be\u09ae\u09bf\u09b2\u09c7\u0995\u09c7
+languages.tw=\u099f\u09cb\u09af\u09bc\u09be\u0987
+languages.srr=\u09b8\u09c7\u09b0\u09c7
+languages.tli=\u09a4\u09cd\u09b2\u09bf\u0999\u09cd\u0997\u09bf\u099f
+languages.tlh=\u0995\u09cd\u09b2\u09bf\u0999\u09cd\u0997\u09a8
+languages.tt=\u09a4\u09be\u09a4\u09be\u09b0
+languages.ts=\u09a4\u09cd\u200d\u09b8\u0999\u09cd\u0997\u09be
+languages.srn=\u09b8\u09cd\u09b0\u09be\u09a8\u09be\u09a8 \u099f\u09cb\u0999\u09cd\u0997\u09cb
+languages.bad=\u09ac\u09be\u09a8\u09cd\u09a6\u09be
+languages.tr=\u09a4\u09c1\u09b0\u09cd\u0995\u09c0
+languages.to=\u099f\u0999\u09cd\u0997\u09be
+languages.tn=\u09a4\u09cd\u200d\u09b8\u0993\u09af\u09bc\u09be\u09a8\u09be
+languages.tl=\u09a4\u09be\u0997\u09be\u09b2\u0997
+languages.tk=\u09a4\u09c1\u09b0\u09cd\u0995\u09ae\u09c7\u09a8\u09c0
+languages.ti=\u09a4\u09bf\u0997\u09b0\u09bf\u09a8\u09bf\u09af\u09bc\u09be
+languages.th=\u09a5\u09be\u0987
+languages.kru=\u0995\u09c1\u09b0\u09c1\u0996
+languages.tg=\u09a4\u09be\u099c\u09bf\u0995
+languages.byn=\u09ac\u09cd\u09b2\u09bf\u09a8
+languages.te=\u09a4\u09c7\u09b2\u09c7\u0997\u09c1
+languages.kro=\u0995\u09cd\u09b0\u09c1
+languages.csb=\u0995\u09be\u09b6\u09c1\u09ac\u09bf\u09af\u09bc\u09be\u09a8
+languages.ta=\u09a4\u09be\u09ae\u09bf\u09b2
+languages.krl=\u0995\u09be\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be\u09a8
+languages.tkl=\u099f\u09cb\u0995\u09c7\u09b2\u09be\u0989
+languages.efi=\u098f\u09ab\u09bf\u0995
+languages.sw=\u09b8\u09cb\u09af\u09bc\u09be\u09b9\u09bf\u09b2\u09bf
+languages.sv=\u09b8\u09c1\u0987\u09a1\u09bf\u09b6
+languages.su=\u09b8\u09c1\u09a6\u09be\u09a8\u09c0
+languages.krc=\u0995\u09be\u09b0\u099a\u09c7-\u09ac\u09be\u09b2\u09cd\u0995\u09be\u09b0
+languages.st=\u09a6\u0995\u09cd\u09b7\u09bf\u09a8 \u09b8\u09cb\u09a5\u09cb
+languages.ss=\u09b8\u09cb\u09af\u09bc\u09be\u09a4\u09bf
+languages.sr=\u09b8\u09be\u09b0\u09cd\u09ac\u09c0\u09af\u09bc
+languages.sq=\u0986\u09b2\u09ac\u09c7\u09a8\u09c0\u09af\u09bc
+languages.men=\u09ae\u09c7\u09a8\u09cd\u09a1\u09c7
+languages.crp=\u0995\u09cd\u09b0\u09c7\u0993\u09b2 \u0985\u09a5\u09ac\u09be \u09aa\u09bf\u099c\u09bf\u09a8
+languages.so=\u09b8\u09cb\u09ae\u09be\u09b2\u09c0
+languages.afh=\u0986\u09ab\u09cd\u09b0\u09bf\u09b9\u09bf\u09b2\u09bf
+languages.sn=\u09b6\u09cb\u09a8\u09be
+languages.sm=\u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be\u09a8
+languages.sl=\u09b8\u09cd\u09b2\u09cb\u09ad\u09c7\u09a8\u09c0\u09af\u09bc
+languages.grc=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u0997\u09cd\u09b0\u09c0\u0995
+languages.sk=\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u0995
+languages.grb=\u0997\u09cd\u09b0\u09c7\u09ac\u09cb
+languages.si=\u09b8\u09bf\u0982\u09b9\u09b2\u09c0
+languages.sh=\u09b8\u09be\u09b0\u09cd\u09ac\u09cb-\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc
+languages.crh=\u0995\u09cd\u09b0\u09be\u0987\u09ae\u09bf\u0993 \u09a4\u09c1\u09b0\u09cd\u0995\u09bf
+languages.afa=\u0985\u09ab\u09cd\u09b0\u09cb-\u098f\u09b6\u09bf\u09af\u09bc\u09be\u099f\u09bf\u0995
+languages.sg=\u09b8\u09be\u0999\u09cd\u0997\u09cb
+languages.se=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09b8\u09be\u09ae\u09bf
+languages.sd=\u09b8\u09bf\u09a8\u09cd\u09a7\u09bf
+languages.udm=\u0989\u09a1\u09ae\u09c1\u09b0\u09cd\u099f
+languages.sc=\u09b8\u09be\u09b0\u09cd\u09a1\u09bf\u09a8\u09cb\u09af\u09bc\u09be\u09a8
+languages.sa=\u09b8\u0982\u09b7\u09cd\u0995\u09c3\u09a4
+languages.rw=\u0995\u09bf\u09a8\u09af\u09bc\u09be\u09b0\u09cb\u09af\u09bc\u09be\u09a8\u09cd\u09a1\u09be
+languages.nwc=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09a8\u09c7\u0993\u09af\u09bc\u09be\u09b0\u09c0
+languages.ru=\u09b0\u09c1\u09b6
+languages.mdr=\u09ae\u09cd\u09af\u09be\u09a3\u09cd\u09a1\u09be\u09b0
+languages.ro=\u09b0\u09cb\u09ae\u09be\u09a8\u09c0\u09af\u09bc
+languages.rn=\u09b0\u09c1\u09a8\u09cd\u09a6\u09bf
+languages.rm=\u09b0\u09c7\u099f\u09cb-\u09b0\u09cb\u09ae\u09be\u09a8\u09c0\u09af\u09bc
+languages.fr_CH=\u09b8\u09c1\u0987\u09b8 \u09ab\u09b0\u09be\u09b8\u09bf
+languages.mdf=\u09ae\u09cb\u0995\u09b6\u09be
+languages.tiv=\u099f\u09bf\u09ad
+languages.fr_CA=\u0995\u09be\u09a8\u09be\u09a1\u09c0\u09af\u09bc \u09ab\u09b0\u09be\u09b8\u09bf
+languages.ady=\u0986\u09a6\u09c7\u0997\u09c7
+languages.zun=\u099c\u09c1\u09a8\u09bf
+languages.kpe=\u0995\u09cd\u200c\u09aa\u09c7\u09b2\u09cd\u09b2\u09c7
+languages.qu=\u0995\u09c7\u099a\u09c1\u09af\u09bc\u09be
+languages.tig=\u099f\u09be\u0987\u0997\u09cd\u09b0\u09c7
+languages.son=\u09b8\u09cb\u0999\u09cd\u0997\u09b9\u09be\u0987
+languages.cpp=\u09aa\u09cb\u09b0\u09cd\u09a4\u09c1\u0997\u09bf\u099c-\u09ad\u09bf\u09a4\u09cd\u09a4\u09bf\u0995 \u0995\u09cd\u09b0\u09c7\u0993\u09b2 \u09ac\u09be \u09aa\u09bf\u099c\u09a8
+languages.rup=\u0986\u09b0\u09cb\u09ae\u09be\u09a8\u09bf\u09af\u09bc
+languages.sog=\u09b8\u09cb\u0997\u09a1\u09bf\u09af\u09bc\u09be\u09a8
+languages.ada=\u0985\u09a6\u09be\u0997\u09cd\u09ae\u09c7
+languages.kos=\u0995\u09cb\u09b8\u09cd\u09b0\u09be\u0987\u09a8
+languages.hit=\u09b9\u09bf\u099f\u09cd\u099f\u09bf\u099f
+languages.cpf=\u09ab\u09b0\u09be\u09b8\u09bf \u099c\u09be\u09a4 \u0995\u09cd\u09b0\u09c7\u0993\u09b2 \u0985\u09a5\u09ac\u09be \u09aa\u09bf\u099c\u09bf\u09a8
+languages.cpe=\u0987\u0982\u09b0\u09c7\u099c\u09bf \u099c\u09be\u09a4 \u0995\u09cd\u09b0\u09c7\u0993\u09b2 \u0985\u09a5\u09ac\u09be \u09aa\u09bf\u099c\u09bf\u09a8
+languages.him=\u09b9\u09bf\u09ae\u09be\u099a\u09be\u09b2\u09bf
+languages.kok=\u0995\u09cb\u0999\u09cd\u0995\u09be\u09a8\u09bf
+languages.hil=\u09b9\u09bf\u09b2\u09bf\u0997\u09cd\u09af\u09be\u09af\u09bc\u09a8\u09cb\u09a8
+languages.got=\u0997\u09a5\u09bf\u0995
+languages.gor=\u0997\u09cb\u09b0\u09cb\u09a8\u09cd\u09a4\u09be\u09b2\u09cb
+languages.gon=\u0997\u09cb\u09a8\u09cd\u09a1\u09bf
+languages.din=\u09a1\u09bf\u0982\u0995\u09be
+languages.nub=\u09a8\u09c1\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.pt=\u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09c0\u099c
+languages.ps=\u09aa\u09b6\u09cd\u09a4\u09c1
+languages.fur=\u09ab\u09cd\u09b0\u09bf\u0989\u09b2\u09bf\u09af\u09bc\u09be\u09a8
+languages.phn=\u09ab\u09bf\u09a8\u09bf\u09b6\u09c0\u09af\u09bc
+languages.de_CH=\u09b8\u09c1\u0987\u09b8 \u0989\u099a\u09cd\u099a \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.goh=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u0989\u099a\u09cd\u099a \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.snk=\u09b8\u09cb\u09a8\u09bf\u0999\u09cd\u0995\u09c7
+languages.cop=\u0995\u09aa\u099f\u09bf\u0995
+languages.yap=\u0987\u09af\u09bc\u09be\u09aa\u09c7\u09b8\u09c7
+languages.ach=\u0986\u0995\u09cb\u09b2\u09c0
+languages.yao=\u0987\u09af\u09bc\u09be\u0993
+languages.phi=\u09ab\u09bf\u09b2\u09bf\u09aa\u09be\u0987\u09a8 \u09ad\u09be\u09b7\u09be
+languages.pl=\u09aa\u09cb\u09b2\u09bf\u09b6
+languages.ace=\u0986\u099a\u09bf\u09a8\u09bf\u09af\u09bc
+languages.pi=\u09aa\u09be\u09b2\u09bf
+languages.pt_PT=\u0986\u0987\u09ac\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09bf\u099c
+languages.pa=\u09aa\u09be\u099e\u09cd\u099c\u09be\u09ac\u09c0
+languages.bug=\u09ac\u09c1\u0997\u09bf\u09a8\u09bf
+languages.iba=\u0987\u09ac\u09be\u09a8
+languages.sms=\u09b8\u09cd\u0995\u09cb\u09b2\u09cd\u099f \u09b8\u09be\u09ae\u09bf
+languages.bua=\u09ac\u09c1\u09b0\u09bf\u09af\u09bc\u09be\u09a4
+languages.mas=\u09ae\u09be\u09b8\u09be\u0987
+languages.smn=\u0987\u09a8\u09be\u09b0\u09bf \u09b8\u09be\u09ae\u09bf
+languages.os=\u0993\u09b8\u09c7\u099f\u09bf\u0995
+languages.map=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09cb\u09a8\u09c7\u09b6\u09c0\u09af\u09bc
+languages.or=\u0989\u09a1\u09bc\u09bf\u09af\u09bc\u09be
+languages.man=\u09ae\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09bf\u0999\u09cd\u0997\u09cb
+languages.smj=\u09b2\u09c1\u09b2\u09c7 \u09b8\u09be\u09ae\u09bf
+languages.smi=\u09b8\u09be\u09ae\u09bf \u09ad\u09be\u09b7\u09be
+languages.mak=\u09ae\u09cd\u09af\u09be\u0995\u09be\u09b8\u09be\u09b0
+languages.om=\u0985\u09b0\u09cb\u09ae\u09cb
+languages.mai=\u09ae\u09c8\u09a5\u09bf\u09b2\u09bf
+languages.oj=\u0993\u099c\u09bf\u09ac\u0993\u09af\u09bc\u09be
+languages.mag=\u09ae\u09be\u0998\u09bf
+languages.mad=\u09ae\u09be\u09a6\u09c1\u09b0\u09c7\u09b8\u09c7
+languages.sma=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09b8\u09be\u09ae\u09bf
+languages.oc=\u0985\u0995\u09cd\u09b8\u09bf\u099f\u09be\u09a8
+languages.nso=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09b8\u09cb\u09a5\u09cb
+languages.btk=\u09ac\u09be\u09a4\u09be\u0995
+languages.myv=\u098f\u09b0\u099c\u09bf\u09af\u09bc\u09be
+languages.es_ES=\u0986\u0987\u09ac\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09b8\u09cd\u09aa\u09cd\u09af\u09be\u09a8\u09bf\u09b6
+languages.de_AT=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.dgr=\u09a6\u09cb\u0997\u09cd\u09b0\u09c0\u09ac
+languages.ny=\u09a8\u09be\u09af\u09bc\u09be\u099e\u09cd\u099c\u09be
+languages.myn=\u09ae\u09be\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.nv=\u09a8\u09be\u09ad\u09be\u099c\u09cb
+languages.kmb=\u0995\u09bf\u09ae\u09cd\u09ac\u09c1\u09a8\u09cd\u09a6\u09c1
+languages.nr=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u098f\u09a8\u09a1\u09c7\u09ac\u09c7\u09b2\u09c7
+languages.gmh=\u09ae\u09a7\u09cd\u09af-\u0989\u099a\u09cd\u099a \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.no=\u09a8\u09b0\u0993\u09af\u09bc\u09c7\u099c\u09c0\u09af\u09bc
+languages.nn=\u09a8\u09b0\u0993\u09af\u09bc\u09c7\u099c\u09c0\u09af\u09bc (\u09a8\u09bf\u09a8\u09b0\u09cd\u09b8\u09cd\u0995)
+languages.nl=\u09a1\u09be\u099a
+languages.root=\u09ae\u09c2\u09b2
+languages.ng=\u098f\u09a8\u09cd\u09a6\u09cb\u0999\u09cd\u0997\u09be
+languages.sla=\u09b8\u09cd\u09b2\u09cd\u09af\u09be\u09ad\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.ne=\u09a8\u09c7\u09aa\u09be\u09b2\u09c0
+languages.nd=\u0989\u09a4\u09cd\u09a4\u09b0 \u098f\u09a8\u09cd\u09a6\u09c7\u09ac\u09bf\u09b2\u09bf
+languages.cmc=\u099a\u09be\u09ae\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.tet=\u09a4\u09c7\u09a4\u09c1\u09ae
+languages.nb=\u09a8\u09b0\u0993\u09af\u09bc\u09c7 \u09ac\u09cb\u0995\u09ae\u09be\u09b2
+languages.na=\u09a8\u09be\u0989\u09b0\u09c1
+languages.ter=\u09a4\u09c7\u09b0\u09c7\u09a8\u09cb
+languages.tem=\u099f\u09be\u0987\u09ae\u09cd\u09a8\u09c7
+languages.my=\u09ac\u09b0\u09cd\u09ae\u09bf
+languages.lez=\u09b2\u09c7\u099c\u0998\u09bf\u09af\u09bc\u09be\u09a8
+languages.mt=\u09ae\u09b2\u09cd\u099f\u09bf\u09af\u09bc
+languages.frs=\u09aa\u09c2\u09b0\u09cd\u09ac \u09ab\u09cd\u09b0\u09bf\u09b8\u09bf\u09af\u09bc
+languages.peo=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09ab\u09be\u09b0\u09cd\u09b8\u09bf
+languages.ms=\u09ae\u09be\u09b2\u09c7
+languages.frr=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09ab\u09cd\u09b0\u09bf\u09b8\u09bf\u09af\u09bc\u09be\u09a8
+languages.mr=\u09ae\u09be\u09b0\u09be\u09a0\u09bf
+languages.fro=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09ab\u09b0\u09be\u09b8\u09bf
+languages.mo=\u09ae\u09b2\u09a6\u09be\u09ad\u09bf\u09af\u09bc
+languages.mn=\u09ae\u0999\u09cd\u0997\u09cb\u09b2\u09bf\u09af\u09bc
+languages.frm=\u09ae\u09a7\u09cd\u09af \u09ab\u09b0\u09be\u09b8\u09bf
+languages.ml=\u09ae\u09be\u09b2\u09c7\u09af\u09bc\u09be\u09b2\u09be\u09ae
+languages.jrb=\u099c\u09c1\u09a6\u09c7\u0993 \u0986\u09b0\u09ac\u09bf
+languages.mk=\u09ae\u09cd\u09af\u09be\u09b8\u09c7\u09a1\u09cb\u09a8\u09c0\u09af
+languages.mi=\u09ae\u09be\u0993\u09b0\u09bf
+languages.mh=\u09ae\u09be\u09b0\u09cd\u09b6\u09be\u09b2\u09bf\u099c
+languages.mg=\u09ae\u09be\u09b2\u09be\u0997\u09be\u09b8\u09bf
+languages.nqo=\u098f\u09a8\u2019\u0995\u09cb
+languages.mwr=\u09ae\u09be\u09b0\u09cb\u09af\u09bc\u09be\u09b0\u09bf
+languages.bra=\u09ac\u09cd\u09b0\u09be\u099c
+languages.mwl=\u09ae\u09bf\u09b0\u09be\u09a8\u09cd\u09a1\u09bf\u099c
+languages.den=\u09b8\u09cd\u09b2\u09cd\u09af\u09be\u09ad
+languages.lv=\u09b2\u09be\u09a4\u09cd\u200c\u09ad\u09c0\u09af\u09bc
+languages.lu=\u09b2\u09c1\u09ac\u09be-\u0995\u09be\u099f\u09be\u0999\u09cd\u0997\u09be
+languages.del=\u09a1\u09c7\u09b2\u09be\u0993\u09af\u09bc\u09c7\u09b0
+languages.lt=\u09b2\u09bf\u09a5\u09c1\u09af\u09bc\u09c7\u09a8\u09c0\u09af
+languages.lo=\u09b2\u09be\u0993
+languages.ln=\u09b2\u09bf\u0999\u09cd\u0997\u09be\u09b2\u09be
+languages.li=\u09b2\u09bf\u09ae\u09cd\u09ac\u09c1\u09b0\u09cd\u0997\u09bf\u09b6
+languages.ewo=\u0987\u0993\u09a8\u09cd\u09a1\u09cb
+languages.lg=\u0997\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09be
+languages.lb=\u09b2\u09c1\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997\u09c0\u09af\u09bc
+languages.la=\u09b2\u09be\u099f\u09bf\u09a8
+languages.jpr=\u099c\u09c1\u09a6\u09c7\u0993 \u09ab\u09be\u09b0\u09cd\u09b8\u09bf
+languages.vot=\u09ad\u09cb\u099f\u09bf\u0995
+languages.sit=\u09b8\u09bf\u09a8\u09cb-\u09a4\u09bf\u09ac\u09cd\u09ac\u09cb\u09a4\u09c0\u09af\u09bc \u09ad\u09be\u09b7\u09be
+languages.ky=\u0995\u09bf\u09b0\u09cd\u0997\u09bf\u099c
+languages.kw=\u0995\u09b0\u09cd\u09a3\u09bf\u09b6
+languages.kv=\u0995\u09cb\u09ae\u09bf
+languages.ku=\u0995\u09c1\u09b0\u09cd\u09a6\u09bf
+languages.sio=\u09b8\u09bf\u0993\u09af\u09bc\u09c1\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.ks=\u0995\u09be\u09b6\u09cd\u09ae\u09c0\u09b0\u09c0
+languages.kr=\u0995\u09be\u09a8\u09c1\u09b0\u09bf
+languages.awa=\u0986\u0993\u09af\u09bc\u09be\u09a7\u09bf
+languages.ko=\u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be\u09a8
+languages.kn=\u0995\u09be\u09a8\u09cd\u09a8\u09be\u09a1\u09bc\u09c0
+languages.km=\u0996\u09ae\u09c7\u09b0
+languages.en_GB=\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.kl=\u0995\u09cd\u09af\u09be\u09b2\u09be\u09b2\u09cd\u09b2\u09bf\u09b8\u09c1\u099f
+languages.kk=\u0995\u09be\u099c\u09be\u0996
+languages.rom=\u09b0\u09cb\u09ae\u09be\u09a8\u09bf
+languages.kj=\u0995\u09cb\u09af\u09bc\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09ae\u09be
+languages.sid=\u09b8\u09bf\u09a1\u09be\u09ae\u09cb
+languages.ki=\u0995\u09bf\u0995\u09c1\u09cd\u0987\u09af\u09bc\u09c1
+languages.kg=\u0995\u09cb\u0999\u09cd\u0997\u09cb
+languages.non=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09a8\u09b0\u09cd\u09b8
+languages.ka=\u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be\u09a8
+languages.mus=\u0995\u09cd\u09b0\u09bf\u0995
+languages.roa=\u09b0\u09cb\u09ae\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.nog=\u09a8\u09cc\u0997\u09be\u0987
+languages.mun=\u09ae\u09c1\u09a3\u09cd\u09a1\u09be \u09ad\u09be\u09b7\u09be
+languages.mul=\u09ac\u09b9\u09c1\u0997\u09c1\u09a3\u09bf\u09a4\u0995 \u09ad\u09be\u09b7\u09be\u09b8\u09ae\u09c2\u09b9
+languages.jv=\u099c\u09be\u09ad\u09be\u09a8\u09bf
+languages.gil=\u0997\u09bf\u09b2\u09ac\u09be\u09b0\u09cd\u099f\u09bf\u099c
+languages.znd=\u099c\u09be\u09a8\u09cd\u09a1\u09c7
+languages.shn=\u09b6\u09cd\u09af\u09be\u09a8
+languages.fon=\u09ab\u09a8
+languages.xal=\u0995\u09be\u09b2\u09cd\u09ae\u09be\u0987\u0995
+languages.aus=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc
+languages.kho=\u0996\u09cb\u099f\u09be\u09a8\u09bf\u099c
+languages.ja=\u099c\u09be\u09aa\u09be\u09a8\u09bf
+languages.khi=\u0996\u09cb\u09af\u09bc\u09c7\u09b6\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.pau=\u09aa\u09be\u09b2\u09be\u09af\u09bc\u09c1\u09af\u09bc\u09be\u09a8
+languages.chy=\u09b6\u09be\u0987\u09af\u09bc\u09c7\u09a8
+languages.tai=\u09a4\u09be\u0987 \u09ad\u09be\u09b7\u09be
+languages.iu=\u0987\u09a8\u09c1\u0995\u09cd\u099f\u09bf\u099f\u09c1\u099f
+languages.pap=\u09aa\u09be\u09aa\u09bf\u09af\u09bc\u09be\u09ae\u09c7\u09a8\u09cd\u099f\u09cb
+languages.it=\u0987\u09a4\u09be\u09b2\u09c0\u09af\u09bc
+languages.sgn=\u099a\u09bf\u09b9\u09cd\u09a8 \u09ad\u09be\u09b7\u09be
+languages.is=\u0986\u0987\u09b8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09c0\u09af\u09bc
+languages.kha=\u0996\u09be\u09b6\u09bf
+languages.chr=\u099a\u09c7\u09b0\u09cb\u0995\u09bf
+languages.pam=\u09aa\u09be\u09ae\u09cd\u09aa\u09be\u0999\u09cd\u0997\u09be
+languages.pal=\u09aa\u09be\u09b9\u09cd\u09b2\u09be\u09ad\u09bf
+languages.chp=\u099a\u09bf\u09aa\u09c7\u0993\u09af\u09bc\u09be\u09a8
+languages.io=\u0987\u09a1\u09cb
+languages.cho=\u099a\u0995\u09cd\u099f\u09cb
+languages.chn=\u099a\u09bf\u09a8\u09c1\u0995 \u09aa\u09b0\u09bf\u09ad\u09be\u09b7\u09be
+languages.chm=\u09ae\u09be\u09b0\u09bf
+languages.tyv=\u099f\u09c1\u09ad\u09bf\u09a8\u09bf\u09af\u09bc\u09be\u09a8
+languages.bnt=\u09ac\u09be\u09a8\u09cd\u099f\u09c1
+languages.pag=\u09aa\u09be\u0999\u09cd\u0997\u09be\u09b8\u09bf\u09a8\u09be\u09a8
+languages.ik=\u0987\u09a8\u09c1\u09aa\u09bf\u09af\u09bc\u09be\u0995
+languages.chk=\u099a\u09c1\u0995\u09bf
+languages.ii=\u09b8\u09bf\u099b\u09c1\u09af\u09bc\u09be\u09a8
+languages.haw=\u09b9\u09be\u0993\u09af\u09bc\u09be\u0987\u09af\u09bc\u09be\u09a8
+languages.lam=\u09b2\u09be\u09ae\u09cd\u09ac\u09be
+languages.ig=\u0987\u0997\u09cd\u200c\u09ac\u09cb
+languages.chg=\u099a\u09be\u0997\u09be\u09a4\u09be\u0987
+languages.sga=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u0986\u0987\u09b0\u09bf\u09b6
+languages.paa=\u09aa\u09be\u09aa\u09c1\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.ie=\u0987\u09a8\u09cd\u099f\u09be\u09b0\u09b2\u09bf\u0999\u09cd\u0997\u09cd
+languages.id=\u0987\u09a8\u09cd\u09a6\u09cb\u09a8\u09c7\u09b6\u09c0\u09af\u09bc
+languages.lah=\u09b2\u09be\u09a8\u09cd\u09a1\u09be
+languages.day=\u09a6\u09be\u09af\u09bc\u09be\u0995
+languages.chb=\u099a\u09bf\u09ac\u099a\u09be
+languages.ia=\u0987\u09a8\u09cd\u099f\u09be\u09b0\u09b2\u09bf\u0999\u09cd\u0997\u09c1\u09af\u09bc\u09be
+languages.lad=\u09b2\u09be\u09a1\u09bf\u09a8\u09cb
+languages.hz=\u09b9\u09c7\u09b0\u09c7\u09b0\u09cb
+languages.hai=\u09b9\u09be\u0987\u09a1\u09be
+languages.dar=\u09a6\u09be\u09b0\u09cd\u0997\u0993\u09af\u09bc\u09be
+languages.hy=\u0986\u09b0\u09cd\u09ae\u09c7\u09a8\u09bf\u09af\u09bc
+languages.ath=\u0986\u09a5\u09be\u09aa\u09be\u09b8\u09cd\u0995\u09be\u09a8
+languages.hu=\u09b9\u09be\u0999\u09cd\u0997\u09c7\u09b0\u09c0\u09af\u09bc
+languages.ht=\u09b9\u09be\u0987\u09a4\u09bf\u09af\u09bc\u09be\u09a8
+languages.dak=\u09a1\u09be\u0995\u09cb\u099f\u09be
+languages.hr=\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09c0\u09af\u09bc
+languages.ho=\u09b9\u09bf\u09b0\u09bf \u09ae\u09cb\u09a4\u09c1
+languages.hi=\u09b9\u09bf\u09a8\u09cd\u09a6\u09bf
+languages.dyu=\u09a1\u09bf\u0989\u09b2\u09be
+languages.he=\u09b9\u09bf\u09ac\u09cd\u09b0\u09c1
+languages.ast=\u0986\u09b8\u09cd\u09a4\u09c1\u09b0\u09bf\u09af\u09bc
+languages.kfo=\u0995\u09cb\u09b0\u09cb
+languages.ha=\u09b9\u09be\u0989\u09b8\u09be
+languages.wen=\u09b8\u09cb\u09b0\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.gv=\u09ae\u09cd\u09af\u09be\u0999\u09cd\u0995\u09b8
+languages.gu=\u0997\u09c1\u099c\u09b0\u09be\u099f\u09bf
+languages.sem=\u09b8\u09c7\u09ae\u09c7\u099f\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.sel=\u09b8\u09c7\u09b2\u09cd\u0995\u09c1\u09aa
+languages.iro=\u0987\u09b0\u09cb\u0995\u09c1\u0993\u0987\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.gn=\u0997\u09c1\u09af\u09bc\u09be\u09b0\u09be\u09a8\u09bf
+languages.gl=\u0997\u09cd\u09af\u09be\u09b2\u09bf\u09b6\u09bf\u09af\u09bc
+languages.en_CA=\u0995\u09be\u09a8\u09be\u09a1\u09c0\u09af\u09bc \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.arw=\u0986\u09b0\u09be\u0993\u09af\u09bc\u09be\u0995
+languages.gez=\u0997\u09c0\u099c
+languages.art=\u0995\u09c3\u09a4\u09cd\u09b0\u09bf\u09ae
+languages.gd=\u09b8\u09cd\u0995\u099f\u09b8-\u0997\u09cd\u09af\u09c7\u09b2\u09bf\u0995
+languages.ira=\u0987\u09b0\u09be\u09a8\u09c0 \u09ad\u09be\u09b7\u09be
+languages.ga=\u0986\u0987\u09b0\u09bf\u09b6
+languages.arp=\u0986\u09b0\u09be\u09aa\u09be\u09b9\u09cb
+languages.arn=\u0985\u09cd\u09af\u09be\u09b0\u09cb\u0995\u09c7\u09a8\u09bf\u09af\u09bc
+languages.fy=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u09ab\u09cd\u09b0\u09bf\u09b8\u09bf\u09af\u09bc
+languages.bla=\u09b8\u09bf\u0995\u09b8\u09bf\u0995\u09be
+languages.gem=\u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.ypk=\u0987\u09af\u09bc\u09c1\u09aa\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.arc=\u0986\u09b0\u09be\u09ae\u09be\u0987\u0995
+languages.fr=\u09ab\u09b0\u09be\u09b8\u09bf
+languages.fo=\u09ab\u09c7\u09b0\u09be\u0989\u09a8\u09bf
+languages.cel=\u0995\u09c7\u09b2\u09cd\u099f\u09bf\u0995
+languages.fj=\u09ab\u09bf\u099c\u09bf\u0993
+languages.fi=\u09ab\u09bf\u09a8\u09bf\u09b6
+languages.ff=\u09ab\u09c1\u09b2\u09be\u09b9\u09cd
+languages.tvl=\u099f\u09c1\u09ad\u09be\u09b2\u09c1
+languages.ceb=\u099a\u09c7\u09ac\u09c1\u09af\u09bc\u09be\u09a8\u09cb
+languages.fa=\u09ab\u09be\u09b0\u09cd\u09b8\u09bf
+languages.en_AU=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09c0\u09af\u09bc \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.zh_Hans=\u09b8\u09b9\u099c \u099a\u09c0\u09a8\u09be
+languages.zh_Hant=\u09aa\u09cd\u09b0\u09a5\u09be\u0997\u09a4 \u099a\u09c0\u09a8\u09be
+languages.eu=\u09ac\u09be\u09b8\u09cd\u0995
+languages.sco=\u09b8\u09cd\u0995\u099f\u09b8
+languages.et=\u098f\u09b8\u09cd\u09a4\u09cb\u09a8\u09c0\u09af\u09bc
+languages.scn=\u09b8\u09bf\u09b8\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8
+languages.es=\u09b8\u09cd\u09aa\u09c7\u09a8\u09c0\u09af\u09bc
+languages.eo=\u098f\u09b8\u09cd\u09aa\u09c7\u09b0\u09be\u09a8\u09cd\u09a4\u09cb
+languages.en=\u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.el=\u0997\u09cd\u09b0\u09bf\u0995
+languages.tut=\u0986\u09b2\u09a4\u09be\u09af\u09bc\u09c0\u0995 \u09ad\u09be\u09b7\u09be
+languages.niu=\u09a8\u09bf\u0989\u09af\u09bc\u09be\u09a8
+languages.tup=\u09a4\u09c1\u09aa\u09bf \u09ad\u09be\u09b7\u09be
+languages.ee=\u0987\u0993\u09af\u09bc\u09c7
+languages.tum=\u09a4\u09c1\u09ae\u09cd\u09ac\u09c1\u0995\u09be
+languages.nl_BE=\u09ab\u09cd\u09b2\u09c7\u09ae\u09bf\u09b6
+languages.es_419=\u09b2\u09cd\u09af\u09be\u099f\u09bf\u09a8 \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09a8 \u09b8\u09cd\u09aa\u09cd\u09af\u09be\u09a8\u09bf\u09b6
+languages.mos=\u09ae\u09b8\u09bf
+languages.dz=\u09ad\u09c1\u099f\u09be\u09a8\u09bf
+languages.kcg=\u099f\u09be\u0987\u09af\u09bc\u09be\u09aa
+languages.nic=\u09a8\u09be\u0987\u099c\u09be\u09b0-\u0995\u09cb\u09b0\u09cd\u09a1\u09cb\u09ab\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.lus=\u09b2\u09c1\u09b6\u09be\u0987
+languages.fiu=\u09ab\u09bf\u09a8\u09cb-\u0987\u0989\u0997\u09cd\u09b0\u09bf\u0995
+languages.dv=\u09a6\u09bf\u09ac\u09c7\u09b9\u09bf
+languages.nia=\u09a8\u09bf\u09af\u09bc\u09be\u09b8
+languages.moh=\u09ae\u09cb\u09b9\u09be\u0993\u0995
+languages.luo=\u09b2\u09c1\u09af\u09bc\u09cb
+languages.lun=\u09b2\u09c1\u09a8\u09cd\u09a1\u09be
+languages.apa=\u0985\u09cd\u09af\u09be\u09aa\u09be\u099a\u09bf
+languages.fil=\u09ab\u09bf\u09b2\u09bf\u09aa\u09bf\u09a8\u09cb
+languages.lui=\u09b2\u09c1\u0987\u09b8\u09c7\u09a8\u09cb
+languages.hup=\u09b9\u09c1\u09aa\u09be
+languages.cch=\u0986\u09a4\u09cd\u09b8\u09be\u09ae
+languages.bin=\u09ac\u09bf\u09a8\u09bf
+languages.de=\u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8
+languages.lua=\u09b2\u09c1\u09ac\u09be-\u09b2\u09c1\u09b2\u09c1\u09af\u09bc\u09be
+languages.bik=\u09ac\u09bf\u0995\u09cb\u09b2
+languages.was=\u0993\u09af\u09bc\u09be\u09b6\u09be
+languages.und=\u0985\u099c\u09be\u09a8\u09be \u09ac\u09be \u09ad\u09c1\u09b2 \u09ad\u09be\u09b7\u09be
+languages.war=\u0993\u09af\u09bc\u09be\u09b0\u09c7
+languages.da=\u09a1\u09c7\u09a8\u09bf\u09b6
+languages.dum=\u09ae\u09a7\u09cd\u09af \u09a1\u09be\u099a
+languages.wal=\u0993\u09af\u09bc\u09be\u09b2\u09be\u09ae\u09cb
+languages.mno=\u09ae\u09cd\u09af\u09be\u09a8\u09cb\u09ac\u09cb \u09ad\u09be\u09b7\u09be
+languages.wak=\u0993\u09af\u09bc\u09be\u0995\u09be\u09b6\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.sat=\u09b8\u09be\u0981\u0993\u09a4\u09be\u09b2\u09bf
+languages.cy=\u0993\u09af\u09bc\u09c7\u09b2\u09b6
+languages.sas=\u09b8\u09be\u09b8\u09be\u0995
+languages.kbd=\u0995\u09be\u09ac\u09be\u09b0\u09cd\u09a1\u09bf\u09af\u09bc\u09be\u09a8
+languages.cv=\u099a\u09c1\u09ac\u09be\u09b8
+languages.cu=\u099a\u09be\u09b0\u09cd\u099a \u09b8\u09cd\u09b2\u09be\u09ad\u09bf\u0993
+languages.mni=\u09ae\u09a3\u09bf\u09aa\u09c1\u09b0\u09c0
+languages.cs=\u099a\u09c7\u0995
+languages.sam=\u09b8\u09be\u09ae\u09be\u09b0\u09bf\u099f\u09be\u09a8 \u0986\u09b0\u09be\u09ae\u09bf\u0995
+languages.cr=\u0995\u09cd\u09b0\u09bf
+languages.sal=\u09b6\u09be\u09b2\u09bf\u09b6\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.dua=\u09a6\u09c1\u09af\u09bc\u09be\u09b2\u09be
+languages.co=\u0995\u09b0\u09cd\u09b8\u09bf\u0995\u09be\u09a8
+languages.sai=\u0989\u09a4\u09cd\u09a4\u09b0 \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09a8 \u0987\u09a8\u09cd\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.mnc=\u09ae\u09be\u099e\u09cd\u099a\u09c1
+languages.sah=\u0987\u09af\u09bc\u09be\u0995\u09c1\u099f
+languages.kaw=\u0995\u09be\u0989\u0987
+languages.inh=\u0987\u0999\u09cd\u0997\u09c1\u09b6
+languages.gba=\u09ac\u09be\u09af\u09bc\u09be
+languages.sad=\u09b8\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09be\u0993\u09af\u09bc\u09c7
+languages.ch=\u099a\u09be\u09ae\u09c7\u09b0\u09cb
+languages.ine=\u0987\u09a8\u09cd\u09a6\u09cb-\u0987\u0989\u09b0\u09cb\u09aa\u09c0\u09af\u09bc \u09ad\u09be\u09b7\u09be
+languages.bho=\u09ad\u09cb\u099c\u09aa\u09c1\u09b0\u09bf
+languages.enm=\u09ae\u09a7\u09cd\u09af \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.kar=\u0995\u09be\u09b0\u09c7\u09a8
+languages.inc=\u09ad\u09be\u09b0\u09a4\u09c0\u09af\u09bc \u09ad\u09be\u09b7\u09be
+languages.ce=\u099a\u09c7\u099a\u09c7\u09a8
+languages.gay=\u0997\u09be\u09af\u09bc\u09cb
+languages.ca=\u0995\u09be\u09a4\u09be\u09b2\u09be\u09a8
+languages.umb=\u0989\u09ae\u09cd\u09ac\u09c1\u09a8\u09cd\u09a6\u09c1
+languages.syr=\u09b8\u09bf\u09b0\u09bf\u09af\u09bc\u09be\u0995
+languages.kam=\u0995\u09be\u09ae\u09cd\u09ac\u09be
+languages.anp=\u0986\u0999\u09cd\u0997\u09c0\u0995\u09be
+languages.tsi=\u09b8\u09bf\u09ae\u09b6\u09bf\u09af\u09bc\u09be\u09a8
+languages.kaj=\u0985\u099c\u09cd\u099c\u09c1
+languages.ang=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u0987\u0982\u09b0\u09c7\u099c\u09c0
+languages.kac=\u0995\u09be\u099a\u09bf\u09a8
+languages.cau=\u0995\u0995\u09c7\u09b6\u09c0\u09af
+languages.kab=\u0995\u09be\u09ac\u09be\u0987\u09b2\u09c7
+languages.kaa=\u0995\u09be\u09b0\u09be-\u0995\u09be\u09b2\u09cd\u09aa\u09be\u0995
+languages.bs=\u09ac\u09b8\u09a8\u09c0\u09af\u09bc
+languages.car=\u0995\u09cd\u09af\u09be\u09b0\u09bf\u09ac
+languages.br=\u09ac\u09cd\u09b0\u09c7\u099f\u09cb\u09a8
+languages.syc=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09b8\u09bf\u09b0\u09bf\u0993
+languages.bo=\u09a4\u09bf\u09ac\u09cd\u09ac\u09a4\u09bf
 languages.bn=\u09ac\u09be\u0982\u09b2\u09be
+languages.bm=\u09ac\u09be\u09ae\u09ac\u09be\u09b0\u09be
+languages.gaa=\u0997\u09be
+languages.cai=\u09ae\u09a7\u09cd\u09af \u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u09a0\u09c7\u09b0 \u0986\u09a6\u09bf\u09ac\u09be\u09b8\u09c0\u09a6\u09c7\u09b0 \u09ad\u09be\u09b7\u09be
+languages.bi=\u09ac\u09bf\u09b8\u09b2\u09be\u09ae\u09be
+languages.bh=\u09ac\u09bf\u09b9\u09be\u09b0\u09bf
+languages.bg=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09bf\u09af\u09bc
+languages.be=\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b6\u09bf\u09af\u09bc
+languages.pt_BR=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09c0\u09af\u09bc \u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09c0\u099c
+languages.cad=\u0995\u09cd\u09af\u09be\u09a1\u09cb
+languages.ba=\u09ac\u09be\u09b6\u0995\u09bf\u09b0
+languages.zu=\u099c\u09c1\u09b2\u09c1
+languages.zen=\u099c\u09c7\u09a8\u09be\u0997\u09be
+languages.pro=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09aa\u09cd\u09b0\u09cb\u09ad\u09c7\u09a8\u0995\u09cd\u09af\u09be\u09b2
+languages.hsb=\u0989\u099a\u09cd\u099a \u09b8\u09cb\u09b0\u09cd\u09ac\u09bf\u09af\u09bc\u09be\u09a8
+languages.az=\u0986\u099c\u09be\u09b0\u09ac\u09be\u0987\u099c\u09be\u09a8\u09c0\u09af\u09bc
+languages.ay=\u0986\u09af\u09bc\u09ae\u09be\u09b0\u09be
+languages.av=\u0986\u09ad\u09c7\u09b0\u09bf\u0995
+languages.as=\u0986\u09b8\u09be\u09ae\u09bf
+languages.dsb=\u09a8\u09bf\u09ae\u09cd\u09a8\u09a4\u09b0 \u09b8\u09cb\u09b0\u09cd\u09ac\u09bf\u09af\u09bc\u09be\u09a8
+languages.ar=\u0986\u09b0\u09ac\u09c0
+languages.ilo=\u0987\u09b2\u09cb\u0995\u09cb
+languages.elx=\u098f\u09b2\u09be\u09ae\u09be\u0987\u099f
+languages.zh=\u099a\u09c0\u09a8\u09be
+languages.an=\u0986\u09b0\u09cd\u0997\u09cb\u09a8\u09bf\u099c
+languages.pra=\u09aa\u09cd\u09b0\u09be\u0995\u09c3\u09a4 \u09ad\u09be\u09b7\u09be
+languages.am=\u0986\u09ae\u09b9\u09be\u09b0\u09bf\u0995
+languages.new=\u09a8\u09c7\u0993\u09af\u09bc\u09be\u09b0\u09bf
+languages.ak=\u0986\u0995\u09be\u09a8
+languages.za=\u099d\u09c1\u09cd\u09af\u09bc\u09be\u0999
+languages.en_US=\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0 \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.af=\u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be\u09a8\u09cd\u09b8
+languages.ae=\u0986\u09ac\u09c7\u09b8\u09cd\u09a4\u09c0\u09af\u09bc
+languages.alt=\u09a6\u0995\u09cd\u09b7\u09bf\u09a8 \u0986\u09b2\u09a4\u09be\u0987
+languages.ab=\u0986\u09ac\u09cd\u0996\u09be\u099c\u09bf\u09af\u09bc
+languages.aa=\u0986\u09ab\u09be\u09b0
+languages.yo=\u0987\u0993\u09b0\u09c1\u09ac\u09be
+languages.alg=\u0986\u09b2\u0997\u09cb\u0999\u0995\u09c1\u0987\u0986\u09a8
+languages.ale=\u0986\u09b2\u09c7\u0989\u09a4
+languages.mkh=\u09ae\u09a8-\u0996\u09ae\u09c7\u09b0 \u09ad\u09be\u09b7\u09be
+languages.yi=\u09af\u09bc\u09bf\u09a6\u09cd\u09a6\u09bf\u09b6
+languages.dra=\u09a6\u09cd\u09b0\u09be\u09ac\u09c0\u09a1\u09bc \u09ad\u09be\u09b7\u09be
+languages.ber=\u09ac\u09c7\u09b0\u09ac\u09c7\u09b0
+languages.nds=\u09a8\u09bf\u09ae\u09cd\u09a8 \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.bem=\u09ac\u09c7\u09ae\u09cd\u09ac\u09be
+languages.bej=\u09ac\u09c7\u099c\u09be
+languages.tpi=\u099f\u09cb\u0995 \u09aa\u09bf\u09b8\u09bf\u09a8
index 4b98a3c594569468ece838e2b9370e96cd157a2f..71377589bd3fcdbe20647f21061b8933fd75b095 100644 (file)
@@ -5,14 +5,99 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
-firstDayOfWeek=mon
-shortDateFormat=d-M-yy
-mediumDateFormat=dd-MM-yyyy
-longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE d MMMM yyyy
-shortTimeFormat=h:mm a
-mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a z
-fullTimeFormat=h:mm:ss a z
+territories.CY=CY
+languages.es=es
+languages.akk=akk
+languages.en=en
+languages.ady=\u0986\u09a6\u09bf\u0998\u09bf
+languages.awa=awa
+languages.pt=pt
+languages.ada=\u0986\u09a6\u09be\u0997\u09cd\u09ae\u09bf
+languages.de=de
+languages.map=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09cb\u09a8\u09c7\u09b8\u09bf\u09af\u09bc\u09be\u09a8
+languages.apa=\u0985\u09cd\u09af\u09be\u09aa\u09be\u099a\u09bf \u09ad\u09be\u09b7\u09be
+languages.ja=ja
+languages.bin=bin
+languages.cu=\u099a\u09be\u09b0\u09cd\u099a \u09b8\u09cd\u09b2\u09be\u09ad\u09bf\u0995
+languages.bik=bik
+languages.ain=ain
+languages.ach=\u0986\u0995\u09cb\u09b2\u09bf
+languages.it=it
+languages.ace=\u0985\u09cd\u09af\u09be\u099a\u09be\u0987\u09a8\u09bf\u099c
+languages.aus=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.chy=\u099a\u09c7\u09af\u09bc\u09c7\u09a8\u09bf
+languages.ch=\u099a\u09be\u09ae\u09cb\u09b0\u09cb
+languages.bug=\u09ac\u09c1\u0997\u09bf\u09a8\u09bf\u099c\u09bf
+languages.ce=\u099a\u09c7\u099a\u09c7\u09a8
+languages.chp=\u099a\u09bf\u09aa\u09c7\u0993\u09af\u09bc\u09be\u0987\u09af\u09bc\u09be\u09a8
+languages.bua=\u09ac\u09c1\u09b0\u09bf\u09af\u09bc\u09be\u09a4
+languages.ca=ca
+languages.cho=\u099a\u0995\u099f\u09cb\u0993
+languages.chn=\u099a\u09bf\u09a8\u09c1\u0995 \u099c\u09be\u09b0\u09cd\u0997\u09a8
+languages.bnt=\u09ac\u09be\u09a8\u09cd\u099f\u09c1
+languages.bho=\u09ad\u09cb\u099c\u09aa\u09c1\u09b0\u09c0
+languages.bs=\u09ac\u09b8\u09a8\u09c0\u09af\u09bc\u09be\u09a8
+languages.br=\u09ac\u09cd\u09b0\u09c7\u09a4\u09cb\u09a8
+languages.anp=\u0986\u0999\u09cd\u0997\u09bf\u0995\u09be
+languages.bo=bo
+languages.bm=bm
+languages.cau=\u0995\u0995\u09c7\u09b6\u09c0\u09af\u09bc \u09ad\u09be\u09b7\u09be
+languages.btk=\u09ac\u09be\u09a4\u09be\u0995
+languages.bi=\u09ac\u09bf\u09b8\u09b2\u09be\u09ae\u09be
+languages.car=car
+languages.bh=bh
+languages.bg=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8
+languages.fr_CA=\u0995\u09cd\u09af\u09be\u09a8\u09be\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09ab\u09b0\u09be\u09b8\u09c0
+languages.ang=ang
+languages.be=\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b6\u09be\u09a8
+languages.bat=bat
+languages.bas=\u09ac\u09be\u09b8\u09be
+languages.ath=\u0986\u09a5\u09be\u09aa\u09be\u09b8\u09cd\u0995\u09cd\u09af\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.ba=\u09ac\u09be\u09b8\u0996\u09bf\u09b0
+languages.cai=\u09ae\u09a7\u09cd\u09af \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09b0 \u09ad\u09be\u09b0\u09a4\u09c0\u09af\u09bc \u09ad\u09be\u09b7\u09be
+languages.ban=ban
+languages.bal=bal
+languages.az=\u0986\u099c\u09be\u09b0 \u09ac\u09be\u0987\u099c\u09be\u09a8\u09c0\u09af\u09bc
+languages.ay=ay
+languages.cad=\u0995\u09cd\u09af\u09be\u09a1\u09cd\u09a1\u09be\u0993
+languages.bai=\u09ac\u09be\u09ae\u09bf\u09b2\u09c7\u0995\u09c7 \u09ad\u09be\u09b7\u09be
+languages.av=\u0986\u09ad\u09c7\u09b0\u09bf\u0995
+languages.en_CA=\u0995\u09cd\u09af\u09be\u09a8\u09be\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.zh=\u099a\u09c0\u09a8\u09be
+languages.as=\u0985\u09b8\u09ae\u09c0\u09af\u09bc\u09be
+languages.bad=bad
+languages.ar=ar
+languages.ast=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be\u09a8
+languages.an=an
+languages.am=am
+languages.zbl=\u09ac\u09cd\u09b2\u09bf\u09b8\u09b8\u09bf\u09ae\u09cd\u09ac\u09b2\u09b8
+languages.ak=ak
+languages.byn=\u09ac\u09cd\u09b2\u09bf\u09a8
+languages.af=af
+languages.ae=\u0986\u09ad\u09c7\u09b8\u09cd\u09a4\u09be\u09a8
+languages.ab=\u0986\u09ac\u0996\u09be\u099c\u09bf\u09af\u09bc\u09be\u09a8
+languages.aa=\u0986\u09ab\u09be\u09b0
+languages.tut=\u0986\u09b2\u099f\u09be\u0987\u0995
+languages.alt=alt
+languages.de_AT=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u099c\u09be\u09b0\u09ae\u09be\u09a8
+languages.arw=arw
+languages.rup=\u0986\u09b0\u09ae\u09c7\u09a8\u09bf\u09af\u09bc\u09be\u09a8
+languages.art=art
+languages.fr=fr
+languages.afh=\u0986\u09ab\u09cd\u09b0\u09bf\u09b9\u09bf\u09b2\u09bf
+languages.en_AU=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0987\u0982\u09b0\u09be\u099c\u09c0
+languages.arp=arp
+languages.arn=\u0986\u09b0\u09be\u0989\u0995\u09c7\u09a8\u09bf\u09af\u09bc\u09be\u09a8
+languages.ru=ru
+languages.bla=bla
+languages.alg=\u0986\u09b2\u0997\u09cb\u09a8\u0995\u09bf\u0989\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.afa=\u0986\u09ab\u09cd\u09b0\u09cb-\u098f\u09b6\u09bf\u09af\u09bc\u09be\u099f\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.ale=\u0986\u09b2\u09c7\u0989\u09a4
+languages.bra=bra
+languages.cel=\u0995\u09c7\u09b2\u09cd\u099f\u09bf\u0995
+languages.ber=ber
+languages.arc=arc
+languages.bem=bem
+languages.bej=\u09ac\u09c7\u099c\u09be
+languages.ceb=\u0995\u09c7\u09ac\u09c1\u09af\u09bc\u09be\u09a8\u09cb
+languages.en_GB=\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u0987\u0982\u09b0\u09c7\u099c\u09c0
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bo.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bo.properties
new file mode 100644 (file)
index 0000000..293e497
--- /dev/null
@@ -0,0 +1,242 @@
+# LocaleInformation_bo.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+NaN=\u0f68\u0f44\u0f0b\u0f58\u0f7a\u0f53\u0f0b
+zeroDigit=\u8d10\u7e7b\ufe3d\u8d00\u7e8a\ufe3d
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4 #,##0.00;-\u00a4 #,##0.00
+currenciesDisplayName.INR=\u0f62\u0f92\u0fb1\u0f0b\u0f42\u0f62\u0f0b\u0f66\u0f92\u0f7c\u0f62\u0f0b\u0f58\u0f7c\u0f0d
+currenciesDisplayName.CNY=\u0f61\u0f74\u0f0b\u0f68\u0f53\u0f0d
+currenciesDisplayName.XXX=\u0f58\u0f72\u0f0b\u0f64\u0f7a\u0f66\u0f0b\u0f54\u0f60\u0f58\u0f0b\u0f55\u0f53\u0f0b\u0f58\u0f7a\u0f51\u0f0b\u0f40\u0fb1\u0f72\u0f0b\u0f64\u0f7c\u0f42\u0f0b\u0f51\u0f44\u0f74\u0f63\u0f0d
+currenciesSymbol.XXX=\u0f66\u0f92\u0f7c\u0f62\u0f0b\u0f58\u0f7c\u0f0d
+shortMonths=\u0f5f\u0fb3\u0f0b\u0f21\u00ae\u0f5f\u0fb3\u0f0b\u0f22\u00ae\u0f5f\u0fb3\u0f0b\u0f23\u00ae\u0f5f\u0fb3\u0f0b\u0f24\u00ae\u0f5f\u0fb3\u0f0b\u0f25\u00ae\u0f5f\u0fb3\u0f0b\u0f26\u00ae\u0f5f\u0fb3\u0f0b\u0f27\u00ae\u0f5f\u0fb3\u0f0b\u0f28\u00ae\u0f5f\u0fb3\u0f0b\u0f29\u00ae\u0f5f\u0fb3\u0f0b\u0f21\u0f20\u00ae\u0f5f\u0fb3\u0f0b\u0f21\u0f21\u00ae\u0f5f\u0fb3\u0f0b\u0f21\u0f22\u00ae\u00ae
+months=\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54\u0f0b\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f0d\u00ae\u00ae
+shortWeekdays=\u00ae\u0f49\u0f72\u0f0b\u0f58\u0f0b\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u00ae\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b\u00ae\u0f67\u0fb3\u0f42\u0f0b\u0f54\u0f0b\u00ae\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74\u0f0b\u00ae\u0f66\u0f44\u0f66\u0f0b\u00ae\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b\u00ae
+weekdays=\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f67\u0fb3\u0f42\u0f0b\u0f54\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0f44\u0f66\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b\u00ae
+eras=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0d\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0d\u00ae
+ampms=\u0f66\u0f94\u0f0b\u0f51\u0fb2\u0f7c\u0f0b\u00ae\u0f55\u0fb1\u0f72\u0f0b\u0f51\u0fb2\u0f7c\u0f0b\u00ae
+mediumDateFormat=yyyy \u0f63\u0f7c\u0f0b\u0f60\u0f72\u0f0bMMM\u0f59\u0f7a\u0f66\u0f0bd
+longDateFormat=\u0f66\u0fa6\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0byyyy MMMM\u0f60\u0f72\u0f0b\u0f59\u0f7a\u0f66\u0f0bd\u0f51
+territories.GY=\u0f42\u0fb7\u0f74\u0f0b\u0f61\u0f71\u0f0b\u0f53\u0f0d
+territories.TD=\u0f45\u0f7b\u0f4c\u0f0d
+territories.GW=\u0f42\u0fb7\u0f72\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0b\u0f56\u0f72\u0f66\u0f84\u0f0b\u0f66\u0f7c\u0f0d
+territories.GT=\u0f42\u0fb7\u0f7c\u0f0b\u0f4a\u0f7a\u0f0b\u0f58\u0f0b\u0f63\u0f0d
+territories.GR=\u0f42\u0fb7\u0f72\u0f0b\u0f62\u0f71\u0f72\u0f0b\u0f66\u0f72\u0f0d
+territories.GN=\u0f42\u0fb7\u0f72\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.GM=\u0f42\u0fb7\u0f58\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.SV=\u0f68\u0f7a\u0f63\u0f0d \u0f66\u0f71\u0f63\u0f0b\u0f5d\u0f0b\u0f4c\u0f7c\u0f62\u0f0d
+territories.ST=\u0f66\u0f0b\u0f60\u0f7c\u0f0b\u0f4f\u0f7c\u0f51\u0f0b\u0f58\u0f51\u0f0d \u0f51\u0f44\u0f0c\u0f0d \u0f54\u0f84\u0f62\u0f72\u0f53\u0f0b\u0f66\u0f72\u0f0b\u0f54\u0f7a\u0f0d
+territories.GI=\u0f47\u0f72\u0f56\u0f0b\u0f62\u0f71\u0f63\u0f0b\u0f4a\u0f62\u0f0d
+territories.GH=\u0f42\u0fb7\u0f0b\u0f53\u0f0d
+territories.SR=\u0f66\u0f74\u0f0b\u0f62\u0f72\u0f0b\u0f53\u0f71\u0f58\u0f0d
+territories.GE=\u0f47\u0f7c\u0f62\u0f0b\u0f47\u0f72\u0f0b\u0f61\u0f0d
+territories.SO=\u0f66\u0f7c\u0f0b\u0f58\u0f71\u0f63\u0f72\u0f0b\u0f61\u0f0d
+territories.GD=\u0f42\u0fb7\u0f0b\u0f62\u0f72\u0f0b\u0f53\u0f0b\u0f4c\u0f0d
+territories.SN=\u0f66\u0f7a\u0f0b\u0f53\u0f72\u0f0b\u0f42\u0fb7\u0f63\u0f0d
+territories.SM=\u0f66\u0f53\u0f0b\u0f58\u0f7a\u0f0b\u0f62\u0f72\u0f0b\u0f53\u0f7c\u0f0d
+territories.GB=\u0f42\u0fb7\u0f84\u0f62\u0f7a\u0f4a\u0f84\u0f0b\u0f56\u0fb2\u0f71\u0f72\u0f0b\u0f4a\u0f7a\u0f53\u0f0d
+territories.SL=\u0f66\u0f7a\u0f0b\u0f61\u0f62\u0f0b\u0f62\u0f0d \u0f63\u0f72\u0f60\u0f7c\u0f53\u0f0d
+territories.GA=\u0f42\u0f7a\u0f0b\u0f56\u0f7d\u0f53\u0f0d
+territories.SK=\u0f66\u0f0b\u0f63\u0f7d\u0f0b\u0f5d\u0f40\u0fb1\u0f0d
+territories.SI=\u0f66\u0f0b\u0f63\u0f7d\u0f0b\u0f5d\u0f7a\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.SH=\u0f66\u0f7a\u0f53\u0f9a\u0f0d \u0f67\u0f7a\u0f0b\u0f63\u0f72\u0f0b\u0f53\u0f0d
+territories.SG=\u0f66\u0f72\u0f44\u0f92\u0f0b\u0f54\u0f74\u0f62\u0f0d
+territories.SD=\u0f66\u0f74\u0f0b\u0f51\u0f71\u0f53\u0f0d
+territories.SC=\u0f66\u0f71\u0f0b\u0f64\u0f7b\u0f63\u0f0d
+territories.SB=\u0f66\u0f7c\u0f0b\u0f63\u0f7c\u0f0b\u0f58\u0f7c\u0f53\u0f0d \u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f55\u0fb2\u0f53\u0f0b\u0f5a\u0f7c\u0f0b\u0f41\u0f42\u0f0d
+territories.SA=\u0f66\u0f7d\u0f0b\u0f51\u0fb7\u0f72\u0f0b\u0f68\u0f0b\u0f62\u0f71\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.FR=\u0f55\u0f0b\u0f62\u0f71\u0f53\u0f0b\u0f66\u0f72\u0f0d
+territories.RW=\u0f62\u0f74\u0f0b\u0f5d\u0f53\u0f0b\u0f4c\u0f0d
+territories.FK=\u0f55\u0f63\u0f90\u0f0b\u0f63\u0f53\u0f9c\u0f0b\u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f55\u0fb2\u0f53\u0f0d
+territories.053=\u0f68\u0f66\u0f9f\u0fb2\u0f7a\u0f0b\u0f63\u0f72\u0f0b\u0f61\u0f0b\u0f51\u0f44\u0f0b\u0f0d \u0f53\u0f72\u0f60\u0f74\u0f0b\u0f5b\u0f72\u0f0b\u0f63\u0f53\u0f84\u0f4c\u0f0d
+territories.RU=\u0f68\u0f74\u0f0b\u0f62\u0f74\u0f0b\u0f66\u0f74\u0f0d
+territories.FJ=\u0f55\u0f72\u0f0b\u0f47\u0f72\u0f0d
+territories.FI=\u0f55\u0f72\u0f53\u0f0b\u0f63\u0f53\u0f84\u0f4c\u0f0d
+territories.RS=\u0f66\u0f7a\u0f62\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.RO=\u0f62\u0f7c\u0f0b\u0f58\u0f71\u0f0b\u0f53\u0f72\u0f61\u0f0d
+territories.ET=\u0f68\u0f72\u0f0b\u0f50\u0f72\u0f60\u0f7c\u0f0b\u0f54\u0f72\u0f0b\u0f61\u0f0d
+territories.ES=\u0f66\u0f72\u0f0b\u0f54\u0f53\u0f0d
+territories.ER=\u0f68\u0f7a\u0f0b\u0f62\u0f72\u0f0b\u0f4f\u0fb2\u0f7a\u0f0b\u0f68\u0f0d
+territories.EG=\u0f68\u0f72\u0f0b\u0f47\u0f72\u0f56\u0f9a\u0f0d
+territories.EE=\u0f68\u0f72\u0f66\u0f9f\u0f7c\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.EC=\u0f68\u0f72\u0f0b\u0f41\u0fad\u0f0b\u0f4c\u0f7c\u0f62\u0f0d
+territories.DZ=\u0f68\u0f63\u0f0b\u0f47\u0f72\u0f0b\u0f62\u0f72\u0f0b\u0f61\u0f0d
+territories.QA=\u0f40\u0f0b\u0f4f\u0f71\u0f62\u0f0d
+territories.DO=\u0f4c\u0f7c\u0f0b\u0f58\u0f72\u0f53\u0f53\u0f72\u0f0b\u0f40\u0f53\u0f0b\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.PY=\u0f54\u0f71\u0f0b\u0f62\u0f0b\u0f42\u0f7a\u0f0d
+territories.DM=\u0f4c\u0f7c\u0f0b\u0f58\u0f72\u0f53\u0f0b\u0f53\u0f72\u0f0b\u0f40\u0f0d
+territories.PW=\u0f54\u0f0b\u0f63\u0f7d\u0f0d
+territories.DK=\u0f4c\u0f7a\u0f53\u0f0b\u0f58\u0f71\u0f62\u0f90\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.DJ=\u0f5b\u0f72\u0f0b\u0f56\u0f74\u0f0b\u0f4f\u0f72\u0f0d
+territories.PT=\u0f54\u0f7c\u0f62\u0f0b\u0f4f\u0f74\u0f0b\u0f42\u0fb7\u0f63\u0f0d
+territories.DE=\u0f60\u0f47\u0f62\u0f0b\u0f58\u0f53\u0f72\u0f0d
+territories.PL=\u0f54\u0f7c\u0f0b\u0f63\u0f53\u0f9c\u0f0d
+territories.PK=\u0f54\u0f40\u0f72\u0f0b\u0f66\u0f9f\u0f71\u0f53\u0f0d
+territories.PH=\u0f55\u0f72\u0f0b\u0f63\u0f72\u0f0b\u0f54\u0f72\u0f53\u0f66\u0f84\u0f0d
+territories.PG=\u0f54\u0f0b\u0f54\u0f74\u0f0b\u0f68\u0f0d \u0f53\u0f72\u0f60\u0f74\u0f0d \u0f42\u0fb7\u0f72\u0f0b\u0f53\u0f72\u0f0d
+territories.CZ=\u0f45\u0f7b\u0f42\u0f0b\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.PE=\u0f54\u0f7a\u0f0b\u0f62\u0f74\u0f0d
+territories.CY=\u0f66\u0f71\u0f61\u0f7a\u0f0b\u0f54\u0f0b\u0f62\u0f66\u0f84\u0f0d
+territories.PA=\u0f54\u0f0b\u0f53\u0f71\u0f0b\u0f58\u0f0d
+territories.CU=\u0f41\u0fb1\u0f74\u0f60\u0f74\u0f0b\u0f56\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.CR=\u0f40\u0f7c\u0f0b\u0f66\u0f84\u0f4a\u0f0b\u0f62\u0f72\u0f0b\u0f40\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.CO=\u0f40\u0f7c\u0f0b\u0f63\u0f7c\u0f58\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.CN=\u0f62\u0f92\u0fb1\u0f0b\u0f53\u0f42\u0f0d
+territories.CM=\u0f40\u0f0b\u0f58\u0f7a\u0f0b\u0f62\u0f74\u0f53\u0f0d
+territories.CL=\u0f45\u0f72\u0f0b\u0f63\u0f72\u0f0b\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.CK=\u0f40\u0f71\u0f74\u0f42 \u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f55\u0fb2\u0f7a\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.CI=\u0f40\u0f7c\u0f0b\u0f4a\u0f7a\u0f0b\u0f4c\u0f72\u0f0d \u0f68\u0f72\u0f0b\u0f5d\u0f7c\u0f0b\u0f62\u0f7a\u0f0d
+territories.OM=\u0f68\u0f7c\u0f0b\u0f58\u0f53\u0f0d
+territories.CA=CA
+territories.BZ=\u0f56\u0f7a\u0f0b\u0f63\u0f72\u0f5b\u0f0d
+territories.BY=\u0f56\u0f7a\u0f0b\u0f63\u0f74\u0f0b\u0f62\u0f74\u0f0b\u0f66\u0f74\u0f0d
+territories.BW=\u0f56\u0f7c\u0f59\u0f0b\u0f5d\u0f0b\u0f53\u0f0d
+territories.BT=\u0f60\u0f56\u0fb2\u0f74\u0f42\u0f0b\u0f61\u0f74\u0f63\u0f0d
+territories.BS=\u0f56\u0fb7\u0f71\u0f0b\u0f58\u0f66\u0f84\u0f0d
+territories.BR=\u0f56\u0f0b\u0f62\u0f71\u0f0b\u0f5b\u0f72\u0f63\u0f0d
+territories.019=\u0f68\u0f0b\u0f58\u0f7a\u0f0b\u0f62\u0f72\u0f0b\u0f40\u0f0d
+territories.NZ=\u0f53\u0f72\u0f60\u0f74\u0f0b\u0f5b\u0f72\u0f0b\u0f63\u0f53\u0f84\u0f4c\u0f0d
+territories.BO=\u0f56\u0f7c\u0f0b\u0f63\u0f72\u0f0b\u0f5d\u0f72\u0f61\u0f0d
+territories.BN=\u0f56\u0f74\u0f0b\u0f62\u0f74\u0f0b\u0f53\u0f7a\u0f0d
+territories.BM=\u0f56\u0f62\u0f0b\u0f58\u0f74\u0f0b\u0f4c\u0f0d
+territories.NU=\u0f53\u0f72\u0f60\u0f74\u0f0b\u0f5d\u0f0d
+territories.BJ=\u0f56\u0f71\u0f7a\u0f0b\u0f53\u0f72\u0f53\u0f0d
+territories.BI=\u0f56\u0f74\u0f0b\u0f62\u0f74\u0f53\u0f0b\u0f4c\u0f72\u0f0d
+territories.BH=\u0f56\u0fb7\u0f71\u0f0b\u0f62\u0f7a\u0f53\u0f0d
+territories.NR=\u0f53\u0f7d\u0f0b\u0f62\u0f74\u0f0d
+territories.BG=\u0f56\u0f74\u0f63\u0f0b\u0f42\u0f0b\u0f62\u0f72\u0f0b\u0f61\u0f0d
+territories.BF=\u0f56\u0f62\u0f40\u0f72\u0f0b\u0f53\u0f0d \u0f55\u0f66\u0f7c\u0f0d
+territories.NP=\u0f56\u0f63\u0f0b\u0f61\u0f74\u0f63\u0f0d
+territories.BE=\u0f56\u0f7a\u0f63\u0f0b\u0f47\u0f72\u0f0b\u0f61\u0f58\u0f0d
+territories.ZZ=\u0f58\u0f72\u0f0b\u0f64\u0f7a\u0f66\u0f0b\u0f54\u0f60\u0f58\u0f0b\u0f55\u0f53\u0f0b\u0f58\u0f7a\u0f51\u0f0b\u0f40\u0fb1\u0f72\u0f0b\u0f66\u0f0b\u0f41\u0f74\u0f63\u0f0d
+territories.NO=\u0f53\u0f7c\u0f62\u0f0b\u0f5d\u0f7a\u0f0d
+territories.BD=\u0f56\u0f44\u0f92\u0f0b\u0f63\u0f0b\u0f51\u0f7a\u0f64\u0f0d
+territories.BB=\u0f56\u0f71\u0f62\u0fa6\u0f0b\u0f4c\u0f7c\u0f66\u0f84\u0f0d
+territories.ZW=\u0f5b\u0f72\u0f58\u0f0b\u0f56\u0fb7\u0f71\u0f0b\u0f56\u0f7a\u0f0d
+territories.NL=\u0f53\u0f7a\u0f0b\u0f50\u0f62\u0f0b\u0f63\u0f53\u0f9c\u0f0d
+territories.BA=\u0f56\u0f7c\u0f66\u0fa3\u0f72\u0f0b\u0f61\u0f0b\u0f51\u0f44\u0f0b\u0f67\u0f62\u0fab\u0f7c\u0f0b\u0f42\u0f7c\u0f0b\u0f5d\u0f72\u0f0b\u0f53\u0f0d
+territories.NI=\u0f53\u0f72\u0f0b\u0f40\u0f0b\u0f62\u0f0b\u0f42\u0f74\u0f0b\u0f68\u0f0d
+territories.NG=\u0f53\u0f71\u0f60\u0f72\u0f0b\u0f47\u0f72\u0f0b\u0f62\u0f72\u0f0b\u0f61\u0f0d
+territories.AZ=\u0f68\u0f5b\u0f62\u0f0b\u0f56\u0f61\u0f7a\u0f0b\u0f47\u0f53\u0f0d
+territories.NE=\u0f53\u0f60\u0f72\u0f0b\u0f47\u0f62\u0f0d
+territories.AW=\u0f68\u0f0b\u0f62\u0f74\u0f0b\u0f56\u0f0d
+territories.ZM=\u0f5b\u0f58\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.AU=\u0f68\u0f66\u0f9f\u0fb2\u0f7a\u0f0b\u0f63\u0f72\u0f0b\u0f61\u0f0d
+territories.NA=\u0f53\u0f0b\u0f58\u0f72\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.AT=\u0f68\u0f66\u0f9f\u0fb2\u0f72\u0f0b\u0f61\u0f0d
+territories.AR=\u0f68\u0f62\u0f0b\u0f47\u0f7a\u0f53\u0f0b\u0f4a\u0f72\u0f0b\u0f53\u0f0d
+territories.AQ=\u0f63\u0fb7\u0f7c\u0f0b\u0f62\u0fa9\u0f7a\u0f60\u0f72\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f0d
+territories.MZ=\u0f58\u0f7c\u0f0b\u0f5b\u0f58\u0f0b\u0f56\u0f72\u0f42\u0f0d
+territories.AO=AO
+territories.MY=\u0f58\u0f0b\u0f63\u0f7a\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f0d
+territories.MX=\u0f58\u0f7a\u0f40\u0f0b\u0f66\u0f72\u0f0b\u0f40\u0f7c\u0f0d
+territories.AM=\u0f68\u0f62\u0f0b\u0f58\u0f7a\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.005=005
+territories.MW=\u0f58\u0f71\u0f0b\u0f63\u0f71\u0f0b\u0f5d\u0f72\u0f0d
+territories.AL=\u0f68\u0f63\u0f0b\u0f56\u0f71\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.MV=\u0f58\u0f63\u0f0b\u0f51\u0fad\u0f72\u0f56\u0f0d
+territories.ZA=\u0f63\u0fb7\u0f7c\u0f0b \u0f68\u0f55\u0fb2\u0f72\u0f0b\u0f40\u0f0d
+territories.MU=\u0f58\u0f7d\u0f0b\u0f62\u0f72\u0f64\u0f66\u0f84\u0f0d
+territories.002=002
+territories.MT=\u0f58\u0f63\u0f0b\u0f4a\u0f0d
+territories.AI=\u0f68\u0f44\u0f0b\u0f42\u0f74\u0f60\u0f72\u0f0b\u0f63\u0f0d
+territories.001=\u0f60\u0f5b\u0f58\u0f0b\u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f0d
+territories.MR=\u0f58\u0f7d\u0f0b\u0f62\u0f72\u0f0b\u0f4f\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.AG=\u0f68\u0f7a\u0f53\u0f0b\u0f4a\u0f72\u0f0b\u0f42\u0f74\u0f0b\u0f51\u0f44\u0f0b\u0f0d \u0f56\u0fb7\u0f62\u0f0b\u0f56\u0f74\u0f0b\u0f4c\u0f0d
+territories.AF=\u0f68\u0f55\u0f0b\u0f42\u0f0b\u0f53\u0f72\u0f0b\u0f66\u0f9f\u0f71\u0f53\u0f0d
+territories.AE=\u0f68\u0f0b\u0f62\u0f56\u0f0d \u0f68\u0f72\u0f0b\u0f58\u0f72\u0f0b\u0f62\u0f4a\u0f84\u0f0d \u0f46\u0f72\u0f42\u0f0b\u0f66\u0f92\u0fb2\u0f72\u0f63\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.MO=\u0f58\u0f7a\u0f0b\u0f40\u0f60\u0f7c\u0f0d
+territories.AD=\u0f68\u0f7a\u0f53\u0f0b\u0f4c\u0f7c\u0f0b\u0f62\u0f0d
+territories.MN=\u0f58\u0f7c\u0f44\u0f92\u0f7c\u0f0b\u0f63\u0f72\u0f0b\u0f61\u0f0d
+territories.MM=\u0f60\u0f56\u0f62\u0f0b\u0f58\u0f0d
+territories.ML=\u0f58\u0f0b\u0f63\u0f72\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.MH=\u0f58\u0f71\u0f62\u0f0b\u0f64\u0f63\u0f0b\u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f55\u0fb2\u0f7a\u0f53\u0f0d
+territories.MG=\u0f58\u0f0b\u0f51\u0f71\u0f0b\u0f42\u0fb7\u0f66\u0f90\u0f71\u0f62\u0f0d
+territories.MC=\u0f58\u0f7c\u0f0b\u0f53\u0f0b\u0f40\u0f7c\u0f0d
+territories.MA=\u0f58\u0f7c\u0f44\u0f92\u0f7c\u0f0b\u0f63\u0f72\u0f0b\u0f61\u0f0d
+territories.YE=\u0f61\u0f7a\u0f0b\u0f58\u0f7a\u0f53\u0f0d
+territories.LY=\u0f63\u0f72\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.LV=\u0f63\u0f4f\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.LU=\u0f63\u0f40\u0f0b\u0f5b\u0f58\u0f0b\u0f56\u0f7c\u0f62\u0f92\u0f0d
+territories.LT=\u0f63\u0f72\u0f0b\u0f50\u0f74\u0f0b\u0f68\u0f7a\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.LS=\u0f63\u0f7a\u0f0b\u0f66\u0f7c\u0f0b\u0f50\u0f7c\u0f0d
+territories.LR=\u0f63\u0f72\u0f0b\u0f56\u0f7a\u0f0b\u0f62\u0f72\u0f0b\u0f61\u0f0d
+territories.150=\u0f61\u0f74\u0f0b\u0f62\u0f7c\u0f56\u0f0d
+territories.LK=\u0f64\u0fb2\u0f71\u0f72\u0f0b\u0f63\u0f44\u0f0b\u0f40\u0f0d
+territories.LI=\u0f63\u0f7a\u0f42\u0f0b\u0f4f\u0f7a\u0f53\u0f0b\u0f5a\u0f72\u0f53\u0f0d
+territories.LC=\u0f66\u0f7a\u0f53\u0f9a\u0f0d \u0f63\u0f74\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f0d
+territories.LB=\u0f63\u0f7a\u0f56\u0f0b\u0f53\u0f7c\u0f53\u0f0d
+territories.LA=\u0f63\u0f71\u0f0b\u0f60\u0f7c\u0f66\u0f0d
+territories.KZ=\u0f41\u0f0b\u0f5b\u0f71\u0f42\u0f0b\u0f66\u0f9f\u0f71\u0f53\u0f0d
+territories.KY=\u0f41\u0f7a\u0f0b\u0f58\u0f7a\u0f53\u0f0b\u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f55\u0fb2\u0f53\u0f0d
+territories.KW=\u0f40\u0f74\u0f0b\u0f5d\u0f7a\u0f51\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.142=\u0f68\u0f7a\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f0d
+territories.KR=\u0f40\u0f7c\u0f0b\u0f62\u0f72\u0f0b\u0f61\u0f0d \u0f63\u0fb7\u0f7c\u0f0b\u0f58\u0f0d
+territories.KN=\u0f66\u0f7a\u0f53\u0f9a\u0f0d \u0f40\u0f72\u0f4a\u0f9a\u0f66\u0f84\u0f0d \u0f51\u0f44\u0f0c\u0f0d \u0f53\u0f7a\u0f0b\u0f56\u0f72\u0f66\u0f84\u0f0d
+territories.KI=\u0f40\u0f72\u0f0b\u0f62\u0f72\u0f0b\u0f56\u0f71\u0f0b\u0f4f\u0f72\u0f0d
+territories.WS=\u0f53\u0f74\u0f0b\u0f56\u0f0b\u0f66\u0f0b\u0f58\u0f7c\u0f0b\u0f60\u0f0d
+territories.KH=\u0f40\u0f58\u0f0b\u0f54\u0f74\u0f0b\u0f45\u0f72\u0f0b\u0f61\u0f0d
+territories.KG=\u0f41\u0f72\u0f62\u0f0b\u0f42\u0f72\u0f5b\u0f0b\u0f66\u0f9f\u0f71\u0f53\u0f0d
+territories.KE=\u0f41\u0f7a\u0f53\u0f0b\u0f49\u0f72\u0f0b\u0f61\u0f0d
+territories.JP=\u0f47\u0f0b\u0f54\u0f71\u0f53\u0f0d
+territories.JO=\u0f47\u0f7c\u0f62\u0f0b\u0f4c\u0f53\u0f0d
+territories.JM=\u0f5b\u0f0b\u0f58\u0f7a\u0f0b\u0f40\u0f0d
+territories.VU=\u0f5d\u0f0b\u0f53\u0f74\u0f0b\u0f68\u0f0b\u0f50\u0f74\u0f0d
+territories.VN=\u0f5d\u0f7a\u0f51\u0f0b\u0f53\u0f58\u0f0d
+territories.VE=\u0f5d\u0f7a\u0f0b\u0f53\u0f72\u0f0b\u0f5b\u0f74\u0f60\u0f7a\u0f0b\u0f63\u0f0d
+territories.VC=\u0f66\u0f7a\u0f53\u0f9a\u0f0d \u0f5d\u0f72\u0f53\u0f0b\u0f66\u0f53\u0f0d \u0f51\u0f44\u0f0c\u0f0d \u0f42\u0fb7\u0f72\u0f62\u0f72\u0f53\u0f0b\u0f4c\u0f72\u0f53\u0f0d
+territories.VA=\u0f51\u0f58\u0f0b\u0f54\u0f60\u0f72\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f58\u0f66\u0f0d
+territories.IT=\u0f68\u0f72\u0f0b\u0f4a\u0f0b\u0f63\u0f72\u0f0d
+territories.IS=\u0f68\u0f0b\u0f68\u0f72\u0f0b\u0f66\u0f72\u0f0b\u0f63\u0f53\u0f51\u0f0d
+territories.IR=\u0f68\u0f72\u0f0b\u0f62\u0f71\u0f53\u0f0d
+territories.IQ=\u0f68\u0f72\u0f0b\u0f62\u0f42\u0f0d
+territories.UZ=\u0f68\u0f74\u0f5b\u0f0b\u0f56\u0f7a\u0f0b\u0f40\u0f72\u0f66\u0f9f\u0f71\u0f53\u0f0d
+territories.UY=\u0f68\u0f74\u0f0b\u0f62\u0f74\u0f0b\u0f42\u0fb7\u0f7a\u0f0d
+territories.IN=\u0f62\u0f92\u0fb1\u0f0b\u0f42\u0f62\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f53\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.IL=\u0f68\u0f72\u0f0b\u0f5b\u0f84\u0f0b\u0f62\u0f7a\u0f63\u0f0d
+territories.US=\u0f68\u0f0b\u0f62\u0f72\u0f0b\u0f46\u0f72\u0f42\u0f0b\u0f66\u0f92\u0fb2\u0f72\u0f63\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.IE=\u0f68\u0f0b\u0f61\u0f62\u0f0b\u0f63\u0f53\u0f4c\u0f0d
+territories.ID=\u0f68\u0f72\u0f53\u0f0b\u0f4c\u0f7c\u0f0b\u0f53\u0f7a\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f0d
+territories.UG=\u0f61\u0f74\u0f0b\u0f42\u0f53\u0f0b\u0f4c\u0f0d
+territories.UA=\u0f61\u0f74\u0f0b\u0f40\u0f62\u0f7a\u0f53\u0f0d
+territories.HU=\u0f67\u0f44\u0f92\u0f0b\u0f62\u0f72\u0f0d
+territories.HT=\u0f67\u0f7a\u0f0b\u0f4f\u0f72\u0f0d
+territories.HR=\u0f40\u0f74\u0f62\u0f7c\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.HN=\u0f67\u0f7c\u0f53\u0f0b\u0f51\u0f74\u0f0b\u0f62\u0f66\u0f84\u0f0d
+territories.TV=\u0f50\u0f74\u0f0b\u0f5d\u0f0b\u0f63\u0f74\u0f0d
+territories.HK=\u0f67\u0f7c\u0f44\u0f0b\u0f40\u0f7c\u0f44\u0f0c\u0f0d
+territories.TR=\u0f4f\u0f74\u0f62\u0f40\u0f72\u0f0d
+languages.en_GB=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64\u0f0d (\u0f62\u0fa6\u0f72\u0f0b\u0f62\u0f72\u0f0b\u0f4a\u0f72\u0f64\u0f0b)
+languages.ja=\u0f62\u0f72\u0f0b\u0f54\u0f72\u0f53\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.zu=\u0f5f\u0f74\u0f0b\u0f63\u0f74\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.und=\u0f58\u0f72\u0f60\u0f72\u0f0b\u0f64\u0f7a\u0f66\u0f0b\u0f62\u0f9f\u0f7c\u0f42\u0f66\u0f0b\u0f58\u0f0b\u0f56\u0fb1\u0f74\u0f44\u0f0b\u0f56\u0f0d \u0f61\u0f44\u0f0b\u0f53\u0f0b\u0f46\u0f51\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f45\u0f53\u0f0b\u0f42\u0fb1\u0f72\u0f0b\u0f66\u0f90\u0f51\u0f0b\u0f56\u0f62\u0fa1\u0f0d
+languages.en=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64\u0f0d
+languages.hi=\u0f62\u0f92\u0fb1\u0f0b\u0f66\u0f90\u0f51\u0f72\u0f0d
+languages.it=\u0f51\u0f56\u0fb1\u0f72\u0f0b\u0f4f\u0f0b\u0f0b\u0f63\u0f60\u0f72\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.ne=\u0f53\u0f7a\u0f0b\u0f54\u0f71\u0f63\u0f72\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.fr=\u0f67\u0fa5\u0f0b\u0f62\u0f53\u0f0b\u0f66\u0f72\u0f60\u0f72\u0f0b\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.zh=\u0f62\u0f92\u0fb1\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.ru=\u0f68\u0f74\u0f0b\u0f62\u0f74\u0f0b\u0f66\u0f74\u0f0b\u0f66\u0f90\u0f51\u0f0b
+languages.en_US=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64\u0f0d (\u0f68\u0f0b\u0f62\u0f72\u0f0b)
+languages.dz=\u0f62\u0fab\u0f7c\u0f44\u0f0b\u0f41\u0f0d
+languages.zen=\u0f5f\u0f7a\u0f0b\u0f53\u0f0b\u0f42\u0f71\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.gu=\u0f42\u0f74\u0f47\u0f0b\u0f62\u0f71\u0f4f\u0f72\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.en_AU=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64\u0f0d (\u0f68\u0f66\u0f9f\u0fb2\u0f0b\u0f63\u0f72\u0f0b\u0f61\u0f0b)
+languages.pt_BR=\u0f54\u0f0b\u0f5e\u0f60\u0f72\u0f0b\u0f58\u0f72\u0f0d  \u0f55\u0f72\u0f0b\u0f50\u0f7c\u0f0b\u0f61\u0f60\u0f72\u0f0b\u0f58\u0f72\u0f0d
+languages.pt=\u0f55\u0f72\u0f0b\u0f50\u0f7c\u0f0b\u0f61\u0f60\u0f72\u0f0d
+languages.zh_Hans=\u0f66\u0f9f\u0f56\u0f66\u0f0b\u0f56\u0f62\u0fa1\u0f60\u0f72\u0f0d  \u0f40\u0fb2\u0f74\u0f44\u0f0b\u0f42\u0f7c\u0f60\u0f72\u0f0d
+languages.en_CA=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64\u0f0d (\u0f41\u0f7a\u0f0b\u0f53\u0f0b\u0f4c\u0f0b)
+languages.zh_Hant=\u0f66\u0fb2\u0f7c\u0f63\u0f0b\u0f62\u0f92\u0fb1\u0f74\u0f53\u0f0b\u0f42\u0fb1\u0f72\u0f0d
+languages.la=\u0f63\u0f7a\u0f0b\u0f4a\u0f72\u0f53\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.de=\u0f60\u0f47\u0f62\u0f0b\u0f58\u0f53\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.gaa=\u0f42\u0f71\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.es=\u0f5e\u0f72\u0f0b\u0f54\u0f53\u0f0b\u0f61\u0f60\u0f72\u0f0d
+languages.zza=\u0f5f\u0f0b\u0f5f\u0f71\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.zun=\u0f5f\u0f74\u0f0b\u0f53\u0f72\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.bo=\u0f56\u0f7c\u0f51\u0f0b\u0f66\u0f90\u0f51\u0f0d
index 678a363d1d358dc7b323300a01746690d9764c70..49489aadc1e3a0c49f74d0a0b2899c03b7318c4b 100644 (file)
 decimalSeparator=,
 groupingSeparator=.
 currenciesDisplayName.BAM=Konvertibilna marka
+currenciesDisplayName.XXX=Nepoznata ili neva\u017ee\u0107a valuta
 currenciesSymbol.BAM=KM
-shortMonths=Jan®Feb®Mar®Apr®Maj®Jun®Jul®Avg®Sep®Okt®Nov®Dec®®
-months=Januar®Februar®Mart®April®Maj®Juni®Juli®Avgust®Septembar®Oktobar®Novembar®Decembar®®
-shortWeekdays=®Ned®Pon®Uto®Sri®\u010cet®Pet®Sub®
-weekdays=®Nedjelja®Ponedjeljak®Utorak®Srijeda®\u010cetvrtak®Petak®Subota®
-firstDayOfWeek=mon
-eras=BC®AD®
+currenciesSymbol.XXX=XXX
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMaj\u00aeJun\u00aeJul\u00aeAvg\u00aeSep\u00aeOkt\u00aeNov\u00aeDec\u00ae\u00ae
+months=Januar\u00aeFebruar\u00aeMart\u00aeApril\u00aeMaj\u00aeJuni\u00aeJuli\u00aeAvgust\u00aeSeptembar\u00aeOktobar\u00aeNovembar\u00aeDecembar\u00ae\u00ae
+shortWeekdays=\u00aeNed\u00aePon\u00aeUto\u00aeSri\u00ae\u010cet\u00aePet\u00aeSub\u00ae
+weekdays=\u00aeNedjelja\u00aePonedjeljak\u00aeUtorak\u00aeSrijeda\u00ae\u010cetvrtak\u00aePetak\u00aeSubota\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=Tonga
+territories.BA=Bosna i Hercegovina
+territories.ZZ=Nepoznata ili neva\u017ee\u0107a oblast
+territories.RS=Srbija
+territories.ME=Crna Gora
+languages.es=\u0161panjolski
+languages.ku=kurdski
+languages.eo=esperanto
+languages.en=engleski
+languages.el=gr\u010dki
+languages.ko=koreanski
+languages.kn=kannada
+languages.km=kambod\u017eanski
+languages.ka=gruzijski
+languages.jv=javanski
+languages.fil=filipinski
+languages.pt=portugalski
+languages.ps=pakistanski
+languages.de=njema\u010dki
+languages.pl=poljski
+languages.da=danski
+languages.tlh=klingonski
+languages.ja=japanski
+languages.vi=vijetnamski
+languages.cy=vel\u0161ki
+languages.pa=pend\u017eabi
+languages.cs=\u010de\u0161ki
+languages.it=talijanski
+languages.is=islandski
+languages.uz=uzbekistanski
+languages.or=indijski
+languages.ur=urdu
+languages.ca=katalonski
+languages.ie=me\u0111ujezi\u010dni
+languages.id=indonezijski
+languages.uk=ukrajinski
+languages.ia=interlingua
+languages.oc=oksitanski
+languages.ug=uighur
+languages.hy=armenski
+languages.bs=bosanski
+languages.br=bretonac
+languages.hu=ma\u0111arski
+languages.bo=tibetanski
+languages.pt_PT=portugalski (Portugal)
+languages.bn=bengalski
+languages.hr=hrvatski
+languages.tw=twi
+languages.bh=bihari
+languages.bg=bugarski
+languages.no=norve\u0161ki
+languages.be=bjeloruski
+languages.nn=norve\u0161ki (novonorve\u0161ki)
+languages.hi=hindu
+languages.tr=turski
+languages.nl=holandski
+languages.zu=zulu
+languages.he=hebrejski
+languages.tk=turkmenski
+languages.ne=nepalski
+languages.az=azerbejd\u017eanski
+languages.ti=tigrinya (eritrejski)
+languages.th=tajlandski
+languages.te=telugu
+languages.zh=kineski
+languages.as=asameski
+languages.ar=arapski
+languages.ta=tamilski
+languages.gu=gud\u017earati
+languages.am=amharski
+languages.mt=malte\u0161ki
+languages.ms=malajski
+languages.gn=guarani
+languages.sw=svahili
+languages.mr=marati
+languages.sv=\u0161vedski
+languages.gl=galicijski
+languages.su=sudanski
+languages.af=afrikaans
+languages.st=sesoto
+languages.mn=mongolski
+languages.sr=srpski
+languages.sq=albanski
+languages.ml=malajalamski
+languages.mk=makedonski
+languages.so=somalski
+languages.gd=\u0161kotski gelski
+languages.sl=slovena\u010dki
+languages.sk=slova\u010dki
+languages.ga=irski
+languages.si=sinhaleski
+languages.sh=srpsko-hrvatski
+languages.pt_BR=portugalski (Brazil)
+languages.yi=jidi\u0161
+languages.sd=sindi
+languages.fy=frizijski
+languages.sa=sanskrit
+languages.fr=francuski
+languages.lv=latvijski
+languages.lt=litvanski
+languages.fo=farski
+languages.ru=ruski
+languages.lo=laothian
+languages.ln=n/a
+languages.fi=finski
+languages.ro=rumunski
+languages.fa=perzijski
+languages.und=nepoznati ili neva\u017ee\u0107i jezik
+languages.la=latinski
+languages.xh=bantu
+languages.eu=baskijski
+languages.ky=kirgiski
+languages.et=estonski
index f300c2348428728e5257046e729cb22c9e53ae40..cf514c8e05209d489418d7c9e8e17b9c54c8a53c 100644 (file)
@@ -5,9 +5,10 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
 currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
 currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
@@ -16,30 +17,34 @@ currenciesDisplayName.ETB=\u12e8\u12a2\u1275\u12ee\u1335\u12eb \u1265\u122d
 currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u1295\u12f5 \u1235\u1270\u122d\u120a\u1295\u130d
 currenciesSymbol.ETB=$
 currenciesSymbol.CNY=Y
-currenciesSymbol.ERN=$
-currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u120d\u12f0\u1275®\u12ab\u1265\u12bd®\u12ad\u1265\u120b®\u134b\u1305\u12ba®\u12ad\u1262\u1245®\u121d/\u1275®\u12b0\u122d®\u121b\u122d\u12eb®\u12eb\u12b8\u1292®\u1218\u1270\u1209®\u121d/\u121d®\u1270\u1215\u1233®®
-months=\u120d\u12f0\u1275\u122a®\u12ab\u1265\u12bd\u1265\u1272®\u12ad\u1265\u120b®\u134b\u1305\u12ba\u122a®\u12ad\u1262\u1245\u122a®\u121d\u12aa\u12a4\u120d \u1275\u1313\u0305\u1292\u122a®\u12b0\u122d\u12a9®\u121b\u122d\u12eb\u121d \u1275\u122a®\u12eb\u12b8\u1292 \u1218\u1233\u1245\u1208\u122a®\u1218\u1270\u1209®\u121d\u12aa\u12a4\u120d \u1218\u123d\u12c8\u122a®\u1270\u1215\u1233\u1235\u122a®®
-shortWeekdays=®\u1230/\u1245®\u1230\u1291®\u1230\u120a\u131d®\u1208\u1313®\u12a3\u121d\u12f5®\u12a3\u122d\u1265®\u1230/\u123d®
-weekdays=®\u1230\u1295\u1260\u122d \u1245\u12f3\u12c5®\u1230\u1291®\u1230\u120a\u131d®\u1208\u1313 \u12c8\u122a \u1208\u1265\u12cb®\u12a3\u121d\u12f5®\u12a3\u122d\u1265®\u1230\u1295\u1260\u122d \u123d\u1313\u12c5®
-firstDayOfWeek=sat
-eras=\u12ed\u1305®\u12a3\u12f5®
-ampms=\u134b\u12f1\u1235 \u1303\u1265®\u134b\u12f1\u1235 \u12f0\u121d\u1262®
+shortMonths=\u120d\u12f0\u1275\u00ae\u12ab\u1265\u12bd\u00ae\u12ad\u1265\u120b\u00ae\u134b\u1305\u12ba\u00ae\u12ad\u1262\u1245\u00ae\u121d/\u1275\u00ae\u12b0\u122d\u00ae\u121b\u122d\u12eb\u00ae\u12eb\u12b8\u1292\u00ae\u1218\u1270\u1209\u00ae\u121d/\u121d\u00ae\u1270\u1215\u1233\u00ae\u00ae
+months=\u120d\u12f0\u1275\u122a\u00ae\u12ab\u1265\u12bd\u1265\u1272\u00ae\u12ad\u1265\u120b\u00ae\u134b\u1305\u12ba\u122a\u00ae\u12ad\u1262\u1245\u122a\u00ae\u121d\u12aa\u12a4\u120d \u1275\u131f\u1292\u122a\u00ae\u12b0\u122d\u12a9\u00ae\u121b\u122d\u12eb\u121d \u1275\u122a\u00ae\u12eb\u12b8\u1292 \u1218\u1233\u1245\u1208\u122a\u00ae\u1218\u1270\u1209\u00ae\u121d\u12aa\u12a4\u120d \u1218\u123d\u12c8\u122a\u00ae\u1270\u1215\u1233\u1235\u122a\u00ae\u00ae
+shortWeekdays=\u00ae\u1230/\u1245\u00ae\u1230\u1291\u00ae\u1230\u120a\u131d\u00ae\u1208\u1313\u00ae\u12a3\u121d\u12f5\u00ae\u12a3\u122d\u1265\u00ae\u1230/\u123d\u00ae
+weekdays=\u00ae\u1230\u1295\u1260\u122d \u1245\u12f3\u12c5\u00ae\u1230\u1291\u00ae\u1230\u120a\u131d\u00ae\u1208\u1313 \u12c8\u122a \u1208\u1265\u12cb\u00ae\u12a3\u121d\u12f5\u00ae\u12a3\u122d\u1265\u00ae\u1230\u1295\u1260\u122d \u123d\u1313\u12c5\u00ae
+eras=\u12ed\u1305\u00ae\u12a3\u12f5\u00ae
+ampms=\u134b\u12f1\u1235 \u1303\u1265\u00ae\u134b\u12f1\u1235 \u12f0\u121d\u1262\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1361 dd MMMM \u130d\u122d\u130b yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.AU=\u12a0\u12cd\u1235\u1275\u122c\u120a\u12eb
 territories.TD=\u127b\u12f5
-territories.AT=\u12a6\u1235\u1275\u122a\u12eb
 territories.GY=\u1309\u12eb\u1293
-territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
+territories.AT=\u12a6\u1235\u1275\u122a\u12eb
 territories.GW=\u1262\u1233\u12ce
+territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
 territories.MY=\u121b\u120c\u12e2\u12eb
 territories.MX=\u121c\u12ad\u1232\u12ae
 territories.AN=\u1294\u12d8\u122d\u120b\u1295\u12f5\u1235 \u12a0\u1295\u1272\u120d\u1235
-territories.AM=\u12a0\u122d\u121c\u1292\u12eb
 territories.GR=\u130d\u122a\u12ad
+territories.AM=\u12a0\u122d\u121c\u1292\u12eb
 territories.ZA=\u12f0\u1261\u1265 \u12a0\u134d\u122a\u12ab
-territories.AL=\u12a0\u120d\u1263\u1292\u12eb
 territories.GQ=\u12a2\u12b3\u1276\u122a\u12eb\u120d \u130a\u1292
+territories.AL=\u12a0\u120d\u1263\u1292\u12eb
 territories.MU=\u121b\u1229\u1238\u1235
 territories.SY=\u1232\u122a\u12eb
 territories.MT=\u121b\u120d\u1273
@@ -85,13 +90,13 @@ territories.KM=\u12ae\u121e\u122e\u1235
 territories.EH=\u121d\u12d5\u122b\u1263\u12ca \u1233\u1205\u122b
 territories.EG=\u130d\u1265\u133d
 territories.EE=\u12a4\u1235\u1276\u1292\u12eb
-territories.EC=\u12a2\u12b3\u12f6\u122d
 territories.KH=\u12ab\u121d\u1266\u12f2\u12eb
+territories.EC=\u12a2\u12b3\u12f6\u122d
 territories.DZ=\u12a0\u120d\u1304\u122a\u12eb
 territories.DO=\u12f6\u121a\u1292\u12ad \u122a\u1351\u1265\u120a\u12ad
 territories.DM=\u12f6\u121a\u1292\u12ab
-territories.DK=\u12f4\u1295\u121b\u122d\u12ad
 territories.JP=\u1303\u1353\u1295
+territories.DK=\u12f4\u1295\u121b\u122d\u12ad
 territories.JO=\u1306\u122d\u12f3\u1295
 territories.PR=\u1356\u122d\u1273 \u122a\u12ae
 territories.JM=\u1303\u121b\u12ed\u12ab
@@ -107,13 +112,13 @@ territories.VG=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u12f5\u1295\u130d\u120d \u1
 territories.CV=\u12ac\u1355 \u126c\u122d\u12f4
 territories.VE=\u126c\u1295\u12d9\u12cc\u120b
 territories.CS=\u1230\u122d\u1262\u12eb
-territories.CO=\u12ae\u120e\u121d\u1262\u12eb
 territories.IT=\u1323\u120a\u12eb\u1295
-territories.CN=\u127b\u12ed\u1293
+territories.CO=\u12ae\u120e\u121d\u1262\u12eb
 territories.IS=\u12a0\u12ed\u1235\u120b\u1295\u12f5
+territories.CN=\u127b\u12ed\u1293
 territories.CM=\u12ab\u121c\u1229\u1295
-territories.CL=\u127a\u120a
 territories.IQ=\u12a2\u122b\u1245
+territories.CL=\u127a\u120a
 territories.UZ=\u12e9\u12dd\u1260\u12aa\u1235\u1273\u1295
 territories.IN=\u1205\u1295\u12f5
 territories.CH=\u1235\u12ca\u12d8\u122d\u120b\u1295\u12f5
@@ -130,10 +135,10 @@ territories.BT=\u1261\u1205\u1273\u1295
 territories.BR=\u1265\u122b\u12da\u120d
 territories.NZ=\u1292\u12cd \u12da\u120b\u1295\u12f5
 territories.HU=\u1200\u1295\u130b\u122a
-territories.BO=\u1266\u120a\u126a\u12eb
 territories.HT=\u1200\u12ed\u1272
-territories.BM=\u1264\u122d\u1219\u12f3
+territories.BO=\u1266\u120a\u126a\u12eb
 territories.HR=\u12ad\u122e\u12a4\u123d\u12eb
+territories.BM=\u1264\u122d\u1219\u12f3
 territories.TZ=\u1273\u1295\u12db\u1292\u12eb
 territories.BH=\u1263\u1205\u122c\u1295
 territories.BG=\u1261\u120d\u130c\u122a\u12eb
@@ -159,8 +164,8 @@ territories.NA=\u1293\u121a\u1262\u12eb
 languages.es=\u1235\u1353\u1292\u123d
 languages.ku=\u12a9\u122d\u12f5\u123d\u129b
 languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
-languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
 languages.ks=\u12ab\u123d\u121a\u122d\u129b
+languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
 languages.el=\u130d\u122a\u12ad\u129b
 languages.qu=\u12b5\u127f\u129b
 languages.ko=\u12ae\u122a\u12eb\u129b
@@ -184,8 +189,8 @@ languages.cy=\u12c8\u120d\u123d
 languages.pa=\u1353\u1295\u1303\u1262\u129b
 languages.cs=\u127c\u12ad\u129b
 languages.iu=\u12a5\u1291\u12ad\u1272\u1271\u1275\u129b
-languages.co=\u12ae\u122d\u1232\u12ab\u129b
 languages.it=\u1323\u120a\u12eb\u1295\u129b
+languages.co=\u12ae\u122d\u1232\u12ab\u129b
 languages.is=\u12a0\u12ed\u1235\u120b\u1295\u12f5\u129b
 languages.uz=\u12a1\u12dd\u1260\u12ad\u129b
 languages.or=\u12a6\u122a\u12eb\u129b
@@ -242,8 +247,8 @@ languages.am=\u12a0\u121b\u122d\u129b
 languages.za=\u12e1\u12cb\u1295\u130d\u129b
 languages.mt=\u121b\u120d\u1272\u1235\u129b
 languages.ms=\u121b\u120b\u12ed\u129b
-languages.gn=\u1313\u122b\u1292\u129b
 languages.byn=\u1265\u120a\u1295
+languages.gn=\u1313\u122b\u1292\u129b
 languages.sw=\u1235\u12cb\u1202\u120a\u129b
 languages.mr=\u121b\u122b\u12da\u129b
 languages.sv=\u1235\u12ca\u12f5\u1295\u129b
@@ -281,14 +286,14 @@ languages.sid=\u1232\u12f3\u121d\u129b
 languages.sa=\u1233\u1295\u1235\u12ad\u122a\u1275\u129b
 languages.fr=\u1348\u1228\u1295\u1233\u12ed\u129b
 languages.lv=\u120b\u1275\u126a\u12eb\u1295
-languages.fo=\u134b\u122e\u129b
 languages.lt=\u120a\u1271\u12a0\u1292\u12eb\u1295
+languages.fo=\u134b\u122e\u129b
 languages.rw=\u12aa\u1295\u12eb\u122d\u12cb\u1295\u12f5\u129b
 languages.ru=\u122b\u123d\u129b
-languages.fj=\u134a\u1302\u129b
 languages.lo=\u120b\u12cd\u1235\u129b
-languages.fi=\u134a\u1292\u123d
+languages.fj=\u134a\u1302\u129b
 languages.ln=\u120a\u1295\u130b\u120b\u129b
+languages.fi=\u134a\u1292\u123d
 languages.ro=\u122e\u121b\u1292\u12eb\u1295
 languages.rn=\u1229\u1295\u12f2\u129b
 languages.rm=\u122e\u121b\u1295\u1235
@@ -296,5 +301,5 @@ languages.fa=\u1350\u122d\u1232\u12eb\u129b
 languages.la=\u120b\u1272\u1295\u129b
 languages.xh=\u12de\u1233\u129b
 languages.eu=\u1263\u1235\u12ad\u129b
-languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
 languages.ky=\u12aa\u122d\u130a\u12dd\u129b
+languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
index 8a598d94d0d5cef9889adb284446441ef0c30758..4e7307c26cbdd9526a04da7fa67aec4379bf0c9c 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=.
-localPatternChars=GuMtkHmsSEDFwWahKzUeygAZ
-currenciesDisplayName.INR=Rupia \u00edndia
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GuMtkHmsSEDFwWahKzUeygAZvcL
+currenciesDisplayName.KES=X\u00edling keny\u00e0
+currenciesDisplayName.CYP=Lliures xipriotes
+currenciesDisplayName.HRK=Kuna croata
+currenciesDisplayName.IEP=Lliures irlandeses
+currenciesDisplayName.GRD=Dracmes gregues
+currenciesDisplayName.SIT=Tolars eslovens
+currenciesDisplayName.FRF=Francs franc\u00e8sos
+currenciesDisplayName.CLP=Peso xil\u00e8
+currenciesDisplayName.ZAR=Rand
+currenciesDisplayName.RON=Nou leu roman\u00e8s
+currenciesDisplayName.HKD=D\u00f2lar De Hong Kong
+currenciesDisplayName.ARS=Peso argent\u00ed
+currenciesDisplayName.BRL=Real brasiler
 currenciesDisplayName.JPY=Ien japon\u00e8s
+currenciesDisplayName.IDR=Rupia indon\u00e8sia
+currenciesDisplayName.EEK=Corona estoniana
+currenciesDisplayName.LVL=Lats
+currenciesDisplayName.DEM=Marcs alemanys
 currenciesDisplayName.RUB=Ruble rus
-currenciesDisplayName.CNY=Iuan renmimbi xin\u00e8s
-currenciesDisplayName.GBP=Lliura esterlina brit\u00e0nica
+currenciesDisplayName.VND=Dong de Vietnam
+currenciesDisplayName.DKK=Corona danesa
+currenciesDisplayName.THB=Baht tailand\u00e8s
+currenciesDisplayName.NOK=Corona noruega
+currenciesDisplayName.BEF=Francs belges
+currenciesDisplayName.PHP=Pes filip\u00ed
+currenciesDisplayName.UAH=Hr\u00edvnia d\u2019Ucra\u00efna
+currenciesDisplayName.AED=Dirhem dels Emirats \u00c0rabs Units
+currenciesDisplayName.SAR=Rial saud\u00ed
+currenciesDisplayName.FJD=D\u00f2lar fiji\u00e0
+currenciesDisplayName.LUF=Francs luxemburgu\u00e8sos
+currenciesDisplayName.XXX=sense moneda
+currenciesDisplayName.PTE=Escuts portugu\u00e8sos
+currenciesDisplayName.USD=D\u00f2lars EUA
+currenciesDisplayName.ADP=Pesseta andorrana
+currenciesDisplayName.SGD=D\u00f2lar De Singapur
+currenciesDisplayName.FIM=Marcs finland\u00e8sos
+currenciesDisplayName.MTL=Lires malteses
+currenciesDisplayName.HUF=Forint hongar\u00e8s
+currenciesDisplayName.LTL=Litas litu\u00e0
+currenciesDisplayName.TRY=Nova lira turca
+currenciesDisplayName.NZD=D\u00f2lar Neozeland\u00e8s
+currenciesDisplayName.XEU=Unitats de compte europea
+currenciesDisplayName.RSD=Dinar serbi
 currenciesDisplayName.EUR=Euro
-currenciesDisplayName.USD=D\u00f2lar EUA
-currenciesDisplayName.BRL=Real brasiler
+currenciesDisplayName.INR=Rupia \u00edndia
+currenciesDisplayName.GBP=Lliures esterlines
+currenciesDisplayName.COP=Peso colombi\u00e0
+currenciesDisplayName.TRL=Lira turca (vella)
+currenciesDisplayName.MAD=Dirhem marroqu\u00ed
+currenciesDisplayName.ITL=Lires italianes
+currenciesDisplayName.MYR=Ringgit de Mal\u00e0isia
+currenciesDisplayName.PLN=Nou zloty polon\u00e8s
+currenciesDisplayName.VEB=Bol\u00edvar vene\u00e7ol\u00e0
+currenciesDisplayName.BOB=peso bolivi\u00e0
+currenciesDisplayName.CNY=Iuan renmimbi xin\u00e8s
+currenciesDisplayName.SEK=Corona sueca
+currenciesDisplayName.AUD=D\u00f2lar australi\u00e0
+currenciesDisplayName.SKK=Corona eslovaca
+currenciesDisplayName.CHF=Francs su\u00edssos
+currenciesDisplayName.NLG=Flor\u00eds neerland\u00e8sos
+currenciesDisplayName.PEN=Nou sol peru\u00e0
+currenciesDisplayName.KRW=Won (Corea Del Sud)
+currenciesDisplayName.TWD=D\u00f2lar Taiwan\u00e8s
+currenciesDisplayName.PKR=Rupia paquistanesa
+currenciesDisplayName.ATS=X\u00edlings austr\u00edacs
+currenciesDisplayName.MXN=Peso mexic\u00e0
+currenciesDisplayName.EGP=Lliura eg\u00edpcia
+currenciesDisplayName.CZK=Corona txeca
+currenciesDisplayName.DZD=Dinar algeri\u00e0
+currenciesDisplayName.BND=D\u00f2lar de Brunei
+currenciesDisplayName.ILS=X\u00e9quel
+currenciesDisplayName.ESP=Pessetes espanyoles
+currenciesDisplayName.CAD=D\u00f2lar canadenc
+currenciesDisplayName.BGN=Lev b\u00falgar
+currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.ESP=\u20a7
-shortMonths=gen.®febr.®mar\u00e7®abr.®maig®juny®jul.®ag.®set.®oct.®nov.®des.®®
-months=gener®febrer®mar\u00e7®abril®maig®juny®juliol®agost®setembre®octubre®novembre®desembre®®
-shortWeekdays=®dg.®dl.®dt.®dc.®dj.®dv.®ds.®
-weekdays=®diumenge®dilluns®dimarts®dimecres®dijous®divendres®dissabte®
-firstDayOfWeek=mon
-eras=aC®dC®
+currenciesSymbol.IEP=IR\u00a3
+shortMonths=gen.\u00aefeb.\u00aemar.\u00aeabr.\u00aemai.\u00aejun.\u00aejul.\u00aeago.\u00aeset.\u00aeoct.\u00aenov.\u00aedes.\u00ae\u00ae
+months=de gener\u00aede febrer\u00aede mar\u00e7\u00aed'abril\u00aede maig\u00aede juny\u00aede juliol\u00aed'agost\u00aede setembre\u00aede octubre\u00aede novembre\u00aede desembre\u00ae\u00ae
+shortWeekdays=\u00aedg\u00aedl\u00aedt\u00aedc\u00aedj\u00aedv\u00aeds\u00ae
+weekdays=\u00aediumenge\u00aedilluns\u00aedimarts\u00aedimecres\u00aedijous\u00aedivendres\u00aedissabte\u00ae
+eras=aC\u00aedC\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=dd/MM/yy
 mediumDateFormat=dd/MM/yyyy
-longDateFormat=d 'd\u2019'MMMM 'de' yyyy
-fullDateFormat=EEEE d 'd\u2019'MMMM 'de' yyyy
+longDateFormat=d MMMM 'de' yyyy
+fullDateFormat=EEEE, d MMMM 'de' yyyy
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
 longTimeFormat=H:mm:ss z
 fullTimeFormat=H:mm:ss z
-territories.TL=Timor
+zoneStrings=Europe_Central\u00aeHora Central Europea\u00ae\u00aeHora Central Europea de l'estiu\u00ae\u00ae\u00a9
+territories.TL=Timor Oriental
 territories.TK=Tokelau
 territories.TJ=Tadjikistan
 territories.TH=Tail\u00e0ndia
 territories.TG=Togo
-territories.TF=Territoris Meridionals Francesos
+territories.TF=Territoris Francesos del Sud
 territories.GY=Guyana
 territories.TD=Txad
+territories.TC=Illes Turks i Caicos
 territories.GW=Guinea Bissau
+territories.GU=Guam
 territories.GT=Guatemala
+territories.GS=Illes Ge\u00f2rgia del Sud i Sandwich del Sud
 territories.GR=Gr\u00e8cia
 territories.GQ=Guinea Equatorial
 territories.GP=Guadeloupe
@@ -48,171 +130,250 @@ territories.SZ=Swazil\u00e0ndia
 territories.SY=S\u00edria
 territories.GN=Guinea
 territories.GM=G\u00e0mbia
+territories.GL=Groenl\u00e0ndia
 territories.SV=El Salvador
+territories.062=\u00c0sia Sud-central
+territories.ST=S\u00e3o Tom\u00e9 i Pr\u00edncipe
+territories.GI=Gibraltar
+territories.061=Polin\u00e8sia
 territories.GH=Ghana
 territories.SR=Surinam
+territories.GG=Batllia de Guernsey
 territories.GF=Guaiana Francesa
 territories.GE=Ge\u00f2rgia
 territories.SO=Som\u00e0lia
+territories.GD=Grenada
 territories.SN=Senegal
+territories.SM=San Marino
 territories.GB=Regne Unit
 territories.SL=Sierra Leone
 territories.GA=Gabon
 territories.SK=Eslov\u00e0quia
+territories.SJ=Svalbard i Jan Mayen
 territories.SI=Eslov\u00e8nia
+territories.SH=Saint Helena
 territories.SG=Singapur
 territories.SE=Su\u00e8cia
 territories.SD=Sudan
 territories.SC=Seychelles
-territories.SA=Ar\u00e0bia Saud\u00ed
+territories.SB=Illes Salom\u00f3
+territories.SA=Ar\u00e0bia Saudita
 territories.FR=Fran\u00e7a
+territories.FO=Illes F\u00e8roe
+territories.057=Regi\u00f3 de la Micron\u00e8sia
 territories.FM=Micron\u00e8sia
 territories.RW=Rwanda
+territories.054=Melan\u00e8sia
+territories.FK=Illes Malvines
+territories.053=Austr\u00e0lia i Nova Zelanda
 territories.RU=R\u00fassia
 territories.FJ=Fiji
 territories.FI=Finl\u00e0ndia
+territories.RS=S\u00e8rbia
 territories.RO=Romania
+territories.RE=Reunion
 territories.ET=Eti\u00f2pia
 territories.ES=Espanya
 territories.ER=Eritrea
+territories.QU=Uni\u00f3 Europea
 territories.EH=S\u00e0hara Occidental
 territories.EG=Egipte
 territories.EE=Est\u00f2nia
 territories.EC=Equador
 territories.DZ=Alg\u00e8ria
 territories.QA=Qatar
+territories.039=Europa meridional
 territories.DO=Rep\u00fablica Dominicana
 territories.PY=Paraguai
 territories.DM=Dominica
+territories.035=\u00c0sia Sud-oriental
+territories.PW=Palau
+territories.034=Sud d'\u00c0sia
 territories.DK=Dinamarca
 territories.DJ=Djibouti
 territories.PT=Portugal
+territories.PS=Palestina
+territories.030=\u00c0sia Oriental
 territories.PR=Puerto Rico
 territories.DE=Alemanya
+territories.PN=Illes Pitcairn
+territories.PM=Saint Pierre i Miquelon
 territories.PL=Pol\u00f2nia
 territories.PK=Pakistan
 territories.PH=Filipines
 territories.PG=Papua Nova Guinea
-territories.CZ=Rep\u00fablica Txeca
 territories.PF=Polin\u00e8sia Francesa
-territories.CY=Xipre
+territories.CZ=Rep\u00fablica Txeca
 territories.PE=Per\u00fa
+territories.CY=Xipre
+territories.CX=Illa Christmas
 territories.CV=Cap Verd
-territories.CU=Cuba
 territories.PA=Panam\u00e0
+territories.CU=Cuba
 territories.CS=S\u00e8rbia i Montenegro
 territories.CR=Costa Rica
+territories.029=Carib
 territories.CO=Col\u00f2mbia
 territories.CN=Xina
 territories.CM=Camerun
 territories.CL=Xile
+territories.CK=Illes Cook
+territories.021=Am\u00e8rica septentrional
 territories.CI=Costa d\u2019Ivori
-territories.CH=Switzerland
+territories.CH=Su\u00efssa
 territories.CG=Congo
 territories.CF=Rep\u00fablica Centrafricana
+territories.CD=Rep\u00fablica Democr\u00e0tica del Congo
+territories.CC=Illes Cocos
 territories.OM=Oman
 territories.CA=Canad\u00e0
+territories.419=Am\u00e8rica Llatina i Carib
 territories.BZ=Belize
 territories.BY=Bielor\u00fassia
 territories.BW=Botswana
+territories.BV=Illa Bouvet
 territories.BT=Bhutan
 territories.BS=Bahames
 territories.BR=Brasil
-territories.BO=Bol\u00edvia
+territories.019=Am\u00e8rica
+territories.018=\u00c0frica meridional
 territories.NZ=Nova Zelanda
+territories.017=\u00c0frica Central
+territories.BO=Bol\u00edvia
 territories.BN=Brunei
+territories.015=\u00c0frica septentrional
 territories.BM=Bermudes
-territories.BJ=Benin
+territories.014=\u00c0frica Oriental
+territories.013=Am\u00e8rica Central
 territories.NU=Niue
+territories.BJ=Ben\u00edn
+territories.011=\u00c0frica Occidental
 territories.BI=Burundi
+territories.172=Comunitat d'Estats Independents
 territories.BH=Bahrain
+territories.NR=Nauru
 territories.BG=Bulg\u00e0ria
 territories.BF=Burkina Faso
-territories.BE=B\u00e8lgica
 territories.NP=Nepal
-territories.BD=Bangla Desh
+territories.BE=B\u00e8lgica
+territories.ZZ=Regi\u00f3 desconeguda o no v\u00e0lida
 territories.NO=Noruega
+territories.BD=Bangla Desh
 territories.BB=Barbados
 territories.ZW=Zimbabwe
-territories.BA=B\u00f2snia i Hercegovina
 territories.NL=Pa\u00efsos Baixos
+territories.BA=B\u00f2snia i Hercegovina
 territories.NI=Nicaragua
 territories.NG=Nig\u00e8ria
+territories.NF=Illa Norfolk
 territories.AZ=Azerbaidjan
 territories.NE=N\u00edger
-territories.AW=Aruba
+territories.AX=Illes Aland
 territories.NC=Nova Caled\u00f2nia
+territories.AW=Aruba
 territories.ZM=Z\u00e0mbia
 territories.NA=Nam\u00edbia
 territories.AU=Austr\u00e0lia
 territories.AT=\u00c0ustria
+territories.AS=Samoa Nord-americana
 territories.AR=Argentina
-territories.AO=Angola
+territories.AQ=Ant\u00e0rtida
+territories.009=Oceania
 territories.MZ=Mo\u00e7ambic
-territories.AN=Antilles Holandeses
+territories.AO=Angola
 territories.MY=Mal\u00e0isia
-territories.AM=Arm\u00e8nia
+territories.AN=Antilles Holandeses
 territories.MX=M\u00e8xic
+territories.AM=Arm\u00e8nia
+territories.005=Am\u00e8rica del Sud
+territories.MW=Malawi
 territories.AL=Alb\u00e0nia
+territories.MV=Maldives
+territories.003=Am\u00e8rica del Nord
 territories.ZA=Sud-\u00e0frica
 territories.MU=Maurici
-territories.AI=Anguilla
+territories.002=\u00c0frica
 territories.MT=Malta
+territories.AI=Anguilla
+territories.001=M\u00f3n
 territories.MS=Montserrat
 territories.MR=Maurit\u00e0nia
-territories.AF=Afganistan
+territories.AG=Antigua i Barbuda
 territories.MQ=Martinica
+territories.AF=Afganistan
+territories.MP=Illes Mariannes del Nord
 territories.AE=Uni\u00f3 dels Emirats \u00c0rabs
+territories.MO=Macau
 territories.AD=Andorra
 territories.MN=Mong\u00f2lia
 territories.MM=Myanmar
 territories.ML=Mali
 territories.MK=Maced\u00f2nia
 territories.YT=Mayotte
+territories.MH=Illes Marshall
 territories.MG=Madagascar
+territories.MF=Saint Martin
+territories.ME=Montenegro
 territories.MD=Mold\u00e0via
 territories.MC=M\u00f2naco
 territories.MA=Marroc
 territories.YE=Iemen
 territories.LY=L\u00edbia
 territories.LV=Let\u00f2nia
+territories.155=Europa Occidental
 territories.LU=Luxemburg
+territories.154=Europa septentrional
 territories.LT=Litu\u00e0nia
 territories.LS=Lesotho
 territories.LR=Lib\u00e8ria
+territories.151=Europa Oriental
+territories.150=Europa
 territories.LK=Sri Lanka
 territories.LI=Liechtenstein
+territories.LC=Saint Lucia
 territories.LB=L\u00edban
 territories.LA=Laos
 territories.KZ=Kazakhstan
+territories.KY=Illes Caiman
 territories.KW=Kuwait
+territories.145=\u00c0sia Occidental
+territories.143=\u00c0sia Central
+territories.142=\u00c0sia
 territories.KR=Corea del Sud
 territories.KP=Corea del Nord
+territories.KN=Saint Kitts i Nevis
 territories.KM=Comores
 territories.KI=Kiribati
+territories.WS=Samoa
 territories.KH=Cambodja
-territories.KG=Kirgizistan
+territories.KG=Kirguizistan
 territories.KE=Kenya
+territories.WF=Wallis i Futuna
 territories.JP=Jap\u00f3
 territories.JO=Jord\u00e0nia
 territories.JM=Jamaica
 territories.VU=Vanuatu
+territories.JE=Batllia de Jersey
 territories.VN=Vietnam
-territories.VI=Illes Verges dels USA
+territories.VI=Illes Verges nord-americanes
 territories.VG=Illes Verges Brit\u00e0niques
 territories.VE=Vene\u00e7uela
+territories.VC=Saint Vincent i les Grenadines
 territories.VA=Vatic\u00e0
 territories.IT=It\u00e0lia
 territories.IS=Isl\u00e0ndia
 territories.IR=Iran
 territories.IQ=Iraq
 territories.UZ=Uzbekistan
+territories.IO=Territori Brit\u00e0nic de l'Oce\u00e0 \u00cdndic
 territories.UY=Uruguai
 territories.IN=\u00cdndia
+territories.IM=Illa de Man
 territories.IL=Israel
 territories.US=Estats Units
 territories.IE=Irlanda
 territories.ID=Indon\u00e8sia
+territories.UM=Illes Perif\u00e8riques Menors dels EUA
 territories.UG=Uganda
 territories.UA=Ucra\u00efna
 territories.HU=Hongria
@@ -220,149 +381,397 @@ territories.HT=Hait\u00ed
 territories.HR=Cro\u00e0cia
 territories.TZ=Tanz\u00e0nia
 territories.HN=Hondures
+territories.HM=Illa Heard i Illes McDonald
 territories.TW=Taiwan
+territories.TV=Tuvalu
 territories.HK=Hong Kong
 territories.TT=Trinitat i Tobago
 territories.TR=Turquia
 territories.TO=Tonga
 territories.TN=Tun\u00edsia
 territories.TM=Turkmenistan
-languages.es=espanyol
-languages.ku=kurd
-languages.eo=esperanto
-languages.en=angl\u00e8s
-languages.ks=caixmiri
-languages.el=grec
-languages.qu=qu\u00e8txua
-languages.ko=core\u00e0
-languages.kn=kannada
-languages.km=cambodj\u00e0
-languages.kl=greenland\u00e8s
-languages.kk=kazakh
+languages.xh=xosa
+languages.sux=sumeri
+languages.mis=llengua miscel\u00b7l\u00e0nia
+languages.pon=ponape\u00e0
 languages.wo=w\u00f2lof
-languages.ka=georgi\u00e0
-languages.dz=bhutan\u00e8s
-languages.jv=javan\u00e8s
-languages.pt=portugu\u00e8s
-languages.ps=paixto
-languages.de=alemany
-languages.pl=polon\u00e8s
-languages.da=dan\u00e8s
+languages.mic=micmac
+languages.wa=val\u00f3
+languages.kum=k\u00famik
+languages.zap=zapoteca
+languages.cus=llengua cuix\u00edtica
+languages.jbo=judeopersa
 languages.vo=volapuk
-languages.ja=japon\u00e8s
 languages.vi=vietnamita
-languages.cy=gal\u00b7l\u00e8s
-languages.pa=panjabi
-languages.cs=txec
-languages.iu=inuktitut
-languages.co=cors
-languages.it=itali\u00e0
-languages.is=island\u00e8s
+languages.vai=vai
+languages.ve=venda
+languages.raj=rajasthani
+languages.ota=turc otom\u00e0
+languages.nap=napolit\u00e0
 languages.uz=uzbek
-languages.or=oriya
-languages.ik=inupiak
+languages.uga=ugar\u00edtic
+languages.tmh=tamazight
+languages.nai=llengua amer\u00edndia septentrional
+languages.nah=n\u00e0huatl
 languages.ur=urd\u00fa
-languages.om=oromo (afan)
-languages.ca=catal\u00e0
-languages.ie=interlingue
-languages.id=indonesi
+languages.fat=fanti
 languages.uk=ucra\u00efn\u00e8s
-languages.ia=interlingua
-languages.oc=occit\u00e0
+languages.egy=egipci antic
+languages.zxx=sense contingut ling\u00fc\u00edstic
 languages.ug=uigur
-languages.hy=armeni
-languages.br=bret\u00f3
-languages.hu=hongar\u00e8s
-languages.bo=tibet\u00e0
-languages.bn=bengal\u00ed
-languages.hr=croat
-languages.bi=bislama
-languages.tw=twi
-languages.bh=bihari
-languages.bg=b\u00falgar
+languages.fan=fang
+languages.mga=ga\u00e8lic irl\u00e0nd\u00e8s mitj\u00e0
+languages.bat=llengua b\u00e0ltica
+languages.ban=balin\u00e8s
+languages.bal=balutxi
+languages.ty=tahiti\u00e0
+languages.bai=bamilek\u00e9
+languages.tw=\u00e0kan
+languages.tli=tlingit
+languages.tlh=llengua klingon
 languages.tt=t\u00e0tar
-languages.no=noruec
-languages.be=bielor\u00fas
 languages.ts=tsonga
-languages.hi=hindi
 languages.tr=turc
-languages.nl=neerland\u00e8s
-languages.zu=zulu
-languages.ba=baixkir
-languages.to=tonga
-languages.he=hebreu
+languages.to=tongal\u00e8s
 languages.tn=tswana
 languages.tl=tag\u00e0log
 languages.tk=turcman
-languages.ha=hausa
-languages.ne=nepal\u00e8s
-languages.az=\u00e0zeri
 languages.ti=tigrinya
-languages.ay=aimara
 languages.th=thai
 languages.tg=tadjik
-languages.na=nauru\u00e0
 languages.te=telugu
-languages.zh=xin\u00e9s
-languages.as=assam\u00e8s
-languages.ar=\u00e0rab
+languages.csb=caixubi
 languages.ta=t\u00e0mil
-languages.gu=gujarati
-languages.my=birm\u00e0
-languages.am=amh\u00e0ric
-languages.za=zhuang
-languages.mt=malt\u00e8s
-languages.ms=malai
-languages.gn=guaran\u00ed
-languages.sw=swahili
-languages.mr=marathi
+languages.tkl=tokelau\u00e8s
+languages.sw=suahili
 languages.sv=suec
-languages.gl=gallec
-languages.su=sundan\u00e8s
-languages.af=afrikaans
-languages.st=sotho
-languages.mo=moldau
-languages.ss=siswati
-languages.mn=mongol
+languages.su=sondan\u00e8s
+languages.krc=karatxai
+languages.st=sotho meridional
+languages.ss=swazi
 languages.sr=serbi
 languages.sq=alban\u00e8s
-languages.ml=malaialam
-languages.ab=abkhaz
-languages.mk=macedoni
-languages.aa=\u00e0far
+languages.men=mende
+languages.crp=llengua criolla o pidgin
 languages.so=somali
+languages.afh=afrihili
 languages.sn=shona
-languages.gd=escoc\u00e8s
-languages.mi=maori
 languages.sm=samo\u00e0
 languages.sl=eslov\u00e8
-languages.mg=malgaix
+languages.grc=grec antic
 languages.sk=eslovac
-languages.ga=irland\u00e8s
-languages.yo=ioruba
-languages.si=sinhal\u00e8s
+languages.si=singal\u00e8s
 languages.sh=serbo-croat
+languages.crh=t\u00e0tar de Crimea
+languages.afa=llengua afroasi\u00e0tica
 languages.sg=sango
-languages.yi=jiddish
+languages.se=sami septentrional
 languages.sd=sindhi
-languages.fy=fris\u00f3
+languages.sc=sard
 languages.sa=s\u00e0nscrit
-languages.fr=franc\u00e8s
-languages.lv=let\u00f3
-languages.fo=fero\u00e8s
-languages.lt=litu\u00e0
 languages.rw=kinyarwanda
+languages.nwc=newari cl\u00e0ssic
+languages.mdr=mandar
 languages.ru=rus
-languages.fj=fiji\u00e0
-languages.lo=laosi\u00e0
-languages.fi=fin\u00e8s
-languages.ln=lingala
 languages.ro=roman\u00e8s
 languages.rn=kirundi
 languages.rm=retorom\u00e0nic
-languages.fa=persa
+languages.fr_CH=franc\u00e8s (su\u00eds)
+languages.mdf=mordovi\u00e0 moksha
+languages.tiv=tiv
+languages.ady=adigu\u00e9
+languages.kpe=kpelle
+languages.qu=qu\u00edtxua
+languages.tig=tigr\u00e9
+languages.son=Songhai
+languages.cpp=crioll - basat en el portugu\u00e8s
+languages.rup=aroman\u00e8s
+languages.sog=sogdi\u00e0
+languages.hit=hitita
+languages.cpf=crioll - basat en el franc\u00e8s
+languages.cpe=crioll - basat en l'angl\u00e8s
+languages.got=g\u00f2tic
+languages.din=dinka
+languages.nub=llengua nubiana
+languages.pt=portugu\u00e8s
+languages.fur=fri\u00fcl\u00e0
+languages.ps=paixtu
+languages.phn=fenici
+languages.de_CH=alemany su\u00eds
+languages.goh=alt alemany antic
+languages.snk=soninke
+languages.cop=copte
+languages.yap=yape\u00e0
+languages.pl=polon\u00e8s
+languages.pi=pali
+languages.pt_PT=portugu\u00e8s (portugal)
+languages.pa=panjabi
+languages.bug=bugui
+languages.sms=sami skolt
+languages.bua=buriat
+languages.mas=massai
+languages.smn=sami d'Inari
+languages.map=llengua autron\u00e8sia
+languages.os=osset
+languages.or=oriya
+languages.man=mandinga
+languages.smi=llengua sami
+languages.om=oromo - afan
+languages.oj=ojibwa
+languages.mad=madur\u00e8s
+languages.sma=sami meridional
+languages.nso=sotho septentrional
+languages.btk=batak
+languages.oc=occit\u00e0
+languages.myv=mirand\u00e8s erzya
+languages.es_ES=castell\u00e0 ib\u00e8ric
+languages.de_AT=alemany austriac
+languages.myn=llengua maia
+languages.ny=nyanja
+languages.nv=navaho
+languages.kmb=Kimbundu
+languages.nr=ndebele meridional
+languages.gmh=alt alemany mitj\u00e0
+languages.no=noruec
+languages.nn=noruec nynorsk
+languages.nl=neerland\u00e8s
+languages.sla=llengua eslava
+languages.ne=nepal\u00e8s
+languages.nd=ndebele septentrional
+languages.nb=noruec bokm\u00e5l
+languages.na=nauru\u00e0
+languages.my=birm\u00e0
+languages.lez=lesgui\u00e0
+languages.frs=fris\u00f3 occidental
+languages.mt=malt\u00e8s
+languages.peo=persa antic
+languages.frr=fris\u00f3 septentrional
+languages.ms=malai
+languages.mr=marathi
+languages.fro=franc\u00e8s antic
+languages.mo=moldau
+languages.frm=franc\u00e8s mitj\u00e0
+languages.mn=mongol
+languages.jrb=judeo\u00e0rab
+languages.ml=malaialam
+languages.mk=maced\u00f2nic
+languages.mi=maori
+languages.mh=marshall\u00e8s
+languages.mg=malgaix
+languages.mwl=mirand\u00e8s
+languages.lv=let\u00f3
+languages.del=delaware
+languages.lt=litu\u00e0
+languages.lo=laosi\u00e0
+languages.ln=lingala
+languages.li=limburgu\u00e8s
+languages.lg=ganda
+languages.lb=luxemburgu\u00e8s
 languages.la=llat\u00ed
-languages.xh=xosa
+languages.sit=llengua sinotibetana
+languages.ky=kirgu\u00eds
+languages.kv=komi
+languages.ku=kurd
+languages.sio=llengua sioux
+languages.ks=caixmiri
+languages.ko=core\u00e0
+languages.kn=kannada
+languages.km=khmer
+languages.en_GB=angl\u00e8s brit\u00e0nic
+languages.kl=grenland\u00e8s
+languages.kk=kazakh
+languages.rom=roman\u00ed
+languages.ki=kikuiu
+languages.non=noruec antic
+languages.ka=georgi\u00e0
+languages.mus=creek
+languages.roa=llengua rom\u00e0nica
+languages.nog=nogai
+languages.mun=llengua munda
+languages.mul=varies lleng\u00fces
+languages.jv=javan\u00e8s
+languages.gil=gilbert\u00e8s
+languages.xal=calmuc
+languages.aus=llengua australiana
+languages.kho=khotan\u00e8s
+languages.ja=japon\u00e8s
+languages.khi=llengua khoisana
+languages.pau=palau\u00e0
+languages.chy=xeienne
+languages.tai=llengua tai
+languages.iu=inuktitut
+languages.it=itali\u00e0
+languages.pap=papiamento
+languages.sgn=llengua de signes
+languages.is=island\u00e8s
+languages.chr=cherokee
+languages.pal=pahlavi
+languages.chp=chipewyan
+languages.io=ido
+languages.cho=choctaw
+languages.chn=pidgin chinook
+languages.chm=mari
+languages.tyv=tuvini\u00e0
+languages.bnt=bantu
+languages.ik=inupiak
+languages.haw=hawai\u00e0
+languages.ig=igbo
+languages.chg=txagatai
+languages.sga=irland\u00e8s antic
+languages.ie=interlingue
+languages.paa=llengua pap\u00fa
+languages.id=indonesi
+languages.lah=panjabi occidental
+languages.day=daiak
+languages.ia=interlingua
+languages.lad=lad\u00ed
+languages.hai=haida
+languages.dar=dargu\u00e0
+languages.hy=armeni
+languages.ath=llengua atapascana
+languages.hu=hongar\u00e8s
+languages.ht=haiti\u00e0
+languages.dak=dakota
+languages.hr=croat
+languages.hi=hindi
+languages.he=hebreu
+languages.ast=asturi\u00e0
+languages.ha=hausa
+languages.wen=s\u00f2rab
+languages.gv=manx
+languages.gu=gujarati
+languages.sem=llengua sem\u00edtica
+languages.iro=iroqu\u00e8s
+languages.gn=guaran\u00ed
+languages.gl=gallec
+languages.en_CA=angl\u00e8s del Canad\u00e0
+languages.arw=arauac
+languages.gez=gueez
+languages.art=llenguatge artificial
+languages.gd=ga\u00e8lic escoc\u00e8s
+languages.ira=llengua ir\u00e0nica
+languages.ga=ga\u00e8lic irland\u00e8s
+languages.arp=arapaho
+languages.arn=arauc\u00e0
+languages.fy=fris\u00f3
+languages.gem=llengua germ\u00e0nica
+languages.arc=arameu
+languages.fr=franc\u00e8s
+languages.fo=fero\u00e8s
+languages.cel=llengua c\u00e8ltica
+languages.fj=fiji\u00e0
+languages.fi=fin\u00e8s
+languages.ff=ful
+languages.tvl=tuvalu\u00e0
+languages.fa=persa
+languages.en_AU=angl\u00e8s d'Austr\u00e0lia
+languages.zh_Hans=xin\u00e8s (simplificat)
+languages.zh_Hant=xin\u00e8s (tradicional)
 languages.eu=basc
 languages.et=estoni\u00e0
-languages.ky=kirgu\u00eds
+languages.scn=sicili\u00e0
+languages.es=castell\u00e0
+languages.eo=esperanto
+languages.en=angl\u00e8s
+languages.el=grec
+languages.tut=llengua alta\u00efca
+languages.tup=llengua tup\u00ed
+languages.ee=ewe
+languages.nl_BE=flamenc
+languages.es_419=espanyol de latinoam\u00e8rica
+languages.dz=bhutan\u00e8s
+languages.nic=llengua nigerokurdufaniana
+languages.fiu=llengua fino\u00fagrica
+languages.dv=divehi
+languages.luo=luo
+languages.apa=llengua apatxe
+languages.fil=filip\u00ed
+languages.hup=hupa
+languages.de=alemany
+languages.und=idioma desconegut o no v\u00e0lid
+languages.da=dan\u00e8s
+languages.dum=neerland\u00e8s mitj\u00e0
+languages.mno=llengua manobo
+languages.wak=llengua wakashan
+languages.cy=gal\u00b7l\u00e8s
+languages.sas=sasak
+languages.kbd=kabard\u00ed
+languages.cv=txuvaix
+languages.cu=eslau eclesi\u00e0stic
+languages.cs=txec
+languages.sam=arameu samarit\u00e0
+languages.cr=cree
+languages.sal=llengua salish
+languages.co=cors
+languages.sai=llengua amer\u00edndia meridional
+languages.mnc=manx\u00fa
+languages.sah=iacut
+languages.inh=ing\u00faix
+languages.sad=sandawe
+languages.ch=chamorro
+languages.ine=llenguatge indoeuropeu
+languages.enm=angl\u00e8s mitj\u00e0
+languages.kar=karen
+languages.inc=llengua \u00edndica
+languages.ce=txetx\u00e8
+languages.ca=cat
+languages.umb=Umbundu
+languages.syr=sir\u00edac
+languages.ang=angl\u00e8s antic
+languages.cau=llengua cauc\u00e0sica
+languages.kab=cabilenc
+languages.kaa=karakalpak
+languages.bs=bosni\u00e0
+languages.car=carib
+languages.br=bret\u00f3
+languages.bo=tibet\u00e0
+languages.bn=bengal\u00ed
+languages.bm=bambara
+languages.cai=llengua amer\u00edndia d'Am\u00e8rica Central
+languages.bi=bislama
+languages.bh=bihari
+languages.bg=b\u00falgar
+languages.be=bielor\u00fas
+languages.cad=caddo
+languages.pt_BR=portugu\u00e8s (brasil)
+languages.ba=baixkir
+languages.zu=zulu
+languages.zen=zenaga
+languages.pro=proven\u00e7al antic
+languages.hsb=alt s\u00f2rab
+languages.az=\u00e0zeri
+languages.ay=aimara
+languages.av=\u00e0var
+languages.as=assam\u00e8s
+languages.dsb=baix s\u00f2rab
+languages.ar=\u00e0rab
+languages.ilo=iloc\u00e0
+languages.elx=elamita
+languages.zh=xin\u00e8s
+languages.an=aragon\u00e8s
+languages.pra=pr\u00e0crit
+languages.am=amh\u00e0ric
+languages.new=newari
+languages.ak=\u00e0kan
+languages.za=zhuang
+languages.en_US=angl\u00e8s americ\u00e0
+languages.af=afrikaans
+languages.ae=av\u00e8stic
+languages.alt=altaic meridional
+languages.ab=abkhaz
+languages.aa=\u00e0far
+languages.yo=ioruba
+languages.alg=llengua algonquina
+languages.ale=aleuta
+languages.mkh=llengua monkhmer
+languages.yi=jiddisch
+languages.dra=llengua dravidiana
+languages.ber=berber
+languages.nds=baix alemany
+languages.bem=bemba
+languages.bej=beja
+languages.tpi=tok pisin
+variants.POSIX=ordenador
+variants.1901=ortografia alemana tradicional
+variants.1996=ortografia alemana de 1996
+variants.FONIPA=alfabet fon\u00e8tic internacional
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cch.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cch.properties
new file mode 100644 (file)
index 0000000..a8a9162
--- /dev/null
@@ -0,0 +1,23 @@
+# LocaleInformation_cch.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=Aman
+currenciesSymbol.NGN=\u20a6
+shortMonths=Dyon\u00aeBaa\u00aeAtat\u00aeAnas\u00aeAtyo\u00aeAchi\u00aeAtar\u00aeAwur\u00aeShad\u00aeShak\u00aeNaba\u00aeNata\u00ae\u00ae
+months=Pen Dyon\u00aePen Ba'a\u00aePen Atat\u00aePen Anas\u00aePen Atyon\u00aePen Achirim\u00aePen Atariba\u00aePen Awurr\u00aePen Shadon\u00aePen Shakur\u00aePen Kur Naba\u00aePen Kur Natat\u00ae\u00ae
+shortWeekdays=\u00aeYok\u00aeTung\u00aeT. Tung\u00aeTsan\u00aeNas\u00aeNat\u00aeChir\u00ae
+weekdays=\u00aeWai Yoka Bawai\u00aeWai Tunga\u00aeToki Gitung\u00aeTsam Kasuwa\u00aeWai Na Nas\u00aeWai Na Tiyon\u00aeWai Na Chirim\u00ae
+eras=GM\u00aeM\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cop.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cop.properties
new file mode 100644 (file)
index 0000000..8186034
--- /dev/null
@@ -0,0 +1,21 @@
+# LocaleInformation_cop.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
index d7dd1850db56c764d90720e7e729771e37e7d513..3ad70c6c38f5669242b40e1764723d77c288a793 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=\u00a0
-localPatternChars=GuMtkHmsSEDFwWahKzUeygAZ
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GuMtkHmsSEDFwWahKzUeygAZvcL
 currenciesDisplayName.YDD=Din\u00e1r jemensk\u00fd
-currenciesDisplayName.TWD=Dolar tchajvansk\u00fd nov\u00fd
 currenciesDisplayName.KES=\u0160ilink ke\u0148sk\u00fd
-currenciesDisplayName.BYB=Rubl nov\u00fd b\u011blorusk\u00fd (1994-1999)
+currenciesDisplayName.TWD=Dolar tchajvansk\u00fd nov\u00fd
 currenciesDisplayName.LKR=Rupie sr\u00edlansk\u00e1
-currenciesDisplayName.RWF=Frank rwandsk\u00fd
+currenciesDisplayName.BYB=Rubl nov\u00fd b\u011blorusk\u00fd (1994-1999)
 currenciesDisplayName.TJS=Somoni
-currenciesDisplayName.SDP=Libra s\u00fad\u00e1nsk\u00e1
-currenciesDisplayName.TJR=Tajikistan Ruble
+currenciesDisplayName.RWF=Frank rwandsk\u00fd
 currenciesDisplayName.ERN=Nakfa
-currenciesDisplayName.AFN=Afgh\u00e1n
+currenciesDisplayName.TJR=Tajikistan Ruble
+currenciesDisplayName.SDP=Libra s\u00fad\u00e1nsk\u00e1
 currenciesDisplayName.GRD=Drachma
+currenciesDisplayName.AFN=Afgh\u00e1n
 currenciesDisplayName.IEP=Libra irsk\u00e1
 currenciesDisplayName.ARS=Peso argentinsk\u00e9
-currenciesDisplayName.SDD=Din\u00e1r s\u00fad\u00e1nsk\u00fd
 currenciesDisplayName.ARP=Peso argentinsk\u00e9 (1983-1985)
+currenciesDisplayName.SDD=Din\u00e1r s\u00fad\u00e1nsk\u00fd
 currenciesDisplayName.GEL=Lari
-currenciesDisplayName.AFA=Afgh\u00e1n (1927-2002)
 currenciesDisplayName.GEK=Georgian Kupon Larit
+currenciesDisplayName.AFA=Afgh\u00e1n (1927-2002)
 currenciesDisplayName.CRC=Col\u00f3n kostarick\u00fd
 currenciesDisplayName.FKP=Libra falklandsk\u00e1
 currenciesDisplayName.EEK=Kroon
-currenciesDisplayName.HKD=Dolar hongkongsk\u00fd
 currenciesDisplayName.MDL=Leu moldavsk\u00fd
-currenciesDisplayName.ARA=Austral
+currenciesDisplayName.HKD=Dolar hongkongsk\u00fd
 currenciesDisplayName.IQD=Din\u00e1r ir\u00e1ck\u00fd
+currenciesDisplayName.ARA=Austral
 currenciesDisplayName.SCR=Rupie seychelsk\u00e1
 currenciesDisplayName.VUV=Vatu
-currenciesDisplayName.DKK=Koruna d\u00e1nsk\u00e1
 currenciesDisplayName.KPW=Won severokorejsk\u00fd
-currenciesDisplayName.GQE=Equatorial Guinea Ekwele Guineana
+currenciesDisplayName.DKK=Koruna d\u00e1nsk\u00e1
 currenciesDisplayName.IDR=Rupie indon\u00e9zsk\u00e1
-currenciesDisplayName.LVR=Rubl loty\u0161sk\u00fd
+currenciesDisplayName.GQE=Equatorial Guinea Ekwele Guineana
 currenciesDisplayName.SOS=\u0160ilink som\u00e1lsk\u00fd
+currenciesDisplayName.LVR=Rubl loty\u0161sk\u00fd
 currenciesDisplayName.AED=Dirham SAE
-currenciesDisplayName.BWP=Pula
 currenciesDisplayName.LVL=Lat loty\u0161sk\u00fd
+currenciesDisplayName.BWP=Pula
 currenciesDisplayName.RUR=Rubl rusk\u00fd (1991-1998)
 currenciesDisplayName.NIO=Cordoba oro
-currenciesDisplayName.ADP=Peseta andorrsk\u00e1
-currenciesDisplayName.FJD=Dolar fid\u017eijsk\u00fd
 currenciesDisplayName.MOP=Pataca
+currenciesDisplayName.FJD=Dolar fid\u017eijsk\u00fd
+currenciesDisplayName.ADP=Peseta andorrsk\u00e1
 currenciesDisplayName.RUB=Rubl rusk\u00fd
 currenciesDisplayName.CDF=Frank kon\u017esk\u00fd
 currenciesDisplayName.NIC=Cordoba
 currenciesDisplayName.DJF=Frank d\u017eibutsk\u00fd
-currenciesDisplayName.ECV=Ecuador Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Dolar \u0160alamounov\u00fdch ostrov\u016f
 currenciesDisplayName.UZS=Sum uzbeck\u00fd
+currenciesDisplayName.SBD=Dolar \u0160alamounov\u00fdch ostrov\u016f
+currenciesDisplayName.ECV=Ecuador Unidad de Valor Constante (UVC)
 currenciesDisplayName.ECS=Sucre ekv\u00e1dorsk\u00fd
-currenciesDisplayName.PHP=Peso filip\u00ednsk\u00e9
 currenciesDisplayName.THB=Baht
+currenciesDisplayName.PHP=Peso filip\u00ednsk\u00e9
 currenciesDisplayName.LUF=Frank lucembursk\u00fd
 currenciesDisplayName.FIM=Markka
 currenciesDisplayName.TTD=Dolar Trinidad a Tobago
 currenciesDisplayName.SZL=Lilangeni
 currenciesDisplayName.MNT=Tugrik
-currenciesDisplayName.SAR=Rij\u00e1l saudsk\u00fd
 currenciesDisplayName.UAK=Karbovanec
+currenciesDisplayName.SAR=Rij\u00e1l saudsk\u00fd
 currenciesDisplayName.UAH=H\u0159ivna
 currenciesDisplayName.HUF=Forint
-currenciesDisplayName.COP=Peso kolumbijsk\u00e9
 currenciesDisplayName.QAR=Rij\u00e1l katarsk\u00fd
+currenciesDisplayName.COP=Peso kolumbijsk\u00e9
 currenciesDisplayName.LTT=Talon
 currenciesDisplayName.PTE=Escudo portugalsk\u00e9
-currenciesDisplayName.AOR=Kwanza reajustado (1995-1999)
 currenciesDisplayName.UYU=Peso uruguaysk\u00e9
+currenciesDisplayName.AOR=Kwanza reajustado (1995-1999)
 currenciesDisplayName.GBP=Libra \u0161terlink\u016f
-currenciesDisplayName.BIF=Frank burundsk\u00fd
-currenciesDisplayName.INR=Rupie indick\u00e1
 currenciesDisplayName.ZRZ=Zaire
-currenciesDisplayName.AON=Kwanza nov\u00e1 (1990-2000)
-currenciesDisplayName.LTL=Litus litevsk\u00fd
+currenciesDisplayName.INR=Rupie indick\u00e1
+currenciesDisplayName.BIF=Frank burundsk\u00fd
 currenciesDisplayName.XFU=Frank UIC
-currenciesDisplayName.KZT=Tenge
-currenciesDisplayName.MZM=Metical
+currenciesDisplayName.LTL=Litus litevsk\u00fd
+currenciesDisplayName.AON=Kwanza nov\u00e1 (1990-2000)
 currenciesDisplayName.UYP=Peso uruguaysk\u00e9 (1975-1993)
+currenciesDisplayName.MZM=Metical
+currenciesDisplayName.KZT=Tenge
 currenciesDisplayName.AOK=Kwanza (1977-1990)
-currenciesDisplayName.BUK=Kyat barmsk\u00fd
 currenciesDisplayName.GNS=Guinea Syli
+currenciesDisplayName.BUK=Kyat barmsk\u00fd
 currenciesDisplayName.XFO=Frank zlat\u00fd
 currenciesDisplayName.PGK=Kina
 currenciesDisplayName.SYP=Libra syrsk\u00e1
-currenciesDisplayName.MZE=Escudo Mosambiku
 currenciesDisplayName.OMR=Rij\u00e1l om\u00e1nsk\u00fd
-currenciesDisplayName.NGN=Naira
+currenciesDisplayName.MZE=Escudo Mosambiku
 currenciesDisplayName.ZRN=Zaire nov\u00fd
-currenciesDisplayName.AOA=Kwanza
+currenciesDisplayName.NGN=Naira
 currenciesDisplayName.CNY=Juan renminbi
+currenciesDisplayName.AOA=Kwanza
 currenciesDisplayName.MAF=Frank marock\u00fd
+currenciesDisplayName.RSD=Din\u00e1r srbsk\u00fd
 currenciesDisplayName.GNF=Frank guinejsk\u00fd
-currenciesDisplayName.HTG=Gourde
 currenciesDisplayName.MAD=Dirham marock\u00fd
+currenciesDisplayName.HTG=Gourde
 currenciesDisplayName.TRY=Lira nov\u00e1 tureck\u00e1
 currenciesDisplayName.MMK=Kyat
 currenciesDisplayName.MYR=Ringgit malajskijsk\u00fd
-currenciesDisplayName.LSL=Loti
 currenciesDisplayName.XEU=Evropsk\u00e1 m\u011bnov\u00e1 jednotka
+currenciesDisplayName.LSL=Loti
+currenciesDisplayName.SLL=Leone
 currenciesDisplayName.BHD=Din\u00e1r bahrajnsk\u00fd
 currenciesDisplayName.BTN=Ngultrum
 currenciesDisplayName.TRL=Lira tureck\u00e1
 currenciesDisplayName.KMF=Frank komorsk\u00fd
-currenciesDisplayName.ANG=Zlat\u00fd Nizozemsk\u00fdch Antil
 currenciesDisplayName.CZK=Koruna \u010desk\u00e1
+currenciesDisplayName.ANG=Zlat\u00fd Nizozemsk\u00fdch Antil
 currenciesDisplayName.AZM=Manat \u00e1zerbajd\u017e\u00e1nsk\u00fd
 currenciesDisplayName.KYD=Dolar Kajmansk\u00fdch ostrov\u016f
 currenciesDisplayName.GMD=Dalasi
 currenciesDisplayName.BGN=Lev Bulharsk\u00fd
-currenciesDisplayName.CAD=Dolar kanadsk\u00fd
 currenciesDisplayName.MXV=Mexican Unidad de Inversion (UDI)
+currenciesDisplayName.CAD=Dolar kanadsk\u00fd
 currenciesDisplayName.BGL=Lev
 currenciesDisplayName.VEB=Bolivar
 currenciesDisplayName.MLF=Frank malijsk\u00fd
-currenciesDisplayName.ILS=\u0160ekel nov\u00fd izraelsk\u00fd
 currenciesDisplayName.MXP=Peso st\u0159\u00edbrn\u00e9 mexick\u00e9 (1861-1992)
+currenciesDisplayName.ILS=\u0160ekel nov\u00fd izraelsk\u00fd
 currenciesDisplayName.PES=Sol
-currenciesDisplayName.GYD=Dolar guyansk\u00fd
 currenciesDisplayName.MXN=Peso mexick\u00e9
+currenciesDisplayName.GYD=Dolar guyansk\u00fd
 currenciesDisplayName.ILP=Libra izraelsk\u00e1
-currenciesDisplayName.SKK=Koruna slovensk\u00e1
 currenciesDisplayName.CYP=Libra kypersk\u00e1
+currenciesDisplayName.SKK=Koruna slovensk\u00e1
 currenciesDisplayName.XDR=SDR
 currenciesDisplayName.PEN=Nuevo sol
 currenciesDisplayName.LRD=Dolar liberijsk\u00fd
@@ -136,16 +148,16 @@ currenciesDisplayName.PEI=Inti
 currenciesDisplayName.AMD=Dram arm\u00e9nsk\u00fd
 currenciesDisplayName.BSD=Dolar bahamsk\u00fd
 currenciesDisplayName.HRK=Kuna chorvatsk\u00e1
-currenciesDisplayName.CLP=Peso chilsk\u00e9
 currenciesDisplayName.HRD=Dinar chorvatsk\u00fd
+currenciesDisplayName.CLP=Peso chilsk\u00e9
 currenciesDisplayName.XPF=Frank CFP
 currenciesDisplayName.FRF=Frank francouzsk\u00fd
 currenciesDisplayName.BRR=Cruzeiro real
 currenciesDisplayName.MKD=Den\u00e1r
 currenciesDisplayName.CLF=Unidades de fomento
-currenciesDisplayName.ALL=Lek
 currenciesDisplayName.BRN=Cruzado nov\u00e9
-currenciesDisplayName.MWK=Kwacha
+currenciesDisplayName.ALL=Lek
+currenciesDisplayName.MWK=Kwacha malawsk\u00e1
 currenciesDisplayName.BRL=Real brazilsk\u00fd
 currenciesDisplayName.TPE=Escudo timorsk\u00e9
 currenciesDisplayName.BRE=Cruzeiro (1990-1993)
@@ -156,22 +168,24 @@ currenciesDisplayName.KWD=Din\u00e1r kuvajtsk\u00fd
 currenciesDisplayName.XCD=Dolar v\u00fdchodokaribsk\u00fd
 currenciesDisplayName.NPR=Rupie nep\u00e1lsk\u00e1
 currenciesDisplayName.GWP=Peso Guinnea-Bissau
-currenciesDisplayName.YUN=Din\u00e1r jugosl\u00e1vsk\u00fd
+currenciesDisplayName.YUN=Din\u00e1r jugosl\u00e1vsk\u00fd konvertibiln\u00ed
 currenciesDisplayName.SVC=Colon salvadorsk\u00fd
-currenciesDisplayName.YUM=Din\u00e1r jugosl\u00e1vsk\u00fd
+currenciesDisplayName.YUM=Din\u00e1r jugosl\u00e1vsk\u00fd nov\u00fd [YUM]
 currenciesDisplayName.BEL=Frank finan\u010dn\u00ed
 currenciesDisplayName.SIT=Tolar
 currenciesDisplayName.JPY=Jen
 currenciesDisplayName.XOF=Frank BCEAO/CFA
 currenciesDisplayName.MVR=Rufiyaa
-currenciesDisplayName.GWE=Escudo guinejsk\u00e9
 currenciesDisplayName.BEF=Frank belgick\u00fd
-currenciesDisplayName.YUD=Din\u00e1r jugosl\u00e1vsk\u00fd nov\u00fd
+currenciesDisplayName.GWE=Escudo guinejsk\u00e9
+currenciesDisplayName.TOP=Pa\u02bbanga
+currenciesDisplayName.YUD=Din\u00e1r jugosl\u00e1vsk\u00fd nov\u00fd [YUD]
 currenciesDisplayName.BEC=Frank konvertibiln\u00ed
 currenciesDisplayName.SUR=Rubl
+currenciesDisplayName.RON=Leu rumunsk\u00e9
 currenciesDisplayName.ROL=Lei
-currenciesDisplayName.DDM=Marka NDR
 currenciesDisplayName.BDT=Taka
+currenciesDisplayName.DDM=Marka NDR
 currenciesDisplayName.XBD=Evropsk\u00e1 jednotka \u00fa\u010dtu 17 (XBD)
 currenciesDisplayName.AWG=Zlat\u00fd arubsk\u00fd
 currenciesDisplayName.XBC=Evropsk\u00e1 jednotka \u00fa\u010dtu 9 (XBC)
@@ -183,12 +197,13 @@ currenciesDisplayName.ZAR=Rand
 currenciesDisplayName.SHP=Libra Svat\u00e9 Heleny
 currenciesDisplayName.XAU=Zlato
 currenciesDisplayName.ZAL=Rand finan\u010dn\u00ed
+currenciesDisplayName.VND=Dong vietnamsk\u00fd
 currenciesDisplayName.TZS=\u0160ilink tanzansk\u00fd
 currenciesDisplayName.GIP=Libra gibraltarsk\u00e1
 currenciesDisplayName.TND=Din\u00e1r tunisk\u00fd
 currenciesDisplayName.CVE=Escudo kapverdsk\u00e9
 currenciesDisplayName.UGX=\u0160ilink ugandsk\u00fd
-currenciesDisplayName.ZMK=Kwacha
+currenciesDisplayName.ZMK=Kwacha zambijsk\u00e1
 currenciesDisplayName.JOD=Din\u00e1r jord\u00e1nsk\u00fd
 currenciesDisplayName.XAF=Frank BEAC/CFA
 currenciesDisplayName.LBP=Libra libanonsk\u00e1
@@ -196,32 +211,33 @@ currenciesDisplayName.UGS=\u0160ilink ugandsk\u00fd (1966-1987)
 currenciesDisplayName.STD=Dobra
 currenciesDisplayName.WST=Tala
 currenciesDisplayName.KHR=Riel
-currenciesDisplayName.EUR=Euro
 currenciesDisplayName.DOP=Peso dominik\u00e1nsk\u00e9
+currenciesDisplayName.EUR=Euro
 currenciesDisplayName.BOV=Mvdol
 currenciesDisplayName.MTP=Libra maltsk\u00e1
 currenciesDisplayName.USS=Dolar americk\u00fd (t\u00fd\u017e den)
 currenciesDisplayName.BOP=Peso
-currenciesDisplayName.MTL=Lira maltsk\u00e1
 currenciesDisplayName.CUP=Peso kub\u00e1nsk\u00e9
+currenciesDisplayName.MTL=Lira maltsk\u00e1
 currenciesDisplayName.TMM=Manat
 currenciesDisplayName.USN=Dolar americk\u00fd (p\u0159\u00ed\u0161t\u00ed den)
 currenciesDisplayName.SGD=Dolar singapursk\u00fd
 currenciesDisplayName.NZD=Dolar novoz\u00e9landsk\u00fd
 currenciesDisplayName.USD=Dolar americk\u00fd
-currenciesDisplayName.HNL=Lempira
 currenciesDisplayName.BOB=Boliviano
+currenciesDisplayName.HNL=Lempira
 currenciesDisplayName.ITL=Lira italsk\u00e1
 currenciesDisplayName.PAB=Balboa
 currenciesDisplayName.GTQ=Quetzal
-currenciesDisplayName.LAK=Kip
-currenciesDisplayName.GHC=Cedi
+currenciesDisplayName.XXX=Nezn\u00e1m\u00e1 nebo neplatn\u00e1 m\u011bna
 currenciesDisplayName.AUD=Dolar australsk\u00fd
+currenciesDisplayName.GHC=Cedi
+currenciesDisplayName.LAK=Kip
 currenciesDisplayName.NAD=Dolar namibijsk\u00fd
 currenciesDisplayName.KGS=Som
 currenciesDisplayName.MGF=Frank madagaskarsk\u00fd
-currenciesDisplayName.CHF=Frank \u0161v\u00fdcarsk\u00fd
 currenciesDisplayName.BBD=Dolar barbadosk\u00fd
+currenciesDisplayName.CHF=Frank \u0161v\u00fdcarsk\u00fd
 currenciesDisplayName.MGA=Ariary madagaskarsk\u00fd
 currenciesDisplayName.PYG=Guarani
 currenciesDisplayName.PLZ=Zlot\u00fd (1950-1995)
@@ -229,15 +245,15 @@ currenciesDisplayName.YER=Rij\u00e1l jemensk\u00fd
 currenciesDisplayName.ATS=\u0160ilink
 currenciesDisplayName.ETB=Birr etiopsk\u00fd
 currenciesDisplayName.BND=Dolar brunejsk\u00fd
-currenciesDisplayName.JMD=Dolar jamajsk\u00fd
 currenciesDisplayName.EGP=Libra egyptsk\u00e1
+currenciesDisplayName.JMD=Dolar jamajsk\u00fd
 currenciesDisplayName.PLN=Zlot\u00fd
 currenciesDisplayName.DZD=Din\u00e1r al\u017e\u00edrsk\u00fd
 currenciesDisplayName.ISK=Koruna islandsk\u00e1
 currenciesDisplayName.SRG=Zlat\u00fd surinamsk\u00fd
 currenciesDisplayName.LYD=Din\u00e1r lybijsk\u00fd
-currenciesDisplayName.BZD=Dolar belizsk\u00fd
 currenciesDisplayName.BAM=Marka konvertibiln\u00ed
+currenciesDisplayName.BZD=Dolar belizsk\u00fd
 currenciesDisplayName.ESP=Peseta \u0161pan\u011blsk\u00e1
 currenciesDisplayName.KRW=Won jihokorejsk\u00fd
 currenciesDisplayName.NLG=Zlat\u00fd holandsk\u00fd
@@ -250,31 +266,29 @@ currenciesDisplayName.BYR=Rubl b\u011blorusk\u00fd
 currenciesDisplayName.IRR=Rij\u00e1l \u00edr\u00e1nsk\u00fd
 currenciesDisplayName.PKR=Rupie p\u00e1kist\u00e1nsk\u00e1
 currenciesDisplayName.BMD=Dolar bermudsk\u00fd
-currenciesSymbol.BGL=lev
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
-currenciesSymbol.CYP=\u00a3
+currenciesSymbol.KES=K Sh
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
@@ -292,27 +306,27 @@ currenciesSymbol.FJD=F$
 currenciesSymbol.UYU=Ur$
 currenciesSymbol.BDT=Tk
 currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
 currenciesSymbol.DJF=DF
+currenciesSymbol.XXX=XXX
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
 currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
 currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -321,8 +335,8 @@ currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
 currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.BOB=Bs
 currenciesSymbol.CNY=Y
@@ -337,10 +351,10 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.CZK=K\u010d
 currenciesSymbol.DZD=DA
@@ -350,22 +364,21 @@ currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=led®\u00fano®b\u0159e®dub®kv\u011b®\u010drn®\u010drc®srp®z\u00e1\u0159®\u0159\u00edj®lis®pro®®
-months=leden®\u00fanor®b\u0159ezen®duben®kv\u011bten®\u010derven®\u010dervenec®srpen®z\u00e1\u0159\u00ed®\u0159\u00edjen®listopad®prosinec®®
-shortWeekdays=®ne®po®\u00fat®st®\u010dt®p\u00e1®so®
-weekdays=®ned\u011ble®pond\u011bl\u00ed®\u00fater\u00fd®st\u0159eda®\u010dtvrtek®p\u00e1tek®sobota®
-firstDayOfWeek=mon
-eras=p\u0159.Kr.®po Kr.®
-ampms=dop.®odp.®
-shortDateFormat=yy-MM-dd
-mediumDateFormat=yyyy-MM-dd
+shortMonths=1.\u00ae2.\u00ae3.\u00ae4.\u00ae5.\u00ae6.\u00ae7.\u00ae8.\u00ae9.\u00ae10.\u00ae11.\u00ae12.\u00ae\u00ae
+months=leden\u00ae\u00fanor\u00aeb\u0159ezen\u00aeduben\u00aekv\u011bten\u00ae\u010derven\u00ae\u010dervenec\u00aesrpen\u00aez\u00e1\u0159\u00ed\u00ae\u0159\u00edjen\u00aelistopad\u00aeprosinec\u00ae\u00ae
+shortWeekdays=\u00aene\u00aepo\u00ae\u00fat\u00aest\u00ae\u010dt\u00aep\u00e1\u00aeso\u00ae
+weekdays=\u00aened\u011ble\u00aepond\u011bl\u00ed\u00ae\u00fater\u00fd\u00aest\u0159eda\u00ae\u010dtvrtek\u00aep\u00e1tek\u00aesobota\u00ae
+eras=p\u0159.Kr.\u00aepo Kr.\u00ae
+ampms=dop.\u00aeodp.\u00ae
+shortDateFormat=d.M.yy
+mediumDateFormat=d.M.yyyy
 longDateFormat=d. MMMM yyyy
 fullDateFormat=EEEE, d. MMMM yyyy
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ssZZ
-fullTimeFormat=H:mm:ssZZ
-zoneStrings=Europe/Paris®CET®St\u0159edoevropsk\u00fd standardn\u00ed \u010das®CEST®St\u0159edoevropsk\u00fd letn\u00ed \u010das®©Pacific/Honolulu®HST®Havajsk\u00fd standardn\u00ed \u010das®HST®Havajsk\u00fd letn\u00ed \u010das®©America/Denver®MST®Horsk\u00fd standardn\u00ed \u010das®MDT®Horsk\u00fd letn\u00ed \u010das®©Asia/Jerusalem®IST®Izraelsk\u00fd standardn\u00ed \u010das®IDT®Izraelsk\u00fd letn\u00ed \u010das®©America/Anchorage®AST®Alja\u0161sk\u00fd standardn\u00ed \u010das®ADT®Alja\u0161sk\u00fd letn\u00ed \u010das®©Africa/Casablanca®GMT®Greenwichsk\u00fd st\u0159edn\u00ed \u010das®GMT®Greenwichsk\u00fd st\u0159edn\u00ed \u010das®©America/Phoenix®MST®Horsk\u00fd standardn\u00ed \u010das®MST®Horsk\u00fd letn\u00ed \u010das®©America/Los_Angeles®PST®Pacifick\u00fd standardn\u00ed \u010das®PDT®Pacifick\u00fd letn\u00ed \u010das®©America/Chicago®CST®Centr\u00e1ln\u00ed standardn\u00ed \u010das®CDT®Centr\u00e1ln\u00ed letn\u00ed \u010das®©America/Halifax®AST®Atlantick\u00fd standardn\u00ed \u010das®ADT®Atlantick\u00fd letn\u00ed \u010das®©America/New_York®EST®V\u00fdchodn\u00ed standardn\u00ed \u010das®EDT®V\u00fdchodn\u00ed letn\u00ed \u010das®©Asia/Tokyo®JST®Japonsk\u00fd standardn\u00ed \u010das®JST®Japonsk\u00fd letn\u00ed \u010das®©Europe/Bucharest®EET®V\u00fdchodoevropsk\u00fd standardn\u00ed \u010das®EEST®V\u00fdchodoevropsk\u00fd letn\u00ed \u010das®©America/Indianapolis®EST®V\u00fdchodn\u00ed standardn\u00ed \u010das®EST®V\u00fdchodn\u00ed letn\u00ed \u010das®©
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00aeV\u00fdchodoevropsk\u00fd standardn\u00ed \u010das\u00ae\u00aeV\u00fdchodoevropsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9America_Mountain\u00aeHorsk\u00fd standardn\u00ed \u010das\u00ae\u00aeHorsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundlandsk\u00fd standardn\u00ed \u010das\u00ae\u00aeNewfoundlandsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9America_Pacific\u00aePacifick\u00fd standardn\u00ed \u010das\u00ae\u00aePacifick\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9Europe_Central\u00aeSt\u0159edoevropsk\u00fd standardn\u00ed \u010das\u00ae\u00aeSt\u0159edoevropsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9China\u00ae\u010c\u00ednsk\u00fd standardn\u00ed \u010das\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeIzraelsk\u00fd standardn\u00ed \u010das\u00ae\u00aeIzraelsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9America_Eastern\u00aeV\u00fdchodn\u00ed standardn\u00ed \u010das\u00ae\u00aeV\u00fdchodn\u00ed letn\u00ed \u010das\u00ae\u00ae\u00a9Japan\u00aeJaponsk\u00fd standardn\u00ed \u010das\u00ae\u00aeJaponsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9America_Central\u00aeCentr\u00e1ln\u00ed standardn\u00ed \u010das\u00ae\u00aeCentr\u00e1ln\u00ed letn\u00ed \u010das\u00ae\u00ae\u00a9GMT\u00aeGreenwichsk\u00fd st\u0159edn\u00ed \u010das\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00aeAtlantick\u00fd standardn\u00ed \u010das\u00ae\u00aeAtlantick\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9Alaska\u00aeAlja\u0161sk\u00fd standardn\u00ed \u010das\u00ae\u00aeAlja\u0161sk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9
 territories.TL=V\u00fdchodn\u00ed Timor
 territories.TK=Tokelau
 territories.TJ=T\u00e1d\u017eikist\u00e1n
@@ -390,10 +403,11 @@ territories.GL=Gr\u00f3nsko
 territories.SV=El Salvador
 territories.062=Ji\u017en\u00ed a centr\u00e1ln\u00ed Asie
 territories.ST=Svat\u00fd Tom\u00e1\u0161
-territories.061=Polyn\u00e9sie
 territories.GI=Gibraltar
+territories.061=Polyn\u00e9sie
 territories.GH=Ghana
 territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Francouzsk\u00e1 Guyana
 territories.GE=Gruzie
 territories.SO=Som\u00e1lsko
@@ -414,26 +428,27 @@ territories.SC=Seychely
 territories.SB=\u0160alamounovy ostrovy
 territories.SA=Sa\u00fadsk\u00e1 Ar\u00e1bie
 territories.FR=Francie
-territories.057=Mikron\u00e9sie
 territories.FO=Faersk\u00e9 ostrovy
-territories.FM=Mikron\u00e9sie, federativn\u00ed st\u00e1t
+territories.057=Mikron\u00e9sie
+territories.FM=Mikron\u00e9zie
 territories.RW=Rwanda
 territories.054=Melan\u00e9sie
-territories.053=Austr\u00e1lie a Nov\u00fd Z\u00e9land
 territories.FK=Falklandsk\u00e9 ostrovy
+territories.053=Austr\u00e1lie a Nov\u00fd Z\u00e9land
 territories.RU=Rusko
 territories.FJ=Fid\u017ei
 territories.FI=Finsko
+territories.RS=Srbsko
 territories.RO=Rumunsko
 territories.RE=R\u00e9union
 territories.ET=Etiopie
 territories.ES=\u0160pan\u011blsko
 territories.ER=Eritrea
-territories.833=Ostrov Man
+territories.QU=Evropsk\u00e1 unie
 territories.EH=Z\u00e1padn\u00ed Sahara
 territories.EG=Egypt
-territories.830=Normansk\u00e9 ostrovy
 territories.EE=Estonsko
+territories.830=Normansk\u00e9 ostrovy
 territories.QO=Vn\u011bj\u0161\u00ed Oce\u00e1nie
 territories.EC=Ekv\u00e1dor
 territories.DZ=Al\u017e\u00edrsko
@@ -441,13 +456,14 @@ territories.QA=Katar
 territories.039=Ji\u017en\u00ed Evropa
 territories.DO=Dominik\u00e1nsk\u00e1 republika
 territories.PY=Paraguay
-territories.035=Jihov\u00fdchodn\u00ed Asie
 territories.DM=Dominika
+territories.035=Jihov\u00fdchodn\u00ed Asie
 territories.PW=Palau
+territories.034=Ji\u017en\u00ed Asie
 territories.DK=D\u00e1nsko
 territories.DJ=D\u017eibuti
 territories.PT=Portugalsko
-territories.PS=Palestinian Territory
+territories.PS=Palestinsk\u00e9 \u00fazem\u00ed
 territories.030=V\u00fdchodn\u00ed Asie
 territories.PR=Portoriko
 territories.DE=N\u011bmecko
@@ -473,15 +489,16 @@ territories.CN=\u010c\u00edna
 territories.CM=Kamerun
 territories.CL=Chile
 territories.CK=Cookovy ostrovy
-territories.CI=Pob\u0159e\u017e\u00ed slonoviny
 territories.021=Severn\u00ed Amerika
+territories.CI=Pob\u0159e\u017e\u00ed slonoviny
 territories.CH=\u0160v\u00fdcarsko
 territories.CG=Kongo
 territories.CF=St\u0159edoafrick\u00e1 republika
-territories.CD=Kongo, demokratick\u00e1 republika
+territories.CD=Demokratick\u00e1 republika Kongo
 territories.CC=Kokosov\u00e9 ostrovy
 territories.OM=Om\u00e1n
 territories.CA=Kanada
+territories.419=Latinsk\u00e1 Amerika a Karibsk\u00e9 mo\u0159e
 territories.BZ=Belize
 territories.BY=B\u011blorusko
 territories.BW=Botswana
@@ -492,23 +509,24 @@ territories.BR=Braz\u00edlie
 territories.019=Amerika
 territories.018=Ji\u017en\u00ed Afrika
 territories.NZ=Nov\u00fd Z\u00e9land
-territories.BO=Bol\u00edvie
 territories.017=St\u0159edn\u00ed Afrika
+territories.BO=Bol\u00edvie
 territories.BN=Brunej Darussalam
-territories.BM=Bermudy
 territories.015=Severn\u00ed Afrika
+territories.BM=Bermudy
 territories.014=V\u00fdchodn\u00ed Afrika
 territories.013=St\u0159edn\u00ed Amerika
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Z\u00e1padn\u00ed Afrika
+territories.BI=Burundi
 territories.BH=Bahrajn
 territories.NR=Nauru
 territories.BG=Bulharsko
 territories.BF=Burkina Faso
 territories.NP=Nep\u00e1l
 territories.BE=Belgie
+territories.ZZ=Nezn\u00e1m\u00e1 nebo neplatn\u00e1 oblast
 territories.NO=Norsko
 territories.BD=Banglad\u00e9\u0161
 territories.BB=Barbados
@@ -529,25 +547,26 @@ territories.AU=Austr\u00e1lie
 territories.AT=Rakousko
 territories.AS=Americk\u00e1 Samoa
 territories.AR=Argentina
-territories.009=Oce\u00e1nie
 territories.AQ=Antarktida
+territories.009=Oce\u00e1nie
 territories.MZ=Mosambik
-territories.200=\u010ceskoslovensko
 territories.AO=Angola
+territories.200=\u010ceskoslovensko
 territories.MY=Malajsie
 territories.AN=Nizozemsk\u00e9 Antily
 territories.MX=Mexiko
-territories.005=Ji\u017en\u00ed Amerika
 territories.AM=Arm\u00e9nie
+territories.005=Ji\u017en\u00ed Amerika
 territories.MW=Malawi
 territories.AL=Alb\u00e1nie
 territories.MV=Maladivy
-territories.ZA=Ji\u017en\u00ed Afrika
+territories.003=Severn\u00ed Amerika
+territories.ZA=Jihoafrick\u00e1 republika
 territories.MU=Mauricius
 territories.002=Afrika
 territories.MT=Malta
-territories.001=Sv\u011bt
 territories.AI=Anguila
+territories.001=Sv\u011bt
 territories.MS=Montserrat
 territories.MR=Maurit\u00e1nie
 territories.AG=Antigua a Barbuda
@@ -555,16 +574,18 @@ territories.MQ=Martinik
 territories.AF=Afgh\u00e1nist\u00e1n
 territories.MP=Severn\u00ed Mariany
 territories.AE=Spojen\u00e9 arabsk\u00e9 emir\u00e1ty
-territories.MO=Macao S.A.R., China
+territories.MO=Macao
 territories.AD=Andorra
 territories.MN=Mongolsko
-territories.MM=Myanmar (Burma)
+territories.MM=Myanmar
 territories.ML=Mali
 territories.MK=Macedonia
 territories.YT=Mayotte
 territories.MH=Marshallovy ostrovy
 territories.MG=Madagaskar
-territories.MD=Moldavsko, republika
+territories.MF=Svat\u00fd Martin
+territories.ME=\u010cern\u00e1 Hora
+territories.MD=Mold\u00e1vie
 territories.MC=Monako
 territories.MA=Maroko
 territories.YE=Jemen
@@ -587,6 +608,7 @@ territories.KZ=Kazachst\u00e1n
 territories.KY=Kajmansk\u00e9 ostrovy
 territories.KW=Kuvajt
 territories.145=Z\u00e1padn\u00ed Asie
+territories.143=St\u0159edn\u00ed Asie
 territories.142=Asie
 territories.KR=Ji\u017en\u00ed Korea
 territories.KP=Severn\u00ed Korea
@@ -602,6 +624,7 @@ territories.JP=Japonsko
 territories.JO=Jord\u00e1nsko
 territories.JM=Jamajka
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=Americk\u00e9 Panensk\u00e9 ostrovy
 territories.VG=Britsk\u00e9 Panensk\u00e9 ostrovy
@@ -616,6 +639,7 @@ territories.UZ=Uzbekist\u00e1n
 territories.IO=Britsk\u00e9 \u00fazem\u00ed v Indick\u00e9m oce\u00e1nu
 territories.UY=Uruguay
 territories.IN=Indie
+territories.IM=Ostrov Man
 territories.IL=Izrael
 territories.US=Spojen\u00e9 st\u00e1ty
 territories.IE=Irsko
@@ -631,148 +655,182 @@ territories.HN=Honduras
 territories.HM=Ostrovy Heard a McDonald
 territories.TW=Tchaj-wan
 territories.TV=Tuvalu
-territories.HK=Hongkong, zvl\u00e1\u0161tn\u00ed administrativn\u00ed oblast \u010c\u00edny
+territories.HK=Hongkong
 territories.TT=Trinidad a Tobago
 territories.TR=Turecko
 territories.TO=Tonga
 territories.TN=Tunisko
 territories.TM=Turkmenist\u00e1n
-languages.es=\u0160pan\u011bl\u0161tina
-languages.ku=Kurd\u0161tina
-languages.eo=Esperanto
-languages.en=Angli\u010dtina
-languages.ks=Ka\u0161m\u00edr\u0161tina
-languages.el=\u0158e\u010dtina
-languages.qu=Ke\u010du\u00e1n\u0161tina
-languages.ko=Korej\u0161tina
-languages.kn=Kannad\u0161tina
-languages.km=Kambod\u017e\u0161tina
-languages.kl=Gr\u00f3n\u0161tina
-languages.kk=Kazach\u0161tina
-languages.wo=Wolof
-languages.ka=Gruz\u00edn\u0161tina
-languages.dz=Bh\u00fat\u00e1n\u0161tina
-languages.jv=Jav\u00e1n\u0161tina
-languages.pt=Portugal\u0161tina
-languages.ps=Pashto (Pushto)
-languages.de=N\u011bm\u010dina
-languages.pl=Pol\u0161tina
-languages.da=D\u00e1n\u0161tina
-languages.vo=Volapuk
-languages.ja=Japon\u0161tina
-languages.vi=Vietnam\u0161tina
-languages.cy=Vel\u0161tina
-languages.pa=Pa\u0148d\u017e\u00e1b\u0161tina
-languages.cs=\u010ce\u0161tina
-languages.iu=Inuktitut\u0161tina
-languages.co=Korsi\u010dtina
-languages.it=Ital\u0161tina
-languages.is=Island\u0161tina
-languages.uz=Uzbe\u010dtina
-languages.or=Oriya
-languages.ik=Inupiak\u0161tina
-languages.ur=Urd\u0161tina
-languages.om=Oromo (Afan)
-languages.ca=Katal\u00e1n\u0161tina
-languages.ie=Interlingue
-languages.id=Indon\u00e9\u0161tina
-languages.uk=Ukrajin\u0161tina
-languages.ia=Interlingua
-languages.oc=Occitan
-languages.ug=Uighur\u0161tina
-languages.hy=Arm\u00e9n\u0161tina
-languages.br=Breta\u0148\u0161tina
-languages.hu=Ma\u010far\u0161tina
-languages.bo=Tibet\u0161tina
-languages.bn=Beng\u00e1l\u0161tina
-languages.hr=Chorvat\u0161tina
-languages.bi=Bisl\u00e1m\u0161tina
-languages.tw=Twi
-languages.bh=Bihar\u0161tina
-languages.bg=Bulhar\u0161tina
-languages.tt=Tatar\u0161tina
-languages.no=Nor\u0161tina
-languages.be=B\u011bloru\u0161tina
-languages.ts=Tsonga
-languages.hi=Hind\u0161tina
-languages.tr=Ture\u010dtina
-languages.nl=Holand\u0161tina
-languages.zu=Zulu
-languages.ba=Baskir\u0161tina
-languages.to=Tonga
-languages.he=Hebrej\u0161tina
-languages.tn=Setswan\u0161tina
-languages.tl=Tagalog
-languages.tk=Turkmen\u0161tina
-languages.ha=Hausa
-languages.ne=Nep\u00e1l\u0161tina
-languages.az=Azerbajd\u017e\u00e1n\u0161tina
-languages.ti=Tigrinij\u0161tina
-languages.ay=Aym\u00e1r\u0161tina
-languages.th=Thaj\u0161tina
-languages.tg=T\u00e1d\u017ei\u010dtina
-languages.na=Nauru
-languages.te=Telug\u0161tina
-languages.zh=\u010c\u00edn\u0161tina
-languages.as=Assam\u00e9\u0161tina
-languages.ar=Arab\u0161tina
-languages.ta=Tamil\u0161tina
-languages.gu=Gujarat\u0161tina
-languages.my=Barm\u0161tina
-languages.am=Amhar\u0161tina
-languages.za=Zhuang
-languages.mt=Malt\u0161tina
-languages.ms=Malaj\u0161tina
-languages.gn=Guaran\u0161tina
-languages.sw=Svahil\u0161tina
-languages.mr=Marathi
-languages.sv=\u0160v\u00e9d\u0161tina
-languages.gl=Hali\u010d\u0161tina
-languages.su=Sundan\u0161tina
-languages.af=Afrik\u00e1n\u0161tina
-languages.st=Sesotho
-languages.mo=Moldav\u0161tina
-languages.ss=Siswat\u0161tina
-languages.mn=Mongol\u0161tina
-languages.sr=Srb\u0161tina
-languages.sq=Alb\u00e1n\u0161tina
-languages.ml=Malabar\u0161tina
-languages.ab=Abch\u00e1z\u0161tina
-languages.mk=Makedon\u0161tina
-languages.aa=Afar\u0161tina
-languages.so=Som\u00e1l\u0161tina
-languages.sn=Shona
-languages.gd=Skotsk\u00e1 gal\u0161tina
-languages.mi=Maor\u0161tina
-languages.sm=Samoy\u0161tina
-languages.sl=Slovin\u0161tina
-languages.mg=Malga\u0161tina
-languages.sk=Sloven\u0161tina
-languages.ga=Ir\u0161tina
-languages.yo=Yoruba
-languages.si=Sinh\u00e1l\u0161tina
-languages.sh=Srbochorvat\u0161tina
-languages.sg=Sangho
-languages.yi=Jidi\u0161
-languages.sd=Sindhi
-languages.fy=Fr\u00ed\u0161tina
-languages.sa=Sanskrt
-languages.fr=Francouz\u0161tina
-languages.lv=Loty\u0161tina
-languages.fo=Faer\u0161tina
-languages.lt=Litev\u0161tina
-languages.rw=Kinyarwand\u0161tina
-languages.ru=Ru\u0161tina
-languages.fj=Fid\u017ei
-languages.lo=Lao\u0161tina
-languages.fi=Fin\u0161tina
-languages.ln=Lingal\u0161tina
-languages.ro=Rumun\u0161tina
-languages.rn=Kirundi
-languages.rm=R\u00e9torom\u00e1n\u0161tina
-languages.fa=Per\u0161tina
-languages.la=Latina
-languages.xh=Xhosa
-languages.eu=Baski\u010dtina
-languages.et=Eston\u0161tina
-languages.ky=Kirgiz\u0161tina
+languages.lb=Lucembur\u0161tina
+languages.la=latina
+languages.xh=xhosa
+languages.ky=kirgiz\u0161tina
+languages.ku=kurd\u0161tina
+languages.ks=ka\u0161m\u00edr\u0161tina
+languages.ko=korej\u0161tina
+languages.kn=kannad\u0161tina
+languages.km=kambod\u017e\u0161tina
+languages.kl=gr\u00f3n\u0161tina
+languages.kk=kazach\u0161tina
+languages.grc=staro\u0159e\u010dtina
+languages.wo=wolof
+languages.ka=gruz\u00edn\u0161tina
+languages.arp=arapa\u017e\u0161tina
+languages.jv=jav\u00e1n\u0161tina
+languages.wa=valon\u0161tina
+languages.vo=volapuk
+languages.ja=japon\u0161tina
+languages.vi=vietnam\u0161tina
+languages.iu=inuktitut\u0161tina
+languages.it=ital\u0161tina
+languages.is=island\u0161tina
+languages.uz=uzbe\u010dtina
+languages.ik=inupiak\u0161tina
+languages.ur=urd\u0161tina
+languages.ie=interlingue
+languages.id=indon\u00e9\u0161tina
+languages.ia=interlingua
+languages.uk=ukrajin\u0161tina
+languages.ug=uighur\u0161tina
+languages.und=nezn\u00e1m\u00fd nebo neplatn\u00fd jazyk
+languages.hy=arm\u00e9n\u0161tina
+languages.hu=ma\u010far\u0161tina
+languages.hr=chorvat\u0161tina
+languages.fil=tagalog\u0161tina
+languages.ty=tahit\u0161tina
+languages.tw=twi
+languages.tt=tatar\u0161tina
+languages.hi=hind\u0161tina
+languages.ts=tsonga
+languages.tr=ture\u010dtina
+languages.he=hebrej\u0161tina
+languages.to=tonga
+languages.tn=setswan\u0161tina
+languages.tl=tagalog
+languages.ha=hausa
+languages.tk=turkmen\u0161tina
+languages.ti=tigrinij\u0161tina
+languages.th=thaj\u0161tina
+languages.tg=t\u00e1d\u017ei\u010dtina
+languages.te=telug\u0161tina
+languages.gv=man\u0161tina
+languages.ta=tamil\u0161tina
+languages.gu=gujarat\u0161tina
+languages.gn=guaran\u0161tina
+languages.mai=maithili\u0161tina
+languages.sw=svahil\u0161tina
+languages.gl=hali\u010d\u0161tina
+languages.mag=magadhi\u0161tina
+languages.sv=\u0161v\u00e9d\u0161tina
+languages.su=sundan\u0161tina
+languages.st=sesotho
+languages.ss=siswat\u0161tina
+languages.sr=srb\u0161tina
+languages.bho=bhojpur\u0161tina
+languages.en_CA=anglicky (Kanada)
+languages.sq=alb\u00e1n\u0161tina
+languages.so=som\u00e1l\u0161tina
+languages.gd=skotsk\u00e1 gal\u0161tina
+languages.sn=shona
+languages.sm=samoy\u0161tina
+languages.sl=slovin\u0161tina
+languages.ga=ir\u0161tina
+languages.sk=sloven\u0161tina
+languages.anp=angika
+languages.si=sinh\u00e1l\u0161tina
+languages.sh=srbochorvat\u0161tina
+languages.sg=sangho
+languages.fy=fr\u00ed\u0161tina
+languages.sd=sindhi
+languages.sa=sanskrt
+languages.fr=francouz\u0161tina
+languages.sla=slovansk\u00fd jazyk
+languages.fo=faer\u0161tina
+languages.rw=kinyarwand\u0161tina
+languages.ru=ru\u0161tina
+languages.fj=fid\u017ei
+languages.fi=fin\u0161tina
+languages.ro=rumun\u0161tina
+languages.rn=kirundi
+languages.rm=r\u00e9torom\u00e1n\u0161tina
+languages.fa=per\u0161tina
+languages.eu=baski\u010dtina
+languages.et=eston\u0161tina
+languages.es=\u0161pan\u011bl\u0161tina
+languages.eo=esperanto
+languages.en=angli\u010dtina
+languages.el=\u0159e\u010dtina
+languages.qu=ke\u010du\u00e1n\u0161tina
+languages.dz=bh\u00fat\u00e1n\u0161tina
+languages.tpi=tok pisin
+languages.pt=portugal\u0161tina
+languages.ps=pa\u0161tun\u0161tina
+languages.de=n\u011bm\u010dina
+languages.pl=pol\u0161tina
+languages.da=d\u00e1n\u0161tina
+languages.sux=sumersk\u00fd
+languages.cy=vel\u0161tina
+languages.akk=akkad\u0161tina
+languages.pa=pa\u0148d\u017e\u00e1b\u0161tina
+languages.cs=\u010de\u0161tina
+languages.co=korsi\u010dtina
+languages.or=oriya
+languages.om=orom\u0161tina (Afan)
+languages.ca=katal\u00e1n\u0161tina
+languages.oc=occitan
+languages.bs=bosen\u0161tina
+languages.br=breton\u0161tina
+languages.bo=tibet\u0161tina
+languages.zh_Hans=\u010d\u00edn\u0161tina (zjednodu\u0161en\u00e1)
+languages.bn=beng\u00e1l\u0161tina
+languages.zh_Hant=\u010d\u00edn\u0161tina (tradi\u010dn\u00ed)
+languages.bm=bambar\u0161tina
+languages.bi=bisl\u00e1m\u0161tina
+languages.bh=bihar\u0161tina
+languages.bg=bulhar\u0161tina
+languages.be=b\u011bloru\u0161tina
+languages.no=nor\u0161tina
+languages.nn=nor\u0161tina (nynorsk)
+languages.nl=nizozem\u0161tina
+languages.ba=baskir\u0161tina
+languages.zu=zulu
+languages.ain=ain\u0161tina
+languages.az=azerbajd\u017e\u00e1n\u0161tina
+languages.ne=nep\u00e1l\u0161tina
+languages.ay=aym\u00e1r\u0161tina
+languages.uga=ugarit\u0161tina
+languages.av=avar\u0161tina
+languages.de_AT=n\u011bmecky (Rakousko)
+languages.na=nauru
+languages.as=as\u00e1m\u0161tina
+languages.ar=arab\u0161tina
+languages.zh=\u010d\u00ednsky
+languages.my=barm\u0161tina
+languages.an=aragon\u0161tina
+languages.am=amhar\u0161tina
+languages.ak=akan\u0161tina
+languages.za=zhuang
+languages.mt=malt\u0161tina
+languages.ms=malaj\u0161tina
+languages.mr=marathi
+languages.af=afrik\u00e1n\u0161tina
+languages.ae=avest\u00e1n\u0161tina
+languages.haw=havajsk\u00fd
+languages.mo=moldav\u0161tina
+languages.mn=mongol\u0161tina
+languages.en_US=angli\u010dtina (USA)
+languages.ab=abch\u00e1z\u0161tina
+languages.ml=malabar\u0161tina
+languages.aa=afar\u0161tina
+languages.mk=makedon\u0161tina
+languages.mi=maor\u0161tina
+languages.mg=malga\u0161tina
+languages.yo=yoruba
+languages.tlh=klingon\u0161tina
+languages.yi=jidi\u0161
+languages.lv=loty\u0161tina
+languages.lt=litev\u0161tina
+languages.lo=lao\u0161tina
+languages.bal=bal\u00fa\u010d\u0161tina
+languages.ln=lingal\u0161tina
+languages.fr_CA=francouzsky (Kanada)
index 612de13b3e33a18fe8b6ceb439dd7e574d5f60a5..b21854c701dfa326aca6e4bab1ef992dcadfddac 100644 (file)
@@ -5,6 +5,7 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.INR=Rwp\u00ee India
 currenciesDisplayName.JPY=Yen Siapan
 currenciesDisplayName.RUB=Rwbl Rwsia
@@ -14,10 +15,20 @@ currenciesDisplayName.GBP=Punt Sterling Prydain
 currenciesDisplayName.BRL=Real Brasil
 currenciesDisplayName.USD=Doler yr UDA
 currenciesSymbol.EUR=EUR
-shortMonths=Ion®Chwef®Mawrth®Ebrill®Mai®Meh®Gorff®Awst®Medi®Hyd®Tach®Rhag®®
-months=Ionawr®Chwefror®Mawrth®Ebrill®Mai®Mehefin®Gorffenaf®Awst®Medi®Hydref®Tachwedd®Rhagfyr®®
-shortWeekdays=®Sul®Llun®Maw®Mer®Iau®Gwen®Sad®
-weekdays=®Dydd Sul®Dydd Llun®Dydd Mawrth®Dydd Mercher®Dydd Iau®Dydd Gwener®Dydd Sadwrn®
+shortMonths=\u00aeChwe\u00aeMaw\u00aeEbr\u00ae\u00ae\u00aeGor\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u00ae\u00ae\u00ae\u00ae\u00ae\u00aeGorffennaf\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00ae\u00ae\u00ae\u00ae\u00ae\u00aeGwe\u00ae\u00ae
+weekdays=\u00aeDydd Sul\u00aeDydd Llun\u00aeDydd Mawrth\u00aeDydd Mercher\u00aeDydd Iau\u00aeDydd Gwener\u00aeDydd Sadwrn\u00ae
+eras=CC\u00aeOC\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=d MMM yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE, dd MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.TL=Timor-Leste
 territories.TK=Tokelau
 territories.TJ=Tajicistan
@@ -42,8 +53,8 @@ territories.GL=Yr Ynys Las
 territories.SV=El Salfador
 territories.062=De Canol Asia
 territories.ST=Sao Tome a Principe
-territories.061=Polynesia
 territories.GI=Gibraltar
+territories.061=Polynesia
 territories.GH=Ghana
 territories.SR=Swrinam
 territories.GF=Giana Ffrengig
@@ -66,13 +77,13 @@ territories.SC=Seychelles
 territories.SB=Ynysoedd Solomon
 territories.SA=Sawdi-Arabia
 territories.FR=Ffrainc
-territories.057=Micronesia
 territories.FO=Ynysoedd Ffar\u00f6e
+territories.057=Micronesia [057]
 territories.FM=Micronesia
 territories.RW=Rwanda
 territories.054=Melanesia
-territories.053=Awstralia a Seland Newydd
 territories.FK=Ynysoedd y Falkland
+territories.053=Awstralia a Seland Newydd
 territories.RU=Rwsia
 territories.FJ=Fiji
 territories.FI=Y Ffindir
@@ -81,11 +92,10 @@ territories.RE=R\u00e9union
 territories.ET=Ethiopia
 territories.ES=Sbaen
 territories.ER=Eritrea
-territories.833=Ynys Manaw
 territories.EH=Gorllewin Sahara
 territories.EG=Yr Aifft
-territories.830=Ynysoedd y Sianel
 territories.EE=Estonia
+territories.830=Ynysoedd y Sianel
 territories.QO=Ynysoedd Pellenig y De
 territories.EC=Ecwador
 territories.DZ=Algeria
@@ -93,8 +103,8 @@ territories.QA=Qatar
 territories.039=De Ewrop
 territories.DO=Y Weriniaeth Ddominicaidd
 territories.PY=Paraguay
-territories.035=De ddwyrain Asia
 territories.DM=Dominica
+territories.035=De ddwyrain Asia
 territories.PW=Palau
 territories.DK=Denmarc
 territories.DJ=Djibouti
@@ -124,8 +134,8 @@ territories.CN=Tseina
 territories.CM=Y Camer\u0175n
 territories.CL=Chile
 territories.CK=Ynysoedd Cook
-territories.CI=C\u00f4te d\u2019Ivoire
 territories.021=Gogledd America
+territories.CI=C\u00f4te d\u2019Ivoire
 territories.CH=Y Swistir
 territories.CG=Congo
 territories.CF=Gweriniaeth Canol Affrica
@@ -141,19 +151,19 @@ territories.BT=Bhwtan
 territories.BS=Y Bahamas
 territories.BR=Brasil
 territories.019=Americas
-territories.018=De Affrica
+territories.018=De Affrica [018]
 territories.NZ=Seland Newydd
-territories.BO=Bolifia
 territories.017=Canol Affrica
+territories.BO=Bolifia
 territories.BN=Brunei
-territories.BM=Bermwda
 territories.015=Gogledd Affrica
+territories.BM=Bermwda
 territories.014=Dwyrain Affrica
 territories.013=Canolbarth America
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Gorllewin Affrica
+territories.BI=Burundi
 territories.BH=Bahrain
 territories.NR=Nawrw
 territories.BG=Bwlgaria
@@ -180,15 +190,15 @@ territories.AU=Awstralia
 territories.AT=Awstria
 territories.AS=Samoa Americanaidd
 territories.AR=Yr Ariannin
-territories.009=Oceania
 territories.AQ=Antarctica
+territories.009=Oceania
 territories.MZ=Mozambique
 territories.AO=Angola
 territories.MY=Malaysia
 territories.AN=Ynysoedd Carib\u00ee yr Iseldiroedd
 territories.MX=Mecsico
-territories.005=De America
 territories.AM=Armenia
+territories.005=De America
 territories.MW=Malawi
 territories.AL=Albania
 territories.MV=Maldives
@@ -196,8 +206,8 @@ territories.ZA=De Affrica
 territories.MU=Mawrisiws
 territories.002=Affrica
 territories.MT=Malta
-territories.001=Y Byd
 territories.AI=Anguilla
+territories.001=Y Byd
 territories.MS=Montserrat
 territories.MR=Mawritania
 territories.AG=Antigwa a Barbuda
@@ -266,6 +276,7 @@ territories.UZ=Wsbecistan
 territories.IO=Tiriogaeth Cefnfor India Prydain
 territories.UY=Uruguay
 territories.IN=India
+territories.IM=Ynys Manaw
 territories.IL=Israel
 territories.US=Yr Unol Daleithiau
 territories.IE=Iwerddon
@@ -287,15 +298,108 @@ territories.TR=Twrci
 territories.TO=Tonga
 territories.TN=Tiwnisia
 territories.TM=Tyrcmenistan
-languages.zh=Tseineeg
+languages.es=Sbaeneg
+languages.ku=Cwrdeg
+languages.eo=Esperanto
 languages.en=Saesneg
-languages.ru=Rwsieg
-languages.hi=Hindi
+languages.el=Groeg
+languages.ko=Cor\u00ebeg
+languages.kn=Kannada
+languages.km=Cambodieg
+languages.ka=Georgeg
+languages.jv=Jafanaeg
+languages.fil=Tagalog
+languages.pt=Portiwgaleg
+languages.ps=Pashto
+languages.de=Almaeneg
+languages.pl=Pwyleg
+languages.da=Daneg
+languages.tlh=Klingon
+languages.ja=Japanaeg
+languages.vi=Fietnameg
 languages.cy=Cymraeg
-languages.ar=Arabeg
+languages.pa=Pwnjabi
+languages.cs=Tsiec
 languages.it=Eidaleg
+languages.is=Islandeg
+languages.uz=Wsbeceg
+languages.or=Oriya
+languages.ur=Urdu
+languages.ca=Catalaneg
+languages.ie=Interlingue
+languages.id=Indonesieg
+languages.uk=Wcreineg
+languages.ia=Interlingua
+languages.oc=Ocsitaneg
+languages.ug=Uighur
+languages.hy=Armeneg
+languages.bs=Bosnieg
+languages.br=Llydaweg
+languages.hu=Hwngareg
+languages.bn=Bengali; Bangla
+languages.hr=Croateg
+languages.tw=Twi
+languages.bh=Bihari
+languages.bg=Bwlgareg
+languages.no=Norwyeg
+languages.be=Belarwsiyn
+languages.nn=Norwyeg (Nynorsk)
+languages.hi=Hindi
+languages.tr=Twrceg
+languages.nl=Iseldireg
+languages.zu=Zwlw
+languages.he=Hebraeg
+languages.tk=Tyrcmeneg
+languages.ne=Nepali
+languages.az=Azerbaijani
+languages.ti=Tigrinya
+languages.th=Tai
+languages.te=Telugu
+languages.zh=Tsiein\u00ebeg
+languages.as=Asameg
+languages.ar=Arabeg
+languages.ta=Tamil
+languages.gu=Gwjarati
+languages.am=Amhareg
+languages.mt=Malteseg
+languages.ms=Malai
+languages.gn=Guarani
+languages.sw=Swahili
+languages.mr=Marathi
+languages.sv=Swedeg
+languages.gl=Galiseg
+languages.su=Sundaneg
+languages.af=Affricaneg
+languages.st=Sesotheg
+languages.mn=Mongoleg
+languages.sr=Serbeg
+languages.sq=Albaneg
+languages.ml=Malayalam
+languages.mk=Macedoneg
+languages.so=Somaleg
+languages.gd=Gaeleg yr Alban
+languages.sl=Slofeneg
+languages.sk=Slofaceg
+languages.ga=Gwyddeleg
+languages.si=Sinhaleg
+languages.sh=Serbo-Croateg
+languages.yi=Iddew-Almaeneg
+languages.sd=Sindhi
+languages.fy=Ffrisieg
+languages.sa=Sansgrit
 languages.fr=Ffrangeg
-languages.de=Almaeneg
-languages.es=Sbaeneg
-languages.ja=Siapaneeg
-languages.pt=Portiwgaleg
+languages.lv=Latfieg
+languages.lt=Lithwaneg
+languages.fo=Ffaroeg
+languages.ru=Rwsieg
+languages.lo=Laoeg
+languages.ln=Lingala
+languages.fi=Ffineg
+languages.ro=Rwmaneg
+languages.fa=Persieg
+languages.und=anh
+languages.la=Lladin
+languages.xh=Xhosa
+languages.eu=Basgeg
+languages.ky=Kyrgyz
+languages.et=Estoneg
index 10efddee20302e17a0b32b187831b1bd1c26c475..61d947b96390d190afe58b2ce1a636bab52c8417 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
-groupingSeparator=.
-localPatternChars=GuMtkHmsSEDFwWahKzUeygAZ
-currenciesDisplayName.YDD=Yemenitisk dinar
-currenciesDisplayName.TWD=Ny taiwansk dollar
-currenciesDisplayName.KES=Kenyansk shilling
+groupingSeparator=,
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+localPatternChars=GuMtkHmsSEDFwWahKzUeygAZvcL
+currenciesDisplayName.YDD=Yemenitiske dinarer
+currenciesDisplayName.KES=Kenyanske shilling
+currenciesDisplayName.TWD=Taiwanske dollar
+currenciesDisplayName.LKR=Srilankanske rupees
 currenciesDisplayName.BYB=Ny hviderussisk rubel (1994-1999)
-currenciesDisplayName.LKR=Srilankansk rupee
+currenciesDisplayName.TJS=Tadsjikiske somoni
 currenciesDisplayName.RWF=Rwandisk franc
-currenciesDisplayName.TJS=Tadsjikisk somoni
-currenciesDisplayName.SDP=Sudansk pund
-currenciesDisplayName.TJR=Tadsjikisk rubel
 currenciesDisplayName.ERN=Eritreisk nakfa
-currenciesDisplayName.GRD=Gr\u00e6sk drachma
-currenciesDisplayName.IEP=Irsk pund
-currenciesDisplayName.ARS=Argentinsk peso
+currenciesDisplayName.TJR=Tadsjikisk rubel
+currenciesDisplayName.SDP=Sudansk pund
+currenciesDisplayName.GRD=Gr\u00e6ske drakmer
+currenciesDisplayName.AFN=Afghani
+currenciesDisplayName.IEP=Irske pund
+currenciesDisplayName.ARS=Argentinske pesos
+currenciesDisplayName.SDG=Sudanesisk pund
+currenciesDisplayName.ARP=Argentinske pesos (ARP)
 currenciesDisplayName.SDD=Sudansk dinar
-currenciesDisplayName.ARP=Argentinsk peso (1983-1985)
-currenciesDisplayName.GEL=Georgisk lari
-currenciesDisplayName.GEK=Georgisk kupon larit
-currenciesDisplayName.CRC=Costaricansk colon
+currenciesDisplayName.GEL=Georgiske lari
+currenciesDisplayName.GEK=Georgiske kupon larit
+currenciesDisplayName.AFA=Afghani (1927-2002)
+currenciesDisplayName.CRC=Costaricanske colon
 currenciesDisplayName.FKP=Pund fra Falklands\u00f8erne
-currenciesDisplayName.EEK=Estisk kroon
-currenciesDisplayName.MDL=Moldovisk leu
-currenciesDisplayName.ARA=Argentinsk austral
-currenciesDisplayName.IQD=Irakisk dinar
+currenciesDisplayName.EEK=Estiske kroon
+currenciesDisplayName.MDL=Moldoviske leu
+currenciesDisplayName.HKD=Hongkong dollar
+currenciesDisplayName.IQD=Irakiske dinarer
+currenciesDisplayName.ARA=Argentinske austral
 currenciesDisplayName.SCR=Seychellisk rupee
 currenciesDisplayName.VUV=Vanuaisk vatu
-currenciesDisplayName.DKK=Dansk krone
-currenciesDisplayName.KPW=Nordkoreansk won
+currenciesDisplayName.KPW=Nordkoreanske won
+currenciesDisplayName.DKK=Danske kroner
+currenciesDisplayName.IDR=Indonesiske rupiah
 currenciesDisplayName.GQE=\u00c6kvatorialguineask ekwele guineana
-currenciesDisplayName.IDR=Indonesisk pupiah
-currenciesDisplayName.LVR=Lettisk rubel
-currenciesDisplayName.SOS=Somalisk shilling
+currenciesDisplayName.SOS=Somaliske shilling
+currenciesDisplayName.LVR=Lettiske rubler
 currenciesDisplayName.AED=Dirham fra de Forenede Arabiske Emirater
+currenciesDisplayName.LVL=Lettiske lat
 currenciesDisplayName.BWP=Botswansk pula
-currenciesDisplayName.LVL=Lettisk lats
 currenciesDisplayName.RUR=Russisk rubel (1991-1998)
-currenciesDisplayName.NIO=Nicaraguansk cordoba oro
-currenciesDisplayName.ADP=Andorransk peseta
-currenciesDisplayName.FJD=Fijiansk dollar
+currenciesDisplayName.NIO=Nicaraguanske cordoba oro
 currenciesDisplayName.MOP=Macaosk pataca
-currenciesDisplayName.RUB=Russisk rubel
+currenciesDisplayName.FJD=Fijianske dollar
+currenciesDisplayName.ADP=Andorranske pesetas
+currenciesDisplayName.RUB=Russiske rubler
 currenciesDisplayName.CDF=Congolesisk franc congolais
-currenciesDisplayName.NIC=Nicaraguansk cordoba
+currenciesDisplayName.NIC=Nicaraguanske cordoba
 currenciesDisplayName.DJF=Djiboutisk franc
+currenciesDisplayName.UZS=Usbekiske sum
 currenciesDisplayName.SBD=Salomonsk dollar
-currenciesDisplayName.UZS=Usbekisk sum
 currenciesDisplayName.ECS=Ecuadoriansk sucre
-currenciesDisplayName.PHP=Filippinsk peso
-currenciesDisplayName.THB=Thailandsk baht
-currenciesDisplayName.LUF=Luxembourgsk franc
-currenciesDisplayName.FIM=Finsk mark
+currenciesDisplayName.THB=Thailandske baht
+currenciesDisplayName.PHP=Filippinske pesos
+currenciesDisplayName.LUF=Luxembourgske franc
+currenciesDisplayName.FIM=Finske mar
 currenciesDisplayName.TTD=Dollar fra Trinidad og Tobago
 currenciesDisplayName.SZL=Swazilandsk lilangeni
 currenciesDisplayName.MNT=Mongolsk tugrik
-currenciesDisplayName.SAR=Saudisk riyal
 currenciesDisplayName.UAK=Ukrainsk karbovanetz
-currenciesDisplayName.UAH=Ukrainsk grynia
-currenciesDisplayName.HUF=Ungarsk forint
-currenciesDisplayName.COP=Colombiansk peso
+currenciesDisplayName.SAR=Saudiske riyal
+currenciesDisplayName.UAH=Ukrainske grynia
+currenciesDisplayName.HUF=Ungarske forint
 currenciesDisplayName.QAR=Qatarsk rial
-currenciesDisplayName.LTT=Litauisk talonas
-currenciesDisplayName.PTE=Portugisisk escudo
-currenciesDisplayName.AOR=Angolansk kwanza reajustado (1995-1999)
+currenciesDisplayName.COP=Colombianske pesos
+currenciesDisplayName.LTT=Litauiske talonas
+currenciesDisplayName.PTE=Portugisiske escudo
 currenciesDisplayName.UYU=Uruguaysk peso uruguayo
-currenciesDisplayName.GBP=Britisk pund
-currenciesDisplayName.BIF=Burundisk franc
-currenciesDisplayName.INR=Indisk rupee
-currenciesDisplayName.ZRZ=Zairisk naire
-currenciesDisplayName.AON=Ny angolansk kwanza (1990-2000)
-currenciesDisplayName.LTL=Litauisk lita
+currenciesDisplayName.AOR=Angolansk kwanza reajustado (1995-1999)
+currenciesDisplayName.GBP=Britiske pund sterling
+currenciesDisplayName.ZRZ=Zairiske zaire
+currenciesDisplayName.INR=Indiske rupees
+currenciesDisplayName.BIF=Burundiske franc
 currenciesDisplayName.XFU=Fransk UIC-franc
-currenciesDisplayName.KZT=Kasakhisk tenge
-currenciesDisplayName.MZM=Mozambiquisk metical
+currenciesDisplayName.MZN=Ny mozambiquisk metical
+currenciesDisplayName.LTL=Litauiske lita
+currenciesDisplayName.AON=Ny angolansk kwanza (1990-2000)
 currenciesDisplayName.UYP=Uruguaysk peso (1975-1993)
-currenciesDisplayName.AOK=Angolansk kwanza (1977-1990)
+currenciesDisplayName.MZM=Gammel mozambiquisk metical
+currenciesDisplayName.KZT=Kasakhiske tenge
+currenciesDisplayName.AOK=Angolanske kwanza (AOK)
+currenciesDisplayName.GNS=Guineanske syli
 currenciesDisplayName.BUK=Burmesisk kyat
-currenciesDisplayName.GNS=Guineansk syli
 currenciesDisplayName.XFO=Fransk guldfranc
 currenciesDisplayName.PGK=Papuansk kina
-currenciesDisplayName.SYP=Syrisk pund
+currenciesDisplayName.SYP=Syriske pund
+currenciesDisplayName.OMR=Omanske rial
 currenciesDisplayName.MZE=Mozambiquisk escudo
-currenciesDisplayName.OMR=Omansk rial
-currenciesDisplayName.NGN=Nigeriansk naira
 currenciesDisplayName.ZRN=Ny zairisk zaire
-currenciesDisplayName.AOA=Angolansk kwanza
+currenciesDisplayName.NGN=Nigerianske naira
 currenciesDisplayName.CNY=Kinesisk yuan renminbi
-currenciesDisplayName.MAF=Marokkansk franc
-currenciesDisplayName.GNF=Guineansk franc
-currenciesDisplayName.HTG=Haitisk gourde
-currenciesDisplayName.MAD=Marokkansk dirham
-currenciesDisplayName.TRY=Ny tyrkisk lira
-currenciesDisplayName.MMK=Myanmarsk kyat
-currenciesDisplayName.MYR=Malaysisk ringgit
-currenciesDisplayName.LSL=Lesothisk loti
-currenciesDisplayName.BHD=Bahrainsk dinar
+currenciesDisplayName.AOA=Angolanske kwanza
+currenciesDisplayName.MAF=Marokkanske franc
+currenciesDisplayName.RSD=Ny serbisk dinar
+currenciesDisplayName.GNF=Guineanske franc
+currenciesDisplayName.MAD=Marokkanske dirham
+currenciesDisplayName.HTG=Haitiske gourde
+currenciesDisplayName.TRY=Tyrkiske lira
+currenciesDisplayName.MMK=Myanmarske kyat
+currenciesDisplayName.MYR=Malaysiske ringgit
+currenciesDisplayName.LSL=Lesothiske loti
 currenciesDisplayName.SLL=Sierraleonsk leone
+currenciesDisplayName.BHD=Bahrainske dinarer
 currenciesDisplayName.BTN=Bhutansk ngultrum
-currenciesDisplayName.TRL=Tyrkisk lira
-currenciesDisplayName.KMF=Comorisk franc
-currenciesDisplayName.ANG=Gylden fra De Nederlandske Antiller
-currenciesDisplayName.CZK=Tjekkisk koruna
-currenciesDisplayName.AZM=Aserbajdsjansk manat
+currenciesDisplayName.TRL=Tyrkiske lire
+currenciesDisplayName.KMF=Comoriske franc
+currenciesDisplayName.CZK=Tjekkiske koruna
+currenciesDisplayName.ANG=Gylden fra De Hollandske Antiller
+currenciesDisplayName.AZN=Aserbajdsjanske manat
+currenciesDisplayName.AZM=Aserbajdsjansk manat 1993-2006
 currenciesDisplayName.KYD=Dollar fra Cayman\u00f8erne
-currenciesDisplayName.GMD=Gambisk dalasi
-currenciesDisplayName.BGN=Ny Bulgarsk lev
-currenciesDisplayName.CAD=Canadisk dollar
-currenciesDisplayName.BGL=Bulgarsk hard lev
+currenciesDisplayName.GMD=Gambiske dalasi
+currenciesDisplayName.VEF=Venezuelansk bolivar fuerte
+currenciesDisplayName.BGN=Ny bulgarske lev
+currenciesDisplayName.CAD=Canadiske dollar
+currenciesDisplayName.BGL=Bulgarske hard lev
 currenciesDisplayName.VEB=Venezuelansk bolivar
-currenciesDisplayName.MLF=Malisk franc
-currenciesDisplayName.ILS=Ny israelsk shekel
+currenciesDisplayName.MLF=Maliske franc
 currenciesDisplayName.MXP=Mexicansk silver peso (1861-1992)
+currenciesDisplayName.ILS=Nye israelske shekel
 currenciesDisplayName.PES=Peruviansk sol
-currenciesDisplayName.GYD=Guyansk dollar
-currenciesDisplayName.MXN=Mexicansk peso
-currenciesDisplayName.ILP=Israelsk pund
+currenciesDisplayName.MXN=Mexicanske pesos
+currenciesDisplayName.GYD=Guyanske dollar
+currenciesDisplayName.ILP=Israelske pund
+currenciesDisplayName.CYP=Cypriotiske pund
 currenciesDisplayName.SKK=Slovakisk koruna
-currenciesDisplayName.CYP=Cypriotisk pund
 currenciesDisplayName.PEN=Peruviansk sol nuevo
-currenciesDisplayName.LRD=Liberisk dollar
-currenciesDisplayName.PEI=Peruviansk inti
-currenciesDisplayName.AMD=Armensk dram
-currenciesDisplayName.BSD=Bahamansk dollar
-currenciesDisplayName.HRK=Kroatisk kuna
-currenciesDisplayName.CLP=Chilensk peso
-currenciesDisplayName.HRD=Kroatisk dinar
+currenciesDisplayName.LRD=Liberiske dollar
+currenciesDisplayName.PEI=Peruvianske inti
+currenciesDisplayName.AMD=Armenske dram
+currenciesDisplayName.BSD=Bahamanske dollar
+currenciesDisplayName.HRK=Kroatiske kuna
+currenciesDisplayName.HRD=Kroatiske dinarer
+currenciesDisplayName.CLP=Chilenske pesos
 currenciesDisplayName.XPF=CFP-franc
-currenciesDisplayName.FRF=Fransk franc
-currenciesDisplayName.BRR=Brasiliansk cruzeiro
-currenciesDisplayName.MKD=Makedonsk denar
+currenciesDisplayName.FRF=Franske franc
+currenciesDisplayName.BRR=Brasilianske cruzeiro
+currenciesDisplayName.MKD=Makedonske denarer
 currenciesDisplayName.CLF=Chilensk unidades de fomento
-currenciesDisplayName.ALL=Albansk lek
 currenciesDisplayName.BRN=Brasiliansk cruzado novo
-currenciesDisplayName.MWK=Malawisk kwacha
-currenciesDisplayName.BRL=Brasiliansk real
+currenciesDisplayName.ALL=Albanske lek
+currenciesDisplayName.MWK=Malawiske kwacha
+currenciesDisplayName.BRL=Brasilianske real
 currenciesDisplayName.TPE=Escudo fra Timor
 currenciesDisplayName.BRE=Brasiliansk cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brasiliansk cruzado
+currenciesDisplayName.BRC=Brasilianske cruzado
 currenciesDisplayName.BRB=Brasiliansk cruzeiro novo (1967-1986)
-currenciesDisplayName.DEM=Tysk mark
-currenciesDisplayName.KWD=Kuwaitisk dinar
-currenciesDisplayName.XCD=\u00d8st-karaibisk dollar
-currenciesDisplayName.NPR=Nepalesisk rupee
-currenciesDisplayName.GWP=Guineansk peso
-currenciesDisplayName.YUN=Jugoslavisk convertible dinar
-currenciesDisplayName.SVC=Salvadoransk colon
+currenciesDisplayName.DEM=D-mark
+currenciesDisplayName.KWD=Kuwaitiske dinarer
+currenciesDisplayName.XCD=\u00d8stkaribiske dollar
+currenciesDisplayName.NPR=Nepalesiske rupees
+currenciesDisplayName.GWP=Guinea-Bissau-pesos
+currenciesDisplayName.YUN=Jugoslavisk konvertibel dinar
+currenciesDisplayName.SVC=Salvadoranske colon
 currenciesDisplayName.YUM=Jugoslavisk noviy dinar
-currenciesDisplayName.BEL=Belgisk franc (financial)
-currenciesDisplayName.SIT=Slovensk tolar
-currenciesDisplayName.JPY=Japansk yen
-currenciesDisplayName.MVR=Maldivisk rufiyaa
-currenciesDisplayName.GWE=Portugisisk guinea escudo
-currenciesDisplayName.BEF=Belgisk franc
-currenciesDisplayName.TOP=Tongask pa\u02bbanga
+currenciesDisplayName.BEL=Belgiske franc (financial)
+currenciesDisplayName.SIT=Slovenske tolar
+currenciesDisplayName.JPY=Japanske yen
+currenciesDisplayName.XOF=CFA-franc BCEAO
+currenciesDisplayName.MVR=Maldiviske rufiyaa
+currenciesDisplayName.BEF=Belgiske franc
+currenciesDisplayName.GWE=Portugisiske guinea escudo
+currenciesDisplayName.TOP=Tongaske pa\u02bbanga
 currenciesDisplayName.YUD=Jugoslavisk hard dinar
-currenciesDisplayName.BEC=Belgisk franc (konvertibel)
-currenciesDisplayName.SUR=Sovjetisk rubel
-currenciesDisplayName.ROL=Rum\u00e6nsk leu
-currenciesDisplayName.DDM=\u00d8sttysk mark
-currenciesDisplayName.BDT=Bangladeshisk taka
-currenciesDisplayName.AWG=Arubansk gylden
-currenciesDisplayName.NOK=Norsk krone
-currenciesDisplayName.MUR=Mauritisk rupee
-currenciesDisplayName.ZAR=Sydafrikansk rand
+currenciesDisplayName.BEC=Belgiske franc (konvertible)
+currenciesDisplayName.SUR=Sovjetiske rubler
+currenciesDisplayName.RON=Rum\u00e6nsk leu
+currenciesDisplayName.ROL=Gammel rum\u00e6nsk leu
+currenciesDisplayName.BDT=Bangladeshiske taka
+currenciesDisplayName.DDM=\u00d8sttyske mark
+currenciesDisplayName.AWG=Arubanske gylden
+currenciesDisplayName.NOK=Norske kroner
+currenciesDisplayName.MUR=Mauritiske rupees
+currenciesDisplayName.ZAR=Sydafrikanske rand
 currenciesDisplayName.SHP=Pund fra Saint Helena
 currenciesDisplayName.XAU=Guld
 currenciesDisplayName.ZAL=Sydafrikansk rand (financial)
-currenciesDisplayName.VND=Vietnamesisk dong
-currenciesDisplayName.TZS=Tanzanisk shilling
-currenciesDisplayName.GIP=Gibraltarisk pund
-currenciesDisplayName.TND=Tunesisk dinar
-currenciesDisplayName.CVE=Kapverdisk escudo
-currenciesDisplayName.UGX=Ugandisk shilling
-currenciesDisplayName.ZMK=Zambisk kwacha
-currenciesDisplayName.JOD=Jordansk dinar
+currenciesDisplayName.VND=Vietnamesiske dong
+currenciesDisplayName.TZS=Tanzaniske shilling
+currenciesDisplayName.GIP=Gibraltariske pund
+currenciesDisplayName.TND=Tunesiske dinarer
+currenciesDisplayName.CVE=Kapverdiske escudos
+currenciesDisplayName.UGX=Ugandiske shilling
+currenciesDisplayName.ZMK=Zambiske kwacha
+currenciesDisplayName.JOD=Jordanske dinarer
 currenciesDisplayName.XAF=Beninsk CFA-franc
-currenciesDisplayName.LBP=Libanesisk pund
+currenciesDisplayName.LBP=Libanesiske pund
 currenciesDisplayName.UGS=Ugandisk shilling (1966-1987)
 currenciesDisplayName.STD=Dobra fra Sao Tome og Principe
-currenciesDisplayName.WST=Samoansk tala
-currenciesDisplayName.KHR=Cambodjansk riel
+currenciesDisplayName.WST=Samoanske tala
+currenciesDisplayName.KHR=Cambodjanske riel
+currenciesDisplayName.DOP=Dominikanske pesos
 currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Dominikansk peso
 currenciesDisplayName.BOV=Boliviansk mvdol
-currenciesDisplayName.MTP=Maltesisk pund
+currenciesDisplayName.MTP=Maltesiske pund
 currenciesDisplayName.USS=Amerikansk dollar (samme dag)
-currenciesDisplayName.BOP=Boliviansk peso
-currenciesDisplayName.MTL=Maltesisk lira
-currenciesDisplayName.CUP=Cubansk peso
+currenciesDisplayName.BOP=Bolivianske pesos
+currenciesDisplayName.CUP=Cubanske pesos
+currenciesDisplayName.MTL=Maltesiske lira
 currenciesDisplayName.TMM=Turkmensk manat
 currenciesDisplayName.USN=Amerikansk dollar (n\u00e6ste dag)
-currenciesDisplayName.SGD=Singaporeansk dollar
-currenciesDisplayName.NZD=New Zealandsk dollar
-currenciesDisplayName.USD=Amerikanske dollar
+currenciesDisplayName.GHS=Ghanesisk cedi
+currenciesDisplayName.SGD=Singaporeanske dollar
+currenciesDisplayName.NZD=New Zealandske dollar
+currenciesDisplayName.USD=Amerikanske dollars
+currenciesDisplayName.BOB=Bolivianske boliviano
 currenciesDisplayName.HNL=Honduransk lempira
-currenciesDisplayName.ITL=Italiensk lira
+currenciesDisplayName.ITL=Italienske lire
 currenciesDisplayName.PAB=Panamansk balboa
 currenciesDisplayName.GTQ=Guatemalansk quetzal
-currenciesDisplayName.LAK=Laotisk kip
-currenciesDisplayName.GHC=Ghanesisk cedi
+currenciesDisplayName.XXX=Ukendt eller ugyldig valuta
 currenciesDisplayName.AUD=Australsk dollar
-currenciesDisplayName.NAD=Namibisk dollar
-currenciesDisplayName.KGS=Kirgisisk som
-currenciesDisplayName.MGF=Madagaskisk franc
-currenciesDisplayName.CHF=Schweizisk franc
-currenciesDisplayName.BBD=Barbadisk dollar
-currenciesDisplayName.MGA=Madagaskisk ariary
-currenciesDisplayName.PYG=Paraguaysk guarani
+currenciesDisplayName.GHC=Ghanesisk cedi 1979-2007
+currenciesDisplayName.LAK=Laotiske kip
+currenciesDisplayName.NAD=Namibiske dollar
+currenciesDisplayName.KGS=Kirgisiske som
+currenciesDisplayName.MGF=Madagaskiske franc
+currenciesDisplayName.BBD=Barbadiske dollar
+currenciesDisplayName.CHF=Schweiziske franc
+currenciesDisplayName.MGA=Madagaskiske ariary
+currenciesDisplayName.PYG=Paraguayske guarani
 currenciesDisplayName.PLZ=Polsk zloty (1950-1995)
-currenciesDisplayName.YER=Yemenitisk rial
-currenciesDisplayName.ATS=\u00d8strigsk schilling
-currenciesDisplayName.ETB=Etiopisk birr
-currenciesDisplayName.BND=Bruneisk dollar
-currenciesDisplayName.JMD=Jamaicansk dollar
-currenciesDisplayName.EGP=Egyptisk pund
-currenciesDisplayName.PLN=Polsk zloty
-currenciesDisplayName.DZD=Algerisk dinar
+currenciesDisplayName.YER=Yemenitiske rial
+currenciesDisplayName.ATS=\u00d8strigsk shilling
+currenciesDisplayName.ETB=Etiopiske birr
+currenciesDisplayName.BND=Bruneiske dollar
+currenciesDisplayName.EGP=Egyptiske pund
+currenciesDisplayName.JMD=Jamaicanske dollar
+currenciesDisplayName.PLN=Polske zloty
+currenciesDisplayName.DZD=Algeriske dinarer
 currenciesDisplayName.ISK=Islandsk krona
 currenciesDisplayName.SRG=Surinamsk guilder
-currenciesDisplayName.LYD=Libysk dinar
+currenciesDisplayName.LYD=Libyske dinarer
+currenciesDisplayName.SRD=Surinamsk dollar
+currenciesDisplayName.BAM=Bosnien-Hercegovinske konvertible mark
 currenciesDisplayName.BZD=Belizisk dollar
-currenciesDisplayName.BAM=Bosnien-Hercegovinsk konvertibel mark
-currenciesDisplayName.ESP=Spansk peseta
-currenciesDisplayName.KRW=Sydkoreansk won
-currenciesDisplayName.NLG=Hollandsk guilder
+currenciesDisplayName.ESP=Spanske pesetas
+currenciesDisplayName.KRW=Sydkoreanske won
+currenciesDisplayName.NLG=Hollandske gylden
 currenciesDisplayName.MRO=Mauritansk ouguiya
-currenciesDisplayName.BAD=Bosnien-Hercegovinsk dinar
-currenciesDisplayName.ZWD=Zimbabwisk dollar
-currenciesDisplayName.SEK=Svensk krona
-currenciesDisplayName.CSK=Tjekkoslovakisk hard koruna
+currenciesDisplayName.BAD=Bosnien-Hercegovinske dinarer
+currenciesDisplayName.ZWD=Zimbabwiske dollar
+currenciesDisplayName.SEK=Svenske kroner
+currenciesDisplayName.CSK=Tjekkoslovakiske hard koruna
 currenciesDisplayName.BYR=Hviderussisk rubel
-currenciesDisplayName.IRR=Iransk rial
-currenciesDisplayName.PKR=Pakistansk rupee
-currenciesDisplayName.BMD=Bermudansk dollar
-currenciesSymbol.BGL=lev
+currenciesDisplayName.IRR=Iranske rial
+currenciesDisplayName.PKR=Pakistanske rupees
+currenciesDisplayName.BMD=Bermudanske dollar
+currenciesDisplayName.CSD=Serbisk dinar
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=SOS
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
+currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
 currenciesSymbol.DKK=kr
 currenciesSymbol.TZS=T Sh
 currenciesSymbol.SBD=SI$
-currenciesSymbol.NOK=NKr
+currenciesSymbol.NOK=NOK
 currenciesSymbol.UGX=U Sh
 currenciesSymbol.BEF=BF
 currenciesSymbol.TTD=TT$
@@ -281,26 +306,28 @@ currenciesSymbol.FJD=F$
 currenciesSymbol.UYU=Ur$
 currenciesSymbol.BDT=Tk
 currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
 currenciesSymbol.DJF=DF
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
 currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
 currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
+currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -309,12 +336,12 @@ currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
 currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.CNY=Y
 currenciesSymbol.KMF=CF
-currenciesSymbol.SEK=SKr
+currenciesSymbol.SEK=SEK
 currenciesSymbol.AUD=$A
 currenciesSymbol.LYD=LD
 currenciesSymbol.JMD=J$
@@ -324,10 +351,10 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.ANG=NA f.
@@ -336,25 +363,24 @@ currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=jan®feb®mar®apr®maj®jun®jul®aug®sep®okt®nov®dec®®
-months=januar®februar®marts®april®maj®juni®juli®august®september®oktober®november®december®®
-shortWeekdays=®s\u00f8n®man®tir®ons®tor®fre®l\u00f8r®
-weekdays=®s\u00f8ndag®mandag®tirsdag®onsdag®torsdag®fredag®l\u00f8rdag®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=f.Kr.®e.Kr.®
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januar\u00aefebruar\u00aemarts\u00aeapril\u00aemaj\u00aejuni\u00aejuli\u00aeaugust\u00aeseptember\u00aeoktober\u00aenovember\u00aedecember\u00ae\u00ae
+shortWeekdays=\u00aes\u00f8n\u00aeman\u00aetir\u00aeons\u00aetor\u00aefre\u00ael\u00f8r\u00ae
+weekdays=\u00aes\u00f8ndag\u00aemandag\u00aetirsdag\u00aeonsdag\u00aetorsdag\u00aefredag\u00ael\u00f8rdag\u00ae
+eras=f.Kr.\u00aee.Kr.\u00ae
+ampms=f.m.\u00aee.m.\u00ae
 shortDateFormat=dd/MM/yy
 mediumDateFormat=dd/MM/yyyy
 longDateFormat=d. MMM yyyy
-fullDateFormat=EEEE 'den' dd. MMM yyyy
-shortTimeFormat=H.mm
-mediumTimeFormat=H.mm.ss
-longTimeFormat=H.mm.ss z
-fullTimeFormat=H.mm.ss z
-zoneStrings=Europe/Paris®CET®Mellemeurop\u00e6isk normaltid®CEST®Mellemeurop\u00e6isk sommertid®©Pacific/Honolulu®HST®Hawaii-normaltid®HST®Hawaii-normaltid®©America/Denver®MST®Mountain-normaltid®MDT®Mountain-sommertid®©Asia/Jerusalem®IST®Israelsk normaltid®IDT®Israelsk sommertid®©America/Anchorage®AST®Alaska-normaltid®ADT®Alaska-sommertid®©Africa/Casablanca®GMT®Verdenstid®GMT®Verdenstid®©America/Phoenix®MST®Mountain-normaltid®MST®Mountain-normaltid®©America/Los_Angeles®PST®Pacific-normaltid®PDT®Pacific-sommertid®©America/Chicago®CST®Central-normaltid®CDT®Central-sommertid®©America/Halifax®AST®Atlantic-normaltid®ADT®Atlantic-sommertid®©America/St_Johns®CNT®Newfoundland-normaltid®CDT®Newfoundland-sommertid®©America/New_York®EST®Eastern-normaltid®EDT®Eastern-sommertid®©Asia/Shanghai®CTT®Kinesisk normaltid®CDT®Kinesisk normaltid®©Asia/Tokyo®JST®Japansk normaltid®JST®Japansk normaltid®©Europe/Bucharest®EET®\u00d8steurop\u00e6isk normaltid®EEST®\u00d8steurop\u00e6isk sommertid®©America/Indianapolis®EST®Eastern-normaltid®EST®Eastern-normaltid®©
-territories.TL=Timor-Leste
+fullDateFormat=EEEE 'den' d. MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00ae\u00f8steurop\u00e6isk normaltid\u00ae\u00ae\u00f8steurop\u00e6isk sommertid\u00ae\u00ae\u00a9Africa_Southern\u00aesydafrikansk normaltid\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00aeCentralaustralsk normaltid\u00ae\u00aeCentralaustralsk sommertid\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u00d8stindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Aqtobe\u00aeAqtobe-tid\u00ae\u00aeAqtobe-sommertid\u00ae\u00ae\u00a9New_Zealand\u00aeNewzealandsk normaltid\u00ae\u00aeNewzealandsk sommertid\u00ae\u00ae\u00a9Noronha\u00aeFernando de Noronha-tid\u00ae\u00aeFernando de Noronha-sommertid\u00ae\u00ae\u00a9America_Mountain\u00aeMountain-normaltid\u00ae\u00aeMountain-sommertid\u00ae\u00ae\u00a9Hong_Kong\u00aeHongkong-tid\u00ae\u00aeHongkong-sommertid\u00ae\u00ae\u00a9Greenland_Western\u00aeVestgr\u00f8nlandsk tid\u00ae\u00aeVestgr\u00f8nlandsk sommertid\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk tid\u00ae\u00aeAktyubinsk sommertid\u00ae\u00ae\u00a9Paraguay\u00aeParaguayansk tid\u00ae\u00aeParaguayansk sommertid\u00ae\u00ae\u00a9Almaty\u00aeAlmaty-tid\u00ae\u00aeAlmaty-sommertid\u00ae\u00ae\u00a9Ecuador\u00aeEcuadoriansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Syowa\u00aeSyowa-tid\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Western\u00aevestafrikansk tid\u00ae\u00aevestafrikansk sommertid\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHollandsk Guiana-tid\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundland-normaltid\u00ae\u00aeNewfoundland-sommertid\u00ae\u00ae\u00a9Uruguay\u00aeUruguayansk tid\u00ae\u00aeUruguayansk sommertid\u00ae\u00ae\u00a9Armenia\u00aeArmensk tid\u00ae\u00aeArmensk sommertid\u00ae\u00ae\u00a9Korea\u00aeKoreansk normaltid\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Central\u00aeCentralgr\u00f8nlandsk tid\u00ae\u00aeCentralgr\u00f8nlandsk sommertid\u00ae\u00ae\u00a9America_Pacific\u00aePacific-normaltid\u00ae\u00aePacific-sommertid\u00ae\u00ae\u00a9Yukon\u00aeYukon-normaltid\u00ae\u00aeYukon-sommertid\u00ae\u00ae\u00a9Davis\u00aeDavis-tid\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Central\u00aecentralafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Argentina\u00aeArgentinsk tid\u00ae\u00aeArgentinsk sommertid\u00ae\u00ae\u00a9Europe_Central\u00aemellemeurop\u00e6isk normaltid\u00ae\u00aemellemeurop\u00e6isk sommertid\u00ae\u00ae\u00a9Venezuela\u00aeVenezuelansk tid\u00ae\u00ae\u00ae\u00ae\u00a9India\u00aeIndisk normaltid\u00ae\u00ae\u00ae\u00ae\u00a9China\u00aeKinesisk normaltid\u00aeCST (Kina)\u00aeKinesisk sommertid\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u00f8stafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre- og Miquelon-normaltid\u00ae\u00aePierre- og Miquelon-sommertid\u00ae\u00ae\u00a9Indochina\u00aeIndokinesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeIsraelsk normaltid\u00aeIST (Israel)\u00aeIsraelsk sommertid\u00ae\u00ae\u00a9Colombia\u00aeColombiansk tid\u00ae\u00aeColombiansk sommertid\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u00d8stgr\u00f8nlandsk tid\u00ae\u00ae\u00d8stgr\u00f8nlandsk sommertid\u00ae\u00ae\u00a9Mawson\u00aeMawson-tid\u00ae\u00ae\u00ae\u00ae\u00a9Argentina_Western\u00aeVestargentinsk tid\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00aeAcre-tid\u00ae\u00aeAcre-sommertid\u00ae\u00ae\u00a9Europe_Western\u00aevesteurop\u00e6isk normaltid\u00ae\u00aevesteurop\u00e6isk sommertid\u00ae\u00ae\u00a9French_Guiana\u00aeFransk Guiana-tid\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeAfghansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeVestindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBering-normaltid\u00ae\u00aeBering-sommertid\u00ae\u00ae\u00a9Anadyr\u00aeAnadyr-tid\u00ae\u00aeAnadyr-sommertid\u00ae\u00ae\u00a9America_Eastern\u00aeEastern-normaltid\u00ae\u00aeEastern-sommertid\u00ae\u00ae\u00a9Cuba\u00aeCubansk normaltid\u00ae\u00aeCubansk sommertid\u00ae\u00ae\u00a9Brasilia\u00aeBrasiliansk tid\u00ae\u00aeBrasiliansk sommertid\u00ae\u00ae\u00a9Suriname\u00aeSurinam-tid\u00ae\u00ae\u00ae\u00ae\u00a9Bolivia\u00aeBoliviansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Aqtau\u00aeAqtau-tid\u00ae\u00aeAqtau-sommertid\u00ae\u00ae\u00a9Chile\u00aeChilensk tid\u00ae\u00aeChilensk sommertid\u00ae\u00ae\u00a9Japan\u00aeJapansk normaltid\u00ae\u00aeJapansk sommertid\u00ae\u00ae\u00a9Rothera\u00aeRothera-tid\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeCentralindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00aeAmazonas-tid\u00ae\u00aeAmazonas-sommertid\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii-normaltid\u00ae\u00aeAlaska-Hawaii-sommertid\u00ae\u00ae\u00a9America_Central\u00aeCentral-normaltid\u00ae\u00aeCentral-sommertid\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u00d8staustralsk normaltid\u00ae\u00ae\u00d8staustralsk sommertid\u00ae\u00ae\u00a9Moscow\u00aeMoskva-normaltid\u00ae\u00aeMoskva-sommertid\u00ae\u00ae\u00a9Peru\u00aePeruviansk tid\u00ae\u00aePeruviansk sommertid\u00ae\u00ae\u00a9GMT\u00aeVerdenstid\u00ae\u00ae\u00ae\u00ae\u00a9Arabian\u00aeArabisk normaltid\u00aeAST (arabisk)\u00aeArabisk sommertid\u00aeADT (arabisk)\u00ae\u00a9Atlantic\u00aeAtlantic-normaltid\u00ae\u00aeAtlantic-sommertid\u00ae\u00ae\u00a9Vostok\u00aeVostok-tid\u00ae\u00ae\u00ae\u00ae\u00a9Guyana\u00aeGuyana-tid\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Western\u00aeVestaustralsk normaltid\u00ae\u00aeVestaustralsk sommertid\u00ae\u00ae\u00a9DumontDUrville\u00aeDumont-d'Urville-tid\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeVestlig centralaustralsk normaltid\u00ae\u00aeVestlig centralaustralsk sommertid\u00ae\u00ae\u00a9Alaska\u00aeAlaska-normaltid\u00ae\u00aeAlaska-sommertid\u00ae\u00ae\u00a9
+territories.TL=\u00d8sttimor
 territories.TK=Tokelau
-territories.TJ=Tadsjikistan
+territories.TJ=Tajikistan
 territories.TH=Thailand
 territories.TG=Togo
 territories.TF=Franske Besiddelser i Det Sydlige Indiske Ocean
@@ -374,10 +400,13 @@ territories.GN=Guinea
 territories.GM=Gambia
 territories.GL=Gr\u00f8nland
 territories.SV=El Salvador
+territories.062=Sydcentralasien
 territories.ST=S\u00e3o Tom\u00e9 og Pr\u00edncipe
 territories.GI=Gibraltar
+territories.061=Polynesien
 territories.GH=Ghana
 territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Fransk Guyana
 territories.GE=Georgien
 territories.SO=Somalia
@@ -390,7 +419,7 @@ territories.GA=Gabon
 territories.SK=Slovakiet
 territories.SJ=Svalbard og Jan Mayen
 territories.SI=Slovenien
-territories.SH=St. Helena
+territories.SH=Saint Helena
 territories.SG=Singapore
 territories.SE=Sverige
 territories.SD=Sudan
@@ -399,31 +428,41 @@ territories.SB=Salomon\u00f8erne
 territories.SA=Saudi-Arabien
 territories.FR=Frankrig
 territories.FO=F\u00e6r\u00f8erne
+territories.057=Mikronesien
 territories.FM=Mikronesiens Forenede Stater
 territories.RW=Rwanda
+territories.054=Melanesien
 territories.FK=Falklands\u00f8erne
+territories.053=Australien og New Zealand
 territories.RU=Rusland
 territories.FJ=Fiji-\u00f8erne
 territories.FI=Finland
+territories.RS=Serbien
 territories.RO=Rum\u00e6nien
 territories.RE=Reunion
 territories.ET=Etiopien
 territories.ES=Spanien
 territories.ER=Eritrea
+territories.QU=EU
 territories.EH=Vestsahara
 territories.EG=Egypten
 territories.EE=Estland
+territories.QO=Ydre Oceanien
 territories.EC=Ecuador
 territories.DZ=Algeriet
 territories.QA=Qatar
+territories.039=Sydeuropa
 territories.DO=Den Dominikanske Republik
 territories.PY=Paraguay
 territories.DM=Dominica
+territories.035=Syd\u00f8stasien
 territories.PW=Palau
+territories.034=Sydasien
 territories.DK=Danmark
 territories.DJ=Djibouti
 territories.PT=Portugal
-territories.PS=De pal\u00e6stinensiske omr\u00e5der
+territories.PS=Pal\u00e6stina
+territories.030=\u00d8stasien
 territories.PR=Puerto Rico
 territories.DE=Tyskland
 territories.PN=Pitcairn
@@ -442,19 +481,22 @@ territories.PA=Panama
 territories.CU=Cuba
 territories.CS=Serbien og Montenegro
 territories.CR=Costa Rica
+territories.029=Caribien
 territories.CO=Colombia
 territories.CN=Kina
 territories.CM=Cameroun
 territories.CL=Chile
 territories.CK=Cook-\u00f8erne
+territories.021=Nordlige Amerika
 territories.CI=Elfenbenskysten
 territories.CH=Schweiz
-territories.CG=Congo
+territories.CG=Congo-Brazzaville
 territories.CF=Centralafrikanske Republik
-territories.CD=Den Demokratiske Republik Congo
-territories.CC=Cocos-\u00f8erne (Keeling\u00f8erne)
+territories.CD=Congo-Kinshasa
+territories.CC=Cocos\u00f8erne
 territories.OM=Oman
 territories.CA=Canada
+territories.419=Latinamerika og Caribien
 territories.BZ=Belize
 territories.BY=Hviderusland
 territories.BW=Botswana
@@ -462,19 +504,29 @@ territories.BV=Bouvet\u00f8
 territories.BT=Bhutan
 territories.BS=Bahamas
 territories.BR=Brasilien
+territories.019=Amerika
+territories.018=Sydafrika
 territories.NZ=New Zealand
+territories.017=Centralafrika
 territories.BO=Bolivia
-territories.BN=Brunei Darussalam
+territories.BN=Brunei
+territories.015=Nordafrika
 territories.BM=Bermuda
+territories.014=\u00d8stafrika
+territories.BL=Saint Barth\u00e9lemy
+territories.013=Mellemamerika
 territories.NU=Niue
 territories.BJ=Benin
+territories.011=Vestafrika
 territories.BI=Burundi
+territories.172=Sammenslutningen af uafh\u00e6ngige stater
 territories.BH=Bahrain
 territories.NR=Nauru
 territories.BG=Bulgarien
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgien
+territories.ZZ=ukent region
 territories.NO=Norge
 territories.BD=Bangladesh
 territories.BB=Barbados
@@ -486,6 +538,7 @@ territories.NG=Nigeria
 territories.NF=Norfolk Island
 territories.AZ=Aserbajdsjan
 territories.NE=Niger
+territories.AX=\u00c5land
 territories.NC=Ny Caledonien
 territories.AW=Aruba
 territories.ZM=Zambia
@@ -495,28 +548,33 @@ territories.AT=\u00d8strig
 territories.AS=Amerikansk Samoa
 territories.AR=Argentina
 territories.AQ=Antarktis
+territories.009=Oceanien
 territories.MZ=Mozambique
 territories.AO=Angola
 territories.MY=Malaysia
 territories.AN=Hollandske Antiller
 territories.MX=Mexico
 territories.AM=Armenien
+territories.005=Sydamerika
 territories.MW=Malawi
 territories.AL=Albanien
 territories.MV=Maldiverne
+territories.003=Nordamerika
 territories.ZA=Sydafrika
 territories.MU=Mauritius
+territories.002=Afrika
 territories.MT=Malta
 territories.AI=Anguilla
+territories.001=verden
 territories.MS=Montserrat
 territories.MR=Mauretanien
 territories.AG=Antigua og Barbuda
-territories.AF=Afghanistan
 territories.MQ=Martinique
-territories.AE=Forenede Arabiske Emirater
+territories.AF=Afghanistan
 territories.MP=Nordmarianerne
+territories.AE=Forenede Arabiske Emirater
+territories.MO=Macao
 territories.AD=Andorra
-territories.MO=SAR Macao
 territories.MN=Mongoliet
 territories.MM=Myanmar
 territories.ML=Mali
@@ -524,16 +582,22 @@ territories.MK=Republikken Makedonien
 territories.YT=Mayotte
 territories.MH=Marshall\u00f8erne
 territories.MG=Madagaskar
+territories.MF=Saint Martin
+territories.ME=Montenegro
 territories.MD=Republikken Moldova
 territories.MC=Monaco
 territories.MA=Marokko
 territories.YE=Yemen
 territories.LY=Libyen
 territories.LV=Letland
+territories.155=Vesteuropa
 territories.LU=Luxembourg
+territories.154=Nordeuropa
 territories.LT=Litauen
 territories.LS=Lesotho
 territories.LR=Liberia
+territories.151=\u00d8steuropa
+territories.150=Europa
 territories.LK=Sri Lanka
 territories.LI=Liechtenstein
 territories.LC=Saint Lucia
@@ -542,6 +606,9 @@ territories.LA=Laos
 territories.KZ=Kasakhstan
 territories.KY=Cayman\u00f8erne
 territories.KW=Kuwait
+territories.145=Vestasien
+territories.143=Centralasien
+territories.142=Asien
 territories.KR=Sydkorea
 territories.KP=Nordkorea
 territories.KN=Saint Kitts og Nevis
@@ -556,11 +623,12 @@ territories.JP=Japan
 territories.JO=Jordan
 territories.JM=Jamaica
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=De amerikanske jomfru\u00f8er
 territories.VG=De britiske jomfru\u00f8er
 territories.VE=Venezuela
-territories.VC=St. Vincent og Grenadinerne
+territories.VC=Saint Vincent og Grenadinerne
 territories.VA=Vatikanstaten
 territories.IT=Italien
 territories.IS=Island
@@ -570,11 +638,12 @@ territories.UZ=Usbekistan
 territories.IO=Det Britiske Territorium i Det Indiske Ocean
 territories.UY=Uruguay
 territories.IN=Indien
+territories.IM=Isle of Man
 territories.IL=Israel
 territories.US=USA
 territories.IE=Irland
 territories.ID=Indonesien
-territories.UM=De Mindre Amerikanske Overs\u00f8iske \u00d8er
+territories.UM=De mindre amerikanske overs\u00f8iske \u00f8er
 territories.UG=Uganda
 territories.UA=Ukraine
 territories.HU=Ungarn
@@ -585,464 +654,523 @@ territories.HN=Honduras
 territories.HM=Heard- og McDonald-\u00f8erne
 territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=SAR Hongkong
+territories.HK=Hongkong
 territories.TT=Trinidad og Tobago
 territories.TR=Tyrkiet
 territories.TO=Tonga
 territories.TN=Tunesien
 territories.TM=Turkmenistan
-languages.akk=Akkadisk
-languages.gwi=Gwich\u02bcin
-languages.eka=Ekajuk
-languages.ijo=Ijo
-languages.xh=Xhosa
-languages.sux=Sumerisk
-languages.sus=Susu
-languages.mis=Diverse sprog
-languages.loz=Lozi
+languages.gwi=gwichin
+languages.akk=akkadisk
+languages.eka=ekajuk
+languages.ijo=ijo
+languages.xh=xhosa
+languages.sux=sumerisk
+languages.sus=susu
+languages.mis=annet sprog
+languages.loz=lozi
 languages.tog=Tonga (Nyasa)
-languages.pon=Ponape
-languages.min=Minangkabau
-languages.suk=Sukuma
-languages.wo=Wolof
-languages.lol=Mongo
-languages.mic=Micmac
-languages.wa=Vallonsk
-languages.zap=Zapotec
-languages.cus=Kusjitiske sprog (\u00f8vrige)
-languages.doi=Dogri
-languages.jbo=Lojban
-languages.vo=Volap\u00fck
-languages.oto=Otomi sprog
-languages.vi=Vietnamesisk
-languages.vai=Vai
-languages.rar=Rarotongan
-languages.ve=Venda
-languages.rap=Rapanui
-languages.raj=Rajasthani
-languages.ota=Osmannisk (1500-1928)
-languages.nzi=Nzima
-languages.nap=Neapolitansk
-languages.uz=Usbekisk
-languages.uga=Ugaristisk
-languages.tmh=Tamashek
-languages.nai=Nordamerikanske indianske sprog (\u00f8vrige)
-languages.nah=Nahuatl
-languages.ur=Urdu
-languages.fat=Fanti
-languages.uk=Ukrainsk
-languages.egy=Egyptisk (oldtid)
-languages.ug=Uigurisk
-languages.fan=Fang
-languages.ssa=Afrikanske sprog syd for Sahara (\u00f8vrige)
-languages.bat=Baltiske sprog (\u00f8vrige)
-languages.mga=Irsk, Middel- (900-1200)
-languages.nyo=Nyoro sprog
-languages.bas=Basa
-languages.nyn=Nyankole
-languages.nym=Nyamwezi
-languages.hmn=Hmong
-languages.ban=Balinesisk
-languages.osa=Osage
-languages.bal=Baluchi
-languages.ty=Tahitiansk
-languages.tw=Twi
-languages.srr=Serer
-languages.tli=Tlingit
-languages.tt=Tatarisk
-languages.ts=Tsonga
-languages.bad=Banda
-languages.tr=Tyrkisk
-languages.to=Tonga (Tonga\u00f8erne)
-languages.tn=Tswana
-languages.tl=Tagalog
-languages.tk=Turkmensk
-languages.ti=Tigrinya
-languages.th=Thailandsk
-languages.kru=Kurukh
-languages.tg=Tajik
-languages.byn=Blin
-languages.te=Telugu
-languages.csb=Kashubian
-languages.kro=Kru
-languages.ta=Tamilsk
-languages.tkl=Tokelau
-languages.efi=Efik
-languages.sw=Swahili
-languages.sv=Svensk
-languages.su=Sundanesisk
-languages.krc=Karachay-Balkar
-languages.st=Sotho, Southern
-languages.ss=Swati
-languages.sr=Serbisk
-languages.sq=Albansk
-languages.men=Mende
-languages.crp=Kreolsk og pidgin (\u00f8vrige)
-languages.so=Somalisk
-languages.afh=Afrihili
-languages.sn=Shona
-languages.sm=Samoansk
-languages.sl=Slovensk
-languages.grc=Gr\u00e6sk, Old- (til 1453)
-languages.sk=Slovakisk
-languages.grb=Grebo
-languages.si=Singalesisk
-languages.sh=Serbokroatisk
-languages.afa=Afro-asiatisk (\u00f8vrige)
-languages.crh=Krim-tyrkisk; Krim-tatarisk
-languages.sg=Sango
-languages.se=Nordsamisk
-languages.sd=Sindhi
-languages.udm=Udmurt
-languages.sc=Sardinsk
-languages.sa=Sanskrit
-languages.rw=Kinyarwanda
-languages.ru=Russisk
-languages.mdr=Mandar
-languages.ro=Rum\u00e6nsk
-languages.rn=Rundi
-languages.rm=R\u00e6toromansk
-languages.mdf=Moksha
-languages.tiv=Tivi
-languages.ady=Adyghe
-languages.zun=Zuni
-languages.kpe=Kpelle
-languages.qu=Quechua
-languages.tig=Tigre
-languages.son=Songhai
-languages.cpp=Kreolsk og pidgin, baseret p\u00e5 portugisisk (\u00f8vrige)
-languages.sog=Sogdiansk
-languages.ada=Adangme
-languages.cpf=Kreolsk og pidgin, baseret p\u00e5 fransk (\u00f8vrige)
-languages.hit=Hittitisk
-languages.kos=Kosraean
-languages.cpe=Kreolsk og pidgin, baseret p\u00e5 engelsk (\u00f8vrige)
-languages.him=Himachali
-languages.got=Gotisk
-languages.hil=Hiligaynon
-languages.kok=Konkani
-languages.gor=Gorontalo
-languages.gon=Gondi
-languages.din=Dinka
-languages.nub=Nubiske sprog
-languages.pt=Portugisisk
-languages.ps=Pashto (Pushto)
-languages.fur=Friulian
-languages.phn=F\u00f8nikisk
-languages.goh=Tysk, Oldh\u00f8j- (ca.750-1050)
-languages.snk=Soninke
-languages.cop=Koptisk
-languages.yap=Yap
-languages.ach=Acoli
-languages.yao=Yao
-languages.phi=Filippinske sprog (\u00f8vrige)
-languages.pl=Polsk
-languages.ace=Achinesisk
-languages.pi=Pali
-languages.pa=Punjabi
-languages.bug=Buginesisk
-languages.iba=Iban
-languages.sms=Skolt Sami
-languages.bua=Buriat
-languages.mas=Masai
-languages.smn=Inari Sami
-languages.os=Ossetisk
-languages.map=Malajo-polynesiske sprog (\u00f8vrige)
-languages.or=Oriya
-languages.man=Mandingo
-languages.smj=Lule Sami
-languages.smi=Samiske sprog (\u00f8vrige)
-languages.mak=Makasar
-languages.om=Oromo
-languages.mai=Maithili
-languages.oj=Ojibwa
-languages.mag=Magahi
-languages.mad=Madurese
-languages.sma=Sydsamisk
-languages.oc=Occitansk (efter 1500); Provencalsk
-languages.nso=Sotho, Nord
-languages.btk=Batak
-languages.myv=Erzya
-languages.dgr=Dogrib
-languages.ny=Nyanja; Chichewa; Chewa
-languages.myn=Maya sprog
-languages.nv=Navajo
-languages.kmb=Kimbundu
-languages.nr=Ndebele, Syd
-languages.gmh=Tysk, Middelh\u00f8j- (ca.1050-1500)
-languages.no=Norsk
-languages.nn=Nynorsk
-languages.nl=Hollandsk
-languages.ng=Ndonga
-languages.sla=Slaviske sprog (\u00f8vrige)
-languages.ne=Nepalesisk
-languages.nd=Ndebele, Nord
-languages.cmc=Chamic sprog
-languages.tet=Tetum
-languages.nb=Norsk Bokm\u00e5l
-languages.na=Nauru
-languages.ter=Tereno
-languages.tem=Temne
-languages.my=Burmesisk
-languages.lez=Lezghian
-languages.mt=Maltesisk
-languages.peo=Persisk, Old- (ca. 600-400 f. Kr.)
-languages.ms=Malay
-languages.mr=Marathisk
-languages.fro=Fransk, Old- (842-ca.1400)
-languages.mo=Moldovisk
-languages.mn=Mongolsk
-languages.frm=Fransk, Middel- (ca.1400-1600)
-languages.ml=Malayalam
-languages.jrb=J\u00f8disk-arabisk
-languages.mk=Makedonsk
-languages.mi=Maori
-languages.mh=Marshallese
-languages.mg=Malagasy
-languages.mwr=Marwari
-languages.bra=Braj
-languages.lv=Lettisk
-languages.den=Slave (Athapascan)
-languages.lu=Luba-Katanga
-languages.lt=Litauisk
-languages.del=Delaware
-languages.lo=Lao
-languages.ln=Lingala
-languages.li=Limburgsk
-languages.ewo=Ewondo
-languages.lg=Ganda
-languages.lb=Luxembourgsk
-languages.la=Latin
-languages.jpr=J\u00f8disk-persisk
-languages.vot=Votisk
-languages.sit=Sino-tibetanske sprog (\u00f8vrige)
-languages.ky=Kirgisisk
-languages.kw=Cornisk
-languages.ku=Kurdisk
-languages.ks=Kashmiri
-languages.kr=Kanuri
-languages.awa=Awadhi
-languages.ko=Koreansk
-languages.kn=Kannaresisk
-languages.km=Khmer
-languages.kl=Kalaallisut
-languages.kk=Kasakhisk
-languages.rom=Romani
-languages.kj=Kuanyama
-languages.sid=Sidamo
-languages.ki=Kikuyu
-languages.kg=Kongo
-languages.non=Islandsk, Old-
-languages.ka=Georgisk
-languages.mus=Creek
-languages.roa=Romanske sprog (\u00f8vrige)
-languages.nog=Nogai
-languages.mun=Munda (\u00f8vrige)
-languages.mul=Flere sprog
-languages.jv=Javanesisk
-languages.gil=Gilbertesisk
-languages.znd=Zande
-languages.shn=Shan
-languages.fon=Fon
-languages.xal=Kalmyk
-languages.aus=Australske sprog
-languages.kho=Khotanesisk
-languages.ja=Japansk
-languages.khi=Khoisan (\u00f8vrige)
-languages.pau=Palauansk
-languages.chy=Cheyenne
-languages.tai=Tai (\u00f8vrige)
-languages.iu=Inuktitut
-languages.pap=Papiamento
-languages.it=Italiensk
-languages.sgn=Tegnsprog
-languages.kha=Khasi
-languages.is=Islandsk
-languages.chr=Cherokee
-languages.pam=Pampanga
-languages.pal=Pahlavi
-languages.chp=Chipewyan
-languages.cho=Choctaw
-languages.io=Ido
-languages.chn=Chinook
-languages.chm=Mari
-languages.tyv=Tuvinian
-languages.bnt=Bantu
-languages.pag=Pangasinan
-languages.chk=Chuukese
-languages.ik=Inupiaq
-languages.haw=Hawaiiansk
-languages.ii=Sichuan Yi
-languages.lam=Lamba
-languages.chg=Chagatai
-languages.ig=Igbo
-languages.sga=Irsk, Old- (indtil 900)
-languages.paa=Papua-australske sprog (\u00f8vrige)
-languages.ie=Interlingue
-languages.id=Indonesisk
-languages.lah=Lahnda
-languages.chb=Chibcha
-languages.day=Dayak
-languages.ia=Interlingua
-languages.lad=Ladino
-languages.dar=Dargwa
-languages.hai=Haida
-languages.hz=Herero
-languages.hy=Armensk
-languages.hu=Ungarsk
-languages.ht=Haitisk
-languages.dak=Dakota
-languages.hr=Kroatisk
-languages.ho=Hiri Motu
-languages.hi=Hindi
-languages.dyu=Dyula
-languages.he=Hebraisk
-languages.ast=Asturisk
-languages.ha=Hausa
-languages.wen=Vendiske sprog
-languages.gv=Manx
-languages.gu=Gujaratisk
-languages.sem=Semitiske sprog (\u00f8vrige)
-languages.sel=Selkupisk
-languages.iro=Irokesiske sprog
-languages.gn=Guarani
-languages.gl=Galicisk
-languages.arw=Arawak
-languages.gd=G\u00e6lisk (skotsk)
-languages.art=Kunstsprog (\u00f8vrige)
-languages.gez=Geez
-languages.ira=Iranske sprog (\u00f8vrige)
-languages.ga=Irsk
-languages.arp=Arapaho
-languages.arn=Araukansk
-languages.fy=Frisisk
-languages.bla=Siksika
-languages.gem=Germanske sprog (\u00f8vrige)
-languages.fr=Fransk
-languages.arc=Aram\u00e6isk
-languages.fo=F\u00e6r\u00f8sk
-languages.cel=Keltiske sprog (\u00f8vrige)
-languages.fj=Fijian
-languages.fi=Finsk
-languages.ff=Fulah
-languages.tvl=Tuvalu
-languages.ceb=Cebuano
-languages.fa=Persisk
-languages.eu=Baskisk
-languages.sco=Skotsk
-languages.et=Estisk
-languages.es=Spansk
-languages.eo=Esperanto
-languages.en=Engelsk
-languages.el=Gr\u00e6sk
-languages.tut=Tyrkisk-tatariske sprog (\u00f8vrige)
-languages.niu=Niuean
-languages.ee=Ewe
-languages.tum=Tumbuka
-languages.mos=Mossi
-languages.dz=Dzongkha
-languages.nic=Niger-Congo sprog (\u00f8vrige)
-languages.dv=Divehi
-languages.fiu=Finsk-ugriske sprog (\u00f8vrige)
-languages.lus=Lushai
-languages.nia=Nias
-languages.moh=Mohawk
-languages.luo=Luo
-languages.lun=Lunda
-languages.apa=Apache sprog
-languages.lui=Luiseno
-languages.hup=Hupa
-languages.bin=Bini
-languages.de=Tysk
-languages.lua=Luba-Lulua
-languages.bik=Bikol
-languages.was=Washo
-languages.und=Sproget kan ikke bestemmes
-languages.war=Waray
-languages.da=Dansk
-languages.dum=Hollandsk (ca. 1050-1350)
-languages.wal=Walamo
-languages.sat=Santali
-languages.cy=Walisisk
-languages.sas=Sasak
-languages.cv=Chuvash
-languages.kbd=Kabardian
-languages.cu=Kirkeslavisk
-languages.mni=Manipuri
-languages.cs=Tjekkisk
-languages.sam=Samaritansk
-languages.cr=Cree
-languages.dua=Duala
-languages.co=Korsikansk
-languages.sai=Sydamerikanske indianske sprog (\u00f8vrige)
-languages.mnc=Manchu
-languages.sah=Yakut
-languages.gba=Gbaya
-languages.inh=Ingush
-languages.kaw=Kawi
-languages.sad=Sandawe
-languages.ch=Chamorro
-languages.bho=Bhojpuri
-languages.ine=Indoeurop\u00e6iske sprog (\u00f8vrige)
-languages.enm=Engelsk, Middel- (1100-1500)
-languages.ce=Tjetjensk
-languages.inc=Indiske sprog (\u00f8vrige)
-languages.kar=Karen
-languages.gay=Gayo
-languages.ca=Katalansk
-languages.umb=Umbundu
-languages.syr=Syrisk
-languages.kam=Kamba
-languages.tsi=Tsimshisk
-languages.ang=Angelsaksisk (ca.450-1100)
-languages.cau=Kaukasiske sprog (\u00f8vrige)
-languages.kac=Kachin
-languages.kab=Kabyle
-languages.bs=Bosnisk
-languages.kaa=Karakalpakisk
-languages.br=Bretonsk
-languages.car=Caribisk
-languages.bo=Tibetansk
-languages.bn=Bengalsk
-languages.bm=Bambara
-languages.gaa=Ga
-languages.bi=Bislama
-languages.cai=Mellemamerikanske indianske sprog (\u00f8vrige)
-languages.bh=Bihari
-languages.bg=Bulgarsk
-languages.be=Hviderussisk
-languages.cad=Caddo
-languages.ba=Bashkir
-languages.zu=Zulu
-languages.zen=Zenaga
-languages.pro=Provencalsk (f\u00f8r 1500)
-languages.hsb=\u00d8vre sorbisk
-languages.az=Aserbajdsjan
-languages.ay=Aymara
-languages.av=Avarisk
-languages.as=Assamesisk
-languages.ar=Arabisk
-languages.dsb=Nedre sorbisk
-languages.elx=Elamitisk
-languages.ilo=Iloko
-languages.zh=Kinesisk
-languages.an=Aragonesisk
-languages.am=Amharisk
-languages.new=Newari
-languages.ak=Akan
-languages.za=Zhuang
-languages.af=Afrikaans
-languages.ae=Avestan
-languages.ab=Abkhasisk
-languages.aa=Afar
-languages.yo=Yoruba
-languages.alg=Algonkiske sprog
-languages.ale=Aleutiske sprog
-languages.mkh=Mon-khmer (\u00f8vrige)
-languages.yi=Jiddisch
-languages.dra=Dravidiske sprog (\u00f8vrige)
-languages.ber=Berberiske sprog
-languages.nds=Nedertysk; nedersachsisk
-languages.bem=Bemba
-languages.bej=Beja
+languages.zbl=bliss-symboler
+languages.pon=ponape
+languages.min=minangkabau
+languages.suk=sukuma
+languages.wo=wolof
+languages.lol=mongo
+languages.kut=kutenaj
+languages.mic=micmac
+languages.wa=vallonsk
+languages.kum=kymyk
+languages.zap=zapotec
+languages.ain=ainu
+languages.cus=kusjitisk sprog
+languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
+languages.vo=volapyk
+languages.oto=otomisprog
+languages.vi=vietnamesisk
+languages.vai=vaj
+languages.rar=rarotongansk
+languages.ve=venda
+languages.rap=rapanui
+languages.raj=rajasthanisk
+languages.ota=osmannisk-tyrkisk
+languages.nzi=nzima
+languages.nap=neapolitansk
+languages.uz=usbekisk
+languages.uga=ugaristisk
+languages.tmh=tamashek
+languages.nai=nordamerikansk indiansk sprog
+languages.nah=nahuatl
+languages.ur=urdu
+languages.fat=fanti
+languages.uk=ukrainsk
+languages.egy=oldegyptisk
+languages.zxx=intet sprogligt indhold
+languages.ug=uigurisk
+languages.fan=fang
+languages.ssa=nilo-saharansk sprog
+languages.mga=middelirsk
+languages.bat=baltisk sprog
+languages.nyo=nyoro sprog
+languages.bas=basa
+languages.nyn=nyankole
+languages.nym=nyamwezi
+languages.gsw=schweizertysk
+languages.hmn=hmong
+languages.ban=balinesisk
+languages.osa=osage
+languages.bal=baluchi
+languages.ty=tahitiansk
+languages.bai=bamilekisk sprog
+languages.tw=twi
+languages.srr=serer
+languages.tli=tlingit
+languages.tlh=klingonsk
+languages.tt=tatarisk
+languages.ts=tsonga
+languages.srn=sranan tongo
+languages.bad=banda
+languages.tr=tyrkisk
+languages.to=tongansk
+languages.tn=tswana
+languages.tl=tagalog
+languages.tk=turkmensk
+languages.ti=tigrinya
+languages.th=thailandsk
+languages.kru=kurukh
+languages.tg=tajik
+languages.byn=blin
+languages.te=telugu
+languages.kro=kru
+languages.csb=kasjubisk
+languages.ta=tamilsk
+languages.krl=karelsk
+languages.tkl=tokelau
+languages.efi=efik
+languages.sw=swahili
+languages.sv=svensk
+languages.su=sundanesisk
+languages.krc=karatjai-balkar
+languages.st=sydsotho
+languages.ss=swati
+languages.sr=serbisk
+languages.sq=albansk
+languages.men=mende
+languages.crp=kreolsk eller pidginsprog
+languages.so=somalisk
+languages.afh=afrihili
+languages.sn=shona
+languages.sm=samoansk
+languages.sl=slovensk
+languages.grc=oldgr\u00e6sk
+languages.sk=slovakisk
+languages.grb=grebo
+languages.si=singalesisk
+languages.sh=serbokroatisk
+languages.crh=krim tyrkisk
+languages.afa=afroasiatisk
+languages.sg=sango
+languages.se=nordsamisk
+languages.sd=sindhi
+languages.udm=udmurt
+languages.sc=sardinsk
+languages.sa=sanskrit
+languages.rw=kinyarwanda
+languages.nwc=klassisk newarisk
+languages.ru=russisk
+languages.mdr=mandar
+languages.ro=rum\u00e6nsk
+languages.rn=rundi
+languages.rm=r\u00e6toromansk
+languages.fr_CH=schweizer-fransk
+languages.mdf=moksha
+languages.tiv=tivi
+languages.fr_CA=canadisk fransk
+languages.ady=adyghe
+languages.zun=zuni
+languages.kpe=kpelle
+languages.qu=quechua
+languages.tig=tigre
+languages.son=songhai
+languages.cpp=portugisisk baseret kreolsk eller pidginsprog
+languages.rup=arum\u00e6nsk
+languages.sog=sogdiansk
+languages.ada=adangme
+languages.kos=kosraeansk
+languages.hit=hittitisk
+languages.cpf=fransk baseret kreolsk eler pidgin
+languages.cpe=engelsk baseret kreolsk eller pidginsprog
+languages.him=himachali
+languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=gotisk
+languages.gor=gorontalo
+languages.gon=gondi
+languages.din=dinka
+languages.nub=nubisk sprog
+languages.pt=portugisisk
+languages.ps=pashto
+languages.fur=friulian
+languages.phn=f\u00f8nikisk
+languages.de_CH=schweizerh\u00f8jtysk
+languages.goh=oldh\u00f8jtysk
+languages.snk=soninke
+languages.cop=koptisk
+languages.yap=yapisk
+languages.ach=acoli
+languages.yao=yao
+languages.phi=filippinsk sprog
+languages.pl=polsk
+languages.ace=achinesisk
+languages.pi=pali
+languages.pt_PT=iberisk portugisisk
+languages.pa=punjabi
+languages.bug=buginesisk
+languages.iba=iban
+languages.sms=skolt sami
+languages.bua=buriatisk
+languages.mas=masai
+languages.smn=inari sami
+languages.os=ossetisk
+languages.map=austronesisk sprog
+languages.or=oriya
+languages.man=mandingo
+languages.smj=lule sami
+languages.smi=samisk sprog
+languages.mak=makasar
+languages.om=oromo
+languages.mai=maithili
+languages.oj=ojibwa
+languages.mag=magahi
+languages.mad=maduresisk
+languages.sma=sydsamisk
+languages.oc=occitansk
+languages.nso=nordsotho
+languages.btk=batak
+languages.myv=erzya
+languages.es_ES=europeisk spansk
+languages.de_AT=\u00f8strigsk tysk
+languages.dgr=dogrib
+languages.ny=nyanja
+languages.myn=mayasprog
+languages.nv=navajo
+languages.kmb=kimbundu
+languages.nr=sydndebele
+languages.gmh=middelh\u00f8jtysk
+languages.no=norsk
+languages.nn=nynorsk
+languages.nl=hollandsk
+languages.root=rot
+languages.ng=ndonga
+languages.sla=slavisk sprog
+languages.ne=nepalesisk
+languages.nd=nordndebele
+languages.cmc=chamiske sprog
+languages.tet=tetum
+languages.nb=norsk bokm\u00e5l
+languages.na=nauru
+languages.ter=tereno
+languages.tem=temne
+languages.my=burmesisk
+languages.lez=lezghian
+languages.mt=maltesisk
+languages.frs=\u00f8stfrisisk
+languages.peo=oldpersisk
+languages.ms=malajisk
+languages.frr=nordfrisisk
+languages.mr=marathisk
+languages.fro=oldfransk
+languages.mo=moldavisk
+languages.mn=mongolsk
+languages.frm=middelfransk
+languages.ml=malayalam
+languages.jrb=j\u00f8disk-arabisk
+languages.mk=makedonsk
+languages.mi=maorisk
+languages.mh=marshallese
+languages.mg=malagasisk
+languages.nqo=n-ko
+languages.mwr=marwari
+languages.bra=braj
+languages.mwl=mirandesisk
+languages.den=athapaskisk
+languages.lv=lettisk
+languages.lu=luba-Katanga
+languages.del=delaware
+languages.lt=litauisk
+languages.lo=laotisk
+languages.ln=lingala
+languages.li=limburgsk
+languages.ewo=ewondo
+languages.lg=ganda
+languages.lb=luxembourgsk
+languages.la=latinsk
+languages.jpr=j\u00f8disk-persisk
+languages.vot=votisk
+languages.sit=sino-tibetansk sprog
+languages.ky=kirgisisk
+languages.kw=cornisk
+languages.kv=komi
+languages.ku=kurdisk
+languages.sio=sioux sprog
+languages.ks=kashmiri
+languages.kr=kanuri
+languages.awa=awadhi
+languages.ko=koreansk
+languages.kn=kannaresisk
+languages.km=khmer
+languages.en_GB=britisk engelsk
+languages.kl=gr\u00f8nlandsk
+languages.kk=kasakhisk
+languages.rom=romani
+languages.kj=kuanyama
+languages.sid=sidamo
+languages.ki=kikuyu
+languages.kg=kongo
+languages.non=oldislandsk
+languages.ka=georgisk
+languages.mus=creek
+languages.roa=romansk sprog
+languages.nog=nogai
+languages.mun=mundasprog
+languages.mul=flere sprog
+languages.jv=javanesisk
+languages.gil=gilbertesisk
+languages.znd=zande
+languages.shn=shan
+languages.fon=fon
+languages.xal=kalmyk
+languages.aus=australsk sprog
+languages.kho=khotanesisk
+languages.ja=japansk
+languages.khi=khoisansprog
+languages.pau=palauansk
+languages.chy=cheyenne
+languages.tai=thaisprog
+languages.iu=inuktitut
+languages.pap=papiamento
+languages.it=italiensk
+languages.sgn=tegnsprog
+languages.is=islandsk
+languages.kha=khasi
+languages.chr=cherokee
+languages.pam=pampanga
+languages.pal=pahlavi
+languages.chp=chipewyan
+languages.io=ido
+languages.cho=choctaw
+languages.chn=chinook
+languages.chm=mari
+languages.tyv=tuviniansk
+languages.bnt=bantu
+languages.pag=pangasinan
+languages.ik=inupiak
+languages.chk=chuukese
+languages.ii=sichuan yi
+languages.haw=hawaiiansk
+languages.lam=lamba
+languages.ig=igbo
+languages.chg=chagatai
+languages.sga=oldirsk
+languages.paa=papua-australsk sprog
+languages.ie=interlingue
+languages.id=indonesisk
+languages.lah=lahnda
+languages.day=dayak
+languages.chb=chibcha
+languages.ia=interlingua
+languages.lad=ladino
+languages.hz=herero
+languages.hai=haida
+languages.dar=dargwa
+languages.hy=armensk
+languages.ath=athapaskisk sprog
+languages.hu=ungarsk
+languages.ht=haitisk
+languages.dak=dakota
+languages.hr=kroatisk
+languages.ho=hirimotu
+languages.hi=hindi
+languages.dyu=dyula
+languages.he=hebraisk
+languages.ast=asturisk
+languages.kfo=koro
+languages.ha=hausa
+languages.wen=vendisk sprog
+languages.gv=manx
+languages.gu=gujarati
+languages.sem=semitisk sprog
+languages.sel=selkupisk
+languages.iro=irokesisk sprog
+languages.gn=guarani
+languages.gl=galicisk
+languages.en_CA=canadisk engelsk
+languages.arw=arawak
+languages.gez=geez
+languages.art=kunstsprog
+languages.gd=skotsk g\u00e6lisk
+languages.ira=iransk sprog
+languages.ga=irsk
+languages.arp=arapaho
+languages.arn=araukansk
+languages.fy=frisisk
+languages.bla=siksika
+languages.gem=germansk sprog
+languages.ypk=yupisk sprog
+languages.arc=aram\u00e6isk
+languages.fr=fransk
+languages.fo=f\u00e6r\u00f8sk
+languages.cel=keltisk sprog
+languages.fj=fijiansk
+languages.fi=finsk
+languages.ff=fulah
+languages.tvl=tuvalu
+languages.ceb=cebuano
+languages.fa=persisk
+languages.en_AU=australsk engelsk
+languages.zh_Hans=forenklet kinesisk
+languages.zh_Hant=traditionelt kinesisk
+languages.eu=baskisk
+languages.sco=skotsk
+languages.et=estisk
+languages.scn=siciliansk
+languages.es=spansk
+languages.eo=esperanto
+languages.en=engelsk
+languages.el=gr\u00e6sk
+languages.tut=altaisk sprog
+languages.niu=niuean
+languages.tup=tupisprog
+languages.ee=ewe
+languages.tum=tumbuka
+languages.nl_BE=flamsk
+languages.es_419=latinamerikansk spansk
+languages.mos=mossi
+languages.dz=dzongkha
+languages.kcg=tyap
+languages.nic=Niger-Congo sprog
+languages.lus=lushai
+languages.fiu=finsk-ugrisk sprog
+languages.dv=divehi
+languages.nia=nias
+languages.moh=mohawk
+languages.luo=luo
+languages.lun=lunda
+languages.apa=apachesprog
+languages.fil=filippinsk
+languages.lui=luise\u00f1o
+languages.hup=hupa
+languages.cch=atsam
+languages.bin=bini
+languages.de=tysk
+languages.lua=luba-Lulua
+languages.bik=bikol
+languages.was=washo
+languages.und=ukendt eller ugyldigt sprog
+languages.war=waray
+languages.da=dansk
+languages.dum=middelhollandsk
+languages.wal=walamo
+languages.mno=manobo sprog
+languages.wak=wakashansk sprog
+languages.sat=santali
+languages.cy=walisisk
+languages.sas=sasak
+languages.kbd=kabardian
+languages.cv=chuvash
+languages.cu=kirkeslavisk
+languages.mni=manipuri
+languages.cs=tjekkisk
+languages.sam=samaritansk
+languages.cr=cree
+languages.sal=salikisk sprog
+languages.dua=duala
+languages.co=korsikansk
+languages.sai=sydamerikansk indiansk sprog
+languages.mnc=manchu
+languages.sah=yakut
+languages.kaw=kawi
+languages.inh=ingush
+languages.gba=gbaya
+languages.sad=sandawe
+languages.ch=chamorro
+languages.ine=indo-europ\u00e6isk sprog
+languages.bho=bhojpuri
+languages.enm=middelengelsk
+languages.kar=karen
+languages.inc=indisk sprog
+languages.ce=tjetjensk
+languages.gay=gayo
+languages.ca=katalansk
+languages.umb=umbundu
+languages.syr=syrisk
+languages.kam=kamba
+languages.anp=angika
+languages.tsi=tsimshisk
+languages.kaj=jju
+languages.ang=oldengelsk
+languages.kac=kachin
+languages.cau=kaukasisk sprog
+languages.kab=kabyle
+languages.kaa=karakalpakisk
+languages.bs=bosnisk
+languages.car=caribisk
+languages.br=bretonsk
+languages.syc=klassisk syrisk
+languages.bo=tibetansk
+languages.bn=bengalsk
+languages.bm=bambara
+languages.gaa=ga
+languages.cai=mellemamerikansk indiansk sprog
+languages.bi=bislama
+languages.bh=bihari
+languages.bg=bulgarsk
+languages.be=hviderussisk
+languages.pt_BR=brasiliansk portugisisk
+languages.cad=caddo
+languages.ba=bashkir
+languages.zu=zulu
+languages.zen=zenaga
+languages.pro=oldprovencalsk
+languages.hsb=\u00f8vresorbisk
+languages.az=aserbajdsjansk
+languages.ay=aymara
+languages.av=avarisk
+languages.as=assamesisk
+languages.dsb=nedersorbisk
+languages.ar=arabisk
+languages.ilo=iloko
+languages.elx=elamitisk
+languages.zh=kinesisk
+languages.an=aragonesisk
+languages.pra=prakritsprog
+languages.am=amharisk
+languages.new=newari
+languages.ak=akan
+languages.za=zhuang
+languages.en_US=amerikansk engelsk
+languages.af=afrikaans
+languages.ae=avestan
+languages.alt=sydaltaisk
+languages.ab=abkhasisk
+languages.aa=afar
+languages.yo=yoruba
+languages.alg=algonkisk sprog
+languages.ale=aleutisk
+languages.mkh=mon-khmer sprog
+languages.yi=jiddisch
+languages.dra=dravidisk sprog
+languages.ber=berberisk
+languages.nds=nedertysk
+languages.bem=bemba
+languages.bej=beja
 languages.tpi=Tok Pisin
+variants.POSIX=computer
+variants.FONUPA=det uraliske fonetiske alfabet
+variants.1901=traditionel tysk retskrivning
+variants.BOONT=boontling
+variants.1996=tysk retskrivning fra 1996
+variants.FONIPA=det internationale fonetiske alfabet
+variants.AREVELA=\u00f8starmensk
+variants.REVISED=revideret retskrivning
index fda19437c01f3beaf40ec8fdde26805aaf4fcb1d..9f235a86ef3d9a04ff32e3cb741c304a36172bdd 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=\u00d710^
+infinity=\u221e
+NaN=NaN
+minusSign=\u2212
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=.
-localPatternChars=GjMtkHmsSEDFwWahKzJeugAZ
-currenciesDisplayName.YDD=Jemen Dinar
-currenciesDisplayName.TWD=Neuer Taiwan Dollar
-currenciesDisplayName.KES=Kenia Schilling
-currenciesDisplayName.BYB=Belarus Rubel (alt)
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GjMtkHmsSEDFwWahKzJeugAZvcL
+currenciesDisplayName.YDD=Jemen-Dinar
+currenciesDisplayName.KES=Kenia-Schilling
+currenciesDisplayName.TWD=Neuer Taiwan-Dollar
 currenciesDisplayName.LKR=Sri Lanka Rupie
-currenciesDisplayName.RWF=Ruanda Franc
+currenciesDisplayName.BYB=Belarus Rubel (alt)
 currenciesDisplayName.TJS=Tadschikistan Somoni
-currenciesDisplayName.SDP=Sudanesisches Pfund
-currenciesDisplayName.TJR=Tadschikistan Rubel
+currenciesDisplayName.RWF=Ruanda-Franc
 currenciesDisplayName.ERN=Nakfa
-currenciesDisplayName.AFN=Afghani
+currenciesDisplayName.TJR=Tadschikistan Rubel
+currenciesDisplayName.SDP=Sudanesische Pfund (alt)
 currenciesDisplayName.GRD=Griechische Drachme
-currenciesDisplayName.IEP=Irisches Pfund
-currenciesDisplayName.ARS=Argentinischer Peso
-currenciesDisplayName.SDD=Sudanesischer Dinar
-currenciesDisplayName.ARP=Argentinischer Peso (1983-1985)
-currenciesDisplayName.GEL=Georgischer Lari
-currenciesDisplayName.AFA=Afghani
-currenciesDisplayName.GEK=Georgischer Kupon Larit
+currenciesDisplayName.AFN=Afghani
+currenciesDisplayName.IEP=Irische Pfund
+currenciesDisplayName.ARS=Argentinische Peso
+currenciesDisplayName.SDG=Sudanesische Pfund
+currenciesDisplayName.ARP=Argentinische Peso (1983-1985)
+currenciesDisplayName.SDD=Sudanesische Dinar
+currenciesDisplayName.GEL=Georgische Lari
+currenciesDisplayName.GEK=Georgische Kupon Larit
+currenciesDisplayName.AFA=Afghani (1927-2002)
 currenciesDisplayName.CRC=Costa Rica Colon
-currenciesDisplayName.FKP=Falkland Pfund
-currenciesDisplayName.EEK=Estnische Krone
-currenciesDisplayName.HKD=Hongkong Dollar
+currenciesDisplayName.FKP=Falkland-Pfund
+currenciesDisplayName.EEK=Estnische Kronen
 currenciesDisplayName.MDL=Moldau Leu
-currenciesDisplayName.ARA=Argentinischer Austral
+currenciesDisplayName.HKD=Hongkong-Dollar
 currenciesDisplayName.IQD=Irak Dinar
-currenciesDisplayName.SCR=Seychellen Rupie
+currenciesDisplayName.ARA=Argentinische Austral
+currenciesDisplayName.SCR=Seychellen-Rupie
 currenciesDisplayName.VUV=Vatu
-currenciesDisplayName.DKK=D\u00e4nische Krone
-currenciesDisplayName.KPW=Nordkoreanischer Won
-currenciesDisplayName.GQE=\u00c4quatorialguinea Ekwele Guineana
+currenciesDisplayName.KPW=Nordkoreanische Won
+currenciesDisplayName.DKK=D\u00e4nische Kronen
 currenciesDisplayName.IDR=Rupiah
-currenciesDisplayName.LVR=Lettischer Rubel
-currenciesDisplayName.SOS=Somalia Schilling
-currenciesDisplayName.AED=UAE Dirham
+currenciesDisplayName.GQE=\u00c4quatorialguinea Ekwele Guineana
+currenciesDisplayName.SOS=Somalia-Schilling
+currenciesDisplayName.LVR=Lettische Rubel
+currenciesDisplayName.EQE=Ekwele
+currenciesDisplayName.AED=Dirham der Vereinigten Arabischen Emirate
+currenciesDisplayName.LVL=Lettische Lats
 currenciesDisplayName.BWP=Pula
-currenciesDisplayName.LVL=Lettischer Lats
-currenciesDisplayName.RUR=Russischer Rubel (alt)
+currenciesDisplayName.RUR=Russische Rubel (alt)
 currenciesDisplayName.NIO=Gold-Cordoba
-currenciesDisplayName.ADP=Andorranische Pesete
-currenciesDisplayName.FJD=Fidschi Dollar
+currenciesDisplayName.XTS=Testw\u00e4hrung
 currenciesDisplayName.MOP=Pataca
-currenciesDisplayName.RUB=Russischer Rubel (neu)
+currenciesDisplayName.FJD=Fidschi-Dollar
+currenciesDisplayName.ADP=Andorranische Peseten
+currenciesDisplayName.RUB=Russische Rubel (neu)
 currenciesDisplayName.CDF=Franc congolais
 currenciesDisplayName.NIC=Cordoba
 currenciesDisplayName.DJF=Dschibuti-Franc
-currenciesDisplayName.ECV=Verrechnungseinheit f\u00fcr EC
-currenciesDisplayName.SBD=Salomonen Dollar
 currenciesDisplayName.UZS=Usbekistan Sum
-currenciesDisplayName.ECS=Ecuadorianischer Sucre
-currenciesDisplayName.PHP=Philippinischer Peso
+currenciesDisplayName.SBD=Salomonen-Dollar
+currenciesDisplayName.ECV=Verrechnungseinheiten f\u00fcr EC
+currenciesDisplayName.LUL=Luxemburgische Finanz-Franc
+currenciesDisplayName.ECS=Ecuadorianische Sucre
 currenciesDisplayName.THB=Baht
-currenciesDisplayName.LUF=Luxemburgischer Franc
+currenciesDisplayName.PHP=Philippinische Peso
+currenciesDisplayName.LUF=Luxemburgische Franc
+currenciesDisplayName.RHD=Rhodesische Dollar
+currenciesDisplayName.LUC=Luxemburgische Franc (konvertibel)
 currenciesDisplayName.FIM=Finnische Mark
-currenciesDisplayName.TTD=Trinidad und Tobago Dollar
+currenciesDisplayName.TTD=Trinidad- und Tobago-Dollar
 currenciesDisplayName.SZL=Lilangeni
 currenciesDisplayName.MNT=Tugrik
+currenciesDisplayName.UAK=Ukrainische Karbovanetz
 currenciesDisplayName.SAR=Saudi Riyal
-currenciesDisplayName.UAK=Ukrainischer Karbovanetz
+currenciesDisplayName.COU=Unidad de Valor Real
 currenciesDisplayName.UAH=Hryvnia
 currenciesDisplayName.HUF=Forint
-currenciesDisplayName.COP=Kolumbianischer Peso
 currenciesDisplayName.QAR=Katar Riyal
-currenciesDisplayName.LTT=Litauischer Talonas
-currenciesDisplayName.PTE=Portugiesischer Escudo
+currenciesDisplayName.COP=Kolumbianische Peso
+currenciesDisplayName.LTT=Litauische Talonas
+currenciesDisplayName.PTE=Portugiesische Escudo
+currenciesDisplayName.UYU=Uruguayische Peso
 currenciesDisplayName.AOR=Kwanza Reajustado
-currenciesDisplayName.UYU=Uruguayischer Peso
 currenciesDisplayName.GBP=Pfund Sterling
-currenciesDisplayName.BIF=Burundi-Franc
-currenciesDisplayName.INR=Indische Rupie
 currenciesDisplayName.ZRZ=Zaire
-currenciesDisplayName.AON=Neuer Kwanza
-currenciesDisplayName.LTL=Litauischer Litas
-currenciesDisplayName.XFU=Franz\u00f6sischer UIC-Franc
+currenciesDisplayName.INR=Indische Rupien
+currenciesDisplayName.BIF=Burundi-Franc
+currenciesDisplayName.XFU=Franz\u00f6sische UIC-Franc
+currenciesDisplayName.MZN=Metical
+currenciesDisplayName.LTL=Litauische Litas
+currenciesDisplayName.AON=Neue Kwanza
+currenciesDisplayName.UYP=Uruguayische Neue Pesos (1975-1993)
+currenciesDisplayName.MZM=Alte Metical
 currenciesDisplayName.KZT=Tenge
-currenciesDisplayName.MZM=Metical
-currenciesDisplayName.AOK=Angolanischer Kwanza (1977-1990)
-currenciesDisplayName.BUK=Birmanischer Kyat
-currenciesDisplayName.XFO=Franz\u00f6sischer Gold-Franc
+currenciesDisplayName.AOK=Angolanische Kwanza (1977-1990)
+currenciesDisplayName.GNS=Guineische Syli
+currenciesDisplayName.BUK=Birmanische Kyat
+currenciesDisplayName.XFO=Franz\u00f6sische Gold-Franc
 currenciesDisplayName.PGK=Kina
-currenciesDisplayName.SYP=Syrisches Pfund
+currenciesDisplayName.SYP=Syrische Pfund
 currenciesDisplayName.OMR=Rial Omani
+currenciesDisplayName.MZE=Mozambikanische Escudo
+currenciesDisplayName.ZRN=Neue Zaire
 currenciesDisplayName.NGN=Naira
-currenciesDisplayName.ZRN=Neuer Zaire
-currenciesDisplayName.AOA=Kwanza
 currenciesDisplayName.CNY=Renminbi Yuan
-currenciesDisplayName.MAF=Marokkanischer Franc
-currenciesDisplayName.GNF=Guinea Franc
+currenciesDisplayName.AOA=Kwanza
+currenciesDisplayName.MAF=Marokkanische Franc
+currenciesDisplayName.RSD=Serbische Dinar
+currenciesDisplayName.GNF=Guinea-Franc
+currenciesDisplayName.MAD=Marokkanische Dirham
 currenciesDisplayName.HTG=Gourde
-currenciesDisplayName.MAD=Marokkanischer Dirham
 currenciesDisplayName.TRY=Neue T\u00fcrkische Lira
 currenciesDisplayName.MMK=Kyat
-currenciesDisplayName.MYR=Malaysischer Ringgit
+currenciesDisplayName.XRE=RINET Funds
+currenciesDisplayName.MYR=Malaysische Ringgit
+currenciesDisplayName.LSM=Maloti
+currenciesDisplayName.XEU=Europ\u00e4ische W\u00e4hrungseinheiten (XEU)
 currenciesDisplayName.LSL=Loti
-currenciesDisplayName.BHD=Bahrain-Dinar
 currenciesDisplayName.SLL=Leone
+currenciesDisplayName.BHD=Bahrain-Dinar
 currenciesDisplayName.BTN=Ngultrum
 currenciesDisplayName.TRL=T\u00fcrkische Lira
 currenciesDisplayName.KMF=Komoren Franc
+currenciesDisplayName.CZK=Tschechische Kronen
 currenciesDisplayName.ANG=Niederl. Antillen Gulden
-currenciesDisplayName.CZK=Tschechische Krone
-currenciesDisplayName.AZM=Aserbeidschan Manat
+currenciesDisplayName.AZN=Aserbaidschan-Manat
+currenciesDisplayName.AZM=Aserbaidschan-Manat (1993-2006)
 currenciesDisplayName.KYD=Kaiman-Dollar
 currenciesDisplayName.GMD=Dalasi
-currenciesDisplayName.BGN=Lew
-currenciesDisplayName.CAD=Kanadischer Dollar
+currenciesDisplayName.VEF=Bol\u00edvar Fuerte
+currenciesDisplayName.BGN=Bulgarische Lew (BGN)
 currenciesDisplayName.MXV=Mexican Unidad de Inversion (UDI)
-currenciesDisplayName.BGL=Lew
+currenciesDisplayName.CAD=Kanadische Dollar
+currenciesDisplayName.BGL=Lew (1962-1999)
 currenciesDisplayName.VEB=Bolivar
+currenciesDisplayName.MLF=Malische Franc
+currenciesDisplayName.MXP=Mexikanische Silber-Peso (MXP)
 currenciesDisplayName.ILS=Schekel
-currenciesDisplayName.MXP=Mexikanischer Silber-Peso (1861-1992)
 currenciesDisplayName.PES=Sol
-currenciesDisplayName.GYD=Guyana Dollar
-currenciesDisplayName.MXN=Mexikanischer Peso
-currenciesDisplayName.ILP=Israelisches Pfund
-currenciesDisplayName.SKK=Slowakische Krone
-currenciesDisplayName.CYP=Zypern Pfund
-currenciesDisplayName.XDR=Sonderziehungsrechte
-currenciesDisplayName.PEN=Neuer Sol
-currenciesDisplayName.LRD=Liberianischer Dollar
-currenciesDisplayName.PEI=Peruanischer Inti
+currenciesDisplayName.MXN=Mexikanische Peso
+currenciesDisplayName.GYD=Guyana-Dollar
+currenciesDisplayName.ILP=Israelische Pfund
+currenciesDisplayName.CYP=Zypern-Pfund
+currenciesDisplayName.SKK=Slowakische Kronen
+currenciesDisplayName.XDR=Sonderziehungsrecht
+currenciesDisplayName.PEN=Neue Sol
+currenciesDisplayName.LRD=Liberianische Dollar
+currenciesDisplayName.PEI=Peruanische Inti
 currenciesDisplayName.AMD=Dram
 currenciesDisplayName.BSD=Bahama-Dollar
+currenciesDisplayName.XPT=Platin
 currenciesDisplayName.HRK=Kuna
-currenciesDisplayName.CLP=Chilenischer Peso
-currenciesDisplayName.HRD=Kroatischer Dinar
+currenciesDisplayName.CLP=Chilenische Peso
+currenciesDisplayName.HRD=Kroatische Dinar
 currenciesDisplayName.XPF=CFP Franc
-currenciesDisplayName.FRF=Franz\u00f6sischer Franc
-currenciesDisplayName.BRR=Brasilianischer Cruzeiro
+currenciesDisplayName.FRF=Franz\u00f6sische Franc
+currenciesDisplayName.XPD=Palladium
+currenciesDisplayName.BRR=Brasilianische Cruzeiro
 currenciesDisplayName.MKD=Denar
 currenciesDisplayName.CLF=Unidades de Fomento
 currenciesDisplayName.ALL=Lek
-currenciesDisplayName.BRN=Brasilianischer Cruzado Novo
+currenciesDisplayName.BRN=Brasilianische Cruzado Novo
 currenciesDisplayName.MWK=Malawi Kwacha
 currenciesDisplayName.BRL=Real
 currenciesDisplayName.TPE=Timor Escudo
-currenciesDisplayName.BRE=Brasilianischer Cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brasilianischer Cruzado
-currenciesDisplayName.BRB=Brasilianischer Cruzeiro Novo (1967-1986)
+currenciesDisplayName.BRE=Brasilianische Cruzeiro (1990-1993)
+currenciesDisplayName.BRC=Brasilianische Cruzado
+currenciesDisplayName.BRB=Brasilianische Cruzeiro Novo (1967-1986)
 currenciesDisplayName.DEM=Deutsche Mark
 currenciesDisplayName.KWD=Kuwait Dinar
-currenciesDisplayName.XCD=Ostkaribischer Dollar
-currenciesDisplayName.NPR=Nepalesische Rupie
-currenciesDisplayName.GWP=Guinea Bissau Peso
-currenciesDisplayName.YUN=Jugoslawischer Dinar (konvertibel)
+currenciesDisplayName.XCD=Ostkaribische Dollar
+currenciesDisplayName.NPR=Nepalesische Rupien
+currenciesDisplayName.GWP=Guinea-Bissau Peso
+currenciesDisplayName.YUN=Jugoslawische Dinar (konvertibel)
 currenciesDisplayName.SVC=El Salvador Colon
-currenciesDisplayName.YUM=Neuer Dinar
+currenciesDisplayName.YUM=Neue Dinar
+currenciesDisplayName.BEL=Belgische Finanz-Franc
 currenciesDisplayName.SIT=Tolar
 currenciesDisplayName.JPY=Yen
 currenciesDisplayName.XOF=CFA Franc (West)
 currenciesDisplayName.MVR=Rufiyaa
+currenciesDisplayName.BEF=Belgische Franc
 currenciesDisplayName.GWE=Portugiesisch Guinea Escudo
-currenciesDisplayName.BEF=Belgischer Franc
 currenciesDisplayName.TOP=Pa\u02bbanga
-currenciesDisplayName.YUD=Jugoslawischer Dinar (1966-1990)
-currenciesDisplayName.BEC=Belgischer Franc (konvertibel)
-currenciesDisplayName.SUR=Sowjetischer Rubel
+currenciesDisplayName.YUD=Jugoslawische Dinar (1966-1990)
+currenciesDisplayName.BEC=Belgische Franc (konvertibel)
+currenciesDisplayName.SUR=Sowjetische Rubel
+currenciesDisplayName.RON=Rum\u00e4nische Leu
 currenciesDisplayName.ROL=Leu
-currenciesDisplayName.BDT=Taka
-currenciesDisplayName.XBD=Europ\u00e4ische Rechnungseinheit (XBD)
+currenciesDisplayName.BDT=Bangladesch-Taka
+currenciesDisplayName.DDM=Mark der DDR
+currenciesDisplayName.XBD=Europ\u00e4ische Rechnungseinheiten (XBD)
 currenciesDisplayName.AWG=Aruba Florin
-currenciesDisplayName.XBC=Europ\u00e4ische Rechnungseinheit (XBC)
-currenciesDisplayName.XBA=Europ\u00e4ische Rechnungseinheit
-currenciesDisplayName.NOK=Norwegische Krone
-currenciesDisplayName.MUR=Mauritius Rupie
+currenciesDisplayName.XBC=Europ\u00e4ische Rechnungseinheiten (XBC)
+currenciesDisplayName.XBB=Europ\u00e4ische W\u00e4hrungseinheiten (XBB)
+currenciesDisplayName.XBA=Europ\u00e4ische Rechnungseinheiten
+currenciesDisplayName.NOK=Norwegische Kronen
+currenciesDisplayName.MUR=Mauritius-Rupie
 currenciesDisplayName.ZAR=Rand
 currenciesDisplayName.SHP=St. Helena Pfund
 currenciesDisplayName.XAU=Gold
 currenciesDisplayName.VND=Dong
-currenciesDisplayName.TZS=Tansania Schilling
-currenciesDisplayName.GIP=Gibraltar Pfund
-currenciesDisplayName.TND=Tunesischer Dinar
+currenciesDisplayName.TZS=Tansania-Schilling
+currenciesDisplayName.GIP=Gibraltar-Pfund
+currenciesDisplayName.TND=Tunesische Dinar
 currenciesDisplayName.CVE=Kap Verde Escudo
-currenciesDisplayName.UGX=Uganda Schilling
+currenciesDisplayName.UGX=Uganda-Schilling
+currenciesDisplayName.XAG=Silber
 currenciesDisplayName.ZMK=Kwacha
-currenciesDisplayName.JOD=Jordanischer Dinar
+currenciesDisplayName.JOD=Jordanische Dinar
 currenciesDisplayName.XAF=CFA Franc (\u00c4quatorial)
-currenciesDisplayName.LBP=Libanesisches Pfund
-currenciesDisplayName.UGS=Uganda Schilling (1966-1987)
+currenciesDisplayName.LBP=Libanesische Pfund
+currenciesDisplayName.UGS=Uganda-Schilling (1966-1987)
 currenciesDisplayName.STD=Dobra
 currenciesDisplayName.WST=Tala
 currenciesDisplayName.KHR=Riel
+currenciesDisplayName.DOP=Dominikanische Peso
 currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Dominikanischer Peso
 currenciesDisplayName.BOV=Mvdol
-currenciesDisplayName.MTP=Maltesisches Pfund
-currenciesDisplayName.USS=US Dollar (Gleicher Tag)
-currenciesDisplayName.BOP=Bolivianischer Peso
+currenciesDisplayName.MTP=Maltesische Pfund
+currenciesDisplayName.USS=US-Dollar (Gleicher Tag)
+currenciesDisplayName.BOP=Bolivianische Peso
+currenciesDisplayName.CUP=Kubanische Peso
 currenciesDisplayName.MTL=Maltesische Lira
-currenciesDisplayName.CUP=Kubanischer Peso
 currenciesDisplayName.TMM=Turkmenistan-Manat
-currenciesDisplayName.USN=US Dollar (N\u00e4chster Tag)
-currenciesDisplayName.SGD=Singapur Dollar
-currenciesDisplayName.NZD=Neuseeland Dollar
-currenciesDisplayName.USD=US Dollar
-currenciesDisplayName.HNL=Lempira
+currenciesDisplayName.USN=US-Dollar (N\u00e4chster Tag)
+currenciesDisplayName.GHS=Ghanaische Cedi
+currenciesDisplayName.SGD=Singapur-Dollar
+currenciesDisplayName.NZD=Neuseeland-Dollar
+currenciesDisplayName.USD=US-Dollar
 currenciesDisplayName.BOB=Boliviano
-currenciesDisplayName.ITL=Italienische Lire
+currenciesDisplayName.HNL=Lempira
+currenciesDisplayName.CHW=WIR Franken
+currenciesDisplayName.ITL=Italienische Lira
 currenciesDisplayName.PAB=Balboa
 currenciesDisplayName.GTQ=Quetzal
+currenciesDisplayName.XXX=Unbekannte W\u00e4hrung
+currenciesDisplayName.AUD=Australische Dollar
+currenciesDisplayName.GHC=Ghanaische Cedi (GHC)
 currenciesDisplayName.LAK=Kip
-currenciesDisplayName.GHC=Cedi
-currenciesDisplayName.AUD=Australischer Dollar
-currenciesDisplayName.NAD=Namibia Dollar
+currenciesDisplayName.NAD=Namibia-Dollar
 currenciesDisplayName.KGS=Som
-currenciesDisplayName.MGF=Madagaskar Franc
-currenciesDisplayName.CHF=Schweizer Franken
+currenciesDisplayName.MGF=Madagaskar-Franc
 currenciesDisplayName.BBD=Barbados-Dollar
-currenciesDisplayName.MGA=Madagaskar Ariary
+currenciesDisplayName.CHF=Schweizer Franken
+currenciesDisplayName.CHE=WIR-Euro
+currenciesDisplayName.MGA=Madagaskar-Ariary
 currenciesDisplayName.PYG=Guarani
 currenciesDisplayName.PLZ=Zloty (1950-1995)
-currenciesDisplayName.YER=Jemen Rial
-currenciesDisplayName.ATS=\u00d6sterreichischer Schilling
+currenciesDisplayName.YER=Jemen-Rial
+currenciesDisplayName.ATS=\u00d6sterreichische Schilling
 currenciesDisplayName.ETB=Birr
 currenciesDisplayName.BND=Brunei-Dollar
-currenciesDisplayName.JMD=Jamaika Dollar
-currenciesDisplayName.EGP=\u00c4gyptisches Pfund
+currenciesDisplayName.EGP=\u00c4gyptische Pfund
+currenciesDisplayName.JMD=Jamaika-Dollar
 currenciesDisplayName.PLN=Zloty
-currenciesDisplayName.DZD=Algerischer Dinar
-currenciesDisplayName.ISK=Isl\u00e4ndische Krone
+currenciesDisplayName.DZD=Algerische Dinar
+currenciesDisplayName.ISK=Isl\u00e4ndische Kronen
 currenciesDisplayName.SRG=Suriname Gulden
-currenciesDisplayName.LYD=Libyscher Dinar
-currenciesDisplayName.BZD=Belize-Dollar
+currenciesDisplayName.LYD=Libysche Dinar
+currenciesDisplayName.SRD=Surinamische Dollar
 currenciesDisplayName.BAM=Konvertierbare Mark
-currenciesDisplayName.ESP=Spanische Pesete
-currenciesDisplayName.KRW=S\u00fcdkoreanischer Won
-currenciesDisplayName.NLG=Holl\u00e4ndischer Gulden
+currenciesDisplayName.BZD=Belize-Dollar
+currenciesDisplayName.ESP=Spanische Peseta
+currenciesDisplayName.KRW=S\u00fcdkoreanische Won
+currenciesDisplayName.NLG=Holl\u00e4ndische Gulden
 currenciesDisplayName.MRO=Ouguiya
 currenciesDisplayName.BAD=Bosnien und Herzegowina Dinar
-currenciesDisplayName.ZWD=Simbabwe Dollar
-currenciesDisplayName.SEK=Schwedische Krone
+currenciesDisplayName.ZWD=Simbabwe-Dollar
+currenciesDisplayName.SEK=Schwedische Kronen
+currenciesDisplayName.CSK=Tschechoslowakische Kronen
 currenciesDisplayName.BYR=Belarus Rubel (neu)
+currenciesDisplayName.ESB=Spanische Peseten (konvertibel)
 currenciesDisplayName.IRR=Rial
-currenciesDisplayName.PKR=Pakistanische Rupie
+currenciesDisplayName.ESA=Spanische Peseten (A-Konten)
+currenciesDisplayName.PKR=Pakistanische Rupien
 currenciesDisplayName.BMD=Bermuda-Dollar
-currenciesSymbol.ATS=\u00f6S
-currenciesSymbol.KGS=som
-currenciesSymbol.FRF=FF
-currenciesSymbol.CHF=SFr.
-currenciesSymbol.DEM=DM
+currenciesDisplayName.CSD=Alte Serbische Dinar
 currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=BGL
+currenciesSymbol.LKR=LKR
+currenciesSymbol.KES=KES
+currenciesSymbol.CYP=CYP
+currenciesSymbol.BYR=BYR
+currenciesSymbol.MKD=MKD
+currenciesSymbol.MWK=MWK
+currenciesSymbol.BMD=BMD
+currenciesSymbol.IEP=IEP
+currenciesSymbol.SCR=SCR
+currenciesSymbol.AMD=dram
+currenciesSymbol.TOP=TOP
+currenciesSymbol.FRF=FF
+currenciesSymbol.SOS=Sh.
+currenciesSymbol.NPR=NPR
+currenciesSymbol.CLP=CLP
+currenciesSymbol.KWD=KWD
+currenciesSymbol.GEL=GEL
 currenciesSymbol.AFN=Af
-shortMonths=Jan®Feb®Mrz®Apr®Mai®Jun®Jul®Aug®Sep®Okt®Nov®Dez®®
-months=Januar®Februar®M\u00e4rz®April®Mai®Juni®Juli®August®September®Oktober®November®Dezember®®
-shortWeekdays=®So®Mo®Di®Mi®Do®Fr®Sa®
-weekdays=®Sonntag®Montag®Dienstag®Mittwoch®Donnerstag®Freitag®Samstag®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=v. Chr.®n. Chr.®
-ampms=vorm.®nachm.®
+currenciesSymbol.ZAR=ZAR
+currenciesSymbol.RON=0\u2264lei|1\u2264leu|1
+currenciesSymbol.IQD=IQD
+currenciesSymbol.ARS=ARS
+currenciesSymbol.JPY=\u00a5
+currenciesSymbol.ALL=lek
+currenciesSymbol.CRC=CRC
+currenciesSymbol.IDR=IDR
+currenciesSymbol.DEM=DM
+currenciesSymbol.TZS=TZS
+currenciesSymbol.SBD=SBD
+currenciesSymbol.NOK=NOK
+currenciesSymbol.UGX=UGX
+currenciesSymbol.BEF=BEF
+currenciesSymbol.TTD=TTD
+currenciesSymbol.PHP=PHP
+currenciesSymbol.SZL=SZL
+currenciesSymbol.STD=STD
+currenciesSymbol.SAR=SAR
+currenciesSymbol.FJD=FJD
+currenciesSymbol.UYU=UYU
+currenciesSymbol.BDT=BDT
+currenciesSymbol.QAR=QAR
+currenciesSymbol.MNT=MNT
+currenciesSymbol.LBP=LBP
+currenciesSymbol.DJF=DJF
+currenciesSymbol.JOD=JOD
+currenciesSymbol.USD=$
+currenciesSymbol.SGD=SGD
+currenciesSymbol.KHR=KHR
+currenciesSymbol.SYP=SYP
+currenciesSymbol.MTL=MTL
+currenciesSymbol.MZN=MZN
+currenciesSymbol.MZM=MZM
+currenciesSymbol.YER=YER
+currenciesSymbol.HUF=HUF
+currenciesSymbol.CVE=CVE
+currenciesSymbol.NZD=NZD
+currenciesSymbol.OMR=OMR
+currenciesSymbol.KZT=KZT
+currenciesSymbol.INR=INR
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.NAD=NAD
+currenciesSymbol.GHS=GH\u00a2
+currenciesSymbol.COP=COP
+currenciesSymbol.TRL=TRL
+currenciesSymbol.ITL=IT\u20a4
+currenciesSymbol.HNL=HNL
+currenciesSymbol.KGS=KGS
+currenciesSymbol.ZWD=ZWD
+currenciesSymbol.MYR=MYR
+currenciesSymbol.SRG=SRG
+currenciesSymbol.BIF=BIF
+currenciesSymbol.VEF=BsF
+currenciesSymbol.PLN=PLN
+currenciesSymbol.LSL=LSL
+currenciesSymbol.GNF=GNF
+currenciesSymbol.VEB=VEB
+currenciesSymbol.BOB=BOB
+currenciesSymbol.CNY=CNY
+currenciesSymbol.KMF=KMF
+currenciesSymbol.SEK=SKr
+currenciesSymbol.AUD=AUD
+currenciesSymbol.LYD=LYD
+currenciesSymbol.JMD=JMD
+currenciesSymbol.SKK=SKK
+currenciesSymbol.CHF=SFr.
+currenciesSymbol.ETB=ETB
+currenciesSymbol.MRO=MRO
+currenciesSymbol.BBD=BBD
+currenciesSymbol.PKR=PKR
+currenciesSymbol.BTN=BTN
+currenciesSymbol.BHD=BHD
+currenciesSymbol.TWD=TWD
+currenciesSymbol.ATS=\u00f6S
+currenciesSymbol.MXN=MXN
+currenciesSymbol.DZD=DZD
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.BZD=BZD
+currenciesSymbol.IRR=IRR
+currenciesSymbol.GYD=GYD
+currenciesSymbol.BAM=BAM
+currenciesSymbol.CAD=CAD
+shortMonths=\u00ae\u00aeM\u00e4r\u00ae\u00ae\u00ae\u00aeJul\u00aeAug\u00aeSep\u00aeOkt\u00aeNov\u00aeDez\u00ae\u00ae
+months=Januar\u00aeFebruar\u00aeM\u00e4rz\u00aeApril\u00aeMai\u00aeJuni\u00aeJuli\u00aeAugust\u00aeSeptember\u00aeOktober\u00aeNovember\u00aeDezember\u00ae\u00ae
+shortWeekdays=\u00aeSo.\u00aeMo.\u00aeDi.\u00aeMi.\u00aeDo.\u00aeFr.\u00aeSa.\u00ae
+weekdays=\u00aeSonntag\u00aeMontag\u00aeDienstag\u00aeMittwoch\u00aeDonnerstag\u00aeFreitag\u00aeSamstag\u00ae
+eras=v. Chr.\u00aen. Chr.\u00ae
+ampms=vorm.\u00aenachm.\u00ae
 shortDateFormat=dd.MM.yy
 mediumDateFormat=dd.MM.yyyy
 longDateFormat=d. MMMM yyyy
 fullDateFormat=EEEE, d. MMMM yyyy
-fullTimeFormat=H:mm' Uhr 'z
-zoneStrings=Europe/Berlin®MEZ®Mitteleurop\u00e4ische Zeit®MESZ®Mitteleurop\u00e4ische Sommerzeit®©
-territories.TL=Osttimor
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00aeOsteurop\u00e4ische Zeit\u00aeOEZ\u00aeOsteurop\u00e4ische Sommerzeit\u00aeOESZ\u00ae\u00a9Africa_Southern\u00aeS\u00fcdafrikanische Standardzeit\u00ae\u00ae\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk-Zeit\u00ae\u00aeAktyubinsk-Sommerzeit\u00ae\u00ae\u00a9Almaty\u00aeAlmaty-Zeit\u00ae\u00aeAlmaty-Sommerzeit\u00ae\u00ae\u00a9Africa_Western\u00aeWestafrikanische Zeit\u00ae\u00aeWestafrikanische Sommerzeit\u00ae\u00ae\u00a9Africa_Central\u00aeZentralafrikanische Zeit\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Central\u00aeMitteleurop\u00e4ische Zeit\u00aeMEZ\u00aeMitteleurop\u00e4ische Sommerzeit\u00aeMESZ\u00ae\u00a9Africa_Eastern\u00aeOstafrikanische Zeit\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00aeAcre-Zeit\u00ae\u00aeAcre-Sommerzeit\u00ae\u00ae\u00a9Europe_Western\u00aeWesteurop\u00e4ische Zeit\u00aeWEZ\u00aeWesteurop\u00e4ische Sommerzeit\u00aeWESZ\u00ae\u00a9Afghanistan\u00aeAfghanistan-Zeit\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00ae\u00ae\u00aeAmazonas-Sommerzeit\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii-Standardzeit\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeMoskauer Zeit\u00ae\u00aeMoskauer Sommerzeit\u00ae\u00ae\u00a9Alaska\u00aeAlaska-Standardzeit\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=Timor-Leste
 territories.TK=Tokelau
 territories.TJ=Tadschikistan
 territories.TH=Thailand
@@ -288,17 +430,18 @@ territories.GL=Gr\u00f6nland
 territories.SV=El Salvador
 territories.062=S\u00fcd-Zentralasien
 territories.ST=S\u00e3o Tom\u00e9 und Pr\u00edncipe
-territories.061=Polynesien
 territories.GI=Gibraltar
+territories.061=Polynesien
 territories.GH=Ghana
 territories.SR=Suriname
+territories.GG=Guernsey
 territories.GF=Franz\u00f6sisch-Guayana
 territories.GE=Georgien
 territories.SO=Somalia
 territories.GD=Grenada
 territories.SN=Senegal
 territories.SM=San Marino
-territories.GB=Vereinigtes K\u00f6nigreich
+territories.GB=Gro\u00dfbritannien
 territories.SL=Sierra Leone
 territories.GA=Gabun
 territories.SK=Slowakei
@@ -312,26 +455,27 @@ territories.SC=Seychellen
 territories.SB=Salomonen
 territories.SA=Saudi-Arabien
 territories.FR=Frankreich
-territories.057=Mikronesien
 territories.FO=F\u00e4r\u00f6er
+territories.057=Mikronesisches Inselgebiet
 territories.FM=Mikronesien
 territories.RW=Ruanda
 territories.054=Melanesien
-territories.053=Australien und Neuseeland
 territories.FK=Falklandinseln
-territories.RU=Russische F\u00f6deration
+territories.053=Australien und Neuseeland
+territories.RU=Russland
 territories.FJ=Fidschi
 territories.FI=Finnland
+territories.RS=Serbien
 territories.RO=Rum\u00e4nien
 territories.RE=R\u00e9union
 territories.ET=\u00c4thiopien
 territories.ES=Spanien
 territories.ER=Eritrea
-territories.833=Insel Man
+territories.QU=Europ\u00e4ische Union
 territories.EH=Westsahara
 territories.EG=\u00c4gypten
-territories.830=Kanalinseln
 territories.EE=Estland
+territories.830=Kanalinseln
 territories.QO=\u00c4u\u00dferes Ozeanien
 territories.EC=Ecuador
 territories.DZ=Algerien
@@ -339,13 +483,14 @@ territories.QA=Katar
 territories.039=S\u00fcdeuropa
 territories.DO=Dominikanische Republik
 territories.PY=Paraguay
-territories.035=S\u00fcdostasien
 territories.DM=Dominica
+territories.035=S\u00fcdostasien
 territories.PW=Palau
+territories.034=S\u00fcdasien
 territories.DK=D\u00e4nemark
 territories.DJ=Dschibuti
 territories.PT=Portugal
-territories.PS=Pal\u00e4stinensische Gebiete
+territories.PS=Pal\u00e4stina
 territories.030=Ostasien
 territories.PR=Puerto Rico
 territories.DE=Deutschland
@@ -356,7 +501,7 @@ territories.PK=Pakistan
 territories.PH=Philippinen
 territories.PG=Papua-Neuguinea
 territories.PF=Franz\u00f6sisch-Polynesien
-territories.CZ=Tschechische Republik
+territories.CZ=Tschechien
 territories.PE=Peru
 territories.CY=Zypern
 territories.CX=Weihnachtsinsel
@@ -371,15 +516,16 @@ territories.CN=China
 territories.CM=Kamerun
 territories.CL=Chile
 territories.CK=Cookinseln
-territories.CI=C\u00f4te d\u2019Ivoire
-territories.021=Nordamerika
+territories.021=N\u00f6rdliches Amerika
+territories.CI=Elfenbeink\u00fcste
 territories.CH=Schweiz
 territories.CG=Kongo
 territories.CF=Zentralafrikanische Republik
 territories.CD=Demokratische Republik Kongo
-territories.CC=Kokosinseln (Keeling)
+territories.CC=Kokosinseln
 territories.OM=Oman
 territories.CA=Kanada
+territories.419=Lateinamerika und Karibik
 territories.BZ=Belize
 territories.BY=Belarus
 territories.BW=Botsuana
@@ -388,25 +534,28 @@ territories.BT=Bhutan
 territories.BS=Bahamas
 territories.BR=Brasilien
 territories.019=Nord-, Mittel- und S\u00fcdamerika
-territories.018=S\u00fcdafrika
+territories.018=S\u00fcdliches Afrika
 territories.NZ=Neuseeland
-territories.BO=Bolivien
 territories.017=Zentralafrika
+territories.BO=Bolivien
 territories.BN=Brunei Darussalam
-territories.BM=Bermuda
 territories.015=Nordafrika
+territories.BM=Bermuda
 territories.014=Ostafrika
+territories.BL=St. Barth\u00e9lemy
 territories.013=Mittelamerika
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Westafrika
+territories.BI=Burundi
+territories.172=Gemeinschaft Unabh\u00e4ngiger Staaten
 territories.BH=Bahrain
 territories.NR=Nauru
 territories.BG=Bulgarien
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgien
+territories.ZZ=Unbekannte oder ung\u00fcltige Region
 territories.NO=Norwegen
 territories.BD=Bangladesch
 territories.BB=Barbados
@@ -427,24 +576,25 @@ territories.AU=Australien
 territories.AT=\u00d6sterreich
 territories.AS=Amerikanisch-Samoa
 territories.AR=Argentinien
-territories.009=Ozeanien
 territories.AQ=Antarktis
+territories.009=Ozeanien
 territories.MZ=Mosambik
 territories.AO=Angola
-territories.MY=Malaysia
+territories.MY=Malaysien
 territories.AN=Niederl\u00e4ndische Antillen
 territories.MX=Mexiko
-territories.005=S\u00fcdamerika
 territories.AM=Armenien
+territories.005=S\u00fcdamerika
 territories.MW=Malawi
 territories.AL=Albanien
 territories.MV=Malediven
+territories.003=Nordamerika
 territories.ZA=S\u00fcdafrika
 territories.MU=Mauritius
 territories.002=Afrika
 territories.MT=Malta
-territories.001=Welt
 territories.AI=Anguilla
+territories.001=Welt
 territories.MS=Montserrat
 territories.MR=Mauretanien
 territories.AG=Antigua und Barbuda
@@ -452,7 +602,7 @@ territories.MQ=Martinique
 territories.AF=Afghanistan
 territories.MP=N\u00f6rdliche Marianen
 territories.AE=Vereinigte Arabische Emirate
-territories.MO=Macau S.A.R., China
+territories.MO=Macau
 territories.AD=Andorra
 territories.MN=Mongolei
 territories.MM=Myanmar
@@ -461,6 +611,8 @@ territories.MK=Mazedonien
 territories.YT=Mayotte
 territories.MH=Marshallinseln
 territories.MG=Madagaskar
+territories.MF=St. Martin
+territories.ME=Montenegro
 territories.MD=Republik Moldau
 territories.MC=Monaco
 territories.MA=Marokko
@@ -481,12 +633,13 @@ territories.LC=St. Lucia
 territories.LB=Libanon
 territories.LA=Laos
 territories.KZ=Kasachstan
-territories.KY=Kaimaninseln
+territories.KY=Cayman-Inseln
 territories.KW=Kuwait
 territories.145=Westasien
+territories.143=Zentralasien
 territories.142=Asien
-territories.KR=Republik Korea
-territories.KP=Demokratische Volksrepublik Korea
+territories.KR=S\u00fcdkorea
+territories.KP=Nordkorea
 territories.KN=St. Kitts und Nevis
 territories.KM=Komoren
 territories.KI=Kiribati
@@ -499,6 +652,7 @@ territories.JP=Japan
 territories.JO=Jordanien
 territories.JM=Jamaika
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=Amerikanische Jungferninseln
 territories.VG=Britische Jungferninseln
@@ -513,6 +667,7 @@ territories.UZ=Usbekistan
 territories.IO=Britisches Territorium im Indischen Ozean
 territories.UY=Uruguay
 territories.IN=Indien
+territories.IM=Isle of Man
 territories.IL=Israel
 territories.US=Vereinigte Staaten
 territories.IE=Irland
@@ -525,38 +680,41 @@ territories.HT=Haiti
 territories.HR=Kroatien
 territories.TZ=Tansania
 territories.HN=Honduras
-territories.HM=Heard und McDonaldinseln
+territories.HM=Heard- und McDonald-Inseln
 territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R., China
+territories.HK=Hongkong
 territories.TT=Trinidad und Tobago
 territories.TR=T\u00fcrkei
 territories.TO=Tonga
 territories.TN=Tunesien
 territories.TM=Turkmenistan
-languages.akk=Akkadisch
 languages.gwi=Kutchin-Sprache
+languages.akk=Akkadisch
 languages.eka=Ekajuk
 languages.ijo=Ijo-Sprache
 languages.xh=Xhosa
 languages.sux=Sumerisch
 languages.sus=Susu
-languages.mis=Verschiedene Sprachen
+languages.mis=Diverse Sprache
 languages.loz=Rotse-Sprache
-languages.tog=Tonga (Nyasa)
+languages.tog=Tsonga-Sprache
+languages.zbl=Bliss-Symbole
 languages.pon=Ponapeanisch
 languages.min=Minangkabau-Sprache
 languages.suk=Sukuma-Sprache
 languages.wo=Wolof
-languages.kut=Kutenai-Sprache
 languages.lol=Mongo
+languages.kut=Kutenai-Sprache
 languages.mic=Micmac-Sprache
 languages.wa=Wallonisch
 languages.kum=Kum\u00fckisch
 languages.zap=Zapotekisch
-languages.cus=Kuschitische Sprachen (Andere)
-languages.doi=Dogri
+languages.ain=Ainu
+languages.cus=Kuschitische Sprachen
 languages.jbo=Lojban
+languages.doi=Dogri
+languages.zza=Zaza
 languages.vo=Volap\u00fck
 languages.oto=Otomangue-Sprachen
 languages.vi=Vietnamesisch
@@ -571,21 +729,23 @@ languages.nap=Neapolitanisch
 languages.uz=Usbekisch
 languages.uga=Ugaritisch
 languages.tmh=Tamaseq
-languages.nai=Indianersprachen, Nordamerika (Andere)
+languages.nai=Indianersprachen Nordamerika
 languages.nah=Nahuatl
 languages.ur=Urdu
 languages.fat=Fanti-Sprache
 languages.uk=Ukrainisch
 languages.egy=\u00c4gyptisch
+languages.zxx=Kein Sprachinhalt
 languages.ug=Uigurisch
 languages.fan=Pangwe-Sprache
-languages.ssa=Nilosaharanische Sprachen (Andere)
-languages.bat=Baltische Sprachen (Andere)
+languages.ssa=Nilosaharanische Sprachen
 languages.mga=Mittelirisch
+languages.bat=Baltische Sprachen (Andere)
 languages.nyo=Nyoro
 languages.bas=Basaa-Sprache
-languages.nyn=Nyankole
+languages.nyn=Nkole-Sprache
 languages.nym=Nyamwezi-Sprache
+languages.gsw=Hochalemannisch
 languages.hmn=Miao-Sprachen
 languages.ban=Balinesisch
 languages.osa=Osage-Sprache
@@ -595,106 +755,115 @@ languages.bai=Bamileke-Sprache
 languages.tw=Twi
 languages.srr=Serer-Sprache
 languages.tli=Tlingit-Sprache
+languages.tlh=Klingonisch
 languages.tt=Tatarisch
 languages.ts=Tsonga
+languages.srn=Srananisch
 languages.bad=Banda-Sprache
 languages.tr=T\u00fcrkisch
 languages.to=Tongaisch
 languages.tn=Tswana-Sprache
 languages.tl=Tagalog
 languages.tk=Turkmenisch
-languages.ti=Tigrinja
-languages.th=Thai
+languages.ti=Tigrinja-Sprache
+languages.th=Thail\u00e4ndisch
 languages.kru=Oraon-Sprache
 languages.tg=Tadschikisch
 languages.byn=Blin
 languages.te=Telugu
-languages.csb=Kaschubisch
 languages.kro=Kru-Sprachen
+languages.csb=Kaschubisch
 languages.ta=Tamilisch
+languages.krl=karelisch
 languages.tkl=Tokelauanisch
 languages.efi=Efik
-languages.sw=Suaheli
+languages.sw=Swahili
 languages.sv=Schwedisch
-languages.su=Sudanesisch
-languages.krc=Karatschaiisch-Balkarisch
+languages.su=Sundanesisch
+languages.krc=Karatschaisch
 languages.st=S\u00fcd-Sotho-Sprache
 languages.ss=Swazi
 languages.sr=Serbisch
 languages.sq=Albanisch
 languages.men=Mende-Sprache
-languages.crp=Kreolische Sprachen
+languages.crp=Kreolische Sprache
 languages.so=Somali
 languages.afh=Afrihili
-languages.sn=Shona
+languages.sn=Schona-Sprache
 languages.sm=Samoanisch
 languages.sl=Slowenisch
-languages.grc=Griechisch (bis 1453)
+languages.grc=altgriechisch
 languages.sk=Slowakisch
-languages.grb=Grebo-Sprache
+languages.grb=Grebo
 languages.si=Singhalesisch
 languages.sh=Serbo-Kroatisch
-languages.afa=Afro-Asiatische Sprachen  (Andere)
 languages.crh=Krimtatarisch
-languages.sg=Sango
+languages.afa=Afro-Asiatische Sprachen
+languages.sg=Sango-Sprache
 languages.se=Nord-Samisch
 languages.sd=Sindhi
 languages.udm=Udmurtisch
 languages.sc=Sardisch
 languages.sa=Sanskrit
-languages.rw=Ruandisch
+languages.rw=Rwanda-Sprache
+languages.nwc=Alt-Newari
 languages.ru=Russisch
 languages.mdr=Mandaresisch
 languages.ro=Rum\u00e4nisch
 languages.rn=Rundi-Sprache
 languages.rm=R\u00e4toromanisch
-languages.mdf=Moksha
+languages.fr_CH=Schweizer Franz\u00f6sisch
+languages.mdf=Mokschamordwinisch
 languages.tiv=Tiv-Sprache
-languages.ady=Adygai
+languages.fr_CA=Kanadisches Franz\u00f6sisch
+languages.ady=Adygeisch
 languages.zun=Zuni-Sprache
 languages.kpe=Kpelle-Sprache
-languages.qu=Quechua
+languages.qu=Ketchua
 languages.tig=Tigre
 languages.son=Songhai-Sprache
-languages.cpp=Kreolisch-Portugiesisch (Andere)
+languages.cpp=kreolisch/pidgin Sprache (Grundsprache portugiesisch)
+languages.rup=Aromunisch
 languages.sog=Sogdisch
 languages.ada=Adangme
-languages.cpf=Kreolisch-Franz\u00f6sisch (Andere)
-languages.hit=Hethitisch
 languages.kos=Kosraeanisch
-languages.cpe=Kreolisch-Englisch (Andere)
+languages.hit=Hethitisch
+languages.cpf=kreolisch/pidgin Sprache (Grundsprache franz\u00f6sisch)
+languages.cpe=kreolisch/pidgin Sprache (Grundsprache englisch)
 languages.him=Himachali
-languages.got=Gotisch
-languages.hil=Hiligaynon-Sprache
 languages.kok=Konkani
+languages.hil=Hiligaynon-Sprache
+languages.got=Gotisch
 languages.gor=Mongondou
 languages.gon=Gondi-Sprache
 languages.din=Dinka-Sprache
-languages.nub=Nubische Sprachen
+languages.nub=Nubische Sprache
 languages.pt=Portugiesisch
-languages.ps=Afghanisch (Paschtu)
+languages.ps=Paschtu
 languages.fur=Friulisch
 languages.phn=Ph\u00f6nikisch
+languages.de_CH=Schweizer Hochdeutsch
 languages.goh=Althochdeutsch
 languages.snk=Soninke-Sprache
 languages.cop=Koptisch
 languages.yap=Yapesisch
 languages.ach=Acholi-Sprache
 languages.yao=Yao-Sprache
-languages.phi=Philippinen-Austronesisch (Andere)
+languages.phi=Philippinen-Austronesische Sprachen
 languages.pl=Polnisch
 languages.ace=Aceh-Sprache
 languages.pi=Pali
-languages.pa=Pandschabisch
-languages.bug=Buginesisch
+languages.pt_PT=Iberisches Portugiesisch
+languages.pa=Pandschabi-Sprache
+languages.bug=Bugi-Sprache
 languages.iba=Iban
 languages.sms=Skolt-Lappisch
 languages.bua=Burjatisch
 languages.mas=Massai-Sprache
 languages.smn=Inari-Lappisch
 languages.os=Ossetisch
-languages.map=Austronesische Sprachen (Andere)
-languages.or=Orija
+languages.map=austronesische Sprache
+languages.or=Oriya-Sprache
 languages.man=Manding-Sprache
 languages.smj=Lule-Lappisch
 languages.smi=Lappisch
@@ -704,54 +873,61 @@ languages.mai=Maithili
 languages.oj=Ojibwa-Sprache
 languages.mag=Khotta
 languages.mad=Maduresisch
-languages.sma=S\u00fcd-Samisch
+languages.sma=S\u00fcdlappisch
 languages.oc=Okzitanisch
-languages.nso=Sotho-Sprache (Nord)
-languages.btk=Batak (Indonesien)
-languages.myv=Erzya
+languages.nso=Nord-Sotho-Sprache
+languages.btk=batak
+languages.myv=erza
+languages.es_ES=Iberisches Spanisch
+languages.de_AT=\u00d6sterreichisches Deutsch
 languages.dgr=Dogrib
-languages.ny=Chewa-Sprache
+languages.ny=Nyanja-Sprache
 languages.myn=Maya-Sprachen
 languages.nv=Navajo-Sprache
-languages.kmb=Kimbundu-Sprache
-languages.nr=Ndebele-Sprache (S\u00fcd)
+languages.kmb=kimbundu
+languages.nr=S\u00fcd-Ndebele-Sprache
 languages.gmh=Mittelhochdeutsch
 languages.no=Norwegisch
-languages.nn=Norwegisch Nynorsk
+languages.nn=Norwegisch (Nynorsk)
 languages.nl=Niederl\u00e4ndisch
+languages.root=Root
 languages.ng=Ndonga
-languages.sla=Slawische Sprachen (Andere)
-languages.ne=Nepalesisch
-languages.nd=Ndebele-Sprache (Nord)
+languages.sla=Slawische Sprachen
+languages.ne=Nepali
+languages.nd=Nord-Ndebele-Sprache
 languages.cmc=Cham-Sprachen
 languages.tet=Tetum-Sprache
-languages.nb=Norwegisch Bokm\u00e5l
-languages.na=Nauruisch
+languages.nb=Norwegisch (Bokm\u00e5l)
+languages.na=nauruisch
 languages.ter=Tereno-Sprache
 languages.tem=Temne
-languages.my=Birmanisch
+languages.my=birmanisch
 languages.lez=Lesgisch
 languages.mt=Maltesisch
+languages.frs=Ostfriesisch
 languages.peo=Altpersisch
 languages.ms=Malaiisch
+languages.frr=Nordfriesisch
 languages.mr=Marathi
 languages.fro=Altfranz\u00f6sisch
-languages.mo=Moldauisch
+languages.mo=moldauisch
 languages.mn=Mongolisch
 languages.frm=Mittelfranz\u00f6sisch
 languages.ml=Malayalam
 languages.jrb=J\u00fcdisch-Arabisch
 languages.mk=Mazedonisch
-languages.mi=Maori
+languages.mi=Maori-Sprache
 languages.mh=Marschallesisch
-languages.mg=Madagassisch
+languages.mg=madagassisch
+languages.nqo=N\u2019Ko
 languages.mwr=Marwari
 languages.bra=Braj-Bhakha
+languages.mwl=mirandesisch
+languages.den=slavey
 languages.lv=Lettisch
-languages.den=Slave (Athapaskische Sprachen)
 languages.lu=Luba
-languages.lt=Litauisch
 languages.del=Delaware-Sprache
+languages.lt=Litauisch
 languages.lo=Laotisch
 languages.ln=Lingala
 languages.li=Limburgisch
@@ -761,85 +937,86 @@ languages.lb=Luxemburgisch
 languages.la=Latein
 languages.jpr=J\u00fcdisch-Persisch
 languages.vot=Wotisch
-languages.sit=Sinotibetische Sprachen (Andere)
-languages.ky=Kirgisisch
+languages.sit=Sinotibetische Sprachen
+languages.ky=kirgisisch
 languages.kw=Kornisch
 languages.kv=Komi-Sprache
 languages.ku=Kurdisch
-languages.sio=Sioux-Sprachen
-languages.ks=Kaschmirisch
+languages.sio=Sioux-Sprache
+languages.ks=Kaschmiri
 languages.kr=Kanuri-Sprache
 languages.awa=Awadhi
 languages.ko=Koreanisch
-languages.kn=Kannada
-languages.km=Kambodschanisch
+languages.kn=kannada
+languages.km=Khmer-Sprache
+languages.en_GB=Englisch (Gro\u00dfbritannien)
 languages.kl=Gr\u00f6nl\u00e4ndisch
 languages.kk=Kasachisch
-languages.rom=Zigeunersprache
+languages.rom=Romani
 languages.kj=Kwanyama
 languages.sid=Sidamo
 languages.ki=Kikuyu-Sprache
 languages.kg=Kongo
 languages.non=Altnordisch
 languages.ka=Georgisch
-languages.mus=Muskogee-Sprachen
-languages.roa=Romanische Sprachen (Andere)
-languages.nog=Nogai
+languages.mus=Muskogee-Sprache
+languages.roa=Romanische Sprachen
+languages.nog=Nogaisch
 languages.mun=Munda-Sprachen
-languages.mul=Polyglott
+languages.mul=mehrsprachig
 languages.jv=Javanisch
 languages.gil=Gilbertesisch
 languages.znd=Zande-Sprache
 languages.shn=Schan-Sprache
 languages.fon=Fon-Sprache
 languages.xal=Kalm\u00fcckisch
-languages.aus=Australische Sprachen
+languages.aus=Australische Sprache
 languages.kho=Sakisch
 languages.ja=Japanisch
-languages.khi=Khoisan-Sprachen (Andere)
+languages.khi=Khoisan-Sprachen
 languages.pau=Palau
 languages.chy=Cheyenne
-languages.tai=Thaisprachen (Andere)
-languages.iu=Inukitut
+languages.tai=Thaisprachen
+languages.iu=Inuktitut
 languages.pap=Papiamento
 languages.it=Italienisch
-languages.sgn=Geb\u00e4rdensprache
-languages.kha=Khasi-Sprache
+languages.sgn=Zeichensprache
 languages.is=Isl\u00e4ndisch
+languages.kha=Khasi-Sprache
 languages.chr=Cherokee
 languages.pam=Pampanggan-Sprache
 languages.pal=Mittelpersisch
 languages.chp=Chipewyan
+languages.io=Sinohoan
 languages.cho=Choctaw
-languages.io=Ido-Sprache
 languages.chn=Chinook
 languages.chm=Tscheremissisch
 languages.tyv=Tuwinisch
-languages.bnt=Bantusprachen (Andere)
+languages.bnt=Bantusprachen
 languages.pag=Pangasinan-Sprache
+languages.ik=inupiak
 languages.chk=Trukesisch
-languages.ik=Inupiak
-languages.haw=Hawaiianisch
-languages.ii=Sichuan Yi
+languages.ii=sichuan yi
+languages.haw=Hawaiisch
 languages.lam=Lamba-Sprache
+languages.ig=igbo
 languages.chg=Tschagataisch
-languages.ig=Igbo-Sprache
 languages.sga=Altirisch
-languages.paa=Papuasprachen (Andere)
+languages.paa=Papuasprachen
 languages.ie=Interlingue
 languages.id=Indonesisch
 languages.lah=Lahnda
-languages.chb=Chibcha-Sprachen
 languages.day=Dajak
+languages.chb=Chibcha-Sprache
 languages.ia=Interlingua
-languages.lad=Judenspanisch
-languages.dar=Darginisch
-languages.hai=Haida-Sprache
+languages.lad=Ladino
 languages.hz=Herero-Sprache
+languages.hai=Haida-Sprache
+languages.dar=Dari
 languages.hy=Armenisch
 languages.ath=Athapaskische Sprachen
 languages.hu=Ungarisch
-languages.ht=Kreolisch
+languages.ht=Haitianisch
 languages.dak=Dakota-Sprache
 languages.hr=Kroatisch
 languages.ho=Hiri-Motu
@@ -847,66 +1024,77 @@ languages.hi=Hindi
 languages.dyu=Dyula-Sprache
 languages.he=Hebr\u00e4isch
 languages.ast=Asturianisch
-languages.ha=Hausa
+languages.kfo=koro
+languages.ha=Haussa-Sprache
 languages.wen=Sorbisch
 languages.gv=Manx
 languages.gu=Gujarati
-languages.sem=Semitische Sprachen (Andere)
+languages.sem=Semitische Sprachen
 languages.sel=Selkupisch
-languages.iro=Irokesische Sprachen
+languages.iro=Irokesische Sprache
 languages.gn=Guarani
-languages.gl=Galizisch
+languages.gl=galizisch
+languages.en_CA=Kanadisches Englisch
 languages.arw=Arawak-Sprachen
-languages.gd=Schottisch-G\u00e4lisch
-languages.art=Kunstsprachen (Andere)
 languages.gez=Geez
-languages.ira=Iranische Sprachen (Andere)
+languages.art=Kunstsprachen (Andere)
+languages.gd=G\u00e4lisch-Schottisch
+languages.ira=Iranische Sprachen
 languages.ga=Irisch
 languages.arp=Arapaho-Sprache
 languages.arn=Araukanisch
 languages.fy=Friesisch
 languages.bla=Blackfoot-Sprache
-languages.gem=Germanische Sprachen (Andere)
+languages.gem=Germanische Sprachen
 languages.ypk=Yupik-Sprache
+languages.arc=aram\u00e4isch
 languages.fr=Franz\u00f6sisch
-languages.arc=Aram\u00e4isch
 languages.fo=F\u00e4r\u00f6isch
-languages.cel=Keltische Sprachen (Andere)
-languages.fj=Fidschianisch
+languages.cel=keltische Sprache
+languages.fj=Fidschi-Sprache
 languages.fi=Finnisch
 languages.ff=Ful
 languages.tvl=Elliceanisch
 languages.ceb=Cebuano
 languages.fa=Persisch
+languages.en_AU=Australisches Englisch
+languages.zh_Hans=Chinesisch (vereinfacht)
+languages.zh_Hant=Traditionelles Chinesisch
 languages.eu=Baskisch
 languages.sco=Schottisch
 languages.et=Estnisch
+languages.scn=Sizilianisch
 languages.es=Spanisch
 languages.eo=Esperanto
 languages.en=Englisch
 languages.el=Griechisch
 languages.tut=Altaische Sprachen (Andere)
-languages.niu=Niue-Sprache
+languages.niu=Niue
 languages.tup=Tupi-Sprachen
 languages.ee=Ewe-Sprache
 languages.tum=Tumbuka-Sprache
+languages.nl_BE=Fl\u00e4misch
+languages.es_419=Lateinamerikanisches Spanisch
 languages.mos=Mossi-Sprache
-languages.dz=Bhutanisch
-languages.nic=Nigerkordofanische Sprachen (Andere)
-languages.dv=Maledivisch
-languages.fiu=Finnougrische Sprachen (Andere)
+languages.dz=Dzongkha
+languages.kcg=tyap
+languages.nic=Nigerkordofanische Sprachen
 languages.lus=Lushai-Sprache
+languages.fiu=finnisch-ugrische Sprache
+languages.dv=Maledivisch
 languages.nia=Nias-Sprache
 languages.moh=Mohawk-Sprache
 languages.luo=Luo-Sprache
-languages.lun=Lunda-Sprache
+languages.lun=lunda
 languages.apa=Apachen-Sprache
+languages.fil=Pilipino
 languages.lui=Luiseno-Sprache
 languages.hup=Hupa
-languages.bin=Bini-Sprache
+languages.cch=Atsam
+languages.bin=bini
 languages.de=Deutsch
-languages.lua=Luba-Lulua
-languages.bik=Bikol-Sprache
+languages.lua=luba-Lulua
+languages.bik=Bikolano
 languages.was=Washo-Sprache
 languages.und=Sprache nicht ermittelt
 languages.war=Waray
@@ -914,59 +1102,63 @@ languages.da=D\u00e4nisch
 languages.dum=Mittelniederl\u00e4ndisch
 languages.wal=Walamo-Sprache
 languages.mno=Manobo-Sprache
-languages.wak=Wakashanisch
+languages.wak=Wakash-Sprachen
 languages.sat=Santali
-languages.cy=Kymrisch
+languages.cy=Walisisch
 languages.sas=Sasak
-languages.cv=Tschuwaschisch
 languages.kbd=Kabardinisch
+languages.cv=Tschuwaschisch
 languages.cu=Kirchenslawisch
 languages.mni=Meithei-Sprache
 languages.cs=Tschechisch
 languages.sam=Samaritanisch
 languages.cr=Cree
 languages.sal=Salish-Sprache
-languages.dua=Duala
+languages.dua=duala
 languages.co=Korsisch
-languages.sai=Indianersprachen, S\u00fcdamerika (Andere)
+languages.sai=Indianersprachen S\u00fcdamerika
 languages.mnc=Mandschurisch
 languages.sah=Jakutisch
-languages.gba=Gbaya-Sprache
-languages.inh=Ingush
 languages.kaw=Kawi
+languages.inh=Inguschisch
+languages.gba=Gbaya-Sprache
 languages.sad=Sandawe-Sprache
 languages.ch=Chamorro-Sprache
+languages.ine=Indogermanische Sprachen
 languages.bho=Bhodschpuri
-languages.ine=Indogermanische Sprachen (Andere)
 languages.enm=Mittelenglisch
-languages.ce=Tschetschenisch
-languages.inc=Indoarische Sprachen (Andere)
 languages.kar=Karenisch
+languages.inc=indoarische Sprache
+languages.ce=Tschetschenisch
 languages.gay=Gayo
 languages.ca=Katalanisch
 languages.umb=Mbundu-Sprache
 languages.syr=Syrisch
 languages.kam=Kamba
+languages.anp=Angika
 languages.tsi=Tsimshian-Sprache
+languages.kaj=jju
 languages.ang=Altenglisch
-languages.cau=Kaukasische Sprachen (Andere)
 languages.kac=Kachin-Sprache
+languages.cau=Kaukasische Sprachen
 languages.kab=Kabylisch
-languages.bs=Bosnisch
 languages.kaa=Karakalpakisch
+languages.bs=Bosnisch
+languages.car=Karibische Sprache
 languages.br=Bretonisch
-languages.car=Karibische Sprachen
-languages.bo=Tibetisch
-languages.bn=Bengalisch
+languages.syc=Altsyrisch
+languages.bo=Tibetanisch
+languages.bn=Bengali
 languages.bm=Bambara-Sprache
-languages.gaa=Ga-Sprache
+languages.gaa=g\u00e3
+languages.cai=Indianersprachen Zentralamerika
 languages.bi=Bislama
-languages.cai=Indianersprachen, Zentralamerika (Andere)
-languages.bh=Biharisch
+languages.bh=biharisch
 languages.bg=Bulgarisch
 languages.be=Wei\u00dfrussisch
-languages.cad=Caddo
-languages.ba=Baschkirisch
+languages.pt_BR=Brasilianisches Portugiesisch
+languages.cad=caddo
+languages.ba=baschkirisch
 languages.zu=Zulu
 languages.zen=Zenaga
 languages.pro=Altprovenzalisch
@@ -975,10 +1167,10 @@ languages.az=Aserbaidschanisch
 languages.ay=Aymar\u00e1-Sprache
 languages.av=Awarisch
 languages.as=Assamesisch
-languages.ar=Arabisch
 languages.dsb=Niedersorbisch
-languages.elx=Elamisch
+languages.ar=Arabisch
 languages.ilo=Ilokano-Sprache
+languages.elx=Elamisch
 languages.zh=Chinesisch
 languages.an=Aragonesisch
 languages.pra=Prakrit
@@ -986,20 +1178,45 @@ languages.am=Amharisch
 languages.new=Newari
 languages.ak=Akan
 languages.za=Zhuang
+languages.en_US=Amerikanisches Englisch
 languages.af=Afrikaans
 languages.ae=Avestisch
+languages.alt=S\u00fcd-Altaisch
 languages.ab=Abchasisch
 languages.aa=Afar
-languages.yo=Joruba
+languages.yo=Yoruba-Sprache
 languages.alg=Algonkin-Sprachen
 languages.ale=Aleutisch
-languages.mkh=Mon-Khmer-Sprachen (Andere)
+languages.mkh=Mon-Khmer-Sprachen
 languages.yi=Jiddisch
-languages.dra=Drawidische Sprachen (Andere)
+languages.dra=Drawidische Sprachen
 languages.ber=Berbersprachen (Andere)
 languages.nds=Niederdeutsch
 languages.bem=Bemba-Sprache
-languages.bej=Bedauye
+languages.bej=bedauye
 languages.tpi=Neumelanesisch
-variants.POSIX=Posix
-variants.REVISED=Revidiert
+variants.POSIX=POSIX
+variants.AREVMDA=Westarmenisch
+variants.1996=neue deutsche Rechtschreibung
+variants.SOLBA=Solbica-Dialekt
+variants.NEDIS=Natisone-Dialekt
+variants.1994=Standardisierte Resianische Rechtschreibung
+variants.1901=alte deutsche Rechtschreibung
+variants.FONUPA=UPA Phonetisch
+variants.OSOJS=Osojane-Dialekt
+variants.LIPAW=Lipovaz-Dialekt
+variants.REVISED=revidierte Rechtschreibung
+variants.NJIVA=Njiva-Dialekt
+variants.TARASK=Taraskievica-Orthographie
+variants.FONIPA=Phonetisch (IPA)
+variants.BISKE=Bela-Dialekt
+variants.SCOUSE=Scouse-Dialekt
+variants.BAKU1926=Einheitliches T\u00fcrkisches Alphabet
+variants.SAAHO=Saho
+variants.ROZAJ=Resianisch
+variants.MONOTON=Monotonisch
+variants.POLYTON=Polytonisch
+variants.AREVELA=Ostarmenisch
+variants.SCOTLAND=Schottisches Standardenglisch
+variants.BOONT=Boontling
+variants.1606NICT=Sp\u00e4tes Mittelfranz\u00f6sisch
index 492e67431d343ea8a6d3e06bae63be4ccb3ea6dd..18d517468c5dc993cc94b6823718cfd670d3951f 100644 (file)
@@ -5,8 +5,8 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-shortMonths=J\u00e4n®®M\u00e4r®®®®®®®®®®®
-months=J\u00e4nner®®®®®®®®®®®®®
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+shortMonths=J\u00e4n\u00ae\u00aeM\u00e4r\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=J\u00e4nner\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
 longDateFormat=dd. MMMM yyyy
 fullDateFormat=EEEE, dd. MMMM yyyy
-fullTimeFormat=HH:mm' Uhr 'z
index c20e7ca6ffe180f31d076fff0308b93ea8edca30..c7debc87e9d3cde271b68fb2522f72d15cd0d957 100644 (file)
@@ -5,12 +5,10 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
 currenciesDisplayName.FRF=Franken
-shortMonths=®®M\u00e4r®®®®®®®®®®®
-shortWeekdays=®Son®Mon®Die®Mit®Don®Fre®Sam®
+shortMonths=\u00ae\u00aeM\u00e4r\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMon\u00aeDie\u00aeMit\u00aeDon\u00aeFre\u00aeSam\u00ae
 shortDateFormat=d/MM/yy
-mediumDateFormat=d-MMM-yy
 longDateFormat=d MMMM yyyy
 fullDateFormat=EEEE d MMMM yyyy
 fullTimeFormat=HH 'h' mm 'min' ss 's' z
index 9f3722bb266e3525ad64fd001f1aa6893362246b..b8bf962568862fa449c50619e83c00777997852a 100644 (file)
@@ -7,9 +7,9 @@
 
 decimalSeparator=.
 groupingSeparator='
-currencyFormat=\u00a4 #,##0.00;\u00a4-#,##0.00
-territories.BD=Bangladesh
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4-#,##0.00
 territories.MH=Marshall-Inseln
+territories.BD=Bangladesh
 territories.DJ=Djibouti
 territories.SB=Salomon-Inseln
 territories.BW=Botswana
index 6ae8f89da0b23d25f255c67ec6ff49ea6725f7c6..6ccc0f5eb152fd1aa94781f8bbfd84d67a762791 100644 (file)
@@ -7,3 +7,4 @@
 
 decimalSeparator=.
 groupingSeparator='
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
index 5a325df19afd998e9cb6afdd2487b40145fb61ed..4e463e35712466c26fc3ceb3d8c99d84581dc8c1 100644 (file)
@@ -5,5 +5,4 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
 currenciesSymbol.LUF=F
index 25153e2fdaafee09d0a78afb7d4dff6b1678a273..5bd1fa4f0518fa9e6ec51c77de938aebb89791ba 100644 (file)
@@ -7,7 +7,21 @@
 
 zeroDigit=\u0660
 percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
 currenciesSymbol.MVR=\u0783.
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=hh:mm a
+mediumTimeFormat=hh:mm:ss a
+longTimeFormat=hh:mm:ss a z
+fullTimeFormat=hh:mm:ss a z
 territories.MV=\u078b\u07a8\u0788\u07ac\u0780\u07a8 \u0783\u07a7\u0787\u07b0\u0796\u07ac
 languages.dv=\u078b\u07a8\u0788\u07ac\u0780\u07a8\u0784\u07a6\u0790\u07b0
index ba202d856b1fa0d09081a76e7d29eb68d295b83f..132114dce8da469a7af7206321678da04835ec0d 100644 (file)
@@ -5,13 +5,21 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-shortMonths=\u0f5f\u0fb3\u0f0b \u0f21®\u0f5f\u0fb3\u0f0b \u0f22®\u0f5f\u0fb3\u0f0b \u0f23®\u0f5f\u0fb3\u0f0b \u0f24®\u0f5f\u0fb3\u0f0b \u0f25®\u0f5f\u0fb3\u0f0b \u0f26®\u0f5f\u0fb3\u0f0b \u0f27®\u0f5f\u0fb3\u0f0b \u0f28®\u0f5f\u0fb3\u0f0b \u0f29®\u0f5f\u0fb3\u0f0b \u0f21\u0f20®\u0f5f\u0fb3\u0f0b \u0f21\u0f21®\u0f5f\u0fb3\u0f0b \u0f21\u0f22®®
-months=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0f44\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b®®
-shortWeekdays=®\u0f5f\u0fb3\u0f0b®\u0f58\u0f72\u0f62\u0f0b®\u0f63\u0fb7\u0f42\u0f0b®\u0f55\u0f74\u0f62\u0f0b®\u0f66\u0f44\u0f66\u0f0b®\u0f66\u0fa4\u0f7a\u0f53\u0f0b®\u0f49\u0f72\u0f0b®
-weekdays=®\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b®
-firstDayOfWeek=mon
-ampms=\u0f66\u0f94\u0f0b\u0f46\u0f0b®\u0f55\u0fb1\u0f72\u0f0b\u0f46\u0f0b®
-shortDateFormat=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b yyyy \u0f5f\u0fb3\u0f0b MMM \u0f5a\u0f7a\u0f66\u0f0b dd
+percent=\u0f56\u0f62\u0f92\u0f0b\u0f46\u0f71
+infinity=\u0f42\u0fb2\u0f44\u0f66\u0f0b\u0f58\u0f7a\u0f51
+NaN=\u0f68\u0f44\u0f0b\u0f58\u0f51
+zeroDigit=\u0f20
+percentFormat=#,##,##0\u00a0%
+currencyFormat=\u00a4#,##,##0.00;-\u00a4#,##,##0.00
+currenciesDisplayName.BTN=\u0f51\u0f44\u0f74\u0f63\u0f0b\u0f40\u0fb2\u0f58\u0f0b
+currenciesSymbol.BTN=Nu
+shortMonths=\u0f5f\u0fb3\u0f0b \u0f21\u00ae\u0f5f\u0fb3\u0f0b \u0f22\u00ae\u0f5f\u0fb3\u0f0b \u0f23\u00ae\u0f5f\u0fb3\u0f0b \u0f24\u00ae\u0f5f\u0fb3\u0f0b \u0f25\u00ae\u0f5f\u0fb3\u0f0b \u0f26\u00ae\u0f5f\u0fb3\u0f0b \u0f27\u00ae\u0f5f\u0fb3\u0f0b \u0f28\u00ae\u0f5f\u0fb3\u0f0b \u0f29\u00ae\u0f5f\u0fb3\u0f0b \u0f21\u0f20\u00ae\u0f5f\u0fb3\u0f0b \u0f21\u0f21\u00ae\u0f5f\u0fb3\u0f0b \u0f21\u0f22\u00ae\u00ae
+months=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0f44\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b\u00ae\u00ae
+shortWeekdays=\u00ae\u0f5f\u0fb3\u0f0b\u00ae\u0f58\u0f72\u0f62\u0f0b\u00ae\u0f63\u0fb7\u0f42\u0f0b\u00ae\u0f55\u0f74\u0f62\u0f0b\u00ae\u0f66\u0f44\u0f66\u0f0b\u00ae\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u00ae\u0f49\u0f72\u0f0b\u00ae
+weekdays=\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u0f66\u0f94\u0f0b\u0f46\u0f0b\u00ae\u0f55\u0fb1\u0f72\u0f0b\u0f46\u0f0b\u00ae
+shortDateFormat=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b yyyy \u0f5f\u0fb3\u0f0b MM \u0f5a\u0f7a\u0f66\u0f0b dd
 mediumDateFormat=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0byyyy \u0f5f\u0fb3\u0f0b MMM \u0f5a\u0f7a\u0f66\u0f0b dd
 longDateFormat=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0byyyy \u0f5f\u0fb3\u0f0b MMMM \u0f5a\u0f7a\u0f66\u0f0b dd
 fullDateFormat=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0byyyy \u0f5f\u0fb3\u0f0b MMMM \u0f5a\u0f7a\u0f66\u0f0b dd
@@ -19,7 +27,7 @@ shortTimeFormat=\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b h \u0f66\u0f90\u0f62\
 mediumTimeFormat=\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0bh:mm:ss a
 longTimeFormat=\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b h \u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b mm \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f71\u0f0b ss a zzz
 fullTimeFormat=\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b h \u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b mm \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f71\u0f0b ss a zzzz
-zoneStrings=Asia/Thimphu®BST®Bhutan Standard Time®BST®Bhutan Standard Time®©
+zoneStrings=Bhutan\u00aeBhutan Standard Time\u00aeBST\u00ae\u00ae\u00ae\u00a9
 territories.PT=\u0f54\u0f7c\u0f62\u0f0b\u0f45\u0f74\u0f0b\u0f42\u0f63
 territories.JP=\u0f47\u0f0b\u0f54\u0f71\u0f53
 territories.PS=\u0f54\u0f7a\u0f0b\u0f63\u0f72\u0f66\u0f72\u0f0b\u0f4a\u0f72\u0f0b\u0f53\u0f72\u0f61 \u0f53\u0f0b\u0f4a\u0f7a\u0f0b\u0f62\u0f72\u0f0b\u0f44\u0f7c\u0f0b\u0f62\u0f72
@@ -37,23 +45,23 @@ territories.SI=\u0f66\u0f72\u0f63\u0f7c\u0f0b\u0f56\u0f7a\u0f0b\u0f53\u0f72\u0f0
 territories.SE=\u0f66\u0f74\u0f60\u0f72\u0f0b\u0f4c\u0f53
 territories.CZ=\u0f45\u0f7a\u0f40\u0f0b\u0f62\u0f72\u0f0b\u0f54\u0f56\u0f0b\u0f63\u0f72\u0f40
 territories.PA=\u0f54\u0f0b\u0f53\u0f0b\u0f58\u0f71
-territories.SA=\u0f66\u0f60\u0f74\u0f0b\u0f51\u0f72\u0f0b\u0f68\u0f7a\u0f0b\u0f62\u0f0b\u0f66 \u0fa6\u0f72\u0f0b\u0f61
+territories.SA=\u0f66\u0f60\u0f74\u0f0b\u0f51\u0f72\u0f0b\u0f68\u0f7a\u0f0b\u0f62\u0f0b\u0f66\u0fa6\u0f72\u0f0b\u0f61
 territories.CU=\u0f40\u0f72\u0f60\u0f74\u0f0b\u0f66\u0fa6
-territories.FR=\u0f55\u0f62\u0f71\u0f53\u0f66\u0f72
 territories.IT=\u0f68\u0f80\u0f4a\u0f0b\u0f63\u0f72
+territories.FR=\u0f55\u0f62\u0f71\u0f53\u0f66\u0f72
 territories.IS=\u0f68\u0f60\u0f72\u0f66\u0f72\u0f0b\u0f63\u0f7a\u0f53\u0f4c
 territories.UZ=\u0f68\u0f74\u0f5b\u0f0b\u0f56\u0f7a\u0f0b\u0f40\u0f72\u0f66\u0f72\u0f0b\u0f4f\u0f71\u0f53
-territories.CN=\u0f62\u0f92\u0fb1\u0f0b\u0f58\u0f72
 territories.IR=\u0f68\u0f72\u0f0b\u0f62\u0f71\u0f53
+territories.CN=\u0f62\u0f92\u0fb1\u0f0b\u0f58\u0f72
 territories.IQ=\u0f68\u0f72\u0f0b\u0f62\u0f40
 territories.IN=\u0f62\u0f92\u0fb1\u0f0b\u0f42\u0f62
-territories.CH=\u0f66\u0f74\u0f60\u0f72\u0f4a\u0f0b\u0f5b\u0f62\u0f0b\u0f63\u0f7a\u0f53
 territories.IL=\u0f68\u0f72\u0f5b\u0f0b\u0f62\u0f71\u0f7a\u0f63
+territories.CH=\u0f66\u0f74\u0f60\u0f72\u0f4a\u0f0b\u0f5b\u0f62\u0f0b\u0f63\u0f7a\u0f53
 territories.US=\u0f61\u0f74\u0f0b\u0f53\u0f60\u0f72\u0f4a\u0f7a\u0f4a\u0f0b\u0f66\u0f72\u0f0b\u0f4a\u0f7a\u0f66\u0f72
 territories.FI=\u0f55\u0f72\u0f53\u0f0b\u0f63\u0f7a\u0f53\u0f4c
 territories.LK=\u0f64\u0fb2\u0f71\u0f80\u0f0b\u0f63\u0f44\u0f40
-territories.CA=\u0f40\u0f7a\u0f0b\u0f53\u0f0b\u0f4c
 territories.IE=\u0f68\u0f60\u0f72\u0f62\u0f72\u0f0b\u0f63\u0f7a\u0f53\u0f4c
+territories.CA=\u0f40\u0f7a\u0f0b\u0f53\u0f0b\u0f4c
 territories.LB=\u0f63\u0f7a\u0f0b\u0f56\u0f71\u0f0b\u0f53\u0f71\u0f7c\u0f53
 territories.LA=\u0f63\u0f0b\u0f60\u0f7c\u0f66\u0f74
 territories.BT=\u0f60\u0f56\u0fb2\u0f74\u0f42
@@ -69,8 +77,8 @@ territories.BH=\u0f56\u0f67\u0f0b\u0f62\u0f7a\u0f53
 territories.ZW=\u0f5b\u0f72\u0f58\u0f0b\u0f56\u0f56\u0f0b\u0f5d\u0f7a
 territories.NO=\u0f53\u0f7c\u0f0b\u0f5d\u0f7a
 territories.HK=\u0f67\u0f7c\u0f44\u0f0b\u0f40\u0f7c\u0f44
-territories.BE=\u0f56\u0f7a\u0f63\u0f0b\u0f47\u0f72\u0f61\u0f58
 territories.EG=\u0f68\u0f72\u0f0b\u0f47\u0f72\u0f54\u0f4a
+territories.BE=\u0f56\u0f7a\u0f63\u0f0b\u0f47\u0f72\u0f61\u0f58
 territories.NL=\u0f53\u0f7a\u0f0b\u0f51\u0f62\u0f0b\u0f63\u0f7a\u0f53\u0f4c\u0f66\u0f72
 territories.BD=\u0f56\u0f44\u0f92\u0f0b\u0f63\u0f0b\u0f51\u0f7a\u0f64
 territories.KH=\u0f40\u0f58\u0f0b\u0f56\u0f7c\u0f0b\u0f4c\u0f72\u0f0b\u0f61
@@ -106,8 +114,8 @@ languages.mn=\u0f66\u0f7c\u0f42\u0f0b\u0f54\u0f7c\u0f60\u0f72\u0f0b\u0f41
 languages.ml=\u0f58\u0f0b\u0f63\u0f0b\u0f61\u0f0b\u0f63\u0f58
 languages.de=\u0f47\u0f71\u0f62\u0f0b\u0f58\u0f71\u0f53
 languages.pi=\u0f54\u0f0b\u0f63\u0f72
-languages.art=\u0f56\u0f5f\u0f7c\u0f0b\u0f56\u0f5f\u0f7c\u0f5d (\u0f42\u0f5e\u0f53)
 languages.da=\u0f4c\u0f7a\u0f0b\u0f53\u0f72\u0f64
+languages.art=\u0f56\u0f5f\u0f7c\u0f0b\u0f56\u0f5f\u0f7c\u0f5d (\u0f42\u0f5e\u0f53)
 languages.si=\u0f66\u0f72\u0f53\u0f0b\u0f67\u0f0b\u0f63\u0f72\u0f66\u0f72
 languages.ga=\u0f68\u0f60\u0f72\u0f0b\u0f62\u0f72\u0f64
 languages.mni=\u0f58\u0f0b\u0f53\u0f72\u0f0b\u0f54\u0f74\u0f0b\u0f62\u0f72
@@ -116,25 +124,25 @@ languages.pa=\u0f54\u0f71\u0f53\u0f0b\u0f47\u0f0b\u0f56\u0f72
 languages.mnc=\u0f58\u0f71\u0f53\u0f0b\u0f45\u0f74
 languages.sa=\u0f66\u0f7e\u0f66\u0f90\u0fb2\u0f80\u0f4f
 languages.cs=\u0f45\u0f7a\u0f40
-languages.fr=\u0f55\u0f7a\u0f0b\u0f62\u0f7a\u0f53\u0f46\u0f7a
 languages.it=\u0f68\u0f72\u0f0b\u0f4a\u0f0b\u0f63\u0f72\u0f0b\u0f62\u0f53
+languages.fr=\u0f55\u0f7a\u0f0b\u0f62\u0f7a\u0f53\u0f46\u0f7a
 languages.him=\u0f67\u0f72\u0f0b\u0f58\u0f0b\u0f45\u0f0b\u0f63\u0f72
 languages.ru=\u0f62\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f53
 languages.or=\u0f68\u0f7c\u0f0b\u0f62\u0f72\u0f0b\u0f61
 languages.lo=\u0f63\u0f60\u0f7c
 languages.ur=\u0f68\u0f74\u0f62\u0f0b\u0f51\u0f74
 languages.fa=\u0f54\u0f62\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f53
-languages.es=\u0f66\u0f72\u0f54\u0f7a\u0f0b\u0f53\u0f72\u0f64
 languages.grc=\u0f42\u0f72\u0f62\u0f72\u0f40, \u0f66\u0f94\u0f0b\u0f51\u0f74\u0f66\u0f0b\u0f40\u0fb1\u0f72 (\u0f21\u0f24\u0f25\u0f23)
+languages.es=\u0f66\u0f72\u0f54\u0f7a\u0f0b\u0f53\u0f72\u0f64
 languages.bo=\u0f56\u0f7c\u0f51\u0f0b\u0f41
 languages.bn=\u0f56\u0f7a\u0f44\u0f92\u0f0b\u0f63\u0f72
 languages.ks=\u0f40\u0f7a\u0f64\u0f0b\u0f58\u0f72\u0f0b\u0f62\u0f72
 languages.en=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64
-languages.inc=\u0f68\u0f72\u0f53\u0f0b\u0f4c\u0f72\u0f40 (\u0f42\u0f5e\u0f53)
 languages.el=\u0f42\u0f72\u0f62\u0f72\u0f40
+languages.inc=\u0f68\u0f72\u0f53\u0f0b\u0f4c\u0f72\u0f40 (\u0f42\u0f5e\u0f53)
 languages.ko=\u0f40\u0f7c\u0f0b\u0f62\u0f72\u0f61\u0f53
-languages.bh=\u0f56\u0f72\u0f0b\u0f67\u0f0b\u0f63\u0f72
 languages.kn=\u0f40\u0f0b\u0f53\u0f0b\u0f4c
+languages.bh=\u0f56\u0f72\u0f0b\u0f67\u0f0b\u0f63\u0f72
 languages.no=\u0f53\u0f7c\u0f62\u0f0b\u0f5d\u0f72\u0f0b\u0f47\u0f72\u0f0b\u0f61\u0f53
 languages.km=\u0f41\u0f7a\u0f0b\u0f58\u0f62
 languages.hi=\u0f67\u0f72\u0f53\u0f0b\u0f51\u0f72
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ee.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ee.properties
new file mode 100644 (file)
index 0000000..2e987f5
--- /dev/null
@@ -0,0 +1,25 @@
+# LocaleInformation_ee.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.GHC=Si\u0256i
+currenciesDisplayName.XOF=Sefa
+currenciesSymbol.GHC=\u20b5
+currenciesSymbol.XOF=CFA
+shortMonths=Dzv\u00aeDzd\u00aeTed\u00aeAf\u0254\u00aeDam\u00aeMas\u00aeSia\u00aeDea\u00aeAny\u00aeKel\u00aeAde\u00aeDzm\u00ae\u00ae
+months=Dzove\u00aeDzodze\u00aeTedoxe\u00aeAf\u0254fi\u025b\u00aeDama\u00aeMasa\u00aeSiaml\u0254m\u00aeDeasiamime\u00aeAny\u0254ny\u0254\u00aeKele\u00aeAde\u025bmekp\u0254xe\u00aeDzome\u00ae\u00ae
+shortWeekdays=\u00aeK\u0254s Kwe\u00aeDzo\u00aeBra\u00aeKu\u0256\u00aeYaw\u00aeFi\u0256\u00aeMem\u00ae
+weekdays=\u00aeK\u0254si\u0256a\u00aeDzo\u0256a\u00aeBra\u0256a\u00aeKu\u0256a\u00aeYawo\u0256a\u00aeFi\u0256a\u00aeMemle\u0256a\u00ae
+eras=HY\u00aeY\u014a\u00ae
+ampms=AN\u00aeEW\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
index f8b841a60b9223849a33db60b3b44353b8627a03..133adb4a1d2c634dc453f20e2449ba27866911c7 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currenciesDisplayName.BGL=\u039c\u03b5\u03c4\u03b1\u03bb\u03bb\u03b9\u03ba\u1f78 \u039b\u1f72\u03b2 \u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
-currenciesDisplayName.XCD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u1f08\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u1fc6\u03c2 \u039a\u03b1\u03c1\u03b1\u03ca\u03b2\u03b9\u03ba\u1fc6\u03c2
-currenciesDisplayName.LKR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u03a3\u03c1\u1f76 \u039b\u03ac\u03bd\u03ba\u03b1\u03c2
-currenciesDisplayName.TPE=\u1f18\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a4\u03b9\u03bc\u03cc\u03c1
-currenciesDisplayName.BAD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0392\u03bf\u03c3\u03bd\u03af\u03b1\u03c2-\u1f19\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7\u03c2
-currenciesDisplayName.CSK=\u03a3\u03ba\u03bb\u03b7\u03c1\u1f74 \u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u03a4\u03c3\u03b5\u03c7\u03bf\u03c3\u03bb\u03bf\u03b2\u03b1\u03ba\u03af\u03b1\u03c2
-currenciesDisplayName.YUD=\u039c\u03b5\u03c4\u03b1\u03bb\u03bb\u03b9\u03ba\u1f78 \u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0393\u03b9\u03bf\u03c5\u03b3\u03ba\u03bf\u03c3\u03bb\u03b1\u03b2\u03af\u03b1\u03c2
-currenciesDisplayName.SVC=Colon \u1f1a\u03bb \u03a3\u03b1\u03bb\u03b2\u03b1\u03b4\u03cc\u03c1
-currenciesDisplayName.SCR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u03a3\u03b5\u03cb\u03c7\u03b5\u03bb\u1ff6\u03bd
-currenciesDisplayName.IEP=\u039b\u03af\u03c1\u03b1 \u1f38\u03c1\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
-currenciesDisplayName.AMD=Dram \u1f08\u03c1\u03bc\u03b5\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.GRD=\u0394\u03c1\u03b1\u03c7\u03bc\u1f74 \u1f19\u03bb\u03bb\u03ac\u03b4\u03b1\u03c2
-currenciesDisplayName.ERN=Nakfa \u1f18\u03c1\u03c5\u03b8\u03c1\u03b1\u03af\u03b1\u03c2
-currenciesDisplayName.CLP=\u03a0\u03ad\u03c3\u03bf \u03a7\u03b9\u03bb\u1fc6\u03c2
-currenciesDisplayName.SUR=\u03a3\u03bf\u03b2\u03b9\u03b5\u03c4\u03b9\u03ba\u1f78 \u03a1\u03bf\u03cd\u03b2\u03bb\u03b9
-currenciesDisplayName.XBD=\u0395\u1f50\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f74 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1 \u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u1fe6 (XBD)
-currenciesDisplayName.XBC=\u0395\u1f50\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f74 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1 \u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u1fe6 (XBC)
-currenciesDisplayName.XBB=\u0395\u1f50\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f74 \u039d\u03bf\u03bc\u03b9\u03c3\u03bc\u03b1\u03c4\u03b9\u03ba\u1f74 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
-currenciesDisplayName.XBA=\u0395\u1f50\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f74 \u03a3\u03cd\u03bd\u03b8\u03b5\u03c4\u03b7 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
-currenciesDisplayName.CLF=Unidades de Fomento \u03a7\u03b9\u03bb\u1fc6\u03c2
-currenciesDisplayName.ZAR=\u03a1\u1f70\u03bd\u03c4 \u039d\u03cc\u03c4\u03b9\u03b1\u03c2 \u1f08\u03c6\u03c1\u03b9\u03ba\u1fc6\u03c2
-currenciesDisplayName.IQD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u1f38\u03c1\u03ac\u03ba
-currenciesDisplayName.FKP=\u039b\u03af\u03c1\u03b1 \u039d\u03ae\u03c3\u03c9\u03bd \u03a6\u03ce\u03bb\u03ba\u03bb\u03b1\u03bd\u03c4
-currenciesDisplayName.HKD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a7\u1f78\u03bd\u03b3\u03ba \u039a\u03cc\u03bd\u03b3\u03ba
-currenciesDisplayName.ARS=\u03a0\u03ad\u03c3\u03bf \u1f08\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u1fc6\u03c2
-currenciesDisplayName.ALL=\u039b\u1f72\u03ba \u1f08\u03bb\u03b2\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.ZAL=\u03a1\u03b1\u03bd\u03c4 \u039d\u03cc\u03c4\u03b9\u03b1\u03c2 \u1f08\u03c6\u03c1\u03b9\u03ba\u1fc6\u03c2 (\u03bf\u1f30\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03cc)
-currenciesDisplayName.JPY=\u0393\u03b9\u1f72\u03bd \u1f38\u03b1\u03c0\u03c9\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.ARP=\u03a0\u03ad\u03c3\u03bf \u1f08\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u1fc6\u03c2 (1983-1985)
-currenciesDisplayName.EEK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u1f18\u03c3\u03c4\u03bf\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.IDR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u1f38\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03af\u03b1\u03c2
-currenciesDisplayName.GQE=Ekwele Guineana \u1f38\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u1fc6\u03c2 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1\u03c2
-currenciesDisplayName.UZS=Sum \u039f\u1f50\u03b6\u03bc\u03c0\u03b5\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
-currenciesDisplayName.GWE=\u0393\u03ba\u03b9\u03bd\u03ad\u03b1 \u1f18\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03af\u03b1\u03c2
-currenciesDisplayName.NIO=\u03a7\u03c1\u03c5\u03c3\u1f74 \u039a\u03cc\u03c1\u03b4\u03bf\u03b2\u03b1 \u039d\u03b9\u03ba\u03b1\u03c1\u03ac\u03b3\u03bf\u03c5\u03b1\u03c2
-currenciesDisplayName.SHP=\u039b\u03af\u03c1\u03b1 \u1f08\u03b3\u03af\u03b1\u03c2 \u1f19\u03bb\u03ad\u03bd\u03b7\u03c2
-currenciesDisplayName.ARA=Austral \u1f08\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u1fc6\u03c2
-currenciesDisplayName.SBD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03ae\u03c3\u03c9\u03bd \u03a3\u03bf\u03bb\u03bf\u03bc\u1ff6\u03bd\u03c4\u03bf\u03c2
-currenciesDisplayName.THB=\u039c\u03c0\u1f70\u03c4 \u03a4\u03b1\u03ca\u03bb\u03ac\u03bd\u03b4\u03b7\u03c2
-currenciesDisplayName.BEL=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0392\u03b5\u03bb\u03b3\u03af\u03bf\u03c5 (\u03bf\u1f30\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03cc)
-currenciesDisplayName.MOP=Pataca \u039c\u03b1\u03ba\u03ac\u03bf\u03c5
-currenciesDisplayName.UGX=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u039f\u1f50\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1\u03c2
-currenciesDisplayName.WST=Tala \u0394\u03c5\u03c4\u03b9\u03ba\u1fc6\u03c2 \u03a3\u03b1\u03bc\u03cc\u03b1\u03c2
-currenciesDisplayName.TTD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a4\u03c1\u03b9\u03bd\u03b9\u03b4\u1f70\u03b4 \u03ba\u03b1\u1f76 \u03a4\u03bf\u03bc\u03c0\u03ac\u03b3\u03ba\u03bf
-currenciesDisplayName.UGS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u039f\u1f50\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1\u03c2 (1966-1987)
-currenciesDisplayName.SZL=Lilangeni \u0396\u03bf\u03c5\u03b1\u03b6\u03b9\u03bb\u03ac\u03bd\u03b4\u03b7\u03c2
-currenciesDisplayName.UAK=Karbovanetz \u039f\u1f50\u03ba\u03c1\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.AED=\u039d\u03c4\u03b9\u03c1\u1f70\u03bc \u1f29\u03bd\u03c9\u03bc\u03ad\u03bd\u03c9\u03bd \u1f08\u03c1\u03b1\u03b2\u03b9\u03ba\u1ff6\u03bd \u1f18\u03bc\u03b9\u03c1\u03ac\u03c4\u03c9\u03bd
-currenciesDisplayName.UAH=Hryvnia \u039f\u1f50\u03ba\u03c1\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.USS=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0397\u03a0\u0391 (\u1f3c\u03b4\u03b9\u03b1 \u1f21\u03bc\u03ad\u03c1\u03b1)
-currenciesDisplayName.DDM=Ostmark \u1f08\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u1fc6\u03c2 \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.UYU=\u03a0\u03ad\u03c3\u03bf Uruguayo \u039f\u1f50\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2
-currenciesDisplayName.USN=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0397\u03a0\u0391 (\u1f19\u03c0\u03cc\u03bc\u03b5\u03bd\u03b7 \u1f21\u03bc\u03ad\u03c1\u03b1)
-currenciesDisplayName.TMM=\u039c\u03b1\u03bd\u1f70\u03c4 \u03a4\u03bf\u03c5\u03c1\u03ba\u03bc\u03b5\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd
-currenciesDisplayName.XFO=\u03a7\u03c1\u03c5\u03c3\u1f78 \u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0393\u03b1\u03bb\u03bb\u03af\u03b1\u03c2
-currenciesDisplayName.AWG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u1f08\u03c1\u03bf\u03cd\u03bc\u03c0\u03b1
-currenciesDisplayName.UYP=\u03a0\u03ad\u03c3\u03bf \u039f\u1f50\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2 (1975-1993)
-currenciesDisplayName.PTE=\u1f18\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03af\u03b1\u03c2
-currenciesDisplayName.JOD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u1f38\u03bf\u03c1\u03b4\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.ADP=\u03a0\u03b5\u03c3\u03ad\u03c4\u03b1 \u1f08\u03bd\u03b4\u03cc\u03c1\u03b1\u03c2
-currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) \u1f38\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03bf\u1fe6
-currenciesDisplayName.ECS=Sucre \u1f38\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03bf\u1fe6
-currenciesDisplayName.PGK=Kina \u03a0\u03b1\u03c0\u03bf\u03cd\u03b1 \u039d\u03ad\u03b1 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1\u03c2
-currenciesDisplayName.CVE=\u1f18\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf\u03c5 \u1f08\u03ba\u03c1\u03c9\u03c4\u03b7\u03c1\u03af\u03bf\u03c5
-currenciesDisplayName.YER=Rial \u1f59\u03b5\u03bc\u03ad\u03bd\u03b7\u03c2
-currenciesDisplayName.HUF=\u03a6\u03b9\u03bf\u03c1\u03af\u03bd\u03b9 \u039f\u1f51\u03b3\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
-currenciesDisplayName.PAB=\u039c\u03c0\u03b1\u03bb\u03bc\u03c0\u03cc\u03b1 \u03a0\u03b1\u03bd\u03b1\u03bc\u1fb6
-currenciesDisplayName.XEU=\u0395\u1f50\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f74 \u03a3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03bc\u03b1\u03c4\u03b9\u03ba\u1f74 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
-currenciesDisplayName.EUR=\u0395\u1f50\u03c1\u03ce
-currenciesDisplayName.MZE=\u1f18\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u039c\u03bf\u03b6\u03b1\u03bc\u03b2\u03af\u03ba\u03b7\u03c2
-currenciesDisplayName.INR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u1f38\u03bd\u03b4\u03af\u03b1\u03c2
-currenciesDisplayName.NAD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03b1\u03bc\u03af\u03bc\u03c0\u03b9\u03b1\u03c2
-currenciesDisplayName.PYG=\u0393\u03ba\u03bf\u03c5\u03b1\u03c1\u03b1\u03bd\u1f76 \u03a0\u03b1\u03c1\u03b1\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2
-currenciesDisplayName.ITL=\u039b\u03b9\u03c1\u03ad\u03c4\u03b1 \u1f38\u03c4\u03b1\u03bb\u03af\u03b1\u03c2
-currenciesDisplayName.AOR=Kwanza Reajustado \u1f08\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1995-1999)
-currenciesDisplayName.GTQ=Quetzal \u0393\u03bf\u03c5\u03b1\u03c4\u03b5\u03bc\u03ac\u03bb\u03b1\u03c2
-currenciesDisplayName.AON=\u039d\u03ad\u03b1 Kwanza \u1f08\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1990-2000)
-currenciesDisplayName.HTG=Gourde \u1f09\u03ca\u03c4\u1fc6\u03c2
-currenciesDisplayName.AOK=Kwanza \u1f08\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1977-1990)
-currenciesDisplayName.VEB=\u039c\u03c0\u03bf\u03bb\u03b9\u03b2\u1f70\u03bb \u0392\u03b5\u03bd\u03b5\u03b6\u03bf\u03c5\u03ad\u03bb\u03b1\u03c2
-currenciesDisplayName.XDR=\u0395\u1f30\u03b4\u03b9\u03ba\u1f70 \u0394\u03b9\u03ba\u03b1\u03b9\u03ce\u03bc\u03b1\u03c4\u03b1 \u1f08\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7\u03c2
-currenciesDisplayName.AOA=Kwanza \u1f08\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2
-currenciesDisplayName.AUD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0391\u1f50\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1\u03c2
-currenciesDisplayName.YDD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u1f59\u03b5\u03bc\u03ad\u03bd\u03b7\u03c2
-currenciesDisplayName.CHF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u1f19\u03bb\u03b2\u03b5\u03c4\u03af\u03b1\u03c2
-currenciesDisplayName.NLG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u1f49\u03bb\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
-currenciesDisplayName.ISK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u1f38\u03c3\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
-currenciesDisplayName.MXV=Unidad de Inversion (UDI) \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u1fe6
-currenciesDisplayName.ETB=Birr \u0391\u1f30\u03b8\u03b9\u03bf\u03c0\u03af\u03b1\u03c2
-currenciesDisplayName.MXP=\u1f08\u03c3\u03b7\u03bc\u03ad\u03bd\u03b9\u03bf \u03a0\u03ad\u03c3\u03bf \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u1fe6 (1861-1992)
-currenciesDisplayName.ATS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u0391\u1f50\u03c3\u03c4\u03c1\u03af\u03b1\u03c2
-currenciesDisplayName.MXN=\u03a0\u03ad\u03c3\u03bf \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u1fe6
-currenciesDisplayName.EGP=\u039b\u03af\u03c1\u03b1 \u0391\u1f30\u03b3\u03cd\u03c0\u03c4\u03bf\u03c5
-currenciesDisplayName.DZD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u1f08\u03bb\u03b3\u03b5\u03c1\u03af\u03b1\u03c2
-currenciesDisplayName.GMD=Dalasi \u0393\u03ba\u03ac\u03bc\u03c0\u03b9\u03b1\u03c2
-currenciesDisplayName.ANG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u1f49\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u1ff6\u03bd \u1f08\u03bd\u03c4\u03b9\u03bb\u03bb\u1ff6\u03bd
-currenciesDisplayName.ILS=\u039d\u03ad\u03bf Sheqel \u1f38\u03c3\u03c1\u03b1\u03ae\u03bb
-currenciesDisplayName.ESP=\u03a0\u03b5\u03c3\u03ad\u03c4\u03b1 \u1f39\u03c3\u03c0\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.AZM=\u039c\u03b1\u03bd\u1f70\u03c4 \u1f08\u03b6\u03b5\u03c1\u03bc\u03c0\u03b1\u03ca\u03c4\u03b6\u03ac\u03bd
-currenciesDisplayName.ILP=\u039b\u03af\u03c1\u03b1 \u1f38\u03c3\u03c1\u03b1\u03ae\u03bb
-currenciesDisplayName.IRR=Rial \u1f38\u03c1\u03ac\u03ba
-currenciesDisplayName.BAM=\u039c\u03ac\u03c1\u03ba\u03bf \u0392\u03bf\u03c3\u03bd\u03af\u03b1\u03c2-\u1f19\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7\u03c2
-currenciesDisplayName.CAD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039a\u03b1\u03bd\u03b1\u03b4\u1fb6
-currenciesDisplayName.BGN=\u039d\u03ad\u03bf \u039b\u1f72\u03b2 \u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
-currenciesSymbol.CYP=  \u00a3
-currenciesSymbol.CRC=  C
-currenciesSymbol.KZT=  T
-currenciesSymbol.ZAR=  R
-currenciesSymbol.SZL=  E
-currenciesSymbol.CNY=  Y
-currenciesSymbol.GTQ=  Q
-currenciesSymbol.EUR=  \u20ac
-currenciesSymbol.GBP=  \u00a3
-shortMonths=\u1f38\u03b1\u03bd®®®\u1f08\u03c0\u03c1®®\u1f38\u03bf\u03c5\u03bd®\u1f38\u03bf\u03c5\u03bb®\u0391\u1f50\u03b3®®\u1f48\u03ba\u03c4®®®®
-months=\u1f38\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2®®®\u1f08\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2®®\u1f38\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2®\u1f38\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2®\u0391\u1f54\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2®®\u1f48\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2®®®®
-territories.AU=\u0391\u1f50\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1
-territories.TD=\u03a4\u03c3\u03ac\u03bd\u03c4
-territories.AT=\u0391\u1f50\u03c3\u03c4\u03c1\u03af\u03b1
-territories.TC=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a4\u1f72\u03c1\u03ba\u03c2 \u03ba\u03b1\u1f76 \u039a\u03ac\u03b9\u03ba\u03bf\u03c2
-territories.AS=\u1f08\u03bc\u03b5\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u1f74 \u03a3\u03b1\u03bc\u03cc\u03b1
-territories.AR=\u1f08\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u03ae
-territories.AQ=\u1f08\u03bd\u03c4\u03b1\u03c1\u03ba\u03c4\u03b9\u03ba\u03ae
-territories.AO=\u1f08\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1
-territories.AN=\u1f49\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u1f72\u03c2 \u1f08\u03bd\u03c4\u03af\u03bb\u03bb\u03b5\u03c2
-territories.GS=\u039d\u03cc\u03c4\u03b9\u03b1 \u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1 \u03ba\u03b1\u1f76 \u039d\u03ae\u03c3\u03bf\u03b9 \u039d\u03cc\u03c4\u03b9\u03b5\u03c2 \u03a3\u03ac\u03bd\u03c4\u03bf\u03c5\u03b9\u03c4\u03c2
-territories.AM=\u1f08\u03c1\u03bc\u03b5\u03bd\u03af\u03b1
-territories.GR=\u1f19\u03bb\u03bb\u03ac\u03b4\u03b1
-territories.ZA=\u039d\u03cc\u03c4\u03b9\u03b1 \u1f08\u03c6\u03c1\u03b9\u03ba\u03ae
-territories.AL=\u1f08\u03bb\u03b2\u03b1\u03bd\u03af\u03b1
-territories.GQ=\u1f38\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u1f74 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1
-territories.SY=\u03a3\u03c5\u03c1\u03af\u03b1, \u1f08\u03c1\u03b1\u03b2\u03b9\u03ba\u1f74 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1 \u03c4\u1fc6\u03c2
-territories.AI=\u1f08\u03bd\u03b3\u03ba\u03bf\u03c5\u03af\u03bb\u03b1
-territories.SV=\u1f1a\u03bb \u03a3\u03b1\u03bb\u03b2\u03b1\u03b4\u03cc\u03c1
-territories.AG=\u1f08\u03bd\u03c4\u03af\u03b3\u03ba\u03bf\u03c5\u03b1 \u03ba\u03b1\u1f76 \u039c\u03c0\u03b1\u03c1\u03bc\u03c0\u03bf\u03cd\u03bd\u03c4\u03b1
-territories.AF=\u1f08\u03c6\u03b3\u03b1\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd
-territories.MP=\u039d\u1fc6\u03c3\u03bf\u03b9 \u0392\u03cc\u03c1\u03b5\u03b9\u03b5\u03c2 \u039c\u03b1\u03c1\u03b9\u03ac\u03bd\u03b5\u03c2
-territories.ST=\u03a3\u03ac\u03bf \u03a4\u03bf\u03bc\u1f72 \u03ba\u03b1\u1f76 \u03a0\u03c1\u03af\u03bd\u03c3\u03b9\u03c0\u03b5
-territories.AE=\u1f28\u03bd\u03c9\u03bc\u03ad\u03bd\u03b1 \u1f08\u03c1\u03b1\u03b2\u03b9\u03ba\u1f70 \u1f18\u03bc\u03b9\u03c1\u03ac\u03c4\u03b1
-territories.MO=\u039c\u03b1\u03ba\u03ac\u03bf, \u0395\u1f30\u03b4\u03b9\u03ba\u1f74 \u0394\u03b9\u03bf\u03b9\u03ba\u03b7\u03c4\u03b9\u03ba\u1f74 \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03c4\u1fc6\u03c2 \u039a\u03af\u03bd\u03b1\u03c2
-territories.AD=\u1f08\u03bd\u03b4\u03cc\u03c1\u03b1
-territories.ML=\u039c\u03b1\u03bb\u03af
-territories.GF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u1f74 \u0393\u03bf\u03c5\u03b9\u03ac\u03bd\u03b1
-territories.SM=\u1f0d\u03b3\u03b9\u03bf\u03c2 \u039c\u03b1\u03c1\u03af\u03bd\u03bf\u03c2
-territories.MH=\u039d\u1fc6\u03c3\u03bf\u03b9 \u039c\u03ac\u03c1\u03c3\u03b1\u03bb
-territories.GB=\u1f29\u03bd\u03c9\u03bc\u03ad\u03bd\u03bf \u0392\u03b1\u03c3\u03af\u03bb\u03b5\u03b9\u03bf
-territories.SJ=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a3\u03b2\u03ac\u03bb\u03bc\u03c0\u03b1\u03c1 \u03ba\u03b1\u1f76 \u0393\u03b9\u1f70\u03bd \u039c\u03b1\u03b3\u03b9\u03ad\u03bd
-territories.MD=\u039c\u03bf\u03bb\u03b4\u03b1\u03b2\u03af\u03b1, \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1 \u03c4\u1fc6\u03c2
-territories.SH=\u1f09\u03b3\u03af\u03b1 \u1f19\u03bb\u03ad\u03bd\u03b7
-territories.SB=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a3\u03bf\u03bb\u03bf\u03bc\u1ff6\u03bd\u03c4\u03bf\u03c2
-territories.SA=\u03a3\u03b1\u03bf\u03c5\u03b4\u03b9\u03ba\u1f74 \u1f08\u03c1\u03b1\u03b2\u03af\u03b1
-territories.YE=\u1f59\u03b5\u03bc\u03ad\u03bd\u03b7
-territories.LU=\u039b\u03bf\u03c5\u03be\u03b5\u03bc\u03b2\u03bf\u1fe6\u03c1\u03b3\u03bf
-territories.FO=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a6\u03b5\u03c1\u03cc\u03b5\u03c2
-territories.FM=\u039c\u03b9\u03ba\u03c1\u03bf\u03bd\u03b7\u03c3\u03af\u03b1, \u1f49\u03bc\u03cc\u03c3\u03c0\u03bf\u03bd\u03b4\u03b5\u03c2 \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u1fd6\u03b5\u03c2 \u03c4\u1fc6\u03c2
-territories.LK=\u03a3\u03c1\u1f76 \u039b\u03ac\u03bd\u03ba\u03b1
-territories.LC=\u1f09\u03b3\u03af\u03b1 \u039b\u03bf\u03c5\u03ba\u03af\u03b1
-territories.LA=\u039b\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u1f74 \u1f08\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
-territories.ET=\u0391\u1f30\u03b8\u03b9\u03bf\u03c0\u03af\u03b1
-territories.KY=\u039d\u1fc6\u03c3\u03bf\u03b9 \u039a\u03ad\u03b9\u03bc\u03b1\u03bd
-territories.ES=\u1f39\u03c3\u03c0\u03b1\u03bd\u03af\u03b1
-territories.ER=\u1f18\u03c1\u03c5\u03b8\u03c1\u03b1\u03af\u03b1
-territories.KN=\u03a3\u03b1\u1f76\u03bd\u03c4 \u039a\u1f76\u03c4\u03c2 \u03ba\u03b1\u1f76 \u039d\u03ad\u03b2\u03b9\u03c2
-territories.EH=\u0394\u03c5\u03c4\u03b9\u03ba\u1f74 \u03a3\u03b1\u03c7\u03ac\u03c1\u03b1
-territories.EG=\u0391\u1f34\u03b3\u03c5\u03c0\u03c4\u03bf\u03c2
-territories.EE=\u1f18\u03c3\u03b8\u03bf\u03bd\u03af\u03b1
-territories.EC=\u1f38\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03cc\u03c2
-territories.DZ=\u1f08\u03bb\u03b3\u03b5\u03c1\u03af\u03b1
-territories.WF=\u039d\u1fc6\u03c3\u03bf\u03b9 \u039f\u1f50\u03ac\u03bb\u03bb\u03b9\u03c2 \u03ba\u03b1\u1f76 \u03a6\u03bf\u03c5\u03c4\u03bf\u03c5\u03bd\u03ac
-territories.DO=\u0394\u03bf\u03bc\u03b9\u03bd\u03b9\u03ba\u03b1\u03bd\u1f74 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1
-territories.JP=\u1f38\u03b1\u03c0\u03c9\u03bd\u03af\u03b1
-territories.JO=\u1f38\u03bf\u03c1\u03b4\u03b1\u03bd\u03af\u03b1
-territories.PS=\u03a0\u03b1\u03bb\u03b1\u03b9\u03c3\u03c4\u03b9\u03bd\u03b9\u03b1\u03ba\u1f70 \u1f18\u03b4\u03ac\u03c6\u03b7
-territories.PM=\u03a3\u03b1\u1f76\u03bd\u03c4 \u03a0\u03b9\u1f72\u03c1 \u03ba\u03b1\u1f76 \u039c\u03b9\u03ba\u03b5\u03bb\u03cc\u03bd
-territories.PF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u1f74 \u03a0\u03bf\u03bb\u03c5\u03bd\u03b7\u03c3\u03af\u03b1
-territories.VI=\u1f08\u03bc\u03b5\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u1f72\u03c2 \u03a0\u03b1\u03c1\u03b8\u03ad\u03bd\u03bf\u03b9 \u039d\u1fc6\u03c3\u03bf\u03b9
-territories.CX=\u039d\u1fc6\u03c3\u03bf\u03c2 \u03a7\u03c1\u03b9\u03c3\u03c4\u03bf\u03c5\u03b3\u03ad\u03bd\u03bd\u03c9\u03bd
-territories.VG=\u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03b9\u03ba\u1f72\u03c2 \u03a0\u03b1\u03c1\u03b8\u03ad\u03bd\u03bf\u03b9 \u039d\u1fc6\u03c3\u03bf\u03b9
-territories.CV=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf\u03c5 \u1f08\u03ba\u03c1\u03c9\u03c4\u03b7\u03c1\u03af\u03bf\u03c5
-territories.VC=\u1f0d\u03b3\u03b9\u03bf\u03c2 \u0392\u03b9\u03ba\u03ad\u03bd\u03c4\u03b9\u03bf\u03c2 \u03ba\u03b1\u1f76 \u0393\u03c1\u03b5\u03bd\u03b1\u03b4\u03af\u03bd\u03b5\u03c2
-territories.VA=\u1f09\u03b3\u03af\u03b1 \u1f1d\u03b4\u03c1\u03b1 (\u0392\u03b1\u03c4\u03b9\u03ba\u03b1\u03bd\u03cc)
-territories.IT=\u1f38\u03c4\u03b1\u03bb\u03af\u03b1
-territories.IS=\u1f38\u03c3\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
-territories.IR=\u1f38\u03c1\u03ac\u03bd, \u1f38\u03c3\u03bb\u03b1\u03bc\u03b9\u03ba\u1f74 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1 \u03c4\u03bf\u1fe6
-territories.IQ=\u1f38\u03c1\u03ac\u03ba
-territories.UZ=\u039f\u1f50\u03b6\u03bc\u03c0\u03b5\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
-territories.CK=\u039d\u1fc6\u03c3\u03bf\u03b9 \u039a\u03bf\u03cd\u03ba
-territories.UY=\u039f\u1f50\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7
-territories.IO=\u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03b9\u03ba\u1f70 \u1f18\u03b4\u03ac\u03c6\u03b7 \u1f38\u03bd\u03b4\u03b9\u03ba\u03bf\u1fe6 \u1f68\u03ba\u03b5\u03b1\u03bd\u03bf\u1fe6
-territories.CI=\u1f08\u03ba\u03c4\u1f74 \u1f18\u03bb\u03b5\u03c6\u03b1\u03bd\u03c4\u03cc\u03b4\u03bf\u03bd\u03c4\u03bf\u03c2
-territories.IN=\u1f38\u03bd\u03b4\u03af\u03b1
-territories.CH=\u1f19\u03bb\u03b2\u03b5\u03c4\u03af\u03b1
-territories.IL=\u1f38\u03c3\u03c1\u03b1\u03ae\u03bb
-territories.CF=\u039a\u03b5\u03bd\u03c4\u03c1\u03bf\u03b1\u03c6\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u1f74 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1
-territories.US=\u1f29\u03bd\u03c9\u03bc\u03ad\u03bd\u03b5\u03c2 \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u1fd6\u03b5\u03c2
-territories.CD=\u039a\u03bf\u03bd\u03b3\u03ba\u03cc, \u039b\u03b1\u03ca\u03ba\u1f74 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1 \u03c4\u03bf\u1fe6
-territories.OM=\u1f48\u03bc\u03ac\u03bd
-territories.CC=\u039d\u1fc6\u03c3\u03bf\u03b9 \u039a\u03cc\u03ba\u03bf\u03c2 (\u039a\u03ae\u03bb\u03b9\u03bd\u03b3\u03ba)
-territories.IE=\u1f38\u03c1\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
-territories.ID=\u1f38\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03af\u03b1
-territories.UM=\u1f08\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03b5\u03c2 \u039d\u03b7\u03c3\u03af\u03b4\u03b5\u03c2 \u03c4\u1ff6\u03bd \u1f29\u03bd\u03c9\u03bc\u03ad\u03bd\u03c9\u03bd \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u03b9\u1ff6\u03bd
-territories.UG=\u039f\u1f50\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1
-territories.BV=\u039d\u1fc6\u03c3\u03bf\u03c2 \u039c\u03c0\u03bf\u03c5\u03b2\u03ad
-territories.UA=\u039f\u1f50\u03ba\u03c1\u03b1\u03bd\u03af\u03b1
-territories.HU=\u039f\u1f51\u03b3\u03b3\u03b1\u03c1\u03af\u03b1
-territories.HT=\u1f09\u03ca\u03c4\u03ae
-territories.BM=\u0392\u03b5\u03c1\u03bc\u03bf\u1fe6\u03b4\u03b5\u03c2
-territories.HN=\u1f49\u03bd\u03b4\u03bf\u03cd\u03c1\u03b1
-territories.HM=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a7\u1f72\u03c1\u03bd\u03c4 \u03ba\u03b1\u1f76 \u039c\u03b1\u03ba\u03bd\u03c4\u03cc\u03bd\u03b1\u03bb\u03bd\u03c4
-territories.HK=\u03a7\u1f78\u03bd\u03b3\u03ba \u039a\u03cc\u03bd\u03b3\u03ba, \u0395\u1f30\u03b4\u03b9\u03ba\u1f74 \u0394\u03b9\u03bf\u03b9\u03ba\u03b7\u03c4\u03b9\u03ba\u1f74 \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03c4\u1fc6\u03c2 \u039a\u03af\u03bd\u03b1\u03c2
-territories.TT=\u03a4\u03c1\u03b9\u03bd\u03b9\u03b4\u1f70\u03b4 \u03ba\u03b1\u1f76 \u03a4\u03bf\u03bc\u03c0\u03ac\u03b3\u03ba\u03bf
-territories.NL=\u1f49\u03bb\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
-territories.BA=\u0392\u03bf\u03c3\u03bd\u03af\u03b1 - \u1f18\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7
-territories.TL=\u1f08\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u1f78 \u03a4\u03b9\u03bc\u03cc\u03c1
-territories.NF=\u039d\u1fc6\u03c3\u03bf\u03c2 \u039d\u03cc\u03c1\u03c6\u03bf\u03bb\u03ba
-territories.AZ=\u1f08\u03b6\u03b5\u03c1\u03bc\u03c0\u03b1\u03ca\u03c4\u03b6\u03ac\u03bd
-territories.AW=\u1f08\u03c1\u03bf\u03cd\u03bc\u03c0\u03b1
-territories.TF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u1f70 \u039d\u03cc\u03c4\u03b9\u03b1 \u1f18\u03b4\u03ac\u03c6\u03b7
-languages.ja=\u1f38\u03b1\u03c0\u03c9\u03bd\u03b9\u03ba\u03ac
-languages.en=\u1f08\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac
-languages.el=\u1f19\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac
-languages.phi=\u03a6\u03b9\u03bb\u03b9\u03c0\u03c0\u03b9\u03bd\u03ad\u03b6\u03b9\u03ba\u03b1 (\u1f04\u03bb\u03bb\u03b1)
-languages.cy=\u039f\u1f50\u03b1\u03bb\u03b9\u03ba\u03ac
-languages.nl=\u1f49\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
-languages.he=\u1f19\u03b2\u03c1\u03b1\u03ca\u03ba\u03ac
-languages.it=\u1f38\u03c4\u03b1\u03bb\u03b9\u03ba\u03ac
-languages.is=\u1f38\u03c3\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
-languages.sla=\u03a3\u03bb\u03b1\u03b2\u03b9\u03ba\u1f70 (\u1f04\u03bb\u03bb\u03b1)
-languages.egy=\u0391\u1f30\u03b3\u03c5\u03c0\u03c4\u03b9\u03b1\u03ba\u1f70 (\u1f00\u03c1\u03c7\u03b1\u1fd6\u03b1)
-languages.arc=\u1f08\u03c1\u03b1\u03bc\u03b1\u03ca\u03ba\u03ac
-languages.ine=\u1f38\u03bd\u03b4\u03bf\u03b5\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f70 (\u1f04\u03bb\u03bb\u03b1)
-languages.uk=\u039f\u1f50\u03ba\u03c1\u03b1\u03bd\u03b9\u03ba\u03ac
-languages.ar=\u1f08\u03c1\u03b1\u03b2\u03b9\u03ba\u03ac
-languages.id=\u1f38\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03b9\u03b1\u03ba\u03ac
-languages.nai=\u1f38\u03bd\u03b4\u03b9\u03b1\u03bd\u03b9\u03ba\u1f70 \u03b2\u03cc\u03c1\u03b5\u03b9\u03b1\u03c2 \u1f08\u03bc\u03b5\u03c1\u03b9\u03ba\u1fc6\u03c2 (\u1f04\u03bb\u03bb\u03b1)
-languages.sem=\u03a3\u03b7\u03bc\u03b9\u03c4\u03b9\u03ba\u1f70 (\u1f04\u03bb\u03bb\u03b1)
-languages.grc=\u1f19\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac, \u1f00\u03c1\u03c7\u03b1\u1fd6\u03b1 \u03baa\u1f76 \u03bc\u03b5\u03c3\u03b1\u03b9\u03c9\u03bd\u03b9\u03ba\u1f70 (\u1f15\u03c9\u03c2 \u03c4\u1f78 1453)
-languages.sq=\u1f08\u03bb\u03b2\u03b1\u03bd\u03b9\u03ba\u03ac
-languages.ota=\u03a4\u03bf\u03c5\u03c1\u03ba\u03b9\u03ba\u03ac, \u1f40\u03b8\u03c9\u03bc\u03b1\u03bd\u03b9\u03ba\u1f70 (1500-1928)
-languages.mul=\u03a0\u03bf\u03bb\u03bb\u03b1\u03c0\u03bb\u03ad\u03c2 \u03b3\u03bb\u1ff6\u03c3\u03c3\u03b5\u03c2
-languages.ira=\u1f38\u03c1\u03b1\u03bd\u03b9\u03ba\u03ac
-languages.hy=\u1f08\u03c1\u03bc\u03b5\u03bd\u03b9\u03ba\u03ac
-languages.et=\u1f18\u03c3\u03b8\u03bf\u03bd\u03b9\u03ba\u03ac
-languages.hu=\u039f\u1f51\u03b3\u03b3\u03c1\u03b9\u03ba\u03ac
-languages.es=\u1f39\u03c3\u03c0\u03b1\u03bd\u03b9\u03ba\u03ac
-languages.gd=\u03a3\u03ba\u03c9\u03c4\u03b9\u03ba\u1f70 \u03ba\u03b5\u03bb\u03c4\u03b9\u03ba\u03ac
-languages.yi=\u1f38\u03bf\u03c5\u03b4\u03b1\u03ca\u03ba\u03ac
-languages.peo=\u1f08\u03c1\u03c7\u03b1\u1fd6\u03b1 \u03c0\u03b5\u03c1\u03c3\u03b9\u03ba\u1f70 (600-400 \u03c0.\u03a7.)
-languages.ga=\u1f38\u03c1\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+decimalSeparator=,
+groupingSeparator=.
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u03a5\u03b5\u03bc\u03ad\u03bd\u03b7\u03c2
+currenciesDisplayName.KES=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u039a\u03ad\u03bd\u03c5\u03b1\u03c2
+currenciesDisplayName.TWD=\u039d\u03ad\u03bf \u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a4\u03b1\u03ca\u03b2\u03ac\u03bd
+currenciesDisplayName.LKR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u03a3\u03c1\u03b9 \u039b\u03ac\u03bd\u03ba\u03b1
+currenciesDisplayName.BYB=\u039d\u03ad\u03bf \u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u039b\u03b5\u03c5\u03ba\u03bf\u03c1\u03c9\u03c3\u03af\u03b1\u03c2 (1994-1999)
+currenciesDisplayName.TJS=\u03a3\u03bf\u03bc\u03cc\u03bd \u03a4\u03b1\u03c4\u03b6\u03b9\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.RWF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u03a1\u03bf\u03c5\u03ac\u03bd\u03c4\u03b1\u03c2
+currenciesDisplayName.ERN=\u039d\u03ac\u03ba\u03c6\u03b1 \u0395\u03c1\u03c5\u03b8\u03c1\u03b1\u03af\u03b1\u03c2
+currenciesDisplayName.TJR=\u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u03a4\u03b1\u03c4\u03b6\u03b9\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.SDP=\u039b\u03af\u03c1\u03b1 \u03a3\u03bf\u03c5\u03b4\u03ac\u03bd
+currenciesDisplayName.GRD=\u0394\u03c1\u03b1\u03c7\u03bc\u03ae \u0395\u03bb\u03bb\u03ac\u03b4\u03b1\u03c2
+currenciesDisplayName.IEP=\u039b\u03af\u03c1\u03b1 \u0399\u03c1\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.ARS=\u03a0\u03ad\u03c3\u03bf \u0391\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u03ae\u03c2
+currenciesDisplayName.ARP=\u03a0\u03ad\u03c3\u03bf \u0391\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u03ae\u03c2 (1983-1985)
+currenciesDisplayName.SDD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u03a3\u03bf\u03c5\u03b4\u03ac\u03bd
+currenciesDisplayName.GEL=\u039b\u03ac\u03c1\u03b9 \u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1\u03c2
+currenciesDisplayName.GEK=\u039a\u03bf\u03cd\u03c0\u03bf\u03bd \u039b\u03ac\u03c1\u03b9 \u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1\u03c2
+currenciesDisplayName.CRC=\u039a\u03bf\u03bb\u03cc\u03bd \u039a\u03cc\u03c3\u03c4\u03b1 \u03a1\u03af\u03ba\u03b1
+currenciesDisplayName.FKP=\u039b\u03af\u03c1\u03b1 \u039d\u03b7\u03c3\u03b9\u03ce\u03bd \u03a6\u03ce\u03bb\u03ba\u03bb\u03b1\u03bd\u03c4
+currenciesDisplayName.EEK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u0395\u03c3\u03b8\u03bf\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.MDL=\u039b\u03ad\u03b9 \u039c\u03bf\u03bb\u03b4\u03b1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.HKD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a7\u03bf\u03bd\u03b3\u03ba \u039a\u03bf\u03bd\u03b3\u03ba
+currenciesDisplayName.IQD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0399\u03c1\u03ac\u03ba
+currenciesDisplayName.ARA=Austral \u0391\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u03ae\u03c2
+currenciesDisplayName.SCR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u03a3\u03b5\u03cb\u03c7\u03ad\u03bb\u03b5\u03c2
+currenciesDisplayName.KPW=Won \u0392\u03cc\u03c1\u03b5\u03b9\u03b1\u03c2 \u039a\u03bf\u03c1\u03ad\u03b1\u03c2
+currenciesDisplayName.DKK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u0394\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.IDR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u0399\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03af\u03b1\u03c2
+currenciesDisplayName.GQE=Ekwele Guineana \u0399\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03ae\u03c2 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1\u03c2
+currenciesDisplayName.SOS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u03a3\u03bf\u03bc\u03b1\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.LVR=\u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u039b\u03b5\u03c4\u03bf\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.AED=\u039d\u03c4\u03b9\u03c1\u03ac\u03bc \u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03c9\u03bd \u0391\u03c1\u03b1\u03b2\u03b9\u03ba\u03ce\u03bd \u0395\u03bc\u03b9\u03c1\u03ac\u03c4\u03c9\u03bd
+currenciesDisplayName.LVL=Lats \u039b\u03b5\u03c4\u03bf\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.BWP=\u03a0\u03bf\u03cd\u03bb\u03b1 \u039c\u03c0\u03bf\u03c4\u03c3\u03bf\u03c5\u03ac\u03bd\u03b1\u03c2
+currenciesDisplayName.RUR=\u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u03a1\u03c9\u03c3\u03af\u03b1\u03c2 (1991-1998)
+currenciesDisplayName.NIO=\u03a7\u03c1\u03c5\u03c3\u03ae \u039a\u03cc\u03c1\u03b4\u03bf\u03b2\u03b1 \u039d\u03b9\u03ba\u03b1\u03c1\u03ac\u03b3\u03bf\u03c5\u03b1\u03c2
+currenciesDisplayName.MOP=\u03a0\u03b1\u03c4\u03ac\u03ba\u03b1 \u039c\u03b1\u03ba\u03ac\u03bf
+currenciesDisplayName.FJD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a6\u03af\u03c4\u03b6\u03b9
+currenciesDisplayName.ADP=\u03a0\u03b5\u03c3\u03ad\u03c4\u03b1 \u0391\u03bd\u03b4\u03cc\u03c1\u03b1\u03c2
+currenciesDisplayName.RUB=\u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u03a1\u03c9\u03c3\u03af\u03b1\u03c2
+currenciesDisplayName.CDF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039a\u03bf\u03bd\u03b3\u03ba\u03cc
+currenciesDisplayName.NIC=\u039a\u03cc\u03c1\u03b4\u03bf\u03b2\u03b1 \u039d\u03b9\u03ba\u03b1\u03c1\u03ac\u03b3\u03bf\u03c5\u03b1\u03c2
+currenciesDisplayName.DJF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u03a4\u03b6\u03b9\u03bc\u03c0\u03bf\u03c5\u03c4\u03af
+currenciesDisplayName.UZS=Sum \u039f\u03c5\u03b6\u03bc\u03c0\u03b5\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.SBD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03ae\u03c3\u03c9\u03bd \u03a3\u03bf\u03bb\u03bf\u03bc\u03ce\u03bd\u03c4\u03bf\u03c2
+currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) \u0399\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03bf\u03cd
+currenciesDisplayName.ECS=\u03a3\u03bf\u03cd\u03ba\u03c1\u03b5 \u0395\u03ba\u03bf\u03c5\u03b1\u03b4\u03cc\u03c1
+currenciesDisplayName.THB=\u039c\u03c0\u03b1\u03c4 \u03a4\u03b1\u03ca\u03bb\u03ac\u03bd\u03b4\u03b7\u03c2
+currenciesDisplayName.PHP=\u03a0\u03ad\u03c3\u03bf \u03a6\u03b9\u03bb\u03b9\u03c0\u03c0\u03af\u03bd\u03c9\u03bd
+currenciesDisplayName.LUF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039b\u03bf\u03c5\u03be\u03b5\u03bc\u03b2\u03bf\u03cd\u03c1\u03b3\u03bf\u03c5
+currenciesDisplayName.FIM=\u039c\u03ac\u03c1\u03ba\u03bf \u03a6\u03b9\u03bd\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.TTD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a4\u03c1\u03b9\u03bd\u03b9\u03b4\u03ac\u03b4 \u03ba\u03b1\u03b9 \u03a4\u03bf\u03bc\u03c0\u03ac\u03b3\u03ba\u03bf
+currenciesDisplayName.SZL=\u039b\u03b9\u03bb\u03b1\u03bd\u03b3\u03ba\u03ad\u03bd\u03b9 \u03a3\u03bf\u03c5\u03b1\u03b6\u03b9\u03bb\u03ac\u03bd\u03b4\u03b7
+currenciesDisplayName.MNT=\u03a4\u03bf\u03c5\u03b3\u03ba\u03c1\u03af\u03ba \u039c\u03bf\u03b3\u03b3\u03bf\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.UAK=Karbovanetz \u039f\u03c5\u03ba\u03c1\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.SAR=\u03a1\u03b9\u03ac\u03bb \u03a3\u03b1\u03bf\u03c5\u03b4\u03b9\u03ba\u03ae\u03c2 \u0391\u03c1\u03b1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.UAH=\u03a7\u03c1\u03af\u03c6\u03bd\u03b1 \u039f\u03c5\u03ba\u03c1\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.HUF=\u03a6\u03b9\u03bf\u03c1\u03af\u03bd\u03b9 \u039f\u03c5\u03b3\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.QAR=Rial \u039a\u03b1\u03c4\u03ac\u03c1
+currenciesDisplayName.COP=\u03a0\u03ad\u03c3\u03bf \u039a\u03bf\u03bb\u03bf\u03bc\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.LTT=Talonas \u039b\u03b9\u03b8\u03bf\u03c5\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.PTE=\u0395\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.UYU=\u03a0\u03ad\u03c3\u03bf Uruguayo \u039f\u03c5\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2
+currenciesDisplayName.AOR=Kwanza Reajustado \u0391\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1995-1999)
+currenciesDisplayName.GBP=\u039b\u03af\u03c1\u03b1 \u03a3\u03c4\u03b5\u03c1\u03bb\u03af\u03bd\u03b1 \u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.ZRZ=Zaire \u0396\u03b1\u0390\u03c1
+currenciesDisplayName.INR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u0399\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.BIF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039c\u03c0\u03bf\u03c5\u03c1\u03bf\u03cd\u03bd\u03c4\u03b9
+currenciesDisplayName.XFU=UIC-\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0393\u03b1\u03bb\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.LTL=\u039b\u03af\u03c4\u03b1 \u039b\u03b9\u03b8\u03bf\u03c5\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.AON=\u039d\u03ad\u03b1 Kwanza \u0391\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1990-2000)
+currenciesDisplayName.UYP=\u03a0\u03ad\u03c3\u03bf \u039f\u03c5\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2 (1975-1993)
+currenciesDisplayName.MZM=\u039c\u03b5\u03c4\u03b9\u03ba\u03ac\u03bb \u039c\u03bf\u03b6\u03b1\u03bc\u03b2\u03af\u03ba\u03b7\u03c2
+currenciesDisplayName.KZT=\u03a4\u03ad\u03bd\u03b3\u03ba\u03b5 \u039a\u03b1\u03b6\u03b1\u03ba\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.AOK=Kwanza \u0391\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1977-1990)
+currenciesDisplayName.GNS=Syli \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1\u03c2
+currenciesDisplayName.BUK=Kyat \u0392\u03b9\u03c1\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.XFO=\u03a7\u03c1\u03c5\u03c3\u03cc \u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0393\u03b1\u03bb\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.PGK=Kina \u03a0\u03b1\u03c0\u03bf\u03cd\u03b1 \u039d\u03ad\u03b1 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1
+currenciesDisplayName.SYP=\u039b\u03af\u03c1\u03b1 \u03a3\u03c5\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.OMR=\u03a1\u03b9\u03ac\u03bb \u039f\u03bc\u03ac\u03bd
+currenciesDisplayName.MZE=\u0395\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u039c\u03bf\u03b6\u03b1\u03bc\u03b2\u03af\u03ba\u03b7\u03c2
+currenciesDisplayName.ZRN=\u039d\u03ad\u03bf Zaire \u0396\u03b1\u0390\u03c1
+currenciesDisplayName.NGN=\u039d\u03ac\u03b9\u03c1\u03b1 \u039d\u03b9\u03b3\u03b7\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.CNY=\u0393\u03b9\u03bf\u03c5\u03ac\u03bd \u03a1\u03b5\u03bd\u03bc\u03af\u03bc\u03c0\u03b9 \u039a\u03af\u03bd\u03b1\u03c2
+currenciesDisplayName.AOA=Kwanza \u0391\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2
+currenciesDisplayName.MAF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039c\u03b1\u03c1\u03cc\u03ba\u03bf\u03c5
+currenciesDisplayName.RSD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u03a3\u03b5\u03c1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.GNF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1\u03c2
+currenciesDisplayName.MAD=\u039d\u03c4\u03b9\u03c1\u03ac\u03bc \u039c\u03b1\u03c1\u03cc\u03ba\u03bf\u03c5
+currenciesDisplayName.HTG=\u0393\u03ba\u03bf\u03c5\u03c1\u03bd\u03c4 \u0391\u03ca\u03c4\u03ae\u03c2
+currenciesDisplayName.TRY=\u039d\u03ad\u03b1 \u03a4\u03bf\u03c5\u03c1\u03ba\u03b9\u03ba\u03ae \u039b\u03af\u03c1\u03b1
+currenciesDisplayName.MMK=\u039a\u03c5\u03ac\u03c4 \u039c\u03b9\u03b1\u03bd\u03bc\u03ac\u03c1
+currenciesDisplayName.MYR=\u03a1\u03b9\u03bd\u03b3\u03ba\u03af\u03c4 \u039c\u03b1\u03bb\u03b1\u03b9\u03c3\u03af\u03b1\u03c2
+currenciesDisplayName.XEU=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u03a3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03bc\u03b1\u03c4\u03b9\u03ba\u03ae \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
+currenciesDisplayName.SLL=\u039b\u03b5\u03cc\u03bd\u03b5 \u03c4\u03b7\u03c2 \u03a3\u03b9\u03ad\u03c1\u03b1 \u039b\u03b5\u03cc\u03bd\u03b5
+currenciesDisplayName.BHD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u039c\u03c0\u03b1\u03c7\u03c1\u03ad\u03b9\u03bd
+currenciesDisplayName.BTN=\u039d\u03b3\u03ba\u03bf\u03cd\u03bb\u03c4\u03c1\u03bf\u03c5\u03bc \u039c\u03c0\u03bf\u03c5\u03c4\u03ac\u03bd
+currenciesDisplayName.TRL=\u039b\u03af\u03c1\u03b1 \u03a4\u03bf\u03c5\u03c1\u03ba\u03af\u03b1\u03c2
+currenciesDisplayName.KMF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf Comoro
+currenciesDisplayName.CZK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u03a4\u03c3\u03ad\u03c7\u03b9\u03ba\u03b7\u03c2 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1\u03c2
+currenciesDisplayName.ANG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ce\u03bd \u0391\u03bd\u03c4\u03b9\u03bb\u03bb\u03ce\u03bd
+currenciesDisplayName.AZM=\u039c\u03b1\u03bd\u03ac\u03c4 \u0391\u03b6\u03b5\u03c1\u03bc\u03c0\u03b1\u03ca\u03c4\u03b6\u03ac\u03bd
+currenciesDisplayName.KYD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03ae\u03c3\u03c9\u03bd \u039a\u03ac\u03b9\u03bc\u03b1\u03bd
+currenciesDisplayName.GMD=\u039d\u03c4\u03b1\u03bb\u03ac\u03c3\u03b9 \u0393\u03ba\u03ac\u03bc\u03c0\u03b9\u03b1\u03c2
+currenciesDisplayName.BGN=\u039d\u03ad\u03bf \u039b\u03b5\u03b2 \u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.MXV=Unidad de Inversion (UDI) \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u03cd
+currenciesDisplayName.CAD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039a\u03b1\u03bd\u03b1\u03b4\u03ac
+currenciesDisplayName.BGL=\u039c\u03b5\u03c4\u03b1\u03bb\u03bb\u03b9\u03ba\u03cc \u039b\u03b5\u03b2 \u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.VEB=\u039c\u03c0\u03bf\u03bb\u03b9\u03b2\u03ac\u03c1 \u0392\u03b5\u03bd\u03b5\u03b6\u03bf\u03c5\u03ad\u03bb\u03b1\u03c2
+currenciesDisplayName.MLF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039c\u03b1\u03bb\u03af
+currenciesDisplayName.MXP=\u0391\u03c3\u03b7\u03bc\u03ad\u03bd\u03b9\u03bf \u03a0\u03ad\u03c3\u03bf \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u03cd (1861-1992)
+currenciesDisplayName.ILS=\u039d\u03ad\u03bf \u03a3\u03ad\u03ba\u03b5\u03bb \u0399\u03c3\u03c1\u03b1\u03ae\u03bb
+currenciesDisplayName.PES=\u03a3\u03bf\u03bb \u03a0\u03b5\u03c1\u03bf\u03cd
+currenciesDisplayName.MXN=\u03a0\u03ad\u03c3\u03bf \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u03cd
+currenciesDisplayName.GYD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0393\u03bf\u03c5\u03b9\u03ac\u03bd\u03b1\u03c2
+currenciesDisplayName.ILP=\u039b\u03af\u03c1\u03b1 \u0399\u03c3\u03c1\u03b1\u03ae\u03bb
+currenciesDisplayName.CYP=\u039b\u03af\u03c1\u03b1 \u039a\u03cd\u03c0\u03c1\u03bf\u03c5
+currenciesDisplayName.SKK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u03a3\u03bb\u03bf\u03b2\u03b5\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.XDR=\u0395\u03b9\u03b4\u03b9\u03ba\u03ac \u0394\u03b9\u03ba\u03b1\u03b9\u03ce\u03bc\u03b1\u03c4\u03b1 \u0391\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7\u03c2
+currenciesDisplayName.PEN=\u039d\u03ad\u03bf \u03a3\u03bf\u03bb \u03a0\u03b5\u03c1\u03bf\u03cd
+currenciesDisplayName.LRD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039b\u03b9\u03b2\u03b5\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.PEI=Inti \u03a0\u03b5\u03c1\u03bf\u03cd
+currenciesDisplayName.AMD=\u039d\u03c4\u03c1\u03b1\u03bc \u0391\u03c1\u03bc\u03b5\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.BSD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039c\u03c0\u03b1\u03c7\u03ac\u03bc\u03b5\u03c2
+currenciesDisplayName.HRK=\u039a\u03bf\u03cd\u03bd\u03b1 \u039a\u03c1\u03bf\u03b1\u03c4\u03af\u03b1\u03c2
+currenciesDisplayName.HRD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u039a\u03c1\u03bf\u03b1\u03c4\u03af\u03b1\u03c2
+currenciesDisplayName.CLP=\u03a0\u03ad\u03c3\u03bf \u03a7\u03b9\u03bb\u03ae\u03c2
+currenciesDisplayName.XPF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf CFP
+currenciesDisplayName.FRF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0393\u03b1\u03bb\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.BRR=Cruzeiro \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.MKD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u03a0.\u0393.\u0394.\u039c.
+currenciesDisplayName.CLF=Unidades de Fomento \u03a7\u03b9\u03bb\u03ae\u03c2
+currenciesDisplayName.BRN=\u039d\u03ad\u03bf Cruzado \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.ALL=\u039b\u03b5\u03ba \u0391\u03bb\u03b2\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.MWK=\u039a\u03bf\u03c5\u03ac\u03c4\u03c3\u03b1 \u039c\u03b1\u03bb\u03ac\u03bf\u03c5\u03b9
+currenciesDisplayName.BRL=\u03a1\u03b5\u03ac\u03bb \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.TPE=\u0395\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a4\u03b9\u03bc\u03cc\u03c1
+currenciesDisplayName.BRE=Cruzeiro \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2 (1990-1993)
+currenciesDisplayName.BRC=Cruzado \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.BRB=\u039d\u03ad\u03bf Cruzeiro \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2 (1967-1986)
+currenciesDisplayName.DEM=\u039c\u03ac\u03c1\u03ba\u03bf \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.KWD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u039a\u03bf\u03c5\u03b2\u03ad\u03b9\u03c4
+currenciesDisplayName.XCD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae\u03c2 \u039a\u03b1\u03c1\u03b1\u03ca\u03b2\u03b9\u03ba\u03ae\u03c2
+currenciesDisplayName.NPR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u039d\u03b5\u03c0\u03ac\u03bb
+currenciesDisplayName.GWP=\u03a0\u03ad\u03c3\u03bf Guinea-Bissau
+currenciesDisplayName.YUN=\u039c\u03b5\u03c4\u03b1\u03c4\u03c1\u03ad\u03c8\u03b9\u03bc\u03bf \u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0393\u03b9\u03bf\u03c5\u03b3\u03ba\u03bf\u03c3\u03bb\u03b1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.SVC=\u039a\u03bf\u03bb\u03cc\u03bd \u0395\u03bb \u03a3\u03b1\u03bb\u03b2\u03b1\u03b4\u03cc\u03c1
+currenciesDisplayName.YUM=\u039d\u03ad\u03bf \u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0393\u03b9\u03bf\u03c5\u03b3\u03ba\u03bf\u03c3\u03bb\u03b1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.BEL=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0392\u03b5\u03bb\u03b3\u03af\u03bf\u03c5 (\u03bf\u03b9\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03cc)
+currenciesDisplayName.SIT=\u03a4\u03cc\u03bb\u03b1\u03c1 \u03a3\u03bb\u03bf\u03b2\u03b5\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.JPY=\u0393\u03b9\u03b5\u03bd \u0399\u03b1\u03c0\u03c9\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.XOF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf BCEAO CFA
+currenciesDisplayName.MVR=\u03a1\u03bf\u03c5\u03c6\u03af\u03b3\u03b9\u03b1 \u039d\u03ae\u03c3\u03c9\u03bd \u039c\u03b1\u03bb\u03b4\u03af\u03b2\u03c9\u03bd
+currenciesDisplayName.BEF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0392\u03b5\u03bb\u03b3\u03af\u03bf\u03c5
+currenciesDisplayName.GWE=\u0393\u03ba\u03b9\u03bd\u03ad\u03b1 \u0395\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.YUD=\u039c\u03b5\u03c4\u03b1\u03bb\u03bb\u03b9\u03ba\u03cc \u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0393\u03b9\u03bf\u03c5\u03b3\u03ba\u03bf\u03c3\u03bb\u03b1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.BEC=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0392\u03b5\u03bb\u03b3\u03af\u03bf\u03c5 (\u03bc\u03b5\u03c4\u03b1\u03c4\u03c1\u03ad\u03c8\u03b9\u03bc\u03bf)
+currenciesDisplayName.SUR=\u03a3\u03bf\u03b2\u03b9\u03b5\u03c4\u03b9\u03ba\u03cc \u03a1\u03bf\u03cd\u03b2\u03bb\u03b9
+currenciesDisplayName.RON=\u039b\u03b5\u03b2 \u03a1\u03bf\u03c5\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.ROL=\u039b\u03ad\u03b9 \u03a1\u03bf\u03c5\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.BDT=\u03a4\u03ac\u03ba\u03b1 \u039c\u03c0\u03b1\u03b3\u03ba\u03bb\u03b1\u03bd\u03c4\u03ad\u03c2
+currenciesDisplayName.DDM=Ostmark \u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae\u03c2 \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.XBD=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u039c\u03bf\u03bd\u03ac\u03b4\u03b1 \u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd (XBD)
+currenciesDisplayName.AWG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u0391\u03c1\u03bf\u03cd\u03bc\u03c0\u03b1
+currenciesDisplayName.XBC=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u039c\u03bf\u03bd\u03ac\u03b4\u03b1 \u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd (XBC)
+currenciesDisplayName.XBB=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u039d\u03bf\u03bc\u03b9\u03c3\u03bc\u03b1\u03c4\u03b9\u03ba\u03ae \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
+currenciesDisplayName.XBA=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u03a3\u03cd\u03bd\u03b8\u03b5\u03c4\u03b7 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
+currenciesDisplayName.NOK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03af\u03b1\u03c2
+currenciesDisplayName.MUR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u039c\u03b1\u03c5\u03c1\u03b9\u03ba\u03af\u03bf\u03c5
+currenciesDisplayName.ZAR=\u03a1\u03b1\u03bd\u03c4 \u039d\u03cc\u03c4\u03b9\u03b1\u03c2 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae\u03c2
+currenciesDisplayName.SHP=\u039b\u03af\u03c1\u03b1 \u0391\u03b3\u03af\u03b1\u03c2 \u0395\u03bb\u03ad\u03bd\u03b7\u03c2
+currenciesDisplayName.XAU=\u03a7\u03c1\u03c5\u03c3\u03cc\u03c2
+currenciesDisplayName.ZAL=\u03a1\u03b1\u03bd\u03c4 \u039d\u03cc\u03c4\u03b9\u03b1\u03c2 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae\u03c2 (\u03bf\u03b9\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03cc)
+currenciesDisplayName.VND=Dong \u0392\u03b9\u03b5\u03c4\u03bd\u03ac\u03bc
+currenciesDisplayName.TZS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u03a4\u03b1\u03bd\u03b6\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.GIP=\u039b\u03af\u03c1\u03b1 \u0393\u03b9\u03b2\u03c1\u03b1\u03bb\u03c4\u03ac\u03c1
+currenciesDisplayName.TND=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u03a4\u03c5\u03bd\u03b7\u03c3\u03af\u03b1\u03c2
+currenciesDisplayName.CVE=\u0395\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf\u03c5 \u0391\u03ba\u03c1\u03c9\u03c4\u03b7\u03c1\u03af\u03bf\u03c5
+currenciesDisplayName.UGX=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u039f\u03c5\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1\u03c2
+currenciesDisplayName.ZMK=Kwacha \u0396\u03ac\u03bc\u03c0\u03b9\u03b1\u03c2
+currenciesDisplayName.JOD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0399\u03bf\u03c1\u03b4\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.XAF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf BEAC CFA
+currenciesDisplayName.LBP=\u039b\u03af\u03c1\u03b1 \u039b\u03b9\u03b2\u03ac\u03bd\u03bf\u03c5
+currenciesDisplayName.UGS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u039f\u03c5\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1\u03c2 (1966-1987)
+currenciesDisplayName.WST=Tala \u0394\u03c5\u03c4\u03b9\u03ba\u03ae\u03c2 \u03a3\u03b1\u03bc\u03cc\u03b1
+currenciesDisplayName.KHR=\u03a1\u03af\u03b5\u03bb \u039a\u03b1\u03bc\u03c0\u03cc\u03c4\u03b6\u03b7\u03c2
+currenciesDisplayName.DOP=\u03a0\u03ad\u03c3\u03bf \u0394\u03bf\u03bc\u03af\u03bd\u03b9\u03ba\u03bf\u03c5
+currenciesDisplayName.EUR=\u0395\u03c5\u03c1\u03ce
+currenciesDisplayName.BOV=Mvdol \u0392\u03bf\u03bb\u03b9\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.MTP=\u039b\u03af\u03c1\u03b1 \u039c\u03ac\u03bb\u03c4\u03b1\u03c2
+currenciesDisplayName.USS=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0397\u03a0\u0391 (\u038a\u03b4\u03b9\u03b1 \u0397\u03bc\u03ad\u03c1\u03b1)
+currenciesDisplayName.BOP=\u03a0\u03ad\u03c3\u03bf \u0392\u03bf\u03bb\u03b9\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.CUP=\u03a0\u03ad\u03c3\u03bf \u039a\u03bf\u03cd\u03b2\u03b1\u03c2
+currenciesDisplayName.MTL=\u039b\u03b9\u03c1\u03ad\u03c4\u03b1 \u039c\u03ac\u03bb\u03c4\u03b1\u03c2
+currenciesDisplayName.TMM=\u039c\u03b1\u03bd\u03ac\u03c4 \u03a4\u03bf\u03c5\u03c1\u03ba\u03bc\u03b5\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.USN=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0397\u03a0\u0391 (\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03b7 \u0397\u03bc\u03ad\u03c1\u03b1)
+currenciesDisplayName.SGD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a3\u03b9\u03b3\u03ba\u03b1\u03c0\u03bf\u03cd\u03c1\u03b7\u03c2
+currenciesDisplayName.NZD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03ad\u03b1\u03c2 \u0396\u03b7\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.USD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0397\u03a0\u0391
+currenciesDisplayName.BOB=\u039c\u03c0\u03bf\u03bb\u03b9\u03b2\u03b9\u03ac\u03bd\u03bf \u0392\u03bf\u03bb\u03b9\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.ITL=\u039b\u03b9\u03c1\u03ad\u03c4\u03b1 \u0399\u03c4\u03b1\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.PAB=\u039c\u03c0\u03b1\u03bb\u03bc\u03c0\u03cc\u03b1 \u03a0\u03b1\u03bd\u03b1\u03bc\u03ac
+currenciesDisplayName.GTQ=\u039a\u03bf\u03c5\u03b5\u03c4\u03c3\u03ac\u03bb \u0393\u03bf\u03c5\u03b1\u03c4\u03b5\u03bc\u03ac\u03bb\u03b1\u03c2
+currenciesDisplayName.XXX=\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf \u03ae \u0391\u03ba\u03b1\u03c4\u03ac\u03bb\u03bb\u03b7\u03bb\u03bf \u039d\u03cc\u03bc\u03b9\u03c3\u03bc\u03b1
+currenciesDisplayName.AUD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0391\u03c5\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.GHC=\u03a3\u03ad\u03bd\u03c4\u03b9 \u0393\u03ba\u03ac\u03bd\u03b1\u03c2
+currenciesDisplayName.LAK=\u039a\u03b9\u03c0 \u039b\u03ac\u03bf\u03c2
+currenciesDisplayName.NAD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03b1\u03bc\u03af\u03bc\u03c0\u03b9\u03b1
+currenciesDisplayName.MGF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039c\u03b1\u03b4\u03b1\u03b3\u03b1\u03c3\u03ba\u03ac\u03c1\u03b7\u03c2
+currenciesDisplayName.BBD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039c\u03c0\u03b1\u03c1\u03bc\u03c0\u03ac\u03bd\u03c4\u03bf\u03c2
+currenciesDisplayName.CHF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0395\u03bb\u03b2\u03b5\u03c4\u03af\u03b1\u03c2
+currenciesDisplayName.MGA=Ariary \u039c\u03b1\u03b4\u03b1\u03b3\u03b1\u03c3\u03ba\u03ac\u03c1\u03b7\u03c2
+currenciesDisplayName.PYG=\u0393\u03ba\u03bf\u03c5\u03b1\u03c1\u03b1\u03bd\u03af \u03a0\u03b1\u03c1\u03b1\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2
+currenciesDisplayName.PLZ=\u0396\u03bb\u03cc\u03c4\u03c5 \u03a0\u03bf\u03bb\u03c9\u03bd\u03af\u03b1\u03c2 (1950-1995)
+currenciesDisplayName.YER=Rial \u03a5\u03b5\u03bc\u03ad\u03bd\u03b7\u03c2
+currenciesDisplayName.ATS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u0391\u03c5\u03c3\u03c4\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.ETB=\u039c\u03c0\u03b9\u03c1 \u0391\u03b9\u03b8\u03b9\u03bf\u03c0\u03af\u03b1\u03c2
+currenciesDisplayName.BND=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039c\u03c0\u03c1\u03bf\u03c5\u03bd\u03ad\u03b9
+currenciesDisplayName.EGP=\u039b\u03af\u03c1\u03b1 \u0391\u03b9\u03b3\u03cd\u03c0\u03c4\u03bf\u03c5
+currenciesDisplayName.JMD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a4\u03b6\u03b1\u03bc\u03ac\u03b9\u03ba\u03b1\u03c2
+currenciesDisplayName.PLN=\u0396\u03bb\u03cc\u03c4\u03c5 \u03a0\u03bf\u03bb\u03c9\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.DZD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0391\u03bb\u03b3\u03b5\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.ISK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u0399\u03c3\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.SRG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u03a3\u03bf\u03c5\u03c1\u03b9\u03bd\u03ac\u03bc
+currenciesDisplayName.LYD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u039b\u03b9\u03b2\u03cd\u03b7\u03c2
+currenciesDisplayName.BAM=\u039c\u03ac\u03c1\u03ba\u03bf \u0392\u03bf\u03c3\u03bd\u03af\u03b1\u03c2-\u0395\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7\u03c2
+currenciesDisplayName.BZD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039c\u03c0\u03b5\u03bb\u03af\u03b6
+currenciesDisplayName.ESP=\u03a0\u03b5\u03c3\u03ad\u03c4\u03b1 \u0399\u03c3\u03c0\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.KRW=Won \u039d\u03cc\u03c4\u03b9\u03b1\u03c2 \u039a\u03bf\u03c1\u03ad\u03b1\u03c2
+currenciesDisplayName.NLG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.MRO=\u039f\u03c5\u03b3\u03ba\u03bf\u03c5\u03af\u03b3\u03ba\u03b1 \u039c\u03b1\u03c5\u03c1\u03b9\u03c4\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.BAD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0392\u03bf\u03c3\u03bd\u03af\u03b1\u03c2-\u0395\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7\u03c2
+currenciesDisplayName.ZWD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0396\u03b9\u03bc\u03c0\u03ac\u03bc\u03c0\u03bf\u03c5\u03b5
+currenciesDisplayName.SEK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u03a3\u03bf\u03c5\u03b7\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.CSK=\u03a3\u03ba\u03bb\u03b7\u03c1\u03ae \u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u03a4\u03c3\u03b5\u03c7\u03bf\u03c3\u03bb\u03bf\u03b2\u03b1\u03ba\u03af\u03b1\u03c2
+currenciesDisplayName.BYR=\u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u039b\u03b5\u03c5\u03ba\u03bf\u03c1\u03c9\u03c3\u03af\u03b1\u03c2
+currenciesDisplayName.IRR=\u03a1\u03b9\u03ac\u03bb \u0399\u03c1\u03ac\u03bd
+currenciesDisplayName.PKR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u03a0\u03b1\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.BMD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0392\u03b5\u03c1\u03bc\u03bf\u03cd\u03b4\u03c9\u03bd
+currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=lev
+currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
+currenciesSymbol.CYP=\u039a\u03c5\u03c0\u03c1\u03b9\u03b1\u03ba\u03ae \u039b\u03af\u03c1\u03b1
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.MKD=MDen
+currenciesSymbol.MWK=MK
+currenciesSymbol.BMD=Ber$
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
+currenciesSymbol.GRD=\u0394\u03c1\u03c7
+currenciesSymbol.AMD=dram
+currenciesSymbol.SOS=Sh.
+currenciesSymbol.NPR=Nrs
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.KWD=KD
+currenciesSymbol.GEL=lari
+currenciesSymbol.ZAR=R
+currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
+currenciesSymbol.HKD=HK$
+currenciesSymbol.ARS=Arg$
+currenciesSymbol.ALL=lek
+currenciesSymbol.CRC=C
+currenciesSymbol.IDR=Rp
+currenciesSymbol.DKK=DKr
+currenciesSymbol.TZS=T Sh
+currenciesSymbol.SBD=SI$
+currenciesSymbol.NOK=NKr
+currenciesSymbol.UGX=U Sh
+currenciesSymbol.BEF=BF
+currenciesSymbol.TTD=TT$
+currenciesSymbol.SZL=E
+currenciesSymbol.FJD=F$
+currenciesSymbol.UYU=Ur$
+currenciesSymbol.BDT=Tk
+currenciesSymbol.QAR=QR
+currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
+currenciesSymbol.DJF=DF
+currenciesSymbol.XXX=XXX
+currenciesSymbol.JOD=JD
+currenciesSymbol.SGD=S$
+currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
+currenciesSymbol.MTL=Lm
+currenciesSymbol.MZM=Mt
+currenciesSymbol.YER=YRl
+currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
+currenciesSymbol.NZD=$NZ
+currenciesSymbol.OMR=RO
+currenciesSymbol.KZT=T
+currenciesSymbol.INR=INR
+currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=GBP
+currenciesSymbol.NAD=N$
+currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ZWD=Z$
+currenciesSymbol.MYR=RM
+currenciesSymbol.SRG=Sf
+currenciesSymbol.GTQ=Q
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.PLN=Zl
+currenciesSymbol.GNF=GF
+currenciesSymbol.VEB=Be
+currenciesSymbol.CNY=Y
+currenciesSymbol.KMF=CF
+currenciesSymbol.SEK=SKr
+currenciesSymbol.AUD=$A
+currenciesSymbol.LYD=LD
+currenciesSymbol.JMD=J$
+currenciesSymbol.SKK=Sk
+currenciesSymbol.CHF=SwF
+currenciesSymbol.ETB=Br
+currenciesSymbol.MRO=UM
+currenciesSymbol.BBD=BDS$
+currenciesSymbol.PKR=Pra
+currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
+currenciesSymbol.MXN=MEX$
+currenciesSymbol.DZD=DA
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.IRR=RI
+currenciesSymbol.GYD=G$
+currenciesSymbol.BAM=KM
+currenciesSymbol.CAD=Can$
+shortMonths=\u0399\u03b1\u03bd\u00ae\u03a6\u03b5\u03b2\u00ae\u039c\u03b1\u03c1\u00ae\u0391\u03c0\u03c1\u00ae\u039c\u03b1\u03ca\u00ae\u0399\u03bf\u03c5\u03bd\u00ae\u0399\u03bf\u03c5\u03bb\u00ae\u0391\u03c5\u03b3\u00ae\u03a3\u03b5\u03c0\u00ae\u039f\u03ba\u03c4\u00ae\u039d\u03bf\u03b5\u00ae\u0394\u03b5\u03ba\u00ae\u00ae
+months=\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2\u00ae\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2\u00ae\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2\u00ae\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2\u00ae\u039c\u03ac\u03b9\u03bf\u03c2\u00ae\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2\u00ae\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2\u00ae\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2\u00ae\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2\u00ae\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2\u00ae\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2\u00ae\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2\u00ae\u00ae
+shortWeekdays=\u00ae\u039a\u03c5\u03c1\u00ae\u0394\u03b5\u03c5\u00ae\u03a4\u03c1\u03b9\u00ae\u03a4\u03b5\u03c4\u00ae\u03a0\u03b5\u03bc\u00ae\u03a0\u03b1\u03c1\u00ae\u03a3\u03b1\u03b2\u00ae
+weekdays=\u00ae\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae\u00ae\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1\u00ae\u03a4\u03c1\u03af\u03c4\u03b7\u00ae\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7\u00ae\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7\u00ae\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae\u00ae\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf\u00ae
+eras=\u03c0.\u03a7.\u00ae\u03bc.\u03a7.\u00ae
+ampms=\u03a0\u039c\u00ae\u039c\u039c\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=dd MMM yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE, dd MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+territories.TL=\u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03cc \u03a4\u03b9\u03bc\u03cc\u03c1
+territories.TK=\u03a4\u03bf\u03ba\u03b5\u03bb\u03ac\u03bf\u03c5
+territories.TJ=\u03a4\u03b1\u03c4\u03b6\u03b9\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+territories.TH=\u03a4\u03b1\u03ca\u03bb\u03ac\u03bd\u03b4\u03b7
+territories.TG=\u03a4\u03cc\u03b3\u03ba\u03bf
+territories.TF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac \u039d\u03cc\u03c4\u03b9\u03b1 \u0395\u03b4\u03ac\u03c6\u03b7
+territories.GY=\u0393\u03bf\u03c5\u03b9\u03ac\u03bd\u03b1
+territories.TD=\u03a4\u03c3\u03b1\u03bd\u03c4
+territories.TC=\u039d\u03ae\u03c3\u03bf\u03b9 \u03a4\u03b5\u03c1\u03ba\u03c2 \u03ba\u03b1\u03b9 \u039a\u03ac\u03b9\u03ba\u03bf\u03c2
+territories.GW=\u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1-\u039c\u03c0\u03b9\u03c3\u03ac\u03bf\u03c5
+territories.GU=\u0393\u03ba\u03bf\u03c5\u03ac\u03bc
+territories.GT=\u0393\u03bf\u03c5\u03b1\u03c4\u03b5\u03bc\u03ac\u03bb\u03b1
+territories.GS=\u039d\u03cc\u03c4\u03b9\u03b1 \u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1 \u03ba\u03b1\u03b9 \u039d\u03cc\u03c4\u03b9\u03b5\u03c2 \u039d\u03ae\u03c3\u03bf\u03b9 \u03a3\u03ac\u03bd\u03c4\u03bf\u03c5\u03b9\u03c4\u03c2
+territories.GR=\u0395\u03bb\u03bb\u03ac\u03b4\u03b1
+territories.GQ=\u0399\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03ae \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1
+territories.GP=\u0393\u03bf\u03c5\u03b1\u03b4\u03b5\u03bb\u03bf\u03cd\u03c0\u03b7
+territories.SZ=\u0396\u03bf\u03c5\u03b1\u03b6\u03b7\u03bb\u03ac\u03bd\u03b4\u03b7
+territories.SY=\u03a3\u03c5\u03c1\u03af\u03b1
+territories.GN=\u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1
+territories.GM=\u0393\u03ba\u03ac\u03bc\u03c0\u03b9\u03b1
+territories.GL=\u0393\u03c1\u03bf\u03b9\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.SV=\u0395\u03bb \u03a3\u03b1\u03bb\u03b2\u03b1\u03b4\u03cc\u03c1
+territories.062=\u039d\u03cc\u03c4\u03b9\u03b1 \u039a\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03ae \u0391\u03c3\u03af\u03b1
+territories.ST=\u03a3\u03ac\u03bf \u03a4\u03bf\u03bc\u03ad \u03ba\u03b1\u03b9 \u03a0\u03c1\u03af\u03bd\u03c3\u03b9\u03c0\u03b5
+territories.GI=\u0393\u03b9\u03b2\u03c1\u03b1\u03bb\u03c4\u03ac\u03c1
+territories.061=\u03a0\u03bf\u03bb\u03c5\u03bd\u03b7\u03c3\u03af\u03b1
+territories.GH=\u0393\u03ba\u03ac\u03bd\u03b1
+territories.SR=\u03a3\u03bf\u03c5\u03c1\u03b9\u03bd\u03ac\u03bc
+territories.GG=\u0393\u03ba\u03b5\u03c1\u03bd\u03c3\u03ad\u03b9
+territories.GF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ae \u0393\u03bf\u03c5\u03b9\u03ac\u03bd\u03b1
+territories.GE=\u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1
+territories.SO=\u03a3\u03bf\u03bc\u03b1\u03bb\u03af\u03b1
+territories.GD=\u0393\u03c1\u03b5\u03bd\u03ac\u03b4\u03b1
+territories.SN=\u03a3\u03b5\u03bd\u03b5\u03b3\u03ac\u03bb\u03b7
+territories.SM=\u0386\u03b3\u03b9\u03bf\u03c2 \u039c\u03b1\u03c1\u03af\u03bd\u03bf\u03c2
+territories.GB=\u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03bf \u0392\u03b1\u03c3\u03af\u03bb\u03b5\u03b9\u03bf
+territories.SL=\u03a3\u03b9\u03ad\u03c1\u03b1 \u039b\u03b5\u03cc\u03bd\u03b5
+territories.GA=\u0393\u03ba\u03b1\u03bc\u03c0\u03cc\u03bd
+territories.SK=\u03a3\u03bb\u03bf\u03b2\u03b1\u03ba\u03af\u03b1
+territories.SJ=\u03a3\u03b2\u03b1\u03bb\u03bc\u03c0\u03ac\u03c1\u03bd\u03c4 \u03ba\u03b1\u03b9 \u0393\u03b9\u03b1\u03bd \u039c\u03b1\u03b3\u03b9\u03ad\u03bd
+territories.SI=\u03a3\u03bb\u03bf\u03b2\u03b5\u03bd\u03af\u03b1
+territories.SH=\u0391\u03b3\u03af\u03b1 \u0395\u03bb\u03ad\u03bd\u03b7
+territories.SG=\u03a3\u03b9\u03b3\u03ba\u03b1\u03c0\u03bf\u03cd\u03c1\u03b7
+territories.SE=\u03a3\u03bf\u03c5\u03b7\u03b4\u03af\u03b1
+territories.SD=\u03a3\u03bf\u03c5\u03b4\u03ac\u03bd
+territories.SC=\u03a3\u03b5\u03cb\u03c7\u03ad\u03bb\u03bb\u03b5\u03c2
+territories.SB=\u039d\u03ae\u03c3\u03bf\u03b9 \u03a3\u03bf\u03bb\u03bf\u03bc\u03ce\u03bd\u03c4\u03bf\u03c2
+territories.SA=\u03a3\u03b1\u03bf\u03c5\u03b4\u03b9\u03ba\u03ae \u0391\u03c1\u03b1\u03b2\u03af\u03b1
+territories.FR=\u0393\u03b1\u03bb\u03bb\u03af\u03b1
+territories.FO=\u039d\u03ae\u03c3\u03bf\u03b9 \u03a6\u03b5\u03c1\u03cc\u03b5\u03c2
+territories.057=\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u039c\u03b9\u03ba\u03c1\u03bf\u03bd\u03b7\u03c3\u03af\u03b1\u03c2
+territories.FM=\u039c\u03b9\u03ba\u03c1\u03bf\u03bd\u03b7\u03c3\u03af\u03b1
+territories.RW=\u03a1\u03bf\u03c5\u03ac\u03bd\u03c4\u03b1
+territories.054=\u039c\u03b5\u03bb\u03b1\u03bd\u03b7\u03c3\u03af\u03b1
+territories.FK=\u039d\u03ae\u03c3\u03bf\u03b9 \u03a6\u03ce\u03ba\u03bb\u03b1\u03bd\u03c4
+territories.053=\u0391\u03c5\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1 \u03ba\u03b1\u03b9 \u039d\u03ad\u03b1 \u0396\u03b7\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.RU=\u03a1\u03c9\u03c3\u03af\u03b1
+territories.FJ=\u03a6\u03af\u03c4\u03b6\u03b9
+territories.FI=\u03a6\u03b9\u03bd\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.RS=\u03a3\u03b5\u03c1\u03b2\u03af\u03b1
+territories.RO=\u03a1\u03bf\u03c5\u03bc\u03b1\u03bd\u03af\u03b1
+territories.RE=\u03a1\u03b5\u03cb\u03bd\u03b9\u03cc\u03bd
+territories.ET=\u0391\u03b9\u03b8\u03b9\u03bf\u03c0\u03af\u03b1
+territories.ES=\u0399\u03c3\u03c0\u03b1\u03bd\u03af\u03b1
+territories.ER=\u0395\u03c1\u03c5\u03b8\u03c1\u03b1\u03af\u03b1
+territories.QU=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u0388\u03bd\u03c9\u03c3\u03b7
+territories.EH=\u0394\u03c5\u03c4\u03b9\u03ba\u03ae \u03a3\u03b1\u03c7\u03ac\u03c1\u03b1
+territories.EG=\u0391\u03af\u03b3\u03c5\u03c0\u03c4\u03bf\u03c2
+territories.EE=\u0395\u03c3\u03b8\u03bf\u03bd\u03af\u03b1
+territories.830=\u039d\u03ae\u03c3\u03bf\u03b9 \u039a\u03b1\u03bd\u03b1\u03bb\u03b9\u03bf\u03cd
+territories.QO=\u03a0\u03b5\u03c1\u03b9\u03c6\u03b5\u03c1\u03b5\u03b9\u03b1\u03ba\u03ae \u03a9\u03ba\u03b5\u03b1\u03bd\u03af\u03b1
+territories.EC=\u0399\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03cc\u03c2
+territories.DZ=\u0391\u03bb\u03b3\u03b5\u03c1\u03af\u03b1
+territories.QA=\u039a\u03b1\u03c4\u03ac\u03c1
+territories.039=\u039d\u03cc\u03c4\u03b9\u03b1 \u0395\u03c5\u03c1\u03ce\u03c0\u03b7
+territories.DO=\u0394\u03bf\u03bc\u03b9\u03bd\u03b9\u03ba\u03b1\u03bd\u03ae \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1
+territories.PY=\u03a0\u03b1\u03c1\u03b1\u03b3\u03bf\u03c5\u03ac\u03b7
+territories.DM=\u039d\u03c4\u03bf\u03bc\u03af\u03bd\u03b9\u03ba\u03b1
+territories.035=\u039d\u03bf\u03c4\u03b9\u03bf\u03b1\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae \u0391\u03c3\u03af\u03b1
+territories.PW=\u03a0\u03b1\u03bb\u03ac\u03bf\u03c5
+territories.034=\u039d\u03cc\u03c4\u03b9\u03b1 \u0391\u03c3\u03af\u03b1
+territories.DK=\u0394\u03b1\u03bd\u03af\u03b1
+territories.DJ=\u03a4\u03b6\u03b9\u03bc\u03c0\u03bf\u03c5\u03c4\u03af
+territories.PT=\u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03af\u03b1
+territories.PS=\u03a0\u03b1\u03bb\u03b1\u03b9\u03c3\u03c4\u03b9\u03bd\u03b9\u03b1\u03ba\u03ac \u0395\u03b4\u03ac\u03c6\u03b7
+territories.030=\u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae \u0391\u03c3\u03af\u03b1
+territories.PR=\u03a0\u03bf\u03c5\u03ad\u03c1\u03c4\u03bf \u03a1\u03af\u03ba\u03bf
+territories.DE=\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03af\u03b1
+territories.PN=\u03a0\u03af\u03c4\u03ba\u03b5\u03c1\u03bd
+territories.PM=\u03a3\u03b1\u03b9\u03bd\u03c4 \u03a0\u03b9\u03ad\u03c1 \u03ba\u03b1\u03b9 \u039c\u03b9\u03ba\u03b5\u03bb\u03cc\u03bd
+territories.PL=\u03a0\u03bf\u03bb\u03c9\u03bd\u03af\u03b1
+territories.PK=\u03a0\u03b1\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+territories.PH=\u03a6\u03b9\u03bb\u03b9\u03c0\u03c0\u03af\u03bd\u03b5\u03c2
+territories.PG=\u03a0\u03b1\u03c0\u03bf\u03cd\u03b1 \u039d\u03ad\u03b1 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1
+territories.PF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ae \u03a0\u03bf\u03bb\u03c5\u03bd\u03b7\u03c3\u03af\u03b1
+territories.CZ=\u03a4\u03c3\u03b5\u03c7\u03af\u03b1
+territories.PE=\u03a0\u03b5\u03c1\u03bf\u03cd
+territories.CY=\u039a\u03cd\u03c0\u03c1\u03bf\u03c2
+territories.CX=\u039d\u03ae\u03c3\u03bf\u03c2 \u03a7\u03c1\u03b9\u03c3\u03c4\u03bf\u03c5\u03b3\u03ad\u03bd\u03bd\u03c9\u03bd
+territories.CV=\u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf \u0391\u03ba\u03c1\u03c9\u03c4\u03ae\u03c1\u03b9\u03bf
+territories.PA=\u03a0\u03b1\u03bd\u03b1\u03bc\u03ac\u03c2
+territories.CU=\u039a\u03bf\u03cd\u03b2\u03b1
+territories.CS=\u03a3\u03b5\u03c1\u03b2\u03af\u03b1 \u03ba\u03b1\u03b9 \u039c\u03b1\u03c5\u03c1\u03bf\u03b2\u03bf\u03cd\u03bd\u03b9\u03bf
+territories.CR=\u039a\u03cc\u03c3\u03c4\u03b1 \u03a1\u03af\u03ba\u03b1
+territories.029=\u039a\u03b1\u03c1\u03b1\u03ca\u03b2\u03b9\u03ba\u03ae
+territories.CO=\u039a\u03bf\u03bb\u03bf\u03bc\u03b2\u03af\u03b1
+territories.CN=\u039a\u03af\u03bd\u03b1
+territories.CM=\u039a\u03b1\u03bc\u03b5\u03c1\u03bf\u03cd\u03bd
+territories.CL=\u03a7\u03b9\u03bb\u03ae
+territories.CK=\u039d\u03ae\u03c3\u03bf\u03b9 \u039a\u03bf\u03c5\u03ba
+territories.021=\u0392\u03cc\u03c1\u03b5\u03b9\u03bf\u03c2 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
+territories.CI=\u0391\u03ba\u03c4\u03ae \u0395\u03bb\u03b5\u03c6\u03b1\u03bd\u03c4\u03bf\u03c3\u03c4\u03bf\u03cd
+territories.CH=\u0395\u03bb\u03b2\u03b5\u03c4\u03af\u03b1
+territories.CG=\u039a\u03bf\u03bd\u03b3\u03ba\u03cc - \u039c\u03c0\u03c1\u03b1\u03b6\u03b1\u03b2\u03af\u03bb
+territories.CF=\u039a\u03b5\u03bd\u03c4\u03c1\u03bf\u03b1\u03c6\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u03ae \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1
+territories.CD=\u039a\u03bf\u03bd\u03b3\u03ba\u03cc - \u039a\u03b9\u03bd\u03c3\u03ac\u03c3\u03b1
+territories.CC=\u039d\u03ae\u03c3\u03bf\u03b9 \u039a\u03cc\u03ba\u03bf\u03c2
+territories.OM=\u039f\u03bc\u03ac\u03bd
+territories.CA=\u039a\u03b1\u03bd\u03b1\u03b4\u03ac\u03c2
+territories.419=\u039b\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ae \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae \u03ba\u03b1\u03b9 \u039a\u03b1\u03c1\u03b1\u03ca\u03b2\u03b9\u03ba\u03ae
+territories.BZ=\u039c\u03c0\u03b5\u03bb\u03af\u03c3\u03b5
+territories.BY=\u039b\u03b5\u03c5\u03ba\u03bf\u03c1\u03c9\u03c3\u03af\u03b1
+territories.BW=\u039c\u03c0\u03bf\u03c4\u03c3\u03bf\u03c5\u03ac\u03bd\u03b1
+territories.BV=\u039d\u03ae\u03c3\u03bf\u03c2 \u039c\u03c0\u03bf\u03c5\u03b2\u03ad
+territories.BT=\u039c\u03c0\u03bf\u03c5\u03c4\u03ac\u03bd
+territories.BS=\u039c\u03c0\u03b1\u03c7\u03ac\u03bc\u03b5\u03c2
+territories.BR=\u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1
+territories.019=\u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
+territories.018=\u039d\u03cc\u03c4\u03b9\u03b1 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae [018]
+territories.NZ=\u039d\u03ad\u03b1 \u0396\u03b7\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.017=\u039c\u03ad\u03c3\u03b7 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.BO=\u0392\u03bf\u03bb\u03b9\u03b2\u03af\u03b1
+territories.BN=\u039c\u03c0\u03c1\u03bf\u03c5\u03bd\u03ad\u03b9
+territories.015=\u0392\u03cc\u03c1\u03b5\u03b9\u03b1 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.BM=\u0392\u03b5\u03c1\u03bc\u03bf\u03cd\u03b4\u03b5\u03c2
+territories.014=\u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae \u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.BL=\u0386\u03b3\u03b9\u03bf\u03c2 \u0392\u03b1\u03c1\u03b8\u03bf\u03bb\u03bf\u03bc\u03b1\u03af\u03bf\u03c2
+territories.013=\u039a\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03ae \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
+territories.NU=\u039d\u03b9\u03bf\u03cd\u03b5
+territories.BJ=\u039c\u03c0\u03b5\u03bd\u03af\u03bd
+territories.011=\u0394\u03c5\u03c4\u03b9\u03ba\u03ae \u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.BI=\u039c\u03c0\u03bf\u03c5\u03c1\u03bf\u03cd\u03bd\u03c4\u03b9
+territories.172=\u039a\u03bf\u03b9\u03bd\u03bf\u03c0\u03bf\u03bb\u03b9\u03c4\u03b5\u03af\u03b1 \u0391\u03bd\u03b5\u03be\u03b1\u03c1\u03c4\u03ae\u03c4\u03c9\u03bd \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u03b9\u03ce\u03bd
+territories.BH=\u039c\u03c0\u03b1\u03c7\u03c1\u03ad\u03b9\u03bd
+territories.NR=\u039d\u03b1\u03bf\u03cd\u03c1\u03bf\u03c5
+territories.BG=\u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1
+territories.BF=\u039c\u03c0\u03bf\u03c5\u03c1\u03ba\u03af\u03bd\u03b1 \u03a6\u03ac\u03c3\u03bf
+territories.NP=\u039d\u03b5\u03c0\u03ac\u03bb
+territories.BE=\u0392\u03ad\u03bb\u03b3\u03b9\u03bf
+territories.ZZ=\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03b7 \u03ae \u0386\u03ba\u03c5\u03c1\u03b7 \u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae
+territories.NO=\u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03af\u03b1
+territories.BD=\u039c\u03c0\u03b1\u03bd\u03b3\u03ba\u03bb\u03b1\u03bd\u03c4\u03ad\u03c2
+territories.BB=\u039c\u03c0\u03b1\u03c1\u03bc\u03c0\u03ac\u03bd\u03c4\u03bf\u03c2
+territories.ZW=\u0396\u03b9\u03bc\u03c0\u03ac\u03bc\u03c0\u03bf\u03c5\u03b5
+territories.NL=\u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.BA=\u0392\u03bf\u03c3\u03bd\u03af\u03b1 - \u0395\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7
+territories.NI=\u039d\u03b9\u03ba\u03b1\u03c1\u03ac\u03b3\u03bf\u03c5\u03b1
+territories.NG=\u039d\u03b9\u03b3\u03b7\u03c1\u03af\u03b1
+territories.NF=\u039d\u03ae\u03c3\u03bf\u03c2 \u039d\u03cc\u03c1\u03c6\u03bf\u03bb\u03ba
+territories.AZ=\u0391\u03b6\u03b5\u03c1\u03bc\u03c0\u03b1\u03ca\u03c4\u03b6\u03ac\u03bd
+territories.NE=\u039d\u03af\u03b3\u03b7\u03c1
+territories.AX=\u039d\u03ae\u03c3\u03bf\u03b9 \u0386\u03bb\u03b1\u03bd\u03c4
+territories.NC=\u039d\u03ad\u03b1 \u039a\u03b1\u03bb\u03b7\u03b4\u03bf\u03bd\u03af\u03b1
+territories.AW=\u0391\u03c1\u03bf\u03cd\u03bc\u03c0\u03b1
+territories.ZM=\u0396\u03ac\u03bc\u03c0\u03b9\u03b1
+territories.NA=\u039d\u03b1\u03bc\u03af\u03bc\u03c0\u03b9\u03b1
+territories.AU=\u0391\u03c5\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1
+territories.AT=\u0391\u03c5\u03c3\u03c4\u03c1\u03af\u03b1
+territories.AS=\u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u03ae \u03a3\u03b1\u03bc\u03cc\u03b1
+territories.AR=\u0391\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u03ae
+territories.AQ=\u0391\u03bd\u03c4\u03b1\u03c1\u03ba\u03c4\u03b9\u03ba\u03ae
+territories.009=\u03a9\u03ba\u03b5\u03b1\u03bd\u03af\u03b1
+territories.MZ=\u039c\u03bf\u03b6\u03b1\u03bc\u03b2\u03af\u03ba\u03b7
+territories.AO=\u0391\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1
+territories.MY=\u039c\u03b1\u03bb\u03b1\u03b9\u03c3\u03af\u03b1
+territories.AN=\u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ad\u03c2 \u0391\u03bd\u03c4\u03af\u03bb\u03bb\u03b5\u03c2
+territories.MX=\u039c\u03b5\u03be\u03b9\u03ba\u03cc
+territories.AM=\u0391\u03c1\u03bc\u03b5\u03bd\u03af\u03b1
+territories.005=\u039d\u03cc\u03c4\u03b9\u03b1 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
+territories.MW=\u039c\u03b1\u03bb\u03ac\u03bf\u03c5\u03b9
+territories.AL=\u0391\u03bb\u03b2\u03b1\u03bd\u03af\u03b1
+territories.MV=\u039c\u03b1\u03bb\u03b4\u03af\u03b2\u03b5\u03c2
+territories.003=\u0392\u03cc\u03c1\u03b5\u03b9\u03b1 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
+territories.ZA=\u039d\u03cc\u03c4\u03b9\u03b1 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.MU=\u039c\u03b1\u03c5\u03c1\u03af\u03ba\u03b9\u03bf\u03c2
+territories.002=\u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.MT=\u039c\u03ac\u03bb\u03c4\u03b1
+territories.AI=\u0391\u03bd\u03b3\u03ba\u03bf\u03c5\u03af\u03bb\u03b1
+territories.001=\u039a\u03cc\u03c3\u03bc\u03bf\u03c2
+territories.MS=\u039c\u03bf\u03bd\u03c3\u03b5\u03c1\u03ac\u03c4
+territories.MR=\u039c\u03b1\u03c5\u03c1\u03b9\u03c4\u03b1\u03bd\u03af\u03b1
+territories.AG=\u0391\u03bd\u03c4\u03af\u03b3\u03ba\u03bf\u03c5\u03b1 \u03ba\u03b1\u03b9 \u039c\u03c0\u03b1\u03c1\u03bc\u03c0\u03bf\u03cd\u03bd\u03c4\u03b1
+territories.MQ=\u039c\u03b1\u03c1\u03c4\u03b9\u03bd\u03af\u03ba\u03b1
+territories.AF=\u0391\u03c6\u03b3\u03b1\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd
+territories.MP=\u039d\u03ae\u03c3\u03bf\u03b9 \u0392\u03cc\u03c1\u03b5\u03b9\u03b5\u03c2 \u039c\u03b1\u03c1\u03b9\u03ac\u03bd\u03b5\u03c2
+territories.AE=\u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03b1 \u0391\u03c1\u03b1\u03b2\u03b9\u03ba\u03ac \u0395\u03bc\u03b9\u03c1\u03ac\u03c4\u03b1
+territories.MO=\u039c\u03b1\u03ba\u03ac\u03bf
+territories.AD=\u0391\u03bd\u03b4\u03cc\u03c1\u03c1\u03b1
+territories.MN=\u039c\u03bf\u03b3\u03b3\u03bf\u03bb\u03af\u03b1
+territories.MM=\u039c\u03b9\u03b1\u03bd\u03bc\u03ac\u03c1
+territories.ML=\u039c\u03ac\u03bb\u03b9
+territories.MK=\u03a0\u0393\u0394 \u039c\u03b1\u03ba\u03b5\u03b4\u03bf\u03bd\u03af\u03b1\u03c2
+territories.YT=\u039c\u03b1\u03b3\u03b9\u03cc\u03c4
+territories.MH=\u039d\u03ae\u03c3\u03bf\u03b9 \u039c\u03ac\u03c1\u03c3\u03b1\u03bb
+territories.MG=\u039c\u03b1\u03b4\u03b1\u03b3\u03b1\u03c3\u03ba\u03ac\u03c1\u03b7
+territories.MF=\u0386\u03b3\u03b9\u03bf\u03c2 \u039c\u03b1\u03c1\u03c4\u03af\u03bd\u03bf\u03c2
+territories.ME=\u039c\u03b1\u03c5\u03c1\u03bf\u03b2\u03bf\u03cd\u03bd\u03b9\u03bf
+territories.MD=\u039c\u03bf\u03bb\u03b4\u03b1\u03b2\u03af\u03b1
+territories.MC=\u039c\u03bf\u03bd\u03b1\u03ba\u03cc
+territories.MA=\u039c\u03b1\u03c1\u03cc\u03ba\u03bf
+territories.YE=\u03a5\u03b5\u03bc\u03ad\u03bd\u03b7
+territories.LY=\u039b\u03b9\u03b2\u03cd\u03b7
+territories.LV=\u039b\u03b5\u03c4\u03bf\u03bd\u03af\u03b1
+territories.155=\u0394\u03c5\u03c4\u03b9\u03ba\u03ae \u0395\u03c5\u03c1\u03ce\u03c0\u03b7
+territories.LU=\u039b\u03bf\u03c5\u03be\u03b5\u03bc\u03b2\u03bf\u03cd\u03c1\u03b3\u03bf
+territories.154=\u0392\u03cc\u03c1\u03b5\u03b9\u03b1 \u0395\u03c5\u03c1\u03ce\u03c0\u03b7
+territories.LT=\u039b\u03b9\u03b8\u03bf\u03c5\u03b1\u03bd\u03af\u03b1
+territories.LS=\u039b\u03b5\u03c3\u03cc\u03c4\u03bf
+territories.LR=\u039b\u03b9\u03b2\u03b5\u03c1\u03af\u03b1
+territories.151=\u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae \u0395\u03c5\u03c1\u03ce\u03c0\u03b7
+territories.150=\u0395\u03c5\u03c1\u03ce\u03c0\u03b7
+territories.LK=\u03a3\u03c1\u03b9 \u039b\u03ac\u03bd\u03ba\u03b1
+territories.LI=\u039b\u03b9\u03c7\u03c4\u03b5\u03bd\u03c3\u03c4\u03ac\u03b9\u03bd
+territories.LC=\u0391\u03b3\u03af\u03b1 \u039b\u03bf\u03c5\u03ba\u03af\u03b1
+territories.LB=\u039b\u03af\u03b2\u03b1\u03bd\u03bf\u03c2
+territories.LA=\u039b\u03ac\u03bf\u03c2
+territories.KZ=\u039a\u03b1\u03b6\u03b1\u03ba\u03c3\u03c4\u03ac\u03bd
+territories.KY=\u039d\u03ae\u03c3\u03bf\u03b9 \u039a\u03ad\u03b9\u03bc\u03b1\u03bd
+territories.KW=\u039a\u03bf\u03c5\u03b2\u03ad\u03b9\u03c4
+territories.145=\u0394\u03c5\u03c4\u03b9\u03ba\u03ae \u0391\u03c3\u03af\u03b1
+territories.143=\u039a\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03ae \u0391\u03c3\u03af\u03b1
+territories.142=\u0391\u03c3\u03af\u03b1
+territories.KR=\u039d\u03cc\u03c4\u03b9\u03b1 \u039a\u03bf\u03c1\u03ad\u03b1
+territories.KP=\u0392\u03cc\u03c1\u03b5\u03b9\u03b1 \u039a\u03bf\u03c1\u03ad\u03b1
+territories.KN=\u03a3\u03b1\u03b9\u03bd\u03c4 \u039a\u03b9\u03c4\u03c2 \u03ba\u03b1\u03b9 \u039d\u03ad\u03b2\u03b9\u03c2
+territories.KM=\u039a\u03bf\u03bc\u03cc\u03c1\u03bf\u03c2
+territories.KI=\u039a\u03b9\u03c1\u03b9\u03bc\u03c0\u03ac\u03c4\u03b9
+territories.WS=\u03a3\u03b1\u03bc\u03cc\u03b1
+territories.KH=\u039a\u03b1\u03bc\u03c0\u03cc\u03c4\u03b6\u03b7
+territories.KG=\u039a\u03b9\u03c1\u03b3\u03b9\u03b6\u03af\u03b1
+territories.KE=\u039a\u03ad\u03bd\u03c5\u03b1
+territories.WF=\u039d\u03ae\u03c3\u03bf\u03b9 \u039f\u03c5\u03b1\u03bb\u03bb\u03af\u03c2 \u03ba\u03b1\u03b9 \u03a6\u03bf\u03c5\u03c4\u03bf\u03c5\u03bd\u03ac
+territories.JP=\u0399\u03b1\u03c0\u03c9\u03bd\u03af\u03b1
+territories.JO=\u0399\u03bf\u03c1\u03b4\u03b1\u03bd\u03af\u03b1
+territories.JM=\u03a4\u03b6\u03b1\u03bc\u03ac\u03b9\u03ba\u03b1
+territories.VU=\u0392\u03b1\u03bd\u03bf\u03c5\u03ac\u03c4\u03bf\u03c5
+territories.JE=\u03a4\u03b6\u03ad\u03c1\u03c3\u03b5\u03ca
+territories.VN=\u0392\u03b9\u03b5\u03c4\u03bd\u03ac\u03bc
+territories.VI=\u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u03ad\u03c2 \u03a0\u03b1\u03c1\u03b8\u03ad\u03bd\u03bf\u03b9 \u039d\u03ae\u03c3\u03bf\u03b9
+territories.VG=\u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03b9\u03ba\u03ad\u03c2 \u03a0\u03b1\u03c1\u03b8\u03ad\u03bd\u03bf\u03b9 \u039d\u03ae\u03c3\u03bf\u03b9
+territories.VE=\u0392\u03b5\u03bd\u03b5\u03b6\u03bf\u03c5\u03ad\u03bb\u03b1
+territories.VC=\u0386\u03b3\u03b9\u03bf\u03c2 \u0392\u03b9\u03ba\u03ad\u03bd\u03c4\u03b9\u03bf\u03c2 \u03ba\u03b1\u03b9 \u0393\u03c1\u03b5\u03bd\u03b1\u03b4\u03af\u03bd\u03b5\u03c2
+territories.VA=\u0392\u03b1\u03c4\u03b9\u03ba\u03b1\u03bd\u03cc
+territories.IT=\u0399\u03c4\u03b1\u03bb\u03af\u03b1
+territories.IS=\u0399\u03c3\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.IR=\u0399\u03c1\u03ac\u03bd
+territories.IQ=\u0399\u03c1\u03ac\u03ba
+territories.UZ=\u039f\u03c5\u03b6\u03bc\u03c0\u03b5\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+territories.IO=\u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03b9\u03ba\u03ae \u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u0399\u03bd\u03b4\u03b9\u03ba\u03bf\u03cd \u03a9\u03ba\u03b5\u03b1\u03bd\u03bf\u03cd
+territories.UY=\u039f\u03c5\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7
+territories.IN=\u0399\u03bd\u03b4\u03af\u03b1
+territories.IM=\u039d\u03ae\u03c3\u03bf\u03c2 \u039c\u03b1\u03bd
+territories.IL=\u0399\u03c3\u03c1\u03b1\u03ae\u03bb
+territories.US=\u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03b5\u03c2 \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u03af\u03b5\u03c2
+territories.IE=\u0399\u03c1\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.ID=\u0399\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03af\u03b1
+territories.UM=\u0391\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03b5\u03c2 \u039d\u03b7\u03c3\u03af\u03b4\u03b5\u03c2 \u03c4\u03c9\u03bd \u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03c9\u03bd \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u03b9\u03ce\u03bd
+territories.UG=\u039f\u03c5\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1
+territories.UA=\u039f\u03c5\u03ba\u03c1\u03b1\u03bd\u03af\u03b1
+territories.HU=\u039f\u03c5\u03b3\u03b3\u03b1\u03c1\u03af\u03b1
+territories.HT=\u0391\u03ca\u03c4\u03ae
+territories.HR=\u039a\u03c1\u03bf\u03b1\u03c4\u03af\u03b1
+territories.TZ=\u03a4\u03b1\u03bd\u03b6\u03b1\u03bd\u03af\u03b1
+territories.HN=\u039f\u03bd\u03b4\u03bf\u03cd\u03c1\u03b1
+territories.HM=\u039d\u03ae\u03c3\u03bf\u03b9 \u03a7\u03b5\u03c1\u03bd\u03c4 \u03ba\u03b1\u03b9 \u039c\u03b1\u03ba\u03bd\u03c4\u03cc\u03bd\u03b1\u03bb\u03bd\u03c4
+territories.TW=\u03a4\u03b1\u03ca\u03b2\u03ac\u03bd
+territories.TV=\u03a4\u03bf\u03c5\u03b2\u03b1\u03bb\u03bf\u03cd
+territories.HK=\u03a7\u03bf\u03bd\u03b3\u03ba \u039a\u03bf\u03bd\u03b3\u03ba
+territories.TT=\u03a4\u03c1\u03b9\u03bd\u03b9\u03b4\u03ac\u03b4 \u03ba\u03b1\u03b9 \u03a4\u03bf\u03bc\u03c0\u03ac\u03b3\u03ba\u03bf
+territories.TR=\u03a4\u03bf\u03c5\u03c1\u03ba\u03af\u03b1
+territories.TO=\u03a4\u03cc\u03bd\u03b3\u03ba\u03b1
+territories.TN=\u03a4\u03c5\u03bd\u03b7\u03c3\u03af\u03b1
+territories.TM=\u03a4\u03bf\u03c5\u03c1\u03ba\u03bc\u03b5\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd
+languages.lb=\u039b\u03bf\u03c5\u03be\u03b5\u03bc\u03b2\u03bf\u03c5\u03c1\u03b3\u03b9\u03ba\u03ac
+languages.la=\u039b\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ac
+languages.xh=\u0396\u03cc\u03c3\u03b1
+languages.ky=\u039a\u03c5\u03c1\u03b3\u03b9\u03b6\u03b9\u03ba\u03ac
+languages.ku=\u039a\u03bf\u03c5\u03c1\u03b4\u03b9\u03ba\u03ac
+languages.ks=\u039a\u03b1\u03c3\u03bc\u03af\u03c1\u03b9
+languages.ko=\u039a\u03bf\u03c1\u03b5\u03b1\u03c4\u03b9\u03ba\u03ac
+languages.kn=\u039a\u03b1\u03bd\u03ac\u03bd\u03c4\u03b1
+languages.km=\u039a\u03b1\u03bc\u03c0\u03bf\u03c4\u03b6\u03b9\u03b1\u03bd\u03ac
+languages.ira=\u0399\u03c1\u03b1\u03bd\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.en_GB=\u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac \u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03bf\u03c5 \u0392\u03b1\u03c3\u03b9\u03bb\u03b5\u03af\u03bf\u03c5
+languages.grc=\u0391\u03c1\u03c7\u03b1\u03af\u03b1 \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac
+languages.wo=\u0393\u03bf\u03c5\u03cc\u03bb\u03bf\u03c6
+languages.art=\u03a4\u03b5\u03c7\u03bd\u03b7\u03c4\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.ka=\u0393\u03b5\u03c9\u03c1\u03b3\u03b9\u03b1\u03bd\u03ac
+languages.arp=\u0391\u03c1\u03ac\u03c0\u03b1\u03c7\u03bf
+languages.crh=\u03a4\u03bf\u03c5\u03c1\u03ba\u03b9\u03ba\u03ac \u039a\u03c1\u03b9\u03bc\u03b1\u03af\u03b1\u03c2
+languages.afa=\u0391\u03c6\u03c1\u03bf\u03b1\u03c3\u03b9\u03b1\u03c4\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.jv=\u0399\u03b1\u03b2\u03b1\u03bd\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.arc=\u0391\u03c1\u03b1\u03bc\u03b1\u03ca\u03ba\u03ac
+languages.cel=\u039a\u03b5\u03bb\u03c4\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.ja=\u0399\u03b1\u03c0\u03c9\u03bd\u03b9\u03ba\u03ac
+languages.vi=\u0392\u03b9\u03b5\u03c4\u03bd\u03b1\u03bc\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.it=\u0399\u03c4\u03b1\u03bb\u03b9\u03ba\u03ac
+languages.is=\u0399\u03c3\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.uz=\u039f\u03c5\u03b6\u03bc\u03c0\u03b5\u03ba\u03b9\u03ba\u03ac
+languages.ur=\u039f\u03c5\u03c1\u03bd\u03c4\u03bf\u03cd
+languages.ie=\u0399\u03bd\u03c4\u03b5\u03c1\u03bb\u03af\u03bd\u03b3\u03ba\u03bf\u03c5\u03b5
+languages.id=\u0399\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03b9\u03b1\u03ba\u03ac
+languages.ia=\u0399\u03bd\u03c4\u03b5\u03c1\u03bb\u03af\u03bd\u03b3\u03ba\u03bf\u03c5\u03b1
+languages.uk=\u039f\u03c5\u03ba\u03c1\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.ug=\u039f\u03c5\u03b9\u03b3\u03bf\u03c5\u03c1\u03b9\u03ba\u03ac
+languages.und=\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03b7 \u03ae \u0391\u03ba\u03b1\u03c4\u03ac\u03bb\u03bb\u03b7\u03bb\u03b7 \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.hy=\u0391\u03c1\u03bc\u03b5\u03bd\u03b9\u03ba\u03ac
+languages.phn=\u03a6\u03bf\u03b9\u03bd\u03b9\u03ba\u03b9\u03ba\u03ac
+languages.got=\u0393\u03bf\u03c4\u03b8\u03b9\u03ba\u03ac
+languages.es_ES=\u0399\u03c3\u03c0\u03b1\u03bd\u03b9\u03ba\u03ac \u0399\u03b2\u03b7\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.hu=\u039f\u03c5\u03b3\u03b3\u03c1\u03b9\u03ba\u03ac
+languages.phi=\u03a6\u03b9\u03bb\u03b9\u03c0\u03c0\u03b9\u03bd\u03ad\u03b6\u03b9\u03ba\u03b7 \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.hr=\u039a\u03c1\u03bf\u03b1\u03c4\u03b9\u03ba\u03ac
+languages.fil=\u03a6\u03b9\u03bb\u03b9\u03c0\u03c0\u03b9\u03bd\u03b5\u03b6\u03b9\u03ba\u03ac
+languages.apa=\u0393\u03bb\u03ce\u03c3\u03c3\u03b1 \u0391\u03c0\u03ac\u03c4\u03c3\u03b9
+languages.tw=\u03a4\u03bf\u03cd\u03b9
+languages.goh=\u03a0\u03b1\u03bb\u03b1\u03b9\u03ac \u0386\u03bd\u03c9 \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.hi=\u03a7\u03af\u03bd\u03c4\u03b9
+languages.tr=\u03a4\u03bf\u03c5\u03c1\u03ba\u03b9\u03ba\u03ac
+languages.cop=\u039a\u03bf\u03c0\u03c4\u03b9\u03ba\u03ac
+languages.he=\u0395\u03b2\u03c1\u03b1\u03ca\u03ba\u03ac
+languages.sai=\u0399\u03bd\u03b4\u03b9\u03b1\u03bd\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1 \u039d\u03bf\u03c4\u03af\u03bf\u03c5 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.tk=\u03a4\u03bf\u03c5\u03c1\u03ba\u03bc\u03b5\u03bd\u03b9\u03ba\u03ac
+languages.dum=\u039c\u03ad\u03c3\u03b1 \u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.ti=\u03a4\u03b9\u03b3\u03ba\u03c1\u03af\u03bd\u03c5\u03b1
+languages.th=\u03a4\u03b1\u03ca\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.te=\u03a4\u03b5\u03bb\u03bf\u03cd\u03b3\u03ba\u03bf\u03c5
+languages.ta=\u03a4\u03b1\u03bc\u03af\u03bb
+languages.syr=\u03a3\u03c5\u03c1\u03b9\u03b1\u03ba\u03ac
+languages.gu=\u0393\u03ba\u03bf\u03c5\u03b3\u03b9\u03b1\u03c1\u03ac\u03c4\u03b9
+languages.ine=\u0399\u03bd\u03b4\u03bf\u03b5\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u03b3\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.gn=\u0393\u03ba\u03bf\u03c5\u03b1\u03c1\u03ac\u03bd\u03b9
+languages.sw=\u03a3\u03bf\u03c5\u03b1\u03c7\u03af\u03bb\u03b9
+languages.gl=\u0393\u03b1\u03bb\u03b9\u03ba\u03b9\u03b1\u03bd\u03ac
+languages.sv=\u03a3\u03bf\u03c5\u03b7\u03b4\u03b9\u03ba\u03ac
+languages.su=\u03a3\u03bf\u03c5\u03b4\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.enm=\u039c\u03ad\u03c3\u03b1 \u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac
+languages.sr=\u03a3\u03b5\u03c1\u03b2\u03b9\u03ba\u03ac
+languages.sq=\u0391\u03bb\u03b2\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.en_CA=\u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac \u039a\u03b1\u03bd\u03b1\u03b4\u03ac
+languages.so=\u03a3\u03bf\u03bc\u03ac\u03bb\u03b9
+languages.gd=\u03a3\u03ba\u03c9\u03c4\u03b9\u03ba\u03ac \u039a\u03b5\u03bb\u03c4\u03b9\u03ba\u03ac
+languages.sl=\u03a3\u03bb\u03bf\u03b2\u03b5\u03bd\u03b9\u03ba\u03ac
+languages.ga=\u0399\u03c1\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.sk=\u03a3\u03bb\u03bf\u03b2\u03b1\u03ba\u03b9\u03ba\u03ac
+languages.si=\u03a3\u03b9\u03bd\u03c7\u03b1\u03bb\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.sh=\u03a3\u03b5\u03c1\u03b2\u03bf\u03ba\u03c1\u03bf\u03b1\u03c4\u03b9\u03ba\u03ac
+languages.fy=\u03a6\u03c1\u03b9\u03b6\u03b9\u03b1\u03bd\u03ac
+languages.sd=\u03a3\u03af\u03bd\u03c4\u03b9
+languages.cau=\u039a\u03b1\u03c5\u03ba\u03ac\u03c3\u03b9\u03b1 \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.sa=\u03a3\u03b1\u03bd\u03c3\u03ba\u03c1\u03b9\u03c4\u03b9\u03ba\u03ac
+languages.ang=\u03a0\u03b1\u03bb\u03b1\u03b9\u03ac \u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac
+languages.fr=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac
+languages.sla=\u03a3\u03bb\u03b1\u03b2\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.fo=\u03a6\u03b1\u03c1\u03cc\u03b5
+languages.gmh=\u039c\u03ad\u03c3\u03b1 \u0386\u03bd\u03c9 \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.ru=\u03a1\u03c9\u03c3\u03b9\u03ba\u03ac
+languages.cai=\u0399\u03bd\u03b4\u03b9\u03b1\u03bd\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1 \u039a\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03ae\u03c2 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.fi=\u03a6\u03b9\u03bd\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.ro=\u03a1\u03bf\u03c5\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.fa=\u03a0\u03b5\u03c1\u03c3\u03b9\u03ba\u03ac
+languages.pt_PT=\u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03b9\u03ba\u03ac \u0399\u03b2\u03b7\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.nl_BE=\u03a6\u03bb\u03b1\u03bc\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.es_419=\u0399\u03c3\u03c0\u03b1\u03bd\u03b9\u03ba\u03ac \u039b\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ae\u03c2 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.en_AU=\u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac \u0391\u03c5\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1\u03c2
+languages.peo=\u0391\u03c1\u03c7\u03b1\u03af\u03b1 \u03a0\u03b5\u03c1\u03c3\u03b9\u03ba\u03ac
+languages.eu=\u0392\u03b1\u03c3\u03ba\u03b9\u03ba\u03ac
+languages.et=\u0395\u03c3\u03b8\u03bf\u03bd\u03b9\u03ba\u03ac
+languages.es=\u0399\u03c3\u03c0\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.eo=\u0395\u03c3\u03c0\u03b5\u03c1\u03ac\u03bd\u03c4\u03bf
+languages.en=\u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac
+languages.el=\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac
+languages.jrb=\u0399\u03bf\u03c5\u03b4\u03b1\u03ca\u03ba\u03ac-\u0391\u03c1\u03b1\u03b2\u03b9\u03ba\u03ac
+languages.fro=\u03a0\u03b1\u03bb\u03b1\u03b9\u03ac \u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac
+languages.frm=\u039c\u03ad\u03c3\u03b1 \u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac
+languages.pt=\u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03b9\u03ba\u03ac
+languages.pt_BR=\u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03b9\u03ba\u03ac \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2
+languages.ps=\u03a0\u03ac\u03c3\u03c4\u03bf
+languages.de=\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.sit=\u03a3\u03b9\u03bd\u03bf\u03b8\u03b9\u03b2\u03b5\u03c4\u03b9\u03b1\u03bd\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.pl=\u03a0\u03bf\u03bb\u03c9\u03bd\u03b9\u03ba\u03ac
+languages.da=\u0394\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.jpr=\u0399\u03bf\u03c5\u03b4\u03b1\u03ca\u03ba\u03ac-\u03a0\u03b5\u03c1\u03c3\u03b9\u03ba\u03ac
+languages.cy=\u039f\u03c5\u03b1\u03bb\u03b9\u03ba\u03ac
+languages.pa=\u03a0\u03b1\u03bd\u03c4\u03b6\u03b1\u03c0\u03b9\u03ba\u03ac
+languages.cs=\u03a4\u03c3\u03b5\u03c7\u03b9\u03ba\u03ac
+languages.rom=\u03a1\u03c9\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.co=\u039a\u03bf\u03c1\u03c3\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.mis=\u0394\u03b9\u03ac\u03c6\u03bf\u03c1\u03b5\u03c2 \u0393\u03bb\u03ce\u03c3\u03c3\u03b5\u03c2
+languages.de_CH=\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac \u0395\u03bb\u03b2\u03b5\u03c4\u03af\u03b1\u03c2
+languages.or=\u039f\u03c1\u03af\u03b3\u03b9\u03b1
+languages.non=\u03a0\u03b1\u03bb\u03b1\u03b9\u03ac \u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03b9\u03ba\u03ac
+languages.ca=\u039a\u03b1\u03c4\u03b1\u03bb\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.mul=\u03a0\u03bf\u03bb\u03bb\u03b1\u03c0\u03bb\u03ad\u03c2 \u0393\u03bb\u03ce\u03c3\u03c3\u03b5\u03c2
+languages.oc=\u039f\u03ba\u03c3\u03b9\u03c4\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.bs=\u0392\u03bf\u03c3\u03bd\u03b9\u03b1\u03ba\u03ac
+languages.br=\u0392\u03c1\u03b5\u03c4\u03bf\u03bd\u03b9\u03ba\u03ac
+languages.bo=\u0398\u03b9\u03b2\u03b5\u03c4\u03b9\u03b1\u03bd\u03ac
+languages.zh_Hans=\u039a\u03b9\u03bd\u03b5\u03b6\u03b9\u03ba\u03ac \u0391\u03c0\u03bb\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03b1
+languages.bn=\u039c\u03c0\u03b5\u03bd\u03b3\u03ba\u03ac\u03bb\u03b9
+languages.zh_Hant=\u039a\u03b9\u03bd\u03b5\u03b6\u03b9\u03ba\u03ac \u03a0\u03b1\u03c1\u03b1\u03b4\u03bf\u03c3\u03b9\u03b1\u03ba\u03ac
+languages.bh=\u039c\u03c0\u03b9\u03c7\u03ac\u03c1\u03b9
+languages.bg=\u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03b9\u03ba\u03ac
+languages.be=\u039b\u03b5\u03c5\u03ba\u03bf\u03c1\u03c9\u03c3\u03b9\u03ba\u03ac
+languages.no=\u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03b9\u03ba\u03ac
+languages.nn=\u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03b9\u03ba\u03ac \u039d\u03b9\u03bd\u03cc\u03c1\u03c3\u03ba
+languages.nl=\u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.zu=\u0396\u03bf\u03c5\u03bb\u03bf\u03cd
+languages.az=\u0391\u03b6\u03b5\u03c1\u03b9\u03ba\u03ac
+languages.ne=\u039d\u03b5\u03c0\u03ac\u03bb\u03b9
+languages.ay=\u0391\u03ca\u03bc\u03ac\u03c1\u03b1
+languages.de_AT=\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac \u0391\u03c5\u03c3\u03c4\u03c1\u03af\u03b1\u03c2
+languages.ota=\u03a4\u03bf\u03c5\u03c1\u03ba\u03b9\u03ba\u03ac \u039f\u03b8\u03c9\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.aus=\u0391\u03c5\u03c3\u03c4\u03c1\u03b1\u03bb\u03b9\u03b1\u03bd\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.as=\u0391\u03c3\u03b1\u03bc\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.ar=\u0391\u03c1\u03b1\u03b2\u03b9\u03ba\u03ac
+languages.zh=\u039a\u03b9\u03bd\u03b5\u03b6\u03b9\u03ba\u03ac
+languages.zxx=\u03a7\u03c9\u03c1\u03af\u03c2 \u03b3\u03bb\u03c9\u03c3\u03c3\u03bf\u03bb\u03bf\u03b3\u03b9\u03ba\u03cc \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf
+languages.sga=\u03a0\u03b1\u03bb\u03b1\u03b9\u03ac \u0399\u03c1\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.my=\u0392\u03b9\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.am=\u0391\u03bc\u03b1\u03c1\u03b9\u03ba\u03ac
+languages.nai=\u0399\u03bd\u03b4\u03b9\u03b1\u03bd\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1 \u0392\u03cc\u03c1\u03b5\u03b9\u03b1\u03c2 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.mt=\u039c\u03b1\u03bb\u03c4\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.ms=\u039c\u03b1\u03bb\u03ac\u03b9
+languages.mr=\u039c\u03b1\u03c1\u03ac\u03b8\u03b9
+languages.af=\u0391\u03c6\u03c1\u03b9\u03ba\u03ac\u03b1\u03bd\u03c2
+languages.haw=\u03a7\u03b1\u03b2\u03b1\u03bd\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.mo=\u039c\u03bf\u03bb\u03b4\u03b1\u03b2\u03b9\u03ba\u03ac
+languages.mn=\u039c\u03bf\u03b3\u03b3\u03bf\u03bb\u03b9\u03ba\u03ac
+languages.en_US=\u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac \u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03c9\u03bd \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u03b9\u03ce\u03bd
+languages.ml=\u039c\u03b1\u03bb\u03b1\u03b3\u03b9\u03b1\u03bb\u03ac\u03bc
+languages.mk=\u03a3\u03bb\u03b1\u03b2\u03bf\u03bc\u03b1\u03ba\u03b5\u03b4\u03bf\u03bd\u03b9\u03ba\u03ac
+languages.mga=\u039c\u03ad\u03c3\u03b1 \u0399\u03c1\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.egy=\u0391\u03c1\u03c7\u03b1\u03af\u03b1 \u0391\u03b9\u03b3\u03c5\u03c0\u03c4\u03b9\u03b1\u03ba\u03ac
+languages.tlh=\u039a\u03bb\u03af\u03bd\u03b3\u03ba\u03bf\u03bd
+languages.yi=\u0399\u03bf\u03c5\u03b4\u03b1\u03ca\u03ba\u03ac
+languages.bat=\u0392\u03b1\u03bb\u03c4\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.lv=\u039b\u03b5\u03c4\u03bf\u03bd\u03b9\u03ba\u03ac
+languages.lt=\u039b\u03b9\u03b8\u03bf\u03c5\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.fr_CH=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac \u0395\u03bb\u03b2\u03b5\u03c4\u03af\u03b1\u03c2
+languages.lo=\u039b\u03b1\u03bf\u03b8\u03b9\u03b1\u03bd\u03ac
+languages.ln=\u039b\u03b9\u03bd\u03b3\u03ba\u03ac\u03bb\u03b1
+languages.fr_CA=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac \u039a\u03b1\u03bd\u03b1\u03b4\u03ac
+languages.sem=\u03a3\u03b7\u03bc\u03b9\u03c4\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+variants.1901=\u03a0\u03b1\u03c1\u03b1\u03b4\u03bf\u03c3\u03b9\u03b1\u03ba\u03ae \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ae \u039f\u03c1\u03b8\u03bf\u03b3\u03c1\u03b1\u03c6\u03af\u03b1
+variants.MONOTON=\u039c\u03bf\u03bd\u03bf\u03c4\u03bf\u03bd\u03b9\u03ba\u03cc
+variants.1996=\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ae \u03bf\u03c1\u03b8\u03bf\u03b3\u03c1\u03b1\u03c6\u03af\u03b1 \u03c4\u03bf\u03c5 1996
+variants.POLYTON=\u03a0\u03bf\u03bb\u03c5\u03c4\u03bf\u03bd\u03b9\u03ba\u03cc
+variants.REVISED=\u0391\u03bd\u03b1\u03b8\u03b5\u03c9\u03c1\u03b7\u03bc\u03ad\u03bd\u03b7 \u03bf\u03c1\u03b8\u03bf\u03b3\u03c1\u03b1\u03c6\u03af\u03b1
index 6195ff4947f447d3e2b68281391e23385fe6d481..7c767d900ce94099ae1242c9f9ff8622c997d89f 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
-currenciesDisplayName.YDD=Yemeni Dinar
-currenciesDisplayName.TWD=Taiwan New Dollar
-currenciesDisplayName.KES=Kenyan Shilling
-currenciesDisplayName.BYB=Belarussian New Ruble (1994-1999)
-currenciesDisplayName.LKR=Sri Lanka Rupee
-currenciesDisplayName.RWF=Rwandan Franc
-currenciesDisplayName.TJS=Tajikistan Somoni
-currenciesDisplayName.SDP=Sudanese Pound
-currenciesDisplayName.TJR=Tajikistan Ruble
-currenciesDisplayName.ERN=Eritrean Nakfa
-currenciesDisplayName.AFN=Afghani
-currenciesDisplayName.GRD=Greek Drachma
-currenciesDisplayName.IEP=Irish Pound
-currenciesDisplayName.ARS=Argentine Peso
-currenciesDisplayName.SDD=Sudanese Dinar
-currenciesDisplayName.ARP=Argentine Peso (1983-1985)
-currenciesDisplayName.GEL=Georgian Lari
-currenciesDisplayName.AFA=Afghani (1927-2002)
-currenciesDisplayName.GEK=Georgian Kupon Larit
-currenciesDisplayName.CRC=Costa Rican Colon
-currenciesDisplayName.FKP=Falkland Islands Pound
-currenciesDisplayName.EEK=Estonian Kroon
-currenciesDisplayName.HKD=Hong Kong Dollar
-currenciesDisplayName.MDL=Moldovan Leu
-currenciesDisplayName.ARA=Argentine Austral
-currenciesDisplayName.IQD=Iraqi Dinar
-currenciesDisplayName.SCR=Seychelles Rupee
-currenciesDisplayName.VUV=Vanuatu Vatu
-currenciesDisplayName.DKK=Danish Krone
-currenciesDisplayName.KPW=North Korean Won
-currenciesDisplayName.GQE=Equatorial Guinea Ekwele Guineana
-currenciesDisplayName.IDR=Indonesian Rupiah
-currenciesDisplayName.LVR=Latvian Ruble
-currenciesDisplayName.SOS=Somali Shilling
-currenciesDisplayName.EQE=Ekwele
-currenciesDisplayName.AED=United Arab Emirates Dirham
-currenciesDisplayName.BWP=Botswanan Pula
-currenciesDisplayName.LVL=Latvian Lats
-currenciesDisplayName.RUR=Russian Ruble (1991-1998)
-currenciesDisplayName.NIO=Nicaraguan Cordoba Oro
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
+currenciesDisplayName.YDD=Yemeni dinars
+currenciesDisplayName.KES=Kenyan shillings
+currenciesDisplayName.TWD=Taiwan dollars
+currenciesDisplayName.LKR=Sri Lanka rupees
+currenciesDisplayName.BYB=Belarussian new rubles (BYB)
+currenciesDisplayName.TJS=Tajikistan somonis
+currenciesDisplayName.RWF=Rwandan francs
+currenciesDisplayName.ERN=Eritrean nakfas
+currenciesDisplayName.TJR=Tajikistan rubles
+currenciesDisplayName.SDP=Old Sudanese pounds
+currenciesDisplayName.GRD=Greek drachmas
+currenciesDisplayName.AFN=Afghanis
+currenciesDisplayName.IEP=Irish pounds
+currenciesDisplayName.ARS=Argentine pesos
+currenciesDisplayName.SDG=Sudanese pounds
+currenciesDisplayName.ARP=Argentine pesos (ARP)
+currenciesDisplayName.SDD=Old Sudanese dinars
+currenciesDisplayName.GEL=Georgian laris
+currenciesDisplayName.GEK=Georgian kupon larits
+currenciesDisplayName.AFA=Afghanis (AFA)
+currenciesDisplayName.CRC=Costa Rican colons
+currenciesDisplayName.FKP=Falkland Islands pounds
+currenciesDisplayName.EEK=Estonian kroons
+currenciesDisplayName.MDL=Moldovan leus
+currenciesDisplayName.HKD=Hong Kong dollars
+currenciesDisplayName.IQD=Iraqi dinars
+currenciesDisplayName.ARA=Argentine australs
+currenciesDisplayName.SCR=Seychelles rupees
+currenciesDisplayName.VUV=Vanuatu vatus
+currenciesDisplayName.KPW=North Korean wons
+currenciesDisplayName.DKK=Danish kroner
+currenciesDisplayName.IDR=Indonesian rupiahs
+currenciesDisplayName.GQE=Equatorial Guinea ekwele
+currenciesDisplayName.SOS=Somali shillings
+currenciesDisplayName.LVR=Latvian rubles
+currenciesDisplayName.EQE=ekweles
+currenciesDisplayName.AED=UAE dirhams
+currenciesDisplayName.LVL=Latvian latses
+currenciesDisplayName.BWP=Botswanan pulas
+currenciesDisplayName.RUR=Russian rubles (RUR)
+currenciesDisplayName.NIO=Nicaraguan cordoba oros
 currenciesDisplayName.XTS=Testing Currency Code
-currenciesDisplayName.ADP=Andorran Peseta
-currenciesDisplayName.FJD=Fiji Dollar
-currenciesDisplayName.MOP=Macao Pataca
-currenciesDisplayName.RUB=Russian Ruble
-currenciesDisplayName.CDF=Congolese Franc Congolais
-currenciesDisplayName.NIC=Nicaraguan Cordoba
-currenciesDisplayName.DJF=Djibouti Franc
-currenciesDisplayName.ECV=Ecuador Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Solomon Islands Dollar
-currenciesDisplayName.UZS=Uzbekistan Sum
-currenciesDisplayName.LUL=Luxembourg Financial Franc
-currenciesDisplayName.ECS=Ecuador Sucre
-currenciesDisplayName.PHP=Philippine Peso
-currenciesDisplayName.THB=Thai Baht
-currenciesDisplayName.LUF=Luxembourg Franc
-currenciesDisplayName.RHD=Rhodesian Dollar
-currenciesDisplayName.FIM=Finnish Markka
-currenciesDisplayName.LUC=Luxembourg Convertible Franc
-currenciesDisplayName.TTD=Trinidad and Tobago Dollar
-currenciesDisplayName.SZL=Swaziland Lilangeni
-currenciesDisplayName.MNT=Mongolian Tugrik
-currenciesDisplayName.SAR=Saudi Riyal
-currenciesDisplayName.UAK=Ukrainian Karbovanetz
-currenciesDisplayName.COU=Unidad de Valor Real
-currenciesDisplayName.UAH=Ukrainian Hryvnia
-currenciesDisplayName.HUF=Hungarian Forint
-currenciesDisplayName.COP=Colombian Peso
-currenciesDisplayName.QAR=Qatari Rial
-currenciesDisplayName.LTT=Lithuanian Talonas
-currenciesDisplayName.PTE=Portuguese Escudo
-currenciesDisplayName.AOR=Angolan Kwanza Reajustado (1995-1999)
-currenciesDisplayName.UYU=Uruguay Peso Uruguayo
-currenciesDisplayName.GBP=British Pound Sterling
-currenciesDisplayName.BIF=Burundi Franc
-currenciesDisplayName.INR=Indian Rupee
-currenciesDisplayName.ZRZ=Zairean Zaire
-currenciesDisplayName.AON=Angolan New Kwanza (1990-2000)
-currenciesDisplayName.LTL=Lithuanian Lita
-currenciesDisplayName.XFU=French UIC-Franc
-currenciesDisplayName.KZT=Kazakhstan Tenge
-currenciesDisplayName.MZM=Mozambique Metical
-currenciesDisplayName.UYP=Uruguay Peso (1975-1993)
-currenciesDisplayName.AOK=Angolan Kwanza (1977-1990)
-currenciesDisplayName.BUK=Burmese Kyat
-currenciesDisplayName.GNS=Guinea Syli
-currenciesDisplayName.XFO=French Gold Franc
-currenciesDisplayName.PGK=Papua New Guinea Kina
-currenciesDisplayName.SYP=Syrian Pound
-currenciesDisplayName.MZE=Mozambique Escudo
-currenciesDisplayName.OMR=Oman Rial
-currenciesDisplayName.NGN=Nigerian Naira
-currenciesDisplayName.ZRN=Zairean New Zaire
-currenciesDisplayName.AOA=Angolan Kwanza
-currenciesDisplayName.CNY=Chinese Yuan Renminbi
-currenciesDisplayName.MAF=Moroccan Franc
-currenciesDisplayName.GNF=Guinea Franc
-currenciesDisplayName.HTG=Haitian Gourde
-currenciesDisplayName.MAD=Moroccan Dirham
-currenciesDisplayName.TRY=New Turkish Lira
-currenciesDisplayName.MMK=Myanmar Kyat
-currenciesDisplayName.MYR=Malaysian Ringgit
+currenciesDisplayName.MOP=Macao patacas
+currenciesDisplayName.FJD=Fiji dollars
+currenciesDisplayName.ADP=Andorran pesetas
+currenciesDisplayName.RUB=Russian rubles
+currenciesDisplayName.CDF=Congolese francs Congolais
+currenciesDisplayName.NIC=Nicaraguan cordobas
+currenciesDisplayName.DJF=Djibouti francs
+currenciesDisplayName.UZS=Uzbekistan sums
+currenciesDisplayName.SBD=Solomon Islands dollars
+currenciesDisplayName.ECV=Ecuador unidads de valor Constante (UVC)
+currenciesDisplayName.LUL=Luxembourg financial francs
+currenciesDisplayName.ECS=Ecuador sucres
+currenciesDisplayName.THB=Thai bahts
+currenciesDisplayName.PHP=Philippine pesos
+currenciesDisplayName.LUF=Luxembourg francs
+currenciesDisplayName.RHD=Rhodesian dollars
+currenciesDisplayName.LUC=Luxembourg convertible francs
+currenciesDisplayName.FIM=Finnish markkas
+currenciesDisplayName.TTD=Trinidad and Tobago dollars
+currenciesDisplayName.SZL=Swaziland lilangenis
+currenciesDisplayName.MNT=Mongolian tugriks
+currenciesDisplayName.UAK=Ukrainian karbovanetzs
+currenciesDisplayName.SAR=Saudi riyals
+currenciesDisplayName.COU=unidad de valor reals
+currenciesDisplayName.UAH=Ukrainian hryvnias
+currenciesDisplayName.HUF=Hungarian forints
+currenciesDisplayName.QAR=Qatari rials
+currenciesDisplayName.COP=Colombian pesos
+currenciesDisplayName.LTT=Lithuanian talonases
+currenciesDisplayName.PTE=Portuguese escudos
+currenciesDisplayName.UYU=Uruguay peso
+currenciesDisplayName.AOR=Angolan kwanzas reajustado (AOR)
+currenciesDisplayName.GBP=British pound sterlings
+currenciesDisplayName.ZRZ=Zairean zaires
+currenciesDisplayName.INR=Indian rupees
+currenciesDisplayName.BIF=Burundi francs
+currenciesDisplayName.XFU=French UIC-francs
+currenciesDisplayName.MZN=Mozambique meticals
+currenciesDisplayName.LTL=Lithuanian litas
+currenciesDisplayName.AON=Angolan new kwanzas (AON)
+currenciesDisplayName.UYP=Uruguay pesos (UYP)
+currenciesDisplayName.MZM=Old Mozambique meticals
+currenciesDisplayName.KZT=Kazakhstan tenges
+currenciesDisplayName.AOK=Angolan kwanzas (AOK)
+currenciesDisplayName.GNS=Guinea sylis
+currenciesDisplayName.BUK=Burmese kyats
+currenciesDisplayName.XFO=French gold francs
+currenciesDisplayName.PGK=Papua New Guinea kinas
+currenciesDisplayName.UYI=Uruguay pesos en unidades indexadas
+currenciesDisplayName.SYP=Syrian pounds
+currenciesDisplayName.OMR=Oman rials
+currenciesDisplayName.MZE=Mozambique escudos
+currenciesDisplayName.ZRN=Zairean new zaires
+currenciesDisplayName.NGN=Nigerian nairas
+currenciesDisplayName.CNY=Chinese yuan
+currenciesDisplayName.AOA=Angolan kwanzas
+currenciesDisplayName.MAF=Moroccan francs
+currenciesDisplayName.RSD=Serbian dinars
+currenciesDisplayName.GNF=Guinea francs
+currenciesDisplayName.MAD=Moroccan dirhams
+currenciesDisplayName.HTG=Haitian gourdes
+currenciesDisplayName.TRY=Turkish Lira
+currenciesDisplayName.MMK=Myanmar kyats
 currenciesDisplayName.XRE=RINET Funds
-currenciesDisplayName.LSM=Maloti
-currenciesDisplayName.LSL=Lesotho Loti
-currenciesDisplayName.XEU=European Currency Unit
-currenciesDisplayName.BHD=Bahraini Dinar
-currenciesDisplayName.SLL=Sierra Leone Leone
-currenciesDisplayName.BTN=Bhutan Ngultrum
-currenciesDisplayName.TRL=Turkish Lira
-currenciesDisplayName.KMF=Comoro Franc
-currenciesDisplayName.ANG=Netherlands Antillan Guilder
-currenciesDisplayName.CZK=Czech Republic Koruna
-currenciesDisplayName.AZM=Azerbaijanian Manat
-currenciesDisplayName.KYD=Cayman Islands Dollar
-currenciesDisplayName.GMD=Gambia Dalasi
-currenciesDisplayName.BGN=Bulgarian New Lev
-currenciesDisplayName.CAD=Canadian Dollar
-currenciesDisplayName.MXV=Mexican Unidad de Inversion (UDI)
-currenciesDisplayName.BGL=Bulgarian Hard Lev
-currenciesDisplayName.VEB=Venezuelan Bolivar
-currenciesDisplayName.MLF=Mali Franc
-currenciesDisplayName.ILS=Israeli New Sheqel
-currenciesDisplayName.MXP=Mexican Silver Peso (1861-1992)
-currenciesDisplayName.PES=Peruvian Sol
-currenciesDisplayName.GYD=Guyana Dollar
-currenciesDisplayName.MXN=Mexican Peso
-currenciesDisplayName.ILP=Israeli Pound
-currenciesDisplayName.SKK=Slovak Koruna
-currenciesDisplayName.CYP=Cyprus Pound
-currenciesDisplayName.XDR=Special Drawing Rights
-currenciesDisplayName.PEN=Peruvian Sol Nuevo
-currenciesDisplayName.LRD=Liberian Dollar
-currenciesDisplayName.PEI=Peruvian Inti
-currenciesDisplayName.AMD=Armenian Dram
+currenciesDisplayName.MYR=Malaysian ringgits
+currenciesDisplayName.LSM=malotis
+currenciesDisplayName.XEU=European currency units
+currenciesDisplayName.LSL=Lesotho lotis
+currenciesDisplayName.SLL=Sierra Leone leones
+currenciesDisplayName.BHD=Bahraini dinars
+currenciesDisplayName.BTN=Bhutan ngultrums
+currenciesDisplayName.TRL=Old Turkish Lira
+currenciesDisplayName.KMF=Comoro francs
+currenciesDisplayName.CZK=Czech Republic korunas
+currenciesDisplayName.ANG=Netherlands Antillan guilders
+currenciesDisplayName.AZN=Azerbaijanian manats
+currenciesDisplayName.AZM=Azerbaijanian manats (AZM)
+currenciesDisplayName.KYD=Cayman Islands dollars
+currenciesDisplayName.GMD=Gambia dalasis
+currenciesDisplayName.VEF=Venezuelan bolivar fuertes
+currenciesDisplayName.BGN=Bulgarian Levs
+currenciesDisplayName.MXV=Mexican unidads de inversion (UDI)
+currenciesDisplayName.CAD=Canadian dollars
+currenciesDisplayName.BGL=Bulgarian hard levs
+currenciesDisplayName.VEB=Venezuelan bolivars
+currenciesDisplayName.MLF=Mali francs
+currenciesDisplayName.MXP=Mexican silver pesos (MXP)
+currenciesDisplayName.ILS=New Israeli Sheqels
+currenciesDisplayName.PES=Peruvian sols
+currenciesDisplayName.MXN=Mexican pesos
+currenciesDisplayName.GYD=Guyana dollars
+currenciesDisplayName.ILP=Israeli pounds
+currenciesDisplayName.CYP=Cyprus pounds
+currenciesDisplayName.SKK=Slovak korunas
+currenciesDisplayName.XDR=special drawing rights
+currenciesDisplayName.PEN=Peruvian sol nuevos
+currenciesDisplayName.LRD=Liberian dollars
+currenciesDisplayName.PEI=Peruvian intis
+currenciesDisplayName.AMD=Armenian drams
+currenciesDisplayName.BSD=Bahamian dollars
 currenciesDisplayName.XPT=Platinum
-currenciesDisplayName.BSD=Bahamian Dollar
-currenciesDisplayName.HRK=Croatian Kuna
-currenciesDisplayName.CLP=Chilean Peso
-currenciesDisplayName.HRD=Croatian Dinar
-currenciesDisplayName.XPF=CFP Franc
-currenciesDisplayName.FRF=French Franc
+currenciesDisplayName.HRK=Croatian kunas
+currenciesDisplayName.CLP=Chilean pesos
+currenciesDisplayName.HRD=Croatian dinars
+currenciesDisplayName.XPF=CFP francs
+currenciesDisplayName.FRF=French francs
 currenciesDisplayName.XPD=Palladium
-currenciesDisplayName.BRR=Brazilian Cruzeiro
-currenciesDisplayName.MKD=Macedonian Denar
-currenciesDisplayName.CLF=Chilean Unidades de Fomento
-currenciesDisplayName.BRN=Brazilian Cruzado Novo
-currenciesDisplayName.ALL=Albanian Lek
-currenciesDisplayName.MWK=Malawi Kwacha
-currenciesDisplayName.BRL=Brazilian Real
-currenciesDisplayName.TPE=Timor Escudo
-currenciesDisplayName.BRE=Brazilian Cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brazilian Cruzado
-currenciesDisplayName.BRB=Brazilian Cruzeiro Novo (1967-1986)
-currenciesDisplayName.DEM=Deutsche Mark
-currenciesDisplayName.KWD=Kuwaiti Dinar
-currenciesDisplayName.XCD=East Caribbean Dollar
-currenciesDisplayName.NPR=Nepalese Rupee
-currenciesDisplayName.GWP=Guinea-Bissau Peso
-currenciesDisplayName.YUN=Yugoslavian Convertible Dinar
-currenciesDisplayName.SVC=El Salvador Colon
-currenciesDisplayName.YUM=Yugoslavian Noviy Dinar
-currenciesDisplayName.BEL=Belgian Franc (financial)
-currenciesDisplayName.SIT=Slovenia Tolar
-currenciesDisplayName.JPY=Japanese Yen
-currenciesDisplayName.XOF=CFA Franc BCEAO
-currenciesDisplayName.MVR=Maldive Islands Rufiyaa
-currenciesDisplayName.GWE=Portuguese Guinea Escudo
-currenciesDisplayName.BEF=Belgian Franc
-currenciesDisplayName.TOP=Tonga Pa\u02bbanga
-currenciesDisplayName.YUD=Yugoslavian Hard Dinar
-currenciesDisplayName.BEC=Belgian Franc (convertible)
-currenciesDisplayName.SUR=Soviet Rouble
-currenciesDisplayName.ROL=Romanian Lei
-currenciesDisplayName.DDM=East German Ostmark
-currenciesDisplayName.BDT=Bangladesh Taka
-currenciesDisplayName.XBD=European Unit of Account (XBD)
-currenciesDisplayName.AWG=Aruban Guilder
-currenciesDisplayName.XBC=European Unit of Account (XBC)
-currenciesDisplayName.XBB=European Monetary Unit
-currenciesDisplayName.XBA=European Composite Unit
-currenciesDisplayName.NOK=Norwegian Krone
-currenciesDisplayName.MUR=Mauritius Rupee
-currenciesDisplayName.ZAR=South African Rand
-currenciesDisplayName.SHP=Saint Helena Pound
+currenciesDisplayName.BRR=Brazilian cruzeiros
+currenciesDisplayName.MKD=Macedonian denars
+currenciesDisplayName.CLF=Chilean unidades de fomentos
+currenciesDisplayName.ALL=Albanian lek\u00eb
+currenciesDisplayName.BRN=Brazilian cruzado novos
+currenciesDisplayName.MWK=Malawi Kwachas
+currenciesDisplayName.BRL=Brazilian reals
+currenciesDisplayName.TPE=Timor escudos
+currenciesDisplayName.BRE=Brazilian cruzeiros (BRE)
+currenciesDisplayName.BRC=Brazilian cruzados
+currenciesDisplayName.BRB=Brazilian cruzeiros novo (BRB)
+currenciesDisplayName.DEM=Deutsche marks
+currenciesDisplayName.KWD=Kuwaiti dinars
+currenciesDisplayName.XCD=East Caribbean dollars
+currenciesDisplayName.NPR=Nepalese rupees
+currenciesDisplayName.GWP=Guinea-Bissau pesos
+currenciesDisplayName.YUN=Yugoslavian convertible dinars
+currenciesDisplayName.SVC=El Salvador colons
+currenciesDisplayName.YUM=Yugoslavian Noviy dinars
+currenciesDisplayName.BEL=Belgian francs (financial)
+currenciesDisplayName.SIT=Slovenia tolars
+currenciesDisplayName.JPY=Japanese yen
+currenciesDisplayName.XOF=CFA francs BCEAO
+currenciesDisplayName.MVR=Maldive Islands rufiyaas
+currenciesDisplayName.BEF=Belgian francs
+currenciesDisplayName.GWE=Portuguese Guinea escudos
+currenciesDisplayName.TOP=Tonga pa\u02bbangas
+currenciesDisplayName.YUD=Yugoslavian hard dinars
+currenciesDisplayName.BEC=Belgian francs (convertible)
+currenciesDisplayName.SUR=Soviet roubles
+currenciesDisplayName.RON=Romanian lei
+currenciesDisplayName.ROL=Old Romanian Lei
+currenciesDisplayName.BDT=Bangladeshi takas
+currenciesDisplayName.DDM=East German ostmarks
+currenciesDisplayName.XBD=European units of account (XBD)
+currenciesDisplayName.AWG=Aruban florin
+currenciesDisplayName.XBC=European units of account (XBC)
+currenciesDisplayName.XBB=European monetary units
+currenciesDisplayName.XBA=European composite units
+currenciesDisplayName.NOK=Norwegian krones
+currenciesDisplayName.MUR=Mauritius rupees
+currenciesDisplayName.ZAR=South African rands
+currenciesDisplayName.SHP=Saint Helena pounds
 currenciesDisplayName.XAU=Gold
-currenciesDisplayName.ZAL=South African Rand (financial)
-currenciesDisplayName.VND=Vietnamese Dong
-currenciesDisplayName.TZS=Tanzanian Shilling
-currenciesDisplayName.GIP=Gibraltar Pound
-currenciesDisplayName.TND=Tunisian Dinar
-currenciesDisplayName.CVE=Cape Verde Escudo
-currenciesDisplayName.UGX=Ugandan Shilling
+currenciesDisplayName.ZAL=South African rands (financial)
+currenciesDisplayName.VND=Vietnamese dongs
+currenciesDisplayName.TZS=Tanzanian shillings
+currenciesDisplayName.GIP=Gibraltar pounds
+currenciesDisplayName.TND=Tunisian dinars
+currenciesDisplayName.CVE=Cape Verde escudos
+currenciesDisplayName.UGX=Ugandan shillings
 currenciesDisplayName.XAG=Silver
-currenciesDisplayName.ZMK=Zambian Kwacha
-currenciesDisplayName.JOD=Jordanian Dinar
-currenciesDisplayName.XAF=CFA Franc BEAC
-currenciesDisplayName.LBP=Lebanese Pound
-currenciesDisplayName.UGS=Ugandan Shilling (1966-1987)
-currenciesDisplayName.STD=Sao Tome and Principe Dobra
-currenciesDisplayName.WST=Western Samoa Tala
-currenciesDisplayName.KHR=Cambodian Riel
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Dominican Peso
-currenciesDisplayName.BOV=Bolivian Mvdol
-currenciesDisplayName.MTP=Maltese Pound
-currenciesDisplayName.USS=US Dollar (Same day)
-currenciesDisplayName.BOP=Bolivian Peso
-currenciesDisplayName.CUP=Cuban Peso
-currenciesDisplayName.MTL=Maltese Lira
-currenciesDisplayName.TMM=Turkmenistan Manat
-currenciesDisplayName.USN=US Dollar (Next day)
-currenciesDisplayName.SGD=Singapore Dollar
-currenciesDisplayName.NZD=New Zealand Dollar
-currenciesDisplayName.USD=US Dollar
-currenciesDisplayName.HNL=Hoduras Lempira
-currenciesDisplayName.BOB=Boliviano
-currenciesDisplayName.CHW=WIR Franc
-currenciesDisplayName.ITL=Italian Lira
-currenciesDisplayName.PAB=Panamanian Balboa
-currenciesDisplayName.GTQ=Guatemala Quetzal
-currenciesDisplayName.XXX=No Currency
-currenciesDisplayName.LAK=Laotian Kip
-currenciesDisplayName.GHC=Ghana Cedi
-currenciesDisplayName.AUD=Australian Dollar
-currenciesDisplayName.NAD=Namibia Dollar
-currenciesDisplayName.KGS=Kyrgystan Som
-currenciesDisplayName.MGF=Madagascar Franc
-currenciesDisplayName.CHF=Swiss Franc
-currenciesDisplayName.BBD=Barbados Dollar
-currenciesDisplayName.CHE=WIR Euro
-currenciesDisplayName.MGA=Madagascar Ariary
-currenciesDisplayName.PYG=Paraguay Guarani
-currenciesDisplayName.PLZ=Polish Zloty (1950-1995)
-currenciesDisplayName.YER=Yemeni Rial
-currenciesDisplayName.ATS=Austrian Schilling
-currenciesDisplayName.ETB=Ethiopian Birr
-currenciesDisplayName.BND=Brunei Dollar
-currenciesDisplayName.JMD=Jamaican Dollar
-currenciesDisplayName.EGP=Egyptian Pound
-currenciesDisplayName.PLN=Polish Zloty
-currenciesDisplayName.DZD=Algerian Dinar
-currenciesDisplayName.ISK=Icelandic Krona
-currenciesDisplayName.SRG=Suriname Guilder
-currenciesDisplayName.LYD=Libyan Dinar
-currenciesDisplayName.SRD=Surinam Dollar
-currenciesDisplayName.BZD=Belize Dollar
-currenciesDisplayName.BAM=Bosnia-Herzegovina Convertible Mark
-currenciesDisplayName.ESP=Spanish Peseta
-currenciesDisplayName.KRW=South Korean Won
-currenciesDisplayName.NLG=Netherlands Guilder
-currenciesDisplayName.MRO=Mauritania Ouguiya
-currenciesDisplayName.BAD=Bosnia-Herzegovina Dinar
-currenciesDisplayName.ZWD=Zimbabwe Dollar
-currenciesDisplayName.SEK=Swedish Krona
-currenciesDisplayName.CSK=Czechoslovak Hard Koruna
-currenciesDisplayName.ESB=Spanish Peseta (convertible account)
-currenciesDisplayName.BYR=Belarussian Ruble
-currenciesDisplayName.ESA=Spanish Peseta (A account)
-currenciesDisplayName.IRR=Iranian Rial
-currenciesDisplayName.PKR=Pakistan Rupee
-currenciesDisplayName.BMD=Bermudan Dollar
-currenciesDisplayName.CSD=Serbian Dinar
-currenciesSymbol.BGL=lev
+currenciesDisplayName.ZMK=Zambian kwachas
+currenciesDisplayName.JOD=Jordanian dinars
+currenciesDisplayName.XAF=CFA francs BEAC
+currenciesDisplayName.LBP=Lebanese pounds
+currenciesDisplayName.UGS=Ugandan shillings (UGS)
+currenciesDisplayName.STD=Sao Tome and Principe dobras
+currenciesDisplayName.WST=Western Samoa talas
+currenciesDisplayName.KHR=Cambodian riels
+currenciesDisplayName.DOP=Dominican pesos
+currenciesDisplayName.EUR=euros
+currenciesDisplayName.BOV=Bolivian mvdols
+currenciesDisplayName.MTP=Maltese pounds
+currenciesDisplayName.USS=US dollars (same day)
+currenciesDisplayName.BOP=Bolivian pesos
+currenciesDisplayName.CUP=Cuban pesos
+currenciesDisplayName.MTL=Maltese liras
+currenciesDisplayName.TMM=Turkmenistan manats
+currenciesDisplayName.USN=US dollars (next day)
+currenciesDisplayName.GHS=Ghana cedis
+currenciesDisplayName.SGD=Singapore dollars
+currenciesDisplayName.NZD=New Zealand dollars
+currenciesDisplayName.USD=US dollars
+currenciesDisplayName.BOB=Bolivianos
+currenciesDisplayName.HNL=Honduras lempiras
+currenciesDisplayName.CHW=WIR francs
+currenciesDisplayName.ITL=Italian liras
+currenciesDisplayName.PAB=Panamanian balboas
+currenciesDisplayName.GTQ=Guatemala quetzals
+currenciesDisplayName.XXX=unknown/invalid currency
+currenciesDisplayName.AUD=Australian dollars
+currenciesDisplayName.GHC=Ghana cedis (GHC)
+currenciesDisplayName.LAK=Laotian kips
+currenciesDisplayName.NAD=Namibia dollars
+currenciesDisplayName.KGS=Kyrgystan soms
+currenciesDisplayName.MGF=Madagascar francs
+currenciesDisplayName.BBD=Barbados dollars
+currenciesDisplayName.CHF=Swiss francs
+currenciesDisplayName.CHE=WIR euros
+currenciesDisplayName.MGA=Madagascar Ariaries
+currenciesDisplayName.PYG=Paraguay guaranis
+currenciesDisplayName.PLZ=Polish zlotys (PLZ)
+currenciesDisplayName.YER=Yemeni rials
+currenciesDisplayName.ATS=Austrian schillings
+currenciesDisplayName.ETB=Ethiopian birrs
+currenciesDisplayName.BND=Brunei dollars
+currenciesDisplayName.EGP=Egyptian pounds
+currenciesDisplayName.JMD=Jamaican dollars
+currenciesDisplayName.PLN=Polish zloties
+currenciesDisplayName.DZD=Algerian dinars
+currenciesDisplayName.ISK=Icelandic kronas
+currenciesDisplayName.SRG=Suriname guilders
+currenciesDisplayName.LYD=Libyan dinars
+currenciesDisplayName.SRD=Surinam dollars
+currenciesDisplayName.BAM=Bosnia-Herzegovina convertible marks
+currenciesDisplayName.BZD=Belize dollars
+currenciesDisplayName.ESP=Spanish pesetas
+currenciesDisplayName.KRW=South Korean wons
+currenciesDisplayName.NLG=Netherlands guilders
+currenciesDisplayName.MRO=Mauritania ouguiyas
+currenciesDisplayName.BAD=Bosnia-Herzegovina dinars
+currenciesDisplayName.ZWD=Zimbabwe dollars
+currenciesDisplayName.SEK=Swedish kronas
+currenciesDisplayName.CSK=Czechoslovak hard korunas
+currenciesDisplayName.BYR=Belarussian rubles
+currenciesDisplayName.ESB=Spanish pesetas (convertible account)
+currenciesDisplayName.IRR=Iranian rials
+currenciesDisplayName.ESA=Spanish pesetas (A account)
+currenciesDisplayName.PKR=Pakistan rupees
+currenciesDisplayName.BMD=Bermudan dollars
+currenciesDisplayName.CSD=Old Serbian dinars
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
-currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
+currenciesSymbol.BMD=BD$
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
-currenciesSymbol.CLP=Ch$
+currenciesSymbol.CLP=CL$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
 currenciesSymbol.HKD=HK$
-currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.ARS=AR$
+currenciesSymbol.JPY=\u00a5
 currenciesSymbol.ALL=lek
-currenciesSymbol.CRC=C
+currenciesSymbol.CRC=\u20a1
 currenciesSymbol.IDR=Rp
-currenciesSymbol.DKK=DKr
+currenciesSymbol.VND=\u20ab
+currenciesSymbol.DKK=Dkr
 currenciesSymbol.TZS=T Sh
 currenciesSymbol.SBD=SI$
+currenciesSymbol.THB=\u0e3f
 currenciesSymbol.NOK=NKr
 currenciesSymbol.UGX=U Sh
+currenciesSymbol.NIC=C$
 currenciesSymbol.BEF=BF
 currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=\u20b1
+currenciesSymbol.BWP=P
 currenciesSymbol.SZL=E
 currenciesSymbol.STD=Db
+currenciesSymbol.UAH=\u20b4
 currenciesSymbol.SAR=SRl
 currenciesSymbol.FJD=F$
 currenciesSymbol.UYU=Ur$
 currenciesSymbol.BDT=Tk
+currenciesSymbol.AWG=Afl.
 currenciesSymbol.QAR=QR
 currenciesSymbol.LBP=LL
-currenciesSymbol.MNT=Tug
-currenciesSymbol.DJF=DF
+currenciesSymbol.MNT=\u20ae
+currenciesSymbol.DJF=Fdj
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
 currenciesSymbol.SGD=S$
 currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
 currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
+currenciesSymbol.CVE=Esc
 currenciesSymbol.HUF=Ft
-currenciesSymbol.NZD=$NZ
+currenciesSymbol.NZD=NZ$
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
+currenciesSymbol.INR=\u20a8
+currenciesSymbol.NGN=\u20a6
 currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
 currenciesSymbol.NAD=N$
+currenciesSymbol.GHS=\u20b5
+currenciesSymbol.COP=CO$
 currenciesSymbol.TRL=TL
-currenciesSymbol.COP=Col$
+currenciesSymbol.PYG=\u20b2
+currenciesSymbol.ITL=\u20a4
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
 currenciesSymbol.MYR=RM
 currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
-currenciesSymbol.BIF=Fbu
-currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
+currenciesSymbol.BIF=FBu
+currenciesSymbol.VEF=BsF
+currenciesSymbol.PLN=z\u0142
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.BOB=Bs
-currenciesSymbol.CNY=Y
+currenciesSymbol.CNY=RMB
 currenciesSymbol.KMF=CF
+currenciesSymbol.AOA=Kz
 currenciesSymbol.SEK=SKr
-currenciesSymbol.AUD=$A
+currenciesSymbol.AUD=A$
 currenciesSymbol.LYD=LD
 currenciesSymbol.JMD=J$
 currenciesSymbol.SKK=Sk
-currenciesSymbol.CHF=SwF
+currenciesSymbol.CHF=Fr.
 currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
-currenciesSymbol.BBD=BDS$
+currenciesSymbol.BBD=Bds$
+currenciesSymbol.KRW=\u20a9
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
+currenciesSymbol.CZK=K\u010d
 currenciesSymbol.DZD=DA
-currenciesSymbol.ANG=NA f.
+currenciesSymbol.BND=B$
+currenciesSymbol.ANG=NAf.
+currenciesSymbol.ILS=\u20aa
 currenciesSymbol.ESP=\u20a7
+currenciesSymbol.AZN=man.
 currenciesSymbol.BZD=BZ$
 currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
-currenciesSymbol.CAD=Can$
-shortMonths=Jan®Feb®Mar®Apr®May®Jun®Jul®Aug®Sep®Oct®Nov®Dec®®
-months=January®February®March®April®May®June®July®August®September®October®November®December®®
-shortWeekdays=®Sun®Mon®Tue®Wed®Thu®Fri®Sat®
-weekdays=®Sunday®Monday®Tuesday®Wednesday®Thursday®Friday®Saturday®
-eras=BC®AD®
+currenciesSymbol.CAD=CA$
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMay\u00aeJun\u00aeJul\u00aeAug\u00aeSep\u00aeOct\u00aeNov\u00aeDec\u00ae\u00ae
+months=January\u00aeFebruary\u00aeMarch\u00aeApril\u00aeMay\u00aeJune\u00aeJuly\u00aeAugust\u00aeSeptember\u00aeOctober\u00aeNovember\u00aeDecember\u00ae\u00ae
+shortWeekdays=\u00aeSun\u00aeMon\u00aeTue\u00aeWed\u00aeThu\u00aeFri\u00aeSat\u00ae
+weekdays=\u00aeSunday\u00aeMonday\u00aeTuesday\u00aeWednesday\u00aeThursday\u00aeFriday\u00aeSaturday\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=a.m.\u00aep.m.\u00ae
 shortDateFormat=M/d/yy
 mediumDateFormat=MMM d, yyyy
 longDateFormat=MMMM d, yyyy
@@ -382,7 +422,7 @@ shortTimeFormat=h:mm a
 mediumTimeFormat=h:mm:ss a
 longTimeFormat=h:mm:ss a z
 fullTimeFormat=h:mm:ss a z
-zoneStrings=Europe/Paris®CEST®Central European Standard Time®CEDT®Central European Daylight Time®©Pacific/Honolulu®HST®Hawaii Standard Time®HDT®Hawaii Daylight Time®©Europe/London®BST®British Standard Time®BDT®British Daylight Time®©America/Edmonton®MST (CA)®Mountain Standard Time (CA)®MDT (CA)®Mountain Daylight Time (CA)®©America/Denver®MST®Mountain Standard Time®MDT®Mountain Daylight Time®©Asia/Jerusalem®IST®Israel Standard Time®IDT®Israel Daylight Time®©America/Anchorage®AKST®Alaska Standard Time®AKDT®Alaska Daylight Time®©America/Phoenix®MST®Mountain Standard Time®MDT®Mountain Daylight Time®©America/Los_Angeles®PST®Pacific Standard Time®PDT®Pacific Daylight Time®©America/Chicago®CST®Central Standard Time®CDT®Central Daylight Time®©America/Halifax®AST®Atlantic Standard Time®ADT®Atlantic Daylight Time®©America/St_Johns®NST®Newfoundland Standard Time®NDT®Newfoundland Daylight Time®©America/Winnipeg®CST (CA)®Central Standard Time (CA)®CDT (CA)®Central Daylight Time (CA)®©America/Vancouver®PST (CA)®Pacific Standard Time (CA)®PDT (CA)®Pacific Daylight Time (CA)®©America/New_York®EST®Eastern Standard Time®EDT®Eastern Daylight Time®©America/Montreal®EST (CA)®Eastern Standard Time (CA)®EDT (CA)®Eastern Daylight Time (CA)®©Asia/Shanghai®CST®China Standard Time®CDT®China Daylight Time®©Asia/Tokyo®JST®Japan Standard Time®JDT®Japan Daylight Time®©Europe/Bucharest®EET®Eastern European Standard Time®EEST®Eastern European Daylight Time®©America/Indianapolis®EST®Eastern Standard Time®EDT®Eastern Daylight Time®©
+zoneStrings=Marshall_Islands\u00aeMarshall Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeShevchenko Time\u00ae\u00aeShevchenko Summer Time\u00ae\u00ae\u00a9Bangladesh\u00aeBangladesh Time\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeAustralian Central Western Standard Time\u00ae\u00aeAustralian Central Western Daylight Time\u00ae\u00ae\u00a9Marquesas\u00aeMarquesas Time\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeCentral Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeEastern Standard Time\u00ae\u00aeEastern Daylight Time\u00ae\u00ae\u00a9China\u00aeChina Standard Time\u00aeCST (China)\u00aeChina Daylight Time\u00aeCDT (China)\u00ae\u00a9Omsk\u00aeOmsk Time\u00ae\u00aeOmsk Summer Time\u00ae\u00ae\u00a9Guyana\u00aeGuyana Time\u00ae\u00ae\u00ae\u00ae\u00a9Europe/Dublin\u00ae\u00ae\u00aeIrish Summer Time\u00aeIST (Irish)\u00ae\u00a9Uzbekistan\u00aeUzbekistan Time\u00ae\u00aeUzbekistan Summer Time\u00ae\u00ae\u00a9Uruguay\u00aeUruguay Time\u00ae\u00aeUruguay Summer Time\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeEast Kazakhstan Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeKarachi Time\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeTbilisi Time\u00ae\u00aeTbilisi Summer Time\u00ae\u00ae\u00a9Tashkent\u00aeTashkent Time\u00ae\u00aeTashkent Summer Time\u00ae\u00ae\u00a9Changbai\u00aeChangbai Time\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeChatham Standard Time\u00ae\u00aeChatham Daylight Time\u00ae\u00ae\u00a9South_Georgia\u00aeSouth Georgia Time\u00aeGST (S. Georgia)\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeFrench Guiana Time\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeFrunze Time\u00ae\u00aeFrunze Summer Time\u00ae\u00ae\u00a9Europe_Eastern\u00aeEastern European Time\u00ae\u00aeEastern European Summer Time\u00ae\u00ae\u00a9Greenland_Eastern\u00aeEast Greenland Time\u00ae\u00aeEast Greenland Summer Time\u00ae\u00ae\u00a9Dacca\u00aeDacca Time\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00aeDushanbe Time\u00ae\u00aeDushanbe Summer Time\u00ae\u00ae\u00a9Chile\u00aeChile Time\u00ae\u00aeChile Summer Time\u00ae\u00ae\u00a9Europe_Central\u00aeCentral European Time\u00ae\u00aeCentral European Summer Time\u00ae\u00ae\u00a9Acre\u00aeAcre Time\u00ae\u00aeAcre Summer Time\u00ae\u00ae\u00a9Arabian\u00aeArabian Standard Time\u00aeAST (Arabian)\u00aeArabian Daylight Time\u00aeADT (Arabian)\u00ae\u00a9East_Timor\u00aeEast Timor Time\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeNew Zealand Standard Time\u00ae\u00aeNew Zealand Daylight Time\u00ae\u00ae\u00a9Indochina\u00aeIndochina Time\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00aeSouth Africa Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeKwajalein Time\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeMountain Standard Time\u00ae\u00aeMountain Daylight Time\u00ae\u00ae\u00a9DumontDUrville\u00aeDumont-d'Urville Time\u00ae\u00ae\u00ae\u00ae\u00a9Tokelau\u00aeTokelau Time\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeEcuador Time\u00ae\u00ae\u00ae\u00ae\u00a9Hovd\u00aeHovd Time\u00ae\u00aeHovd Summer Time\u00ae\u00ae\u00a9Africa_Central\u00aeCentral Africa Time\u00ae\u00ae\u00ae\u00ae\u00a9Phoenix_Islands\u00aePhoenix Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00aeArmenia Time\u00aeAMT (Armenia)\u00aeArmenia Summer Time\u00aeAMST (Armenia)\u00ae\u00a9Tuvalu\u00aeTuvalu Time\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00aeSakhalin Time\u00ae\u00aeSakhalin Summer Time\u00ae\u00ae\u00a9Samara\u00aeSamara Time\u00ae\u00aeSamara Summer Time\u00ae\u00ae\u00a9Palau\u00aePalau Time\u00ae\u00ae\u00ae\u00ae\u00a9Kosrae\u00aeKosrae Time\u00ae\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii Standard Time\u00ae\u00aeAlaska-Hawaii Daylight Time\u00ae\u00ae\u00a9America_Central\u00aeCentral Standard Time\u00ae\u00aeCentral Daylight Time\u00ae\u00ae\u00a9Pitcairn\u00aePitcairn Time\u00ae\u00ae\u00ae\u00ae\u00a9Malaysia\u00aeMalaysia Time\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeMoscow Standard Time\u00ae\u00aeMoscow Summer Time\u00ae\u00ae\u00a9Vanuatu\u00aeVanuatu Time\u00ae\u00aeVanuatu Summer Time\u00ae\u00ae\u00a9Kamchatka\u00aePetropavlovsk-Kamchatski Time\u00ae\u00aePetropavlovsk-Kamchatski Summer Time\u00ae\u00ae\u00a9Cape_Verde\u00aeCape Verde Time\u00ae\u00aeCape Verde Summer Time\u00ae\u00ae\u00a9Aqtobe\u00aeAqtobe Time\u00ae\u00aeAqtobe Summer Time\u00ae\u00ae\u00a9Falkland\u00aeFalkland Islands Time\u00ae\u00aeFalkland Islands Summer Time\u00ae\u00ae\u00a9Argentina\u00aeArgentina Time\u00ae\u00aeArgentina Summer Time\u00ae\u00ae\u00a9Krasnoyarsk\u00aeKrasnoyarsk Time\u00ae\u00aeKrasnoyarsk Summer Time\u00ae\u00ae\u00a9Peru\u00aePeru Time\u00ae\u00aePeru Summer Time\u00ae\u00ae\u00a9Qyzylorda\u00aeQyzylorda Time\u00ae\u00aeQyzylorda Summer Time\u00ae\u00ae\u00a9Tahiti\u00aeTahiti Time\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00aeIndian Ocean Time\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeGreenwich Mean Time\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00aeVladivostok Time\u00ae\u00aeVladivostok Summer Time\u00ae\u00ae\u00a9Atlantic\u00aeAtlantic Standard Time\u00ae\u00aeAtlantic Daylight Time\u00ae\u00ae\u00a9Truk\u00aeTruk Time\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aeRothera Time\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeWallis and Futuna Time\u00ae\u00ae\u00ae\u00ae\u00a9Syowa\u00aeSyowa Time\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00aeKorean Standard Time\u00ae\u00aeKorean Daylight Time\u00ae\u00ae\u00a9Ashkhabad\u00aeAshkhabad Time\u00ae\u00aeAshkhabad Summer Time\u00ae\u00ae\u00a9Australia_Western\u00aeAustralian Western Standard Time\u00ae\u00aeAustralian Western Daylight Time\u00ae\u00ae\u00a9Gilbert_Islands\u00aeGilbert Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Seychelles\u00aeSeychelles Time\u00ae\u00ae\u00ae\u00ae\u00a9Cocos\u00aeCocos Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00aeVenezuela Time\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00aeSolomon Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeParaguay Time\u00ae\u00aeParaguay Summer Time\u00ae\u00ae\u00a9Yakutsk\u00aeYakutsk Time\u00ae\u00aeYakutsk Summer Time\u00ae\u00ae\u00a9Azerbaijan\u00aeAzerbaijan Time\u00ae\u00aeAzerbaijan Summer Time\u00ae\u00ae\u00a9Kizilorda\u00aeKizilorda Time\u00ae\u00aeKizilorda Summer Time\u00ae\u00ae\u00a9Yukon\u00aeYukon Standard Time\u00ae\u00aeYukon Daylight Time\u00ae\u00ae\u00a9Dutch_Guiana\u00aeDutch Guiana Time\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeYerevan Time\u00ae\u00aeYerevan Summer Time\u00ae\u00ae\u00a9Turkmenistan\u00aeTurkmenistan Time\u00ae\u00aeTurkmenistan Summer Time\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundland Standard Time\u00ae\u00aeNewfoundland Daylight Time\u00ae\u00ae\u00a9Africa_Eastern\u00aeEast Africa Time\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00aeWake Island Time\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aePakistan Time\u00ae\u00aePakistan Summer Time\u00ae\u00ae\u00a9Singapore\u00aeSingapore Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Western\u00aeWestern European Time\u00ae\u00aeWestern European Summer Time\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybyshev Time\u00ae\u00aeKuybyshev Summer Time\u00ae\u00ae\u00a9India\u00aeIndia Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeChamorro Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00aeWest Greenland Time\u00ae\u00aeWest Greenland Summer Time\u00ae\u00ae\u00a9Bolivia\u00aeBolivia Time\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeWestern Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeGalapagos Time\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00aeIran Standard Time\u00ae\u00aeIran Daylight Time\u00ae\u00ae\u00a9Suriname\u00aeSuriname Time\u00ae\u00ae\u00ae\u00ae\u00a9Vostok\u00aeVostok Time\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeMalaya Time\u00ae\u00ae\u00ae\u00ae\u00a9Papua_New_Guinea\u00aePapua New Guinea Time\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBering Standard Time\u00ae\u00aeBering Daylight Time\u00ae\u00ae\u00a9Mawson\u00aeMawson Time\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeGeorgia Time\u00ae\u00aeGeorgia Summer Time\u00ae\u00ae\u00a9Kyrgystan\u00aeKyrgystan Time\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeFrench Southern and Antarctic Time\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aePonape Time\u00ae\u00ae\u00ae\u00ae\u00a9Christmas\u00aeChristmas Island Time\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeLanka Time\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aePhilippine Time\u00ae\u00aePhilippine Summer Time\u00ae\u00ae\u00a9Argentina_Western\u00aeWestern Argentina Time\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeVolgograd Time\u00ae\u00aeVolgograd Summer Time\u00ae\u00ae\u00a9Hong_Kong\u00aeHong Kong Time\u00ae\u00aeHong Kong Summer Time\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeWest Kazakhstan Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeGuam Standard Time\u00aeGST (Guam)\u00ae\u00ae\u00ae\u00a9Amazon\u00aeAmazon Time\u00ae\u00aeAmazon Summer Time\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre and Miquelon Standard Time\u00ae\u00aePierre and Miquelon Daylight Time\u00ae\u00ae\u00a9Niue\u00aeNiue Time\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aeTurkey Time\u00ae\u00aeTurkey Summer Time\u00ae\u00ae\u00a9Nepal\u00aeNepal Time\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeCook Islands Time\u00ae\u00aeCook Islands Half Summer Time\u00ae\u00ae\u00a9Macau\u00aeMacau Time\u00ae\u00aeMacau Summer Time\u00ae\u00ae\u00a9Mauritius\u00aeMauritius Time\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aeCuba Standard Time\u00aeCST (Cuba)\u00aeCuba Daylight Time\u00aeCDT (Cuba)\u00ae\u00a9Lord_Howe\u00aeLord Howe Standard Time\u00ae\u00aeLord Howe Daylight Time\u00ae\u00ae\u00a9Tonga\u00aeTonga Time\u00ae\u00aeTonga Summer Time\u00ae\u00ae\u00a9Maldives\u00aeMaldives Time\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00aeUlan Bator Time\u00ae\u00aeUlan Bator Summer Time\u00ae\u00ae\u00a9Norfolk\u00aeNorfolk Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Anadyr\u00aeAnadyr Time\u00ae\u00aeAnadyr Summer Time\u00ae\u00ae\u00a9Irkutsk\u00aeIrkutsk Time\u00ae\u00aeIrkutsk Summer Time\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeEastern Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9Myanmar\u00aeMyanmar Time\u00ae\u00ae\u00ae\u00ae\u00a9Reunion\u00aeReunion Time\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeGulf Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeAfghanistan Time\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeKashgar Time\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeBrunei Darussalam Time\u00ae\u00ae\u00ae\u00ae\u00a9Novosibirsk\u00aeNovosibirsk Time\u00ae\u00aeNovosibirsk Summer Time\u00ae\u00ae\u00a9Brasilia\u00aeBrasilia Time\u00ae\u00aeBrasilia Summer Time\u00ae\u00ae\u00a9Line_Islands\u00aeLine Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9America_Pacific\u00aePacific Standard Time\u00ae\u00aePacific Daylight Time\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHawaii-Aleutian Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeSamarkand Time\u00ae\u00aeSamarkand Summer Time\u00ae\u00ae\u00a9Australia_Central\u00aeAustralian Central Standard Time\u00ae\u00aeAustralian Central Daylight Time\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu Time\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeFiji Time\u00ae\u00aeFiji Summer Time\u00ae\u00ae\u00a9Israel\u00aeIsrael Standard Time\u00aeIST (Israel)\u00aeIsrael Daylight Time\u00ae\u00ae\u00a9Yekaterinburg\u00aeYekaterinburg Time\u00ae\u00aeYekaterinburg Summer Time\u00ae\u00ae\u00a9Easter\u00aeEaster Island Time\u00ae\u00aeEaster Island Summer Time\u00ae\u00ae\u00a9Almaty\u00aeAlmaty Time\u00ae\u00aeAlmaty Summer Time\u00ae\u00ae\u00a9Sverdlovsk\u00aeSverdlovsk Time\u00ae\u00aeSverdlovsk Summer Time\u00ae\u00ae\u00a9Africa_Western\u00aeWest Africa Time\u00ae\u00aeWest Africa Summer Time\u00ae\u00ae\u00a9Samoa\u00aeSamoa Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeBhutan Time\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeUral'sk Time\u00ae\u00aeUral'sk Summer Time\u00ae\u00ae\u00a9Alaska\u00aeAlaska Standard Time\u00ae\u00aeAlaska Daylight Time\u00ae\u00ae\u00a9Urumqi\u00aeUrumqi Time\u00ae\u00ae\u00ae\u00ae\u00a9Colombia\u00aeColombia Time\u00ae\u00aeColombia Summer Time\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk Time\u00ae\u00aeAktyubinsk Summer Time\u00ae\u00ae\u00a9Nauru\u00aeNauru Time\u00ae\u00ae\u00ae\u00ae\u00a9North_Mariana\u00aeNorth Mariana Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Magadan\u00aeMagadan Time\u00ae\u00aeMagadan Summer Time\u00ae\u00ae\u00a9Tajikistan\u00aeTajikistan Time\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aeChoibalsan Time\u00ae\u00aeChoibalsan Summer Time\u00ae\u00ae\u00a9New_Caledonia\u00aeNew Caledonia Time\u00ae\u00aeNew Caledonia Summer Time\u00ae\u00ae\u00a9Azores\u00aeAzores Time\u00ae\u00aeAzores Summer Time\u00ae\u00ae\u00a9Aqtau\u00aeAqtau Time\u00ae\u00aeAqtau Summer Time\u00ae\u00ae\u00a9Baku\u00aeBaku Time\u00ae\u00aeBaku Summer Time\u00ae\u00ae\u00a9Australia_Eastern\u00aeAustralian Eastern Standard Time\u00ae\u00aeAustralian Eastern Daylight Time\u00ae\u00ae\u00a9Davis\u00aeDavis Time\u00ae\u00ae\u00ae\u00ae\u00a9Gambier\u00aeGambier Time\u00ae\u00ae\u00ae\u00ae\u00a9Noronha\u00aeFernando de Noronha Time\u00ae\u00aeFernando de Noronha Summer Time\u00ae\u00ae\u00a9Greenland_Central\u00aeCentral Greenland Time\u00ae\u00aeCentral Greenland Summer Time\u00ae\u00ae\u00a9Japan\u00aeJapan Standard Time\u00ae\u00aeJapan Daylight Time\u00ae\u00ae\u00a9Borneo\u00aeBorneo Time\u00ae\u00aeBorneo Summer Time\u00ae\u00ae\u00a9Europe/London\u00ae\u00ae\u00aeBritish Summer Time\u00aeBST\u00ae\u00a9
 territories.GY=Guyana
 territories.GW=Guinea-Bissau
 territories.GU=Guam
@@ -396,6 +436,7 @@ territories.GM=Gambia
 territories.GL=Greenland
 territories.GI=Gibraltar
 territories.GH=Ghana
+territories.GG=Guernsey
 territories.GF=French Guiana
 territories.GE=Georgia
 territories.GD=Grenada
@@ -429,7 +470,7 @@ territories.CX=Christmas Island
 territories.CV=Cape Verde
 territories.CU=Cuba
 territories.CT=Canton and Enderbury Islands
-territories.CS=Serbia And Montenegro
+territories.CS=Serbia and Montenegro
 territories.CR=Costa Rica
 territories.CO=Colombia
 territories.CN=China
@@ -438,10 +479,10 @@ territories.CL=Chile
 territories.CK=Cook Islands
 territories.CI=Ivory Coast
 territories.CH=Switzerland
-territories.CG=Congo (Brazzaville)
+territories.CG=Congo - Brazzaville
 territories.CF=Central African Republic
-territories.CD=Congo (Kinshasa)
-territories.CC=Cocos (Keeling) Islands
+territories.CD=Congo - Kinshasa
+territories.CC=Cocos Islands
 territories.CA=Canada
 territories.BZ=Belize
 territories.BY=Belarus
@@ -454,6 +495,7 @@ territories.BQ=British Antarctic Territory
 territories.BO=Bolivia
 territories.BN=Brunei
 territories.BM=Bermuda
+territories.BL=Saint Barth\u00e9lemy
 territories.BJ=Benin
 territories.BI=Burundi
 territories.BH=Bahrain
@@ -461,6 +503,7 @@ territories.BG=Bulgaria
 territories.BF=Burkina Faso
 territories.BE=Belgium
 territories.BD=Bangladesh
+territories.ZZ=Unknown or Invalid Region
 territories.BB=Barbados
 territories.BA=Bosnia and Herzegovina
 territories.ZW=Zimbabwe
@@ -500,11 +543,12 @@ territories.VN=Vietnam
 territories.VI=U.S. Virgin Islands
 territories.VG=British Virgin Islands
 territories.VE=Venezuela
-territories.VD=North Vietnam
 territories.145=Western Asia
+territories.VD=North Vietnam
 territories.VC=Saint Vincent and the Grenadines
-territories.VA=Vatican
+territories.143=Central Asia
 territories.142=Asia
+territories.VA=Vatican
 territories.UZ=Uzbekistan
 territories.UY=Uruguay
 territories.US=United States
@@ -549,17 +593,19 @@ territories.SB=Solomon Islands
 territories.SA=Saudi Arabia
 territories.RW=Rwanda
 territories.RU=Russia
+territories.RS=Serbia
 territories.RO=Romania
 territories.RE=Reunion
-territories.062=South-central Asia
+territories.062=South-Central Asia
 territories.061=Polynesia
+territories.QU=European Union
 territories.QO=Outlying Oceania
 territories.QA=Qatar
 territories.057=Micronesian Region
-territories.PZ=Panama Canal Zone
 territories.054=Melanesia
-territories.PY=Paraguay
+territories.PZ=Panama Canal Zone
 territories.053=Australia and New Zealand
+territories.PY=Paraguay
 territories.PW=Palau
 territories.PU=U.S. Miscellaneous Pacific Islands
 territories.PT=Portugal
@@ -576,10 +622,10 @@ territories.PE=Peru
 territories.PC=Pacific Islands Trust Territory
 territories.PA=Panama
 territories.OM=Oman
-territories.833=Isle of Man
 territories.830=Channel Islands
 territories.039=Southern Europe
-territories.035=South-eastern Asia
+territories.035=South-Eastern Asia
+territories.034=Southern Asia
 territories.NZ=New Zealand
 territories.030=Eastern Asia
 territories.NU=Niue
@@ -599,8 +645,8 @@ territories.029=Caribbean
 territories.MZ=Mozambique
 territories.MY=Malaysia
 territories.MX=Mexico
-territories.MW=Malawi
 territories.021=Northern America
+territories.MW=Malawi
 territories.MV=Maldives
 territories.MU=Mauritius
 territories.MT=Malta
@@ -608,15 +654,17 @@ territories.MS=Montserrat
 territories.MR=Mauritania
 territories.MQ=Martinique
 territories.MP=Northern Mariana Islands
-territories.MO=Macao S.A.R., China
+territories.MO=Macau
 territories.MN=Mongolia
 territories.MM=Myanmar
 territories.ML=Mali
 territories.MK=Macedonia
-territories.MI=Midway Islands
 territories.419=Latin America and the Caribbean
+territories.MI=Midway Islands
 territories.MH=Marshall Islands
 territories.MG=Madagascar
+territories.MF=Saint Martin
+territories.ME=Montenegro
 territories.MD=Moldova
 territories.MC=Monaco
 territories.MA=Morocco
@@ -625,8 +673,8 @@ territories.018=Southern Africa
 territories.017=Middle Africa
 territories.015=Northern Africa
 territories.014=Eastern Africa
-territories.LY=Libya
 territories.013=Central America
+territories.LY=Libya
 territories.011=Western Africa
 territories.LV=Latvia
 territories.LU=Luxembourg
@@ -641,11 +689,11 @@ territories.LA=Laos
 territories.009=Oceania
 territories.005=South America
 territories.KZ=Kazakhstan
-territories.KY=Cayman Islands
 territories.003=North America
+territories.KY=Cayman Islands
 territories.002=Africa
-territories.KW=Kuwait
 territories.001=World
+territories.KW=Kuwait
 territories.KR=South Korea
 territories.KP=North Korea
 territories.KN=Saint Kitts and Nevis
@@ -658,12 +706,14 @@ territories.JT=Johnston Island
 territories.JP=Japan
 territories.JO=Jordan
 territories.JM=Jamaica
+territories.JE=Jersey
 territories.IT=Italy
 territories.IS=Iceland
 territories.IR=Iran
 territories.IQ=Iraq
 territories.IO=British Indian Ocean Territory
 territories.IN=India
+territories.IM=Isle of Man
 territories.IL=Israel
 territories.IE=Ireland
 territories.ID=Indonesia
@@ -672,32 +722,35 @@ territories.HT=Haiti
 territories.HR=Croatia
 territories.HN=Honduras
 territories.HM=Heard Island and McDonald Islands
-territories.HK=Hong Kong S.A.R., China
-languages.akk=Akkadian
+territories.HK=Hong Kong
 languages.gwi=Gwich\u02bcin
+languages.akk=Akkadian
 languages.eka=Ekajuk
 languages.ijo=Ijo
 languages.xh=Xhosa
 languages.sux=Sumerian
 languages.sus=Susu
-languages.mis=Miscellaneous Languages
+languages.mis=Miscellaneous Language
 languages.loz=Lozi
-languages.tog=Tonga (Nyasa)
+languages.tog=Nyasa Tonga
+languages.zbl=Blissymbols
 languages.pon=Pohnpeian
 languages.min=Minangkabau
 languages.suk=Sukuma
 languages.wo=Wolof
-languages.kut=Kutenai
 languages.lol=Mongo
+languages.kut=Kutenai
 languages.mic=Micmac
 languages.wa=Walloon
 languages.kum=Kumyk
 languages.zap=Zapotec
-languages.cus=Cushitic (Other)
-languages.doi=Dogri
+languages.ain=Ainu
+languages.cus=Cushitic Language
 languages.jbo=Lojban
+languages.doi=Dogri
+languages.zza=Zaza
 languages.vo=Volap\u00fck
-languages.oto=Otomian Languages
+languages.oto=Otomian Language
 languages.vi=Vietnamese
 languages.vai=Vai
 languages.rar=Rarotongan
@@ -710,27 +763,29 @@ languages.nap=Neapolitan
 languages.uz=Uzbek
 languages.uga=Ugaritic
 languages.tmh=Tamashek
-languages.nai=North American Indian (Other)
+languages.nai=North American Indian Language
 languages.nah=Nahuatl
 languages.ur=Urdu
 languages.fat=Fanti
 languages.uk=Ukrainian
-languages.egy=Egyptian (Ancient)
-languages.ug=Uighur
+languages.egy=Ancient Egyptian
+languages.zxx=No linguistic content
+languages.ug=Uyghur
 languages.fan=Fang
-languages.ssa=Nilo-Saharan (Other)
-languages.bat=Baltic (Other)
+languages.ssa=Nilo-Saharan Language
 languages.mga=Middle Irish
+languages.bat=Baltic Language
 languages.nyo=Nyoro
 languages.bas=Basa
 languages.nyn=Nyankole
 languages.nym=Nyamwezi
+languages.gsw=Swiss German
 languages.hmn=Hmong
 languages.ban=Balinese
 languages.osa=Osage
 languages.bal=Baluchi
 languages.ty=Tahitian
-languages.bai=Bamileke Languages
+languages.bai=Bamileke Language
 languages.tw=Twi
 languages.srr=Serer
 languages.tli=Tlingit
@@ -740,7 +795,7 @@ languages.ts=Tsonga
 languages.srn=Sranan Tongo
 languages.bad=Banda
 languages.tr=Turkish
-languages.to=Tonga (Tonga Islands)
+languages.to=Tonga
 languages.tn=Tswana
 languages.tl=Tagalog
 languages.tk=Turkmen
@@ -750,9 +805,10 @@ languages.kru=Kurukh
 languages.tg=Tajik
 languages.byn=Blin
 languages.te=Telugu
-languages.csb=Kashubian
 languages.kro=Kru
+languages.csb=Kashubian
 languages.ta=Tamil
+languages.krl=Karelian
 languages.tkl=Tokelau
 languages.efi=Efik
 languages.sw=Swahili
@@ -764,7 +820,7 @@ languages.ss=Swati
 languages.sr=Serbian
 languages.sq=Albanian
 languages.men=Mende
-languages.crp=Creoles and Pidgins (Other)
+languages.crp=Creole or Pidgin
 languages.so=Somali
 languages.afh=Afrihili
 languages.sn=Shona
@@ -773,10 +829,10 @@ languages.sl=Slovenian
 languages.grc=Ancient Greek
 languages.sk=Slovak
 languages.grb=Grebo
-languages.si=Sinhalese
+languages.si=Sinhala
 languages.sh=Serbo-Croatian
-languages.afa=Afro-Asiatic (Other)
-languages.crh=Crimean Turkish; Crimean Tatar
+languages.crh=Crimean Turkish
+languages.afa=Afro-Asiatic Language
 languages.sg=Sango
 languages.se=Northern Sami
 languages.sd=Sindhi
@@ -790,43 +846,48 @@ languages.mdr=Mandar
 languages.ro=Romanian
 languages.rn=Rundi
 languages.rm=Rhaeto-Romance
+languages.fr_CH=Swiss French
 languages.mdf=Moksha
 languages.tiv=Tiv
+languages.fr_CA=Canadian French
 languages.ady=Adyghe
 languages.zun=Zuni
 languages.kpe=Kpelle
 languages.qu=Quechua
 languages.tig=Tigre
 languages.son=Songhai
-languages.cpp=Other Portuguese-based Creoles and Pidgins
+languages.cpp=Portuguese-based Creole or Pidgin
+languages.rup=Aromanian
 languages.sog=Sogdien
 languages.ada=Adangme
-languages.cpf=Other French-based Creoles and Pidgins
-languages.hit=Hittite
 languages.kos=Kosraean
-languages.cpe=Other English-based Creoles and Pidgins
+languages.hit=Hittite
+languages.cpf=French-based Creole or Pidgin
+languages.cpe=English-based Creole or Pidgin
 languages.him=Himachali
-languages.got=Gothic
-languages.hil=Hiligaynon
 languages.kok=Konkani
+languages.hil=Hiligaynon
+languages.got=Gothic
 languages.gor=Gorontalo
 languages.gon=Gondi
 languages.din=Dinka
-languages.nub=Nubian Languages
+languages.nub=Nubian Language
 languages.pt=Portuguese
-languages.ps=Pashto (Pushto)
+languages.ps=Pushto
 languages.fur=Friulian
 languages.phn=Phoenician
+languages.de_CH=Swiss High German
 languages.goh=Old High German
 languages.snk=Soninke
 languages.cop=Coptic
 languages.yap=Yapese
 languages.ach=Acoli
 languages.yao=Yao
-languages.phi=Philippine (Other)
+languages.phi=Philippine Language
 languages.pl=Polish
 languages.ace=Achinese
 languages.pi=Pali
+languages.pt_PT=Iberian Portuguese
 languages.pa=Punjabi
 languages.bug=Buginese
 languages.iba=Iban
@@ -839,7 +900,7 @@ languages.map=Austronesian
 languages.or=Oriya
 languages.man=Mandingo
 languages.smj=Lule Sami
-languages.smi=Sami languages (Other)
+languages.smi=Sami Language
 languages.mak=Makasar
 languages.om=Oromo
 languages.mai=Maithili
@@ -847,13 +908,15 @@ languages.oj=Ojibwa
 languages.mag=Magahi
 languages.mad=Madurese
 languages.sma=Southern Sami
-languages.oc=Occitan (post 1500); Proven\u00e7al
+languages.oc=Occitan
 languages.nso=Northern Sotho
 languages.btk=Batak
 languages.myv=Erzya
+languages.es_ES=Iberian Spanish
+languages.de_AT=Austrian German
 languages.dgr=Dogrib
-languages.ny=Nyanja; Chichewa; Chewa
-languages.myn=Mayan
+languages.ny=Nyanja
+languages.myn=Mayan Language
 languages.nv=Navajo
 languages.kmb=Kimbundu
 languages.nr=South Ndebele
@@ -863,10 +926,10 @@ languages.nn=Norwegian Nynorsk
 languages.nl=Dutch
 languages.root=Root
 languages.ng=Ndonga
-languages.sla=Slavic (Other)
+languages.sla=Slavic Language
 languages.ne=Nepali
 languages.nd=North Ndebele
-languages.cmc=Chamic Languages
+languages.cmc=Chamic Language
 languages.tet=Tetum
 languages.nb=Norwegian Bokm\u00e5l
 languages.na=Nauru
@@ -875,8 +938,10 @@ languages.tem=Timne
 languages.my=Burmese
 languages.lez=Lezghian
 languages.mt=Maltese
+languages.frs=Eastern Frisian
 languages.peo=Old Persian
 languages.ms=Malay
+languages.frr=Northern Frisian
 languages.mr=Marathi
 languages.fro=Old French
 languages.mo=Moldavian
@@ -888,14 +953,15 @@ languages.mk=Macedonian
 languages.mi=Maori
 languages.mh=Marshallese
 languages.mg=Malagasy
+languages.nqo=N\u2019Ko
 languages.mwr=Marwari
 languages.bra=Braj
 languages.mwl=Mirandese
-languages.lv=Latvian
 languages.den=Slave
+languages.lv=Latvian
 languages.lu=Luba-Katanga
-languages.lt=Lithuanian
 languages.del=Delaware
+languages.lt=Lithuanian
 languages.lo=Lao
 languages.ln=Lingala
 languages.li=Limburgish
@@ -905,18 +971,19 @@ languages.lb=Luxembourgish
 languages.la=Latin
 languages.jpr=Judeo-Persian
 languages.vot=Votic
-languages.sit=Sino-Tibetan (Other)
+languages.sit=Sino-Tibetan Language
 languages.ky=Kirghiz
 languages.kw=Cornish
 languages.kv=Komi
 languages.ku=Kurdish
-languages.sio=Siouan Languages
+languages.sio=Siouan Language
 languages.ks=Kashmiri
 languages.kr=Kanuri
 languages.awa=Awadhi
 languages.ko=Korean
 languages.kn=Kannada
 languages.km=Khmer
+languages.en_GB=British English
 languages.kl=Kalaallisut
 languages.kk=Kazakh
 languages.rom=Romany
@@ -924,12 +991,12 @@ languages.kj=Kuanyama
 languages.sid=Sidamo
 languages.ki=Kikuyu
 languages.kg=Kongo
-languages.non=Norse, Old
+languages.non=Old Norse
 languages.ka=Georgian
 languages.mus=Creek
-languages.roa=Romance (Other)
+languages.roa=Romance Language
 languages.nog=Nogai
-languages.mun=Munda Languages
+languages.mun=Munda Language
 languages.mul=Multiple Languages
 languages.jv=Javanese
 languages.gil=Gilbertese
@@ -937,51 +1004,51 @@ languages.znd=Zande
 languages.shn=Shan
 languages.fon=Fon
 languages.xal=Kalmyk
-languages.aus=Australian Languages
+languages.aus=Australian Language
 languages.kho=Khotanese
 languages.ja=Japanese
-languages.khi=Khoisan (Other)
+languages.khi=Khoisan Language
 languages.pau=Palauan
 languages.chy=Cheyenne
-languages.tai=Tai (Other)
+languages.tai=Tai Language
 languages.iu=Inuktitut
 languages.pap=Papiamento
 languages.it=Italian
-languages.sgn=Sign Languages
-languages.kha=Khasi
+languages.sgn=Sign Language
 languages.is=Icelandic
+languages.kha=Khasi
 languages.chr=Cherokee
 languages.pam=Pampanga
 languages.pal=Pahlavi
 languages.chp=Chipewyan
-languages.cho=Choctaw
 languages.io=Ido
+languages.cho=Choctaw
 languages.chn=Chinook Jargon
 languages.chm=Mari
 languages.tyv=Tuvinian
 languages.bnt=Bantu
 languages.pag=Pangasinan
-languages.chk=Chuukese
 languages.ik=Inupiaq
-languages.haw=Hawaiian
+languages.chk=Chuukese
 languages.ii=Sichuan Yi
+languages.haw=Hawaiian
 languages.lam=Lamba
-languages.chg=Chagatai
 languages.ig=Igbo
+languages.chg=Chagatai
 languages.sga=Old Irish
-languages.paa=Papuan (Other)
+languages.paa=Papuan Language
 languages.ie=Interlingue
 languages.id=Indonesian
 languages.lah=Lahnda
-languages.chb=Chibcha
 languages.day=Dayak
+languages.chb=Chibcha
 languages.ia=Interlingua
 languages.lad=Ladino
-languages.dar=Dargwa
-languages.hai=Haida
 languages.hz=Herero
+languages.hai=Haida
+languages.dar=Dargwa
 languages.hy=Armenian
-languages.ath=Athapascan Languages
+languages.ath=Athapascan Language
 languages.hu=Hungarian
 languages.ht=Haitian
 languages.dak=Dakota
@@ -991,37 +1058,42 @@ languages.hi=Hindi
 languages.dyu=Dyula
 languages.he=Hebrew
 languages.ast=Asturian
+languages.kfo=Koro
 languages.ha=Hausa
-languages.wen=Sorbian Languages
+languages.wen=Sorbian Language
 languages.gv=Manx
 languages.gu=Gujarati
-languages.sem=Semitic (Other)
+languages.sem=Semitic Language
 languages.sel=Selkup
-languages.iro=Iroquoian languages
+languages.iro=Iroquoian Language
 languages.gn=Guarani
-languages.gl=Gallegan
+languages.gl=Galician
+languages.en_CA=Canadian English
 languages.arw=Arawak
-languages.gd=Scottish Gaelic
-languages.art=Artificial (Other)
 languages.gez=Geez
-languages.ira=Iranian
+languages.art=Artificial Language
+languages.gd=Scottish Gaelic
+languages.ira=Iranian Language
 languages.ga=Irish
 languages.arp=Arapaho
 languages.arn=Araucanian
-languages.fy=Frisian
+languages.fy=Western Frisian
 languages.bla=Siksika
-languages.gem=Germanic (Other)
-languages.ypk=Yupik Languages
-languages.fr=French
+languages.gem=Germanic Language
+languages.ypk=Yupik Language
 languages.arc=Aramaic
+languages.fr=French
 languages.fo=Faroese
-languages.cel=Celtic (Other)
+languages.cel=Celtic Language
 languages.fj=Fijian
 languages.fi=Finnish
 languages.ff=Fulah
 languages.tvl=Tuvalu
 languages.ceb=Cebuano
 languages.fa=Persian
+languages.en_AU=Australian English
+languages.zh_Hans=Simplified Chinese
+languages.zh_Hant=Traditional Chinese
 languages.eu=Basque
 languages.sco=Scots
 languages.et=Estonian
@@ -1030,134 +1102,162 @@ languages.es=Spanish
 languages.eo=Esperanto
 languages.en=English
 languages.el=Greek
-languages.tut=Altaic (Other)
+languages.tut=Altaic Language
 languages.niu=Niuean
-languages.tup=Tupi languages
+languages.tup=Tupi Language
 languages.ee=Ewe
 languages.tum=Tumbuka
+languages.nl_BE=Flemish
+languages.es_419=Latin American Spanish
 languages.mos=Mossi
 languages.dz=Dzongkha
-languages.nic=Niger - Kordofanian (Other)
-languages.dv=Divehi
-languages.fiu=Finno - Ugrian (Other)
+languages.kcg=Tyap
+languages.nic=Niger-Kordofanian Language
 languages.lus=Lushai
+languages.fiu=Finno-Ugrian Language
+languages.dv=Divehi
 languages.nia=Nias
 languages.moh=Mohawk
 languages.luo=Luo
 languages.lun=Lunda
-languages.apa=Apache Languages
+languages.apa=Apache Language
 languages.fil=Filipino
 languages.lui=Luiseno
 languages.hup=Hupa
+languages.cch=Atsam
 languages.bin=Bini
 languages.de=German
 languages.lua=Luba-Lulua
 languages.bik=Bikol
 languages.was=Washo
-languages.und=Undetermined
+languages.und=Unknown or Invalid Language
 languages.war=Waray
 languages.da=Danish
 languages.dum=Middle Dutch
 languages.wal=Walamo
-languages.mno=Manobo Languages
-languages.wak=Wakashan Languages
+languages.mno=Manobo Language
+languages.wak=Wakashan Language
 languages.sat=Santali
 languages.cy=Welsh
 languages.sas=Sasak
-languages.cv=Chuvash
 languages.kbd=Kabardian
+languages.cv=Chuvash
 languages.cu=Church Slavic
 languages.mni=Manipuri
 languages.cs=Czech
 languages.sam=Samaritan Aramaic
 languages.cr=Cree
-languages.sal=Salishan languages
+languages.sal=Salishan Language
 languages.dua=Duala
 languages.co=Corsican
-languages.sai=South American Indian (Other)
+languages.sai=South American Indian Language
 languages.mnc=Manchu
 languages.sah=Yakut
-languages.gba=Gbaya
-languages.inh=Ingush
 languages.kaw=Kawi
+languages.inh=Ingush
+languages.gba=Gbaya
 languages.sad=Sandawe
 languages.ch=Chamorro
+languages.ine=Indo-European Language
 languages.bho=Bhojpuri
-languages.ine=Indo-European (Other)
 languages.enm=Middle English
-languages.ce=Chechen
-languages.inc=Indic (Other)
 languages.kar=Karen
+languages.inc=Indic Language
+languages.ce=Chechen
 languages.gay=Gayo
 languages.ca=Catalan
 languages.umb=Umbundu
 languages.syr=Syriac
 languages.kam=Kamba
+languages.anp=Angika
 languages.tsi=Tsimshian
-languages.ang=Old English (ca.450-1100)
-languages.cau=Caucasian (Other)
+languages.kaj=Jju
+languages.ang=Old English
 languages.kac=Kachin
+languages.cau=Caucasian Language
 languages.kab=Kabyle
-languages.bs=Bosnian
 languages.kaa=Kara-Kalpak
-languages.br=Breton
+languages.bs=Bosnian
 languages.car=Carib
+languages.br=Breton
+languages.syc=Classical Syriac
 languages.bo=Tibetan
 languages.bn=Bengali
 languages.bm=Bambara
 languages.gaa=Ga
+languages.cai=Central American Indian Language
 languages.bi=Bislama
-languages.cai=Central American Indian (Other)
 languages.bh=Bihari
 languages.bg=Bulgarian
 languages.be=Belarusian
+languages.pt_BR=Brazilian Portuguese
 languages.cad=Caddo
 languages.ba=Bashkir
 languages.zu=Zulu
 languages.zen=Zenaga
 languages.pro=Old Proven\u00e7al
 languages.hsb=Upper Sorbian
-languages.az=Azerbaijani
+languages.az=Azeri
 languages.ay=Aymara
 languages.av=Avaric
 languages.as=Assamese
-languages.ar=Arabic
 languages.dsb=Lower Sorbian
-languages.elx=Elamite
+languages.ar=Arabic
 languages.ilo=Iloko
+languages.elx=Elamite
 languages.zh=Chinese
 languages.an=Aragonese
-languages.pra=Prakrit Languages
+languages.pra=Prakrit Language
 languages.am=Amharic
 languages.new=Newari
 languages.ak=Akan
 languages.za=Zhuang
+languages.en_US=U.S. English
 languages.af=Afrikaans
 languages.ae=Avestan
 languages.alt=Southern Altai
 languages.ab=Abkhazian
 languages.aa=Afar
 languages.yo=Yoruba
-languages.alg=Algonquian Languages
+languages.alg=Algonquian Language
 languages.ale=Aleut
-languages.mkh=Mon-Khmer (Other)
+languages.mkh=Mon-Khmer Language
 languages.yi=Yiddish
-languages.dra=Dravidian (Other)
+languages.dra=Dravidian Language
 languages.ber=Berber
-languages.nds=Low German; Low Saxon
+languages.nds=Low German
 languages.bem=Bemba
 languages.bej=Beja
 languages.tpi=Tok Pisin
-variants.BOONT=Boontling
-variants.REVISED=Revised Orthography
-variants.GAULISH=Gaulish
-variants.HAKKA=Hakka
-variants.GUOYU=Mandarin or Standard Chinese
-variants.XIANG=Xiang or Hunanese
 variants.POSIX=Computer
+variants.AREVMDA=Western Armenian
 variants.1996=German orthography of 1996
-variants.LOJBAN=Lojban
-variants.SCOUSE=Scouse
+variants.SOLBA=Stolvizza/Solbica dialect
+variants.NEDIS=Natisone dialect
+variants.1994=Standardized Resian orthography
 variants.1901=Traditional German orthography
+variants.XIANG=Xiang or Hunanese
+variants.FONUPA=UPA Phonetics
+variants.OSOJS=Oseacco/Osojane dialect
+variants.1694ACAD=Early Modern French
+variants.LIPAW=The Lipovaz dialect of Resian
+variants.REVISED=Revised Orthography
+variants.NJIVA=Gniva/Njiva dialect
+variants.TARASK=Taraskievica orthography
+variants.FONIPA=IPA Phonetics
+variants.GAULISH=Gaulish
+variants.BISKE=San Giorgio/Bila dialect
+variants.SCOUSE=Scouse
+variants.BAKU1926=Unified Turkic Latin Alphabet
+variants.LOJBAN=Lojban
+variants.GUOYU=Mandarin or Standard Chinese
+variants.SAAHO=Saho
 variants.ROZAJ=Resian
-variants.NEDIS=Natisone dialect
+variants.MONOTON=Monotonic
+variants.POLYTON=Polytonic
+variants.HAKKA=Hakka
+variants.AREVELA=Eastern Armenian
+variants.SCOTLAND=Scottish Standard English
+variants.VALENCIA=Valencian
+variants.BOONT=Boontling
+variants.1606NICT=Late Middle French to 1606
index f70d4da6156347251354df04406278187abe34cc..b1dddb53d97076ee7ae831a2f16f57746fe4b3f7 100644 (file)
@@ -5,9 +5,10 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesSymbol.AUD=$
+currenciesSymbol.USD=US$
 shortDateFormat=d/MM/yy
 mediumDateFormat=dd/MM/yyyy
 longDateFormat=d MMMM yyyy
 fullDateFormat=EEEE, d MMMM yyyy
-longTimeFormat=h:mm:ss a
index d3e194f12c6b214f448a0871d4afe8617ba94799..f32520d1c32aab1f00f6fd90c36b74307cdb239b 100644 (file)
@@ -7,14 +7,12 @@
 
 decimalSeparator=,
 groupingSeparator=.
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
 shortDateFormat=dd/MM/yy
 mediumDateFormat=dd MMM yyyy
-longDateFormat=EEE d MMM yyyy
+longDateFormat=d MMM yyyy
 fullDateFormat=EEEE d MMMM yyyy
 shortTimeFormat=HH:mm
 mediumTimeFormat=HH:mm:ss
 longTimeFormat=HH:mm:ss z
-fullTimeFormat=HH' h 'mm' min 'ss' s 'z
+fullTimeFormat=HH 'h' mm 'min' ss 's' z
index 0267e547fbf15b209b7c795cd6513adad2d7d43d..8206e4f95e603dc05d2edaaa98625787907d22ae 100644 (file)
@@ -5,9 +5,8 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.XXX=XXX
 shortDateFormat=dd/MM/yy
-mediumDateFormat=MMM dd,yy
 longDateFormat=dd MMMM yyyy
 fullDateFormat=EEEE dd MMMM yyyy
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
index e6fbacb554ea61912012d4f93201e4b61f207610..6be6165668b5fe04636fcc0745133449fc845308 100644 (file)
@@ -5,9 +5,11 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-firstDayOfWeek=mon
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.BZD=$
+currenciesSymbol.USD=US$
 shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
+mediumDateFormat=dd-MMM-yyyy
 longDateFormat=dd MMMM yyyy
 fullDateFormat=dd MMMM yyyy
 shortTimeFormat=HH:mm
index 91233c94b4ab69cd606b1dfda182cd5c8cb88a7d..cce5b1ce110808027d0ec60e9f73f185b8b60b14 100644 (file)
@@ -5,8 +5,7 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
 currenciesSymbol.CAD=$
-minNumberOfDaysInFirstWeek=4
-shortDateFormat=dd/MM/yy
-mediumDateFormat=d-MMM-yy
+currenciesSymbol.USD=US$
+shortDateFormat=yy-MM-dd
+mediumDateFormat=yyyy-MM-dd
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties
new file mode 100644 (file)
index 0000000..2b0c190
--- /dev/null
@@ -0,0 +1,418 @@
+# LocaleInformation_en_Dsrt.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=\ud801\udc16\ud801\udc30\ud801\udc4c\u00ae\u00ae\ud801\udc23\ud801\udc2a\ud801\udc49\u00ae\ud801\udc01\ud801\udc39\ud801\udc49\u00ae\ud801\udc23\ud801\udc29\u00ae\ud801\udc16\ud801\udc2d\ud801\udc4c\u00ae\ud801\udc16\ud801\udc2d\ud801\udc4a\u00ae\ud801\udc02\ud801\udc40\u00ae\ud801\udc1d\ud801\udc2f\ud801\udc39\u00ae\ud801\udc09\ud801\udc3f\ud801\udc3b\u00ae\ud801\udc24\ud801\udc2c\ud801\udc42\u00ae\ud801\udc14\ud801\udc28\ud801\udc45\u00ae\u00ae
+months=\ud801\udc16\ud801\udc30\ud801\udc4c\ud801\udc37\ud801\udc2d\ud801\udc2f\ud801\udc49\ud801\udc28\u00ae\u00ae\ud801\udc23\ud801\udc2a\ud801\udc49\ud801\udc3d\u00ae\ud801\udc01\ud801\udc39\ud801\udc49\ud801\udc2e\ud801\udc4a\u00ae\ud801\udc23\ud801\udc29\u00ae\ud801\udc16\ud801\udc2d\ud801\udc4c\u00ae\ud801\udc16\ud801\udc2d\ud801\udc4a\ud801\udc34\u00ae\ud801\udc02\ud801\udc40\ud801\udc32\ud801\udc45\ud801\udc3b\u00ae\ud801\udc1d\ud801\udc2f\ud801\udc39\ud801\udc3b\ud801\udc2f\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc49\u00ae\ud801\udc09\ud801\udc3f\ud801\udc3b\ud801\udc2c\ud801\udc3a\ud801\udc32\ud801\udc49\u00ae\ud801\udc24\ud801\udc2c\ud801\udc42\ud801\udc2f\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc49\u00ae\ud801\udc14\ud801\udc28\ud801\udc45\ud801\udc2f\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc49\u00ae\u00ae
+shortWeekdays=\u00ae\ud801\udc1d\ud801\udc32\ud801\udc4c\u00ae\ud801\udc23\ud801\udc32\ud801\udc4c\u00ae\ud801\udc13\ud801\udc2d\ud801\udc46\u00ae\ud801\udc0e\ud801\udc2f\ud801\udc4c\u00ae\ud801\udc1b\ud801\udc32\ud801\udc49\u00ae\ud801\udc19\ud801\udc49\ud801\udc34\u00ae\ud801\udc1d\ud801\udc30\ud801\udc3b\u00ae
+weekdays=\u00ae\ud801\udc1d\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc29\u00ae\ud801\udc23\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc29\u00ae\ud801\udc13\ud801\udc2d\ud801\udc46\ud801\udc3c\ud801\udc29\u00ae\ud801\udc0e\ud801\udc2f\ud801\udc4c\ud801\udc46\ud801\udc3c\ud801\udc29\u00ae\ud801\udc1b\ud801\udc32\ud801\udc49\ud801\udc46\ud801\udc3c\ud801\udc29\u00ae\ud801\udc19\ud801\udc49\ud801\udc34\ud801\udc3c\ud801\udc29\u00ae\ud801\udc1d\ud801\udc30\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc3c\ud801\udc29\u00ae
+eras=\ud801\udc12\ud801\udc17\u00ae\ud801\udc08\ud801\udc14\u00ae
+ampms=\ud801\udc30.\ud801\udc4b.\u00ae\ud801\udc39.\ud801\udc4b.\u00ae
+zoneStrings=Bering\u00ae\ud801\udc12\ud801\udc2f\ud801\udc49\ud801\udc2e\ud801\udc4d \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc12\ud801\udc1d\ud801\udc13 (\ud801\udc12\ud801\udc2f\ud801\udc49\ud801\udc2e\ud801\udc4d )\u00ae\ud801\udc12\ud801\udc2f\ud801\udc49\ud801\udc2e\ud801\udc4d \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc12\ud801\udc14\ud801\udc13 (\ud801\udc12\ud801\udc2f\ud801\udc49\ud801\udc2e\ud801\udc4d )\u00ae\u00a9Newfoundland\u00ae\ud801\udc24\ud801\udc2d\ud801\udc41\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc24\ud801\udc1d\ud801\udc13\u00ae\ud801\udc24\ud801\udc2d\ud801\udc41\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc24\ud801\udc14\ud801\udc13\u00ae\u00a9America_Pacific\u00ae\ud801\udc11\ud801\udc32\ud801\udc45\ud801\udc2e\ud801\udc41\ud801\udc2e\ud801\udc3f \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c  \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc11\ud801\udc1d\ud801\udc13\u00ae\ud801\udc11\ud801\udc32\ud801\udc45\ud801\udc2e\ud801\udc41\ud801\udc2e\ud801\udc3f \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc11\ud801\udc14\ud801\udc13\u00ae\u00a9Alaska_Hawaii\u00ae\ud801\udc0a\ud801\udc4a\ud801\udc30\ud801\udc45\ud801\udc3f\ud801\udc32-\ud801\udc10\ud801\udc32\ud801\udc36\ud801\udc34\ud801\udc28 \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0a\ud801\udc10\ud801\udc1d\ud801\udc13\u00ae\ud801\udc0a\ud801\udc4a\ud801\udc30\ud801\udc45\ud801\udc3f\ud801\udc32-\ud801\udc10\ud801\udc32\ud801\udc36\ud801\udc34\ud801\udc28 \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0a\ud801\udc10\ud801\udc14\ud801\udc13\u00ae\u00a9America_Central\u00ae\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c  \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc1d\ud801\udc1d\ud801\udc13\u00ae\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc1d\ud801\udc14\ud801\udc13\u00ae\u00a9Alaska\u00ae\ud801\udc0a\ud801\udc4a\ud801\udc30\ud801\udc45\ud801\udc3f\ud801\udc32 \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0a\ud801\udc17\ud801\udc1d\ud801\udc13\u00ae\ud801\udc0a\ud801\udc4a\ud801\udc30\ud801\udc45\ud801\udc3f\ud801\udc32\ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0a\ud801\udc17\ud801\udc14\ud801\udc13\u00ae\u00a9America_Mountain\u00ae\ud801\udc23\ud801\udc35\ud801\udc4c\ud801\udc3b\ud801\udc32\ud801\udc4c \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c  \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc23\ud801\udc1d\ud801\udc13\u00ae\ud801\udc23\ud801\udc35\ud801\udc4c\ud801\udc3b\ud801\udc32\ud801\udc4c \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc23\ud801\udc14\ud801\udc13\u00ae\u00a9Hong_Kong\u00ae\ud801\udc10\ud801\udc31\ud801\udc4d \ud801\udc17\ud801\udc31\ud801\udc4d \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc10\ud801\udc17\ud801\udc13\u00ae\ud801\udc10\ud801\udc31\ud801\udc4d \ud801\udc17\ud801\udc31\ud801\udc4d \ud801\udc1d\ud801\udc32\ud801\udc4b\ud801\udc32\ud801\udc49 \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc10\ud801\udc17\ud801\udc1d\ud801\udc13\u00ae\u00a9Yukon\u00ae\ud801\udc0f\ud801\udc2d\ud801\udc3f\ud801\udc2a\ud801\udc4c \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0f\ud801\udc1d\ud801\udc13\u00ae\ud801\udc0f\ud801\udc2d\ud801\udc3f\ud801\udc2a\ud801\udc4c \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0f\ud801\udc14\ud801\udc13\u00ae\u00a9America_Eastern\u00ae\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c  \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc00\ud801\udc1d\ud801\udc13\u00ae\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc00\ud801\udc14\ud801\udc13\u00ae\u00a9Atlantic\u00ae\ud801\udc08\ud801\udc3b\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c  \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc08\ud801\udc1d\ud801\udc13\u00ae\ud801\udc08\ud801\udc3b\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc08\ud801\udc14\ud801\udc13\u00ae\u00a9
+territories.GY=\ud801\udc18\ud801\udc34\ud801\udc30\ud801\udc4c\ud801\udc32
+territories.GW=\ud801\udc18\ud801\udc2e\ud801\udc4c\ud801\udc28-\ud801\udc12\ud801\udc2e\ud801\udc45\ud801\udc35
+territories.GU=\ud801\udc18\ud801\udc36\ud801\udc2a\ud801\udc4b
+territories.GT=\ud801\udc18\ud801\udc36\ud801\udc2a\ud801\udc3c\ud801\udc32\ud801\udc4b\ud801\udc2a\ud801\udc4a\ud801\udc32
+territories.GS=\ud801\udc1d\ud801\udc35\ud801\udc43 \ud801\udc16\ud801\udc31\ud801\udc49\ud801\udc3e\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc44 \ud801\udc1d\ud801\udc35\ud801\udc43 \ud801\udc1d\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc36\ud801\udc2e\ud801\udc3d \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.GR=\ud801\udc18\ud801\udc49\ud801\udc28\ud801\udc45
+territories.GQ=\ud801\udc07\ud801\udc3f\ud801\udc36\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28\ud801\udc32\ud801\udc4a \ud801\udc18\ud801\udc2e\ud801\udc4c\ud801\udc28
+territories.GP=\ud801\udc18\ud801\udc36\ud801\udc2a\ud801\udc3c\ud801\udc32\ud801\udc4a\ud801\udc2d\ud801\udc39
+territories.GN=\ud801\udc18\ud801\udc2e\ud801\udc4c\ud801\udc28
+territories.GM=\ud801\udc18\ud801\udc30\ud801\udc4b\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.GL=\ud801\udc18\ud801\udc49\ud801\udc28\ud801\udc4c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.GI=\ud801\udc16\ud801\udc32\ud801\udc3a\ud801\udc49\ud801\udc31\ud801\udc4a\ud801\udc3b\ud801\udc32\ud801\udc49
+territories.GH=\ud801\udc18\ud801\udc2a\ud801\udc4c\ud801\udc32
+territories.GG=\ud801\udc18\ud801\udc32\ud801\udc49\ud801\udc4c\ud801\udc46\ud801\udc28
+territories.GF=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d \ud801\udc18\ud801\udc28\ud801\udc2a\ud801\udc4c\ud801\udc32
+territories.GE=\ud801\udc16\ud801\udc31\ud801\udc49\ud801\udc3e\ud801\udc32
+territories.GD=\ud801\udc18\ud801\udc49\ud801\udc32\ud801\udc4c\ud801\udc29\ud801\udc3c\ud801\udc32
+territories.GB=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc34\ud801\udc3b\ud801\udc32\ud801\udc3c \ud801\udc17\ud801\udc28\ud801\udc4d\ud801\udc3c\ud801\udc32\ud801\udc4b
+territories.GA=\ud801\udc18\ud801\udc32\ud801\udc3a\ud801\udc2a\ud801\udc4c
+territories.FX=\ud801\udc23\ud801\udc2f\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc39\ud801\udc2a\ud801\udc4a\ud801\udc32\ud801\udc3b\ud801\udc32\ud801\udc4c \ud801\udc19\ud801\udc49\ud801\udc30\ud801\udc4c\ud801\udc45
+territories.FR=\ud801\udc19\ud801\udc49\ud801\udc30\ud801\udc4c\ud801\udc45
+territories.FQ=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d \ud801\udc1d\ud801\udc32\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc08\ud801\udc4c\ud801\udc3b\ud801\udc2a\ud801\udc49\ud801\udc3f\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28\ud801\udc46
+territories.FO=\ud801\udc19\ud801\udc2f\ud801\udc49\ud801\udc2c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.FM=\ud801\udc23\ud801\udc34\ud801\udc3f\ud801\udc49\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32
+territories.FK=\ud801\udc19\ud801\udc2a\ud801\udc4a\ud801\udc3f\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.FJ=\ud801\udc19\ud801\udc28\ud801\udc3e\ud801\udc28
+territories.FI=\ud801\udc19\ud801\udc2e\ud801\udc4c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.ET=\ud801\udc00\ud801\udc43\ud801\udc28\ud801\udc2c\ud801\udc39\ud801\udc28\ud801\udc32
+territories.ES=\ud801\udc1d\ud801\udc39\ud801\udc29\ud801\udc4c
+territories.ER=\ud801\udc07\ud801\udc49\ud801\udc2e\ud801\udc3b\ud801\udc49\ud801\udc28\ud801\udc32
+territories.EH=\ud801\udc0e\ud801\udc2f\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc1d\ud801\udc32\ud801\udc38\ud801\udc31\ud801\udc49\ud801\udc32
+territories.EG=\ud801\udc00\ud801\udc3e\ud801\udc32\ud801\udc39\ud801\udc3b
+territories.EE=\ud801\udc07\ud801\udc45\ud801\udc3b\ud801\udc2c\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.EC=\ud801\udc07\ud801\udc3f\ud801\udc36\ud801\udc32\ud801\udc3c\ud801\udc31\ud801\udc49
+territories.DZ=\ud801\udc08\ud801\udc4a\ud801\udc3e\ud801\udc2e\ud801\udc49\ud801\udc28\ud801\udc32
+territories.DO=\ud801\udc14\ud801\udc32\ud801\udc4b\ud801\udc2e\ud801\udc4c\ud801\udc32\ud801\udc3f\ud801\udc32\ud801\udc4c \ud801\udc21\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc3a\ud801\udc4a\ud801\udc2e\ud801\udc3f
+territories.DM=\ud801\udc14\ud801\udc2a\ud801\udc4b\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc3f\ud801\udc32
+territories.DK=\ud801\udc14\ud801\udc2f\ud801\udc4c\ud801\udc4b\ud801\udc2a\ud801\udc49\ud801\udc3f
+territories.DJ=\ud801\udc16\ud801\udc32\ud801\udc3a\ud801\udc2d\ud801\udc3c\ud801\udc28
+territories.DE=\ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c\ud801\udc28
+territories.DD=\ud801\udc00\ud801\udc45\ud801\udc3b \ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c\ud801\udc28
+territories.CZ=\ud801\udc15\ud801\udc2f\ud801\udc3f \ud801\udc21\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc3a\ud801\udc4a\ud801\udc2e\ud801\udc3f
+territories.CY=\ud801\udc1d\ud801\udc34\ud801\udc39\ud801\udc49\ud801\udc32\ud801\udc45
+territories.CX=\ud801\udc17\ud801\udc49\ud801\udc2e\ud801\udc45\ud801\udc4b\ud801\udc32\ud801\udc45 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.CV=\ud801\udc17\ud801\udc29\ud801\udc39 \ud801\udc1a\ud801\udc2f\ud801\udc49\ud801\udc3c\ud801\udc28
+territories.CU=\ud801\udc17\ud801\udc37\ud801\udc2d\ud801\udc3a\ud801\udc32
+territories.CT=\ud801\udc17\ud801\udc30\ud801\udc4c\ud801\udc3b\ud801\udc2a\ud801\udc4c \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc07\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3a\ud801\udc2f\ud801\udc49\ud801\udc28 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.CS=\ud801\udc1d\ud801\udc32\ud801\udc49\ud801\udc3a\ud801\udc28\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc23\ud801\udc2a\ud801\udc4c\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc40\ud801\udc49\ud801\udc2c
+territories.CR=\ud801\udc17\ud801\udc31\ud801\udc45\ud801\udc3b\ud801\udc32 \ud801\udc21\ud801\udc28\ud801\udc3f\ud801\udc32
+territories.CO=\ud801\udc17\ud801\udc32\ud801\udc4a\ud801\udc32\ud801\udc4b\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.CN=\ud801\udc15\ud801\udc34\ud801\udc4c\ud801\udc32
+territories.CM=\ud801\udc17\ud801\udc30\ud801\udc4b\ud801\udc32\ud801\udc49\ud801\udc2d\ud801\udc4c
+territories.CL=\ud801\udc15\ud801\udc28\ud801\udc4a\ud801\udc29
+territories.CK=\ud801\udc17\ud801\udc33\ud801\udc3f \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.CI=\ud801\udc0c\ud801\udc42\ud801\udc49\ud801\udc28 \ud801\udc17\ud801\udc2c\ud801\udc45\ud801\udc3b
+territories.CH=\ud801\udc1d\ud801\udc36\ud801\udc2e\ud801\udc3b\ud801\udc45\ud801\udc32\ud801\udc49\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.CG=\ud801\udc17\ud801\udc2a\ud801\udc4d\ud801\udc40\ud801\udc2c - \ud801\udc12\ud801\udc49\ud801\udc2a\ud801\udc46\ud801\udc32\ud801\udc42\ud801\udc2e\ud801\udc4a
+territories.CF=\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32\ud801\udc4c \ud801\udc21\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc3a\ud801\udc4a\ud801\udc2e\ud801\udc3f
+territories.CD=\ud801\udc17\ud801\udc2a\ud801\udc4d\ud801\udc40\ud801\udc2c - \ud801\udc17\ud801\udc32\ud801\udc4c\ud801\udc47\ud801\udc2a\ud801\udc45\ud801\udc32
+territories.CC=\ud801\udc17\ud801\udc2c\ud801\udc3f\ud801\udc2c\ud801\udc46 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.CA=\ud801\udc17\ud801\udc30\ud801\udc4c\ud801\udc32\ud801\udc3c\ud801\udc32
+territories.BZ=\ud801\udc12\ud801\udc32\ud801\udc4a\ud801\udc28\ud801\udc46
+territories.BY=\ud801\udc12\ud801\udc2f\ud801\udc4a\ud801\udc32\ud801\udc49\ud801\udc2d\ud801\udc45
+territories.BW=\ud801\udc12\ud801\udc2a\ud801\udc3b\ud801\udc45\ud801\udc36\ud801\udc2a\ud801\udc4c\ud801\udc32
+territories.BV=\ud801\udc12\ud801\udc2d\ud801\udc42\ud801\udc29 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.BT=\ud801\udc12\ud801\udc2d\ud801\udc3b\ud801\udc2a\ud801\udc4c
+territories.BS=\ud801\udc12\ud801\udc32\ud801\udc38\ud801\udc2a\ud801\udc4b\ud801\udc32\ud801\udc45
+territories.BR=\ud801\udc12\ud801\udc49\ud801\udc32\ud801\udc46\ud801\udc2e\ud801\udc4a
+territories.BQ=\ud801\udc12\ud801\udc49\ud801\udc2e\ud801\udc3c\ud801\udc2e\ud801\udc47 \ud801\udc08\ud801\udc4c\ud801\udc3b\ud801\udc2a\ud801\udc49\ud801\udc3f\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28
+territories.BO=\ud801\udc12\ud801\udc2c\ud801\udc4a\ud801\udc2e\ud801\udc42\ud801\udc28\ud801\udc32
+territories.BN=\ud801\udc12\ud801\udc49\ud801\udc2d\ud801\udc4c\ud801\udc34
+territories.BM=\ud801\udc12\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc37\ud801\udc2d\ud801\udc3c\ud801\udc32
+territories.BL=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc12\ud801\udc2a\ud801\udc49\ud801\udc3b\ud801\udc29\ud801\udc4a\ud801\udc32\ud801\udc4b\ud801\udc28
+territories.BJ=\ud801\udc12\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc4c
+territories.BI=\ud801\udc12\ud801\udc32\ud801\udc49\ud801\udc33\ud801\udc4c\ud801\udc3c\ud801\udc28
+territories.BH=\ud801\udc12\ud801\udc2a\ud801\udc49\ud801\udc29\ud801\udc4c
+territories.BG=\ud801\udc12\ud801\udc32\ud801\udc4a\ud801\udc40\ud801\udc2f\ud801\udc49\ud801\udc28\ud801\udc32
+territories.BF=\ud801\udc12\ud801\udc32\ud801\udc49\ud801\udc3f\ud801\udc29\ud801\udc4c\ud801\udc32 \ud801\udc19\ud801\udc30\ud801\udc45\ud801\udc2c
+territories.BE=\ud801\udc12\ud801\udc2f\ud801\udc4a\ud801\udc3e\ud801\udc32\ud801\udc4b
+territories.BD=\ud801\udc12\ud801\udc2a\ud801\udc4d\ud801\udc40\ud801\udc4a\ud801\udc32\ud801\udc3c\ud801\udc2f\ud801\udc47
+territories.ZZ=\ud801\udc0a\ud801\udc4c\ud801\udc2c\ud801\udc4c \ud801\udc2c\ud801\udc49 \ud801\udc06\ud801\udc4c\ud801\udc42\ud801\udc30\ud801\udc4a\ud801\udc2e\ud801\udc3c \ud801\udc21\ud801\udc28\ud801\udc3e\ud801\udc32\ud801\udc4c
+territories.BB=\ud801\udc12\ud801\udc2a\ud801\udc49\ud801\udc3a\ud801\udc29\ud801\udc3c\ud801\udc2c\ud801\udc45
+territories.BA=\ud801\udc12\ud801\udc31\ud801\udc46\ud801\udc4c\ud801\udc28\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc10\ud801\udc32\ud801\udc49\ud801\udc3b\ud801\udc45\ud801\udc32\ud801\udc40\ud801\udc2c\ud801\udc42\ud801\udc28\ud801\udc4c\ud801\udc32
+territories.ZW=\ud801\udc1e\ud801\udc2e\ud801\udc4b\ud801\udc3a\ud801\udc2a\ud801\udc3a\ud801\udc36\ud801\udc29
+territories.AZ=\ud801\udc08\ud801\udc46\ud801\udc32\ud801\udc49\ud801\udc3a\ud801\udc34\ud801\udc48\ud801\udc2a\ud801\udc4c
+territories.AX=\ud801\udc08\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.AW=\ud801\udc0a\ud801\udc49\ud801\udc2d\ud801\udc3a\ud801\udc32
+territories.ZM=\ud801\udc1e\ud801\udc30\ud801\udc4b\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.AU=\ud801\udc09\ud801\udc45\ud801\udc3b\ud801\udc49\ud801\udc29\ud801\udc4a\ud801\udc28\ud801\udc32
+territories.AT=\ud801\udc09\ud801\udc45\ud801\udc3b\ud801\udc49\ud801\udc28\ud801\udc32
+territories.AS=\ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32\ud801\udc4c \ud801\udc1d\ud801\udc32\ud801\udc4b\ud801\udc2c\ud801\udc32
+territories.AR=\ud801\udc02\ud801\udc49\ud801\udc3e\ud801\udc32\ud801\udc4c\ud801\udc3b\ud801\udc28\ud801\udc4c\ud801\udc32
+territories.AQ=\ud801\udc08\ud801\udc4c\ud801\udc3b\ud801\udc2a\ud801\udc49\ud801\udc3f\ud801\udc3b\ud801\udc2e\ud801\udc3f\ud801\udc32
+territories.AO=\ud801\udc08\ud801\udc4c\ud801\udc40\ud801\udc2c\ud801\udc4a\ud801\udc32
+territories.AN=\ud801\udc24\ud801\udc2f\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46 \ud801\udc08\ud801\udc4c\ud801\udc3b\ud801\udc2e\ud801\udc4a\ud801\udc28\ud801\udc46
+territories.AM=\ud801\udc02\ud801\udc49\ud801\udc4b\ud801\udc28\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.AL=\ud801\udc08\ud801\udc4a\ud801\udc3a\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.ZA=\ud801\udc1d\ud801\udc35\ud801\udc43 \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.AI=\ud801\udc08\ud801\udc4d\ud801\udc40\ud801\udc36\ud801\udc2e\ud801\udc4a\ud801\udc32
+territories.AG=\ud801\udc08\ud801\udc4c\ud801\udc3b\ud801\udc28\ud801\udc40\ud801\udc36\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc12\ud801\udc2a\ud801\udc49\ud801\udc3a\ud801\udc37\ud801\udc2d\ud801\udc3c\ud801\udc32
+territories.AF=\ud801\udc08\ud801\udc41\ud801\udc40\ud801\udc30\ud801\udc4c\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.AE=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc34\ud801\udc3c\ud801\udc2e\ud801\udc3c \ud801\udc07\ud801\udc49\ud801\udc32\ud801\udc3a \ud801\udc07\ud801\udc4b\ud801\udc32\ud801\udc49\ud801\udc29\ud801\udc3b\ud801\udc45
+territories.AD=\ud801\udc08\ud801\udc4c\ud801\udc3c\ud801\udc31\ud801\udc49\ud801\udc32
+territories.YT=\ud801\udc23\ud801\udc2a\ud801\udc37\ud801\udc31\ud801\udc3b
+territories.YE=\ud801\udc0f\ud801\udc2f\ud801\udc4b\ud801\udc32\ud801\udc4c
+territories.YD=\ud801\udc11\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc4a\ud801\udc46 \ud801\udc14\ud801\udc2f\ud801\udc4b\ud801\udc32\ud801\udc3f\ud801\udc49\ud801\udc30\ud801\udc3c\ud801\udc2e\ud801\udc3f \ud801\udc21\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc3a\ud801\udc4a\ud801\udc2e\ud801\udc3f \ud801\udc32\ud801\udc42 \ud801\udc0f\ud801\udc2f\ud801\udc4b\ud801\udc32\ud801\udc4c
+territories.172=\ud801\udc17\ud801\udc2a\ud801\udc4b\ud801\udc32\ud801\udc4c\ud801\udc36\ud801\udc2f\ud801\udc4a\ud801\udc43 \ud801\udc32\ud801\udc42 \ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc39\ud801\udc2f\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc4c\ud801\udc3b \ud801\udc1d\ud801\udc3b\ud801\udc29\ud801\udc3b\ud801\udc45
+territories.200=\ud801\udc15\ud801\udc2f\ud801\udc3f\ud801\udc2c\ud801\udc45\ud801\udc4a\ud801\udc2c\ud801\udc42\ud801\udc2a\ud801\udc3f\ud801\udc28\ud801\udc32
+territories.WS=\ud801\udc1d\ud801\udc32\ud801\udc4b\ud801\udc2c\ud801\udc32
+territories.WK=\ud801\udc0e\ud801\udc29\ud801\udc3f \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.WF=\ud801\udc0e\ud801\udc2a\ud801\udc4a\ud801\udc2e\ud801\udc45 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc19\ud801\udc2d\ud801\udc3b\ud801\udc2d\ud801\udc4c\ud801\udc32
+territories.155=\ud801\udc0e\ud801\udc2f\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39
+territories.154=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39
+territories.151=\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39
+territories.150=\ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39
+territories.VU=\ud801\udc1a\ud801\udc2a\ud801\udc4c\ud801\udc33\ud801\udc2a\ud801\udc3c\ud801\udc2d
+territories.VN=\ud801\udc1a\ud801\udc28\ud801\udc2f\ud801\udc3b\ud801\udc4c\ud801\udc2a\ud801\udc4b
+territories.VI=\ud801\udc0f.\ud801\udc1d. \ud801\udc1a\ud801\udc32\ud801\udc49\ud801\udc3e\ud801\udc32\ud801\udc4c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.VG=\ud801\udc12\ud801\udc49\ud801\udc2e\ud801\udc3c\ud801\udc2e\ud801\udc47 \ud801\udc1a\ud801\udc32\ud801\udc49\ud801\udc3e\ud801\udc32\ud801\udc4c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.145=\ud801\udc0e\ud801\udc2f\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc01\ud801\udc48\ud801\udc32
+territories.VD=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc43 \ud801\udc1a\ud801\udc28\ud801\udc2f\ud801\udc3b\ud801\udc4c\ud801\udc2a\ud801\udc4b
+territories.VC=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc1a\ud801\udc2e\ud801\udc4c\ud801\udc45\ud801\udc32\ud801\udc4c\ud801\udc3b \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc44 \ud801\udc18\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc32\ud801\udc3c\ud801\udc28\ud801\udc4c\ud801\udc46
+territories.143=\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc01\ud801\udc48\ud801\udc32
+territories.142=\ud801\udc01\ud801\udc48\ud801\udc32
+territories.VA=\ud801\udc1a\ud801\udc30\ud801\udc3c\ud801\udc32\ud801\udc3f\ud801\udc32\ud801\udc4c
+territories.UZ=\ud801\udc05\ud801\udc46\ud801\udc3a\ud801\udc2f\ud801\udc3f\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.UY=\ud801\udc0f\ud801\udc33\ud801\udc49\ud801\udc32\ud801\udc40\ud801\udc36\ud801\udc34
+territories.US=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc34\ud801\udc3b\ud801\udc32\ud801\udc3c \ud801\udc1d\ud801\udc3b\ud801\udc29\ud801\udc3b\ud801\udc45
+territories.UM=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc30\ud801\udc2e\ud801\udc3b\ud801\udc32\ud801\udc3c \ud801\udc1d\ud801\udc3b\ud801\udc29\ud801\udc3b\ud801\udc45 \ud801\udc23\ud801\udc34\ud801\udc4c\ud801\udc2c\ud801\udc49 \ud801\udc0d\ud801\udc3b\ud801\udc4a\ud801\udc34\ud801\udc28\ud801\udc4d \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.UG=\ud801\udc0f\ud801\udc2d\ud801\udc40\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32
+territories.TZ=\ud801\udc13\ud801\udc30\ud801\udc4c\ud801\udc46\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.TW=\ud801\udc13\ud801\udc34\ud801\udc36\ud801\udc2a\ud801\udc4c
+territories.TV=\ud801\udc13\ud801\udc32\ud801\udc42\ud801\udc2a\ud801\udc4a\ud801\udc2d
+territories.TT=\ud801\udc13\ud801\udc49\ud801\udc2e\ud801\udc4c\ud801\udc2e\ud801\udc3c\ud801\udc30\ud801\udc3c \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc13\ud801\udc32\ud801\udc3a\ud801\udc29\ud801\udc40\ud801\udc2c
+territories.TR=\ud801\udc13\ud801\udc32\ud801\udc49\ud801\udc3f\ud801\udc28
+territories.TO=\ud801\udc13\ud801\udc2a\ud801\udc4d\ud801\udc40\ud801\udc32
+territories.TM=\ud801\udc13\ud801\udc32\ud801\udc49\ud801\udc3f\ud801\udc4b\ud801\udc2f\ud801\udc4c\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.TL=\ud801\udc00\ud801\udc45\ud801\udc3b \ud801\udc13\ud801\udc28\ud801\udc4b\ud801\udc31\ud801\udc49
+territories.TK=\ud801\udc13\ud801\udc2c\ud801\udc3f\ud801\udc2f\ud801\udc4a\ud801\udc35
+territories.TJ=\ud801\udc13\ud801\udc32\ud801\udc3e\ud801\udc28\ud801\udc3f\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.TH=\ud801\udc13\ud801\udc34\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3c
+territories.TG=\ud801\udc13\ud801\udc2c\ud801\udc40\ud801\udc2c
+territories.TF=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d \ud801\udc1d\ud801\udc32\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28\ud801\udc46
+territories.TD=\ud801\udc15\ud801\udc30\ud801\udc3c
+territories.TC=\ud801\udc13\ud801\udc32\ud801\udc49\ud801\udc3f\ud801\udc45 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc17\ud801\udc34\ud801\udc3f\ud801\udc2c\ud801\udc46 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.SZ=\ud801\udc1d\ud801\udc36\ud801\udc2a\ud801\udc46\ud801\udc28\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3c
+territories.SY=\ud801\udc1d\ud801\udc2e\ud801\udc49\ud801\udc28\ud801\udc32
+territories.SV=\ud801\udc07\ud801\udc4a \ud801\udc1d\ud801\udc30\ud801\udc4a\ud801\udc42\ud801\udc32\ud801\udc3c\ud801\udc31\ud801\udc49
+territories.SU=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc37\ud801\udc32\ud801\udc4c \ud801\udc32\ud801\udc42 \ud801\udc1d\ud801\udc2c\ud801\udc42\ud801\udc28\ud801\udc2f\ud801\udc3b \ud801\udc1d\ud801\udc2c\ud801\udc47\ud801\udc32\ud801\udc4a\ud801\udc2e\ud801\udc45\ud801\udc3b \ud801\udc21\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc3a\ud801\udc4a\ud801\udc2e\ud801\udc3f\ud801\udc45
+territories.ST=\ud801\udc1d\ud801\udc35 \ud801\udc13\ud801\udc2c\ud801\udc4b \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc11\ud801\udc49\ud801\udc2e\ud801\udc4c\ud801\udc3d\ud801\udc2e\ud801\udc39\ud801\udc29
+territories.SR=\ud801\udc1d\ud801\udc2d\ud801\udc49\ud801\udc32\ud801\udc4c\ud801\udc2a\ud801\udc4b
+territories.SO=\ud801\udc1d\ud801\udc32\ud801\udc4b\ud801\udc2a\ud801\udc4a\ud801\udc28\ud801\udc32
+territories.SN=\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc32\ud801\udc40\ud801\udc31\ud801\udc4a
+territories.SM=\ud801\udc1d\ud801\udc2a\ud801\udc4c \ud801\udc23\ud801\udc32\ud801\udc49\ud801\udc28\ud801\udc4c\ud801\udc2c
+territories.SL=\ud801\udc1d\ud801\udc28\ud801\udc2f\ud801\udc49\ud801\udc32 \ud801\udc22\ud801\udc28\ud801\udc2c\ud801\udc4c
+territories.SK=\ud801\udc1d\ud801\udc4a\ud801\udc2c\ud801\udc42\ud801\udc2a\ud801\udc3f\ud801\udc28\ud801\udc32
+territories.SJ=\ud801\udc1d\ud801\udc42\ud801\udc2a\ud801\udc4a\ud801\udc3a\ud801\udc2a\ud801\udc49\ud801\udc3c \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc16\ud801\udc30\ud801\udc4c \ud801\udc23\ud801\udc34\ud801\udc32\ud801\udc4c
+territories.SI=\ud801\udc1d\ud801\udc4a\ud801\udc2c\ud801\udc42\ud801\udc28\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.SH=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc10\ud801\udc2f\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc32
+territories.SG=\ud801\udc1d\ud801\udc2e\ud801\udc4d\ud801\udc32\ud801\udc39\ud801\udc31\ud801\udc49
+territories.SE=\ud801\udc1d\ud801\udc36\ud801\udc28\ud801\udc3c\ud801\udc4c
+territories.SD=\ud801\udc1d\ud801\udc2d\ud801\udc3c\ud801\udc30\ud801\udc4c
+territories.SC=\ud801\udc1d\ud801\udc29\ud801\udc47\ud801\udc2f\ud801\udc4a\ud801\udc46
+territories.SB=\ud801\udc1d\ud801\udc2a\ud801\udc4a\ud801\udc32\ud801\udc4b\ud801\udc32\ud801\udc4c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.SA=\ud801\udc1d\ud801\udc35\ud801\udc3c\ud801\udc28 \ud801\udc0a\ud801\udc49\ud801\udc29\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.RW=\ud801\udc21\ud801\udc32\ud801\udc36\ud801\udc2a\ud801\udc4c\ud801\udc3c\ud801\udc32
+territories.RU=\ud801\udc21\ud801\udc32\ud801\udc47\ud801\udc32
+territories.RS=\ud801\udc1d\ud801\udc32\ud801\udc49\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.RO=\ud801\udc21\ud801\udc2c\ud801\udc4b\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.RE=\ud801\udc21\ud801\udc28\ud801\udc37\ud801\udc2d\ud801\udc4c\ud801\udc37\ud801\udc32\ud801\udc4c
+territories.062=\ud801\udc1d\ud801\udc35\ud801\udc43-\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc01\ud801\udc48\ud801\udc32
+territories.061=\ud801\udc11\ud801\udc2a\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32
+territories.QU=\ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39\ud801\udc28\ud801\udc32\ud801\udc4c \ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc37\ud801\udc32\ud801\udc4c
+territories.QO=\ud801\udc0d\ud801\udc3b\ud801\udc4a\ud801\udc34\ud801\udc2e\ud801\udc4d \ud801\udc04\ud801\udc47\ud801\udc28\ud801\udc30\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.QA=\ud801\udc17\ud801\udc32\ud801\udc3b\ud801\udc2a\ud801\udc49
+territories.057=\ud801\udc23\ud801\udc34\ud801\udc3f\ud801\udc49\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32\ud801\udc4c \ud801\udc21\ud801\udc28\ud801\udc3e\ud801\udc32\ud801\udc4c
+territories.054=\ud801\udc23\ud801\udc2f\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32
+territories.PZ=\ud801\udc11\ud801\udc30\ud801\udc4c\ud801\udc32\ud801\udc4b\ud801\udc2a \ud801\udc17\ud801\udc32\ud801\udc4c\ud801\udc30\ud801\udc4a \ud801\udc1e\ud801\udc2c\ud801\udc4c
+territories.053=\ud801\udc09\ud801\udc45\ud801\udc3b\ud801\udc49\ud801\udc29\ud801\udc4a\ud801\udc28\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc24\ud801\udc2d \ud801\udc1e\ud801\udc28\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.PY=\ud801\udc11\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc40\ud801\udc36\ud801\udc34
+territories.PW=\ud801\udc11\ud801\udc32\ud801\udc4a\ud801\udc35
+territories.PU=\ud801\udc0f.\ud801\udc1d. \ud801\udc23\ud801\udc2e\ud801\udc45\ud801\udc32\ud801\udc4a\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc45 \ud801\udc11\ud801\udc32\ud801\udc45\ud801\udc2e\ud801\udc41\ud801\udc2e\ud801\udc3f \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.PT=\ud801\udc11\ud801\udc31\ud801\udc49\ud801\udc3d\ud801\udc32\ud801\udc40\ud801\udc32\ud801\udc4a
+territories.PS=\ud801\udc11\ud801\udc30\ud801\udc4a\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc2e\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28
+territories.PR=\ud801\udc11\ud801\udc36\ud801\udc2f\ud801\udc49\ud801\udc3b\ud801\udc2c \ud801\udc21\ud801\udc28\ud801\udc3f\ud801\udc2c
+territories.PN=\ud801\udc11\ud801\udc2e\ud801\udc3b\ud801\udc3f\ud801\udc2f\ud801\udc49\ud801\udc4c
+territories.PM=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc11\ud801\udc28\ud801\udc2f\ud801\udc49 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc23\ud801\udc28\ud801\udc3f\ud801\udc32\ud801\udc4a\ud801\udc2a\ud801\udc4c
+territories.PL=\ud801\udc11\ud801\udc2c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.PK=\ud801\udc11\ud801\udc30\ud801\udc3f\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.PH=\ud801\udc19\ud801\udc2e\ud801\udc4a\ud801\udc32\ud801\udc39\ud801\udc28\ud801\udc4c\ud801\udc46
+territories.PG=\ud801\udc11\ud801\udc30\ud801\udc39\ud801\udc37\ud801\udc33\ud801\udc32 \ud801\udc24\ud801\udc2d \ud801\udc18\ud801\udc2e\ud801\udc4c\ud801\udc28
+territories.PF=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d \ud801\udc11\ud801\udc2a\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32
+territories.PE=\ud801\udc11\ud801\udc32\ud801\udc49\ud801\udc2d
+territories.PC=\ud801\udc11\ud801\udc32\ud801\udc45\ud801\udc2e\ud801\udc41\ud801\udc2e\ud801\udc3f \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46 \ud801\udc13\ud801\udc49\ud801\udc32\ud801\udc45\ud801\udc3b \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28
+territories.PA=\ud801\udc11\ud801\udc30\ud801\udc4c\ud801\udc32\ud801\udc4b\ud801\udc2a
+territories.OM=\ud801\udc04\ud801\udc4b\ud801\udc32\ud801\udc4c
+territories.830=\ud801\udc15\ud801\udc30\ud801\udc4c\ud801\udc32\ud801\udc4a \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.039=\ud801\udc1d\ud801\udc32\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39
+territories.035=\ud801\udc1d\ud801\udc35\ud801\udc43-\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc01\ud801\udc48\ud801\udc32
+territories.034=\ud801\udc1d\ud801\udc32\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc01\ud801\udc48\ud801\udc32
+territories.NZ=\ud801\udc24\ud801\udc2d \ud801\udc1e\ud801\udc28\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.030=\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc01\ud801\udc48\ud801\udc32
+territories.NU=\ud801\udc24\ud801\udc37\ud801\udc2d\ud801\udc29
+territories.NT=\ud801\udc24\ud801\udc2d\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc1e\ud801\udc2c\ud801\udc4c
+territories.NR=\ud801\udc24\ud801\udc2a\ud801\udc2d\ud801\udc49\ud801\udc2d
+territories.NQ=\ud801\udc14\ud801\udc49\ud801\udc31\ud801\udc4c\ud801\udc2e\ud801\udc4d \ud801\udc23\ud801\udc31\ud801\udc3c \ud801\udc22\ud801\udc30\ud801\udc4c\ud801\udc3c
+territories.NP=\ud801\udc24\ud801\udc29\ud801\udc39\ud801\udc2a\ud801\udc4a
+territories.NO=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc36\ud801\udc29
+territories.NL=\ud801\udc24\ud801\udc2f\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.NI=\ud801\udc24\ud801\udc2e\ud801\udc3f\ud801\udc32\ud801\udc49\ud801\udc2a\ud801\udc40\ud801\udc36\ud801\udc32
+territories.NG=\ud801\udc24\ud801\udc34\ud801\udc3e\ud801\udc2e\ud801\udc49\ud801\udc28\ud801\udc32
+territories.NF=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc41\ud801\udc32\ud801\udc3f \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.NE=\ud801\udc24\ud801\udc34\ud801\udc3e\ud801\udc32\ud801\udc49
+territories.NC=\ud801\udc24\ud801\udc2d \ud801\udc17\ud801\udc30\ud801\udc4a\ud801\udc32\ud801\udc3c\ud801\udc2c\ud801\udc4c\ud801\udc37\ud801\udc32
+territories.NA=\ud801\udc24\ud801\udc32\ud801\udc4b\ud801\udc2e\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.029=\ud801\udc17\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3a\ud801\udc28\ud801\udc32\ud801\udc4c
+territories.MZ=\ud801\udc23\ud801\udc2c\ud801\udc46\ud801\udc30\ud801\udc4b\ud801\udc3a\ud801\udc28\ud801\udc3f
+territories.MY=\ud801\udc23\ud801\udc32\ud801\udc4a\ud801\udc29\ud801\udc48\ud801\udc32
+territories.MX=\ud801\udc23\ud801\udc2f\ud801\udc3f\ud801\udc45\ud801\udc32\ud801\udc3f\ud801\udc2c
+territories.021=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.MW=\ud801\udc23\ud801\udc32\ud801\udc4a\ud801\udc2a\ud801\udc36\ud801\udc28
+territories.MV=\ud801\udc23\ud801\udc2a\ud801\udc4a\ud801\udc3c\ud801\udc28\ud801\udc42\ud801\udc46
+territories.MU=\ud801\udc23\ud801\udc31\ud801\udc49\ud801\udc2e\ud801\udc47\ud801\udc32\ud801\udc45
+territories.MT=\ud801\udc23\ud801\udc31\ud801\udc4a\ud801\udc3b\ud801\udc32
+territories.MS=\ud801\udc23\ud801\udc2a\ud801\udc4c\ud801\udc3b\ud801\udc45\ud801\udc32\ud801\udc49\ud801\udc2a\ud801\udc3b
+territories.MR=\ud801\udc23\ud801\udc31\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.MQ=\ud801\udc23\ud801\udc2a\ud801\udc49\ud801\udc3b\ud801\udc4c\ud801\udc28\ud801\udc3f
+territories.MP=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc23\ud801\udc30\ud801\udc49\ud801\udc28\ud801\udc31\ud801\udc4c\ud801\udc32 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.MO=\ud801\udc23\ud801\udc32\ud801\udc3f\ud801\udc35
+territories.MN=\ud801\udc23\ud801\udc2a\ud801\udc4d\ud801\udc40\ud801\udc2c\ud801\udc4a\ud801\udc28\ud801\udc32
+territories.MM=\ud801\udc23\ud801\udc28\ud801\udc32\ud801\udc4c\ud801\udc4b\ud801\udc2a\ud801\udc49
+territories.ML=\ud801\udc23\ud801\udc2a\ud801\udc4a\ud801\udc28
+territories.MK=\ud801\udc23\ud801\udc30\ud801\udc45\ud801\udc32\ud801\udc3c\ud801\udc2c\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.419=\ud801\udc22\ud801\udc30\ud801\udc3b\ud801\udc4c \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc44 \ud801\udc17\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3a\ud801\udc28\ud801\udc32\ud801\udc4c
+territories.MI=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc36\ud801\udc29 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.MH=\ud801\udc23\ud801\udc2a\ud801\udc49\ud801\udc47\ud801\udc32\ud801\udc4a \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.MG=\ud801\udc23\ud801\udc30\ud801\udc3c\ud801\udc32\ud801\udc40\ud801\udc30\ud801\udc45\ud801\udc3f\ud801\udc32\ud801\udc49
+territories.MF=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc23\ud801\udc2a\ud801\udc49\ud801\udc3b\ud801\udc4c
+territories.ME=\ud801\udc23\ud801\udc2a\ud801\udc4c\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc40\ud801\udc49\ud801\udc2c
+territories.MD=\ud801\udc23\ud801\udc31\ud801\udc4a\ud801\udc3c\ud801\udc2c\ud801\udc42\ud801\udc32
+territories.MC=\ud801\udc23\ud801\udc2a\ud801\udc4c\ud801\udc32\ud801\udc3f\ud801\udc2c
+territories.MA=\ud801\udc23\ud801\udc32\ud801\udc49\ud801\udc2a\ud801\udc3f\ud801\udc2c
+territories.019=\ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32\ud801\udc46
+territories.018=\ud801\udc1d\ud801\udc32\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.017=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc4a \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc2e\ud801\udc3f\ud801\udc32
+territories.015=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.014=\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.013=\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.LY=\ud801\udc22\ud801\udc2e\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.011=\ud801\udc0e\ud801\udc2f\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.LV=\ud801\udc22\ud801\udc30\ud801\udc3b\ud801\udc42\ud801\udc28\ud801\udc32
+territories.LU=\ud801\udc22\ud801\udc32\ud801\udc3f\ud801\udc45\ud801\udc32\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc49\ud801\udc40
+territories.LT=\ud801\udc22\ud801\udc2e\ud801\udc43\ud801\udc32\ud801\udc36\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.LS=\ud801\udc22\ud801\udc32\ud801\udc45\ud801\udc2c\ud801\udc43\ud801\udc2c
+territories.LR=\ud801\udc22\ud801\udc34\ud801\udc3a\ud801\udc2e\ud801\udc49\ud801\udc28\ud801\udc32
+territories.LK=\ud801\udc1f\ud801\udc49\ud801\udc28 \ud801\udc22\ud801\udc30\ud801\udc4d\ud801\udc3f\ud801\udc32
+territories.LI=\ud801\udc22\ud801\udc2e\ud801\udc3f\ud801\udc3b\ud801\udc32\ud801\udc4c\ud801\udc45\ud801\udc3b\ud801\udc34\ud801\udc4c
+territories.LB=\ud801\udc22\ud801\udc2f\ud801\udc3a\ud801\udc32\ud801\udc4c\ud801\udc2a\ud801\udc4c
+territories.LA=\ud801\udc22\ud801\udc2a\ud801\udc2c\ud801\udc45
+territories.009=\ud801\udc04\ud801\udc47\ud801\udc28\ud801\udc30\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.005=\ud801\udc1d\ud801\udc35\ud801\udc43 \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.KZ=\ud801\udc17\ud801\udc32\ud801\udc46\ud801\udc2a\ud801\udc3f\ud801\udc45\ud801\udc3b\ud801\udc2a\ud801\udc4c
+territories.003=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc43 \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.KY=\ud801\udc17\ud801\udc29\ud801\udc4b\ud801\udc32\ud801\udc4c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.002=\ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.001=\ud801\udc0e\ud801\udc32\ud801\udc49\ud801\udc4a\ud801\udc3c
+territories.KW=\ud801\udc17\ud801\udc32\ud801\udc36\ud801\udc29\ud801\udc3b
+territories.KR=\ud801\udc1d\ud801\udc35\ud801\udc43 \ud801\udc17\ud801\udc32\ud801\udc49\ud801\udc28\ud801\udc32
+territories.KP=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc43 \ud801\udc17\ud801\udc32\ud801\udc49\ud801\udc28\ud801\udc32
+territories.KN=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc17\ud801\udc2e\ud801\udc3b\ud801\udc45 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc24\ud801\udc28\ud801\udc42\ud801\udc2e\ud801\udc45
+territories.KM=\ud801\udc17\ud801\udc2a\ud801\udc4b\ud801\udc32\ud801\udc49\ud801\udc2c\ud801\udc46
+territories.KI=\ud801\udc17\ud801\udc2e\ud801\udc49\ud801\udc32\ud801\udc3a\ud801\udc2a\ud801\udc3b\ud801\udc28
+territories.KH=\ud801\udc17\ud801\udc30\ud801\udc4b\ud801\udc3a\ud801\udc2c\ud801\udc3c\ud801\udc28\ud801\udc32
+territories.KG=\ud801\udc17\ud801\udc2e\ud801\udc49\ud801\udc40\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.KE=\ud801\udc17\ud801\udc2f\ud801\udc4c\ud801\udc37\ud801\udc32
+territories.JT=\ud801\udc16\ud801\udc2a\ud801\udc4c\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc4c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.JP=\ud801\udc16\ud801\udc32\ud801\udc39\ud801\udc30\ud801\udc4c
+territories.JO=\ud801\udc16\ud801\udc31\ud801\udc49\ud801\udc3c\ud801\udc32\ud801\udc4c
+territories.JM=\ud801\udc16\ud801\udc32\ud801\udc4b\ud801\udc29\ud801\udc3f\ud801\udc32
+territories.JE=\ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc46\ud801\udc28
+territories.IT=\ud801\udc06\ud801\udc3b\ud801\udc32\ud801\udc4a\ud801\udc28
+territories.IS=\ud801\udc0c\ud801\udc45\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.IR=\ud801\udc06\ud801\udc49\ud801\udc2a\ud801\udc4c
+territories.IQ=\ud801\udc06\ud801\udc49\ud801\udc30\ud801\udc3f
+territories.IO=\ud801\udc12\ud801\udc49\ud801\udc2e\ud801\udc3c\ud801\udc2e\ud801\udc47 \ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc28\ud801\udc32\ud801\udc4c \ud801\udc04\ud801\udc47\ud801\udc32\ud801\udc4c \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28
+territories.IN=\ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc28\ud801\udc32
+territories.IM=\ud801\udc0c\ud801\udc32\ud801\udc4a \ud801\udc32\ud801\udc41 \ud801\udc23\ud801\udc30\ud801\udc4c
+territories.IL=\ud801\udc06\ud801\udc46\ud801\udc49\ud801\udc28\ud801\udc32\ud801\udc4a
+territories.IE=\ud801\udc0c\ud801\udc49\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.ID=\ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32
+territories.HU=\ud801\udc10\ud801\udc32\ud801\udc4d\ud801\udc40\ud801\udc32\ud801\udc49\ud801\udc28
+territories.HT=\ud801\udc10\ud801\udc29\ud801\udc3b\ud801\udc28
+territories.HR=\ud801\udc17\ud801\udc49\ud801\udc2c\ud801\udc29\ud801\udc47\ud801\udc32
+territories.HN=\ud801\udc10\ud801\udc2a\ud801\udc4c\ud801\udc3c\ud801\udc2d\ud801\udc49\ud801\udc32\ud801\udc45
+territories.HM=\ud801\udc10\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc23\ud801\udc3f\ud801\udc14\ud801\udc31\ud801\udc4c\ud801\udc32\ud801\udc4a\ud801\udc3c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.HK=\ud801\udc10\ud801\udc2c\ud801\udc4d \ud801\udc17\ud801\udc2c\ud801\udc4d
+languages.es=\ud801\udc1d\ud801\udc39\ud801\udc30\ud801\udc4c\ud801\udc2e\ud801\udc47
+languages.kw=\ud801\udc17\ud801\udc2c\ud801\udc49\ud801\udc4c\ud801\udc2e\ud801\udc47
+languages.moh=\ud801\udc10\ud801\udc2c\ud801\udc38\ud801\udc2a\ud801\udc3f
+languages.mul=\ud801\udc23\ud801\udc32\ud801\udc4a\ud801\udc3b\ud801\udc2e\ud801\udc39\ud801\udc32\ud801\udc4a \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e\ud801\udc32\ud801\udc46
+languages.ku=\ud801\udc17\ud801\udc32\ud801\udc49\ud801\udc3c\ud801\udc2e\ud801\udc47
+languages.eo=\ud801\udc07\ud801\udc45\ud801\udc39\ud801\udc2f\ud801\udc49\ud801\udc2a\ud801\udc4c\ud801\udc3b\ud801\udc2c
+languages.en=\ud801\udc00\ud801\udc4d\ud801\udc4a\ud801\udc2e\ud801\udc47
+languages.kut=\ud801\udc22\ud801\udc30\ud801\udc3c\ud801\udc28\ud801\udc4c\ud801\udc2c
+languages.el=\ud801\udc18\ud801\udc49\ud801\udc28\ud801\udc3f
+languages.ko=\ud801\udc17\ud801\udc2c\ud801\udc49\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.zxx=\ud801\udc24\ud801\udc2c \ud801\udc4a\ud801\udc28\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc45\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc3f\ud801\udc31\ud801\udc4c\ud801\udc3b\ud801\udc2f\ud801\udc4c\ud801\udc3b
+languages.km=\ud801\udc17\ud801\udc32\ud801\udc4b\ud801\udc2f\ud801\udc49
+languages.hit=\ud801\udc10\ud801\udc2e\ud801\udc3b\ud801\udc34\ud801\udc3b
+languages.ka=\ud801\udc16\ud801\udc2c\ud801\udc49\ud801\udc3e\ud801\udc32\ud801\udc4c
+languages.got=\ud801\udc18\ud801\udc31\ud801\udc43\ud801\udc2e\ud801\udc3f
+languages.gil=\ud801\udc18\ud801\udc2e\ud801\udc4a\ud801\udc3a\ud801\udc2f\ud801\udc49\ud801\udc3b\ud801\udc28\ud801\udc46
+languages.jv=\ud801\udc16\ud801\udc2a\ud801\udc42\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc46
+languages.cpf=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d-\ud801\udc3a\ud801\udc29\ud801\udc45\ud801\udc3b \ud801\udc17\ud801\udc49\ud801\udc28\ud801\udc2c\ud801\udc4a \ud801\udc2c\ud801\udc49 \ud801\udc11\ud801\udc2e\ud801\udc3e\ud801\udc2e\ud801\udc4c
+languages.cpe=\ud801\udc00\ud801\udc4d\ud801\udc4a\ud801\udc2e\ud801\udc47-\ud801\udc3a\ud801\udc29\ud801\udc45\ud801\udc3b \ud801\udc17\ud801\udc49\ud801\udc28\ud801\udc2c\ud801\udc4a \ud801\udc2c\ud801\udc49 \ud801\udc11\ud801\udc2e\ud801\udc3e\ud801\udc2e\ud801\udc4c
+languages.mnc=\ud801\udc23\ud801\udc30\ud801\udc4c\ud801\udc3d\ud801\udc2d
+languages.nap=\ud801\udc24\ud801\udc28\ud801\udc32\ud801\udc39\ud801\udc31\ud801\udc4a\ud801\udc2e\ud801\udc3b\ud801\udc32\ud801\udc4c
+languages.de=\ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc4c\ud801\udc32
+languages.nai=\ud801\udc24\ud801\udc2c\ud801\udc49\ud801\udc43 \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc2e\ud801\udc3f\ud801\udc32\ud801\udc4c \ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc28\ud801\udc32\ud801\udc4c \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.da=\ud801\udc14\ud801\udc29\ud801\udc4c\ud801\udc2e\ud801\udc47
+languages.apa=\ud801\udc0a\ud801\udc39\ud801\udc30\ud801\udc3d\ud801\udc28 \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.tlh=\ud801\udc17\ud801\udc4a\ud801\udc2e\ud801\udc4d\ud801\udc31\ud801\udc4c
+languages.cop=\ud801\udc17\ud801\udc2c\ud801\udc39\ud801\udc3b\ud801\udc2e\ud801\udc3f
+languages.ja=\ud801\udc16\ud801\udc30\ud801\udc39\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc46
+languages.dum=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc32\ud801\udc4a \ud801\udc14\ud801\udc32\ud801\udc3d
+languages.cy=\ud801\udc0e\ud801\udc2f\ud801\udc4a\ud801\udc47
+languages.ine=\ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc2c-\ud801\udc0f\ud801\udc2f\ud801\udc49\ud801\udc2c\ud801\udc39\ud801\udc28\ud801\udc32\ud801\udc4c \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.cs=\ud801\udc15\ud801\udc2f\ud801\udc3f
+languages.inc=\ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc2e\ud801\udc3f \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.cr=\ud801\udc17\ud801\udc49\ud801\udc28
+languages.it=\ud801\udc06\ud801\udc3b\ud801\udc30\ud801\udc4a\ud801\udc37\ud801\udc32\ud801\udc4c
+languages.co=\ud801\udc17\ud801\udc2c\ud801\udc49\ud801\udc45\ud801\udc2e\ud801\udc3f\ud801\udc32\ud801\udc4c
+languages.mga=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc32\ud801\udc4a \ud801\udc0c\ud801\udc49\ud801\udc2e\ud801\udc47
+languages.is=\ud801\udc0c\ud801\udc45\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc2e\ud801\udc3f
+languages.myn=\ud801\udc23\ud801\udc34\ud801\udc32\ud801\udc4c \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.haw=\ud801\udc10\ud801\udc32\ud801\udc36\ud801\udc34\ud801\udc32\ud801\udc4c
+languages.chy=\ud801\udc1f\ud801\udc34\ud801\udc30\ud801\udc4c
+languages.enm=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc32\ud801\udc4a \ud801\udc00\ud801\udc4d\ud801\udc4a\ud801\udc2e\ud801\udc47
+languages.chr=\ud801\udc15\ud801\udc2f\ud801\udc49\ud801\udc2c\ud801\udc3f\ud801\udc28
+languages.ca=\ud801\udc17\ud801\udc2a\ud801\udc3b\ud801\udc32\ud801\udc4a\ud801\udc2a\ud801\udc4c
+languages.id=\ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc2c\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32\ud801\udc4c
+languages.ia=\ud801\udc06\ud801\udc4c\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4a\ud801\udc2e\ud801\udc4d\ud801\udc36\ud801\udc32
+languages.bnt=\ud801\udc12\ud801\udc30\ud801\udc4c\ud801\udc3b\ud801\udc2d
+languages.egy=\ud801\udc01\ud801\udc4c\ud801\udc3d\ud801\udc32\ud801\udc4c\ud801\udc3b \ud801\udc00\ud801\udc3e\ud801\udc2e\ud801\udc39\ud801\udc3d\ud801\udc32\ud801\udc4c
+languages.hy=\ud801\udc02\ud801\udc49\ud801\udc4b\ud801\udc28\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.br=\ud801\udc12\ud801\udc49\ud801\udc2f\ud801\udc3b\ud801\udc32\ud801\udc4c
+languages.ht=\ud801\udc10\ud801\udc29\ud801\udc47\ud801\udc32\ud801\udc4c
+languages.hr=\ud801\udc17\ud801\udc49\ud801\udc2c\ud801\udc29\ud801\udc47\ud801\udc32\ud801\udc4c
+languages.nv=\ud801\udc24\ud801\udc2a\ud801\udc42\ud801\udc32\ud801\udc38\ud801\udc2c
+languages.gmh=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc32\ud801\udc4a \ud801\udc10\ud801\udc34 \ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c
+languages.dak=\ud801\udc14\ud801\udc32\ud801\udc3f\ud801\udc2c\ud801\udc3b\ud801\udc32
+languages.bat=\ud801\udc12\ud801\udc2a\ud801\udc4a\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.hi=\ud801\udc10\ud801\udc2e\ud801\udc4c\ud801\udc3c\ud801\udc28
+languages.nl=\ud801\udc14\ud801\udc32\ud801\udc3d
+languages.zh=\ud801\udc15\ud801\udc34\ud801\udc4c\ud801\udc28\ud801\udc46
+languages.jrb=\ud801\udc16\ud801\udc2d\ud801\udc3c\ud801\udc28\ud801\udc2c-\ud801\udc08\ud801\udc49\ud801\udc32\ud801\udc3a\ud801\udc2e\ud801\udc3f
+languages.ar=\ud801\udc07\ud801\udc49\ud801\udc32\ud801\udc3a\ud801\udc2e\ud801\udc3f
+languages.gv=\ud801\udc23\ud801\udc30\ud801\udc4c\ud801\udc3f\ud801\udc45
+languages.my=\ud801\udc12\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc28\ud801\udc46
+languages.an=\ud801\udc08\ud801\udc49\ud801\udc32\ud801\udc40\ud801\udc31\ud801\udc4c\ud801\udc28\ud801\udc46
+languages.dsb=\ud801\udc22\ud801\udc2c\ud801\udc32\ud801\udc49 \ud801\udc1d\ud801\udc2c\ud801\udc49\ud801\udc3a\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.zbl=\ud801\udc12\ud801\udc4a\ud801\udc2e\ud801\udc45-\ud801\udc45\ud801\udc2e\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc4a\ud801\udc46
+languages.byn=\ud801\udc12\ud801\udc4a\ud801\udc2e\ud801\udc4c
+languages.nds=\ud801\udc22\ud801\udc2c \ud801\udc16\ud801\udc2f\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c
+languages.frm=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc32\ud801\udc4a \ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d
+languages.mo=\ud801\udc23\ud801\udc2c\ud801\udc4a\ud801\udc3c\ud801\udc29\ud801\udc42\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.mn=\ud801\udc23\ud801\udc31\ud801\udc4d\ud801\udc2c\ud801\udc4a\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.grc=\ud801\udc01\ud801\udc4c\ud801\udc3d\ud801\udc32\ud801\udc4c\ud801\udc3b \ud801\udc18\ud801\udc49\ud801\udc28\ud801\udc3f
+languages.mk=\ud801\udc23\ud801\udc30\ud801\udc45\ud801\udc2f\ud801\udc3c\ud801\udc2c\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.mi=\ud801\udc23\ud801\udc35\ud801\udc49\ud801\udc28
+languages.ga=\ud801\udc0c\ud801\udc49\ud801\udc2e\ud801\udc47
+languages.crp=\ud801\udc17\ud801\udc49\ud801\udc28\ud801\udc2c\ud801\udc4a \ud801\udc2c\ud801\udc49 \ud801\udc11\ud801\udc2e\ud801\udc3e\ud801\udc2e\ud801\udc4c
+languages.gem=\ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc30\ud801\udc4c\ud801\udc2e\ud801\udc3f \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.art=\ud801\udc02\ud801\udc49\ud801\udc3b\ud801\udc2e\ud801\udc41\ud801\udc2e\ud801\udc47\ud801\udc32\ud801\udc4a \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.fr=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d
+languages.lv=\ud801\udc22\ud801\udc30\ud801\udc3b\ud801\udc42\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.lo=\ud801\udc22\ud801\udc35
+languages.jpr=\ud801\udc16\ud801\udc2d\ud801\udc3c\ud801\udc28\ud801\udc2c-\ud801\udc11\ud801\udc2f\ud801\udc49\ud801\udc48\ud801\udc32\ud801\udc4c
+languages.mis=\ud801\udc23\ud801\udc2e\ud801\udc45\ud801\udc32\ud801\udc4a\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc45 \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.cel=\ud801\udc17\ud801\udc2f\ud801\udc4a\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.ber=\ud801\udc12\ud801\udc32\ud801\udc49\ud801\udc3a\ud801\udc32\ud801\udc49
+languages.lb=\ud801\udc22\ud801\udc32\ud801\udc3f\ud801\udc45\ud801\udc2f\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc49\ud801\udc40\ud801\udc2e\ud801\udc47
+languages.la=\ud801\udc22\ud801\udc30\ud801\udc3b\ud801\udc2e\ud801\udc4c
+languages.mus=\ud801\udc17\ud801\udc49\ud801\udc28\ud801\udc3f
+languages.eu=\ud801\udc12\ud801\udc30\ud801\udc45\ud801\udc3f
+languages.et=\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc2c\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c
+variants.POSIX=\ud801\udc17\ud801\udc32\ud801\udc4b\ud801\udc39\ud801\udc37\ud801\udc2d\ud801\udc3b\ud801\udc2f\ud801\udc49
+variants.AREVMDA=\ud801\udc0e\ud801\udc2f\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc02\ud801\udc49\ud801\udc4b\ud801\udc28\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c
+variants.1996=\ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c \ud801\udc31\ud801\udc49\ud801\udc43\ud801\udc2a\ud801\udc40\ud801\udc49\ud801\udc32\ud801\udc41\ud801\udc28 \ud801\udc32\ud801\udc42 1996
+variants.1901=\ud801\udc13\ud801\udc49\ud801\udc32\ud801\udc3c\ud801\udc2e\ud801\udc47\ud801\udc32\ud801\udc4c\ud801\udc4a \ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c \ud801\udc31\ud801\udc49\ud801\udc43\ud801\udc2a\ud801\udc40\ud801\udc49\ud801\udc32\ud801\udc41\ud801\udc28
+variants.XIANG=\ud801\udc1f\ud801\udc28\ud801\udc30\ud801\udc4d \ud801\udc2c\ud801\udc49 \ud801\udc10\ud801\udc2d\ud801\udc4c\ud801\udc2a\ud801\udc4c\ud801\udc28\ud801\udc46
+variants.1694ACAD=\ud801\udc0a\ud801\udc49\ud801\udc4a\ud801\udc28 \ud801\udc23\ud801\udc2a\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d
+variants.REVISED=\ud801\udc21\ud801\udc32\ud801\udc42\ud801\udc34\ud801\udc46\ud801\udc3c \ud801\udc09\ud801\udc49\ud801\udc43\ud801\udc2a\ud801\udc40\ud801\udc49\ud801\udc32\ud801\udc41\ud801\udc28
+variants.FONIPA=\ud801\udc06\ud801\udc19\ud801\udc08 \ud801\udc19\ud801\udc2c\ud801\udc4c\ud801\udc2f\ud801\udc3b\ud801\udc2e\ud801\udc3f\ud801\udc45
+variants.GAULISH=\ud801\udc18\ud801\udc2a\ud801\udc4a\ud801\udc2e\ud801\udc47
+variants.BAKU1926=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc32\ud801\udc41\ud801\udc34\ud801\udc3c \ud801\udc13\ud801\udc32\ud801\udc49\ud801\udc3f\ud801\udc2e\ud801\udc3f \ud801\udc22\ud801\udc30\ud801\udc3b\ud801\udc4c \ud801\udc08\ud801\udc4a\ud801\udc41\ud801\udc32\ud801\udc3a\ud801\udc32\ud801\udc3b
+variants.LOJBAN=\ud801\udc22\ud801\udc31\ud801\udc3e\ud801\udc3a\ud801\udc30\ud801\udc4c
+variants.GUOYU=\ud801\udc23\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc4c \ud801\udc2c\ud801\udc49 \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc15\ud801\udc34\ud801\udc4c\ud801\udc28\ud801\udc46
+variants.MONOTON=\ud801\udc23\ud801\udc2a\ud801\udc4c\ud801\udc32\ud801\udc3b\ud801\udc2a\ud801\udc4c\ud801\udc2e\ud801\udc3f
+variants.POLYTON=\ud801\udc11\ud801\udc31\ud801\udc4a\ud801\udc28\ud801\udc3b\ud801\udc31\ud801\udc4c\ud801\udc2e\ud801\udc3f
+variants.HAKKA=\ud801\udc10\ud801\udc32\ud801\udc3f\ud801\udc2a
+variants.AREVELA=\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc02\ud801\udc49\ud801\udc4b\ud801\udc28\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c
+variants.SCOTLAND=\ud801\udc1d\ud801\udc3f\ud801\udc2a\ud801\udc3c\ud801\udc2e\ud801\udc47 \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc06\ud801\udc4d\ud801\udc4a\ud801\udc2e\ud801\udc47
+variants.1606NICT=\ud801\udc22\ud801\udc29\ud801\udc3b \ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc4a \ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d \ud801\udc3b\ud801\udc2d 1606
index c35145c74c5b76ea0cb1a0a24df19362eef7b6ef..9ed504cdf545b198bc344e826fbc4501ff896579 100644 (file)
@@ -5,7 +5,7 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-firstDayOfWeek=mon
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 shortDateFormat=dd/MM/yyyy
 mediumDateFormat=d MMM yyyy
 longDateFormat=d MMMM yyyy
@@ -14,4 +14,3 @@ shortTimeFormat=HH:mm
 mediumTimeFormat=HH:mm:ss
 longTimeFormat=HH:mm:ss z
 fullTimeFormat=HH:mm:ss z
-zoneStrings=Europe/London®GMT®Greenwich Mean Time®BST®British Summer Time®©
index a86011ee289021c76ba5b5fe196bbc1fc4579438..45f0fab730926b25d05773bf14da6c797aab9ab1 100644 (file)
@@ -5,9 +5,9 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
 currenciesDisplayName.USD=USD
 currenciesSymbol.HKD=$
+currenciesSymbol.USD=US$
 shortDateFormat=dd/MM/yyyy
 mediumDateFormat=d MMM yyyy
 longDateFormat=d MMMM yyyy
index a1ddc360fa3872afe990cfec1a9d2f7615530b1a..21e7332cbd2c85dddacec0ecc50748c73f7a03f2 100644 (file)
@@ -5,8 +5,10 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesSymbol.IEP=\u00a3
-ampms=a.m.®p.m.®
+currenciesSymbol.GBP=GBP
+ampms=a.m.\u00aep.m.\u00ae
 shortDateFormat=dd/MM/yyyy
 mediumDateFormat=d MMM yyyy
 longDateFormat=d MMMM yyyy
@@ -15,4 +17,3 @@ shortTimeFormat=HH:mm
 mediumTimeFormat=HH:mm:ss
 longTimeFormat=HH:mm:ss z
 fullTimeFormat=HH:mm:ss z
-zoneStrings=Europe/Dublin®GMT®Greenwich Mean Time®IST®Irish Summer Time®©
index a624a8b880fed0af08da6f0b924fbd4660facc59..58105432f25dae7b2098bb619f226e4ceb37f10a 100644 (file)
@@ -6,9 +6,8 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
-firstDayOfWeek=mon
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
 shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
+mediumDateFormat=dd-MMM-yyyy
 longDateFormat=d MMMM yyyy
 fullDateFormat=EEEE d MMMM yyyy
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_JM.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_JM.properties
new file mode 100644 (file)
index 0000000..5bd627c
--- /dev/null
@@ -0,0 +1,8 @@
+# LocaleInformation_en_JM.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
index 9a356ad84641e5f6a7ff1dca5412b4f9f7798ded..fbc2b7cd5edb268a121a0ea631394f751808b9cc 100644 (file)
@@ -5,8 +5,8 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesSymbol.GBP=GBP
-minNumberOfDaysInFirstWeek=4
 shortDateFormat=dd/MM/yyyy
 mediumDateFormat=dd MMM yyyy
 longDateFormat=dd MMMM yyyy
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NA.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NA.properties
new file mode 100644 (file)
index 0000000..197665a
--- /dev/null
@@ -0,0 +1,8 @@
+# LocaleInformation_en_NA.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
index 2979719cf05a69536e534611e3e9512268659bc7..ab81cde0d85bfd125ddf18dfa33cd471d76965e6 100644 (file)
@@ -5,9 +5,11 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+perMill=This symbol is not used in NZ
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesSymbol.NZD=$
+currenciesSymbol.USD=US$
 shortDateFormat=d/MM/yy
 mediumDateFormat=d/MM/yyyy
 longDateFormat=d MMMM yyyy
 fullDateFormat=EEEE, d MMMM yyyy
-longTimeFormat=h:mm:ss a
index 1c894b2b3b609c6189e40fca7ae2c536bce8b5c7..a127aba0acb4aad6bd2bbd2bd73d6dfeabd05935 100644 (file)
@@ -5,6 +5,4 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
 currenciesDisplayName.PHP=Peso
-mediumDateFormat=MM d, yy
index 658494d32dea07feae5307687d50c27918e8b615..07598ff953fecf3368b2f0408c67e9f1af003dd1 100644 (file)
@@ -6,8 +6,8 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
 shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
+mediumDateFormat=dd-MMM-yyyy
 longDateFormat=d MMMM yyyy
 fullDateFormat=EEEE d MMMM yyyy
index fe9075544a6575f608dd8f601fa34626b9432ce1..8e6427702ef0ea0ed48d9c7d9601949a83137658 100644 (file)
@@ -5,14 +5,15 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.USD=USD
 currenciesSymbol.SGD=$
-shortDateFormat=dd/MM/yyyy
-mediumDateFormat=dd MMM yyyy
-longDateFormat=dd MMMM yyyy
+currenciesSymbol.USD=US$
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMM yyyy
 fullDateFormat=EEEE, dd MMMM yyyy
-shortTimeFormat=h:mm a
-mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a z
-fullTimeFormat=h:mm:ss a z
-zoneStrings=Asia/Singapore®SST®Singapore Standard Time®SST®Singapore Standard Time®©
+shortTimeFormat=a hh:mm
+mediumTimeFormat=a hh:mm:ss
+longTimeFormat=a hh:mm:ss z
+fullTimeFormat=a hh:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Shaw.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Shaw.properties
new file mode 100644 (file)
index 0000000..9fb5cc7
--- /dev/null
@@ -0,0 +1,13 @@
+# LocaleInformation_en_Shaw.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=\u00b7\ud801\udc61\ud801\udc68\u00ae\u00b7\ud801\udc53\ud801\udc67\u00ae\u00b7\ud801\udc65\ud801\udc78\u00ae\u00b7\ud801\udc71\ud801\udc50\u00ae\u00b7\ud801\udc65\ud801\udc71\u00ae\u00b7\ud801\udc61\ud801\udc75\u00ae\u00b7\ud801\udc61\ud801\udc6b\u00ae\u00b7\ud801\udc6a\ud801\udc5c\u00ae\u00b7\ud801\udc55\ud801\udc67\u00ae\u00b7\ud801\udc77\ud801\udc52\u00ae\u00b7\ud801\udc6f\ud801\udc74\u00ae\u00b7\ud801\udc5b\ud801\udc6d\u00ae\u00ae
+months=\u00b7\ud801\udc61\ud801\udc68\ud801\udc59\ud801\udc58\ud801\udc6d\ud801\udc62\ud801\udc7a\ud801\udc70\u00ae\u00b7\ud801\udc53\ud801\udc67\ud801\udc5a\ud801\udc58\ud801\udc75\ud801\udc62\ud801\udc7a\ud801\udc70\u00ae\u00b7\ud801\udc65\ud801\udc78\ud801\udc57\u00ae\u00b7\ud801\udc71\ud801\udc50\ud801\udc6e\ud801\udc6d\ud801\udc64\u00ae\u00b7\ud801\udc65\ud801\udc71\u00ae\u00b7\ud801\udc61\ud801\udc75\ud801\udc6f\u00ae\u00b7\ud801\udc61\ud801\udc6b\ud801\udc64\ud801\udc72\u00ae\u00b7\ud801\udc6a\ud801\udc5c\ud801\udc6d\ud801\udc55\ud801\udc51\u00ae\u00b7\ud801\udc55\ud801\udc67\ud801\udc50\ud801\udc51\ud801\udc67\ud801\udc65\ud801\udc5a\ud801\udc78\u00ae\u00b7\ud801\udc77\ud801\udc52\ud801\udc51\ud801\udc74\ud801\udc5a\ud801\udc78\u00ae\u00b7\ud801\udc6f\ud801\udc74\ud801\udc5d\ud801\udc67\ud801\udc65\ud801\udc5a\ud801\udc78\u00ae\u00b7\ud801\udc5b\ud801\udc6d\ud801\udc55\ud801\udc67\ud801\udc65\ud801\udc5a\ud801\udc78\u00ae\u00ae
+shortWeekdays=\u00ae\u00b7\ud801\udc55\ud801\udc6d\u00ae\u00b7\ud801\udc65\ud801\udc6d\u00ae\u00b7\ud801\udc51\ud801\udc75\u00ae\u00b7\ud801\udc62\ud801\udc67\u00ae\u00b7\ud801\udc54\ud801\udc7b\u00ae\u00b7\ud801\udc53\ud801\udc6e\u00ae\u00b7\ud801\udc55\ud801\udc68\u00ae
+weekdays=\u00ae\u00b7\ud801\udc55\ud801\udc6d\ud801\udc59\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc65\ud801\udc6d\ud801\udc59\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc51\ud801\udc75\ud801\udc5f\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc62\ud801\udc67\ud801\udc59\ud801\udc5f\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc54\ud801\udc7b\ud801\udc5f\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc53\ud801\udc6e\ud801\udc72\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc55\ud801\udc68\ud801\udc5b\ud801\udc7b\ud801\udc5b\ud801\udc71\u00ae
+eras=\ud801\udc5a\u00b7\ud801\udc52\u00ae\ud801\udc68\ud801\udc5b\u00ae
+ampms=\ud801\udc68.\ud801\udc65.\u00ae\ud801\udc50.\ud801\udc65.\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_TT.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_TT.properties
new file mode 100644 (file)
index 0000000..ff75137
--- /dev/null
@@ -0,0 +1,8 @@
+# LocaleInformation_en_TT.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
index 6625bd8f4d6e8597a7da10b86639550e90f5710e..da1da0c3ca0474875d03448c06a443ecd46bd731 100644 (file)
@@ -7,6 +7,5 @@
 
 perMill=0/00
 infinity=INF
-NaN=NaN
 percentFormat=#0%
-currencyFormat=\u00a4 #0.00;-\u00a4 #0.00
+currencyFormat=\u00a4\u00a0#0.00;-\u00a4\u00a0#0.00
index 6058bcd2d233c9a6548fb60877f85f0bca9f6f57..f412db2e41ea5cbb6ef0f5fae203c0a2d3a63573 100644 (file)
@@ -5,9 +5,10 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+decimalSeparator=,
+groupingSeparator=\u00a0
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 shortDateFormat=yyyy/MM/dd
 mediumDateFormat=dd MMM yyyy
 longDateFormat=dd MMMM yyyy
 fullDateFormat=EEEE dd MMMM yyyy
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
index 1b56a51f869d5e219fe8ae57646cbcbafdbc0838..368b7844b0f2dc4ca0e8fd993c4a5289e4b318b7 100644 (file)
@@ -5,10 +5,9 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.ZWD=Zimbabwean Dollar
 shortDateFormat=d/M/yyyy
-mediumDateFormat=dd MMM,yy
+mediumDateFormat=dd MMM,yyyy
 longDateFormat=dd MMMM yyyy
 fullDateFormat=EEEE dd MMMM yyyy
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
index c5490afa4b175786c0c81bdfb7c9f01f5f104803..ee3e4249c293fed9b09f2e11a0e37adc28aac903 100644 (file)
@@ -7,20 +7,21 @@
 
 decimalSeparator=,
 groupingSeparator=\u00a0
-localPatternChars=GjMtkHmslTDUSnahKzJdugAZ
-shortMonths=jan®feb®mar®apr®maj®jun®jul®a\u016dg®sep®okt®nov®dec®®
-months=januaro®februaro®marto®aprilo®majo®junio®julio®a\u016dgusto®septembro®oktobro®novembro®decembro®®
-shortWeekdays=®di®lu®ma®me®\u0135a®ve®sa®
-weekdays=®diman\u0109o®lundo®mardo®merkredo®\u0135a\u016ddo®vendredo®sabato®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=aK®pK®
-ampms=atm®ptm®
+localPatternChars=GjMtkHmslTDUSnahKzJdugAZvcL
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aea\u016dg\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januaro\u00aefebruaro\u00aemarto\u00aeaprilo\u00aemajo\u00aejunio\u00aejulio\u00aea\u016dgusto\u00aeseptembro\u00aeoktobro\u00aenovembro\u00aedecembro\u00ae\u00ae
+shortWeekdays=\u00aedi\u00aelu\u00aema\u00aeme\u00ae\u0135a\u00aeve\u00aesa\u00ae
+weekdays=\u00aediman\u0109o\u00aelundo\u00aemardo\u00aemerkredo\u00ae\u0135a\u016ddo\u00aevendredo\u00aesabato\u00ae
+eras=aK\u00aepK\u00ae
+ampms=atm\u00aeptm\u00ae
 shortDateFormat=yy-MM-dd
 mediumDateFormat=yyyy-MMM-dd
 longDateFormat=yyyy-MMMM-dd
-fullDateFormat=EEEE, d'-a de 'MMMM yyyy
-fullTimeFormat=H'-a horo kaj 'm z
+fullDateFormat=EEEE, d-'a' 'de' MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=H-'a' 'horo' 'kaj' m:ss z
 territories.TJ=Ta\u011dikujo
 territories.TH=Tajlando
 territories.TG=Togolo
@@ -153,25 +154,25 @@ territories.AU=A\u016dstralio
 territories.AT=A\u016dstrujo
 territories.AR=Argentino
 territories.AQ=Antarkto
-territories.AO=Angolo
 territories.MZ=Mozambiko
-territories.AN=Nederlandaj Antiloj
+territories.AO=Angolo
 territories.MY=Malajzio
-territories.AM=Armenujo
+territories.AN=Nederlandaj Antiloj
 territories.MX=Meksiko
-territories.AL=Albanujo
+territories.AM=Armenujo
 territories.MW=Malavio
+territories.AL=Albanujo
 territories.MV=Maldivoj
 territories.ZA=Sud-Afriko
 territories.MU=Ma\u016dricio
-territories.AI=Angvilo
 territories.MT=Malto
-territories.AG=Antigvo-Barbudo
+territories.AI=Angvilo
 territories.MR=Ma\u016dritanujo
-territories.AF=Afganujo
+territories.AG=Antigvo-Barbudo
 territories.MQ=Martiniko
-territories.AE=Unui\u011dintaj Arabaj Emirlandos
+territories.AF=Afganujo
 territories.MP=Nord-Marianoj
+territories.AE=Unui\u011dintaj Arabaj Emirlandos
 territories.AD=Andoro
 territories.MN=Mongolujo
 territories.MM=Mjanmao
@@ -246,13 +247,11 @@ territories.TR=Turkujo
 territories.TO=Tongo
 territories.TN=Tunizio
 territories.TM=Turkmenujo
-languages.es=hispana
+languages.la=latino
+languages.xh=ksosa
+languages.ky=kirgiza
 languages.ku=kurda
-languages.eo=esperanto
-languages.en=angla
 languages.ks=ka\u015dmira
-languages.el=greka
-languages.qu=ke\u0109ua
 languages.ko=korea
 languages.kn=kanara
 languages.km=kmera
@@ -260,127 +259,135 @@ languages.kl=gronlanda
 languages.kk=kaza\u0125a
 languages.wo=volofa
 languages.ka=kartvela
-languages.dz=dzonko
 languages.jv=java
-languages.pt=portugala
-languages.ps=pa\u015dtua
-languages.de=germana
-languages.pl=pola
-languages.da=dana
 languages.vo=volapuko
 languages.ja=japana
 languages.vi=vjetnama
-languages.cy=kimra
-languages.pa=pan\u011daba
-languages.cs=\u0109e\u0125a
 languages.iu=inuita
-languages.co=korsika
 languages.it=itala
 languages.is=islanda
 languages.uz=uzbeka
-languages.or=orijo
 languages.ik=eskima
 languages.ur=urduo
-languages.om=oroma
-languages.ca=kataluna
 languages.ie=okcidentalo
 languages.id=indonezia
-languages.uk=ukraina
 languages.ia=interlingvao
-languages.oc=okcitana
+languages.uk=ukraina
 languages.ug=ujgura
 languages.hy=armena
-languages.br=bretona
 languages.hu=hungara
-languages.bo=tibeta
-languages.bn=bengala
 languages.hr=kroata
-languages.bi=bislamo
+languages.fil=filipina
 languages.tw=akana
-languages.bh=bihara
-languages.bg=bulgara
 languages.tt=tatara
-languages.no=norvega
-languages.be=belorusa
-languages.ts=conga
 languages.hi=hinda
+languages.ts=conga
 languages.tr=turka
-languages.nl=nederlanda
-languages.zu=zulua
-languages.ba=ba\u015dkira
-languages.to=tongaa
 languages.he=hebrea
+languages.to=tongaa
 languages.tn=cvana
-languages.tl=filipina
-languages.tk=turkmena
+languages.tl=tagaloga
 languages.ha=ha\u016dsa
-languages.ne=nepala
-languages.az=azerbaj\u011dana
+languages.tk=turkmena
 languages.ti=tigraja
-languages.ay=ajmara
 languages.th=taja
 languages.tg=ta\u011dika
-languages.na=naura
 languages.te=telugua
-languages.zh=\u0109ina
-languages.as=asama
-languages.ar=araba
 languages.ta=tamila
 languages.gu=gu\u011darata
-languages.my=birma
-languages.am=amhara
-languages.za=\u011duanga
-languages.mt=malta
-languages.ms=malaja
 languages.gn=gvarania
 languages.sw=svahila
-languages.mr=marata
-languages.sv=sveda
 languages.gl=galega
+languages.sv=sveda
 languages.su=sunda
-languages.af=afrikansa
 languages.st=sota
 languages.ss=svazia
-languages.mn=mongola
 languages.sr=serba
 languages.sq=albana
-languages.ml=malajalama
-languages.ab=ab\u0125aza
-languages.mk=makedona
-languages.aa=afara
 languages.so=somala
-languages.sn=\u015dona
 languages.gd=gaela
-languages.mi=maoria
+languages.sn=\u015dona
 languages.sm=samoa
 languages.sl=slovena
-languages.mg=malagasa
-languages.sk=slovaka
 languages.ga=irlanda
-languages.yo=joruba
+languages.sk=slovaka
 languages.si=sinhala
-languages.sh=serbo-Kroata
+languages.sh=serbokroata
 languages.sg=sangoa
-languages.yi=jida
-languages.sd=sinda
 languages.fy=frisa
+languages.sd=sinda
 languages.sa=sanskrito
 languages.fr=franca
-languages.lv=latva
 languages.fo=feroa
-languages.lt=litova
 languages.rw=ruanda
 languages.ru=rusa
 languages.fj=fi\u011dia
-languages.lo=la\u016da
 languages.fi=finna
-languages.ln=lingala
 languages.ro=rumana
 languages.rn=burunda
 languages.rm=roman\u0109a
 languages.fa=persa
-languages.la=latino
-languages.xh=ksosa
+languages.pt_PT=portugalportugala
 languages.eu=e\u016dska
 languages.et=estona
-languages.ky=kirgiza
+languages.es=hispana
+languages.eo=esperanto
+languages.en=angla
+languages.el=greka
+languages.qu=ke\u0109ua
+languages.dz=dzonko
+languages.pt=portugala
+languages.pt_BR=brazilportugala
+languages.ps=pa\u015dtua
+languages.de=germana
+languages.pl=pola
+languages.da=dana
+languages.cy=kimra
+languages.pa=pan\u011daba
+languages.cs=\u0109e\u0125a
+languages.co=korsika
+languages.or=orijo
+languages.om=oroma
+languages.ca=kataluna
+languages.oc=okcitana
+languages.bs=bosnia
+languages.br=bretona
+languages.bo=tibeta
+languages.bn=bengala
+languages.bi=bislamo
+languages.bh=bihara
+languages.bg=bulgara
+languages.be=belorusa
+languages.no=norvega
+languages.nn=novnorvega
+languages.nl=nederlanda
+languages.ba=ba\u015dkira
+languages.zu=zulua
+languages.az=azerbaj\u011dana
+languages.ne=nepala
+languages.ay=ajmara
+languages.na=naura
+languages.as=asama
+languages.ar=araba
+languages.zh=\u0109ina
+languages.my=birma
+languages.am=amhara
+languages.za=\u011duanga
+languages.mt=malta
+languages.ms=malaja
+languages.mr=marata
+languages.af=afrikansa
+languages.mn=mongola
+languages.ab=ab\u0125aza
+languages.ml=malajalama
+languages.aa=afara
+languages.mk=makedona
+languages.mi=maoria
+languages.mg=malagasa
+languages.yo=joruba
+languages.tlh=klingona
+languages.yi=jida
+languages.lv=latva
+languages.lt=litova
+languages.lo=la\u016da
+languages.ln=lingala
index b109f14fd8951849d6d152615e786b3983430ee5..9cc11c36139c8ef3b0e47f206eef9fbc09d1822a 100644 (file)
 
 decimalSeparator=,
 groupingSeparator=.
-currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
-localPatternChars=GuMtkHmsSEDFwWahKzUeygAZ
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GuMtkHmsSEDFwWahKzUeygAZvcL
 currenciesDisplayName.YDD=dinar yemen\u00ed
-currenciesDisplayName.TWD=nuevo d\u00f3lar taiwan\u00e9s
 currenciesDisplayName.KES=chel\u00edn keniata
-currenciesDisplayName.BYB=nuevo rublo bielorruso (1994-1999)
+currenciesDisplayName.TWD=d\u00f3lar taiwan\u00e9s nuevo
 currenciesDisplayName.LKR=rupia de Sri Lanka
-currenciesDisplayName.RWF=franco ruand\u00e9s
+currenciesDisplayName.BYB=nuevo rublo bielorruso (1994-1999)
 currenciesDisplayName.TJS=somoni tayiko
-currenciesDisplayName.SDP=libra sudanesa
-currenciesDisplayName.TJR=rublo tayiko
+currenciesDisplayName.RWF=franco ruand\u00e9s
 currenciesDisplayName.ERN=nakfa eritreo
+currenciesDisplayName.TJR=rublo tayiko
+currenciesDisplayName.SDP=libra sudanesa
+currenciesDisplayName.GRD=dracmas griegos
 currenciesDisplayName.AFN=afgani
-currenciesDisplayName.GRD=dracma griego
-currenciesDisplayName.IEP=libra irlandesa
-currenciesDisplayName.ARS=peso argentino
+currenciesDisplayName.IEP=libras irlandesas
+currenciesDisplayName.ARS=pesos argentinos
+currenciesDisplayName.ARP=pesos argentinos (ARP)
 currenciesDisplayName.SDD=dinar sudan\u00e9s
-currenciesDisplayName.ARP=peso argentino (1983-1985)
 currenciesDisplayName.GEL=lari georgiano
-currenciesDisplayName.AFA=afgani (1927-2002)
 currenciesDisplayName.GEK=kupon larit georgiano
-currenciesDisplayName.CRC=col\u00f3n costarricense
+currenciesDisplayName.AFA=afgani (1927-2002)
+currenciesDisplayName.CRC=colones costarricenses
 currenciesDisplayName.FKP=libra de las Islas Malvinas
-currenciesDisplayName.EEK=corona estonia
-currenciesDisplayName.HKD=d\u00f3lar de Hong Kong
+currenciesDisplayName.EEK=coronas estonias
 currenciesDisplayName.MDL=leu moldavo
-currenciesDisplayName.ARA=austral argentino
+currenciesDisplayName.HKD=d\u00f3lar de Hong Kong
 currenciesDisplayName.IQD=dinar iraqu\u00ed
+currenciesDisplayName.ARA=australes argentinos
 currenciesDisplayName.SCR=rupia de Seychelles
 currenciesDisplayName.VUV=vatu vanuatuense
-currenciesDisplayName.DKK=corona danesa
 currenciesDisplayName.KPW=won norcoreano
-currenciesDisplayName.GQE=ekuele de Guinea Ecuatorial
+currenciesDisplayName.DKK=coronas danesas
 currenciesDisplayName.IDR=rupia indonesia
-currenciesDisplayName.LVR=rublo let\u00f3n
+currenciesDisplayName.GQE=ekueles de Guinea Ecuatorial
 currenciesDisplayName.SOS=chel\u00edn somal\u00ed
-currenciesDisplayName.AED=dirham de los Emiratos \u00c1rabes Unidos
+currenciesDisplayName.LVR=rublos letones
+currenciesDisplayName.EQE=ekwele
+currenciesDisplayName.AED=d\u00edrham de los Emiratos \u00c1rabes Unidos
+currenciesDisplayName.LVL=lats letones
 currenciesDisplayName.BWP=pula botsuano
-currenciesDisplayName.LVL=lats let\u00f3n
-currenciesDisplayName.RUR=rublo ruso (1991-1998)
-currenciesDisplayName.NIO=c\u00f3rdoba oro nicarag\u00fcense
-currenciesDisplayName.ADP=peseta andorrana
-currenciesDisplayName.FJD=d\u00f3lar de las Islas Fiyi
+currenciesDisplayName.RUR=rublos rusos (RUR)
+currenciesDisplayName.NIO=c\u00f3rdobas oro nicarag\u00fcenses
+currenciesDisplayName.XTS=c\u00f3digo reservado para pruebas
 currenciesDisplayName.MOP=pataca de Macao
-currenciesDisplayName.RUB=rublo ruso
+currenciesDisplayName.FJD=d\u00f3lar de las Islas Fiyi
+currenciesDisplayName.ADP=pesetas andorranas
+currenciesDisplayName.RUB=rublos rusos
 currenciesDisplayName.CDF=franco congole\u00f1o
-currenciesDisplayName.NIC=c\u00f3rdoba nicarag\u00fcense
+currenciesDisplayName.NIC=c\u00f3rdobas nicarag\u00fcenses
 currenciesDisplayName.DJF=franco de Yibuti
-currenciesDisplayName.ECV=unidad de valor constante (UVC) ecuatoriana
-currenciesDisplayName.SBD=d\u00f3lar de las Islas Salom\u00f3n
 currenciesDisplayName.UZS=sum uzbeko
-currenciesDisplayName.ECS=sucre ecuatoriano
-currenciesDisplayName.PHP=peso filipino
+currenciesDisplayName.SBD=d\u00f3lar de las Islas Salom\u00f3n
+currenciesDisplayName.ECV=unidades de valor constante (UVC) ecuatorianas
+currenciesDisplayName.LUL=francos financieros luxemburgueses
+currenciesDisplayName.ECS=sucres ecuatorianos
 currenciesDisplayName.THB=baht tailand\u00e9s
-currenciesDisplayName.LUF=franco luxemburgu\u00e9s
-currenciesDisplayName.FIM=marco finland\u00e9s
+currenciesDisplayName.PHP=pesos filipinos
+currenciesDisplayName.LUF=francos luxemburgueses
+currenciesDisplayName.RHD=d\u00f3lar rodesiano
+currenciesDisplayName.LUC=francos convertibles luxemburgueses
+currenciesDisplayName.FIM=marcos finlandeses
 currenciesDisplayName.TTD=d\u00f3lar de Trinidad y Tobago
 currenciesDisplayName.SZL=lilangeni suazi
 currenciesDisplayName.MNT=tugrik mongol
+currenciesDisplayName.UAK=karbovanets ucranianos
 currenciesDisplayName.SAR=riyal saud\u00ed
-currenciesDisplayName.UAK=karbovanet ucraniano
-currenciesDisplayName.UAH=grivna ucraniana
-currenciesDisplayName.HUF=forinto h\u00fangaro
-currenciesDisplayName.COP=peso colombiano
+currenciesDisplayName.COU=unidades de valor reales
+currenciesDisplayName.UAH=grivnas ucranianas
+currenciesDisplayName.HUF=florines h\u00fangaros
 currenciesDisplayName.QAR=riyal de Qatar
-currenciesDisplayName.LTT=talonas lituano
-currenciesDisplayName.PTE=escudo portugu\u00e9s
+currenciesDisplayName.COP=pesos colombianos
+currenciesDisplayName.LTT=talonas lituanos
+currenciesDisplayName.PTE=escudos portugueses
+currenciesDisplayName.UYU=pesos uruguayos
 currenciesDisplayName.AOR=kwanza reajustado angole\u00f1o (1995-1999)
-currenciesDisplayName.UYU=peso uruguayo
-currenciesDisplayName.GBP=libra esterlina brit\u00e1nica
-currenciesDisplayName.BIF=franco de Burundi
-currenciesDisplayName.INR=rupia india
+currenciesDisplayName.GBP=libras esterlinas brit\u00e1nicas
 currenciesDisplayName.ZRZ=zaire zaire\u00f1o
+currenciesDisplayName.INR=rupia hind\u00fa
+currenciesDisplayName.BIF=franco de Burundi
+currenciesDisplayName.XFU=francos UIC franceses
+currenciesDisplayName.MZN=metical mozambique\u00f1o
+currenciesDisplayName.LTL=litas lituanos
 currenciesDisplayName.AON=nuevo kwanza angole\u00f1o (1990-2000)
-currenciesDisplayName.LTL=litas lituano
-currenciesDisplayName.XFU=franco UIC franc\u00e9s
+currenciesDisplayName.UYP=pesos uruguayos (UYP)
+currenciesDisplayName.MZM=metical mozambique\u00f1o antiguo
 currenciesDisplayName.KZT=tenge kazako
-currenciesDisplayName.MZM=metical mozambique\u00f1o
-currenciesDisplayName.UYP=peso uruguayo (1975-1993)
 currenciesDisplayName.AOK=kwanza angole\u00f1o (1977-1990)
-currenciesDisplayName.BUK=kyat birmano
 currenciesDisplayName.GNS=syli guineano
-currenciesDisplayName.XFO=franco oro franc\u00e9s
+currenciesDisplayName.BUK=kyat birmano
+currenciesDisplayName.XFO=francos oro franceses
 currenciesDisplayName.PGK=kina de Pap\u00faa Nueva Guinea
+currenciesDisplayName.UYI=pesos uruguayos en unidades indexadas
 currenciesDisplayName.SYP=libra siria
-currenciesDisplayName.MZE=escudo mozambique\u00f1o
 currenciesDisplayName.OMR=rial oman\u00ed
-currenciesDisplayName.NGN=naira nigeriano
+currenciesDisplayName.MZE=escudo mozambique\u00f1o
 currenciesDisplayName.ZRN=nuevo zaire zaire\u00f1o
-currenciesDisplayName.AOA=kwanza angole\u00f1o
+currenciesDisplayName.NGN=naira nigeriano
 currenciesDisplayName.CNY=yuan renminbi chino
-currenciesDisplayName.MAF=franco marroqu\u00ed
-currenciesDisplayName.GNF=franco guineo
+currenciesDisplayName.AOA=kwanza angole\u00f1o
+currenciesDisplayName.MAF=francos marroqu\u00edes
+currenciesDisplayName.RSD=dinares serbios
+currenciesDisplayName.GNF=franco guineano
+currenciesDisplayName.MAD=d\u00edrham marroqu\u00ed
 currenciesDisplayName.HTG=gourde haitiano
-currenciesDisplayName.MAD=dirham marroqu\u00ed
+currenciesDisplayName.TRY=lira turca
 currenciesDisplayName.MMK=kyat de Myanmar
+currenciesDisplayName.XRE=fondos RINET
 currenciesDisplayName.MYR=ringgit malasio
+currenciesDisplayName.LSM=Loti
+currenciesDisplayName.XEU=unidades de moneda europeas
 currenciesDisplayName.LSL=loti lesothense
-currenciesDisplayName.XEU=unidad de moneda europea
-currenciesDisplayName.BHD=dinar bahrein\u00ed
 currenciesDisplayName.SLL=leone de Sierra Leona
+currenciesDisplayName.BHD=dinar bahrein\u00ed
 currenciesDisplayName.BTN=ngultrum butan\u00e9s
 currenciesDisplayName.TRL=lira turca
 currenciesDisplayName.KMF=franco comorense
+currenciesDisplayName.CZK=coronas checas
 currenciesDisplayName.ANG=flor\u00edn de las Antillas Neerlandesas
-currenciesDisplayName.CZK=corona checa
-currenciesDisplayName.AZM=manat azer\u00ed
+currenciesDisplayName.AZN=manat azer\u00ed
+currenciesDisplayName.AZM=manat azer\u00ed (1993-2006)
 currenciesDisplayName.KYD=d\u00f3lar de las Islas Caim\u00e1n
 currenciesDisplayName.GMD=dalasi gambiano
-currenciesDisplayName.BGN=nuevo lev b\u00falgaro
-currenciesDisplayName.CAD=d\u00f3lar canadiense
-currenciesDisplayName.MXV=unidad de inversi\u00f3n (UDI) mexicana
-currenciesDisplayName.BGL=lev fuerte b\u00falgaro
-currenciesDisplayName.VEB=bol\u00edvar venezolano
+currenciesDisplayName.VEF=bol\u00edvares fuertes venezolanos
+currenciesDisplayName.BGN=lev b\u00falgaro nuevo
+currenciesDisplayName.MXV=unidades de inversi\u00f3n (UDI) mexicanas
+currenciesDisplayName.CAD=d\u00f3lares canadienses
+currenciesDisplayName.BGL=leva fuertes b\u00falgaros
+currenciesDisplayName.VEB=bol\u00edvares venezolanos
 currenciesDisplayName.MLF=franco mal\u00ed
-currenciesDisplayName.ILS=nuevo sheqel israel\u00ed
-currenciesDisplayName.MXP=peso de plata mexicano (1861-1992)
-currenciesDisplayName.PES=sol peruano
+currenciesDisplayName.MXP=pesos de plata mexicanos (MXP)
+currenciesDisplayName.ILS=siclo israel\u00ed nuevo
+currenciesDisplayName.PES=soles peruanos
+currenciesDisplayName.MXN=peso mejicano
 currenciesDisplayName.GYD=d\u00f3lar guyan\u00e9s
-currenciesDisplayName.MXN=peso mexicano
 currenciesDisplayName.ILP=libra israel\u00ed
-currenciesDisplayName.SKK=corona eslovaca
 currenciesDisplayName.CYP=libra chipriota
+currenciesDisplayName.SKK=coronas eslovacas
 currenciesDisplayName.XDR=derechos especiales de giro
-currenciesDisplayName.PEN=nuevo sol peruano
+currenciesDisplayName.PEN=nuevos soles peruanos
 currenciesDisplayName.LRD=d\u00f3lar liberiano
-currenciesDisplayName.PEI=inti peruano
+currenciesDisplayName.PEI=intis peruanos
 currenciesDisplayName.AMD=dram armenio
 currenciesDisplayName.BSD=d\u00f3lar de las Bahamas
-currenciesDisplayName.HRK=kuna croata
-currenciesDisplayName.CLP=peso chileno
-currenciesDisplayName.HRD=dinar croata
+currenciesDisplayName.XPT=platino
+currenciesDisplayName.HRK=kunas croatas
+currenciesDisplayName.CLP=pesos chilenos
+currenciesDisplayName.HRD=dinares croatas
 currenciesDisplayName.XPF=franco CFP
-currenciesDisplayName.FRF=franco franc\u00e9s
-currenciesDisplayName.BRR=cruceiro brasile\u00f1o
+currenciesDisplayName.FRF=francos franceses
+currenciesDisplayName.XPD=paladio
+currenciesDisplayName.BRR=cruceiros brasile\u00f1os
 currenciesDisplayName.MKD=dinar macedonio
-currenciesDisplayName.CLF=unidad de fomento chilena
+currenciesDisplayName.CLF=unidades de fomento chilenas
 currenciesDisplayName.ALL=lek alban\u00e9s
-currenciesDisplayName.BRN=nuevo cruzado brasile\u00f1o
+currenciesDisplayName.BRN=nuevos cruzados brasile\u00f1os
 currenciesDisplayName.MWK=kwacha de Malawi
-currenciesDisplayName.BRL=real brasile\u00f1o
+currenciesDisplayName.BRL=reales brasile\u00f1os
 currenciesDisplayName.TPE=escudo timorense
-currenciesDisplayName.BRE=cruceiro brasile\u00f1o (1990-1993)
-currenciesDisplayName.BRC=cruzado brasile\u00f1o
-currenciesDisplayName.BRB=nuevo cruceiro brasile\u00f1o (1967-1986)
-currenciesDisplayName.DEM=marco alem\u00e1n
+currenciesDisplayName.BRE=cruceiros brasile\u00f1os (BRE)
+currenciesDisplayName.BRC=cruzados brasile\u00f1os
+currenciesDisplayName.BRB=nuevos cruzados brasile\u00f1os (BRB)
+currenciesDisplayName.DEM=marcos alemanes
 currenciesDisplayName.KWD=dinar kuwait\u00ed
 currenciesDisplayName.XCD=d\u00f3lar del Caribe Oriental
 currenciesDisplayName.NPR=rupia nepalesa
 currenciesDisplayName.GWP=peso de Guinea-Biss\u00e1u
 currenciesDisplayName.YUN=dinar convertible yugoslavo
-currenciesDisplayName.SVC=col\u00f3n salvadore\u00f1o
+currenciesDisplayName.SVC=colones salvadore\u00f1os
 currenciesDisplayName.YUM=super dinar yugoslavo
-currenciesDisplayName.BEL=franco belga (financiero)
-currenciesDisplayName.SIT=t\u00f3lar esloveno
-currenciesDisplayName.JPY=yen japon\u00e9s
+currenciesDisplayName.BEL=francos belgas (financieros)
+currenciesDisplayName.SIT=t\u00f3lares eslovenos
+currenciesDisplayName.JPY=yenes japoneses
 currenciesDisplayName.XOF=franco CFA BCEAO
 currenciesDisplayName.MVR=rufiyaa de Maldivas
+currenciesDisplayName.BEF=francos belgas
 currenciesDisplayName.GWE=escudo de Guinea Portuguesa
-currenciesDisplayName.BEF=franco belga
 currenciesDisplayName.TOP=pa\u02bbanga tongano
 currenciesDisplayName.YUD=dinar fuerte yugoslavo
-currenciesDisplayName.BEC=franco belga (convertible)
-currenciesDisplayName.SUR=rublo sovi\u00e9tico
-currenciesDisplayName.ROL=leu rumano
-currenciesDisplayName.DDM=ostmark de Alemania del Este
+currenciesDisplayName.BEC=francos belgas (convertibles)
+currenciesDisplayName.SUR=rublos sovi\u00e9ticos
+currenciesDisplayName.RON=lei rumanos
+currenciesDisplayName.ROL=antiguos lei rumanos
 currenciesDisplayName.BDT=taka de Bangladesh
-currenciesDisplayName.XBD=unidad de cuenta europea (XBD)
+currenciesDisplayName.DDM=ostmarks de Alemania del Este
+currenciesDisplayName.XBD=unidades de cuenta europeas (XBD)
 currenciesDisplayName.AWG=flor\u00edn de Aruba
-currenciesDisplayName.XBC=unidad de cuenta europea (XBC)
-currenciesDisplayName.XBB=unidad monetaria europea
-currenciesDisplayName.XBA=unidad compuesta europea
-currenciesDisplayName.NOK=corona noruega
+currenciesDisplayName.XBC=unidades de cuenta europeas (XBC)
+currenciesDisplayName.XBB=unidades monetarias europeas
+currenciesDisplayName.XBA=unidades compuestas europeas
+currenciesDisplayName.NOK=coronas noruegas
 currenciesDisplayName.MUR=rupia mauriciana
 currenciesDisplayName.ZAR=rand sudafricano
 currenciesDisplayName.SHP=libra de Santa Elena
@@ -187,10 +205,11 @@ currenciesDisplayName.XAU=oro
 currenciesDisplayName.ZAL=rand sudafricano (financiero)
 currenciesDisplayName.VND=dong vietnamita
 currenciesDisplayName.TZS=chel\u00edn tanzano
-currenciesDisplayName.GIP=libra de Gibraltar
+currenciesDisplayName.GIP=libras de Gibraltar
 currenciesDisplayName.TND=dinar tunecino
 currenciesDisplayName.CVE=escudo de Cabo Verde
 currenciesDisplayName.UGX=chel\u00edn ugand\u00e9s
+currenciesDisplayName.XAG=plata
 currenciesDisplayName.ZMK=kwacha zambiano
 currenciesDisplayName.JOD=dinar jordano
 currenciesDisplayName.XAF=franco CFA BEAC
@@ -199,86 +218,92 @@ currenciesDisplayName.UGS=chel\u00edn ugand\u00e9s (1966-1987)
 currenciesDisplayName.STD=dobra de Santo Tom\u00e9 y Pr\u00edncipe
 currenciesDisplayName.WST=tala samoano
 currenciesDisplayName.KHR=riel camboyano
-currenciesDisplayName.EUR=euro
-currenciesDisplayName.DOP=peso dominicano
-currenciesDisplayName.BOV=MVDOL boliviano
+currenciesDisplayName.DOP=pesos dominicanos
+currenciesDisplayName.EUR=euros
+currenciesDisplayName.BOV=MVDOL bolivianos
 currenciesDisplayName.MTP=libra maltesa
-currenciesDisplayName.USS=d\u00f3lar estadounidense (mismo d\u00eda)
-currenciesDisplayName.BOP=peso boliviano
+currenciesDisplayName.USS=d\u00f3lares estadounidenses (mismo d\u00eda)
+currenciesDisplayName.BOP=pesos bolivianos
+currenciesDisplayName.CUP=pesos cubanos
 currenciesDisplayName.MTL=lira maltesa
-currenciesDisplayName.CUP=peso cubano
 currenciesDisplayName.TMM=manat turcomano
-currenciesDisplayName.USN=d\u00f3lar estadounidense (d\u00eda siguiente)
+currenciesDisplayName.USN=d\u00f3lares estadounidenses (d\u00eda siguiente)
 currenciesDisplayName.SGD=d\u00f3lar singapurense
 currenciesDisplayName.NZD=d\u00f3lar neozeland\u00e9s
-currenciesDisplayName.USD=d\u00f3lar estadounidense
-currenciesDisplayName.HNL=lempira hondure\u00f1o
-currenciesDisplayName.BOB=boliviano
-currenciesDisplayName.ITL=lira italiana
-currenciesDisplayName.PAB=balboa paname\u00f1o
-currenciesDisplayName.GTQ=quetzal guatemalteco
-currenciesDisplayName.LAK=kip laosiano
+currenciesDisplayName.USD=d\u00f3lares estadounidenses
+currenciesDisplayName.BOB=bolivianos
+currenciesDisplayName.HNL=lempiras hondure\u00f1os
+currenciesDisplayName.CHW=francos WIR
+currenciesDisplayName.ITL=liras italianas
+currenciesDisplayName.PAB=balboas paname\u00f1os
+currenciesDisplayName.GTQ=quetzales guatemaltecos
+currenciesDisplayName.XXX=moneda desconocida o no v\u00e1lida
+currenciesDisplayName.AUD=d\u00f3lares australianos
 currenciesDisplayName.GHC=cedi ghan\u00e9s
-currenciesDisplayName.AUD=d\u00f3lar australiano
+currenciesDisplayName.LAK=kip laosiano
 currenciesDisplayName.NAD=d\u00f3lar de Namibia
 currenciesDisplayName.KGS=som kirgu\u00eds
 currenciesDisplayName.MGF=franco malgache
-currenciesDisplayName.CHF=franco suizo
 currenciesDisplayName.BBD=d\u00f3lar de Barbados
+currenciesDisplayName.CHF=francos suizos
+currenciesDisplayName.CHE=euros WIR
 currenciesDisplayName.MGA=ariary malgache
-currenciesDisplayName.PYG=guaran\u00ed paraguayo
-currenciesDisplayName.PLZ=zloty polaco (1950-1995)
+currenciesDisplayName.PYG=guaran\u00edes paraguayos
+currenciesDisplayName.PLZ=zlotys polacos (PLZ)
 currenciesDisplayName.YER=rial yemen\u00ed
-currenciesDisplayName.ATS=chel\u00edn austriaco
+currenciesDisplayName.ATS=chelines austriacos
 currenciesDisplayName.ETB=birr et\u00edope
 currenciesDisplayName.BND=d\u00f3lar de Brun\u00e9i
-currenciesDisplayName.JMD=d\u00f3lar de Jamaica
 currenciesDisplayName.EGP=libra egipcia
-currenciesDisplayName.PLN=zloty polaco
+currenciesDisplayName.JMD=d\u00f3lar de Jamaica
+currenciesDisplayName.PLN=zloty polaco nuevo
 currenciesDisplayName.DZD=dinar argelino
-currenciesDisplayName.ISK=corona islandesa
+currenciesDisplayName.ISK=coronas islandesas
 currenciesDisplayName.SRG=flor\u00edn surinam\u00e9s
 currenciesDisplayName.LYD=dinar libio
+currenciesDisplayName.SRD=d\u00f3lar surinam\u00e9s
+currenciesDisplayName.BAM=marcos convertibles de Bosnia-Herzegovina
 currenciesDisplayName.BZD=d\u00f3lar de Belice
-currenciesDisplayName.BAM=marco bosnio convertible
-currenciesDisplayName.ESP=peseta espa\u00f1ola
+currenciesDisplayName.ESP=pesetas espa\u00f1olas
 currenciesDisplayName.KRW=won surcoreano
-currenciesDisplayName.NLG=flor\u00edn neerland\u00e9s
+currenciesDisplayName.NLG=florines neerlandeses
 currenciesDisplayName.MRO=ouguiya mauritano
-currenciesDisplayName.BAD=dinar bosnio
+currenciesDisplayName.BAD=dinares bosnios
 currenciesDisplayName.ZWD=d\u00f3lar de Zimbabue
-currenciesDisplayName.SEK=corona sueca
-currenciesDisplayName.CSK=corona fuerte checoslovaca
+currenciesDisplayName.SEK=coronas suecas
+currenciesDisplayName.CSK=coronas fuertes checoslovacas
 currenciesDisplayName.BYR=rublo bielorruso
+currenciesDisplayName.ESB=pesetas espa\u00f1olas (cuenta convertible)
 currenciesDisplayName.IRR=rial iran\u00ed
-currenciesDisplayName.PKR=rupia pakistan\u00ed
+currenciesDisplayName.ESA=pesetas espa\u00f1olas (cuenta A)
+currenciesDisplayName.PKR=rupia paquistan\u00ed
 currenciesDisplayName.BMD=d\u00f3lar de Bermudas
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=dinar serbio antiguo
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
@@ -297,27 +322,26 @@ currenciesSymbol.FJD=F$
 currenciesSymbol.UYU=Ur$
 currenciesSymbol.BDT=Tk
 currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
 currenciesSymbol.DJF=DF
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
 currenciesSymbol.SGD=S$
-currenciesSymbol.ECS=S/
-currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
 currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.DOP=RD$
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.PYG=\u20b2
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -325,9 +349,10 @@ currenciesSymbol.MYR=RM
 currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
 currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.BOB=Bs
 currenciesSymbol.CNY=Y
@@ -342,10 +367,10 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.ANG=NA f.
@@ -355,20 +380,23 @@ currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=ene®feb®mar®abr®may®jun®jul®ago®sep®oct®nov®dic®®
-months=enero®febrero®marzo®abril®mayo®junio®julio®agosto®septiembre®octubre®noviembre®diciembre®®
-shortWeekdays=®dom®lun®mar®mi\u00e9®jue®vie®s\u00e1b®
-weekdays=®domingo®lunes®martes®mi\u00e9rcoles®jueves®viernes®s\u00e1bado®
-firstDayOfWeek=mon
-eras=a.C.®d.C.®
-shortDateFormat=d/MM/yy
-mediumDateFormat=dd-MMM-yy
-longDateFormat=d' de 'MMMM' de 'yyyy
-fullDateFormat=EEEE d' de 'MMMM' de 'yyyy
-fullTimeFormat=HH'H'mm''ss\" z
-zoneStrings=Europe/Paris®CET®Hora est\u00e1ndar de Europa Central®CEST®Hora de verano de Europa Central®©Pacific/Honolulu®HST®Hora est\u00e1ndar de Hawai®HST®Hora est\u00e1ndar de Hawai®©America/Denver®MST®Hora est\u00e1ndar de Monta\u00f1a®MDT®Hora de verano de Monta\u00f1a®©Asia/Jerusalem®IST®Hora est\u00e1ndar de Israel®IDT®Hora de verano de Israel®©America/Anchorage®AST®Hora est\u00e1ndar de Alaska®ADT®Hora de verano de Alaska®©Africa/Casablanca®GMT®Hora media de Greenwich®GMT®Hora media de Greenwich®©America/Phoenix®MST®Hora est\u00e1ndar de Monta\u00f1a®MST®Hora est\u00e1ndar de Monta\u00f1a®©America/Los_Angeles®PST®Hora est\u00e1ndar del Pac\u00edfico®PDT®Hora de verano del Pac\u00edfico®©America/Chicago®CST®Hora est\u00e1ndar central®CDT®Hora de verano central®©America/Halifax®AST®Hora est\u00e1ndar del Atl\u00e1ntico®ADT®Hora de verano del Atl\u00e1ntico®©America/St_Johns®CNT®Hora est\u00e1ndar de Newfoundland®CDT®Hora de verano de Newfoundland®©America/New_York®EST®Hora est\u00e1ndar oriental®EDT®Hora de verano oriental®©Asia/Shanghai®CTT®Hora est\u00e1ndar de China®CDT®Hora est\u00e1ndar de China®©Asia/Tokyo®JST®Hora est\u00e1ndar de Jap\u00f3n®JST®Hora est\u00e1ndar de Jap\u00f3n®©Europe/Bucharest®EET®Hora est\u00e1ndar de Europa del Este®EEST®Hora de verano de Europa del Este®©America/Indianapolis®EST®Hora est\u00e1ndar oriental®EST®Hora est\u00e1ndar oriental®©
+shortMonths=ene\u00aefeb\u00aemar\u00aeabr\u00aemay\u00aejun\u00aejul\u00aeago\u00aesep\u00aeoct\u00aenov\u00aedic\u00ae\u00ae
+months=enero\u00aefebrero\u00aemarzo\u00aeabril\u00aemayo\u00aejunio\u00aejulio\u00aeagosto\u00aeseptiembre\u00aeoctubre\u00aenoviembre\u00aediciembre\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aelun\u00aemar\u00aemi\u00e9\u00aejue\u00aevie\u00aes\u00e1b\u00ae
+weekdays=\u00aedomingo\u00aelunes\u00aemartes\u00aemi\u00e9rcoles\u00aejueves\u00aeviernes\u00aes\u00e1bado\u00ae
+eras=a.C.\u00aed.C.\u00ae
+ampms=a.m.\u00aep.m.\u00ae
+shortDateFormat=d/M/yy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d 'de' MMMM 'de' yyyy
+fullDateFormat=EEEE d 'de' MMMM 'de' yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Marshall_Islands\u00aeHora de las Islas Marshall\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeHora de Shevchenko\u00ae\u00aeHora de verano de Shevchenko\u00ae\u00ae\u00a9Bangladesh\u00aeHora de Bangladesh\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeHora est\u00e1ndar de Australia centroriental\u00ae\u00aeHora de verano de Australia centroriental\u00ae\u00ae\u00a9Indonesia_Central\u00aeHora de Indonesia central\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeHora est\u00e1ndar oriental\u00ae\u00aeHora de verano oriental\u00ae\u00ae\u00a9China\u00aeHora est\u00e1ndar de China\u00aeCST (China)\u00aeHora de verano de China\u00ae\u00ae\u00a9Guyana\u00aeHora de la Guyana\u00ae\u00ae\u00ae\u00ae\u00a9Uzbekistan\u00aeHora de Uzbekist\u00e1n\u00ae\u00aeHora de verano de Uzbekist\u00e1n\u00ae\u00ae\u00a9Uruguay\u00aeHora de Uruguay\u00ae\u00aeHora de verano de Uruguay\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeHora est\u00e1ndar de Kazajist\u00e1n oriental\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeHora de Karachi\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeHora de Tbilisi\u00ae\u00aeHora de verano de Tbilisi\u00ae\u00ae\u00a9Tashkent\u00aeHora de Tashkent\u00ae\u00aeHora de verano de Tashkent\u00ae\u00ae\u00a9Changbai\u00aeHora de Changbai\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeHora de la Guayana Francesa\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeHora de Frunze\u00ae\u00aeHora de verano de Frunze\u00ae\u00ae\u00a9Europe_Eastern\u00aeHora de Europa del Este\u00ae\u00aeHora de verano de Europa del Este\u00ae\u00ae\u00a9Greenland_Eastern\u00aeHora de Groenlandia oriental\u00ae\u00aeHora de verano de Groenlandia oriental\u00ae\u00ae\u00a9Dushanbe\u00aeHora de Dusamb\u00e9\u00ae\u00aeHora de verano de Dusamb\u00e9\u00ae\u00ae\u00a9Dacca\u00aeHora de Dacca\u00ae\u00ae\u00ae\u00ae\u00a9Chile\u00aeHora de Chile\u00ae\u00aeHora de verano de Chile\u00ae\u00ae\u00a9Europe_Central\u00aeHora de Europa Central\u00ae\u00aeHora de verano de Europa Central\u00ae\u00ae\u00a9Arabian\u00aeHora est\u00e1ndar de Arabia\u00aeAST (Arabia)\u00aeHora de verano de Arabia\u00aeADT (Arabia)\u00ae\u00a9Acre\u00aeHora de Acre\u00ae\u00aeHora de verano de Acre\u00ae\u00ae\u00a9East_Timor\u00aeHora de Timor Oriental\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeHora est\u00e1ndar de Nueva Zelanda\u00ae\u00aeHora de verano de Nueva Zelanda\u00ae\u00ae\u00a9Indochina\u00aeHora de Indochina\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeHora de Kwajalein\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00aeHora est\u00e1ndar de \u00c1frica meridional\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeHora est\u00e1ndar de las Monta\u00f1as\u00ae\u00aeHora de verano de las Monta\u00f1as\u00ae\u00ae\u00a9Ecuador\u00aeHora de Ecuador\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Central\u00aeHora de \u00c1frica central\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00aeHora de Armenia\u00ae\u00aeHora de verano de Armenia\u00ae\u00ae\u00a9Samara\u00aeHora de Samara\u00ae\u00aeHora de verano de Samara\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeHora est\u00e1ndar de Alaska-Haw\u00e1i\u00ae\u00aeHora de verano de Alaska-Haw\u00e1i\u00ae\u00ae\u00a9America_Central\u00aeHora est\u00e1ndar central\u00ae\u00aeHora de verano central\u00ae\u00ae\u00a9Malaysia\u00aeHora de Malasia\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeHora est\u00e1ndar de Mosc\u00fa\u00ae\u00aeHora de verano de Mosc\u00fa\u00ae\u00ae\u00a9Aqtobe\u00aeHora de Aktobe\u00aeAQTT (Aktobe)\u00aeHora de verano de Aktobe\u00aeAQTST (Aktobe)\u00ae\u00a9Peru\u00aeHora de Per\u00fa\u00ae\u00aeHora de verano de Per\u00fa\u00ae\u00ae\u00a9Argentina\u00aeHora de Argentina\u00ae\u00aeHora de verano de Argentina\u00ae\u00ae\u00a9Qyzylorda\u00aeHora de Qyzylorda\u00ae\u00aeHora de verano de Qyzylorda\u00ae\u00ae\u00a9GMT\u00aeHora media de Greenwich\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00aeHora est\u00e1ndar del Atl\u00e1ntico\u00ae\u00aeHora de verano del Atl\u00e1ntico\u00ae\u00ae\u00a9Korea\u00aeHora est\u00e1ndar de Corea\u00ae\u00aeHora de verano de Corea\u00ae\u00ae\u00a9Ashkhabad\u00aeHora de Asjabad\u00ae\u00aeHora de verano de Asjabad\u00ae\u00ae\u00a9Australia_Western\u00aeHora est\u00e1ndar de Australia occidental\u00ae\u00aeHora de verano de Australia occidental\u00ae\u00ae\u00a9Venezuela\u00aeHora de Venezuela\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeHora de Paraguay\u00ae\u00aeHora de verano de Paraguay\u00ae\u00ae\u00a9Azerbaijan\u00aeHora de Azerbaiy\u00e1n\u00ae\u00aeHora de verano de Azerbaiy\u00e1n\u00ae\u00ae\u00a9Kizilorda\u00aeHora de Kizil Orda\u00ae\u00aeHora de verano de Kizil Orda\u00ae\u00ae\u00a9Yukon\u00aeHora est\u00e1ndar del Yuk\u00f3n\u00ae\u00aeHora de verano del Yuk\u00f3n\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHora de la Guayana Holandesa\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeHora de Erev\u00e1n\u00ae\u00aeHora de verano de Erev\u00e1n\u00ae\u00ae\u00a9Turkmenistan\u00aeHora de Turkmenist\u00e1n\u00ae\u00aeHora de verano de Turkmenist\u00e1n\u00ae\u00ae\u00a9Newfoundland\u00aeHora est\u00e1ndar de Terranova\u00ae\u00aeHora de verano de Terranova\u00ae\u00ae\u00a9Africa_Eastern\u00aeHora de \u00c1frica oriental\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aeHora de Pakist\u00e1n\u00ae\u00aeHora de verano de Pakist\u00e1n\u00ae\u00ae\u00a9Kuybyshev\u00aeHora de Kuibishev\u00ae\u00aeHora de verano de Kuibishev\u00ae\u00ae\u00a9Europe_Western\u00aeHora de Europa Occidental\u00ae\u00aeHora de verano de Europa Occidental\u00ae\u00ae\u00a9India\u00aeHora est\u00e1ndar de la India\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeHora est\u00e1ndar de Chamorro\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00aeHora de Groenlandia occidental\u00ae\u00aeHora de verano de Groenlandia occidental\u00ae\u00ae\u00a9Bolivia\u00aeHora de Bolivia\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeHora de Indonesia occidental\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeHora de Gal\u00e1pagos\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00aeHora de Surinam\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeHora de Malaya\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeHora est\u00e1ndar de Bering\u00ae\u00aeHora de verano de Bering\u00ae\u00ae\u00a9Georgia\u00aeHora de Georgia\u00ae\u00aeHora de verano de Georgia\u00ae\u00ae\u00a9Kyrgystan\u00aeHora de Kirguist\u00e1n\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeHora de Sri Lanka\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeHora de Filipinas\u00ae\u00aeHora de verano de Filipinas\u00ae\u00ae\u00a9Argentina_Western\u00aeHora de Argentina occidental\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeHora de Volgogrado\u00ae\u00aeHora de verano de Volgogrado\u00ae\u00ae\u00a9Hong_Kong\u00aeHora de Hong Kong\u00ae\u00aeHora de verano de Hong Kong\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeHora est\u00e1ndar de Kazajist\u00e1n occidental\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeHora est\u00e1ndar de Guam\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00aeHora del Amazonas\u00ae\u00aeHora de verano del Amazonas\u00ae\u00ae\u00a9Pierre_Miquelon\u00aeHora est\u00e1ndar de San Pedro y Miquel\u00f3n\u00ae\u00aeHora de verano de San Pedro y Miquel\u00f3n\u00ae\u00ae\u00a9Turkey\u00aeHora de Turqu\u00eda\u00ae\u00aeHora de verano de Turqu\u00eda\u00ae\u00ae\u00a9Nepal\u00aeHora de Nepal\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00aeHora de Macao\u00ae\u00aeHora de verano de Macao\u00ae\u00ae\u00a9Cuba\u00aeHora est\u00e1ndar de Cuba\u00ae\u00aeHora de verano de Cuba\u00ae\u00ae\u00a9Lord_Howe\u00aeHora est\u00e1ndar de Lord Howe\u00ae\u00aeHora de verano de Lord Howe\u00ae\u00ae\u00a9Mongolia\u00aeHora de Ul\u00e1n Bator\u00ae\u00aeHora de verano de Ul\u00e1n Bator\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeHora de Indonesia oriental\u00ae\u00ae\u00ae\u00ae\u00a9Myanmar\u00aeHora de Myanmar\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeHora est\u00e1ndar del Golfo\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeHora de Afganist\u00e1n\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeHora de Kashgar\u00ae\u00ae\u00ae\u00ae\u00a9Brasilia\u00aeHora de Brasilia\u00ae\u00aeHora de verano de Brasilia\u00ae\u00ae\u00a9America_Pacific\u00aeHora est\u00e1ndar del Pac\u00edfico\u00ae\u00aeHora de verano del Pac\u00edfico\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHora est\u00e1ndar de Haw\u00e1i-Aleutianas\u00ae\u00aeHora de verano de Haw\u00e1i-Aleutianas\u00ae\u00ae\u00a9Samarkand\u00aeHora de Samarcanda\u00aeSAMT (Samarcanda)\u00aeHora de verano de Samarcanda\u00aeSAMST (Samarcanda)\u00ae\u00a9Australia_Central\u00aeHora est\u00e1ndar de Australia central\u00ae\u00aeHora de verano de Australia central\u00ae\u00ae\u00a9Long_Shu\u00aeHora de Long-Shu\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeHora est\u00e1ndar de Israel\u00aeIST (Israel)\u00aeHora de verano de Israel\u00ae\u00ae\u00a9Yekaterinburg\u00aeHora de Yekaterinburgo\u00ae\u00aeHora de verano de Yekaterinburgo\u00ae\u00ae\u00a9Sverdlovsk\u00aeHora de Sverdlovsk\u00ae\u00aeHora de verano de Sverdlovsk\u00ae\u00ae\u00a9Africa_Western\u00aeHora de \u00c1frica occidental\u00ae\u00aeHora de verano de \u00c1frica occidental\u00ae\u00ae\u00a9Samoa\u00aeHora est\u00e1ndar de Samoa\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeHora de But\u00e1n\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeHora de Oral\u00ae\u00aeHora de verano de Oral\u00ae\u00ae\u00a9Alaska\u00aeHora est\u00e1ndar de Alaska\u00ae\u00aeHora de verano de Alaska\u00ae\u00ae\u00a9Urumqi\u00aeHora de \u00dcr\u00fcmqi\u00ae\u00ae\u00ae\u00ae\u00a9Colombia\u00aeHora de Colombia\u00ae\u00aeHora de verano de Colombia\u00ae\u00ae\u00a9Aktyubinsk\u00aeHora de Aktyubinsk\u00ae\u00aeHora de verano de Aktyubinsk\u00ae\u00ae\u00a9North_Mariana\u00aeHora de las Islas Marianas del Norte\u00ae\u00ae\u00ae\u00ae\u00a9Tajikistan\u00aeHora de Tayikist\u00e1n\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aeHora de Choibalsan\u00ae\u00aeHora de verano de Choibalsan\u00ae\u00ae\u00a9Azores\u00aeHora de las Azores\u00ae\u00aeHora de verano de las Azores\u00ae\u00ae\u00a9Aqtau\u00aeHora de Aktau\u00aeAQTT (Aktau)\u00aeHora de verano de Aktau\u00aeAQTST (Aktau)\u00ae\u00a9Baku\u00aeHora de Bak\u00fa\u00ae\u00aeHora de verano de Bak\u00fa\u00ae\u00ae\u00a9Australia_Eastern\u00aeHora est\u00e1ndar de Australia oriental\u00ae\u00aeHora de verano de Australia oriental\u00ae\u00ae\u00a9Noronha\u00aeHora de Fernando de Noronha\u00ae\u00aeHora de verano de Fernando de Noronha\u00ae\u00ae\u00a9Greenland_Central\u00aeHora de Groenlandia central\u00ae\u00aeHora de verano de Groenlandia central\u00ae\u00ae\u00a9Japan\u00aeHora est\u00e1ndar de Jap\u00f3n\u00ae\u00aeHora de verano de Jap\u00f3n\u00ae\u00ae\u00a9Borneo\u00aeHora de Borneo\u00ae\u00aeHora de verano de Borneo\u00ae\u00ae\u00a9
 territories.TL=Timor Oriental
-territories.TK=Islas Tokelau
+territories.TK=Tokelau
 territories.TJ=Tayikist\u00e1n
 territories.TH=Tailandia
 territories.TG=Togo
@@ -389,10 +417,13 @@ territories.GN=Guinea
 territories.GM=Gambia
 territories.GL=Groenlandia
 territories.SV=El Salvador
+territories.062=Asia centromeridional
 territories.ST=Santo Tom\u00e9 y Pr\u00edncipe
 territories.GI=Gibraltar
+territories.061=Polinesia
 territories.GH=Ghana
-territories.SR=Suriname
+territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Guayana Francesa
 territories.GE=Georgia
 territories.SO=Somalia
@@ -414,31 +445,41 @@ territories.SB=Islas Salom\u00f3n
 territories.SA=Arabia Saud\u00ed
 territories.FR=Francia
 territories.FO=Islas Feroe
+territories.057=Micronesia
 territories.FM=Micronesia
 territories.RW=Ruanda
-territories.FK=Islas Falkland (Malvinas)
+territories.054=Melanesia
+territories.FK=Islas Malvinas
+territories.053=Australia y Nueva Zelanda
 territories.RU=Rusia
 territories.FJ=Fiyi
 territories.FI=Finlandia
+territories.RS=Serbia
 territories.RO=Ruman\u00eda
-territories.RE=R\u00e9union
+territories.RE=Reuni\u00f3n
 territories.ET=Etiop\u00eda
 territories.ES=Espa\u00f1a
 territories.ER=Eritrea
+territories.QU=Uni\u00f3n Europea
 territories.EH=S\u00e1hara Occidental
 territories.EG=Egipto
 territories.EE=Estonia
+territories.QO=Territorios alejados de Ocean\u00eda
 territories.EC=Ecuador
 territories.DZ=Argelia
 territories.QA=Qatar
+territories.039=Europa meridional
 territories.DO=Rep\u00fablica Dominicana
 territories.PY=Paraguay
 territories.DM=Dominica
+territories.035=Sudeste asi\u00e1tico
 territories.PW=Palau
+territories.034=Asia meridional
 territories.DK=Dinamarca
 territories.DJ=Yibuti
 territories.PT=Portugal
-territories.PS=Territorios Palestinos
+territories.PS=Palestina
+territories.030=Asia oriental
 territories.PR=Puerto Rico
 territories.DE=Alemania
 territories.PN=Pitcairn
@@ -451,25 +492,28 @@ territories.PF=Polinesia Francesa
 territories.CZ=Rep\u00fablica Checa
 territories.PE=Per\u00fa
 territories.CY=Chipre
-territories.CX=Isla Navidad
+territories.CX=Isla Christmas
 territories.CV=Cabo Verde
 territories.PA=Panam\u00e1
 territories.CU=Cuba
 territories.CS=Serbia y Montenegro
 territories.CR=Costa Rica
+territories.029=Caribe
 territories.CO=Colombia
 territories.CN=China
 territories.CM=Camer\u00fan
 territories.CL=Chile
 territories.CK=Islas Cook
+territories.021=Norteam\u00e9rica
 territories.CI=Costa de Marfil
 territories.CH=Suiza
 territories.CG=Congo
 territories.CF=Rep\u00fablica Centroafricana
 territories.CD=Rep\u00fablica Democr\u00e1tica del Congo
-territories.CC=Islas Cocos (Keeling)
+territories.CC=Islas Cocos
 territories.OM=Om\u00e1n
 territories.CA=Canad\u00e1
+territories.419=Latinoam\u00e9rica y el Caribe
 territories.BZ=Belice
 territories.BY=Bielorrusia
 territories.BW=Botsuana
@@ -477,30 +521,41 @@ territories.BV=Isla Bouvet
 territories.BT=But\u00e1n
 territories.BS=Bahamas
 territories.BR=Brasil
+territories.019=Am\u00e9ricas
+territories.018=\u00c1frica meridional
 territories.NZ=Nueva Zelanda
+territories.017=\u00c1frica central
 territories.BO=Bolivia
 territories.BN=Brun\u00e9i
+territories.015=\u00c1frica septentrional
 territories.BM=Bermudas
+territories.014=\u00c1frica oriental
+territories.BL=San Bartolom\u00e9
+territories.013=Centroam\u00e9rica
 territories.NU=Isla Niue
 territories.BJ=Ben\u00edn
+territories.011=\u00c1frica occidental
 territories.BI=Burundi
-territories.BH=Bahr\u00e1in
+territories.172=Comunidad de Estados Independientes
+territories.BH=Bahr\u00e9in
 territories.NR=Nauru
 territories.BG=Bulgaria
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=B\u00e9lgica
+territories.ZZ=Regi\u00f3n desconocida o no v\u00e1lida
 territories.NO=Noruega
 territories.BD=Bangladesh
 territories.BB=Barbados
 territories.ZW=Zimbabue
 territories.NL=Pa\u00edses Bajos
-territories.BA=Bosnia-Herzegovina
+territories.BA=Bosnia y Herzegovina
 territories.NI=Nicaragua
 territories.NG=Nigeria
 territories.NF=Isla Norfolk
 territories.AZ=Azerbaiy\u00e1n
 territories.NE=N\u00edger
+territories.AX=Islas Aland
 territories.NC=Nueva Caledonia
 territories.AW=Aruba
 territories.ZM=Zambia
@@ -510,53 +565,67 @@ territories.AT=Austria
 territories.AS=Samoa Americana
 territories.AR=Argentina
 territories.AQ=Ant\u00e1rtida
+territories.009=Ocean\u00eda
 territories.MZ=Mozambique
 territories.AO=Angola
 territories.MY=Malasia
 territories.AN=Antillas Neerlandesas
 territories.MX=M\u00e9xico
 territories.AM=Armenia
-territories.MW=Malawi
+territories.005=Suram\u00e9rica
+territories.MW=Malaui
 territories.AL=Albania
 territories.MV=Maldivas
+territories.003=Am\u00e9rica del Norte
 territories.ZA=Sud\u00e1frica
 territories.MU=Mauricio
+territories.002=\u00c1frica
 territories.MT=Malta
 territories.AI=Anguila
+territories.001=Mundo
 territories.MS=Montserrat
 territories.MR=Mauritania
 territories.AG=Antigua y Barbuda
-territories.AF=Afganist\u00e1n
 territories.MQ=Martinica
-territories.AE=Emiratos \u00c1rabes Unidos
+territories.AF=Afganist\u00e1n
 territories.MP=Islas Marianas del Norte
+territories.AE=Emiratos \u00c1rabes Unidos
+territories.MO=Macao
 territories.AD=Andorra
-territories.MO=Macao, Regi\u00f3n administrativa especial de China
 territories.MN=Mongolia
 territories.MM=Myanmar
-territories.ML=Mal\u00ed
+territories.ML=Mali
 territories.MK=Macedonia
 territories.YT=Mayotte
 territories.MH=Islas Marshall
 territories.MG=Madagascar
-territories.MD=Moldova
+territories.MF=San Mart\u00edn
+territories.ME=Montenegro
+territories.MD=Moldavia
 territories.MC=M\u00f3naco
 territories.MA=Marruecos
 territories.YE=Yemen
 territories.LY=Libia
 territories.LV=Letonia
+territories.155=Europa occidental
 territories.LU=Luxemburgo
+territories.154=Europa septentrional
 territories.LT=Lituania
-territories.LS=Lesotho
+territories.LS=Lesoto
 territories.LR=Liberia
+territories.151=Europa oriental
+territories.150=Europa
 territories.LK=Sri Lanka
 territories.LI=Liechtenstein
-territories.LC=Saint Lucia
+territories.LC=Santa Luc\u00eda
 territories.LB=L\u00edbano
 territories.LA=Laos
-territories.KZ=Kazajst\u00e1n
+territories.KZ=Kazajist\u00e1n
 territories.KY=Islas Caim\u00e1n
 territories.KW=Kuwait
+territories.145=Asia occidental
+territories.143=Asia central
+territories.142=Asia
 territories.KR=Corea del Sur
 territories.KP=Corea del Norte
 territories.KN=San Crist\u00f3bal y Nieves
@@ -564,13 +633,14 @@ territories.KM=Comoras
 territories.KI=Kiribati
 territories.WS=Samoa
 territories.KH=Camboya
-territories.KG=Kirguizist\u00e1n
+territories.KG=Kirguist\u00e1n
 territories.KE=Kenia
 territories.WF=Wallis y Futuna
 territories.JP=Jap\u00f3n
 territories.JO=Jordania
 territories.JM=Jamaica
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=Islas V\u00edrgenes de los Estados Unidos
 territories.VG=Islas V\u00edrgenes Brit\u00e1nicas
@@ -582,9 +652,10 @@ territories.IS=Islandia
 territories.IR=Ir\u00e1n
 territories.IQ=Iraq
 territories.UZ=Uzbekist\u00e1n
-territories.IO=Territorios Brit\u00e1nico del Oc\u00e9ano \u00cdndico
+territories.IO=Territorio Brit\u00e1nico del Oc\u00e9ano \u00cdndico
 territories.UY=Uruguay
 territories.IN=India
+territories.IM=Isla de Man
 territories.IL=Israel
 territories.US=Estados Unidos
 territories.IE=Irlanda
@@ -600,62 +671,68 @@ territories.HN=Honduras
 territories.HM=Islas Heard y McDonald
 territories.TW=Taiw\u00e1n
 territories.TV=Tuvalu
-territories.HK=Hong-Kong, Regi\u00f3n administrativa especial de China
-territories.TT=Trinidad y Tabago
+territories.HK=Hong Kong
+territories.TT=Trinidad y Tobago
 territories.TR=Turqu\u00eda
 territories.TO=Tonga
 territories.TN=T\u00fanez
 territories.TM=Turkmenist\u00e1n
-languages.akk=acadio
 languages.gwi=kutchin
+languages.akk=acadio
 languages.eka=ekajuk
+languages.ijo=ijo
 languages.xh=xhosa
 languages.sux=sumerio
 languages.sus=susu
 languages.mis=lenguas varias
 languages.loz=lozi
-languages.tog=tonga (Niasa)
+languages.tog=tonga del Nyasa
 languages.pon=pohnpeiano
 languages.min=minangkabau
 languages.suk=sukuma
 languages.wo=uolof
-languages.kut=kutenai
 languages.lol=mongo
+languages.kut=kutenai
 languages.mic=micmac
 languages.wa=val\u00f3n
 languages.kum=kumyk
 languages.zap=zapoteco
-languages.cus=cusitas (otras)
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=lengua cusita
 languages.jbo=lojban
-languages.vo=volapuk
+languages.doi=dogri
+languages.zza=zazaki
+languages.vo=volap\u00fck
 languages.oto=lenguas otomanas
 languages.vi=vietnamita
+languages.vai=vai
 languages.rar=rarotongano
 languages.ve=venda
 languages.rap=rapanui
 languages.raj=rajasthani
-languages.ota=turco otomano (1500-1928)
+languages.ota=turco otomano
 languages.nzi=nzima
 languages.nap=napolitano
 languages.uz=uzbeko
 languages.uga=ugar\u00edtico
 languages.tmh=tamashek
-languages.nai=indias norteamericanas (otras)
+languages.nai=lengua india norteamericana
 languages.nah=n\u00e1huatl
 languages.ur=urdu
 languages.fat=fanti
 languages.uk=ucraniano
-languages.egy=egipcio (antiguo)
-languages.ug=uigur
+languages.egy=egipcio antiguo
+languages.zxx=sin contenido ling\u00fc\u00edstico
+languages.ug=uiguro
 languages.fan=fang
-languages.ssa=nilosaharianas (otras)
-languages.bat=b\u00e1lticas (otras)
-languages.mga=irland\u00e9s medieval (900-1200)
+languages.ssa=lengua nilo-sahariana
+languages.mga=irland\u00e9s medieval
+languages.bat=lengua b\u00e1ltica
 languages.nyo=nyoro
 languages.bas=basa
 languages.nyn=nyankole
 languages.nym=nyamwezi
+languages.gsw=alem\u00e1n de Suiza
 languages.hmn=hmong
 languages.ban=balin\u00e9s
 languages.osa=osage
@@ -665,23 +742,26 @@ languages.bai=lenguas bamileke
 languages.tw=twi
 languages.srr=serer
 languages.tli=tlingit
-languages.tt=tatar
+languages.tlh=klingon
+languages.tt=t\u00e1rtaro
 languages.ts=tsonga
+languages.srn=sranan tongo
 languages.bad=banda
 languages.tr=turco
-languages.to=tonga (Islas Tonga)
-languages.tn=setchwana
+languages.to=tongano
+languages.tn=sechuan\u00e9s
 languages.tl=tagalo
-languages.tk=turkmeno
-languages.ti=tigrinya
+languages.tk=turcomano
+languages.ti=tigri\u00f1a
 languages.th=tailand\u00e9s
 languages.kru=kurukh
 languages.tg=tayiko
 languages.byn=blin
 languages.te=telugu
-languages.csb=casubio
 languages.kro=kru
+languages.csb=casubio
 languages.ta=tamil
+languages.krl=carelio
 languages.tkl=tokelauano
 languages.efi=efik
 languages.sw=swahili
@@ -693,19 +773,19 @@ languages.ss=siswati
 languages.sr=serbio
 languages.sq=alban\u00e9s
 languages.men=mende
-languages.crp=criollas y pidgins (otras)
+languages.crp=lengua criolla o pidgin
 languages.so=somal\u00ed
 languages.afh=afrihili
 languages.sn=shona
 languages.sm=samoano
 languages.sl=esloveno
-languages.grc=griego antiguo (hasta el 1453)
+languages.grc=griego antiguo
 languages.sk=eslovaco
 languages.grb=grebo
-languages.si=singal\u00e9s
-languages.sh=serbo-croata
-languages.afa=afroasi\u00e1ticas (otras)
+languages.si=cingal\u00e9s
+languages.sh=serbocroata
 languages.crh=t\u00e1rtaro de Crimea
+languages.afa=lengua afroasi\u00e1tica
 languages.sg=sango
 languages.se=sami septentrional
 languages.sd=sindhi
@@ -713,58 +793,67 @@ languages.udm=udmurt
 languages.sc=sardo
 languages.sa=s\u00e1nscrito
 languages.rw=kinyarwanda
+languages.nwc=newari cl\u00e1sico
 languages.ru=ruso
 languages.mdr=mandar
 languages.ro=rumano
 languages.rn=kiroundi
-languages.rm=reto-romance
+languages.rm=retorrom\u00e1nico
+languages.fr_CH=franc\u00e9s de Suiza
 languages.mdf=moksha
+languages.tiv=tiv
+languages.fr_CA=franc\u00e9s canadiense
 languages.ady=adigeo
 languages.zun=zuni
 languages.kpe=kpelle
 languages.qu=quechua
 languages.tig=tigr\u00e9
 languages.son=songhai
-languages.cpp=criollas y pidgins, basadas en el portugu\u00e9s (otras)
+languages.cpp=lengua criolla o pidgin basada en el portugu\u00e9s
+languages.rup=arrumano
 languages.sog=sogdiano
 languages.ada=adangme
-languages.hit=hitita
 languages.kos=kosraeano
-languages.cpe=criollas y pidgins, basadas en el ingl\u00e9s (otras)
+languages.hit=hitita
+languages.cpf=lengua criolla o pidgin basada en el franc\u00e9s
+languages.cpe=lengua criolla o pidgin basada en el ingl\u00e9s
 languages.him=himachali
-languages.got=g\u00f3tico
-languages.hil=hiligaynon
 languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=g\u00f3tico
 languages.gor=gorontalo
 languages.gon=gondi
 languages.din=dinka
 languages.nub=lenguas nubias
 languages.pt=portugu\u00e9s
-languages.ps=pashto
+languages.ps=past\u00fan
 languages.fur=friulano
 languages.phn=fenicio
-languages.goh=alem\u00e1n de la alta edad antigua (750-1050 aprox.)
+languages.de_CH=alem\u00e1n est\u00e1ndar (Suiza)
+languages.goh=alem\u00e1n de la alta edad antigua
 languages.snk=sonink\u00e9
 languages.cop=copto
 languages.yap=yap\u00e9s
 languages.ach=acoli
-languages.phi=filipinas (otras)
+languages.yao=yao
+languages.phi=lengua filipina
 languages.pl=polaco
 languages.ace=acehn\u00e9s
 languages.pi=pali
+languages.pt_PT=portugu\u00e9s de Portugal
 languages.pa=punjab\u00ed
 languages.bug=bugin\u00e9s
 languages.iba=iban
-languages.sms=sami sklot
-languages.bua=buriat
+languages.sms=sami skolt
+languages.bua=buriato
 languages.mas=masai
 languages.smn=sami inari
 languages.os=os\u00e9tico
-languages.map=austronesias (otras)
+languages.map=lengua austronesia
 languages.or=oriya
 languages.man=mandingo
 languages.smj=sami lule
-languages.smi=lenguas sami (otras)
+languages.smi=lengua sami
 languages.mak=macasar
 languages.om=oromo
 languages.mai=maithili
@@ -772,23 +861,25 @@ languages.oj=ojibwa
 languages.mag=magahi
 languages.mad=madur\u00e9s
 languages.sma=sami meridional
-languages.oc=occitano (despu\u00e9s del 1500)
+languages.oc=occitano
 languages.nso=sotho septentrional
-languages.btk=batak (Indonesia)
+languages.btk=batak
 languages.myv=erzya
+languages.es_ES=espa\u00f1ol de Espa\u00f1a
+languages.de_AT=alem\u00e1n austr\u00edaco
 languages.dgr=dogrib
 languages.ny=nyanja
 languages.myn=maya
 languages.nv=navajo
 languages.kmb=kimbundu
 languages.nr=ndebele meridional
-languages.gmh=alem\u00e1n de la alta edad media (1050-1500 aprox.)
+languages.gmh=alem\u00e1n de la alta edad media
 languages.no=noruego
-languages.nn=nynorsk noruego
+languages.nn=noruego nynorsk
 languages.nl=holand\u00e9s
 languages.root=ra\u00edz
 languages.ng=ndonga
-languages.sla=eslavas (otras)
+languages.sla=lengua eslava
 languages.ne=nepal\u00ed
 languages.nd=ndebele septentrional
 languages.cmc=lenguas ch\u00e1micas
@@ -800,26 +891,30 @@ languages.tem=temne
 languages.my=birmano
 languages.lez=lezgiano
 languages.mt=malt\u00e9s
-languages.peo=persa antiguo (600-400 a.C. aprox.)
+languages.frs=fris\u00f3n oriental
+languages.peo=persa antiguo
 languages.ms=malayo
+languages.frr=fris\u00f3n septentrional
 languages.mr=marathi
-languages.fro=franc\u00e9s antiguo (842-1400 aprox.)
+languages.fro=franc\u00e9s antiguo
 languages.mo=moldavo
 languages.mn=mongol
-languages.frm=franc\u00e9s medieval (1400-1600 aprox.)
+languages.frm=franc\u00e9s medieval
 languages.ml=malayalam
 languages.jrb=judeo-\u00e1rabe
 languages.mk=macedonio
 languages.mi=maor\u00ed
 languages.mh=marshal\u00e9s
 languages.mg=malgache
+languages.nqo=n\u2019ko
 languages.mwr=marwari
 languages.bra=braj
+languages.mwl=mirand\u00e9s
+languages.den=slave
 languages.lv=let\u00f3n
-languages.den=slave (atabasca)
 languages.lu=luba-katanga
-languages.lt=lituano
 languages.del=delaware
+languages.lt=lituano
 languages.lo=laosiano
 languages.ln=lingala
 languages.li=limburgu\u00e9s
@@ -829,8 +924,8 @@ languages.lb=luxemburgu\u00e9s
 languages.la=lat\u00edn
 languages.jpr=judeo-persa
 languages.vot=v\u00f3tico
-languages.sit=sino-tibetanas (otras)
-languages.ky=kirghiz
+languages.sit=lengua sino-tibetana
+languages.ky=kirgu\u00eds
 languages.kw=c\u00f3rnico
 languages.kv=komi
 languages.ku=kurdo
@@ -841,6 +936,7 @@ languages.awa=avadhi
 languages.ko=coreano
 languages.kn=canar\u00e9s
 languages.km=jemer
+languages.en_GB=ingl\u00e9s brit\u00e1nico
 languages.kl=groenland\u00e9s
 languages.kk=kazajo
 languages.rom=roman\u00ed
@@ -859,50 +955,51 @@ languages.jv=javan\u00e9s
 languages.gil=gilbert\u00e9s
 languages.znd=zande
 languages.shn=shan
+languages.fon=fon
 languages.xal=kalmyk
 languages.aus=lenguas australianas
 languages.kho=kotan\u00e9s
 languages.ja=japon\u00e9s
-languages.khi=khoisan (otras)
-languages.pau=palavano
+languages.khi=lengua joisana
+languages.pau=palauano
 languages.chy=cheyene
-languages.tai=tai (otras)
+languages.tai=lengua tai
 languages.iu=inuktitut
 languages.pap=papiamento
 languages.it=italiano
 languages.sgn=lenguajes de signos
-languages.kha=khasi
 languages.is=island\u00e9s
+languages.kha=khasi
 languages.chr=cherokee
 languages.pam=pampanga
 languages.pal=pahlavi
 languages.chp=chipewyan
-languages.cho=choctaw
 languages.io=ido
+languages.cho=choctaw
 languages.chn=jerga chinuk
 languages.chm=mar\u00ed
 languages.tyv=tuviniano
-languages.bnt=bant\u00faes (otras)
+languages.bnt=bant\u00fa
 languages.pag=pangasin\u00e1n
+languages.ik=inupiaq
 languages.chk=truk\u00e9s
-languages.ik=inupiak
-languages.haw=hawaiano
 languages.ii=sichuan yi
+languages.haw=hawaiano
 languages.lam=lamba
-languages.chg=chagat\u00e1i
 languages.ig=igbo
-languages.sga=irland\u00e9s antiguo (hasta el 900)
-languages.paa=pap\u00faes (otras)
+languages.chg=chagat\u00e1i
+languages.sga=irland\u00e9s antiguo
+languages.paa=lengua pap\u00fa
 languages.ie=interlingue
 languages.id=indonesio
 languages.lah=lahnda
-languages.chb=chibcha
 languages.day=dayak
+languages.chb=chibcha
 languages.ia=interlingua
 languages.lad=ladino
-languages.dar=dargva
-languages.hai=haida
 languages.hz=herero
+languages.hai=haida
+languages.dar=dargva
 languages.hy=armenio
 languages.ath=lenguas atabascas
 languages.hu=h\u00fangaro
@@ -914,61 +1011,73 @@ languages.hi=hindi
 languages.dyu=diula
 languages.he=hebreo
 languages.ast=asturiano
+languages.kfo=koro
 languages.ha=hausa
 languages.wen=lenguas sorbias
 languages.gv=ga\u00e9lico man\u00e9s
 languages.gu=gujarati
-languages.sem=sem\u00edticas (otras)
+languages.sem=lengua sem\u00edtica
 languages.sel=selkup
 languages.iro=lenguas iroquesas
 languages.gn=guaran\u00ed
 languages.gl=gallego
+languages.en_CA=ingl\u00e9s canadiense
 languages.arw=arahuaco
-languages.gd=ga\u00e9lico escoc\u00e9s
-languages.art=artificiales (otras)
 languages.gez=geez
-languages.ira=iranias (otras)
+languages.art=lengua artificial
+languages.gd=ga\u00e9lico escoc\u00e9s
+languages.ira=lengua irania
 languages.ga=irland\u00e9s
 languages.arp=arapaho
 languages.arn=araucano
-languages.fy=fris\u00f3n
+languages.fy=fris\u00f3n occidental
 languages.bla=siksika
-languages.gem=germ\u00e1nicas (otras)
+languages.gem=lengua germ\u00e1nica
 languages.ypk=lenguas yupik
-languages.fr=franc\u00e9s
 languages.arc=arameo
+languages.fr=franc\u00e9s
 languages.fo=fero\u00e9s
-languages.cel=celtas (otras)
-languages.fj=fidji
+languages.cel=lengua celta
+languages.fj=fidjiano
 languages.fi=finland\u00e9s
 languages.ff=fula
 languages.tvl=tuvaluano
 languages.ceb=cebuano
-languages.fa=farsi
+languages.fa=persa
+languages.en_AU=ingl\u00e9s australiano
+languages.zh_Hans=chino simplificado
+languages.zh_Hant=chino tradicional
 languages.eu=vasco
 languages.sco=escoc\u00e9s
 languages.et=estonio
+languages.scn=siciliano
 languages.es=espa\u00f1ol
 languages.eo=esperanto
 languages.en=ingl\u00e9s
 languages.el=griego
-languages.tut=altaicas (otras)
+languages.tut=lengua altaica
 languages.niu=niueano
 languages.tup=lenguas tup\u00ed
 languages.ee=ewe
 languages.tum=tumbuka
+languages.nl_BE=flamenco
+languages.es_419=espa\u00f1ol (Latinoam\u00e9rica)
 languages.mos=mossi
-languages.dz=bhutan\u00ed
-languages.nic=n\u00edger-kordofanianas (otras)
-languages.dv=divehi
-languages.fiu=finougrias (otras)
+languages.dz=butan\u00e9s
+languages.kcg=tyap
+languages.nic=lengua n\u00edger-cordofana
 languages.lus=lushai
+languages.fiu=lengua fino\u00fagria
+languages.dv=divehi
 languages.nia=nias
 languages.moh=mohawk
+languages.luo=luo
 languages.lun=lunda
 languages.apa=lenguas apache
+languages.fil=filipino
 languages.lui=luise\u00f1o
 languages.hup=hupa
+languages.cch=atsam
 languages.bin=bini
 languages.de=alem\u00e1n
 languages.lua=luba-lulua
@@ -977,15 +1086,15 @@ languages.was=washo
 languages.und=indeterminada
 languages.war=waray
 languages.da=dan\u00e9s
-languages.dum=neerland\u00e9s medieval (1050-1350 aprox.)
+languages.dum=neerland\u00e9s medieval
 languages.wal=walamo
 languages.mno=lenguas manobo
 languages.wak=lenguas wakasha
 languages.sat=santali
 languages.cy=gal\u00e9s
 languages.sas=sasak
-languages.cv=chuvash
 languages.kbd=kabardiano
+languages.cv=chuvash
 languages.cu=eslavo eclesi\u00e1stico
 languages.mni=manipuri
 languages.cs=checo
@@ -994,77 +1103,89 @@ languages.cr=cree
 languages.sal=lenguas salish
 languages.dua=duala
 languages.co=corso
-languages.sai=indias sudamericanas (otras)
+languages.sai=lengua india sudamericana
 languages.mnc=manch\u00fa
 languages.sah=yakut
-languages.gba=gbaya
-languages.inh=ingush
 languages.kaw=kawi
+languages.inh=ingush
+languages.gba=gbaya
 languages.sad=sandawe
 languages.ch=chamorro
+languages.ine=lengua indoeuropea
 languages.bho=bhojpuri
-languages.ine=indoeuropeas (otras)
-languages.enm=ingl\u00e9s medieval (1100-1500)
-languages.ce=checheno
-languages.inc=\u00edndicas (otras)
+languages.enm=ingl\u00e9s medieval
 languages.kar=karen
+languages.inc=lengua \u00edndica
+languages.ce=checheno
 languages.gay=gayo
 languages.ca=catal\u00e1n
 languages.umb=umbundu
 languages.syr=siriaco
 languages.kam=kamba
+languages.anp=angika
 languages.tsi=tsimshiano
-languages.ang=ingl\u00e9s antiguo (450-1100 aprox.)
-languages.cau=cauc\u00e1sicas (otras)
+languages.kaj=jju
+languages.ang=ingl\u00e9s antiguo
 languages.kac=kachin
+languages.cau=lengua cauc\u00e1sica
 languages.kab=cabila
-languages.bs=bosnio
 languages.kaa=karakalpako
-languages.br=bret\u00f3n
+languages.bs=bosnio
 languages.car=caribe
+languages.br=bret\u00f3n
 languages.bo=tibetano
 languages.bn=bengal\u00ed
 languages.bm=bambara
 languages.gaa=ga
+languages.cai=lengua india centroamericana
 languages.bi=bislama
-languages.cai=indias centroamericanas (otras)
 languages.bh=bihari
 languages.bg=b\u00falgaro
 languages.be=bielorruso
+languages.pt_BR=portugu\u00e9s brasile\u00f1o
 languages.cad=caddo
 languages.ba=bashkir
 languages.zu=zul\u00fa
 languages.zen=zenaga
-languages.pro=provenzal antiguo (hasta el 1500)
+languages.pro=provenzal antiguo
 languages.hsb=sorbio superior
 languages.az=azer\u00ed
 languages.ay=aymara
 languages.av=avar
 languages.as=asam\u00e9s
-languages.ar=\u00e1rabe
 languages.dsb=sorbio inferior
-languages.elx=elamita
+languages.ar=\u00e1rabe
 languages.ilo=ilocano
+languages.elx=elamita
 languages.zh=chino
 languages.an=aragon\u00e9s
-languages.pra=lenguas prakrit
+languages.pra=lenguas pr\u00e1critas
 languages.am=am\u00e1rico
 languages.new=newari
 languages.ak=akan
 languages.za=zhuang
+languages.en_US=Ingl\u00e9s (Estados Unidos)
 languages.af=afrikaans
 languages.ae=av\u00e9stico
-languages.ab=abkhaziano
+languages.alt=alt\u00e1i meridional
+languages.ab=abjasio
 languages.aa=afar
 languages.yo=yoruba
 languages.alg=lenguas algonquinas
 languages.ale=aleutiano
-languages.mkh=mon-jemer (otras)
-languages.yi=yidish
-languages.dra=drav\u00eddicas (otras)
-languages.ber=bereberes (otras)
+languages.mkh=lengua mon-jemer
+languages.yi=y\u00eddish
+languages.dra=lengua drav\u00eddica
+languages.ber=bereber
 languages.nds=bajo alem\u00e1n
 languages.bem=bemba
 languages.bej=beja
 languages.tpi=tok pisin
-variants.REVISED=Revisado
+variants.POSIX=Ordenador
+variants.1901=Ortograf\u00eda alemana tradicional
+variants.MONOTON=Monot\u00f3nico
+variants.1996=Ortograf\u00eda alemana de 1996
+variants.POLYTON=Polit\u00f3nico
+variants.FONIPA=alfabeto fon\u00e9tico internacional IPA
+variants.AREVELA=Armenio oriental
+variants.REVISED=Ortograf\u00eda revisada
index 9ab78a9ffbc6657e02da1fdb61b62b9d34301030..add31608f2a97993fecce2030f29c45234a9458e 100644 (file)
@@ -5,10 +5,13 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currenciesDisplayName.TRY=nueva lira turca
+currenciesDisplayName.TRL=lira turca
 currenciesDisplayName.ARS=Peso Argentino
-currenciesDisplayName.USD=D\u00f3lar Americano
 currenciesSymbol.ARS=$
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
+ampms=a.m.\u00aep.m.\u00ae
 longTimeFormat=H:mm:ss z
-fullTimeFormat=HH'h'''mm z
+fullTimeFormat=HH'h'''mm:ss z
+territories.HK=Hong Kong
+territories.MO=Macao
+variants.REVISED=Ortograf\u00eda revisada
index 0498645fef065044cc9fffd5023550df26a539bb..deec361ff561721361ede29c1fce5279faac4d6f 100644 (file)
@@ -7,7 +7,6 @@
 
 currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
 currenciesDisplayName.CLP=Peso Chileno
-currenciesDisplayName.USD=D\u00f3lar Americano
 currenciesSymbol.CLP=$
 shortDateFormat=dd-MM-yy
 mediumDateFormat=dd-MM-yyyy
@@ -15,3 +14,13 @@ shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
 longTimeFormat=H:mm:ss z
 fullTimeFormat=HH:mm:ss z
+territories.TZ=Tanzan\u00eda
+territories.SA=Arabia Saudita
+territories.005=Sudam\u00e9rica
+territories.AZ=Azerbay\u00e1n
+territories.RO=Rumania
+territories.AN=Antillas Holandesas
+territories.PS=Territorio Palestino
+territories.EH=Sahara Occidental
+languages.arn=mapudungun
+languages.ira=iran\u00edes
index 1178909b97f6eeb27708ac4e43d22783f6da57ac..3c36240b86397b3cb54b8d269f28780d8df5273c 100644 (file)
@@ -6,8 +6,8 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 currenciesDisplayName.COP=Peso de Colombia
-currenciesDisplayName.USD=D\u00f3lar Americano
 currenciesSymbol.COP=$
+shortDateFormat=d/MM/yy
 mediumDateFormat=d/MM/yyyy
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
index 04eb63de0f85161da6f5baee109f0e33ab90fabc..59f95eae15bd6b988348974e1ea1c1e58a870fb4 100644 (file)
@@ -5,9 +5,4 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+currenciesSymbol.CRC=\u20a1
index 0214a025f6c2db783438e78ae33b954fed91a69d..447c8695046125516b43841ef4eb425e7b9ccdce 100644 (file)
@@ -7,9 +7,3 @@
 
 decimalSeparator=.
 groupingSeparator=,
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
index df3b509f4dda6732f1e5e2faad7594b86f261a31..f4e74f6d93f25d592f6364050a150a67161701e4 100644 (file)
@@ -5,12 +5,8 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-decimalSeparator=.
-groupingSeparator=,
 currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
 currenciesSymbol.USD=$
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
 longTimeFormat=H:mm:ss z
index 52dd8013a239cf041cb7b3c72adcea02cc146730..5c06230272178eb53f0f7ef546d2b3f2371d5e18 100644 (file)
@@ -6,7 +6,17 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
+currenciesDisplayName.BEF=franco belga
+currenciesDisplayName.AUD=d\u00f3lar australiano
+currenciesDisplayName.ARS=peso argentino
+currenciesDisplayName.NLG=flor\u00edn neerland\u00e9s
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
+fullTimeFormat=HH'H'mm''ss\" v
+territories.KG=Kirguist\u00e1n
+territories.VA=Vaticano
+languages.ast=bable
+languages.chg=chagatai
+languages.eu=euskera
+languages.rom=cal\u00f3
+languages.fi=finland\u00e9s
index 68a375d4d2386a502879e05bbb58502a78433e51..5c7974ca57928cca66ff9c1fed051f88319467f8 100644 (file)
@@ -7,8 +7,5 @@
 
 decimalSeparator=.
 groupingSeparator=,
+shortDateFormat=d/MM/yy
 mediumDateFormat=d/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
index c2dd4895d582aac09cf2d1342752d1f3885c76ae..b8a8fca94a22a1fa4a25669dcd2e40ec0c8be789 100644 (file)
@@ -7,11 +7,5 @@
 
 decimalSeparator=.
 groupingSeparator=,
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-longDateFormat=dd' de 'MMMM' de 'yyyy
-fullDateFormat=EEEE dd' de 'MMMM' de 'yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+longDateFormat=dd 'de' MMMM 'de' yyyy
+fullDateFormat=EEEE dd 'de' MMMM 'de' yyyy
index 50f4220d3780106088040a07b283124e8c2850bf..d8af60b3039695b653f9a8f572f2dc57744e80f5 100644 (file)
@@ -7,12 +7,4 @@
 
 decimalSeparator=.
 groupingSeparator=,
-currenciesDisplayName.MXN=MXN
-currenciesDisplayName.USD=D\u00f3lar Americano
 currenciesSymbol.MXN=$
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
index 5bba6ada284049a2596950d7a7a5190bfdeab3e7..b91435c2a18469ba290e7cb6a34f010f2b1d816e 100644 (file)
@@ -7,9 +7,3 @@
 
 decimalSeparator=.
 groupingSeparator=,
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
index 89e29823447532677e2dc4cce2f74e86465a17ec..591efd1be95b303c5f6ed6686101f75dc28201f7 100644 (file)
@@ -9,7 +9,3 @@ decimalSeparator=.
 groupingSeparator=,
 shortDateFormat=MM/dd/yy
 mediumDateFormat=MM/dd/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
index 1cfe9b7ccaf50e702b66e2ab844f2a188f9fdfa0..543d5ae1df9aceaab7bbac5cfd76278891be893b 100644 (file)
@@ -7,10 +7,5 @@
 
 decimalSeparator=.
 groupingSeparator=,
-currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+shortDateFormat=d/MM/yy
+fullTimeFormat=HH'H'mm''ss\" z
index ece3beb560bdbeda2e342152e246d1f4e60e6c01..e69d25aedcc3b9859695626f7e16371c466f6368 100644 (file)
@@ -7,11 +7,6 @@
 
 decimalSeparator=.
 groupingSeparator=,
-currenciesDisplayName.USD=D\u00f3lar Americano
 currenciesSymbol.USD=$
 shortDateFormat=MM/dd/yy
 mediumDateFormat=MM/dd/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
index 40bc9972a9c56dcafbc9b80ba6d9d8c3c4b61bdf..e6eb01e6220ac994c34ffc3cf28061a54d029462 100644 (file)
@@ -5,10 +5,4 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4 #,##0.00;\u00a4 -#,##0.00
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4\u00a0-#,##0.00
index 115503925bcabd49f5158c2b4e193aae9aa8a422..1fe78128d93ddeba1da43d41a7d28226c31b2e5e 100644 (file)
@@ -7,9 +7,3 @@
 
 decimalSeparator=.
 groupingSeparator=,
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
index b45673fa180b39eebd5b26d51178883715415f22..8ee50a262296d3b6f14a65f97652fd67dacad2d6 100644 (file)
@@ -7,7 +7,6 @@
 
 decimalSeparator=.
 groupingSeparator=,
-firstDayOfWeek=sun
 shortDateFormat=M/d/yy
 mediumDateFormat=MMM d, yyyy
 shortTimeFormat=h:mm a
index 5356fcf4bdde86ae9cbca3c3b531145aee632a85..7d0b6a93e713ba0539f3b73e807ca18f78695324 100644 (file)
@@ -5,11 +5,5 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4 #,##0.00;(\u00a4#,##0.00)
-currenciesSymbol.UYU=$
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+currencyFormat=\u00a4\u00a0#,##0.00;(\u00a4\u00a0#,##0.00)
+currenciesSymbol.UYU=$U
index 288794f101fb70697d81a62a47784c3606674a7d..f465e7684cac104d1d764d5f5b4528a2a30b3fb2 100644 (file)
@@ -5,10 +5,4 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;\u00a4 -#,##0.00
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
index 3f01ee6fc1ef315b07631d890d849748a4add4f8..0065174dbf975422d12963d8c93cea7752c1ba26 100644 (file)
 
 decimalSeparator=,
 groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=Jeemeni dinaar
+currenciesDisplayName.KES=Keenia \u0161illing
+currenciesDisplayName.TWD=Taiwani dollar
+currenciesDisplayName.BYB=Valgevene uus rubla, 1994-1999
+currenciesDisplayName.TJS=Tad\u017eikistani somoni
+currenciesDisplayName.RWF=Ruanda frank
+currenciesDisplayName.SDP=Sudaani nael
+currenciesDisplayName.GRD=Kreeka drahm
+currenciesDisplayName.AFN=Afganistani afgaani
+currenciesDisplayName.IEP=Iiri nael
+currenciesDisplayName.ARS=Argentina peeso
+currenciesDisplayName.ARP=Argentina peeso, 1983-1985
+currenciesDisplayName.GEL=Gruusia lari
+currenciesDisplayName.AFA=Afganistani afgaani, 1927-2002
+currenciesDisplayName.FKP=Falklandi saarte nael
 currenciesDisplayName.EEK=kroon
+currenciesDisplayName.MDL=Moldova leu
+currenciesDisplayName.HKD=Hongkongi dollar
+currenciesDisplayName.IQD=Iraagi dinaar
+currenciesDisplayName.ARA=Argentina austral
+currenciesDisplayName.SCR=Sei\u0161elli saarte ruupia
+currenciesDisplayName.VUV=Vanuatu vatu
+currenciesDisplayName.KPW=P\u00f5hja-Korea vonn
+currenciesDisplayName.DKK=Taani kroon
+currenciesDisplayName.IDR=Indoneesia ruupia
+currenciesDisplayName.SOS=Somaalia \u0161illing
+currenciesDisplayName.AED=Araabia \u00dchendemiraatide dirhem
+currenciesDisplayName.LVL=L\u00e4ti latt
+currenciesDisplayName.BWP=Botswana pula
+currenciesDisplayName.RUR=Venemaa rubla, 1991-1998
+currenciesDisplayName.NIO=Nicaragua kuldkordoba
+currenciesDisplayName.XTS=v\u00e4\u00e4ringute testkood
+currenciesDisplayName.MOP=Macao pataka
+currenciesDisplayName.FJD=Fid\u017ei dollar
+currenciesDisplayName.ADP=Andorra peseeta
+currenciesDisplayName.RUB=Venemaa rubla
+currenciesDisplayName.NIC=Nicaragua kordoba
+currenciesDisplayName.UZS=Usbekistani somm
+currenciesDisplayName.SBD=Saalomoni saarte dollar
+currenciesDisplayName.ECS=Ecuadori sukre
+currenciesDisplayName.THB=Tai baat
+currenciesDisplayName.PHP=Filipiinide peeso
+currenciesDisplayName.LUF=Luksemburgi frank
+currenciesDisplayName.FIM=Soome mark
+currenciesDisplayName.MNT=Mongoolia tugrik
+currenciesDisplayName.UAK=Ukraina karbovanets
+currenciesDisplayName.SAR=Saudi-Araabia riaal
+currenciesDisplayName.UAH=Ukraina grivna
+currenciesDisplayName.HUF=Ungari forint
+currenciesDisplayName.QAR=Quatari riaal
+currenciesDisplayName.COP=Kolumbia peeso
+currenciesDisplayName.PTE=Portugali eskuudo
+currenciesDisplayName.UYU=Uruguai peeso
+currenciesDisplayName.AOR=Angola reformitud kvanza, 1995-1999
+currenciesDisplayName.GBP=Suurbritannia naelsterling
+currenciesDisplayName.ZRZ=Sairi zaire
+currenciesDisplayName.INR=India ruupia
+currenciesDisplayName.BIF=Burundi frank
+currenciesDisplayName.MZN=Mosambiigi metikal
+currenciesDisplayName.LTL=Leedu litt
+currenciesDisplayName.AON=Angola kvanza, 1990-2000
+currenciesDisplayName.KZT=Kasahstani tenge
+currenciesDisplayName.AOK=Angola kvanza, 1977-1990
+currenciesDisplayName.GNS=Guinea syli
+currenciesDisplayName.BUK=Birma kjatt
+currenciesDisplayName.XFO=Prantsuse kuldfrank
+currenciesDisplayName.PGK=Paapua Uus-Guinea kina
+currenciesDisplayName.SYP=S\u00fc\u00fcria nael
+currenciesDisplayName.OMR=Omaani riaal
+currenciesDisplayName.NGN=Nigeeria naira
+currenciesDisplayName.CNY=Hiina j\u00fcaan
+currenciesDisplayName.AOA=Angola kvanza
+currenciesDisplayName.RSD=Serbia dinaar
+currenciesDisplayName.MAD=Maroko dirhem
+currenciesDisplayName.HTG=Haiti gurd
+currenciesDisplayName.TRY=T\u00fcrgi uus liir
+currenciesDisplayName.MMK=Myanmari kjatt
+currenciesDisplayName.MYR=Malaisia ringgit
+currenciesDisplayName.XEU=ek\u00fc\u00fc
+currenciesDisplayName.SLL=Sierra Leone leoone
+currenciesDisplayName.BHD=Bahreini dinaar
+currenciesDisplayName.TRL=T\u00fcrgi liir
+currenciesDisplayName.CZK=T\u0161ehhi kroon
+currenciesDisplayName.ANG=Hollandi Antillide kulden
+currenciesDisplayName.AZN=Aserbaid\u017eaani manat
+currenciesDisplayName.AZM=Aserbaid\u017eaani manat, 1993-2006
+currenciesDisplayName.GMD=Gambia dalasi
+currenciesDisplayName.BGN=Bulgaaria leev
+currenciesDisplayName.CAD=Kanada dollar
+currenciesDisplayName.BGL=Bulgaaria p\u00fcsiv leev
+currenciesDisplayName.VEB=Venezuela boliivar
+currenciesDisplayName.MXP=Mehhiko peeso, 1861-1990
+currenciesDisplayName.ILS=Iisraeli uus seekel
+currenciesDisplayName.PES=Peruu soll
+currenciesDisplayName.MXN=Mehhiko peeso
+currenciesDisplayName.GYD=Guyana dollar
+currenciesDisplayName.ILP=Iisraeli nael
+currenciesDisplayName.CYP=K\u00fcprose nael
+currenciesDisplayName.SKK=Slovakkia kroon
+currenciesDisplayName.PEN=Peruu uus soll
+currenciesDisplayName.PEI=Peruu inti
+currenciesDisplayName.AMD=Armeenia dramm
+currenciesDisplayName.XPT=plaatina
+currenciesDisplayName.HRK=Horvaatia kuna
+currenciesDisplayName.CLP=T\u0161iili peeso
+currenciesDisplayName.FRF=Prantsuse frank
+currenciesDisplayName.XPD=pallaadium
+currenciesDisplayName.ALL=Albaania lekk
+currenciesDisplayName.MWK=Malawi kvat\u0161a
+currenciesDisplayName.BRL=Brasiilia reaal
+currenciesDisplayName.TPE=Timori eskuudo
+currenciesDisplayName.BRC=Brasiilia krusado
+currenciesDisplayName.DEM=Saksa mark
+currenciesDisplayName.XCD=Ida-Kariibi dollar
+currenciesDisplayName.KWD=Kuveidi dinaar
+currenciesDisplayName.NPR=Nepali ruupia
+currenciesDisplayName.GWP=Guinea-Bissau peeso
+currenciesDisplayName.YUN=Jugoslaavia konverteeritav dinaar
+currenciesDisplayName.YUM=Jugoslaavia uus dinaar
+currenciesDisplayName.SVC=Salvadori koloon
+currenciesDisplayName.SIT=Sloveenia tolar
+currenciesDisplayName.BEL=Belgia arveldusfrank
+currenciesDisplayName.JPY=Jaapani jeen
+currenciesDisplayName.MVR=Maldiivide ruupia
+currenciesDisplayName.TOP=Tonga pa'anga
+currenciesDisplayName.BEF=Belgia frank
+currenciesDisplayName.BEC=Belgia konverteeritav frank
+currenciesDisplayName.SUR=NSVL rubla
+currenciesDisplayName.RON=Rumeenia lei
+currenciesDisplayName.ROL=Rumeenia lei, -2005
+currenciesDisplayName.BDT=Bangladeshi taka
+currenciesDisplayName.AWG=Aruba guilder
+currenciesDisplayName.XBA=EURCO
+currenciesDisplayName.NOK=Norra kroon
+currenciesDisplayName.ZAR=LAVi rand
+currenciesDisplayName.MUR=Mauritiuse ruupia
+currenciesDisplayName.SHP=Saint Helena nael
+currenciesDisplayName.XAU=kuld
+currenciesDisplayName.VND=Vietnami dong
+currenciesDisplayName.TZS=Tansaania \u0161illing
+currenciesDisplayName.GIP=Gibraltari nael
+currenciesDisplayName.TND=Tuneesia dinaar
+currenciesDisplayName.UGX=Uganda \u0161illing
+currenciesDisplayName.XAG=h\u00f5be
+currenciesDisplayName.ZMK=Sambia kvat\u0161a
+currenciesDisplayName.XAF=CFA frank BEAC
+currenciesDisplayName.LBP=Liibanoni nael
+currenciesDisplayName.STD=S\u00e3o Tom\u00e9 ja Pr\u00edncipe dobra
+currenciesDisplayName.WST=L\u00e4\u00e4ne-Samoa tala
+currenciesDisplayName.KHR=Kambod\u017ea riaal
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.USS=USA sama p\u00e4eva dollar
+currenciesDisplayName.BOP=Boliivia peeso
+currenciesDisplayName.MTL=Malta liir
+currenciesDisplayName.TMM=T\u00fcrkmenistani manat
+currenciesDisplayName.USN=USA j\u00e4rgmise p\u00e4eva dollar
+currenciesDisplayName.SGD=Singapuri dollar
+currenciesDisplayName.NZD=Uus-Meremaa dollar
+currenciesDisplayName.USD=USA dollar
+currenciesDisplayName.BOB=boliviaano
+currenciesDisplayName.HNL=Hondurase lempiira
+currenciesDisplayName.ITL=Itaalia liir
+currenciesDisplayName.PAB=Panama balboa
+currenciesDisplayName.GTQ=Guatemala ketsal
+currenciesDisplayName.XXX=m\u00e4\u00e4ramata
+currenciesDisplayName.AUD=Austraalia dollar
+currenciesDisplayName.GHC=Ghana sedi
+currenciesDisplayName.LAK=Laose kiip
+currenciesDisplayName.KGS=K\u00f5rg\u00f5zstani somm
+currenciesDisplayName.BBD=Barbadose dollar
+currenciesDisplayName.CHF=\u0160veitsi frank
+currenciesDisplayName.PYG=Paraguai guaranii
+currenciesDisplayName.PLZ=Poola zlott, 1950-1995
+currenciesDisplayName.ATS=Austria \u0161illing
+currenciesDisplayName.ETB=Etioopia birr
+currenciesDisplayName.BND=Brunei dollar
+currenciesDisplayName.EGP=Egiptuse nael
+currenciesDisplayName.JMD=Jamaica dollar
+currenciesDisplayName.PLN=Poola zlott
+currenciesDisplayName.DZD=Al\u017eeeria dinaar
+currenciesDisplayName.ISK=Islandi kroon
+currenciesDisplayName.SRG=Surinami kulden
+currenciesDisplayName.BAM=Bosnia-Hertsegoviina mark
+currenciesDisplayName.ESP=Hispaania peseeta
+currenciesDisplayName.KRW=L\u00f5una-Korea vonn
+currenciesDisplayName.NLG=Hollandi kulden
+currenciesDisplayName.MRO=Mauretaania ugia
+currenciesDisplayName.BAD=Bosnia-Hertsegoviina dinaar
+currenciesDisplayName.ZWD=Zimbabwe dollar
+currenciesDisplayName.SEK=Rootsi kroon
+currenciesDisplayName.BYR=Valgevene rubla
+currenciesDisplayName.IRR=Iraani riaal
+currenciesDisplayName.PKR=Pakistani ruupia
+currenciesDisplayName.BMD=Bermuda dollar
+currenciesDisplayName.CSD=Serbia vana dinaar
+currenciesSymbol.JPY=\u00a5
 currenciesSymbol.EEK=kr
-shortMonths=jaan®veebr®m\u00e4rts®apr®mai®juuni®juuli®aug®sept®okt®nov®dets®®
-months=jaanuar®veebruar®m\u00e4rts®aprill®mai®juuni®juuli®august®september®oktoober®november®detsember®®
-shortWeekdays=®P®E®T®K®N®R®L®
-weekdays=®p\u00fchap\u00e4ev®esmasp\u00e4ev®teisip\u00e4ev®kolmap\u00e4ev®neljap\u00e4ev®reede®laup\u00e4ev®
-firstDayOfWeek=mon
-eras=e.m.a.®m.a.j.®
+currenciesSymbol.EUR=\u20ac
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.XXX=XXX
+currenciesSymbol.USD=$
+shortMonths=jaan\u00aeveebr\u00aem\u00e4rts\u00aeapr\u00aemai\u00aejuuni\u00aejuuli\u00aeaug\u00aesept\u00aeokt\u00aenov\u00aedets\u00ae\u00ae
+months=jaanuar\u00aeveebruar\u00aem\u00e4rts\u00aeaprill\u00aemai\u00aejuuni\u00aejuuli\u00aeaugust\u00aeseptember\u00aeoktoober\u00aenovember\u00aedetsember\u00ae\u00ae
+shortWeekdays=\u00aeP\u00aeE\u00aeT\u00aeK\u00aeN\u00aeR\u00aeL\u00ae
+weekdays=\u00aep\u00fchap\u00e4ev\u00aeesmasp\u00e4ev\u00aeteisip\u00e4ev\u00aekolmap\u00e4ev\u00aeneljap\u00e4ev\u00aereede\u00aelaup\u00e4ev\u00ae
+eras=e.m.a.\u00aem.a.j.\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=dd.MM.yy
 mediumDateFormat=dd.MM.yyyy
 longDateFormat=d MMMM yyyy
@@ -46,17 +247,20 @@ territories.GN=Guinea
 territories.GM=Gambia
 territories.GL=Gr\u00f6\u00f6nimaa
 territories.SV=El Salvador
-territories.ST=Sao Tom\u00e9 ja Principe
+territories.062=Kesk-Aasia l\u00f5unaosa
+territories.ST=S\u00e3o Tom\u00e9 ja Pr\u00edncipe
 territories.GI=Gibraltar
+territories.061=Pol\u00fcneesia
 territories.GH=Ghana
 territories.SR=Suriname
+territories.GG=Guernsey
 territories.GF=Prantsuse Guajaana
 territories.GE=Gruusia
 territories.SO=Somaalia
 territories.GD=Grenada
 territories.SN=Senegal
 territories.SM=San Marino
-territories.GB=\u00dchendkuningriik
+territories.GB=Suurbritannia
 territories.SL=Sierra Leone
 territories.GA=Gabon
 territories.SK=Slovakkia
@@ -71,31 +275,41 @@ territories.SB=Saalomoni Saared
 territories.SA=Saudi Araabia
 territories.FR=Prantsusmaa
 territories.FO=F\u00e4\u00e4ri saared
+territories.057=Mikroneesia
 territories.FM=Mikroneesia Liiduriigid
 territories.RW=Rwanda
+territories.054=Melaneesia
 territories.FK=Falklandi saared
+territories.053=Austraalia ja Uus-Meremaa
 territories.RU=Venemaa
 territories.FJ=Fid\u017ei
 territories.FI=Soome
+territories.RS=Serbia
 territories.RO=Rumeenia
 territories.RE=R\u00e9union
 territories.ET=Etioopia
 territories.ES=Hispaania
 territories.ER=Eritrea
+territories.QU=Euroopa Liit
 territories.EH=L\u00e4\u00e4ne-Sahara
 territories.EG=Egiptus
 territories.EE=Eesti
+territories.QO=Okeaania hajasaared
 territories.EC=Ecuador
 territories.DZ=Al\u017eeeria
 territories.QA=Katar
+territories.039=L\u00f5una-Euroopa
 territories.DO=Dominikaani Vabariik
 territories.PY=Paraguay
 territories.DM=Dominica
+territories.035=Kagu-Aasia
 territories.PW=Belau
+territories.034=L\u00f5una-Aasia
 territories.DK=Taani
 territories.DJ=Djibouti
 territories.PT=Portugal
-territories.PS=Palestiina Omavalitsus
+territories.PS=Palestiina ala
+territories.030=Ida-Aasia
 territories.PR=Puerto Rico
 territories.DE=Saksamaa
 territories.PN=Pitcairn
@@ -105,48 +319,60 @@ territories.PK=Pakistan
 territories.PH=Filipiinid
 territories.PG=Paapua Uus-Guinea
 territories.PF=Prantsuse Pol\u00fcneesia
-territories.CZ=T\u0161ehhi Vabariik
+territories.CZ=T\u0161ehhi
 territories.PE=Peruu
 territories.CY=K\u00fcpros
 territories.CX=J\u00f5ulusaar
-territories.CV=Cabo Verde
+territories.CV=Roheneemesaared
 territories.PA=Panama
 territories.CU=Kuuba
 territories.CS=Serbia ja Montenegro
 territories.CR=Costa Rica
+territories.029=Kariibi meri
 territories.CO=Colombia
 territories.CN=Hiina
 territories.CM=Kamerun
 territories.CL=T\u0161iili
 territories.CK=Cooki saared
-territories.CI=Cote d\u2019Ivoire
+territories.021=Ameerika p\u00f5hjaosa
+territories.CI=C\u00f4te d'Ivoire
 territories.CH=\u0160veits
-territories.CG=Kongo
+territories.CG=Kongo Vabariik
 territories.CF=Kesk-Aafrika Vabariik
 territories.CD=Kongo DV
 territories.CC=Kookossaared
 territories.OM=Omaan
 territories.CA=Kanada
+territories.419=Ladina-Ameerika ja Kariibi meri
 territories.BZ=Belize
 territories.BY=Valgevene
 territories.BW=Botswana
 territories.BV=Bouvet\u2019 saar
 territories.BT=Bhutan
-territories.BS=Bahama saared
+territories.BS=Bahama
 territories.BR=Brasiilia
+territories.019=Ameerika maailmajagu
+territories.018=L\u00f5una-Aafrika
 territories.NZ=Uus-Meremaa
+territories.017=Kesk-Aafrika
 territories.BO=Boliivia
 territories.BN=Brunei
+territories.015=P\u00f5hja-Aafrika
 territories.BM=Bermuda
+territories.014=Ida-Aafrika
+territories.013=Kesk-Ameerika
 territories.NU=Niue
 territories.BJ=Benin
+territories.011=L\u00e4\u00e4ne-Aafrika
 territories.BI=Burundi
+territories.172=S\u00f5ltumatute Riikide \u00dchendus
 territories.BH=Bahrein
 territories.NR=Nauru
 territories.BG=Bulgaaria
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgia
+territories.ZZ=m\u00e4\u00e4ramata
 territories.NO=Norra
 territories.BD=Bangladesh
 territories.BB=Barbados
@@ -158,6 +384,7 @@ territories.NG=Nigeeria
 territories.NF=Norfolk
 territories.AZ=Aserbaid\u017eaan
 territories.NE=Niger
+territories.AX=Ahvenamaa
 territories.NC=Uus-Kaledoonia
 territories.AW=Aruba
 territories.ZM=Sambia
@@ -166,54 +393,67 @@ territories.AU=Austraalia
 territories.AT=Austria
 territories.AS=Ameerika Samoa
 territories.AR=Argentina
-territories.AQ=Antarktika
+territories.AQ=Antarktis
+territories.009=Okeaania
 territories.MZ=Mosambiik
 territories.AO=Angola
 territories.MY=Malaisia
 territories.AN=Hollandi Antillid
 territories.MX=Mehhiko
 territories.AM=Armeenia
+territories.005=L\u00f5una-Ameerika
 territories.MW=Malawi
 territories.AL=Albaania
 territories.MV=Maldiivid
+territories.003=P\u00f5hja-Ameerika
 territories.ZA=L\u00f5una-Aafrika Vabariik
 territories.MU=Mauritius
+territories.002=Aafrika
 territories.MT=Malta
 territories.AI=Anguilla
+territories.001=maailm
 territories.MS=Montserrat
 territories.MR=Mauritaania
 territories.AG=Antigua ja Barbuda
-territories.AF=Afganistan
 territories.MQ=Martinique
-territories.AE=Araabia \u00dchendemiraadid
+territories.AF=Afganistan
 territories.MP=P\u00f5hja-Mariaanid
+territories.AE=Araabia \u00dchendemiraadid
+territories.MO=Aomen
 territories.AD=Andorra
-territories.MO=Aomeni Hiina erihalduspiirkond
 territories.MN=Mongoolia
 territories.MM=Myanmar
 territories.ML=Mali
-territories.MK=Makedoonia Vabariik
+territories.MK=Makedoonia
 territories.YT=Mayotte
 territories.MH=Marshalli Saared
 territories.MG=Madagaskar
+territories.ME=Montenegro
 territories.MD=Moldova
 territories.MC=Monaco
 territories.MA=Maroko
 territories.YE=Jeemen
 territories.LY=Liib\u00fca
 territories.LV=L\u00e4ti
+territories.155=L\u00e4\u00e4ne-Euroopa
 territories.LU=Luksemburg
+territories.154=P\u00f5hja-Euroopa
 territories.LT=Leedu
 territories.LS=Lesotho
 territories.LR=Libeeria
+territories.151=Ida-Euroopa
+territories.150=Euroopa
 territories.LK=Sri Lanka
 territories.LI=Liechtenstein
 territories.LC=Saint Lucia
 territories.LB=Liibanon
-territories.LA=Laose DRV
+territories.LA=Laos
 territories.KZ=Kasahstan
-territories.KY=Kaimani saared
+territories.KY=Kaimanisaared
 territories.KW=Kuveit
+territories.145=L\u00e4\u00e4ne-Aasia
+territories.143=Kesk-Aasia
+territories.142=Aasia
 territories.KR=L\u00f5una-Korea
 territories.KP=P\u00f5hja-Korea
 territories.KN=Saint Kitts ja Nevis
@@ -228,12 +468,13 @@ territories.JP=Jaapan
 territories.JO=Jordaania
 territories.JM=Jamaica
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=USA Neitsisaared
 territories.VG=Briti Neitsisaared
 territories.VE=Venezuela
 territories.VC=Saint Vincent ja Grenadiinid
-territories.VA=P\u00fcha Tool (Vatikan)
+territories.VA=Vatikan
 territories.IT=Itaalia
 territories.IS=Island
 territories.IR=Iraan
@@ -242,6 +483,7 @@ territories.UZ=Usbekistan
 territories.IO=Briti India ookeani ala
 territories.UY=Uruguay
 territories.IN=India
+territories.IM=Mani saar
 territories.IL=Iisrael
 territories.US=Ameerika \u00dchendriigid
 territories.IE=Iirimaa
@@ -257,39 +499,503 @@ territories.HN=Honduras
 territories.HM=Heard ja McDonald
 territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=Hongkongi erihalduspiirkond
+territories.HK=Hongkong
 territories.TT=Trinidad ja Tobago
 territories.TR=T\u00fcrgi
 territories.TO=Tonga
 territories.TN=Tuneesia
 territories.TM=T\u00fcrkmenistan
-languages.ja=Jaapani
-languages.en=Inglise
-languages.tr=T\u00fcrgi
-languages.ko=Korea
-languages.no=Norra
-languages.el=Kreeka
-languages.nl=Hollandi
-languages.bg=Bulgaaria
-languages.lv=L\u00e4ti
-languages.cs=T\u0161ehhi
-languages.he=Heebrea
-languages.it=Itaalia
-languages.lt=Leedu
-languages.fr=Prantsuse
-languages.zh=Hiina
-languages.ru=Vene
-languages.ro=Rumeenia
-languages.fi=Soome
-languages.ar=Araabia
-languages.sv=Rootsi
-languages.pt=Portugali
-languages.pl=Poola
-languages.sl=Sloveeni
-languages.sk=Slovaki
-languages.de=Saksa
-languages.et=Eesti
-languages.hu=Ungari
-languages.es=Hispaania
-languages.da=Taani
-languages.hr=Horvaadi
+languages.gwi=gvit\u0161ini
+languages.akk=akadi
+languages.eka=ekad\u017euki
+languages.ijo=id\u017eo
+languages.xh=koosa
+languages.sux=sumeri
+languages.sus=susu
+languages.mis=\u00fcksikkeeled
+languages.loz=lozi
+languages.tog=t\u0161itonga
+languages.pon=poonpei
+languages.min=minangkabau
+languages.suk=sukuma
+languages.wo=volofi
+languages.lol=mongo
+languages.kut=kutenai
+languages.mic=mikmaki
+languages.wa=vallooni
+languages.kum=kum\u00f5ki
+languages.zap=sapoteegi
+languages.ain=ainu
+languages.cus=muu ku\u0161i keel
+languages.jbo=lojbani
+languages.doi=dogri
+languages.vo=volap\u00fcki
+languages.oto=otomi keel
+languages.vi=vietnami
+languages.vai=vai
+languages.rar=rarotonga
+languages.ve=venda
+languages.rap=rapanui
+languages.raj=rad\u017eastani
+languages.ota=osmanit\u00fcrgi
+languages.nzi=nzima
+languages.nap=napoli
+languages.uz=usbeki
+languages.uga=ugariti
+languages.tmh=tama\u0161eki
+languages.nai=muu P\u00f5hja-Ameerika indiaani
+languages.nah=nahua
+languages.ur=urdu
+languages.fat=fanti
+languages.uk=ukraina
+languages.egy=muinasegiptuse
+languages.zxx=mittekeeleline
+languages.ug=uiguuri
+languages.fan=fangi
+languages.ssa=muu Niiluse-Sahara
+languages.mga=keskiiri
+languages.bat=muu balti
+languages.nyo=njoro
+languages.bas=basa
+languages.nyn=nkole
+languages.nym=njamvesi
+languages.gsw=alemanni
+languages.hmn=hmongi
+languages.ban=bali
+languages.osa=oseid\u017ei
+languages.bal=belut\u0161i
+languages.ty=tahiti
+languages.bai=bamileke keeled
+languages.tw=tvii
+languages.srr=sereri
+languages.tli=tlingiti
+languages.tlh=klingoni
+languages.tt=tatari
+languages.ts=tsonga
+languages.srn=sranani
+languages.bad=banda
+languages.tr=t\u00fcrgi
+languages.to=tonga
+languages.tn=tsvana
+languages.tl=tagalogi
+languages.tk=t\u00fcrkmeeni
+languages.ti=tigrinja
+languages.th=tai
+languages.kru=oraoni
+languages.tg=tad\u017eiki
+languages.byn=bilini
+languages.te=telugu
+languages.kro=kruu
+languages.csb=ka\u0161uubi
+languages.ta=tamiili
+languages.krl=karjala
+languages.tkl=tokelau
+languages.efi=ibibio
+languages.sw=suahiili
+languages.sv=rootsi
+languages.su=sunda
+languages.krc=karat\u0161ai-balkaari
+languages.st=l\u00f5unasotho
+languages.ss=svaasi
+languages.sr=serbia
+languages.sq=albaania
+languages.men=mende
+languages.crp=muud kreool- ja pid\u017einkeeled
+languages.so=somaali
+languages.afh=afrihili
+languages.sn=\u0161ona
+languages.sm=samoa
+languages.sl=sloveeni
+languages.grc=vanakreeka
+languages.sk=slovaki
+languages.grb=grebo
+languages.si=singali
+languages.sh=serbia-horvaadi
+languages.crh=krimmitatari
+languages.afa=muu afroaasia
+languages.sg=sango
+languages.se=p\u00f5hjasaami
+languages.sd=sindhi
+languages.udm=udmurdi
+languages.sc=sardiinia
+languages.sa=sanskriti
+languages.rw=ruanda
+languages.nwc=vananevari
+languages.ru=vene
+languages.mdr=mandari
+languages.ro=rumeenia
+languages.rn=rundi
+languages.rm=retoromaani
+languages.mdf=mok\u0161a
+languages.tiv=tivi
+languages.ady=ad\u00f5gee
+languages.zun=sunji
+languages.kpe=kpelle
+languages.qu=ket\u0161ua
+languages.tig=tigree
+languages.son=songai
+languages.cpp=portugalip\u00f5hjalised kreool/pid\u017einkeeled
+languages.rup=aromuuni
+languages.sog=sogdi
+languages.ada=adangme
+languages.kos=kosrae
+languages.hit=heti
+languages.cpf=muud prantsusp\u00f5hjalised kreool- ja pid\u017einkeeled
+languages.cpe=muud inglisp\u00f5hjalised kreool- ja pid\u017einkeeled
+languages.him=himt\u0161ali
+languages.kok=konkani
+languages.hil=hiligainoni
+languages.got=gooti
+languages.gor=gorontalo
+languages.gon=gondi
+languages.din=dinka
+languages.nub=nuubia keel
+languages.pt=portugali
+languages.ps=pu\u0161tu
+languages.fur=friuuli
+languages.phn=foiniikia
+languages.goh=vana\u00fclemsaksa
+languages.snk=soninke
+languages.cop=kopti
+languages.yap=japi
+languages.ach=akoli
+languages.yao=jao
+languages.phi=flipiini keel
+languages.pl=poola
+languages.ace=at\u0161ehi
+languages.pi=paali
+languages.pa=pand\u017eabi
+languages.bug=bugi
+languages.iba=ibani
+languages.sms=koltasaami
+languages.bua=burjaadi
+languages.mas=masai
+languages.smn=Inari saami
+languages.os=osseedi
+languages.map=austroneesia keeled
+languages.or=oria
+languages.man=malinke
+languages.smj=Lule saami
+languages.smi=muu saami
+languages.mak=makassari
+languages.om=oromo
+languages.mai=maithili
+languages.oj=od\u017eibvei
+languages.mag=magali
+languages.mad=madura
+languages.sma=l\u00f5unasaami
+languages.oc=oksitaani
+languages.nso=pedi
+languages.btk=bataki
+languages.myv=ersa
+languages.dgr=dogribi
+languages.ny=njand\u017ea
+languages.myn=maia keeled
+languages.nv=navaho
+languages.kmb=mbundu
+languages.nr=l\u00f5unandebele
+languages.gmh=kesk\u00fclemsaksa
+languages.no=norra
+languages.nn=norra nynorsk
+languages.nl=hollandi
+languages.ng=ndonga
+languages.sla=slaavi keel
+languages.ne=nepali
+languages.nd=p\u00f5hjandebele
+languages.cmc=t\u0161ami keeled
+languages.tet=tetumi
+languages.nb=norra bokm\u00e5l
+languages.na=nauru
+languages.ter=tereno
+languages.tem=temne
+languages.my=birma
+languages.lez=lesgi
+languages.mt=malta
+languages.frs=idafriisi
+languages.peo=vanap\u00e4rsia
+languages.ms=malai
+languages.frr=p\u00f5hjafriisi
+languages.mr=marathi
+languages.fro=vanaprantsuse
+languages.mo=moldova
+languages.frm=keskprantsuse
+languages.mn=mongoli
+languages.jrb=juudiaraabia
+languages.ml=malajalami
+languages.mk=makedoonia
+languages.mi=maoori
+languages.mh=mar\u0161alli
+languages.mg=malagassi
+languages.nqo=nkoo
+languages.mwr=marvari
+languages.bra=brad\u017ei
+languages.mwl=miranda
+languages.den=sleivi
+languages.lv=l\u00e4ti
+languages.lu=luba
+languages.del=delavari
+languages.lt=leedu
+languages.lo=lao
+languages.ln=lingala
+languages.li=limburgi
+languages.ewo=evondo
+languages.lg=ganda
+languages.lb=letseburgi
+languages.la=ladina
+languages.jpr=juudip\u00e4rsia
+languages.vot=vadja
+languages.sit=hiina-tiibeti keel
+languages.ky=kirgiisi
+languages.kw=korni
+languages.kv=komi
+languages.ku=kurdi
+languages.sio=siuu keel
+languages.ks=ka\u0161miiri
+languages.kr=kanuri
+languages.awa=avadhi
+languages.ko=korea
+languages.kn=kannada
+languages.km=khmeeri
+languages.kl=gr\u00f6\u00f6ni
+languages.kk=kasahhi
+languages.rom=mustlaskeel
+languages.kj=ambo
+languages.sid=sidamo
+languages.ki=kikuju
+languages.kg=kongo
+languages.non=vanap\u00f5hjala
+languages.ka=gruusia
+languages.mus=maskogi
+languages.roa=romaani keel
+languages.nog=nogai
+languages.mun=munda keel
+languages.mul=mitu keelt
+languages.jv=jaava
+languages.gil=kiribati
+languages.znd=zande
+languages.shn=\u0161ani
+languages.fon=foni
+languages.xal=kalm\u00f5ki
+languages.aus=Austraalia keeled
+languages.kho=saki
+languages.ja=jaapani
+languages.khi=muu khoisani
+languages.pau=belau
+languages.chy=\u0161aieeni
+languages.tai=tai keel
+languages.iu=inuktituti
+languages.pap=papiamento
+languages.it=itaalia
+languages.sgn=viipekeel
+languages.is=islandi
+languages.kha=khasi
+languages.chr=t\u0161erokii
+languages.pam=pampanga
+languages.pal=pahlavi
+languages.chp=t\u0161ipevai
+languages.io=ido
+languages.cho=t\u0161okto
+languages.chn=t\u0161inuki \u017eargoon
+languages.chm=mari
+languages.tyv=t\u00f5va
+languages.bnt=bantu
+languages.pag=pangasinani
+languages.ik=injupiaki
+languages.chk=t\u0161uugi
+languages.ii=Sichuani jii
+languages.haw=havai
+languages.lam=lamba
+languages.ig=ibo
+languages.chg=t\u0161agatai
+languages.sga=vanaiiri
+languages.paa=paapua keel
+languages.ie=interlingue
+languages.id=indoneesia
+languages.lah=lahnda
+languages.day=dajaki
+languages.chb=t\u0161ibt\u0161a
+languages.ia=interlingua
+languages.lad=ladiino
+languages.hz=herero
+languages.hai=haida
+languages.dar=dargi
+languages.hy=armeenia
+languages.ath=atapaski keeled
+languages.hu=ungari
+languages.ht=haiti
+languages.dak=siuu
+languages.hr=horvaadi
+languages.ho=motu
+languages.hi=hindi
+languages.dyu=djula
+languages.he=heebrea
+languages.ast=astuuria
+languages.ha=hausa
+languages.wen=sorbi keel
+languages.gv=m\u00e4nksi
+languages.gu=gud\u017earati
+languages.sem=semi keel
+languages.sel=s\u00f6lkupi
+languages.iro=irokeesi keeled
+languages.gn=guaranii
+languages.gl=galeegi
+languages.arw=aravaki
+languages.gez=etioopia
+languages.art=muu tehiskeel
+languages.gd=gaeli
+languages.ira=muu Iraani
+languages.ga=iiri
+languages.arp=arapaho
+languages.arn=araukaani
+languages.fy=l\u00e4\u00e4nefriisi
+languages.bla=siksika
+languages.gem=muu germaani
+languages.ypk=jupiki keel
+languages.arc=aramea
+languages.fr=prantsuse
+languages.fo=f\u00e4\u00e4ri
+languages.cel=muu keldi
+languages.fj=fid\u017ei
+languages.fi=soome
+languages.ff=fulbe
+languages.tvl=tuvalu
+languages.ceb=sebu
+languages.fa=p\u00e4rsia
+languages.zh_Hans=lihtsustatud hiina keel
+languages.zh_Hant=traditsiooniline hiina keel
+languages.eu=baski
+languages.sco=\u0161oti
+languages.et=eesti
+languages.scn=sitsiilia
+languages.es=hispaania
+languages.eo=esperanto
+languages.en=inglise
+languages.el=kreeka
+languages.tut=muu Altai
+languages.niu=niue
+languages.tup=tupii keeled
+languages.ee=eve
+languages.tum=tumbuka
+languages.mos=more
+languages.dz=bhutani
+languages.nic=muu Nigeri-Kordofani
+languages.lus=lu\u0161ei
+languages.fiu=muu soomeugri
+languages.dv=maldiivi
+languages.nia=niasi
+languages.moh=mohoogi
+languages.luo=luo
+languages.lun=lunda
+languages.apa=apat\u0161i keeled
+languages.fil=filipino
+languages.lui=luisenjo
+languages.hup=hupa
+languages.bin=edo
+languages.de=saksa
+languages.lua=lulua
+languages.bik=bikoli
+languages.was=va\u0161o
+languages.und=m\u00e4\u00e4ramata
+languages.war=varai
+languages.da=taani
+languages.dum=keskhollandi
+languages.wal=volamo
+languages.mno=manobo keeled
+languages.wak=vaka\u0161i keel
+languages.sat=santali
+languages.cy=k\u00f5mri
+languages.sas=sasaki
+languages.kbd=kabardi-t\u0161erkessi
+languages.cv=t\u0161uva\u0161i
+languages.cu=kirikuslaavi
+languages.mni=manipuri
+languages.cs=t\u0161ehhi
+languages.sam=Samaaria aramea
+languages.cr=krii
+languages.sal=sali\u0161i keel
+languages.dua=duala
+languages.co=korsika
+languages.sai=L\u00f5una-Ameerika indiaani keel
+languages.mnc=mand\u017eu
+languages.sah=jakuudi
+languages.kaw=kaavi
+languages.inh=ingu\u0161i
+languages.gba=gbaja
+languages.sad=sandave
+languages.ch=t\u0161amorro
+languages.ine=muu indoeuroopa
+languages.bho=bhod\u017epuri
+languages.enm=keskinglise
+languages.kar=kareni
+languages.inc=muu India
+languages.ce=t\u0161et\u0161eeni
+languages.gay=gajo
+languages.ca=katalaani
+languages.umb=umbundu
+languages.syr=s\u00fc\u00fcria
+languages.kam=kamba
+languages.anp=angika
+languages.tsi=t\u0161im\u0161i keeled
+languages.ang=vanainglise
+languages.kac=kat\u0161ini
+languages.cau=muu Kaukaasia
+languages.kab=kabiili
+languages.kaa=karakalpaki
+languages.bs=bosnia
+languages.car=kariibi
+languages.br=bretooni
+languages.bo=tiibeti
+languages.bn=bengali
+languages.bm=bambara
+languages.gaa=gaa
+languages.cai=muu Kesk-Ameerika indiaani
+languages.bi=bislama
+languages.bh=bihaari
+languages.bg=bulgaaria
+languages.be=valgevene
+languages.pt_BR=portugali (Braziilia)
+languages.cad=kado
+languages.ba=ba\u0161kiiri
+languages.zu=suulu
+languages.zen=zenaga
+languages.pro=vanaprovansi
+languages.hsb=\u00fclemsorbi
+languages.az=aserbaid\u017eaani
+languages.ay=aimara
+languages.av=avaari
+languages.as=assami
+languages.dsb=alamsorbi
+languages.ar=araabia
+languages.ilo=iloko
+languages.elx=eelami
+languages.zh=hiina
+languages.an=aragoni
+languages.pra=praakriti keel
+languages.am=amhari
+languages.new=nevari
+languages.ak=akani
+languages.za=t\u0161uangi
+languages.en_US=inglise keel (US)
+languages.af=afrikaani
+languages.ae=avesta
+languages.alt=altai
+languages.ab=abhaasi
+languages.aa=afari
+languages.yo=joruba
+languages.alg=algonkini keeled
+languages.ale=aleuudi
+languages.mkh=muu moni-khmeeri
+languages.yi=jidi\u0161i
+languages.dra=muu draviidi keel
+languages.ber=berberi
+languages.nds=alamsaksa
+languages.bem=bemba
+languages.bej=bed\u017ea
+languages.tpi=uusmelaneesia
+variants.1901=saksa traditsiooniline kirjaviis
+variants.1996=saksa reformitud kirjaviis
+variants.POLYTON=pol\u00fctooniline
+variants.ROZAJ=Resia murre
+variants.NEDIS=Natisone murre
+variants.SAAHO=saho murre
+variants.REVISED=uus kirjaviis
index c606f7866f53aa72ea4709701aa692501e5dccbb..10e78442a04298db5ea2484dd3f4f9fd4c3fde3c 100644 (file)
 
 decimalSeparator=,
 groupingSeparator=.
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
 currenciesSymbol.ESP=\u20a7
-shortMonths=urt®ots®mar®api®mai®eka®uzt®abu®ira®urr®aza®abe®®
-months=urtarrila®otsaila®martxoa®apirila®maiatza®ekaina®uztaila®abuztua®iraila®urria®azaroa®abendua®®
-shortWeekdays=®ig®al®as®az®og®or®lr®
-weekdays=®igandea®astelehena®asteartea®asteazkena®osteguna®ostirala®larunbata®
+shortMonths=urt\u00aeots\u00aemar\u00aeapi\u00aemai\u00aeeka\u00aeuzt\u00aeabu\u00aeira\u00aeurr\u00aeaza\u00aeabe\u00ae\u00ae
+months=urtarrila\u00aeotsaila\u00aemartxoa\u00aeapirila\u00aemaiatza\u00aeekaina\u00aeuztaila\u00aeabuztua\u00aeiraila\u00aeurria\u00aeazaroa\u00aeabendua\u00ae\u00ae
+shortWeekdays=\u00aeig\u00aeal\u00aeas\u00aeaz\u00aeog\u00aeor\u00aelr\u00ae
+weekdays=\u00aeigandea\u00aeastelehena\u00aeasteartea\u00aeasteazkena\u00aeosteguna\u00aeostirala\u00aelarunbata\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy-MM-dd
+mediumDateFormat=yyyy-MMM-dd
+longDateFormat=yyyy'eko' MMM'ren' dd'a'
+fullDateFormat=EEEE, yyyy'eko' MMMM'ren' dd'a'
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=Ekialdeko Timor
+territories.TK=Tokelau
+territories.TJ=Tadjikistan
+territories.TH=Tailandia
+territories.TG=Togo
+territories.TF=Frantziaren Lurralde Australak
 territories.TD=Txad
+territories.TC=Turk eta Caico uharteak
 territories.GW=Ginea-Bissau
-territories.AQ=Antartika
-territories.MZ=Mozambike
-territories.MY=Malasia
-territories.MX=Mexiko
+territories.GS=Hegoaldeko Georgia eta Hegoaldeko Sandwich uharteak
 territories.GR=Grezia
-territories.ZA=Hegoafrika
-territories.MV=Maldivak
 territories.GQ=Ekuatore Ginea
 territories.SZ=Swazilandia
-territories.MU=Maurizio
 territories.SY=Siria
 territories.GN=Ginea
-territories.AG=Antigua eta Barbuda
-territories.AF=Afganistan
+territories.GM=Gambia
+territories.GL=Groenlandia
 territories.ST=Sao Tom\u00e9 eta Principe
-territories.AE=Arabiar Emirrerri Batuak
+territories.GH=Ghana
 territories.SR=Surinam
-territories.MK=Mazedonia
-territories.MH=Marshall uharteak
+territories.GG=Guernsey
+territories.GF=Guyana Frantsesa
+territories.GE=Georgia
+territories.SO=Somalia
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=Erresuma Batua
 territories.SL=Sierra Leona
-territories.MG=Madagaskar
+territories.GA=Gabon
 territories.SK=Eslovakia
+territories.SJ=Svalbard eta Jan Mayen uharteak
 territories.SI=Eslovenia
-territories.MD=Moldavia
-territories.MC=Monako
+territories.SH=Saint Helena
 territories.SG=Singapur
-territories.MA=Maroko
 territories.SE=Suedia
+territories.SD=Sudan
 territories.SC=Seychelleak
 territories.SB=Salomon uharteak
-territories.LY=Libia
+territories.SA=Saudi Arabia
 territories.FR=Frantzia
-territories.LV=Letonia
-territories.LU=Luxenburgo
-territories.LT=Lituania
-territories.RW=Ruanda
+territories.FO=Faroe Uharteak
 territories.FM=Mikronesia
+territories.RW=Ruanda
+territories.FK=Malvinak
 territories.RU=Errusia
 territories.FI=Finlandia
+territories.RS=Serbia
 territories.RO=Errumania
-territories.LC=Santa Luzia
-territories.LB=Libano
 territories.ET=Etiopia
 territories.ES=Espainia
-territories.KR=Hego Korea
-territories.KP=Ipar Korea
-territories.KN=Saint Kitts eta Nevis
+territories.ER=Eritrea
 territories.EH=Mendebaldeko Sahara
-territories.KM=Komoreak
 territories.EG=Egipto
+territories.EE=Estonia
 territories.EC=Ekuador
-territories.KH=Kanbodia
-territories.KG=Kirgizistan
-territories.KE=Kenia
 territories.DZ=Aljeria
 territories.QA=Katar
-territories.PY=Paraguai
 territories.DO=Dominikar Errepublika
+territories.PY=Paraguai
 territories.DM=Dominika
 territories.DK=Danimarka
-territories.JP=Japonia
 territories.DJ=Djibuti
-territories.JO=Jordania
-territories.JM=Jamaika
+territories.PT=Portugal
+territories.PS=Palestina
 territories.DE=Alemania
+territories.PM=Saint-Pierre eta Mikelune
 territories.PL=Polonia
+territories.PK=Pakistan
 territories.PH=Filipinak
 territories.PG=Papua Ginea Berria
+territories.PF=Polinesia Frantsesa
 territories.CZ=Txekiar errepublika
+territories.PE=Peru
 territories.CY=Zipre
+territories.CX=Christmas uhartea
 territories.CV=Cabo Verde
 territories.CU=Kuba
-territories.VC=Saint Vincent eta Grenadinak
 territories.CS=Serbia eta Montenegro
-territories.VA=Vatikano
 territories.CO=Kolonbia
-territories.IT=Italia
 territories.CN=Txina
-territories.IS=Islandia
 territories.CM=Kamerun
 territories.CL=Txile
-territories.IQ=Irak
-territories.UY=Uruguai
+territories.CK=Cook uharteak
 territories.CI=Boli Kosta
 territories.CH=Suitza
 territories.CG=Kongo
 territories.CF=Afrika Erdiko Errepublika
-territories.US=Ameriketako Estatu Batuak
+territories.CD=Kongoko Errepublika Demokratikoa
+territories.CC=Cocos uharteak
+territories.OM=Oman
 territories.CA=Kanada
-territories.IE=Irlanda
 territories.BY=Bielorrusia
+territories.BW=Botswana
+territories.BV=Bouvet Uhartea
+territories.BT=Bh2utan
 territories.BS=Bahamak
 territories.BR=Brasil
-territories.UA=Ukraina
 territories.NZ=Zeelanda Berria
-territories.HU=Hungaria
 territories.BO=Bolibia
-territories.HR=Kroazia
-territories.TT=Trinidad eta Tobago
-territories.NO=Norvegia
+territories.BJ=Benin
+territories.BI=Burundi
+territories.BG=Bulgaria
+territories.BF=Burkina Faso
+territories.NP=Nepal
 territories.BE=Belgika
-territories.TR=Turkia
+territories.NO=Norvegia
+territories.BD=Bangladesh
+territories.ZW=Zimbabwe
 territories.NL=Herbehereak
 territories.BA=Bosnia-Herzegovina
 territories.NI=Nikaragua
-territories.TJ=Tadjikistan
-territories.TH=Tailandia
+territories.NG=Nigeria
+territories.NF=Norfolk uhartea
+territories.AZ=Azerbaijan
+territories.NE=Niger
+territories.AX=Aland Uharteak
+territories.NC=Kaledonia Berria
+territories.ZM=Zambia
+territories.AU=Australia
+territories.NA=Namibia
+territories.AT=Austria
+territories.AS=Samoa Estatubatuarra
+territories.AR=Argentina
+territories.AQ=Antartika
+territories.MZ=Mozambike
+territories.AO=Angola
+territories.MY=Malasia
+territories.AN=Nederlandar Antillak
+territories.MX=Mexiko
+territories.AM=Armenia
+territories.MW=Malawi
+territories.AL=Albania
+territories.MV=Maldivak
+territories.ZA=Hegoafrika
+territories.MU=Maurizio
+territories.MR=Mauritania
+territories.AG=Antigua eta Barbuda
+territories.AF=Afganistan
+territories.MP=Iparraldeko Mariana uharteak
+territories.AE=Arabiar Emirrerri Batuak
+territories.MO=Macau
+territories.MN=Mongolia
+territories.MM=Birmania
+territories.ML=Mali
+territories.MK=Mazedonia
+territories.MH=Marshall uharteak
+territories.MG=Madagaskar
+territories.ME=Montenegro
+territories.MD=Moldavia
+territories.MC=Monako
+territories.MA=Maroko
+territories.YE=Yemen
+territories.LY=Libia
+territories.LV=Letonia
+territories.LU=Luxenburgo
+territories.LT=Lituania
+territories.LS=Lesotho
+territories.LR=Liberia
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Santa Luzia
+territories.LB=Libano
+territories.LA=Laos
+territories.KZ=Kazakhstan
+territories.KY=Kaiman Uharteak
+territories.KR=Hego Korea
+territories.KP=Ipar Korea
+territories.KN=Saint Kitts eta Nevis
+territories.KM=Komoreak
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Kanbodia
+territories.KG=Kirgizistan
+territories.KE=Kenia
+territories.WF=Wallis eta Futuna
+territories.JP=Japonia
+territories.JO=Jordania
+territories.JM=Jamaika
+territories.VU=Vanuatu
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VI=Virginia uharteak (Ameriketako Estatu Batuak)
+territories.VG=Virginia uharteak (Erresuma Batua)
+territories.VE=Venezuela
+territories.VC=Saint Vincent eta Grenadinak
+territories.VA=Vatikano
+territories.IT=Italia
+territories.IS=Islandia
+territories.IR=Iran
+territories.IQ=Irak
+territories.UZ=Uzbekistan
+territories.IO=Indiako Ozeanoko Britainiar Lurraldea
+territories.UY=Uruguai
+territories.IN=India
+territories.IM=Man uhartea
+territories.IL=Israel
+territories.US=Ameriketako Estatu Batuak
+territories.IE=Irlanda
+territories.ID=Indonesia
+territories.UM=Estatu Batuetatik urruti dauden uharte txikiak
+territories.UG=Uganda
+territories.UA=Ukraina
+territories.HU=Hungaria
+territories.HT=Haiti
+territories.HR=Kroazia
+territories.TZ=Tanzania
+territories.HN=Honduras
+territories.HM=Heard eta McDonald Uharteak
+territories.TW=Taiwan
+territories.TV=Tuvalu
+territories.TT=Trinidad eta Tobago
+territories.TR=Turkia
+territories.TO=Tonga
+territories.TN=Tunisia
+territories.TM=Turkmenistan
+languages.es=espainiera
+languages.ku=kurduera
+languages.eo=esperantoa
+languages.en=ingelera
+languages.el=greziera
+languages.ko=koreera
+languages.kn=kannada
+languages.km=khemerera
+languages.ka=georgiera
+languages.zh_Hans=txinera (soildua)
+languages.zh_Hant=txinera (tradizionala)
+languages.jv=javera
+languages.fil=tagalo
+languages.pt=portugalera
+languages.ps=paxtuera
+languages.de=alemanera
+languages.pl=poloniera
+languages.da=daniera
+languages.tlh=klingonera
+languages.ja=japoniera
+languages.vi=vietnamera
+languages.cy={0>welsh<}100{>galesera <0}
+languages.pa=punjabera
+languages.cs=txekiera
+languages.it=italiera
+languages.is=islandiera
+languages.uz=uzbekera
+languages.or=oriya
+languages.ur=urdu
+languages.ca=katalana
+languages.ie=interlingue
+languages.id=indonesiera
+languages.uk=ukrainera
+languages.ia=interlingua
+languages.oc=okzitaniera
+languages.ug=uigurrera
+languages.hy=armeniera
+languages.bs=bosniera
+languages.br=bretoiera
+languages.hu=hungariera
+languages.pt_PT=portugesa (portugal)
+languages.bn=bengalera
+languages.hr=kroaziera
+languages.tw=twia
+languages.bh=biharrera
+languages.bg=bulgariera
+languages.no=norvegiera
+languages.be=bielorrusiera
+languages.nn=norvegiera (nynorsk)
+languages.hi=hindia
+languages.tr=turkiera
+languages.nl=nederlandera
+languages.zu=zuluera
+languages.he=hebreera
+languages.tl=tagalog
+languages.tk=turkmeniera
+languages.ne=nepalera
+languages.az=azerbaijanera
+languages.ti=tigrinya
+languages.th=thailandiera
+languages.en_US=ingelesa (aeb)
+languages.te=telugua
+languages.zh=txinera
+languages.as=assamera
+languages.ar=arabiera
+languages.ta=tamilera
+languages.gu=gujaratera
+languages.am=amharikera
+languages.mt=maltera
+languages.ms=malaysiera
+languages.gn=guaraniera
+languages.sw=swahili
+languages.mr=marathera
+languages.sv=suediera
+languages.gl=galegoa
+languages.su=sundanera
+languages.af=afrikaans
+languages.st=sesothoera
+languages.mn=mongoliera
+languages.sr=serbiera
+languages.sq=albaniera
+languages.ml=malayalamera
+languages.mk=mazedoniera
+languages.so=somaliera
+languages.gd=eskoziar gaelikoa
+languages.sl=esloveniera
+languages.sk=eslovakiera
+languages.ga=gaelikoa
+languages.si=sinhala
+languages.sh=serbokroaziera
+languages.pt_BR=portugesa (brasil)
+languages.yi=yiddishera
+languages.sd=sindhia
+languages.fy=frisiarra
+languages.sa=sanskritoa
+languages.fr=frantsesera
+languages.lv=letoniera
+languages.en_AU=ingelesa (australia)
+languages.lt=lituaniera
+languages.fo=faroera
+languages.ru=errusiera
+languages.lo=laosera
+languages.ln=lingala
+languages.fi=finlandiera
+languages.ro=errumaniera
+languages.fa=pertsiera
+languages.la=latina
+languages.xh=xhosa
+languages.en_GB=ingelesa (erresuma batua)
 languages.eu=euskara
+languages.ky=kirgizera
+languages.et=estoniera
index a8a5e3661304f9ca5d8750d1b38e8230069e795c..6c35d152ea723d74975d1cf2c763f424669f5932 100644 (file)
 # This file was automatically generated by gnu.localegen from CLDR.
 
 percent=\u066a
+perMill=\u2030
 exponential=\u00d7\u06f1\u06f0^
+infinity=\u221e
+NaN=NaN
 minusSign=\u2212
 zeroDigit=\u06f0
 decimalSeparator=\u066b
 groupingSeparator=\u066c
+digit=#
 percentFormat='\u202a'%#,##0'\u202c'
-currencyFormat=#,##0.00 \u00a4;'\u202a'-#,##0.00'\u202c' \u00a4
-currenciesDisplayName.CHF=\u0641\u0631\u0627\u0646\u06a9 \u0633\u0648\u0626\u06cc\u0633
-currenciesDisplayName.AUD=\u062f\u0644\u0627\u0631 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
+currencyFormat=#,##0.00\u00a0\u00a4;'\u202a'-#,##0.00'\u202c'\u00a0\u00a4
+currenciesDisplayName.XCD=\u062f\u0644\u0627\u0631 \u0634\u0631\u0642 \u06a9\u0627\u0631\u0627\u0626\u06cc\u0628
+currenciesDisplayName.LKR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0633\u0631\u06cc\u200c\u0644\u0627\u0646\u06a9\u0627
+currenciesDisplayName.KES=\u0634\u06cc\u0644\u06cc\u0646\u06af \u06a9\u0646\u06cc\u0627
+currenciesDisplayName.BAD=\u062f\u06cc\u0646\u0627\u0631 \u0628\u0648\u0633\u0646\u06cc \u0648 \u0647\u0631\u0632\u06af\u0648\u06cc\u0646
+currenciesDisplayName.BYR=\u0631\u0648\u0628\u0644 \u0628\u06cc\u0644\u0648\u0631\u0648\u0633\u06cc
+currenciesDisplayName.CSD=\u062f\u06cc\u0646\u0627\u0631 \u0642\u062f\u06cc\u0645 \u0635\u0631\u0628\u0633\u062a\u0627\u0646
+currenciesDisplayName.HRD=\u062f\u06cc\u0646\u0627\u0631 \u06a9\u0631\u0648\u0627\u0633\u06cc
+currenciesDisplayName.BMD=\u062f\u0644\u0627\u0631 \u0628\u0631\u0645\u0648\u062f\u0627
+currenciesDisplayName.IEP=\u067e\u0648\u0646\u062f \u0627\u06cc\u0631\u0644\u0646\u062f
+currenciesDisplayName.BSD=\u062f\u0644\u0627\u0631 \u0628\u0627\u0647\u0627\u0645\u0627
+currenciesDisplayName.GRD=\u062f\u0631\u0627\u062e\u0645\u0627\u06cc \u06cc\u0648\u0646\u0627\u0646
+currenciesDisplayName.AMD=\u062f\u0631\u0645 \u0627\u0631\u0645\u0646\u0633\u062a\u0627\u0646
+currenciesDisplayName.FRF=\u0641\u0631\u0627\u0646\u06a9 \u0641\u0631\u0627\u0646\u0633\u0647
+currenciesDisplayName.NPR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0646\u067e\u0627\u0644
+currenciesDisplayName.CLP=\u067e\u0632\u0648\u06cc \u0634\u06cc\u0644\u06cc
+currenciesDisplayName.KWD=\u062f\u06cc\u0646\u0627\u0631 \u06a9\u0648\u06cc\u062a
+currenciesDisplayName.SUR=\u0631\u0648\u0628\u0644 \u0634\u0648\u0631\u0648\u06cc
+currenciesDisplayName.AFN=\u0627\u0641\u063a\u0627\u0646\u06cc
+currenciesDisplayName.ZAR=\u0631\u0627\u0646\u062f \u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
+currenciesDisplayName.RUR=\u0631\u0648\u0628\u0644 \u0642\u062f\u06cc\u0645 \u0631\u0648\u0633\u06cc\u0647
+currenciesDisplayName.IQD=\u062f\u06cc\u0646\u0627\u0631 \u0639\u0631\u0627\u0642
+currenciesDisplayName.HKD=\u062f\u0644\u0627\u0631 \u0647\u0646\u06af\u200c\u06a9\u0646\u06af
+currenciesDisplayName.ARS=\u067e\u0632\u0648\u06cc \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646
+currenciesDisplayName.BRL=\u0631\u0626\u0627\u0644 \u0628\u0631\u0632\u06cc\u0644
+currenciesDisplayName.LVR=\u0631\u0648\u0628\u0644 \u0644\u062a\u0648\u0646\u06cc
+currenciesDisplayName.JPY=\u06cc\u0646 \u0698\u0627\u067e\u0646
+currenciesDisplayName.ALL=\u0644\u06a9 \u0622\u0644\u0628\u0627\u0646\u06cc
+currenciesDisplayName.GWP=\u067e\u0632\u0648\u06cc \u06af\u06cc\u0646\u0647\u0654 \u0628\u06cc\u0633\u0627\u0626\u0648
+currenciesDisplayName.ARP=\u067e\u0632\u0648\u06cc \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646 (\u06f1\u06f9\u06f8\u06f3 \u062a\u0627 \u06f1\u06f9\u06f8\u06f5)\u200f
+currenciesDisplayName.IDR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0627\u0646\u062f\u0648\u0646\u0632\u06cc
+currenciesDisplayName.XAU=\u0637\u0644\u0627
+currenciesDisplayName.AFA=\u0627\u0641\u063a\u0627\u0646\u06cc \u0642\u062f\u06cc\u0645
+currenciesDisplayName.DEM=\u0645\u0627\u0631\u06a9 \u0622\u0644\u0645\u0627\u0646
 currenciesDisplayName.RUB=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u06cc\u0647
-currenciesDisplayName.SEK=\u06a9\u0631\u0648\u0646 \u0633\u0648\u0626\u062f
+currenciesDisplayName.UZS=\u0633\u0648\u0645 \u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646
+currenciesDisplayName.DKK=\u06a9\u0631\u0648\u0646 \u062f\u0627\u0646\u0645\u0627\u0631\u06a9
+currenciesDisplayName.XAG=\u0646\u0642\u0631\u0647
+currenciesDisplayName.TZS=\u0634\u06cc\u0644\u06cc\u0646\u06af \u062a\u0627\u0646\u0632\u0627\u0646\u06cc\u0627
+currenciesDisplayName.SBD=\u062f\u0644\u0627\u0631 \u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u06cc\u0645\u0627\u0646
+currenciesDisplayName.THB=\u0628\u0627\u062a \u062a\u0627\u06cc\u0644\u0646\u062f
+currenciesDisplayName.NOK=\u06a9\u0631\u0648\u0646 \u0646\u0631\u0648\u0698
+currenciesDisplayName.UGX=\u0634\u06cc\u0644\u06cc\u0646\u06af \u0627\u0648\u06af\u0627\u0646\u062f\u0627
 currenciesDisplayName.TND=\u062f\u06cc\u0646\u0627\u0631 \u062a\u0648\u0646\u0633
-currenciesDisplayName.BHD=\u062f\u06cc\u0646\u0627\u0631 \u0628\u062d\u0631\u06cc\u0646
-currenciesDisplayName.ATS=\u0634\u06cc\u0644\u06cc\u0646\u06af \u0627\u062a\u0631\u06cc\u0634
-currenciesDisplayName.BND=\u062f\u0644\u0627\u0631 \u0628\u0631\u0648\u0646\u0626\u06cc
-currenciesDisplayName.HUF=\u0641\u0648\u0631\u06cc\u0646\u062a \u0645\u062c\u0627\u0631\u0633\u062a\u0627\u0646
-currenciesDisplayName.KWD=\u062f\u06cc\u0646\u0627\u0631 \u06a9\u0648\u06cc\u062a
-currenciesDisplayName.INR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0647\u0646\u062f
-currenciesDisplayName.AED=\u062f\u0631\u0647\u0645 \u0627\u0645\u0627\u0631\u0627\u062a
-currenciesDisplayName.TJS=\u0633\u0627\u0645\u0627\u0646\u06cc \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646
-currenciesDisplayName.TJR=\u0631\u0648\u0628\u0644 \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646
-currenciesDisplayName.AZM=\u0645\u0646\u0627\u062a \u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646
-currenciesDisplayName.YER=\u0631\u06cc\u0627\u0644 \u06cc\u0645\u0646
-currenciesDisplayName.CAD=\u062f\u0644\u0627\u0631 \u06a9\u0627\u0646\u0627\u062f\u0627
+currenciesDisplayName.BEF=\u0641\u0631\u0627\u0646\u06a9 \u0628\u0644\u0698\u06cc\u06a9
+currenciesDisplayName.UGS=\u0634\u06cc\u0644\u06cc\u0646\u06af \u0642\u062f\u06cc\u0645 \u0627\u0648\u06af\u0627\u0646\u062f\u0627
+currenciesDisplayName.TTD=\u062f\u0644\u0627\u0631 \u062a\u0631\u06cc\u0646\u06cc\u062f\u0627\u062f \u0648 \u062a\u0648\u0628\u0627\u06af\u0648
+currenciesDisplayName.RHD=\u062f\u0644\u0627\u0631 \u0631\u0648\u062f\u0632\u06cc\u0627
+currenciesDisplayName.PHP=\u067e\u0632\u0648\u06cc \u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646
+currenciesDisplayName.AED=\u062f\u0631\u0647\u0645 \u0627\u0645\u0627\u0631\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0639\u0631\u0628\u06cc
 currenciesDisplayName.SAR=\u0631\u06cc\u0627\u0644 \u0633\u0639\u0648\u062f\u06cc
+currenciesDisplayName.FJD=\u062f\u0644\u0627\u0631 \u0641\u06cc\u062c\u06cc
+currenciesDisplayName.LUF=\u0641\u0631\u0627\u0646\u06a9 \u0644\u0648\u06a9\u0632\u0627\u0645\u0628\u0648\u0631\u06af
+currenciesDisplayName.XFO=\u0641\u0631\u0627\u0646\u06a9 \u0637\u0644\u0627\u06cc \u0641\u0631\u0627\u0646\u0633\u0647
+currenciesDisplayName.TMM=\u0645\u0646\u0627\u062a \u062a\u0631\u06a9\u0645\u0646\u0633\u062a\u0627\u0646
+currenciesDisplayName.QAR=\u0631\u06cc\u0627\u0644 \u0642\u0637\u0631
+currenciesDisplayName.DJF=\u0641\u0631\u0627\u0646\u06a9 \u062c\u06cc\u0628\u0648\u062a\u06cc
+currenciesDisplayName.XXX=\u0627\u0631\u0632 \u0646\u0627\u0645\u0634\u062e\u0635 \u06cc\u0627 \u0646\u0627\u0645\u0639\u062a\u0628\u0631
+currenciesDisplayName.JOD=\u062f\u06cc\u0646\u0627\u0631 \u0627\u0631\u062f\u0646
 currenciesDisplayName.USD=\u062f\u0644\u0627\u0631 \u0627\u0645\u0631\u06cc\u06a9\u0627
-currenciesDisplayName.JPY=\u06cc\u0646 \u0698\u0627\u067e\u0646
-currenciesDisplayName.IQD=\u062f\u06cc\u0646\u0627\u0631 \u0639\u0631\u0627\u0642
-currenciesDisplayName.NOK=\u06a9\u0631\u0648\u0646 \u0646\u0631\u0648\u0698
-currenciesDisplayName.FRF=\u0641\u0631\u0627\u0646\u06a9 \u0641\u0631\u0627\u0646\u0633\u0647
-currenciesDisplayName.GBP=\u067e\u0648\u0646\u062f \u0627\u0633\u062a\u0631\u0644\u06cc\u0646\u06af \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627
-currenciesDisplayName.PKR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u067e\u0627\u06a9\u0633\u062a\u0627\u0646
-currenciesDisplayName.EUR=\u06cc\u0648\u0631\u0648
-currenciesDisplayName.NLG=\u06af\u06cc\u0644\u062f\u0631 \u0647\u0644\u0646\u062f
-currenciesDisplayName.BYR=\u0631\u0648\u0628\u0644 \u0628\u06cc\u0644\u0648\u0631\u0648\u0633\u06cc
 currenciesDisplayName.SGD=\u062f\u0644\u0627\u0631 \u0633\u0646\u06af\u0627\u067e\u0648\u0631
-currenciesDisplayName.MXN=\u067e\u0632\u0648\u06cc \u0645\u06a9\u0632\u06cc\u06a9
-currenciesDisplayName.QAR=\u0631\u06cc\u0627\u0644 \u0642\u0637\u0631
-currenciesDisplayName.TRY=\u0644\u06cc\u0631\u0647\u0654 \u062c\u062f\u06cc\u062f \u062a\u0631\u06a9\u06cc\u0647
-currenciesDisplayName.XAU=\u0637\u0644\u0627
-currenciesDisplayName.TRL=\u0644\u06cc\u0631\u0647\u0654 \u062a\u0631\u06a9\u06cc\u0647
-currenciesDisplayName.DEM=\u0645\u0627\u0631\u06a9 \u0622\u0644\u0645\u0627\u0646
+currenciesDisplayName.SYP=\u0644\u06cc\u0631\u0647\u0654 \u0633\u0648\u0631\u06cc\u0647
+currenciesDisplayName.MTP=\u067e\u0648\u0646\u062f \u0645\u0627\u0644\u062a
+currenciesDisplayName.MTL=\u0644\u06cc\u0631\u0647\u0654 \u0645\u0627\u0644\u062a
+currenciesDisplayName.HUF=\u0641\u0648\u0631\u06cc\u0646\u062a \u0645\u062c\u0627\u0631\u0633\u062a\u0627\u0646
+currenciesDisplayName.YER=\u0631\u06cc\u0627\u0644 \u06cc\u0645\u0646
+currenciesDisplayName.TRY=\u0644\u06cc\u0631\u0647\u0654 \u062a\u0631\u06a9\u06cc\u0647
+currenciesDisplayName.NZD=\u062f\u0644\u0627\u0631 \u0632\u0644\u0627\u0646\u062f \u0646\u0648
+currenciesDisplayName.OMR=\u0631\u06cc\u0627\u0644 \u0639\u0645\u0627\u0646
+currenciesDisplayName.RSD=\u062f\u06cc\u0646\u0627\u0631 \u0635\u0631\u0628\u0633\u062a\u0627\u0646
+currenciesDisplayName.EUR=\u06cc\u0648\u0631\u0648
+currenciesDisplayName.INR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0647\u0646\u062f
+currenciesDisplayName.DOP=\u067e\u0632\u0648\u06cc \u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0627
+currenciesDisplayName.GBP=\u067e\u0648\u0646\u062f \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627
+currenciesDisplayName.NAD=\u062f\u0644\u0627\u0631 \u0646\u0627\u0645\u06cc\u0628\u06cc\u0627
+currenciesDisplayName.COP=\u067e\u0632\u0648\u06cc \u06a9\u0644\u0645\u0628\u06cc\u0627
+currenciesDisplayName.TRL=\u0644\u06cc\u0631\u0647\u0654 \u0642\u062f\u06cc\u0645 \u062a\u0631\u06a9\u06cc\u0647
+currenciesDisplayName.MAF=\u0641\u0631\u0627\u0646\u06a9 \u0645\u0631\u0627\u06a9\u0634
+currenciesDisplayName.ITL=\u0644\u06cc\u0631\u0647\u0654 \u0627\u06cc\u062a\u0627\u0644\u06cc\u0627
+currenciesDisplayName.MAD=\u062f\u0631\u0647\u0645 \u0645\u0631\u0627\u06a9\u0634
+currenciesDisplayName.CUP=\u067e\u0632\u0648\u06cc \u06a9\u0648\u0628\u0627
+currenciesDisplayName.BOP=\u067e\u0632\u0648\u06cc \u0628\u0648\u0644\u06cc\u0648\u06cc
+currenciesDisplayName.MGF=\u0641\u0631\u0627\u0646\u06a9 \u0645\u0627\u062f\u0627\u06af\u0627\u0633\u06a9\u0627\u0631
+currenciesDisplayName.ZWD=\u062f\u0644\u0627\u0631 \u0632\u06cc\u0645\u0628\u0627\u0628\u0648\u0647
 currenciesDisplayName.BIF=\u0641\u0631\u0627\u0646\u06a9 \u0628\u0648\u0631\u0648\u0646\u062f\u06cc
-currenciesDisplayName.AFN=\u0627\u0641\u063a\u0627\u0646\u06cc
+currenciesDisplayName.SRG=\u06af\u06cc\u0644\u062f\u0631 \u0633\u0648\u0631\u06cc\u0646\u0627\u0645
+currenciesDisplayName.SRD=\u062f\u0644\u0627\u0631 \u0633\u0648\u0631\u06cc\u0646\u0627\u0645
+currenciesDisplayName.GNF=\u0641\u0631\u0627\u0646\u06a9 \u06af\u06cc\u0646\u0647
+currenciesDisplayName.PLN=\u0632\u0648\u0627\u062a\u06cc \u0644\u0647\u0633\u062a\u0627\u0646
+currenciesDisplayName.CNY=\u06cc\u0648\u0622\u0646 \u0686\u06cc\u0646
+currenciesDisplayName.KMF=\u0641\u0631\u0627\u0646\u06a9 \u06a9\u0648\u0645\u0648\u0631\u0648
+currenciesDisplayName.SEK=\u06a9\u0631\u0648\u0646 \u0633\u0648\u0626\u062f
+currenciesDisplayName.AUD=\u062f\u0644\u0627\u0631 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
+currenciesDisplayName.LYD=\u062f\u06cc\u0646\u0627\u0631 \u0644\u06cc\u0628\u06cc
 currenciesDisplayName.XPT=\u067e\u0644\u0627\u062a\u06cc\u0646
-currenciesDisplayName.XAG=\u0646\u0642\u0631\u0647
-currenciesDisplayName.OMR=\u0631\u06cc\u0627\u0644 \u0639\u0645\u0627\u0646
-currenciesDisplayName.DKK=\u06a9\u0631\u0648\u0646 \u062f\u0627\u0646\u0645\u0627\u0631\u06a9
-currenciesDisplayName.IRR=\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646
-currenciesDisplayName.JOD=\u062f\u06cc\u0646\u0627\u0631 \u0627\u0631\u062f\u0646
-currenciesDisplayName.AFA=\u0627\u0641\u063a\u0627\u0646\u06cc \u0642\u062f\u06cc\u0645
+currenciesDisplayName.YDD=\u062f\u06cc\u0646\u0627\u0631 \u06cc\u0645\u0646
+currenciesDisplayName.JMD=\u062f\u0644\u0627\u0631 \u062c\u0627\u0645\u0627\u0626\u06cc\u06a9\u0627
+currenciesDisplayName.KYD=\u062f\u0644\u0627\u0631 \u062c\u0632\u0627\u06cc\u0631 \u06a9\u0650\u06cc\u0645\u0646
+currenciesDisplayName.CHF=\u0641\u0631\u0627\u0646\u06a9 \u0633\u0648\u0626\u06cc\u0633
+currenciesDisplayName.NLG=\u06af\u06cc\u0644\u062f\u0631 \u0647\u0644\u0646\u062f
+currenciesDisplayName.BBD=\u062f\u0644\u0627\u0631 \u0628\u0627\u0631\u0628\u0627\u062f\u0648\u0633
+currenciesDisplayName.MLF=\u0641\u0631\u0627\u0646\u06a9 \u0645\u0627\u0644\u06cc
+currenciesDisplayName.BHD=\u062f\u06cc\u0646\u0627\u0631 \u0628\u062d\u0631\u06cc\u0646
+currenciesDisplayName.PKR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u067e\u0627\u06a9\u0633\u062a\u0627\u0646
+currenciesDisplayName.TWD=\u062f\u0644\u0627\u0631 \u062c\u062f\u06cc\u062f \u062a\u0627\u06cc\u0648\u0627\u0646
+currenciesDisplayName.MXN=\u067e\u0632\u0648\u06cc \u0645\u06a9\u0632\u06cc\u06a9
+currenciesDisplayName.ATS=\u0634\u06cc\u0644\u06cc\u0646\u06af \u0627\u062a\u0631\u06cc\u0634
 currenciesDisplayName.XPD=\u067e\u0627\u0644\u0627\u062f\u06cc\u0645
-currenciesSymbol.AFA=\u0627\u0641\u063a\u0627\u0646\u06cc
+currenciesDisplayName.DZD=\u062f\u06cc\u0646\u0627\u0631 \u0627\u0644\u062c\u0632\u0627\u06cc\u0631
+currenciesDisplayName.BND=\u062f\u0644\u0627\u0631 \u0628\u0631\u0648\u0646\u0626\u06cc
+currenciesDisplayName.TJS=\u0633\u0627\u0645\u0627\u0646\u06cc \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646
+currenciesDisplayName.TJR=\u0631\u0648\u0628\u0644 \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646
+currenciesDisplayName.RWF=\u0641\u0631\u0627\u0646\u06a9 \u0631\u0648\u0627\u0646\u062f\u0627
+currenciesDisplayName.AZN=\u0645\u0646\u0627\u062a \u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646
+currenciesDisplayName.LRD=\u062f\u0644\u0627\u0631 \u0644\u06cc\u0628\u0631\u06cc\u0627
+currenciesDisplayName.AZM=\u0645\u0646\u0627\u062a \u0642\u062f\u06cc\u0645 \u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646
+currenciesDisplayName.BZD=\u062f\u0644\u0627\u0631 \u0628\u0644\u06cc\u0632
+currenciesDisplayName.IRR=\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646
+currenciesDisplayName.GYD=\u062f\u0644\u0627\u0631 \u06af\u0648\u06cc\u0627\u0646
+currenciesDisplayName.CAD=\u062f\u0644\u0627\u0631 \u06a9\u0627\u0646\u0627\u062f\u0627
+currenciesDisplayName.SDD=\u062f\u06cc\u0646\u0627\u0631 \u0642\u062f\u06cc\u0645 \u0633\u0648\u062f\u0627\u0646
 currenciesSymbol.IRR=\ufdfc
-currenciesSymbol.AFN=\u0627\u0641\u063a\u0627\u0646\u06cc
-shortMonths=®®®®®®®®®®®®®
-months=\u0698\u0627\u0646\u0648\u06cc\u0647®\u0641\u0648\u0631\u06cc\u0647®\u0645\u0627\u0631\u0633®\u0622\u0648\u0631\u06cc\u0644®\u0645\u0647®\u0698\u0648\u0626\u0646®\u0698\u0648\u0626\u06cc\u0647®\u0627\u0648\u062a®\u0633\u067e\u062a\u0627\u0645\u0628\u0631®\u0627\u06a9\u062a\u0628\u0631®\u0646\u0648\u0627\u0645\u0628\u0631®\u062f\u0633\u0627\u0645\u0628\u0631®®
-shortWeekdays=®®®®®®®®
-weekdays=®\u06cc\u06a9\u0634\u0646\u0628\u0647®\u062f\u0648\u0634\u0646\u0628\u0647®\u0633\u0647\u200c\u0634\u0646\u0628\u0647®\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647®\u067e\u0646\u062c\u0634\u0646\u0628\u0647®\u062c\u0645\u0639\u0647®\u0634\u0646\u0628\u0647®
-eras=\u0642.\u0645.®\u0645.®
-ampms=\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631®\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631®
-shortDateFormat=yy/M/d G
+shortMonths=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u0698\u0627\u0646\u0648\u06cc\u0647\u00ae\u0641\u0648\u0631\u06cc\u0647\u00ae\u0645\u0627\u0631\u0633\u00ae\u0622\u0648\u0631\u06cc\u0644\u00ae\u0645\u0647\u00ae\u0698\u0648\u0626\u0646\u00ae\u0698\u0648\u0626\u06cc\u0647\u00ae\u0627\u0648\u062a\u00ae\u0633\u067e\u062a\u0627\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0628\u0631\u00ae\u0646\u0648\u0627\u0645\u0628\u0631\u00ae\u062f\u0633\u0627\u0645\u0628\u0631\u00ae\u00ae
+shortWeekdays=\u00ae\u06cc\u06a9\u0634\u0646\u0628\u0647\u00ae\u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u0633\u0647\u200c\u0634\u0646\u0628\u0647\u00ae\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647\u00ae\u067e\u0646\u062c\u0634\u0646\u0628\u0647\u00ae\u062c\u0645\u0639\u0647\u00ae\u0634\u0646\u0628\u0647\u00ae
+weekdays=\u00ae\u06cc\u06a9\u0634\u0646\u0628\u0647\u00ae\u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u0633\u0647\u200c\u0634\u0646\u0628\u0647\u00ae\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647\u00ae\u067e\u0646\u062c\u0634\u0646\u0628\u0647\u00ae\u062c\u0645\u0639\u0647\u00ae\u0634\u0646\u0628\u0647\u00ae
+eras=\u0642.\u0645.\u00ae\u0645.\u00ae
+ampms=\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631\u00ae\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631\u00ae
+shortDateFormat=yy/M/d
 mediumDateFormat=yyyy/M/d
 longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE d MMMM yyyy G
+fullDateFormat=EEEE d MMMM yyyy GGGG
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ss (zz)
+longTimeFormat=H:mm:ss (zzzz)
 fullTimeFormat=H:mm:ss (zzzz)
-zoneStrings=Asia/Tehran®IRST®\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0627\u06cc\u0631\u0627\u0646®IRDT®\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u06cc\u0631\u0627\u0646®©
+zoneStrings=Europe_Central\u00ae\u0648\u0642\u062a \u0645\u0631\u06a9\u0632 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0631\u06a9\u0632 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u00a9Africa_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u063a\u0631\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\u00a9Urumqi\u00ae\u0648\u0642\u062a \u0627\u0631\u0648\u0645\u0686\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Irkutsk\u00ae\u0648\u0642\u062a \u0627\u06cc\u0631\u06a9\u0648\u062a\u0633\u06a9\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u06cc\u0631\u06a9\u0648\u062a\u0633\u06a9\u00ae\u00ae\u00a9Papua_New_Guinea\u00ae\u0648\u0642\u062a \u067e\u0627\u067e\u0648\u0627 \u06af\u06cc\u0646\u0647\u0654 \u0646\u0648\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0634\u0631\u0642 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0634\u0631\u0642 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u00a9Kazakhstan_Western\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u063a\u0631\u0628 \u0642\u0632\u0627\u0642\u0633\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Bangladesh\u00ae\u0648\u0642\u062a \u0628\u0646\u06af\u0644\u0627\u062f\u0634\u00ae\u00ae\u00ae\u00ae\u00a9Maldives\u00ae\u0648\u0642\u062a \u0645\u0627\u0644\u062f\u06cc\u0648\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00ae\u0648\u0642\u062a \u0633\u0645\u0631\u0642\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0633\u0645\u0631\u0642\u0646\u062f\u00ae\u00ae\u00a9Indian_Ocean\u00ae\u0648\u0642\u062a \u0627\u0642\u06cc\u0627\u0646\u0648\u0633 \u0647\u0646\u062f\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00ae\u0648\u0642\u062a \u0641\u06cc\u062c\u06cc\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0641\u06cc\u062c\u06cc\u00ae\u00ae\u00a9Singapore\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0633\u0646\u06af\u0627\u067e\u0648\u0631\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00ae\u0648\u0642\u062a \u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u00ae\u00ae\u00a9Amazon\u00ae\u0648\u0642\u062a \u0622\u0645\u0627\u0632\u0648\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0622\u0645\u0627\u0632\u0648\u0646\u00ae\u00ae\u00a9Arabian\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0639\u0631\u0628\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0639\u0631\u0628\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Alaska\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0622\u0644\u0627\u0633\u06a9\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0622\u0644\u0627\u0633\u06a9\u0627\u00ae\u00ae\u00a9Dutch_Guiana\u00ae\u0648\u0642\u062a \u06af\u0648\u06cc\u0627\u0646 \u0647\u0644\u0646\u062f\u00ae\u00ae\u00ae\u00ae\u00a9Easter\u00ae\u0648\u0642\u062a \u062c\u0632\u06cc\u0631\u0647\u0654 \u0627\u06cc\u0633\u062a\u0631\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062c\u0632\u06cc\u0631\u0647\u0654 \u0627\u06cc\u0633\u062a\u0631\u00ae\u00ae\u00a9Hong_Kong\u00ae\u0648\u0642\u062a \u0647\u0646\u06af\u200c\u06a9\u0646\u06af\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0647\u0646\u06af\u200c\u06a9\u0646\u06af\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u0648\u0642\u062a \u0634\u0631\u0642 \u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00ae\u0648\u0642\u062a \u0627\u0631\u0645\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u0631\u0645\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9America_Pacific\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u063a\u0631\u0628 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u063a\u0631\u0628 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u00a9Tajikistan\u00ae\u0648\u0642\u062a \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00ae\u0648\u0642\u062a \u06af\u0648\u06cc\u0627\u0646 \u0641\u0631\u0627\u0646\u0633\u0647\u00ae\u00ae\u00ae\u00ae\u00a9Nepal\u00ae\u0648\u0642\u062a \u0646\u067e\u0627\u0644\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u0648\u0642\u062a \u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u00ae\u00a9Yerevan\u00ae\u0648\u0642\u062a \u0627\u06cc\u0631\u0648\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u06cc\u0631\u0648\u0627\u0646\u00ae\u00ae\u00a9Paraguay\u00ae\u0648\u0642\u062a \u067e\u0627\u0631\u0627\u06af\u0648\u0626\u0647\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u067e\u0627\u0631\u0627\u06af\u0648\u0626\u0647\u00ae\u00ae\u00a9Seychelles\u00ae\u0648\u0642\u062a \u0633\u06cc\u0634\u0644\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0627\u0633\u0631\u0627\u0626\u06cc\u0644\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u0633\u0631\u0627\u0626\u06cc\u0644\u00ae\u00ae\u00a9Cocos\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9\u0648\u0633\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u063a\u0631\u0628 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0648\u0642\u062a \u0634\u0631\u0642 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0634\u0631\u0642 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u00a9North_Mariana\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u06cc\u0627\u0646\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Western\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u063a\u0631\u0628 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u063a\u0631\u0628 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u00a9Moscow\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0645\u0633\u06a9\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0633\u06a9\u0648\u00ae\u00ae\u00a9Kyrgystan\u00ae\u0648\u0642\u062a \u0642\u0631\u0642\u06cc\u0632\u0633\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00ae\u0648\u0642\u062a \u0648\u0646\u0632\u0648\u0626\u0644\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Peru\u00ae\u0648\u0642\u062a \u067e\u0631\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u067e\u0631\u0648\u00ae\u00ae\u00a9Christmas\u00ae\u0648\u0642\u062a \u062c\u0632\u06cc\u0631\u0647\u0654 \u06a9\u0631\u06cc\u0633\u0645\u0633\u00ae\u00ae\u00ae\u00ae\u00a9South_Georgia\u00ae\u0648\u0642\u062a \u062c\u0648\u0631\u062c\u06cc\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u06a9\u0631\u0647\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06a9\u0631\u0647\u00ae\u00ae\u00a9Argentina_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u0648\u0642\u062a \u0634\u0631\u0642 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00ae\u0648\u0642\u062a \u062a\u0631\u06a9\u0645\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062a\u0631\u06a9\u0645\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Atlantic\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0622\u062a\u0644\u0627\u0646\u062a\u06cc\u06a9\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0622\u062a\u0644\u0627\u0646\u062a\u06cc\u06a9\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0622\u0644\u0627\u0633\u06a9\u0627\u2010\u0647\u0627\u0648\u0627\u0626\u06cc\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0622\u0644\u0627\u0633\u06a9\u0627\u2010\u0647\u0627\u0648\u0627\u0626\u06cc\u00ae\u00ae\u00a9Uzbekistan\u00ae\u0648\u0642\u062a \u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Cape_Verde\u00ae\u0648\u0642\u062a \u06a9\u06cc\u067e \u0648\u0631\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06a9\u06cc\u067e \u0648\u0631\u062f\u00ae\u00ae\u00a9Tbilisi\u00ae\u0648\u0642\u062a \u062a\u0641\u0644\u06cc\u0633\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062a\u0641\u0644\u06cc\u0633\u00ae\u00ae\u00a9Malaysia\u00ae\u0648\u0642\u062a \u0645\u0627\u0644\u0632\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0634\u0631\u0642 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0634\u0631\u0642 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u00a9Baku\u00ae\u0648\u0642\u062a \u0628\u0627\u06a9\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0628\u0627\u06a9\u0648\u00ae\u00ae\u00a9Davis\u00ae\u0648\u0642\u062a \u062f\u06cc\u0648\u06cc\u0633\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00ae\u0648\u0642\u062a \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Samoa\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0633\u0627\u0645\u0648\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Palau\u00ae\u0648\u0642\u062a \u067e\u0627\u0644\u0627\u0626\u0648\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u06cc\u0645\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00ae\u0648\u0642\u062a \u0627\u06a9\u0648\u0627\u062f\u0648\u0631\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u063a\u0631\u0628 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u00a9Africa_Central\u00ae\u0648\u0642\u062a \u0645\u0631\u06a9\u0632 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u0648\u0642\u062a \u062a\u0631\u06a9\u06cc\u0647\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062a\u0631\u06a9\u06cc\u0647\u00ae\u00ae\u00a9Africa_Southern\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u062c\u0646\u0648\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00ae\u0648\u0642\u062a \u0639\u0634\u0642\u200c\u0622\u0628\u0627\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0639\u0634\u0642\u200c\u0622\u0628\u0627\u062f\u00ae\u00ae\u00a9Bering\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0628\u0631\u06cc\u0646\u06af\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0628\u0631\u06cc\u0646\u06af\u00ae\u00ae\u00a9Guam\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u06af\u0648\u0627\u0645\u00ae\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u0634\u0627\u0644\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00ae\u0648\u0642\u062a \u0628\u0648\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00ae\u0648\u0642\u062a \u06a9\u0631\u0627\u0686\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00ae\u0648\u0642\u062a \u062a\u0627\u0634\u06a9\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062a\u0627\u0634\u06a9\u0646\u062f\u00ae\u00ae\u00a9Nauru\u00ae\u0648\u0642\u062a \u0646\u0627\u0626\u0648\u0631\u0648\u00ae\u00ae\u00ae\u00ae\u00a9Tuvalu\u00ae\u0648\u0642\u062a \u062a\u0648\u0648\u0627\u0644\u0648\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00ae\u0648\u0642\u062a \u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u00ae\u00ae\u00a9East_Timor\u00ae\u0648\u0642\u062a \u062a\u06cc\u0645\u0648\u0631 \u0634\u0631\u0642\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00ae\u0648\u0642\u062a \u06cc\u0627\u06a9\u0648\u062a\u0633\u06a9\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06cc\u0627\u06a9\u0648\u062a\u0633\u06a9\u00ae\u00ae\u00a9Iran\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0627\u06cc\u0631\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u06cc\u0631\u0627\u0646\u00ae\u00ae\u00a9Argentina\u00ae\u0648\u0642\u062a \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646\u00ae\u00ae\u00a9Tonga\u00ae\u0648\u0642\u062a \u062a\u0648\u0646\u06af\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062a\u0648\u0646\u06af\u0627\u00ae\u00ae\u00a9New_Zealand\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0632\u0644\u0627\u0646\u062f \u0646\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0632\u0644\u0627\u0646\u062f \u0646\u0648\u00ae\u00ae\u00a9China\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0686\u06cc\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0686\u06cc\u0646\u00ae\u00ae\u00a9Indonesia_Central\u00ae\u0648\u0642\u062a \u0645\u0631\u06a9\u0632 \u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u06a9\u0648\u0647\u0633\u062a\u0627\u0646\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06a9\u0648\u0647\u0633\u062a\u0627\u0646\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u00a9India\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0647\u0646\u062f\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00ae\u0648\u0642\u062a \u0633\u0648\u0631\u06cc\u0646\u0627\u0645\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00ae\u0648\u0642\u062a \u06af\u0631\u06cc\u0646\u0648\u06cc\u0686\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0644\u06a9\u0644\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0644\u06a9\u0644\u0646\u062f\u00ae\u00ae\u00a9Indochina\u00ae\u0648\u0642\u062a \u0647\u0646\u062f\u0648\u0686\u06cc\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00ae\u0648\u0642\u062a \u062c\u0632\u06cc\u0631\u0647\u0654 \u0648\u06cc\u06a9\u00ae\u00ae\u00ae\u00ae\u00a9Uruguay\u00ae\u0648\u0642\u062a \u0627\u0631\u0648\u06af\u0648\u0626\u0647\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u0631\u0648\u06af\u0648\u0626\u0647\u00ae\u00ae\u00a9Chile\u00ae\u0648\u0642\u062a \u0634\u06cc\u0644\u06cc\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0634\u06cc\u0644\u06cc\u00ae\u00ae\u00a9Vanuatu\u00ae\u0648\u0642\u062a \u0648\u0627\u0646\u0627\u062a\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0648\u0627\u0646\u0627\u062a\u0648\u00ae\u00ae\u00a9Brasilia\u00ae\u0648\u0642\u062a \u0628\u0631\u0627\u0632\u06cc\u0644\u06cc\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0628\u0631\u0627\u0632\u06cc\u0644\u06cc\u0627\u00ae\u00ae\u00a9Tahiti\u00ae\u0648\u0642\u062a \u062a\u0627\u0647\u06cc\u062a\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0634\u0631\u0642 \u0642\u0632\u0627\u0642\u0633\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0645\u0631\u06a9\u0632 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0631\u06a9\u0632 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u00a9Lanka\u00ae\u0648\u0642\u062a \u0644\u0627\u0646\u06a9\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u0648\u0642\u062a \u0634\u0631\u0642 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0634\u0631\u0642 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u00a9Japan\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0698\u0627\u067e\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0698\u0627\u067e\u0646\u00ae\u00ae\u00a9Greenland_Central\u00ae\u0648\u0642\u062a \u0645\u0631\u06a9\u0632 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0631\u06a9\u0632 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u00a9Pakistan\u00ae\u0648\u0642\u062a \u067e\u0627\u06a9\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u067e\u0627\u06a9\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Bolivia\u00ae\u0648\u0642\u062a \u0628\u0648\u0644\u06cc\u0648\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00ae\u0648\u0642\u062a \u06a9\u0627\u0634\u063a\u0631\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0645\u0631\u06a9\u0632 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0631\u06a9\u0632 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u00a9Guyana\u00ae\u0648\u0642\u062a \u06af\u0648\u06cc\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u0648\u0642\u062a \u06af\u0631\u062c\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06af\u0631\u062c\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Colombia\u00ae\u0648\u0642\u062a \u06a9\u0644\u0645\u0628\u06cc\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06a9\u0644\u0645\u0628\u06cc\u0627\u00ae\u00ae\u00a9Galapagos\u00ae\u0648\u0642\u062a \u06af\u0627\u0644\u0627\u067e\u0627\u06af\u0648\u0633\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u06a9\u0648\u0628\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06a9\u0648\u0628\u0627\u00ae\u00ae\u00a9Myanmar\u00ae\u0648\u0642\u062a \u0645\u06cc\u0627\u0646\u0645\u0627\u0631\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00ae\u0648\u0642\u062a \u0645\u0627\u06a9\u0627\u0626\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0627\u06a9\u0627\u0626\u0648\u00ae\u00ae\u00a9
 territories.TL=\u062a\u06cc\u0645\u0648\u0631 \u0634\u0631\u0642\u06cc
 territories.TK=\u062a\u0648\u06a9\u0644\u0627\u0626\u0648
 territories.TJ=\u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646
@@ -98,11 +175,13 @@ territories.GN=\u06af\u06cc\u0646\u0647
 territories.GM=\u06af\u0627\u0645\u0628\u06cc\u0627
 territories.GL=\u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f
 territories.SV=\u0627\u0644\u0633\u0627\u0644\u0648\u0627\u062f\u0648\u0631
-territories.SU=\u0627\u062a\u062d\u0627\u062f \u062c\u0645\u0627\u0647\u06cc\u0631 \u0633\u0648\u0633\u06cc\u0627\u0644\u06cc\u0633\u062a\u06cc \u0634\u0648\u0631\u0648\u06cc
+territories.062=\u062c\u0646\u0648\u0628 \u0622\u0633\u06cc\u0627 \u0648 \u0622\u0633\u06cc\u0627\u06cc \u0645\u06cc\u0627\u0646\u0647
 territories.ST=\u0633\u0627\u0626\u0648 \u062a\u0648\u0645\u0647 \u0648 \u067e\u0631\u06cc\u0646\u0633\u06cc\u067e\u0647
 territories.GI=\u06af\u06cc\u0628\u0631\u0627\u0644\u062a\u0627\u0631
+territories.061=\u067e\u0644\u06cc\u200c\u0646\u0632\u06cc
 territories.GH=\u063a\u0646\u0627
 territories.SR=\u0633\u0648\u0631\u06cc\u0646\u0627\u0645
+territories.GG=\u06af\u0648\u0631\u0646\u0633\u06cc
 territories.GF=\u06af\u0648\u06cc\u0627\u0646 \u0641\u0631\u0627\u0646\u0633\u0647
 territories.GE=\u06af\u0631\u062c\u0633\u062a\u0627\u0646
 territories.SO=\u0633\u0648\u0645\u0627\u0644\u06cc
@@ -124,33 +203,40 @@ territories.SB=\u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u06cc\u0645\u0627\u06
 territories.SA=\u0639\u0631\u0628\u0633\u062a\u0627\u0646 \u0633\u0639\u0648\u062f\u06cc
 territories.FR=\u0641\u0631\u0627\u0646\u0633\u0647
 territories.FO=\u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0631\u0648
+territories.057=\u0646\u0627\u062d\u06cc\u0647\u0654 \u0645\u06cc\u06a9\u0631\u0648\u0646\u0632\u06cc
 territories.FM=\u0645\u06cc\u06a9\u0631\u0648\u0646\u0632\u06cc
 territories.RW=\u0631\u0648\u0627\u0646\u062f\u0627
-territories.053=\u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627 \u0648 \u0632\u0644\u0627\u0646\u062f \u0646\u0648
+territories.054=\u0645\u0644\u0627\u0646\u0632\u06cc
 territories.FK=\u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0644\u06a9\u0644\u0646\u062f
+territories.053=\u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627 \u0648 \u0632\u0644\u0627\u0646\u062f \u0646\u0648
 territories.RU=\u0631\u0648\u0633\u06cc\u0647
 territories.FJ=\u0641\u06cc\u062c\u06cc
 territories.FI=\u0641\u0646\u0644\u0627\u0646\u062f
+territories.RS=\u0635\u0631\u0628\u0633\u062a\u0627\u0646
 territories.RO=\u0631\u0648\u0645\u0627\u0646\u06cc
 territories.RE=\u0631\u06cc\u0648\u0646\u06cc\u0648\u0646
 territories.ET=\u0627\u062a\u06cc\u0648\u067e\u06cc
 territories.ES=\u0627\u0633\u067e\u0627\u0646\u06cc\u0627
 territories.ER=\u0627\u0631\u06cc\u062a\u0631\u0647
+territories.QU=\u0627\u062a\u062d\u0627\u062f\u06cc\u0647\u0654 \u0627\u0631\u0648\u067e\u0627
 territories.EH=\u0635\u062d\u0631\u0627\u06cc \u063a\u0631\u0628\u06cc
 territories.EG=\u0645\u0635\u0631
 territories.EE=\u0627\u0633\u062a\u0648\u0646\u06cc
+territories.QO=\u0627\u0642\u06cc\u0627\u0646\u0648\u0633\u06cc\u0647\u0654 \u062f\u0648\u0631\u062f\u0633\u062a
 territories.EC=\u0627\u06a9\u0648\u0627\u062f\u0631
 territories.DZ=\u0627\u0644\u062c\u0632\u0627\u06cc\u0631
 territories.QA=\u0642\u0637\u0631
 territories.039=\u062c\u0646\u0648\u0628 \u0627\u0631\u0648\u067e\u0627
 territories.DO=\u062c\u0645\u0647\u0648\u0631\u06cc \u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0646
 territories.PY=\u067e\u0627\u0631\u0627\u06af\u0648\u0626\u0647
+territories.DM=\u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9
 territories.035=\u062c\u0646\u0648\u0628 \u0634\u0631\u0642\u06cc \u0622\u0633\u06cc\u0627
-territories.DM=\u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0627
 territories.PW=\u067e\u0627\u0644\u0627\u0626\u0648
+territories.034=\u062c\u0646\u0648\u0628 \u0622\u0633\u06cc\u0627
 territories.DK=\u062f\u0627\u0646\u0645\u0627\u0631\u06a9
 territories.DJ=\u062c\u06cc\u0628\u0648\u062a\u06cc
 territories.PT=\u067e\u0631\u062a\u063a\u0627\u0644
+territories.PS=\u0641\u0644\u0633\u0637\u06cc\u0646
 territories.030=\u0634\u0631\u0642 \u0622\u0633\u06cc\u0627
 territories.PR=\u067e\u0648\u0631\u062a\u0648 \u0631\u06cc\u06a9\u0648
 territories.DE=\u0622\u0644\u0645\u0627\u0646
@@ -168,7 +254,7 @@ territories.CX=\u062c\u0632\u06cc\u0631\u0647\u0654 \u06a9\u0631\u06cc\u0633\u06
 territories.CV=\u06a9\u06cc\u067e \u0648\u0631\u062f
 territories.PA=\u067e\u0627\u0646\u0627\u0645\u0627
 territories.CU=\u06a9\u0648\u0628\u0627
-territories.CS=\u0635\u0631\u0628\u0633\u062a\u0627\u0646
+territories.CS=\u0635\u0631\u0628\u0633\u062a\u0627\u0646 \u0648 \u0645\u0648\u0646\u062a\u0647\u200c\u0646\u06af\u0631\u0648
 territories.CR=\u06a9\u0627\u0633\u062a\u0627\u0631\u06cc\u06a9\u0627
 territories.029=\u06a9\u0627\u0631\u0627\u0626\u06cc\u0628
 territories.CO=\u06a9\u0644\u0645\u0628\u06cc\u0627
@@ -176,12 +262,12 @@ territories.CN=\u0686\u06cc\u0646
 territories.CM=\u06a9\u0627\u0645\u0631\u0648\u0646
 territories.CL=\u0634\u06cc\u0644\u06cc
 territories.CK=\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9
-territories.CI=\u0633\u0627\u062d\u0644 \u0639\u0627\u062c
 territories.021=\u0634\u0645\u0627\u0644 \u0627\u0645\u0631\u06cc\u06a9\u0627
+territories.CI=\u0633\u0627\u062d\u0644 \u0639\u0627\u062c
 territories.CH=\u0633\u0648\u0626\u06cc\u0633
-territories.CG=\u06a9\u0648\u0646\u06af\u0648
+territories.CG=\u06a9\u0646\u06af\u0648 \u0628\u0631\u0627\u0632\u0648\u06cc\u0644
 territories.CF=\u062c\u0645\u0647\u0648\u0631\u06cc \u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc
-territories.CD=\u062c\u0645\u0647\u0648\u0631\u06cc \u062f\u0645\u0648\u06a9\u0631\u0627\u062a\u06cc\u06a9 \u06a9\u0646\u06af\u0648
+territories.CD=\u06a9\u0646\u06af\u0648 \u06a9\u06cc\u0646\u0634\u0627\u0633\u0627
 territories.CC=\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9\u0648\u0633
 territories.OM=\u0639\u0645\u0627\u0646
 territories.CA=\u06a9\u0627\u0646\u0627\u062f\u0627
@@ -196,23 +282,26 @@ territories.BR=\u0628\u0631\u0632\u06cc\u0644
 territories.019=\u0627\u0645\u0631\u06cc\u06a9\u0627
 territories.018=\u062c\u0646\u0648\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627
 territories.NZ=\u0632\u0644\u0627\u0646\u062f \u0646\u0648
-territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc
 territories.017=\u0645\u0631\u06a9\u0632 \u0627\u0641\u0631\u06cc\u0642\u0627
+territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc
 territories.BN=\u0628\u0631\u0648\u0646\u0626\u06cc
-territories.BM=\u0628\u0631\u0645\u0648\u062f\u0627
 territories.015=\u0634\u0645\u0627\u0644 \u0627\u0641\u0631\u06cc\u0642\u0627
+territories.BM=\u0628\u0631\u0645\u0648\u062f\u0627
 territories.014=\u0634\u0631\u0642 \u0627\u0641\u0631\u06cc\u0642\u0627
+territories.BL=\u0633\u0646\u062a \u0628\u0627\u0631\u062a\u0644\u06cc\u0645\u06cc
 territories.013=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc
 territories.NU=\u0646\u06cc\u0648\u0626\u0647
 territories.BJ=\u0628\u0646\u06cc\u0646
-territories.BI=\u0628\u0648\u0631\u0648\u0646\u062f\u06cc
 territories.011=\u063a\u0631\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627
+territories.BI=\u0628\u0648\u0631\u0648\u0646\u062f\u06cc
+territories.172=\u06a9\u0634\u0648\u0631\u0647\u0627\u06cc \u0645\u0633\u062a\u0642\u0644 \u0645\u0634\u062a\u0631\u06a9\u200c\u0627\u0644\u0645\u0646\u0627\u0641\u0639
 territories.BH=\u0628\u062d\u0631\u06cc\u0646
 territories.NR=\u0646\u0627\u0626\u0648\u0631\u0648
 territories.BG=\u0628\u0644\u063a\u0627\u0631\u0633\u062a\u0627\u0646
 territories.BF=\u0628\u0648\u0631\u06a9\u06cc\u0646\u0627\u0641\u0627\u0633\u0648
 territories.NP=\u0646\u067e\u0627\u0644
 territories.BE=\u0628\u0644\u0698\u06cc\u06a9
+territories.ZZ=\u0646\u0627\u062d\u06cc\u0647\u0654 \u0646\u0627\u0645\u0634\u062e\u0635 \u06cc\u0627 \u0646\u0627\u0645\u0639\u062a\u0628\u0631
 territories.NO=\u0646\u0631\u0648\u0698
 territories.BD=\u0628\u0646\u06af\u0644\u0627\u062f\u0634
 territories.BB=\u0628\u0627\u0631\u0628\u0627\u062f\u0648\u0633
@@ -224,6 +313,7 @@ territories.NG=\u0646\u06cc\u062c\u0631\u06cc\u0647
 territories.NF=\u062c\u0632\u06cc\u0631\u0647\u0654 \u0646\u0648\u0631\u0641\u0648\u0644\u06a9
 territories.AZ=\u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646
 territories.NE=\u0646\u06cc\u062c\u0631
+territories.AX=\u062c\u0632\u0627\u06cc\u0631 \u0622\u0644\u0627\u0646\u062f
 territories.NC=\u06a9\u0627\u0644\u062f\u0648\u0646\u06cc\u0627\u06cc \u062c\u062f\u06cc\u062f
 territories.AW=\u0622\u0631\u0648\u0628\u0627
 territories.ZM=\u0632\u0627\u0645\u0628\u06cc\u0627
@@ -232,15 +322,15 @@ territories.AU=\u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
 territories.AT=\u0627\u062a\u0631\u06cc\u0634
 territories.AS=\u0633\u0627\u0645\u0648\u0627\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627
 territories.AR=\u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646
-territories.009=\u0627\u0642\u06cc\u0627\u0646\u0648\u0633\u06cc\u0647
 territories.AQ=\u062c\u0646\u0648\u0628\u06af\u0627\u0646
+territories.009=\u0627\u0642\u06cc\u0627\u0646\u0648\u0633\u06cc\u0647
 territories.MZ=\u0645\u0648\u0632\u0627\u0645\u0628\u06cc\u06a9
 territories.AO=\u0622\u0646\u06af\u0648\u0644\u0627
 territories.MY=\u0645\u0627\u0644\u0632\u06cc
 territories.AN=\u0622\u0646\u062a\u06cc\u0644 \u0647\u0644\u0646\u062f
 territories.MX=\u0645\u06a9\u0632\u06cc\u06a9
-territories.005=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
 territories.AM=\u0627\u0631\u0645\u0646\u0633\u062a\u0627\u0646
+territories.005=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
 territories.MW=\u0645\u0627\u0644\u0627\u0648\u06cc
 territories.AL=\u0622\u0644\u0628\u0627\u0646\u06cc
 territories.MV=\u0645\u0627\u0644\u062f\u06cc\u0648
@@ -249,8 +339,8 @@ territories.ZA=\u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u062c\u0646\u0648\u06
 territories.MU=\u0645\u0648\u0631\u06cc\u062a\u06cc\u0648\u0633
 territories.002=\u0627\u0641\u0631\u06cc\u0642\u0627
 territories.MT=\u0645\u0627\u0644\u062a
-territories.001=\u062c\u0647\u0627\u0646
 territories.AI=\u0622\u0646\u06af\u06cc\u0644
+territories.001=\u062c\u0647\u0627\u0646
 territories.MS=\u0645\u0648\u0646\u062a\u200c\u0633\u0631\u0627\u062a
 territories.MR=\u0645\u0648\u0631\u06cc\u062a\u0627\u0646\u06cc
 territories.AG=\u0622\u0646\u062a\u06cc\u06af\u0648\u0627 \u0648 \u0628\u0627\u0631\u0628\u0648\u062f\u0627
@@ -258,7 +348,7 @@ territories.MQ=\u0645\u0627\u0631\u062a\u06cc\u0646\u06cc\u06a9
 territories.AF=\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646
 territories.MP=\u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u06cc\u0627\u0646\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc
 territories.AE=\u0627\u0645\u0627\u0631\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0639\u0631\u0628\u06cc
-territories.MO=\u0645\u0627\u06a9\u0627\u0626\u0648\u060c \u0646\u0627\u062d\u06cc\u0647\u0654 \u0648\u06cc\u0698\u0647\u0654 \u062d\u06a9\u0648\u0645\u062a\u06cc \u0686\u06cc\u0646
+territories.MO=\u0645\u0627\u06a9\u0627\u0626\u0648
 territories.AD=\u0622\u0646\u062f\u0648\u0631\u0627
 territories.MN=\u0645\u063a\u0648\u0644\u0633\u062a\u0627\u0646
 territories.MM=\u0645\u06cc\u0627\u0646\u0645\u0627\u0631
@@ -267,6 +357,8 @@ territories.MK=\u0645\u0642\u062f\u0648\u0646\u06cc\u0647
 territories.YT=\u0645\u0627\u06cc\u0648\u062a
 territories.MH=\u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u0634\u0627\u0644
 territories.MG=\u0645\u0627\u062f\u0627\u06af\u0627\u0633\u06a9\u0627\u0631
+territories.MF=\u0633\u0646\u062a \u0645\u0627\u0631\u062a\u06cc\u0646
+territories.ME=\u0645\u0648\u0646\u062a\u0647\u200c\u0646\u06af\u0631\u0648
 territories.MD=\u0645\u0648\u0644\u062f\u0648\u0648\u0627
 territories.MC=\u0645\u0648\u0646\u0627\u06a9\u0648
 territories.MA=\u0645\u0631\u0627\u06a9\u0634
@@ -290,6 +382,7 @@ territories.KZ=\u0642\u0632\u0627\u0642\u0633\u062a\u0627\u0646
 territories.KY=\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0650\u06cc\u0645\u0646
 territories.KW=\u06a9\u0648\u06cc\u062a
 territories.145=\u063a\u0631\u0628 \u0622\u0633\u06cc\u0627
+territories.143=\u0622\u0633\u06cc\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc
 territories.142=\u0622\u0633\u06cc\u0627
 territories.KR=\u06a9\u0631\u0647\u0654 \u062c\u0646\u0648\u0628\u06cc
 territories.KP=\u06a9\u0631\u0647\u0654 \u0634\u0645\u0627\u0644\u06cc
@@ -305,9 +398,10 @@ territories.JP=\u0698\u0627\u067e\u0646
 territories.JO=\u0627\u0631\u062f\u0646
 territories.JM=\u062c\u0627\u0645\u0627\u0626\u06cc\u06a9\u0627
 territories.VU=\u0648\u0627\u0646\u0648\u0627\u062a\u0648
+territories.JE=\u062c\u0631\u0633\u06cc
 territories.VN=\u0648\u06cc\u062a\u0646\u0627\u0645
 territories.VI=\u062c\u0632\u0627\u06cc\u0631 \u0648\u06cc\u0631\u062c\u06cc\u0646 \u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647
-territories.VG=\u062c\u0632\u0627\u06cc\u0631 \u0648\u06cc\u0631\u062c\u06cc\u0646 \u0627\u0646\u06af\u0644\u0633\u062a\u0627\u0646
+territories.VG=\u062c\u0632\u0627\u06cc\u0631 \u0648\u06cc\u0631\u062c\u06cc\u0646 \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627
 territories.VE=\u0648\u0646\u0632\u0648\u0626\u0644\u0627
 territories.VC=\u0633\u0646\u062a \u0648\u06cc\u0646\u0633\u0646\u062a \u0648 \u06af\u0631\u0646\u0627\u062f\u06cc\u0646
 territories.VA=\u0648\u0627\u062a\u06cc\u06a9\u0627\u0646
@@ -319,6 +413,7 @@ territories.UZ=\u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646
 territories.IO=\u0645\u0633\u062a\u0639\u0645\u0631\u0647\u200c\u0647\u0627\u06cc \u0627\u0646\u06af\u0644\u0633\u062a\u0627\u0646 \u062f\u0631 \u0627\u0642\u06cc\u0627\u0646\u0648\u0633 \u0647\u0646\u062f
 territories.UY=\u0627\u0648\u0631\u0648\u06af\u0648\u0626\u0647
 territories.IN=\u0647\u0646\u062f
+territories.IM=\u062c\u0632\u06cc\u0631\u06c0 \u0645\u0631\u062f
 territories.IL=\u0627\u0633\u0631\u0627\u0626\u06cc\u0644
 territories.US=\u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0627\u0645\u0631\u06cc\u06a9\u0627
 territories.IE=\u0627\u06cc\u0631\u0644\u0646\u062f
@@ -334,59 +429,76 @@ territories.HN=\u0647\u0646\u062f\u0648\u0631\u0627\u0633
 territories.HM=\u062c\u0632\u06cc\u0631\u0647\u0654 \u0647\u0631\u062f \u0648 \u062c\u0632\u0627\u06cc\u0631 \u0645\u06a9\u200c\u062f\u0648\u0646\u0627\u0644\u062f
 territories.TW=\u062a\u0627\u06cc\u0648\u0627\u0646
 territories.TV=\u062a\u0648\u0648\u0627\u0644\u0648
-territories.HK=\u0647\u0646\u06af\u200c\u06a9\u0646\u06af\u060c \u0646\u0627\u062d\u06cc\u0647\u0654 \u0648\u06cc\u0698\u0647\u0654 \u062d\u06a9\u0648\u0645\u062a\u06cc \u0686\u06cc\u0646
+territories.HK=\u0647\u0646\u06af\u200c\u06a9\u0646\u06af
 territories.TT=\u062a\u0631\u06cc\u0646\u06cc\u062f\u0627\u062f \u0648 \u062a\u0648\u0628\u0627\u06af\u0648
 territories.TR=\u062a\u0631\u06a9\u06cc\u0647
 territories.TO=\u062a\u0648\u0646\u06af\u0627
 territories.TN=\u062a\u0648\u0646\u0633
 territories.TM=\u062a\u0631\u06a9\u0645\u0646\u0633\u062a\u0627\u0646
+languages.gwi=\u06af\u0648\u06cc\u0686 \u0627\u06cc\u0646
 languages.akk=\u0622\u06a9\u062f\u06cc
+languages.eka=\u0627\u06a9\u0627\u062c\u0648\u06a9
 languages.ijo=\u0627\u06cc\u062c\u0648\u06cc\u06cc
 languages.xh=\u062e\u0648\u0633\u0627\u06cc\u06cc
 languages.sux=\u0633\u0648\u0645\u0631\u06cc
 languages.sus=\u0633\u0648\u0633\u0648\u06cc\u06cc
-languages.mis=\u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062a\u0641\u0631\u0642\u0647
+languages.mis=\u0632\u0628\u0627\u0646 \u0645\u062a\u0641\u0631\u0642\u0647
 languages.loz=\u0644\u0648\u0632\u06cc\u0627\u06cc\u06cc
-languages.tog=\u062a\u0648\u0646\u06af\u0627\u06cc\u06cc (\u0646\u06cc\u0627\u0633\u0627)
+languages.tog=\u062a\u0648\u0646\u06af\u0627\u06cc\u06cc \u0646\u06cc\u0627\u0633\u0627
+languages.zbl=\u0632\u0628\u0627\u0646 \u0633\u0645\u0628\u0644\u06cc\u06a9 \u0628\u0644\u06cc\u0633
+languages.pon=\u067e\u0645\u067e\u0626\u06cc
 languages.min=\u0645\u06cc\u0646\u0627\u0646\u06af\u200c\u06a9\u0627\u0628\u0648\u06cc\u06cc
 languages.suk=\u0633\u0648\u06a9\u0648\u0645\u0627\u06cc\u06cc
 languages.wo=\u0648\u0644\u0648\u0641\u06cc
 languages.lol=\u0645\u0648\u0646\u06af\u0648\u06cc\u06cc
+languages.kut=\u06a9\u0648\u062a\u0646\u06cc
 languages.mic=\u0645\u06cc\u06a9\u0645\u0627\u06a9\u06cc
 languages.wa=\u0648\u0627\u0644\u0648\u0646\u06cc
 languages.kum=\u06a9\u0648\u0645\u06cc\u06a9\u06cc
 languages.zap=\u0632\u0627\u067e\u0648\u062a\u06a9\u06cc
-languages.cus=\u06a9\u0648\u0634\u06cc (\u062f\u06cc\u06af\u0631)
+languages.ain=\u0622\u06cc\u0646\u0648
+languages.cus=\u0632\u0628\u0627\u0646 \u06a9\u0648\u0634\u06cc
+languages.jbo=\u0644\u0648\u062c\u0628\u0627\u0646
+languages.doi=\u062f\u0648\u06af\u0631\u06cc
+languages.zza=\u0632\u0627\u0632\u0627\u06cc\u06cc
 languages.vo=\u0648\u0644\u0627\u067e\u0648\u06a9
-languages.oto=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0627\u062a\u0648\u0645\u06cc\u0627\u06cc\u06cc
+languages.oto=\u0632\u0628\u0627\u0646 \u0627\u062a\u0648\u0645\u06cc\u0627\u06cc\u06cc
 languages.vi=\u0648\u06cc\u062a\u0646\u0627\u0645\u06cc
 languages.vai=\u0648\u06cc\u0627\u06cc\u06cc
 languages.rar=\u0631\u0627\u0631\u0648\u062a\u0648\u0646\u06af\u0627\u06cc\u06cc
 languages.ve=\u0648\u0646\u062f\u0627\u06cc\u06cc
+languages.rap=\u0631\u0627\u067e\u0627\u0646\u0648\u06cc\u06cc
 languages.raj=\u0631\u0627\u062c\u0633\u062a\u0627\u0646\u06cc
 languages.ota=\u062a\u0631\u06a9\u06cc \u0639\u062b\u0645\u0627\u0646\u06cc
+languages.nzi=\u0646\u0632\u06cc\u0645\u0627\u06cc\u06cc
 languages.nap=\u0646\u0627\u067e\u0644\u06cc
 languages.uz=\u0627\u0632\u0628\u06a9\u06cc
+languages.uga=\u0627\u0648\u06af\u0627\u0631\u06cc\u062a\u06cc
 languages.tmh=\u062a\u0627\u0645\u0627\u0634\u0642\u06cc
-languages.nai=\u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc (\u062f\u06cc\u06af\u0631)
+languages.nai=\u0632\u0628\u0627\u0646 \u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc
 languages.nah=\u0646\u0627\u0648\u0627\u062a\u0644\u06cc
 languages.ur=\u0627\u0631\u062f\u0648
 languages.fat=\u0641\u0627\u0646\u062a\u06cc\u0627\u06cc\u06cc
 languages.uk=\u0627\u0648\u06a9\u0631\u0627\u06cc\u0646\u06cc
-languages.egy=\u0645\u0635\u0631\u06cc (\u06a9\u0647\u0646)
+languages.egy=\u0645\u0635\u0631\u06cc \u06a9\u0647\u0646
+languages.zxx=\u0628\u062f\u0648\u0646 \u0645\u062d\u062a\u0648\u0627\u06cc \u0632\u0628\u0627\u0646 \u0634\u062a\u0627\u0633\u06cc
 languages.ug=\u0627\u0648\u06cc\u063a\u0648\u0631\u06cc
 languages.fan=\u0641\u0627\u0646\u06a9\u06cc
-languages.ssa=\u0646\u06cc\u0644\u06cc \u0648 \u0635\u062d\u0631\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
-languages.bat=\u0628\u0627\u0644\u062a\u06cc\u06a9\u06cc (\u062f\u06cc\u06af\u0631)
+languages.ssa=\u0632\u0628\u0627\u0646 \u0646\u06cc\u0644\u06cc \u0648 \u0635\u062d\u0631\u0627\u06cc\u06cc
 languages.mga=\u0627\u06cc\u0631\u0644\u0646\u062f\u06cc \u0645\u06cc\u0627\u0646\u0647
-languages.bas=\u0628\u0627\u0633\u0627\u06cc\u06cc
+languages.bat=\u0632\u0628\u0627\u0646 \u0628\u0627\u0644\u062a\u06cc\u06a9\u06cc
 languages.nyo=\u0646\u06cc\u0648\u0631\u0648\u06cc\u06cc
+languages.bas=\u0628\u0627\u0633\u0627\u06cc\u06cc
 languages.nyn=\u0646\u06cc\u0627\u0646\u06a9\u0648\u0644\u0647\u200c\u0627\u06cc
+languages.nym=\u0646\u06cc\u0627\u0645\u0648\u0633\u06cc
+languages.gsw=\u0622\u0644\u0645\u0627\u0646\u06cc \u0633\u0648\u0626\u06cc\u0633\u06cc
+languages.hmn=\u0647\u0645\u0648\u0646\u06af
 languages.ban=\u0628\u0627\u0644\u06cc\u0627\u06cc\u06cc
 languages.osa=\u0627\u0648\u0633\u06cc\u062c\u06cc
 languages.bal=\u0628\u0644\u0648\u0686\u06cc
 languages.ty=\u062a\u0627\u0647\u06cc\u062a\u06cc\u0627\u06cc\u06cc
-languages.tw=\u062a\u0648\u06cc\u200c\u06cc\u0627\u06cc\u06cc
+languages.bai=\u0632\u0628\u0627\u0646 \u0628\u0627\u0645\u06cc\u0644\u06a9
+languages.tw=\u062a\u0648\u0627\u06cc
 languages.srr=\u0633\u0631\u06cc\u0631\u06cc
 languages.tli=\u062a\u0644\u06cc\u0646\u200c\u06af\u06cc\u062a\u06cc
 languages.tlh=\u06a9\u0644\u06cc\u0646\u06af\u0648\u0646
@@ -402,21 +514,26 @@ languages.ti=\u062a\u06cc\u06af\u0631\u06cc\u0646\u06cc\u0627\u06cc\u06cc
 languages.th=\u062a\u0627\u06cc\u0644\u0646\u062f\u06cc
 languages.kru=\u06a9\u0648\u0631\u0648\u062e\u06cc
 languages.tg=\u062a\u0627\u062c\u06cc\u06a9\u06cc
+languages.byn=\u0628\u0644\u06cc\u0646
 languages.te=\u062a\u0644\u0648\u06af\u0648\u06cc\u06cc
-languages.csb=\u06a9\u0627\u0634\u0648\u0628\u06cc
 languages.kro=\u06a9\u0631\u0648\u06cc\u06cc
+languages.csb=\u06a9\u0627\u0634\u0648\u0628\u06cc
 languages.ta=\u062a\u0627\u0645\u06cc\u0644\u06cc
+languages.krl=\u06a9\u0627\u0631\u0644\u06cc\u0627\u0646
+languages.tkl=\u062a\u0648\u06a9\u0644\u0648\u06cc
 languages.efi=\u0627\u0641\u06cc\u06a9\u06cc
-languages.sw=\u0633\u0648\u0627\u062d\u0644\u06cc
+languages.sw=\u0633\u0648\u0627\u062d\u064a\u0644\u06cc
 languages.sv=\u0633\u0648\u0626\u062f\u06cc
 languages.su=\u0633\u0648\u0646\u062f\u0627\u06cc\u06cc
 languages.krc=\u0642\u0631\u0647\u200c\u0686\u0627\u06cc\u06cc\u2010\u0628\u0627\u0644\u06a9\u0627\u0631\u06cc
 languages.st=\u0633\u0648\u062a\u0648\u06cc\u06cc \u062c\u0646\u0648\u0628\u06cc
+languages.ss=\u0633\u0648\u0633\u0648\u06cc\u06cc
 languages.sr=\u0635\u0631\u0628\u06cc
 languages.sq=\u0622\u0644\u0628\u0627\u0646\u06cc\u0627\u06cc\u06cc
 languages.men=\u0645\u0646\u062f\u0647\u200c\u0627\u06cc
-languages.crp=\u06a9\u0631\u06cc\u0648\u0644\u200c\u0647\u0627 \u0648 \u067e\u06cc\u062c\u06cc\u0646\u200c\u0647\u0627 (\u062f\u06cc\u06af\u0631)
+languages.crp=\u06a9\u0631\u06cc\u0648\u0644 \u06cc\u0627 \u067e\u06cc\u062c\u06cc\u0646
 languages.so=\u0633\u0648\u0645\u0627\u0644\u06cc\u0627\u06cc\u06cc
+languages.afh=\u0622\u0641\u0631\u06cc\u0647\u06cc\u0644\u06cc
 languages.sn=\u0634\u0648\u0646\u0627\u06cc\u06cc
 languages.sm=\u0633\u0627\u0645\u0648\u0622\u06cc\u06cc
 languages.sl=\u0627\u0633\u0644\u0648\u0648\u06cc\u0646\u06cc\u0627\u06cc\u06cc
@@ -425,9 +542,10 @@ languages.sk=\u0627\u0633\u0644\u0648\u0627\u06a9\u06cc
 languages.grb=\u06af\u0631\u06cc\u0628\u0648\u06cc\u06cc
 languages.si=\u0633\u06cc\u0646\u0647\u0627\u0644\u06cc
 languages.sh=\u0635\u0631\u0628 \u0648 \u06a9\u0631\u0648\u0627\u062a\u06cc
-languages.afa=\u0627\u0641\u0631\u06cc\u0642\u0627 \u0648 \u0622\u0633\u06cc\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
-languages.crh=\u062a\u0631\u06a9\u06cc \u06a9\u0631\u06cc\u0645\u0647\u061b \u062a\u0627\u062a\u0627\u0631\u06cc \u06a9\u0631\u06cc\u0645\u0647
+languages.crh=\u062a\u0631\u06a9\u06cc \u06a9\u0631\u06cc\u0645\u0647
+languages.afa=\u0632\u0628\u0627\u0646 \u0627\u0641\u0631\u06cc\u0642\u0627 \u0648 \u0622\u0633\u06cc\u0627\u06cc\u06cc
 languages.sg=\u0633\u0627\u0646\u06af\u0648\u06cc\u06cc
+languages.se=\u0633\u0627\u0645\u06cc \u0634\u0645\u0627\u0644\u06cc
 languages.sd=\u0633\u0646\u062f\u06cc
 languages.udm=\u0627\u0648\u062f\u0645\u0648\u0631\u062a\u06cc
 languages.sc=\u0633\u0627\u0631\u062f\u06cc\u0646\u06cc\u0627\u06cc\u06cc
@@ -435,26 +553,33 @@ languages.sa=\u0633\u0646\u0633\u06a9\u0631\u06cc\u062a
 languages.rw=\u06a9\u06cc\u0646\u06cc\u0627\u0631\u0648\u0627\u0646\u062f\u0627\u06cc\u06cc
 languages.nwc=\u0646\u0648\u0627\u0631\u06cc\u0627\u06cc\u06cc \u06a9\u0644\u0627\u0633\u06cc\u06a9
 languages.ru=\u0631\u0648\u0633\u06cc
+languages.mdr=\u0645\u0627\u0646\u062f\u0627\u0631
 languages.ro=\u0631\u0648\u0645\u0627\u0646\u06cc\u0627\u06cc\u06cc
 languages.rn=\u0631\u0648\u0646\u062f\u06cc\u0627\u06cc\u06cc
 languages.rm=\u0631\u062a\u0648\u2010\u0631\u0648\u0645\u06cc\u0627\u06cc\u06cc
+languages.fr_CH=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc \u0633\u0648\u0626\u06cc\u0633
 languages.mdf=\u0645\u06a9\u0634\u0627\u06cc\u06cc
 languages.tiv=\u062a\u06cc\u0648\u06cc
+languages.fr_CA=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc \u06a9\u0627\u0646\u0627\u062f\u0627
 languages.ady=\u0622\u062f\u06cc\u062c\u06cc\u0627\u06cc\u06cc
 languages.zun=\u0632\u0648\u0646\u06cc\u0627\u06cc\u06cc
 languages.kpe=\u06a9\u067e\u0644\u0647\u200c\u0627\u06cc
 languages.qu=\u06a9\u0686\u0648\u0627\u06cc\u06cc
 languages.tig=\u062a\u06cc\u06af\u0631\u0647\u200c\u0627\u06cc
 languages.son=\u0633\u0648\u0646\u063a\u0627\u06cc\u06cc
-languages.cpp=\u06a9\u0631\u06cc\u0648\u0644\u200c\u0647\u0627 \u0648 \u067e\u06cc\u062c\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u067e\u0631\u062a\u063a\u0627\u0644\u06cc (\u062f\u06cc\u06af\u0631)
+languages.cpp=\u06a9\u0631\u06cc\u0648\u0644 \u06cc\u0627 \u067e\u06cc\u062c\u06cc\u0646 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u067e\u0631\u062a\u063a\u0627\u0644\u06cc
+languages.rup=\u0622\u0631\u0648\u0645\u0627\u0646\u06cc\u0646
 languages.sog=\u0633\u063a\u062f\u06cc
 languages.ada=\u0622\u062f\u0627\u0646\u06af\u0645\u0647\u200c\u0627\u06cc
-languages.cpf=\u06a9\u0631\u06cc\u0648\u0644\u200c\u0647\u0627 \u0648 \u067e\u06cc\u062c\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0641\u0631\u0627\u0646\u0633\u0648\u06cc (\u062f\u06cc\u06af\u0631)
+languages.kos=\u06a9\u0648\u0633\u0631\u0627 \u0626\u0646
 languages.hit=\u0647\u06cc\u062a\u06cc
-languages.cpe=\u06a9\u0631\u06cc\u0648\u0644\u200c\u0647\u0627 \u0648 \u067e\u06cc\u062c\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc (\u062f\u06cc\u06af\u0631)
-languages.got=\u06af\u0648\u062a\u06cc\u06a9
-languages.hil=\u0647\u06cc\u0644\u06cc\u200c\u06af\u0627\u06cc\u0646\u0648\u0646\u06cc
+languages.cpf=\u06a9\u0631\u06cc\u0648\u0644 \u06cc\u0627 \u067e\u06cc\u062c\u06cc\u0646 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0641\u0631\u0627\u0646\u0633\u0648\u06cc
+languages.cpe=\u06a9\u0631\u06cc\u0648\u0644 \u06cc\u0627 \u067e\u06cc\u062c\u06cc\u0646 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc
+languages.him=\u0647\u06cc\u0645\u0627\u0686\u0627\u0644\u06cc
 languages.kok=\u06a9\u0646\u06a9\u0627\u0646\u06cc
+languages.hil=\u0647\u06cc\u0644\u06cc\u200c\u06af\u0627\u06cc\u0646\u0648\u0646\u06cc
+languages.got=\u06af\u0627\u062a\u06cc\u06a9
+languages.gor=\u06af\u0648\u0631\u0648\u0646\u062a\u0627\u0644\u0648
 languages.gon=\u06af\u0648\u0646\u062f\u06cc
 languages.din=\u062f\u06cc\u0646\u06a9\u0627\u06cc\u06cc
 languages.nub=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0646\u0648\u0628\u06cc\u0627\u06cc\u06cc
@@ -462,53 +587,72 @@ languages.pt=\u067e\u0631\u062a\u063a\u0627\u0644\u06cc
 languages.ps=\u067e\u0634\u062a\u0648
 languages.fur=\u0641\u0631\u06cc\u0648\u0644\u06cc\u0627\u06cc\u06cc
 languages.phn=\u0641\u0646\u06cc\u0642\u06cc
+languages.de_CH=\u0622\u0644\u0645\u0627\u0646\u06cc \u0639\u0644\u06cc\u0627\u06cc \u0633\u0648\u0626\u06cc\u0633
 languages.goh=\u0622\u0644\u0645\u0627\u0646\u06cc \u0639\u0644\u06cc\u0627\u06cc \u0628\u0627\u0633\u062a\u0627\u0646
 languages.snk=\u0633\u0648\u0646\u06cc\u0646\u06a9\u0647\u200c\u0627\u06cc
 languages.cop=\u0642\u0628\u0637\u06cc
 languages.yap=\u06cc\u0627\u067e\u06cc
 languages.ach=\u0622\u0686\u0648\u0644\u06cc\u0627\u06cc\u06cc
 languages.yao=\u06cc\u0627\u0626\u0648\u06cc\u06cc
-languages.phi=\u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u06cc (\u062f\u06cc\u06af\u0631)
+languages.phi=\u0632\u0628\u0627\u0646 \u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u06cc
 languages.pl=\u0644\u0647\u0633\u062a\u0627\u0646\u06cc
 languages.ace=\u0622\u0686\u0626\u06cc
 languages.pi=\u067e\u0627\u0644\u06cc
+languages.pt_PT=\u067e\u0631\u062a\u063a\u0627\u0644\u064a
 languages.pa=\u067e\u0646\u062c\u0627\u0628\u06cc
 languages.bug=\u0628\u0648\u06af\u06cc\u0627\u06cc\u06cc
+languages.iba=\u0622\u06cc\u0628\u0646
+languages.sms=\u0633\u0627\u0645\u06cc \u0627\u0633\u06a9\u0627\u0644\u062a
 languages.bua=\u0628\u0648\u0631\u06cc\u0627\u062a\u06cc
 languages.mas=\u0645\u0627\u0633\u0627\u06cc\u06cc
+languages.smn=\u0633\u0627\u0645\u06cc \u0627\u06cc\u0646\u0627\u0631\u06cc
 languages.os=\u0622\u0633\u06cc
-languages.map=\u0622\u0633\u062a\u0631\u0648\u0646\u06cc\u0632\u06cc\u0627\u06cc\u06cc\u200c (\u062f\u06cc\u06af\u0631)
+languages.map=\u0622\u0633\u062a\u0631\u0648\u0646\u06cc\u0632\u06cc\u0627\u06cc\u06cc
 languages.or=\u0627\u0648\u0631\u06cc\u0647\u200c\u0627\u06cc
 languages.man=\u0645\u0627\u0646\u062f\u06cc\u0646\u06af\u0648\u06cc\u06cc
+languages.smj=\u0633\u0627\u0645\u06cc \u0644\u0648\u0644
+languages.smi=\u0632\u0628\u0627\u0646 \u0633\u0627\u0645\u06cc
+languages.mak=\u0645\u0627\u06a9\u0627\u0633\u0627\u0631
+languages.om=\u0627\u0648\u0631\u0648\u0645\u0648\u06cc\u06cc
 languages.mai=\u0645\u0627\u06cc\u062f\u06cc\u0644\u06cc
 languages.oj=\u0627\u0648\u062c\u06cc\u0628\u0648\u0627\u06cc\u06cc
 languages.mag=\u0645\u0627\u06af\u0627\u0647\u06cc\u0627\u06cc\u06cc
 languages.mad=\u0645\u0627\u062f\u0648\u0631\u0627\u06cc\u06cc
-languages.btk=\u0628\u0627\u062a\u0627\u06a9\u06cc
+languages.sma=\u0633\u0627\u0645\u06cc \u062c\u0646\u0648\u0628\u06cc
+languages.oc=\u0627\u0648\u06a9\u06cc\u062a\u0627\u06cc\u06cc
 languages.nso=\u0633\u0648\u062a\u0648\u06cc\u06cc \u0634\u0645\u0627\u0644\u06cc
+languages.btk=\u0628\u0627\u062a\u0627\u06a9\u06cc
 languages.myv=\u0627\u0631\u0632\u06cc\u0627\u06cc\u06cc
-languages.ny=\u0646\u06cc\u0627\u0646\u062c\u0627\u06cc\u06cc\u061b \u0686\u0648\u0627\u06cc\u06cc
-languages.myn=\u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u0627\u06cc\u0627\u06cc\u06cc\u06a9
+languages.es_ES=\u0627\u0633\u067e\u0627\u0646\u06cc\u0627\u06cc\u06cc \u0627\u0633\u067e\u0627\u0646\u06cc\u0627
+languages.de_AT=\u0622\u0644\u0645\u0627\u0646\u06cc \u0627\u062a\u0631\u06cc\u0634
+languages.dgr=\u062f\u0648\u06af\u0631\u06cc\u0628
+languages.ny=\u0646\u06cc\u0627\u0646\u062c\u0627\u06cc\u06cc
+languages.myn=\u0632\u0628\u0627\u0646 \u0645\u0627\u06cc\u0627\u06cc\u06cc
 languages.nv=\u0646\u0627\u0648\u0627\u0647\u0648\u06cc\u06cc
 languages.kmb=\u06a9\u06cc\u0645\u0628\u0648\u0646\u062f\u0648\u06cc\u06cc
 languages.nr=\u0627\u0646\u062f\u0647\u200c\u0628\u0644\u0647\u200c\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
 languages.gmh=\u0622\u0644\u0645\u0627\u0646\u06cc \u0639\u0644\u06cc\u0627\u06cc \u0645\u06cc\u0627\u0646\u0647
 languages.no=\u0646\u0631\u0648\u0698\u06cc
-languages.nn=\u0646\u0631\u0633 \u062c\u062f\u06cc\u062f \u0646\u0631\u0648\u0698\u06cc
+languages.nn=\u0646\u0631\u0648\u0698\u06cc
 languages.nl=\u0647\u0644\u0646\u062f\u06cc
 languages.root=\u0631\u06cc\u0634\u0647
 languages.ng=\u0646\u062f\u0648\u0646\u06af\u0627\u06cc\u06cc
-languages.sla=\u0627\u0633\u0644\u0627\u0648\u06cc (\u062f\u06cc\u06af\u0631)
+languages.sla=\u0632\u0628\u0627\u0646 \u0627\u0633\u0644\u0627\u0648\u06cc
 languages.ne=\u0646\u067e\u0627\u0644\u06cc
 languages.nd=\u0627\u0646\u062f\u0647\u200c\u0628\u0644\u0647\u200c\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc
+languages.cmc=\u0632\u0628\u0627\u0646 \u0686\u0627\u0645\u06cc\u06a9
+languages.tet=\u062a\u062a\u0648\u0645\u06cc
 languages.nb=\u0628\u0648\u06a9\u0633\u0645\u0627\u0644 \u0646\u0631\u0648\u0698\u06cc
 languages.na=\u0646\u0627\u0626\u0648\u0631\u0648\u06cc\u06cc
+languages.ter=\u062a\u0631\u0646\u0648
 languages.tem=\u062a\u06cc\u0645\u0646\u0647\u200c\u0627\u06cc
 languages.my=\u0628\u0631\u0645\u0647\u200c\u0627\u06cc
 languages.lez=\u0644\u0632\u06af\u06cc
 languages.mt=\u0645\u0627\u0644\u062a\u06cc
-languages.ms=\u0645\u0627\u0644\u0632\u06cc\u0627\u06cc\u06cc
+languages.frs=\u0641\u0631\u06cc\u0632\u06cc \u0634\u0631\u0642\u06cc
 languages.peo=\u0641\u0627\u0631\u0633\u06cc \u0628\u0627\u0633\u062a\u0627\u0646
+languages.ms=\u0645\u0627\u0644\u0632\u06cc\u0627\u06cc\u06cc
+languages.frr=\u0641\u0631\u06cc\u0632\u06cc \u0634\u0645\u0627\u0644\u06cc
 languages.mr=\u0645\u0631\u0627\u062a\u06cc
 languages.fro=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc \u0628\u0627\u0633\u062a\u0627\u0646
 languages.mo=\u0645\u0648\u0644\u062f\u0627\u0648\u06cc\u0627\u06cc\u06cc
@@ -520,40 +664,50 @@ languages.mk=\u0645\u0642\u062f\u0648\u0646\u06cc
 languages.mi=\u0645\u0627\u0626\u0648\u0631\u06cc\u0627\u06cc\u06cc
 languages.mh=\u0645\u0627\u0631\u0634\u0627\u0644\u06cc
 languages.mg=\u0645\u0627\u0644\u0627\u06af\u0627\u0633\u06cc\u0627\u06cc\u06cc
+languages.nqo=\u0627\u0646 \u06a9\u0648
+languages.mwr=\u0645\u0627\u0631\u0648\u0627\u0631\u06cc
+languages.bra=\u0628\u0631\u0627\u062c
+languages.mwl=\u0645\u06cc\u0631\u0627\u0646\u062f\u0633\u06cc
+languages.den=\u0628\u0631\u062f\u0647
 languages.lv=\u0644\u062a\u0648\u0646\u06cc\u0627\u06cc\u06cc
 languages.lu=\u0644\u0648\u0628\u0627\u06cc\u06cc\u2010\u06a9\u0627\u062a\u0627\u0646\u06af\u0627
-languages.lt=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc\u0627\u06cc\u06cc
 languages.del=\u062f\u0644\u0627\u0648\u0627\u0631\u06cc
+languages.lt=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc\u0627\u06cc\u06cc
 languages.lo=\u0644\u0627\u0626\u0648\u0633\u06cc
 languages.ln=\u0644\u06cc\u0646\u06af\u0627\u0644\u0627
 languages.li=\u0644\u06cc\u0645\u0628\u0648\u0631\u06af\u06cc
+languages.ewo=\u0627\u0648\u0627\u0646\u062f\u0648
 languages.lg=\u06af\u0627\u0646\u062f\u0627\u06cc\u06cc
 languages.lb=\u0644\u0648\u06af\u0632\u0627\u0645\u0628\u0648\u0631\u06af\u06cc
-languages.la=\u0644\u0627\u062a\u06cc\u0646\u06cc
+languages.la=\u0644\u0627\u062a\u06cc\u0646
 languages.jpr=\u0641\u0627\u0631\u0633\u06cc \u06cc\u0647\u0648\u062f\u06cc
-languages.sit=\u0686\u06cc\u0646 \u0648 \u062a\u0628\u062a\u06cc (\u062f\u06cc\u06af\u0631)
+languages.vot=\u0648\u062a\u06cc\u06a9
+languages.sit=\u0632\u0628\u0627\u0646 \u0686\u06cc\u0646 \u0648 \u062a\u0628\u062a\u06cc
 languages.ky=\u0642\u0631\u0642\u06cc\u0632\u06cc
 languages.kw=\u06a9\u0631\u0646\u0648\u0627\u0644\u06cc
 languages.kv=\u06a9\u0648\u0645\u06cc\u0627\u06cc\u06cc
 languages.ku=\u06a9\u0631\u062f\u06cc
-languages.sio=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0633\u0648\u06cc\u06cc
+languages.sio=\u0632\u0628\u0627\u0646 \u0633\u0648\u06cc\u06cc
 languages.ks=\u06a9\u0634\u0645\u06cc\u0631\u06cc
 languages.kr=\u06a9\u0627\u0646\u0648\u0631\u06cc\u0627\u06cc\u06cc
+languages.awa=\u0622\u0648\u0627\u0647\u06cc
 languages.ko=\u06a9\u0631\u0647\u200c\u0627\u06cc
 languages.kn=\u06a9\u0627\u0646\u0627\u062f\u0647\u200c\u0627\u06cc
 languages.km=\u062e\u0645\u0631\u06cc
+languages.en_GB=\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627
 languages.kl=\u06af\u0631\u06cc\u0646\u0644\u0646\u062f\u06cc
 languages.kk=\u0642\u0632\u0627\u0642\u06cc
 languages.rom=\u0631\u0648\u0645\u0627\u0646\u0648\u06cc\u06cc
+languages.kj=\u06a9\u0648\u0627\u0646\u06cc\u0627\u0645\u0627
 languages.sid=\u0633\u06cc\u062f\u0627\u0645\u0648\u06cc\u06cc
 languages.ki=\u06a9\u06cc\u06a9\u0648\u06cc\u0648\u06cc\u06cc
 languages.kg=\u06a9\u0646\u06af\u0648\u06cc\u06cc
 languages.non=\u0646\u0631\u0633 \u0628\u0627\u0633\u062a\u0627\u0646
 languages.ka=\u06af\u0631\u062c\u06cc
 languages.mus=\u06a9\u0631\u06cc\u06a9\u06cc
-languages.roa=\u0631\u0648\u0645\u06cc\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
+languages.roa=\u0632\u0628\u0627\u0646 \u0631\u0648\u0645\u06cc\u0627\u06cc\u06cc
 languages.nog=\u0646\u063a\u0627\u06cc\u06cc
-languages.mun=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0645\u0648\u0646\u062f\u0627\u06cc\u06cc
+languages.mun=\u0632\u0628\u0627\u0646 \u0645\u0648\u0646\u062f\u0627\u06cc\u06cc
 languages.mul=\u0686\u0646\u062f\u06cc\u0646 \u0632\u0628\u0627\u0646
 languages.jv=\u062c\u0627\u0648\u0647\u200c\u0627\u06cc
 languages.gil=\u06af\u06cc\u0644\u0628\u0631\u062a\u06cc
@@ -561,181 +715,234 @@ languages.znd=\u0632\u0627\u0646\u062f\u0647\u200c\u0627\u06cc
 languages.shn=\u0634\u0627\u0646\u06cc
 languages.fon=\u0641\u0648\u0646\u06cc
 languages.xal=\u0642\u0644\u0645\u0648\u0642\u06cc
-languages.aus=\u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u06cc\u06cc
+languages.aus=\u0632\u0628\u0627\u0646 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u06cc\u06cc
 languages.kho=\u062e\u062a\u0646\u06cc
 languages.ja=\u0698\u0627\u067e\u0646\u06cc
-languages.khi=\u062e\u0648\u0627\u0633\u06cc (\u062f\u06cc\u06af\u0631)
-languages.chy=\u0634\u0627\u06cc\u0627\u0646\u06cc
+languages.khi=\u0632\u0628\u0627\u0646 \u062e\u0648\u0627\u0633\u06cc
 languages.pau=\u067e\u0627\u0644\u0627\u0626\u0648\u06cc\u06cc
-languages.tai=\u062a\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
+languages.chy=\u0634\u0627\u06cc\u0627\u0646\u06cc
+languages.tai=\u0632\u0628\u0627\u0646 \u062a\u0627\u06cc\u06cc
 languages.iu=\u0627\u06cc\u0646\u0648\u06a9\u062a\u06cc\u062a\u0648\u062a
 languages.pap=\u067e\u0627\u067e\u06cc\u0627\u0645\u0646\u062a\u0648
 languages.it=\u0627\u06cc\u062a\u0627\u0644\u06cc\u0627\u06cc\u06cc
-languages.sgn=\u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0646\u0634\u0627\u0646\u0647\u200c\u0627\u06cc
-languages.kha=\u062e\u0627\u0632\u06cc\u0627\u06cc\u06cc
+languages.sgn=\u0632\u0628\u0627\u0646 \u0646\u0634\u0627\u0646\u0647\u200c\u0627\u06cc
 languages.is=\u0627\u06cc\u0633\u0644\u0646\u062f\u06cc
+languages.kha=\u062e\u0627\u0632\u06cc\u0627\u06cc\u06cc
 languages.chr=\u0686\u0631\u0648\u06a9\u06cc\u0627\u06cc\u06cc
 languages.pam=\u067e\u0627\u0645\u067e\u0627\u0646\u06af\u0627\u06cc\u06cc
-languages.chp=\u0686\u06cc\u067e\u0647\u200c\u0648\u06cc\u0647\u200c\u0627\u06cc
 languages.pal=\u067e\u0647\u0644\u0648\u06cc
+languages.chp=\u0686\u06cc\u067e\u0647\u200c\u0648\u06cc\u0647\u200c\u0627\u06cc
+languages.io=\u0627\u06cc\u062f\u0648
 languages.cho=\u0686\u0648\u06a9\u062a\u0648\u06cc\u06cc
+languages.chn=\u0644\u0647\u062c\u0647 \u0686\u06cc\u0646\u0648\u06a9
 languages.chm=\u0645\u0627\u0631\u06cc\u0627\u06cc\u06cc
 languages.tyv=\u062a\u0648\u0648\u0627\u06cc\u06cc
-languages.bnt=\u0628\u0627\u0646\u062a\u0648\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
+languages.bnt=\u0628\u0627\u0646\u062a\u0648\u06cc\u06cc
 languages.pag=\u067e\u0627\u0646\u06af\u0627\u0633\u06cc\u0646\u0627\u0646\u06cc
 languages.ik=\u0627\u06cc\u0646\u0648\u067e\u06cc\u06a9
-languages.haw=\u0647\u0627\u0648\u0627\u0626\u06cc\u0627\u06cc\u06cc
+languages.chk=\u0686\u0648\u06a9\u0632\u06cc
 languages.ii=\u06cc\u06cc \u0633\u06cc\u0686\u0648\u0627\u0646
+languages.haw=\u0647\u0627\u0648\u0627\u0626\u06cc
+languages.lam=\u0644\u0627\u0645\u0628\u0627
 languages.ig=\u0627\u06cc\u06af\u0628\u0648\u06cc\u06cc
+languages.chg=\u0686\u0627\u06af\u0627\u062a\u0627\u06cc\u06cc
 languages.sga=\u0627\u06cc\u0631\u0644\u0646\u062f\u06cc \u0628\u0627\u0633\u062a\u0627\u0646
-languages.paa=\u067e\u0627\u067e\u0648\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
+languages.paa=\u0632\u0628\u0627\u0646 \u067e\u0627\u067e\u0648\u0627\u06cc\u06cc
+languages.ie=\u0628\u06cc\u0646 \u0632\u0628\u0627\u0646\u06cc
 languages.id=\u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u0627\u06cc\u06cc
 languages.lah=\u0644\u0627\u0647\u0646\u062f\u0627
+languages.day=\u062f\u0627\u06cc\u0627\u06a9
+languages.chb=\u0686\u06cc\u0628\u0686\u0627
 languages.ia=\u0645\u06cc\u0627\u0646\u200c\u0632\u0628\u0627\u0646
 languages.lad=\u0644\u0627\u062f\u06cc\u0646\u0648
-languages.hai=\u0647\u0627\u06cc\u062f\u0627\u06cc\u06cc
 languages.hz=\u0647\u0631\u06cc\u0631\u0648\u06cc\u06cc
+languages.hai=\u0647\u0627\u06cc\u062f\u0627\u06cc\u06cc
+languages.dar=\u062f\u0627\u0631\u06af\u0648\u0627
 languages.hy=\u0627\u0631\u0645\u0646\u06cc
-languages.ath=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0622\u062a\u0627\u067e\u0627\u0633\u06a9\u0627\u06cc\u06cc
+languages.ath=\u0632\u0628\u0627\u0646 \u0622\u062a\u0627\u067e\u0627\u0633\u06a9\u0627\u06cc\u06cc
 languages.hu=\u0645\u062c\u0627\u0631\u06cc
 languages.ht=\u0647\u0627\u0626\u06cc\u062a\u06cc\u0627\u06cc\u06cc
 languages.dak=\u062f\u0627\u06a9\u0648\u062a\u0627\u06cc\u06cc
 languages.hr=\u06a9\u0631\u0648\u0627\u062a\u06cc
+languages.ho=\u0647\u06cc\u0631\u06cc \u0645\u0648\u062a\u0648
 languages.hi=\u0647\u0646\u062f\u06cc
 languages.dyu=\u062f\u0627\u06cc\u0648\u0644\u0627\u06cc\u06cc
 languages.he=\u0639\u0628\u0631\u06cc
+languages.ast=\u0622\u0633\u062a\u0648\u0631\u06cc\u0646
+languages.kfo=\u06a9\u0648\u0631\u0648
 languages.ha=\u0647\u0648\u0633\u06cc\u0627\u06cc\u06cc
-languages.wen=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0635\u064f\u0631\u0628\u06cc
+languages.wen=\u0632\u0628\u0627\u0646 \u0635\u064f\u0631\u0628\u06cc
 languages.gv=\u0645\u0627\u0646\u06cc
 languages.gu=\u06af\u062c\u0631\u0627\u062a\u06cc
-languages.sem=\u0633\u0627\u0645\u06cc (\u062f\u06cc\u06af\u0631)
+languages.sem=\u0632\u0628\u0627\u0646 \u0633\u0627\u0645\u06cc
 languages.sel=\u0633\u0644\u06a9\u0648\u067e\u06cc
-languages.iro=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0627\u06cc\u0631\u0648\u06a9\u0648\u0627\u06cc\u06cc
-languages.gn=\u06af\u0648\u0627\u0631\u0627\u0646\u06cc
-languages.gl=\u06af\u0627\u0644\u06cc\u0633\u06cc\u0627\u06cc\u06cc
+languages.iro=\u0632\u0628\u0627\u0646 \u0627\u06cc\u0631\u0648\u06a9\u0648\u0627\u06cc\u06cc
+languages.gn=\u0632\u0628\u0627\u0646 \u06af\u0631\u0627\u062a\u06cc-\u0632\u0628\u0627\u0646 \u0633\u0631\u062e\u067e\u0648\u0633\u062a\u0627\u0646 \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
+languages.gl=\u06af\u0627 \u0644\u064a\u06a9\u064a\u0627\u0626\u06cc
+languages.en_CA=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u06a9\u0627\u0646\u0627\u062f\u0627
 languages.arw=\u0622\u0631\u0627\u0648\u0627\u06a9\u06cc
-languages.gd=\u06af\u06cc\u0644\u06cc \u0627\u0633\u06a9\u0627\u062a\u0644\u0646\u062f\u06cc
-languages.art=\u0633\u0627\u062e\u062a\u06af\u06cc (\u062f\u06cc\u06af\u0631)
 languages.gez=\u06af\u06cc\u200c\u0626\u0632\u06cc
-languages.ira=\u0627\u06cc\u0631\u0627\u0646\u06cc (\u062f\u06cc\u06af\u0631)
+languages.art=\u0632\u0628\u0627\u0646 \u0633\u0627\u062e\u062a\u06af\u06cc
+languages.gd=\u06af\u06cc\u0644\u06cc \u0627\u0633\u06a9\u0627\u062a\u0644\u0646\u062f\u06cc
+languages.ira=\u0632\u0628\u0627\u0646 \u0627\u06cc\u0631\u0627\u0646\u06cc
 languages.ga=\u0627\u06cc\u0631\u0644\u0646\u062f\u06cc
 languages.arp=\u0622\u0631\u0627\u067e\u0627\u0647\u0648\u06cc\u06cc
 languages.arn=\u0622\u0631\u0648\u06a9\u0627\u0646\u06cc\u0627\u06cc\u06cc
-languages.fy=\u0641\u0631\u06cc\u0632\u06cc
-languages.gem=\u0698\u0631\u0645\u0646\u06cc (\u062f\u06cc\u06af\u0631)
-languages.ypk=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u06cc\u0648\u067e\u06cc\u06a9\u06cc
-languages.fr=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc
+languages.fy=\u0641\u0631\u06cc\u0632\u06cc \u063a\u0631\u0628\u06cc
+languages.bla=\u0633\u06cc\u06a9 \u0633\u06cc\u06a9\u0627\u06cc\u06cc
+languages.gem=\u0632\u0628\u0627\u0646 \u0698\u0631\u0645\u0646\u06cc
+languages.ypk=\u0632\u0628\u0627\u0646 \u06cc\u0648\u067e\u06cc\u06a9\u06cc
 languages.arc=\u0622\u0631\u0627\u0645\u06cc
+languages.fr=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc
 languages.fo=\u0641\u0627\u0631\u0648\u06cc\u06cc
-languages.cel=\u0633\u0644\u062a\u06cc (\u062f\u06cc\u06af\u0631)
+languages.cel=\u0632\u0628\u0627\u0646 \u0633\u0644\u062a\u06cc
 languages.fj=\u0641\u06cc\u062c\u06cc\u0627\u06cc\u06cc
 languages.fi=\u0641\u0646\u0644\u0627\u0646\u062f\u06cc
 languages.ff=\u0641\u0648\u0644\u0627\u06cc\u06cc
+languages.tvl=\u062a\u0648\u0648\u0627\u0644\u0648\u06cc\u06cc
 languages.ceb=\u0633\u0628\u0648\u06cc\u06cc
 languages.fa=\u0641\u0627\u0631\u0633\u06cc
+languages.en_AU=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
+languages.zh_Hans=\u0686\u06cc\u0646\u06cc \u0633\u0627\u062f\u0647\u200c\u0634\u062f\u0647
+languages.zh_Hant=\u0686\u06cc\u0646\u06cc \u0633\u0646\u062a\u06cc
 languages.eu=\u0628\u0627\u0633\u06a9\u06cc
 languages.sco=\u0627\u0633\u06a9\u0627\u062a\u0644\u0646\u062f\u06cc
 languages.et=\u0627\u0633\u062a\u0648\u0646\u06cc\u0627\u06cc\u06cc
+languages.scn=\u0633\u06cc\u0633\u06cc\u0644\u06cc
 languages.es=\u0627\u0633\u067e\u0627\u0646\u06cc\u0627\u06cc\u06cc
 languages.eo=\u0627\u0633\u067e\u0631\u0627\u0646\u062a\u0648
 languages.en=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc
 languages.el=\u06cc\u0648\u0646\u0627\u0646\u06cc
-languages.tut=\u0622\u0644\u062a\u0627\u06cc\u06cc\u06a9 (\u062f\u06cc\u06af\u0631)
+languages.tut=\u0632\u0628\u0627\u0646 \u0622\u0644\u062a\u0627\u06cc\u06cc\u06a9
 languages.niu=\u0646\u06cc\u0648\u06cc\u06cc
-languages.tup=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u062a\u0648\u067e\u06cc\u0627\u06cc\u06cc
+languages.tup=\u0632\u0628\u0627\u0646 \u062a\u0648\u067e\u06cc\u0627\u06cc\u06cc
 languages.ee=\u0627\u0648\u0647\u200c\u0627\u06cc
 languages.tum=\u062a\u0648\u0645\u0628\u0648\u06a9\u0627\u06cc\u06cc
+languages.nl_BE=\u0647\u0644\u0646\u062f\u06cc \u0628\u0644\u0698\u06cc\u06a9
+languages.es_419=\u0627\u0633\u067e\u0627\u0646\u06cc\u0627\u06cc\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0644\u0627\u062a\u06cc\u0646
 languages.mos=\u0645\u0627\u0633\u06cc\u0627\u06cc\u06cc
 languages.dz=\u062c\u0648\u0646\u062e\u0627\u06cc\u06cc
-languages.fiu=\u0641\u06cc\u0646 \u0648 \u0627\u0648\u06af\u0631\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
+languages.kcg=\u062a\u0627\u06cc\u067e\u0647
+languages.nic=\u0632\u0628\u0627\u0646 \u0646\u06cc\u062c\u0631\u06cc\u0627\u06cc\u06cc-\u06a9\u0648\u0631\u062f\u0648\u0641\u0627\u0646\u06cc
 languages.lus=\u0644\u0648\u0634\u0647\u200c\u0627\u06cc
+languages.fiu=\u0632\u0628\u0627\u0646 \u0641\u06cc\u0646 \u0648 \u0627\u0648\u06af\u0631\u0627\u06cc\u06cc
+languages.dv=\u062f\u0627\u06cc\u0648\u0647\u06cc
+languages.nia=\u0646\u06cc\u0627\u0633
 languages.moh=\u0645\u0648\u0647\u0627\u06a9\u06cc
 languages.luo=\u0644\u0648\u0626\u0648\u06cc\u06cc
 languages.lun=\u0644\u0648\u0646\u062f\u0627\u06cc\u06cc
-languages.apa=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0622\u067e\u0627\u0686\u06cc\u0627\u06cc\u06cc
+languages.apa=\u0632\u0628\u0627\u0646 \u0622\u067e\u0627\u0686\u06cc\u0627\u06cc\u06cc
+languages.fil=\u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u06cc
+languages.lui=\u0644\u0648\u06cc\u0633\u0646\u0648
+languages.hup=\u0647\u0648\u067e\u0627
+languages.cch=\u0622\u062a\u0633\u0627\u0645
+languages.bin=\u0628\u06cc\u0646\u06cc
 languages.de=\u0622\u0644\u0645\u0627\u0646\u06cc
 languages.lua=\u0644\u0648\u0628\u0627\u06cc\u06cc\u2010\u0644\u0648\u0644\u0648\u0627
 languages.bik=\u0628\u06cc\u06a9\u0648\u0644\u06cc
-languages.und=\u0646\u0627\u0645\u0634\u062e\u0635
+languages.was=\u0648\u0627\u0634\u0648\u06cc\u06cc
+languages.und=\u0632\u0628\u0627\u0646 \u0646\u0627\u0645\u0634\u062e\u0635 \u06cc\u0627 \u0646\u0627\u0645\u0639\u062a\u0628\u0631
+languages.war=\u0648\u0627\u0631\u0627\u06cc\u06cc
 languages.da=\u062f\u0627\u0646\u0645\u0627\u0631\u06a9\u06cc
 languages.dum=\u0647\u0644\u0646\u062f\u06cc \u0645\u06cc\u0627\u0646\u0647
-languages.wak=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0648\u0627\u06a9\u0627\u0634\u06cc
+languages.wal=\u0648\u0627\u0644\u0627\u0645\u0648
+languages.mno=\u0632\u0628\u0627\u0646 \u0645\u0627\u0646\u0648\u0628\u0648
+languages.wak=\u0632\u0628\u0627\u0646 \u0648\u0627\u06a9\u0627\u0634\u06cc
 languages.sat=\u0633\u0627\u0646\u062a\u0627\u0644\u06cc
 languages.cy=\u0648\u06cc\u0644\u0632\u06cc
-languages.cv=\u0686\u0648\u0648\u0627\u0634\u06cc
+languages.sas=\u0633\u0627\u0633\u0627\u06a9
 languages.kbd=\u06a9\u0627\u0628\u0627\u0631\u062f\u06cc\u0646\u06cc
+languages.cv=\u0686\u0648\u0648\u0627\u0634\u06cc
 languages.cu=\u0627\u0633\u0644\u0627\u0648\u06cc \u06a9\u0644\u06cc\u0633\u0627\u06cc\u06cc
-languages.cs=\u0686\u06a9\u06cc
+languages.mni=\u0645\u0627\u0646\u06cc\u067e\u0648\u0631\u06cc
+languages.cs=\u0686\u06a9
+languages.sam=\u0632\u0628\u0627\u0646 \u0633\u0627\u0645\u0631\u06cc \u0622\u0631\u0627\u0645\u06cc
 languages.cr=\u06a9\u0631\u06cc\u0627\u06cc\u06cc
-languages.sal=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0633\u0627\u0644\u06cc\u0634\u06cc
+languages.sal=\u0632\u0628\u0627\u0646 \u0633\u0627\u0644\u06cc\u0634\u06cc
 languages.dua=\u062f\u0648\u0622\u0644\u0627\u06cc\u06cc
-languages.sai=\u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc (\u062f\u06cc\u06af\u0631)
+languages.co=\u06a9\u0648\u0631\u0633\u06cc
+languages.sai=\u0632\u0628\u0627\u0646 \u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
 languages.mnc=\u0645\u0627\u0646\u0686\u0648\u06cc\u06cc
 languages.sah=\u06cc\u0627\u0642\u0648\u062a\u06cc
-languages.gba=\u06af\u0628\u0627\u06cc\u0627\u06cc\u06cc
+languages.kaw=\u06a9\u0627\u0648\u06cc
 languages.inh=\u0627\u06cc\u0646\u06af\u0648\u0634\u06cc
+languages.gba=\u06af\u0628\u0627\u06cc\u0627\u06cc\u06cc
 languages.sad=\u0633\u0627\u0646\u062f\u0627\u0648\u0647\u200c\u0627\u06cc
 languages.ch=\u0686\u0627\u0645\u0648\u0631\u0648\u06cc\u06cc
+languages.ine=\u0632\u0628\u0627\u0646 \u0647\u0646\u062f \u0648 \u0627\u0631\u0648\u067e\u0627\u06cc\u06cc
 languages.bho=\u0628\u0648\u062c\u067e\u0648\u0631\u06cc
-languages.ine=\u0647\u0646\u062f \u0648 \u0627\u0631\u0648\u067e\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
 languages.enm=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0645\u06cc\u0627\u0646\u0647
-languages.ce=\u0686\u0686\u0646\u06cc
-languages.inc=\u0647\u0646\u062f\u06cc\u06a9 (\u062f\u06cc\u06af\u0631)
 languages.kar=\u06a9\u0627\u0631\u0646\u06cc
+languages.inc=\u0632\u0628\u0627\u0646 \u0647\u0646\u062f\u06cc\u06a9
+languages.ce=\u0686\u0686\u0646\u06cc
+languages.gay=\u06af\u0627\u06cc\u0648
 languages.ca=\u06a9\u0627\u062a\u0627\u0644\u0648\u0646\u06cc\u0627\u06cc\u06cc
 languages.umb=\u0627\u0645\u0628\u0646\u062f\u0648\u06cc\u06cc
 languages.syr=\u0633\u0631\u06cc\u0627\u0646\u06cc
 languages.kam=\u06a9\u0627\u0645\u0628\u0627\u06cc\u06cc
+languages.anp=\u0622\u0646\u06af\u06cc\u06a9\u0627
 languages.tsi=\u062a\u0633\u06cc\u0645\u200c\u0634\u06cc\u0627\u0646\u06cc
+languages.kaj=\u062c\u0648
 languages.ang=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0627\u0633\u062a\u0627\u0646
-languages.cau=\u0642\u0641\u0642\u0627\u0632\u06cc (\u062f\u06cc\u06af\u0631)
 languages.kac=\u06a9\u0627\u0686\u06cc\u0646\u06cc
+languages.cau=\u0632\u0628\u0627\u0646 \u0642\u0641\u0642\u0627\u0632\u06cc
 languages.kab=\u0642\u0628\u0627\u06cc\u0644\u06cc
-languages.bs=\u0628\u0648\u0633\u0646\u06cc\u0627\u06cc\u06cc
 languages.kaa=\u0642\u0631\u0647\u200c\u0642\u0627\u0644\u067e\u0627\u0642\u06cc
-languages.br=\u0628\u0631\u062a\u0627\u0646\u06cc\u0627\u06cc\u06cc
+languages.bs=\u0628\u0648\u0633\u0646\u06cc\u0627\u06cc\u06cc
 languages.car=\u06a9\u0627\u0631\u06cc\u0628\u06cc
+languages.br=\u0628\u0631\u062a\u0627\u0646\u06cc\u0627\u06cc\u06cc
+languages.syc=\u0633\u0631\u06cc\u0627\u0646\u06cc \u06a9\u0644\u0627\u0633\u06cc\u06a9
 languages.bo=\u062a\u0628\u062a\u06cc
 languages.bn=\u0628\u0646\u06af\u0627\u0644\u06cc
 languages.bm=\u0628\u0627\u0645\u0628\u0627\u0631\u0627\u06cc\u06cc
 languages.gaa=\u06af\u0627\u06cc\u06cc
+languages.cai=\u0632\u0628\u0627\u0646 \u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc
 languages.bi=\u0628\u06cc\u0633\u0644\u0627\u0645\u0627
-languages.cai=\u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc (\u062f\u06cc\u06af\u0631)
 languages.bh=\u0628\u06cc\u0647\u0627\u0631\u06cc
 languages.bg=\u0628\u0644\u063a\u0627\u0631\u06cc
 languages.be=\u0628\u0644\u0648\u0631\u0648\u0633\u06cc
+languages.pt_BR=\u067e\u0631\u062a\u063a\u0627\u0644\u064a (\u0628\u0631\u0632\u064a\u0644)
 languages.cad=\u06a9\u0627\u062f\u0648\u06cc\u06cc
 languages.ba=\u0628\u0627\u0634\u063a\u06cc\u0631\u06cc
 languages.zu=\u0632\u0648\u0644\u0648\u06cc\u06cc
+languages.zen=\u0632\u0646\u0627\u06af\u0627
+languages.pro=\u067e\u0631\u0648\u0648\u0646\u0634\u0627\u0644 \u0628\u0627\u0633\u062a\u0627\u0646
 languages.hsb=\u0635\u064f\u0631\u0628\u06cc \u0639\u0644\u06cc\u0627
 languages.az=\u062a\u0631\u06a9\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u06cc
 languages.ay=\u0622\u06cc\u0645\u0627\u0631\u0627\u06cc\u06cc
 languages.av=\u0622\u0648\u0627\u0631\u06cc
 languages.as=\u0622\u0633\u0627\u0645\u06cc
-languages.ar=\u0639\u0631\u0628\u06cc
 languages.dsb=\u0635\u064f\u0631\u0628\u06cc \u0633\u0641\u0644\u06cc
-languages.elx=\u0639\u06cc\u0644\u0627\u0645\u06cc
+languages.ar=\u0639\u0631\u0628\u06cc
 languages.ilo=\u0627\u06cc\u0644\u0648\u06a9\u0648\u06cc\u06cc
+languages.elx=\u0639\u06cc\u0644\u0627\u0645\u06cc
 languages.zh=\u0686\u06cc\u0646\u06cc
+languages.an=\u0622\u0631\u0627\u06af\u0648\u0646\u0632
+languages.pra=\u0632\u0628\u0627\u0646 \u067e\u0631\u0627\u06a9\u0631\u06cc\u062a\u06cc
 languages.am=\u0627\u0645\u0647\u0631\u06cc
-languages.pra=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u067e\u0631\u0627\u06a9\u0631\u06cc\u062a\u06cc
 languages.new=\u0646\u0648\u0627\u0631\u06cc\u0627\u06cc\u06cc
+languages.ak=\u0622\u06a9\u0627\u0646
 languages.za=\u0686\u0648\u0627\u0646\u06af\u06cc
-languages.af=\u0622\u0641\u0631\u06cc\u06a9\u0627\u0646\u0633
+languages.en_US=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627
+languages.af=\u0622\u0641\u0631\u06cc\u06a9\u0627\u0646
 languages.ae=\u0627\u0648\u0633\u062a\u0627\u06cc\u06cc
+languages.alt=\u0622\u0644\u062a\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
 languages.ab=\u0622\u0628\u062e\u0627\u0632\u06cc
 languages.aa=\u0622\u0641\u0627\u0631\u06cc
 languages.yo=\u06cc\u0648\u0631\u0648\u0628\u0627\u06cc\u06cc
 languages.alg=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0622\u0644\u06af\u0648\u0646\u06a9\u06cc\u0646\u06cc
 languages.ale=\u0622\u0644\u0626\u0648\u062a\u06cc
-languages.mkh=\u0645\u0648\u0646\u200c\u062e\u0645\u0631\u06cc (\u062f\u06cc\u06af\u0631)
-languages.yi=\u06cc\u062f\u06cc
-languages.dra=\u062f\u0631\u0627\u0648\u06cc\u062f\u06cc (\u062f\u06cc\u06af\u0631)
-languages.ber=\u0628\u0631\u0628\u0631\u06cc (\u062f\u06cc\u06af\u0631)
+languages.mkh=\u0632\u0628\u0627\u0646 \u0645\u0648\u0646\u200c\u062e\u0645\u0631\u06cc
+languages.yi=\u0627\u064a\u062f\u064a\u0634
+languages.dra=\u0632\u0628\u0627\u0646 \u062f\u0631\u0627\u0648\u06cc\u062f\u06cc
+languages.ber=\u0628\u0631\u0628\u0631\u06cc
 languages.nds=\u0622\u0644\u0645\u0627\u0646\u06cc \u0633\u0641\u0644\u06cc
 languages.bem=\u0628\u0645\u0628\u0627\u06cc\u06cc
 languages.bej=\u0628\u062c\u0627\u06cc\u06cc
+languages.tpi=\u062a\u0648\u06a9 \u067e\u06cc\u0633\u06cc\u0646\u06cc
+variants.POSIX=\u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631\u06cc
 variants.1901=\u0631\u0633\u0645\u200c\u0627\u0644\u062e\u0637 \u0633\u0646\u062a\u06cc \u0622\u0644\u0645\u0627\u0646\u06cc
-variants.GUOYU=\u0645\u0627\u0646\u062f\u0627\u0631\u06cc\u0646 \u06cc\u0627 \u0686\u06cc\u0646\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f
 variants.1996=\u0631\u0633\u0645\u200c\u0627\u0644\u062e\u0637 \u0622\u0644\u0645\u0627\u0646\u06cc \u06f1\u06f9\u06f9\u06f6 \u0645\u06cc\u0644\u0627\u062f\u06cc
+variants.AREVELA=\u0627\u0631\u0645\u0646\u06cc \u0634\u0631\u0642\u06cc
+variants.SCOTLAND=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0645\u0639\u06cc\u0627\u0631 \u0627\u0633\u06a9\u0627\u062a\u0644\u0646\u062f
 variants.REVISED=\u0631\u0633\u0645\u200c\u0627\u0644\u062e\u0637 \u062a\u062c\u062f\u06cc\u062f\u0646\u0638\u0631\u0634\u062f\u0647
index cd856885b83c5478e80ba863f9cd9bb9021720f6..d6b375d8a033bdf651ab4cfe71579e443ad62663 100644 (file)
@@ -11,13 +11,12 @@ zeroDigit=\u06f0
 decimalSeparator=\u066b
 groupingSeparator=\u066c
 percentFormat='\u202a'#,##0%'\u202c'
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
 currenciesDisplayName.NOK=\u06a9\u0631\u0648\u0646 \u0646\u0627\u0631\u0648\u06cc
 currenciesDisplayName.BND=\u062f\u0627\u0644\u0631 \u0628\u0631\u0648\u0646\u06cc
-currenciesDisplayName.SGD=\u062f\u0627\u0644\u0631 \u0633\u06cc\u0646\u06af\u0627\u067e\u0648\u0631
 currenciesDisplayName.JPY=\u06cc\u0646 \u062c\u0627\u067e\u0627\u0646
-currenciesDisplayName.NLG=\u06af\u06cc\u0644\u062f\u0631 \u0647\u0627\u0644\u0646\u062f
+currenciesDisplayName.SGD=\u062f\u0627\u0644\u0631 \u0633\u06cc\u0646\u06af\u0627\u067e\u0648\u0631
 currenciesDisplayName.DKK=\u06a9\u0631\u0648\u0646 \u062f\u0646\u0645\u0627\u0631\u06a9
+currenciesDisplayName.NLG=\u06af\u06cc\u0644\u062f\u0631 \u0647\u0627\u0644\u0646\u062f
 currenciesDisplayName.CHF=\u0641\u0631\u0627\u0646\u06a9 \u0633\u0648\u06cc\u0633
 currenciesDisplayName.AUD=\u062f\u0627\u0644\u0631 \u0622\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
 currenciesDisplayName.USD=\u062f\u0627\u0644\u0631 \u0627\u0645\u0631\u06cc\u06a9\u0627
@@ -26,21 +25,20 @@ currenciesDisplayName.SEK=\u06a9\u0631\u0648\u0646 \u0633\u0648\u06cc\u062f\u064
 currenciesDisplayName.BYR=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u06cc\u0647\u0654 \u0633\u0641\u06cc\u062f
 currenciesDisplayName.TJS=\u0633\u0627\u0645\u0627\u0646\u06cc \u062a\u0627\u062c\u06a9\u0633\u062a\u0627\u0646
 currenciesDisplayName.CAD=\u062f\u0627\u0644\u0631 \u06a9\u0627\u0646\u0627\u062f\u0627
-shortMonths=®®®®®®®®®®®®®
-months=\u062c\u0646\u0648\u0631\u06cc®\u0641\u0628\u0631\u0648\u0631\u06cc®\u0645\u0627\u0631\u0686®\u0627\u067e\u0631\u06cc\u0644®\u0645\u06cc®\u062c\u0648\u0646®\u062c\u0648\u0644\u0627\u06cc®\u0627\u06af\u0633\u062a®\u0633\u067e\u062a\u0645\u0628\u0631®\u0627\u06a9\u062a\u0648\u0628\u0631®\u0646\u0648\u0645\u0628\u0631®\u062f\u0633\u0645\u0628\u0631®®
-firstDayOfWeek=sat
-zoneStrings=Asia/Kabul®AFT®\u0648\u0642\u062a \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646®AFT®\u0648\u0642\u062a \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646®©
+currenciesSymbol.AFN=\u060b
+shortMonths=\u062c\u0646\u0648\u00ae\u00ae\u00ae\u00ae\u0645\u0640\u06cc\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u00ae\u00ae\u00ae\u00ae\u00ae\u062f\u0633\u0645\u00ae\u00ae
+months=\u062c\u0646\u0648\u0631\u06cc\u00ae\u0641\u0628\u0631\u0648\u0631\u06cc\u00ae\u0645\u0627\u0631\u0686\u00ae\u0627\u067e\u0631\u06cc\u0644\u00ae\u0645\u06cc\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u0627\u06cc\u00ae\u0627\u06af\u0633\u062a\u00ae\u0633\u067e\u062a\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0645\u0628\u0631\u00ae\u062f\u0633\u0645\u0628\u0631\u00ae\u00ae
 territories.AU=\u0622\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
 territories.GY=\u06af\u06cc\u0627\u0646\u0627
-territories.AR=\u0627\u0631\u062c\u0646\u062a\u0627\u06cc\u0646
 territories.GW=\u06af\u06cc\u0646\u06cc\u0627 \u0628\u06cc\u0633\u0627\u0626\u0648
+territories.AR=\u0627\u0631\u062c\u0646\u062a\u0627\u06cc\u0646
 territories.MZ=\u0645\u0648\u0632\u0645\u0628\u06cc\u0642
-territories.AO=\u0627\u0646\u06af\u0648\u0644\u0627
-territories.GT=\u06af\u0648\u0627\u062a\u06cc\u0645\u0627\u0644\u0627
 territories.MY=\u0645\u0627\u0644\u06cc\u0632\u06cc\u0627
+territories.GT=\u06af\u0648\u0627\u062a\u06cc\u0645\u0627\u0644\u0627
+territories.AO=\u0627\u0646\u06af\u0648\u0644\u0627
 territories.MX=\u0645\u06a9\u0633\u06cc\u06a9\u0648
-territories.AL=\u0627\u0644\u0628\u0627\u0646\u06cc\u0627
 territories.GQ=\u06af\u06cc\u0646\u06cc\u0627 \u0627\u0633\u062a\u0648\u0627\u06cc\u06cc
+territories.AL=\u0627\u0644\u0628\u0627\u0646\u06cc\u0627
 territories.MT=\u0645\u0627\u0644\u062a\u0627
 territories.GN=\u06af\u06cc\u0646\u06cc\u0627
 territories.MR=\u0645\u0648\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627
@@ -48,8 +46,8 @@ territories.SV=\u0627\u0644\u0633\u0644\u0648\u0627\u062f\u0648\u0631
 territories.AG=\u0627\u0646\u062a\u06cc\u06af\u0648\u0627 \u0648 \u0628\u0627\u0631\u0628\u0648\u062f\u0627
 territories.ST=\u0633\u0627\u0626\u0648 \u062a\u0648\u0645\u0647 \u0648 \u067e\u0631\u06cc\u0646\u0633\u06cc\u067e
 territories.AE=\u0627\u0645\u0627\u0631\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0639\u0631\u0628\u06cc
-territories.AD=\u0627\u0646\u062f\u0648\u0631\u0627
 territories.MN=\u0645\u0646\u06af\u0648\u0644\u06cc\u0627
+territories.AD=\u0627\u0646\u062f\u0648\u0631\u0627
 territories.SO=\u0633\u0648\u0645\u0627\u0644\u06cc\u0647
 territories.SN=\u0633\u06cc\u0646\u06cc\u06af\u0627\u0644
 territories.GD=\u06af\u0631\u06cc\u0646\u0627\u062f\u0627
@@ -77,14 +75,14 @@ territories.KP=\u06a9\u0648\u0631\u06cc\u0627\u06cc \u0634\u0645\u0627\u0644\u06
 territories.KN=\u0633\u0646\u062a \u06a9\u06cc\u062a\u0633 \u0648 \u0646\u06cc\u0648\u06cc\u0633
 territories.KM=\u06a9\u0648\u0645\u0648\u0631
 territories.EE=\u0627\u0633\u062a\u0648\u0646\u06cc\u0627
-territories.WS=\u0633\u0627\u0645\u0648\u0622\u06cc \u063a\u0631\u0628\u06cc
-territories.EC=\u0627\u06a9\u0648\u0627\u062f\u0648\u0631
+territories.WS=\u0633\u0627\u0645\u0648\u0622
 territories.KH=\u06a9\u0645\u067e\u0648\u0686\u06cc\u0627
+territories.EC=\u0627\u06a9\u0648\u0627\u062f\u0648\u0631
 territories.KG=\u0642\u0631\u063a\u0632\u0633\u062a\u0627\u0646
 territories.KE=\u06a9\u06cc\u0646\u06cc\u0627
 territories.PY=\u067e\u0627\u0631\u0627\u06af\u0648\u0627\u06cc
-territories.DK=\u062f\u0646\u0645\u0627\u0631\u06a9
 territories.JP=\u062c\u0627\u067e\u0627\u0646
+territories.DK=\u062f\u0646\u0645\u0627\u0631\u06a9
 territories.PT=\u067e\u0631\u062a\u06af\u0627\u0644
 territories.PL=\u067e\u0648\u0644\u0646\u062f
 territories.PG=\u067e\u0627\u067e\u0648\u0627 \u0646\u06cc\u0648 \u06af\u06cc\u0646\u06cc\u0627
@@ -110,15 +108,15 @@ territories.BS=\u0628\u0647\u0627\u0645\u0627\u0633
 territories.BR=\u0628\u0631\u0627\u0632\u06cc\u0644
 territories.UA=\u0627\u06a9\u0631\u0627\u06cc\u0646
 territories.NZ=\u0632\u06cc\u0644\u0627\u0646\u062f \u062c\u062f\u06cc\u062f
-territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc\u0627
 territories.HT=\u0647\u0627\u06cc\u062a\u06cc
+territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc\u0627
 territories.BN=\u0628\u0631\u0648\u0646\u06cc
 territories.HR=\u06a9\u0631\u0648\u0634\u06cc\u0627
 territories.HN=\u0647\u0627\u0646\u062f\u0648\u0631\u0627\u0633
 territories.BG=\u0628\u0644\u063a\u0627\u0631\u06cc\u0627
 territories.NP=\u0646\u06cc\u067e\u0627\u0644
-territories.BE=\u0628\u0644\u062c\u06cc\u0645
 territories.NO=\u0646\u0627\u0631\u0648\u06cc
+territories.BE=\u0628\u0644\u062c\u06cc\u0645
 territories.BD=\u0628\u0646\u06af\u0644\u0647\u200c\u062f\u06cc\u0634
 territories.ZW=\u0632\u06cc\u0645\u0628\u0627\u0628\u0648\u06cc
 territories.NL=\u0647\u0627\u0644\u0646\u062f
@@ -132,13 +130,13 @@ languages.no=\u0646\u0627\u0631\u0648\u06cc\u0698\u06cc
 languages.nl=\u0647\u0627\u0644\u0646\u062f\u06cc
 languages.it=\u0627\u06cc\u062a\u0627\u0644\u0648\u06cc
 languages.tg=\u062a\u0627\u062c\u06a9\u06cc
-languages.is=\u0622\u06cc\u0633\u0644\u0646\u062f\u06cc
 languages.ne=\u0646\u06cc\u067e\u0627\u0644\u06cc
+languages.is=\u0622\u06cc\u0633\u0644\u0646\u062f\u06cc
 languages.fi=\u0641\u0646\u0644\u0646\u062f\u06cc
 languages.id=\u0627\u0646\u062f\u0648\u0646\u06cc\u0632\u06cc\u0627\u06cc\u06cc
 languages.sv=\u0633\u0648\u06cc\u062f\u0646\u06cc
-languages.pt=\u067e\u0631\u062a\u06af\u0627\u0644\u06cc
 languages.fa=\u062f\u0631\u06cc
+languages.pt=\u067e\u0631\u062a\u06af\u0627\u0644\u06cc
 languages.mn=\u0645\u063a\u0644\u06cc
 languages.pl=\u067e\u0648\u0644\u0646\u062f\u06cc
 languages.ky=\u0642\u0631\u063a\u0632\u06cc
index 8e6a3406475a56fbfce73ec3982de2c8572ee6fa..a2223b268f1fda7ef299c1faba73a52e5264eaaf 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=ep\u00e4luku
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
-groupingSeparator= 
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.YDD=Jemenin dinaari
-currenciesDisplayName.TWD=Taiwanin uusi dollari
-currenciesDisplayName.KES=Kenian shillinki
-currenciesDisplayName.BYB=Valko-Ven\u00e4j\u00e4n uusi rupla (1994-1999)
-currenciesDisplayName.LKR=Sri Lankan rupia
-currenciesDisplayName.RWF=Ruandan frangi
-currenciesDisplayName.TJS=Tad\u017eikistanin somoni
-currenciesDisplayName.SDP=Sudanin punta
-currenciesDisplayName.TJR=Tad\u017eikistanin rupla
-currenciesDisplayName.ERN=Eritrean nakfa
-currenciesDisplayName.AFN=Afgaani
-currenciesDisplayName.GRD=Kreikan drakhma
-currenciesDisplayName.IEP=Irlannin punta
-currenciesDisplayName.ARS=Argentiinan peso
-currenciesDisplayName.SDD=Sudanin dinaari
-currenciesDisplayName.ARP=Argentiinan peso (1983-1985)
-currenciesDisplayName.GEL=Georgian lari
-currenciesDisplayName.AFA=Afgaani (1927-2002)
-currenciesDisplayName.GEK=Georgian kuponkilari
-currenciesDisplayName.CRC=Costa Rican colon
-currenciesDisplayName.FKP=Falklandinsaarten punta
-currenciesDisplayName.EEK=Viron kruunu
-currenciesDisplayName.HKD=Hongkongin dollari
-currenciesDisplayName.MDL=Moldovan leu
-currenciesDisplayName.ARA=Argentiinan austral
-currenciesDisplayName.IQD=Irakin dinaari
-currenciesDisplayName.SCR=Seychellien rupia
-currenciesDisplayName.VUV=Vanuatun vatu
-currenciesDisplayName.DKK=Tanskan kruunu
-currenciesDisplayName.KPW=Pohjois-Korean won
-currenciesDisplayName.GQE=P\u00e4iv\u00e4ntasaajan Guinean ekwele guineana
-currenciesDisplayName.IDR=Indonesian rupia
-currenciesDisplayName.LVR=Latvian rupla
-currenciesDisplayName.SOS=Somalian shillinki
-currenciesDisplayName.AED=Arabiemiirikuntien dirhami
-currenciesDisplayName.BWP=Botswanan pula
-currenciesDisplayName.LVL=Latvian lati
-currenciesDisplayName.RUR=Ven\u00e4j\u00e4n rupla (1991-1998)
-currenciesDisplayName.NIO=Nicaraguan cordoba oro
-currenciesDisplayName.ADP=Andorran peseta
-currenciesDisplayName.FJD=Fid\u017ein dollari
-currenciesDisplayName.MOP=Macaon pataca
-currenciesDisplayName.RUB=Ven\u00e4j\u00e4n rupla
-currenciesDisplayName.CDF=Kongon kongolainen frangi
-currenciesDisplayName.NIC=Nicaraguan cordoba
-currenciesDisplayName.DJF=Djiboutin frangi
-currenciesDisplayName.ECV=Ecuadorin UVC
-currenciesDisplayName.SBD=Salomonsaarten dollari
-currenciesDisplayName.UZS=Uzbekistanin som
-currenciesDisplayName.ECS=Ecuadorin sucre
-currenciesDisplayName.PHP=Filippiinien peso
-currenciesDisplayName.THB=Thaimaan baht
-currenciesDisplayName.LUF=Luxemburgin frangi
-currenciesDisplayName.FIM=Suomen markka
-currenciesDisplayName.TTD=Trinidadin ja Tobagon dollari
-currenciesDisplayName.SZL=Swazimaan lilangeni
-currenciesDisplayName.MNT=Mongolian tugrik
-currenciesDisplayName.SAR=Saudi-Arabian rial
-currenciesDisplayName.UAK=Ukrainan karbovanetz
-currenciesDisplayName.UAH=Ukrainan hryvnia
-currenciesDisplayName.HUF=Unkarin forintti
-currenciesDisplayName.COP=Kolumbian peso
-currenciesDisplayName.QAR=Qatarin rial
-currenciesDisplayName.LTT=Liettuan talonas
-currenciesDisplayName.PTE=Portugalin escudo
-currenciesDisplayName.AOR=Angolan kwanza reajustado (1995-1999)
-currenciesDisplayName.UYU=Uruguayn peso uruguayo
-currenciesDisplayName.GBP=Iso-Britannian sterling-punta
-currenciesDisplayName.BIF=Burundin frangi
-currenciesDisplayName.INR=Intian rupia
-currenciesDisplayName.ZRZ=Zairen zaire
-currenciesDisplayName.AON=Angolan uusi kwanza (1990-2000)
-currenciesDisplayName.LTL=Liettuan liti
-currenciesDisplayName.XFU=Ranskan UIC-frangi
-currenciesDisplayName.KZT=Kazakstanin tenge
-currenciesDisplayName.MZM=Mosambikin metical
-currenciesDisplayName.UYP=Uruguayn peso (1975-1993)
-currenciesDisplayName.AOK=Angolan kwanza (1977-1990)
-currenciesDisplayName.BUK=Burman kyat
-currenciesDisplayName.GNS=Guinean syli
-currenciesDisplayName.XFO=Ranskan kulta frangi
-currenciesDisplayName.PGK=Papua-Uuden-Guinean kina
-currenciesDisplayName.SYP=Syyrian punta
-currenciesDisplayName.MZE=Mosambikin escudo
-currenciesDisplayName.OMR=Omanin rial
-currenciesDisplayName.NGN=Nigerian naira
-currenciesDisplayName.ZRN=Zairen uusi zaire
-currenciesDisplayName.AOA=Angolan kwanza
-currenciesDisplayName.CNY=Kiinan yuan renminbi
-currenciesDisplayName.MAF=Marokon frangi
-currenciesDisplayName.GNF=Guinean frangi
-currenciesDisplayName.HTG=Haitin gourde
-currenciesDisplayName.MAD=Marokon dirhami
-currenciesDisplayName.TRY=Turkin uusi liira
-currenciesDisplayName.MMK=Myanmarin kyat
-currenciesDisplayName.MYR=Malesian ringgit
-currenciesDisplayName.LSL=Lesothon loti
-currenciesDisplayName.XEU=Euroopan valuuttayksikk\u00f6
-currenciesDisplayName.BHD=Bahrainin dinaari
-currenciesDisplayName.SLL=Sierra Leonen leone
-currenciesDisplayName.BTN=Bhutanin ngultrum
-currenciesDisplayName.TRL=Turkin liira
-currenciesDisplayName.KMF=Komorien frangi
-currenciesDisplayName.ANG=Alankomaiden Antillien guldeni
-currenciesDisplayName.CZK=T\u0161ekin koruna
-currenciesDisplayName.AZM=Azerbaid\u017eanin manat
-currenciesDisplayName.KYD=Caymansaarten dollari
-currenciesDisplayName.GMD=Gambian dalasi
-currenciesDisplayName.BGN=Bulgarian uusi lev
-currenciesDisplayName.CAD=Kanadan dollari
-currenciesDisplayName.MXV=Meksikon UDI
-currenciesDisplayName.BGL=Bulgarian kova leva
-currenciesDisplayName.VEB=Venezuelan bolivar
-currenciesDisplayName.MLF=Malin frangi
-currenciesDisplayName.ILS=Israelin uusi sekeli
-currenciesDisplayName.MXP=Meksikon hopeapeso (1861-1992)
-currenciesDisplayName.PES=Perun sol
-currenciesDisplayName.GYD=Guyanan dollari
-currenciesDisplayName.MXN=Meksikon peso
-currenciesDisplayName.ILP=Israelin punta
-currenciesDisplayName.SKK=Slovakin koruna
-currenciesDisplayName.CYP=Kyproksen punta
-currenciesDisplayName.XDR=erityisnosto-oikeus
-currenciesDisplayName.PEN=Perun uusi sol
-currenciesDisplayName.LRD=Liberian dollari
-currenciesDisplayName.PEI=Perun inti
-currenciesDisplayName.AMD=Armenian dram
-currenciesDisplayName.BSD=Bahaman dollari
-currenciesDisplayName.HRK=Kroatian kuna
-currenciesDisplayName.CLP=Chilen peso
-currenciesDisplayName.HRD=Kroatian dinaari
-currenciesDisplayName.XPF=CFP-frangi
-currenciesDisplayName.FRF=Ranskan frangi
-currenciesDisplayName.BRR=Brasilian cruzeiro
-currenciesDisplayName.MKD=Makedonian dinaari
-currenciesDisplayName.CLF=Chilen unidades de fomento
-currenciesDisplayName.ALL=Albanian lek
-currenciesDisplayName.BRN=Brasilian uusi cruzado
-currenciesDisplayName.MWK=Malawin kwacha
-currenciesDisplayName.BRL=Brasilian real
-currenciesDisplayName.TPE=Timorin escudo
-currenciesDisplayName.BRE=Brasilian cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brasilian cruzado
-currenciesDisplayName.BRB=Brasilian uusi cruzeiro (1967-1986)
-currenciesDisplayName.DEM=Saksan markka
-currenciesDisplayName.KWD=Kuwaitin dinaari
-currenciesDisplayName.XCD=It\u00e4-Karibian dollari
-currenciesDisplayName.NPR=Nepalin rupia
-currenciesDisplayName.GWP=Guinea-Bissaun peso
-currenciesDisplayName.YUN=Jugoslavian vaihdettava dinaari
-currenciesDisplayName.SVC=El Salvadorin colon
-currenciesDisplayName.YUM=Jugoslavian uusi dinaari
+groupingSeparator=\u00a0
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=Jemenin dinaaria
+currenciesDisplayName.KES=Kenian \u0161illinki\u00e4
+currenciesDisplayName.TWD=Taiwanin uutta dollaria
+currenciesDisplayName.LKR=Sri Lankan rupiaa
+currenciesDisplayName.BYB=Valko-Ven\u00e4j\u00e4n uutta ruplaa (1994\u20131999)
+currenciesDisplayName.TJS=Tad\u017eikistanin somonia
+currenciesDisplayName.RWF=Ruandan frangia
+currenciesDisplayName.ERN=Eritrean nakfaa
+currenciesDisplayName.TJR=Tad\u017eikistanin ruplaa
+currenciesDisplayName.SDP=Sudanin puntaa (1957\u20131999)
+currenciesDisplayName.GRD=Kreikan drakmaa
+currenciesDisplayName.AFN=Afganistanin afgaania
+currenciesDisplayName.IEP=Irlannin puntaa
+currenciesDisplayName.ARS=Argentiinan pesoa
+currenciesDisplayName.SDG=Sudanin puntaa
+currenciesDisplayName.ARP=Argentiinan pesoa (1983\u20131985)
+currenciesDisplayName.SDD=Sudanin dinaaria
+currenciesDisplayName.GEL=Georgian laria
+currenciesDisplayName.GEK=Georgian kuponkilaria
+currenciesDisplayName.AFA=Afganistanin afgaania (1927-2002)
+currenciesDisplayName.CRC=Costa Rican colonia
+currenciesDisplayName.FKP=Falklandinsaarten puntaa
+currenciesDisplayName.EEK=Viron kruunua
+currenciesDisplayName.MDL=Moldovan leuta
+currenciesDisplayName.HKD=Hongkongin dollaria
+currenciesDisplayName.IQD=Irakin dinaaria
+currenciesDisplayName.ARA=Argentiinan australia
+currenciesDisplayName.SCR=Seychellien rupiaa
+currenciesDisplayName.VUV=Vanuatun vatua
+currenciesDisplayName.KPW=Pohjois-Korean wonia
+currenciesDisplayName.DKK=Tanskan kruunua
+currenciesDisplayName.IDR=Indonesian rupiaa
+currenciesDisplayName.GQE=P\u00e4iv\u00e4ntasaajan Guinean ekwele\u00e4 (\u20131986)
+currenciesDisplayName.SOS=Somalian \u0161illinki\u00e4
+currenciesDisplayName.LVR=Latvian ruplaa
+currenciesDisplayName.EQE=P\u00e4iv\u00e4ntasaajan Guinean ekwele\u00e4 (1986\u20131989)
+currenciesDisplayName.AED=Arabiemiirikuntien dirhamia
+currenciesDisplayName.LVL=Latvian latia
+currenciesDisplayName.BWP=Botswanan pulaa
+currenciesDisplayName.RUR=Ven\u00e4j\u00e4n ruplaa (1991\u20131998)
+currenciesDisplayName.NIO=Nicaraguan kultacordobaa
+currenciesDisplayName.XTS=testaustarkoitukseen varattua valuuttakoodi
+currenciesDisplayName.MOP=Macaon patacaa
+currenciesDisplayName.FJD=Fid\u017ein dollaria
+currenciesDisplayName.ADP=Andorran pesetaa
+currenciesDisplayName.RUB=Ven\u00e4j\u00e4n ruplaa
+currenciesDisplayName.CDF=Kongon frangia
+currenciesDisplayName.NIC=Nicaraguan cordobaa
+currenciesDisplayName.DJF=Djiboutin frangia
+currenciesDisplayName.UZS=Uzbekistanin somia
+currenciesDisplayName.SBD=Salomonsaarten dollaria
+currenciesDisplayName.ECV=Ecuadorin UVC'ta
+currenciesDisplayName.LUL=Luxemburgin rahoitusfrangia
+currenciesDisplayName.ECS=Ecuadorin sucrea
+currenciesDisplayName.THB=Thaimaan bahtia
+currenciesDisplayName.PHP=Filippiinien pesoa
+currenciesDisplayName.LUF=Luxemburgin frangia
+currenciesDisplayName.RHD=Rhodesian dollaria
+currenciesDisplayName.LUC=Luxemburgin vaihdettavaa frangia
+currenciesDisplayName.FIM=Suomen markkaa
+currenciesDisplayName.TTD=Trinidadin ja Tobagon dollaria
+currenciesDisplayName.SZL=Swazimaan lilangenia
+currenciesDisplayName.MNT=Mongolian tugrikia
+currenciesDisplayName.UAK=Ukrainan karbovanetzi\u00e4
+currenciesDisplayName.SAR=Saudi-Arabian rialia
+currenciesDisplayName.COU=Kolumbian unidad de valor realia
+currenciesDisplayName.UAH=Ukrainan hryvniaa
+currenciesDisplayName.HUF=Unkarin forinttia
+currenciesDisplayName.QAR=Qatarin rialia
+currenciesDisplayName.COP=Kolumbian pesoa
+currenciesDisplayName.LTT=Liettuan talonasia
+currenciesDisplayName.PTE=Portugalin escudoa
+currenciesDisplayName.UYU=Uruguayn pesoa
+currenciesDisplayName.AOR=Angolan kwanza reajustadoa (1995\u20131999)
+currenciesDisplayName.GBP=Englannin puntaa
+currenciesDisplayName.ZRZ=Zairen zairea
+currenciesDisplayName.INR=Intian rupiaa
+currenciesDisplayName.BIF=Burundin frangia
+currenciesDisplayName.XFU=Ranskan UIC-frangia
+currenciesDisplayName.MZN=Mosambikin meticalia
+currenciesDisplayName.LTL=Liettuan liti\u00e4
+currenciesDisplayName.AON=Angolan uutta kwanzaa (1990\u20132000)
+currenciesDisplayName.UYP=Uruguayn pesoa (1975\u20131993)
+currenciesDisplayName.MZM=Mosambikin meticalia (1980\u20132006)
+currenciesDisplayName.KZT=Kazakstanin tenge\u00e4
+currenciesDisplayName.AOK=Angolan kwanzaa (1977\u20131990)
+currenciesDisplayName.GNS=Guinean syli\u00e4
+currenciesDisplayName.BUK=Burman kyatia
+currenciesDisplayName.XFO=Ranskan kultafrangia
+currenciesDisplayName.PGK=Papua-Uuden-Guinean kinaa
+currenciesDisplayName.UYI=Uruguayn pesoa en unidades indexadas
+currenciesDisplayName.SYP=Syyrian puntaa
+currenciesDisplayName.OMR=Omanin rialia
+currenciesDisplayName.MZE=Mosambikin escudoa
+currenciesDisplayName.ZRN=Zairen uutta zairea
+currenciesDisplayName.NGN=Nigerian nairaa
+currenciesDisplayName.CNY=Kiinan yuania
+currenciesDisplayName.AOA=Angolan kwanzaa
+currenciesDisplayName.MAF=Marokon frangia
+currenciesDisplayName.RSD=Serbian dinaaria
+currenciesDisplayName.GNF=Guinean frangia
+currenciesDisplayName.MAD=Marokon dirhamia
+currenciesDisplayName.HTG=Haitin gourdea
+currenciesDisplayName.TRY=Turkin liiraa
+currenciesDisplayName.MMK=Myanmarin kyatia
+currenciesDisplayName.XRE=RINET-rahastoyksikk\u00f6\u00e4
+currenciesDisplayName.MYR=Malesian ringgiti\u00e4
+currenciesDisplayName.LSM=Lesothon malotia
+currenciesDisplayName.XEU=Euroopan valuuttayksikk\u00f6\u00e4 (ECU)
+currenciesDisplayName.LSL=Lesothon lotia
+currenciesDisplayName.SLL=Sierra Leonen leonea
+currenciesDisplayName.BHD=Bahrainin dinaaria
+currenciesDisplayName.BTN=Bhutanin ngultrumia
+currenciesDisplayName.TRL=Turkin vanhaa liiraa
+currenciesDisplayName.KMF=Komorien frangia
+currenciesDisplayName.CZK=T\u0161ekin korunaa
+currenciesDisplayName.ANG=Alankomaiden Antillien guldenia
+currenciesDisplayName.AZN=Azerbaid\u017eanin manatia
+currenciesDisplayName.AZM=Azerbaid\u017eanin manatia (1993\u20132006)
+currenciesDisplayName.KYD=Caymansaarten dollaria
+currenciesDisplayName.GMD=Gambian dalasia
+currenciesDisplayName.VEF=Venezuelan bolivar fuertea
+currenciesDisplayName.BGN=Bulgarian uutta levaa
+currenciesDisplayName.MXV=Meksikon UDI'ta
+currenciesDisplayName.CAD=Kanadan dollaria
+currenciesDisplayName.BGL=Bulgarian kovaa levaa
+currenciesDisplayName.VEB=Venezuelan bolivaria
+currenciesDisplayName.MLF=Malin frangia
+currenciesDisplayName.MXP=Meksikon hopeapesoa (1861\u20131992)
+currenciesDisplayName.ILS=Israelin uutta sekeli\u00e4
+currenciesDisplayName.PES=Perun solia
+currenciesDisplayName.MXN=Meksikon pesoa
+currenciesDisplayName.GYD=Guyanan dollaria
+currenciesDisplayName.ILP=Israelin puntaa
+currenciesDisplayName.CYP=Kyproksen puntaa
+currenciesDisplayName.SKK=Slovakian korunaa
+currenciesDisplayName.XDR=erityisnosto-oikeutta (SDR)
+currenciesDisplayName.PEN=Perun uutta solia
+currenciesDisplayName.LRD=Liberian dollaria
+currenciesDisplayName.PEI=Perun inti\u00e4
+currenciesDisplayName.AMD=Armenian dramia
+currenciesDisplayName.BSD=Bahaman dollaria
+currenciesDisplayName.XPT=platinayksikk\u00f6\u00e4
+currenciesDisplayName.HRK=Kroatian kunaa
+currenciesDisplayName.CLP=Chilen pesoa
+currenciesDisplayName.HRD=Kroatian dinaaria
+currenciesDisplayName.XPF=CFP-frangia
+currenciesDisplayName.FRF=Ranskan frangia
+currenciesDisplayName.XPD=palladiumyksikk\u00f6\u00e4
+currenciesDisplayName.BRR=Brasilian cruzeiroa
+currenciesDisplayName.MKD=Makedonian dinaaria
+currenciesDisplayName.CLF=Chilen unidades de fomentoa
+currenciesDisplayName.ALL=Albanian leki\u00e4
+currenciesDisplayName.BRN=Brasilian uutta cruzadoa
+currenciesDisplayName.MWK=Malawin kwachaa
+currenciesDisplayName.BRL=Brasilian realia
+currenciesDisplayName.TPE=Timorin escudoa
+currenciesDisplayName.BRE=Brasilian cruzeiroa (1990\u20131993)
+currenciesDisplayName.BRC=Brasilian cruzadoa
+currenciesDisplayName.BRB=Brasilian uutta cruzeiroa (1967\u20131986)
+currenciesDisplayName.DEM=Saksan markkaa
+currenciesDisplayName.KWD=Kuwaitin dinaaria
+currenciesDisplayName.XCD=It\u00e4-Karibian dollaria
+currenciesDisplayName.NPR=Nepalin rupiaa
+currenciesDisplayName.GWP=Guinea-Bissaun pesoa
+currenciesDisplayName.YUN=Jugoslavian vaihdettavaa dinaaria
+currenciesDisplayName.SVC=El Salvadorin colonia
+currenciesDisplayName.YUM=Jugoslavian uutta dinaaria
 currenciesDisplayName.BEL=Belgian frangi (rahoitus)
-currenciesDisplayName.SIT=Slovenian tolar
-currenciesDisplayName.JPY=Japanin jeni
-currenciesDisplayName.XOF=CFA-frangi BCEAO
-currenciesDisplayName.MVR=Malediivien rufiyaa
-currenciesDisplayName.GWE=Portugalin Guinean escudo
-currenciesDisplayName.BEF=Belgian frangi
-currenciesDisplayName.TOP=Tongan pa\u02bbanga
-currenciesDisplayName.YUD=Jugoslavian kova dinaari
+currenciesDisplayName.SIT=Slovenian tolaria
+currenciesDisplayName.JPY=Japanin jeni\u00e4
+currenciesDisplayName.XOF=CFA-frangia BCEAO
+currenciesDisplayName.MVR=Malediivien rufiyaata
+currenciesDisplayName.BEF=Belgian frangia
+currenciesDisplayName.GWE=Portugalin Guinean escudoa
+currenciesDisplayName.TOP=Tongan pa\u2019angaa
+currenciesDisplayName.YUD=Jugoslavian kovaa dinaaria
 currenciesDisplayName.BEC=Belgian frangi (vaihdettava)
-currenciesDisplayName.SUR=Neuvostoliiton rupla
-currenciesDisplayName.ROL=Romanian lei
-currenciesDisplayName.DDM=It\u00e4-Saksan ostmark
-currenciesDisplayName.BDT=Bangladeshin taka
-currenciesDisplayName.XBD=EUA (XBD)
-currenciesDisplayName.AWG=Aruban guldeni
-currenciesDisplayName.XBC=EUA (XBC)
-currenciesDisplayName.XBB=Euroopan rahayksikk\u00f6 (EMU)
-currenciesDisplayName.XBA=EURCO
-currenciesDisplayName.NOK=Norjan kruunu
-currenciesDisplayName.MUR=Mauritiuksen rupia
-currenciesDisplayName.ZAR=Etel\u00e4-Afrikan randi
-currenciesDisplayName.SHP=Saint Helenan punta
-currenciesDisplayName.XAU=kulta
+currenciesDisplayName.SUR=Neuvostoliiton ruplaa
+currenciesDisplayName.RON=Romanian uutta leuta
+currenciesDisplayName.ROL=Romanian vanhaa leuta
+currenciesDisplayName.BDT=Bangladeshin takaa
+currenciesDisplayName.DDM=It\u00e4-Saksan markkaa
+currenciesDisplayName.XBD=EUA'ta (XBD)
+currenciesDisplayName.AWG=Aruban guldenia
+currenciesDisplayName.XBC=EUA'ta (XBC)
+currenciesDisplayName.XBB=Euroopan rahayksikk\u00f6\u00e4 (EMU)
+currenciesDisplayName.XBA=EURCO'a
+currenciesDisplayName.NOK=Norjan kruunua
+currenciesDisplayName.MUR=Mauritiuksen rupiaa
+currenciesDisplayName.ZAR=Etel\u00e4-Afrikan randia
+currenciesDisplayName.SHP=Saint Helenan puntaa
+currenciesDisplayName.XAU=kultayksikk\u00f6\u00e4
 currenciesDisplayName.ZAL=Etel\u00e4-Afrikan randi (rahoitus)
-currenciesDisplayName.VND=Vietnamin dong
-currenciesDisplayName.TZS=Tansanian shillinki
-currenciesDisplayName.GIP=Gibraltarin punta
-currenciesDisplayName.TND=Tunisian dinaari
-currenciesDisplayName.CVE=Kap Verden escudo
-currenciesDisplayName.UGX=Ugandan shillinki
-currenciesDisplayName.ZMK=Sambian kwacha
-currenciesDisplayName.JOD=Jordanian dinaari
-currenciesDisplayName.XAF=CFA-frangi BEAC
-currenciesDisplayName.LBP=Libanonin punta
-currenciesDisplayName.UGS=Ugandan shillinki (1966-1987)
-currenciesDisplayName.STD=S\u00e3o Tom\u00e9n ja Princip\u00e9n dobra
-currenciesDisplayName.WST=L\u00e4nsi-Samoan tala
-currenciesDisplayName.KHR=Kambod\u017ean riel
-currenciesDisplayName.EUR=euro
-currenciesDisplayName.DOP=Dominikaanisen tasavallan peso
-currenciesDisplayName.BOV=Bolivian mvdol
-currenciesDisplayName.MTP=Maltan punta
-currenciesDisplayName.USS=Yhdysvaltain dollari (sama p\u00e4iv\u00e4)
-currenciesDisplayName.BOP=Bolivian peso
-currenciesDisplayName.MTL=Maltan liira
-currenciesDisplayName.CUP=Kuuban peso
-currenciesDisplayName.TMM=Turkmenistanin manat
-currenciesDisplayName.USN=Yhdysvaltain dollari (seuraava p\u00e4iv\u00e4)
-currenciesDisplayName.SGD=Singaporen dollari
-currenciesDisplayName.NZD=Uuden-Seelannin dollari
-currenciesDisplayName.USD=Yhdysvaltain dollari
-currenciesDisplayName.HNL=Hondurasin lempira
-currenciesDisplayName.BOB=boliviano
-currenciesDisplayName.ITL=Italian liira
-currenciesDisplayName.PAB=Panaman balboa
-currenciesDisplayName.GTQ=Guatemalan quetzal
-currenciesDisplayName.LAK=Laosin kip
-currenciesDisplayName.GHC=Ghanan cedi
-currenciesDisplayName.AUD=Australian dollari
-currenciesDisplayName.NAD=Namibian dollari
-currenciesDisplayName.KGS=Kirgistanin som
-currenciesDisplayName.MGF=Madagaskarin frangi
-currenciesDisplayName.CHF=Sveitsin frangi
-currenciesDisplayName.BBD=Barbadosin dollari
-currenciesDisplayName.MGA=Madagaskarin ariary
-currenciesDisplayName.PYG=Paraguayn guarani
-currenciesDisplayName.PLZ=Puolan zloty (1950-1995)
-currenciesDisplayName.YER=Jemenin rial
-currenciesDisplayName.ATS=It\u00e4vallan shillinki
-currenciesDisplayName.ETB=Etiopian birr
-currenciesDisplayName.BND=Brunein dollari
-currenciesDisplayName.JMD=Jamaikan dollari
-currenciesDisplayName.EGP=Egyptin punta
-currenciesDisplayName.PLN=Puolan zloty
-currenciesDisplayName.DZD=Algerian dinaari
-currenciesDisplayName.ISK=Islannin kruunu
-currenciesDisplayName.SRG=Surinamin guldeni
-currenciesDisplayName.LYD=Libyan dinaari
-currenciesDisplayName.BZD=Belizen dollari
-currenciesDisplayName.BAM=Bosnia-Hertsegovinan vaihdettava markka
-currenciesDisplayName.ESP=Espanjan peseta
-currenciesDisplayName.KRW=Etel\u00e4-Korean won
-currenciesDisplayName.NLG=Alankomaiden guldeni
-currenciesDisplayName.MRO=Mauritanian ouguiya
-currenciesDisplayName.BAD=Bosnia-Hertsegovinan dinaari
-currenciesDisplayName.ZWD=Zimbabwen dollari
-currenciesDisplayName.SEK=Ruotsin kruunu
-currenciesDisplayName.CSK=T\u0161ekkoslovakian kova koruna
-currenciesDisplayName.BYR=Valko-Ven\u00e4j\u00e4n rupla
-currenciesDisplayName.IRR=Iranin rial
-currenciesDisplayName.PKR=Pakistanin rupia
-currenciesDisplayName.BMD=Bermudan dollari
-currenciesSymbol.BGL=lev
-currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
-currenciesSymbol.LKR=SL Re
-currenciesSymbol.CYP=\u00a3C
-currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
-currenciesSymbol.VUV=VT
-currenciesSymbol.MWK=MK
-currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
-currenciesSymbol.IEP=IR\u00a3
-currenciesSymbol.AMD=dram
-currenciesSymbol.TOP=T$
-currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
-currenciesSymbol.CLP=Ch$
-currenciesSymbol.KWD=KD
-currenciesSymbol.GEL=lari
-currenciesSymbol.AFN=Af
-currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
-currenciesSymbol.IQD=ID
-currenciesSymbol.HKD=HK$
-currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
-currenciesSymbol.ALL=lek
-currenciesSymbol.CRC=C
-currenciesSymbol.IDR=Rp
-currenciesSymbol.DKK=DKr
-currenciesSymbol.TZS=T Sh
-currenciesSymbol.SBD=SI$
-currenciesSymbol.NOK=NKr
-currenciesSymbol.UGX=U Sh
-currenciesSymbol.BEF=BF
-currenciesSymbol.TTD=TT$
-currenciesSymbol.SZL=E
-currenciesSymbol.STD=Db
-currenciesSymbol.SAR=SRl
-currenciesSymbol.FJD=F$
-currenciesSymbol.UYU=Ur$
-currenciesSymbol.BDT=Tk
-currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
-currenciesSymbol.MNT=Tug
-currenciesSymbol.DJF=DF
-currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
-currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
-currenciesSymbol.SYP=LS
-currenciesSymbol.MTL=Lm
+currenciesDisplayName.VND=Vietnamin dongia
+currenciesDisplayName.TZS=Tansanian \u0161illinki\u00e4
+currenciesDisplayName.GIP=Gibraltarin puntaa
+currenciesDisplayName.TND=Tunisian dinaaria
+currenciesDisplayName.CVE=Kap Verden escudoa
+currenciesDisplayName.UGX=Ugandan \u0161illinki\u00e4
+currenciesDisplayName.XAG=hopeayksikk\u00f6\u00e4
+currenciesDisplayName.ZMK=Sambian kwachaa
+currenciesDisplayName.JOD=Jordanian dinaaria
+currenciesDisplayName.XAF=CFA-frangia BEAC
+currenciesDisplayName.LBP=Libanonin puntaa
+currenciesDisplayName.UGS=Ugandan \u0161illinki\u00e4 (1966\u20131987)
+currenciesDisplayName.STD=S\u00e3o Tom\u00e9n ja Pr\u00edncipen dobraa
+currenciesDisplayName.WST=Samoan talaa
+currenciesDisplayName.KHR=Kambod\u017ean rieli\u00e4
+currenciesDisplayName.DOP=Dominikaanisen tasavallan pesoa
+currenciesDisplayName.EUR=euroa
+currenciesDisplayName.BOV=Bolivian mvdol'ia
+currenciesDisplayName.MTP=Maltan puntaa
+currenciesDisplayName.USS=Yhdysvaltain dollaria (sama p\u00e4iv\u00e4)
+currenciesDisplayName.BOP=Bolivian pesoa
+currenciesDisplayName.CUP=Kuuban pesoa
+currenciesDisplayName.MTL=Maltan liiraa
+currenciesDisplayName.TMM=Turkmenistanin manatia
+currenciesDisplayName.USN=Yhdysvaltain dollaria (seuraava p\u00e4iv\u00e4)
+currenciesDisplayName.GHS=Ghanan cedi\u00e4
+currenciesDisplayName.SGD=Singaporen dollaria
+currenciesDisplayName.NZD=Uuden-Seelannin dollaria
+currenciesDisplayName.USD=Yhdysvaltain dollaria
+currenciesDisplayName.BOB=Bolivian bolivianoa
+currenciesDisplayName.HNL=Hondurasin lempiraa
+currenciesDisplayName.CHW=Sveitsin WIR-frangia
+currenciesDisplayName.ITL=Italian liiraa
+currenciesDisplayName.PAB=Panaman balboaa
+currenciesDisplayName.GTQ=Guatemalan quetzalia
+currenciesDisplayName.XXX=tuntematonta tai virheellist\u00e4 rahayksikk\u00f6\u00e4
+currenciesDisplayName.AUD=Australian dollaria
+currenciesDisplayName.GHC=Ghanan cedi\u00e4 (1979\u20132007)
+currenciesDisplayName.LAK=Laosin kipi\u00e4
+currenciesDisplayName.NAD=Namibian dollaria
+currenciesDisplayName.KGS=Kirgisian somia
+currenciesDisplayName.MGF=Madagaskarin frangia
+currenciesDisplayName.BBD=Barbadosin dollaria
+currenciesDisplayName.CHF=Sveitsin frangia
+currenciesDisplayName.CHE=Sveitsin WIR-euroa
+currenciesDisplayName.MGA=Madagaskarin ariarya
+currenciesDisplayName.PYG=Paraguayn guarania
+currenciesDisplayName.PLZ=Puolan zlotya (1950\u20131995)
+currenciesDisplayName.YER=Jemenin rialia
+currenciesDisplayName.ATS=It\u00e4vallan \u0161illinki\u00e4
+currenciesDisplayName.ETB=Etiopian birri\u00e4
+currenciesDisplayName.BND=Brunein dollaria
+currenciesDisplayName.EGP=Egyptin puntaa
+currenciesDisplayName.JMD=Jamaikan dollaria
+currenciesDisplayName.PLN=Puolan zlotya
+currenciesDisplayName.DZD=Algerian dinaaria
+currenciesDisplayName.ISK=Islannin kruunua
+currenciesDisplayName.SRG=Surinamin guldenia
+currenciesDisplayName.LYD=Libyan dinaaria
+currenciesDisplayName.SRD=Surinamin dollaria
+currenciesDisplayName.BAM=Bosnia-Hertsegovinan vaihdettavaa markkaa
+currenciesDisplayName.BZD=Belizen dollaria
+currenciesDisplayName.ESP=Espanjan pesetaa
+currenciesDisplayName.KRW=Etel\u00e4-Korean wonia
+currenciesDisplayName.NLG=Alankomaiden guldenia
+currenciesDisplayName.MRO=Mauritanian ouguiyaa
+currenciesDisplayName.BAD=Bosnia-Hertsegovinan dinaaria
+currenciesDisplayName.ZWD=Zimbabwen dollaria
+currenciesDisplayName.SEK=Ruotsin kruunua
+currenciesDisplayName.CSK=T\u0161ekkoslovakian kovaa korunaa
+currenciesDisplayName.BYR=Valko-Ven\u00e4j\u00e4n ruplaa
+currenciesDisplayName.ESB=Espanjan pesetaa (vaihdettava tili)
+currenciesDisplayName.IRR=Iranin rialia
+currenciesDisplayName.ESA=Espanjan pesetaa (A-tili)
+currenciesDisplayName.PKR=Pakistanin rupiaa
+currenciesDisplayName.BMD=Bermudan dollaria
+currenciesDisplayName.CSD=Serbian vanhaa dinaaria
+currenciesSymbol.INR=INR
+currenciesSymbol.NOK=Nkr
+currenciesSymbol.ITL=ITL
+currenciesSymbol.JPY=\u00a5
+currenciesSymbol.DKK=Tkr
 currenciesSymbol.FIM=mk
-currenciesSymbol.MZM=Mt
-currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
-currenciesSymbol.HUF=Ft
-currenciesSymbol.NZD=$NZ
-currenciesSymbol.OMR=RO
-currenciesSymbol.KZT=T
-currenciesSymbol.DOP=RD$
-currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
-currenciesSymbol.COP=Col$
-currenciesSymbol.HNL=L
-currenciesSymbol.KGS=som
-currenciesSymbol.ZWD=Z$
-currenciesSymbol.MYR=RM
-currenciesSymbol.SRG=Sf
-currenciesSymbol.GTQ=Q
-currenciesSymbol.BIF=Fbu
-currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
-currenciesSymbol.VEB=Be
-currenciesSymbol.BOB=Bs
-currenciesSymbol.CNY=Y
-currenciesSymbol.KMF=CF
-currenciesSymbol.SEK=SKr
-currenciesSymbol.AUD=$A
-currenciesSymbol.LYD=LD
-currenciesSymbol.JMD=J$
-currenciesSymbol.SKK=Sk
-currenciesSymbol.CHF=SwF
-currenciesSymbol.ETB=Br
-currenciesSymbol.MRO=UM
-currenciesSymbol.BBD=BDS$
-currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
-currenciesSymbol.BTN=Nu
-currenciesSymbol.MXN=MEX$
-currenciesSymbol.DZD=DA
-currenciesSymbol.ANG=NA f.
-currenciesSymbol.BZD=BZ$
-currenciesSymbol.IRR=RI
-currenciesSymbol.GYD=G$
-currenciesSymbol.BAM=KM
-currenciesSymbol.CAD=Can$
-shortMonths=tammi®helmi®maalis®huhti®touko®kes\u00e4®hein\u00e4®elo®syys®loka®marras®joulu®®
-months=tammikuu®helmikuu®maaliskuu®huhtikuu®toukokuu®kes\u00e4kuu®hein\u00e4kuu®elokuu®syyskuu®lokakuu®marraskuu®joulukuu®®
-shortWeekdays=®su®ma®ti®ke®to®pe®la®
-weekdays=®sunnuntai®maanantai®tiistai®keskiviikko®torstai®perjantai®lauantai®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=eKr.®jKr.®
-ampms=epp.®jpp.®
+currenciesSymbol.BRL=BRL
+currenciesSymbol.USD=$
+currenciesSymbol.SEK=Rkr
+currenciesSymbol.GBP=\u00a3
+shortMonths=tammi\u00aehelmi\u00aemaalis\u00aehuhti\u00aetouko\u00aekes\u00e4\u00aehein\u00e4\u00aeelo\u00aesyys\u00aeloka\u00aemarras\u00aejoulu\u00ae\u00ae
+months=tammikuu\u00aehelmikuu\u00aemaaliskuu\u00aehuhtikuu\u00aetoukokuu\u00aekes\u00e4kuu\u00aehein\u00e4kuu\u00aeelokuu\u00aesyyskuu\u00aelokakuu\u00aemarraskuu\u00aejoulukuu\u00ae\u00ae
+shortWeekdays=\u00aesu\u00aema\u00aeti\u00aeke\u00aeto\u00aepe\u00aela\u00ae
+weekdays=\u00aesunnuntai\u00aemaanantai\u00aetiistai\u00aekeskiviikko\u00aetorstai\u00aeperjantai\u00aelauantai\u00ae
+eras=eKr.\u00aejKr.\u00ae
+ampms=ap.\u00aeip.\u00ae
 shortDateFormat=d.M.yyyy
 mediumDateFormat=d.M.yyyy
-longDateFormat=d. MMMM'ta 'yyyy
-fullDateFormat=EEEE'na 'd. MMMM'ta 'yyyy
+longDateFormat=d. MMMM'tayyyy
+fullDateFormat=EEEE d. MMMM'ta' yyyy
 shortTimeFormat=H.mm
 mediumTimeFormat=H.mm.ss
-longTimeFormat='klo 'H.mm.ss
+longTimeFormat=H.mm.ss z
 fullTimeFormat=H.mm.ss z
-zoneStrings=Pacific/Honolulu®HST®Havaijin normaaliaika®HST®Havaijin normaaliaika®©Europe/Bucharest®EET®It\u00e4-Euroopan normaaliaika®EEST®It\u00e4-Euroopan kes\u00e4aika®©America/Los_Angeles®PST®Yhdysvaltain Tyynenmeren normaaliaika®PDT®Yhdysvaltain Tyynenmeren kes\u00e4aika®©America/Denver®MST®Kalliovuorten normaaliaika®MDT®Kalliovuorten kes\u00e4aika®©Asia/Jerusalem®IST®Israelin normaaliaika®IDT®Israelin kes\u00e4aika®©America/Phoenix®MST®Kalliovuorten normaaliaika®MST®Kalliovuorten normaaliaika®©America/Chicago®CST®Yhdysvaltain keskinen normaaliaika>®CDT®Yhdysvaltain keskinen kes\u00e4aika®©America/Indianapolis®EST®Yhdysvaltain it\u00e4inen normaaliaika®EST®Yhdysvaltain it\u00e4inen normaaliaika®©America/St_Johns®CNT®Newfoundlandin normaaliaika®CDT®Newfoundlandin kes\u00e4aika®©America/Anchorage®AST®Alaskan normaaliaika®ADT®Alaskan kes\u00e4aika®©Asia/Shanghai®CTT®Kiinan normaaliaika®CTT®Kiinan normaaliaika®©Asia/Tokyo®JST®Japanin normaaliaika®JST®Japanin normaaliaika®©Europe/Paris®CET®Keski-Euroopan normaaliaika®CEST®Keski-Euroopan kes\u00e4aika®©America/New_York®EST®Yhdysvaltain it\u00e4inen normaaliaika®EDT®Yhdysvaltain it\u00e4inen kes\u00e4aika®©America/Halifax®AST®Kanadan Atlantin normaaliaika®ADT®Kanadan Atlantin kes\u00e4aika®©Africa/Casablanca®GMT®Greenwichin aika®GMT®Greenwichin aika®©
+zoneStrings=America_Eastern\u00aeYhdysvaltain it\u00e4inen normaaliaika\u00ae\u00aeYhdysvaltain it\u00e4inen kes\u00e4aika\u00ae\u00ae\u00a9China\u00aeKiinan normaaliaika\u00aeCST (Kiina)\u00aeKiinan kes\u00e4aika\u00aeCDT (Kiina)\u00ae\u00a9Europe_Eastern\u00aeIt\u00e4-Euroopan normaaliaika\u00ae\u00aeIt\u00e4-Euroopan kes\u00e4aika\u00ae\u00ae\u00a9Europe_Central\u00aeKeski-Euroopan normaaliaika\u00ae\u00aeKeski-Euroopan kes\u00e4aika\u00ae\u00ae\u00a9America_Mountain\u00aeKalliovuorten normaaliaika\u00ae\u00aeKalliovuorten kes\u00e4aika\u00ae\u00ae\u00a9America_Central\u00aeYhdysvaltain keskinen normaaliaika\u00ae\u00aeYhdysvaltain keskinen kes\u00e4aika\u00ae\u00ae\u00a9GMT\u00aeGreenwichin normaaliaika\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00aeKanadan Atlantin normaaliaika\u00ae\u00aeKanadan Atlantin kes\u00e4aika\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundlandin normaaliaika\u00ae\u00aeNewfoundlandin kes\u00e4aika\u00ae\u00ae\u00a9America_Pacific\u00aeYhdysvaltain Tyynenmeren normaaliaika\u00ae\u00aeYhdysvaltain Tyynenmeren kes\u00e4aika\u00ae\u00ae\u00a9Israel\u00aeIsraelin normaaliaika\u00aeIST (Israel)\u00aeIsraelin kes\u00e4aika\u00ae\u00ae\u00a9Alaska\u00aeAlaskan normaaliaika\u00ae\u00aeAlaskan kes\u00e4aika\u00ae\u00ae\u00a9Japan\u00aeJapanin normaaliaika\u00ae\u00aeJapanin kes\u00e4aika\u00ae\u00ae\u00a9
 territories.TL=It\u00e4-Timor
 territories.TK=Tokelau
 territories.TJ=Tad\u017eikistan
@@ -392,19 +336,20 @@ territories.GN=Guinea
 territories.GM=Gambia
 territories.GL=Gr\u00f6nlanti
 territories.SV=El Salvador
-territories.062=etel\u00e4inen Keski-Aasia
+territories.062=Etel\u00e4- ja Keski-Aasia
 territories.ST=S\u00e3o Tom\u00e9 ja Pr\u00edncipe
-territories.061=Polynesia
 territories.GI=Gibraltar
+territories.061=Polynesia
 territories.GH=Ghana
 territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Ranskan Guayana
 territories.GE=Georgia
 territories.SO=Somalia
 territories.GD=Grenada
 territories.SN=Senegal
 territories.SM=San Marino
-territories.GB=Iso-Britannia
+territories.GB=Britannia
 territories.SL=Sierra Leone
 territories.GA=Gabon
 territories.SK=Slovakia
@@ -418,36 +363,38 @@ territories.SC=Seychellit
 territories.SB=Salomonsaaret
 territories.SA=Saudi-Arabia
 territories.FR=Ranska
-territories.057=Mikronesia
 territories.FO=F\u00e4rsaaret
-territories.FM=Mikronesia
+territories.057=Mikronesia
+territories.FM=Mikronesian liittovaltio
 territories.RW=Ruanda
 territories.054=Melanesia
-territories.053=Australia ja Uusi-Seelanti
 territories.FK=Falklandinsaaret
+territories.053=Australia ja Uusi-Seelanti
 territories.RU=Ven\u00e4j\u00e4
 territories.FJ=Fid\u017ei
 territories.FI=Suomi
+territories.RS=Serbia
 territories.RO=Romania
 territories.RE=R\u00e9union
 territories.ET=Etiopia
 territories.ES=Espanja
 territories.ER=Eritrea
-territories.833=Mansaari
+territories.QU=Euroopan unioni
 territories.EH=L\u00e4nsi-Sahara
 territories.EG=Egypti
-territories.830=Kanaalisaaret
 territories.EE=Viro
-territories.QO=tuntematon
+territories.830=Kanaalisaaret
+territories.QO=ulkomeri
 territories.EC=Ecuador
 territories.DZ=Algeria
 territories.QA=Qatar
 territories.039=Etel\u00e4-Eurooppa
 territories.DO=Dominikaaninen tasavalta
 territories.PY=Paraguay
-territories.035=Kaakkois-Aasia
 territories.DM=Dominica
+territories.035=Kaakkois-Aasia
 territories.PW=Palau
+territories.034=Etel\u00e4-Aasia
 territories.DK=Tanska
 territories.DJ=Djibouti
 territories.PT=Portugali
@@ -477,15 +424,16 @@ territories.CN=Kiina
 territories.CM=Kamerun
 territories.CL=Chile
 territories.CK=Cookinsaaret
+territories.021=pohjoinen Amerikka
 territories.CI=Norsunluurannikko
-territories.021=Pohjois-Amerikka
 territories.CH=Sveitsi
-territories.CG=Kongo (Brazzaville)
+territories.CG=Kongo-Brazzaville
 territories.CF=Keski-Afrikan tasavalta
-territories.CD=Kongo (Kinshasa)
+territories.CD=Kongo-Kinshasa
 territories.CC=Kookossaaret
 territories.OM=Oman
 territories.CA=Kanada
+territories.419=Latinalainen Amerikka ja Karibia
 territories.BZ=Belize
 territories.BY=Valko-Ven\u00e4j\u00e4
 territories.BW=Botswana
@@ -496,23 +444,26 @@ territories.BR=Brasilia
 territories.019=Amerikka
 territories.018=etel\u00e4inen Afrikka
 territories.NZ=Uusi-Seelanti
-territories.BO=Bolivia
 territories.017=Keski-Afrikka
+territories.BO=Bolivia
 territories.BN=Brunei
-territories.BM=Bermuda
 territories.015=Pohjois-Afrikka
+territories.BM=Bermuda
 territories.014=It\u00e4-Afrikka
+territories.BL=Saint-Barth\u00e9lemy
 territories.013=V\u00e4li-Amerikka
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=L\u00e4nsi-Afrikka
+territories.BI=Burundi
+territories.172=Itsen\u00e4isten valtioiden yhteis\u00f6
 territories.BH=Bahrain
 territories.NR=Nauru
 territories.BG=Bulgaria
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgia
+territories.ZZ=tuntematon tai virheellinen alue
 territories.NO=Norja
 territories.BD=Bangladesh
 territories.BB=Barbados
@@ -533,24 +484,25 @@ territories.AU=Australia
 territories.AT=It\u00e4valta
 territories.AS=Amerikan Samoa
 territories.AR=Argentiina
-territories.009=Oseania
 territories.AQ=Antarktis
+territories.009=Oseania
 territories.MZ=Mosambik
 territories.AO=Angola
 territories.MY=Malesia
 territories.AN=Alankomaiden Antillit
 territories.MX=Meksiko
-territories.005=Etel\u00e4-Amerikka
 territories.AM=Armenia
+territories.005=Etel\u00e4-Amerikka
 territories.MW=Malawi
 territories.AL=Albania
 territories.MV=Malediivit
+territories.003=Pohjois-Amerikka
 territories.ZA=Etel\u00e4-Afrikka
 territories.MU=Mauritius
 territories.002=Afrikka
 territories.MT=Malta
-territories.001=maailma
 territories.AI=Anguilla
+territories.001=maailma
 territories.MS=Montserrat
 territories.MR=Mauritania
 territories.AG=Antigua ja Barbuda
@@ -558,7 +510,7 @@ territories.MQ=Martinique
 territories.AF=Afganistan
 territories.MP=Pohjois-Mariaanit
 territories.AE=Arabiemiirikunnat
-territories.MO=Macao, Kiinan erityishallintoalue
+territories.MO=Macao
 territories.AD=Andorra
 territories.MN=Mongolia
 territories.MM=Myanmar
@@ -567,6 +519,8 @@ territories.MK=Makedonia
 territories.YT=Mayotte
 territories.MH=Marshallinsaaret
 territories.MG=Madagaskar
+territories.MF=Saint-Martin
+territories.ME=Montenegro
 territories.MD=Moldova
 territories.MC=Monaco
 territories.MA=Marokko
@@ -590,8 +544,9 @@ territories.KZ=Kazakstan
 territories.KY=Caymansaaret
 territories.KW=Kuwait
 territories.145=L\u00e4nsi-Aasia
+territories.143=Keski-Aasia
 territories.142=Aasia
-territories.KR=Korean tasavalta
+territories.KR=Etel\u00e4-Korea
 territories.KP=Pohjois-Korea
 territories.KN=Saint Kitts ja Nevis
 territories.KM=Komorit
@@ -605,12 +560,13 @@ territories.JP=Japani
 territories.JO=Jordania
 territories.JM=Jamaika
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=Yhdysvaltain Neitsytsaaret
 territories.VG=Brittil\u00e4iset Neitsytsaaret
 territories.VE=Venezuela
 territories.VC=Saint Vincent ja Grenadiinit
-territories.VA=Vatikaanivaltio
+territories.VA=Vatikaani
 territories.IT=Italia
 territories.IS=Islanti
 territories.IR=Iran
@@ -619,6 +575,7 @@ territories.UZ=Uzbekistan
 territories.IO=Brittil\u00e4inen Intian valtameren alue
 territories.UY=Uruguay
 territories.IN=Intia
+territories.IM=Mansaari
 territories.IL=Israel
 territories.US=Yhdysvallat
 territories.IE=Irlanti
@@ -634,115 +591,124 @@ territories.HN=Honduras
 territories.HM=Heard- ja McDonaldinsaaret
 territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=Hongkong, Kiinan erityishallintoalue
+territories.HK=Hongkong
 territories.TT=Trinidad ja Tobago
 territories.TR=Turkki
 territories.TO=Tonga
 territories.TN=Tunisia
 territories.TM=Turkmenistan
+languages.gwi=gwit\u0161in
 languages.akk=akkadi
-languages.gwi=gwich\u2019in
 languages.eka=ekajuk
+languages.ijo=id\u017eo
 languages.xh=xhosa
 languages.sux=sumeri
 languages.sus=susu
-languages.mis=luokittelemattomat kielet
+languages.mis=luokittelematon kieli
 languages.loz=lozi
-languages.tog=tonga (Malawi)
+languages.tog=malawintonga
+languages.zbl=blisskieli
 languages.pon=pohnpei
 languages.min=minangkabau
 languages.suk=sukuma
 languages.wo=wolof
-languages.kut=kutenai
 languages.lol=mongo
+languages.kut=kutenai
 languages.mic=micmac
 languages.wa=valloni
 languages.kum=kumykki
 languages.zap=sapoteekki
-languages.cus=muut kuu\u0161ilaiset kielet
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=kuu\u0161ilainen kieli
 languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
 languages.vo=volap\u00fck
-languages.oto=otomi-kielet
+languages.oto=otomi-kieli
 languages.vi=vietnam
+languages.vai=vai
 languages.rar=rarotonga
 languages.ve=venda
 languages.rap=rapanui
-languages.raj=rajasthani
+languages.raj=rajastani
 languages.ota=osmani
 languages.nzi=nzima
 languages.nap=napoli
 languages.uz=uzbekki
 languages.uga=ugarit
-languages.tmh=tamashek
-languages.nai=Pohjois-Amerikan intiaanikielet
+languages.tmh=tama\u0161ek
+languages.nai=pohjoisamerikkalainen intiaanikieli
 languages.nah=nahuatl
 languages.ur=urdu
 languages.fat=fanti
 languages.uk=ukraina
 languages.egy=muinaisegypti
+languages.zxx=ei kielellist\u00e4 sis\u00e4lt\u00f6\u00e4
 languages.ug=uiguuri
 languages.fan=fang
-languages.ssa=muut niilil\u00e4is-saharalaiset kielet
-languages.bat=muut balttilaiset kielet
+languages.ssa=niilil\u00e4is-saharalainen kieli
 languages.mga=keski-iiri
+languages.bat=balttilainen kieli
 languages.nyo=nyoro
 languages.bas=basa
 languages.nyn=nyankole
 languages.nym=nyamwezi
+languages.gsw=sveitsinsaksa
 languages.hmn=hmong
 languages.ban=bali
 languages.osa=osage
 languages.bal=belut\u0161i
 languages.ty=tahiti
-languages.bai=bamileke-kielet
+languages.bai=bamileke-kieli
 languages.tw=twi
 languages.srr=serer
 languages.tli=tlingit
 languages.tlh=klingon
 languages.tt=tataari
 languages.ts=tsonga
+languages.srn=sranan
 languages.bad=banda
 languages.tr=turkki
-languages.to=tonga (Tonga)
+languages.to=tongantonga
 languages.tn=tswana
 languages.tl=tagalog
 languages.tk=turkmeeni
-languages.ti=tigrinya
+languages.ti=tigrinja
 languages.th=thai
 languages.kru=kurukh
 languages.tg=tad\u017eikki
-languages.byn=blin
+languages.byn=bilin
 languages.te=telugu
+languages.kro=kru-kieli
 languages.csb=ka\u0161ubi
-languages.kro=kru-kielet
 languages.ta=tamil
+languages.krl=karjala
 languages.tkl=tokelau
 languages.efi=efik
 languages.sw=swahili
 languages.sv=ruotsi
 languages.su=sunda
 languages.krc=karat\u0161ai-balkaari
-languages.st=sotho, etel\u00e4-
+languages.st=etel\u00e4sotho
 languages.ss=swazi
 languages.sr=serbia
 languages.sq=albania
 languages.men=mende
-languages.crp=muut kreolit ja pidginit
+languages.crp=kreoli- tai pidgin-kieli
 languages.so=somali
 languages.afh=afrihili
-languages.sn=shona
+languages.sn=\u0161ona
 languages.sm=samoa
 languages.sl=sloveeni
 languages.grc=muinaiskreikka
 languages.sk=slovakki
 languages.grb=grebo
-languages.si=sinhali
+languages.si=sinhala
 languages.sh=serbokroatia
-languages.afa=muut afroaasialaiset kielet
-languages.crh=krimintataari; kriminturkki
+languages.crh=kriminturkki
+languages.afa=afro-aasialainen kieli
 languages.sg=sango
-languages.se=saame, pohjois-
+languages.se=pohjoissaame
 languages.sd=sindhi
 languages.udm=udmurtti
 languages.sc=sardi
@@ -754,89 +720,102 @@ languages.mdr=mandar
 languages.ro=romania
 languages.rn=rundi
 languages.rm=retoromaani
+languages.fr_CH=sveitsinranska
 languages.mdf=mok\u0161a
+languages.tiv=tiv
+languages.fr_CA=kanadanranska
 languages.ady=adyge
 languages.zun=zuni
 languages.kpe=kpelle
-languages.qu=quechua
+languages.qu=ket\u0161ua
 languages.tig=tigre
 languages.son=songhai
-languages.cpp=muut portugaliin perustuvat kreolit ja pidginit
+languages.cpp=portugaliin perustuva kreoli- tai pidgin-kieli
+languages.rup=aromania
 languages.sog=sogdi
 languages.ada=adangme
-languages.cpf=muut ranskaan perustuvat kreolit ja pidginit
-languages.hit=heetti
 languages.kos=kosrae
-languages.cpe=muut englantiin perustuvat kreolit ja pidginit
-languages.him=himachali
-languages.got=gootti
-languages.hil=hiligaynon
+languages.hit=heetti
+languages.cpf=ranskaan perustuva kreoli- tai pidgin-kieli
+languages.cpe=englantiin perustuva kreoli- tai pidgin-kieli
+languages.him=himat\u0161ali
 languages.kok=konkani
+languages.hil=hiligaino
+languages.got=gootti
 languages.gor=gorontalo
 languages.gon=gondi
 languages.din=dinka
-languages.nub=nubialaiset kielet
+languages.nub=nubialainen kieli
 languages.pt=portugali
-languages.ps=pa\u0161to
+languages.ps=pa\u0161tu
 languages.fur=friuli
 languages.phn=foinikia
+languages.de_CH=sveitsinyl\u00e4saksa
 languages.goh=muinaisyl\u00e4saksa
 languages.snk=soninke
 languages.cop=kopti
-languages.ach=acholi
-languages.phi=muut filippiinil\u00e4iset kielet
+languages.yap=japi
+languages.ach=at\u0161oli
+languages.yao=jao
+languages.phi=filippiinil\u00e4inen kieli
 languages.pl=puola
 languages.ace=aceh
 languages.pi=paali
-languages.pa=panjabi
+languages.pt_PT=portugalinportugali
+languages.pa=punjabi
 languages.bug=bugi
 languages.iba=iban
-languages.sms=saame, koltan-
+languages.sms=koltansaame
 languages.bua=burjaatti
 languages.mas=maasai
-languages.smn=saame, inarin-
+languages.smn=inarinsaame
 languages.os=osseetti
-languages.map=muut austronesialaiset kielet
+languages.map=austronesialainen kieli
 languages.or=oriya
 languages.man=mandingo
-languages.smj=saame, luulajan-
-languages.smi=muut saamen kielet
+languages.smj=luulajansaame
+languages.smi=saamelaiskieli
 languages.mak=makassar
 languages.om=oromo
 languages.mai=maithili
-languages.oj=ojibwa
+languages.oj=od\u017eibwa
 languages.mag=magahi
 languages.mad=madura
-languages.sma=saame, etel\u00e4-
+languages.sma=etel\u00e4saame
 languages.oc=oksitaani
-languages.nso=sotho, pohjois-
+languages.nso=pohjoissotho
 languages.btk=batak
 languages.myv=ers\u00e4
+languages.es_ES=espanjanespanja
+languages.de_AT=it\u00e4vallansaksa
 languages.dgr=dogrib
-languages.ny=nyanja
-languages.myn=maya-kielet
+languages.ny=njand\u017ea
+languages.myn=maya-kieli
 languages.nv=navajo
 languages.kmb=kimbundu
-languages.nr=ndebele, etel\u00e4-
+languages.nr=etel\u00e4-ndebele
 languages.gmh=keskiyl\u00e4saksa
 languages.no=norja
-languages.nn=norja (nynorsk)
+languages.nn=norjan nynorsk
 languages.nl=hollanti
+languages.root=juuri
 languages.ng=ndonga
-languages.sla=muut slaavilaiset kielet
+languages.sla=slaavilainen kieli
 languages.ne=nepali
-languages.nd=ndebele, pohjois-
-languages.cmc=cham-kielet
+languages.nd=pohjois-ndebele
+languages.cmc=t\u0161am-kieli
 languages.tet=tetum
-languages.nb=norja (bokm\u00e5l)
+languages.nb=norjan bokm\u00e5l
 languages.na=nauru
 languages.ter=tereno
 languages.tem=temne
 languages.my=burma
 languages.lez=lezgi
 languages.mt=malta
+languages.frs=it\u00e4friisi
 languages.peo=muinaispersia
 languages.ms=malaiji
+languages.frr=pohjoisfriisi
 languages.mr=marathi
 languages.fro=muinaisranska
 languages.mo=moldavia
@@ -848,13 +827,15 @@ languages.mk=makedonia
 languages.mi=maori
 languages.mh=marshall
 languages.mg=malagassi
+languages.nqo=n\u2019ko
 languages.mwr=marwari
-languages.bra=braj
+languages.bra=brad\u017e
+languages.mwl=mirandeesi
+languages.den=slevi
 languages.lv=latvia
-languages.den=slave
-languages.lu=luba (Katanga)
-languages.lt=liettua
+languages.lu=katanganluba
 languages.del=delaware
+languages.lt=liettua
 languages.lo=lao
 languages.ln=lingala
 languages.li=limburg
@@ -864,149 +845,163 @@ languages.lb=luxemburg
 languages.la=latina
 languages.jpr=juutalaispersia
 languages.vot=vatja
-languages.sit=muut sinotiibetil\u00e4iset kielet
+languages.sit=sinotiibetil\u00e4inen kieli
 languages.ky=kirgiisi
 languages.kw=korni
 languages.kv=komi
 languages.ku=kurdi
-languages.sio=sioux-kielet
-languages.ks=kashmiri
+languages.sio=sioux-kieli
+languages.ks=ka\u0161miri
 languages.kr=kanuri
 languages.awa=awadhi
 languages.ko=korea
 languages.kn=kannada
 languages.km=khmer
-languages.kl=kalaallisut; gr\u00f6nlanti
+languages.en_GB=britannianenglanti
+languages.kl=gr\u00f6nlanti
 languages.kk=kazakki
 languages.rom=romani
-languages.kj=kwanyama
+languages.kj=kuanjama
 languages.sid=sidamo
 languages.ki=kikuju
 languages.kg=kongo
 languages.non=muinaisnorja
 languages.ka=georgia
 languages.mus=creek
-languages.roa=muut romaaniset kielet
+languages.roa=romaaninen kieli
 languages.nog=nogai
-languages.mun=mundakielet
+languages.mun=mundakieli
 languages.mul=monia kieli\u00e4
 languages.jv=jaava
 languages.gil=kiribati
 languages.znd=zande
 languages.shn=shan
+languages.fon=fon
 languages.xal=kalmukki
-languages.aus=australialaiset kielet
+languages.aus=australialainen kieli
 languages.kho=khotani
 languages.ja=japani
-languages.khi=muut khoisan-kielet
+languages.khi=khoisan-kieli
 languages.pau=palau
 languages.chy=cheyenne
-languages.tai=muut thaikielet
+languages.tai=thaikieli
 languages.iu=inuktitut
 languages.pap=papiamentu
 languages.it=italia
-languages.sgn=viittomakielet
-languages.kha=khasi
+languages.sgn=viittomakieli
 languages.is=islanti
+languages.kha=khasi
 languages.chr=cherokee
 languages.pam=pampanga
 languages.pal=pahlavi
 languages.chp=chipewyan
-languages.cho=choctaw
 languages.io=ido
+languages.cho=choctaw
 languages.chn=chinook-jargon
 languages.chm=mari
 languages.tyv=tuva
-languages.bnt=muut bantukielet
+languages.bnt=bantukieli
 languages.pag=pangasinan
+languages.ik=inupiatun
 languages.chk=chuuk
-languages.ik=i\u00f1upiak
-languages.haw=havaiji
 languages.ii=sichuanin-yi
+languages.haw=havaiji
 languages.lam=lamba
-languages.chg=t\u0161agatai
 languages.ig=igbo
+languages.chg=t\u0161agatai
 languages.sga=muinaisiiri
-languages.paa=muut papualaiskielet
+languages.paa=papualaiskieli
 languages.ie=interlingue
 languages.id=indonesia
 languages.lah=lahnda
-languages.chb=chibcha
-languages.day=dayak
+languages.day=dajakki
+languages.chb=t\u0161ibt\u0161a
 languages.ia=interlingua
-languages.lad=ladino; juutalaisespanja
-languages.dar=dargva
-languages.hai=haida
+languages.lad=juutalaisespanja
 languages.hz=herero
+languages.hai=haida
+languages.dar=dargi
 languages.hy=armenia
-languages.ath=athabasca-kielet
+languages.ath=athabasca-kieli
 languages.hu=unkari
 languages.ht=haiti
 languages.dak=dakota
 languages.hr=kroatia
 languages.ho=hiri-motu
 languages.hi=hindi
-languages.dyu=dyula
+languages.dyu=djula
 languages.he=heprea
 languages.ast=asturia
+languages.kfo=norsunluurannikonkoro
 languages.ha=hausa
-languages.wen=sorbin kielet
+languages.wen=sorbin kieli
 languages.gv=manx
-languages.gu=gud\u017earati
-languages.sem=muut seemil\u00e4iset kielet
+languages.gu=gujarati
+languages.sem=seemil\u00e4inen kieli
 languages.sel=selkuppi
-languages.iro=irokeesikielet
+languages.iro=irokeesikieli
 languages.gn=guarani
 languages.gl=galicia
+languages.en_CA=kanadanenglanti
 languages.arw=arawak
-languages.gd=gaeli
-languages.art=muut keinotekoiset kielet
 languages.gez=ge\u2019ez
-languages.ira=muut iranilaiset kielet
+languages.art=keinotekoinen kieli
+languages.gd=gaeli
+languages.ira=iranilainen kieli
 languages.ga=iiri
 languages.arp=arapaho
 languages.arn=araukaani
-languages.fy=friisi
+languages.fy=l\u00e4nsifriisi
 languages.bla=mustajalka
-languages.gem=muut germaaniset kielet
-languages.ypk=jupikkikielet
-languages.fr=ranska
+languages.gem=germaaninen kieli
+languages.ypk=jupikkikieli
 languages.arc=aramea
+languages.fr=ranska
 languages.fo=f\u00e4\u00e4ri
-languages.cel=muut kelttil\u00e4iset kielet
+languages.cel=kelttil\u00e4inen kieli
 languages.fj=fid\u017ei
 languages.fi=suomi
 languages.ff=fulani
 languages.tvl=tuvalu
 languages.ceb=cebuano
-languages.fa=farsi; persia
+languages.fa=persia
+languages.en_AU=australianenglanti
+languages.zh_Hans=yksinkertaistettu kiina
+languages.zh_Hant=perinteinen kiina
 languages.eu=baski
 languages.sco=skotti
 languages.et=viro
+languages.scn=sisilia
 languages.es=espanja
 languages.eo=esperanto
 languages.en=englanti
 languages.el=kreikka
-languages.tut=muut altailaiset kielet
+languages.tut=altailainen kieli
 languages.niu=niue
-languages.tup=tupi-kielet
+languages.tup=tupi-kieli
 languages.ee=ewe
 languages.tum=tumbuka
+languages.nl_BE=flaami
+languages.es_419=amerikanespanja
 languages.mos=mossi
 languages.dz=dzongkha
-languages.nic=muut nigeril\u00e4is-kongolaiset kielet
+languages.kcg=tyap
+languages.nic=nigeril\u00e4is-kongolainen kieli
+languages.lus=lusai
+languages.fiu=suomalais-ugrilainen kieli
 languages.dv=divehi
-languages.fiu=muut suomalais-ugrilaiset kielet
-languages.lus=lushai
 languages.nia=nias
 languages.moh=mohawk
+languages.luo=luo
 languages.lun=lunda
-languages.apa=apa\u0161\u0161ikielet
+languages.apa=apa\u0161\u0161ikieli
+languages.fil=filipino
 languages.lui=luise\u00f1o
 languages.hup=hupa
+languages.cch=atsam
 languages.bin=bini
 languages.de=saksa
-languages.lua=luba (Lulua)
+languages.lua=luluanluba
 languages.bik=bikol
 languages.was=washo
 languages.und=m\u00e4\u00e4ritt\u00e4m\u00e4t\u00f6n
@@ -1014,91 +1009,124 @@ languages.war=waray
 languages.da=tanska
 languages.dum=keskihollanti
 languages.wal=walamo
-languages.mno=manobo-kielet
-languages.wak=wakash-kielet
+languages.mno=manobo-kieli
+languages.wak=wakash-kieli
 languages.sat=santali
 languages.cy=kymri
 languages.sas=sasak
-languages.cv=t\u0161uvassi
 languages.kbd=kabardi
+languages.cv=t\u0161uvassi
 languages.cu=kirkkoslaavi
 languages.mni=manipuri
 languages.cs=t\u0161ekki
 languages.sam=samarianaramea
 languages.cr=cree
-languages.sal=sali\u0161ilaiset kielet
+languages.sal=sali\u0161ilainen kieli
 languages.dua=duala
 languages.co=korsika
-languages.sai=muut Etel\u00e4-Amerikan intiaanikielet
+languages.sai=etel\u00e4amerikkalainen intiaanikieli
 languages.mnc=mant\u0161u
 languages.sah=jakuutti
-languages.gba=gbaya
-languages.inh=inguu\u0161i
 languages.kaw=kavi
+languages.inh=inguu\u0161i
+languages.gba=gbaja
 languages.sad=sandawe
-languages.ch=chamorro
+languages.ch=t\u0161amorro
+languages.ine=indoeurooppalainen kieli
 languages.bho=bhojpuri
-languages.ine=muut indoeurooppalaiset kielet
 languages.enm=keskienglanti
-languages.ce=t\u0161et\u0161eeni
-languages.inc=muut indoarjalaiset kielet
 languages.kar=karen
-languages.gay=gayo
+languages.inc=indoarjalainen kieli
+languages.ce=t\u0161et\u0161eeni
+languages.gay=gajo
 languages.ca=katalaani
 languages.umb=umbundu
 languages.syr=syyria
 languages.kam=kamba
-languages.tsi=tsimshian
+languages.anp=angika
+languages.tsi=tsim\u0161i
+languages.kaj=jju
 languages.ang=muinaisenglanti
-languages.cau=muut kaukasialaiset kielet
 languages.kac=kachin
+languages.cau=kaukasialainen kieli
 languages.kab=kabyyli
-languages.bs=bosnia
 languages.kaa=karakalpakki
-languages.br=bretoni
+languages.bs=bosnia
 languages.car=karibi
+languages.br=bretoni
+languages.syc=syc
 languages.bo=tiibet
 languages.bn=bengali
 languages.bm=bambara
-languages.gaa=g\u00e3
+languages.gaa=ga
+languages.cai=keskiamerikkalainen intiaanikieli
 languages.bi=bislama
-languages.cai=muut Keski-Amerikan intiaanikielet
 languages.bh=bihari
 languages.bg=bulgaria
 languages.be=valkoven\u00e4j\u00e4
+languages.pt_BR=brasilianportugali
 languages.cad=caddo
-languages.ba=baski
+languages.ba=ba\u0161kiiri
 languages.zu=zulu
 languages.zen=zenaga
 languages.pro=muinaisprovensaali
 languages.hsb=yl\u00e4sorbi
 languages.az=azeri
-languages.ay=aymara
+languages.ay=aimara
 languages.av=avaari
 languages.as=assami
-languages.ar=arabia
 languages.dsb=alasorbi
-languages.elx=elami
+languages.ar=arabia
 languages.ilo=iloko
+languages.elx=elami
 languages.zh=kiina
 languages.an=aragonia
-languages.pra=prakrit-kielet
+languages.pra=prakrit-kieli
 languages.am=amhara
 languages.new=newari
 languages.ak=akan
 languages.za=zhuang
+languages.en_US=amerikanenglanti
 languages.af=afrikaans
 languages.ae=avesta
+languages.alt=altai
 languages.ab=abhaasi
 languages.aa=afar
 languages.yo=joruba
-languages.alg=algonkin-kielet
+languages.alg=algonkin-kieli
 languages.ale=aleutti
-languages.mkh=muut mon-khmer-kielet
+languages.mkh=mon-khmer-kieli
 languages.yi=jiddi\u0161
-languages.dra=muut dravidakielet
-languages.ber=muut berberikielet
+languages.dra=dravidakieli
+languages.ber=berberikieli
 languages.nds=alasaksa
 languages.bem=bemba
-languages.bej=beja
+languages.bej=bed\u017ea
 languages.tpi=tok-pisin
+variants.POSIX=tietokonem\u00e4\u00e4rittely POSIX
+variants.AREVMDA=l\u00e4nsiarmenialainen
+variants.1996=saksan uusi oikeinkirjoitus
+variants.SOLBA=sloveenin resian Stolvizzan/Solbican alamurre
+variants.NEDIS=sloveenin natisone-murre
+variants.1994=sloveenin resian murteen yhdenmukaistettu oikeinkirjoitus
+variants.1901=saksan perinteinen oikeinkirjoitus
+variants.FONUPA=suomalais-ugrilainen tarkekirjoitus
+variants.OSOJS=sloveenin resian Oseaccon/Osojanen alamurre
+variants.1694ACAD=varhaisnykyranska
+variants.LIPAW=sloveenin resian Lipovazin/Lipovecin alamurre
+variants.REVISED=uudistettu oikeinkirjoitus
+variants.NJIVA=sloveenin resian Gnivan/Njivan alamurre
+variants.TARASK=valkoven\u00e4j\u00e4n tara\u0161kevitsa-oikeinkirjoitus
+variants.FONIPA=kansainv\u00e4linen foneettinen aakkosto IPA
+variants.BISKE=sloveenin resian San Giorgion/Bilan alamurre
+variants.SCOUSE=englannin scouse-murre
+variants.BAKU1926=yhten\u00e4istetty turkkilainen latinalainen aakkosto
+variants.SAAHO=afarin saho-murre
+variants.ROZAJ=sloveenin resia-murre
+variants.MONOTON=monotoninen kreikka
+variants.POLYTON=polytoninen kreikka
+variants.AREVELA=it\u00e4armenialainen
+variants.SCOTLAND=skotlanninenglanti
+variants.VALENCIA=katalaanin valencia-murre
+variants.BOONT=englannin boontling-murre
+variants.1606NICT=my\u00f6h\u00e4iskeskiranska
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fil.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fil.properties
new file mode 100644 (file)
index 0000000..62194e5
--- /dev/null
@@ -0,0 +1,455 @@
+# LocaleInformation_fil.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.CHF=Swiss Francs
+currenciesDisplayName.AUD=Australian Dollar
+currenciesDisplayName.RUB=Russian Ruble
+currenciesDisplayName.CZK=Czech Koruna
+currenciesDisplayName.THB=Thai Baht
+currenciesDisplayName.SEK=Sweden Kronor
+currenciesDisplayName.HRK=Croatian Kuna
+currenciesDisplayName.PLN=Polish NewZloty
+currenciesDisplayName.SKK=Slovak Koruna
+currenciesDisplayName.MAD=Moroccan Dirham
+currenciesDisplayName.TWD=New Taiwan Dollar
+currenciesDisplayName.XXX=XXX
+currenciesDisplayName.MYR=Malaysian Ringgit
+currenciesDisplayName.HUF=Hungarian Forint
+currenciesDisplayName.INR=Indian Rupee
+currenciesDisplayName.AED=United Arab Emirates Dirham
+currenciesDisplayName.SAR=Saudi Riyal
+currenciesDisplayName.CAD=Canadian Dollar
+currenciesDisplayName.USD=US Dollar
+currenciesDisplayName.BGN=Bulgarian Lev
+currenciesDisplayName.JPY=Japanese Yen
+currenciesDisplayName.GBP=British Pounds Sterling
+currenciesDisplayName.PKR=Pakistan Rupee
+currenciesDisplayName.PHP=Philippine Peso
+currenciesDisplayName.PEN=Peruvian Nuevo Sol
+currenciesDisplayName.FRF=French Franc
+currenciesDisplayName.NOK=Norwegian Kroner
+currenciesDisplayName.EUR=Euros
+currenciesDisplayName.HKD=Hong Kong Dollars
+currenciesDisplayName.IDR=Indonesian Rupiah
+currenciesDisplayName.ZAR=South African Rand
+currenciesDisplayName.SGD=Singapore Dollars
+currenciesDisplayName.MXN=Mexico Peso
+currenciesDisplayName.TRY=Turkish Lira
+currenciesDisplayName.CLP=Chilean Peso
+currenciesDisplayName.COP=Colombian Peso
+currenciesDisplayName.KRW=South Korean Won
+currenciesDisplayName.SIT=Slovenian Tolar
+currenciesDisplayName.EEK=Estonian Kroon
+currenciesDisplayName.RSD=Serbian Dinar
+currenciesDisplayName.TRL=Turkish Lira
+currenciesDisplayName.BRL=Brazilian Real
+currenciesDisplayName.DEM=Deutsche Marks
+currenciesDisplayName.VEB=Venezuela Bolivar
+currenciesDisplayName.ARS=Argentine Peso
+currenciesDisplayName.CNY=Yuan Renminbi
+currenciesDisplayName.DKK=Denmark Kroner
+currenciesDisplayName.ILS=Israeli Shekel
+currenciesDisplayName.BOB=Bolivian Boliviano
+currenciesDisplayName.NZD=New Zealand Dollars
+currenciesDisplayName.RON=Romanian Leu
+currenciesDisplayName.LTL=Lithuanian Litas
+currenciesDisplayName.EGP=Egyptian Pound
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.PHP=PhP
+shortMonths=Ene\u00aePeb\u00aeMar\u00aeAbr\u00aeMay\u00aeHun\u00aeHul\u00aeAgo\u00aeSet\u00aeOkt\u00aeNob\u00aeDis\u00ae\u00ae
+months=Enero\u00aePebrero\u00aeMarso\u00aeAbril\u00aeMayo\u00aeHunyo\u00aeHulyo\u00aeAgosto\u00aeSetyembre\u00aeOktubre\u00aeNobyembre\u00aeDisyembre\u00ae\u00ae
+shortWeekdays=\u00ae\u00ae\u00ae\u00aeMiy\u00ae\u00aeBiy\u00ae\u00ae
+weekdays=\u00aeLinggo\u00aeLunes\u00aeMartes\u00aeMiyerkules\u00aeHuwebes\u00aeBiyernes\u00aeSabado\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=M/d/yy
+mediumDateFormat=MMM d, yyyy
+longDateFormat=MMMM d, yyyy
+fullDateFormat=EEEE, MMMM dd yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=East Timor
+territories.TK=Tokelau
+territories.TJ=Tajikistan
+territories.TH=Thailand
+territories.TG=Togo
+territories.TF=French Southern Territories
+territories.TD=Chad
+territories.TC=Turks and Caicos Islands
+territories.GW=Guinea-Bissau
+territories.GS=South Georgia and the South Sandwich Islands
+territories.GR=Griyego
+territories.GQ=Equatorial Guinea
+territories.SZ=Swaziland
+territories.SY=Syria
+territories.GN=Guinea
+territories.GM=Gambia
+territories.GL=Greenland
+territories.SV=El Salvador
+territories.062=Timog-Gitnang Asya
+territories.ST=Sao Tome and Principe
+territories.061=Polynesia
+territories.GH=Ghana
+territories.SR=Suriname
+territories.GG=Guernsey
+territories.GF=French Guiana
+territories.GE=Georgia
+territories.SO=Somalia
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=United Kingdom
+territories.SL=Sierra Leone
+territories.GA=Gabon
+territories.SK=Slovakia
+territories.SJ=Svalbard and Jan Mayen
+territories.SI=Slovenia
+territories.SH=Saint Helena
+territories.SE=Sweden
+territories.SD=Sudan
+territories.SC=Seychelles
+territories.SB=Solomon Islands
+territories.SA=Saudi Arabya
+territories.FR=Pranses
+territories.FO=Faroe Islands
+territories.057=Rehiyong Micronesia
+territories.FM=Micronesia
+territories.RW=Rwanda
+territories.054=Melanesia
+territories.FK=Falkland Islands
+territories.053=Australia at New Zealand
+territories.RU=Russia
+territories.FJ=Fiji
+territories.FI=Finland
+territories.RS=Serbia
+territories.RO=Romania
+territories.ET=Ethiopia
+territories.ES=Espanya
+territories.ER=Eritrea
+territories.QU=European Union
+territories.EH=Western Sahara
+territories.EG=Ehipto
+territories.EE=Estonia
+territories.QO=Malayong bahagi ng Oceania
+territories.EC=Ecuador
+territories.DZ=Algeria
+territories.039=Katimugang Europa
+territories.DO=Dominican Republic
+territories.PY=Paraguay
+territories.DM=Dominica
+territories.035=Timog-Silangang Asya
+territories.034=Katimugang Asya
+territories.DK=Denmark
+territories.DJ=Djibouti
+territories.PT=Portugal
+territories.PS=Palestine
+territories.030=Silangang Asya
+territories.DE=Alemaya
+territories.PM=Saint Pierre at Miquelon
+territories.PL=Poland
+territories.PK=Pakistan
+territories.PH=Pilipinas
+territories.PG=Papua New Guinea
+territories.PF=French Polynesia
+territories.CZ=Czech Republic
+territories.PE=Peru
+territories.CY=Cyprus
+territories.CX=Christmas Island
+territories.CV=Cape Verde
+territories.CU=Cuba
+territories.CS=Serbia at Montenegro
+territories.CR=Costa Rica
+territories.029=Carribbean
+territories.CO=Colombia
+territories.CN=Tsina
+territories.CM=Cameroon
+territories.CL=Chile
+territories.CK=Cook Islands
+territories.021=Hilagang Amerika
+territories.CI=C\u00f4te d'Ivoire
+territories.CH=Switzerland
+territories.CG=Congo
+territories.CF=Central African Republic
+territories.CD=Congo - Kinshasa
+territories.CC=Cocos Islands
+territories.OM=Oman
+territories.CA=Canada
+territories.419=Latin America at ang Caribbean
+territories.BZ=Belize
+territories.BY=Belarus
+territories.BW=Botswana
+territories.BV=Bouvet Island
+territories.BT=Bhutan
+territories.BS=Bahamas
+territories.BR=Brazil
+territories.019=Americas
+territories.018=Katimugang Africa
+territories.NZ=New Zealand
+territories.017=Gitnang Africa
+territories.BO=Bolivia
+territories.BN=Brunei
+territories.015=Hilagang Africa
+territories.BM=Bermuda
+territories.014=Silangang Africa
+territories.013=Gitnang Amerika
+territories.BJ=Benin
+territories.011=Kanlurang Africa
+territories.BI=Burundi
+territories.BH=Bahrain
+territories.BG=Bulgaria
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Belgium
+territories.ZZ=Hindi kilala o Hindi wastong Rehiyon
+territories.NO=Norway
+territories.BD=Bangladesh
+territories.BB=Barbados
+territories.ZW=Zimbabwe
+territories.NL=Netherlands
+territories.BA=Bosnia and Herzegovina
+territories.NI=Nicaragua
+territories.NG=Nigeria
+territories.NF=Norfolk Island
+territories.AZ=Azerbaijan
+territories.NE=Niger
+territories.AX=Aland Islands
+territories.NC=New Caledonia
+territories.AW=Aruba
+territories.ZM=Zambia
+territories.NA=Namibia
+territories.AU=Australia
+territories.AT=Austria
+territories.AS=American Samoa
+territories.AR=Argentina
+territories.AQ=Antartica
+territories.009=Oceania
+territories.MZ=Mozambique
+territories.AO=Angola
+territories.MY=Malaysia
+territories.AN=Netherlands Antilles
+territories.MX=Mehiko
+territories.AM=Armenia
+territories.005=South America
+territories.MW=Malawi
+territories.AL=Albania
+territories.003=North America
+territories.ZA=Timog Afrika
+territories.002=Africa
+territories.AI=Anguilla
+territories.001=Mundo
+territories.MR=Mauritania
+territories.AG=Antigua at Barbuda
+territories.AF=Afghanistan
+territories.MP=Northern Mariana Islands
+territories.AE=United Arab Emirates
+territories.MO=Macao
+territories.AD=Andorra
+territories.MN=Mongolia
+territories.MM=Myanmar
+territories.ML=Mali
+territories.MK=Macedonia
+territories.MH=Marshall Islands
+territories.MG=Madagascar
+territories.ME=Montenegro
+territories.MD=Moldova
+territories.MA=Morocco
+territories.YE=Yemen
+territories.LY=Libya
+territories.LV=Latvia
+territories.155=Kanlurang Europa
+territories.154=Hilagang Europa
+territories.LT=Lithuania
+territories.LS=Lesotho
+territories.LR=Liberia
+territories.151=Silangang Europa
+territories.150=Europa
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Saint Lucia
+territories.LB=Lebanon
+territories.LA=Laos
+territories.KZ=Kazakhstan
+territories.KY=Cayman Islands
+territories.145=Kanlurang Asya
+territories.143=Gitnang Asya
+territories.142=Asya
+territories.KR=Timog Korea
+territories.KP=Hilagang Korea
+territories.KN=Saint Kitts and Nevis
+territories.KM=Comoros
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Cambodia
+territories.KG=Kyrgyzstan
+territories.KE=Kenya
+territories.WF=Wallis and Futuna
+territories.JP=Japan
+territories.JO=Jordan
+territories.VU=Vanuatu
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VI=U.S. Virgin Islands
+territories.VG=British Virgin Islands
+territories.VE=Venezuela
+territories.VC=Saint Vincent and the Grenadines
+territories.VA=Vatican City
+territories.IT=Italya
+territories.IS=Iceland
+territories.IR=Iran
+territories.IQ=Iraq
+territories.UZ=Uzbekistan
+territories.IO=British Indian Ocean Territory
+territories.UY=Uruguay
+territories.IN=India
+territories.IM=Isle of Man
+territories.IL=Israel
+territories.US=United States
+territories.IE=Ireland
+territories.ID=Indonesia
+territories.UM=United States minor outlying islands
+territories.UG=Uganda
+territories.UA=Ukraine
+territories.HU=Hungary
+territories.HT=Haiti
+territories.HR=Croatia
+territories.TZ=Tanzania
+territories.HN=Honduras
+territories.HM=Heard Island and McDonald Islands
+territories.TW=Taiwan
+territories.TV=Tuvalu
+territories.HK=Hong KOng
+territories.TT=Trinidad and Tobago
+territories.TR=Turkey
+territories.TO=Tonga
+territories.TN=Tunisia
+territories.TM=Turkmenistan
+languages.es=Espanyol
+languages.ku=Kurdish
+languages.eo=Esperanto
+languages.en=Ingles
+languages.el=Griyego
+languages.ko=Korean
+languages.kn=Kannada
+languages.km=Khmer
+languages.wo=Wolof
+languages.ka=Georgian
+languages.zh_Hans=Intsik (Pinadali)
+languages.zh_Hant=Intsik (Tradisyunal)
+languages.jv=Javanese
+languages.fil=Filipino
+languages.pt=Portuges
+languages.ps=Pashto
+languages.de=Aleman
+languages.pl=Polish
+languages.da=Danish
+languages.tlh=Klingon
+languages.ja=Japanese
+languages.vi=Vietnamese
+languages.cy=Welsh
+languages.pa=Punjabi
+languages.cs=Czech
+languages.it=Italyano
+languages.is=Icelandic
+languages.uz=Uzbeko
+languages.or=Oriya
+languages.ur=Urdu
+languages.ca=Catalan
+languages.ie=Interlingue
+languages.id=Indonesian
+languages.uk=Ukranian
+languages.ia=Interlingua
+languages.oc=Occitan
+languages.ug=Uighur
+languages.hy=Armenian
+languages.bs=Bosnian
+languages.br=Breton
+languages.hu=Hungarian
+languages.bn=Bengali; Bangla
+languages.hr=Croatian
+languages.tw=Twi
+languages.bh=Bihari
+languages.bg=Bulgarian
+languages.no=Norwegian
+languages.be=Belarusian
+languages.nn=Norwegian Nynorsk
+languages.hi=Hindu
+languages.tr=Turko
+languages.nl=Olandes
+languages.zu=Zulu
+languages.he=Hebreo
+languages.tl=Tagalog
+languages.tk=Turkmen
+languages.ne=Nepali
+languages.az=Azerbaijani
+languages.ti=Tigrinya
+languages.th=Thai
+languages.en_US=Ingles (US)
+languages.te=Telugu
+languages.zh=zh
+languages.as=Assamese
+languages.ar=Arabic
+languages.ta=Tamil
+languages.gu=Gujarati
+languages.am=Amharic
+languages.mt=Maltese
+languages.ms=Malay
+languages.gn=Guarani
+languages.sw=Swahili
+languages.mr=Marathi
+languages.sv=Suwiso
+languages.gl=Galician
+languages.su=Taga Sundan
+languages.af=Afrikaans
+languages.st=Sesoto
+languages.mn=Mongolian
+languages.sr=Serbiran
+languages.sq=Albanian
+languages.ml=Malayalam
+languages.mk=Macedonian
+languages.so=Somali
+languages.gd=Scots Gaelic
+languages.sl=Eslobenyan
+languages.sk=Eslobak
+languages.ga=Irish
+languages.si=Sinhalese
+languages.sh=Serbo-Croatian
+languages.pt_BR=Portuges (Brasil)
+languages.yi=Yiddish
+languages.sd=Sindhi
+languages.fy=Prisian
+languages.sa=Sanskrit
+languages.fr=Pranses
+languages.lv=Latvian
+languages.lt=Lithuanian
+languages.fo=Faroeso
+languages.ru=Ruso
+languages.lo=Lao
+languages.ln=Lingala
+languages.fi=Finnish
+languages.ro=Romanian
+languages.rm=Rhaeto-Romance
+languages.fa=Persian
+languages.und=und
+languages.la=Latin
+languages.xh=Xhosa
+languages.en_GB=Ingles (UK)
+languages.eu=Basque
+languages.ky=Kirghiz
+languages.et=Estonian
index 6818933f9b605be7f4f8eed86876a4fa99244168..b60243d014d93c9cadefd8bfb6236bc3f80b7845 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+exponential=\u00d710^
+minusSign=\u2212
 decimalSeparator=,
 groupingSeparator=.
+currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
 currenciesSymbol.DKK=kr
-shortMonths=jan®feb®mar®apr®mai®jun®jul®aug®sep®okt®nov®des®®
-months=januar®februar®mars®apr\u00edl®mai®juni®juli®august®september®oktober®november®desember®®
-shortWeekdays=®sun®m\u00e1n®t\u00fds®mik®h\u00f3s®fr\u00ed®ley®
-weekdays=®sunnudagur®m\u00e1nadagur®t\u00fdsdagur®mikudagur®h\u00f3sdagur®fr\u00edggjadagur®leygardagur®
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemai\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedes\u00ae\u00ae
+months=januar\u00aefebruar\u00aemars\u00aeapr\u00edl\u00aemai\u00aejuni\u00aejuli\u00aeaugust\u00aeseptember\u00aeoktober\u00aenovember\u00aedesember\u00ae\u00ae
+shortWeekdays=\u00aesun\u00aem\u00e1n\u00aet\u00fds\u00aemik\u00aeh\u00f3s\u00aefr\u00ed\u00aeley\u00ae
+weekdays=\u00aesunnudagur\u00aem\u00e1nadagur\u00aet\u00fdsdagur\u00aemikudagur\u00aeh\u00f3sdagur\u00aefr\u00edggjadagur\u00aeleygardagur\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=dd-MM-yy
 mediumDateFormat=dd-MM-yyyy
 longDateFormat=d. MMM yyyy
 fullDateFormat=EEEE dd MMMM yyyy
-territories.AU=Avstralia
-territories.TD=Kjad
-territories.AT=Eysturr\u00edki
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TK=Tokelau
+territories.TJ=Tadsjikistan
+territories.TH=Teiland
+territories.TG=Togo
 territories.GY=Gujana
+territories.TD=Kjad
 territories.GW=Guinea Bissau
-territories.AQ=Antarktis
-territories.MZ=Mosambik
-territories.MY=Maleisia
-territories.MX=Meksiko
-territories.MW=Malavi
+territories.GU=Guam
+territories.GT=Guatemala
 territories.GR=Grikkaland
-territories.ZA=Su\u00f0urafrika
-territories.MV=Maldivuoyggjarnar
 territories.GQ=Ekvator Guinea
+territories.GP=Guadeloupe
 territories.SZ=Svasiland
-territories.MU=M\u00f3ritius
-territories.MR=M\u00f3ritania
-territories.AG=Antigua og Barbuda
-territories.AF=Afganistan
+territories.SY=Syria
+territories.GN=Guinea
+territories.GM=Gambia
+territories.GL=Gr\u00f8nland
+territories.SV=El Salvador
+territories.062=Su\u00f0ursentralasia
 territories.ST=Sao Tome og Prinsipi
-territories.AE=Sameindu Emirr\u00edkini
+territories.GI=Gibraltar
+territories.061=Polynesia
+territories.GH=Ghana
 territories.SR=Surinam
-territories.MK=Maked\u00f3nia
-territories.MH=Marshalloyggjarnar
-territories.MG=Madagaskar
-territories.MC=Monako
+territories.GG=Guernsey
+territories.GE=Georgia
+territories.SO=Somalia
+territories.GD=Grenada
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=St\u00f3ra Bretland
+territories.SL=Sierra Leone
+territories.GA=Gabon
+territories.SK=Slovakia
+territories.SI=Slovenia
 territories.SG=Singapor
-territories.MA=Marokko
 territories.SE=Sv\u00f8r\u00edki
+territories.SD=Sudan
 territories.SC=Seyskelloyggjarnar
 territories.SB=S\u00e1lomonoyggjarnar
 territories.SA=Saudi-Ar\u00e1bia
-territories.YE=Jemen
 territories.FR=Frakland
-territories.LV=Lettland
-territories.LU=Luksemborg
 territories.FO=F\u00f8royar
-territories.LT=Litava
-territories.LS=Lesoto
-territories.RW=Ruanda
 territories.FM=Mikronesia
+territories.RW=Ruanda
+territories.054=Melanesia
+territories.053=Avstralia og N\u00fds\u00e6land
 territories.RU=Russland
+territories.FJ=Fiji
 territories.FI=Finnland
+territories.RS=Serbia
 territories.RO=Rumenia
-territories.LI=Liktenstein
-territories.LC=Saint Lusia
-territories.LB=Libanon
-territories.KZ=Kasakstan
+territories.RE=R\u00e9union
 territories.ET=Etiopia
 territories.ES=Spania
-territories.KW=Kuvait
-territories.KR=Su\u00f0ur-Korea
-territories.KP=Nor\u00f0ur-Korea
-territories.KN=Saint Kitts og Nevis
-territories.KM=Komorooyggjarnar
+territories.ER=Eritrea
+territories.QU=EU
 territories.EG=Egyptaland
 territories.EE=Estland
-territories.WS=S\u00e1moa
 territories.EC=Ekvador
-territories.KH=Kambodja
-territories.KG=Kirgisia
-territories.KE=Kenja
+territories.DZ=Algeria
 territories.QA=Katar
-territories.PY=Paraguei
+territories.039=Su\u00f0urevropa
 territories.DO=Domingo l\u00fd\u00f0veldi\u00f0
+territories.PY=Paraguei
 territories.DM=Dominika
+territories.035=Su\u00f0ureysturasia
+territories.PW=Palau
+territories.034=Su\u00f0urasia
 territories.DK=Danm\u00f8rk
-territories.JM=Jameika
+territories.DJ=Djibouti
+territories.PT=Portugal
+territories.030=Eysturasia
 territories.DE=T\u00fdskland
 territories.PL=P\u00f3lland
+territories.PK=Pakistan
 territories.PH=Filipsoyggjar
 territories.PG=Papua N\u00fdguinea
-territories.PE=Per\u00fa
 territories.CZ=Kekkia
+territories.PE=Per\u00fa
 territories.CY=K\u00fdpros
 territories.CV=Gr\u00f8nh\u00f8vdaoyggjarnar
-territories.VE=Venesuela
+territories.PA=Panama
 territories.CU=Kuba
-territories.VC=Saint Vinsent og Grenadinoyggjar
 territories.CR=Kosta Rika
-territories.VA=Vatikan
+territories.029=Karibia
 territories.CO=Kolombia
-territories.IT=Italia
 territories.CN=Kina
-territories.IS=\u00cdsland
 territories.CM=Kamerun
 territories.CL=Kili
-territories.IQ=Irak
-territories.UZ=Usbekistan
-territories.UY=Uruguei
 territories.CI=F\u00edlabeinsstrondin
 territories.CH=Sveis
-territories.CG=Kongo
-territories.IL=\u00cdsrael
+territories.CG=Kongo-Brazzaville
 territories.CF=Mi\u00f0afrikal\u00fd\u00f0veldi\u00f0
-territories.US=Sambandsr\u00edki Amerika
+territories.CD=Kongo-Kinshasa
+territories.OM=Oman
 territories.CA=Kanada
-territories.IE=\u00cdrland
 territories.BZ=Belis
 territories.BY=Hv\u00edtarussland
 territories.BW=Botsvana
 territories.BT=Butan
+territories.BS=Bahamas
 territories.BR=Brasilia
+territories.019=Amerika
+territories.018=Su\u00f0ur Afrika
+territories.NZ=N\u00fds\u00e6land
+territories.017=Mi\u00f0afrika
+territories.BO=Bolivia
+territories.BN=Brunei
+territories.015=Nor\u00f0urafrika
+territories.BM=Bermuda
+territories.014=Eysturafrika
+territories.013=Sentralamerika
+territories.NU=Niue
+territories.BJ=Benin
+territories.011=Vesturafrika
+territories.BI=Burundi
+territories.BH=Bahrain
+territories.NR=Nauru
+territories.BG=Bulgaria
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Belgia
+territories.NO=Noreg
+territories.BD=Bangladesj
+territories.BB=Barbados
+territories.ZW=Simbabvi
+territories.NL=Ni\u00f0urlond
+territories.BA=Bosnia-Hersegovina
+territories.NI=Nikaragua
+territories.NG=Nigeria
+territories.AZ=Aserbadjan
+territories.NE=Niger
+territories.AX=\u00c1land
+territories.AW=Aruba
+territories.ZM=Sambia
+territories.NA=Namibia
+territories.AU=Avstralia
+territories.AT=Eysturr\u00edki
+territories.AR=Argentina
+territories.AQ=Antarktis
+territories.009=Kyrrahavsoyggjarnar
+territories.MZ=Mosambik
+territories.AO=Angola
+territories.MY=Maleisia
+territories.MX=Meksiko
+territories.AM=Armenia
+territories.005=Su\u00f0uramerika
+territories.MW=Malavi
+territories.AL=Albania
+territories.MV=Maldivuoyggjarnar
+territories.003=Nor\u00f0uramerika
+territories.ZA=Su\u00f0urafrika
+territories.MU=M\u00f3ritius
+territories.002=Africa
+territories.MT=Malta
+territories.AI=Anguilla
+territories.MS=Montserrat
+territories.MR=M\u00f3ritania
+territories.AG=Antigua og Barbuda
+territories.AF=Afganistan
+territories.AE=Sameindu Emirr\u00edkini
+territories.MO=Makao
+territories.AD=Andorra
+territories.MN=Mongolia
+territories.MM=Burma
+territories.ML=Mali
+territories.MK=Maked\u00f3nia
+territories.MH=Marshalloyggjarnar
+territories.MG=Madagaskar
+territories.ME=Montenegro
+territories.MD=Moldova
+territories.MC=Monako
+territories.MA=Marokko
+territories.YE=Jemen
+territories.LY=Libya
+territories.LV=Lettland
+territories.155=Vesturevropa
+territories.LU=Luksemborg
+territories.154=Nor\u00f0urevropa
+territories.LT=Litava
+territories.LS=Lesoto
+territories.LR=Liberia
+territories.151=Eysturevropa
+territories.150=Evropa
+territories.LK=Sri Lanka
+territories.LI=Liktenstein
+territories.LC=Saint Lusia
+territories.LB=Libanon
+territories.LA=Laos
+territories.KZ=Kasakstan
+territories.KW=Kuvait
+territories.145=Vesturasia
+territories.143=Sentralasia
+territories.142=Asia
+territories.KR=Su\u00f0urkorea
+territories.KP=Nor\u00f0urkorea
+territories.KN=Saint Kitts og Nevis
+territories.KM=Komorooyggjarnar
+territories.KI=Kiribati
+territories.WS=S\u00e1moa
+territories.KH=Kambodja
+territories.KG=Kirgisia
+territories.KE=Kenja
+territories.JP=Japan
+territories.JO=Jordan
+territories.JM=Jameika
+territories.VU=Vanuatu
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VE=Venesuela
+territories.VC=Saint Vinsent og Grenadinoyggjar
+territories.VA=Vatikan
+territories.IT=Italia
+territories.IS=\u00cdsland
+territories.IR=Iran
+territories.IQ=Irak
+territories.UZ=Usbekistan
+territories.UY=Uruguei
+territories.IN=India
+territories.IL=\u00cdsrael
+territories.US=Sambandsr\u00edki Amerika
+territories.IE=\u00cdrland
+territories.ID=Indonesia
+territories.UG=Uganda
 territories.UA=Ukreina
-territories.NZ=N\u00fd S\u00e6land
 territories.HU=Ungarn
+territories.HT=Haiti
 territories.HR=Kroatia
 territories.TZ=Tansania
+territories.HN=Honduras
 territories.TW=Teivan
+territories.TV=Tuvalu
+territories.HK=Hongkong
 territories.TT=Trinidad og Tobago
-territories.NO=Noreg
-territories.BE=Belgia
-territories.BD=Bangladesj
-territories.ZW=Simbabvi
 territories.TR=Turkaland
-territories.NL=Ni\u00f0urlond
-territories.BA=Bosnia-Hersegovina
+territories.TO=Tonga
 territories.TN=Tunesia
-territories.NI=Nikaragua
-territories.TJ=Tadsjikistan
-territories.AZ=Aserbajdsjan
-territories.ZM=Sambia
+languages.es=spanskt
+languages.ku=kurdiskt
+languages.eo=esperanto
+languages.en=enskt
+languages.el=grikskt
+languages.ko=koreanskt
+languages.kn=kannada
+languages.km=kambodjanskt
+languages.ka=georgiskt
+languages.jv=javanesiskt
+languages.fil=tagalog
+languages.pt=portugisiskt
+languages.ps=pashto
+languages.de=t\u00fdskt
+languages.pl=polskt
+languages.da=danskt
+languages.tlh=klingonskt
+languages.ja=japanskt
+languages.vi=vietnamesiskt
+languages.cy=valisiskt
+languages.pa=punjabi
+languages.cs=kekkiskt
+languages.it=italskt
+languages.is=\u00edslendskt
+languages.uz=uzbekiskt
+languages.or=oriya
+languages.ur=urdu
+languages.ca=katalanskt
+languages.ie=interlingue
+languages.id=indonesiskum
+languages.uk=ukrainskt
+languages.ia=interlingua
+languages.oc=occitan
+languages.ug=uighur
+languages.hy=armenskum
+languages.bs=bosniskt
+languages.br=bretonskt
+languages.hu=ungarskt
+languages.bn=bengaliskt
+languages.hr=kroatiskum
+languages.tw=twi
+languages.bh=bihariskt
+languages.bg=bulgarskum
+languages.no=norskt
+languages.be=belarussiskt
+languages.nn=n\u00fdnorskt
+languages.hi=hindi
+languages.tr=turkiskt
+languages.nl=hollendskt
+languages.zu=sulu
+languages.he=hebraiskt
+languages.tk=turkmenskt
+languages.ne=nepalskt
+languages.az=azerbaijaniskt
+languages.ti=tigrinya
+languages.th=thailendskt
+languages.nb=norskt bokm\u00e5l
+languages.te=telugu
+languages.as=assamesiskt
+languages.ar=arabiskt
+languages.ta=tamilskt
+languages.gu=gujariti
+languages.am=amhariskt
+languages.mt=maltesiskt
+languages.ms=malay
+languages.gn=guarani
+languages.sw=swahili
+languages.mr=marathiskt
+languages.sv=svenskt
+languages.gl=galliskt
+languages.su=sundanesiskt
+languages.af=afr\u00edska
+languages.st=sesotho
+languages.mn=mongoliskt
+languages.sr=serbiskum
+languages.sq=albanskt
+languages.ml=malayalam
+languages.mk=makedonskt
+languages.so=somaliskt
+languages.gd=skotskt g\u00e6liskt
+languages.sl=slovenskum
+languages.sk=slovakiskum
+languages.ga=\u00edrskt
+languages.si=sinhalesiskt
+languages.sh=serbokroatiskt
+languages.yi=jiddiskt
+languages.sd=sindhi
+languages.fy=frisiskt
+languages.sa=sanskrit
+languages.fr=franskt
+languages.lv=latviskt
+languages.lt=litavskt
 languages.fo=f\u00f8royskt
+languages.ru=russiskt
+languages.lo=laothian
+languages.ln=lingala
+languages.fi=finskt
+languages.ro=romanskt
+languages.fa=persiskt
+languages.la=lat\u00edn
+languages.xh=xhosa
+languages.eu=baskiskt
+languages.ky=kyrgyz
+languages.et=estlendskt
index d89b6feaa38778c136c3db8a47c2eefd2293094b..3adda577abbdf1228dd8e9f8c7769ce0b07e4bc0 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=\u00a0
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-localPatternChars=GaMjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.YDD=dinar du Y\u00e9men
-currenciesDisplayName.TWD=dollar ta\u00efwanais
-currenciesDisplayName.KES=shilling du Kenya
-currenciesDisplayName.BYB=nouveau rouble bi\u00e9lorusse (1994-1999)
-currenciesDisplayName.LKR=roupie de Sri Lanka
-currenciesDisplayName.RWF=franc du Rwanda
-currenciesDisplayName.TJS=somoni du Tadjikistan
-currenciesDisplayName.SDP=livre soudanaise
-currenciesDisplayName.TJR=rouble du Tadjikistan
-currenciesDisplayName.ERN=Eritrean Nakfa
-currenciesDisplayName.AFN=afghani
-currenciesDisplayName.GRD=drachme
-currenciesDisplayName.IEP=livre irlandaise
-currenciesDisplayName.ARS=peso argentin
-currenciesDisplayName.SDD=dinar soudanais
-currenciesDisplayName.ARP=peso argentin (1983-1985)
-currenciesDisplayName.GEL=lari
-currenciesDisplayName.AFA=afghani
-currenciesDisplayName.GEK=Georgian Kupon Larit
-currenciesDisplayName.CRC=colon
-currenciesDisplayName.FKP=livre des Falkland (Malvinas)
-currenciesDisplayName.EEK=couronne estonienne
-currenciesDisplayName.HKD=dollar de Hong Kong
-currenciesDisplayName.MDL=leu moldave
-currenciesDisplayName.ARA=austral
-currenciesDisplayName.IQD=dinar irakien
-currenciesDisplayName.SCR=roupie des Seychelles
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GaMjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=dinar nord-y\u00e9m\u00e9nite
+currenciesDisplayName.KES=shillings k\u00e9nyans
+currenciesDisplayName.TWD=nouveaux dollars ta\u00efwanais
+currenciesDisplayName.LKR=roupies srilankaises
+currenciesDisplayName.BYB=nouveau rouble bi\u00e9lorusse (1994\u20131999)
+currenciesDisplayName.TJS=somonis tadjiks
+currenciesDisplayName.RWF=franc rwandais
+currenciesDisplayName.ERN=nakfa d'\u00c9rythr\u00e9e
+currenciesDisplayName.TJR=roubles tadjiks
+currenciesDisplayName.SDP=livres soudanaises (1956\u20132007)
+currenciesDisplayName.GRD=drachmes grecques
+currenciesDisplayName.AFN=afghanis
+currenciesDisplayName.IEP=livres irlandaises
+currenciesDisplayName.ARS=pesos argentins
+currenciesDisplayName.SDG=dinar soudanais
+currenciesDisplayName.ARP=peso argentin (1983\u20131985)
+currenciesDisplayName.SDD=dinar soudanais (1992\u20132007)
+currenciesDisplayName.GEL=laris g\u00e9orgiens
+currenciesDisplayName.GEK=coupon de lari g\u00e9orgien
+currenciesDisplayName.AFA=afghanis (1927\u20132002)
+currenciesDisplayName.CRC=col\u00f3n du Costa Rica
+currenciesDisplayName.FKP=livres des Falkland
+currenciesDisplayName.EEK=couronnes estoniennes
+currenciesDisplayName.MDL=leus moldaves
+currenciesDisplayName.HKD=dollars de Hong Kong
+currenciesDisplayName.IQD=dinars irakiens
+currenciesDisplayName.ARA=austral argentin
+currenciesDisplayName.SCR=roupies des Seychelles
 currenciesDisplayName.VUV=vatu
-currenciesDisplayName.DKK=couronne danoise
-currenciesDisplayName.KPW=won nord-cor\u00e9en
-currenciesDisplayName.GQE=ekw\u00e9l\u00e9
-currenciesDisplayName.IDR=rupiah
-currenciesDisplayName.LVR=rouble letton
-currenciesDisplayName.SOS=shilling de Somalie
-currenciesDisplayName.AED=dirham des \u00c9mirats arabes unis
-currenciesDisplayName.BWP=pula
-currenciesDisplayName.LVL=lats letton
-currenciesDisplayName.RUR=rouble de Russie (1991-1998)
-currenciesDisplayName.NIO=cordoba d\u2019or
-currenciesDisplayName.ADP=peseta andorrane
+currenciesDisplayName.KPW=wons nord-cor\u00e9ens
+currenciesDisplayName.DKK=couronnes danoises
+currenciesDisplayName.IDR=roupies indon\u00e9siennes
+currenciesDisplayName.GQE=ekue de Guin\u00e9e \u00e9quatoriale
+currenciesDisplayName.SOS=shillings somaliens
+currenciesDisplayName.LVR=roubles lettons
+currenciesDisplayName.EQE=ekue
+currenciesDisplayName.AED=dirhams des \u00c9mirats arabes unis
+currenciesDisplayName.LVL=lats lettons
+currenciesDisplayName.BWP=pulas botswanais
+currenciesDisplayName.RUR=roubles russes (1991\u20131998)
+currenciesDisplayName.NIO=c\u00f3rdobas oro nicaraguayens
+currenciesDisplayName.XTS=(devise de test)
+currenciesDisplayName.MOP=patacas macanaises
 currenciesDisplayName.FJD=dollar de Fidji
-currenciesDisplayName.MOP=pataca
-currenciesDisplayName.RUB=rouble
-currenciesDisplayName.CDF=franc congolais
-currenciesDisplayName.NIC=cordoba
-currenciesDisplayName.DJF=franc de Djibouti
-currenciesDisplayName.ECV=unit\u00e9 de valeur constante \u00e9quatoriale (UVC)
-currenciesDisplayName.SBD=dollar de Salomon
-currenciesDisplayName.UZS=sum
-currenciesDisplayName.ECS=sucre
-currenciesDisplayName.PHP=peso philippin
-currenciesDisplayName.THB=baht
-currenciesDisplayName.LUF=franc luxembourgeois
-currenciesDisplayName.FIM=mark finlandais
-currenciesDisplayName.TTD=dollar de la Trinit\u00e9
-currenciesDisplayName.SZL=lilangeni
-currenciesDisplayName.MNT=tugrik
-currenciesDisplayName.SAR=riyal s\u00e9oudien
-currenciesDisplayName.UAK=karbovanetz
-currenciesDisplayName.UAH=hryvnia
-currenciesDisplayName.HUF=forint
+currenciesDisplayName.ADP=pesetas andorranes
+currenciesDisplayName.RUB=roubles russes
+currenciesDisplayName.CDF=francs congolais
+currenciesDisplayName.NIC=c\u00f3rdoba nicaraguayen (1912\u20131988)
+currenciesDisplayName.DJF=francs djiboutiens
+currenciesDisplayName.UZS=sums ouzbeks
+currenciesDisplayName.SBD=dollar des \u00celes Salomon
+currenciesDisplayName.ECV=unit\u00e9 de valeur constante \u00e9quatorienne (UVC)
+currenciesDisplayName.LUL=francs financiers luxembourgeois
+currenciesDisplayName.ECS=sucres \u00e9quatoriens
+currenciesDisplayName.THB=baths tha\u00eflandais
+currenciesDisplayName.PHP=pesos philippins
+currenciesDisplayName.LUF=francs luxembourgeois
+currenciesDisplayName.RHD=dollar rhod\u00e9sien
+currenciesDisplayName.LUC=francs convertibles luxembourgeois
+currenciesDisplayName.FIM=marks finlandais
+currenciesDisplayName.TTD=dollars trinidadiens
+currenciesDisplayName.SZL=emalangeni swazis
+currenciesDisplayName.MNT=tugriks mongols
+currenciesDisplayName.UAK=karbovanets ukrainien (1992\u20131996)
+currenciesDisplayName.SAR=rial saoudien
+currenciesDisplayName.COU=unit\u00e9 de valeur r\u00e9elle colombienne
+currenciesDisplayName.UAH=hryvnias ukrainiennes
+currenciesDisplayName.HUF=forints hongrois
+currenciesDisplayName.QAR=rials qataris
 currenciesDisplayName.COP=peso colombien
-currenciesDisplayName.QAR=rial du Qatar
-currenciesDisplayName.LTT=Talonas de Lithuanie
-currenciesDisplayName.PTE=escudo portugais
-currenciesDisplayName.AOR=kwanza angolais r\u00e9ajust\u00e9 (1995-1999)
-currenciesDisplayName.UYU=peso uruguayen
-currenciesDisplayName.GBP=livre sterling
-currenciesDisplayName.BIF=franc du Burundi
-currenciesDisplayName.INR=roupie indienne
-currenciesDisplayName.ZRZ=za\u00efre
-currenciesDisplayName.AON=nouveau kwanza angolais (1990-2000)
-currenciesDisplayName.LTL=Lita de Lithuanian
-currenciesDisplayName.XFU=franc UIC
-currenciesDisplayName.KZT=tenge du Kazakhstan
-currenciesDisplayName.MZM=m\u00e9tical
-currenciesDisplayName.UYP=peso uruguayen (1975-1993)
-currenciesDisplayName.AOK=kwanza angolais (1977-1990)
+currenciesDisplayName.LTT=talonas lituaniens
+currenciesDisplayName.PTE=escudos portugais
+currenciesDisplayName.UYU=pesos uruguayens
+currenciesDisplayName.AOR=kwanza angolais r\u00e9ajust\u00e9 (1995\u20131999)
+currenciesDisplayName.GBP=livres sterling
+currenciesDisplayName.ZRZ=za\u00efres za\u00efrois
+currenciesDisplayName.INR=roupies indiennes
+currenciesDisplayName.BIF=francs burundais
+currenciesDisplayName.XFU=francs UIC
+currenciesDisplayName.MZN=metical
+currenciesDisplayName.LTL=litas lituanien
+currenciesDisplayName.AON=nouveau kwanza angolais (1990\u20132000)
+currenciesDisplayName.UYP=pesos uruguayens (1975\u20131993)
+currenciesDisplayName.MZM=metical mozambicain (1980\u20132006)
+currenciesDisplayName.KZT=tenges kazakhs
+currenciesDisplayName.AOK=kwanza angolais (1977\u20131990)
+currenciesDisplayName.GNS=sylis guin\u00e9ens
 currenciesDisplayName.BUK=kyat
-currenciesDisplayName.GNS=syli
-currenciesDisplayName.XFO=franc or
-currenciesDisplayName.PGK=kina
-currenciesDisplayName.SYP=livre syrienne
-currenciesDisplayName.MZE=escudo du Mozambique
-currenciesDisplayName.OMR=rial omani
-currenciesDisplayName.NGN=naira
-currenciesDisplayName.ZRN=nouveau za\u00efre
-currenciesDisplayName.AOA=kwanza angolais
-currenciesDisplayName.CNY=Yuan Ren-min-bi
-currenciesDisplayName.MAF=franc marocain
-currenciesDisplayName.GNF=franc guin\u00e9en
-currenciesDisplayName.HTG=gourde
-currenciesDisplayName.MAD=dirham marocain
-currenciesDisplayName.MMK=Myanmar Kyat
-currenciesDisplayName.MYR=ringgit
-currenciesDisplayName.LSL=Lesotho Loti
-currenciesDisplayName.XEU=unit\u00e9 de compte europ\u00e9enne (ECU)
-currenciesDisplayName.BHD=dinar de Bahrein
-currenciesDisplayName.SLL=l\u00e9one
-currenciesDisplayName.BTN=ngultrum
-currenciesDisplayName.TRL=livre turque
-currenciesDisplayName.KMF=franc des Comores
-currenciesDisplayName.ANG=florin des Antilles n\u00e9erl.
-currenciesDisplayName.CZK=couronne tch\u00e8que
-currenciesDisplayName.AZM=Azerbaijanian Manat
-currenciesDisplayName.KYD=dollar des \u00eeles Ca\u00efmans
-currenciesDisplayName.GMD=dalasie
-currenciesDisplayName.BGN=nouveau lef
-currenciesDisplayName.CAD=dollar canadien
-currenciesDisplayName.MXV=unit\u00e9 de conversion mexicaine (UDI)
-currenciesDisplayName.BGL=lev
-currenciesDisplayName.VEB=bolivar
-currenciesDisplayName.MLF=franc malien
-currenciesDisplayName.ILS=sh\u00e9kel
-currenciesDisplayName.MXP=peso d\u2019argent mexicain (1861-1992)
-currenciesDisplayName.PES=sol p\u00e9ruvien
-currenciesDisplayName.GYD=dollar de Guyane
-currenciesDisplayName.ILP=livre isra\u00e9lienne
-currenciesDisplayName.SKK=couronne slovaque
-currenciesDisplayName.CYP=livre cypriote
-currenciesDisplayName.PEN=nouveau sol p\u00e9ruvien
-currenciesDisplayName.LRD=dollar lib\u00e9rien
-currenciesDisplayName.PEI=Inti p\u00e9ruvien
-currenciesDisplayName.AMD=dram arm\u00e9nien
+currenciesDisplayName.XFO=francs or
+currenciesDisplayName.PGK=kinas papouan-n\u00e9o-guin\u00e9ens
+currenciesDisplayName.UYI=pesos uruguayen (unit\u00e9s index\u00e9es)
+currenciesDisplayName.SYP=livres syriennes
+currenciesDisplayName.OMR=rials omanis
+currenciesDisplayName.MZE=escudos mozambicains
+currenciesDisplayName.ZRN=nouveaux za\u00efres za\u00efriens
+currenciesDisplayName.NGN=nairas nig\u00e9rians
+currenciesDisplayName.CNY=yuan renminbi
+currenciesDisplayName.AOA=kwanzas angolais
+currenciesDisplayName.MAF=francs marocains
+currenciesDisplayName.RSD=dinars serbes
+currenciesDisplayName.GNF=francs guin\u00e9ens
+currenciesDisplayName.MAD=dirhams marocains
+currenciesDisplayName.HTG=gourdes ha\u00eftiennes
+currenciesDisplayName.TRY=nouvelles livres turques
+currenciesDisplayName.MMK=kyats myanmarais
+currenciesDisplayName.XRE=type de fonds RINET
+currenciesDisplayName.MYR=ringgits malais
+currenciesDisplayName.LSM=loti lesothan
+currenciesDisplayName.XEU=unit\u00e9s de compte europ\u00e9ennes (ECU)
+currenciesDisplayName.LSL=lotis lesothans
+currenciesDisplayName.SLL=leones sierra-l\u00e9onais
+currenciesDisplayName.BHD=dinars bahre\u00efnis
+currenciesDisplayName.BTN=ngultrums bouthanais
+currenciesDisplayName.TRL=livre turque (1844\u20132005)
+currenciesDisplayName.KMF=francs comoriens
+currenciesDisplayName.CZK=couronnes tch\u00e8ques
+currenciesDisplayName.ANG=florins antillais
+currenciesDisplayName.AZN=manat
+currenciesDisplayName.AZM=manat az\u00e9ri (1993\u20132006)
+currenciesDisplayName.KYD=dollars des \u00eeles Ca\u00efmanes
+currenciesDisplayName.GMD=dalasis gambiens
+currenciesDisplayName.VEF=bol\u00edvar
+currenciesDisplayName.BGN=nouveau lev
+currenciesDisplayName.MXV=unit\u00e9s de conversion mexicaines (UDI)
+currenciesDisplayName.CAD=dollars canadiens
+currenciesDisplayName.BGL=ancien lev
+currenciesDisplayName.VEB=bol\u00edvar v\u00e9n\u00e9zu\u00e9lien (1879\u20132008)
+currenciesDisplayName.MLF=francs maliens
+currenciesDisplayName.MXP=pesos d\u2019argent mexicains (1861\u20131992)
+currenciesDisplayName.ILS=shekel
+currenciesDisplayName.PES=sol p\u00e9ruvien (1863\u20131985)
+currenciesDisplayName.MXN=peso mexicain
+currenciesDisplayName.GYD=dollar guyanien
+currenciesDisplayName.ILP=livres isra\u00e9liennes
+currenciesDisplayName.CYP=livres chypriotes
+currenciesDisplayName.SKK=couronnes slovaques
+currenciesDisplayName.XDR=droit de tirage sp\u00e9cial
+currenciesDisplayName.PEN=nouveaux sols p\u00e9ruviens
+currenciesDisplayName.LRD=dollars lib\u00e9riens
+currenciesDisplayName.PEI=intis p\u00e9ruviens
+currenciesDisplayName.AMD=drams arm\u00e9niens
 currenciesDisplayName.BSD=dollar des Bahamas
-currenciesDisplayName.HRK=kuna
-currenciesDisplayName.CLP=peso chilien
-currenciesDisplayName.HRD=dinar croate
-currenciesDisplayName.XPF=franc CFP
-currenciesDisplayName.FRF=franc fran\u00e7ais
-currenciesDisplayName.BRR=cruzeiro
-currenciesDisplayName.MKD=dinar mac\u00e9donien
-currenciesDisplayName.CLF=Chilean Unidades de Fomento
-currenciesDisplayName.ALL=lek albanais
-currenciesDisplayName.BRN=nouveau cruzado
-currenciesDisplayName.MWK=kwacha
+currenciesDisplayName.XPT=onces troy de platine
+currenciesDisplayName.HRK=kunas croates
+currenciesDisplayName.CLP=pesos chiliens
+currenciesDisplayName.HRD=dinars croates
+currenciesDisplayName.XPF=francs CFP
+currenciesDisplayName.FRF=francs fran\u00e7ais
+currenciesDisplayName.XPD=onces troy de palladium
+currenciesDisplayName.BRR=cruzeiro r\u00e9al br\u00e9silien (1993\u20131994)
+currenciesDisplayName.MKD=denars mac\u00e9doniens
+currenciesDisplayName.CLF=unit\u00e9s d\u2019investissement chiliennes
+currenciesDisplayName.ALL=leks albanais
+currenciesDisplayName.BRN=nouveau cruzado br\u00e9silien (1989\u20131990)
+currenciesDisplayName.ALK=leks albanais (1947\u20131961)
+currenciesDisplayName.MWK=kwachas malawites
 currenciesDisplayName.BRL=r\u00e9al
-currenciesDisplayName.TPE=escudo de Timor
-currenciesDisplayName.BRE=cruzeiro (1990-1993)
-currenciesDisplayName.BRC=cruzeiro
-currenciesDisplayName.BRB=nouveau cruzeiro (1967-1986)
-currenciesDisplayName.DEM=deutsche mark
-currenciesDisplayName.KWD=dinar koweitien
-currenciesDisplayName.XCD=dollar des Cara\u00efbes
-currenciesDisplayName.NPR=roupie du N\u00e9pal
-currenciesDisplayName.GWP=peso de Guin\u00e9e-Bissau
-currenciesDisplayName.YUN=dinar yougoslave convertible
-currenciesDisplayName.SVC=colon
-currenciesDisplayName.YUM=dinar yougoslave Noviy
-currenciesDisplayName.BEL=franc belge (financier)
-currenciesDisplayName.SIT=tolar slov\u00e8ne
-currenciesDisplayName.JPY=yen
-currenciesDisplayName.XOF=franc CFA (BCEAO)
-currenciesDisplayName.MVR=roupie des Maldives
-currenciesDisplayName.GWE=Escudo de Guin\u00e9e Portugaise
-currenciesDisplayName.BEF=franc belge
-currenciesDisplayName.TOP=pa\u02bbanga
-currenciesDisplayName.YUD=nouveau dinar yougoslave
-currenciesDisplayName.BEC=franc belge (convertible)
-currenciesDisplayName.SUR=rouble de C.E.I.
-currenciesDisplayName.ROL=leu
-currenciesDisplayName.DDM=mark est-allemand
-currenciesDisplayName.BDT=taka
-currenciesDisplayName.XBD=unit\u00e9 de compte europ\u00e9enne (XBD)
-currenciesDisplayName.AWG=florin d\u2019Aruba
-currenciesDisplayName.XBC=unit\u00e9 de compte europ\u00e9enne (XBC)
-currenciesDisplayName.XBB=unit\u00e9 mon\u00e9taire europ\u00e9enne
-currenciesDisplayName.XBA=unit\u00e9 composite europ\u00e9enne
-currenciesDisplayName.NOK=couronne norv\u00e9gienne
-currenciesDisplayName.MUR=roupie de l\u2019\u00eele Maurice
-currenciesDisplayName.ZAR=rand
-currenciesDisplayName.SHP=livre de Sainte-H\u00e9l\u00e8ne
-currenciesDisplayName.XAU=Or
-currenciesDisplayName.ZAL=rand sud-africain (financier)
-currenciesDisplayName.VND=dong
-currenciesDisplayName.TZS=shilling de Tanzanie
-currenciesDisplayName.GIP=livre de Gibraltar
-currenciesDisplayName.TND=dinar tunisien
-currenciesDisplayName.CVE=escudo du Cap-Vert
-currenciesDisplayName.UGX=shilling ougandais
-currenciesDisplayName.ZMK=kwacha
-currenciesDisplayName.JOD=dinar jordanien
-currenciesDisplayName.XAF=franc CFA (BEAC)
-currenciesDisplayName.LBP=livre libanaise
-currenciesDisplayName.UGS=shilling ougandais (1966-1987)
-currenciesDisplayName.STD=dobra
-currenciesDisplayName.WST=tala
-currenciesDisplayName.KHR=riel
-currenciesDisplayName.EUR=euro
-currenciesDisplayName.DOP=peso dominicain
-currenciesDisplayName.BOV=Bolivian Mvdol
-currenciesDisplayName.MTP=livre maltaise
-currenciesDisplayName.USS=dollar des Etats-Unis (jour m\u00eame)
-currenciesDisplayName.BOP=peso bolivien
-currenciesDisplayName.MTL=lire maltaise
-currenciesDisplayName.CUP=peso cubain
-currenciesDisplayName.TMM=Turkmenistan Manat
-currenciesDisplayName.USN=dollar des Etats-Unis (jour suivant)
-currenciesDisplayName.SGD=dollar de Singapour
-currenciesDisplayName.NZD=dollar n\u00e9o-z\u00e9landais
-currenciesDisplayName.USD=dollar des \u00c9tats-Unis
-currenciesDisplayName.HNL=lempira
-currenciesDisplayName.BOB=boliviano
-currenciesDisplayName.ITL=lire italienne
-currenciesDisplayName.PAB=balboa
-currenciesDisplayName.GTQ=quetzal
-currenciesDisplayName.LAK=kip
-currenciesDisplayName.GHC=c\u00e9di
-currenciesDisplayName.AUD=dollar australien
-currenciesDisplayName.NAD=dollar de Namibie
-currenciesDisplayName.KGS=som du Kyrgystan
-currenciesDisplayName.MGF=franc malgache
-currenciesDisplayName.CHF=franc suisse
-currenciesDisplayName.BBD=dollar de Barbade
-currenciesDisplayName.MGA=ariary malgache
-currenciesDisplayName.PYG=guarani
-currenciesDisplayName.PLZ=zloty (1950-1995)
-currenciesDisplayName.YER=riyal du Y\u00e9men
-currenciesDisplayName.ATS=schilling autrichien
-currenciesDisplayName.ETB=birr
+currenciesDisplayName.TPE=escudos timorais
+currenciesDisplayName.BRE=cruzeiros br\u00e9siliens (1990\u20131993)
+currenciesDisplayName.BRC=cruzados br\u00e9siliens (1986\u20131989)
+currenciesDisplayName.BRB=nouveaux cruzeiros br\u00e9siliens (1967\u20131986)
+currenciesDisplayName.DEM=marks allemands
+currenciesDisplayName.KWD=dinar kowe\u00eftiens
+currenciesDisplayName.XCD=dollar des Cara\u00efbes orientales
+currenciesDisplayName.NPR=roupies n\u00e9palaises
+currenciesDisplayName.GWP=pesos bissau-guin\u00e9ens
+currenciesDisplayName.YUN=dinar convertible yougoslave (1990\u20131992)
+currenciesDisplayName.SVC=col\u00f3ns salvadoriens
+currenciesDisplayName.YUM=nouveau dinar yougoslave (1994\u20132003)
+currenciesDisplayName.BEL=francs belges (financiers)
+currenciesDisplayName.SIT=tolars slov\u00e8nes
+currenciesDisplayName.JPY=yens japonais
+currenciesDisplayName.XOF=francs CFA (BCEAO)
+currenciesDisplayName.MVR=rufiyaas maldiviennes
+currenciesDisplayName.BEF=francs belges
+currenciesDisplayName.GWE=escudo de Guin\u00e9e portugaise
+currenciesDisplayName.TOP=pa\u2019angas tongans
+currenciesDisplayName.YUD=dinar fort yougoslave (1966\u20131989)
+currenciesDisplayName.BEC=francs belges (convertibles)
+currenciesDisplayName.SUR=roubles sovi\u00e9tiques
+currenciesDisplayName.RON=lei roumains
+currenciesDisplayName.ROL=leu roumain (1952\u20132005)
+currenciesDisplayName.BDT=takas bangladeshis
+currenciesDisplayName.DDM=marks est-allemands
+currenciesDisplayName.XBD=unit\u00e9 de compte 17 europ\u00e9enne (UEC-17)
+currenciesDisplayName.AWG=florins arubais
+currenciesDisplayName.XBC=unit\u00e9 de compte 9 europ\u00e9enne (UEC-9)
+currenciesDisplayName.XBB=unit\u00e9 mon\u00e9taire europ\u00e9enne (UME-6)
+currenciesDisplayName.XBA=unit\u00e9 compos\u00e9e europ\u00e9enne (EURCO)
+currenciesDisplayName.NOK=couronnes norv\u00e9giennes
+currenciesDisplayName.MUR=roupie mauricienne
+currenciesDisplayName.ZAR=rands sud-africains
+currenciesDisplayName.SHP=livres de Sainte-H\u00e9l\u00e8ne
+currenciesDisplayName.XAU=onces troy d\u2019or
+currenciesDisplayName.ZAL=rands sud-africains (financiers)
+currenciesDisplayName.VND=d\u00f4ngs vietnamiens
+currenciesDisplayName.TZS=shillings tanzaniens
+currenciesDisplayName.GIP=livres de Gibraltar
+currenciesDisplayName.TND=dinars tunisiens
+currenciesDisplayName.CVE=escudos capverdiens
+currenciesDisplayName.UGX=shillings ougandais
+currenciesDisplayName.XAG=onces troy d\u2019argent
+currenciesDisplayName.ZMK=kwachas zambiens
+currenciesDisplayName.JOD=dinars jordaniens
+currenciesDisplayName.XAF=francs CFA (BEAC)
+currenciesDisplayName.LBP=livres libanaises
+currenciesDisplayName.UGS=shilling ougandais (1966\u20131987)
+currenciesDisplayName.STD=dobras santom\u00e9ens
+currenciesDisplayName.WST=talas samoans
+currenciesDisplayName.KHR=riels cambodgiens
+currenciesDisplayName.DOP=pesos dominicains
+currenciesDisplayName.EUR=euros
+currenciesDisplayName.BOV=mvdol
+currenciesDisplayName.MTP=livres maltaises
+currenciesDisplayName.USS=dollar des \u00c9tats-Unis (jour m\u00eame)
+currenciesDisplayName.BOP=pesos boliviens
+currenciesDisplayName.CUP=pesos cubains
+currenciesDisplayName.MTL=lires maltaises
+currenciesDisplayName.TMM=manats turkm\u00e8nes
+currenciesDisplayName.USN=dollar des \u00c9tats-Unis (jour suivant)
+currenciesDisplayName.GHS=cedi
+currenciesDisplayName.SGD=dollars de Singapour
+currenciesDisplayName.NZD=dollars n\u00e9o-z\u00e9landais
+currenciesDisplayName.USD=dollars des \u00c9tats-Unis
+currenciesDisplayName.BOB=bolivianos
+currenciesDisplayName.HNL=lempiras honduriens
+currenciesDisplayName.CHW=francs WIR
+currenciesDisplayName.ITL=lires italiennes
+currenciesDisplayName.PAB=balboas panam\u00e9ens
+currenciesDisplayName.GTQ=quetzals guat\u00e9malt\u00e8ques
+currenciesDisplayName.XXX=(devise ind\u00e9termin\u00e9e)
+currenciesDisplayName.AUD=dollars australiens
+currenciesDisplayName.GHC=c\u00e9di ghan\u00e9en (1967\u20132007)
+currenciesDisplayName.LAK=kips loatiens
+currenciesDisplayName.NAD=dollar namibien
+currenciesDisplayName.KGS=soms kirghizes
+currenciesDisplayName.MGF=francs malgaches
+currenciesDisplayName.BBD=dollars barbadiens
+currenciesDisplayName.CHF=francs suisses
+currenciesDisplayName.CHE=euros WIR
+currenciesDisplayName.MGA=ariarys malgaches
+currenciesDisplayName.PYG=guaran\u00eds paraguayens
+currenciesDisplayName.PLZ=zloty polonais (1950\u20131995)
+currenciesDisplayName.YER=rials y\u00e9m\u00e9nites
+currenciesDisplayName.ATS=schillings autrichiens
+currenciesDisplayName.ETB=birr d'\u00c9thiopie
 currenciesDisplayName.BND=dollar de Brunei
-currenciesDisplayName.JMD=dollar jama\u00efcain
-currenciesDisplayName.EGP=livre \u00e9gyptienne
-currenciesDisplayName.DZD=dinar alg\u00e9rien
-currenciesDisplayName.ISK=couronne islandaise
-currenciesDisplayName.SRG=florin du Surinam
-currenciesDisplayName.LYD=dinar Iibyen
-currenciesDisplayName.BZD=dollar de B\u00e9lize
-currenciesDisplayName.BAM=mark convertible de Bosnie-Herzegovine
-currenciesDisplayName.ESP=peseta espagnole
-currenciesDisplayName.KRW=won sud-cor\u00e9en
-currenciesDisplayName.NLG=florin n\u00e9erlandais
-currenciesDisplayName.MRO=ouguija
-currenciesDisplayName.BAD=dinar de Bosnie-Herzegovine
-currenciesDisplayName.ZWD=dollar du Zimbabwe
-currenciesDisplayName.SEK=couronne su\u00e9doise
-currenciesDisplayName.CSK=couronne tch\u00e8que
-currenciesDisplayName.BYR=rouble bi\u00e9lorusse
-currenciesDisplayName.IRR=rial iranien
-currenciesDisplayName.PKR=roupie du Pakistan
-currenciesDisplayName.BMD=dollar des Bermudes
-currenciesSymbol.BYR=Rbl
-currenciesSymbol.CHF=sFr.
-currenciesSymbol.ARS=Arg$
-currenciesSymbol.GYD=G$
+currenciesDisplayName.EGP=livres \u00e9gyptiennes
+currenciesDisplayName.JMD=dollars jama\u00efcains
+currenciesDisplayName.PLN=zlotys polonais
+currenciesDisplayName.DZD=dinars alg\u00e9riens
+currenciesDisplayName.ISK=couronnes islandaises
+currenciesDisplayName.SRG=florins surinamais
+currenciesDisplayName.LYD=dinars lybien
+currenciesDisplayName.SRD=dollars surinamais
+currenciesDisplayName.BAM=marks convertibles bosniaques
+currenciesDisplayName.BZD=dollars b\u00e9liz\u00e9ens
+currenciesDisplayName.ESP=pesetas espagnoles
+currenciesDisplayName.KRW=wons sud-cor\u00e9ens
+currenciesDisplayName.NLG=florins n\u00e9erlandais
+currenciesDisplayName.MRO=ouguiyas mauritaniens
+currenciesDisplayName.BAD=dinar de Bosnie-Herz\u00e9govine
+currenciesDisplayName.ZWD=dollars zimbabw\u00e9ens
+currenciesDisplayName.SEK=couronnes su\u00e9doises
+currenciesDisplayName.CSK=couronne de Tch\u00e9quie
+currenciesDisplayName.BYR=roubles bi\u00e9lorusses
+currenciesDisplayName.ESB=pesetas espagnoles (compte convertible)
+currenciesDisplayName.IRR=rials iraniens
+currenciesDisplayName.ESA=pesetas espagnoles (compte A)
+currenciesDisplayName.PKR=roupies pakistanaises
+currenciesDisplayName.BMD=dollars bermudiens
+currenciesDisplayName.CSD=dinars serbo-mont\u00e9n\u00e9grins
+currenciesSymbol.KES=ShK
+currenciesSymbol.TWD=N$T
+currenciesSymbol.LKR=ReSL
+currenciesSymbol.RWF=FRw
+currenciesSymbol.GRD=Dr
 currenciesSymbol.AFN=Af
-currenciesSymbol.FRF=F
+currenciesSymbol.IEP=\u00a3IE
+currenciesSymbol.ARS=$Arg
 currenciesSymbol.GEL=lari
-currenciesSymbol.ALL=lek
-currenciesSymbol.UGX=U Sh
-currenciesSymbol.DJF=DF
+currenciesSymbol.GEK=KlGe
+currenciesSymbol.CRC=C
+currenciesSymbol.FKP=\u00a3Fk
+currenciesSymbol.EEK=KrE
+currenciesSymbol.MDL=LM
+currenciesSymbol.HKD=$HK
+currenciesSymbol.IQD=DI
+currenciesSymbol.SCR=RpS
+currenciesSymbol.VUV=VT
+currenciesSymbol.KPW=\u20a9kp
+currenciesSymbol.DKK=KrD
+currenciesSymbol.IDR=Rp
+currenciesSymbol.SOS=ShSo
+currenciesSymbol.LVR=RbL
+currenciesSymbol.EQE=ekw\u00e9l\u00e9 de Guin\u00e9e \u00e9quatoriale
+currenciesSymbol.LVL=Ls
+currenciesSymbol.BWP=PBw
+currenciesSymbol.RUR=RuR
+currenciesSymbol.MOP=PMo
+currenciesSymbol.FJD=$F
+currenciesSymbol.ADP=\u20a7A
+currenciesSymbol.RUB=Rub
+currenciesSymbol.CDF=FrCD
+currenciesSymbol.DJF=FDj
+currenciesSymbol.UZS=sum
+currenciesSymbol.SBD=$SI
+currenciesSymbol.ECV=Uvc\u00c9q
+currenciesSymbol.ECS=SEq
+currenciesSymbol.THB=B.
+currenciesSymbol.PHP=Php
+currenciesSymbol.LUF=FL
+currenciesSymbol.RHD=$RH
+currenciesSymbol.TTD=$TT
+currenciesSymbol.SZL=Li
+currenciesSymbol.MNT=Tug
+currenciesSymbol.SAR=Rls
+currenciesSymbol.UAH=hrn
+currenciesSymbol.HUF=Ft
+currenciesSymbol.QAR=RQ
+currenciesSymbol.COP=$Col
+currenciesSymbol.PTE=Esc
+currenciesSymbol.UYU=$Ur
+currenciesSymbol.GBP=\u00a3GB
+currenciesSymbol.ZRZ=Z
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.MZN=MTn
+currenciesSymbol.LTL=Lts
+currenciesSymbol.MZM=Mt
 currenciesSymbol.KZT=T
-currenciesSymbol.GNF=GF
+currenciesSymbol.SYP=\u00a3Sy
+currenciesSymbol.OMR=RO
+currenciesSymbol.MZE=EscMz
+currenciesSymbol.ZRN=NZ
+currenciesSymbol.NGN=\u20a6
+currenciesSymbol.CNY=\u04b0
+currenciesSymbol.MAF=FMa
+currenciesSymbol.RSD=DS
+currenciesSymbol.GNF=FG
+currenciesSymbol.MAD=Dm
+currenciesSymbol.HTG=Gd
+currenciesSymbol.TRY=YTL
+currenciesSymbol.MMK=KMm
+currenciesSymbol.MYR=RMy
+currenciesSymbol.LSM=0\u2264M|1\u2264L|1<M
+currenciesSymbol.LSL=0\u2264M|1\u2264L|1<M
+currenciesSymbol.SLL=Ln
+currenciesSymbol.BHD=DB
 currenciesSymbol.BTN=Nu
-currenciesSymbol.UYU=Ur$
+currenciesSymbol.TRL=TL
+currenciesSymbol.KMF=FC
+currenciesSymbol.CZK=KrCz
+currenciesSymbol.ANG=f.NA
+currenciesSymbol.AZN=man.
+currenciesSymbol.KYD=$KY
+currenciesSymbol.GMD=Ds
+currenciesSymbol.VEF=BsF
+currenciesSymbol.BGN=NB
+currenciesSymbol.CAD=$Ca
+currenciesSymbol.BGL=lev
+currenciesSymbol.VEB=Be
+currenciesSymbol.MLF=Fml
+currenciesSymbol.ILS=\u20aa
+currenciesSymbol.MXN=$Mex
+currenciesSymbol.GYD=$Gy
+currenciesSymbol.ILP=\u00a3IL
+currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.SKK=KrSk
+currenciesSymbol.PEN=S./
+currenciesSymbol.LRD=$LR
+currenciesSymbol.PEI=I/.
+currenciesSymbol.AMD=dram
+currenciesSymbol.BSD=$Bs
+currenciesSymbol.HRK=Ku
+currenciesSymbol.CLP=$Ch
+currenciesSymbol.XPF=FCFP
+currenciesSymbol.FRF=F
+currenciesSymbol.BRR=CR$
+currenciesSymbol.MKD=DenM
+currenciesSymbol.BRN=NCz$
+currenciesSymbol.ALL=lek
+currenciesSymbol.MWK=KMw
+currenciesSymbol.BRE=Cz$
+currenciesSymbol.BRC=Cz
+currenciesSymbol.BRB=Cr$
+currenciesSymbol.DEM=DM
+currenciesSymbol.XCD=$EC
+currenciesSymbol.KWD=DK
+currenciesSymbol.NPR=RsNe
+currenciesSymbol.GWP=$GW
+currenciesSymbol.SIT=TSi
+currenciesSymbol.JPY=\u00a5JP
+currenciesSymbol.MVR=rf
+currenciesSymbol.TOP=$To
+currenciesSymbol.GWE=EscGW
 currenciesSymbol.BEF=FB
+currenciesSymbol.SUR=RbS
+currenciesSymbol.RON=0\u2264lei|1\u2264leu|1
+currenciesSymbol.BDT=Tk
+currenciesSymbol.AWG=f.AW
+currenciesSymbol.NOK=KrNo
+currenciesSymbol.ZAR=R.
+currenciesSymbol.MUR=RpMu
+currenciesSymbol.SHP=\u00a3SH
+currenciesSymbol.VND=\u20ab
+currenciesSymbol.TZS=ShT
+currenciesSymbol.GIP=\u00a3Gi
+currenciesSymbol.TND=DT
+currenciesSymbol.UGX=ShU
+currenciesSymbol.CVE=EscCV
+currenciesSymbol.ZMK=KwZ
+currenciesSymbol.JOD=DJ
+currenciesSymbol.LBP=\u00a3LB
+currenciesSymbol.STD=Db
+currenciesSymbol.KHR=RC
+currenciesSymbol.DOP=$RD
+currenciesSymbol.MTP=\u00a3Mt
+currenciesSymbol.BOP=$Bo
+currenciesSymbol.CUP=PsCu
 currenciesSymbol.MTL=Lm
-currenciesSymbol.MKD=MDen
-currenciesSymbol.LSL=M
-currenciesSymbol.AMD=dram
-currenciesSymbol.TRL=TL
-currenciesSymbol.BRL=R$
-currenciesSymbol.NAD=N$
-currenciesSymbol.LYD=LD
+currenciesSymbol.GHS=\u20b5Gh
+currenciesSymbol.SGD=$SG
+currenciesSymbol.NZD=$NZ
+currenciesSymbol.USD=$US
+currenciesSymbol.BOB=Bs
+currenciesSymbol.HNL=LHn
+currenciesSymbol.ITL=\u20a4IT
+currenciesSymbol.PAB=B/.
+currenciesSymbol.GTQ=Q
+currenciesSymbol.AUD=$AU
+currenciesSymbol.GHC=\u20b5
+currenciesSymbol.LAK=KL
+currenciesSymbol.NAD=$Na
 currenciesSymbol.KGS=som
-currenciesSymbol.ZWD=Z$
+currenciesSymbol.MGF=FMg
+currenciesSymbol.BBD=$Bds
+currenciesSymbol.CHF=sFr.
+currenciesSymbol.MGA=Ar
+currenciesSymbol.PYG=\u20b2
+currenciesSymbol.YER=RY
+currenciesSymbol.ATS=\u00f6S
+currenciesSymbol.ETB=Br
+currenciesSymbol.BND=$Bn
+currenciesSymbol.EGP=\u00a3Eg
+currenciesSymbol.JMD=$JM
+currenciesSymbol.PLN=Zl
+currenciesSymbol.DZD=DA
+currenciesSymbol.ISK=KrIs
+currenciesSymbol.SRG=f.Sr
+currenciesSymbol.LYD=DL
+currenciesSymbol.SRD=$Sr
 currenciesSymbol.BAM=KM
-currenciesSymbol.BOB=Bs
-shortMonths=janv.®f\u00e9vr.®mars®avr.®mai®juin®juil.®ao\u00fbt®sept.®oct.®nov.®d\u00e9c.®®
-months=janvier®f\u00e9vrier®mars®avril®mai®juin®juillet®ao\u00fbt®septembre®octobre®novembre®d\u00e9cembre®®
-shortWeekdays=®dim.®lun.®mar.®mer.®jeu.®ven.®sam.®
-weekdays=®dimanche®lundi®mardi®mercredi®jeudi®vendredi®samedi®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=av. J.-C.®apr. J.-C.®
+currenciesSymbol.BZD=$Bz
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.KRW=\u20a9kr
+currenciesSymbol.NLG=f.
+currenciesSymbol.MRO=UM
+currenciesSymbol.ZWD=$Z
+currenciesSymbol.SEK=KrSw
+currenciesSymbol.CSK=KrCs
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.IRR=RI
+currenciesSymbol.PKR=RaP
+currenciesSymbol.BMD=$Ber
+currenciesSymbol.CSD=CSD
+shortMonths=janv.\u00aef\u00e9vr.\u00aemars\u00aeavr.\u00aemai\u00aejuin\u00aejuil.\u00aeao\u00fbt\u00aesept.\u00aeoct.\u00aenov.\u00aed\u00e9c.\u00ae\u00ae
+months=janvier\u00aef\u00e9vrier\u00aemars\u00aeavril\u00aemai\u00aejuin\u00aejuillet\u00aeao\u00fbt\u00aeseptembre\u00aeoctobre\u00aenovembre\u00aed\u00e9cembre\u00ae\u00ae
+shortWeekdays=\u00aedim.\u00aelun.\u00aemar.\u00aemer.\u00aejeu.\u00aeven.\u00aesam.\u00ae
+weekdays=\u00aedimanche\u00aelundi\u00aemardi\u00aemercredi\u00aejeudi\u00aevendredi\u00aesamedi\u00ae
+eras=av. J.-C.\u00aeap. J.-C.\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=dd/MM/yy
-mediumDateFormat=d MMM yy
+mediumDateFormat=d MMM yyyy
 longDateFormat=d MMMM yyyy
 fullDateFormat=EEEE d MMMM yyyy
-fullTimeFormat=HH' h 'mm z
-zoneStrings=Pacific/Honolulu®HST®Heure normale d\u2019Hawa\u00ef®HDT®Heure avanc\u00e9e d\u2019Hawa\u00ef®©Europe/Bucharest®HEE®Heure normale de l\u2019Europe de l\u2019Est®HAEE®Heure avanc\u00e9e de l\u2019Europe de l\u2019Est®©America/Montreal®HNE®Heure normale de l\u2019Est®HAE®Heure avanc\u00e9e de l\u2019Est®©America/Los_Angeles®HNP (\u00c9UA)®Heure normale du Pacifique (\u00c9UA)®HAP (\u00c9UA)®Heure avanc\u00e9e du Pacifique (\u00c9UA)®©America/Vancouver®HNP®Heure normale du Pacifique®HAP®Heure avanc\u00e9e du Pacifique®©America/Denver®HNR (\u00c9UA)®Heure normale des Rocheuses (\u00c9UA)®HAR (\u00c9UA)®Heure avanc\u00e9e des Rocheuses (\u00c9UA)®©America/Winnipeg®HNC®Heure normale du Centre®HAC®Heure avanc\u00e9e du Centre®©America/Edmonton®HNR®Heure normale des Rocheuses®HAR®Heure avanc\u00e9e des Rocheuses®©Asia/Jerusalem®HNI®Heure normale d\u2019Isra\u00ebl®HAI®Heure avanc\u00e9e d\u2019Isra\u00ebl®©America/Phoenix®HNR (\u00c9UA)®Heure normale des Rocheuses (\u00c9UA)®HAR (\u00c9UA)®Heure avanc\u00e9e des Rocheuses (\u00c9UA)®©America/Chicago®HNC (\u00c9UA)®Heure normale du Centre (\u00c9UA)®HAC (\u00c9UA)®Heure avanc\u00e9e du Centre (\u00c9UA)®©America/Indianapolis®HNE (\u00c9UA)®Heure normale de l\u2019Est (\u00c9UA)®HAE (\u00c9UA)®Heure avanc\u00e9e de l\u2019Est (\u00c9UA)®©America/St_Johns®HNT®Heure normale de Terre-Neuve®HAT®Heure avanc\u00e9e de Terre-Neuve®©America/Anchorage®HNAK®Heure normale de l\u2019Alaska®HAAK®Heure avanc\u00e9e de l\u2019Alaska®©Asia/Shanghai®HNC®Heure normale de Chine®HAC®Heure avanc\u00e9e de Chine®©Asia/Tokyo®HNJ®Heure normale du Japon®HAJ®Heure avanc\u00e9e du Japon®©Europe/Paris®HNEC®Heure normale de l\u2019Europe centrale®HAEC®Heure avanc\u00e9e de l\u2019Europe centrale®©America/New_York®HNE (\u00c9UA)®Heure normale de l\u2019Est (\u00c9UA)®HAE (\u00c9UA)®Heure avanc\u00e9e de l\u2019Est (\u00c9UA)®©America/Halifax®HNA®Heure normale de l\u2019Atlantique®HAA®Heure avanc\u00e9e de l\u2019Atlantique®©
-territories.TL=Timor-Leste
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Central\u00aeheure normale d\u2019Europe centrale\u00aeHNEC\u00aeHeure avanc\u00e9e de l\u2019Europe centrale\u00aeHAEC\u00ae\u00a9Africa_Western\u00aeHeure normale d\u2019Afrique occidentale\u00aeHNAFO\u00aeHeure avanc\u00e9e d\u2019Afrique occidentale\u00aeHAAFO\u00ae\u00a9Kamchatka\u00aeheure normale de Petropavlovsk-Kamchatski\u00aeHNPET\u00aeheure avanc\u00e9e de Petropavlovsk-Kamchatski\u00aeHAPET\u00ae\u00a9Irkutsk\u00aeheure normale d\u2019Irkoutsk\u00aeHNIRK\u00aeheure avanc\u00e9e d\u2019Irkoutsk\u00aeHAIRK\u00ae\u00a9Borneo\u00aeheure normale de Born\u00e9o\u00aeHNBOR\u00aeheure avanc\u00e9e de Born\u00e9o\u00aeHABOR\u00ae\u00a9Australia_Eastern\u00aeheure normale de l\u2019Est australien\u00aeHNE (AU)\u00aeheure avanc\u00e9e de l\u2019Est australien\u00aeHAE (AU)\u00ae\u00a9Dominican\u00aeheure normale de R\u00e9publique dominicaine\u00aeHNDO\u00aeheure avanc\u00e9e de R\u00e9publique dominicaine\u00aeHADO\u00ae\u00a9Aqtau\u00aeheure normale d\u2019Aktaou\u00aeHNAQT\u00aeheure avanc\u00e9e d\u2019Aktaou\u00aeHAAQT\u00ae\u00a9Kazakhstan_Western\u00aeheure normale de l\u2019Ouest kazakh\u00aeHNO (KZ)\u00aeheure avanc\u00e9e de l\u2019Ouest kazakh\u00aeHAO (KZ)\u00ae\u00a9Bangladesh\u00aeheure normale du Bangladesh\u00aeHNBD\u00aeheure avanc\u00e9e du Bangladesh\u00aeHABD\u00ae\u00a9Indian_Ocean\u00aeheure normale du Territoire britannique de l\u2019oc\u00e9an Indien\u00aeHNIO\u00aeheure avanc\u00e9e du Territoire britannique de l\u2019oc\u00e9an Indien\u00aeHAIO\u00ae\u00a9Fiji\u00aeheure normale des \u00celes Fidji\u00aeHNFJ\u00aeheure avanc\u00e9e des \u00celes Fidji\u00aeHAFJ\u00ae\u00a9Azerbaijan\u00aeheure normale d\u2019Azerba\u00efdjan\u00aeHNAZ\u00aeheure avanc\u00e9e d\u2019Azerba\u00efdjan\u00aeHAAZ\u00ae\u00a9Amazon\u00aeheure normale de l\u2019Amazonie\u00aeHNAMA\u00aeheure avanc\u00e9e de l\u2019Amazonie\u00aeHAAMA\u00ae\u00a9Arabian\u00aeheure normale de l\u2019Arabie\u00aeHNA\u00aeheure avanc\u00e9e de l\u2019Arabie\u00aeHAA\u00ae\u00a9Krasnoyarsk\u00aeheure normale de Krasno\u00efarsk\u00aeHNKRA\u00aeheure avanc\u00e9e de Krasno\u00efarsk\u00aeHAKRA\u00ae\u00a9Alaska\u00aeheure normale de l\u2019Alaska\u00aeHNAK\u00aeheure avanc\u00e9e de l\u2019Alaska\u00aeHAAK\u00ae\u00a9Gulf\u00aeheure normale du Golfe\u00aeHNG\u00aeheure avanc\u00e9e du Golfe\u00aeHAG\u00ae\u00a9Dutch_Guiana\u00aeheure normale de Guyane n\u00e9erlandaise\u00aeHAGNE\u00aeheure avanc\u00e9e de Guyane n\u00e9erlandaise\u00aeHAGNE\u00ae\u00a9Easter\u00aeheure normale de l\u2019\u00eele de P\u00e2ques\u00aeHNPAQ\u00aeheure avanc\u00e9e de l\u2019\u00eele de P\u00e2ques\u00aeHAPAQ\u00ae\u00a9Hong_Kong\u00aeheure normale de Hong Kong\u00aeHNHK\u00aeheure avanc\u00e9e de Hong Kong\u00aeHAHK\u00ae\u00a9Indonesia_Western\u00aeheure normale de l\u2019Ouest indon\u00e9sien\u00aeHNO (ID)\u00aeheure avanc\u00e9e de l\u2019Ouest indon\u00e9sien\u00aeHAO (ID)\u00ae\u00a9Indonesia_Eastern\u00aeheure normale de l\u2019Est indon\u00e9sien\u00aeHNE (ID)\u00aeheure avanc\u00e9e de l\u2019Est indon\u00e9sien\u00aeHAE (ID)\u00ae\u00a9Aqtobe\u00aeheure normale d\u2019Aqt\u00f6be\u00aeHNAQB\u00aeheure avanc\u00e9 d\u2019Aqt\u00f6be\u00aeHAAQB\u00ae\u00a9Chamorro\u00aeheure normale des Chamorro\u00aeHNCh\u00aeheure avanc\u00e9e des Chamorro\u00aeHACh\u00ae\u00a9Kizilorda\u00aeheure normale de Kyzylorda\u00aeHNKYZ\u00aeheure avanc\u00e9e de Kyzylorda\u00aeHAKYZ\u00ae\u00a9Armenia\u00aeheure normale d\u2019Arm\u00e9nie\u00aeHNAM\u00aeheure avanc\u00e9e d\u2019Arm\u00e9nie\u00aeHAAM\u00ae\u00a9America_Pacific\u00aeheure normale du Pacifique\u00aeHNP\u00aeheure avanc\u00e9e du Pacifique\u00aeHAP\u00ae\u00a9Almaty\u00aeheure normale d\u2019Alma Ata\u00aeHNALM\u00aeheure avanc\u00e9e d\u2019Alma Ata\u00aeHAALM\u00ae\u00a9Anadyr\u00aeheure normale d\u2019Anadyr\u00aeHNANA\u00aeheure avanc\u00e9e d\u2019Anadyr\u00aeHAANA\u00ae\u00a9French_Guiana\u00aeheure normale de Guyane fran\u00e7aise\u00aeHNGF\u00aeheure avanc\u00e9e de Guyane fran\u00e7aise\u00aeHAGF\u00ae\u00a9Hawaii_Aleutian\u00aeheure normale d\u2019Hawaii - Al\u00e9outiennes\u00aeHNH\u00aeheure avanc\u00e9e d\u2019Hawaii - Al\u00e9outiennes\u00aeHAH\u00ae\u00a9Brunei\u00aeheure normale du Brun\u00e9i\u00aeHNBN\u00aeheure avanc\u00e9e du Brun\u00e9i\u00aeHABN\u00ae\u00a9Dushanbe\u00aeheure normale de Duchanb\u00e9\u00aeHNDUC\u00aeheure avanc\u00e9e de Duchanb\u00e9\u00aeHADUC\u00ae\u00a9Kosrae\u00aeheure normale de Kosrae\u00aeHNKOS\u00aeheure avanc\u00e9e de Kosrae\u00aeHAKOS\u00ae\u00a9Israel\u00aeheure normale d\u2019Isra\u00ebl\u00aeHNI (IL)\u00aeheure avanc\u00e9e d\u2019Isra\u00ebl\u00aeHAI (IL)\u00ae\u00a9Cocos\u00aeheure normale des \u00eeles Cocos - Keeling\u00aeHNCC\u00aeheure avanc\u00e9e des \u00eeles Cocos - Keeling\u00aeHACC\u00ae\u00a9Volgograd\u00aeheure normale de Volgograd\u00aeHNVO\u00aeHeure avanc\u00e9e de Volgograd\u00ae\u00ae\u00a9Greenland_Western\u00aeheure normale de l\u2019Ouest du Groenland\u00aeHNO (GL)\u00aeheure avanc\u00e9e de l\u2019Ouest du Groenland\u00aeHAO (GL)\u00ae\u00a9British\u00aeheure normale du Royaume-Uni\u00aeHNGB\u00aeheure avanc\u00e9e du Royaume-Uni\u00aeHAGB\u00ae\u00a9Goose_Bay\u00aeheure normale de Goose Bay\u00aeHNGOB\u00aeheure avanc\u00e9e de Goose Bay\u00aeHAGOB\u00ae\u00a9Europe_Eastern\u00aeheure d\u2019Europe de l\u2019Est\u00aeHNEE\u00aeHeure avanc\u00e9e de l\u2019Europe de l\u2019Est\u00aeHAEE\u00ae\u00a9Newfoundland\u00aeHeure normale de Terre-Neuve\u00aeHNT\u00aeHeure avanc\u00e9e de Terre-Neuve\u00aeHAT\u00ae\u00a9Australia_Western\u00aeheure normale de l\u2019Ouest australien\u00aeHNO (AU)\u00aeheure avanc\u00e9e de l\u2019Ouest australien\u00aeHAO (AU)\u00ae\u00a9Moscow\u00aeHeure normale de Moscou\u00aeHNMO\u00aeHeure avanc\u00e9e de Moscou\u00aeHAMO\u00ae\u00a9Christmas\u00aeheure normale de l\u2019\u00eele Christmas\u00aeHNCX\u00aeheure avanc\u00e9e de l\u2019\u00eele Christmas\u00aeHACX\u00ae\u00a9South_Georgia\u00aeheure normale de G\u00e9orgie du Sud\u00aeHNG\u00ae\u00ae\u00ae\u00a9Korea\u00aeheure normale de Cor\u00e9e\u00aeHNKR\u00aeheure avanc\u00e9e de Cor\u00e9e\u00aeHAKR\u00ae\u00a9Argentina_Western\u00aeheure normale de l\u2019Ouest argentin\u00aeHNO (AR)\u00aeheure avanc\u00e9e de l\u2019Ouest argentin\u00aeHAO (AR)\u00ae\u00a9Africa_Eastern\u00aeHeure normale d\u2019Afrique orientale\u00aeHNAFE\u00aeheure avanc\u00e9e d\u2019Afrique de l\u2019Est\u00aeHAAFE\u00ae\u00a9Atlantic\u00aeheure normale de l\u2019Atlantique\u00aeHNA\u00aeheure avanc\u00e9e de l\u2019Atlantique\u00aeHAA\u00ae\u00a9Alaska_Hawaii\u00aeheure normale d\u2019Alaska - Hawaii\u00aeHNAH\u00aeheure avanc\u00e9e d\u2019Alaska - Hawaii\u00aeHAAH\u00ae\u00a9Hovd\u00aeheure normale de Hovd\u00aeHNHOV\u00aeheure avanc\u00e9e de Hovd\u00aeHAHOV\u00ae\u00a9Cape_Verde\u00aeheure normale du Cap-Vert\u00aeHNCV\u00aeheure avanc\u00e9e du Cap-Vert\u00aeHACV\u00ae\u00a9America_Eastern\u00aeheure normale de l\u2019Est\u00aeHNE\u00aeheure avanc\u00e9e de l\u2019Est\u00aeHAE\u00ae\u00a9Baku\u00aeheure normale de Bakou\u00aeHNBAK\u00aeheure avanc\u00e9e de Bakou\u00aeHABAK\u00ae\u00a9Davis\u00aeheure normale de Davis\u00aeHNDAV\u00aeheure avanc\u00e9e de Davis\u00aeHADAV\u00ae\u00a9Chatham\u00aeheure normale des \u00eeles Chatham\u00aeHNCHA (NZ)\u00aeheure avanc\u00e9e des \u00eeles Chatham\u00aeHACHA (NZ)\u00ae\u00a9Afghanistan\u00aeheure normale d\u2019Afghanistan\u00aeHNAF\u00aeheure avanc\u00e9e d\u2019Afghanistan\u00aeHAAF\u00ae\u00a9French_Southern\u00aeheure normale des Terres australes fran\u00e7aises\u00aeHNTF\u00aeheure avanc\u00e9e des Terres australes fran\u00e7aises\u00aeHATF\u00ae\u00a9Ecuador\u00aeheure normale d\u2019\u00c9quateur\u00aeHNEQ\u00aeheure avanc\u00e9e d\u2019\u00c9quateur\u00aeHAEQ\u00ae\u00a9Acre\u00aeheure normale de l\u2019Acre\u00aeHNACR\u00aeheure avanc\u00e9e de l\u2019Acre\u00aeHAACR\u00ae\u00a9Dacca\u00aeheure normale de Dh\u00e2k\u00e2\u00aeHNDAC\u00aeheure avanc\u00e9e de Dh\u00e2k\u00e2\u00aeHADAC\u00ae\u00a9Europe_Western\u00aeheure normale d\u2019Europe de l\u2019Ouest\u00aeHNEO\u00aeheure avanc\u00e9e d\u2019Europe de l\u2019Ouest\u00aeHAEO\u00ae\u00a9Africa_Central\u00aeHeure normale d\u2019Afrique centrale\u00aeHNAFC\u00aeheure avanc\u00e9e d\u2019Afrique centrale\u00aeHAAFC\u00ae\u00a9Turkey\u00aeHeure normale de Turquie\u00aeHNTR\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00aeHeure normale d\u2019Afrique m\u00e9ridionale\u00aeHNAFM\u00aeheure avanc\u00e9e d\u2019Afrique m\u00e9ridionale\u00aeHAAFM\u00ae\u00a9Ashkhabad\u00aeheure normale d\u2019Achgabat\u00aeHNACH\u00aeheure avanc\u00e9e d\u2019Achgabat\u00aeHAACH\u00ae\u00a9Bering\u00aeheure normale de Bering\u00aeHNBER\u00aeheure avanc\u00e9e de Bering\u00aeHABER\u00ae\u00a9Guam\u00aeheure normale de Guam\u00aeHNGU\u00aeheure avanc\u00e9e de Guam\u00aeHAGU\u00ae\u00a9Bhutan\u00aeheure normale du Bhoutan\u00aeHNBT\u00aeheure avanc\u00e9e du Bhoutan\u00aeHABT\u00ae\u00a9Changbai\u00aeheure normale du Changbai\u00aeHNCHA (CN)\u00aeheure avanc\u00e9e du Changbai\u00aeHACHA (CN)\u00ae\u00a9Africa_FarWestern\u00aeheure normale d\u2019Afrique de l\u2019Ouest sah\u00e9lien\u00aeHNAFOS\u00aeheure avanc\u00e9e d\u2019Afrique de l\u2019Ouest sah\u00e9lien\u00aeHAAFOS\u00ae\u00a9Karachi\u00aeheure normale de Kar\u00e2chi\u00aeHNKAR\u00aeheure avanc\u00e9e de Kar\u00e2chi\u00aeHAKAR\u00ae\u00a9Gilbert_Islands\u00aeheure normale des \u00eeles Gilbert\u00aeHNGIL\u00aeheure avanc\u00e9e des \u00eeles Gilbert\u00aeHAGIL\u00ae\u00a9East_Timor\u00aeheure normale du Timor oriental\u00aeHNTL\u00aeheure avanc\u00e9e du Timor oriental\u00aeHATL\u00ae\u00a9Iran\u00aeheure normale d\u2019Iran\u00aeHNIR\u00aeheure avanc\u00e9e d\u2019Iran\u00aeHAIR\u00ae\u00a9Argentina\u00aeheure normale de l\u2019Est argentin\u00aeHNE (AR)\u00aeheure avanc\u00e9e de l\u2019Est argentin\u00aeHAE (AR)\u00ae\u00a9Irish\u00aeheure normale d\u2019Irlande\u00aeHNIE\u00aeheure avanc\u00e9e d\u2019Irlande\u00aeHAIE\u00ae\u00a9Yukon\u00aeheure normale du Yukon\u00aeHNY\u00aeheure avanc\u00e9e du Yukon\u00aeHAY\u00ae\u00a9Gambier\u00aeheure normale des \u00eeles Gambier\u00aeHNGAM\u00aeheure avanc\u00e9e des \u00eeles Gambier\u00aeHAGAM\u00ae\u00a9China\u00aeheure normale de Chine\u00aeHNC (CN)\u00aeheure avanc\u00e9e de Chine\u00aeHAC (CN)\u00ae\u00a9Indonesia_Central\u00aeheure normale du Centre indon\u00e9sien\u00aeHNC (ID)\u00aeheure avanc\u00e9e du Centre indon\u00e9sien\u00aeHAC (ID)\u00ae\u00a9America_Mountain\u00aeheure normale des Rocheuses\u00aeHNR\u00aeheure avanc\u00e9e des Rocheuses\u00aeHAR\u00ae\u00a9India\u00aeheure normale de l\u2019Inde\u00aeHNI (IN)\u00aeheure avanc\u00e9e de l\u2019Inde\u00aeHAI (IN)\u00ae\u00a9GMT\u00aeheure moyenne de Greenwich\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00aeheure normale de Samara\u00aeHNSA\u00aeHeure avanc\u00e9e de Samara\u00ae\u00ae\u00a9Falkland\u00aeheure normale des \u00eeles Malouines\u00aeHNFK\u00aeheure avanc\u00e9e des \u00eeles Malouines\u00aeHAFK\u00ae\u00a9Indochina\u00aeheure normale d\u2019Indochine\u00aeHNIDC\u00aeheure avanc\u00e9e d\u2019Indochine\u00aeHAIDC\u00ae\u00a9Chile\u00aeheure normale du Chili\u00aeHNCL\u00aeheure avanc\u00e9e du Chili\u00aeHACL\u00ae\u00a9Australia_CentralWestern\u00aeheure normale Centre Ouest australien\u00aeHNCO (AU)\u00aeheure avanc\u00e9e du Centre Ouest australien\u00aeHACO (AU)\u00ae\u00a9Brasilia\u00aeheure normale de Brasilia\u00aeHNBR\u00aeheure avanc\u00e9e de Brasilia\u00aeHABR\u00ae\u00a9Kazakhstan_Eastern\u00aeheure normale de l\u2019Est kazakh\u00aeHNE (KZ)\u00aeheure avanc\u00e9e de l\u2019Est kazakh\u00aeHAE (KZ)\u00ae\u00a9DumontDUrville\u00aeheure normale de Dumont-d\u2019Urville\u00aeHNDDU\u00aeheure avanc\u00e9e de Dumont-d\u2019Urville\u00aeHADDU\u00ae\u00a9America_Central\u00aeheure normale du Centre\u00aeHNC\u00aeheure avanc\u00e9e du Centre\u00aeHAC\u00ae\u00a9Frunze\u00aeheure normale de Frounz\u00e9\u00aeFNFRU\u00aeheure avanc\u00e9e de Frounz\u00e9\u00aeHAFRU\u00ae\u00a9Kuybyshev\u00aeheure normale de Kou\u00efbychev\u00aeHNKUY\u00aeHeure avanc\u00e9e de Kou\u00efbychev\u00aeHAKUY\u00ae\u00a9Greenland_Eastern\u00aeheure normale de l\u2019Est du Groenland\u00aeHNE (GL)\u00aeheure avanc\u00e9e de l\u2019Est du Groenland\u00aeHAE (GL)\u00ae\u00a9Azores\u00aeheure normale des A\u00e7ores\u00aeHNAC (PT)\u00aeheure avanc\u00e9e des A\u00e7ores\u00aeHAAC (PT)\u00ae\u00a9Greenland_Central\u00aeheure normale du Centre du Groenland\u00aeHNC (GL)\u00aeheure avanc\u00e9e du Centre du Groenland\u00aeHAC (GL)\u00ae\u00a9Japan\u00aeheure normale du Japon\u00aeHNJ\u00aeheure avanc\u00e9e du Japon\u00aeHAJ\u00ae\u00a9Kwajalein\u00aeheure normale de Kwajalein\u00aeHNKWA\u00aeheure avanc\u00e9e de Kwajalein\u00aeHAKWA\u00ae\u00a9Bolivia\u00aeheure normale de Bolivie\u00aeHNBO\u00aeheure avanc\u00e9e de Bolivie\u00aeHABO\u00ae\u00a9Cook\u00aeheure normale des \u00eeles Cook\u00aeHNCK\u00aeheure avanc\u00e9e des \u00eeles Cook\u00aeHACK\u00ae\u00a9Kashgar\u00aeheure normale de Kachgar\u00aeHNKAC\u00aeheure avanc\u00e9e de Kachgar\u00aeHAKAC\u00ae\u00a9Australia_Central\u00aeheure normale du Centre australien\u00aeHNC (AU)\u00aeheure avanc\u00e9e du Centre australien\u00aeHAC (AU)\u00ae\u00a9Guyana\u00aeheure normale du Guyana\u00aeHNGY\u00aeheure avanc\u00e9e du Guyana\u00aeHAGY\u00ae\u00a9Georgia\u00aeheure normale de G\u00e9orgie\u00aeHNGE\u00aeheure avanc\u00e9e de G\u00e9orgie\u00aeHAGE\u00ae\u00a9Colombia\u00aeheure normale de Colombie\u00aeHNCO\u00aeheure avanc\u00e9e de Colombie\u00aeHACO\u00ae\u00a9Galapagos\u00aeheure normale des \u00eeles Gal\u00e1pagos\u00aeHNGAL\u00aeheure avanc\u00e9e des \u00eeles Gal\u00e1pagos\u00aeHAGAL\u00ae\u00a9Cuba\u00aeheure normale de Cuba\u00aeHNCU\u00aeheure avanc\u00e9e de Cuba\u00aeHACU\u00ae\u00a9Aktyubinsk\u00aeheure normale d\u2019Aqt\u00f6be\u00aeHNAQB\u00aeheure avanc\u00e9e d\u2019Aqt\u00f6be\u00aeHAAQB\u00ae\u00a9
+territories.TL=Timor oriental
 territories.TK=Tokelau
 territories.TJ=Tadjikistan
 territories.TH=Tha\u00eflande
@@ -302,7 +511,7 @@ territories.TC=\u00celes Turks et Ca\u00efques
 territories.GW=Guin\u00e9e-Bissau
 territories.GU=Guam
 territories.GT=Guatemala
-territories.GS=G\u00e9orgie du Sud, \u00celes Sandwich du Sud
+territories.GS=G\u00e9orgie du Sud et les \u00eeles Sandwich du Sud
 territories.GR=Gr\u00e8ce
 territories.GQ=Guin\u00e9e \u00e9quatoriale
 territories.GP=Guadeloupe
@@ -311,13 +520,14 @@ territories.SY=Syrie
 territories.GN=Guin\u00e9e
 territories.GM=Gambie
 territories.GL=Groenland
-territories.SV=El Salvador
+territories.SV=Salvador
 territories.062=Asie centrale et du Sud
-territories.ST=Sao Tom\u00e9-et-Principe
-territories.061=Polyn\u00e9sie
+territories.ST=S\u00e3o Tom\u00e9-et-Pr\u00edncipe
 territories.GI=Gibraltar
+territories.061=Polyn\u00e9sie
 territories.GH=Ghana
-territories.SR=Suriname
+territories.SR=Surinam
+territories.GG=Guernesey
 territories.GF=Guyane fran\u00e7aise
 territories.GE=G\u00e9orgie
 territories.SO=Somalie
@@ -338,36 +548,38 @@ territories.SC=Seychelles
 territories.SB=\u00celes Salomon
 territories.SA=Arabie saoudite
 territories.FR=France
-territories.057=Micron\u00e9sie
 territories.FO=\u00celes F\u00e9ro\u00e9
+territories.057=R\u00e9gion micron\u00e9sienne
 territories.FM=Micron\u00e9sie
 territories.RW=Rwanda
 territories.054=M\u00e9lan\u00e9sie
+territories.FK=Iles Malouines
 territories.053=Australie et Nouvelle-Z\u00e9lande
-territories.FK=\u00celes Falkland (Malvinas)
 territories.RU=Russie
 territories.FJ=Fidji
 territories.FI=Finlande
+territories.RS=Serbie
 territories.RO=Roumanie
 territories.RE=R\u00e9union
 territories.ET=\u00c9thiopie
 territories.ES=Espagne
 territories.ER=\u00c9rythr\u00e9e
-territories.833=\u00cele de Man
+territories.QU=Union europ\u00e9enne
 territories.EH=Sahara occidental
 territories.EG=\u00c9gypte
-territories.830=\u00celes Anglo-Normandes
 territories.EE=Estonie
-territories.QO=Autre Oc\u00e9anie
+territories.830=\u00celes Anglo-Normandes
+territories.QO=R\u00e9gions \u00e9loign\u00e9es de l'Oc\u00e9anie
 territories.EC=\u00c9quateur
 territories.DZ=Alg\u00e9rie
 territories.QA=Qatar
 territories.039=Europe m\u00e9ridionale
 territories.DO=R\u00e9publique dominicaine
 territories.PY=Paraguay
-territories.035=Asie du Sud-Est
 territories.DM=Dominique
-territories.PW=Palaos
+territories.035=Asie du Sud-Est
+territories.PW=Palau
+territories.034=Asie du Sud
 territories.DK=Danemark
 territories.DJ=Djibouti
 territories.PT=Portugal
@@ -385,8 +597,8 @@ territories.PF=Polyn\u00e9sie fran\u00e7aise
 territories.CZ=R\u00e9publique tch\u00e8que
 territories.PE=P\u00e9rou
 territories.CY=Chypre
-territories.CX=\u00cele Christmas
-territories.CV=Cap Vert
+territories.CX=\u00cele Kiritimati
+territories.CV=Cap-Vert
 territories.PA=Panama
 territories.CU=Cuba
 territories.CS=Serbie-et-Mont\u00e9n\u00e9gro
@@ -397,44 +609,46 @@ territories.CN=Chine
 territories.CM=Cameroun
 territories.CL=Chili
 territories.CK=\u00celes Cook
+territories.021=Am\u00e9rique septentrionale
 territories.CI=C\u00f4te d\u2019Ivoire
-territories.021=Am\u00e9rique du Nord
 territories.CH=Suisse
 territories.CG=Congo
 territories.CF=R\u00e9publique centrafricaine
 territories.CD=R\u00e9publique d\u00e9mocratique du Congo
-territories.CC=\u00celes Cocos
+territories.CC=\u00celes Cocos (Keeling)
 territories.OM=Oman
 territories.CA=Canada
 territories.419=Am\u00e9rique latine et Cara\u00efbes
 territories.BZ=Belize
-territories.BY=B\u00e9larus
+territories.BY=Belarus
 territories.BW=Botswana
-territories.BV=\u00cele Bouvet
+territories.BV=\u00cele  Bouvet
 territories.BT=Bhoutan
 territories.BS=Bahamas
 territories.BR=Br\u00e9sil
 territories.019=Am\u00e9riques
 territories.018=Afrique australe
 territories.NZ=Nouvelle-Z\u00e9lande
-territories.BO=Bolivie
 territories.017=Afrique centrale
+territories.BO=Bolivie
 territories.BN=Brunei
-territories.BM=Bermudes
 territories.015=Afrique septentrionale
+territories.BM=Bermudes
 territories.014=Afrique orientale
+territories.BL=Saint-Barth\u00e9l\u00e9my
 territories.013=Am\u00e9rique centrale
-territories.NU=Niu\u00e9
-territories.BJ=Benin
-territories.BI=Burundi
+territories.NU=Niou\u00e9
+territories.BJ=B\u00e9nin
 territories.011=Afrique occidentale
+territories.BI=Burundi
+territories.172=Communaut\u00e9 des \u00c9tats ind\u00e9pendants
 territories.BH=Bahre\u00efn
-territories.172=Commonwealth of Independent States
 territories.NR=Nauru
 territories.BG=Bulgarie
 territories.BF=Burkina Faso
 territories.NP=N\u00e9pal
 territories.BE=Belgique
+territories.ZZ=(r\u00e9gion ind\u00e9termin\u00e9e)
 territories.NO=Norv\u00e8ge
 territories.BD=Bangladesh
 territories.BB=Barbade
@@ -442,11 +656,11 @@ territories.ZW=Zimbabwe
 territories.NL=Pays-Bas
 territories.BA=Bosnie-Herz\u00e9govine
 territories.NI=Nicaragua
-territories.NG=Nig\u00e9ria
+territories.NG=Nigeria
 territories.NF=\u00cele Norfolk
 territories.AZ=Azerba\u00efdjan
 territories.NE=Niger
-territories.AX=Iles d\u2019\u00c5land
+territories.AX=\u00c5land
 territories.NC=Nouvelle-Cal\u00e9donie
 territories.AW=Aruba
 territories.ZM=Zambie
@@ -455,25 +669,25 @@ territories.AU=Australie
 territories.AT=Autriche
 territories.AS=Samoa am\u00e9ricaines
 territories.AR=Argentine
-territories.009=Oc\u00e9anie
 territories.AQ=Antarctique
+territories.009=Oc\u00e9anie
 territories.MZ=Mozambique
 territories.AO=Angola
 territories.MY=Malaisie
 territories.AN=Antilles n\u00e9erlandaises
 territories.MX=Mexique
-territories.005=Am\u00e9rique du Sud
 territories.AM=Arm\u00e9nie
+territories.005=Am\u00e9rique du Sud
 territories.MW=Malawi
 territories.AL=Albanie
 territories.MV=Maldives
-territories.003=Le continent de l'Am\u00e9rique du Nord
+territories.003=Am\u00e9rique du Nord
 territories.ZA=Afrique du Sud
 territories.MU=Maurice
 territories.002=Afrique
 territories.MT=Malte
-territories.001=Monde
 territories.AI=Anguilla
+territories.001=Monde
 territories.MS=Montserrat
 territories.MR=Mauritanie
 territories.AG=Antigua-et-Barbuda
@@ -481,7 +695,7 @@ territories.MQ=Martinique
 territories.AF=Afghanistan
 territories.MP=\u00celes Mariannes du Nord
 territories.AE=\u00c9mirats arabes unis
-territories.MO=Macao R.A.S. de Chine
+territories.MO=Macao
 territories.AD=Andorre
 territories.MN=Mongolie
 territories.MM=Myanmar
@@ -490,7 +704,9 @@ territories.MK=Mac\u00e9doine
 territories.YT=Mayotte
 territories.MH=\u00celes Marshall
 territories.MG=Madagascar
-territories.MD=Moldova
+territories.MF=Saint-Martin
+territories.ME=Mont\u00e9n\u00e9gro
+territories.MD=Moldavie
 territories.MC=Monaco
 territories.MA=Maroc
 territories.YE=Y\u00e9men
@@ -499,9 +715,9 @@ territories.LV=Lettonie
 territories.155=Europe occidentale
 territories.LU=Luxembourg
 territories.154=Europe septentrionale
-territories.LT=Lithuanie
+territories.LT=Lituanie
 territories.LS=Lesotho
-territories.LR=Lib\u00e9ria
+territories.LR=Liberia
 territories.151=Europe orientale
 territories.150=Europe
 territories.LK=Sri Lanka
@@ -513,40 +729,43 @@ territories.KZ=Kazakhstan
 territories.KY=\u00celes Ca\u00efmanes
 territories.KW=Kowe\u00eft
 territories.145=Asie occidentale
+territories.143=Asie centrale
 territories.142=Asie
 territories.KR=Cor\u00e9e du Sud
 territories.KP=Cor\u00e9e du Nord
-territories.KN=Saint Kitts et Nevis
+territories.KN=Saint-Christophe-et-Ni\u00e9v\u00e8s
 territories.KM=Comores
 territories.KI=Kiribati
 territories.WS=Samoa
 territories.KH=Cambodge
 territories.KG=Kirghizistan
 territories.KE=Kenya
-territories.WF=Wallis et Futuna
+territories.WF=Wallis-et-Futuna
 territories.JP=Japon
 territories.JO=Jordanie
 territories.JM=Jama\u00efque
 territories.VU=Vanuatu
-territories.VN=Viet Nam
+territories.JE=Jersey
+territories.VN=Vietnam
 territories.VI=\u00celes Vierges des \u00c9tats-Unis
-territories.VG=\u00celes Vierges Britanniques
-territories.VE=V\u00e9n\u00e9zuela
+territories.VG=\u00celes Vierges britanniques
+territories.VE=Venezuela
 territories.VC=Saint-Vincent-et-les Grenadines
-territories.VA=Saint-Si\u00e8ge (Etat de la Cit\u00e9 du Vatican)
+territories.VA=\u00c9tat de la Cit\u00e9 du Vatican
 territories.IT=Italie
 territories.IS=Islande
 territories.IR=Iran
-territories.IQ=Iraq
+territories.IQ=Irak
 territories.UZ=Ouzb\u00e9kistan
-territories.IO=Territoire britannique de l\u2019oc\u00e9an indien
+territories.IO=Territoire britannique de l\u2019oc\u00e9an Indien
 territories.UY=Uruguay
 territories.IN=Inde
+territories.IM=\u00cele de Man
 territories.IL=Isra\u00ebl
 territories.US=\u00c9tats-Unis
 territories.IE=Irlande
 territories.ID=Indon\u00e9sie
-territories.UM=\u00celes Mineures \u00c9loign\u00e9es des \u00c9tats-Unis
+territories.UM=\u00celes mineures \u00e9loign\u00e9es des \u00c9tats-Unis
 territories.UG=Ouganda
 territories.UA=Ukraine
 territories.HU=Hongrie
@@ -555,80 +774,88 @@ territories.HR=Croatie
 territories.TZ=Tanzanie
 territories.HN=Honduras
 territories.HM=\u00celes Heard et MacDonald
-territories.TW=Ta\u00efwan
+territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=Hong-Kong R.A.S. de Chine
+territories.HK=Hong Kong
 territories.TT=Trinit\u00e9-et-Tobago
 territories.TR=Turquie
 territories.TO=Tonga
 territories.TN=Tunisie
-territories.TM=Turkmenistan
-languages.akk=akkadien
+territories.TM=Turkm\u00e9nistan
 languages.gwi=gwich\u02bcin
+languages.akk=akkadien
 languages.eka=ekajuk
+languages.ijo=ijo
 languages.xh=xhosa
 languages.sux=sum\u00e9rien
 languages.sus=soussou
-languages.mis=langues diverses
+languages.mis=langue diverse
 languages.loz=lozi
-languages.tog=tonga (Nyasa)
-languages.pon=pohnpei
+languages.tog=tonga nyasa
+languages.zbl=symboles Bliss
+languages.pon=pohnpe\u00ef
 languages.min=minangkabau
 languages.suk=sukuma
 languages.wo=wolof
-languages.kut=kutenai
 languages.lol=mongo
+languages.kut=kutena\u00ef
 languages.mic=micmac
 languages.wa=wallon
 languages.kum=koumyk
 languages.zap=zapot\u00e8que
-languages.cus=couchitiques (autre)
-languages.doi=dogra
+languages.ain=a\u00efnou
+languages.cus=langue couchitique
 languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zazaki
 languages.vo=volap\u00fck
-languages.oto=langues otomangues
+languages.oto=langue otomangue
 languages.vi=vietnamien
 languages.vai=va\u00ef
-languages.rar=Rarotonga
+languages.rar=rarotongien
 languages.ve=venda
 languages.rap=rapanui
 languages.raj=rajasthani
-languages.ota=turc ottoman (1500-1928)
-languages.nzi=nzema
+languages.ota=turc ottoman
+languages.nzi=nzima
 languages.nap=napolitain
 languages.uz=ouzbek
 languages.uga=ougaritique
 languages.tmh=tamacheq
-languages.nai=indiennes d\u2019Am\u00e9rique du Nord (autre)
+languages.nai=langue am\u00e9rindienne du Nord
 languages.nah=nahuatl
 languages.ur=ourdou
 languages.fat=fanti
 languages.uk=ukrainien
-languages.egy=\u00e9gyptien (ancien)
+languages.egy=\u00e9gyptien ancien
+languages.zxx=(sans contenu linguistique)
 languages.ug=ou\u00efgour
 languages.fan=fang
-languages.ssa=nilo-sahariennes (autre)
-languages.bat=baltique (autre)
-languages.mga=irlandais moyen (900-1200)
+languages.ssa=langue nilo-saharienne
+languages.mga=irlandais moyen
+languages.bat=langue balte
 languages.nyo=nyoro
 languages.bas=bassa
 languages.nyn=nyankol\u00e9
 languages.nym=nyamwezi
+languages.gsw=suisse allemand
 languages.hmn=hmong
-languages.ban=Balinais
+languages.ban=balinais
 languages.osa=osage
 languages.bal=baloutchi
 languages.ty=tahitien
-languages.bai=langues bamilekes
+languages.bai=langue bamil\u00e9k\u00e9e
 languages.tw=twi
 languages.srr=s\u00e9r\u00e8re
 languages.tli=tlingit
+languages.tlh=klingon
 languages.tt=tatar
 languages.ts=tsonga
+languages.srn=sranan tongo
 languages.bad=banda
 languages.tr=turc
-languages.to=tongan (\u00celes Tonga)
-languages.tn=setswana
+languages.to=tongan
+languages.tn=tswana
 languages.tl=tagalog
 languages.tk=turkm\u00e8ne
 languages.ti=tigrigna
@@ -637,172 +864,188 @@ languages.kru=kurukh
 languages.tg=tadjik
 languages.byn=blin
 languages.te=t\u00e9lougou
-languages.csb=cashubian
-languages.kro=kru
+languages.kro=krou
+languages.csb=kachoube
 languages.ta=tamoul
-languages.tkl=tokelau
+languages.krl=car\u00e9lien
+languages.tkl=tokelauan
 languages.efi=efik
 languages.sw=swahili
 languages.sv=su\u00e9dois
 languages.su=soundanais
-languages.krc=karacay-balkar
-languages.st=sotho du Sud
+languages.krc=karatcha\u00ef balkar
+languages.st=sesotho
 languages.ss=swati
 languages.sr=serbe
 languages.sq=albanais
 languages.men=mend\u00e9
-languages.crp=pidgins et langues cr\u00e9oles (autre)
+languages.crp=cr\u00e9ole ou pidgin
 languages.so=somali
 languages.afh=afrihili
 languages.sn=shona
 languages.sm=samoan
 languages.sl=slov\u00e8ne
-languages.grc=vieux grec (avant 1453)
+languages.grc=grec ancien
 languages.sk=slovaque
-languages.grb=grebo
-languages.si=singhalais
+languages.grb=gr\u00e9bo
+languages.si=cinghalais
 languages.sh=serbo-croate
-languages.afa=afro-asiatique (autre)
-languages.crh=turc de Crim\u00e9e; tatar de Crim\u00e9e
-languages.sg=sango
+languages.crh=turc de Crim\u00e9e
+languages.afa=langue afro-asiatique
+languages.sg=sangho
 languages.se=sami du Nord
-languages.sd=sindhi
+languages.sd=sindh\u00ee
 languages.udm=oudmourte
 languages.sc=sarde
 languages.sa=sanskrit
 languages.rw=rwanda
+languages.nwc=newar\u00ee classique
 languages.ru=russe
 languages.mdr=mandar
 languages.ro=roumain
 languages.rn=roundi
 languages.rm=rh\u00e9to-roman
-languages.mdf=moksa
-languages.ady=adygu\u00e9
+languages.fr_CH=fran\u00e7ais suisse
+languages.mdf=mokcha
+languages.tiv=tiv
+languages.fr_CA=fran\u00e7ais canadien
+languages.ady=adygh\u00e9en
 languages.zun=zuni
 languages.kpe=kpell\u00e9
 languages.qu=quechua
 languages.tig=tigr\u00e9
-languages.son=songhai
-languages.cpp=pidgin portugais (autre)
+languages.son=songha\u00ef
+languages.cpp=cr\u00e9ole ou pidgin portugais
+languages.rup=aroumain ; valaque ; mac\u00e9do-roumain
 languages.sog=sogdien
 languages.ada=adangme
-languages.cpf=pidgin fran\u00e7ais (autre)
+languages.kos=kosrae
 languages.hit=hittite
-languages.kos=kusaien
-languages.cpe=pidgin anglais (autre)
+languages.cpf=cr\u00e9ole ou pidgin fran\u00e7ais
+languages.cpe=cr\u00e9ole ou pidgin anglais
 languages.him=himachali
-languages.got=gotique
-languages.hil=hiligaynon
 languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=gotique
 languages.gor=gorontalo
 languages.gon=gondi
 languages.din=dinka
-languages.nub=langues nubiennes
+languages.nub=langue nubienne
 languages.pt=portugais
 languages.ps=pachto
 languages.fur=frioulan
 languages.phn=ph\u00e9nicien
-languages.goh=allemand, vieux haut (ca. 750-1050)
+languages.de_CH=allemand suisse
+languages.goh=allemand ancien
 languages.snk=sonink\u00e9
 languages.cop=copte
 languages.yap=yapois
 languages.ach=acoli
-languages.phi=philippines (autre)
+languages.yao=yao
+languages.phi=langue philippine
 languages.pl=polonais
 languages.ace=aceh
-languages.pi=pali
+languages.pi=p\u00e2li
+languages.pt_PT=portugais ib\u00e9rique
 languages.pa=pendjabi
 languages.bug=bugi
 languages.iba=iban
 languages.sms=sami skolt
-languages.bua=buriat
-languages.mas=masai
+languages.bua=bouriate
+languages.mas=massa\u00ef
 languages.smn=sami d\u2019Inari
 languages.os=oss\u00e8te
 languages.map=malayo-polyn\u00e9sien
 languages.or=oriya
-languages.man=meninka
+languages.man=mandingue
 languages.smj=sami de Lule
-languages.smi=sami (autre)
-languages.mak=makasar
-languages.om=galla
-languages.mai=maithili
+languages.smi=langue samie
+languages.mak=makassar
+languages.om=oromo
+languages.mai=ma\u00efthil\u00ee
 languages.oj=ojibwa
 languages.mag=magahi
 languages.mad=madurais
 languages.sma=sami du Sud
-languages.oc=occitan (apr\u00e8s 1500)
-languages.nso=sotho du Sud     
+languages.oc=occitan
+languages.nso=sotho du Nord
 languages.btk=batak
 languages.myv=erzya
+languages.es_ES=espagnol ib\u00e9rique
+languages.de_AT=allemand autrichien
 languages.dgr=dogrib
 languages.ny=nyanja
-languages.myn=langues maya
+languages.myn=langue maya
 languages.nv=navaho
-languages.kmb=kiMboundou
+languages.kmb=kimboundou
 languages.nr=nd\u00e9b\u00e9l\u00e9 du Sud
-languages.gmh=allemand, moyen haut (ca. 1050-1500)
+languages.gmh=allemand moyen
 languages.no=norv\u00e9gien
-languages.nn=nynorsk norv\u00e9gien
+languages.nn=norv\u00e9gien nynorsk
 languages.nl=n\u00e9erlandais
 languages.root=racine
 languages.ng=ndonga
-languages.sla=slaves (autre)
+languages.sla=langue slave
 languages.ne=n\u00e9palais
 languages.nd=nd\u00e9b\u00e9l\u00e9 du Nord
-languages.cmc=langues chames
-languages.tet=tetum
-languages.nb=bokm\u00e5l norv\u00e9gien
+languages.cmc=langue chame
+languages.tet=t\u00e9toum
+languages.nb=norv\u00e9gien bokm\u00e5l
 languages.na=nauruan
 languages.ter=tereno
 languages.tem=temne
 languages.my=birman
 languages.lez=lezghien
 languages.mt=maltais
-languages.peo=vieux perser (ca. 600-400 av. J.-C.)
+languages.frs=frison oriental
+languages.peo=vieux persan
 languages.ms=malais
+languages.frr=frison du Nord
 languages.mr=marathe
-languages.fro=vieux fran\u00e7ais (842-ca.1400)
+languages.fro=fran\u00e7ais ancien
 languages.mo=moldave
 languages.mn=mongol
-languages.frm=fran\u00e7ais moyen (ca.1400-1600)
+languages.frm=fran\u00e7ais moyen
 languages.ml=malayalam
 languages.jrb=jud\u00e9o-arabe
 languages.mk=mac\u00e9donien
 languages.mi=maori
-languages.mh=marshall
+languages.mh=marshallais
 languages.mg=malgache
-languages.mwr=marwari
+languages.nqo=n\u2019ko
+languages.mwr=marwar\u00ee
 languages.bra=braj
+languages.mwl=mirandais
+languages.den=slavey
 languages.lv=letton
-languages.den=slave (athapascan)
 languages.lu=luba-katanga
-languages.lt=lituanien
 languages.del=delaware
+languages.lt=lituanien
 languages.lo=lao
 languages.ln=lingala
 languages.li=limbourgeois
-languages.ewo=ewondo
+languages.ewo=\u00e9wondo
 languages.lg=ganda
 languages.lb=luxembourgeois
 languages.la=latin
 languages.jpr=jud\u00e9o-persan
 languages.vot=vote
-languages.sit=sino-tib\u00e9taines (autre)
-languages.ky=kirghize
+languages.sit=langue sino-tib\u00e9taine
+languages.ky=kirghiz
 languages.kw=cornique
 languages.kv=komi
 languages.ku=kurde
-languages.sio=langues sioux
-languages.ks=kashmiri
+languages.sio=langue sioux
+languages.ks=cachemiri
 languages.kr=kanouri
 languages.awa=awadhi
 languages.ko=cor\u00e9en
-languages.kn=kannada
+languages.kn=kannara
 languages.km=khmer
+languages.en_GB=anglais britannique
 languages.kl=groenlandais
 languages.kk=kazakh
-languages.rom=tzigane
+languages.rom=tsigane ; romani
 languages.kj=kuanyama
 languages.sid=sidamo
 languages.ki=kikuyu
@@ -810,220 +1053,265 @@ languages.kg=kongo
 languages.non=vieux norrois
 languages.ka=g\u00e9orgien
 languages.mus=creek
-languages.roa=romanes (autre)
-languages.nog=noga\u00ef, nogay
-languages.mun=langues mounda
-languages.mul=langues multiples
+languages.roa=langue romane
+languages.nog=noga\u00ef
+languages.mun=langue mounda
+languages.mul=multilingue
 languages.jv=javanais
-languages.gil=gilbertais
-languages.znd=zande
-languages.shn=chan
+languages.gil=gilbertin
+languages.znd=zand\u00e9
+languages.shn=shan
+languages.fon=fon
 languages.xal=kalmouk
-languages.aus=langues australiennes
+languages.aus=langue australienne
 languages.kho=khotanais
 languages.ja=japonais
-languages.khi=khoisan (autre)
-languages.pau=palau
+languages.khi=langue kho\u00efsan
+languages.pau=palauan
 languages.chy=cheyenne
-languages.tai=tha\u00ef (autre)
+languages.tai=langue ta\u00efe
 languages.iu=inuktitut
 languages.pap=papiamento
 languages.it=italien
-languages.sgn=langues des signes
-languages.kha=khasi
+languages.sgn=langue des signes
 languages.is=islandais
+languages.kha=khasi
 languages.chr=cherokee
-languages.pam=pampanga
+languages.pam=pampangan
 languages.pal=pahlavi
-languages.chp=chippewyan
-languages.cho=choctaw
+languages.chp=chipewyan
 languages.io=ido
+languages.cho=choctaw
 languages.chn=jargon chinook
 languages.chm=mari
 languages.tyv=touva
 languages.bnt=bantou
 languages.pag=pangasinan
-languages.chk=chuuk
 languages.ik=inupiaq
-languages.haw=hawa\u00efen
+languages.chk=chuuk
 languages.ii=yi de Sichuan
+languages.haw=hawa\u00efen
 languages.lam=lamba
-languages.chg=jagataic
 languages.ig=igbo
-languages.sga=irlandais ancien (jusqu\u2019\u00e0 900)
-languages.paa=papoues (autre)
+languages.chg=tchaghata\u00ef ; djaghata\u00ef
+languages.sga=irlandais ancien
+languages.paa=langue papoue
 languages.ie=interlingue
 languages.id=indon\u00e9sien
 languages.lah=lahnda
-languages.chb=chibcha
 languages.day=dayak
+languages.chb=chibcha
 languages.ia=interlingua
 languages.lad=ladino
+languages.hz=herero
+languages.hai=ha\u00efda
 languages.dar=dargwa
-languages.hai=haida
-languages.hz=h\u00e9r\u00e9ro
 languages.hy=arm\u00e9nien
-languages.ath=langues athapascanes
+languages.ath=langue athapascane
 languages.hu=hongrois
 languages.ht=ha\u00eftien
 languages.dak=dakota
 languages.hr=croate
 languages.ho=hiri motu
 languages.hi=hindi
-languages.dyu=dyula
+languages.dyu=dioula
 languages.he=h\u00e9breu
 languages.ast=asturien
+languages.kfo=koro
 languages.ha=haoussa
-languages.wen=langues sorabes
-languages.gv=manx
-languages.gu=goudjrati
-languages.sem=s\u00e9mitiques (autre)
+languages.wen=langue sorabe
+languages.gv=manx ; mannois
+languages.gu=gujarati
+languages.sem=langue s\u00e9mitique
 languages.sel=selkoupe
-languages.iro=langues iroquoiennes
+languages.iro=langue iroquoienne
 languages.gn=guarani
 languages.gl=galicien
+languages.en_CA=anglais canadien
 languages.arw=arawak
-languages.gd=ga\u00e9lique \u00e9cossais
-languages.art=artificielle (autre)
 languages.gez=gu\u00e8ze
-languages.ira=iranien
+languages.art=langue artificielle
+languages.gd=ga\u00e9lique \u00e9cossais
+languages.ira=langue iranienne
 languages.ga=irlandais
 languages.arp=arapaho
 languages.arn=araukan
-languages.fy=frison
-languages.bla=pieds-noirs
-languages.gem=germanique (autre)
-languages.ypk=langues yupik
-languages.fr=fran\u00e7ais
+languages.fy=frison occidental
+languages.bla=siksika
+languages.gem=langue germanique
+languages.ypk=langue yupik
 languages.arc=aram\u00e9en
+languages.fr=fran\u00e7ais
 languages.fo=f\u00e9ro\u00efen
-languages.cel=langue celtique (autre)
+languages.cel=langue celtique
 languages.fj=fidjien
 languages.fi=finnois
 languages.ff=peul
 languages.tvl=tuvalu
 languages.ceb=cebuano
 languages.fa=persan
+languages.en_AU=anglais australien
+languages.zh_Hans=chinois simplifi\u00e9
+languages.zh_Hant=chinois traditionnel
 languages.eu=basque
 languages.sco=\u00e9cossais
 languages.et=estonien
+languages.scn=sicilien
 languages.es=espagnol
 languages.eo=esp\u00e9ranto
 languages.en=anglais
 languages.el=grec
-languages.tut=alta\u00efques (autre)
-languages.niu=niu\u00e9
-languages.tup=langues tupi
+languages.tut=langue alta\u00efque
+languages.niu=niuean
+languages.tup=langue tupi
 languages.ee=\u00e9w\u00e9
 languages.tum=tumbuka
-languages.mos=mossi
+languages.nl_BE=n\u00e9erlandais belge
+languages.es_419=espagnol latino-am\u00e9ricain
+languages.mos=mor\u00e9
 languages.dz=dzongkha
-languages.nic=nig\u00e9ro-congolaise (autre)
-languages.dv=maldivien
-languages.fiu=langue finno-ougrienne (autre)
-languages.lus=lushai
+languages.kcg=tyap
+languages.nic=langue nig\u00e9ro-congolaise
+languages.lus=lusha\u00ef
+languages.fiu=langue finno-ougrienne
+languages.dv=maldivien ; divehi
 languages.nia=nias
 languages.moh=mohawk
+languages.luo=luo
 languages.lun=lunda
-languages.apa=langues apaches
+languages.apa=langue apache
+languages.fil=filipino
 languages.lui=luiseno
 languages.hup=hupa
+languages.cch=atsam
 languages.bin=bini
 languages.de=allemand
 languages.lua=luba-lulua
 languages.bik=bikol
 languages.was=washo
-languages.und=ind\u00e9termin\u00e9e
+languages.und=(langue ind\u00e9termin\u00e9e)
 languages.war=waray
 languages.da=danois
-languages.dum=n\u00e9erlandais moyen (ca. 1050-1350)
+languages.dum=n\u00e9erlandais moyen
 languages.wal=walamo
-languages.mno=langues manobo
-languages.wak=langues wakashennes
+languages.mno=langue manobo
+languages.wak=langue wakashenne
 languages.sat=santal
 languages.cy=gallois
 languages.sas=sasak
+languages.kbd=kabardin
 languages.cv=tchouvache
-languages.kbd=kabardine
 languages.cu=slavon d\u2019\u00e9glise
 languages.mni=manipuri
 languages.cs=tch\u00e8que
-languages.sam=samaritain
+languages.sam=aram\u00e9en samaritain
 languages.cr=cree
-languages.sal=langues salisha
+languages.sal=langue salishenne
 languages.dua=douala
 languages.co=corse
-languages.sai=indiennes d\u2019Am\u00e9rique du Sud (autre)
+languages.sai=langue am\u00e9rindienne du Sud
 languages.mnc=mandchou
 languages.sah=iakoute
-languages.gba=gbaya
-languages.inh=ingouche
 languages.kaw=kawi
+languages.inh=ingouche
+languages.gba=gbaya
 languages.sad=sandawe
 languages.ch=chamorro
+languages.ine=langue indo-europ\u00e9enne
 languages.bho=bhojpuri
-languages.ine=langue indo-europ\u00e9enne (autre)
-languages.enm=anglais moyen (1100-1500)
-languages.ce=tch\u00e9tch\u00e8ne
-languages.inc=langue indo-aryenne (autre)
+languages.enm=anglais moyen
 languages.kar=karen
+languages.inc=langue indo-aryenne
+languages.ce=tch\u00e9tch\u00e8ne
 languages.gay=gayo
 languages.ca=catalan
 languages.umb=umbundu
 languages.syr=syriaque
 languages.kam=kamba
+languages.anp=angika
 languages.tsi=tsimshian
-languages.ang=vieil anglais (ca.450-1100)
-languages.cau=langue caucasienne (autre)
+languages.kaj=jju
+languages.ang=anglo-saxon
 languages.kac=kachin
+languages.cau=langue caucasienne
 languages.kab=kabyle
+languages.kaa=karakalpak
 languages.bs=bosniaque
-languages.kaa=kara-kalpak
-languages.br=breton
 languages.car=caribe
+languages.br=breton
+languages.syc=syriaque classique
 languages.bo=tib\u00e9tain
 languages.bn=bengali
 languages.bm=bambara
 languages.gaa=ga
-languages.bi=bichlamar
-languages.cai=indien d\u2019Am\u00e9rique Centrale (autre)
+languages.cai=langue am\u00e9rindienne centrale
+languages.bi=bichelamar
 languages.bh=bihari
 languages.bg=bulgare
 languages.be=bi\u00e9lorusse
+languages.pt_BR=portugais br\u00e9silien
 languages.cad=caddo
 languages.ba=bachkir
 languages.zu=zoulou
 languages.zen=zenaga
-languages.pro=vieux proven\u00e7al (jusqu\u2019\u00e0 1500)
+languages.pro=vieux proven\u00e7al
 languages.hsb=haut-sorabe
 languages.az=az\u00e9ri
 languages.ay=aymara
 languages.av=avar
 languages.as=assamais
-languages.ar=arabe
 languages.dsb=bas-sorabe
+languages.ar=arabe
+languages.ilo=ilokano
 languages.elx=\u00e9lamite
-languages.ilo=iloko
 languages.zh=chinois
 languages.an=aragonais
-languages.pra=langues pr\u00e2krit
+languages.pra=langue pr\u00e2krit
 languages.am=amharique
 languages.new=newari
 languages.ak=akan
 languages.za=zhuang
+languages.en_US=anglais am\u00e9ricain
 languages.af=afrikaans
 languages.ae=avestique
+languages.alt=alta\u00ef du Sud
 languages.ab=abkhaze
 languages.aa=afar
 languages.yo=yoruba
-languages.alg=langues algiques
+languages.alg=langue algonquienne
 languages.ale=al\u00e9oute
-languages.mkh=mon-khmer (autre)
+languages.mkh=langue mon-khm\u00e8re
 languages.yi=yiddish
-languages.dra=langue dravidienne (autre)
+languages.dra=langue dravidienne
 languages.ber=berb\u00e8re
-languages.nds=bas allemand, bas saxon
+languages.nds=bas allemand
 languages.bem=bemba
 languages.bej=bedja
 languages.tpi=tok pisin
-variants.REVISED=R\u00e9vis\u00e9
+variants.POSIX=informatique
+variants.AREVMDA=arm\u00e9nien occidental
+variants.1996=orthographe allemande de 1996
+variants.SOLBA=dialecte de Stolvizza / Solbica
+variants.NEDIS=dialecte de Natisone
+variants.1994=orthographe normalis\u00e9e de Resia
+variants.1901=orthographe allemande traditionnelle
+variants.FONUPA=alphabet phon\u00e9tique ouralique
+variants.OSOJS=dialecte d\u2019Oseacco / Osojane
+variants.1694ACAD=fran\u00e7ois acad\u00e9mique de 1694
+variants.LIPAW=dialecte lipovaz de Resia
+variants.REVISED=orthographe r\u00e9vis\u00e9e
+variants.NJIVA=dialecte de Gniva / Njiva
+variants.TARASK=orthographe taraskievica
+variants.FONIPA=alphabet phon\u00e9tique international
+variants.BISKE=dialecte de San Giorgio / Bila
+variants.SCOUSE=dialecte scouse
+variants.BAKU1926=alphabet latin alta\u00efque unifi\u00e9
+variants.SAAHO=dialecte saho
+variants.ROZAJ=dialecte de Resia
+variants.MONOTON=monotonique
+variants.POLYTON=polytonique
+variants.AREVELA=arm\u00e9nien oriental
+variants.SCOTLAND=anglais standard \u00e9cossais
+variants.VALENCIA=valencien
+variants.BOONT=dialecte boontling
+variants.1606NICT=fran\u00e7oys de 1606
index 928a89d4de662fbd83a03070b4646ecf010c2d97..9cf97f9521eccc7b2e8b8055165698628488da0f 100644 (file)
@@ -7,5 +7,4 @@
 
 groupingSeparator=.
 shortDateFormat=d/MM/yy
-mediumDateFormat=dd-MMM-yy
-fullTimeFormat=H' h 'mm' min 'ss' s 'z
+fullTimeFormat=H 'h' mm 'min' ss 's' z
index 9b0bb02cf681b8e78898245135e924fb15f6e821..90fb2ed7d843d50a3ad6223424095782933fdbf9 100644 (file)
@@ -5,10 +5,9 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=#,##0.00 \u00a4;(#,##0.00\u00a4)
+currencyFormat=#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)
 currenciesSymbol.CAD=$
 currenciesSymbol.USD=$ US
-firstDayOfWeek=sun
 shortDateFormat=yy-MM-dd
-mediumDateFormat=yy-MM-dd
-fullTimeFormat=HH' h 'mm' min 'ss' s 'z
+mediumDateFormat=yyyy-MM-dd
+fullTimeFormat=HH 'h' mm 'min' ss 's' z
index 6a762c217e74f59eb8e351ffe7df2b5774726fed..df35392641bb7093b0b32a964c919e71872d4f02 100644 (file)
@@ -7,7 +7,7 @@
 
 decimalSeparator=.
 groupingSeparator='
-currencyFormat=\u00a4 #,##0.00;\u00a4-#,##0.00
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4-#,##0.00
 shortDateFormat=dd.MM.yy
 fullDateFormat=EEEE, d MMMM yyyy
-fullTimeFormat=HH.mm:ssh' z
+fullTimeFormat=HH.mm:ss 'h' z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fur.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fur.properties
new file mode 100644 (file)
index 0000000..3e6fa16
--- /dev/null
@@ -0,0 +1,518 @@
+# LocaleInformation_fur.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.CHF=Franc svuizar
+currenciesDisplayName.AUD=Dolar australian
+currenciesDisplayName.DZD=Dinar algerin
+currenciesDisplayName.NAD=Dolar namibian
+currenciesDisplayName.RUB=Rubli rus
+currenciesDisplayName.CZK=Corone de Republiche Ceche
+currenciesDisplayName.SEK=Corone svedese
+currenciesDisplayName.BEF=Franc de Belgjiche
+currenciesDisplayName.HRK=Kuna cravuate
+currenciesDisplayName.PLN=Zloty polac
+currenciesDisplayName.SKK=Corone slovache
+currenciesDisplayName.XXX=Monede no valide o no cognossude
+currenciesDisplayName.HRD=Dinar cravuat
+currenciesDisplayName.BND=Dolar dal Brunei
+currenciesDisplayName.ATS=Selin austriac
+currenciesDisplayName.INR=Rupie indiane
+currenciesDisplayName.NIO=C\u00f3rdoba oro nicaraguan
+currenciesDisplayName.CAD=Dolar canad\u00eas
+currenciesDisplayName.ITL=Lire taliane
+currenciesDisplayName.LVL=Lats leton
+currenciesDisplayName.USD=Dolar american
+currenciesDisplayName.JPY=Yen gjapon\u00eas
+currenciesDisplayName.GBP=Sterline britaniche
+currenciesDisplayName.PKR=Rupie pachistane
+currenciesDisplayName.FRF=Franc franc\u00eas
+currenciesDisplayName.NOK=Corone norvegj\u00ease
+currenciesDisplayName.EUR=Euro
+currenciesDisplayName.CSD=Vieri dinar serp
+currenciesDisplayName.BYR=Rubli bielor\u00f9s
+currenciesDisplayName.ZAR=Rand sudafrican
+currenciesDisplayName.MXN=Peso messican
+currenciesDisplayName.TRY=Lire turche
+currenciesDisplayName.AMD=Dram armen
+currenciesDisplayName.KRW=Won de Coree dal Sud
+currenciesDisplayName.CUP=Peso cuban
+currenciesDisplayName.SIT=Talar sloven
+currenciesDisplayName.RSD=Dinar serp
+currenciesDisplayName.TRL=Viere Lire turche
+currenciesDisplayName.BIF=Franc burund\u00eas
+currenciesDisplayName.BRL=Real brasilian
+currenciesDisplayName.DEM=Marc todesc
+currenciesDisplayName.ARS=Peso argjentin
+currenciesDisplayName.CNY=Yuan Renminbi cin\u00eas
+currenciesDisplayName.DKK=Corone dan\u00eas
+currenciesDisplayName.NZD=Dollar neozeland\u00eas
+currenciesDisplayName.IRR=Rial iranian
+currenciesSymbol.USD=$
+shortMonths=Zen\u00aeFev\u00aeMar\u00aeAvr\u00aeMai\u00aeJug\u00aeLui\u00aeAvo\u00aeSet\u00aeOtu\u00aeNov\u00aeDic\u00ae\u00ae
+months=Zen\u00e2r\u00aeFevr\u00e2r\u00aeMar\u00e7\u00aeAvr\u00eel\u00aeMai\u00aeJugn\u00aeLui\u00aeAvost\u00aeSetembar\u00aeOtubar\u00aeNovembar\u00aeDicembar\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aelun\u00aemar\u00aemie\u00aejoi\u00aevin\u00aesab\u00ae
+weekdays=\u00aedomenie\u00aelunis\u00aemartars\u00aemiercus\u00aejoibe\u00aevinars\u00aesabide\u00ae
+eras=pdC\u00aeddC\u00ae
+ampms=a.\u00aep.\u00ae
+shortDateFormat=d/MM/yy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d 'di' MMMM 'dal' yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00aeOre de Europe orient\u00e2l\u00ae\u00aeOre estive de Europe orient\u00e2l\u00ae\u00ae\u00a9Europe_Western\u00aeOre de Europe ocident\u00e2l\u00ae\u00aeOre estive de Europe ocident\u00e2l\u00ae\u00ae\u00a9Europe_Central\u00aeOre de Europe centr\u00e2l\u00ae\u00aeOre estive de Europe centr\u00e2l\u00ae\u00ae\u00a9
+territories.TL=Timor orient\u00e2l
+territories.TK=Tokelau
+territories.TJ=Tazikistan
+territories.TH=Tailandie
+territories.TG=Togo
+territories.TF=Teritoris meridion\u00e2i franc\u00eas
+territories.GY=Guyana
+territories.TD=\u00c7ad
+territories.TC=Isulis Turks e Caicos
+territories.GW=Guinea-Bissau
+territories.GU=Guam
+territories.GT=Guatemala
+territories.GS=Georgia dal Sud e Isulis Sandwich dal Sud
+territories.GR=Grecie
+territories.GQ=Guinee ecuatori\u00e2l
+territories.GP=Guadalupe
+territories.SZ=Swaziland
+territories.SY=Sirie
+territories.GN=Guinee
+territories.GM=Gambia
+territories.GL=Groenlande
+territories.SV=El Salvador
+territories.ST=Sao Tom\u00e8 e Principe
+territories.GI=Gjibraltar
+territories.061=Polinesie
+territories.GH=Ghana
+territories.SR=Suriname
+territories.GF=Guiana franc\u00eas
+territories.GE=Gjeorgjie
+territories.SO=Somalie
+territories.GD=Grenada
+territories.SN=Senegal
+territories.SM=San Marin
+territories.GB=Ream un\u00eet
+territories.SL=Sierra Leone
+territories.GA=Gabon
+territories.SK=Slovachie
+territories.SJ=Svalbard e Jan Mayen
+territories.SI=Slovenie
+territories.SH=Sante Eline
+territories.SG=Singapore
+territories.SE=Svezie
+territories.SC=Seychelles
+territories.SB=Isulis Salomon
+territories.SA=Arabie Saudide
+territories.FR=France
+territories.FO=Isulis Faroe
+territories.057=Regjon de Micronesie
+territories.FM=Micronesie
+territories.RW=Ruande
+territories.054=Melanesie
+territories.FK=Isulis Falkland
+territories.053=Australie e Gnove Zelande
+territories.RU=Russie
+territories.FJ=Fizi
+territories.FI=Finlandie
+territories.RS=Serbie
+territories.RO=Romanie
+territories.RE=Reunion
+territories.ET=Etiopie
+territories.ES=Spagne
+territories.ER=Eritree
+territories.QU=Union europeane
+territories.EH=Sahara ocident\u00e2l
+territories.EG=Egjit
+territories.EE=Estonie
+territories.QO=Oceanie periferiche
+territories.EC=Ecuador
+territories.DZ=Alzerie
+territories.QA=Qatar
+territories.039=Europe meridion\u00e2l
+territories.DO=Republiche dominicane
+territories.PY=Paraguay
+territories.DM=Dominiche
+territories.035=Asie sud orient\u00e2l
+territories.PW=Palau
+territories.034=Asie meridion\u00e2l
+territories.DK=Danimarcje
+territories.DJ=Gibuti
+territories.PT=Portugal
+territories.PS=Teritori palestin\u00eas
+territories.030=Asie orient\u00e2l
+territories.PR=Porto Rico
+territories.DE=Gjermanie
+territories.PN=Pitcairn
+territories.PM=San Pierre e Miquelon
+territories.PL=Polonie
+territories.PK=Pakistan
+territories.PH=Filipinis
+territories.PG=Papue Gnove Guinee
+territories.PF=Polinesie franc\u00eas
+territories.CZ=Republiche ceche
+territories.PE=Per\u00f9
+territories.CY=Cipri
+territories.CX=Isule Christmas
+territories.CV=Cj\u00e2f vert
+territories.PA=Panam\u00e0
+territories.CU=Cuba
+territories.CS=Serbia e Montenegro
+territories.CR=Costa Rica
+territories.029=caraibic
+territories.CO=Colombie
+territories.CN=Cine
+territories.CM=Camerun
+territories.CL=Cile
+territories.CK=Isulis Cook
+territories.021=Americhe setentrion\u00e2l
+territories.CI=Cueste di Avoli
+territories.CH=Svuizare
+territories.CG=Congo
+territories.CF=Republiche centri africane
+territories.CD=Republiche Democratiche dal Congo
+territories.CC=Isulis Cocos
+territories.OM=Oman
+territories.CA=Canade
+territories.419=Americhe latine e caraibiche
+territories.BZ=Belize
+territories.BY=Bielorussie
+territories.BW=Botswana
+territories.BV=Isule Bouvet
+territories.BT=Bhutan
+territories.BS=Bahamas
+territories.BR=Bras\u00eel
+territories.019=Americhis
+territories.018=Afriche meridion\u00e2l
+territories.NZ=Gnove Zelande
+territories.017=Afriche di mie\u00e7
+territories.BO=Bolivie
+territories.BN=Brunei
+territories.015=Afriche setentrion\u00e2l
+territories.BM=Bermuda
+territories.014=Afriche orient\u00e2l
+territories.BL=Sant Barth\u00e9lemy
+territories.013=Americhe centr\u00e2l
+territories.NU=Niue
+territories.BJ=Benin
+territories.011=Afriche ocident\u00e2l
+territories.BI=Burundi
+territories.172=Commonwealth dai st\u00e2ts indipendents
+territories.BH=Bahrain
+territories.NR=Nauru
+territories.BG=Bulgarie
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Belgjiche
+territories.ZZ=Regjon no cognossude o no valide
+territories.NO=Norvegje
+territories.BD=Bangladesh
+territories.BB=Barbados
+territories.ZW=Zimbabwe
+territories.NL=Pa\u00ees bas
+territories.BA=Bosnie e Ercegovine
+territories.NI=Nicaragua
+territories.NG=Nigerie
+territories.NF=Isole Norfolk
+territories.AZ=Azerbaigian
+territories.NE=Niger
+territories.AX=Isulis Aland
+territories.NC=Gnove Caledonie
+territories.AW=Aruba
+territories.ZM=Zambia
+territories.NA=Namibie
+territories.AU=Australie
+territories.AT=Austrie
+territories.AS=Samoa merecanis
+territories.AR=Argjentine
+territories.AQ=Antartic
+territories.009=Oceanie
+territories.MZ=Mozambic
+territories.AO=Angola
+territories.MY=Malaysia
+territories.AN=Antilis olandesis
+territories.MX=Messic
+territories.AM=Armenie
+territories.005=Americhe meridion\u00e2l
+territories.MW=Malawi
+territories.AL=Albanie
+territories.MV=Maldivis
+territories.003=Americhe dal Nord
+territories.ZA=Sud Afriche
+territories.MU=Maurizi
+territories.002=Afriche
+territories.MT=Malta
+territories.AI=Anguilla
+territories.001=Mont
+territories.MS=Montserrat
+territories.MR=Mauritanie
+territories.AG=Antigua e Barbuda
+territories.MQ=Martiniche
+territories.AF=Afghanistan
+territories.MP=Isulis Mariana dal Nord
+territories.AE=Emir\u00e2ts araps un\u00eets
+territories.MO=Regjon aministrative speci\u00e2l de Cine di Macao
+territories.AD=Andorra
+territories.MN=Mongolie
+territories.MM=Birmanie
+territories.ML=Mali
+territories.MK=Macedonie
+territories.YT=Mayotte
+territories.MH=Isulis Marshall
+territories.MG=Madagascar
+territories.MF=Sant Martin
+territories.MD=Moldavie
+territories.MC=Monaco
+territories.MA=Maroc
+territories.YE=Yemen
+territories.LY=Libie
+territories.LV=Letonie
+territories.155=Europe ocident\u00e2l
+territories.LU=Lussemburc
+territories.154=Europe setentrion\u00e2l
+territories.LT=Lituanie
+territories.LS=Lesotho
+territories.LR=Liberie
+territories.151=Europe orient\u00e2l
+territories.150=Europe
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Sante Lusie
+territories.LB=Liban
+territories.LA=Laos
+territories.KZ=Kazachistan
+territories.KY=Isulis Cayman
+territories.KW=Kuwait
+territories.145=Asie ocident\u00e2l
+territories.143=Asie centr\u00e2l
+territories.142=Asie
+territories.KR=Coree dal sud
+territories.KP=Coree dal nord
+territories.KN=San Kitts e Nevis
+territories.KM=Comoris
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Camboze
+territories.KG=Kirghizstan
+territories.KE=Kenya
+territories.WF=Wallis e Futuna
+territories.JP=Gjapon
+territories.JO=Jordanie
+territories.JM=Gjamaiche
+territories.VU=Vanuatu
+territories.VN=Vietnam
+territories.VI=Isulis vergjinis americanis
+territories.VG=Isulis vergjinis britanichis
+territories.VE=Venezuela
+territories.VC=San Vincent e lis Grenadinis
+territories.VA=Vatican
+territories.IT=Italie
+territories.IS=Islande
+territories.IR=Iran
+territories.IQ=Iraq
+territories.UZ=Uzbechistan
+territories.IO=Teritori britanic dal Ocean Indian
+territories.UY=Uruguay
+territories.IN=India
+territories.IM=Isule di Man
+territories.IL=Isra\u00eal
+territories.US=St\u00e2ts Un\u00eets
+territories.IE=Irlande
+territories.ID=Indonesie
+territories.UM=Isulis periferichis min\u00f4rs dai St\u00e2ts Un\u00eets
+territories.UG=Uganda
+territories.UA=Ucraine
+territories.HU=Ongjarie
+territories.HT=Haiti
+territories.HR=Cravuazie
+territories.TZ=Tanzanie
+territories.HN=Honduras
+territories.HM=Isule Heard e Isulis McDonald
+territories.TW=Taiwan
+territories.TV=Tuvalu
+territories.HK=Regjon aministrative speci\u00e2l de Cine di Hong Kong
+territories.TT=Trinidad e Tobago
+territories.TR=Turchie
+territories.TO=Tonga
+territories.TN=Tunisie
+territories.TM=Turkmenistan
+languages.ast=asturian
+languages.lb=lussemburgh\u00eas
+languages.la=latin
+languages.kw=cornuali\u00eas
+languages.ku=curd
+languages.ko=corean
+languages.kn=kannada
+languages.km=khmer
+languages.kl=kalaallisut
+languages.kk=kazac
+languages.grc=vieri gr\u00eac
+languages.ka=gjeorgjian
+languages.gem=lenghe gjermaniche
+languages.wa=valon
+languages.arc=aramaic
+languages.cel=lenghe celtiche
+languages.sco=scoz\u00eas
+languages.scn=sicilian
+languages.ja=gjapon\u00eas
+languages.vi=vietnamite
+languages.iu=inuktitut
+languages.it=talian
+languages.is=island\u00eas
+languages.uz=uzbec
+languages.io=ido
+languages.ik=inupiaq
+languages.ur=urdu
+languages.id=indonesian
+languages.uk=ucrain
+languages.und=indeterminade
+languages.hy=armen
+languages.got=gotic
+languages.hu=ongjar\u00eas
+languages.ht=haitian
+languages.hr=cravuat
+languages.ty=tahitian
+languages.apa=lenghe Apache
+languages.fur=furlan
+languages.tt=tartar
+languages.hi=hindi
+languages.tr=turc
+languages.cop=coptic
+languages.he=ebraic
+languages.tl=tagalog
+languages.th=thai
+languages.tg=tagic
+languages.te=telegu
+languages.gv=manx
+languages.ta=tamil
+languages.map=austronesian
+languages.sw=swahili
+languages.gl=galizian
+languages.sv=sved\u00eas
+languages.sr=serp
+languages.sq=alban\u00eas
+languages.so=somal
+languages.gd=gaelic scoz\u00eas
+languages.sm=samoan
+languages.sl=sloven
+languages.ga=gaelic irland\u00eas
+languages.sk=slovac
+languages.si=sinal\u00eas
+languages.myn=lenghis Maya
+languages.se=sami setentrion\u00e2l
+languages.fy=frisian
+languages.sd=sindhi
+languages.sc=sardegn\u00fbl
+languages.sa=sanscrit
+languages.ang=vieri ingl\u00eas
+languages.fr=franc\u00eas
+languages.sla=lenghe sclave
+languages.fo=faro\u00eas
+languages.pro=vieri provenz\u00e2l
+languages.tet=tetum
+languages.ru=rus
+languages.fj=fizian
+languages.fi=finland\u00eas
+languages.ff=fulah
+languages.ro=romen
+languages.rm=ruman\u00e7
+languages.fa=persian
+languages.peo=vieri persian
+languages.eu=basc
+languages.et=eston
+languages.es=spagn\u00fbl
+languages.eo=esperanto
+languages.en=ingl\u00eas
+languages.el=gr\u00eac
+languages.qu=quechua
+languages.fro=vieri franc\u00eas
+languages.mwl=mirand\u00eas
+languages.nds=bas todesc
+languages.den=scl\u00e2f
+languages.pt=portugh\u00eas
+languages.pt_BR=portugh\u00eas brasilian
+languages.ps=pashto
+languages.de=todesc
+languages.pl=polac
+languages.da=dan\u00eas
+languages.sux=sumeric
+languages.cy=gal\u00eas
+languages.pa=punjabi
+languages.cu=scl\u00e2f de glesie
+languages.cs=cec
+languages.cr=cree
+languages.co=cors
+languages.mis=lenghis variis
+languages.os=osetic
+languages.ch=chamorro
+languages.roa=lenghe romanze
+languages.ce=cecen
+languages.non=vieri norvegj\u00eas
+languages.ca=catalan
+languages.mul=lenghis multiplis
+languages.oc=ocitan
+languages.bs=bosniac
+languages.br=breton
+languages.bo=tibetan
+languages.zh_Hans=cin\u00eas semplific\u00e2t
+languages.bn=bengal\u00eas
+languages.zh_Hant=cin\u00eas tradizion\u00e2l
+languages.nv=navajo
+languages.bg=bulgar
+languages.be=bielor\u00f9s
+languages.no=norvegj\u00eas
+languages.nn=norvegj\u00eas nynorsk
+languages.nl=oland\u00eas
+languages.zu=zulu
+languages.az=azerbaijani
+languages.pap=papiamento
+languages.ne=nepal\u00eas
+languages.ay=aymar\u00e0
+languages.nb=norvegj\u00eas bokm\u00e5l
+languages.av=avar
+languages.ota=turc otoman
+languages.aus=lenghis australianis
+languages.as=assam\u00eas
+languages.nap=napoletan
+languages.ar=arap
+languages.zh=cin\u00eas
+languages.sga=vieri irland\u00eas
+languages.an=aragon\u00eas
+languages.am=amaric
+languages.mt=malt\u00eas
+languages.ms=mal\u00eas
+languages.mr=marathi
+languages.af=afrikaans
+languages.ae=avestan
+languages.mo=mold\u00e2f
+languages.mn=mongul
+languages.ml=malayalam
+languages.aa=afar
+languages.mk=macedon
+languages.lad=ladin
+languages.mi=maori
+languages.egy=vieri egjizian
+languages.yi=yiddish
+languages.lv=leton
+languages.lt=lituan
+languages.ln=lingala
+languages.li=limburgh\u00eas
+variants.1901=Ortografie todescje tradizion\u00e2l
+variants.1996=Ortografie todescje dal 1996
+variants.POLYTON=Politoniche
+variants.ROZAJ=Resian
+variants.1994=Ortografie resiane standard
+variants.NEDIS=Dialet des valadis dal Nadison
+variants.REVISED=Ortografie revisade
index 675a84db61cce1e4630e528fa23024ec48725824..b41146d45af9746e433c46d1f890e48a7a8ce39d 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-localPatternChars=RbMLkUnsSElFtTauKcBeyrAC
+decimalSeparator=.
+groupingSeparator=,
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+localPatternChars=RbMLkUnsSElFtTauKcBeyrACvdz
 currenciesDisplayName.YDD=D\u00ednear \u00c9imin
-currenciesDisplayName.TWD=Dollar Nua na T\u00e9av\u00e1ine
 currenciesDisplayName.KES=Scilling C\u00e9iniach
-currenciesDisplayName.BYB=R\u00fabal Nua B\u00e9alar\u00faiseach (1994-1999)
+currenciesDisplayName.TWD=Dollar Nua na T\u00e9av\u00e1ine
 currenciesDisplayName.LKR=R\u00faip\u00ed Sr\u00ed Lanca
-currenciesDisplayName.RWF=Franc Ruanda
+currenciesDisplayName.BYB=R\u00fabal Nua B\u00e9alar\u00faiseach (1994-1999)
 currenciesDisplayName.TJS=Somoni na T\u00e1ids\u00edceast\u00e1ine
-currenciesDisplayName.SDP=Punt na S\u00fad\u00e1ine
+currenciesDisplayName.RWF=Franc Ruanda
 currenciesDisplayName.TJR=R\u00fabal na T\u00e1ids\u00edceast\u00e1ine
-currenciesDisplayName.AFN=Afgain\u00ed
+currenciesDisplayName.SDP=Punt na S\u00fad\u00e1ine
 currenciesDisplayName.GRD=Drachma Gr\u00e9agach
+currenciesDisplayName.AFN=Afgain\u00ed
 currenciesDisplayName.IEP=Punt \u00c9ireannach
 currenciesDisplayName.ARS=Peso na Airgint\u00edne
-currenciesDisplayName.SDD=D\u00ednear na S\u00fad\u00e1ine
 currenciesDisplayName.ARP=Peso na Airgint\u00edne (1983-1985)
+currenciesDisplayName.SDD=D\u00ednear na S\u00fad\u00e1ine
 currenciesDisplayName.GEL=Lari na Gr\u00faise
-currenciesDisplayName.AFA=Afgain\u00ed (1927-2002)
 currenciesDisplayName.GEK=Kupon Larit na Gr\u00faise
+currenciesDisplayName.AFA=Afgain\u00ed (1927-2002)
 currenciesDisplayName.CRC=Colon Ch\u00f3sta R\u00edce
 currenciesDisplayName.FKP=Punt Oile\u00e1in Fh\u00e1clainne
 currenciesDisplayName.EEK=Kroon na hEast\u00f3ine
-currenciesDisplayName.HKD=Dollar Hong Cong
 currenciesDisplayName.MDL=Leu Mold\u00f3vach
-currenciesDisplayName.ARA=Austral Airgint\u00edneach
+currenciesDisplayName.HKD=Dollar Hong Cong
 currenciesDisplayName.IQD=D\u00ednear Ir\u00e1cach
+currenciesDisplayName.ARA=Austral Airgint\u00edneach
 currenciesDisplayName.SCR=R\u00faip\u00ed na S\u00e9is\u00e9il
 currenciesDisplayName.VUV=Vatu Vanuat\u00fa
-currenciesDisplayName.DKK=Krone Danmhargach
 currenciesDisplayName.KPW=Won na C\u00f3ir\u00e9 Thuaidh
-currenciesDisplayName.GQE=Ekwele Guineana na Guine Me\u00e1nchriosa\u00ed
+currenciesDisplayName.DKK=Krone Danmhargach
 currenciesDisplayName.IDR=Rupiah Indin\u00e9iseach
-currenciesDisplayName.LVR=R\u00fabal Laitviach
+currenciesDisplayName.GQE=Ekwele Guineana na Guine Me\u00e1nchriosa\u00ed
 currenciesDisplayName.SOS=Scilling na S\u00f3m\u00e1ile
+currenciesDisplayName.LVR=R\u00fabal Laitviach
 currenciesDisplayName.AED=Dirham Aontas na n\u00c9im\u00edr\u00edochta\u00ed Arabacha
-currenciesDisplayName.BWP=Pula Botsu\u00e1nach
 currenciesDisplayName.LVL=Lats Laitviach
+currenciesDisplayName.BWP=Pula Botsu\u00e1nach
 currenciesDisplayName.RUR=R\u00fabal R\u00faiseach (1991-1998)
 currenciesDisplayName.NIO=Cordoba Oro Nicearagua
-currenciesDisplayName.ADP=Peseta And\u00f3ra
-currenciesDisplayName.FJD=Dollar Fhids\u00ed
 currenciesDisplayName.MOP=Pataca Macao
+currenciesDisplayName.FJD=Dollar Fhids\u00ed
+currenciesDisplayName.ADP=Peseta And\u00f3ra
 currenciesDisplayName.RUB=R\u00fabal R\u00faiseach
 currenciesDisplayName.CDF=Franc Congolais an Chong\u00f3
 currenciesDisplayName.NIC=Cordoba Nicearagua
 currenciesDisplayName.DJF=Franc Djibouti
-currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) Eacuad\u00f3ir
-currenciesDisplayName.SBD=Dollar Oile\u00e1in Solomon
 currenciesDisplayName.UZS=Sum na h\u00daisb\u00e9iceast\u00e1ine
+currenciesDisplayName.SBD=Dollar Oile\u00e1in Solomon
+currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) Eacuad\u00f3ir
 currenciesDisplayName.ECS=Sucre Eacuad\u00f3ir
-currenciesDisplayName.PHP=Peso Filip\u00edneach
 currenciesDisplayName.THB=Baht na T\u00e9alainne
+currenciesDisplayName.PHP=Peso Filip\u00edneach
 currenciesDisplayName.LUF=Franc Lucsamburg
 currenciesDisplayName.FIM=Markka Fionnlannach
 currenciesDisplayName.TTD=Dollar Oile\u00e1in na Tr\u00edon\u00f3ide agus Tob\u00e1ga
 currenciesDisplayName.SZL=Lilangeni na Suasalainne
 currenciesDisplayName.MNT=Tugrik Mong\u00f3lach
-currenciesDisplayName.SAR=Riyal S\u00e1dach
 currenciesDisplayName.UAK=Karbovanetz \u00dacr\u00e1nach
+currenciesDisplayName.SAR=Riyal S\u00e1dach
 currenciesDisplayName.UAH=Hryvnia \u00dacr\u00e1nach
 currenciesDisplayName.HUF=Forint Ung\u00e1rach
-currenciesDisplayName.COP=Peso na Col\u00f3ime
 currenciesDisplayName.QAR=Rial Catarach
+currenciesDisplayName.COP=Peso na Col\u00f3ime
 currenciesDisplayName.LTT=Talonas Liotu\u00e1nach
 currenciesDisplayName.PTE=Escudo Portaing\u00e9lach
-currenciesDisplayName.AOR=Kwanza Reajustado Ang\u00f3lach (1995-1999)
 currenciesDisplayName.UYU=Peso Uruguayo Uragua
+currenciesDisplayName.AOR=Kwanza Reajustado Ang\u00f3lach (1995-1999)
 currenciesDisplayName.GBP=Punt Steirling
-currenciesDisplayName.BIF=Franc na Bur\u00faine
-currenciesDisplayName.INR=R\u00faip\u00ed India
 currenciesDisplayName.ZRZ=Zaire S\u00e1\u00edreach
-currenciesDisplayName.AON=Kwanza Nua Ang\u00f3lach (1990-2000)
-currenciesDisplayName.LTL=Lita Liotu\u00e1nach
+currenciesDisplayName.INR=R\u00faip\u00ed India
+currenciesDisplayName.BIF=Franc na Bur\u00faine
 currenciesDisplayName.XFU=UIC-Franc Francach
-currenciesDisplayName.KZT=Tenge Casacst\u00e1nach
-currenciesDisplayName.MZM=Metical M\u00f3saimb\u00edce
+currenciesDisplayName.LTL=Lita Liotu\u00e1nach
+currenciesDisplayName.AON=Kwanza Nua Ang\u00f3lach (1990-2000)
 currenciesDisplayName.UYP=Peso Uragua (1975-1993)
+currenciesDisplayName.MZM=Metical M\u00f3saimb\u00edce
+currenciesDisplayName.KZT=Tenge Casacst\u00e1nach
 currenciesDisplayName.AOK=Kwanza Ang\u00f3lach (1977-1990)
-currenciesDisplayName.BUK=Kyat Burmach
 currenciesDisplayName.GNS=Syli Guine
+currenciesDisplayName.BUK=Kyat Burmach
 currenciesDisplayName.XFO=Franc \u00d3r Francach
 currenciesDisplayName.PGK=Kina Nua-Ghuine Phapua
 currenciesDisplayName.SYP=Punt Siria
-currenciesDisplayName.MZE=Escudo M\u00f3saimb\u00edce
 currenciesDisplayName.OMR=Rial Omain
-currenciesDisplayName.NGN=Naira N\u00edg\u00e9arach
+currenciesDisplayName.MZE=Escudo M\u00f3saimb\u00edce
 currenciesDisplayName.ZRN=Zaire Nua S\u00e1\u00edreach
-currenciesDisplayName.AOA=Kwanza Ang\u00f3lach
+currenciesDisplayName.NGN=Naira N\u00edg\u00e9arach
 currenciesDisplayName.CNY=Yuan Renminbi S\u00edneach
+currenciesDisplayName.AOA=Kwanza Ang\u00f3lach
 currenciesDisplayName.MAF=Franc Mharac\u00f3
 currenciesDisplayName.GNF=Franc Guine
-currenciesDisplayName.HTG=Gourde H\u00e1it\u00ed
 currenciesDisplayName.MAD=Dirham Mharac\u00f3
+currenciesDisplayName.HTG=Gourde H\u00e1it\u00ed
 currenciesDisplayName.MMK=Kyat Mhaenmar
 currenciesDisplayName.MYR=Ringgit Malaeisia
-currenciesDisplayName.LSL=Loti Leos\u00f3ta
 currenciesDisplayName.XEU=Aonad Airgeadra Eorpach
-currenciesDisplayName.BHD=D\u00ednear na Bair\u00e9ine
+currenciesDisplayName.LSL=Loti Leos\u00f3ta
 currenciesDisplayName.SLL=Leone Shiarra Leon
+currenciesDisplayName.BHD=D\u00ednear na Bair\u00e9ine
 currenciesDisplayName.BTN=Ngultrum B\u00fat\u00e1nach
 currenciesDisplayName.TRL=Lira Turcach
 currenciesDisplayName.KMF=Franc Chom\u00f3ra
-currenciesDisplayName.ANG=Guilder na nAntill\u00ed \u00cdsilt\u00edreach
 currenciesDisplayName.CZK=Koruna Phoblacht na Seice
+currenciesDisplayName.ANG=Guilder na nAntill\u00ed \u00cdsilt\u00edreach
 currenciesDisplayName.AZM=Manat Asarbaise\u00e1nach
 currenciesDisplayName.KYD=Dollar Oile\u00e1in Cayman
 currenciesDisplayName.GMD=Dalasi Gaimbia
 currenciesDisplayName.BGN=Lev Nua Bulg\u00e1rach
-currenciesDisplayName.CAD=Dollar Ceanada
 currenciesDisplayName.MXV=Unidad de Inversion (UDI) Meicsiceo
+currenciesDisplayName.CAD=Dollar Ceanada
 currenciesDisplayName.BGL=Lev Bulg\u00e1rach Crua
 currenciesDisplayName.VEB=Bolivar Veinis\u00e9ala
 currenciesDisplayName.MLF=Franc Mhail\u00ed
-currenciesDisplayName.ILS=Sheqel Nua Iosraelach
 currenciesDisplayName.MXP=Peso Airgid Meicsiceo (1861-1992)
+currenciesDisplayName.ILS=Sheqel Nua Iosraelach
 currenciesDisplayName.PES=Sol Pheiri\u00fa
-currenciesDisplayName.GYD=Dollar na Gu\u00e1ine
 currenciesDisplayName.MXN=Peso Meicsiceo
+currenciesDisplayName.GYD=Dollar na Gu\u00e1ine
 currenciesDisplayName.ILP=Punt Iosraelach
-currenciesDisplayName.SKK=Koruna na Sl\u00f3vaice
 currenciesDisplayName.CYP=Punt na Cipire
+currenciesDisplayName.SKK=Koruna na Sl\u00f3vaice
 currenciesDisplayName.XDR=Cearta Speisialta Tarraingthe
 currenciesDisplayName.PEN=Sol Nuevo Pheiri\u00fa
 currenciesDisplayName.LRD=Dollar na Lib\u00e9ire
@@ -133,15 +136,15 @@ currenciesDisplayName.PEI=Inti Pheiri\u00fa
 currenciesDisplayName.AMD=Dram Airm\u00e9anach
 currenciesDisplayName.BSD=Dollar na mBah\u00e1ma\u00ed
 currenciesDisplayName.HRK=Kuna Cr\u00f3tach
-currenciesDisplayName.CLP=Peso na Sile
 currenciesDisplayName.HRD=D\u00ednear na Cr\u00f3ite
+currenciesDisplayName.CLP=Peso na Sile
 currenciesDisplayName.XPF=CFP Franc
 currenciesDisplayName.FRF=Franc Francach
 currenciesDisplayName.BRR=Cruzeiro Brasa\u00edleach
 currenciesDisplayName.MKD=Denar na Macad\u00f3ine
 currenciesDisplayName.CLF=Unidades de Fomento na Sile
-currenciesDisplayName.ALL=Lek Alb\u00e1nach
 currenciesDisplayName.BRN=Cruzado Novo Brasa\u00edleach
+currenciesDisplayName.ALL=Lek Alb\u00e1nach
 currenciesDisplayName.MWK=Kwacha na Mal\u00e1ive
 currenciesDisplayName.BRL=Real Brasa\u00edleach
 currenciesDisplayName.TPE=Escudo T\u00edom\u00f3ir
@@ -161,15 +164,15 @@ currenciesDisplayName.SIT=Tolar Sl\u00f3v\u00e9nach
 currenciesDisplayName.JPY=Yen Seap\u00e1nach
 currenciesDisplayName.XOF=CFA Franc BCEAO
 currenciesDisplayName.MVR=Maldive Islands Rufiyaa
-currenciesDisplayName.GWE=Escudo na Guine Portaing\u00e9ala\u00ed
 currenciesDisplayName.BEF=Franc Beilgeach
+currenciesDisplayName.GWE=Escudo na Guine Portaing\u00e9ala\u00ed
 currenciesDisplayName.TOP=Pa\u02bbanga Tonga
 currenciesDisplayName.YUD=D\u00ednear Crua I\u00fagslavach
 currenciesDisplayName.BEC=Franc Beilgeach (inathraithe)
 currenciesDisplayName.SUR=R\u00fabal S\u00f3v\u00e9adach
 currenciesDisplayName.ROL=Leu R\u00f3m\u00e1nach
-currenciesDisplayName.DDM=Ostmark na hOirGhearm\u00e1ine
 currenciesDisplayName.BDT=Taka Bhanglaid\u00e9iseach
+currenciesDisplayName.DDM=Ostmark na hOirGhearm\u00e1ine
 currenciesDisplayName.XBD=Aonad Cuntais Eorpach (XBD)
 currenciesDisplayName.AWG=Guilder Aruba
 currenciesDisplayName.XBC=Aonad Cuntais Eorpach (XBC)
@@ -195,32 +198,33 @@ currenciesDisplayName.UGS=Scilling Uganda (1966-1987)
 currenciesDisplayName.STD=Dobra Sao Tome agus Principe
 currenciesDisplayName.WST=Tala Sam\u00f3 Thiar
 currenciesDisplayName.KHR=Riel na Camb\u00f3ide
-currenciesDisplayName.EUR=Euro
 currenciesDisplayName.DOP=Peso Doimineacach
+currenciesDisplayName.EUR=Euro
 currenciesDisplayName.BOV=Mvdol Bolavach
 currenciesDisplayName.MTP=Punt Maltach
 currenciesDisplayName.USS=Dollar S.A.M. (an la c\u00e9anna)
 currenciesDisplayName.BOP=Peso na Bolaive
-currenciesDisplayName.MTL=Lira Maltach
 currenciesDisplayName.CUP=Peso C\u00faba
+currenciesDisplayName.MTL=Lira Maltach
 currenciesDisplayName.TMM=Manat na An Tuircm\u00e9anast\u00e1ine
 currenciesDisplayName.USN=Dollar S.A.M. (an ch\u00e9ad l\u00e1 eile)
 currenciesDisplayName.SGD=Dollar Singeap\u00f3ir
 currenciesDisplayName.NZD=Dollar na Nua-Sh\u00e9alainne
 currenciesDisplayName.USD=Dollar S.A.M.
-currenciesDisplayName.HNL=Lempira Hond\u00farais
 currenciesDisplayName.BOB=Boliviano
+currenciesDisplayName.HNL=Lempira Hond\u00farais
 currenciesDisplayName.ITL=Lira Iod\u00e1lach
 currenciesDisplayName.PAB=Balboa Panamach
 currenciesDisplayName.GTQ=Quetzal Guatamala
-currenciesDisplayName.LAK=Kip Laosach
-currenciesDisplayName.GHC=Cedi Gh\u00e1na
+currenciesDisplayName.XXX=Airgeadra Anaithnid n\u00f3 Neamhbhail\u00ed
 currenciesDisplayName.AUD=Dollar Astr\u00e1lach
+currenciesDisplayName.GHC=Cedi Gh\u00e1na
+currenciesDisplayName.LAK=Kip Laosach
 currenciesDisplayName.NAD=Dollar na Namaibe
 currenciesDisplayName.KGS=Som na Cirgeast\u00e1ine
 currenciesDisplayName.MGF=Franc Madagascar
-currenciesDisplayName.CHF=Franc na hEilv\u00e9ise
 currenciesDisplayName.BBD=Dollar Bharbad\u00f3is
+currenciesDisplayName.CHF=Franc na hEilv\u00e9ise
 currenciesDisplayName.MGA=Ariary Madagascar
 currenciesDisplayName.PYG=Guarani Pharagua
 currenciesDisplayName.PLZ=Zloty Polannach (1950-1995)
@@ -228,15 +232,15 @@ currenciesDisplayName.YER=Rial \u00c9imin
 currenciesDisplayName.ATS=Scilling Ostarach
 currenciesDisplayName.ETB=Birr na hAet\u00f3ipe
 currenciesDisplayName.BND=Dollar Bhr\u00fain\u00e9
-currenciesDisplayName.JMD=Dollar Iam\u00e1cach
 currenciesDisplayName.EGP=Punt na h\u00c9igipte
+currenciesDisplayName.JMD=Dollar Iam\u00e1cach
 currenciesDisplayName.PLN=Zloty Polannach
 currenciesDisplayName.DZD=D\u00ednear na hAilg\u00e9ire
 currenciesDisplayName.ISK=Krona \u00cdoslannach
 currenciesDisplayName.SRG=Guilder Shuranaim
 currenciesDisplayName.LYD=D\u00ednear Libia
-currenciesDisplayName.BZD=Dollar na Beil\u00edse
 currenciesDisplayName.BAM=Marc Inathraithe Bhoisnia-Heirseagaiv\u00e9in
+currenciesDisplayName.BZD=Dollar na Beil\u00edse
 currenciesDisplayName.ESP=Peseta Sp\u00e1inneach
 currenciesDisplayName.KRW=Won na C\u00f3ir\u00e9 Theas
 currenciesDisplayName.NLG=Guilder \u00cdsilt\u00edreach
@@ -249,32 +253,31 @@ currenciesDisplayName.BYR=R\u00fabal B\u00e9alar\u00faiseach
 currenciesDisplayName.IRR=Rial Iar\u00e1nach
 currenciesDisplayName.PKR=R\u00faip\u00ed na Pacast\u00e1ine
 currenciesDisplayName.BMD=Dollar Bheirmi\u00fada
-currenciesSymbol.BGL=lev
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
+currenciesSymbol.IEP=\u00a3
 currenciesSymbol.SCR=SR
-currenciesSymbol.IEP=IR\u00a3
 currenciesSymbol.AMD=dram
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
@@ -292,25 +295,25 @@ currenciesSymbol.FJD=F$
 currenciesSymbol.UYU=Ur$
 currenciesSymbol.BDT=Tk
 currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
 currenciesSymbol.DJF=DF
 currenciesSymbol.JOD=JD
 currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
 currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.DOP=RD$
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -319,8 +322,8 @@ currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
 currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.BOB=Bs
 currenciesSymbol.CNY=Y
@@ -334,10 +337,10 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.ANG=A\u00cd f.
@@ -346,19 +349,27 @@ currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=Ean®Feabh®M\u00e1rta®Aib®Beal®Meith®I\u00fail®L\u00fan®MF\u00f3mh®DF\u00f3mh®Samh®Noll®®
-months=Ean\u00e1ir®Feabhra®M\u00e1rta®Aibre\u00e1n®Bealtaine®Meitheamh®I\u00fail®L\u00fanasa®Me\u00e1n F\u00f3mhair®Deireadh F\u00f3mhair®Samhain®Nollaig®®
-shortWeekdays=®Domh®Luan®M\u00e1irt®C\u00e9ad®D\u00e9ar®Aoine®Sath®
-weekdays=®D\u00e9 Domhnaigh®D\u00e9 Luain®D\u00e9 M\u00e1irt®D\u00e9 C\u00e9adaoin®D\u00e9ardaoin®D\u00e9 hAoine®D\u00e9 Sathairn®
-eras=RC®AD®
-ampms=a.m.®p.m.®
-zoneStrings=Europe/Dublin®MAG®Me\u00e1n-Am Greenwich®AS\u00c9®Am Samhraidh na h\u00c9ireann®©Europe/Belfast®MAG®Me\u00e1n-Am Greenwich®ASB®Am Samhraidh na Breataine®©Europe/London®MAG®Me\u00e1n-Am Greenwich®ASB®Am Samhraidh na Breataine®©
-territories.TL=T\u00edom\u00f3r-Leste
+shortMonths=Ean\u00aeFeabh\u00aeM\u00e1rta\u00aeAib\u00aeBeal\u00aeMeith\u00aeI\u00fail\u00aeL\u00fan\u00aeMF\u00f3mh\u00aeDF\u00f3mh\u00aeSamh\u00aeNoll\u00ae\u00ae
+months=Ean\u00e1ir\u00aeFeabhra\u00aeM\u00e1rta\u00aeAibre\u00e1n\u00aeBealtaine\u00aeMeitheamh\u00aeI\u00fail\u00aeL\u00fanasa\u00aeMe\u00e1n F\u00f3mhair\u00aeDeireadh F\u00f3mhair\u00aeSamhain\u00aeNollaig\u00ae\u00ae
+shortWeekdays=\u00aeDomh\u00aeLuan\u00aeM\u00e1irt\u00aeC\u00e9ad\u00aeD\u00e9ar\u00aeAoine\u00aeSath\u00ae
+weekdays=\u00aeD\u00e9 Domhnaigh\u00aeD\u00e9 Luain\u00aeD\u00e9 M\u00e1irt\u00aeD\u00e9 C\u00e9adaoin\u00aeD\u00e9ardaoin\u00aeD\u00e9 hAoine\u00aeD\u00e9 Sathairn\u00ae
+eras=RC\u00aeAD\u00ae
+ampms=a.m.\u00aep.m.\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe/Dublin\u00ae\u00ae\u00aeAm Samhraidh na h\u00c9ireann\u00aeAS\u00c9\u00ae\u00a9GMT\u00aeMe\u00e1n-Am Greenwich\u00aeMAG\u00ae\u00ae\u00ae\u00a9Europe/London\u00ae\u00ae\u00aeAm Samhraidh na Breataine\u00aeASB\u00ae\u00a9
+territories.TL=T\u00edom\u00f3r Thoir
 territories.TK=T\u00f3cal\u00e1
 territories.TJ=An T\u00e1ids\u00edceast\u00e1in
 territories.TH=An T\u00e9alainn
 territories.TG=T\u00f3ga
-territories.TF=Cr\u00edocha Francacha Theas
+territories.TF=Cr\u00edocha Deisceartacha na Fraince
 territories.GY=An Ghu\u00e1in
 territories.TD=Sead
 territories.TC=Oile\u00e1in Turks agus Caicos
@@ -377,8 +388,10 @@ territories.GL=An Ghraonlainn
 territories.SV=An tSalvad\u00f3ir
 territories.ST=Sao Tome agus Principe
 territories.GI=Giobr\u00e1ltar
+territories.061=An Pholain\u00e9is
 territories.GH=G\u00e1na
 territories.SR=Suranam
+territories.GG=Geansa\u00ed
 territories.GF=An Ghu\u00e1in Fhrancach
 territories.GE=An tSeoirsia
 territories.SO=An tSom\u00e1il
@@ -396,24 +409,30 @@ territories.SG=Singeap\u00f3r
 territories.SE=An tSualainn
 territories.SD=An tS\u00fad\u00e1in
 territories.SC=Na S\u00e9is\u00e9il
-territories.SB=Oile\u00e1in Solomon
+territories.SB=Oile\u00e1in Sholaimh
 territories.SA=An Araib Sh\u00e1dach
 territories.FR=An Fhrainc
 territories.FO=Oile\u00e1in Fhar\u00f3
+territories.057=An R\u00e9igi\u00fan Micrin\u00e9iseach
 territories.FM=An Mhicrin\u00e9is
 territories.RW=Ruanda
+territories.054=An Mheilin\u00e9is
 territories.FK=Oile\u00e1in Fh\u00e1clainne
+territories.053=An Astr\u00e1il agus an Nua-Sh\u00e9alainn
 territories.RU=C\u00f3naidhm na R\u00faise
 territories.FJ=Fids\u00ed
 territories.FI=An Fhionlainn
+territories.RS=An tSeirbia
 territories.RO=An R\u00f3m\u00e1in
 territories.RE=R\u00e9union
 territories.ET=An Aet\u00f3ip
 territories.ES=An Sp\u00e1inn
-territories.ER=Eritrea
+territories.ER=An Eiritr\u00e9
+territories.QU=An tAontas Eorpach
 territories.EH=An Sah\u00e1ra Thiar
 territories.EG=An \u00c9igipt
 territories.EE=An East\u00f3in
+territories.QO=An Aig\u00e9ine Imeallach
 territories.EC=Eacuad\u00f3r
 territories.DZ=An Ailg\u00e9ir
 territories.QA=Catar
@@ -438,10 +457,10 @@ territories.CZ=Poblacht na Seice
 territories.PE=Peiri\u00fa
 territories.CY=An Chipir
 territories.CX=Oile\u00e1n na Nollag
-territories.CV=Rinn Verde
+territories.CV=An Rinn Ghlas
 territories.PA=Panama
 territories.CU=C\u00faba
-territories.CS=An tSeirbia
+territories.CS=An tSeirbia agus Montain\u00e9agr\u00f3
 territories.CR=C\u00f3sta R\u00edce
 territories.CO=An Chol\u00f3im
 territories.CN=An tS\u00edn
@@ -453,42 +472,49 @@ territories.CH=An Eilv\u00e9is
 territories.CG=An Cong\u00f3
 territories.CF=Poblacht na hAfraice L\u00e1ir
 territories.CD=Poblacht Dhaonlathach an Chong\u00f3
-territories.CC=Oile\u00e1in Cocos (Keeling)
-territories.OM=Oman
+territories.CC=Oile\u00e1in na gC\u00f3c\u00f3nna
+territories.OM=\u00d3man
 territories.CA=Ceanada
+territories.419=Meirice\u00e1 Laidineach agus an Mhuir Chairib
 territories.BZ=An Bheil\u00eds
 territories.BY=An Bhealar\u00fais
 territories.BW=An Bhotsu\u00e1in
-territories.BV=Oile\u00e1in Bouvet
+territories.BV=Oile\u00e1n Bouvet
 territories.BT=An Bh\u00fat\u00e1in
 territories.BS=Na Bah\u00e1ma\u00ed
 territories.BR=An Bhrasa\u00edl
+territories.019=Na Meirice\u00e1nna
 territories.NZ=An Nua-Sh\u00e9alainn
+territories.017=An Afraic L\u00e1ir
 territories.BO=An Bholaiv
 territories.BN=Br\u00fain\u00e9
 territories.BM=Beirmi\u00fada
-territories.NU=Niue
+territories.013=Meirice\u00e1 L\u00e1ir
+territories.NU=N\u00edv\u00e9
 territories.BJ=Beinin
 territories.BI=An Bhur\u00fain
+territories.172=Comhlathas na St\u00e1t Neamhsple\u00e1cha
 territories.BH=Bair\u00e9in
 territories.NR=N\u00e1r\u00fa
 territories.BG=An Bhulg\u00e1ir
 territories.BF=Buirc\u00edne Fas\u00f3
 territories.NP=Neipeal
 territories.BE=An Bheilg
+territories.ZZ=R\u00e9igi\u00fan Anaithnid n\u00f3 Neamhbhail\u00ed
 territories.NO=An Iorua
 territories.BD=An Bhanglaid\u00e9is
 territories.BB=Barbad\u00f3s
 territories.ZW=An tSiomb\u00e1ib
 territories.NL=An \u00cdsilt\u00edr
-territories.BA=An Bhoisnia-Heirseagaiv\u00e9in
+territories.BA=An Bhoisnia agus Heirseag\u00f3v\u00e9in
 territories.NI=Nicearagua
 territories.NG=An Nig\u00e9ir
 territories.NF=Oile\u00e1n Norfolk
 territories.AZ=An Asarbaise\u00e1in
 territories.NE=An N\u00edgir
+territories.AX=Oile\u00e1in Alaind
 territories.NC=An Nua-Chalad\u00f3in
-territories.AW=Aruba
+territories.AW=Ar\u00faba
 territories.ZM=An tSaimbia
 territories.NA=An Namaib
 territories.AU=An Astr\u00e1il
@@ -496,6 +522,7 @@ territories.AT=An Ostair
 territories.AS=Sam\u00f3 Meirice\u00e1nach
 territories.AR=An Airgint\u00edn
 territories.AQ=An Antartaice
+territories.009=An Aig\u00e9ine
 territories.MZ=M\u00f3saimb\u00edc
 territories.AO=Ang\u00f3la
 territories.MY=An Mhalaeisia
@@ -504,20 +531,22 @@ territories.MX=Meicsiceo
 territories.AM=An Airm\u00e9in
 territories.MW=An Mhal\u00e1iv
 territories.AL=An Alb\u00e1in
-territories.MV=Mhaildiv\u00ed
+territories.MV=Na Maildiv\u00ed
 territories.ZA=An Afraic Theas
 territories.MU=Oile\u00e1n Mhuir\u00eds
+territories.002=An Afraic
 territories.MT=M\u00e1lta
 territories.AI=Anguilla
+territories.001=An Domhan
 territories.MS=Montsarat
 territories.MR=An Mharat\u00e1in
-territories.AG=Antigua agus Barbuda
+territories.AG=Aint\u00edge agus Barb\u00fada
+territories.MQ=Martain\u00edc
 territories.AF=An Afganast\u00e1in
-territories.MQ=Martinique
-territories.AE=Aontas na n\u00c9im\u00edr\u00edochta\u00ed Arabacha
 territories.MP=Oile\u00e1in Mariana Thuaidh
+territories.AE=Aontas na n\u00c9im\u00edr\u00edochta\u00ed Arabacha
+territories.MO=Mac\u00e1\u00f3
 territories.AD=And\u00f3ra
-territories.MO=Mac\u00e1\u00f3 (R.R.S. na S\u00edne)
 territories.MN=An Mhong\u00f3il
 territories.MM=Maenmar
 territories.ML=Mail\u00ed
@@ -525,6 +554,7 @@ territories.MK=An Mhacad\u00f3in
 territories.YT=Mayotte
 territories.MH=Oile\u00e1in Marshall
 territories.MG=Madagascar
+territories.ME=Montain\u00e9agr\u00f3
 territories.MD=An Mhold\u00f3iv
 territories.MC=Monac\u00f3
 territories.MA=Marac\u00f3
@@ -535,19 +565,22 @@ territories.LU=Lucsamburg
 territories.LT=An Liotu\u00e1in
 territories.LS=Leos\u00f3ta
 territories.LR=An Lib\u00e9ir
+territories.150=An Eoraip
 territories.LK=Sr\u00ed Lanca
 territories.LI=Lichtinst\u00e9in
-territories.LC=Saint Lucia
+territories.LC=San L\u00faisia
 territories.LB=An Liob\u00e1in
 territories.LA=Laos
 territories.KZ=An Chasacst\u00e1in
-territories.KY=Oile\u00e1in Cayman
+territories.KY=Oile\u00e1in na gCadhman
 territories.KW=Cu\u00e1it
+territories.143=An \u00c1ise L\u00e1ir
+territories.142=An \u00c1ise
 territories.KR=An Ch\u00f3ir\u00e9 Theas
 territories.KP=An Ch\u00f3ir\u00e9 Thuaidh
 territories.KN=Saint Kitts agus Nevis
 territories.KM=Oile\u00e1in Chom\u00f3ra
-territories.KI=Cireabait\u00ed
+territories.KI=Ciribeas
 territories.WS=Sam\u00f3
 territories.KH=An Chamb\u00f3id
 territories.KG=An Chirgeast\u00e1in
@@ -557,12 +590,13 @@ territories.JP=An tSeap\u00e1in
 territories.JO=An Iord\u00e1in
 territories.JM=Iam\u00e1ice
 territories.VU=Vanuat\u00fa
-territories.VN=V\u00edtneam
+territories.JE=Geirs\u00ed
+territories.VN=V\u00edt Neam
 territories.VI=Oile\u00e1in na Maighdean S.A.M.
 territories.VG=Oile\u00e1in Bhriotanacha na Maighdean
 territories.VE=Veinis\u00e9ala
 territories.VC=Saint Vincent agus na Grenadines
-territories.VA=An Chathaoir Naofa (St\u00e1t Chathair na Vatac\u00e1ine)
+territories.VA=An Vatac\u00e1in
 territories.IT=An Iod\u00e1il
 territories.IS=An \u00cdoslainn
 territories.IR=An Iar\u00e1in
@@ -571,12 +605,13 @@ territories.UZ=\u00daisb\u00e9iceast\u00e1in
 territories.IO=Cr\u00edocha Briotanacha an Aig\u00e9in Indiagh
 territories.UY=Urugua
 territories.IN=An India
+territories.IM=Oile\u00e1n Mhanann
 territories.IL=Iosrael
 territories.US=St\u00e1it Aontaithe Mheirice\u00e1
 territories.IE=\u00c9ire
 territories.ID=An Indin\u00e9is
 territories.UM=Mion-Oile\u00e1in Imeallacha S.A.M.
-territories.UG=Uganda
+territories.UG=\u00daganda
 territories.UA=An \u00dacr\u00e1in
 territories.HU=An Ung\u00e1ir
 territories.HT=H\u00e1it\u00ed
@@ -585,130 +620,155 @@ territories.TZ=An Tans\u00e1in
 territories.HN=Hond\u00faras
 territories.HM=Oile\u00e1n Heard agus Oile\u00e1in McDonald
 territories.TW=An T\u00e9av\u00e1in
-territories.TV=Tuval\u00fa
-territories.HK=Hong Cong (R.R.S. na S\u00edne)
+territories.TV=T\u00fav\u00e1l\u00fa
+territories.HK=Hong Cong
 territories.TT=Oile\u00e1in na Tr\u00edon\u00f3ide agus Tob\u00e1ga
 territories.TR=An Tuirc
 territories.TO=Tonga
 territories.TN=An T\u00fain\u00e9is
 territories.TM=An Tuircm\u00e9anast\u00e1in
-languages.es=Sp\u00e1innis
+languages.lb=Leitseabuirgis
+languages.la=Laidin
+languages.xh=C\u00f3sais
+languages.ky=Cirgeasais
 languages.kw=Cornais
-languages.eo=Esperanto
-languages.en=B\u00e9arla
+languages.ku=Coirdis
 languages.ks=Caism\u00edris
-languages.el=Gr\u00e9igis
-languages.qu=Ceatsuais
 languages.ko=C\u00f3ir\u00e9is
 languages.kn=Cannadais
+languages.km=Camb\u00f3idis
 languages.kk=Casachais
 languages.ka=Seoirsis
-languages.wa=Vall\u00fanais
 languages.jv=I\u00e1vais
-languages.pt=Portaing\u00e9ilis
-languages.ps=Paisteo
-languages.de=Gearm\u00e1inis
-languages.pl=Polainnis
-languages.da=Danmhairgis
+languages.wa=Vall\u00fanais
 languages.ja=Seap\u00e1inis
 languages.vi=V\u00edtneamais
-languages.cy=Breatnais
-languages.pa=Puinseaibis
-languages.cv=Suvaisis
-languages.cu=Slavais na hEaglaise
-languages.cs=Seicis
-languages.cr=Cra\u00edais
 languages.iu=Ion\u00faitis
-languages.co=Corsaicis
 languages.it=Iod\u00e1ilis
-languages.is=\u00cdoslainnais
-languages.haw=Hav\u00e1\u00edais
+languages.is=\u00cdoslainnis
 languages.uz=\u00daisb\u00e9icis
 languages.io=Ido
-languages.os=\u00d3is\u00e9itis
 languages.ik=Inupiaq
-languages.ce=Sisinis
 languages.ur=Urdais
-languages.ca=Catal\u00f3inis
 languages.ie=Interlingue
 languages.id=Indin\u00e9isis
-languages.uk=\u00dacr\u00e1inis
 languages.ia=Interlingua
-languages.oc=Ocat\u00e1inis (tar \u00e9is 1500); Proven\u00e7al
+languages.uk=\u00dacr\u00e1inis
+languages.ug=ug
 languages.hy=Airm\u00e9inis
-languages.bs=Boisnis
-languages.br=Briot\u00e1inis
+languages.und=Teanga Anaithnid n\u00f3 Neamhbhail\u00ed
 languages.hu=Ung\u00e1iris
-languages.bo=Tib\u00e9adais
-languages.bn=Beang\u00e1lais
 languages.hr=Cr\u00f3itis
-languages.nv=Navach\u00f3is
+languages.fil=fil
 languages.ty=Taih\u00edtis
-languages.bg=Bulg\u00e1iris
+languages.tw=Tv\u00eds
 languages.tt=Tatarais
-languages.no=Ioruais
-languages.be=Bealar\u00faisis
-languages.nn=Ioruais Nynorsk
 languages.hi=Hiond\u00fais
 languages.tr=Tuircis
-languages.nl=Ollainnais
-languages.zu=S\u00fal\u00fais
-languages.ba=Baisc\u00edris
 languages.he=Eabhrais
 languages.tl=Tag\u00e1laigis
-languages.ne=Neipealais
-languages.az=Asarbaise\u00e1inis
+languages.tk=Tuircm\u00e9inis
+languages.ti=Tigrinis
 languages.th=T\u00e9alainnis
-languages.nb=Ioruais Bokm\u00e5l
-languages.na=N\u00e1r\u00fais
-languages.zh=S\u00ednis
-languages.as=Asaimis
-languages.ar=Araibis
-languages.ta=Tamailis
+languages.te=Teileag\u00fais
 languages.gv=Mannainis
+languages.ta=Tamailis
 languages.gu=G\u00faisear\u00e1itis
-languages.my=Burmais
-languages.mt=Maltais
+languages.gn=Guar\u00e1inis
 languages.sw=Svaha\u00edlis
-languages.mr=Maraitis
+languages.gl=Gail\u00edsis
 languages.sv=Sualainnis
-languages.af=Afrac\u00e1inis
-languages.mo=Mold\u00e1ivis
-languages.ae=Aiv\u00e9istis
-languages.mn=Mong\u00f3ilis
+languages.su=Sundais
+languages.st=S\u00f3tais Dheisceartach
 languages.sr=Seirbis
 languages.sq=Alb\u00e1inis
-languages.ml=Mail\u00e9alaimis
-languages.ab=Abc\u00e1isis
-languages.aa=Afar
-languages.mk=Macad\u00f3inis
-languages.so=Som\u00e1lais
+languages.so=Som\u00e1ilis
 languages.gd=Gaeilge na hAlban
-languages.mi=Maorais
 languages.sm=Sam\u00f3is
-languages.sl=Sl\u00f3v\u00e9inis
-languages.mg=Malag\u00e1sais
-languages.sk=Sl\u00f3vacais
+languages.sl=Sl\u00f3iv\u00e9inis
 languages.ga=Gaeilge
+languages.sk=Sl\u00f3vaicis
+languages.si=Siol\u00f3inis
 languages.sh=Seirbea-Chr\u00f3itis
 languages.se=S\u00e1imis Thuaidh
-languages.yi=Gi\u00fadais
+languages.fy=Freaslainnis Iartharach
 languages.sd=Sindis
-languages.fy=Freaslainnais
 languages.sc=Saird\u00ednis
 languages.sa=Sanscrait
 languages.fr=Fraincis
-languages.lv=Laitvis
 languages.fo=Far\u00f3is
-languages.lt=Liotu\u00e1inis
 languages.ru=R\u00faisis
 languages.fj=Fidsis
-languages.lo=Laosais
-languages.fi=Fionnlainnis
-languages.ro=Rom\u00e1inis
+languages.fi=Fionlainnis
+languages.ro=R\u00f3m\u00e1inis
 languages.fa=Peirsis
-languages.lb=Leitseabuirgis
-languages.la=Laidin
+languages.pt_PT=Portaing\u00e9ilis Ib\u00e9ireach
 languages.eu=Bascais
 languages.et=East\u00f3inis
-languages.ky=Cirgeasais
+languages.es=Sp\u00e1innis
+languages.eo=Esperanto
+languages.en=B\u00e9arla
+languages.el=Gr\u00e9igis
+languages.qu=Ceatsuais
+languages.pt=Portaing\u00e9ilis
+languages.pt_BR=Portaing\u00e9ilis Bhrasa\u00edleach
+languages.ps=Paistis
+languages.de=Gearm\u00e1inis
+languages.pl=Polainnis
+languages.da=Danmhairgis
+languages.cy=Breatnais
+languages.cv=Suvaisis
+languages.pa=Puinse\u00e1ibis
+languages.cu=Slavais na hEaglaise
+languages.cs=Seicis
+languages.cr=Cra\u00edais
+languages.co=Corsaicis
+languages.os=\u00d3is\u00e9itis
+languages.or=Oraisis
+languages.ce=Sisinis
+languages.ca=Catal\u00f3inis
+languages.oc=Ocat\u00e1inis
+languages.bs=Boisnis
+languages.br=Briot\u00e1inis
+languages.bo=Tib\u00e9adais
+languages.zh_Hans=S\u00ednis Shimplithe
+languages.bn=Beang\u00e1ilis
+languages.zh_Hant=S\u00ednis Thraidisi\u00fanta
+languages.nv=Navach\u00f3is
+languages.bh=Bihairis
+languages.bg=Bulg\u00e1iris
+languages.be=Bealar\u00faisis
+languages.no=Ioruais
+languages.nn=Ioruais Nynorsk
+languages.nl=Ollainnis
+languages.ba=Baisc\u00edris
+languages.zu=S\u00fal\u00fais
+languages.az=Asarbaise\u00e1inis
+languages.ne=Neipealais
+languages.nb=Ioruais Bokm\u00e5l
+languages.na=N\u00e1r\u00fais
+languages.as=Asaimis
+languages.ar=Araibis
+languages.zh=S\u00ednis
+languages.my=Burmais
+languages.am=Amarais
+languages.mt=Maltais
+languages.ms=Malaeis
+languages.mr=Maraitis
+languages.af=Afrac\u00e1inis
+languages.ae=Aiv\u00e9istis
+languages.haw=Hav\u00e1\u00edais
+languages.mo=Mold\u00e1ivis
+languages.mn=Mong\u00f3ilis
+languages.ab=Abc\u00e1isis
+languages.ml=Mail\u00e9alaimis
+languages.aa=aa
+languages.mk=Macad\u00f3inis
+languages.mi=Maorais
+languages.mg=Malag\u00e1sais
+languages.tlh=Klingon
+languages.yi=Gi\u00fadais
+languages.lv=Laitvis
+languages.lt=Liotu\u00e1inis
+languages.lo=Laosais
+languages.ln=ln
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gaa.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gaa.properties
new file mode 100644 (file)
index 0000000..7bb5d38
--- /dev/null
@@ -0,0 +1,23 @@
+# LocaleInformation_gaa.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.GHC=Sidi
+currenciesSymbol.GHC=\u20b5
+shortMonths=Aha\u00aeOfl\u00aeOch\u00aeAbe\u00aeAgb\u00aeOtu\u00aeMaa\u00aeMan\u00aeGbo\u00aeAnt\u00aeAle\u00aeAfu\u00ae\u00ae
+months=Aharabata\u00aeOflo\u00aeOchokrikri\u00aeAbeibee\u00aeAgbeinaa\u00aeOtukwadan\u00aeMaawe\u00aeManyawale\u00aeGbo\u00aeAnton\u00aeAlemle\u00aeAfuabee\u00ae\u00ae
+shortWeekdays=\u00aeHo\u00aeDzu\u00aeDzf\u00aeSho\u00aeSoo\u00aeSoh\u00aeHo\u00ae
+weekdays=\u00aeHogbaa\u00aeDzu\u00aeDzufo\u00aeSho\u00aeSoo\u00aeSohaa\u00aeHo\u00ae
+eras=DJ\u00aeKJ\u00ae
+ampms=LB\u00aeSN\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
index 8e841da8687f16c4340710164b325cb81370c6b0..5e87ea6ae3ee76aea4fe418ba79e333d95878dde 100644 (file)
@@ -5,40 +5,49 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+groupingSeparator=\u12c8
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
 currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
 currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
 currenciesDisplayName.EUR=\u12a0\u12cd\u122e
 currenciesDisplayName.ETB=\u12e8\u12a2\u1275\u12ee\u1335\u12eb \u1265\u122d
 currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u1295\u12f5 \u1235\u1270\u122d\u120a\u1295\u130d
-currenciesSymbol.ETB=$
+currenciesSymbol.ETB=ETB$
 currenciesSymbol.CNY=Y
+currenciesSymbol.ERN=$
 currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u1320\u1210\u1228®\u12a8\u1270\u1270®\u1218\u1308\u1260®\u12a0\u1280\u12d8®\u130d\u1295\u1263®\u1220\u1295\u12e8®\u1210\u1218\u1208®\u1290\u1210\u1230®\u12a8\u1228\u1218®\u1320\u1240\u1218®\u1280\u12f0\u1228®\u1280\u1220\u1220®®
-months=\u1320\u1210\u1228®\u12a8\u1270\u1270®\u1218\u1308\u1260®\u12a0\u1280\u12d8®\u130d\u1295\u1263\u1275®\u1220\u1295\u12e8®\u1210\u1218\u1208®\u1290\u1210\u1230®\u12a8\u1228\u1218®\u1320\u1240\u1218®\u1280\u12f0\u1228®\u1280\u1220\u1220®®
-shortWeekdays=®\u12a5\u1281\u12f5®\u1230\u1291\u12ed®\u1220\u1209\u1235®\u122b\u1265\u12d5®\u1210\u1219\u1235®\u12d3\u122d\u1260®\u1240\u12f3\u121a®
-weekdays=®\u12a5\u1281\u12f5®\u1230\u1291\u12ed®\u1220\u1209\u1235®\u122b\u1265\u12d5®\u1210\u1219\u1235®\u12d3\u122d\u1260®\u1240\u12f3\u121a\u1275®
-firstDayOfWeek=sat
-eras=\u12d3/\u12d3®\u12d3/\u121d®
-ampms=\u133d\u1263\u1215®\u121d\u1234\u1275®
+shortMonths=\u1320\u1210\u1228\u00ae\u12a8\u1270\u1270\u00ae\u1218\u1308\u1260\u00ae\u12a0\u1280\u12d8\u00ae\u130d\u1295\u1263\u00ae\u1220\u1295\u12e8\u00ae\u1210\u1218\u1208\u00ae\u1290\u1210\u1230\u00ae\u12a8\u1228\u1218\u00ae\u1320\u1240\u1218\u00ae\u1280\u12f0\u1228\u00ae\u1280\u1220\u1220\u00ae\u00ae
+months=\u1320\u1210\u1228\u00ae\u12a8\u1270\u1270\u00ae\u1218\u1308\u1260\u00ae\u12a0\u1280\u12d8\u00ae\u130d\u1295\u1263\u1275\u00ae\u1220\u1295\u12e8\u00ae\u1210\u1218\u1208\u00ae\u1290\u1210\u1230\u00ae\u12a8\u1228\u1218\u00ae\u1320\u1240\u1218\u00ae\u1280\u12f0\u1228\u00ae\u1280\u1220\u1220\u00ae\u00ae
+shortWeekdays=\u00ae\u12a5\u1281\u12f5\u00ae\u1230\u1291\u12ed\u00ae\u1220\u1209\u1235\u00ae\u122b\u1265\u12d5\u00ae\u1210\u1219\u1235\u00ae\u12d3\u122d\u1260\u00ae\u1240\u12f3\u121a\u00ae
+weekdays=\u00ae\u12a5\u1281\u12f5\u00ae\u1230\u1291\u12ed\u00ae\u1220\u1209\u1235\u00ae\u122b\u1265\u12d5\u00ae\u1210\u1219\u1235\u00ae\u12d3\u122d\u1260\u00ae\u1240\u12f3\u121a\u1275\u00ae
+eras=\u12d3/\u12d3\u00ae\u12d3/\u121d\u00ae
+ampms=\u133d\u1263\u1215\u00ae\u121d\u1234\u1275\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1365 dd MMMM \u1218\u12d3\u120d\u1275 yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.AU=\u12a0\u12cd\u1235\u1275\u122c\u120a\u12eb
 territories.TD=\u127b\u12f5
-territories.AT=\u12a6\u1235\u1275\u122a\u12eb
 territories.GY=\u1309\u12eb\u1293
-territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
+territories.AT=\u12a6\u1235\u1275\u122a\u12eb
 territories.GW=\u1262\u1233\u12ce
+territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
 territories.MY=\u121b\u120c\u12e2\u12eb
 territories.MX=\u121c\u12ad\u1232\u12ae
 territories.AN=\u1294\u12d8\u122d\u120b\u1295\u12f5\u1235\u1361\u12a0\u1295\u1272\u120d\u1235
-territories.AM=\u12a0\u122d\u121c\u1292\u12eb
 territories.GR=\u130d\u122a\u12ad
+territories.AM=\u12a0\u122d\u121c\u1292\u12eb
 territories.ZA=\u12f0\u1261\u1265\u1361\u12a0\u134d\u122a\u12ab
-territories.AL=\u12a0\u120d\u1263\u1292\u12eb
 territories.GQ=\u12a2\u12b3\u1276\u122a\u12eb\u120d\u1361\u130a\u1292
+territories.AL=\u12a0\u120d\u1263\u1292\u12eb
 territories.MU=\u121b\u1229\u1238\u1235
 territories.SY=\u1232\u122a\u12eb
 territories.MT=\u121b\u120d\u1273
@@ -80,17 +89,17 @@ territories.KW=\u12ad\u12cc\u1275
 territories.ER=\u12a4\u122d\u1275\u122b
 territories.KR=\u1230\u121c\u1295\u1361\u12ae\u122a\u12eb
 territories.KP=\u12f0\u1261\u1265\u1361\u12ae\u122a\u12eb
-territories.EH=\u121d\u12d5\u122b\u1263\u12ca\u1361\u1233\u1205\u122b
 territories.KM=\u12ae\u121e\u122e\u1235
+territories.EH=\u121d\u12d5\u122b\u1263\u12ca\u1361\u1233\u1205\u122b
 territories.EG=\u130d\u1265\u133d
 territories.EE=\u12a4\u1235\u1276\u1292\u12eb
-territories.EC=\u12a2\u12b3\u12f6\u122d
 territories.KH=\u12ab\u121d\u1266\u12f2\u12eb
+territories.EC=\u12a2\u12b3\u12f6\u122d
 territories.DZ=\u12a0\u120d\u1304\u122a\u12eb
 territories.DO=\u12f6\u121a\u1292\u12ad\u1361\u122a\u1351\u1265\u120a\u12ad
 territories.DM=\u12f6\u121a\u1292\u12ab
-territories.DK=\u12f4\u1295\u121b\u122d\u12ad
 territories.JP=\u1303\u1353\u1295
+territories.DK=\u12f4\u1295\u121b\u122d\u12ad
 territories.JO=\u1306\u122d\u12f3\u1295
 territories.PR=\u1356\u122d\u1273\u1361\u122a\u12ae
 territories.JM=\u1303\u121b\u12ed\u12ab
@@ -106,13 +115,13 @@ territories.VG=\u12e8\u12a5\u1295\u130d\u120a\u12dd\u1361\u12f5\u1295\u130d\u120
 territories.CV=\u12ac\u1355\u1361\u126c\u122d\u12f4
 territories.VE=\u126c\u1295\u12d9\u12cc\u120b
 territories.CS=\u1230\u122d\u1262\u12eb
-territories.CO=\u12ae\u120e\u121d\u1262\u12eb
 territories.IT=\u1323\u120a\u12eb\u1295
-territories.CN=\u127b\u12ed\u1293
+territories.CO=\u12ae\u120e\u121d\u1262\u12eb
 territories.IS=\u12a0\u12ed\u1235\u120b\u1295\u12f5
+territories.CN=\u127b\u12ed\u1293
 territories.CM=\u12ab\u121c\u1229\u1295
-territories.CL=\u127a\u120a
 territories.IQ=\u12a2\u122b\u1245
+territories.CL=\u127a\u120a
 territories.UZ=\u12e9\u12dd\u1260\u12aa\u1235\u1273\u1295
 territories.IN=\u1205\u1295\u12f5
 territories.CH=\u1235\u12ca\u12d8\u122d\u120b\u1295\u12f5
@@ -128,10 +137,10 @@ territories.BT=\u1261\u1205\u1273\u1295
 territories.BR=\u1265\u122b\u12da\u120d
 territories.NZ=\u1292\u12cd\u1361\u12da\u120b\u1295\u12f5
 territories.HU=\u1200\u1295\u130b\u122a
-territories.BO=\u1266\u120a\u126a\u12eb
 territories.HT=\u1200\u12ed\u1272
-territories.BM=\u1264\u122d\u1219\u12f3
+territories.BO=\u1266\u120a\u126a\u12eb
 territories.HR=\u12ad\u122e\u12a4\u123d\u12eb
+territories.BM=\u1264\u122d\u1219\u12f3
 territories.TZ=\u1273\u1295\u12db\u1292\u12eb
 territories.BH=\u1263\u1205\u122c\u1295
 territories.BG=\u1261\u120d\u130c\u122a\u12eb
@@ -157,8 +166,8 @@ territories.NA=\u1293\u121a\u1262\u12eb
 languages.es=\u1235\u1353\u1292\u123d
 languages.ku=\u12a9\u122d\u12f5\u123d\u129b
 languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
-languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
 languages.ks=\u12ab\u123d\u121a\u122d\u129b
+languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
 languages.el=\u130d\u122a\u12ad\u129b
 languages.qu=\u12b5\u127f\u129b
 languages.ko=\u12ae\u122a\u12eb\u129b
@@ -182,8 +191,8 @@ languages.cy=\u12c8\u120d\u123d
 languages.pa=\u1353\u1295\u1303\u1262\u129b
 languages.cs=\u127c\u12ad\u129b
 languages.iu=\u12a5\u1291\u12ad\u1272\u1271\u1275\u129b
-languages.co=\u12ae\u122d\u1232\u12ab\u129b
 languages.it=\u1323\u120a\u12eb\u1295\u129b
+languages.co=\u12ae\u122d\u1232\u12ab\u129b
 languages.is=\u12a0\u12ed\u1235\u120b\u1295\u12f5\u129b
 languages.uz=\u12a1\u12dd\u1260\u12ad\u129b
 languages.or=\u12a6\u122a\u12eb\u129b
@@ -240,8 +249,8 @@ languages.am=\u12a0\u121d\u1210\u1228\u129b
 languages.za=\u12e1\u12cb\u1295\u130d\u129b
 languages.mt=\u121b\u120d\u1272\u1235\u129b
 languages.ms=\u121b\u120b\u12ed\u129b
-languages.gn=\u1313\u122b\u1292\u129b
 languages.byn=\u1265\u120a\u1295
+languages.gn=\u1313\u122b\u1292\u129b
 languages.sw=\u1235\u12cb\u1202\u120a\u129b
 languages.mr=\u121b\u122b\u12da\u129b
 languages.sv=\u1235\u12ca\u12f5\u1295\u129b
@@ -279,14 +288,14 @@ languages.sid=\u1232\u12f3\u121d\u129b
 languages.sa=\u1233\u1295\u1235\u12ad\u122a\u1275\u129b
 languages.fr=\u1348\u1228\u1295\u1233\u12ed\u129b
 languages.lv=\u120b\u1275\u126a\u12eb\u1295
-languages.fo=\u134b\u122e\u129b
 languages.lt=\u120a\u1271\u12a0\u1292\u12eb\u1295
+languages.fo=\u134b\u122e\u129b
 languages.rw=\u12aa\u1295\u12eb\u122d\u12cb\u1295\u12f5\u129b
 languages.ru=\u122b\u123d\u129b
-languages.fj=\u134a\u1302\u129b
 languages.lo=\u120b\u12cd\u1235\u129b
-languages.fi=\u134a\u1292\u123d
+languages.fj=\u134a\u1302\u129b
 languages.ln=\u120a\u1295\u130b\u120b\u129b
+languages.fi=\u134a\u1292\u123d
 languages.ro=\u122e\u121b\u1292\u12eb\u1295
 languages.rn=\u1229\u1295\u12f2\u129b
 languages.rm=\u122e\u121b\u1295\u1235
@@ -294,5 +303,5 @@ languages.fa=\u1350\u122d\u1232\u12eb\u129b
 languages.la=\u120b\u1272\u1295\u129b
 languages.xh=\u12de\u1233\u129b
 languages.eu=\u1263\u1235\u12ad\u129b
-languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
 languages.ky=\u12aa\u122d\u130a\u12dd\u129b
+languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
index dbcace96951a7674ec2a717bafbebedec9894a97..225ba95ed2d0ae3bdf2ce9fae3638a6465963509 100644 (file)
@@ -5,14 +5,5 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-groupingSeparator=\u12c8
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
-currenciesSymbol.USD=US$
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yyyy
-longDateFormat=dd MMMM yyyy
-fullDateFormat=EEEE\u1365 dd MMMM \u1218\u12d3\u120d\u1275 yyyy G
-shortTimeFormat=h:mm a
-mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
+currenciesSymbol.ETB=$
+currenciesSymbol.ERN=ERN
index a0b70068458b46b949ef2e2d3fb0815c93884400..93a5b2d5ec5e7ec178f599a9f4ca3cef8c5ab2cf 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=.
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.ESB=Peseta espa\u00f1ola (conta convertible)
+currenciesDisplayName.ESA=Peseta espa\u00f1ola (conta A)
+currenciesDisplayName.SVC=col\u00f3ns salvadore\u00f1os
+currenciesDisplayName.IEP=libras irlandesas
+currenciesDisplayName.GRD=Dracma grego
+currenciesDisplayName.FRF=francos franceses
+currenciesDisplayName.CLP=pesos chilenos
+currenciesDisplayName.SUR=rublos sovi\u00e9ticos
+currenciesDisplayName.BRR=cruzeiros brasileiros
+currenciesDisplayName.ZAR=Rand sudafricano
+currenciesDisplayName.CLF=unidades de fomento chilenas
+currenciesDisplayName.RUR=Rublo ruso (1991-1998)
+currenciesDisplayName.BRN=cruzados novos brasileiros
+currenciesDisplayName.ARS=pesos arxentinos
+currenciesDisplayName.BRL=reais brasileiros
+currenciesDisplayName.JPY=Ien xapon\u00e9s
+currenciesDisplayName.ARP=pesos arxentinos (ARP)
+currenciesDisplayName.CRC=col\u00f3ns costarricenses
+currenciesDisplayName.XAU=Ouro
+currenciesDisplayName.BRE=cruzeiros brasileiros (BRE)
+currenciesDisplayName.GQE=Ekwele guineana
+currenciesDisplayName.DEM=marcos alem\u00e1ns
+currenciesDisplayName.BRC=cruzados brasileiros
+currenciesDisplayName.BRB=cruzeiros novos brasileiros
+currenciesDisplayName.RUB=rublos rusos
+currenciesDisplayName.NIO=C\u00f3rdoba de ouro nicarag\u00fcense
+currenciesDisplayName.DKK=Coroa dinamarquesa
+currenciesDisplayName.XAG=Prata
+currenciesDisplayName.BEL=francos belgas (financeiros)
+currenciesDisplayName.NOK=Coroa norueguesa
+currenciesDisplayName.NIC=C\u00f3rdoba nicarag\u00fcense
+currenciesDisplayName.BEF=francos belgas
+currenciesDisplayName.BEC=francos belgas (convertibles)
+currenciesDisplayName.PHP=Peso filipino
+currenciesDisplayName.LUL=Franco financeiro luxemburgu\u00e9s
+currenciesDisplayName.UYU=pesos uruguaios
+currenciesDisplayName.LUF=Franco luxemburgu\u00e9s
+currenciesDisplayName.UYP=Peso uruguaio (1975-1993)
+currenciesDisplayName.LUC=Franco convertible luxemburgu\u00e9s
+currenciesDisplayName.XXX=unidades monetarias desco\u00f1ecidas ou non v\u00e1lidas
+currenciesDisplayName.PTE=escudos portugueses
+currenciesDisplayName.GIP=libras xibraltare\u00f1as
+currenciesDisplayName.UYI=Peso en unidades indexadas uruguaio
+currenciesDisplayName.USD=d\u00f3lares estadounidenses
+currenciesDisplayName.ADP=pesetas andorranas
+currenciesDisplayName.ECV=Unidade de valor constante ecuatoriana
+currenciesDisplayName.ECS=sucres ecuatorianos
+currenciesDisplayName.HUF=Flor\u00edn h\u00fangaro
+currenciesDisplayName.PAB=Balboa paname\u00f1o
+currenciesDisplayName.EUR=euros
+currenciesDisplayName.INR=Rupia india
+currenciesDisplayName.DOP=pesos dominicanos
+currenciesDisplayName.GBP=libras esterlinas
+currenciesDisplayName.COP=pesos colombianos
+currenciesDisplayName.BOV=MVDOL boliviano
+currenciesDisplayName.MAF=Franco marroqu\u00ed
+currenciesDisplayName.PYG=guaran\u00eds do paraguai
+currenciesDisplayName.MAD=Dirham marroqu\u00ed
+currenciesDisplayName.ITL=Lira italiana
+currenciesDisplayName.GNS=Syli guineano
+currenciesDisplayName.HNL=Lempira hondure\u00f1o
+currenciesDisplayName.CUP=pesos cubanos
+currenciesDisplayName.BOP=pesos bolivianos
+currenciesDisplayName.GTQ=Quetzal guatemalteco
+currenciesDisplayName.VEF=bol\u00edvares fortes venezolanos
+currenciesDisplayName.GNF=Franco guineano
+currenciesDisplayName.VEB=bol\u00edvares venezolanos
+currenciesDisplayName.BOB=bolivianos
+currenciesDisplayName.CNY=iu\u00e1ns chineses
+currenciesDisplayName.SEK=Coroa sueca
+currenciesDisplayName.XPT=Platino
+currenciesDisplayName.ISK=Coroa islandesa
+currenciesDisplayName.NLG=Flor\u00edn holand\u00e9s
+currenciesDisplayName.CHF=Franco suizo
+currenciesDisplayName.MXV=Unidade de inversi\u00f3n mexicana
+currenciesDisplayName.PES=Sol peruano
+currenciesDisplayName.MXP=Peso de prata mexicano (1861-1992)
+currenciesDisplayName.PEN=Sol novo peruano
+currenciesDisplayName.MXN=pesos mexicanos
+currenciesDisplayName.XPD=Paladio
+currenciesDisplayName.PEI=Inti peruano
+currenciesDisplayName.ESP=pesetas
+currenciesDisplayName.CAD=D\u00f3lar canadiano
 currenciesSymbol.ESP=\u20a7
-shortMonths=Xan®Feb®Mar®Abr®Mai®Xu\u00f1®Xul®Ago®Set®Out®Nov®Dec®®
-months=Xaneiro®Febreiro®Marzo®Abril®Maio®Xu\u00f1o®Xullo®Agosto®Setembro®Outubro®Novembro®Decembro®®
-shortWeekdays=®Dom®Lun®Mar®M\u00e9r®Xov®Ven®S\u00e1b®
-weekdays=®Domingo®Luns®Martes®M\u00e9rcores®Xoves®Venres®S\u00e1bado®
+shortMonths=xan\u00aefeb\u00aemar\u00aeabr\u00aemai\u00aexu\u00f1\u00aexul\u00aeago\u00aeset\u00aeout\u00aenov\u00aedec\u00ae\u00ae
+months=xaneiro\u00aefebreiro\u00aemarzo\u00aeabril\u00aemaio\u00aexu\u00f1o\u00aexullo\u00aeagosto\u00aesetembro\u00aeoutubro\u00aenovembro\u00aedecembro\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aelun\u00aemar\u00aem\u00e9r\u00aexov\u00aeven\u00aes\u00e1b\u00ae
+weekdays=\u00aedomingo\u00aeluns\u00aemartes\u00aem\u00e9rcores\u00aexoves\u00aevenres\u00aes\u00e1bado\u00ae
+eras=a.C.\u00aed.C.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=d MMM, yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Western\u00aehorario europeo occidental\u00ae\u00aehorario de ver\u00e1n europeo occidental\u00ae\u00ae\u00a9Europe_Eastern\u00aehorario europeo oriental\u00ae\u00aehorario de ver\u00e1n europeo oriental\u00ae\u00ae\u00a9GMT\u00aehorario medio de Greenwich\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Central\u00aehorario europeo central\u00ae\u00aehorario de ver\u00e1n europeo central\u00ae\u00ae\u00a9
+territories.TL=Timor Leste
+territories.TK=Tokelau
+territories.TJ=Taxiquist\u00e1n
+territories.TH=Tailandia
+territories.TG=Togo
+territories.TF=Territorios Franceses do Sul
+territories.GY=G\u00fciana
+territories.TD=Xad
+territories.TC=Illas Turks e Caicos
+territories.GW=Guinea-Bissau
+territories.GU=Guam
+territories.GT=Guatemala
+territories.GS=Xeorxia do Sur e Illas Sandwich
+territories.GR=Grecia
+territories.GQ=Guinea Ecuatorial
+territories.GP=Guadalupe
+territories.SZ=Suacilandia
+territories.SY=Siria
+territories.GN=Guinea
+territories.GM=Gambia
+territories.GL=Grenlandia
+territories.SV=El Salvador
+territories.062=Asia do Sul-Centro
+territories.ST=Santo Tom\u00e9 e Pr\u00edncipe
+territories.GI=Xibraltar
+territories.061=Polinesia
+territories.GH=Gana
+territories.SR=Surinam
+territories.GG=Guernsey
+territories.GF=G\u00fciana Francesa
+territories.GE=Xeorxia
+territories.SO=Somalia
+territories.GD=Granada
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=Reino Unido
+territories.SL=Serra Leoa
+territories.GA=Gab\u00f3n
+territories.SK=Eslovaquia
+territories.SJ=Svalbard e Jan Mayen
+territories.SI=Eslovenia
+territories.SH=Santa Helena
+territories.SG=Singapur
+territories.SE=Suecia
+territories.SD=Sud\u00e1n
+territories.SC=Seixeles
+territories.SB=Illas Salom\u00f3n
+territories.SA=Arabia Saudita
+territories.FR=Francia
+territories.FO=Illas Feroe
+territories.057=Rexi\u00f3n da Micronesia
+territories.FM=Micronesia
+territories.RW=Ruanda
+territories.054=Melanesia
+territories.FK=Illas Malvinas
+territories.053=Australia e Nova Celandia
+territories.RU=Rusia
+territories.FJ=Fixi
+territories.FI=Finlandia
+territories.RS=Serbia
+territories.RO=Roman\u00eda
+territories.RE=Reuni\u00f3n
+territories.ET=Etiop\u00eda
 territories.ES=Espa\u00f1a
+territories.ER=Eritrea
+territories.QU=Uni\u00f3n Europea
+territories.EH=Sahara Occidental
+territories.EG=Exipto
+territories.EE=Estonia
+territories.QO=Ocean\u00eda Distante
+territories.EC=Ecuador
+territories.DZ=Arxelia
+territories.QA=Qatar
+territories.039=Europa Meridional
+territories.DO=Rep\u00fablica Dominicana
+territories.PY=Paraguai
+territories.DM=Dominica
+territories.035=Sureste Asi\u00e1tico
+territories.PW=Palau
+territories.034=Sul de Asia
+territories.DK=Dinamarca
+territories.DJ=Xibuti
+territories.PT=Portugal
+territories.PS=Palestina
+territories.030=Asia Oriental
+territories.PR=Porto Rico
+territories.DE=Alema\u00f1a
+territories.PN=Pitcairn
+territories.PM=San Pedro e Miguel\u00f3n
+territories.PL=Polonia
+territories.PK=Paquist\u00e1n
+territories.PH=Filipinas
+territories.PG=Pap\u00faa Nova Guinea
+territories.PF=Polinesia Francesa
+territories.CZ=Rep\u00fablica Checa
+territories.PE=Per\u00fa
+territories.CY=Chipre
+territories.CX=Illa Christmas
+territories.CV=Cabo Verde
+territories.PA=Panam\u00e1
+territories.CU=Cuba
+territories.CS=Serbia e Montenegro
+territories.CR=Costa Rica
+territories.029=Caribe
+territories.CO=Colombia
+territories.CN=China
+territories.CM=Camer\u00fan
+territories.CL=Chile
+territories.CK=Illas Cook
+territories.021=Am\u00e9rica do Norte
+territories.CI=Costa de Marfil
+territories.CH=Su\u00edza
+territories.CG=Congo
+territories.CF=Rep\u00fablica Africana Central
+territories.CD=Rep\u00fablica Democr\u00e1tica do Congo
+territories.CC=Illas Cocos
+territories.OM=Om\u00e1n
+territories.CA=Canad\u00e1
+territories.419=Am\u00e9rica Latina e o Caribe
+territories.BZ=Belice
+territories.BY=Bielorrusia
+territories.BW=Botsuana
+territories.BV=Illa Bouvet
+territories.BT=But\u00e1n
+territories.BS=Bahamas
+territories.BR=Brasil
+territories.019=Am\u00e9rica
+territories.018=\u00c1frica Meridional
+territories.NZ=Nova Celandia
+territories.017=\u00c1frica Central
+territories.BO=Bolivia
+territories.BN=Brunei
+territories.015=\u00c1frica Septentrional
+territories.BM=Bermudas
+territories.014=\u00c1frica Oriental
+territories.BL=San Bartolom\u00e9
+territories.013=Am\u00e9rica Central
+territories.NU=Niue
+territories.BJ=Benin
+territories.011=\u00c1frica Occidental
+territories.BI=Burundi
+territories.172=Comunidade de Estados Independentes
+territories.BH=Bahrein
+territories.NR=Nauru
+territories.BG=Bulgaria
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=B\u00e9lxica
+territories.ZZ=rexi\u00f3n desco\u00f1ecida ou non v\u00e1lida
+territories.NO=Noruega
+territories.BD=Bangladesh
+territories.BB=Barbados
+territories.ZW=Cimbabue
+territories.NL=Pa\u00edses Baixos
+territories.BA=Bosnia e Hercegovina
+territories.NI=Nicaragua
+territories.NG=Nixeria
+territories.NF=Illa Norfolk
+territories.AZ=Acerbaix\u00e1n
+territories.NE=N\u00edxer
+territories.AX=Illas Aland
+territories.NC=Nova Caledonia
+territories.AW=Aruba
+territories.ZM=Zambia
+territories.NA=Namibia
+territories.AU=Australia
+territories.AT=Austria
+territories.AS=Samoa Americana
+territories.AR=Arxentina
+territories.AQ=Ant\u00e1rtida
+territories.009=Ocean\u00eda
+territories.MZ=Mozambique
+territories.AO=Angola
+territories.MY=Malaisia
+territories.AN=Antillas Holandesas
+territories.MX=M\u00e9xico
+territories.AM=Armenia
+territories.005=Sudam\u00e9rica
+territories.MW=Malaui
+territories.AL=Albania
+territories.MV=Maldivas
+territories.003=Norteam\u00e9rica
+territories.ZA=Sud\u00e1frica
+territories.MU=Mauricio
+territories.002=\u00c1frica
+territories.MT=Malta
+territories.AI=Anguila
+territories.001=Mundo
+territories.MS=Montserrat
+territories.MR=Mauritania
+territories.AG=Antiga e Barbuda
+territories.MQ=Martinica
+territories.AF=Afganist\u00e1n
+territories.MP=Illas Marianas do norte
+territories.AE=Emiratos \u00c1rabes Unidos
+territories.MO=Macau
+territories.AD=Andorra
+territories.MN=Mongolia
+territories.MM=Myanmar
+territories.ML=Mali
+territories.MK=Macedonia
+territories.YT=Mayotte
+territories.MH=Illas Marshall
+territories.MG=Madagascar
+territories.MF=San Marti\u00f1o
+territories.ME=Montenegro
+territories.MD=Moldova
+territories.MC=M\u00f3naco
+territories.MA=Marrocos
+territories.YE=Iemen
+territories.LY=Libia
+territories.LV=Letonia
+territories.155=Europa Occidental
+territories.LU=Luxemburgo
+territories.154=Europa Septentrional
+territories.LT=Lituania
+territories.LS=Lesotho
+territories.LR=Liberia
+territories.151=Europa do Leste
+territories.150=Europa
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Santa Luc\u00eda
+territories.LB=L\u00edbano
+territories.LA=Laos
+territories.KZ=Kazakhstan
+territories.KY=Illas Caim\u00e1n
+territories.KW=Kuwait
+territories.145=Asia Occidental
+territories.143=Asia Central
+territories.142=Asia
+territories.KR=Corea do Sur
+territories.KP=Corea do Norte
+territories.KN=San Cristovo e Nevis
+territories.KM=Comores
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Cambodia
+territories.KG=Quirguicist\u00e1n
+territories.KE=Quenia
+territories.WF=Wallis e Futuna
+territories.JP=Xap\u00f3n
+territories.JO=Xordania
+territories.JM=Xamaica
+territories.VU=Vanuatu
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VI=Illas Virxes Estadounidenses
+territories.VG=Illas Virxes Brit\u00e1nicas
+territories.VE=Venezuela
+territories.VC=San Vicente e Granadinas
+territories.VA=Cidade do Vaticano
+territories.IT=Italia
+territories.IS=Islandia
+territories.IR=Ir\u00e1n
+territories.IQ=Iraq
+territories.UZ=Uzbekist\u00e1n
+territories.IO=Territorio Brit\u00e1nico do Oc\u00e9ano \u00cdndico
+territories.UY=Uruguai
+territories.IN=India
+territories.IM=Illa de Man
+territories.IL=Israel
+territories.US=Estados Unidos de Am\u00e9rica
+territories.IE=Irlanda
+territories.ID=Indonesia
+territories.UM=Illas Menores Distantes dos EUA.
+territories.UG=Uganda
+territories.UA=Ucra\u00edna
+territories.HU=Hungr\u00eda
+territories.HT=Hait\u00ed
+territories.HR=Croacia
+territories.TZ=Tanzania
+territories.HN=Honduras
+territories.HM=Illa Heard e Illas McDonald
+territories.TW=Taiw\u00e1n
+territories.TV=Tuvalu
+territories.HK=Hong Kong
+territories.TT=Trindade e Tobago
+territories.TR=Turqu\u00eda
+territories.TO=Tonga
+territories.TN=Tunisia
+territories.TM=Turkmenist\u00e1n
+languages.ast=Asturiano
+languages.la=Lat\u00edn
+languages.xh=Xhosa
+languages.ky=Kyrgiz
+languages.ku=Kurdo
+languages.ko=Coreano
+languages.kn=Kannada
+languages.km=Cambodiano
+languages.en_GB=Ingl\u00e9s brit\u00e1nico
+languages.grc=Grego antigo
+languages.art=Lingua artificial
+languages.ka=Xeorxiano
+languages.gem=Lingua xerm\u00e1nica
+languages.afa=Lingua afro-asi\u00e1tica
+languages.jv=Xavan\u00e9s
+languages.arc=Arameo
+languages.cel=Lingua c\u00e9ltica
+languages.ja=Xapon\u00e9s
+languages.tut=Lingua altaica
+languages.vi=Vietnamita
+languages.it=Italiano
+languages.is=Island\u00e9s
+languages.uz=Uzbeco
+languages.ur=Urd\u00fa
+languages.id=Indonesio
+languages.ia=Interlingua
+languages.uk=Ucra\u00edno
+languages.ug=Uighur
+languages.fiu=Lingua finno-\u00fagrica
+languages.hy=Armenio
+languages.und=Lingua desco\u00f1ecida ou non v\u00e1lida
+languages.nub=Lingua nubia
+languages.es_ES=Castel\u00e1n
+languages.hu=H\u00fangaro
+languages.phi=Lingua filipina
+languages.hr=Croata
+languages.fil=Filipino
+languages.apa=Lingua apache
+languages.tw=Twi
+languages.hi=Hindi
+languages.tr=Turco
+languages.he=Hebreo
+languages.sai=Lingua india sudamericana
+languages.tl=Tagalo
+languages.ti=Tigri\u00f1a
+languages.th=Tailand\u00e9s
+languages.te=Telugu
+languages.ta=Tamil
+languages.gu=Guxaratiano
+languages.ine=Lingua indoeuropea
+languages.gn=Guaran\u00ed
+languages.inc=Lingua \u00edndica
+languages.sw=Suaxili
 languages.gl=galego
+languages.sv=Sueco
+languages.su=Sondan\u00e9s
+languages.st=Sesotho
+languages.sr=Serbio
+languages.en_CA=Ingl\u00e9s canadiano
+languages.sq=Alban\u00e9s
+languages.so=Somal\u00ed
+languages.gd=Ga\u00e9lico escoc\u00e9s
+languages.sl=Esloveno
+languages.ga=Irland\u00e9s
+languages.sk=Eslovaco
+languages.si=Sinhal\u00e9s
+languages.sh=Serbocroata
+languages.fy=Fris\u00f3n
+languages.sd=Sindhi
+languages.cau=Lingua cauc\u00e1sica
+languages.sa=S\u00e1nscrito
+languages.fr=Franc\u00e9s
+languages.sla=Lingua esl\u00e1vica
+languages.fo=Faro\u00e9s
+languages.ru=Ruso
+languages.cai=Lingua india centroamericana
+languages.fi=Fin\u00e9s
+languages.ro=Roman\u00e9s
+languages.fa=Persa
+languages.pt_PT=Portugu\u00e9s ib\u00e9rico
+languages.nl_BE=Flamenco
+languages.es_419=Espa\u00f1ol latinoamericano
+languages.en_AU=Ingl\u00e9s australiano
+languages.eu=\u00c9uscaro
+languages.et=Estoniano
+languages.es=Espa\u00f1ol
+languages.eo=Esperanto
+languages.en=Ingl\u00e9s
+languages.el=Grego
+languages.alg=Lingua algonquina
+languages.pt=Portugu\u00e9s
+languages.pt_BR=Portugu\u00e9s brasileiro
+languages.ps=Pashto
+languages.de=Alem\u00e1n
+languages.pl=Polaco
+languages.da=Dinamarqu\u00e9s
+languages.cy=Gal\u00e9s
+languages.pa=Punjabi
+languages.cu=Eslavo eclesi\u00e1stico
+languages.cs=Checo
+languages.mis=Lingua miscel\u00e1nea
+languages.de_CH=Alem\u00e1n su\u00edzo
+languages.or=Orissa
+languages.roa=Lingua rom\u00e1nica
+languages.ca=Catal\u00e1n
+languages.mul=Varias linguas
+languages.oc=Occitano
+languages.bs=Bosnio
+languages.br=Bret\u00f3n
+languages.zh_Hans=Chin\u00e9s simplificado
+languages.bn=Bengal\u00ed
+languages.zh_Hant=Chin\u00e9s tradicional
+languages.bh=Bihariano
+languages.bg=B\u00falgaro
+languages.be=Bielorruso
+languages.no=Noruegu\u00e9s
+languages.nn=Noruegu\u00e9s nynorsk
+languages.nl=Holand\u00e9s
+languages.zu=Zul\u00fa
+languages.sgn=Lingua de signos
+languages.az=Azerbaiano
+languages.ne=Nepal\u00ed
+languages.nb=Noruegu\u00e9s Bokmal
+languages.de_AT=Alem\u00e1n de Austria
+languages.aus=Lingua australiana
+languages.as=Assam\u00e9s
+languages.ar=\u00c1rabe
+languages.zh=Chin\u00e9s
+languages.zxx=Sen contido ling\u00fc\u00edstico
+languages.an=Aragon\u00e9s
+languages.am=Am\u00e1rico
+languages.nai=Lingua india norteamericana
+languages.mt=Malt\u00e9s
+languages.ms=Malaio
+languages.mr=Marathi
+languages.af=Afrikaans
+languages.ssa=Lingua do Nilo-S\u00e1hara
+languages.mn=Mongol
+languages.en_US=Ingl\u00e9s americano
+languages.ml=Malaialam
+languages.mk=Macedonio
+languages.egy=Exipcio antigo
+languages.tlh=Clingon
+languages.yi=Yiddish
+languages.bat=Lingua b\u00e1ltica
+languages.lv=Let\u00f3n
+languages.lt=Lituano
+languages.fr_CH=Franc\u00e9s su\u00edzo
+languages.lo=Laotiano
+languages.ln=Lingala
+languages.fr_CA=Franc\u00e9s canadiano
+languages.sem=Lingua semita
index 8627e5ca6aa4b7b168dae8bed546d57b013a728a..aed977c84444a9679b94b680155c5d1208c64fdd 100644 (file)
 # This file was automatically generated by gnu.localegen from CLDR.
 
 zeroDigit=\u0ae6
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
 currenciesSymbol.INR=\u0ab0\u0ac1
-shortMonths=\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1®\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1®\u0aae\u0abe\u0ab0\u0acd\u0a9a®\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2®\u0aae\u0ac7®\u0a9c\u0ac2\u0aa8®\u0a9c\u0ac1\u0ab2\u0abe\u0a88®\u0a91\u0a97\u0ab8\u0acd\u0a9f®\u0ab8\u0aaa\u0acd\u0a9f\u0ac7®\u0a91\u0a95\u0acd\u0a9f\u0acb®\u0aa8\u0ab5\u0ac7®\u0aa1\u0abf\u0ab8\u0ac7®®
-months=\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0®\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0®\u0aae\u0abe\u0ab0\u0acd\u0a9a®\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2®\u0aae\u0ac7®\u0a9c\u0ac2\u0aa8®\u0a9c\u0ac1\u0ab2\u0abe\u0a88®\u0a91\u0a97\u0ab8\u0acd\u0a9f®\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0®\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0®\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0®\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0®®
-shortWeekdays=®\u0ab0\u0ab5\u0abf®\u0ab8\u0acb\u0aae®\u0aae\u0a82\u0a97\u0ab3®\u0aac\u0ac1\u0aa7®\u0a97\u0ac1\u0ab0\u0ac1®\u0ab6\u0ac1\u0a95\u0acd\u0ab0®\u0ab6\u0aa8\u0abf®
-weekdays=®\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0®\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0®\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0®\u0aac\u0ac1\u0aa7\u0ab5\u0abe\u0ab0®\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0®\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0®\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0®
-ampms=\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u00a0\u0aae\u0aa7\u0acd\u0aaf\u0abe\u0ab9\u0acd\u0aa8®\u0a89\u0aa4\u0acd\u0aa4\u0ab0\u00a0\u0aae\u0aa7\u0acd\u0aaf\u0abe\u0ab9\u0acd\u0aa8®
+shortMonths=\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u00ae\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u00ae\u0aae\u0abe\u0ab0\u0acd\u0a9a\u00ae\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2\u00ae\u0aae\u0ac7\u00ae\u0a9c\u0ac2\u0aa8\u00ae\u0a9c\u0ac1\u0ab2\u0abe\u0a88\u00ae\u0a91\u0a97\u0ab8\u0acd\u0a9f\u00ae\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u00ae\u0a91\u0a95\u0acd\u0a9f\u0acb\u00ae\u0aa8\u0ab5\u0ac7\u00ae\u0aa1\u0abf\u0ab8\u0ac7\u00ae\u00ae
+months=\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0\u00ae\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0\u00ae\u0aae\u0abe\u0ab0\u0acd\u0a9a\u00ae\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2\u00ae\u0aae\u0ac7\u00ae\u0a9c\u0ac2\u0aa8\u00ae\u0a9c\u0ac1\u0ab2\u0abe\u0a88\u00ae\u0a91\u0a97\u0ab8\u0acd\u0a9f\u00ae\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0\u00ae\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0\u00ae\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0\u00ae\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0\u00ae\u00ae
+shortWeekdays=\u00ae\u0ab0\u0ab5\u0abf\u00ae\u0ab8\u0acb\u0aae\u00ae\u0aae\u0a82\u0a97\u0ab3\u00ae\u0aac\u0ac1\u0aa7\u00ae\u0a97\u0ac1\u0ab0\u0ac1\u00ae\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u00ae\u0ab6\u0aa8\u0abf\u00ae
+weekdays=\u00ae\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0\u00ae\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0\u00ae\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0\u00ae\u0aac\u0ac1\u0aa7\u0ab5\u0abe\u0ab0\u00ae\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0\u00ae\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0\u00ae\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u00a0\u0aae\u0aa7\u0acd\u0aaf\u0abe\u0ab9\u0acd\u0aa8\u00ae\u0a89\u0aa4\u0acd\u0aa4\u0ab0\u00a0\u0aae\u0aa7\u0acd\u0aaf\u0abe\u0ab9\u0acd\u0aa8\u00ae
+shortDateFormat=d-MM-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=hh:mm a
+mediumTimeFormat=hh:mm:ss a
+longTimeFormat=hh:mm:ss a z
+fullTimeFormat=hh:mm:ss a z
 territories.TR=\u0aa4\u0ac1\u0ab0\u0acd\u0a95\u0ab8\u0acd\u0aa4\u0abe\u0aa8
 territories.IN=\u0aad\u0abe\u0ab0\u0aa4
-territories.GE=\u0a9c\u0acd\u0aaf\u0acb\u0ab0\u0acd\u0a9c\u0ac0\u0aaf\u0abe
 territories.CN=\u0a9a\u0ac0\u0aa8
+territories.GE=\u0a9c\u0acd\u0aaf\u0acb\u0ab0\u0acd\u0a9c\u0ac0\u0aaf\u0abe
 territories.DE=\u0a9c\u0aae\u0abf\u0aa8\u0ac0
 territories.NP=\u0aa8\u0ac7\u0aaa\u0abe\u0ab3
 territories.TM=\u0aa4\u0ac1\u0ab0\u0acd\u0a95\u0acd\u0aae\u0aa8\u0abf\u0ab8\u0acd\u0aa4\u0abe\u0aa8
 territories.US=\u0ab8\u0a82\u0aaf\u0ac1\u0a95\u0aa4 \u0ab0\u0abe\u0a9c\u0acd\u0aaf \u0a85\u0aae\u0ac7\u0ab0\u0abf\u0a95\u0abe
+territories.EG=\u0a88\u0a9c\u0ac0\u0aaa\u0acd\u0aa4
 territories.PK=\u0a95\u0ab0\u0abe\u0a82\u0a9a\u0ac0
-territories.EG=\u0aae\u0abf\u0ab8\u0ab0
+languages.es=\u0ab8\u0acd\u0aaa\u0ac7\u0aa8\u0abf\u0ab8
+languages.ku=\u0a95\u0ac1\u0ab0\u0acd\u0aa1\u0abf\u0ab6
+languages.eo=\u0a8d\u0ab8\u0acd\u0aaa\u0ac5\u0ab0\u0ac7\u0aa8\u0acd\u0aa4\u0acb
+languages.en=\u0a85\u0a82\u0a97\u0acd\u0ab0\u0ac7\u0a9c\u0ac0
+languages.el=\u0a97\u0acd\u0ab0\u0ac0\u0a95
+languages.ko=\u0a95\u0acb\u0ab0\u0ac0\u0aaf\u0aa8
+languages.kn=\u0a95\u0aa8\u0acd\u0aa8\u0aa1
+languages.km=\u0a95\u0aae\u0acd\u0aac\u0acb\u0aa1\u0abf\u0aaf\u0aa8
+languages.ka=\u0a9c\u0acd\u0aaf\u0acb\u0ab0\u0acd\u0a9c\u0abf\u0aaf\u0aa8
+languages.jv=\u0a9c\u0abe\u0ab5\u0abe\u0aa8\u0ac0\u0a9d
+languages.fil=\u0aab\u0abf\u0ab2\u0abf\u0aaa\u0abf\u0aa8\u0acb
+languages.pt=\u0aaa\u0acb\u0ab0\u0acd\u0a9a\u0a97\u0ac0\u0a9d
+languages.ps=\u0aaa\u0abe\u0ab6\u0acd\u0aa4\u0ac1\u0aa8
+languages.de=\u0a9c\u0ab0\u0acd\u0aae\u0aa8
+languages.pl=\u0aaa\u0acb\u0ab2\u0abf\u0ab6
+languages.da=\u0aa1\u0ac5\u0aa8\u0abf\u0ab6
+languages.ja=\u0a9c\u0abe\u0aaa\u0abe\u0aa8\u0ac0
+languages.vi=\u0ab5\u0abf\u0aaf\u0ac7\u0aa4\u0aa8\u0abe\u0aae\u0ac0
+languages.cy=\u0ab5\u0ac7\u0ab2\u0acd\u0ab6
+languages.pa=\u0aaa\u0a82\u0a9c\u0abe\u0aac\u0ac0
+languages.cs=\u0a9a\u0ac7\u0a95
+languages.it=\u0a87\u0a9f\u0abe\u0ab2\u0abf\u0aaf\u0aa8
+languages.is=\u0a86\u0a87\u0ab8\u0ab2\u0ac5\u0aa8\u0acd\u0aa1\u0abf\u0a95
+languages.uz=\u0a89\u0a9d\u0aac\u0ac7\u0a95
+languages.or=\u0a8a\u0aa1\u0abf\u0aaf\u0abe
+languages.ca=\u0a95\u0ac7\u0a9f\u0ab2\u0ac5\u0aa8
+languages.id=\u0a87\u0aa8\u0acd\u0aa1\u0acb\u0aa8\u0ac7\u0ab6\u0abf\u0aaf\u0aa8
+languages.uk=\u0aaf\u0ac1\u0a95\u0acd\u0ab0\u0ac7\u0aa8\u0abf\u0aaf\u0aa8
+languages.ia=\u0a87\u0aa8\u0acd\u0a9f\u0ab0\u0ab2\u0abf\u0a82\u0a97\u0abe
+languages.bho=\u0aad\u0acb\u0a9c\u0aaa\u0ac1\u0ab0\u0ac0
+languages.oc=\u0a91\u0a95\u0acd\u0ab8\u0ac0\u0a9f\u0ac5\u0aa8
+languages.ug=\u0ab5\u0abf\u0a97\u0abc\u0ac1\u0ab0
+languages.hy=\u0a86\u0ab0\u0acd\u0aae\u0ac7\u0aa8\u0abf\u0aaf\u0aa8
+languages.bs=\u0aac\u0ac9\u0a9d\u0acd\u0aa8\u0abf\u0aaf\u0aa8
+languages.br=\u0aac\u0acd\u0ab0\u0ac7\u0a9f\u0acb\u0aa8
+languages.hu=\u0ab9\u0a82\u0a97\u0ac7\u0ab0\u0abf\u0aaf\u0aa8
+languages.pt_PT=\u0aaa\u0acb\u0ab0\u0acd\u0a9a\u0a97\u0ac0\u0a9d (\u0aaa\u0acb\u0ab0\u0acd\u0a9a\u0a97\u0ab2)
+languages.bn=\u0aac\u0a82\u0a97\u0abe\u0ab3\u0ac0
+languages.hr=\u0a95\u0acd\u0ab0\u0acb\u0a8f\u0ab6\u0abf\u0aaf\u0aa8
+languages.tw=\u0a9f\u0acd\u0ab5\u0ac0
+languages.bh=\u0aac\u0abf\u0ab9\u0abe\u0ab0\u0ac0
+languages.bg=\u0aac\u0ab2\u0acd\u0a97\u0ac7\u0ab0\u0abf\u0aaf\u0aa8
+languages.no=\u0aa8\u0acb\u0ab0\u0acd\u0ab5\u0ac7\u0a9c\u0abf\u0aaf\u0aa8
+languages.be=\u0aac\u0ac7\u0ab2\u0ab0\u0ac2\u0ab6\u0abf\u0aaf\u0aa8
+languages.nn=\u0aa8\u0acb\u0ab0\u0acd\u0ab5\u0ac7\u0a9c\u0abf\u0aaf\u0aa8 (\u0aa8\u0ac1\u0aa8\u0acb\u0ab0\u0acd\u0ab8\u0acd\u0a95)
+languages.hi=\u0ab9\u0abf\u0aa8\u0acd\u0aa6\u0ac0
+languages.tr=\u0aa4\u0ac1\u0ab0\u0acd\u0a95\u0ac0
+languages.nl=\u0aa1\u0a9a\u0acd\u0a9a
+languages.zu=\u0a9d\u0ac1\u0ab2\u0ac1
+languages.he=\u0ab9\u0ac0\u0aac\u0acd\u0ab0\u0ac2
+languages.tk=\u0aa4\u0ac1\u0ab0\u0acd\u0a95\u0aae\u0abf\u0aa8
+languages.ne=\u0aa8\u0ac7\u0aaa\u0abe\u0ab3\u0ac0
+languages.az=\u0a8d\u0a9d\u0ab0\u0aac\u0ac8\u0a9c\u0abe\u0aa8\u0ac0
+languages.ti=\u0a9f\u0a97\u0acd\u0ab0\u0abf\u0aa8\u0acd\u0aaf\u0abe
+languages.th=\u0aa5\u0abe\u0a87
+languages.te=\u0aa4\u0ac7\u0ab2\u0ac1\u0a97\u0ac1
+languages.as=\u0a86\u0ab8\u0abe\u0aae\u0ac0
+languages.ar=\u0a85\u0ab0\u0aac\u0ac0
+languages.ta=\u0aa4\u0aae\u0abf\u0ab2
 languages.gu=\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0
+languages.am=\u0a8d\u0aae\u0acd\u0ab9\u0ac5\u0ab0\u0abf\u0a95 (\u0a88\u0aa5\u0abf\u0aaf\u0acb\u0aaa\u0abf\u0aaf\u0abe)
+languages.mt=\u0aae\u0abe\u0ab2\u0acd\u0a9f\u0ac0
+languages.ms=\u0aae\u0ab2\u0aaf
+languages.gn=\u0a97\u0acd\u0ab5\u0abe\u0ab0\u0aa8\u0ac0
+languages.sw=\u0ab8\u0acd\u0ab5\u0abe\u0ab9\u0abf\u0ab2\u0ac0
+languages.mr=\u0aae\u0ab0\u0abe\u0aa0\u0ac0
+languages.sv=\u0ab8\u0acd\u0ab5\u0ac0\u0aa1\u0ac0\u0ab6
+languages.gl=\u0a97\u0ac5\u0ab2\u0abf\u0ab6\u0abf\u0aaf\u0aa8
+languages.su=\u0ab8\u0ac1\u0aa8\u0acd\u0aa1\u0aa8\u0ac0\u0a9d
+languages.af=\u0a86\u0aab\u0acd\u0ab0\u0abf\u0a95\u0ac0
+languages.st=\u0ab8\u0ac7\u0ab8\u0acb\u0aa5\u0acb
+languages.mn=\u0aae\u0acb\u0a82\u0a97\u0acb\u0ab2\u0abf\u0aaf\u0aa8
+languages.sr=\u0ab8\u0ab0\u0acd\u0aac\u0abf\u0aaf\u0aa8
+languages.sq=\u0a86\u0ab2\u0acd\u0aac\u0ac7\u0aa8\u0abf\u0aaf\u0aa8
+languages.ml=\u0aae\u0ab3\u0aaf\u0abe\u0ab2\u0aae
+languages.mk=\u0aae\u0ac5\u0ab8\u0abf\u0aa1\u0acb\u0aa8\u0abf\u0aaf\u0aa8
+languages.so=\u0ab8\u0acb\u0aae\u0abe\u0ab2\u0ac0
+languages.gd=\u0a97\u0ac7\u0ab2\u0abf\u0a95 (\u0ab8\u0acd\u0a95\u0ac9\u0a9f\u0ab2\u0ac5\u0aa8\u0acd\u0aa1)
+languages.sl=\u0ab8\u0acd\u0ab2\u0acb\u0ab5\u0ac7\u0aa8\u0abf\u0aaf\u0aa8
+languages.sk=\u0ab8\u0acd\u0ab2\u0acb\u0ab5\u0ac5\u0a95
+languages.ga=\u0a86\u0aaf\u0ab0\u0abf\u0ab6
+languages.si=\u0ab8\u0abf\u0a82\u0ab9\u0abe\u0ab2\u0ac0
+languages.sh=\u0ab8\u0ab0\u0acd\u0aac\u0acb-\u0a95\u0acd\u0ab0\u0acb\u0a8f\u0ab6\u0acd\u0aaf\u0aa8
+languages.pt_BR=\u0aaa\u0acb\u0ab0\u0acd\u0a9a\u0a97\u0ac0\u0a9d (\u0aac\u0acd\u0ab0\u0abe\u0a9d\u0abf\u0ab2)
+languages.yi=\u0aaf\u0abf\u0aa1\u0abf\u0ab6
+languages.sd=\u0ab8\u0abf\u0a82\u0aa7\u0ac0
+languages.fy=\u0aab\u0acd\u0ab0\u0abf\u0a9d\u0aa8
+languages.sa=\u0ab8\u0a82\u0ab8\u0acd\u0a95\u0ac3\u0aa4
+languages.fr=\u0aab\u0acd\u0ab0\u0ac7\u0a82\u0a9a
+languages.lv=\u0ab2\u0abe\u0aa4\u0ab5\u0ac0
+languages.lt=\u0ab2\u0abf\u0aa5\u0acd\u0ab5\u0ac7\u0aa8\u0abf\u0aaf\u0aa8
+languages.fo=\u0aab\u0abe\u0ab0\u0acb\u0a88\u0a9d
+languages.ru=\u0ab0\u0ac2\u0ab8\u0ac0
+languages.lo=\u0ab2\u0ac5\u0a93\u0aa5\u0abf\u0aaf\u0aa8
+languages.ln=\u0ab2\u0abf\u0a82\u0a97\u0abe\u0ab2\u0abe
+languages.fi=\u0aab\u0abf\u0aa8\u0acd\u0aa8\u0abf\u0ab6
+languages.ro=\u0ab0\u0acb\u0aae\u0ac5\u0aa8\u0abf\u0aaf\u0aa8
+languages.fa=\u0aab\u0abe\u0ab0\u0ab8\u0ac0 (\u0aaa\u0ab0\u0acd\u0ab6\u0abf\u0aaf\u0aa8)
+languages.la=\u0ab2\u0ac5\u0a9f\u0abf\u0aa8
+languages.xh=\u0a95\u0acb\u0ab8\u0abe
+languages.eu=\u0aac\u0abe\u0ab8\u0acd\u0a95
+languages.ky=\u0a95\u0abf\u0ab0\u0acd\u0a97\u0abf\u0a9d
+languages.et=\u0a8f\u0ab8\u0acd\u0a9f\u0acb\u0aa8\u0abf\u0aaf\u0aa8
index 3ee6a8bd5bf7efbfffac311e42a9c384bf3e2717..96e5910bd34cdda972b431f6046ed44b55f3f10e 100644 (file)
@@ -5,11 +5,20 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-shortMonths=J-guer®T-arree®Mayrnt®Avrril®Boaldyn®M-souree®J-souree®Luanistyn®M-fouyir®J-fouyir®M.Houney®M.Nollick®®
-months=Jerrey-geuree®Toshiaght-arree®Mayrnt®Averil®Boaldyn®Mean-souree®Jerrey-souree®Luanistyn®Mean-fouyir®Jerrey-fouyir®Mee Houney®Mee ny Nollick®®
-shortWeekdays=®Jed®Jel®Jem®Jerc®Jerd®Jeh®Jes®
-weekdays=®Jedoonee®Jelhein®Jemayrt®Jercean®Jerdein®Jeheiney®Jesarn®
-eras=RC®AD®
-ampms=a.m.®p.m.®
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+shortMonths=J-guer\u00aeT-arree\u00aeMayrnt\u00aeAvrril\u00aeBoaldyn\u00aeM-souree\u00aeJ-souree\u00aeLuanistyn\u00aeM-fouyir\u00aeJ-fouyir\u00aeM.Houney\u00aeM.Nollick\u00ae\u00ae
+months=Jerrey-geuree\u00aeToshiaght-arree\u00aeMayrnt\u00aeAveril\u00aeBoaldyn\u00aeMean-souree\u00aeJerrey-souree\u00aeLuanistyn\u00aeMean-fouyir\u00aeJerrey-fouyir\u00aeMee Houney\u00aeMee ny Nollick\u00ae\u00ae
+shortWeekdays=\u00aeJed\u00aeJel\u00aeJem\u00aeJerc\u00aeJerd\u00aeJeh\u00aeJes\u00ae
+weekdays=\u00aeJedoonee\u00aeJelhein\u00aeJemayrt\u00aeJercean\u00aeJerdein\u00aeJeheiney\u00aeJesarn\u00ae
+eras=RC\u00aeAD\u00ae
+ampms=a.m.\u00aep.m.\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=MMM dd, yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
 territories.GB=Rywvaneth Unys
 languages.gv=Gaelg
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha.properties
new file mode 100644 (file)
index 0000000..cfb3003
--- /dev/null
@@ -0,0 +1,136 @@
+# LocaleInformation_ha.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.GHC=Sidi
+currenciesDisplayName.NGN=Neira
+currenciesDisplayName.XOF=Sefa
+currenciesSymbol.NGN=\u20a6
+currenciesSymbol.XOF=CFA
+shortMonths=Jan\u00aeFab\u00aeMar\u00aeAfr\u00aeMay\u00aeYun\u00aeYul\u00aeAug\u00aeSat\u00aeOkt\u00aeNuw\u00aeDis\u00ae\u00ae
+months=Janairu\u00aeFabrairu\u00aeMaris\u00aeAfrilu\u00aeMayu\u00aeYuni\u00aeYuli\u00aeAugusta\u00aeSatumba\u00aeOktoba\u00aeNuwamba\u00aeDisamba\u00ae\u00ae
+shortWeekdays=\u00aeLah\u00aeLit\u00aeTal\u00aeLar\u00aeAlh\u00aeJum\u00aeAsa\u00ae
+weekdays=\u00aeLahadi\u00aeLitini\u00aeTalata\u00aeLaraba\u00aeAlhamis\u00aeJumma'a\u00aeAsabar\u00ae
+eras=GM\u00aeM\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=d/M/yy
+mediumDateFormat=d MMM, yyyy
+longDateFormat=d MMMM, yyyy
+fullDateFormat=EEEE, d MMMM, yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.NG=Nijeriya
+languages.es=Mutanen Espanya
+languages.ku=Kurdanci
+languages.eo=D'an/'Yar Kabilar Andalus
+languages.en=Turanci
+languages.el=Girkanci
+languages.ko=Yaren mutanen Koriya
+languages.kn=Dan/'Yar Kabilar Kannada
+languages.km=Kambodiyanci
+languages.ka=Jojiyanci
+languages.jv=Javanisanci
+languages.fil=Dan Filifin
+languages.pt=Yaren mutanen Portugal
+languages.ps=Pashtanci
+languages.de=Jamusanchi
+languages.pl=Yaren mutanen Poland
+languages.da=Danish
+languages.tlh=Klingon
+languages.ja=Jafananci
+languages.vi=K'abilan Biyetnam
+languages.cy=Kabilar Welsh
+languages.pa=Dan/'Yar Garin Punjab
+languages.cs=Yaren Jamhuriyar Cek
+languages.it=Italiyanci
+languages.is=Yaren mutanen Iceland
+languages.uz=Uzbek
+languages.or=Oriyanci
+languages.ur=Urdu
+languages.ca=Kataloniyanci
+languages.ie=Intagulanci
+languages.id=Indonesiyan
+languages.uk=Dan Ukirain
+languages.ia=Yare Tsakanin Kasashe
+languages.oc=Ositanci
+languages.ug=Ugiranci
+languages.hy=Armeniyanci
+languages.bs=Bosniyanci
+languages.br=Buretananci
+languages.hu=Hongeriyanci
+languages.pt_PT=Yaren Kasar Portugal
+languages.bn=Dan Bengal
+languages.hr=Kuroshiyan
+languages.tw=Tiwiniyanci
+languages.bh=Bihari
+languages.bg=Bulgeriyan
+languages.no=Yaren mutanen Norway
+languages.be=Belarushiyanci
+languages.nn=Yaren Kasar Norway
+languages.hi=Bahinde
+languages.tr=Baturke
+languages.nl=Yaren mutanen Holland
+languages.zu=Bazule
+languages.he=Yahudanci
+languages.tk=Tukmenistanci
+languages.ha=Haoussa
+languages.ne=D'an/'Yar Kabilar Nepal
+languages.az=Azerbaijanci
+languages.ti=Tigriyanci
+languages.th=Tayanci
+languages.te=D'an/'Yar Kabilar Telug
+languages.as=Asamisanci
+languages.ar=Harshen Larabci
+languages.ta=D'an/'Yar Kabilar Tamil
+languages.gu=Gujarati
+languages.am=Amharic
+languages.mt=Harshen Maltis
+languages.ms=Dan Kabilar Male
+languages.gn=Guwaraniyanci
+languages.sw=Harshen Suwahili
+languages.mr=K'abilan Marathi
+languages.sv=Yaren mutanen Sweden
+languages.gl=Bagalike
+languages.su=Sundanese
+languages.af=Afirkanci
+languages.st=Sesotanci
+languages.mn=Mongolian
+languages.sr=Sabiyan
+languages.sq=D'an/'Yar Kabilar Albaniya
+languages.ml=Kabilar Maleyalam
+languages.mk=Dan Masedoniya
+languages.so=Somaali
+languages.gd=K'abilan Scots Gaelic
+languages.sl=Basulabe
+languages.sk=Basulake
+languages.ga=Dan Ailan
+languages.si=Sinhalanci
+languages.sh=Kuroweshiyancin-Sabiya
+languages.pt_BR=Fotigis (Burazil)
+languages.sd=Sindiyanci
+languages.fy=K'abilan Firsi
+languages.sa=sanskrit
+languages.fr=Faranshi
+languages.lv=Latbiyanci
+languages.lt=Lituweniyanci
+languages.fo=Faroese
+languages.ru=Rashanci
+languages.lo=Laothian
+languages.ln=Lingala
+languages.fi=Yaren mutanen Finland
+languages.ro=Romaniyanci
+languages.fa=Persian
+languages.la=Dan Kabilar Latin
+languages.xh=Bazosa
+languages.eu=Dan/'Yar Kabilar Bas
+languages.ky=Kirgizanci
+languages.et=Istoniyanci
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha_Arab.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha_Arab.properties
new file mode 100644 (file)
index 0000000..a02b755
--- /dev/null
@@ -0,0 +1,14 @@
+# LocaleInformation_ha_Arab.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=\u0646\u064e\u064a\u0652\u0631\u064e
+shortMonths=\u062c\u064e\u0646\u00ae\u06a2\u064e\u0628\u00ae\u0645\u064e\u0631\u00ae\u0623\u064e\u06a2\u0652\u0631\u00ae\u0645\u064e\u064a\u00ae\u064a\u064f\u0648\u0646\u00ae\u064a\u064f\u0648\u0644\u00ae\u0623\u064e\u063a\u064f\u00ae\u0633\u064e\u062a\u00ae\u0623\u064f\u0643\u0652\u062a\u00ae\u0646\u064f\u0648\u00ae\u062f\u0650\u0633\u00ae\u00ae
+months=\u062c\u064e\u0646\u064e\u064a\u0652\u0631\u064f\u00ae\u06a2\u064e\u0628\u0652\u0631\u064e\u064a\u0652\u0631\u064f\u00ae\u0645\u064e\u0631\u0650\u0633\u0652\u00ae\u0623\u064e\u06a2\u0652\u0631\u0650\u0644\u064f\u00ae\u0645\u064e\u064a\u064f\u00ae\u064a\u064f\u0648\u0646\u0650\u00ae\u064a\u064f\u0648\u0644\u0650\u00ae\u0623\u064e\u063a\u064f\u0633\u0652\u062a\u064e\u00ae\u0633\u064e\u062a\u064f\u0645\u0652\u0628\u064e\u00ae\u0623\u064f\u0643\u0652\u062a\u0648\u064f\u0628\u064e\u00ae\u0646\u064f\u0648\u064e\u0645\u0652\u0628\u064e\u00ae\u062f\u0650\u0633\u064e\u0645\u0652\u0628\u064e\u00ae\u00ae
+shortWeekdays=\u00ae\u0644\u064e\u062d\u00ae\u0644\u0650\u062a\u00ae\u062a\u064e\u0644\u00ae\u0644\u064e\u0631\u00ae\u0623\u064e\u0644\u0652\u062d\u00ae\u062c\u064f\u0645\u00ae\u0623\u064e\u0633\u064e\u00ae
+weekdays=\u00ae\u0644\u064e\u062d\u064e\u062f\u0650\u00ae\u0644\u0650\u062a\u0650\u0646\u0650\u0646\u0652\u00ae\u062a\u064e\u0644\u064e\u062a\u064e\u00ae\u0644\u064e\u0631\u064e\u0628\u064e\u00ae\u0623\u064e\u0644\u0652\u062d\u064e\u0645\u0650\u0633\u0652\u00ae\u062c\u064f\u0645\u064e\u0639\u064e\u00ae\u0623\u064e\u0633\u064e\u0628\u064e\u0631\u0652\u00ae
+eras=\u063a\u064e\u0628\u064e\u0646\u0650\u0646\u0652 \u0645\u0650\u0644\u064e\u062f\u0650\u00ae\u0645\u0650\u0644\u064e\u062f\u0650\u00ae
+ampms=A.M.\u00aeP.M.\u00ae
index ab0beb642d718159cfdd6f644ffb25bf7138844a..836436656c4936166fbb16f2a14e82ed55595f32 100644 (file)
@@ -5,10 +5,21 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-shortMonths=Ian.®Pep.®Mal.®\u02bbAp.®Mei®Iun.®Iul.®\u02bbAu.®Kep.®\u02bbOk.®Now.®Kek.®®
-months=Ianuali®Pepeluali®Malaki®\u02bbApelila®Mei®Iune®Iulai®\u02bbAukake®Kepakemapa®\u02bbOkakopa®Nowemapa®Kekemapa®®
-shortWeekdays=®LP®P1®P2®P3®P4®P5®P6®
-weekdays=®L\u0101pule®Po\u02bbakahi®Po\u02bbalua®Po\u02bbakolu®Po\u02bbah\u0101®Po\u02bbalima®Po\u02bbaono®
+currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
+shortMonths=Ian.\u00aePep.\u00aeMal.\u00ae\u02bbAp.\u00aeMei\u00aeIun.\u00aeIul.\u00ae\u02bbAu.\u00aeKep.\u00ae\u02bbOk.\u00aeNow.\u00aeKek.\u00ae\u00ae
+months=Ianuali\u00aePepeluali\u00aeMalaki\u00ae\u02bbApelila\u00aeMei\u00aeIune\u00aeIulai\u00ae\u02bbAukake\u00aeKepakemapa\u00ae\u02bbOkakopa\u00aeNowemapa\u00aeKekemapa\u00ae\u00ae
+shortWeekdays=\u00aeLP\u00aeP1\u00aeP2\u00aeP3\u00aeP4\u00aeP5\u00aeP6\u00ae
+weekdays=\u00aeL\u0101pule\u00aePo\u02bbakahi\u00aePo\u02bbalua\u00aePo\u02bbakolu\u00aePo\u02bbah\u0101\u00aePo\u02bbalima\u00aePo\u02bbaono\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=d/M/yy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE, d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.IT=\u02bb\u012ak\u0101lia
 territories.FR=Palani
 territories.RU=L\u016bkia
@@ -19,8 +30,8 @@ territories.IL=\u02bbIsera\u02bbela
 territories.AU=N\u016bh\u014dlani
 territories.MX=Mekiko
 territories.IE=\u02bbIlelani
-territories.CA=Kanak\u0101
 territories.GR=Helene
+territories.CA=Kanak\u0101
 territories.JP=I\u0101pana
 territories.DK=Kenemaka
 territories.NZ=Aotearoa
index 4195ce24852e953339fb5424e9eaf7c0d2d9b1d7..ec07da4be52e962fbf74d7f5ff895791152b9230 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.INR=\u05e8\u05d5\u05e4\u05d9 \u05d4\u05d5\u05d3\u05d9\u05ea
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u05d3\u05d9\u05e0\u05e8 \u05ea\u05d9\u05de\u05e0\u05d9
+currenciesDisplayName.KES=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05e7\u05e0\u05d9\u05d9\u05ea\u05d9
+currenciesDisplayName.TWD=\u05d3\u05d5\u05dc\u05e8 \u05d8\u05d0\u05d9\u05d9\u05d5\u05e0\u05d9 \u05d7\u05d3\u05e9
+currenciesDisplayName.LKR=\u05e8\u05d5\u05e4\u05d9 \u05e1\u05e8\u05d9 \u05dc\u05e0\u05e7\u05d9
+currenciesDisplayName.TJS=\u05e1\u05d5\u05de\u05d5\u05e0\u05d9 \u05d8\u05d2'\u05e7\u05d9\u05e1\u05d8\u05e0\u05d9
+currenciesDisplayName.RWF=\u05e4\u05e8\u05e0\u05e7 \u05e8\u05d5\u05d0\u05e0\u05d3\u05d9
+currenciesDisplayName.ERN=\u05e0\u05d0\u05e7\u05e4\u05d4
+currenciesDisplayName.SDP=\u05dc\u05d9\u05e8\u05d4 \u05e1\u05d5\u05d3\u05e0\u05d9\u05ea
+currenciesDisplayName.GRD=\u05d3\u05e8\u05db\u05de\u05d4
+currenciesDisplayName.AFN=\u05d0\u05e4\u05d2\u05e0\u05d9
+currenciesDisplayName.IEP=\u05dc\u05d9\u05e8\u05d4 \u05d0\u05d9\u05e8\u05d9\u05ea
+currenciesDisplayName.ARS=\u05e4\u05d6\u05d5 \u05d0\u05e8\u05d2\u05e0\u05d8\u05d9\u05e0\u05d0\u05d9
+currenciesDisplayName.ARP=\u05e4\u05d6\u05d5 \u05d0\u05e8\u05d2\u05e0\u05d8\u05d9\u05e0\u05d0\u05d9 (1983-1985)
+currenciesDisplayName.SDD=\u05d3\u05d9\u05e0\u05e8 \u05e1\u05d5\u05d3\u05e0\u05d9
+currenciesDisplayName.GEL=\u05dc\u05e8\u05d9
+currenciesDisplayName.CRC=\u05e7\u05d5\u05dc\u05d5\u05df
+currenciesDisplayName.FKP=\u05e4\u05d0\u05d5\u05e0\u05d3
+currenciesDisplayName.EEK=\u05e7\u05e8\u05d5\u05df \u05d0\u05e1\u05d8\u05d5\u05e0\u05d9
+currenciesDisplayName.MDL=\u05dc\u05d9\u05d0\u05d5 \u05de\u05d5\u05dc\u05d3\u05d5\u05d1\u05e0\u05d9
+currenciesDisplayName.HKD=\u05d3\u05d5\u05dc\u05e8 \u05d4\u05d5\u05e0\u05d2 \u05e7\u05d5\u05e0\u05d2\u05d9
+currenciesDisplayName.IQD=\u05d3\u05d9\u05e0\u05e8 \u05e2\u05d9\u05e8\u05e7\u05d9
+currenciesDisplayName.SCR=\u05e8\u05d5\u05e4\u05d9 \u05e1\u05d9\u05d9\u05e9\u05dc\u05d9
+currenciesDisplayName.VUV=\u05d5\u05d0\u05d8\u05d5
+currenciesDisplayName.KPW=\u05d5\u05d5\u05df \u05e6\u05e4\u05d5\u05df \u05e7\u05d5\u05e8\u05d0\u05e0\u05d9
+currenciesDisplayName.DKK=\u05db\u05ea\u05e8 \u05d3\u05e0\u05d9
+currenciesDisplayName.IDR=\u05e8\u05d5\u05e4\u05d9\u05d4 \u05d0\u05d9\u05e0\u05d3\u05d5\u05e0\u05d6\u05d9\u05ea
+currenciesDisplayName.SOS=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05e1\u05d5\u05de\u05d0\u05dc\u05d9
+currenciesDisplayName.EQE=\u05d0\u05e7\u05d5\u05d5\u05dc\u05d4
+currenciesDisplayName.AED=\u05d3\u05d9\u05e8\u05d4\u05dd \u05e9\u05dc \u05d0\u05d9\u05d7\u05d5\u05d3 \u05d4\u05e0\u05e1\u05d9\u05db\u05d5\u05d9\u05d5\u05ea \u05d4\u05e2\u05e8\u05d1\u05d9\u05d5\u05ea
+currenciesDisplayName.LVL=\u05dc\u05d8
+currenciesDisplayName.BWP=\u05e4\u05d5\u05dc\u05d4
+currenciesDisplayName.RUR=\u05e8\u05d5\u05d1\u05dc \u05e8\u05d5\u05e1\u05d9 (1991 - 1998)
+currenciesDisplayName.NIO=\u05e7\u05d5\u05e8\u05d3\u05d5\u05d1\u05d4
+currenciesDisplayName.XTS=\u05e1\u05d9\u05de\u05d5\u05df \u05dc\u05de\u05d8\u05e8\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4
+currenciesDisplayName.MOP=\u05e4\u05d8\u05e7\u05d4
+currenciesDisplayName.FJD=\u05d3\u05d5\u05dc\u05e8 \u05e4\u05d9\u05d2'\u05d9
+currenciesDisplayName.ADP=\u05e4\u05d6\u05d5 \u05d0\u05e0\u05d3\u05d5\u05e8\u05d9
 currenciesDisplayName.RUB=\u05e8\u05d5\u05d1\u05dc
-currenciesDisplayName.JPY=\u05d9\u05df
-currenciesDisplayName.BRL=\u05e8\u05d9\u05d0\u05dc \u05d1\u05e8\u05d6\u05d9\u05dc\u05d0\u05d9
+currenciesDisplayName.CDF=\u05e4\u05e8\u05e0\u05e7 \u05e7\u05d5\u05e0\u05d2\u05d9\u05e0\u05d9
+currenciesDisplayName.DJF=\u05e4\u05e8\u05e0\u05e7 [DJF]
+currenciesDisplayName.UZS=\u05e1\u05d5\u05dd \u05d0\u05d5\u05d6\u05d1\u05e7\u05d9
+currenciesDisplayName.SBD=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05d9\u05d9 \u05e9\u05dc\u05de\u05d4
+currenciesDisplayName.ECS=\u05e1\u05d5\u05e7\u05e8
+currenciesDisplayName.THB=\u05d1\u05d4\u05d8 \u05ea\u05d0\u05d9\u05dc\u05e0\u05d3\u05d9
+currenciesDisplayName.PHP=\u05e4\u05d6\u05d5 \u05e4\u05d9\u05dc\u05d9\u05e4\u05d9\u05e0\u05d9
+currenciesDisplayName.LUF=\u05e4\u05e8\u05e0\u05e7 \u05dc\u05d5\u05e7\u05e1\u05de\u05d1\u05d5\u05e8\u05d2\u05d9
+currenciesDisplayName.FIM=\u05de\u05e8\u05e7 \u05e4\u05d9\u05e0\u05d9
+currenciesDisplayName.TTD=\u05d3\u05d5\u05dc\u05e8 \u05d8\u05e8\u05d9\u05e0\u05d9\u05d3\u05d3\u05d9
+currenciesDisplayName.SZL=\u05dc\u05d9\u05dc\u05e0\u05d2\u05e0\u05d9
+currenciesDisplayName.MNT=\u05d8\u05d5\u05d2\u05e8\u05d5\u05d2
+currenciesDisplayName.SAR=\u05e8\u05d9\u05d0\u05dc \u05e1\u05e2\u05d5\u05d3\u05d9
+currenciesDisplayName.UAH=\u05d2\u05e8\u05d9\u05d1\u05e0\u05d4 \u05d0\u05d5\u05e7\u05e8\u05d0\u05d9\u05e0\u05d9
+currenciesDisplayName.HUF=\u05e4\u05d5\u05e8\u05d9\u05e0\u05d8 \u05d4\u05d5\u05e0\u05d2\u05e8\u05d9
+currenciesDisplayName.QAR=\u05e8\u05d9\u05d0\u05dc \u05e7\u05d8\u05d0\u05e8\u05d9
+currenciesDisplayName.COP=\u05e4\u05d6\u05d5 \u05e7\u05d5\u05dc\u05d5\u05de\u05d1\u05d9\u05d0\u05e0\u05d9
+currenciesDisplayName.PTE=\u05d0\u05e1\u05e7\u05d5\u05d3\u05d5
+currenciesDisplayName.UYU=\u05e4\u05d6\u05d5 \u05d0\u05d5\u05e8\u05d5\u05d2\u05d5\u05d5\u05d0\u05d9
+currenciesDisplayName.AOR=\u05e7\u05d5\u05d0\u05e0\u05d6\u05d4 \u05e8\u05d2'\u05d5\u05e1\u05d8\u05d3\u05d5
+currenciesDisplayName.GBP=\u05dc\u05d9\u05e8\u05d4 \u05e9\u05d8\u05e8\u05dc\u05d9\u05e0\u05d2
+currenciesDisplayName.INR=\u05e8\u05d5\u05e4\u05d9 \u05d4\u05d5\u05d3\u05d9\u05ea
+currenciesDisplayName.BIF=\u05e4\u05e8\u05e0\u05e7 \u05d1\u05d5\u05e8\u05d5\u05e0\u05d3\u05d9
+currenciesDisplayName.LTL=\u05dc\u05d9\u05d8\u05d0 \u05dc\u05d9\u05d8\u05d0\u05d9
+currenciesDisplayName.AON=\u05e7\u05d5\u05d0\u05e0\u05d6\u05d4 \u05d7\u05d3\u05e9 \u05d0\u05e0\u05d2\u05d5\u05dc\u05d9
+currenciesDisplayName.MZM=\u05de\u05d8\u05d9\u05e7\u05dc
+currenciesDisplayName.KZT=\u05d8\u05e0\u05d2\u05d4
+currenciesDisplayName.XFO=\u05e4\u05e8\u05e0\u05e7 \u05d6\u05d4\u05d1
+currenciesDisplayName.PGK=\u05e7\u05d9\u05e0\u05d4
+currenciesDisplayName.SYP=\u05dc\u05d9\u05e8\u05d4 \u05e1\u05d5\u05e8\u05d9\u05ea
+currenciesDisplayName.ZRN=\u05d6\u05d0\u05d9\u05e8 \u05d7\u05d3\u05e9
+currenciesDisplayName.NGN=\u05e0\u05d0\u05d9\u05e8\u05d4
 currenciesDisplayName.CNY=\u05d9\u05d5\u05d0\u05df
-currenciesDisplayName.USD=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9
-currenciesDisplayName.ILS=\u05e9\"\u05d7
-currenciesDisplayName.EUR=\u05d9\u05d5\u05e8\u05d5
+currenciesDisplayName.AOA=\u05e7\u05d5\u05d0\u05e0\u05d6\u05d4 \u05d0\u05e0\u05d2\u05d5\u05dc\u05d9
+currenciesDisplayName.MAF=\u05e4\u05e8\u05e0\u05e7 \u05de\u05d0\u05dc\u05d9
+currenciesDisplayName.RSD=\u05d3\u05d9\u05e0\u05e8 \u05e1\u05e8\u05d1\u05d9
+currenciesDisplayName.GNF=\u05e4\u05e8\u05e0\u05e7 \u05d2\u05d9\u05e0\u05d0\u05d9
+currenciesDisplayName.MAD=\u05d3\u05d9\u05e8\u05d4\u05dd \u05de\u05e8\u05d5\u05e7\u05d0\u05d9
+currenciesDisplayName.HTG=\u05d2\u05d0\u05e8\u05d3
 currenciesDisplayName.TRY=\u05dc\u05d9\u05e8\u05d4 \u05d8\u05d5\u05e8\u05e7\u05d9\u05ea \u05d7\u05d3\u05e9\u05d4
-currenciesDisplayName.GBP=\u05dc\u05d9\u05e8\u05d4 \u05e9\u05d8\u05e8\u05dc\u05d9\u05e0\u05d2
+currenciesDisplayName.MMK=\u05e7\u05d9\u05d0\u05d8
+currenciesDisplayName.MYR=\u05e8\u05d9\u05e0\u05d2\u05d9\u05d8 \u05de\u05dc\u05d6\u05d9
+currenciesDisplayName.LSL=\u05dc\u05d5\u05d8\u05d9
+currenciesDisplayName.SLL=\u05dc\u05d9\u05d0\u05d5\u05df
+currenciesDisplayName.BHD=\u05d3\u05d9\u05e0\u05e8 \u05d1\u05d7\u05e8\u05d9\u05d9\u05e0\u05d9
+currenciesDisplayName.BTN=\u05e0\u05d2\u05d5\u05dc\u05d8\u05e8\u05d5\u05dd
+currenciesDisplayName.TRL=\u05dc\u05d9\u05e8\u05d4 \u05d8\u05d5\u05e8\u05e7\u05d9\u05ea
+currenciesDisplayName.KMF=\u05e4\u05e8\u05e0\u05e7 \u05e7\u05d5\u05de\u05d5\u05e8\u05d5\u05d0\u05d9
+currenciesDisplayName.CZK=\u05e7\u05d5\u05e8\u05d5\u05e0\u05d4 \u05e6'\u05db\u05d9\u05ea
+currenciesDisplayName.ANG=\u05d2\u05d9\u05dc\u05d3\u05e8 [ANG]
+currenciesDisplayName.AZN=\u05de\u05d0\u05e0\u05d0\u05d8 \u05d0\u05d6\u05e8\u05d1\u05d9\u05d2\u05f3\u05e0\u05d9
+currenciesDisplayName.AZM=\u05de\u05d0\u05e0\u05d0\u05d8
+currenciesDisplayName.KYD=\u05d3\u05d5\u05dc\u05e8 \u05e7\u05d9\u05d9\u05de\u05d0\u05e0\u05d9
+currenciesDisplayName.GMD=\u05d3\u05dc\u05e1\u05d9
+currenciesDisplayName.BGN=\u05dc\u05d1 \u05d1\u05d5\u05dc\u05d2\u05e8\u05d9
+currenciesDisplayName.CAD=\u05d3\u05d5\u05dc\u05e8 \u05e7\u05e0\u05d3\u05d9
+currenciesDisplayName.BGL=\u05dc\u05d1
+currenciesDisplayName.VEB=\u05d1\u05d5\u05dc\u05d9\u05d1\u05e8 \u05d5\u05e0\u05e6\u05d5\u05d0\u05dc\u05d9
+currenciesDisplayName.MXP=\u05e4\u05d6\u05d5 \u05de\u05e7\u05e1\u05d9\u05e7\u05e0\u05d9 (1861 - 1992)
+currenciesDisplayName.ILS=\u05e9\u05e7\u05dc \u05d7\u05d3\u05e9
+currenciesDisplayName.MXN=\u05e4\u05d6\u05d5 \u05de\u05e7\u05e1\u05d9\u05e7\u05e0\u05d9
+currenciesDisplayName.GYD=\u05d3\u05d5\u05dc\u05e8 \u05d2\u05d9\u05d0\u05e0\u05d9
+currenciesDisplayName.ILP=\u05dc\u05d9\u05e8\u05d4 \u05d9\u05e9\u05e8\u05d0\u05dc\u05d9\u05ea
+currenciesDisplayName.CYP=\u05dc\u05d9\u05e8\u05d4 \u05e7\u05e4\u05e8\u05d9\u05e1\u05d0\u05d9\u05ea
+currenciesDisplayName.SKK=\u05e7\u05d5\u05e8\u05d5\u05e0\u05d4 \u05e1\u05dc\u05d5\u05d1\u05e7\u05d9
+currenciesDisplayName.XDR=\u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05de\u05e9\u05d9\u05db\u05d4 \u05de\u05d9\u05d5\u05d7\u05d3\u05d5\u05ea
+currenciesDisplayName.PEN=\u05e1\u05d5\u05dc \u05e4\u05e8\u05d5\u05d0\u05e0\u05d9 \u05d7\u05d3\u05e9
+currenciesDisplayName.LRD=\u05d3\u05d5\u05dc\u05e8 \u05dc\u05d9\u05d1\u05e8\u05d9
+currenciesDisplayName.AMD=\u05d3\u05e8\u05d0\u05dd \u05d0\u05e8\u05de\u05e0\u05d9
+currenciesDisplayName.BSD=\u05d3\u05d5\u05dc\u05e8 \u05d1\u05d4\u05d0\u05de\u05d9
+currenciesDisplayName.XPT=\u05e4\u05dc\u05d8\u05d9\u05e0\u05d4
+currenciesDisplayName.HRK=\u05e7\u05d5\u05e0\u05d4 \u05e7\u05e8\u05d5\u05d0\u05d8\u05d9
+currenciesDisplayName.CLP=\u05e4\u05d6\u05d5 \u05e6'\u05d9\u05dc\u05d0\u05e0\u05d9
+currenciesDisplayName.FRF=\u05e4\u05e8\u05e0\u05e7 \u05e6\u05e8\u05e4\u05ea\u05d9
+currenciesDisplayName.XPD=\u05e4\u05dc\u05d3\u05d9\u05d5\u05dd
+currenciesDisplayName.ALL=\u05dc\u05e7 \u05d0\u05dc\u05d1\u05e0\u05d9
+currenciesDisplayName.MWK=\u05e7\u05d0\u05d5\u05d5\u05e6'\u05d4
+currenciesDisplayName.BRL=\u05e8\u05d9\u05d0\u05dc \u05d1\u05e8\u05d6\u05d9\u05dc\u05d0\u05d9
+currenciesDisplayName.TPE=\u05d0\u05e1\u05e7\u05d5\u05d3\u05d5 \u05d8\u05d9\u05de\u05d5\u05e8\u05d0\u05d9
+currenciesDisplayName.BRC=\u05e7\u05e8\u05d5\u05d6\u05d3\u05d5
+currenciesDisplayName.BRB=\u05e7\u05e8\u05d5\u05d6\u05d9\u05d0\u05e8\u05d5
+currenciesDisplayName.DEM=\u05de\u05e8\u05e7 \u05d2\u05e8\u05de\u05e0\u05d9
+currenciesDisplayName.XCD=\u05d3\u05d5\u05dc\u05e8 \u05de\u05d6\u05e8\u05d7 \u05e7\u05e8\u05d9\u05d1\u05d9
+currenciesDisplayName.KWD=\u05d3\u05d9\u05e0\u05e8 \u05db\u05d5\u05d5\u05d9\u05ea\u05d9
+currenciesDisplayName.NPR=\u05e8\u05d5\u05e4\u05d9 \u05e0\u05e4\u05d0\u05dc\u05d9
+currenciesDisplayName.GWP=\u05e4\u05d6\u05d5 \u05d2\u05d9\u05e0\u05d0\u05d9
+currenciesDisplayName.YUM=\u05d3\u05d9\u05e0\u05e8 \u05d9\u05d2\u05d5\u05e1\u05dc\u05d1\u05d9
+currenciesDisplayName.SIT=\u05d8\u05d5\u05dc\u05d0\u05e8 \u05e1\u05dc\u05d5\u05d1\u05e0\u05d9
+currenciesDisplayName.JPY=\u05d9\u05df \u05d9\u05e4\u05e0\u05d9
+currenciesDisplayName.MVR=\u05e8\u05d5\u05e4\u05d9\u05d4
+currenciesDisplayName.YUD=\u05d3\u05d9\u05e0\u05e8 \u05d9\u05d2\u05d5\u05e1\u05dc\u05d1\u05d9 \u05d7\u05d3\u05e9
+currenciesDisplayName.TOP=\u05e4\u05d0\u05e0\u05d2\u05d4
+currenciesDisplayName.BEF=\u05e4\u05e8\u05e0\u05e7 \u05d1\u05dc\u05d2\u05d9
+currenciesDisplayName.BEC=\u05e4\u05e8\u05e0\u05e7 \u05d1\u05dc\u05d2\u05d9 (\u05d1\u05e8 \u05d4\u05de\u05e8\u05d4)
+currenciesDisplayName.SUR=\u05e8\u05d5\u05d1\u05dc \u05e1\u05d5\u05d1\u05d9\u05d9\u05d8\u05d9
+currenciesDisplayName.RON=\u05dc\u05d0\u05d5 \u05e8\u05d5\u05de\u05e0\u05d9 \u05d7\u05d3\u05e9
+currenciesDisplayName.ROL=\u05dc\u05d0\u05d5
+currenciesDisplayName.DDM=\u05de\u05e8\u05e7 \u05de\u05d6\u05e8\u05d7 \u05d2\u05e8\u05de\u05e0\u05d9
+currenciesDisplayName.BDT=\u05d8\u05d0\u05e7\u05d4
+currenciesDisplayName.AWG=\u05e4\u05dc\u05d5\u05e8\u05d9\u05df
+currenciesDisplayName.NOK=\u05db\u05ea\u05e8 \u05e0\u05d5\u05e8\u05d1\u05d2\u05d9
+currenciesDisplayName.ZAR=\u05e8\u05d0\u05e0\u05d3 \u05d3\u05e8\u05d5\u05dd \u05d0\u05e4\u05e8\u05d9\u05e7\u05d0\u05d9
+currenciesDisplayName.MUR=\u05e8\u05d5\u05e4\u05d9 \u05de\u05d0\u05d5\u05e8\u05d9\u05e6\u05d9\u05e0\u05d9
+currenciesDisplayName.SHP=\u05e4\u05d0\u05d5\u05e0\u05d3 \u05e1\u05e0\u05d8 \u05d4\u05dc\u05e0\u05d9
+currenciesDisplayName.XAU=\u05d6\u05d4\u05d1
+currenciesDisplayName.ZAL=\u05e8\u05d0\u05e0\u05d3 \u05d3\u05e8\u05d5\u05dd \u05d0\u05e4\u05e8\u05d9\u05e7\u05d0\u05d9 (\u05db\u05e1\u05e4\u05d9)
+currenciesDisplayName.VND=\u05d3\u05d5\u05e0\u05d2 \u05d5\u05d9\u05d9\u05d8\u05e0\u05d0\u05de\u05d9
+currenciesDisplayName.TZS=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05d8\u05e0\u05d6\u05e0\u05d9
+currenciesDisplayName.GIP=\u05e4\u05d0\u05d5\u05e0\u05d3 \u05d2\u05d9\u05d1\u05e8\u05dc\u05d8\u05e8
+currenciesDisplayName.TND=\u05d3\u05d9\u05e0\u05e8 \u05d8\u05d5\u05e0\u05d9\u05e1\u05d0\u05d9
+currenciesDisplayName.UGX=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05d0\u05d5\u05d2\u05e0\u05d3\u05d9
+currenciesDisplayName.XAG=\u05db\u05e1\u05e3
+currenciesDisplayName.ZMK=\u05e7\u05d5\u05d5\u05d0\u05e6'\u05d4
+currenciesDisplayName.JOD=\u05d3\u05d9\u05e0\u05e8 \u05d9\u05e8\u05d3\u05e0\u05d9
+currenciesDisplayName.XAF=\u05e4\u05e8\u05e0\u05e7
+currenciesDisplayName.LBP=\u05dc\u05d9\u05e8\u05d4 \u05dc\u05d1\u05e0\u05d5\u05e0\u05d9\u05ea
+currenciesDisplayName.UGS=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05d0\u05d5\u05d2\u05e0\u05d3\u05d9 (1966 - 1987)
+currenciesDisplayName.STD=\u05d3\u05d5\u05d1\u05e8\u05d4
+currenciesDisplayName.WST=\u05d8\u05dc\u05d4
+currenciesDisplayName.KHR=\u05e8\u05d9\u05dc
+currenciesDisplayName.DOP=\u05e4\u05d6\u05d5
+currenciesDisplayName.EUR=\u05d0\u05d9\u05e8\u05d5
+currenciesDisplayName.USS=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9 (\u05d4\u05d9\u05d5\u05dd \u05d4\u05d6\u05d4)
+currenciesDisplayName.BOP=\u05e4\u05d6\u05d5 \u05d1\u05d5\u05dc\u05d9\u05d1\u05d9
+currenciesDisplayName.CUP=\u05e4\u05d6\u05d5 \u05e7\u05d5\u05d1\u05e0\u05d9
+currenciesDisplayName.MTL=\u05dc\u05d9\u05e8\u05d4 \u05de\u05dc\u05d8\u05d9\u05ea
+currenciesDisplayName.TMM=\u05de\u05e0\u05d0\u05d8 \u05d8\u05d5\u05e8\u05e7\u05de\u05d0\u05e0\u05d9
+currenciesDisplayName.USN=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9 (\u05d4\u05d9\u05d5\u05dd \u05d4\u05d1\u05d0)
+currenciesDisplayName.SGD=\u05d3\u05d5\u05dc\u05e8 \u05e1\u05d9\u05e0\u05d2\u05e4\u05d5\u05e8\u05d9
+currenciesDisplayName.NZD=\u05d3\u05d5\u05dc\u05e8 \u05e0\u05d9\u05d5 \u05d6\u05d9\u05dc\u05e0\u05d3\u05d9
+currenciesDisplayName.USD=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9
+currenciesDisplayName.BOB=\u05d1\u05d5\u05dc\u05d9\u05d1\u05d9\u05d0\u05e0\u05d5
+currenciesDisplayName.HNL=\u05dc\u05de\u05e4\u05d9\u05e8\u05d4
+currenciesDisplayName.ITL=\u05dc\u05d9\u05e8\u05d4 \u05d0\u05d9\u05d8\u05dc\u05e7\u05d9\u05ea
+currenciesDisplayName.PAB=\u05d1\u05dc\u05d1\u05d5\u05d0\u05d4
+currenciesDisplayName.GTQ=\u05e7\u05e6\u05d0\u05dc
+currenciesDisplayName.XXX=\u05e1\u05d9\u05de\u05d5\u05df \"\u05dc\u05dc\u05d0 \u05de\u05d8\u05d1\u05e2\"
+currenciesDisplayName.AUD=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9
+currenciesDisplayName.LAK=\u05e7\u05d9\u05e4
+currenciesDisplayName.NAD=\u05d3\u05d5\u05dc\u05e8 \u05e0\u05de\u05d9\u05d1\u05d9
+currenciesDisplayName.KGS=\u05e1\u05d5\u05dd \u05e7\u05d9\u05e8\u05d2\u05d9\u05d6\u05d9
+currenciesDisplayName.MGF=\u05e4\u05e8\u05e0\u05e7 \u05de\u05d3\u05d2\u05e1\u05e7\u05d0\u05e8\u05d9
+currenciesDisplayName.BBD=\u05d3\u05d5\u05dc\u05e8 \u05d1\u05e8\u05d1\u05d3\u05d9\u05d0\u05e0\u05d9
+currenciesDisplayName.CHF=\u05e4\u05e8\u05e0\u05e7 \u05e9\u05d5\u05d5\u05d9\u05e6\u05e8\u05d9
+currenciesDisplayName.PYG=\u05d2\u05d5\u05d5\u05d0\u05e8\u05e0\u05d9
+currenciesDisplayName.PLZ=\u05d6\u05dc\u05d5\u05d8\u05d9 (1950 - 1995)
+currenciesDisplayName.YER=\u05e8\u05d9\u05d0\u05dc \u05ea\u05d9\u05de\u05e0\u05d9
+currenciesDisplayName.ATS=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05d0\u05d5\u05e1\u05d8\u05e8\u05d9
+currenciesDisplayName.ETB=\u05d1\u05d9\u05e8
+currenciesDisplayName.BND=\u05d3\u05d5\u05dc\u05e8 \u05d1\u05e8\u05d5\u05e0\u05d9\u05d9
+currenciesDisplayName.EGP=\u05dc\u05d9\u05e8\u05d4 \u05de\u05e6\u05e8\u05d9\u05ea
+currenciesDisplayName.JMD=\u05d3\u05d5\u05dc\u05e8 \u05d2'\u05de\u05d0\u05d9\u05e7\u05e0\u05d9
+currenciesDisplayName.PLN=\u05d6\u05dc\u05d5\u05d8\u05d9 \u05e4\u05d5\u05dc\u05e0\u05d9
+currenciesDisplayName.DZD=\u05d3\u05d9\u05e0\u05e8 \u05d0\u05dc\u05d2'\u05d9\u05e8\u05d9
+currenciesDisplayName.ISK=\u05e7\u05e8\u05d5\u05e0\u05d4 \u05d0\u05d9\u05e1\u05dc\u05e0\u05d3\u05d9\u05ea
+currenciesDisplayName.SRG=\u05d2\u05d9\u05dc\u05d3\u05e8 \u05e1\u05d5\u05e8\u05d9\u05e0\u05d0\u05de\u05d9
+currenciesDisplayName.LYD=\u05d3\u05d9\u05e0\u05e8 \u05dc\u05d5\u05d1\u05d9
+currenciesDisplayName.SRD=\u05d3\u05d5\u05dc\u05e8 \u05e1\u05d5\u05e8\u05d9\u05e0\u05d0\u05de\u05d9
+currenciesDisplayName.BAM=\u05de\u05d0\u05e8\u05e7 \u05d1\u05e8 \u05d4\u05de\u05e8\u05d4
+currenciesDisplayName.BZD=\u05d3\u05d5\u05dc\u05e8 \u05d1\u05dc\u05d9\u05d6\u05d0\u05d9
+currenciesDisplayName.ESP=\u05e4\u05e1\u05d8\u05d4 \u05e1\u05e4\u05e8\u05d3\u05d9
+currenciesDisplayName.KRW=\u05d5\u05d5\u05df \u05d3\u05e8\u05d5\u05dd \u05e7\u05d5\u05e8\u05d0\u05e0\u05d9
+currenciesDisplayName.NLG=\u05d2\u05d9\u05dc\u05d3\u05e8
+currenciesDisplayName.BAD=\u05d3\u05d9\u05e0\u05e8 \u05e9\u05dc \u05d1\u05d5\u05e1\u05e0\u05d9\u05d4-\u05d4\u05e8\u05e6\u05d2\u05d5\u05d1\u05d9\u05e0\u05d4
+currenciesDisplayName.ZWD=\u05d3\u05d5\u05dc\u05e8 \u05d6\u05d9\u05de\u05d1\u05d1\u05d5\u05d0\u05d9
+currenciesDisplayName.SEK=\u05db\u05ea\u05e8 \u05e9\u05d5\u05d5\u05d3\u05d9
+currenciesDisplayName.CSK=\u05e7\u05d5\u05e8\u05d5\u05e0\u05d4 \u05e6'\u05db\u05d9\u05ea [1953-1992]
+currenciesDisplayName.ESB=\u05e4\u05d6\u05d8\u05d4 [ESB]
+currenciesDisplayName.IRR=\u05e8\u05d9\u05d0\u05dc \u05d0\u05d9\u05e8\u05d0\u05e0\u05d9
+currenciesDisplayName.ESA=\u05e4\u05d6\u05d8\u05d4 [ESA]
+currenciesDisplayName.PKR=\u05e8\u05d5\u05e4\u05d9 \u05e4\u05e7\u05d9\u05e1\u05d8\u05e0\u05d9
+currenciesDisplayName.BMD=\u05d3\u05d5\u05dc\u05e8 \u05d1\u05e8\u05de\u05d5\u05d3\u05d4
+currenciesDisplayName.CSD=\u05d3\u05d9\u05e0\u05e8 \u05e1\u05e8\u05d1\u05d9 \u05d9\u05e9\u05df
 currenciesSymbol.ILS=\u20aa
-shortMonths=\u05d9\u05e0\u05d5®\u05e4\u05d1\u05e8®\u05de\u05e8\u05e5®\u05d0\u05e4\u05e8®\u05de\u05d0\u05d9®\u05d9\u05d5\u05e0®\u05d9\u05d5\u05dc®\u05d0\u05d5\u05d2®\u05e1\u05e4\u05d8®\u05d0\u05d5\u05e7®\u05e0\u05d5\u05d1®\u05d3\u05e6\u05de®®
-months=\u05d9\u05e0\u05d5\u05d0\u05e8®\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8®\u05de\u05e8\u05e5®\u05d0\u05e4\u05e8\u05d9\u05dc®\u05de\u05d0\u05d9®\u05d9\u05d5\u05e0\u05d9®\u05d9\u05d5\u05dc\u05d9®\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8®\u05e1\u05e4\u05d8\u05de\u05d1\u05e8®\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8®\u05e0\u05d5\u05d1\u05de\u05d1\u05e8®\u05d3\u05e6\u05de\u05d1\u05e8®®
-shortWeekdays=®\u05d0®\u05d1®\u05d2®\u05d3®\u05d4®\u05d5®\u05e9®
-weekdays=®\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df®\u05d9\u05d5\u05dd \u05e9\u05e0\u05d9®\u05d9\u05d5\u05dd \u05e9\u05dc\u05d9\u05e9\u05d9®\u05d9\u05d5\u05dd \u05e8\u05d1\u05d9\u05e2\u05d9®\u05d9\u05d5\u05dd \u05d7\u05de\u05d9\u05e9\u05d9®\u05d9\u05d5\u05dd \u05e9\u05d9\u05e9\u05d9®\u05e9\u05d1\u05ea®
-eras=\u05dc\u05e4\u05e0\u05d4\u05f4\u05e1®\u05dc\u05e1\u05d4\u05f4\u05e0®
+currenciesSymbol.ILP=\u05dc\u05f4\u05d9
+shortMonths=\u00ae\u00ae\u05de\u05e8\u05e1\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u00ae\u00ae\u05de\u05e8\u05e1\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00ae\u05d0\u00ae\u05d1\u00ae\u05d2\u00ae\u05d3\u00ae\u05d4\u00ae\u05d5\u00ae\u05e9\u00ae
+weekdays=\u00ae\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df\u00ae\u05d9\u05d5\u05dd \u05e9\u05e0\u05d9\u00ae\u05d9\u05d5\u05dd \u05e9\u05dc\u05d9\u05e9\u05d9\u00ae\u05d9\u05d5\u05dd \u05e8\u05d1\u05d9\u05e2\u05d9\u00ae\u05d9\u05d5\u05dd \u05d7\u05de\u05d9\u05e9\u05d9\u00ae\u05d9\u05d5\u05dd \u05e9\u05d9\u05e9\u05d9\u00ae\u05e9\u05d1\u05ea\u00ae
+eras=\u05dc\u05e4\u05e0\u05d4\u05f4\u05e1\u00ae\u05dc\u05e1\u05d4\u05f4\u05e0\u00ae
+ampms=\u05dc\u05e4\u05e0\u05d4\"\u05e6\u00ae\u05d0\u05d7\u05d4\"\u05e6\u00ae
 shortDateFormat=dd/MM/yy
 mediumDateFormat=dd/MM/yyyy
-longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE d MMMM yyyy
-territories.TL=\u05d8\u05d9\u05de\u05d5\u05e8 \u05d4\u05de\u05d6\u05e8\u05d7\u05d9\u05ea
+longDateFormat=d \u05d1MMMM yyyy
+fullDateFormat=EEEE, d \u05d1MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Israel\u00ae\u00aeIST\u00ae\u00ae\u00ae\u00a9India\u00ae\u00aeIST (\u05d4\u05d5\u05d3\u05d5)\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u05de\u05d6\u05e8\u05d7 \u05d8\u05d9\u05de\u05d5\u05e8
 territories.TK=\u05d8\u05d5\u05e7\u05dc\u05d0\u05d5
-territories.TJ=\u05d8\u05d2\u05f3\u05d9\u05e7\u05d9\u05e1\u05d8\u05d0\u05df
-territories.TH=\u05ea\u05d0\u05d9\u05d9\u05dc\u05e0\u05d3
+territories.TJ=\u05d8\u05d2\u05f3\u05d9\u05e7\u05d9\u05e1\u05d8\u05df
+territories.TH=\u05ea\u05d0\u05d9\u05dc\u05e0\u05d3
 territories.TG=\u05d8\u05d5\u05d2\u05d5
 territories.TF=\u05d8\u05e8\u05d9\u05d8\u05d5\u05e8\u05d9\u05d5\u05ea \u05d3\u05e8\u05d5\u05de\u05d9\u05d5\u05ea \u05e9\u05dc \u05e6\u05e8\u05e4\u05ea
 territories.GY=\u05d2\u05d9\u05d0\u05e0\u05d4
 territories.TD=\u05e6\u05f3\u05d0\u05d3
-territories.TC=\u05d8\u05e8\u05e7\u05e1 \u05d5\u05e7\u05d9\u05d9\u05e7\u05d5\u05e1, \u05d0\u05d9\u05d9
+territories.TC=\u05d0\u05d9\u05d9 \u05d8\u05d5\u05e8\u05e7\u05e1 \u05d5\u05e7\u05d0\u05d9\u05e7\u05d5\u05e1
 territories.GW=\u05d2\u05d9\u05e0\u05d9\u05d0\u05d4-\u05d1\u05d9\u05e1\u05d0\u05d5
 territories.GU=\u05d2\u05d5\u05d0\u05dd
 territories.GT=\u05d2\u05d5\u05d5\u05d0\u05d8\u05de\u05d0\u05dc\u05d4
@@ -46,81 +266,86 @@ territories.SZ=\u05e1\u05d5\u05d5\u05d0\u05d6\u05d9\u05dc\u05e0\u05d3
 territories.SY=\u05e1\u05d5\u05e8\u05d9\u05d4
 territories.GN=\u05d2\u05d9\u05e0\u05d9\u05d0\u05d4
 territories.GM=\u05d2\u05de\u05d1\u05d9\u05d4
-territories.GL=\u05d2\u05e8\u05e0\u05dc\u05e0\u05d3
-territories.SV=\u05d0\u05dc \u05e1\u05dc\u05d5\u05d5\u05d0\u05d3\u05d5\u05e8
-territories.062=\u05d3\u05e8\u05d5\u05dd-\u05de\u05e8\u05db\u05d6 \u05d0\u05e1\u05d9\u05d4
+territories.GL=\u05d2\u05e8\u05d9\u05e0\u05dc\u05e0\u05d3
+territories.SV=\u05d0\u05dc \u05e1\u05dc\u05d1\u05d0\u05d3\u05d5\u05e8
+territories.062=\u05d3\u05e8\u05d5\u05dd\u05be\u05de\u05e8\u05db\u05d6 \u05d0\u05e1\u05d9\u05d4
 territories.ST=\u05e1\u05d0\u05d5 \u05d8\u05d5\u05de\u05d4 \u05d5\u05e4\u05e8\u05d9\u05e0\u05e1\u05d9\u05e4\u05d4
-territories.061=\u05e4\u05d5\u05dc\u05d9\u05e0\u05d6\u05d9\u05d4
 territories.GI=\u05d2\u05d9\u05d1\u05e8\u05dc\u05d8\u05e8
+territories.061=\u05e4\u05d5\u05dc\u05d9\u05e0\u05d6\u05d9\u05d4
 territories.GH=\u05d2\u05d0\u05e0\u05d4
 territories.SR=\u05e1\u05d5\u05e8\u05d9\u05e0\u05d0\u05dd
+territories.GG=\u05d2\u05e8\u05e0\u05e1\u05d9
 territories.GF=\u05d2\u05d9\u05d0\u05e0\u05d4 \u05d4\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea
-territories.GE=\u05d2\u05e8\u05d5\u05d6\u05d9\u05d4
-territories.SO=\u05e1\u05d5\u05de\u05d0\u05dc\u05d9\u05d4
-territories.GD=\u05d2\u05e8\u05e0\u05d0\u05d3\u05d4
-territories.SN=\u05e1\u05e0\u05d2\u05d0\u05dc
-territories.SM=\u05e1\u05d0\u05df \u05de\u05d0\u05e8\u05d9\u05e0\u05d5
+territories.GE=\u05d2\u05d0\u05d5\u05e8\u05d2\u05d9\u05d4
+territories.SO=\u05e1\u05d5\u05de\u05dc\u05d9\u05d4
+territories.GD=\u05d2\u05e8\u05e0\u05d3\u05d4
+territories.SN=\u05e1\u05e0\u05d2\u05dc
+territories.SM=\u05e1\u05df \u05de\u05e8\u05d9\u05e0\u05d5
 territories.GB=\u05d1\u05e8\u05d9\u05d8\u05e0\u05d9\u05d4
 territories.SL=\u05e1\u05d9\u05d9\u05e8\u05d4 \u05dc\u05d0\u05d5\u05e0\u05d4
 territories.GA=\u05d2\u05d0\u05d1\u05d5\u05df
 territories.SK=\u05e1\u05dc\u05d5\u05d1\u05e7\u05d9\u05d4
-territories.SJ=\u05e1\u05d5\u05d5\u05d0\u05dc\u05d1\u05e8\u05d3 \u05d5\u05d9\u05d0\u05df \u05de\u05d0\u05d9\u05d9\u05df
+territories.SJ=\u05e1\u05d5\u05d5\u05dc\u05d1\u05d0\u05e8\u05d3 \u05d5\u05d6\u05f3\u05d0\u05df \u05de\u05d0\u05d9\u05d9\u05df
 territories.SI=\u05e1\u05dc\u05d5\u05d1\u05e0\u05d9\u05d4
 territories.SH=\u05e1\u05e0\u05d8 \u05d4\u05dc\u05e0\u05d4
 territories.SG=\u05e1\u05d9\u05e0\u05d2\u05e4\u05d5\u05e8
 territories.SE=\u05e9\u05d5\u05d5\u05d3\u05d9\u05d4
 territories.SD=\u05e1\u05d5\u05d3\u05d0\u05df
-territories.SC=\u05e1\u05d9\u05d9\u05e9\u05dc
-territories.SB=\u05e9\u05dc\u05de\u05d4, \u05d0\u05d9\u05d9
+territories.SC=\u05d0\u05d9\u05d9 \u05e1\u05d9\u05d9\u05e9\u05dc
+territories.SB=\u05d0\u05d9\u05d9 \u05e9\u05dc\u05de\u05d4
 territories.SA=\u05e2\u05e8\u05d1 \u05d4\u05e1\u05e2\u05d5\u05d3\u05d9\u05ea
 territories.FR=\u05e6\u05e8\u05e4\u05ea
-territories.057=\u05de\u05e7\u05e8\u05d5\u05e0\u05d6\u05d9\u05d4
-territories.FO=\u05e4\u05e8\u05d5\u05d0\u05e8, \u05d0\u05d9\u05d9
+territories.FO=\u05d0\u05d9\u05d9 \u05e4\u05d0\u05e8\u05d5
+territories.057=\u05d4\u05d0\u05d9\u05d6\u05d5\u05e8 \u05d4\u05de\u05d9\u05e7\u05e8\u05d5\u05e0\u05d6\u05d9
 territories.FM=\u05de\u05d9\u05e7\u05e8\u05d5\u05e0\u05d6\u05d9\u05d4
 territories.RW=\u05e8\u05d5\u05d0\u05e0\u05d3\u05d4
 territories.054=\u05de\u05dc\u05e0\u05e1\u05d9\u05d4
-territories.053=\u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05d4 \u05d5\u05e0\u05d9\u05d5-\u05d6\u05d9\u05dc\u05e0\u05d3
-territories.FK=\u05e4\u05d5\u05e7\u05dc\u05e0\u05d3, \u05d0\u05d9\u05d9
-territories.RU=\u05e8\u05d5\u05e1\u05d9\u05d4, \u05d4\u05e4\u05d3\u05e8\u05e6\u05d9\u05d4 \u05e9\u05dc
+territories.FK=\u05d0\u05d9\u05d9 \u05e4\u05d5\u05e7\u05dc\u05e0\u05d3
+territories.053=\u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05d4 \u05d5\u05e0\u05d9\u05d5\u05be\u05d6\u05d9\u05dc\u05e0\u05d3
+territories.RU=\u05e8\u05d5\u05e1\u05d9\u05d4
 territories.FJ=\u05e4\u05d9\u05d2\u05f3\u05d9
 territories.FI=\u05e4\u05d9\u05e0\u05dc\u05e0\u05d3
+territories.RS=\u05e1\u05e8\u05d1\u05d9\u05d4
 territories.RO=\u05e8\u05d5\u05de\u05e0\u05d9\u05d4
 territories.RE=\u05e8\u05d0\u05d5\u05e0\u05d9\u05d5\u05df
 territories.ET=\u05d0\u05ea\u05d9\u05d5\u05e4\u05d9\u05d4
 territories.ES=\u05e1\u05e4\u05e8\u05d3
 territories.ER=\u05d0\u05e8\u05d9\u05d8\u05e8\u05d0\u05d4
+territories.QU=\u05d4\u05d0\u05d9\u05d7\u05d5\u05d3 \u05d4\u05d0\u05d9\u05e8\u05d5\u05e4\u05d9
 territories.EH=\u05e1\u05d4\u05e8\u05d4 \u05d4\u05de\u05e2\u05e8\u05d1\u05d9\u05ea
 territories.EG=\u05de\u05e6\u05e8\u05d9\u05dd
-territories.830=\u05d0\u05d9\u05d9 \u05e7\u05e0\u05dc
 territories.EE=\u05d0\u05e1\u05d8\u05d5\u05e0\u05d9\u05d4
+territories.830=\u05d0\u05d9\u05d9 \u05d4\u05ea\u05e2\u05dc\u05d4
+territories.QO=QO
 territories.EC=\u05d0\u05e7\u05d5\u05d5\u05d0\u05d3\u05d5\u05e8
 territories.DZ=\u05d0\u05dc\u05d2\u05f3\u05d9\u05e8\u05d9\u05d4
 territories.QA=\u05e7\u05d0\u05d8\u05d0\u05e8
 territories.039=\u05d3\u05e8\u05d5\u05dd \u05d0\u05d9\u05e8\u05d5\u05e4\u05d4
 territories.DO=\u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05d4\u05d3\u05d5\u05de\u05d9\u05e0\u05d9\u05e7\u05e0\u05d9\u05ea
 territories.PY=\u05e4\u05e8\u05d2\u05d5\u05d5\u05d0\u05d9
-territories.035=\u05d3\u05e8\u05d5\u05dd-\u05de\u05d6\u05e8\u05d7 \u05d0\u05e1\u05d9\u05d4
 territories.DM=\u05d3\u05d5\u05de\u05d9\u05e0\u05d9\u05e7\u05d4
+territories.035=\u05d3\u05e8\u05d5\u05dd\u05be\u05de\u05d6\u05e8\u05d7 \u05d0\u05e1\u05d9\u05d4
 territories.PW=\u05e4\u05d0\u05dc\u05d0\u05d5
+territories.034=\u05d3\u05e8\u05d5\u05dd \u05d0\u05e1\u05d9\u05d4
 territories.DK=\u05d3\u05e0\u05de\u05e8\u05e7
 territories.DJ=\u05d2\u05f3\u05d9\u05d1\u05d5\u05d8\u05d9
 territories.PT=\u05e4\u05d5\u05e8\u05d8\u05d5\u05d2\u05dc
-territories.PS=\u05d4\u05e8\u05e9\u05d5\u05ea \u05d4\u05e4\u05dc\u05e9\u05ea\u05d9\u05e0\u05d9\u05ea
+territories.PS=\u05e9\u05d8\u05d7\u05d9 \u05d4\u05e8\u05e9\u05d5\u05ea \u05d4\u05e4\u05dc\u05e9\u05ea\u05d9\u05e0\u05d9\u05ea
 territories.030=\u05de\u05d6\u05e8\u05d7 \u05d0\u05e1\u05d9\u05d4
-territories.PR=\u05e4\u05d5\u05d0\u05e8\u05d8\u05d5 \u05e8\u05d9\u05e7\u05d5
+territories.PR=\u05e4\u05d5\u05e8\u05d8\u05d5 \u05e8\u05d9\u05e7\u05d5
 territories.DE=\u05d2\u05e8\u05de\u05e0\u05d9\u05d4
 territories.PN=\u05e4\u05d9\u05d8\u05e7\u05e8\u05df
 territories.PM=\u05e1\u05e0\u05d8 \u05e4\u05d9\u05d9\u05e8 \u05d5\u05de\u05d9\u05e7\u05dc\u05d5\u05df
 territories.PL=\u05e4\u05d5\u05dc\u05d9\u05df
-territories.PK=\u05e4\u05e7\u05d9\u05e1\u05d8\u05d0\u05df
+territories.PK=\u05e4\u05e7\u05d9\u05e1\u05d8\u05df
 territories.PH=\u05e4\u05d9\u05dc\u05d9\u05e4\u05d9\u05e0\u05d9\u05dd
-territories.PG=\u05e4\u05d0\u05e4\u05d5\u05d0\u05d4 \u05e0\u05d9\u05d5-\u05d2\u05d9\u05e0\u05d9\u05d0\u05d4
+territories.PG=\u05e4\u05e4\u05d5\u05d0\u05d4 \u05d2\u05d9\u05e0\u05d9\u05d0\u05d4 \u05d4\u05d7\u05d3\u05e9\u05d4
 territories.PF=\u05e4\u05d5\u05dc\u05d9\u05e0\u05d6\u05d9\u05d4 \u05d4\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea
-territories.CZ=\u05e6\u05f3\u05db\u05d9\u05d4, \u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05e9\u05dc
+territories.CZ=\u05e6\u05f3\u05db\u05d9\u05d4
 territories.PE=\u05e4\u05e8\u05d5
 territories.CY=\u05e7\u05e4\u05e8\u05d9\u05e1\u05d9\u05df
-territories.CX=\u05e7\u05e8\u05d9\u05e1\u05de\u05e1, \u05d0\u05d9
-territories.CV=\u05e7\u05d0\u05e4 \u05d5\u05e8\u05d3\u05d4
+territories.CX=\u05d0\u05d9\u05d9 \u05db\u05e8\u05d9\u05e1\u05d8\u05de\u05e1
+territories.CV=\u05e7\u05d9\u05d9\u05e4 \u05d5\u05e8\u05d3\u05d4
 territories.PA=\u05e4\u05e0\u05de\u05d4
 territories.CU=\u05e7\u05d5\u05d1\u05d4
 territories.CS=\u05e1\u05e8\u05d1\u05d9\u05d4 \u05d5\u05de\u05d5\u05e0\u05d8\u05e0\u05d2\u05e8\u05d5
@@ -128,45 +353,49 @@ territories.CR=\u05e7\u05d5\u05e1\u05d8\u05d4 \u05e8\u05d9\u05e7\u05d4
 territories.029=\u05e7\u05e8\u05d9\u05d1\u05d9\u05d9\u05dd
 territories.CO=\u05e7\u05d5\u05dc\u05d5\u05de\u05d1\u05d9\u05d4
 territories.CN=\u05e1\u05d9\u05df
-territories.CM=\u05e7\u05d0\u05de\u05e8\u05d5\u05df
+territories.CM=\u05e7\u05de\u05e8\u05d5\u05df
 territories.CL=\u05e6\u05f3\u05d9\u05dc\u05d4
-territories.CK=\u05e7\u05d5\u05e7, \u05d0\u05d9\u05d9
+territories.CK=\u05d0\u05d9\u05d9 \u05e7\u05d5\u05e7
+territories.021=\u05d0\u05de\u05e8\u05d9\u05e7\u05d4 \u05d4\u05e6\u05e4\u05d5\u05e0\u05d9\u05ea
 territories.CI=\u05d7\u05d5\u05e3 \u05d4\u05e9\u05e0\u05d4\u05d1
-territories.021=\u05e6\u05e4\u05d5\u05df \u05d0\u05de\u05e8\u05d9\u05e7\u05d4
 territories.CH=\u05e9\u05d5\u05d5\u05d9\u05d9\u05e5
 territories.CG=\u05e7\u05d5\u05e0\u05d2\u05d5
-territories.CF=\u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05e9\u05dc \u05de\u05e8\u05db\u05d6 \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
-territories.CD=\u05e7\u05d5\u05e0\u05d2\u05d5, \u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05d4\u05d3\u05de\u05d5\u05e7\u05e8\u05d8\u05d9\u05ea \u05e9\u05dc
-territories.CC=\u05e7\u05d5\u05e7\u05d5\u05e1, \u05d0\u05d9\u05d9
+territories.CF=\u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05d4\u05de\u05e8\u05db\u05d6\u05be\u05d0\u05e4\u05e8\u05d9\u05e7\u05d0\u05d9\u05ea
+territories.CD=\u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05d4\u05d3\u05de\u05d5\u05e7\u05e8\u05d8\u05d9\u05ea \u05e9\u05dc \u05e7\u05d5\u05e0\u05d2\u05d5
+territories.CC=\u05d0\u05d9\u05d9 \u05e7\u05d5\u05e7\u05d5\u05e1
 territories.OM=\u05e2\u05d5\u05de\u05d0\u05df
 territories.CA=\u05e7\u05e0\u05d3\u05d4
+territories.419=\u05d0\u05de\u05e8\u05d9\u05e7\u05d4 \u05d4\u05dc\u05d8\u05d9\u05e0\u05d9\u05ea \u05d5\u05d4\u05e7\u05e8\u05d9\u05d1\u05d9\u05d9\u05dd
 territories.BZ=\u05d1\u05dc\u05d9\u05d6
-territories.BY=\u05d1\u05dc\u05d0\u05e8\u05d5\u05e1
-territories.BW=\u05d1\u05d5\u05e6\u05d5\u05d5\u05d0\u05e0\u05d4
-territories.BV=\u05d1\u05d5\u05d1\u05d4, \u05d0\u05d9
-territories.BT=\u05d1\u05d4\u05d5\u05d8\u05d0\u05df
-territories.BS=\u05d1\u05d0\u05d4\u05d0\u05de\u05d4, \u05d0\u05d9\u05d9
+territories.BY=\u05d1\u05dc\u05e8\u05d5\u05e1
+territories.BW=\u05d1\u05d5\u05d8\u05e1\u05d5\u05d5\u05d0\u05e0\u05d4
+territories.BV=\u05d0\u05d9\u05d9 \u05d1\u05d5\u05d1\u05d4
+territories.BT=\u05d1\u05d4\u05d5\u05d8\u05df
+territories.BS=\u05d0\u05d9\u05d9 \u05d1\u05d4\u05d0\u05de\u05d4
 territories.BR=\u05d1\u05e8\u05d6\u05d9\u05dc
 territories.019=\u05d0\u05de\u05e8\u05d9\u05e7\u05d5\u05ea
-territories.018=\u05d3\u05e8\u05d5\u05dd \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
+territories.018=\u05d3\u05e8\u05d5\u05dd \u05d9\u05d1\u05e9\u05ea \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
 territories.NZ=\u05e0\u05d9\u05d5 \u05d6\u05d9\u05dc\u05e0\u05d3
-territories.BO=\u05d1\u05d5\u05dc\u05d9\u05d1\u05d9\u05d4
 territories.017=\u05de\u05e8\u05db\u05d6 \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
-territories.BN=\u05d1\u05e8\u05d5\u05e0\u05d9\u05d9 \u05d3\u05d0\u05e8\u05d5\u05e1\u05d0\u05dc\u05d0\u05dd
-territories.BM=\u05d1\u05e8\u05de\u05d5\u05d3\u05d4
+territories.BO=\u05d1\u05d5\u05dc\u05d9\u05d1\u05d9\u05d4
+territories.BN=\u05d1\u05e8\u05d5\u05e0\u05d9\u05d9
 territories.015=\u05e6\u05e4\u05d5\u05df \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
+territories.BM=\u05d1\u05e8\u05de\u05d5\u05d3\u05d4
 territories.014=\u05de\u05d6\u05e8\u05d7 \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
+territories.BL=\u05e1\u05e0\u05d8 \u05d1\u05e8\u05ea\u05d5\u05dc\u05d5\u05de\u05d9\u05d0\u05d5
 territories.013=\u05de\u05e8\u05db\u05d6 \u05d0\u05de\u05e8\u05d9\u05e7\u05d4
-territories.NU=\u05e0\u05d9\u05d0\u05d5
+territories.NU=\u05e0\u05d9\u05d5\u05d5\u05d4
 territories.BJ=\u05d1\u05e0\u05d9\u05df
-territories.BI=\u05d1\u05d5\u05e8\u05d5\u05e0\u05d3\u05d9
 territories.011=\u05de\u05e2\u05e8\u05d1 \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
-territories.BH=\u05d1\u05d7\u05e8\u05d9\u05df
+territories.BI=\u05d1\u05d5\u05e8\u05d5\u05e0\u05d3\u05d9
+territories.172=\u05d7\u05d1\u05e8 \u05d4\u05de\u05d3\u05d9\u05e0\u05d5\u05ea \u05d4\u05e2\u05e6\u05de\u05d0\u05d9\u05d5\u05ea
+territories.BH=\u05d1\u05d7\u05e8\u05d9\u05d9\u05df
 territories.NR=\u05e0\u05d0\u05d5\u05e8\u05d5
 territories.BG=\u05d1\u05d5\u05dc\u05d2\u05e8\u05d9\u05d4
 territories.BF=\u05d1\u05d5\u05e8\u05e7\u05d9\u05e0\u05d4 \u05e4\u05d0\u05e1\u05d5
 territories.NP=\u05e0\u05e4\u05d0\u05dc
 territories.BE=\u05d1\u05dc\u05d2\u05d9\u05d4
+territories.ZZ=\u05d0\u05d9\u05d6\u05d5\u05e8 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2 \u05d0\u05d5 \u05dc\u05d0 \u05ea\u05e7\u05e3
 territories.NO=\u05e0\u05d5\u05e8\u05d5\u05d5\u05d2\u05d9\u05d4
 territories.BD=\u05d1\u05e0\u05d2\u05dc\u05d0\u05d3\u05e9
 territories.BB=\u05d1\u05e8\u05d1\u05d3\u05d5\u05e1
@@ -175,54 +404,57 @@ territories.NL=\u05d4\u05d5\u05dc\u05e0\u05d3
 territories.BA=\u05d1\u05d5\u05e1\u05e0\u05d9\u05d4 \u05d5\u05d4\u05e8\u05e6\u05d2\u05d5\u05d1\u05d9\u05e0\u05d4
 territories.NI=\u05e0\u05d9\u05e7\u05d0\u05e8\u05d0\u05d2\u05d5\u05d0\u05d4
 territories.NG=\u05e0\u05d9\u05d2\u05e8\u05d9\u05d4
-territories.NF=\u05e0\u05d5\u05e8\u05e4\u05d5\u05e7, \u05d0\u05d9\u05d9
+territories.NF=\u05d0\u05d9\u05d9 \u05e0\u05d5\u05e8\u05e4\u05d5\u05e7
 territories.AZ=\u05d0\u05d6\u05e8\u05d1\u05d9\u05d9\u05d2\u05f3\u05d0\u05df
 territories.NE=\u05e0\u05d9\u05d6\u05f3\u05e8
 territories.AX=\u05d0\u05d9\u05d9 \u05d0\u05dc\u05e0\u05d3
 territories.NC=\u05e7\u05dc\u05d3\u05d5\u05e0\u05d9\u05d4 \u05d4\u05d7\u05d3\u05e9\u05d4
 territories.AW=\u05d0\u05e8\u05d5\u05d1\u05d4
 territories.ZM=\u05d6\u05de\u05d1\u05d9\u05d4
-territories.NA=\u05e0\u05d0\u05de\u05d9\u05d1\u05d9\u05d4
+territories.NA=\u05e0\u05de\u05d9\u05d1\u05d9\u05d4
 territories.AU=\u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05d4
 territories.AT=\u05d0\u05d5\u05e1\u05d8\u05e8\u05d9\u05d4
 territories.AS=\u05e1\u05de\u05d5\u05d0\u05d4 \u05d4\u05d0\u05de\u05e8\u05d9\u05e7\u05e0\u05d9\u05ea
 territories.AR=\u05d0\u05e8\u05d2\u05e0\u05d8\u05d9\u05e0\u05d4
-territories.009=\u05d0\u05d5\u05e7\u05d9\u05e0\u05d9\u05d4
 territories.AQ=\u05d0\u05e0\u05d8\u05d0\u05e8\u05e7\u05d8\u05d9\u05e7\u05d4
+territories.009=\u05d0\u05d5\u05e7\u05d9\u05d0\u05e0\u05d9\u05d4
 territories.MZ=\u05de\u05d5\u05d6\u05de\u05d1\u05d9\u05e7
 territories.AO=\u05d0\u05e0\u05d2\u05d5\u05dc\u05d4
 territories.MY=\u05de\u05dc\u05d6\u05d9\u05d4
 territories.AN=\u05d0\u05e0\u05d8\u05d9\u05dc\u05d9\u05dd \u05d4\u05d5\u05dc\u05e0\u05d3\u05d9\u05d9\u05dd
 territories.MX=\u05de\u05e7\u05e1\u05d9\u05e7\u05d5
-territories.005=\u05d3\u05e8\u05d5\u05dd \u05d0\u05de\u05e8\u05d9\u05e7\u05d4
 territories.AM=\u05d0\u05e8\u05de\u05e0\u05d9\u05d4
+territories.005=\u05d3\u05e8\u05d5\u05dd \u05d0\u05de\u05e8\u05d9\u05e7\u05d4
 territories.MW=\u05de\u05dc\u05d0\u05d5\u05d5\u05d9
 territories.AL=\u05d0\u05dc\u05d1\u05e0\u05d9\u05d4
 territories.MV=\u05de\u05dc\u05d3\u05d9\u05d1\u05d9\u05dd
+territories.003=\u05e6\u05e4\u05d5\u05df \u05d0\u05de\u05e8\u05d9\u05e7\u05d4
 territories.ZA=\u05d3\u05e8\u05d5\u05dd \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
 territories.MU=\u05de\u05d0\u05d5\u05e8\u05d9\u05e6\u05d9\u05d5\u05e1
 territories.002=\u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
 territories.MT=\u05de\u05dc\u05d8\u05d4
-territories.001=\u05e2\u05d5\u05dc\u05dd
 territories.AI=\u05d0\u05e0\u05d2\u05d5\u05d5\u05d9\u05dc\u05d4
-territories.MS=\u05de\u05d5\u05e0\u05e1\u05e8\u05d0\u05d8
+territories.001=\u05d4\u05e2\u05d5\u05dc\u05dd
+territories.MS=\u05de\u05d5\u05e0\u05d8\u05e1\u05e8\u05d0\u05d8
 territories.MR=\u05de\u05d0\u05d5\u05e8\u05d9\u05d8\u05e0\u05d9\u05d4
 territories.AG=\u05d0\u05e0\u05d8\u05d9\u05d2\u05d5\u05d0\u05d4 \u05d5\u05d1\u05e8\u05d1\u05d5\u05d3\u05d4
 territories.MQ=\u05de\u05e8\u05d8\u05d9\u05e0\u05d9\u05e7
-territories.AF=\u05d0\u05e4\u05d2\u05e0\u05d9\u05e1\u05d8\u05d0\u05df
-territories.MP=\u05de\u05e8\u05d9\u05d0\u05e0\u05d4 \u05d4\u05e6\u05e4\u05d5\u05e0\u05d9\u05d9\u05dd, \u05d0\u05d9\u05d9
-territories.AE=\u05d1\u05e8\u05d9\u05ea \u05d4\u05d0\u05de\u05d9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d4\u05e2\u05e8\u05d1\u05d9\u05d5\u05ea
-territories.MO=\u05de\u05e7\u05d0\u05d5 S.A.R.\u200e \u05e9\u05dc \u05e1\u05d9\u05df
+territories.AF=\u05d0\u05e4\u05d2\u05e0\u05d9\u05e1\u05d8\u05df
+territories.MP=\u05d0\u05d9\u05d9 \u05de\u05e8\u05d9\u05d0\u05e0\u05d4 \u05d4\u05e6\u05e4\u05d5\u05e0\u05d9\u05d9\u05dd
+territories.AE=\u05d0\u05d9\u05d7\u05d5\u05d3 \u05d4\u05d0\u05de\u05d9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d4\u05e2\u05e8\u05d1\u05d9\u05d5\u05ea
+territories.MO=\u05de\u05e7\u05d0\u05d5
 territories.AD=\u05d0\u05e0\u05d3\u05d5\u05e8\u05d4
 territories.MN=\u05de\u05d5\u05e0\u05d2\u05d5\u05dc\u05d9\u05d4
 territories.MM=\u05de\u05d9\u05d9\u05d0\u05e0\u05de\u05d0\u05e8
 territories.ML=\u05de\u05d0\u05dc\u05d9
 territories.MK=\u05de\u05e7\u05d3\u05d5\u05e0\u05d9\u05d4
 territories.YT=\u05de\u05d0\u05d9\u05d5\u05d8
-territories.MH=\u05de\u05e8\u05e9\u05dc, \u05d0\u05d9\u05d9
+territories.MH=\u05d0\u05d9\u05d9 \u05de\u05e8\u05e9\u05dc
 territories.MG=\u05de\u05d3\u05d2\u05e1\u05e7\u05e8
+territories.MF=\u05e1\u05e0\u05d8 \u05de\u05e8\u05d8\u05d9\u05df
+territories.ME=\u05de\u05d5\u05e0\u05d8\u05e0\u05d2\u05e8\u05d5
 territories.MD=\u05de\u05d5\u05dc\u05d3\u05d5\u05d1\u05d4
-territories.MC=\u05de\u05d5\u05e0\u05d0\u05e7\u05d5
+territories.MC=\u05de\u05d5\u05e0\u05e7\u05d5
 territories.MA=\u05de\u05e8\u05d5\u05e7\u05d5
 territories.YE=\u05ea\u05d9\u05de\u05df
 territories.LY=\u05dc\u05d5\u05d1
@@ -231,7 +463,7 @@ territories.155=\u05de\u05e2\u05e8\u05d1 \u05d0\u05d9\u05e8\u05d5\u05e4\u05d4
 territories.LU=\u05dc\u05d5\u05e7\u05e1\u05de\u05d1\u05d5\u05e8\u05d2
 territories.154=\u05e6\u05e4\u05d5\u05df \u05d0\u05d9\u05e8\u05d5\u05e4\u05d4
 territories.LT=\u05dc\u05d9\u05d8\u05d0
-territories.LS=\u05dc\u05e1\u05d5\u05ea\u05d5
+territories.LS=\u05dc\u05e1\u05d5\u05d8\u05d5
 territories.LR=\u05dc\u05d9\u05d1\u05e8\u05d9\u05d4
 territories.151=\u05de\u05d6\u05e8\u05d7 \u05d0\u05d9\u05e8\u05d5\u05e4\u05d4
 territories.150=\u05d0\u05d9\u05e8\u05d5\u05e4\u05d4
@@ -240,44 +472,47 @@ territories.LI=\u05dc\u05d9\u05db\u05d8\u05e0\u05e9\u05d8\u05d9\u05d9\u05df
 territories.LC=\u05e1\u05e0\u05d8 \u05dc\u05d5\u05e1\u05d9\u05d4
 territories.LB=\u05dc\u05d1\u05e0\u05d5\u05df
 territories.LA=\u05dc\u05d0\u05d5\u05e1
-territories.KZ=\u05e7\u05d6\u05d0\u05d7\u05e1\u05d8\u05d0\u05df
-territories.KY=\u05e7\u05d9\u05d9\u05de\u05d0\u05df, \u05d0\u05d9\u05d9
-territories.KW=\u05db\u05d5\u05d5\u05d9\u05d9\u05ea
-territories.145=\u05de\u05d6\u05e8\u05d7 \u05d0\u05e1\u05d9\u05d4
+territories.KZ=\u05e7\u05d6\u05d7\u05e1\u05d8\u05df
+territories.KY=\u05d0\u05d9\u05d9 \u05e7\u05d9\u05d9\u05de\u05df
+territories.KW=\u05db\u05d5\u05d5\u05d9\u05ea
+territories.145=\u05de\u05e2\u05e8\u05d1 \u05d0\u05e1\u05d9\u05d4
+territories.143=\u05de\u05e8\u05db\u05d6 \u05d0\u05e1\u05d9\u05d4
 territories.142=\u05d0\u05e1\u05d9\u05d4
-territories.KR=\u05e7\u05d5\u05e8\u05d9\u05d0\u05d4 \u05d4\u05d3\u05e8\u05d5\u05de\u05d9\u05ea
-territories.KP=\u05e7\u05d5\u05e8\u05d9\u05d0\u05d4 \u05d4\u05e6\u05e4\u05d5\u05e0\u05d9\u05ea
+territories.KR=\u05d3\u05e8\u05d5\u05dd \u05e7\u05d5\u05e8\u05d9\u05d0\u05d4
+territories.KP=\u05e6\u05e4\u05d5\u05df \u05e7\u05d5\u05e8\u05d9\u05d0\u05d4
 territories.KN=\u05e1\u05e0\u05d8 \u05e7\u05d9\u05d8\u05e1 \u05d5\u05e0\u05d5\u05d5\u05d9\u05e1
 territories.KM=\u05e7\u05d5\u05de\u05d5\u05e8\u05d5\u05e1
 territories.KI=\u05e7\u05d9\u05e8\u05d9\u05d1\u05d0\u05d8\u05d9
 territories.WS=\u05e1\u05de\u05d5\u05d0\u05d4
 territories.KH=\u05e7\u05de\u05d1\u05d5\u05d3\u05d9\u05d4
-territories.KG=\u05e7\u05d9\u05e8\u05d2\u05d9\u05d6\u05e1\u05d8\u05d0\u05df
+territories.KG=\u05e7\u05d9\u05e8\u05d2\u05d9\u05d6\u05e1\u05d8\u05df
 territories.KE=\u05e7\u05e0\u05d9\u05d4
-territories.WF=\u05d5\u05d5\u05dc\u05d9\u05e1 \u05d5\u05e4\u05d5\u05d8\u05d5\u05e0\u05d4
+territories.WF=\u05d0\u05d9\u05d9 \u05d5\u05d5\u05dc\u05d9\u05e1 \u05d5\u05e4\u05d5\u05d8\u05d5\u05e0\u05d4
 territories.JP=\u05d9\u05e4\u05df
 territories.JO=\u05d9\u05e8\u05d3\u05df
-territories.JM=\u05d2\u05f3\u05d0\u05de\u05d9\u05d9\u05e7\u05d4
+territories.JM=\u05d2\u05f3\u05de\u05d9\u05d9\u05e7\u05d4
 territories.VU=\u05d5\u05d0\u05e0\u05d5\u05d0\u05d8\u05d5
+territories.JE=\u05d2\u05f3\u05e8\u05e1\u05d9
 territories.VN=\u05d5\u05d9\u05d9\u05d8\u05e0\u05d0\u05dd
-territories.VI=\u05d1\u05ea\u05d5\u05dc\u05d4, \u05d0\u05d9\u05d9 (\u05d0\u05e8\u05d4\"\u05d1)
-territories.VG=\u05d1\u05ea\u05d5\u05dc\u05d4, \u05d0\u05d9\u05d9 (\u05d1\u05e8\u05d9\u05d8\u05d9\u05d9\u05dd)
+territories.VI=\u05d0\u05d9\u05d9 \u05d4\u05d1\u05ea\u05d5\u05dc\u05d4 \u05d4\u05d0\u05de\u05e8\u05d9\u05e7\u05e0\u05d9\u05d9\u05dd
+territories.VG=\u05d0\u05d9\u05d9 \u05d4\u05d1\u05ea\u05d5\u05dc\u05d4 \u05d4\u05d1\u05e8\u05d9\u05d8\u05d9\u05d9\u05dd
 territories.VE=\u05d5\u05e0\u05e6\u05d5\u05d0\u05dc\u05d4
-territories.VC=\u05e1\u05e0\u05d8 \u05d5\u05d9\u05e0\u05e1\u05e0\u05d8 \u05d5\u05d0\u05d9\u05d9 \u05d2\u05e8\u05e0\u05d0\u05d3\u05d9\u05df
-territories.VA=\u05d5\u05d8\u05d9\u05e7\u05d0\u05df
+territories.VC=\u05e1\u05e0\u05d8 \u05d5\u05d9\u05e0\u05e1\u05e0\u05d8 \u05d5\u05d4\u05d2\u05e8\u05e0\u05d3\u05d9\u05e0\u05d9\u05dd
+territories.VA=\u05d5\u05ea\u05d9\u05e7\u05df
 territories.IT=\u05d0\u05d9\u05d8\u05dc\u05d9\u05d4
 territories.IS=\u05d0\u05d9\u05e1\u05dc\u05e0\u05d3
 territories.IR=\u05d0\u05d9\u05e8\u05d0\u05df
 territories.IQ=\u05e2\u05d9\u05e8\u05e7
-territories.UZ=\u05d0\u05d5\u05d6\u05d1\u05e7\u05d9\u05e1\u05d8\u05d0\u05df
+territories.UZ=\u05d0\u05d5\u05d6\u05d1\u05e7\u05d9\u05e1\u05d8\u05df
 territories.IO=\u05d8\u05e8\u05d9\u05d8\u05d5\u05e8\u05d9\u05d4 \u05d1\u05e8\u05d9\u05d8\u05d9\u05ea \u05d1\u05d0\u05d5\u05e7\u05d9\u05d0\u05e0\u05d5\u05e1 \u05d4\u05d4\u05d5\u05d3\u05d9
 territories.UY=\u05d0\u05d5\u05e8\u05d5\u05d2\u05d5\u05d5\u05d0\u05d9
 territories.IN=\u05d4\u05d5\u05d3\u05d5
+territories.IM=\u05d4\u05d0\u05d9 \u05de\u05d0\u05df
 territories.IL=\u05d9\u05e9\u05e8\u05d0\u05dc
 territories.US=\u05d0\u05e8\u05e6\u05d5\u05ea \u05d4\u05d1\u05e8\u05d9\u05ea
 territories.IE=\u05d0\u05d9\u05e8\u05dc\u05e0\u05d3
 territories.ID=\u05d0\u05d9\u05e0\u05d3\u05d5\u05e0\u05d6\u05d9\u05d4
-territories.UM=\u05d0\u05d9\u05d9\u05dd \u05e9\u05d5\u05e0\u05d9\u05dd \u05e9\u05dc \u05d0\u05e8\u05e6\u05d5\u05ea \u05d4\u05d1\u05e8\u05d9\u05ea \u05d1\u05d0\u05d5\u05e7\u05d9\u05d0\u05e0\u05d5\u05e1 \u05d4\u05e9\u05e7\u05d8
+territories.UM=\u05d0\u05d9\u05d9\u05dd \u05e7\u05d8\u05e0\u05d9\u05dd \u05e9\u05dc\u05d7\u05d5\u05e3 \u05d0\u05e8\u05e6\u05d5\u05ea \u05d4\u05d1\u05e8\u05d9\u05ea
 territories.UG=\u05d0\u05d5\u05d2\u05e0\u05d3\u05d4
 territories.UA=\u05d0\u05d5\u05e7\u05e8\u05d0\u05d9\u05e0\u05d4
 territories.HU=\u05d4\u05d5\u05e0\u05d2\u05e8\u05d9\u05d4
@@ -285,86 +520,337 @@ territories.HT=\u05d4\u05d0\u05d9\u05d8\u05d9
 territories.HR=\u05e7\u05e8\u05d5\u05d0\u05d8\u05d9\u05d4
 territories.TZ=\u05d8\u05e0\u05d6\u05e0\u05d9\u05d4
 territories.HN=\u05d4\u05d5\u05e0\u05d3\u05d5\u05e8\u05e1
-territories.HM=\u05d4\u05e8\u05d3 \u05d5\u05de\u05e7\u05d3\u05d5\u05e0\u05dc\u05e0\u05d3, \u05d0\u05d9\u05d9
-territories.TW=\u05d8\u05d9\u05d9\u05d5\u05d5\u05d0\u05df
+territories.HM=\u05d0\u05d9\u05d9 \u05d4\u05e8\u05d3 \u05d5\u05d0\u05d9\u05d9 \u05de\u05e7\u05d3\u05d5\u05e0\u05dc\u05e0\u05d3
+territories.TW=\u05d8\u05d0\u05d9\u05d5\u05d5\u05d0\u05df
 territories.TV=\u05d8\u05d5\u05d1\u05d0\u05dc\u05d5
-territories.HK=\u05d4\u05d5\u05e0\u05d2 \u05e7\u05d5\u05e0\u05d2 S.A.R.\u200e \u05e9\u05dc \u05e1\u05d9\u05df
-territories.TT=\u05d8\u05e8\u05d9\u05e0\u05d9\u05d3\u05d0\u05d3 \u05d5\u05d8\u05d5\u05d1\u05d2\u05d5
+territories.HK=\u05d4\u05d5\u05e0\u05d2 \u05e7\u05d5\u05e0\u05d2
+territories.TT=\u05d8\u05e8\u05d9\u05e0\u05d9\u05d3\u05d3 \u05d5\u05d8\u05d5\u05d1\u05d2\u05d5
 territories.TR=\u05d8\u05d5\u05e8\u05e7\u05d9\u05d4
 territories.TO=\u05d8\u05d5\u05e0\u05d2\u05d4
 territories.TN=\u05d8\u05d5\u05e0\u05d9\u05e1\u05d9\u05d4
-territories.TM=\u05d8\u05d5\u05e8\u05e7\u05de\u05e0\u05d9\u05e1\u05d8\u05d0\u05df
-languages.es=\u05e1\u05e4\u05e8\u05d3\u05d9\u05ea
-languages.mul=\u05de\u05e1\u05e4\u05e8 \u05e9\u05e4\u05d5\u05ea
-languages.eo=\u05d0\u05e1\u05e4\u05e8\u05e0\u05d8\u05d5
-languages.en=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea
-languages.el=\u05d9\u05d5\u05d5\u05e0\u05d9\u05ea
-languages.ko=\u05e7\u05d5\u05e8\u05d9\u05d0\u05e0\u05d9\u05ea
-languages.sgn=\u05e9\u05e4\u05ea \u05e1\u05d9\u05de\u05e0\u05d9\u05dd
-languages.ka=\u05d2\u05e8\u05d5\u05d6\u05d9\u05e0\u05d9\u05ea
+territories.TM=\u05d8\u05d5\u05e8\u05e7\u05de\u05e0\u05d9\u05e1\u05d8\u05df
+languages.akk=\u05d0\u05db\u05d3\u05d9\u05ea
+languages.eka=eka
+languages.xh=xh
+languages.sux=\u05e9\u05d5\u05de\u05e8\u05d9\u05ea
+languages.mis=\u05e9\u05e4\u05d5\u05ea \u05e9\u05d5\u05e0\u05d5\u05ea
+languages.zbl=zbl
+languages.wo=\u05d2'\u05d5\u05dc\u05d5\u05e3
+languages.zap=\u05d6\u05d0\u05e4\u05d5\u05d8\u05e7
+languages.ain=\u05d0\u05d9\u05e0\u05d5
+languages.cus=cus
+languages.doi=\u05d3\u05d5\u05d2\u05e8\u05d9
+languages.vi=\u05d5\u05d9\u05d9\u05d8\u05e0\u05d0\u05de\u05d9\u05ea
+languages.raj=\u05e8\u05d0\u05d2'\u05e1\u05d8\u05df
+languages.ota=\u05d8\u05d5\u05e8\u05e7\u05d9\u05ea \u05e2\u05d5\u05ea\u05d5\u05de\u05e0\u05d9\u05ea
 languages.nap=\u05e0\u05e4\u05d5\u05dc\u05d9\u05d8\u05e0\u05d9\u05ea
+languages.uz=\u05d0\u05d5\u05d6\u05d1\u05e7\u05d9\u05ea
+languages.uga=\u05d0\u05d5\u05d2\u05e8\u05d9\u05ea\u05d9\u05ea
+languages.nai=\u05d0\u05d9\u05e0\u05d3\u05d9\u05d0\u05e0\u05d9\u05ea \u05e6\u05e4\u05d5\u05df \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9\u05ea \u05d0\u05d7\u05e8\u05ea
+languages.nah=\u05e0\u05d0\u05d4\u05d5\u05d0\u05d8\u05dc
+languages.ur=\u05d0\u05d5\u05e8\u05d3\u05d5
+languages.fat=fat
+languages.uk=\u05d0\u05d5\u05e7\u05e8\u05d0\u05d9\u05e0\u05d9\u05ea
+languages.egy=\u05de\u05e6\u05e8\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.zxx=\u05dc\u05dc\u05d0 \u05ea\u05d5\u05db\u05df \u05dc\u05e9\u05d5\u05e0\u05d9
+languages.ug=\u05d0\u05d5\u05d9\u05d2\u05d4\u05d5\u05e8
+languages.fan=fan
+languages.mga=\u05d0\u05d9\u05e8\u05d9\u05ea \u05ea\u05d9\u05db\u05d5\u05e0\u05d4
+languages.bat=bat
+languages.bas=bas
+languages.gsw=\u05d2\u05e8\u05de\u05e0\u05d9\u05ea \u05e9\u05d5\u05d5\u05d9\u05e6\u05e8\u05d9\u05ea
+languages.ban=\u05d1\u05dc\u05d9\u05e0\u05d6\u05d9\u05ea
+languages.bal=\u05d1\u05d0\u05dc\u05d5\u05e6'\u05d9
+languages.ty=\u05d8\u05d4\u05d9\u05d8\u05d9\u05ea
+languages.bai=bai
+languages.tw=\u05d8\u05d5\u05d5\u05d9
+languages.tlh=\u05e7\u05dc\u05d9\u05e0\u05d2\u05d5\u05e0\u05d9\u05ea
+languages.tt=\u05d8\u05d8\u05e8\u05d9\u05ea
+languages.bad=bad
+languages.tr=\u05d8\u05d5\u05e8\u05e7\u05d9\u05ea
+languages.tl=\u05d8\u05d2\u05dc\u05d5\u05d2
+languages.tk=\u05d8\u05d5\u05e8\u05e7\u05de\u05e0\u05d9\u05ea
+languages.ti=\u05d8\u05d9\u05d2\u05e8\u05d9\u05e0\u05d0\u05d9\u05ea
+languages.th=\u05ea\u05d0\u05d9
+languages.byn=byn
+languages.te=\u05d8\u05dc\u05d5\u05d2\u05d5
+languages.ta=\u05d8\u05de\u05d9\u05dc\u05d9\u05ea
+languages.efi=efi
+languages.sw=\u05e1\u05d5\u05d5\u05d4\u05d9\u05dc\u05d9\u05ea
+languages.sv=\u05e9\u05d5\u05d5\u05d3\u05d9\u05ea
+languages.su=\u05e1\u05d5\u05d3\u05e0\u05d9\u05ea
+languages.st=\u05e1\u05e1\u05d5\u05ea'\u05d5
+languages.sr=\u05e1\u05e8\u05d1\u05d9\u05ea
+languages.sq=\u05d0\u05dc\u05d1\u05e0\u05d9\u05ea
+languages.crp=crp
+languages.afh=\u05d0\u05e4\u05e8\u05d9\u05d4\u05d9\u05dc\u05d9
+languages.so=\u05e1\u05d5\u05de\u05dc\u05d9\u05ea
+languages.sm=\u05e1\u05de\u05d5\u05d0\u05d9\u05ea
+languages.grc=\u05d9\u05d5\u05d5\u05e0\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.sl=\u05e1\u05dc\u05d5\u05d1\u05e0\u05d9\u05ea
+languages.grb=grb
+languages.sk=\u05e1\u05dc\u05d5\u05d1\u05e7\u05d9\u05ea
+languages.si=\u05e1\u05d9\u05e0\u05d4\u05dc\u05d4
+languages.crh=\u05d8\u05d8\u05e8\u05d9\u05ea \u05e9\u05dc \u05e7\u05e8\u05d9\u05dd
+languages.afa=\u05e9\u05e4\u05d4 \u05d0\u05e4\u05e8\u05d5-\u05d0\u05e1\u05d9\u05d0\u05ea\u05d9\u05ea
+languages.sh=\u05e1\u05e8\u05d1\u05d5\u05be\u05e7\u05e8\u05d5\u05d0\u05d8\u05d9\u05ea
+languages.sd=\u05e1\u05d9\u05e0\u05d3\u05d4\u05d9\u05ea
+languages.sc=\u05e1\u05e8\u05d3\u05d9\u05e0\u05d9\u05ea
+languages.sa=\u05e1\u05e0\u05e1\u05e7\u05e8\u05d9\u05d8
+languages.rw=\u05e7\u05d9\u05e0\u05d9\u05d4\u05e8\u05d5\u05d0\u05e0\u05d3\u05d4
+languages.nwc=\u05e0\u05d5\u05d5\u05d0\u05e8\u05d9\u05ea \u05e7\u05dc\u05d0\u05e1\u05d9\u05ea
+languages.ru=\u05e8\u05d5\u05e1\u05d9\u05ea
+languages.ro=\u05e8\u05d5\u05de\u05e0\u05d9\u05ea
+languages.fr_CH=\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea \u05e9\u05d5\u05d5\u05d9\u05e6\u05e8\u05d9\u05ea
+languages.fr_CA=\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea \u05e7\u05e0\u05d3\u05d9\u05ea
+languages.ady=\u05d0\u05d3\u05d9\u05d2\u05d9\u05ea
+languages.rup=\u05d0\u05e8\u05d5\u05de\u05e0\u05d9\u05ea
+languages.ada=ada
+languages.hit=\u05d7\u05d9\u05ea\u05d9\u05ea
+languages.cpf=cpf
+languages.cpe=cpe
+languages.got=\u05d2\u05d5\u05ea\u05d9\u05ea
+languages.gor=gor
+languages.gon=\u05d2\u05d5\u05e0\u05d3\u05d9
+languages.din=din
+languages.nub=\u05e9\u05e4\u05d4 \u05e0\u05d5\u05d1\u05d9\u05ea
 languages.pt=\u05e4\u05d5\u05e8\u05d8\u05d5\u05d2\u05d6\u05d9\u05ea
-languages.mas=\u05de\u05d0\u05e1\u05d0\u05d9\u05ea
-languages.de=\u05d2\u05e8\u05de\u05e0\u05d9\u05ea
+languages.fur=fur
+languages.ps=\u05e4\u05d0\u05e9\u05d8\u05d5
+languages.phn=\u05e4\u05d9\u05e0\u05d9\u05e7\u05d9\u05ea
+languages.cop=\u05e7\u05d5\u05e4\u05d8\u05d9\u05ea
+languages.yap=\u05d9\u05d0\u05e4\u05d6\u05d9\u05ea
+languages.ach=ach
+languages.phi=\u05e9\u05e4\u05d4 \u05e4\u05d9\u05dc\u05d9\u05e4\u05d9\u05e0\u05d9\u05ea
+languages.ace=ace
 languages.pl=\u05e4\u05d5\u05dc\u05e0\u05d9\u05ea
-languages.da=\u05d3\u05e0\u05d9\u05ea
+languages.pa=\u05e4\u05d5\u05e0\u05d2\u05f3\u05d0\u05d1\u05d9\u05ea
+languages.bug=bug
+languages.bua=bua
+languages.mas=\u05de\u05d0\u05e1\u05d0\u05d9\u05ea
+languages.map=\u05d0\u05d5\u05e1\u05d8\u05e8\u05d5\u05e0\u05d6\u05d9\u05ea
+languages.or=\u05d0\u05d5\u05e8\u05d9\u05d4
+languages.smi=\u05e9\u05e4\u05d4 \u05e1\u05d0\u05de\u05d9\u05ea
+languages.mai=\u05de\u05d0\u05d9\u05d8\u05d9\u05dc\u05d9\u05ea
+languages.mag=\u05de\u05d0\u05d2\u05d0\u05d4\u05d9\u05ea
+languages.btk=btk
+languages.oc=\u05d0\u05d5\u05e7\u05e1\u05d9\u05d8\u05e0\u05d9\u05ea
+languages.myv=myv
+languages.es_ES=\u05e1\u05e4\u05e8\u05d3\u05d9\u05ea \u05d0\u05d9\u05d1\u05e8\u05d9\u05ea
+languages.de_AT=\u05d2\u05e8\u05de\u05e0\u05d9\u05ea \u05d0\u05d5\u05e1\u05d8\u05e8\u05d9\u05ea
+languages.dgr=dgr
+languages.myn=\u05de\u05d0\u05d9\u05d4
+languages.nv=\u05e0\u05d1\u05d7\u05d5
+languages.no=\u05e0\u05d5\u05e8\u05d5\u05d5\u05d2\u05d9\u05ea
+languages.nn=\u05e0\u05d5\u05e8\u05d1\u05d2\u05d9\u05ea \u05d7\u05d3\u05e9\u05d4 - \u05e0\u05d9\u05e0\u05d5\u05e8\u05e9\u05e7
+languages.nl=\u05d4\u05d5\u05dc\u05e0\u05d3\u05d9\u05ea
+languages.sla=\u05e9\u05e4\u05d4 \u05e1\u05dc\u05d0\u05d1\u05d9\u05ea
+languages.ne=\u05e0\u05e4\u05d0\u05dc\u05d9\u05ea
+languages.cmc=cmc
+languages.nb=\u05e0\u05d5\u05e8\u05d1\u05d2\u05d9\u05ea \u05e9\u05e4\u05d4 \u05d4\u05e1\u05e4\u05e8 - \u05d1\u05d5\u05e7\u05de\u05d5\u05dc
+languages.na=\u05e0\u05d0\u05d5\u05e8\u05d9\u05ea
+languages.my=\u05d1\u05d5\u05e8\u05de\u05d6\u05d9\u05ea
+languages.frs=frs
+languages.mt=\u05de\u05dc\u05d8\u05d6\u05d9\u05ea
+languages.peo=\u05e4\u05e8\u05e1\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.ms=\u05de\u05dc\u05d0\u05d9\u05ea
+languages.mr=\u05de\u05d0\u05e8\u05ea\u05d9\u05ea
+languages.fro=\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.mo=\u05de\u05d5\u05dc\u05d3\u05d1\u05d9\u05ea
+languages.frm=\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea \u05ea\u05d9\u05db\u05d5\u05e0\u05d4
+languages.mn=\u05de\u05d5\u05e0\u05d2\u05d5\u05dc\u05d9\u05ea
+languages.jrb=\u05e2\u05e8\u05d1\u05d9\u05ea \u05d9\u05d4\u05d5\u05d3\u05d9\u05ea
+languages.ml=\u05de\u05dc\u05d0\u05d9\u05d0\u05dc\u05dd
+languages.mk=\u05de\u05e7\u05d3\u05d5\u05e0\u05d9\u05ea
+languages.mi=\u05de\u05d0\u05d5\u05e8\u05d9\u05ea
+languages.mg=\u05de\u05dc\u05d2\u05e9\u05d9\u05ea
+languages.bra=bra
+languages.den=\u05e1\u05dc\u05d0\u05d1\u05d9\u05ea
+languages.lv=\u05dc\u05d8\u05d1\u05d9\u05ea
+languages.del=\u05d3\u05dc\u05d0\u05d5\u05d5\u05e8
+languages.lt=\u05dc\u05d9\u05d8\u05d0\u05d9\u05ea
+languages.lo=\u05dc\u05d0\u05d5
+languages.ln=\u05dc\u05d9\u05e0\u05d2\u05d0\u05dc\u05d4
+languages.ewo=ewo
+languages.lg=lg
+languages.lb=\u05dc\u05d5\u05e7\u05e1\u05de\u05d1\u05d5\u05e8\u05d2\u05d9\u05ea
+languages.la=\u05dc\u05d8\u05d9\u05e0\u05d9\u05ea
+languages.jpr=\u05e4\u05e8\u05e1\u05d9\u05ea \u05d9\u05d4\u05d5\u05d3\u05d9\u05ea
+languages.ky=\u05e7\u05d9\u05e8\u05d2\u05d9\u05d6\u05d9\u05ea
+languages.sit=\u05e9\u05e4\u05d4 \u05e1\u05d9\u05e0\u05d5\u05be\u05d8\u05d9\u05d1\u05d8\u05d9\u05ea
+languages.kw=\u05e7\u05d5\u05e8\u05e0\u05d9\u05ea
+languages.ku=\u05db\u05d5\u05e8\u05d3\u05d9\u05ea
+languages.ks=\u05e7\u05e9\u05de\u05d9\u05e8\u05d9\u05ea
+languages.awa=\u05d0\u05d5\u05d5\u05d0\u05d3\u05d9\u05ea
+languages.ko=\u05e7\u05d5\u05e8\u05d9\u05d0\u05e0\u05d9\u05ea
+languages.kn=\u05e7\u05d0\u05e0\u05d0\u05d3\u05d4
+languages.km=\u05e7\u05de\u05e8\u05d9\u05ea
+languages.en_GB=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05d1\u05e8\u05d9\u05d8\u05d9\u05ea
+languages.kk=\u05e7\u05d6\u05d7\u05d9\u05ea
+languages.rom=\u05e8\u05d5\u05de\u05d0\u05e0\u05d9\u05ea
+languages.sid=\u05e1\u05d9\u05d3\u05de\u05d5
+languages.ka=\u05d2\u05e8\u05d5\u05d6\u05d9\u05e0\u05d9\u05ea
+languages.mus=mus
+languages.mul=\u05de\u05e1\u05e4\u05e8 \u05e9\u05e4\u05d5\u05ea
+languages.jv=\u05d2'\u05d0\u05d5\u05d5\u05d4\u05e0\u05d9\u05ea
+languages.gil=gil
+languages.fon=fon
+languages.aus=\u05e9\u05e4\u05d4 \u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05ea
 languages.ja=\u05d9\u05e4\u05e0\u05d9\u05ea
-languages.cy=\u05d5\u05d5\u05dc\u05e9\u05d9\u05ea
-languages.cs=\u05e6\u05f3\u05db\u05d9\u05ea
-languages.lad=\u05dc\u05d3\u05d9\u05e0\u05d5
+languages.chy=chy
 languages.it=\u05d0\u05d9\u05d8\u05dc\u05e7\u05d9\u05ea
 languages.is=\u05d0\u05d9\u05e1\u05dc\u05e0\u05d3\u05d9\u05ea
-languages.myn=\u05de\u05d0\u05d9\u05d4
-languages.aus=\u05e9\u05e4\u05d5\u05ea \u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05d5\u05ea
-languages.ca=\u05e7\u05d8\u05dc\u05d5\u05e0\u05d9\u05ea
+languages.sgn=\u05e9\u05e4\u05ea \u05e1\u05d9\u05de\u05e0\u05d9\u05dd
+languages.chr=\u05e6'\u05d9\u05e8\u05d5\u05e7\u05d9\u05ea
+languages.chp=chp
+languages.io=\u05d0\u05d9\u05d3\u05d5
+languages.cho=cho
+languages.chn=chn
+languages.bnt=\u05d1\u05e0\u05d8\u05d5
+languages.chk=chk
+languages.haw=\u05d4\u05d5\u05d5\u05d0\u05d9\u05ea
+languages.chg=\u05e6'\u05d0\u05d2\u05d0\u05d8\u05d0\u05d9
+languages.sga=\u05d0\u05d9\u05e8\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.ie=ie
 languages.id=\u05d0\u05d9\u05e0\u05d3\u05d5\u05e0\u05d6\u05d9\u05ea
-languages.uk=\u05d0\u05d5\u05e7\u05e8\u05d0\u05d9\u05e0\u05d9\u05ea
-languages.egy=\u05de\u05e6\u05e8\u05d9\u05ea (\u05e2\u05ea\u05d9\u05e7\u05d4)
+languages.day=day
+languages.chb=chb
+languages.ia=ia
+languages.lad=\u05dc\u05d3\u05d9\u05e0\u05d5
+languages.dar=dar
 languages.hy=\u05d0\u05e8\u05de\u05e0\u05d9\u05ea
-languages.bs=\u05d1\u05d5\u05e1\u05e0\u05d9\u05ea
+languages.ath=ath
 languages.hu=\u05d4\u05d5\u05e0\u05d2\u05e8\u05d9\u05ea
-languages.bo=\u05d8\u05d9\u05d1\u05d8\u05d9\u05ea
-languages.bn=\u05d1\u05e0\u05d2\u05dc\u05d9\u05ea
+languages.ht=\u05d4\u05d0\u05d9\u05d8\u05d9\u05ea
+languages.dak=\u05d3\u05e7\u05d5\u05d8\u05d4
 languages.hr=\u05e7\u05e8\u05d5\u05d0\u05d8\u05d9\u05ea
-languages.bg=\u05d1\u05d5\u05dc\u05d2\u05e8\u05d9\u05ea
-languages.no=\u05e0\u05d5\u05e8\u05d5\u05d5\u05d2\u05d9\u05ea
+languages.ho=\u05d4\u05d0\u05e8\u05d9 \u05de\u05d5\u05d8\u05d5
 languages.hi=\u05d4\u05d9\u05e0\u05d3\u05d9\u05ea
-languages.tr=\u05d8\u05d5\u05e8\u05e7\u05d9\u05ea
-languages.nl=\u05d4\u05d5\u05dc\u05e0\u05d3\u05d9\u05ea
-languages.zu=\u05d6\u05d5\u05dc\u05d5
+languages.dyu=dyu
 languages.he=\u05e2\u05d1\u05e8\u05d9\u05ea
-languages.tk=\u05d8\u05d5\u05e8\u05e7\u05de\u05e0\u05d9\u05ea
-languages.ne=\u05e0\u05e4\u05d0\u05dc\u05d9\u05ea
-languages.cad=\u05e7\u05d0\u05d3\u05d5
-languages.th=\u05ea\u05d0\u05d9
-languages.zh=\u05e1\u05d9\u05e0\u05d9\u05ea
-languages.ar=\u05e2\u05e8\u05d1\u05d9\u05ea
 languages.ast=\u05d0\u05d5\u05e1\u05d8\u05e8\u05d9\u05ea
-languages.mt=\u05de\u05dc\u05d8\u05d6\u05d9\u05ea
-languages.sw=\u05e1\u05d5\u05d5\u05d4\u05d9\u05dc\u05d9\u05ea
-languages.sv=\u05e9\u05d5\u05d5\u05d3\u05d9\u05ea
-languages.af=\u05d0\u05e4\u05e8\u05d9\u05e7\u05e0\u05d9\u05ea
-languages.mo=\u05de\u05d5\u05dc\u05d3\u05d1\u05d9\u05ea
-languages.mn=\u05de\u05d5\u05e0\u05d2\u05d5\u05dc\u05d9\u05ea
-languages.sr=\u05e1\u05e8\u05d1\u05d9\u05ea
-languages.aa=\u05d0\u05ea\u05d9\u05d5\u05e4\u05d9\u05ea
-languages.mk=\u05de\u05e7\u05d3\u05d5\u05e0\u05d9\u05ea
-languages.gd=\u05e1\u05e7\u05d5\u05d8\u05d9\u05ea \u05d2\u05d0\u05dc\u05d9\u05ea
-languages.mi=\u05de\u05d0\u05d5\u05e8\u05d9\u05ea
-languages.sl=\u05e1\u05dc\u05d5\u05d1\u05e0\u05d9\u05ea
+languages.ha=\u05d4\u05d0\u05d5\u05e1\u05d4
+languages.gv=\u05de\u05d0\u05e0\u05d9\u05ea
+languages.gu=\u05d2\u05d5\u05d2'\u05e8\u05d0\u05d8\u05d9\u05ea
+languages.sem=\u05e9\u05e4\u05d4 \u05e9\u05de\u05d9\u05ea
+languages.gn=\u05d2\u05d5\u05d0\u05e8\u05e0\u05d9
+languages.gl=\u05d2\u05dc\u05d9\u05e6\u05d9\u05d0\u05e0\u05d9\u05ea
+languages.en_CA=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05e7\u05e0\u05d3\u05d9\u05ea
+languages.arw=arw
+languages.gez=\u05d2\u05e2\u05d6
+languages.art=\u05e9\u05e4\u05d4 \u05de\u05dc\u05d0\u05db\u05d5\u05ea\u05d9\u05ea \u05d0\u05d7\u05e8\u05ea
+languages.gd=\u05d2\u05d0\u05dc\u05d9\u05ea \u05e1\u05e7\u05d5\u05d8\u05d9\u05ea
+languages.ira=\u05d0\u05d9\u05e8\u05d0\u05e0\u05d9\u05ea
 languages.ga=\u05d0\u05d9\u05e8\u05d9\u05ea
-languages.sk=\u05e1\u05dc\u05d5\u05d1\u05e7\u05d9\u05ea
-languages.sh=\u05e1\u05e8\u05d1\u05d5-\u05e7\u05e8\u05d5\u05d0\u05d8\u05d9\u05ea
-languages.yi=\u05d9\u05d9\u05d3\u05d9\u05e9
-languages.sa=\u05e1\u05e0\u05e1\u05e7\u05e8\u05d9\u05ea
+languages.arp=arp
+languages.arn=arn
+languages.fy=\u05e4\u05e8\u05d9\u05d6\u05d9\u05ea
+languages.gem=\u05d2\u05e8\u05de\u05d0\u05e0\u05d9\u05ea \u05d0\u05d7\u05e8\u05ea
+languages.arc=\u05d0\u05e8\u05de\u05d9\u05ea
 languages.fr=\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea
-languages.lv=\u05dc\u05d8\u05d1\u05d9\u05ea
-languages.lt=\u05dc\u05d9\u05d8\u05d0\u05d9\u05ea
-languages.ru=\u05e8\u05d5\u05e1\u05d9\u05ea
+languages.fo=\u05e4\u05d0\u05e8\u05d5\u05d0\u05d6\u05d9\u05ea
+languages.cel=\u05e9\u05e4\u05d4 \u05e7\u05dc\u05d8\u05d9\u05ea
+languages.fj=\u05e4\u05d9\u05d2'\u05d9\u05ea
 languages.fi=\u05e4\u05d9\u05e0\u05d9\u05ea
-languages.ro=\u05e8\u05d5\u05de\u05e0\u05d9\u05ea
-languages.arc=\u05d0\u05e8\u05de\u05d9\u05ea
+languages.ff=ff
+languages.ceb=\u05e7\u05d1\u05d5\u05d0\u05e0\u05d5
 languages.fa=\u05e4\u05e8\u05e1\u05d9\u05ea
-languages.la=\u05dc\u05d8\u05d9\u05e0\u05d9\u05ea
-languages.eu=\u05d1\u05e1\u05e7\u05d9\u05ea
+languages.en_AU=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05ea
+languages.zh_Hans=\u05e1\u05d9\u05e0\u05d9\u05ea \u05de\u05d5\u05d3\u05e8\u05e0\u05d9\u05ea
+languages.zh_Hant=\u05e1\u05d9\u05e0\u05d9\u05ea \u05de\u05e1\u05d5\u05e8\u05ea\u05d9\u05ea
+languages.eu=\u05d1\u05d0\u05e1\u05e7\u05d9\u05ea
+languages.sco=\u05e1\u05e7\u05d5\u05d8\u05d9\u05ea
 languages.et=\u05d0\u05e1\u05d8\u05d5\u05e0\u05d9\u05ea
+languages.scn=\u05e1\u05d9\u05e6\u05d9\u05dc\u05d9\u05d0\u05e0\u05d9\u05ea
+languages.es=\u05e1\u05e4\u05e8\u05d3\u05d9\u05ea
+languages.eo=\u05d0\u05e1\u05e4\u05e8\u05e0\u05d8\u05d5
+languages.en=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea
+languages.el=\u05d9\u05d5\u05d5\u05e0\u05d9\u05ea
+languages.tut=tut
+languages.ee=ee
+languages.nl_BE=\u05e4\u05dc\u05de\u05d9\u05ea
+languages.es_419=\u05e1\u05e4\u05e8\u05d3\u05d9\u05ea \u05de\u05d0\u05de\u05e8\u05d9\u05e7\u05d4 \u05d4\u05dc\u05d8\u05d9\u05e0\u05d9\u05ea
+languages.dz=\u05d3\u05d6\u05d5\u05e0\u05e7\u05d4
+languages.fiu=fiu
+languages.dv=\u05d3\u05d9\u05d1\u05d4\u05d9
+languages.apa=\u05e9\u05e4\u05d4 \u05d0\u05e4\u05d0\u05e6\u05f3\u05d9\u05ea
+languages.fil=\u05e4\u05d9\u05dc\u05d9\u05e4\u05d9\u05e0\u05d9\u05ea
+languages.cch=cch
+languages.bin=bin
+languages.de=\u05d2\u05e8\u05de\u05e0\u05d9\u05ea
+languages.bik=bik
+languages.und=\u05e9\u05e4\u05d4 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2\u05d4 \u05d0\u05d5 \u05dc\u05d0 \u05ea\u05e7\u05e4\u05d4
+languages.da=\u05d3\u05e0\u05d9\u05ea
+languages.dum=\u05d4\u05d5\u05dc\u05e0\u05d3\u05d9\u05ea \u05ea\u05d9\u05db\u05d5\u05e0\u05d4
+languages.sat=\u05e1\u05d0\u05e0\u05d8\u05dc\u05d9
+languages.cy=\u05d5\u05d5\u05dc\u05e9\u05d9\u05ea
+languages.cv=cv
+languages.cu=\u05e1\u05dc\u05d0\u05d1\u05d9\u05ea \u05db\u05e0\u05e1\u05d9\u05d9\u05ea\u05d9\u05ea
+languages.mni=\u05de\u05e0\u05d9\u05e4\u05d5\u05e8\u05d9\u05ea
+languages.cs=\u05e6\u05f3\u05db\u05d9\u05ea
+languages.sam=\u05d0\u05e8\u05de\u05d9\u05ea \u05e9\u05d5\u05de\u05e8\u05d5\u05e0\u05d9\u05ea
+languages.cr=cr
+languages.dua=dua
+languages.co=\u05e7\u05d5\u05e8\u05e1\u05d9\u05e7\u05d0\u05d9\u05ea
+languages.sai=\u05d0\u05d9\u05e0\u05d3\u05d9\u05d0\u05e0\u05d9\u05ea \u05d3\u05e8\u05d5\u05dd \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9\u05ea (\u05d0\u05d7\u05e8)
+languages.inh=\u05d0\u05d9\u05e0\u05d2\u05d5\u05e9\u05d9\u05ea
+languages.gba=gba
+languages.ch=ch
+languages.ine=\u05d0\u05d9\u05e0\u05d3\u05d5-\u05d0\u05d9\u05e8\u05d5\u05e4\u05d9\u05ea \u05d0\u05d7\u05e8\u05ea
+languages.bho=bho
+languages.enm=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05ea\u05d9\u05db\u05d5\u05e0\u05d4
+languages.ce=\u05e6'\u05e6'\u05e0\u05d9\u05ea
+languages.gay=gay
+languages.ca=\u05e7\u05d8\u05dc\u05d5\u05e0\u05d9\u05ea
+languages.syr=\u05e1\u05d5\u05e8\u05d9\u05ea
+languages.anp=anp
+languages.ang=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.cau=\u05e9\u05e4\u05d4 \u05e7\u05d5\u05d5\u05e7\u05d6\u05d9\u05ea
+languages.kab=\u05e7\u05d1\u05d9\u05dc\u05d4
+languages.bs=\u05d1\u05d5\u05e1\u05e0\u05d9\u05ea
+languages.car=car
+languages.br=\u05d1\u05e8\u05d8\u05d5\u05e0\u05d9\u05ea
+languages.syc=syc
+languages.bo=\u05d8\u05d9\u05d1\u05d8\u05d9\u05ea
+languages.bn=\u05d1\u05e0\u05d2\u05d0\u05dc\u05d9\u05ea
+languages.bm=bm
+languages.gaa=gaa
+languages.cai=\u05d0\u05d9\u05e0\u05d3\u05d9\u05d0\u05e0\u05d9\u05ea \u05de\u05e8\u05db\u05d6 \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9\u05ea \u05d0\u05d7\u05e8\u05ea
+languages.bi=\u05d1\u05d9\u05e1\u05dc\u05de\u05d4
+languages.bh=\u05d1\u05d9\u05d4\u05d0\u05e8\u05d9
+languages.bg=\u05d1\u05d5\u05dc\u05d2\u05e8\u05d9\u05ea
+languages.be=\u05d1\u05dc\u05d0\u05e8\u05d5\u05e1\u05d9\u05ea
+languages.cad=\u05e7\u05d0\u05d3\u05d5
+languages.pt_BR=\u05e4\u05d5\u05e8\u05d8\u05d5\u05d2\u05d6\u05d9\u05ea \u05d1\u05e8\u05d6\u05d9\u05dc\u05d0\u05d9\u05ea
+languages.ba=\u05d1\u05e9\u05e7\u05d9\u05e8\u05d9\u05ea
+languages.zu=\u05d6\u05d5\u05dc\u05d5
+languages.zen=\u05d6\u05e0\u05d0\u05d2\u05d4
+languages.az=\u05d0\u05d6\u05e8\u05d9\u05ea
+languages.ay=\u05d0\u05d9\u05d9\u05de\u05d0\u05e8\u05d9\u05ea
+languages.av=av
+languages.as=\u05d0\u05e1\u05de\u05d9\u05ea
+languages.ar=\u05e2\u05e8\u05d1\u05d9\u05ea
+languages.elx=\u05e2\u05d9\u05dc\u05de\u05d9\u05ea
+languages.zh=\u05e1\u05d9\u05e0\u05d9\u05ea
+languages.an=an
+languages.am=\u05d0\u05de\u05d4\u05e8\u05d9\u05ea
+languages.ak=\u05d0\u05e7\u05d0\u05df
+languages.en_US=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05d0\u05de\u05e8\u05d9\u05e7\u05e0\u05d9\u05ea
+languages.af=\u05d0\u05e4\u05e8\u05d9\u05e7\u05d0\u05e0\u05e1
+languages.ae=\u05d0\u05d1\u05e1\u05d8\u05df
+languages.ab=\u05d0\u05d1\u05d7\u05d6\u05d9\u05ea
+languages.aa=\u05d0\u05ea\u05d9\u05d5\u05e4\u05d9\u05ea
+languages.yo=\u05d9\u05d5\u05e8\u05d5\u05d1\u05d4
+languages.alg=alg
+languages.ale=ale
+languages.yi=\u05d9\u05d9\u05d3\u05d9\u05e9
+languages.dra=dra
+languages.ber=\u05d1\u05e8\u05d1\u05e8\u05d9\u05ea
+languages.nds=\u05d2\u05e8\u05de\u05e0\u05d9\u05ea \u05ea\u05d7\u05ea\u05d9\u05ea
+languages.bem=bem
+languages.bej=\u05d1\u05d6'\u05d4
+variants.POSIX=\u05de\u05d7\u05e9\u05d1
+variants.1901=\u05db\u05ea\u05d9\u05d1 \u05d2\u05e8\u05de\u05e0\u05d9 \u05de\u05e1\u05d5\u05e8\u05ea\u05d9
+variants.MONOTON=\u05de\u05d5\u05e0\u05d5\u05d8\u05d5\u05e0\u05d9\u05ea
+variants.AREVELA=\u05de\u05d6\u05e8\u05d7 \u05d0\u05e8\u05de\u05e0\u05d9\u05ea
+variants.AREVMDA=\u05de\u05e2\u05e8\u05d1 \u05d0\u05e8\u05de\u05e0\u05d9\u05ea
index 5add447541684c77e192dd9141dbfcb069854fe8..26e76ce7923054f26baee7eca7d286a9b766b7fa 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
 zeroDigit=\u0966
-currenciesSymbol.INR=\u0930\u0941
-shortMonths=\u091c\u0928\u0935\u0930\u0940®\u092b\u0930\u0935\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u0905\u092a\u094d\u0930\u0948\u0932®\u092e\u0908®\u091c\u0942\u0928®\u091c\u0941\u0932\u093e\u0908®\u0905\u0917\u0938\u094d\u0924®\u0938\u093f\u0924\u092e\u094d\u092c\u0930®\u0905\u0915\u094d\u0924\u0942\u092c\u0930®\u0928\u0935\u092e\u094d\u092c\u0930®\u0926\u093f\u0938\u092e\u094d\u092c\u0930®®
-months=\u091c\u0928\u0935\u0930\u0940®\u092b\u0930\u0935\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u0905\u092a\u094d\u0930\u0948\u0932®\u092e\u0908®\u091c\u0942\u0928®\u091c\u0941\u0932\u093e\u0908®\u0905\u0917\u0938\u094d\u0924®\u0938\u093f\u0924\u092e\u094d\u092c\u0930®\u0905\u0915\u094d\u0924\u0942\u092c\u0930®\u0928\u0935\u092e\u094d\u092c\u0930®\u0926\u093f\u0938\u092e\u094d\u092c\u0930®®
-shortWeekdays=®\u0930\u0935\u093f®\u0938\u094b\u092e®\u092e\u0902\u0917\u0932®\u092c\u0941\u0927®\u0917\u0941\u0930\u0941®\u0936\u0941\u0915\u094d\u0930®\u0936\u0928\u093f®
-weekdays=®\u0930\u0935\u093f\u0935\u093e\u0930®\u0938\u094b\u092e\u0935\u093e\u0930®\u092e\u0902\u0917\u0932\u0935\u093e\u0930®\u092c\u0941\u0927\u0935\u093e\u0930®\u0917\u0941\u0930\u0941\u0935\u093e\u0930®\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930®\u0936\u0928\u093f\u0935\u093e\u0930®
-eras=\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935®\u0938\u0928®
-ampms=\u092a\u0942\u0930\u094d\u0935\u093e\u0939\u094d\u0928®\u0905\u092a\u0930\u093e\u0939\u094d\u0928®
-zoneStrings=Asia/Calcutta®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®©
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
+currenciesDisplayName.LKR=\u0936\u094d\u0930\u0940\u0932\u0902\u0915\u093e\u0908 \u0930\u0941\u092a\u092f\u093e
+currenciesDisplayName.CYP=\u0938\u093e\u0908\u092a\u094d\u0930\u0938 \u092a\u093e\u090a\u0902\u0921
+currenciesDisplayName.HRK=\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u093e\u0908 \u0915\u0941\u0928\u093e
+currenciesDisplayName.CSD=\u092a\u0941\u0930\u093e\u0928\u093e \u0938\u0930\u094d\u092c\u093f\u092f\u093e\u0908 \u0926\u0940\u0928\u093e\u0930
+currenciesDisplayName.HRD=\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u0928 \u0926\u093f\u0928\u093e\u0930
+currenciesDisplayName.AMD=\u0905\u0930\u092e\u0947\u0928\u093f\u092f\u093e\u0908 \u0926\u0930\u092e
+currenciesDisplayName.SIT=\u0938\u094d\u0932\u094b\u0935\u0947\u0928\u093f\u092f\u093e\u0908 \u0924\u094b\u0932\u093e\u0930
+currenciesDisplayName.FRF=\u092b\u093c\u094d\u0930\u093e\u0902\u0938\u0940\u0938\u0940 \u092b\u093c\u094d\u0930\u0948\u0902\u0915
+currenciesDisplayName.SOS=\u0938\u094b\u092e\u093e\u0932\u0940 \u0936\u093f\u0932\u093f\u0902\u0917
+currenciesDisplayName.NPR=\u0928\u0947\u092a\u093e\u0932\u0940 \u0930\u0941\u092a\u092f\u093e
+currenciesDisplayName.CLP=\u091a\u093f\u0932\u0940 \u092a\u0940\u0938\u094b
+currenciesDisplayName.KWD=\u0915\u0941\u0935\u0948\u0924\u0940 \u0926\u093f\u0928\u093e\u0930
+currenciesDisplayName.SUR=\u0938\u094b\u0935\u093f\u092f\u0924 \u0930\u0942\u092c\u0932
+currenciesDisplayName.AFN=\u0905\u092b\u0917\u093e\u0928\u0940
+currenciesDisplayName.ZAR=\u0926\u0915\u094d\u0937\u093f\u0923 \u0905\u092b\u093c\u094d\u0930\u0940\u0915\u0940 \u0930\u0945\u0923\u094d\u0921
+currenciesDisplayName.RON=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e\u0908 \u0932\u094d\u092f\u0942
+currenciesDisplayName.KPW=\u0926\u0915\u094d\u0937\u093f\u0923 \u0915\u094b\u0930\u093f\u092f\u093e\u0908 \u0935\u094b\u0928
+currenciesDisplayName.IQD=\u0907\u0930\u093e\u0915\u0940 \u0926\u093f\u0928\u093e\u0930
+currenciesDisplayName.HKD=\u0939\u093e\u0901\u0917\u0915\u093e\u0901\u0917 \u0921\u0949\u0932\u0930
+currenciesDisplayName.ARS=\u0905\u0930\u094d\u091c\u0947\u0923\u094d\u091f\u0940\u0928\u0940 \u092a\u0940\u0938\u094b
+currenciesDisplayName.BRL=\u092c\u094d\u0930\u093e\u091c\u0940\u0932\u0940 \u0930\u093f\u092f\u093e\u0932
+currenciesDisplayName.JPY=\u091c\u093e\u092a\u093e\u0928\u0940 \u092f\u0947\u0928
+currenciesDisplayName.IDR=\u0907\u0923\u094d\u0921\u094b\u0928\u0947\u0936\u093f\u092f\u093e\u0908 \u0930\u0941\u092a\u093f\u092f\u093e
+currenciesDisplayName.EEK=\u090f\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u093e\u0908 \u0915\u094d\u0930\u0942\u0928\u094d
+currenciesDisplayName.AFA=\u0905\u092b\u0917\u093e\u0928\u0940
+currenciesDisplayName.DEM=\u0921\u091a \u092e\u093e\u0930\u094d\u0915
+currenciesDisplayName.RUB=\u0930\u0942\u0938\u0940 \u0930\u0942\u092c\u0932
+currenciesDisplayName.VND=\u0935\u093f\u092f\u0924\u0928\u093e\u092e\u0940 \u0921\u094b\u0902\u0917
+currenciesDisplayName.DKK=\u0921\u0947\u0928\u092e\u093e\u0930\u094d\u0915 \u0915\u094d\u0930\u094b\u0928
+currenciesDisplayName.THB=\u0925\u093e\u0908 \u092c\u093e\u0939\u0924
+currenciesDisplayName.NOK=\u0928\u0949\u0930\u094d\u0935\u0947 \u0915\u094d\u0930\u094b\u0928
+currenciesDisplayName.RHD=\u0930\u094b\u0921\u0947\u0936\u093f\u092f\u093e\u0908 \u0921\u093e\u0932\u0930
+currenciesDisplayName.PHP=\u092b\u093c\u093f\u0932\u093f\u092a\u0940\u0928\u0940 \u092a\u0940\u0938\u094b
+currenciesDisplayName.AED=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0905\u0930\u092c \u0905\u092e\u0940\u0930\u093e\u0924 \u0926\u093f\u0930\u094d\u0939\u093e\u092e
+currenciesDisplayName.SAR=\u0938\u0909\u0926\u0940 \u0930\u093f\u092f\u093e\u0932
+currenciesDisplayName.USS=\u0905\u092e\u0947\u0930\u0940\u0915\u0940 \u0921\u093e\u0932\u0930 (\u0906\u091c)
+currenciesDisplayName.FJD=\u092b\u093c\u093f\u091c\u0940 \u0921\u0949\u0932\u0930
+currenciesDisplayName.USN=\u0905\u092e\u0947\u0930\u0940\u0915\u0940 \u0921\u093e\u0932\u0930 (\u0915\u0932)
+currenciesDisplayName.LBP=\u0932\u0947\u092c\u0928\u093e\u0928\u0940 \u092a\u093e\u0909\u0902\u0921
+currenciesDisplayName.XXX=\u0905\u091c\u094d\u091e\u093e\u0924 \u092f\u093e \u0905\u0935\u0948\u0927 \u092e\u0941\u0926\u094d\u0930\u093e
+currenciesDisplayName.USD=\u0905\u092e\u0947\u0930\u0940\u0915\u0940 \u0921\u093e\u0932\u0930
+currenciesDisplayName.SGD=\u0938\u093f\u0902\u0917\u093e\u092a\u0941\u0930 \u0921\u0949\u0932\u0930
+currenciesDisplayName.SYP=\u0938\u0940\u0930\u093f\u092f\u093e\u0908 \u092a\u093e\u0909\u0902\u0921
+currenciesDisplayName.HUF=\u0939\u0902\u0917\u0930\u0940 \u092b\u094b\u0930\u0947\u0902\u091f\u094d
+currenciesDisplayName.LTL=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u093e\u0908 \u0932\u093f\u0924\u093e\u0938
+currenciesDisplayName.TRY=\u0928\u0908 \u0924\u0941\u0930\u094d\u0915\u0940 \u0932\u0940\u0930\u093e
+currenciesDisplayName.NZD=\u0928\u094d\u092f\u0942\u091c\u093c\u0940\u0932\u0948\u0902\u0921 \u0921\u0949\u0932\u0930
+currenciesDisplayName.OMR=\u0913\u092e\u093e\u0928\u0940 \u0930\u093f\u092f\u093e\u0932
+currenciesDisplayName.RSD=\u0938\u0930\u094d\u092c\u093f\u092f\u0928 \u0926\u093f\u0928\u093e\u0930
+currenciesDisplayName.EUR=\u092f\u0942\u0930\u094b
+currenciesDisplayName.INR=\u092d\u093e\u0930\u0924\u0940\u092f  \u0930\u0942\u092a\u092f\u093e
+currenciesDisplayName.GBP=\u092c\u094d\u0930\u093f\u0924\u093e\u0928\u0940 \u092a\u093e\u0909\u0902\u0921 \u0938\u094d\u091f\u0930\u094d\u0932\u093f\u0902\u0917
+currenciesDisplayName.NAD=\u0928\u093e\u092e\u0940\u092c\u093f\u092f\u093e\u0908 \u0921\u093e\u0932\u0930
+currenciesDisplayName.COP=\u0915\u094b\u0932\u092e\u094d\u092c\u093f\u092f\u093e\u0908 \u092a\u0940\u0938\u094b
+currenciesDisplayName.TRL=\u092a\u0941\u0930\u093e\u0928\u0940 \u0924\u0941\u0930\u094d\u0915\u0940 \u0932\u0940\u0930\u093e
+currenciesDisplayName.MAF=\u092e\u094b\u0930\u0915\u094d\u0915\u094b \u092b\u094d\u0930\u0948\u0902\u0915
+currenciesDisplayName.MAD=\u092e\u094b\u0930\u093e\u0915\u094d\u0915\u094b \u0926\u093f\u0930\u0939\u092e
+currenciesDisplayName.ITL=\u0907\u091f\u093e\u0932\u0935\u0940 \u0932\u0940\u0930\u093e
+currenciesDisplayName.MYR=\u092e\u0932\u0947\u0936\u093f\u092f\u093e\u0908 \u0930\u093f\u0902\u0917\u093f\u0924
+currenciesDisplayName.SRG=\u0938\u0942\u0930\u0940\u0928\u093e\u092e\u0940 \u0917\u093f\u0932\u094d\u0921\u0930
+currenciesDisplayName.SRD=\u0938\u0942\u0930\u0940\u0928\u093e\u092e\u0940 \u0921\u093e\u0932\u0930
+currenciesDisplayName.PLN=\u092a\u094b\u0932\u093f\u0936 \u0928\u092f\u093e \u091c\u093c\u094d\u0932\u0949\u091f\u0940
+currenciesDisplayName.VEB=\u0935\u0947\u0928\u0947\u091c\u093c\u0941\u090f\u0932\u093e\u0908 \u092c\u094b\u0932\u093f\u0935\u093e\u0930
+currenciesDisplayName.BOB=\u092c\u094b\u0932\u093f\u0935\u093f\u092f\u093e\u0908 \u092c\u094b\u0932\u093f\u0935\u093f\u092f\u093e\u0928\u094b
+currenciesDisplayName.CNY=\u091a\u0940\u0928\u0940 \u092f\u0941\u092f\u093e\u0928
+currenciesDisplayName.SEK=\u0938\u094d\u0935\u0940\u0921\u0928 \u0915\u094d\u0930\u094b\u0928\u093e
+currenciesDisplayName.AUD=\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e\u0908 \u0921\u0949\u0932\u0930
+currenciesDisplayName.SKK=\u0938\u094d\u0932\u094b\u0935\u093e\u0915 \u0915\u094b\u0930\u0941\u0928\u093e
+currenciesDisplayName.CHF=\u0938\u094d\u0935\u093f\u0938 \u092b\u093c\u094d\u0930\u0948\u0902\u0915
+currenciesDisplayName.PEN=\u092a\u0947\u0930\u0941\u0935\u093e\u0908 \u0928\u094d\u092f\u0942\u0935\u094b \u0938\u094b\u0932
+currenciesDisplayName.KRW=\u0926\u0915\u094d\u0937\u093f\u0923 \u0915\u094b\u0930\u093f\u092f\u093e\u0908 \u0935\u094b\u0928
+currenciesDisplayName.PKR=\u092a\u093e\u0915\u093f\u0938\u094d\u0924\u093e\u0928\u0940 \u0930\u0941\u092a\u092f\u093e
+currenciesDisplayName.TWD=\u0928\u092f\u093e \u0924\u093e\u0908\u0935\u093e\u0928\u0940 \u0921\u0949\u0932\u0930
+currenciesDisplayName.EGP=\u092e\u093f\u0938\u094d\u0930\u0940 \u092a\u093e\u0909\u0923\u094d\u0921
+currenciesDisplayName.MXN=\u092e\u0947\u0915\u094d\u0938\u093f\u0915\u094b \u092a\u0947\u0938\u094b
+currenciesDisplayName.CZK=\u091a\u0947\u0915 \u0915\u094b\u0930\u0941\u0928\u093e
+currenciesDisplayName.DZD=\u0905\u0932\u094d\u091c\u0940\u0930\u0940\u092f\u093e\u0908 \u0926\u093f\u0928\u093e\u0930
+currenciesDisplayName.TJS=\u0924\u091c\u093e\u0916\u0940 \u0938\u094b\u092e\u094b\u0928\u0940
+currenciesDisplayName.TJR=\u0924\u091c\u093e\u0916\u0940 \u0930\u0942\u092c\u0932
+currenciesDisplayName.ILS=\u0907\u0938\u094d\u0930\u093e\u0907\u0932\u0940 \u0936\u0947\u0915\u0947\u0932
+currenciesDisplayName.RWF=\u0930\u0935\u093e\u0902\u0921\u093e\u0908 \u092b\u094d\u0930\u0948\u0902\u0915
+currenciesDisplayName.SDP=\u092a\u0941\u0930\u093e\u0928\u093e \u0938\u0942\u0921\u093e\u0928\u0940 \u092a\u093e\u0909\u0902\u0921
+currenciesDisplayName.LRD=\u0932\u093e\u0908\u092c\u0947\u0930\u0940\u092f\u093e\u0908 \u0921\u093e\u0932\u0930
+currenciesDisplayName.SDG=\u0938\u0942\u0921\u093e\u0928\u0940 \u092a\u093e\u0909\u0902\u0921
+currenciesDisplayName.CAD=\u0915\u0928\u0947\u0921\u093f\u092f\u0928 \u0921\u0949\u0932\u0930
+currenciesDisplayName.BGN=\u092c\u0941\u0932\u094d\u0917\u093e\u0930\u093f\u092f\u093e\u0908 \u0932\u0947\u0935\u094d
+currenciesDisplayName.SDD=\u092a\u0941\u0930\u093e\u0928\u0940 \u0938\u0942\u0921\u093e\u0928\u0940 \u0926\u093f\u0928\u093e\u0930
+currenciesSymbol.INR=\u0930\u0941.
+currenciesSymbol.AMD=\u0926\u0930\u092e
+currenciesSymbol.RUB=\u0930\u0942\u092c\u0932
+currenciesSymbol.FJD=\u092b\u093c\u093f\u091c\u0940 \u0915\u093e \u0921\u093e\u0932\u0930
+currenciesSymbol.BRL=\u0930\u0940\u092f\u093e\u0932
+currenciesSymbol.CNY=\u092f\u0941\u092f\u093e\u0928
+currenciesSymbol.HKD=\u0939\u0949\u0902\u0917\u0915\u0949\u0902\u0917 \u0921\u0949\u0932\u0930
+currenciesSymbol.XXX=\u0967\u0968,\u0969\u096a\u096b.\u096c\u096e \u0930\u0941\u092a\u092f\u0947
+currenciesSymbol.CSD=\u0938\u0930\u094d\u092c\u093f\u092f\u093e\u0908 \u0926\u0940\u0928\u093e\u0930
+shortMonths=\u091c\u0928\u0935\u0930\u0940\u00ae\u092b\u093c\u0930\u0935\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u0905\u092a\u094d\u0930\u0948\u0932\u00ae\u092e\u0908\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u093e\u0908\u00ae\u0905\u0917\u0938\u094d\u0924\u00ae\u0938\u093f\u0924\u092e\u094d\u092c\u0930\u00ae\u0905\u0915\u094d\u091f\u0942\u092c\u0930\u00ae\u0928\u0935\u0902\u092c\u0930\u00ae\u0926\u093f\u0938\u0902\u092c\u0930\u00ae\u00ae
+months=\u091c\u0928\u0935\u0930\u0940\u00ae\u092b\u0930\u0935\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u0905\u092a\u094d\u0930\u0948\u0932\u00ae\u092e\u0908\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u093e\u0908\u00ae\u0905\u0917\u0938\u094d\u0924\u00ae\u0938\u093f\u0924\u092e\u094d\u092c\u0930\u00ae\u0905\u0915\u094d\u0924\u0942\u092c\u0930\u00ae\u0928\u0935\u092e\u094d\u092c\u0930\u00ae\u0926\u093f\u0938\u092e\u094d\u092c\u0930\u00ae\u00ae
+shortWeekdays=\u00ae\u0930\u0935\u093f\u00ae\u0938\u094b\u092e\u00ae\u092e\u0902\u0917\u0932\u00ae\u092c\u0941\u0927\u00ae\u0917\u0941\u0930\u0941\u00ae\u0936\u0941\u0915\u094d\u0930\u00ae\u0936\u0928\u093f\u00ae
+weekdays=\u00ae\u0930\u0935\u093f\u0935\u093e\u0930\u00ae\u0938\u094b\u092e\u0935\u093e\u0930\u00ae\u092e\u0902\u0917\u0932\u0935\u093e\u0930\u00ae\u092c\u0941\u0927\u0935\u093e\u0930\u00ae\u0917\u0941\u0930\u0942\u0935\u093e\u0930\u00ae\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930\u00ae\u0936\u0928\u093f\u0935\u093e\u0930\u00ae
+eras=\u0908\u0938\u093e \u092a\u0942\u0930\u094d\u0935\u00ae\u0938\u0928\u094d\u00ae
+ampms=\u092a\u0942\u0930\u094d\u0935\u093e\u0939\u094d\u0928\u00ae\u0905\u092a\u0930\u093e\u0939\u094d\u0928\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=India\u00ae\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u091f\u093f\u092e\u094b\u0930-\u0932\u0947\u0938\u094d\u0924
+territories.TK=\u091f\u094b\u0915\u0947\u0932\u094c
 territories.TJ=\u0924\u093e\u091c\u093f\u0915\u093f\u0938\u094d\u0924\u093e\u0928
 territories.TH=\u0925\u093e\u0907\u0932\u0948\u0902\u0921
 territories.TG=\u091f\u094b\u0917\u094b
+territories.TF=\u092b\u093c\u094d\u0930\u0947\u0902\u091a \u0938\u0926\u0930\u094d\u0928 \u091f\u0947\u0930\u093f\u091f\u0930\u0940\u091c\u093c
 territories.GY=\u0917\u0941\u092f\u093e\u0928\u093e
-territories.TD=\u091a\u093e\u0921
+territories.TD=\u091a\u0921
+territories.TC=\u0924\u0941\u0930\u094d\u0915\u094d \u0914\u0930\u094d \u0915\u0948\u0915\u094b\u091c\u093c \u0926\u094d\u0935\u0940\u092a
 territories.GW=\u0917\u0940\u0928\u0940-\u092c\u093f\u0938\u093e\u0909
-territories.GT=\u0917\u094b\u0924\u0947\u0926\u093e\u0932\u093e
-territories.GR=\u0917\u094d\u0930\u0940\u0938
-territories.SZ=\u0938\u0941\u0906\u091c\u0940\u0932\u0948\u0902\u0921
+territories.GU=\u0917\u0941\u0906\u092e
+territories.GT=\u0917\u0941\u0906\u091f\u0947\u092e\u093e\u0932\u093e
+territories.GS=\u0926\u0915\u094d\u0937\u093f\u0923 \u091c\u094b\u0930\u094d\u091c\u093f\u092f\u093e \u0914\u0930 \u0926\u0915\u094d\u0937\u093f\u0923 \u0938\u0948\u0902\u0921\u0935\u0940\u091a \u0926\u094d\u0935\u0940\u092a
+territories.GR=\u092f\u0942\u0928\u093e\u0928
+territories.GQ=\u092d\u0942\u092e\u0927\u094d\u092f\u0940\u092f \u0917\u093f\u0928\u0940
+territories.GP=\u0917\u094d\u0935\u093e\u0921\u0947\u0932\u094b\u092a
+territories.SZ=\u0938\u094d\u0935\u093e\u091c\u093c\u0940\u0932\u0948\u0902\u0921
 territories.SY=\u0938\u0940\u0930\u093f\u092f\u093e
+territories.GN=\u0917\u093f\u0928\u0940
+territories.GM=\u0917\u0948\u092e\u094d\u092c\u093f\u092f\u093e
+territories.GL=\u0917\u094d\u0930\u0940\u0928\u0932\u0948\u0902\u0921
 territories.SV=\u0905\u0932 \u0938\u093e\u0932\u094d\u0935\u093e\u0921\u094b\u0930
+territories.062=\u0926\u0915\u094d\u0937\u093f\u0923-\u092e\u0927\u094d\u092f \u090f\u0936\u093f\u092f\u093e
 territories.ST=\u0938\u093e\u0909-\u0924\u094b\u092e-\u092a\u094d\u0930\u093f\u0902\u0938\u093f\u092a
-territories.SR=\u0938\u0941\u0930\u093f\u0928\u093e\u092e
+territories.GI=\u091c\u093f\u092c\u094d\u0930\u093e\u0932\u094d\u091f\u0930
+territories.061=\u092a\u094b\u0932\u0940\u0928\u0947\u0936\u093f\u092f\u093e
+territories.GH=\u0918\u093e\u0928\u093e
+territories.SR=\u0938\u0942\u0930\u0940\u0928\u093e\u092e
+territories.GG=\u0917\u094d\u0935\u0947\u0930\u094d\u0928\u0938\u0947
+territories.GF=\u092b\u093c\u094d\u0930\u0947\u0902\u091a \u0917\u092f\u093e\u0928\u093e
+territories.GE=\u091c\u0949\u0930\u094d\u091c\u093f\u092f\u093e
 territories.SO=\u0938\u094b\u092e\u093e\u0932\u093f\u092f\u093e
+territories.GD=\u0917\u094d\u0930\u0947\u0928\u0947\u0921\u093e
 territories.SN=\u0938\u0947\u0928\u0947\u0917\u0932
 territories.SM=\u0938\u0948\u0928 \u092e\u0947\u0930\u0940\u0928\u094b
+territories.GB=\u092c\u093f\u0930\u094d\u091f\u0947\u0928
 territories.SL=\u0938\u093f\u092f\u0930\u093e\u0932\u0947\u0913\u0928
+territories.GA=\u0917\u0948\u092c\u0949\u0928
 territories.SK=\u0938\u094d\u0932\u094b\u0935\u093e\u0915\u093f\u092f\u093e
+territories.SJ=\u0938\u094d\u0935\u093e\u0932\u094d\u092c\u093e\u0930\u094d\u0921 \u0914\u0930 \u091c\u0945\u0928 \u092e\u0947\u092f\u0928
 territories.SI=\u0938\u094d\u0932\u094b\u0935\u0947\u0928\u093f\u092f\u093e
+territories.SH=\u0938\u0947\u0923\u094d\u200d\u091f \u0939\u0947\u0932\u0947\u0928\u093e
 territories.SG=\u0938\u093f\u0902\u0917\u093e\u092a\u0941\u0930
 territories.SE=\u0938\u094d\u0935\u0940\u0921\u0928
 territories.SD=\u0938\u0942\u0921\u093e\u0928
+territories.SC=\u0938\u0947\u0936\u0947\u0932\u094d\u0938
+territories.SB=\u0938\u094b\u0932\u094b\u092e\u0928 \u0926\u094d\u0935\u0940\u092a
 territories.SA=\u0938\u090a\u0926\u0940 \u0905\u0930\u092c
 territories.FR=\u092b\u094d\u0930\u093e\u0902\u0938
+territories.FO=\u092b\u093c\u0948\u0930\u094b \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
+territories.FM=\u092e\u093e\u0907\u0915\u094d\u0930\u094b\u0928\u0947\u0936\u093f\u092f\u093e
 territories.RW=\u0930\u0942\u0906\u0923\u094d\u0921\u093e
-territories.FJ=\u092b\u093f\u091c\u0940
+territories.FK=\u092b\u093c\u0949\u0915\u0932\u0948\u0902\u0921 \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
+territories.053=\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e \u090f\u0935\u0902 \u0928\u094d\u092f\u0942\u091c\u0940\u0932\u0948\u0902\u0921
 territories.RU=\u0930\u0942\u0938
+territories.FJ=\u092b\u093f\u091c\u0940
 territories.FI=\u092b\u093f\u0928\u0932\u0948\u0902\u0921
+territories.RS=\u0938\u0930\u094d\u092c\u093f\u092f\u093e
 territories.RO=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e
+territories.RE=\u0930\u093f\u092f\u0942\u0928\u093f\u092f\u0928
 territories.ET=\u0907\u0925\u093f\u092f\u094b\u092a\u093f\u092f\u093e
 territories.ES=\u0938\u094d\u092a\u0947\u0928
 territories.ER=\u0907\u0930\u093f\u091f\u094d\u0930\u093f\u092f\u093e
+territories.QU=\u092f\u0942\u0930\u094b\u092a\u0940\u092f \u0938\u0902\u0918
 territories.EH=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u0938\u0939\u093e\u0930\u093e
 territories.EG=\u092e\u093f\u0938\u094d\u0930
 territories.EE=\u090f\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u093e
 territories.EC=\u0907\u0915\u094d\u0935\u093e\u0921\u094b\u0930
 territories.DZ=\u0905\u0932\u094d\u091c\u0940\u0930\u093f\u092f\u093e
 territories.QA=\u0915\u0924\u0930
+territories.039=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u092f\u0942\u0930\u094b\u092a
 territories.DO=\u0921\u094b\u092e\u093f\u0928\u093f\u0915\u0928 \u0917\u0923\u0930\u093e\u091c\u094d\u092f
 territories.PY=\u092a\u093e\u0930\u093e\u0917\u0941\u090f
-territories.DM=\u0921\u094b\u092e\u093f\u0928\u093f\u0915\u093e
+territories.DM=\u0921\u094b\u092e\u093f\u0928\u093f\u0915
+territories.035=\u0926\u0915\u094d\u0937\u093f\u0923-\u092a\u0942\u0930\u094d\u0935 \u090f\u0936\u093f\u092f\u093e
+territories.PW=\u092a\u0932\u093e\u090a
+territories.034=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u090f\u0936\u093f\u092f\u093e
 territories.DK=\u0921\u0947\u0928\u092e\u093e\u0930\u094d\u0915
 territories.DJ=\u091c\u093f\u092c\u0942\u0924\u0940
 territories.PT=\u092a\u0941\u0930\u094d\u0924\u0917\u093e\u0932
+territories.PS=\u092b\u093c\u093f\u0932\u093f\u0938\u094d\u0924\u0940\u0928
+territories.030=\u092a\u0942\u0930\u094d\u0935\u0940 \u090f\u0936\u093f\u092f\u093e
+territories.PR=\u092a\u0930\u094d\u091f\u094b \u0930\u0940\u0915\u094b
 territories.DE=\u091c\u0930\u094d\u092e\u0928\u0940
+territories.PN=\u092a\u093f\u091f\u0915\u0947\u0930\u094d\u0928
+territories.PM=\u0938\u0947\u0923\u094d\u200d\u091f \u092a\u0940\u092f\u0930 \u0914\u0930 \u092e\u093f\u200d\u0915\u094d\u200d\u0935\u0947\u0932\u094b\u0928
 territories.PL=\u092a\u094b\u0932\u0948\u0902\u0921
 territories.PK=\u092a\u093e\u0915\u093f\u0938\u094d\u0924\u093e\u0928
 territories.PH=\u092b\u093f\u0932\u0940\u092a\u093f\u0902\u0938
 territories.PG=\u092a\u093e\u092a\u0941\u0906 \u0928\u094d\u092f\u0942 \u0917\u093f\u0928\u0940
+territories.PF=\u092b\u093c\u094d\u0930\u0947\u0902\u091a \u092a\u094b\u0932\u093f\u0928\u0947\u0936\u093f\u092f\u093e
 territories.CZ=\u091a\u0947\u0915 \u0917\u0923\u0930\u093e\u091c\u094d\u092f
-territories.CY=\u0938\u093e\u0907\u092a\u094d\u0930\u0938
 territories.PE=\u092a\u0947\u0930\u0942
-territories.CV=\u0915\u0948\u092a \u0935\u0930\u094d\u0924
-territories.CU=\u0915\u094d\u092f\u0942\u092c\u093e
+territories.CY=\u0938\u093e\u0907\u092a\u094d\u0930\u0938
+territories.CX=\u0915\u094d\u0930\u093f\u0938\u092e\u0938 \u0906\u0907\u0932\u0948\u0902\u0921
+territories.CV=\u0915\u0948\u092a \u0935\u0930\u094d\u0921\u0947
 territories.PA=\u092a\u0928\u093e\u092e\u093e
+territories.CU=\u0915\u094d\u092f\u0942\u092c\u093e
+territories.CS=\u0938\u0930\u094d\u092c\u093f\u092f\u093e \u0935 \u092e\u0949\u0923\u094d\u091f\u0947\u0928\u0947\u0917\u094d\u0930\u094b
 territories.CR=\u0915\u094b\u0938\u094d\u091f\u093e\u0930\u0940\u0915\u093e
+territories.029=\u0915\u0948\u0930\u093f\u092c\u093f\u092f\u0928
 territories.CO=\u0915\u094b\u0932\u092e\u094d\u092c\u093f\u092f\u093e
 territories.CN=\u091a\u0940\u0928
-territories.CM=\u0915\u093e\u092e\u0947\u0930\u093e\u0928
+territories.CM=\u0915\u0948\u092e\u0930\u0942\u0928
 territories.CL=\u091a\u093f\u0932\u0940
-territories.CI=\u0906\u0908\u0935\u0930\u0940 \u0915\u094b\u0938\u094d\u091f
-territories.CH=\u0938\u094d\u0935\u093f\u0938
-territories.CG=\u0915\u093e\u0902\u0917\u094b
-territories.CF=\u0938\u0947\u0902\u091f\u094d\u0930\u0932 \u0905\u092b\u094d\u0930\u0940\u0915\u0928 \u0930\u093f\u092a\u092c\u094d\u0932\u093f\u0915
-territories.CC=\u0915\u093f\u0902\u0936\u093e\u0938\u093e
+territories.CK=\u0915\u0941\u0915 \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
+territories.021=\u0909\u0924\u094d\u0924\u0930\u0940 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
+territories.CI=\u0906\u0908\u0935\u0930\u0940 \u0924\u091f
+territories.CH=\u0938\u094d\u0935\u093f\u091f\u091c\u093c\u0930\u0932\u0948\u0902\u0921
+territories.CG=\u0915\u094b\u0902\u0917\u094b
+territories.CF=\u092e\u0927\u094d\u092f \u0905\u092b\u093c\u094d\u0930\u0940\u0915\u0940 \u0917\u0923\u0930\u093e\u091c\u094d\u092f
+territories.CD=\u0915\u094b\u0902\u0917\u094b \u091c\u0928\u0924\u093e\u0902\u0924\u094d\u0930\u093f\u0915 \u0917\u0923\u0924\u0902\u0924\u094d\u0930
+territories.CC=\u0915\u094b\u0915\u094b\u0938 \u0926\u094d\u0935\u0940\u092a
+territories.OM=\u0913\u092e\u093e\u0928
 territories.CA=\u0915\u0928\u093e\u0921\u093e
-territories.BZ=\u092c\u0947\u0932\u093f\u091c
+territories.BZ=\u092c\u0947\u0932\u0940\u091c\u093c
 territories.BY=\u092c\u0947\u0932\u093e\u0930\u0942\u0938
 territories.BW=\u092c\u094b\u0924\u094d\u0938\u094d\u0935\u093e\u0928\u093e
+territories.BV=\u092c\u094b\u0935\u091f \u0906\u0907\u0932\u0948\u0902\u0921
 territories.BT=\u092d\u0942\u091f\u093e\u0928
 territories.BS=\u092c\u0939\u093e\u092e\u093e
-territories.BR=\u092c\u094d\u0930\u093e\u091c\u0940\u0932
+territories.BR=\u092c\u094d\u0930\u093e\u091c\u093c\u0940\u0932
+territories.019=\u0905\u092e\u0947\u0930\u0940\u0915\u093e\u0938
+territories.018=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u0905\u092b\u094d\u0930\u0940\u0915\u093e
+territories.NZ=\u0928\u094d\u092f\u0942 \u091c\u093c\u0940\u0932\u0948\u0923\u094d\u0921
+territories.017=\u092e\u0927\u094d\u092f \u0905\u092b\u094d\u0930\u0940\u0915\u093e
 territories.BO=\u092c\u094b\u0932\u0940\u0935\u093f\u092f\u093e
-territories.BN=\u092c\u094d\u0930\u0942\u0928\u0907
+territories.BN=\u092c\u094d\u0930\u0941\u0928\u0947\u0908
+territories.015=\u0909\u0924\u094d\u0924\u0930\u0940 \u0905\u092b\u094d\u0930\u0940\u0915\u093e
+territories.BM=\u092c\u0930\u092e\u0942\u0921\u093e
+territories.014=\u092a\u0942\u0930\u094d\u0935\u0940 \u0905\u092b\u094d\u0930\u0940\u0915\u093e
+territories.013=\u092e\u0927\u094d\u092f \u0905\u092e\u0930\u0940\u0915\u093e
+territories.NU=\u0928\u0940\u092f\u0942
 territories.BJ=\u092c\u0947\u0928\u093f\u0928
+territories.011=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u0905\u092b\u094d\u0930\u0940\u0915\u093e
 territories.BI=\u092c\u0941\u0930\u0941\u0902\u0921\u0940
-territories.BH=\u092c\u0939\u0930\u0948\u0928
+territories.BH=\u092c\u0939\u0930\u0940\u0928
+territories.NR=\u0928\u0949\u0930\u0942
 territories.BG=\u092c\u0941\u0932\u094d\u0917\u093e\u0930\u093f\u092f\u093e
-territories.BF=\u092c\u0930\u094d\u0915\u093f\u0928\u093e \u092b\u093e\u0938\u094b
+territories.BF=\u092c\u0941\u0930\u094d\u0915\u093f\u0928\u093e \u092b\u093c\u093e\u0938\u094b
+territories.NP=\u0928\u0947\u092a\u093e\u0932
 territories.BE=\u092c\u0947\u0932\u094d\u091c\u093f\u092f\u092e
-territories.BD=\u092c\u0902\u0917\u0932\u093e\u0926\u0947\u0936
+territories.ZZ=\u0905\u091c\u094d\u091e\u093e\u0924 \u092a\u094d\u0930\u0926\u0947\u0936
+territories.NO=\u0928\u0949\u0930\u094d\u0935\u0947
+territories.BD=\u092c\u093e\u0901\u0917\u094d\u0932\u093e\u0926\u0947\u0936
 territories.BB=\u092c\u093e\u0930\u092c\u093e\u0921\u094b\u0938
 territories.ZW=\u091c\u093f\u092e\u094d\u092c\u093e\u092c\u094d\u0935\u0947
-territories.BA=\u092c\u094b\u0938\u0928\u093f\u092f\u093e \u0939\u0930\u094d\u091c\u093f\u0917\u094b\u0935\u093f\u0928\u093e
-territories.AZ=\u0905\u091c\u0930\u092c\u0948\u091c\u093e\u0928
+territories.NL=\u0928\u0940\u0926\u0930\u0932\u0948\u0923\u094d\u0921
+territories.BA=\u092c\u094b\u0938\u094d\u0928\u093f\u092f\u093e \u0914\u0930 \u0939\u0930\u094d\u091c\u093c\u093f\u0917\u094b\u0935\u093f\u0928\u093e
+territories.NI=\u0928\u093f\u0915\u093e\u0930\u093e\u0917\u0941\u0906
+territories.NG=\u0928\u093e\u0907\u091c\u0940\u0930\u093f\u092f\u093e
+territories.NF=\u0928\u0949\u0930\u092b\u093c\u0949\u0915 \u0906\u0907\u0932\u0948\u0902\u0921
+territories.AZ=\u0905\u091c\u093c\u0930\u094d\u092c\u0947\u091c\u093e\u0928
+territories.NE=\u0928\u093e\u0907\u091c\u0930
+territories.AX=\u0906\u0932\u0948\u0902\u0921 \u0906\u092f\u0932\u0948\u0902\u0921\u094d\u0938
+territories.NC=\u0928\u094d\u092f\u0942 \u0915\u0948\u0932\u0947\u0921\u094b\u0928\u093f\u092f\u093e
+territories.AW=\u0905\u0930\u0942\u092c\u093e
 territories.ZM=\u091c\u093e\u092e\u094d\u092c\u093f\u092f\u093e
+territories.NA=\u0928\u093e\u092e\u0940\u092c\u093f\u092f\u093e
 territories.AU=\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e
 territories.AT=\u0911\u0938\u094d\u091f\u094d\u0930\u093f\u092f\u093e
+territories.AS=\u0905\u092e\u0947\u0930\u093f\u0915\u0928 \u0938\u092e\u094b\u0906
 territories.AR=\u0905\u0930\u094d\u091c\u0947\u0928\u094d\u091f\u0940\u0928\u093e
-territories.AO=\u0905\u0902\u0917\u094b\u0932\u093e
+territories.AQ=\u0905\u0902\u091f\u093e\u0930\u094d\u091f\u093f\u0915
+territories.009=\u0913\u0936\u093f\u0906\u0928\u093f\u092f\u093e
 territories.MZ=\u092e\u094b\u091c\u093e\u092e\u094d\u092c\u093f\u0915
+territories.AO=\u0905\u0902\u0917\u094b\u0932\u093e
 territories.MY=\u092e\u0932\u0947\u0936\u093f\u092f\u093e
-territories.AM=\u0906\u0930\u094d\u092e\u0947\u0928\u093f\u092f\u093e
+territories.AN=\u0928\u0940\u0926\u0930\u0932\u0948\u0902\u0921\u094d\u0938 \u090f\u0902\u091f\u093f\u0932\u0940\u091c\u093c
 territories.MX=\u092e\u0947\u0915\u094d\u0938\u093f\u0915\u094b
-territories.AL=\u0905\u0932\u094d\u092c\u093e\u0928\u093f\u092f\u093e
+territories.AM=\u0905\u0930\u094d\u092e\u0940\u0928\u093f\u092f\u093e
+territories.005=\u0926\u0915\u094d\u0937\u093f\u0923 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
 territories.MW=\u092e\u0932\u093e\u0935\u0940
+territories.AL=\u0905\u0932\u094d\u092c\u093e\u0928\u093f\u092f\u093e
 territories.MV=\u092e\u093e\u0932\u0926\u0940\u0935
+territories.003=\u0909\u0924\u094d\u0924\u0930 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
 territories.ZA=\u0926\u0915\u094d\u0937\u093f\u0923 \u0905\u092b\u094d\u0930\u0940\u0915\u093e
-territories.MU=\u092e\u094c\u0930\u093f\u0938
+territories.MU=\u092e\u093e\u0930\u0940\u0936\u0938
+territories.002=\u0905\u092b\u094d\u0930\u0940\u0915\u093e
 territories.MT=\u092e\u093e\u0932\u094d\u091f\u093e
-territories.AG=\u090f\u0928\u094d\u091f\u093f\u0917\u0941\u0935\u093e \u0914\u0930 \u092c\u093e\u0930\u092c\u0942\u0921\u093e
+territories.AI=\u090f\u0902\u0917\u0941\u0907\u0932\u093e
+territories.001=\u0926\u0941\u0928\u093f\u092f\u093e
+territories.MS=\u092e\u0949\u0928\u094d\u091f\u094d\u0938\u0947\u0930\u093e\u091f
 territories.MR=\u092e\u0949\u0930\u093f\u091f\u093e\u0928\u093f\u092f\u093e
-territories.AF=\u0905\u092b\u0917\u093e\u0928\u093f\u0938\u094d\u0924\u093e\u0928
+territories.AG=\u090f\u0902\u091f\u093f\u0917\u0941\u0906 \u0914\u0930 \u092c\u0930\u092c\u0941\u0921\u093e
+territories.MQ=\u092e\u093e\u0930\u094d\u091f\u0940\u0928\u093f\u0915
+territories.AF=\u0905\u092b\u093c\u0917\u093e\u0928\u093f\u0938\u094d\u0924\u093e\u0928
+territories.MP=\u0909\u0924\u094d\u0924\u0930\u0940 \u092e\u093e\u0930\u093f\u092f\u093e\u0928\u093e \u0926\u094d\u0935\u0940\u092a
 territories.AE=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0905\u0930\u092c \u0905\u092e\u0940\u0930\u093e\u0924
+territories.MO=\u092e\u0915\u093e\u0913
 territories.AD=\u0905\u0928\u094d\u0921\u094b\u0930\u093e
 territories.MN=\u092e\u0902\u0917\u094b\u0932\u093f\u092f\u093e
 territories.MM=\u092e\u094d\u092f\u093e\u0928\u092e\u093e\u0930
 territories.ML=\u092e\u093e\u0932\u0940
 territories.MK=\u092e\u0948\u0938\u0947\u0921\u094b\u0928\u093f\u092f\u093e
+territories.YT=\u092e\u0948\u092f\u091f
+territories.MH=\u092e\u093e\u0930\u094d\u0936\u0932 \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
 territories.MG=\u092e\u0926\u093e\u0917\u093e\u0938\u094d\u0915\u0930
+territories.MF=\u0938\u0902\u0924 \u092e\u093e\u0930\u094d\u091f\u0940\u0928
+territories.ME=\u092e\u094b\u0902\u091f\u0947\u0928\u0947\u0917\u094d\u0930\u094b
 territories.MD=\u092e\u094b\u0932\u094d\u0921\u093e\u0935\u093f\u092f\u093e
 territories.MC=\u092e\u094b\u0928\u093e\u0915\u094b
 territories.MA=\u092e\u094b\u0930\u0915\u094d\u0915\u094b
 territories.YE=\u092f\u092e\u0928
 territories.LY=\u0932\u0940\u092c\u093f\u092f\u093e
-territories.LV=\u0932\u093e\u0924\u094d\u0935\u093f\u092f\u093e
+territories.LV=\u0932\u093e\u091f\u0935\u093f\u092f\u093e
+territories.155=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u092f\u0942\u0930\u094b\u092a\u094d
 territories.LU=\u0932\u0915\u094d\u0938\u092e\u092c\u0930\u094d\u0917
+territories.154=\u0909\u0924\u094d\u0924\u0930\u0940 \u092f\u0942\u0930\u094b\u092a
 territories.LT=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u093e
 territories.LS=\u0932\u0947\u0938\u094b\u0925\u094b
 territories.LR=\u0932\u093e\u0907\u092c\u0947\u0930\u093f\u092f\u093e
+territories.151=\u092a\u0942\u0930\u094d\u0935\u0940 \u092f\u0942\u0930\u094b\u092a
+territories.150=\u092f\u0942\u0930\u094b\u092a
 territories.LK=\u0936\u094d\u0930\u0940\u0932\u0902\u0915\u093e
 territories.LI=\u0932\u093f\u0915\u091f\u0947\u0902\u0938\u094d\u091f\u0940\u0928
 territories.LC=\u0938\u0947\u0902\u091f \u0932\u0942\u0938\u093f\u092f\u093e
 territories.LB=\u0932\u0947\u092c\u0928\u093e\u0928
 territories.LA=\u0932\u093e\u0913\u0938
-territories.KZ=\u0915\u091c\u093e\u0916\u0938\u094d\u0924\u093e\u0928
+territories.KZ=\u0915\u091c\u093c\u093e\u0915\u0938\u094d\u0924\u093e\u0928
+territories.KY=\u0915\u0947\u092e\u0948\u0928 \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
 territories.KW=\u0915\u0941\u0935\u0948\u0924
+territories.145=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u0910\u0936\u093f\u092f\u093e
+territories.143=\u092e\u0927\u094d\u092f \u090f\u0936\u093f\u092f\u093e
+territories.142=\u090f\u0936\u093f\u092f\u093e
 territories.KR=\u0926\u0915\u094d\u0937\u093f\u0923 \u0915\u094b\u0930\u093f\u092f\u093e
 territories.KP=\u0909\u0924\u094d\u0924\u0930 \u0915\u094b\u0930\u093f\u092f\u093e
 territories.KN=\u0938\u0947\u0902\u091f \u0915\u093f\u091f\u094d\u0938 \u0914\u0930 \u0928\u0947\u0935\u093f\u0938
-territories.KM=\u0915\u094b\u092e\u094b\u0930\u0938
-territories.KH=\u0915\u092e\u094d\u092c\u094b\u0921\u093f\u092f\u093e
-territories.KG=\u0915\u093f\u0930\u094d\u0917\u093f\u091c
+territories.KM=\u0915\u094b\u092e\u094b\u0930\u094b\u0938
+territories.KI=\u0915\u093f\u0930\u093f\u092c\u0924\u0940
+territories.WS=\u0938\u092e\u094b\u0906
+territories.KH=\u0915\u0902\u092c\u094b\u0921\u093f\u092f\u093e
+territories.KG=\u0915\u093c\u093f\u0930\u094d\u0917\u093f\u0938\u094d\u0924\u093e\u0928
 territories.KE=\u0915\u0947\u0928\u094d\u092f\u093e
+territories.WF=\u0935\u093e\u0932\u093f\u0938 \u0914\u0930 \u092b\u093c\u094d\u092f\u0942\u091a\u0942\u0928\u093e
 territories.JP=\u091c\u093e\u092a\u093e\u0928
-territories.JO=\u091c\u094b\u0930\u094d\u0921\u0928
-territories.JM=\u091c\u092e\u093e\u0907\u0915\u093e
+territories.JO=\u091c\u0949\u0930\u094d\u0921\u0928
+territories.JM=\u091c\u0948\u092e\u0947\u0915\u093e
 territories.VU=\u0935\u093e\u0928\u0941\u0905\u0924\u0941
+territories.JE=\u091c\u0930\u094d\u0938\u0940
 territories.VN=\u0935\u093f\u092f\u0924\u0928\u093e\u092e
-territories.VI=\u0908\u0909, \u090f\u0938 \u0935\u0930\u094d\u091c\u0940\u0928 \u0906\u0908\u0932\u0948\u0902\u0921\u0938\u094d
-territories.VG=\u092c\u094d\u0930\u093f\u091f\u093f\u0936 \u0935\u0930\u094d\u091c\u0940\u0928 \u090c\u0908\u0932\u0948\u0902\u0921\u0938\u094d
+territories.VI=\u0905\u092e\u0947\u0930\u093f\u0915\u0940 \u0935\u0930\u094d\u091c\u093f\u0928 \u091f\u093e\u092a\u0942
+territories.VG=\u092c\u094d\u0930\u093f\u091f\u093f\u0936 \u0935\u0930\u094d\u091c\u093f\u0928 \u091f\u093e\u092a\u0942
 territories.VE=\u0935\u0947\u0928\u0947\u091c\u0941\u090f\u0932\u093e
-territories.VA=\u0935\u0948\u091f\u093f\u0915\u0928
+territories.VC=\u0938\u0947\u0902\u091f \u0935\u093f\u0902\u0938\u0947\u0902\u091f \u0914\u0930 \u0926 \u0917\u094d\u0930\u0947\u0928\u093e\u0921\u093e\u0907\u0928\u094d\u0938
+territories.VA=\u0935\u0947\u091f\u093f\u0915\u0928
 territories.IT=\u0907\u091f\u0932\u0940
 territories.IS=\u0906\u0907\u0938\u0932\u0948\u0902\u0921
 territories.IR=\u0908\u0930\u093e\u0928
 territories.IQ=\u0907\u0930\u093e\u0915
-territories.UZ=\u0909\u091c\u092c\u0947\u0915\u093f\u0938\u094d\u0924\u093e\u0928
-territories.UY=\u092f\u0941\u0930\u0942\u0917\u0941\u090f
+territories.UZ=\u0909\u091c\u093c\u094d\u092c\u0947\u0915\u093f\u0938\u094d\u0924\u093e\u0928
+territories.IO=\u092c\u094d\u0930\u093f\u0924\u093e\u0928\u0940 \u092d\u093e\u0930\u0924\u0940\u092f \u092e\u0939\u093e\u0938\u093e\u0917\u0930 \u0915\u094d\u0937\u0947\u0924\u094d\u0930
+territories.UY=\u0909\u0930\u0942\u0917\u094d\u0935\u0947
 territories.IN=\u092d\u093e\u0930\u0924
-territories.IL=\u0907\u0938\u0930\u093e\u0907\u0932
-territories.US=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0905\u092e\u0930\u093f\u0915\u093e
+territories.IL=\u0907\u091c\u0930\u093e\u0907\u0932
+territories.US=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0905\u092e\u0947\u0930\u093f\u0915\u093e
 territories.IE=\u0906\u092f\u0930\u0932\u0948\u0902\u0921
 territories.ID=\u0907\u0902\u0921\u094b\u0928\u0947\u0936\u093f\u092f\u093e
+territories.UM=\u092f\u0941\u0928\u093e\u0907\u091f\u0947\u0921 \u0938\u094d\u091f\u0947\u091f\u094d\u0938 \u091b\u094b\u091f\u0947 \u0906\u0909\u091f\u0932\u093e\u0907\u0902\u0917 \u0926\u094d\u0935\u0940\u092a
 territories.UG=\u092f\u0941\u0917\u093e\u0902\u0921\u093e
 territories.UA=\u092f\u0942\u0915\u094d\u0930\u0947\u0928
 territories.HU=\u0939\u0902\u0917\u0930\u0940
 territories.HT=\u0939\u093e\u0907\u0924\u0940
-territories.HR=\u0915\u094d\u0930\u094b\u0936\u093f\u092f\u093e
-territories.TZ=\u0924\u0902\u091c\u093e\u0928\u093f\u092f\u093e
-territories.HN=\u0939\u093e\u0923\u094d\u0921\u0942\u0930\u0938
+territories.HR=\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u093e
+territories.TZ=\u0924\u0902\u091c\u093c\u093e\u0928\u093f\u092f\u093e
+territories.HN=\u0939\u094c\u0902\u0921\u0941\u0930\u0938
+territories.HM=\u0939\u0930\u094d\u0921 \u0906\u0907\u0932\u0948\u0902\u0921 \u0910\u0902\u0921 \u092e\u0948\u0915\u094d\u0921\u094b\u0928\u093e\u0932\u094d\u0921 \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
 territories.TW=\u0924\u093e\u0907\u0935\u093e\u0928
 territories.TV=\u0924\u0941\u0935\u093e\u0932\u0941
-territories.TT=\u091f\u094d\u0930\u093f\u0928\u093f\u0921\u093e\u0921 \u0914\u0930 \u091f\u094b\u092c\u0948\u0917\u094b
+territories.HK=\u0939\u093e\u0902\u0917\u0915\u093e\u0902\u0917
+territories.TT=\u0924\u094d\u0930\u093f\u0928\u093f\u0926\u093e\u0926 \u0914\u0930 \u091f\u094b\u092c\u0948\u0917\u094b
 territories.TR=\u0924\u0941\u0930\u094d\u0915\u0940
 territories.TO=\u091f\u094b\u0902\u0917\u093e
 territories.TN=\u0924\u0941\u0928\u093f\u0936\u093f\u092f\u093e
 territories.TM=\u0924\u0941\u0930\u094d\u0915\u092e\u0947\u0928\u093f\u0938\u094d\u0924\u093e\u0928
-languages.es=\u0938\u094d\u092a\u0947\u0928\u093f\u0936
+languages.la=\u0932\u0948\u091f\u0940\u0928
+languages.xh=\u0939\u094b\u0938\u093e
+languages.ky=\u0915\u093f\u0930\u0917\u093f\u091c\u093c
 languages.ku=\u0915\u0941\u0930\u0926\u0940\u0936
-languages.eo=\u090f\u0938\u094d\u092a\u0947\u0930\u093e\u0928\u094d\u0924\u094b
-languages.en=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u0940
-languages.ks=\u0915\u093e\u0936\u094d\u092e\u093f\u0930\u0940
-languages.el=\u0917\u094d\u0930\u0940\u0915
-languages.qu=\u0915\u094d\u0935\u0947\u0936\u0941\u0906
-languages.ko=\u0915\u094b\u0930\u0940\u092f\u0928\u094d
+languages.ks=\u0915\u0936\u094d\u092e\u0940\u0930\u0940
+languages.ko=\u0915\u094b\u0930\u093f\u092f\u093e\u0908
 languages.kn=\u0915\u0928\u094d\u0928\u0921\u093c
-languages.km=\u0915\u0948\u092e\u094d\u092c\u094b\u0921\u093f\u092f\u0928\u094d
-languages.kok=\u0915\u094b\u0902\u0915\u0923\u0940
-languages.kl=\u0917\u094d\u0930\u0940\u0928\u0932\u0948\u0902\u0921\u093f\u0915
-languages.kk=\u0915\u095b\u093e\u0916
+languages.km=\u0916\u092e\u0947\u0930
+languages.kl=\u0915\u0932\u093e\u0932\u0940\u0938\u0942\u0924
+languages.kk=\u0915\u091c\u093c\u093e\u0916
+languages.ira=\u0908\u0930\u093e\u0928\u0940 \u092d\u093e\u0937\u093e
+languages.en_GB=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940 (\u092f\u0942 \u0915\u0947)
+languages.grc=\u092a\u094d\u0930\u093e\u091a\u0940\u0928 \u092f\u0942\u0928\u093e\u0928\u0940
 languages.wo=\u0935\u094b\u0932\u094b\u092b
-languages.raj=\u0930\u093e\u091c\u0947\u0938\u094d\u0925\u093e\u0928\u0940
-languages.ka=\u091c\u0949\u0930\u094d\u091c\u0940\u092f\u0928\u094d
-languages.dz=\u092d\u0941\u091f\u093e\u0928\u0940
-languages.jv=\u091c\u093e\u0935\u093e\u0928\u0940\u0938
-languages.pt=\u092a\u0941\u0930\u094d\u0924\u0941\u0917\u0940
-languages.ps=\u092a\u0949\u0936\u0924\u094b (\u092a\u0941\u0936\u0924\u094b)
-languages.de=\u095b\u0930\u094d\u092e\u0928
-languages.pl=\u092a\u0949\u0932\u093f\u0936
-languages.da=\u0921\u0948\u0928\u0940\u0936
+languages.art=\u0915\u0943\u0924\u094d\u0930\u093f\u092e \u092d\u093e\u0937\u093e
+languages.ka=\u091c\u0949\u0930\u094d\u091c\u093f\u092f\u0928
+languages.afh=\u0905\u092b\u094d\u0930\u0940\u0932\u0940\u092f\u093e\u0908
+languages.arp=\u0905\u0930\u093e\u092b\u093e\u0913
+languages.nwc=\u092a\u093e\u0930\u092e\u094d\u092a\u0930\u093f\u0915 \u0928\u0947\u0935\u093e\u0930\u0940
+languages.afa=\u0905\u092b\u094d\u0930\u094b-\u090f\u0936\u093f\u092f\u093e\u0908 \u092d\u093e\u0937\u093e\u0910
+languages.jv=\u091c\u093e\u0935\u093e\u0908
+languages.mdr=\u092e\u0902\u0926\u093e\u0930
+languages.arc=\u0905\u0930\u093e\u092e\u0940
+languages.cel=\u0915\u0947\u0932\u094d\u091f \u092d\u093e\u0937\u093e
 languages.vo=\u0935\u094b\u0932\u093e\u092a\u0941\u0915
 languages.ja=\u091c\u093e\u092a\u093e\u0928\u0940
-languages.vi=\u0935\u093f\u092f\u0947\u0924\u0928\u093e\u092e\u0940
-languages.cy=\u0935\u0947\u0932\u094d\u0936
-languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
-languages.cs=\u091a\u0947\u0915
+languages.vi=\u0935\u093f\u092f\u0924\u0928\u093e\u092e\u0940
 languages.iu=\u0907\u0928\u0942\u0915\u0940\u091f\u0942\u0924\u094d
-languages.co=\u0915\u094b\u0930\u094d\u0938\u0940\u0915\u0928
-languages.it=\u0908\u091f\u093e\u0932\u093f\u092f\u0928\u094d
-languages.is=\u0906\u0908\u0938\u094d\u0932\u0948\u0902\u0921\u093f\u0915\u094d
-languages.uz=\u0909\u095b\u092c\u0947\u0915\u094d
-languages.or=\u0909\u0921\u093c\u093f\u092f\u093e
+languages.it=\u0907\u0924\u093e\u0932\u0935\u0940
+languages.is=\u0906\u0907\u0938\u0932\u0948\u0902\u0921\u093f\u0915
+languages.uz=\u0909\u091c\u093c\u094d\u092c\u0947\u0915
 languages.ik=\u0907\u0928\u0941\u092a\u093f\u092f\u093e\u0915\u094d
-languages.ur=\u090a\u0930\u094d\u0926\u0941
-languages.om=\u0913\u0930\u094b\u092e\u094b (\u0905\u092b\u093c\u093e\u0928)
-languages.ca=\u0915\u093e\u0924\u093e\u0932\u093e\u0928
+languages.ur=\u0909\u0930\u094d\u0926\u0942
 languages.ie=\u0908\u0928\u094d\u091f\u0930\u0932\u093f\u0902\u0917\u0941\u0907
-languages.id=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0936\u093f\u092f\u0928\u094d
-languages.uk=\u092f\u0942\u0915\u094d\u0930\u0947\u0928\u093f\u092f\u0928\u094d
+languages.kcg=kcg
+languages.id=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0936\u093f\u092f\u093e\u0908
 languages.ia=\u0908\u0928\u094d\u091f\u0930\u0932\u093f\u0902\u0917\u0941\u0906
-languages.oc=\u0913\u0938\u0940\u091f\u093e\u0928
-languages.ug=\u0909\u0908\u0918\u0941\u0930
-languages.hy=\u0905\u0930\u092e\u0947\u0928\u093f\u092f\u0928\u094d
-languages.br=\u092c\u094d\u0930\u0947\u091f\u0928
-languages.hu=\u0939\u0902\u0917\u0947\u0930\u0940
-languages.bo=\u0924\u093f\u092c\u094d\u092c\u0924\u0940
-languages.bn=\u092c\u0901\u0917\u093e\u0932\u0940
-languages.hr=\u0915\u094d\u0930\u094b\u090f\u0936\u0928\u094d
-languages.bi=\u092c\u093f\u0938\u094d\u0932\u093e\u092e\u093e
+languages.uk=\u092f\u0942\u0915\u094d\u0930\u0947\u0928\u0940
+languages.kok=\u0915\u094b\u0902\u0915\u0923\u0940
+languages.ug=\u0909\u0907\u0918\u0941\u0930
+languages.und=\u0905\u091c\u094d\u091e\u093e\u0924 \u092d\u093e\u0937\u093e
+languages.him=\u0939\u093f\u092e\u093e\u0902\u091a\u0932\u0940
+languages.hy=\u0905\u0930\u094d\u092e\u0940\u0928\u093f\u092f\u093e\u0908
+languages.got=\u0917\u0949\u0925\u093f\u0915
+languages.es_ES=\u0908\u0935\u0947\u0930\u093f\u092f\u093e\u0908 \u0938\u094d\u092a\u0947\u0928\u093f\u0936
+languages.hu=\u0939\u0902\u0917\u0947\u0930\u093f\u092f\u0928
+languages.hr=\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u093e\u0908
+languages.hup=\u0939\u0942\u092a\u093e
+languages.gon=\u0917\u093e\u0901\u0921\u0940
+languages.fil=\u092b\u093f\u0932\u093f\u092a\u093f\u0928\u094b
+languages.sat=\u0938\u0902\u0924\u093e\u0932\u0940
+languages.apa=\u0905\u092a\u093e\u091a\u0947 \u092d\u093e\u0937\u093e
 languages.tw=\u091f\u094d\u0935\u0940
-languages.bh=\u092c\u093f\u0939\u093e\u0930\u0940
-languages.bg=\u092c\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u0928\u094d
 languages.tt=\u091f\u093e\u091f\u0930
-languages.no=\u0928\u093e\u0930\u094d\u0935\u0947\u091c\u0940\u092f\u0928\u094d
-languages.be=\u092c\u0948\u0932\u094b\u0930\u0942\u0936\u093f\u092f\u0928\u094d
+languages.hi=\u0939\u093f\u0928\u094d\u0926\u0940
 languages.ts=\u0938\u094b\u0902\u0917\u093e
-languages.hi=\u0939\u093f\u0902\u0926\u0940
-languages.tr=\u0924\u0941\u0915\u094d\u0930\u0940\u0936
-languages.nl=\u0921\u091a\u094d
-languages.zu=\u095b\u0941\u0932\u0942
-languages.ba=\u092c\u0936\u0959\u093f\u0930
+languages.tr=\u0924\u0941\u0930\u094d\u0915\u0940
+languages.he=\u0939\u0940\u092c\u094d\u0930\u0942
 languages.to=\u091f\u094b\u0902\u0917\u093e
-languages.he=\u0939\u093f\u092c\u094d\u0930\u0940\u090a
-languages.tn=\u0938\u0947\u0924\u094d\u0938\u094d\u0935\u093e\u0928\u093e
-languages.tl=\u0924\u093e\u0917\u093e\u0932\u094b\u0917
+languages.tn=\u0938\u094d\u0935\u093e\u0928\u093e
+languages.mni=\u092e\u0923\u093f\u092a\u0942\u0930\u0940
+languages.tl=\u0924\u0917\u093e\u0932\u094b\u0917
+languages.ach=\u0905\u0915\u094b\u0932\u0940
+languages.ha=\u0939\u094c\u0938\u093e
 languages.tk=\u0924\u0941\u0915\u094d\u0930\u092e\u0947\u0928
-languages.ha=\u0939\u094b\u0909\u0938\u093e
-languages.ne=\u0928\u0947\u092a\u093e\u0932\u0940
-languages.az=\u0905\u095b\u0930\u092c\u0948\u0902\u091c\u093e\u0928\u0940
-languages.ti=\u0924\u093f\u0917\u094d\u0930\u0940\u0928\u094d\u092f\u093e
-languages.ay=\u0906\u092f\u092e\u093e\u0930\u093e
+languages.dum=\u092e\u0927\u094d\u092f \u092a\u0941\u0930\u094d\u0924\u0917\u093e\u0932\u0940
+languages.ti=\u091f\u093f\u0917\u094d\u0930\u093f\u0928\u094d\u092f\u093e
 languages.th=\u0925\u093e\u0908
 languages.tg=\u0924\u093e\u091c\u093f\u0915\u094d
-languages.na=\u0928\u093e\u092f\u0930\u0942
-languages.te=\u0924\u0947\u0932\u0947\u0917\u0941
-languages.zh=\u091a\u0940\u0928\u0940
-languages.as=\u0905\u0938\u093e\u092e\u0940
-languages.ar=\u0905\u0930\u092c\u0940
+languages.te=\u0924\u0947\u0932\u0941\u0917\u0941
+languages.smi=\u0938\u093e\u092e\u0940 \u092d\u093e\u0937\u093e
 languages.ta=\u0924\u092e\u093f\u0932
-languages.gu=\u0917\u0941\u095b\u0930\u093e\u0924\u0940
-languages.my=\u092c\u0930\u094d\u0932\u093f\u0938
-languages.am=\u0905\u092e\u094d\u0939\u093e\u0930\u093f\u0915\u094d
-languages.za=\u095b\u0941\u0906\u0902\u0917
-languages.mt=\u092e\u093e\u0932\u091f\u093f\u0938\u094d
-languages.ms=\u092e\u0932\u092f
+languages.gu=\u0917\u0941\u091c\u0930\u093e\u0924\u0940
 languages.gn=\u0917\u0941\u0906\u0930\u093e\u0928\u0940
 languages.sw=\u0938\u094d\u0935\u093e\u0939\u093f\u0932\u0940
-languages.mr=\u092e\u0930\u093e\u0920\u0940
-languages.sv=\u0938\u094d\u0935\u093f\u0921\u093f\u0936
 languages.gl=\u0917\u0948\u0932\u093f\u0936\u093f\u092f\u0928\u094d
-languages.su=\u0938\u0941\u0928\u094d\u0926\u093e\u0928\u0940\u0938
-languages.af=\u0905\u092b\u094d\u0930\u0940\u0915\u0940
+languages.sv=\u0938\u094d\u0935\u0940\u0921\u093f\u0936
+languages.su=\u0938\u0941\u0902\u0921\u093e\u0928\u0940
 languages.st=\u0938\u0947\u0938\u094b\u0925\u094b
-languages.mo=\u092e\u094b\u0932\u0921\u093e\u0935\u093f\u092f\u0928\u094d
-languages.ss=\u0938\u0940\u0938\u094d\u0935\u093e\u091f\u093f
-languages.mn=\u092e\u094b\u0902\u0917\u094b\u0932\u093f\u092f\u0928
-languages.sr=\u0938\u0930\u094d\u092c\u093f\u092f\u0928\u094d
-languages.sq=\u0905\u0932\u094d\u092c\u0947\u0928\u093f\u092f\u0928\u094d
-languages.ml=\u092e\u0932\u092f\u093e\u0932\u092e
-languages.ab=\u0905\u092c\u094d\u0916\u093e\u095b\u093f\u092f\u0928\u094d
-languages.mk=\u092e\u0948\u0938\u0947\u0921\u094b\u0928\u093f\u092f\u0928\u094d
-languages.aa=\u0905\u092b\u093c\u093e\u0930
+languages.ss=\u0938\u094d\u0935\u093e\u0924\u0940
+languages.gay=\u0917\u093e\u092f\u094b
+languages.sr=\u0938\u0930\u094d\u092c\u093f\u092f\u093e\u0908
+languages.sq=\u0905\u0932\u094d\u092c\u0947\u0928\u093f\u092f\u093e\u0908
+languages.bho=\u092d\u094b\u091c\u092a\u0941\u0930\u0940
+languages.en_CA=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940(\u0915\u0928\u093e\u0921\u093e\u0908)
 languages.so=\u0938\u094b\u092e\u093e\u0932\u0940
+languages.gd=\u0938\u094d\u0915\u0949\u091f\u094d\u0938 \u0917\u0947\u0932\u093f\u0915
 languages.sn=\u0938\u094b\u0923\u093e
-languages.mi=\u092e\u0947\u0913\u0930\u0940
-languages.gd=\u0938\u094d\u0915\u093e\u091f\u094d\u0938\u094d \u0917\u093e\u092f\u0947\u0932\u093f\u0915\u094d
 languages.sm=\u0938\u093e\u092e\u094b\u0928
-languages.sl=\u0938\u094d\u0932\u094b\u0935\u0947\u0928\u093f\u092f\u0928\u094d
-languages.mg=\u092e\u093e\u0932\u093e\u0917\u093e\u0938\u0940
+languages.sl=\u0938\u094d\u0932\u094b\u0935\u0947\u0928\u093f\u092f\u093e\u0908
+languages.ga=\u0906\u092f\u0930\u093f\u0936
 languages.sk=\u0938\u094d\u0932\u094b\u0935\u093e\u0915\u094d
-languages.ga=\u0906\u0908\u0930\u093f\u0936
-languages.yo=\u092f\u094b\u0930\u0942\u092c\u093e
 languages.si=\u0936\u093f\u0902\u0918\u093e\u0932\u0940\u0938\u094d
-languages.sh=\u0938\u0947\u0930\u094d\u092c\u094b-\u0915\u094d\u0930\u094b\u090f\u0936\u0928\u094d
-languages.sg=\u0938\u093e\u0901\u0917\u094d\u0930\u094b
-languages.yi=\u092f\u0947\u0939\u0941\u0926\u0940
+languages.anp=\u0905\u0902\u0917\u0940\u0915\u093e
+languages.sh=\u0938\u0930\u094d\u092c\u094b-\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u093e\u0908
+languages.sg=\u0938\u093e\u0902\u0917\u094b
+languages.myn=\u092e\u093e\u092f\u093e \u092d\u093e\u0937\u093e
+languages.fy=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u092b\u093c\u094d\u0930\u093f\u0938\u093f\u092f\u093e\u0908
 languages.sd=\u0938\u093f\u0928\u094d\u0927\u0940
-languages.fy=\u092b\u094d\u0930\u0940\u091c\u093c\u0928\u094d
 languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924
-languages.fr=\u092b\u094d\u0930\u0947\u0902\u091a
-languages.lv=\u0932\u093e\u091f\u0935\u093f\u092f\u0928\u094d (\u0932\u0947\u091f\u094d\u091f\u0940\u0936)
-languages.fo=\u092b\u093f\u0930\u094b\u095b\u0940
-languages.lt=\u0932\u093f\u0925\u0941\u0928\u093f\u092f\u0928\u094d
+languages.cau=\u0915\u093e\u0915\u0947\u0936\u0940 \u092d\u093e\u0937\u093e
+languages.ang=\u092a\u0941\u0930\u093e\u0928\u0940 \u0905\u0902\u0917\u094d\u0930\u0947\u091c\u0940
+languages.fr=\u092b\u094d\u0930\u093e\u0902\u0938\u093f\u0938\u0940
+languages.sla=\u0938\u094d\u0932\u094b\u0935\u093f\u092f\u093e\u0908 \u092d\u093e\u0937\u093e
+languages.fo=\u092b\u093c\u0930\u094b\u0908\u091c\u093c
 languages.rw=\u0915\u093f\u0928\u094d\u092f\u093e\u0930\u0935\u093e\u0923\u094d\u0921\u093e
-languages.root=\u0936\u093f\u0916\u0930
-languages.ru=\u0930\u0941\u0938\u0940
-languages.fj=\u095e\u0940\u091c\u0940
-languages.lo=\u0932\u093e\u0913\u0925\u0940\u092f\u0928\u094d
+languages.ru=\u0930\u0942\u0938\u0940
+languages.fj=\u092b\u093c\u0940\u091c\u0940
+languages.cai=\u092e\u0927\u094d\u092f \u0905\u092e\u0947\u0930\u093f\u0915\u0940 \u092d\u093e\u0930\u0924\u0940\u092f \u092d\u093e\u0937\u093e
 languages.fi=\u092b\u093f\u0928\u093f\u0936
-languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
-languages.ro=\u0930\u0942\u092e\u093e\u0928\u0940\u092f\u0928\u094d
-languages.rn=\u0915\u093f\u0930\u0942\u0928\u094d\u0926\u0940
+languages.ro=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e\u0908
+languages.rn=\u0930\u0941\u0928\u094d\u0926\u0940
 languages.rm=\u0930\u0939\u0947\u092f\u094d\u091f\u094b-\u0930\u094b\u092e\u093e\u0928\u094d\u0938
-languages.fa=\u092a\u0930\u094d\u0936\u093f\u092f\u0928\u094d
-languages.la=\u0932\u0948\u091f\u0940\u0928
-languages.xh=\u0937\u094b\u0938\u093e
+languages.fa=\u092b\u093e\u0930\u0938\u0940
+languages.pt_PT=\u0908\u0935\u0947\u0930\u093f\u092f\u093e\u0908 \u092a\u0941\u0930\u094d\u0924\u0917\u093e\u0932\u0940
+languages.pra=\u092a\u094d\u0930\u093e\u0915\u0943\u0924
+languages.es_419=\u0932\u0947\u091f\u093f\u0928 \u0905\u092e\u0947\u0930\u093f\u0915\u0940 \u0938\u094d\u092a\u0947\u0928\u093f\u0936
+languages.en_AU=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940 (\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e)
+languages.new=\u0928\u0947\u0935\u093e\u0921\u0940
+languages.peo=\u092a\u0941\u0930\u093e\u0928\u0940 \u092b\u093e\u0930\u0938\u0940
 languages.eu=\u092c\u093e\u0938\u094d\u0915\u094d
-languages.et=\u0910\u0938\u094d\u0924\u094b\u0928\u093f\u092f\u0928\u094d
-languages.ky=\u0915\u093f\u0930\u0918\u093f\u095b
+languages.et=\u090d\u0938\u094d\u091f\u094b\u0928\u0940
+languages.es=\u0938\u094d\u092a\u0947\u0928\u093f\u0936
+languages.eo=\u090d\u0938\u094d\u092a\u0947\u0930\u093e\u0928\u094d\u0924\u094b
+languages.en=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940
+languages.el=\u0917\u094d\u0930\u0940\u0915
+languages.qu=\u0915\u094d\u0935\u0947\u0936\u0941\u0906
+languages.fro=\u092a\u0941\u0930\u093e\u0928\u0940 \u092b\u094d\u0930\u093e\u0902\u0938\u0940\u0938\u0940
+languages.mwr=\u092e\u093e\u0930\u0935\u093e\u0921\u0940
+languages.dz=\u092d\u0941\u091f\u093e\u0928\u0940
+languages.mwl=\u092e\u093f\u0930\u093e\u0902\u0921\u0940
+languages.dra=\u0926\u094d\u0930\u0935\u093f\u0923 \u092d\u093e\u0937\u093e
+languages.bra=\u092c\u094d\u0930\u091c
+languages.pt_BR=\u092a\u0941\u0930\u094d\u0924\u0917\u093e\u0932\u0940 (\u092c\u094d\u0930\u093e\u091c\u093c\u0940\u0932)
+languages.pt=\u092a\u0941\u0930\u094d\u0924\u0917\u093e\u0932\u0940
+languages.ps=\u092a\u0949\u0936\u0924\u094b (\u092a\u0941\u0936\u0924\u094b)
+languages.de=\u091c\u0930\u094d\u092e\u0928
+languages.sit=\u091a\u0940\u0928\u0940-\u0924\u093f\u092c\u094d\u092c\u094d\u0924\u0940 \u092d\u093e\u0937\u093e
+languages.pl=\u092a\u0949\u0932\u093f\u0936
+languages.da=\u0921\u0948\u0928\u093f\u0936
+languages.pi=\u092a\u093e\u0932\u0940
+languages.cy=\u0935\u0947\u0932\u094d\u0936
+languages.akk=\u0905\u0915\u093e\u0921\u093f\u0928\u0940
+languages.sus=\u0938\u0941\u0938\u0941
+languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
+languages.cs=\u091a\u0947\u0915\u093c
+languages.co=\u0915\u094b\u0930\u094d\u0938\u0940\u0915\u0928
+languages.mis=\u0935\u093f\u0935\u093f\u0927 \u092d\u093e\u0937\u093e
+languages.or=\u0909\u0930\u093f\u092f\u093e
+languages.ce=\u091a\u0947\u091a\u0928
+languages.awa=\u0905\u0935\u0927\u0940
+languages.om=\u0913\u0930\u094b\u092e\u094b (\u0905\u092b\u093c\u093e\u0928)
+languages.ca=\u0915\u093e\u0924\u093e\u0932\u093e\u0928
+languages.mun=\u092e\u0941\u0928\u094d\u0921\u093e \u092d\u093e\u0937\u093e
+languages.lol=\u092e\u094b\u0902\u0917\u094b
+languages.mul=\u0935\u093f\u0935\u093f\u0927 \u092d\u093e\u0937\u093e\u090f
+languages.oc=\u0913\u0938\u0940\u091f\u093e\u0928
+languages.bs=\u092c\u094b\u0938\u094d\u0928\u093f\u092f\u093e\u0908
+languages.br=\u092c\u094d\u0930\u0947\u091f\u0928
+languages.bo=\u0924\u093f\u092c\u094d\u092c\u0924\u0940
+languages.zh_Hans=\u091a\u0940\u0928\u0940 (\u0938\u0930\u0932\u0940\u0915\u0943\u0924)
+languages.bn=\u092c\u0901\u0917\u093e\u0932\u0940
+languages.zh_Hant=\u092a\u093e\u0930\u0902\u092a\u0930\u093f\u0915 \u091a\u0940\u0928\u0940
+languages.bi=\u092c\u093f\u0938\u094d\u0932\u093e\u092e\u093e
+languages.bh=\u092c\u093f\u0939\u093e\u0930\u0940
+languages.bg=\u092c\u0941\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u093e\u0908
+languages.be=\u092c\u0947\u0932\u093e\u0930\u0942\u0938\u0940
+languages.no=\u0928\u093e\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u0928
+languages.nn=\u0928\u0949\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u0928 - \u0928\u093e\u092f\u0928\u0949\u0930\u094d\u0938\u094d\u0915
+languages.nl=\u0921\u091a
+languages.ba=\u092c\u0936\u0916\u093c\u093f\u0930
+languages.zu=\u091d\u0941\u0932\u0942
+languages.sgn=\u0938\u093e\u0902\u0915\u0947\u0924\u093f\u0915 \u092d\u093e\u0937\u093e
+languages.ain=\u0910\u0928\u0942
+languages.raj=\u0930\u093e\u091c\u0938\u094d\u0925\u093e\u0928\u0940
+languages.az=\u0905\u091c\u093c\u0930\u092c\u0948\u0902\u091c\u093e\u0928\u0940
+languages.ne=\u0928\u0947\u092a\u093e\u0932\u0940
+languages.ay=\u090e\u092e\u0930\u093e
+languages.av=\u0905\u0935\u0947\u0930\u093f\u0915
+languages.de_AT=\u091c\u0930\u094d\u092e\u0928 (\u0911\u0938\u094d\u091f\u094d\u0930\u093f\u092f\u093e\u0908)
+languages.aus=\u0906\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e\u0908 \u092d\u093e\u0937\u093e
+languages.na=\u0928\u093e\u092f\u0930\u0942
+languages.as=\u0906\u0938\u093e\u092e\u0940
+languages.ar=\u0905\u0930\u092c\u0940
+languages.zh=\u091a\u0940\u0928\u0940
+languages.my=\u092c\u0930\u094d\u092e\u0940
+languages.an=\u0905\u0930\u094d\u0917\u094b\u0928\u0940
+languages.am=\u0905\u092e\u094d\u0939\u093e\u0930\u093f\u0915\u094d
+languages.ak=\u0905\u0915\u0928
+languages.za=\u091c\u093c\u0941\u0906\u0902\u0917
+languages.mt=\u092e\u093e\u0932\u094d\u091f\u0940\u091c\u093c
+languages.ms=\u092e\u0932\u092f
+languages.mr=\u092e\u0930\u093e\u0920\u0940
+languages.af=\u0905\u092b\u094d\u0930\u0940\u0915\u0940
+languages.ae=\u0905\u0935\u0947\u0938\u094d\u0924\u0928
+languages.ssa=\u0928\u0940\u0932 \u0938\u0939\u093e\u0930\u0940 \u092d\u093e\u0937\u093e
+languages.mo=\u092e\u094b\u0932\u0921\u093e\u0935\u093f\u092f\u0928\u094d
+languages.mn=\u092e\u0902\u0917\u094b\u0932\u0940\u092f\u093e\u0908
+languages.en_US=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940 \u0905\u092e\u0947\u0930\u0940\u0915\u0940
+languages.ab=\u0905\u092c\u094d\u0916\u093e\u091c\u093c\u093f\u092f\u0928\u094d
+languages.ml=\u092e\u0932\u092f\u093e\u0932\u092e
+languages.aa=\u0905\u092b\u093c\u0930
+languages.mk=\u092e\u0947\u0938\u093f\u0921\u094b\u0928\u093f\u092f\u0928
+languages.root=\u091c\u0921
+languages.mi=\u092e\u093e\u0913\u0930\u0940
+languages.mg=\u092e\u0947\u0932\u0947\u0917\u0947\u0938\u0940
+languages.yo=\u092f\u094b\u0930\u0942\u092c\u093e
+languages.egy=\u092a\u094d\u0930\u093e\u091a\u0940\u0928 \u092e\u093f\u0938\u094d\u0930\u0940
+languages.tlh=\u0915\u094d\u0932\u093f\u0902\u0917\u0928
+languages.yi=\u092f\u093f\u0921\u093f\u0936
+languages.bat=\u092c\u0932\u094d\u0915\u093e\u0928\u0940 \u092d\u093e\u0937\u093e
+languages.lv=\u0932\u093e\u0924\u0935\u0940
+languages.lt=\u0932\u093f\u0925\u0941\u092f\u093e\u0928\u093f\u092f\u093e\u0908
+languages.lo=\u0932\u093e\u0913
+languages.bal=\u092c\u0932\u0942\u091a\u0940
+languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
+languages.fr_CA=\u092b\u093c\u094d\u0930\u0947\u0902\u091a(\u0915\u0928\u093e\u0921\u093e\u0908)
+variants.POSIX=\u0915\u092e\u094d\u092a\u094d\u092f\u0942\u091f\u0930
+variants.1901=\u092a\u093e\u0930\u092e\u094d\u092a\u093e\u0930\u093f\u0915 \u091c\u0930\u094d\u092e\u0928 \u0935\u0930\u094d\u0924\u0928\u0940
+variants.MONOTON=\u090f\u0915\u0938\u094d\u0935\u0930\u0940\u092f
+variants.1996=\u091c\u0930\u094d\u092e\u0947\u0928\u0940 \u0915\u0940 1996 \u0935\u0930\u094d\u0924\u0928\u0940
+variants.POLYTON=\u092c\u0939\u0941\u0938\u094d\u0935\u0930\u0940\u092f
+variants.NJIVA=\u091c\u0940\u0935\u093e \u092c\u094b\u0932\u0940
+variants.AREVELA=\u092a\u0942\u0930\u094d\u0935\u0940 \u0905\u0930\u094d\u092e\u0947\u0928\u093f\u092f\u093e\u0908
+variants.REVISED=\u0938\u0902\u0936\u094b\u0927\u093f\u0924 \u0935\u0930\u094d\u0924\u0928\u0940
index 5ea7f5ae68dcc81fe584bead3404b88cc01c45b2..44f8ab26f018a8db254425e3bca5e4871db52aa7 100644 (file)
 
 decimalSeparator=,
 groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
 currenciesDisplayName.YDD=jemenski dinar
+currenciesDisplayName.KES=kenijski \u0161iling
 currenciesDisplayName.TWD=Novotajvanski dolar
-currenciesDisplayName.KES=Kenijski \u0161iling
 currenciesDisplayName.LKR=Sri Lanka Rupee
+currenciesDisplayName.BYB=bjeloruska nova rublja (1994-1999)
 currenciesDisplayName.TJS=Tad\u017eikistanski somoni
-currenciesDisplayName.SDP=Sudanska funta
-currenciesDisplayName.ERN=Eritrean Nakfa
-currenciesDisplayName.GRD=Gr\u010dka drahma
-currenciesDisplayName.IEP=Irska funta
-currenciesDisplayName.ARS=Argentinski pezo
-currenciesDisplayName.SDD=Sudanski dinar
-currenciesDisplayName.ARP=Argentinski pezo (1983-1985)
-currenciesDisplayName.GEL=Gruzijski lari
+currenciesDisplayName.ERN=nakfa
+currenciesDisplayName.SDP=sudanska funta
+currenciesDisplayName.GRD=gr\u010dka drahma
+currenciesDisplayName.IEP=irska funta
+currenciesDisplayName.ARS=argentinski pezo
+currenciesDisplayName.ARP=argentinski pezo (1983-1985)
+currenciesDisplayName.SDD=sudanski dinar
+currenciesDisplayName.GEL=lari
 currenciesDisplayName.GEK=Georgian Kupon Larit
-currenciesDisplayName.CRC=Kostarikanski kolon
-currenciesDisplayName.FKP=Falklandska funta
-currenciesDisplayName.EEK=Estonian Kroon
-currenciesDisplayName.HKD=Honkon\u0161ki dolar
-currenciesDisplayName.MDL=Moldovski lej
-currenciesDisplayName.IQD=Ira\u010dki dinar
+currenciesDisplayName.CRC=kostarikanski kolon
+currenciesDisplayName.FKP=falklandska funta
+currenciesDisplayName.EEK=estonska kruna
+currenciesDisplayName.MDL=moldavski lej
+currenciesDisplayName.HKD=hongkon\u0161ki dolar
+currenciesDisplayName.IQD=ira\u010dki dinar
 currenciesDisplayName.SCR=Sej\u0161elska rupija
-currenciesDisplayName.DKK=Danska kruna
+currenciesDisplayName.DKK=danska kruna
+currenciesDisplayName.IDR=indonezijska rupija
 currenciesDisplayName.GQE=Equatorial Guinea Ekwele Guineana
-currenciesDisplayName.IDR=Indonezijska rupija
-currenciesDisplayName.LVR=Latvian Ruble
 currenciesDisplayName.SOS=Somalijski \u0161iling
-currenciesDisplayName.LVL=Latvian Lats
+currenciesDisplayName.LVR=Latvian Ruble
+currenciesDisplayName.AED=UAE dirham
+currenciesDisplayName.LVL=letonski lats
+currenciesDisplayName.BWP=pula
 currenciesDisplayName.RUR=Ruska rublja (1991-1998)
-currenciesDisplayName.FJD=Fid\u017eijski dolar
 currenciesDisplayName.MOP=Macao Pataca
+currenciesDisplayName.FJD=fid\u017eijski dolar
+currenciesDisplayName.ADP=andorska pezeta
 currenciesDisplayName.RUB=Ruska rublja
-currenciesDisplayName.DJF=Djibouti Franc
-currenciesDisplayName.ECV=Ecuador Unidad de Valor Constante (UVC)
+currenciesDisplayName.DJF=d\u017eibutski franak
 currenciesDisplayName.SBD=Solomonskooto\u010dni dolar
+currenciesDisplayName.ECV=Ecuador Unidad de Valor Constante (UVC)
 currenciesDisplayName.ECS=Ecuador Sucre
-currenciesDisplayName.PHP=Filipinski pezo
-currenciesDisplayName.LUF=Luksembur\u0161ki franak
-currenciesDisplayName.FIM=Finska marka
+currenciesDisplayName.THB=tajlandski bat
+currenciesDisplayName.PHP=filipinski pezo
+currenciesDisplayName.LUF=luksembur\u0161ki franak
+currenciesDisplayName.FIM=finska marka
 currenciesDisplayName.TTD=Trinidadtoba\u0161ki dolar
 currenciesDisplayName.SZL=Lilangeni
 currenciesDisplayName.MNT=Mongolski tugrik
+currenciesDisplayName.SAR=saudijski rial
 currenciesDisplayName.UAH=Ukrajinska hrivnja
-currenciesDisplayName.HUF=Ma\u0111arska forinta
-currenciesDisplayName.COP=Kolumbijski pezo
-currenciesDisplayName.LTT=Lithuanian Talonas
+currenciesDisplayName.HUF=ma\u0111arska forinta
+currenciesDisplayName.COP=kolumbijski pezo
+currenciesDisplayName.LTT=litavski talonas
 currenciesDisplayName.PTE=Portugalski eskudo
-currenciesDisplayName.GBP=Britanska funta
-currenciesDisplayName.INR=Indijska rupija
+currenciesDisplayName.GBP=britanska funta
 currenciesDisplayName.ZRZ=Zairski zair
-currenciesDisplayName.LTL=Lithuanian Lita
-currenciesDisplayName.KZT=Kazakhstan Tenge
-currenciesDisplayName.MZM=Mozambique Metical
+currenciesDisplayName.INR=indijska rupija
+currenciesDisplayName.LTL=litavski litas
+currenciesDisplayName.AON=angolska nova kvanza (1990-2000)
 currenciesDisplayName.UYP=Urugvajski pezo (1975-1993)
-currenciesDisplayName.AOK=Angolska kvanza (1977-1990)
+currenciesDisplayName.MZM=metikal
+currenciesDisplayName.KZT=tenge
+currenciesDisplayName.AOK=angolska kvanza (1977-1990)
 currenciesDisplayName.GNS=Guinea Syli
 currenciesDisplayName.SYP=Sirijska funta
-currenciesDisplayName.MZE=Mozambique Escudo
-currenciesDisplayName.OMR=Omanski rijal
-currenciesDisplayName.NGN=Nigerijska naira
+currenciesDisplayName.OMR=omanski rijal
+currenciesDisplayName.MZE=mozambijski eskudo
 currenciesDisplayName.ZRN=Zairski novi zair
-currenciesDisplayName.AOA=Angolska kvanza
-currenciesDisplayName.CNY=Kineski Yuan Renminbi
-currenciesDisplayName.MAF=Morokanski franak
-currenciesDisplayName.GNF=Gvinejski franak
-currenciesDisplayName.HTG=Haitian Gourde
-currenciesDisplayName.MAD=Morokanski dirham
+currenciesDisplayName.NGN=nigerijska naira
+currenciesDisplayName.CNY=renminbi-juan
+currenciesDisplayName.AOA=angolska kvanza
+currenciesDisplayName.MAF=marokanski franak
+currenciesDisplayName.RSD=srpski dinar
+currenciesDisplayName.GNF=gvinejski franak
+currenciesDisplayName.MAD=marokanski dirham
+currenciesDisplayName.HTG=gourd
 currenciesDisplayName.TRY=Nova Turska Lira
 currenciesDisplayName.MMK=Myanmar Kyat
-currenciesDisplayName.MYR=Malaysian Ringgit
-currenciesDisplayName.LSL=Lesotho Loti
-currenciesDisplayName.TRL=Turska lira
-currenciesDisplayName.KMF=Comoro Franc
-currenciesDisplayName.CZK=\u010ce\u0161ka kruna
-currenciesDisplayName.AZM=Azerbejd\u017eanski manat
-currenciesDisplayName.KYD=Kajmanski dolar
-currenciesDisplayName.GMD=Gambia Dalasi
-currenciesDisplayName.CAD=Kanadski dolar
+currenciesDisplayName.MYR=malezijski ringit
+currenciesDisplayName.XEU=europska monetarna jedinica
+currenciesDisplayName.LSL=loti
+currenciesDisplayName.BHD=bahreinski dinar
+currenciesDisplayName.TRL=turska lira
+currenciesDisplayName.KMF=komorski franak
+currenciesDisplayName.CZK=\u010de\u0161ka kruna
+currenciesDisplayName.AZM=azerbajd\u017eanski manat
+currenciesDisplayName.KYD=kajmanski dolar
+currenciesDisplayName.GMD=dalasi
+currenciesDisplayName.BGN=bugarski novi lev
+currenciesDisplayName.CAD=kanadski dolar
 currenciesDisplayName.VEB=Venezuelski bolivar
-currenciesDisplayName.MLF=Mali Franc
-currenciesDisplayName.ILS=Novi izraelski \u0161ekel
-currenciesDisplayName.MXP=Meksi\u010dki srebrni pezo (1861-1992)
-currenciesDisplayName.PES=Peruanski sol
-currenciesDisplayName.GYD=Guyana Dollar
-currenciesDisplayName.MXN=Meksi\u010dki pezo
-currenciesDisplayName.ILP=Israelska funta
+currenciesDisplayName.MLF=CFA franak
+currenciesDisplayName.MXP=meksi\u010dki srebrni pezo (1861-1992)
+currenciesDisplayName.ILS=novi izraelski \u0161ekel
+currenciesDisplayName.PES=sol
+currenciesDisplayName.MXN=meksi\u010dki pezo
+currenciesDisplayName.GYD=gvajanski dolar
+currenciesDisplayName.ILP=izraelska funta
+currenciesDisplayName.CYP=ciparska funta
 currenciesDisplayName.SKK=Slova\u010dka kruna
-currenciesDisplayName.CYP=Ciparska funta
-currenciesDisplayName.PEN=Peruanski novi sol
-currenciesDisplayName.LRD=Liberijski dolar
-currenciesDisplayName.PEI=Peruanski inti
-currenciesDisplayName.AMD=Armenian Dram
-currenciesDisplayName.HRK=Kuna
-currenciesDisplayName.CLP=\u010cileanski pezo
-currenciesDisplayName.HRD=Hrvatski dinar
-currenciesDisplayName.FRF=Francuski franak
-currenciesDisplayName.MKD=Makedonski denar
+currenciesDisplayName.PEN=novi sol
+currenciesDisplayName.LRD=liberijski dolar
+currenciesDisplayName.PEI=peruanski inti
+currenciesDisplayName.AMD=armenski dram
+currenciesDisplayName.BSD=bahamski dolar
+currenciesDisplayName.HRK=kuna
+currenciesDisplayName.HRD=hrvatski dinar
+currenciesDisplayName.CLP=\u010dileanski pezo
+currenciesDisplayName.FRF=francuski franak
+currenciesDisplayName.MKD=makedonski denar
 currenciesDisplayName.CLF=Chilean Unidades de Fomento
-currenciesDisplayName.ALL=Albanski lek
+currenciesDisplayName.ALL=albanski lek
 currenciesDisplayName.MWK=Malawi Kwacha
-currenciesDisplayName.BRL=Brazilski Real
+currenciesDisplayName.BRL=brazilski real
 currenciesDisplayName.TPE=Timorski eskudo
-currenciesDisplayName.DEM=Njema\u010dka marka
-currenciesDisplayName.KWD=Kuvajtski dinar
-currenciesDisplayName.NPR=Nepalska rupija
-currenciesDisplayName.GWP=Gvinejskobisauski pezo
+currenciesDisplayName.DEM=njema\u010dka marka
+currenciesDisplayName.KWD=kuvajtski dinar
+currenciesDisplayName.NPR=nepalska rupija
+currenciesDisplayName.GWP=gvinejskobisauski pezo
 currenciesDisplayName.YUN=Jugoslavenski konvertibilni dinar
 currenciesDisplayName.YUM=Jugoslavenski novi dinar
 currenciesDisplayName.SIT=Slovenski tolar
-currenciesDisplayName.JPY=Japanski jen
-currenciesDisplayName.BEF=Belgijski franak
-currenciesDisplayName.GWE=Portuguese Guinea Escudo
+currenciesDisplayName.JPY=japanski jen
 currenciesDisplayName.YUD=Jugoslavenski \u010dvrsti dinar
-currenciesDisplayName.ROL=Rumunjski lej
-currenciesDisplayName.BDT=Taka
+currenciesDisplayName.GWE=Portuguese Guinea Escudo
+currenciesDisplayName.BEF=belgijski franak
+currenciesDisplayName.RON=novi rumunjski lev
+currenciesDisplayName.ROL=starorumunjski lek
 currenciesDisplayName.DDM=East German Ostmark
+currenciesDisplayName.BDT=taka
+currenciesDisplayName.AWG=arupski gulden
 currenciesDisplayName.XBB=Europska monetarna jedinica
 currenciesDisplayName.XBA=Europska slo\u017eena jedinica
-currenciesDisplayName.NOK=Norve\u0161ka kruna
-currenciesDisplayName.MUR=Mauricijska rupija
+currenciesDisplayName.NOK=norve\u0161ka kruna
 currenciesDisplayName.ZAR=Ju\u017enoafri\u010dki rand
-currenciesDisplayName.XAU=Zlato
+currenciesDisplayName.MUR=mauricijska rupija
+currenciesDisplayName.XAU=zlato
 currenciesDisplayName.ZAL=Ju\u017enoafri\u010dki rand (financijski)
 currenciesDisplayName.VND=Viejetnamski dong
 currenciesDisplayName.TZS=Tanzanijski \u0161iling
-currenciesDisplayName.GIP=Gibraltarska funta
+currenciesDisplayName.GIP=gibraltarska funta
 currenciesDisplayName.TND=Tuniski dinar
-currenciesDisplayName.CVE=Zelenortski eskudo
 currenciesDisplayName.UGX=Ugandski \u0161iling
+currenciesDisplayName.CVE=zelenortski eskudo
 currenciesDisplayName.ZMK=Zambijska kva\u010da
-currenciesDisplayName.JOD=Jordanski dinar
+currenciesDisplayName.JOD=jordanski dinar
 currenciesDisplayName.UGS=Ugandski \u0161iling (1966-1987)
-currenciesDisplayName.KHR=Cambodian Riel
-currenciesDisplayName.DOP=Dominikanski pezo
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.MTP=Malte\u0161ka funta
+currenciesDisplayName.KHR=rijal
+currenciesDisplayName.DOP=dominikanski pezo
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BOV=bolivijski mvdol
+currenciesDisplayName.MTP=malte\u0161ka funta
 currenciesDisplayName.USS=Ameri\u010dki dolar (isti dan)
-currenciesDisplayName.CUP=Kubanski pezo
-currenciesDisplayName.MTL=Malte\u0161ka lira
+currenciesDisplayName.BOP=bolivijski pezo
+currenciesDisplayName.CUP=kubanski pezo
+currenciesDisplayName.MTL=malte\u0161ka lira
 currenciesDisplayName.TMM=Turkmenistanski manat
 currenciesDisplayName.USN=Ameri\u010dki dolar (sljede\u0107i dan)
 currenciesDisplayName.SGD=Singapurski dolar
-currenciesDisplayName.NZD=Novozelandski dolar
+currenciesDisplayName.NZD=novozelandski dolar
 currenciesDisplayName.USD=Ameri\u010dki dolar
-currenciesDisplayName.HNL=Hodura\u0161ka lempira
-currenciesDisplayName.PAB=Panamska balboa
+currenciesDisplayName.BOB=bolivijano
+currenciesDisplayName.HNL=lempira
 currenciesDisplayName.ITL=Talijanska lira
-currenciesDisplayName.GTQ=Kvecal
-currenciesDisplayName.NAD=Namibijski dolar
-currenciesDisplayName.LAK=Laotian Kip
-currenciesDisplayName.AUD=Australski dolar
-currenciesDisplayName.KGS=Kyrgystan Som
+currenciesDisplayName.PAB=balboa
+currenciesDisplayName.GTQ=kvecal
+currenciesDisplayName.XXX=nepoznata ili neva\u017ee\u0107a valuta
+currenciesDisplayName.AUD=australski dolar
+currenciesDisplayName.LAK=kip
+currenciesDisplayName.NAD=namibijski dolar
+currenciesDisplayName.KGS=som
+currenciesDisplayName.BBD=barbadoski dolar
 currenciesDisplayName.CHF=\u0160vicarski franak
-currenciesDisplayName.BBD=Barbadoski dolar
-currenciesDisplayName.PYG=Paragvajski gvarani
+currenciesDisplayName.PYG=gvarani
 currenciesDisplayName.PLZ=Poljska zlota (1950-1995)
 currenciesDisplayName.YER=Jemenski rial
-currenciesDisplayName.ATS=Austrijski \u0161iling
-currenciesDisplayName.ETB=Etiopski bir
-currenciesDisplayName.BND=Brunejski dolar
-currenciesDisplayName.PLN=Poljska zlota
-currenciesDisplayName.JMD=Jamai\u010danski dolar
-currenciesDisplayName.EGP=Egipatska funta
-currenciesDisplayName.DZD=Al\u017eirski dinar
+currenciesDisplayName.ATS=austrijski \u0161iling
+currenciesDisplayName.ETB=etiopski bir
+currenciesDisplayName.BND=brunejski dolar
+currenciesDisplayName.EGP=egipatska funta
+currenciesDisplayName.JMD=jamaj\u010danski dolar
+currenciesDisplayName.PLN=poljska zlota
+currenciesDisplayName.DZD=al\u017eirski dinar
+currenciesDisplayName.ISK=islandska kruna
 currenciesDisplayName.SRG=Surinamski gulden
-currenciesDisplayName.ISK=Islandska kruna
-currenciesDisplayName.LYD=Libijski dinar
-currenciesDisplayName.BAM=Konvertibilna marka
+currenciesDisplayName.LYD=libijski dinar
+currenciesDisplayName.BAM=konvertibilna marka
+currenciesDisplayName.BZD=belizeanski dolar
 currenciesDisplayName.ESP=\u0160panjolska pezeta
-currenciesDisplayName.NLG=Nizozemski gulden
-currenciesDisplayName.MRO=Mauritanska ouguja
+currenciesDisplayName.KRW=ju\u017enokorejski won
+currenciesDisplayName.NLG=nizozemski gulden
+currenciesDisplayName.MRO=oruguja
+currenciesDisplayName.BAD=bosansko-hercegova\u010dki dinar
 currenciesDisplayName.ZWD=Zimbabveanski dolar
 currenciesDisplayName.SEK=\u0160vedska kruna
 currenciesDisplayName.CSK=Czechoslovak Hard Koruna
-currenciesDisplayName.IRR=Iranski rijal
-currenciesDisplayName.PKR=Pakistanska rupija
-currenciesDisplayName.BMD=Bermudski dolar
-currenciesSymbol.KES=K Sh
+currenciesDisplayName.BYR=bjeloruska rublja
+currenciesDisplayName.IRR=iranski rijal
+currenciesDisplayName.PKR=pakistanska rupija
+currenciesDisplayName.BMD=bermudski dolar
+currenciesDisplayName.CSD=stari srpski dinar
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.HRK=Kn
 currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
 currenciesSymbol.ALL=lek
@@ -218,33 +243,33 @@ currenciesSymbol.FJD=F$
 currenciesSymbol.BDT=Tk
 currenciesSymbol.MNT=Tug
 currenciesSymbol.DJF=DF
+currenciesSymbol.XXX=XXX
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
 currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
-currenciesSymbol.CVE=CVEsc
-currenciesSymbol.YER=YRl
 currenciesSymbol.HUF=Ft
+currenciesSymbol.YER=YRl
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
 currenciesSymbol.MYR=RM
 currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
 currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.KMF=CF
 currenciesSymbol.SEK=SKr
@@ -264,28 +289,33 @@ currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=sij®vel®o\u017eu®tra®svi®lip®srp®kol®ruj®lis®stu®pro®®
-months=sije\u010danj®velja\u010da®o\u017eujak®travanj®svibanj®lipanj®srpanj®kolovoz®rujan®listopad®studeni®prosinac®®
-shortWeekdays=®ned®pon®uto®sri®\u010det®pet®sub®
-weekdays=®nedjelja®ponedjeljak®utorak®srijeda®\u010detvrtak®petak®subota®
-firstDayOfWeek=mon
-shortDateFormat=yyyy.MM.dd
-mediumDateFormat=yyyy.MM.dd
-longDateFormat=yyyy. MMMM dd
-fullDateFormat=yyyy. MMMM dd
+shortMonths=sij\u00aevelj\u00aeo\u017eu\u00aetra\u00aesvi\u00aelip\u00aesrp\u00aekol\u00aeruj\u00aelis\u00aestu\u00aepro\u00ae\u00ae
+months=sije\u010danj\u00aevelja\u010da\u00aeo\u017eujak\u00aetravanj\u00aesvibanj\u00aelipanj\u00aesrpanj\u00aekolovoz\u00aerujan\u00aelistopad\u00aestudeni\u00aeprosinac\u00ae\u00ae
+shortWeekdays=\u00aened\u00aepon\u00aeuto\u00aesri\u00ae\u010det\u00aepet\u00aesub\u00ae
+weekdays=\u00aenedjelja\u00aeponedjeljak\u00aeutorak\u00aesrijeda\u00ae\u010detvrtak\u00aepetak\u00aesubota\u00ae
+eras=pr.n.e.\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd.MM.yyyy.
+mediumDateFormat=d. MMM. yyyy.
+longDateFormat=d. MMMM yyyy.
+fullDateFormat=EEEE, d. MMMM yyyy.
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
 territories.TL=Isto\u010dni Timor
 territories.TK=Tokelau
 territories.TJ=Tad\u017eikistan
 territories.TH=Tajland
 territories.TG=Togo
-territories.TF=Francuske Ju\u017ene Teritorije
+territories.TF=Francuski Ju\u017eni Teritoriji
 territories.GY=Gvajana
 territories.TD=\u010cad
-territories.TC=Turkski i Kaikos Otoci
+territories.TC=Otoci Turks i Caicos
 territories.GW=Gvineja Bisau
 territories.GU=Guam
 territories.GT=Gvatemala
-territories.GS=Ju\u017ena Gruzija i Ju\u017eni Sendvi\u010d Otoci
+territories.GS=Ju\u017ena D\u017eord\u017eija i Otoci Ju\u017eni Sendvi\u010d
 territories.GR=Gr\u010dka
 territories.GQ=Ekvatorska Gvineja
 territories.GP=Guadeloupe
@@ -293,21 +323,22 @@ territories.SZ=Svazi
 territories.SY=Sirija
 territories.GN=Gvineja
 territories.GM=Gambija
-territories.GL=Greenland
+territories.GL=Grenland
 territories.SV=El Salvador
-territories.062=Ju\u017eno-centralna Azija
+territories.062=Ju\u017ena Azija
 territories.ST=Sveti Toma i Prinsipe
-territories.061=Polinezija
 territories.GI=Gibraltar
+territories.061=Polinezija
 territories.GH=Gana
 territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Francuska Gvajana
 territories.GE=Gruzija
 territories.SO=Somalija
 territories.GD=Grenada
 territories.SN=Senegal
 territories.SM=San Marino
-territories.GB=Ujedinjena Kraljevina
+territories.GB=Velika Britanija
 territories.SL=Sijera Leone
 territories.GA=Gabon
 territories.SK=Slova\u010dka
@@ -318,29 +349,30 @@ territories.SG=Singapur
 territories.SE=\u0160vedska
 territories.SD=Sudan
 territories.SC=Sej\u0161eli
-territories.SB=Salamunovi Otoci
+territories.SB=Solomonski Otoci
 territories.SA=Saudijska Arabija
 territories.FR=Francuska
+territories.FO=Ferojski Otoci
 territories.057=Micronezija
-territories.FO=Farski Otoci
-territories.FM=Mikronezija, Federalne Dr\u017eave
+territories.FM=Mikronezija
 territories.RW=Ruanda
 territories.054=Melanezija
-territories.053=Australija i Novi Zeland
 territories.FK=Falklandski Otoci
-territories.RU=Ruska Federacija
+territories.053=Australija i Novi Zeland
+territories.RU=Rusija
 territories.FJ=Fid\u017ei
 territories.FI=Finska
+territories.RS=Srbija
 territories.RO=Rumunjska
 territories.RE=Reunion
 territories.ET=Etiopija
 territories.ES=\u0160panjolska
 territories.ER=Eritreja
-territories.833=Otok Man
+territories.QU=Europska Unija
 territories.EH=Zapadna Sahara
 territories.EG=Egipat
-territories.830=Kanalski otoci
 territories.EE=Estonija
+territories.830=Kanalski otoci
 territories.QO=Ostala oceanija
 territories.EC=Ekvador
 territories.DZ=Al\u017eir
@@ -348,13 +380,14 @@ territories.QA=Katar
 territories.039=Ju\u017ena Europa
 territories.DO=Dominikanska Republika
 territories.PY=Paragvaj
-territories.035=Jugoisto\u010dna Azija
 territories.DM=Dominika
+territories.035=Jugoisto\u010dna Azija
 territories.PW=Palau
+territories.034=Ju\u017ena Azija
 territories.DK=Danska
 territories.DJ=D\u017eibuti
 territories.PT=Portugal
-territories.PS=Palestinska Teritoija
+territories.PS=Palestinsko Podru\u010dje
 territories.030=Isto\u010dna Azija
 territories.PR=Portoriko
 territories.DE=Njema\u010dka
@@ -368,7 +401,7 @@ territories.PF=Francuska Polinezija
 territories.CZ=\u010ce\u0161ka Republika
 territories.PE=Peru
 territories.CY=Cipar
-territories.CX=Bo\u017ei\u0107ni Otoci
+territories.CX=Bo\u017ei\u0107ni Otok
 territories.CV=Zeleni Rt
 territories.PA=Panama
 territories.CU=Kuba
@@ -380,15 +413,16 @@ territories.CN=Kina
 territories.CM=Kamerun
 territories.CL=\u010cile
 territories.CK=Kukovi Otoci
-territories.CI=Obala Bjelokosti
 territories.021=Sjeverna Amerika
+territories.CI=Bjelokosna Obala
 territories.CH=\u0160vicarska
 territories.CG=Kongo
 territories.CF=Srednjoafri\u010dka Republika
-territories.CD=Kongo, Demokratska Republika
-territories.CC=Kokos (Keeling) Otoci
+territories.CD=Demokratska Republika Kongo
+territories.CC=Kokosovi Otoci
 territories.OM=Oman
 territories.CA=Kanada
+territories.419=Latinska Amerika i Karibi
 territories.BZ=Belize
 territories.BY=Bjelorusija
 territories.BW=Bocvana
@@ -399,23 +433,24 @@ territories.BR=Brazil
 territories.019=Amerike
 territories.018=Ju\u017ena Afrika
 territories.NZ=Novi Zeland
-territories.BO=Bolivija
 territories.017=Sredi\u0161nja Afrika
-territories.BN=Brunei Darussalam
-territories.BM=Bermuda
+territories.BO=Bolivija
+territories.BN=Brunej
 territories.015=Sjeverna Afrika
+territories.BM=Bermuda
 territories.014=Isto\u010dna Afrika
 territories.013=Centralna Amerika
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Zapadna Afrika
+territories.BI=Burundi
 territories.BH=Bahrein
 territories.NR=Nauru
 territories.BG=Bugarska
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgija
+territories.ZZ=nepoznata ili neva\u017ee\u0107a oblast
 territories.NO=Norve\u0161ka
 territories.BD=Banglade\u0161
 territories.BB=Barbados
@@ -424,7 +459,7 @@ territories.NL=Nizozemska
 territories.BA=Bosna i Hercegovina
 territories.NI=Nikaragva
 territories.NG=Nigerija
-territories.NF=Norfol\u0161ki Otoci
+territories.NF=Otok Norfolk
 territories.AZ=Azerbajd\u017ean
 territories.NE=Niger
 territories.AX=Alandski otoci
@@ -436,46 +471,48 @@ territories.AU=Australija
 territories.AT=Austrija
 territories.AS=Ameri\u010dka Samoa
 territories.AR=Argentina
+territories.AQ=Antarktika
 territories.009=Oceanija
-territories.AQ=Antarktik
 territories.MZ=Mozambik
 territories.AO=Angola
 territories.MY=Malezija
 territories.AN=Nizozemski Antili
 territories.MX=Meksiko
-territories.005=Ju\u017ena Amerika
 territories.AM=Armenija
+territories.005=Ju\u017ena Amerika
 territories.MW=Malavi
 territories.AL=Albanija
 territories.MV=Maldivi
-territories.ZA=Ju\u017ena Afrika
+territories.003=Sjevernoameri\u010dki kontinent
+territories.ZA=Ju\u017enoafri\u010dka Republika
 territories.MU=Mauricijus
 territories.002=Afrika
 territories.MT=Malta
-territories.001=Svijet
 territories.AI=Anguila
+territories.001=Svijet
 territories.MS=Montserat
 territories.MR=Mauritanija
-territories.AG=Antigua i Barbuda
+territories.AG=Antigva i Barbuda
 territories.MQ=Martinik
 territories.AF=Afganistan
-territories.MP=Sjeverni Marianski Otoci
+territories.MP=Sjeverni Marijanski Otoci
 territories.AE=Ujedinjeni Arapski Emirati
-territories.MO=Makao S.A.R. Kine
+territories.MO=Makao
 territories.AD=Andora
 territories.MN=Mongolija
 territories.MM=Mijanma
 territories.ML=Mali
-territories.MK=Makedonija, Republika
+territories.MK=Biv\u0161a Jugoslavenska Republika Makedonija
 territories.YT=Majote
 territories.MH=Mar\u0161alovi Otoci
 territories.MG=Madagaskar
-territories.MD=Moldavija, Republika
+territories.ME=Crna Gora
+territories.MD=Moldavija
 territories.MC=Monako
 territories.MA=Maroko
 territories.YE=Jemen
 territories.LY=Libijska Arapska D\u017eamahirija
-territories.LV=Latvija
+territories.LV=Letonija
 territories.155=Zapadna Europa
 territories.LU=Luksemburg
 territories.154=Sjeverna Europa
@@ -488,13 +525,14 @@ territories.LK=\u0160ri Lanka
 territories.LI=Lihten\u0161tajn
 territories.LC=Sveta Lucija
 territories.LB=Libanon
-territories.LA=Laoska Narodna Demokratska Republika
-territories.KZ=Kazakstan
+territories.LA=Laos
+territories.KZ=Kazahstan
 territories.KY=Kajmanski Otoci
 territories.KW=Kuvajt
 territories.145=Zapadna Azija
+territories.143=Srednja Azija
 territories.142=Azija
-territories.KR=Koreja, Ju\u017ena
+territories.KR=Ju\u017ena Koreja
 territories.KP=Koreja, Sjeverna
 territories.KN=Sveti Kristofor i Nevis
 territories.KM=Komori
@@ -508,25 +546,27 @@ territories.JP=Japan
 territories.JO=Jordan
 territories.JM=Jamajka
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vijetnam
-territories.VI=U.S. Djevi\u010danski Otoci
-territories.VG=Britanski Djevi\u010danski Otoci
+territories.VI=Ameri\u010dki Djevi\u010danski Otoci
+territories.VG=Djevi\u010danska Oto\u010dja, Britanska
 territories.VE=Venezuela
 territories.VC=Sveti Vincent i Grenadini
-territories.VA=Sveta Stolica (Dr\u017eava Vatikanskog Grada)
+territories.VA=Grad Vatikan
 territories.IT=Italija
 territories.IS=Island
-territories.IR=Iran, Islamska Republika
+territories.IR=Iran
 territories.IQ=Irak
 territories.UZ=Uzbekistan
-territories.IO=Britanski Teritorij Indijskog Oceana
+territories.IO=Britanski Indijskooceanski Teritorij
 territories.UY=Urugvaj
 territories.IN=Indija
+territories.IM=Otok Man
 territories.IL=Izrael
-territories.US=Sjedinjene Dr\u017eave
+territories.US=SAD
 territories.IE=Irska
 territories.ID=Indonezija
-territories.UM=Sjedinjene Dr\u017eave Manji Vanjski Otoci
+territories.UM=Ujedinjene Dr\u017eave Manjih Pacifi\u010dkih Otoka
 territories.UG=Uganda
 territories.UA=Ukrajina
 territories.HU=Ma\u0111arska
@@ -534,83 +574,185 @@ territories.HT=Haiti
 territories.HR=Hrvatska
 territories.TZ=Tanzanija
 territories.HN=Honduras
-territories.HM=Heard Otok i McDonald Otoci
+territories.HM=Otok Heard i Otoci McDonald
 territories.TW=Tajvan
 territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R. Kine
+territories.HK=Hong Kong
 territories.TT=Trinidad i Tobago
 territories.TR=Turska
 territories.TO=Tonga
 territories.TN=Tunis
 territories.TM=Turkmenistan
-languages.ne=nepalski
-languages.haw=havajski
-languages.zh=kineski
-languages.dum=nizozemski, srednji (ca. 1050-1350)
-languages.av=avarski
-languages.ar=arapski
+languages.lb=luksembur\u0161ki
+languages.la=latinski
+languages.xh=xhosa
+languages.ky=kirgi\u0161ki
+languages.kw=kornski
+languages.ku=kurdski
+languages.ko=korejski
+languages.kn=kannada
+languages.km=kmerski
+languages.kk=kaza\u0161ki
+languages.ira=iranski
+languages.kg=kongo
+languages.en_GB=engleski (britanski)
+languages.grc=gr\u010dki, anti\u010dki (do 1453)
+languages.wo=wolof
+languages.art=umjetni (ostali)
+languages.ka=gruzijski
+languages.gem=germanski (ostali)
+languages.afa=ostali afri\u010dko-azijski
+languages.jv=javanski
+languages.cel=keltski (ostali)
+languages.ja=japanski
+languages.tig=tigri\u0161ki
+languages.vi=vijetnamski
+languages.it=talijanski
+languages.is=islandski
+languages.uz=uzbe\u010dki
+languages.ur=urdu
+languages.ie=interlingua (jezik zami\u0161ljen za internacionalnu komunikaciju me\u0111u znanstvenicima)
+languages.id=indonezijski
+languages.ia=interlingua
+languages.uk=ukrajinski
+languages.ug=turkmenski (uighur)
+languages.fiu=ugro-finski jezici
+languages.und=nepoznati ili neva\u017ee\u0107i jezik
+languages.hy=armenski
+languages.hu=ma\u0111arski
+languages.ht=kreolski
+languages.hr=hrvatski
+languages.fil=filipinski
+languages.ty=tahi\u0107anski
 languages.apa=apa\u0161ki
-languages.mt=malte\u0161ki
+languages.tw=twi
+languages.goh=njema\u010dki, stari visoki (ca.750-1050)
+languages.hi=hindu
+languages.tr=turski
+languages.he=hebrejski
+languages.tl=tagalog
+languages.tk=turkmenski
+languages.dum=nizozemski, srednji (ca. 1050-1350)
+languages.ti=tigrinya
+languages.th=tajlandski
+languages.te=telugu
+languages.ta=tamilski
+languages.gu=gujarati
+languages.ine=indoeuropski (ostali)
+languages.gn=guarani
+languages.inc=indijski (drugi)
+languages.sw=svahili
+languages.gl=galicijski
 languages.sv=\u0161vedski
-languages.pt=portugalski
+languages.su=sundanski
+languages.st=sesotski
 languages.enm=engleski, srednji (1100-1500)
 languages.sr=srpski
-languages.mn=mongolski
 languages.sq=albanski
-languages.mk=makedonski
-languages.de=njema\u010dki
-languages.pl=poljski
+languages.so=somalski
+languages.gd=\u0161kotski-galski
+languages.sm=samoanski
 languages.sl=slovenski
-languages.sk=slova\u010dki
-languages.art=umjetni (ostali)
-languages.da=danski
 languages.ga=irski
-languages.vi=vijetnamski
-languages.ja=japanski
-languages.gmh=njema\u010dki, srednji visoki (ca.1050-1500)
-languages.sla=slavenski (drugi)
-languages.egy=egipatski (anti\u010dki)
-languages.cy=vel\u0161ki
-languages.cel=keltski (ostali)
+languages.sk=slova\u010dki
+languages.si=singale\u0161ki
+languages.sh=srpsko-hrvatski
 languages.fy=frizijski
-languages.cu=crkvenoslavenski
-languages.cs=\u010de\u0161ki
-languages.lv=latvijski
-languages.it=talijanski
+languages.sd=sindhi
+languages.sc=sardski
+languages.sa=sanskrtski
+languages.ang=engleski, stari (ca.450-1100)
 languages.fr=francuski
-languages.is=islandski
-languages.lt=litvanski
-languages.roa=romanski (ostali)
+languages.sla=slavenski (drugi)
+languages.fo=faroanski
+languages.pro=staroprovansalski
+languages.gmh=njema\u010dki, srednji visoki (ca.1050-1500)
 languages.ru=ruski
+languages.fj=fid\u017eijski
 languages.fi=finski
-languages.ira=iranski
 languages.ro=rumunjski
-languages.uk=ukrajinski
+languages.rm=retoromanski
 languages.fa=perzijski
-languages.la=latinski
-languages.mga=irski, srednji (900-1200)
-languages.goh=njema\u010dki, stari visoki (ca.750-1050)
-languages.bat=balti\u010dki (ostali)
-languages.hy=armenski
-languages.ang=engleski, stari (ca.450-1100)
-languages.et=estonijski
-languages.fro=francuski, stari (842-ca.1400)
-languages.hu=ma\u0111arski
+languages.pt_PT=portugalski (iberijski)
+languages.nl_BE=flamanski
+languages.es_419=\u0161panjolski (Latinska Amerika)
+languages.en_AU=engleski (australski)
+languages.peo=staroperzijski
+languages.eu=baskijski
+languages.dsb=lu\u017ei\u010dkosrpski
+languages.et=estonski
 languages.es=\u0161panjolski
-languages.grc=gr\u010dki, anti\u010dki (do 1453)
-languages.frm=francuski, srednji (ca.1400-1600)
-languages.hr=hrvatski
 languages.eo=esperanto
-languages.ine=indoevropski (drugi)
 languages.en=engleski
-languages.inc=indijski (drugi)
+languages.frs=isto\u010dnofrizijski
 languages.el=gr\u010dki
-languages.ko=korejski
-languages.no=norve\u0161ki
-languages.km=kmerski
+languages.frr=sjevernofrizijski
+languages.fro=francuski, stari (842-ca.1400)
+languages.frm=francuski, srednji (ca.1400-1600)
+languages.mkh=mkh
+languages.nds=donjonjema\u010dki
+languages.pt=portugalski
+languages.ber=berberski
+languages.ps=pa\u0161tu
+languages.de=njema\u010dki
+languages.pl=poljski
+languages.da=danski
+languages.cy=vel\u0161ki
+languages.pa=punjabi
+languages.cu=crkvenoslavenski
+languages.cs=\u010de\u0161ki
+languages.co=korzi\u010dki
+languages.mis=ostali jezici
+languages.de_CH=gornjonjema\u010dki (\u0160vicarska)
+languages.or=orijski
+languages.roa=romanski (ostali)
+languages.ca=katalonski
+languages.oc=okcitanski
+languages.bs=bosanski
+languages.br=bretonski
+languages.bo=tibetanski
+languages.zh_Hans=kineski (pojednostavljeni)
+languages.bn=bengalski
+languages.zh_Hant=kineski (tradicionalni)
+languages.bh=bihari
 languages.bg=bugarski
-languages.tr=turski
 languages.be=bjeloruski
+languages.no=norve\u0161ki
+languages.nn=novonorve\u0161ki
+languages.tai=tajski
 languages.nl=nizozemski
-languages.gem=germanski (ostali)
-languages.he=hebrejski
+languages.zu=zulu
+languages.az=azerbajd\u017eanski
+languages.ne=nepalski
+languages.nb=knji\u017eevni norve\u0161ki
+languages.av=avarski
+languages.ota=turski - otomanski
+languages.as=asamskom (Britanska Indija)
+languages.ar=arapski
+languages.zh=kineski
+languages.zxx=bez jezi\u010dnog sadr\u017eaja
+languages.sga=staroirski
+languages.my=burmanski
+languages.am=amharik
+languages.mt=malte\u0161ki
+languages.ms=malajski
+languages.chr=\u010deroki
+languages.mr=marathi
+languages.af=afrikaans
+languages.haw=havajski
+languages.mo=moldavski
+languages.mn=mongolski
+languages.en_US=engleski (ameri\u010dki)
+languages.ml=malayalam
+languages.bnt=bantu
+languages.mk=makedonski
+languages.mga=irski, srednji (900-1200)
+languages.egy=egipatski (anti\u010dki)
+languages.tlh=klingonski
+languages.yi=jidi\u0161
+languages.gsw=njema\u010dki (\u0160vicarska)
+languages.bat=balti\u010dki (ostali)
+languages.lv=latvijski
+languages.lt=litvanski
+languages.lo=laoski
+languages.ln=lingala
index ded78ef3b0842933b122d9ea8be104054ad9f891..6fea62c45e22e1abbae2f21f76f58f24f47c3ac1 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+digit=#
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
 currenciesDisplayName.YDD=Jemeni d\u00edn\u00e1r
-currenciesDisplayName.TWD=Tajvani \u00faj doll\u00e1r
 currenciesDisplayName.KES=Kenyai shilling
-currenciesDisplayName.BYB=Feh\u00e9rorosz \u00faj rubel (1994-1999)
+currenciesDisplayName.TWD=Tajvani doll\u00e1r
 currenciesDisplayName.LKR=Sri Lankai r\u00fapia
-currenciesDisplayName.RWF=Ruandai frank
+currenciesDisplayName.BYB=Feh\u00e9rorosz \u00faj rubel (1994-1999)
 currenciesDisplayName.TJS=T\u00e1dzsikiszt\u00e1ni somoni
-currenciesDisplayName.SDP=Szud\u00e1ni font
-currenciesDisplayName.TJR=T\u00e1dzsikiszt\u00e1ni rubel
+currenciesDisplayName.RWF=Ruandai frank
 currenciesDisplayName.ERN=Eritreai nakfa
-currenciesDisplayName.AFN=Afghani
+currenciesDisplayName.TJR=T\u00e1dzsikiszt\u00e1ni rubel
+currenciesDisplayName.SDP=R\u00e9gi szud\u00e1ni font
 currenciesDisplayName.GRD=G\u00f6r\u00f6g drachma
+currenciesDisplayName.AFN=afghani
 currenciesDisplayName.IEP=\u00cdr font
-currenciesDisplayName.ARS=Peso
-currenciesDisplayName.SDD=Szud\u00e1ni d\u00edn\u00e1r
-currenciesDisplayName.ARP=Argent\u00edn peso (1983-1985)
+currenciesDisplayName.ARS=Argentin peso
+currenciesDisplayName.SDG=Szud\u00e1ni font
+currenciesDisplayName.ARP=Argentin peso (ARP)
+currenciesDisplayName.SDD=R\u00e9gi szud\u00e1ni d\u00edn\u00e1r
 currenciesDisplayName.GEL=Gr\u00faz lari
-currenciesDisplayName.AFA=Afghani (1927-2002)
 currenciesDisplayName.GEK=Gr\u00faz kupon larit
+currenciesDisplayName.AFA=Afghani (AFA)
 currenciesDisplayName.CRC=Costa Ricai colon
 currenciesDisplayName.FKP=Falkland-szigeteki font
 currenciesDisplayName.EEK=\u00c9szt korona
-currenciesDisplayName.HKD=Hongkongi doll\u00e1r
 currenciesDisplayName.MDL=Moldov\u00e1n lei
-currenciesDisplayName.ARA=Argent\u00edn austral
+currenciesDisplayName.HKD=Hongkongi doll\u00e1r
 currenciesDisplayName.IQD=Iraki d\u00edn\u00e1r
+currenciesDisplayName.ARA=Argentin austral
 currenciesDisplayName.SCR=Seychelle-szigeteki r\u00fapia
 currenciesDisplayName.VUV=Vanuatui vatu
-currenciesDisplayName.DKK=D\u00e1n korona
 currenciesDisplayName.KPW=\u00c9szak-koreai won
-currenciesDisplayName.GQE=Egyenl\u00edt\u0151i-guineai ekwele guineana
+currenciesDisplayName.DKK=D\u00e1n korona
 currenciesDisplayName.IDR=Indon\u00e9z r\u00fapia
-currenciesDisplayName.LVR=Lett rubel
+currenciesDisplayName.GQE=Egyenl\u00edt\u0151i-guineai ekwele
 currenciesDisplayName.SOS=Szom\u00e1li shilling
-currenciesDisplayName.AED=EAE dirham
-currenciesDisplayName.BWP=Botswanai pula
+currenciesDisplayName.LVR=Lett rubel
+currenciesDisplayName.EQE=ekwele
+currenciesDisplayName.AED=UAE dirham
 currenciesDisplayName.LVL=Lett lats
-currenciesDisplayName.RUR=Orosz rubel (1991-1998)
+currenciesDisplayName.BWP=Botswanai pula
+currenciesDisplayName.RUR=Orosz rubel (RUR)
 currenciesDisplayName.NIO=Nikaraguai cordoba oro
-currenciesDisplayName.ADP=Andorrai peseta
+currenciesDisplayName.XTS=Tesztel\u00e9si p\u00e9nznemk\u00f3d
+currenciesDisplayName.MOP=maka\u00f3i pataca
 currenciesDisplayName.FJD=Fidzsi doll\u00e1r
-currenciesDisplayName.MOP=Macaoi pataca
+currenciesDisplayName.ADP=andorrai peseta
 currenciesDisplayName.RUB=Orosz rubel
 currenciesDisplayName.CDF=Kong\u00f3i frank
 currenciesDisplayName.NIC=Nikaraguai cordoba
 currenciesDisplayName.DJF=Dzsibuti frank
-currenciesDisplayName.ECV=Ecuadori Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Salamon-szigeteki doll\u00e1r
 currenciesDisplayName.UZS=\u00dczbegiszt\u00e1ni szum
+currenciesDisplayName.SBD=Salamon-szigeteki doll\u00e1r
+currenciesDisplayName.ECV=Ecuadori Unidad de Valor Constante (UVC)
+currenciesDisplayName.LUL=luxemburgi p\u00e9nz\u00fcgyi frank
 currenciesDisplayName.ECS=Ecuadori sucre
-currenciesDisplayName.PHP=F\u00fcl\u00f6p-szigeteki peso
 currenciesDisplayName.THB=Thai baht
+currenciesDisplayName.PHP=F\u00fcl\u00f6p-szigeteki peso
 currenciesDisplayName.LUF=Luxemburgi frank
+currenciesDisplayName.RHD=Rhod\u00e9ziai doll\u00e1r
+currenciesDisplayName.LUC=luxemburgi konvertibilis frank
 currenciesDisplayName.FIM=Finn markka
 currenciesDisplayName.TTD=Trinidad \u00e9s tobagoi doll\u00e1r
 currenciesDisplayName.SZL=Szv\u00e1zif\u00f6ldi lilangeni
 currenciesDisplayName.MNT=Mong\u00f3liai tugrik
-currenciesDisplayName.SAR=Sza\u00fadi riyal
 currenciesDisplayName.UAK=Ukr\u00e1n karbovanec
+currenciesDisplayName.SAR=Sza\u00fadi riyal
+currenciesDisplayName.COU=Unidad de Valor Real
 currenciesDisplayName.UAH=Ukr\u00e1n hrivnya
 currenciesDisplayName.HUF=Magyar forint
-currenciesDisplayName.COP=Kolumbiai peso
 currenciesDisplayName.QAR=Katari rial
+currenciesDisplayName.COP=Kolumbiai peso
 currenciesDisplayName.LTT=Litv\u00e1niai talonas
 currenciesDisplayName.PTE=Portug\u00e1l escudo
-currenciesDisplayName.AOR=Angolai kwanza reajustado (1995-1999)
-currenciesDisplayName.UYU=Uruguay-i peso uruguayo
+currenciesDisplayName.UYU=Uruguayi peso
+currenciesDisplayName.AOR=Angolai kwanza reajustado (AOR)
 currenciesDisplayName.GBP=Brit font sterling
-currenciesDisplayName.BIF=Burundi frank
-currenciesDisplayName.INR=Indiai r\u00fapia
 currenciesDisplayName.ZRZ=Zairei zaire
-currenciesDisplayName.AON=Angolai \u00faj kwanza (1990-2000)
-currenciesDisplayName.LTL=Litv\u00e1niai litas
+currenciesDisplayName.INR=Indiai r\u00fapia
+currenciesDisplayName.BIF=Burundi frank
 currenciesDisplayName.XFU=Francia UIC-frank
-currenciesDisplayName.KZT=Kazahszt\u00e1ni tenge
+currenciesDisplayName.MZN=Mozambiki metik\u00e1lis
+currenciesDisplayName.LTL=Litv\u00e1niai litas
+currenciesDisplayName.AON=\u00faj kwanza
+currenciesDisplayName.UYP=Uruguayi peso (UYP)
 currenciesDisplayName.MZM=Mozambik metical
-currenciesDisplayName.UYP=Uruguay-i peso (1975-1993)
-currenciesDisplayName.AOK=Angolai kwanza (1977-1990)
-currenciesDisplayName.BUK=Burmai kyat
+currenciesDisplayName.KZT=Kazahszt\u00e1ni tenge
+currenciesDisplayName.AOK=Angolai kwanza (AOK)
 currenciesDisplayName.GNS=Guineai syli
+currenciesDisplayName.BUK=Burmai kyat
 currenciesDisplayName.XFO=Francia arany frank
 currenciesDisplayName.PGK=P\u00e1pua \u00faj-guineai kina
+currenciesDisplayName.UYI=Uruguayi peso en unidades indexadas
 currenciesDisplayName.SYP=Sz\u00edriai font
-currenciesDisplayName.MZE=Mozambik escudo
 currenciesDisplayName.OMR=Om\u00e1ni rial
-currenciesDisplayName.NGN=Nig\u00e9riai naira
+currenciesDisplayName.MZE=Mozambik escudo
 currenciesDisplayName.ZRN=Zairei \u00faj zaire
-currenciesDisplayName.AOA=Angolai kwanza
+currenciesDisplayName.NGN=Nig\u00e9riai naira
 currenciesDisplayName.CNY=K\u00ednai j\u00fcan renminbi
+currenciesDisplayName.AOA=kwanza
 currenciesDisplayName.MAF=Marokk\u00f3i frank
+currenciesDisplayName.RSD=Szerb D\u00edn\u00e1r
 currenciesDisplayName.GNF=Guineai frank
-currenciesDisplayName.HTG=Haiti gourde
 currenciesDisplayName.MAD=Marokk\u00f3i dirham
-currenciesDisplayName.TRY=\u00daj t\u00f6r\u00f6k l\u00edra
+currenciesDisplayName.HTG=Haiti gourde
+currenciesDisplayName.TRY=T\u00f6r\u00f6k l\u00edra
 currenciesDisplayName.MMK=Mianmari kyat
+currenciesDisplayName.XRE=RINET t\u0151ke
 currenciesDisplayName.MYR=Malajziai ringgit
+currenciesDisplayName.LSM=Maloti
+currenciesDisplayName.XEU=Eur\u00f3pai p\u00e9nznemegys\u00e9g
 currenciesDisplayName.LSL=Lesothoi loti
-currenciesDisplayName.XEU=European Currency Unit
-currenciesDisplayName.BHD=Bahreini din\u00e1r
 currenciesDisplayName.SLL=Sierra Leonei leone
+currenciesDisplayName.BHD=bahreini din\u00e1r
 currenciesDisplayName.BTN=Bhut\u00e1ni ngultrum
-currenciesDisplayName.TRL=T\u00f6r\u00f6k l\u00edra
+currenciesDisplayName.TRL=t\u00f6r\u00f6k l\u00edra
 currenciesDisplayName.KMF=Comorei frank
-currenciesDisplayName.ANG=Holland-antilla forint
 currenciesDisplayName.CZK=Cseh korona
-currenciesDisplayName.AZM=Azerbajdzs\u00e1ni manat
+currenciesDisplayName.ANG=Holland Antillai guilder
+currenciesDisplayName.AZN=Azerbajdzs\u00e1ni manat
+currenciesDisplayName.AZM=Azerbajdzs\u00e1ni manat (AZM)
 currenciesDisplayName.KYD=Kajm\u00e1n-szigeteki doll\u00e1r
 currenciesDisplayName.GMD=Gambiai dalasi
+currenciesDisplayName.VEF=Venezuelai bolivar fuerte
 currenciesDisplayName.BGN=Bolg\u00e1r \u00faj leva
-currenciesDisplayName.CAD=Kanadai doll\u00e1r
 currenciesDisplayName.MXV=Mexik\u00f3i Unidad de Inversion (UDI)
+currenciesDisplayName.CAD=Kanadai doll\u00e1r
 currenciesDisplayName.BGL=Bolg\u00e1r kem\u00e9ny leva
 currenciesDisplayName.VEB=Venezuelai bol\u00edvar
 currenciesDisplayName.MLF=Mali frank
-currenciesDisplayName.ILS=Izraeli \u00faj s\u00e9kel
 currenciesDisplayName.MXP=Mexik\u00f3i ez\u00fcst peso (1861-1992)
+currenciesDisplayName.ILS=Izraeli \u00faj s\u00e9kel
 currenciesDisplayName.PES=Perui sol
-currenciesDisplayName.GYD=Guyanai doll\u00e1r
 currenciesDisplayName.MXN=Mexik\u00f3i peso
+currenciesDisplayName.GYD=Guyanai doll\u00e1r
 currenciesDisplayName.ILP=Izraeli font
-currenciesDisplayName.SKK=Szlov\u00e1k korona
 currenciesDisplayName.CYP=Ciprusi font
+currenciesDisplayName.SKK=Szlov\u00e1k korona
 currenciesDisplayName.XDR=Special Drawing Rights
 currenciesDisplayName.PEN=Perui sol nuevo
 currenciesDisplayName.LRD=Lib\u00e9riai doll\u00e1r
 currenciesDisplayName.PEI=Perui inti
-currenciesDisplayName.AMD=Dram
-currenciesDisplayName.BSD=Bahamai doll\u00e1r
+currenciesDisplayName.AMD=\u00d6rm\u00e9ny dram
+currenciesDisplayName.BSD=bahamai doll\u00e1r
+currenciesDisplayName.XPT=Platina
 currenciesDisplayName.HRK=Horv\u00e1t kuna
 currenciesDisplayName.CLP=Chilei peso
 currenciesDisplayName.HRD=Horv\u00e1t d\u00edn\u00e1r
 currenciesDisplayName.XPF=CFP frank
 currenciesDisplayName.FRF=Francia frank
+currenciesDisplayName.XPD=Pall\u00e1dium
 currenciesDisplayName.BRR=Brazil cruzeiro
 currenciesDisplayName.MKD=Macedon d\u00edn\u00e1r
 currenciesDisplayName.CLF=Chilei unidades de fomento
-currenciesDisplayName.ALL=Alb\u00e1n lek
+currenciesDisplayName.ALL=lek
 currenciesDisplayName.BRN=Brazil cruzado novo
 currenciesDisplayName.MWK=Malawi kwacha
 currenciesDisplayName.BRL=Brazil real
@@ -165,19 +190,21 @@ currenciesDisplayName.SIT=Szlov\u00e9n tolar
 currenciesDisplayName.JPY=Jap\u00e1n jen
 currenciesDisplayName.XOF=CFA frank BCEAO
 currenciesDisplayName.MVR=Mald\u00edv-szigeteki rufiyaa
-currenciesDisplayName.GWE=Portug\u00e1l guinea escudo
 currenciesDisplayName.BEF=Belga frank
+currenciesDisplayName.GWE=Portug\u00e1l guinea escudo
+currenciesDisplayName.TOP=Tongai paanga
 currenciesDisplayName.YUD=Jugoszl\u00e1v kem\u00e9ny d\u00edn\u00e1r
 currenciesDisplayName.BEC=Belga frank (konvertibilis)
 currenciesDisplayName.SUR=Szovjet rubel
-currenciesDisplayName.ROL=Rom\u00e1n lej
+currenciesDisplayName.RON=Rom\u00e1n lej
+currenciesDisplayName.ROL=R\u00e9gi rom\u00e1n lej
+currenciesDisplayName.BDT=taka
 currenciesDisplayName.DDM=Kelet-N\u00e9met m\u00e1rka
-currenciesDisplayName.BDT=Bangladesi taka
-currenciesDisplayName.XBD=European Unit of Account (XBD)
+currenciesDisplayName.XBD=Eur\u00f3pai kont\u00f3 egys\u00e9g (XBD)
 currenciesDisplayName.AWG=Arubai forint
-currenciesDisplayName.XBC=European Unit of Account (XBC)
-currenciesDisplayName.XBB=European Monetary Unit
-currenciesDisplayName.XBA=European Composite Unit
+currenciesDisplayName.XBC=Eur\u00f3pai kont\u00f3 egys\u00e9g (XBC)
+currenciesDisplayName.XBB=Eur\u00f3pai monet\u00e1ris egys\u00e9g
+currenciesDisplayName.XBA=Eur\u00f3pai kompozit egys\u00e9g
 currenciesDisplayName.NOK=Norv\u00e9g korona
 currenciesDisplayName.MUR=Mauritiusi r\u00fapia
 currenciesDisplayName.ZAR=D\u00e9l-afrikai rand
@@ -190,56 +217,62 @@ currenciesDisplayName.GIP=Gibralt\u00e1ri font
 currenciesDisplayName.TND=Tun\u00e9ziai d\u00edn\u00e1r
 currenciesDisplayName.CVE=Cape Verdei escudo
 currenciesDisplayName.UGX=Ugandai shilling
+currenciesDisplayName.XAG=Ez\u00fcst
 currenciesDisplayName.ZMK=Zambiai kwacha
 currenciesDisplayName.JOD=Jord\u00e1niai d\u00edn\u00e1r
 currenciesDisplayName.XAF=CFA frank BEAC
 currenciesDisplayName.LBP=Libanoni font
-currenciesDisplayName.UGS=Ugandai shilling (1966-1987)
+currenciesDisplayName.UGS=Ugandai shilling (UGS)
 currenciesDisplayName.STD=Sao tome-i \u00e9s principe-i dobra
 currenciesDisplayName.WST=Nyugat-szamoai tala
 currenciesDisplayName.KHR=Kambodzsai riel
-currenciesDisplayName.EUR=Euro
 currenciesDisplayName.DOP=Dominikai peso
+currenciesDisplayName.EUR=Euro
 currenciesDisplayName.BOV=Bol\u00edviai mvdol
 currenciesDisplayName.MTP=M\u00e1ltai font
 currenciesDisplayName.USS=USA doll\u00e1r (aznapi)
 currenciesDisplayName.BOP=Bol\u00edviai peso
-currenciesDisplayName.MTL=M\u00e1ltai l\u00edra
 currenciesDisplayName.CUP=Kubai peso
+currenciesDisplayName.MTL=M\u00e1ltai l\u00edra
 currenciesDisplayName.TMM=T\u00fcrkmeniszt\u00e1ni manat
 currenciesDisplayName.USN=USA doll\u00e1r (k\u00f6vetkez\u0151 napi)
+currenciesDisplayName.GHS=Gh\u00e1nai cedi
 currenciesDisplayName.SGD=Szingap\u00fari doll\u00e1r
 currenciesDisplayName.NZD=\u00daj-z\u00e9landi doll\u00e1r
 currenciesDisplayName.USD=USA doll\u00e1r
-currenciesDisplayName.HNL=Hodurasi lempira
 currenciesDisplayName.BOB=Boliviano
+currenciesDisplayName.HNL=Hodurasi lempira
+currenciesDisplayName.CHW=WIR frank
 currenciesDisplayName.ITL=Olasz l\u00edra
 currenciesDisplayName.PAB=Panamai balboa
 currenciesDisplayName.GTQ=Guatemalai quetzal
+currenciesDisplayName.XXX=Ismeretlen/\u00e9rv\u00e9nytelen p\u00e9nznem
+currenciesDisplayName.AUD=ausztr\u00e1l doll\u00e1r
+currenciesDisplayName.GHC=Gh\u00e1nai cedi (1979-2007)
 currenciesDisplayName.LAK=Laoszi kip
-currenciesDisplayName.GHC=Gh\u00e1nai cedi
-currenciesDisplayName.AUD=Ausztr\u00e1l doll\u00e1r
 currenciesDisplayName.NAD=Nam\u00edbiai doll\u00e1r
 currenciesDisplayName.KGS=Kirgiziszt\u00e1ni szom
 currenciesDisplayName.MGF=Madagaszk\u00e1ri frank
+currenciesDisplayName.BBD=barbadosi doll\u00e1r
 currenciesDisplayName.CHF=Sv\u00e1jci frank
-currenciesDisplayName.BBD=Barbadosi doll\u00e1r
+currenciesDisplayName.CHE=WIR euro
 currenciesDisplayName.MGA=Madagaszk\u00e1ri ariary
 currenciesDisplayName.PYG=Paraguayi guarani
 currenciesDisplayName.PLZ=Lengyel zloty (1950-1995)
 currenciesDisplayName.YER=Jemeni rial
-currenciesDisplayName.ATS=Osztr\u00e1k schilling
+currenciesDisplayName.ATS=osztr\u00e1k schilling
 currenciesDisplayName.ETB=Eti\u00f3piai birr
 currenciesDisplayName.BND=Brunei doll\u00e1r
-currenciesDisplayName.JMD=Jamaikai doll\u00e1r
 currenciesDisplayName.EGP=Egyiptomi font
+currenciesDisplayName.JMD=Jamaikai doll\u00e1r
 currenciesDisplayName.PLN=Lengyel zloty
-currenciesDisplayName.DZD=Alg\u00e9riai d\u00edn\u00e1r
+currenciesDisplayName.DZD=alg\u00e9riai din\u00e1r
 currenciesDisplayName.ISK=Izlandi korona
 currenciesDisplayName.SRG=Suriname-i gulden
 currenciesDisplayName.LYD=L\u00edbiai d\u00edn\u00e1r
+currenciesDisplayName.SRD=Surinamei doll\u00e1r
+currenciesDisplayName.BAM=Bosznia-hercegovinai konvertibilis m\u00e1rka
 currenciesDisplayName.BZD=Belizei doll\u00e1r
-currenciesDisplayName.BAM=Bozsnia-hercegovinai konvertibilis m\u00e1rka
 currenciesDisplayName.ESP=Spanyol peseta
 currenciesDisplayName.KRW=D\u00e9l-koreai won
 currenciesDisplayName.NLG=Holland forint
@@ -249,34 +282,39 @@ currenciesDisplayName.ZWD=Zimbabwei doll\u00e1r
 currenciesDisplayName.SEK=Sv\u00e9d korona
 currenciesDisplayName.CSK=Csehszlov\u00e1k kem\u00e9ny korona
 currenciesDisplayName.BYR=Feh\u00e9rorosz rubel
+currenciesDisplayName.ESB=spanyol peseta (konvertibilis kont\u00f3)
 currenciesDisplayName.IRR=Ir\u00e1ni rial
+currenciesDisplayName.ESA=spanyol peseta (A-kont\u00f3)
 currenciesDisplayName.PKR=Pakiszt\u00e1ni r\u00fapia
 currenciesDisplayName.BMD=Bermudai doll\u00e1r
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=szerb din\u00e1r
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
+currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.BRL=BRL
+currenciesSymbol.JPY=JPY
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
@@ -287,6 +325,7 @@ currenciesSymbol.NOK=NKr
 currenciesSymbol.UGX=U Sh
 currenciesSymbol.BEF=BF
 currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
 currenciesSymbol.SZL=E
 currenciesSymbol.STD=Db
 currenciesSymbol.SAR=SRl
@@ -298,11 +337,12 @@ currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
 currenciesSymbol.DJF=DF
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=USD
 currenciesSymbol.SGD=S$
 currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
 currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
 currenciesSymbol.CVE=CVEsc
@@ -310,10 +350,15 @@ currenciesSymbol.HUF=Ft
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
+currenciesSymbol.EUR=EUR
+currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=GBP
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
+currenciesSymbol.GHS=GH\u00a2
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=LIT
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -321,9 +366,10 @@ currenciesSymbol.MYR=RM
 currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
 currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.BOB=Bs
 currenciesSymbol.CNY=Y
@@ -338,25 +384,25 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
 currenciesSymbol.BZD=BZ$
 currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=jan.®febr.®m\u00e1rc.®\u00e1pr.®m\u00e1j.®j\u00fan.®j\u00fal.®aug.®szept.®okt.®nov.®dec.®®
-months=janu\u00e1r®febru\u00e1r®m\u00e1rcius®\u00e1prilis®m\u00e1jus®j\u00fanius®j\u00falius®augusztus®szeptember®okt\u00f3ber®november®december®®
-shortWeekdays=®V®H®K®Sze®Cs®P®Szo®
-weekdays=®vas\u00e1rnap®h\u00e9tf\u0151®kedd®szerda®cs\u00fct\u00f6rt\u00f6k®p\u00e9ntek®szombat®
-firstDayOfWeek=mon
-eras=i. e.®i. sz.®
-ampms=DE®DU®
+shortMonths=jan.\u00aefebr.\u00aem\u00e1rc.\u00ae\u00e1pr.\u00aem\u00e1j.\u00aej\u00fan.\u00aej\u00fal.\u00aeaug.\u00aeszept.\u00aeokt.\u00aenov.\u00aedec.\u00ae\u00ae
+months=janu\u00e1r\u00aefebru\u00e1r\u00aem\u00e1rcius\u00ae\u00e1prilis\u00aem\u00e1jus\u00aej\u00fanius\u00aej\u00falius\u00aeaugusztus\u00aeszeptember\u00aeokt\u00f3ber\u00aenovember\u00aedecember\u00ae\u00ae
+shortWeekdays=\u00aeV\u00aeH\u00aeK\u00aeSze\u00aeCs\u00aeP\u00aeSzo\u00ae
+weekdays=\u00aevas\u00e1rnap\u00aeh\u00e9tf\u0151\u00aekedd\u00aeszerda\u00aecs\u00fct\u00f6rt\u00f6k\u00aep\u00e9ntek\u00aeszombat\u00ae
+eras=i. e.\u00aei. sz.\u00ae
+ampms=de.\u00aedu.\u00ae
 shortDateFormat=yyyy.MM.dd.
 mediumDateFormat=yyyy.MM.dd.
 longDateFormat=yyyy. MMMM d.
@@ -365,7 +411,7 @@ shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
 longTimeFormat=H:mm:ss z
 fullTimeFormat=H:mm:ss z
-zoneStrings=Europe/Paris®k\u00f6z\u00e9p-eur\u00f3pai id\u0151®k\u00f6z\u00e9p-eur\u00f3pai ny\u00e1ri id\u0151®©
+zoneStrings=Europe_Central\u00aek\u00f6z\u00e9p-eur\u00f3pai id\u0151\u00ae\u00aeK\u00f6z\u00e9p-eur\u00f3pai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Africa_Western\u00aenyugat-afrikai id\u0151\u00ae\u00aenyugat-afrikai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Urumqi\u00aeUrumqi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Kamchatka\u00aePetropavlovszk-kamcsatkai id\u0151\u00ae\u00aePetropavlovszk-kamcsatkai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Uralsk\u00aeUr\u00e1li id\u0151\u00ae\u00aeUr\u00e1li ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Novosibirsk\u00aeNovoszibirzski id\u0151\u00ae\u00aeNovoszibirszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Irkutsk\u00aeIrkutszki id\u0151\u00ae\u00aeIrkutszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Borneo\u00aeborne\u00f3i id\u0151\u00ae\u00aeborne\u00f3i ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Papua_New_Guinea\u00aeP\u00e1pua \u00faj-guineai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Eastern\u00aeAusztr\u00e1l keleti z\u00f3naid\u0151\u00ae\u00aeAusztr\u00e1l keleti ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Aqtau\u00aeaqtaui id\u0151\u00ae\u00aeaqtaui ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeNyugat-kazahszt\u00e1ni z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00aeSzverdlovszki id\u0151\u00ae\u00aeSzverdlovszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Bangladesh\u00aebangladesi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Maldives\u00aeMald\u00edv-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aePonapei id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeSzamarkandi id\u0151\u00aeSAMT (Szamarkand)\u00aeSzamarkandi ny\u00e1ri id\u0151\u00aeSAMST (Szamarkand)\u00ae\u00a9Indian_Ocean\u00aeIndiai-\u00f3ce\u00e1ni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeFidzsi id\u0151\u00ae\u00aeFidzsi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Singapore\u00aeSzingap\u00fari z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00aeamaz\u00f3niai id\u0151\u00ae\u00aeamaz\u00f3niai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Arabian\u00aearab z\u00f3naid\u0151\u00aeAST (arab)\u00aearab ny\u00e1ri id\u0151\u00aeADT (arab)\u00ae\u00a9Phoenix_Islands\u00aePhoenix-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Yekaterinburg\u00aeJekatyerinburgi id\u0151\u00ae\u00aeJekatyerinburgi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Krasnoyarsk\u00aeKrasznojarszki id\u0151\u00ae\u00aeKrasznojarszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Alaska\u00aealaszkai z\u00f3naid\u0151\u00ae\u00aealaszkai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Qyzylorda\u00aeQyzylordai id\u0151\u00ae\u00aeQyzylordai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Gulf\u00ae\u00d6b\u00f6lbeli z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Dutch_Guiana\u00aeholland-guianai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Omsk\u00aeOmszki id\u0151\u00ae\u00aeOmszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Easter\u00aeH\u00fasv\u00e9t-szigeteki id\u0151\u00ae\u00aeH\u00fasv\u00e9t-szigeteki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Hong_Kong\u00aeHongkongi id\u0151\u00ae\u00aeHongkongi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Indonesia_Western\u00aeNyugat-indon\u00e9ziai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeKelet-indon\u00e9ziai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00aeVlagyivosztoki id\u0151\u00ae\u00aeVlagyivosztoki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Aqtobe\u00aeaqtobei id\u0151\u00ae\u00aeaqtobei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Chamorro\u00aeChamorroi z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Kizilorda\u00aeKizilordai id\u0151\u00ae\u00aeKizilordai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Armenia\u00ae\u00f6rm\u00e9ny id\u0151\u00aeAMT (\u00d6rm\u00e9nyorsz\u00e1g)\u00ae\u00f6rm\u00e9ny ny\u00e1ri id\u0151\u00aeAMST (\u00d6rm\u00e9nyorsz\u00e1g)\u00ae\u00a9America_Pacific\u00aecsendes-\u00f3ce\u00e1ni z\u00f3naid\u0151\u00ae\u00aecsendes-\u00f3ce\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Anadyr\u00aeanadiri id\u0151\u00ae\u00aeanadiri ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Tajikistan\u00aeTadzsikiszt\u00e1ni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aefrancia-guianai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHawaii-aleuti z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Nepal\u00aeNep\u00e1li id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeBrunei darussalami id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00aedusanbei id\u0151\u00ae\u00aedusanbei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Kosrae\u00aeKosraei id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeJerev\u00e1ni id\u0151\u00ae\u00aeJerev\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Tokelau\u00aeTokelaui id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeparaguayi id\u0151\u00ae\u00aeparaguayi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Seychelles\u00aeSeychelle-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeIzraeli z\u00f3naid\u0151\u00aeIST (Izrael)\u00aeIzraeli ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Cocos\u00aeK\u00f3kusz-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Norfolk\u00aeNorfolk-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aevolgogr\u00e1di id\u0151\u00ae\u00aevolgogr\u00e1di ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Greenland_Western\u00aenyugat-gr\u00f6nlandi id\u0151\u00ae\u00aenyugat-gr\u00f6nlandi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9New_Caledonia\u00ae\u00daj-kaled\u00f3niai id\u0151\u00ae\u00ae\u00daj-kaled\u00f3niai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Europe_Eastern\u00aeKelet-eur\u00f3pai id\u0151\u00ae\u00aeKelet-eur\u00f3pai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9North_Mariana\u00ae\u00c9szak-mariana-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00ae\u00faj-fundlandi z\u00f3naid\u0151\u00ae\u00ae\u00faj-fundlandi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Australia_Western\u00aeAusztr\u00e1l nyugati z\u00f3naid\u0151\u00ae\u00aeAusztr\u00e1l nyugati ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Moscow\u00aemoszkvai z\u00f3naid\u0151\u00ae\u00aemoszkvai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Kyrgystan\u00aeKirgiz id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00aevenezuelai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeMalayai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Peru\u00aeperui id\u0151\u00ae\u00aeperui ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Christmas\u00aeKar\u00e1csony-szigeti id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9South_Georgia\u00aeD\u00e9l-gr\u00faziai id\u0151\u00aeGST (S. Georgia)\u00ae\u00ae\u00ae\u00a9Korea\u00aeKoreai z\u00f3naid\u0151\u00ae\u00aeKoreai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Argentina_Western\u00aenyugat-argent\u00ednai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00aekelet-afrikai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00aeT\u00fcrkmeniszt\u00e1ni id\u0151\u00ae\u00aeT\u00fcrkmeniszt\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre \u00e9s miqueloni z\u00f3naid\u0151\u00ae\u00aePierre \u00e9s miqueloni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Atlantic\u00aeAtlanti z\u00f3naid\u0151\u00ae\u00aeAtlanti ny\u00e1ri id\u0151sz\u00e1m\u00edt\u00e1s\u00ae\u00ae\u00a9Alaska_Hawaii\u00aealaszkai-hawaii z\u00f3naid\u0151\u00ae\u00aeAlaszka-Hawaii ny\u00e1ri id\u0151sz\u00e1m\u00edt\u00e1s\u00ae\u00ae\u00a9Uzbekistan\u00ae\u00dczbegiszt\u00e1ni id\u0151\u00ae\u00ae\u00dczbegiszt\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Lord_Howe\u00aeLord howei z\u00f3naid\u0151\u00ae\u00aeLord howei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Hovd\u00aeHovdi id\u0151\u00ae\u00aeHovdi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Cape_Verde\u00aeCape verdei id\u0151\u00ae\u00aeCape verdei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Tbilisi\u00aeTbiliszi id\u0151\u00ae\u00aeTbiliszi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Malaysia\u00aeMalajziai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aekeleti z\u00f3naid\u0151\u00ae\u00aekeleti ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Baku\u00aebakui id\u0151\u00ae\u00aebakui ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Reunion\u00aeR\u00e9unioni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Davis\u00aedavisi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeChathami z\u00f3naid\u0151\u00ae\u00aeChathami ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Noronha\u00aeFernando de noronhai id\u0151\u00ae\u00aeFernando de noronhai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Syowa\u00aesyowai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeafganiszt\u00e1ni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Palau\u00aePalaui id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Samoa\u00aeSzamoai z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeFrancia d\u00e9li \u00e9s antarktikus id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00aeSalamon-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Line_Islands\u00aeLine-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeecuadori id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00aeacrei id\u0151\u00ae\u00aeacrei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Dacca\u00aedaccai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aecsojbalszani id\u0151\u00ae\u00aecsojbalszani ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Europe_Western\u00aeNyugat-eur\u00f3pai id\u0151\u00ae\u00aeNyugat-eur\u00f3pai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Africa_Central\u00aek\u00f6z\u00e9p-afrikai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aet\u00f6r\u00f6korsz\u00e1gi id\u0151\u00ae\u00aet\u00f6r\u00f6korsz\u00e1gi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Africa_Southern\u00aed\u00e9l-afrikai z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00aeashabadi id\u0151\u00ae\u00aeashabadi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Bering\u00aeberingi z\u00f3naid\u0151\u00aeBST (Bering)\u00aeBeringi ny\u00e1ri id\u0151sz\u00e1m\u00edt\u00e1s\u00aeBDT (Bering)\u00ae\u00a9Guam\u00aeGuami z\u00f3naid\u0151\u00aeGST (Guam)\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00aeMarshall-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aebut\u00e1ni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Changbai\u00aechangbai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00aeSakhalin id\u0151\u00ae\u00aeSakhalin ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Karachi\u00aeKaracsi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Truk\u00aeTruki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00aeTaskenti id\u0151\u00ae\u00aeTaskenti ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Nauru\u00aeNaurui id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Tuvalu\u00aeTuvalui id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Gilbert_Islands\u00aeGilbert-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeF\u00fcl\u00f6p-szigeteki id\u0151\u00ae\u00aeF\u00fcl\u00f6p-szigeteki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9East_Timor\u00aeKelet-timori id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00aeJakutszki id\u0151\u00ae\u00aeJakutszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Pitcairn\u00aePitcairni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00aeIr\u00e1ni z\u00f3naid\u0151\u00ae\u00aeIr\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Argentina\u00aeArgent\u00ednai id\u0151\u00ae\u00aeArgent\u00edn ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Tonga\u00aeTongai id\u0151\u00ae\u00aeTongai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Yukon\u00aeyukoni z\u00f3naid\u0151\u00ae\u00aeyukoni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9New_Zealand\u00ae\u00daj-z\u00e9landi z\u00f3naid\u0151\u00ae\u00ae\u00daj-z\u00e9landi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Magadan\u00aeMagad\u00e1ni id\u0151\u00ae\u00aeMagad\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Gambier\u00aeGambieri id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9China\u00aek\u00ednai z\u00f3naid\u0151\u00aeCST (K\u00edna)\u00aek\u00ednai ny\u00e1ri id\u0151\u00aeCDT (K\u00edna)\u00ae\u00a9Indonesia_Central\u00aeK\u00f6z\u00e9p-indon\u00e9ziai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aehegyvid\u00e9ki z\u00f3naid\u0151\u00ae\u00aehegyvid\u00e9ki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9India\u00aeIndiai z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00aeszurin\u00e1mi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeGreenwichi k\u00f6z\u00e9pid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00aeszamarai id\u0151\u00ae\u00aeszamarai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Marquesas\u00aeMarquesasi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Mawson\u00aemawsoni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00aeFalkland-szigeteki id\u0151\u00ae\u00aeFalkland-szigeteki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Wake\u00aeWake-szigeti id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Uruguay\u00aeuruguayi id\u0151\u00ae\u00aeuruguayi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Chile\u00aechilei id\u0151\u00ae\u00aechilei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Vanuatu\u00aeVanuatui id\u0151\u00ae\u00aeVanuatui ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeAusztr\u00e1l k\u00f6z\u00e9ps\u0151 nyugati z\u00f3naid\u0151\u00ae\u00aeAusztr\u00e1l k\u00f6z\u00e9ps\u0151 nyugati ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Brasilia\u00aebraz\u00edliai id\u0151\u00ae\u00aebraz\u00edliai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Tahiti\u00aeTahiti id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeKelet-kazahszt\u00e1ni z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9DumontDUrville\u00aeDumont-d'urvillei id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aerotherai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00aek\u00f6z\u00e9ps\u0151 \u00e1llamokbeli z\u00f3naid\u0151\u00ae\u00aek\u00f6z\u00e9ps\u0151 \u00e1llamokbeli ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Mongolia\u00aeUl\u00e1nb\u00e1tori id\u0151\u00ae\u00aeUl\u00e1nb\u00e1tori ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Frunze\u00aeFrunzei id\u0151\u00ae\u00aeFrunzei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Lanka\u00aeLankai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00aekujbisevi id\u0151\u00ae\u00aekujbisevi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Greenland_Eastern\u00aekelet-gr\u00f6nlandi id\u0151\u00ae\u00aekelet-gr\u00f6nlandi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Azores\u00aeAzori id\u0151\u00ae\u00aeAzori ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Greenland_Central\u00aek\u00f6z\u00e9p-gr\u00f6nlandi id\u0151\u00ae\u00aek\u00f6z\u00e9p-gr\u00f6nlandi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Japan\u00aeJap\u00e1n z\u00f3naid\u0151\u00ae\u00aeJap\u00e1n ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Kwajalein\u00aeKwajaleini id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeSevcsenk\u00f3i id\u0151\u00ae\u00aeSevcsenk\u00f3i ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Pakistan\u00aePakiszt\u00e1ni id\u0151\u00ae\u00aePakiszt\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Bolivia\u00aebol\u00edviai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeCook-szigeteki id\u0151\u00ae\u00aeCook-szigeteki f\u00e9l ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Kashgar\u00aeKasg\u00e1r id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00aeAusztr\u00e1l k\u00f6z\u00e9ps\u0151 z\u00f3naid\u0151\u00ae\u00aeAusztr\u00e1l k\u00f6z\u00e9ps\u0151 ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Vostok\u00aevosztoki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Guyana\u00aeguyanai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeGr\u00faz id\u0151\u00ae\u00aeGr\u00faz ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Colombia\u00aekolumbiai id\u0151\u00ae\u00aekolumbiai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Galapagos\u00aeGalapagosi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aekubai z\u00f3naid\u0151\u00aeCST (Kuba)\u00aekubai ny\u00e1ri id\u0151\u00aeCDT (Kuba)\u00ae\u00a9Myanmar\u00aeMyanmari id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Niue\u00aeNiuei id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Mauritius\u00aeMauritiusi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeWallis \u00e9s futunai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00aeMacaui id\u0151\u00ae\u00aeMacaui ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Aktyubinsk\u00aeaktyubinszki id\u0151\u00ae\u00aeaktyubinszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9
 territories.TL=Kelet-Timor
 territories.TK=Tokelau
 territories.TJ=Tadzsikiszt\u00e1n
@@ -374,26 +420,27 @@ territories.TG=Togo
 territories.TF=Francia D\u00e9li Ter\u00fcletek
 territories.GY=Guyana
 territories.TD=Cs\u00e1d
-territories.TC=T\u00f6r\u00f6k \u00e9s Caicos Szigetek
+territories.TC=Turks- \u00e9s Caicos-szigetek
 territories.GW=Guinea-Bissau
 territories.GU=Guam
 territories.GT=Guatemala
-territories.GS=D\u00e9l-Georgia \u00e9s D\u00e9l-Sandwich Szigetek
+territories.GS=D\u00e9l Gr\u00fazia \u00e9s a D\u00e9li Szendvics-szigetek
 territories.GR=G\u00f6r\u00f6gorsz\u00e1g
-territories.GQ=Egyenl\u00edt\u010fi Guinea
+territories.GQ=Egyenl\u00edt\u0151i-Guinea
 territories.GP=Guadeloupe
 territories.SZ=Szv\u00e1zif\u00f6ld
-territories.SY=Sz\u00edriai Arab K\u00f6zt\u00e1rsas\u00e1g
+territories.SY=Sz\u00edria
 territories.GN=Guinea
 territories.GM=Gambia
 territories.GL=Gr\u00f6nland
-territories.SV=El Salvador
+territories.SV=Salvador
 territories.062=D\u00e9lk\u00f6z\u00e9p-\u00c1zsia
-territories.ST=Saint Tome \u00e9s Principe
-territories.061=Polin\u00e9zia
+territories.ST=Sao Tome \u00e9s Principe
 territories.GI=Gibralt\u00e1r
-territories.GH=Ghana
+territories.061=Polin\u00e9zia
+territories.GH=Gh\u00e1na
 territories.SR=Suriname
+territories.GG=Guernsey
 territories.GF=Francia Guyana
 territories.GE=Gr\u00fazia
 territories.SO=Szom\u00e1lia
@@ -406,34 +453,35 @@ territories.GA=Gabon
 territories.SK=Szlov\u00e1kia
 territories.SJ=Svalbard \u00e9s Jan Mayen
 territories.SI=Szlov\u00e9nia
-territories.SH=Saint Helena
+territories.SH=Szent Helena
 territories.SG=Szingap\u00far
 territories.SE=Sv\u00e9dorsz\u00e1g
 territories.SD=Szud\u00e1n
-territories.SC=Seychelles
+territories.SC=Seychelle-szigetek
 territories.SB=Salamon-szigetek
-territories.SA=Szaud-Ar\u00e1bia
+territories.SA=Sza\u00fad-Ar\u00e1bia
 territories.FR=Franciaorsz\u00e1g
-territories.057=Mikron\u00e9zia
 territories.FO=Fer\u00f6er-szigetek
-territories.FM=Mikron\u00e9zia, Sz\u00f6vets\u00e9gi \u00c1llamok
+territories.057=Mikron\u00e9ziai r\u00e9gi\u00f3
+territories.FM=Mikron\u00e9zia
 territories.RW=Ruanda
 territories.054=Melan\u00e9zia
-territories.053=Ausztr\u00e1lia \u00e9s \u00daj-Z\u00e9land
 territories.FK=Falkland-szigetek
-territories.RU=Orosz K\u00f6zt\u00e1rsas\u00e1g
+territories.053=Ausztr\u00e1lia \u00e9s \u00daj-Z\u00e9land
+territories.RU=Oroszorsz\u00e1g
 territories.FJ=Fidzsi
 territories.FI=Finnorsz\u00e1g
+territories.RS=Szerbia
 territories.RO=Rom\u00e1nia
-territories.RE=Reunion (francia)
+territories.RE=Reunion
 territories.ET=Eti\u00f3pia
 territories.ES=Spanyolorsz\u00e1g
 territories.ER=Eritrea
-territories.833=Man-sziget
-territories.EH=Nyugat Szahara
+territories.QU=Eur\u00f3pai Uni\u00f3
+territories.EH=Nyugat-Szahara
 territories.EG=Egyiptom
-territories.830=Csatorna-szigetek
 territories.EE=\u00c9sztorsz\u00e1g
+territories.830=Csatorna-szigetek
 territories.QO=K\u00fcls\u0151-\u00d3ce\u00e1nia
 territories.EC=Ecuador
 territories.DZ=Alg\u00e9ria
@@ -441,13 +489,14 @@ territories.QA=Katar
 territories.039=D\u00e9l-Eur\u00f3pa
 territories.DO=Dominikai K\u00f6zt\u00e1rsas\u00e1g
 territories.PY=Paraguay
-territories.035=D\u00e9lkelet-\u00c1zsia
 territories.DM=Dominika
+territories.035=D\u00e9lkelet-\u00c1zsia
 territories.PW=Palau
+territories.034=D\u00e9l-\u00c1zsia
 territories.DK=D\u00e1nia
 territories.DJ=Dzsibuti
 territories.PT=Portug\u00e1lia
-territories.PS=Paleszt\u00edn Ter\u00fclet
+territories.PS=Palesztin Ter\u00fclet
 territories.030=Kelet-\u00c1zsia
 territories.PR=Puerto Rico
 territories.DE=N\u00e9metorsz\u00e1g
@@ -457,32 +506,33 @@ territories.PL=Lengyelorsz\u00e1g
 territories.PK=Pakiszt\u00e1n
 territories.PH=F\u00fcl\u00f6p-szigetek
 territories.PG=P\u00e1pua \u00daj-Guinea
-territories.PF=Polin\u00e9zia (francia)
-territories.CZ=Cseh K\u00f6zt\u00e1rsas\u00e1g
+territories.PF=Francia Polin\u00e9zia
+territories.CZ=Csehorsz\u00e1g
 territories.PE=Peru
 territories.CY=Ciprus
 territories.CX=Kar\u00e1csony-szigetek
 territories.CV=Z\u00f6ld-foki K\u00f6zt\u00e1rsas\u00e1g
 territories.PA=Panama
 territories.CU=Kuba
-territories.CS=Serbia \u00e9s Montenegro
+territories.CS=Szerbia \u00e9s Montenegr\u00f3
 territories.CR=Costa Rica
-territories.029=Karib-tenger
+territories.029=Karib-t\u00e9rs\u00e9g
 territories.CO=Kolumbia
 territories.CN=K\u00edna
 territories.CM=Kamerun
 territories.CL=Chile
 territories.CK=Cook-szigetek
+territories.021=Amerika \u00e9szaki r\u00e9sze
 territories.CI=Elef\u00e1ntcsontpart
-territories.021=\u00c9szak-Amerika
 territories.CH=Sv\u00e1jc
 territories.CG=Kong\u00f3
 territories.CF=K\u00f6z\u00e9p-afrikai K\u00f6zt\u00e1rsas\u00e1g
-territories.CD=Kong\u00f3, Demokratikus k\u00f6zt\u00e1rsas\u00e1g
-territories.CC=K\u00f3kusz (Keeling)-szigetek
+territories.CD=Kong\u00f3 - Kinshasa
+territories.CC=K\u00f3kusz szigetek
 territories.OM=Om\u00e1n
 territories.CA=Kanada
-territories.BZ=Beliz
+territories.419=Latin-Amerika \u00e9s a Karib-t\u00e9rs\u00e9g
+territories.BZ=Belize
 territories.BY=Feh\u00e9roroszorsz\u00e1g
 territories.BW=Botswana
 territories.BV=Bouvet-sziget
@@ -490,25 +540,28 @@ territories.BT=Bhut\u00e1n
 territories.BS=Baham\u00e1k
 territories.BR=Braz\u00edlia
 territories.019=Amerika
-territories.018=D\u00e9l-Afrika
+territories.018=Afrika d\u00e9li r\u00e9sze
 territories.NZ=\u00daj-Z\u00e9land
-territories.BO=Bol\u00edvia
 territories.017=K\u00f6z\u00e9p-Afrika
-territories.BN=Brunei Darussalam
-territories.BM=Bermuda
+territories.BO=Bol\u00edvia
+territories.BN=Brunei
 territories.015=\u00c9szak-Afrika
+territories.BM=Bermuda
 territories.014=Kelet-Afrika
+territories.BL=Saint Barth\u00e9lemy
 territories.013=K\u00f6z\u00e9p-Amerika
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Nyugat-Afrika
-territories.BH=Bahrain
+territories.BI=Burundi
+territories.172=F\u00fcggetlen \u00c1llamok K\u00f6z\u00f6ss\u00e9ge
+territories.BH=Bahrein
 territories.NR=Nauru
 territories.BG=Bulg\u00e1ria
 territories.BF=Burkina Faso
 territories.NP=Nep\u00e1l
 territories.BE=Belgium
+territories.ZZ=Ismeretlen vagy \u00e9rv\u00e9nytelen k\u00f6rzet
 territories.NO=Norv\u00e9gia
 territories.BD=Banglades
 territories.BB=Barbados
@@ -521,7 +574,7 @@ territories.NF=Norfolk-sziget
 territories.AZ=Azerbajdzs\u00e1n
 territories.NE=Niger
 territories.AX=Aland-szigetek
-territories.NC=\u00daj Kaled\u00f3nia (francia)
+territories.NC=\u00daj-Kaled\u00f3nia
 territories.AW=Aruba
 territories.ZM=Zambia
 territories.NA=Nam\u00edbia
@@ -529,45 +582,48 @@ territories.AU=Ausztr\u00e1lia
 territories.AT=Ausztria
 territories.AS=Amerikai Szamoa
 territories.AR=Argent\u00edna
-territories.009=\u00d3ce\u00e1nia
 territories.AQ=Antarktisz
+territories.009=\u00d3ce\u00e1nia
 territories.MZ=Mozambik
 territories.AO=Angola
 territories.MY=Malajzia
 territories.AN=Holland Antill\u00e1k
 territories.MX=Mexik\u00f3
-territories.005=D\u00e9l-Amerika
 territories.AM=\u00d6rm\u00e9nyorsz\u00e1g
+territories.005=D\u00e9l-Amerika
 territories.MW=Malawi
 territories.AL=Alb\u00e1nia
 territories.MV=Mald\u00edv-szigetek
+territories.003=\u00c9szak-Amerika
 territories.ZA=D\u00e9l-Afrika
 territories.MU=Mauritius
 territories.002=Afrika
 territories.MT=M\u00e1lta
-territories.001=Vil\u00e1g
 territories.AI=Anguilla
+territories.001=Vil\u00e1g
 territories.MS=Montserrat
 territories.MR=Maurit\u00e1nia
 territories.AG=Antigua \u00e9s Barbuda
-territories.MQ=Martinique (francia)
+territories.MQ=Martinique
 territories.AF=Afganiszt\u00e1n
 territories.MP=\u00c9szaki Mariana-szigetek
 territories.AE=Egyes\u00fclt Arab Emir\u00e1tus
-territories.MO=Macao S.A.R., China
+territories.MO=Maka\u00f3
 territories.AD=Andorra
 territories.MN=Mong\u00f3lia
 territories.MM=Mianmar
 territories.ML=Mali
-territories.MK=Maced\u00f3nia, K\u00f6zt\u00e1rsas\u00e1g
+territories.MK=Maced\u00f3nia
 territories.YT=Mayotte
 territories.MH=Marshall-szigetek
 territories.MG=Madagaszk\u00e1r
-territories.MD=Mold\u00e1v K\u00f6zt\u00e1rsas\u00e1g
+territories.MF=Saint Martin
+territories.ME=Montenegr\u00f3
+territories.MD=Moldova
 territories.MC=Monaco
 territories.MA=Marokk\u00f3
 territories.YE=Jemen
-territories.LY=L\u00edbiai Arab Jamahiriya
+territories.LY=L\u00edbia
 territories.LV=Lettorsz\u00e1g
 territories.155=Nyugat-Eur\u00f3pa
 territories.LU=Luxemburg
@@ -577,18 +633,19 @@ territories.LS=Lesotho
 territories.LR=Lib\u00e9ria
 territories.151=Kelet-Eur\u00f3pa
 territories.150=Eur\u00f3pa
-territories.LK=Sri Lanka
+territories.LK=Sr\u00ed Lanka
 territories.LI=Liechtenstein
-territories.LC=Saint Lucia
+territories.LC=Santa Lucia
 territories.LB=Libanon
-territories.LA=Laoszi N\u00e9pi Demokratikus K\u00f6zt\u00e1rsas\u00e1g
+territories.LA=Laosz
 territories.KZ=Kazahszt\u00e1n
 territories.KY=Kajm\u00e1n-szigetek
-territories.KW=Kuwait
+territories.KW=Kuvait
 territories.145=Nyugat-\u00c1zsia
+territories.143=K\u00f6z\u00e9p-\u00c1zsia
 territories.142=\u00c1zsia
-territories.KR=Korea, D\u00e9l
-territories.KP=Korea, \u00c9szak
+territories.KR=D\u00e9l-Korea
+territories.KP=\u00c9szak-Korea
 territories.KN=Saint Kitts \u00e9s Nevis
 territories.KM=Comore-szigetek
 territories.KI=Kiribati
@@ -596,13 +653,14 @@ territories.WS=Szamoa
 territories.KH=Kambodzsa
 territories.KG=Kirgiziszt\u00e1n
 territories.KE=Kenya
-territories.WF=Wallis \u00e9s Futuna Szigetek
+territories.WF=Wallis \u00e9s Futuna
 territories.JP=Jap\u00e1n
 territories.JO=Jord\u00e1nia
 territories.JM=Jamaica
 territories.VU=Vanuatu
-territories.VN=Vietn\u00e1m
-territories.VI=U.S. Virgin-szigetek
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VI=Amerikai Virgin-szigetek
 territories.VG=Brit Virgin-szigetek
 territories.VE=Venezuela
 territories.VC=Saint Vincent \u00e9s Grenadines
@@ -615,11 +673,12 @@ territories.UZ=\u00dczbegiszt\u00e1n
 territories.IO=Brit Indiai Oce\u00e1n
 territories.UY=Uruguay
 territories.IN=India
+territories.IM=Man-sziget
 territories.IL=Izrael
 territories.US=Egyes\u00fclt \u00c1llamok
 territories.IE=\u00cdrorsz\u00e1g
 territories.ID=Indon\u00e9zia
-territories.UM=United States Minor Outlying Islands
+territories.UM=Amerikai Csendes-\u00f3ce\u00e1ni Szigetek
 territories.UG=Uganda
 territories.UA=Ukrajna
 territories.HU=Magyarorsz\u00e1g
@@ -628,150 +687,543 @@ territories.HR=Horv\u00e1torsz\u00e1g
 territories.TZ=Tanz\u00e1nia
 territories.HN=Honduras
 territories.HM=Heard \u00e9s McDonald Szigetek
-territories.TW=Taiwan
+territories.TW=Tajvan
 territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R., China
+territories.HK=Hongkong
 territories.TT=Trinidad \u00e9s Tobago
 territories.TR=T\u00f6r\u00f6korsz\u00e1g
 territories.TO=Tonga
 territories.TN=Tun\u00e9zia
 territories.TM=T\u00fcrkmeniszt\u00e1n
-languages.es=spanyol
-languages.ku=kurd
-languages.eo=eszperant\u00f3
-languages.en=angol
-languages.ks=kasm\u00edri
-languages.el=g\u00f6r\u00f6g
-languages.qu=kecsua
-languages.ko=koreai
-languages.kn=kannada
-languages.km=kambodzsai
-languages.kl=gr\u00f6nlandi
-languages.kk=kazah
+languages.gwi=gvicsin
+languages.akk=akk\u00e1d
+languages.eka=ekadzsuk
+languages.ijo=idzso
+languages.xh=hosza
+languages.sux=sum\u00e9r
+languages.sus=szuszu
+languages.mis=egy\u00e9b nyelvek
+languages.loz=lozi
+languages.tog=nyasa tonga
+languages.zbl=Bliss jelk\u00e9prendszer
+languages.pon=pohnpei
+languages.min=minangkabau
+languages.suk=szukuma
 languages.wo=volof
-languages.ka=gr\u00faz
-languages.dz=but\u00e1ni
-languages.jv=j\u00e1vai
-languages.pt=portug\u00e1l
-languages.ps=pastu (afg\u00e1n)
-languages.de=n\u00e9met
-languages.pl=lengyel
-languages.da=d\u00e1n
+languages.lol=mongo
+languages.kut=kutenai
+languages.mic=mikmak
+languages.wa=vallon
+languages.kum=kum\u00fck
+languages.zap=zapot\u00e9k
+languages.ain=ainu
+languages.cus=kusita nyelv
+languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
 languages.vo=volap\u00fck
-languages.ja=jap\u00e1n
+languages.oto=otomi nyelv
 languages.vi=vietn\u00e1mi
-languages.cy=walesi
-languages.pa=pandzs\u00e1bi
-languages.cs=cseh
-languages.iu=inuktitut
-languages.co=korzikai
-languages.it=olasz
-languages.is=izlandi
+languages.vai=vai
+languages.rar=rarotongai
+languages.ve=venda
+languages.rap=rapanui
+languages.raj=radzsaszt\u00e1ni
+languages.ota=ottom\u00e1n t\u00f6r\u00f6k
+languages.nzi=nzima
+languages.nap=n\u00e1polyi
 languages.uz=\u00fczb\u00e9g
-languages.or=orija
-languages.ik=inupiak
+languages.uga=ugariti
+languages.tmh=tamasek
+languages.nai=\u00e9szak-amerikai indi\u00e1n nyelv
+languages.nah=nahuati
 languages.ur=urdu
-languages.om=orom\u00f3i
-languages.ca=katal\u00e1n
-languages.ie=interlingue
-languages.id=indon\u00e9z
+languages.fat=fanti
 languages.uk=ukr\u00e1n
-languages.ia=interlingua
-languages.oc=okszit\u00e1n
+languages.egy=\u00f3egyiptomi
+languages.zxx=nincs nyelv\u00e9szeti tartalom
 languages.ug=ujgur
-languages.hy=\u00f6rm\u00e9ny
-languages.br=breton
-languages.hu=magyar
-languages.bo=tibeti
-languages.bn=beng\u00e1li
-languages.hr=horv\u00e1t
-languages.bi=bislama
-languages.tw=tui
-languages.bh=bihari
-languages.bg=bolg\u00e1r
+languages.fan=fang
+languages.ssa=n\u00edlusi-szaharai nyelv
+languages.mga=k\u00f6z\u00e9p \u00edr
+languages.bat=balti nyelv
+languages.nyo=nyoro
+languages.bas=basza
+languages.nyn=nyankole
+languages.nym=nyamv\u00e9zi
+languages.gsw=sv\u00e1jci n\u00e9met
+languages.hmn=hmong
+languages.ban=balin\u00e9z
+languages.osa=osage
+languages.bal=balucsi
+languages.ty=tahiti
+languages.bai=bamileke nyelvek
+languages.tw=twi
+languages.srr=szerer
+languages.tli=tlingit
+languages.tlh=klingon
 languages.tt=tat\u00e1r
-languages.no=norv\u00e9g
-languages.be=belorusz
 languages.ts=conga
-languages.hi=hindi
+languages.srn=sranai tongo
+languages.bad=banda
 languages.tr=t\u00f6r\u00f6k
-languages.nl=holland
-languages.zu=zulu
-languages.ba=bask\u00edr
 languages.to=tonga
-languages.he=h\u00e9ber
 languages.tn=szecsu\u00e1ni
 languages.tl=tagalog
 languages.tk=t\u00fcrkm\u00e9n
-languages.ha=hausza
-languages.ne=nep\u00e1li
-languages.az=azerbajdzs\u00e1ni
-languages.ti=tigrinya
-languages.ay=ajmara
+languages.ti=tigrinja
 languages.th=thai
+languages.kru=kuruh
 languages.tg=tadzsik
-languages.na=naurui
+languages.byn=blin
 languages.te=telugu
-languages.zh=k\u00ednai
-languages.as=assz\u00e1mi
-languages.ar=arab
+languages.kro=kru
+languages.csb=kasub
 languages.ta=tamil
-languages.gu=gudzsar\u00e1ti
-languages.my=burmai
-languages.am=amhara
-languages.za=zsuang
-languages.mt=m\u00e1ltai
-languages.ms=mal\u00e1j
-languages.gn=guarani
+languages.krl=karelai
+languages.tkl=tokelaui
+languages.efi=efik
 languages.sw=szuah\u00e9li
-languages.mr=marati
 languages.sv=sv\u00e9d
-languages.gl=gal\u00edciai
 languages.su=szundan\u00e9z
-languages.af=afrikai
+languages.krc=karacs\u00e1j-balk\u00e1r
 languages.st=szeszot\u00f3
-languages.mo=moldvai
 languages.ss=sziszuati
-languages.mn=mongol
 languages.sr=szerb
 languages.sq=alb\u00e1n
-languages.ml=malajalam
-languages.ab=abh\u00e1z
-languages.mk=maced\u00f3n
-languages.aa=afar
-languages.so=szom\u00e1li
+languages.men=mende
+languages.crp=kreol \u00e9s pidzsin
+languages.so=szom\u00e1liai
+languages.afh=afrihili
 languages.sn=sona
-languages.gd=sk\u00f3t (gael)
-languages.mi=maori
 languages.sm=szamoai
 languages.sl=szlov\u00e9n
-languages.mg=madagaszk\u00e1ri
+languages.grc=\u00f3g\u00f6r\u00f6g
 languages.sk=szlov\u00e1k
-languages.ga=\u00edr
-languages.yo=joruba
+languages.grb=grebo
 languages.si=szingal\u00e9z
-languages.sh=szerb-horv\u00e1t
+languages.sh=szerbhorv\u00e1t
+languages.crh=kr\u00edmi tat\u00e1r
+languages.afa=afro\u00e1zsiai nyelv
 languages.sg=sango
-languages.yi=zsid\u00f3
-languages.sd=szindi
-languages.fy=fr\u00edz
+languages.se=\u00e9szaki sz\u00e1mi
+languages.sd=szindhi
+languages.udm=udmurt
+languages.sc=szard\u00edniai
 languages.sa=szanszkrit
-languages.fr=francia
-languages.lv=lett
-languages.fo=fer\u00f6eri
-languages.lt=litv\u00e1n
 languages.rw=kiruanda
+languages.nwc=klasszikus newari
 languages.ru=orosz
-languages.fj=fidzsi
-languages.lo=laoszi
-languages.fi=finn
-languages.ln=lingala
+languages.mdr=mandar
 languages.ro=rom\u00e1n
 languages.rn=kirundi
-languages.rm=r\u00e9torom\u00e1n
-languages.fa=perzsa
+languages.rm=r\u00e9to-rom\u00e1n
+languages.fr_CH=sv\u00e1jci francia
+languages.mdf=moks\u00e1n
+languages.tiv=tiv
+languages.fr_CA=kanadai francia
+languages.ady=cserkesz
+languages.zun=zuni
+languages.kpe=kpelle
+languages.qu=kecsua
+languages.tig=tigr\u00e9
+languages.son=szongai
+languages.cpp=portug\u00e1l alap\u00fa kreol vagy pidgin
+languages.rup=arom\u00e1n
+languages.sog=sogdien
+languages.ada=adangme
+languages.kos=kosrei
+languages.hit=hittite
+languages.cpf=francia alap\u00fa kreol vagy pidgin
+languages.cpe=egy\u00e9b angol alap\u00fa kreol \u00e9s pidgin
+languages.him=himah\u00e1li
+languages.kok=konkani
+languages.hil=hiligajnon
+languages.got=g\u00f3t
+languages.gor=gorontalo
+languages.gon=gondi
+languages.din=dinka
+languages.nub=n\u00fabiai nyelvek
+languages.pt=portug\u00e1l
+languages.ps=pastu
+languages.fur=friuli
+languages.phn=f\u0151niciai
+languages.de_CH=sv\u00e1jci fels\u0151 n\u00e9met
+languages.goh=\u00f3fels\u0151 n\u00e9met
+languages.snk=szoninke
+languages.cop=kopt
+languages.yap=japi
+languages.ach=akoli
+languages.yao=ja\u00f3
+languages.phi=F\u00fcl\u00f6p-szigeteki nyelv
+languages.pl=lengyel
+languages.ace=achin\u00e9z
+languages.pi=pali
+languages.pt_PT=ib\u00e9riai portug\u00e1l
+languages.pa=pandzs\u00e1bi
+languages.bug=bugin\u00e9z
+languages.iba=iban
+languages.sms=koltta lapp
+languages.bua=burj\u00e1t
+languages.mas=masai
+languages.smn=inar sami
+languages.os=osz\u00e9t
+languages.map=ausztron\u00e9z
+languages.or=orija
+languages.man=mandingo
+languages.smj=lule sz\u00e1mi
+languages.smi=lapp nyelv
+languages.mak=makaszar
+languages.om=orom\u00f3i
+languages.mai=maithili
+languages.oj=ojibva
+languages.mag=magahi
+languages.mad=madurai
+languages.sma=d\u00e9li sz\u00e1mi
+languages.oc=okszit\u00e1n
+languages.nso=\u00e9szaki szoto
+languages.btk=batak
+languages.myv=erzj\u00e1ny
+languages.es_ES=ib\u00e9riai spanyol
+languages.de_AT=ausztriai n\u00e9met
+languages.dgr=dogrib
+languages.ny=nyanja
+languages.myn=maja nyelvek
+languages.nv=navaho
+languages.kmb=kimbundu
+languages.nr=d\u00e9li ndebele
+languages.gmh=k\u00f6z\u00e9p fels\u0151 n\u00e9met
+languages.no=norv\u00e9g
+languages.nn=norv\u00e9g nynorsk
+languages.nl=holland
+languages.root=\u0151si
+languages.ng=ndonga
+languages.sla=szl\u00e1v nyelv
+languages.ne=nep\u00e1li
+languages.nd=\u00e9szaki ndebele
+languages.cmc=csam nyelv
+languages.tet=tetum
+languages.nb=norv\u00e9g bokm\u00e1l
+languages.na=naurui
+languages.ter=tereno
+languages.tem=temne
+languages.my=burmai
+languages.lez=lezg
+languages.mt=m\u00e1ltai
+languages.frs=keleti fr\u00edz
+languages.peo=\u00f3perzsa
+languages.ms=mal\u00e1j
+languages.frr=\u00e9szaki fr\u00edz
+languages.mr=marathi
+languages.fro=\u00f3francia
+languages.mo=moldvai
+languages.mn=mongol
+languages.frm=k\u00f6z\u00e9p francia
+languages.ml=malaj\u00e1lam
+languages.jrb=zsid\u00f3-arab
+languages.mk=maced\u00f3n
+languages.mi=maori
+languages.mh=marshalli
+languages.mg=m\u00e1lgas
+languages.nqo=n'ko
+languages.mwr=marvari
+languages.bra=braj
+languages.mwl=mirand\u00e9z
+languages.den=szlevi
+languages.lv=lett
+languages.lu=luba-katanga
+languages.del=delav\u00e1r
+languages.lt=litv\u00e1n
+languages.lo=laoszi
+languages.ln=lingala
+languages.li=limburgi
+languages.ewo=evondo
+languages.lg=ganda
+languages.lb=luxemburgi
 languages.la=latin
-languages.xh=hosza
+languages.jpr=zsid\u00f3-perzsa
+languages.vot=votj\u00e1k
+languages.sit=sinotibeti nyelv
+languages.ky=kirgiz
+languages.kw=korni
+languages.kv=komi
+languages.ku=kurd
+languages.sio=szi\u00fa nyelvek
+languages.ks=k\u00e1sm\u00edri
+languages.kr=kanuri
+languages.awa=avadhi
+languages.ko=koreai
+languages.kn=kannada
+languages.km=kambodzsai
+languages.en_GB=brit angol
+languages.kl=gr\u00f6nlandi
+languages.kk=kazah
+languages.rom=roma
+languages.kj=kuanyama
+languages.sid=szidam\u00f3
+languages.ki=kikuju
+languages.kg=kongo
+languages.non=\u00f3skandin\u00e1v
+languages.ka=gr\u00faz
+languages.mus=kr\u00edk
+languages.roa=rom\u00e1n nyelv
+languages.nog=nogaj
+languages.mun=munda nyelvek
+languages.mul=t\u00f6bbsz\u00f6r\u00f6s nyelvek
+languages.jv=j\u00e1vai
+languages.gil=ikiribati
+languages.znd=zande
+languages.shn=san
+languages.fon=fon
+languages.xal=kalm\u00fck
+languages.aus=ausztr\u00e1l nyelvek
+languages.kho=kotan\u00e9z
+languages.ja=jap\u00e1n
+languages.khi=egy\u00e9b koiszan
+languages.pau=palaui
+languages.chy=csejen
+languages.tai=thai nyelv
+languages.iu=inuktitut
+languages.pap=papiamento
+languages.it=olasz
+languages.sgn=jelnyelv
+languages.is=izlandi
+languages.kha=kaszi
+languages.chr=cseroki
+languages.pam=pampangan
+languages.pal=pahlavi
+languages.chp=csipev\u00e9
+languages.io=ido
+languages.cho=csokt\u00f3
+languages.chn=csinuk zsargon
+languages.chm=mari
+languages.tyv=tuvai
+languages.bnt=bantu
+languages.pag=pangaszinan
+languages.ik=inupiak
+languages.chk=csuk\u00e9z
+languages.ii=szecsu\u00e1n ji
+languages.haw=hawaii
+languages.lam=lamba
+languages.ig=igbo
+languages.chg=csagataj
+languages.sga=\u00f3\u00edr
+languages.paa=p\u00e1puai nyelv
+languages.ie=interlingue
+languages.id=indon\u00e9z
+languages.lah=lahnda
+languages.day=dajak
+languages.chb=csibcsa
+languages.ia=interlingva
+languages.lad=ladino
+languages.hz=herero
+languages.hai=haida
+languages.dar=dargva
+languages.hy=\u00f6rm\u00e9ny
+languages.ath=atapaszk nyelv
+languages.hu=magyar
+languages.ht=haiti
+languages.dak=dakota
+languages.hr=horv\u00e1t
+languages.ho=hiri motu
+languages.hi=hindi
+languages.dyu=diula
+languages.he=h\u00e9ber
+languages.ast=aszt\u00far
+languages.kfo=koro
+languages.ha=hausza
+languages.wen=szorb nyelvek
+languages.gv=Man-szigeti
+languages.gu=gudzsarati
+languages.sem=egy\u00e9b szemita
+languages.sel=sz\u00f6lkup
+languages.iro=irok\u00e9z nyelvek
+languages.gn=guarani
+languages.gl=gal\u00edciai
+languages.en_CA=kanadai angol
+languages.arw=aravak
+languages.gez=geez
+languages.art=mesters\u00e9ges nyelv
+languages.gd=sk\u00f3t gael
+languages.ira=ir\u00e1ni
+languages.ga=\u00edr
+languages.arp=arapaho
+languages.arn=araucani
+languages.fy=fr\u00edz
+languages.bla=siksika
+languages.gem=germ\u00e1n nyelv
+languages.ypk=jupik nyelv
+languages.arc=ar\u00e1mi
+languages.fr=francia
+languages.fo=fer\u00f6eri
+languages.cel=egy\u00e9b kelta
+languages.fj=fidzsi
+languages.fi=finn
+languages.ff=fulani
+languages.tvl=tuvalu
+languages.ceb=cebu\u00e1no
+languages.fa=perzsa
+languages.en_AU=ausztr\u00e1l angol
+languages.zh_Hans=egyszer\u0171s\u00edtett k\u00ednai
+languages.zh_Hant=hagyom\u00e1nyos k\u00ednai
 languages.eu=baszk
+languages.sco=sk\u00f3t
 languages.et=\u00e9szt
-languages.ky=kirgiz
+languages.scn=szic\u00edliai
+languages.es=spanyol
+languages.eo=eszperant\u00f3
+languages.en=angol
+languages.el=g\u00f6r\u00f6g
+languages.tut=alt\u00e1j nyelv
+languages.niu=niui
+languages.tup=tupi nyelvek
+languages.ee=eve
+languages.tum=tumbuka
+languages.nl_BE=flamand
+languages.es_419=latin-amerikai spanyol
+languages.mos=moszi
+languages.dz=but\u00e1ni
+languages.kcg=tyap
+languages.nic=niger-kordofan nyelv
+languages.lus=lushai
+languages.fiu=finnugor nyelv
+languages.dv=divehi
+languages.nia=nias
+languages.moh=mohawk
+languages.luo=luo
+languages.lun=lunda
+languages.apa=apacs nyelvek
+languages.fil=filipp\u00edn\u00f3
+languages.lui=luiseno
+languages.hup=hupa
+languages.cch=atszam
+languages.bin=bini
+languages.de=n\u00e9met
+languages.lua=luba-lulua
+languages.bik=bikol
+languages.was=vaso
+languages.und=ismeretlen vagy \u00e9rv\u00e9nytelen nyelv
+languages.war=vara\u00f3
+languages.da=d\u00e1n
+languages.dum=k\u00f6z\u00e9p holland
+languages.wal=valamo
+languages.mno=manobo nyelvek
+languages.wak=vakas nyelv
+languages.sat=szant\u00e1li
+languages.cy=walesi
+languages.sas=sasak
+languages.kbd=kabardi
+languages.cv=csuvas
+languages.cu=egyh\u00e1zi szl\u00e1v
+languages.mni=manipuri
+languages.cs=cseh
+languages.sam=szamarit\u00e1nus ar\u00e1mi
+languages.cr=kr\u00ed
+languages.sal=szelis nyelv
+languages.dua=duala
+languages.co=korzikai
+languages.sai=d\u00e9l-amerikai indi\u00e1n nyelv
+languages.mnc=mandzsu
+languages.sah=jakut
+languages.kaw=kawi
+languages.inh=ingus
+languages.gba=gbaja
+languages.sad=szandave
+languages.ch=csamoro
+languages.ine=indoeur\u00f3pai nyelv
+languages.bho=bhodzspuri
+languages.enm=k\u00f6z\u00e9p angol
+languages.kar=karen
+languages.inc=egy\u00e9b indiai
+languages.ce=csecsen
+languages.gay=gajo
+languages.ca=katal\u00e1n
+languages.umb=umbundu
+languages.syr=sz\u00edriai
+languages.kam=kamba
+languages.anp=angika
+languages.tsi=csimsi\u00e1ni
+languages.kaj=jju
+languages.ang=\u00f3angol
+languages.kac=kacsin
+languages.cau=egy\u00e9b kauk\u00e1zusi
+languages.kab=kabije
+languages.kaa=kara-kalpak
+languages.bs=bosny\u00e1k
+languages.car=karib
+languages.br=breton
+languages.syc=klasszikus sz\u00edr
+languages.bo=tibeti
+languages.bn=beng\u00e1li
+languages.bm=bambara
+languages.gaa=ga
+languages.cai=egy\u00e9b k\u00f6z\u00e9p-amerikai indi\u00e1n
+languages.bi=bislama
+languages.bh=bihari
+languages.bg=bolg\u00e1r
+languages.be=belorusz
+languages.pt_BR=braz\u00edliai portug\u00e1l
+languages.cad=caddo
+languages.ba=bask\u00edr
+languages.zu=zulu
+languages.zen=zenaga
+languages.pro=\u00f3prov\u00e1nszi
+languages.hsb=fels\u0151 szorb
+languages.az=azerbajdzs\u00e1ni
+languages.ay=ajmara
+languages.av=avar
+languages.as=assz\u00e1mi
+languages.dsb=als\u00f3 szorb
+languages.ar=arab
+languages.ilo=iloko
+languages.elx=elamit
+languages.zh=k\u00ednai
+languages.an=aragon\u00e9z
+languages.pra=prakrit nyelvek
+languages.am=amhara
+languages.new=nevari
+languages.ak=akan
+languages.za=zsuang
+languages.en_US=amerikai angol
+languages.af=afrikaans
+languages.ae=aveszt\u00e1n
+languages.alt=d\u00e9l-altaji
+languages.ab=abh\u00e1z
+languages.aa=afar
+languages.yo=joruba
+languages.alg=algonkin nyelv
+languages.ale=aleut
+languages.mkh=egy\u00e9b mon-khmer
+languages.yi=jiddis
+languages.dra=egy\u00e9b dravida
+languages.ber=berber
+languages.nds=als\u00f3n\u00e9met
+languages.bem=bemba
+languages.bej=bedzsa
+languages.tpi=tok pisin
+variants.POSIX=Sz\u00e1m\u00edt\u00f3g\u00e9p
+variants.AREVMDA=Nyugati \u00f6rm\u00e9ny
+variants.1996=1996-os n\u00e9met helyes\u00edr\u00e1s
+variants.SOLBA=Stolvizza/Solbica t\u00e1jsz\u00f3l\u00e1s
+variants.NEDIS=Natisone t\u00e1jsz\u00f3l\u00e1s
+variants.1994=Szabv\u00e1nyos\u00edtott rezij\u00e1n helyes\u00edr\u00e1s
+variants.1901=Hagyom\u00e1nyos n\u00e9met helyes\u00edr\u00e1s
+variants.FONUPA=UPA fonetika
+variants.OSOJS=Oseacco/Osojane t\u00e1jsz\u00f3l\u00e1s
+variants.LIPAW=Rezij\u00e1n lipovaz t\u00e1jsz\u00f3l\u00e1s
+variants.REVISED=\u00c1tdolgozott helyes\u00edr\u00e1s
+variants.NJIVA=Gniva/Njiva t\u00e1jsz\u00f3l\u00e1s
+variants.TARASK=Taraskijevica helyes\u00edr\u00e1s
+variants.FONIPA=IPA fonetika
+variants.BISKE=San Giorgo/Bila t\u00e1jsz\u00f3l\u00e1s
+variants.SCOUSE=Scouse
+variants.BAKU1926=Egyes\u00edtett t\u00fcrkic latin \u00e1b\u00e9c\u00e9
+variants.SAAHO=Saho
+variants.ROZAJ=Rezij\u00e1n
+variants.MONOTON=Monotonikus
+variants.POLYTON=Politonikus
+variants.AREVELA=Keleti \u00f6rm\u00e9ny
+variants.SCOTLAND=Sk\u00f3t szabv\u00e1nyos angol
+variants.VALENCIA=Valencia
+variants.BOONT=Boontling
+variants.1606NICT=K\u00e9s\u0151i k\u00f6z\u00e9p francia 1606-ig
index 6d6a3cc2ed7914c90dd1d58b33ac65687c7f2ecf..9875a8f7fd97f8dab5a0fe743e65646f66bac0e5 100644 (file)
@@ -8,18 +8,22 @@
 decimalSeparator=,
 groupingSeparator=.
 percentFormat=#0%
-currencyFormat=#0.00 \u00a4;-#0.00 \u00a4
-shortMonths=\u0545\u0576\u0580®\u0553\u057f\u0580®\u0544\u0580\u057f®\u0531\u057a\u0580®\u0544\u0575\u057d®\u0545\u0576\u057d®\u0545\u056c\u057d®\u0555\u0563\u057d®\u054d\u0565\u057a®\u0540\u0578\u056f®\u0546\u0578\u0575®\u0534\u0565\u056f®®
-months=\u0545\u0578\u0582\u0576\u0578\u0582\u0561\u0580®\u0553\u0565\u057f\u0580\u0578\u0582\u0561\u0580®\u0544\u0561\u0580\u057f®\u0531\u057a\u0580\u056b\u056c®\u0544\u0561\u0575\u056b\u057d®\u0545\u0578\u0582\u0576\u056b\u057d®\u0545\u0578\u0582\u056c\u056b\u057d®\u0555\u0563\u0578\u057d\u057f\u0578\u057d®\u054d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580®\u0540\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580®\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580®\u0534\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580®®
-shortWeekdays=®\u053f\u056b\u0580®\u0535\u0580\u056f®\u0535\u0580\u0584®\u0549\u0578\u0580®\u0540\u0576\u0563®\u0548\u0582\u0580®\u0547\u0561\u0562®
-weekdays=®\u053f\u056b\u0580\u0561\u056f\u056b®\u0535\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b®\u0535\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b®\u0549\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b®\u0540\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b®\u0548\u0582\u0580\u0562\u0561\u0569®\u0547\u0561\u0562\u0561\u0569®
-firstDayOfWeek=mon
-eras=\u0545\u2024\u054f\u2024®\u0546\u2024\u0554\u2024®
-ampms=\u0531\u057c\u2024®\u0535\u0580\u2024®
+currencyFormat=#0.00\u00a0\u00a4;-#0.00\u00a0\u00a4
+currenciesSymbol.AMD=\u0564\u0580.
+shortMonths=\u0545\u0576\u0580\u00ae\u0553\u057f\u0580\u00ae\u0544\u0580\u057f\u00ae\u0531\u057a\u0580\u00ae\u0544\u0575\u057d\u00ae\u0545\u0576\u057d\u00ae\u0545\u056c\u057d\u00ae\u0555\u0563\u057d\u00ae\u054d\u0565\u057a\u00ae\u0540\u0578\u056f\u00ae\u0546\u0578\u0575\u00ae\u0534\u0565\u056f\u00ae\u00ae
+months=\u0545\u0578\u0582\u0576\u0578\u0582\u0561\u0580\u00ae\u0553\u0565\u057f\u0580\u0578\u0582\u0561\u0580\u00ae\u0544\u0561\u0580\u057f\u00ae\u0531\u057a\u0580\u056b\u056c\u00ae\u0544\u0561\u0575\u056b\u057d\u00ae\u0545\u0578\u0582\u0576\u056b\u057d\u00ae\u0545\u0578\u0582\u056c\u056b\u057d\u00ae\u0555\u0563\u0578\u057d\u057f\u0578\u057d\u00ae\u054d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u00ae\u0540\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u00ae\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u00ae\u0534\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u00ae\u00ae
+shortWeekdays=\u00ae\u053f\u056b\u0580\u00ae\u0535\u0580\u056f\u00ae\u0535\u0580\u0584\u00ae\u0549\u0578\u0580\u00ae\u0540\u0576\u0563\u00ae\u0548\u0582\u0580\u00ae\u0547\u0561\u0562\u00ae
+weekdays=\u00ae\u053f\u056b\u0580\u0561\u056f\u056b\u00ae\u0535\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b\u00ae\u0535\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b\u00ae\u0549\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b\u00ae\u0540\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b\u00ae\u0548\u0582\u0580\u0562\u0561\u0569\u00ae\u0547\u0561\u0562\u0561\u0569\u00ae
+eras=\u0554\u2024\u0531\u2024\u00ae\u0554\u2024\u0535\u2024\u00ae
+ampms=\u0531\u057c\u2024\u00ae\u0535\u0580\u2024\u00ae
 shortDateFormat=MM/dd/yy
 mediumDateFormat=MMM d, yyyy
 longDateFormat=MMMM dd, yyyy
 fullDateFormat=EEEE, MMMM d, yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
 territories.TJ=\u054f\u0561\u0573\u056b\u056f\u057d\u057f\u0561\u0576
 territories.TH=\u0539\u0561\u056b\u056c\u0561\u0576\u0564
 territories.TG=\u054f\u0578\u0563\u0578
@@ -82,12 +86,12 @@ territories.PK=\u054a\u0561\u056f\u056b\u057d\u057f\u0561\u0576
 territories.PH=\u0556\u056b\u056c\u056b\u057a\u056b\u0576\u0576\u0565\u0580
 territories.PG=\u054a\u0561\u057a\u0578\u0582\u0561 \u0546\u0578\u0580 \u0533\u057e\u056b\u0576\u0565\u0561
 territories.CZ=\u0549\u0565\u056d\u056b\u0561\u0575\u056b \u0540\u0561\u0576\u0580\u0561\u057a\u0565\u057f\u0578\u0582\u0569\u0575\u0578\u0582\u0576
-territories.CY=\u053f\u056b\u057a\u0580\u0578\u057d
 territories.PE=\u054a\u0565\u0580\u0578\u0582
+territories.CY=\u053f\u056b\u057a\u0580\u0578\u057d
 territories.CV=\u053f\u0561\u0562\u0578-\u054e\u0565\u0580\u0564\u0565
-territories.CU=\u053f\u0578\u0582\u0562\u0561
 territories.PA=\u054a\u0561\u0576\u0561\u0574\u0561
-territories.CS=\u054d\u0565\u0580\u0562\u056b\u0561
+territories.CU=\u053f\u0578\u0582\u0562\u0561
+territories.CS=\u054d\u0565\u0580\u0562\u056b\u0561 \u0587 \u0544\u0578\u0576\u057f\u0565\u0576\u0565\u0563\u0580\u0578
 territories.CR=\u053f\u0578\u057d\u057f\u0561-\u054c\u056b\u056f\u0561
 territories.CO=\u053f\u0578\u056c\u0578\u0582\u0574\u0562\u056b\u0561
 territories.CN=\u0549\u056b\u0576\u0561\u057d\u057f\u0561\u0576
@@ -105,45 +109,52 @@ territories.BW=\u0532\u0578\u057f\u057d\u057e\u0561\u0576\u0561
 territories.BT=\u0532\u0578\u0582\u057f\u0561\u0576
 territories.BS=\u0532\u0561\u0570\u0561\u0574\u0576\u0565\u0580
 territories.BR=\u0532\u0580\u0561\u0566\u056b\u056c\u056b\u0561
-territories.BO=\u0532\u0578\u056c\u056b\u057e\u056b\u0561
+territories.018=\u0540\u0561\u0580\u0561\u057e\u0561\u0575\u056b\u0576 \u0531\u0586\u0580\u056b\u056f\u0561 [018]
 territories.NZ=\u0546\u0578\u0580 \u0536\u0565\u056c\u0561\u0576\u0564\u056b\u0561
+territories.BO=\u0532\u0578\u056c\u056b\u057e\u056b\u0561
 territories.BN=\u0532\u0580\u0578\u0582\u0576\u0565\u0575
+territories.015=\u0540\u0575\u0578\u0582\u057d\u056b\u057d\u0561\u0575\u056b\u0576 \u0531\u0586\u0580\u056b\u056f\u0561
+territories.014=\u0531\u0580\u0587\u0565\u056c\u0575\u0561\u0576 \u0531\u0586\u0580\u056b\u056f\u0561
 territories.BJ=\u0532\u0565\u0576\u056b\u0576
+territories.011=\u0531\u0580\u0587\u0574\u057f\u0575\u0561\u0576 \u0531\u0586\u0580\u056b\u056f\u0561
 territories.BI=\u0532\u0578\u0582\u0580\u0578\u0582\u0576\u0564\u056b
 territories.BH=\u0532\u0561\u0570\u0580\u0565\u0575\u0576
-territories.BG=\u0532\u0578\u0582\u056c\u0572\u0561\u0580\u056b\u0561
 territories.NR=\u0546\u0561\u0578\u0582\u0580\u0578\u0582
+territories.BG=\u0532\u0578\u0582\u056c\u0572\u0561\u0580\u056b\u0561
 territories.BF=\u0532\u0578\u0582\u0580\u056f\u056b\u0576\u0561 \u0556\u0561\u057d\u0578
-territories.BE=\u0532\u0565\u056c\u0563\u056b\u0561
 territories.NP=\u0546\u0565\u057a\u0561\u056c
-territories.BD=\u0532\u0561\u0576\u0563\u056c\u0561\u0564\u0565\u0577
+territories.BE=\u0532\u0565\u056c\u0563\u056b\u0561
 territories.NO=\u0546\u0578\u0580\u057e\u0565\u0563\u056b\u0561
+territories.BD=\u0532\u0561\u0576\u0563\u056c\u0561\u0564\u0565\u0577
 territories.BB=\u0532\u0561\u0580\u0562\u0561\u0564\u0578\u057d
 territories.ZW=\u0536\u056b\u0574\u0562\u0561\u0562\u057e\u0565
-territories.BA=\u0532\u0578\u057d\u0576\u056b\u0561-\u0540\u0565\u0580\u0581\u0565\u0563\u0578\u057e\u056b\u0576\u0561
 territories.NL=\u0546\u056b\u0564\u0565\u0580\u056c\u0561\u0576\u0564\u0565\u0580
+territories.BA=\u0532\u0578\u057d\u0576\u056b\u0561-\u0540\u0565\u0580\u0581\u0565\u0563\u0578\u057e\u056b\u0576\u0561
 territories.NI=\u0546\u056b\u056f\u0561\u0580\u0561\u0563\u0578\u0582\u0561
 territories.NG=\u0546\u056b\u0563\u0565\u0580\u056b\u0561
 territories.AZ=\u0531\u0564\u0580\u0562\u0565\u057b\u0561\u0576
 territories.NE=\u0546\u056b\u0563\u0565\u0580
 territories.ZM=\u0536\u0561\u0574\u0562\u056b\u0561
-territories.NA=\u0546\u0561\u0574\u056b\u0562\u056b\u0561
 territories.AU=\u0531\u057e\u057d\u057f\u0580\u0561\u056c\u056b\u0561
+territories.NA=\u0546\u0561\u0574\u056b\u0562\u056b\u0561
 territories.AT=\u0531\u057e\u057d\u057f\u0580\u056b\u0561
 territories.AR=\u0531\u0580\u0563\u0565\u0576\u057f\u056b\u0576\u0561
-territories.AO=\u0531\u0576\u0563\u0578\u056c\u0561
 territories.MZ=\u0544\u0578\u0566\u0561\u0574\u0562\u056b\u056f
+territories.AO=\u0531\u0576\u0563\u0578\u056c\u0561
 territories.MY=\u0544\u0561\u056c\u0561\u0575\u0566\u056b\u0561
-territories.AM=\u0540\u0561\u0575\u0561\u057d\u057f\u0561\u0576\u056b \u0540\u0561\u0576\u0580\u0561\u057a\u0565\u057f\u0578\u0582\u0569\u056b\u0582\u0576
 territories.MX=\u0544\u0565\u0584\u057d\u056b\u056f\u0561
-territories.AL=\u0531\u056c\u0562\u0561\u0576\u056b\u0561
+territories.AM=\u0540\u0561\u0575\u0561\u057d\u057f\u0561\u0576\u056b \u0540\u0561\u0576\u0580\u0561\u057a\u0565\u057f\u0578\u0582\u0569\u056b\u0582\u0576
+territories.005=\u0540\u0561\u0580\u0561\u057e\u0561\u0575\u056b\u0576 \u0531\u0574\u0565\u0580\u056b\u056f\u0561
 territories.MW=\u0544\u0561\u056c\u0561\u057e\u056b
+territories.AL=\u0531\u056c\u0562\u0561\u0576\u056b\u0561
 territories.MV=\u0544\u0561\u056c\u0564\u056b\u057e\u0576\u0565\u0580
 territories.ZA=\u0540\u0561\u0580\u0561\u057e\u0561\u0575\u056b\u0576 \u0531\u0586\u0580\u056b\u056f\u0561
 territories.MU=\u0544\u0561\u057e\u0580\u056b\u057f\u0578\u057d
+territories.002=\u0531\u0586\u0580\u056b\u056f\u0561
 territories.MT=\u0544\u0561\u056c\u0569\u0561
-territories.AG=\u0531\u0576\u057f\u056b\u0563\u0578\u0582\u0561-\u0532\u0561\u0580\u0562\u0578\u0582\u0564\u0561
+territories.001=\u0531\u0577\u056d\u0561\u0580\u0570
 territories.MR=\u0544\u0561\u057e\u0580\u056b\u057f\u0561\u0576\u056b\u0561
+territories.AG=\u0531\u0576\u057f\u056b\u0563\u0578\u0582\u0561-\u0532\u0561\u0580\u0562\u0578\u0582\u0564\u0561
 territories.AF=\u0531\u0586\u0572\u0561\u0576\u057d\u057f\u0561\u0576
 territories.AE=\u0544\u056b\u0561\u0581\u0575\u0561\u056c \u0531\u0580\u0561\u0562\u0561\u056f\u0561\u0576 \u0537\u0574\u056b\u0580\u0561\u0569\u0576\u0565\u0580
 territories.AD=\u0531\u0576\u0564\u0578\u0580\u0561
@@ -212,4 +223,107 @@ territories.TR=\u0539\u0578\u0582\u0580\u0584\u056b\u0561
 territories.TO=\u054f\u0578\u0576\u0563\u0561
 territories.TN=\u0539\u0578\u0582\u0576\u056b\u057d
 territories.TM=\u0539\u0578\u0582\u0580\u0584\u0574\u0565\u0576\u057d\u057f\u0561\u0576
+languages.es=\u053b\u057d\u057a\u0561\u0576\u0565\u0580\u0565\u0576
+languages.ku=\u0554\u0580\u0564\u0565\u0580\u0565\u0576
+languages.eo=\u0537\u057d\u057a\u0565\u0580\u0561\u0576\u057f\u0578
+languages.en=\u0531\u0576\u0563\u056c\u0565\u0580\u0565\u0576
+languages.el=\u0540\u0578\u0582\u0576\u0561\u0580\u0565\u0576
+languages.ko=\u053f\u0578\u0580\u0565\u0565\u0580\u0565\u0576
+languages.kn=\u053f\u0561\u0576\u0576\u0561\u0564\u0561
+languages.km=\u053f\u0561\u0574\u0562\u0578\u057b\u0565\u0580\u0565\u0576
+languages.ka=\u054e\u0580\u0561\u0581\u0565\u0580\u0565\u0576
+languages.jv=\u0543\u0561\u057e\u0561\u0575\u0565\u0580\u0565\u0576
+languages.fil=\u054f\u0561\u0563\u0561\u056c\u0565\u0580\u0565\u0576
+languages.pt=\u054a\u0578\u0580\u057f\u0578\u0582\u0563\u0561\u056c\u0565\u0580\u0565\u0576
+languages.ps=\u0553\u0561\u0577\u057f\u0578\u0582\u0576\u0565\u0580\u0565\u0576
+languages.de=\u0533\u0565\u0580\u0574\u0561\u0576\u0565\u0580\u0565\u0576
+languages.pl=\u053c\u0565\u0570\u0565\u0580\u0565\u0576
+languages.da=\u0534\u0561\u0576\u056b\u0565\u0580\u0565\u0576
+languages.tlh=\u053f\u056c\u056b\u0576\u0563\u0578\u0576
+languages.ja=\u0543\u0561\u057a\u0578\u0576\u0565\u0580\u0565\u0576
+languages.vi=\u054e\u056b\u0565\u057f\u0576\u0561\u0574\u0565\u0580\u0565\u0576
+languages.cy=\u054e\u0561\u056c\u0565\u0580\u0565\u0576
+languages.pa=\u0553\u0565\u0576\u057b\u0561\u0562\u0565\u0580\u0565\u0576
+languages.cs=\u0549\u0565\u056d\u0565\u0580\u0565\u0576
+languages.it=\u053b\u057f\u0561\u056c\u0565\u0580\u0565\u0576
+languages.is=\u053b\u057d\u056c\u0561\u0576\u0564\u0565\u0580\u0565\u0576
+languages.uz=\u0548\u0582\u0566\u0562\u0565\u056f\u0565\u0580\u0565\u0576
+languages.or=\u0555\u0580\u056b\u057d\u0565\u0580\u0565\u0576
+languages.ur=\u0548\u0582\u0580\u0564\u0578\u0582
+languages.ca=\u053f\u0561\u057f\u0561\u056c\u0578\u0576\u0565\u0580\u0565\u0576
+languages.ie=\u053b\u0576\u057f\u0565\u0580\u056c\u056b\u0576\u0563
+languages.id=\u053b\u0576\u0564\u0578\u0576\u0565\u0566\u0565\u0580\u0565\u0576
+languages.uk=\u0548\u0582\u056f\u0580\u0561\u056b\u0576\u0565\u0580\u0565\u0576
+languages.ia=\u053b\u0576\u057f\u0565\u0580\u056c\u056b\u0576\u0563\u0578\u0582\u0561
+languages.oc=\u0531\u056f\u057e\u056b\u057f\u0561\u0576\u0565\u0580\u0565\u0576
+languages.ug=\u0548\u0582\u0575\u0572\u0578\u0582\u0580\u0565\u0580\u0565\u0576
 languages.hy=\u0540\u0561\u0575\u0565\u0580\u0567\u0576
+languages.bs=\u0532\u0578\u057d\u0576\u0565\u0580\u0565\u0576
+languages.br=\u0532\u0580\u0565\u057f\u0578\u0576\u0565\u0580\u0565\u0576
+languages.hu=\u0540\u0578\u0582\u0576\u0563\u0561\u0580\u0565\u0580\u0565\u0576
+languages.bn=\u0532\u0565\u0576\u0563\u0561\u056c\u0565\u0580\u0565\u0576
+languages.hr=\u053d\u0578\u0580\u057e\u0561\u0569\u0565\u0580\u0565\u0576
+languages.tw=\u054f\u0578\u0582\u056b
+languages.bh=\u0532\u056b\u0570\u0561\u0580\u0565\u0580\u0565\u0576
+languages.bg=\u0532\u0578\u0582\u056c\u0572\u0561\u0580\u0565\u0580\u0565\u0576
+languages.no=\u0546\u0578\u0580\u057e\u0565\u0563\u0565\u0580\u0565\u0576
+languages.be=\u0532\u0565\u056c\u0561\u0580\u0578\u0582\u057d\u0565\u0580\u0565\u0576
+languages.nn=\u0546\u0578\u0580\u057e\u0565\u0563\u0565\u0580\u0565\u0576 (\u0546\u0575\u0578\u0582\u0576\u0578\u0580\u057d\u056f)
+languages.hi=\u0540\u0576\u0564\u056f\u0565\u0580\u0565\u0576
+languages.tr=\u0539\u0578\u0582\u0580\u0584\u0565\u0580\u0565\u0576
+languages.nl=\u0540\u0578\u056c\u0561\u0576\u0564\u0565\u0580\u0565\u0576
+languages.zu=\u0536\u0578\u0582\u056c\u0578\u0582\u057d\u0565\u0580\u0565\u0576
+languages.he=\u0535\u0562\u0580\u0561\u0575\u0565\u0580\u0565\u0576
+languages.tk=\u0539\u0578\u0582\u0580\u0584\u0574\u0565\u0576\u0565\u0580\u0565\u0576
+languages.ne=\u0546\u0565\u057a\u0561\u056c\u0565\u0580\u0565\u0576
+languages.az=\u0531\u0564\u0580\u0562\u0565\u057b\u0561\u0576\u0565\u0580\u0565\u0576
+languages.ti=\u0537\u0580\u056b\u057f\u0580\u0565\u0580\u0565\u0576
+languages.th=\u0539\u0561\u0575\u0565\u0580\u0565\u0576
+languages.te=\u054f\u0565\u056c\u0578\u0582\u0563\u0578\u0582
+languages.zh=\u0549\u056b\u0576\u0561\u0580\u0565\u0576
+languages.as=\u0531\u057d\u0561\u0574\u0565\u0580\u0565\u0576
+languages.ar=\u0531\u0580\u0561\u0562\u0565\u0580\u0565\u0576
+languages.ta=\u0539\u0561\u0574\u056b\u056c\u0565\u0580\u0565\u0576
+languages.gu=\u0533\u0578\u0582\u057b\u0561\u0580\u0561\u057f\u0565\u0580\u0565\u0576
+languages.am=\u0540\u0561\u0562\u0565\u0577\u0565\u0580\u0565\u0576
+languages.mt=\u0544\u0561\u056c\u0569\u0565\u0580\u0565\u0576
+languages.ms=\u0544\u0561\u056c\u0561\u0575\u0565\u0580\u0565\u0576
+languages.gn=\u0533\u0578\u0582\u0561\u0580\u0561\u0576\u0565\u0580\u0565\u0576
+languages.sw=\u054d\u0578\u0582\u0561\u0570\u056b\u056c\u056b
+languages.mr=\u0544\u0561\u0580\u0561\u0569\u056b
+languages.sv=\u0547\u057e\u0565\u0564\u0565\u0580\u0565\u0576
+languages.gl=\u0533\u0561\u056c\u056b\u057d\u0565\u0580\u0565\u0576
+languages.su=\u054d\u0578\u0582\u0576\u0564\u0561\u0576\u0565\u0580\u0565\u0576
+languages.af=\u0531\u0586\u0580\u056b\u056f\u0561\u0576\u057d
+languages.st=\u054d\u0565\u057d\u0578\u057f\u0578
+languages.mn=\u0544\u0578\u0576\u0572\u0578\u056c\u0565\u0580\u0565\u0576
+languages.sr=\u054d\u0565\u0580\u0562\u0565\u0580\u0565\u0576
+languages.sq=\u0531\u056c\u0562\u0561\u0576\u0565\u0580\u0565\u0576
+languages.ml=\u053f\u0565\u0580\u0561\u056c\u0565\u0580\u0565\u0576
+languages.mk=\u0544\u0561\u056f\u0565\u0564\u0578\u0576\u0565\u0580\u0565\u0576
+languages.so=\u054d\u0578\u0574\u0561\u056c\u0565\u0580\u0565\u0576
+languages.gd=\u0533\u0561\u0565\u056c\u0575\u0561\u0576 \u0547\u0578\u057f\u056c\u0561\u0576\u0564\u0565\u0580\u0565\u0576
+languages.sl=\u054d\u056c\u0578\u057e\u0565\u0576\u0565\u0580\u0565\u0576
+languages.sk=\u054d\u056c\u0578\u057e\u0561\u056f\u0565\u0580\u0565\u0576
+languages.ga=\u053b\u057c\u056c\u0561\u0576\u0564\u0565\u0580\u0565\u0576
+languages.si=\u054d\u056b\u0576\u0570\u0561\u056c\u0565\u0580\u0565\u0576
+languages.sh=\u054d\u0565\u0580\u0562\u0561-\u053d\u0578\u0580\u057e\u0561\u0569\u0565\u0580\u0565\u0576
+languages.yi=\u053b\u0564\u056b\u0577
+languages.sd=\u054d\u056b\u0576\u0564\u0570\u056b
+languages.fy=\u0556\u0580\u056b\u057d\u0565\u0580\u0565\u0576
+languages.sa=\u054d\u0561\u0576\u057d\u056f\u0580\u056b\u057f\u0565\u0580\u0565\u0576
+languages.fr=\u0556\u0580\u0561\u0576\u057d\u0565\u0580\u0565\u0576
+languages.lv=\u053c\u0561\u057f\u057e\u0565\u0580\u0565\u0576
+languages.lt=\u053c\u056b\u057f\u057e\u0565\u0580\u0565\u0576
+languages.fo=\u0556\u0561\u0580\u057e\u0565\u0580\u0565\u0576
+languages.ru=\u054c\u0578\u0582\u057d\u0565\u0580\u0565\u0576
+languages.lo=\u053c\u0561\u0578\u057d\u0565\u0580\u0565\u0576
+languages.ln=\u053c\u056b\u0576\u0563\u0561\u056c\u0561
+languages.fi=\u0556\u056b\u0576\u0576\u0565\u0580\u0565\u0576
+languages.ro=\u054c\u0578\u0582\u0574\u056b\u0576\u0565\u0580\u0565\u0576
+languages.fa=\u054a\u0561\u0580\u057d\u056f\u0565\u0580\u0565\u0576
+languages.la=\u053c\u0561\u057f\u056b\u0576\u0565\u0580\u0565\u0576
+languages.xh=\u053d\u0578\u0577\u0565\u0580\u0565\u0576
+languages.eu=\u0532\u0561\u057d\u056f\u0565\u0580\u0565\u0576
+languages.ky=\u0542\u0580\u0572\u0566\u0565\u0580\u0565\u0576
+languages.et=\u0537\u057d\u057f\u0578\u0576\u0565\u0580\u0565\u0576
index 9e2bd9d5356a5f64975fbdec17baaeba14cb02c0..1c634b2289d21143cdb6be40984e965ddcc2d995 100644 (file)
@@ -5,6 +5,6 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-shortMonths=\u0540\u0576\u057e®\u0553\u057f\u057e®®®®\u0540\u0576\u057d®\u0540\u056c\u057d®®®®®®®
-months=\u0540\u0578\u0582\u0576\u057e\u0561\u0580®\u0553\u0565\u057f\u0580\u057e\u0561\u0580®®®®\u0540\u0578\u0582\u0576\u056b\u057d®\u0540\u0578\u0582\u056c\u056b\u057d®®®®®®®
-eras=\u0544\u2024\u0539\u2024\u0531\u2024®\u0544\u2024\u0539\u2024®
+shortMonths=\u0540\u0576\u057e\u00ae\u0553\u057f\u057e\u00ae\u00ae\u00ae\u00ae\u0540\u0576\u057d\u00ae\u0540\u056c\u057d\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u0540\u0578\u0582\u0576\u057e\u0561\u0580\u00ae\u0553\u0565\u057f\u0580\u057e\u0561\u0580\u00ae\u00ae\u00ae\u00ae\u0540\u0578\u0582\u0576\u056b\u057d\u00ae\u0540\u0578\u0582\u056c\u056b\u057d\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+eras=\u0544\u2024\u0539\u2024\u0531\u2024\u00ae\u0544\u2024\u0539\u2024\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ia.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ia.properties
new file mode 100644 (file)
index 0000000..15da57a
--- /dev/null
@@ -0,0 +1,318 @@
+# LocaleInformation_ia.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=.
+currenciesDisplayName.NOK=Coronas norvegian
+currenciesDisplayName.JPY=Yen japonese
+currenciesDisplayName.DKK=Coronas danese
+currenciesDisplayName.DEM=Marcos german
+currenciesDisplayName.CHF=Francos suisse
+currenciesDisplayName.AUD=Dollares australian
+currenciesDisplayName.FRF=francos francese
+currenciesDisplayName.USD=Dollares statounitese
+currenciesDisplayName.SEK=Coronas svedese
+currenciesDisplayName.EUR=Euros
+currenciesDisplayName.GBP=Libras sterling britannic
+currenciesDisplayName.CAD=Dollares canadian
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemai\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeoct\u00aenov\u00aedec\u00ae\u00ae
+months=januario\u00aefebruario\u00aemartio\u00aeapril\u00aemaio\u00aejunio\u00aejulio\u00aeaugusto\u00aeseptembre\u00aeoctobre\u00aenovembre\u00aedecembre\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aelun\u00aemar\u00aemer\u00aejov\u00aeven\u00aesab\u00ae
+weekdays=\u00aedominica\u00aelunedi\u00aemartedi\u00aemercuridi\u00aejovedi\u00aevenerdi\u00aesabbato\u00ae
+eras=a.Chr.\u00aep.Chr.\u00ae
+ampms=a.m.\u00aep.m.\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=Timor del Est
+territories.TK=Tokelau
+territories.TJ=Tadzhikistan
+territories.TH=Thailandia
+territories.TG=Togo
+territories.TF=Territorios meridional francese
+territories.TD=Tchad
+territories.TC=Insulas Turcos e Caicos
+territories.GW=Guinea-Bissau
+territories.GR=Grecia
+territories.GQ=Guinea equatorial
+territories.SZ=Swazilandia
+territories.SY=Syria
+territories.GN=Guinea
+territories.GM=Gambia
+territories.GL=Groenlandia
+territories.GH=Ghana
+territories.SR=Suriname
+territories.GF=Guyana francese
+territories.GE=Georgia
+territories.SO=Somalia
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=Regno Unite
+territories.SL=Sierra Leone
+territories.GA=Gabon
+territories.SK=Slovachia
+territories.SI=Slovenia
+territories.SE=Svedia
+territories.SD=Sudan
+territories.SC=Seychelles
+territories.SB=Insulas Solomon
+territories.SA=Arabia Saudita
+territories.FR=Francia
+territories.FO=Insulas Feroe
+territories.FM=Micronesia
+territories.RW=Ruanda
+territories.FI=Finlandia
+territories.RO=Romania
+territories.ET=Ethiopia
+territories.ES=Espania
+territories.ER=Eritrea
+territories.EH=Sahara occidental
+territories.EG=Egypto
+territories.EE=Estonia
+territories.EC=Ecuador
+territories.DZ=Algeria
+territories.DO=Republica Dominican
+territories.PY=Paraguay
+territories.DK=Danmark
+territories.PT=Portugal
+territories.DE=Germania
+territories.PL=Polonia
+territories.PK=Pakistan
+territories.PH=Philippinas
+territories.PG=Papua Nove Guinea
+territories.PF=Polynesia francese
+territories.CZ=Republica Tchec
+territories.PE=Peru
+territories.CY=Cypro
+territories.CX=Insula de Natal
+territories.CU=Cuba
+territories.CO=Colombia
+territories.CN=China
+territories.CM=Camerun
+territories.CL=Chile
+territories.CK=Insulas Cook
+territories.CH=Suissa
+territories.CG=Congo
+territories.CF=Republica African Central
+territories.OM=Oman
+territories.CA=Canada
+territories.BY=Bielorussia
+territories.BW=Botswana
+territories.BV=Insula de Bouvet
+territories.BT=Bhutan
+territories.BS=Bahamas
+territories.BR=Brasil
+territories.NZ=Nove Zelanda
+territories.BO=Bolivia
+territories.BJ=Benin
+territories.BI=Burundi
+territories.BG=Bulgaria
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Belgica
+territories.NO=Norvegia
+territories.BD=Bangladesh
+territories.ZW=Zimbabwe
+territories.NL=Nederlandia
+territories.BA=Bosnia e Herzegovina
+territories.NI=Nicaragua
+territories.NG=Nigeria
+territories.NF=Insula Norfolk
+territories.AZ=Azerbaidzhan
+territories.NE=Niger
+territories.NC=Nove Caledonia
+territories.ZM=Zambia
+territories.AU=Australia
+territories.NA=Namibia
+territories.AT=Austria
+territories.AS=Samoa american
+territories.AR=Argentina
+territories.AQ=Antarctica
+territories.MZ=Mozambique
+territories.AO=Angola
+territories.MY=Malaysia
+territories.AN=Antillas nederlandese
+territories.MX=Mexico
+territories.AM=Armenia
+territories.MW=Malawi
+territories.AL=Albania
+territories.ZA=Africa del Sud
+territories.MR=Mauritania
+territories.AG=Antigua e Barbuda
+territories.AF=Afghanistan
+territories.MP=Insulas Marianna del Nord
+territories.AE=Emiratos Arabe Unite
+territories.MN=Mongolia
+territories.MM=Birmania/Myanmar
+territories.ML=Mali
+territories.MK=Macedonia
+territories.MH=Insulas Marshall
+territories.MG=Madagascar
+territories.MD=Moldavia
+territories.MA=Marocco
+territories.YE=Yemen
+territories.LY=Libya
+territories.LV=Lettonia
+territories.LT=Lituania
+territories.LS=Lesotho
+territories.LR=Liberia
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Sancte Lucia
+territories.LB=Libano
+territories.KZ=Kazakhstan
+territories.KY=Insulas de Caiman
+territories.KR=Corea del Sud
+territories.KP=Corea del Nord
+territories.KN=Sancte Christophoro e Nevis
+territories.KM=Comoros
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Cambodgia
+territories.KG=Kirghizistan
+territories.KE=Kenya
+territories.JP=Japon
+territories.JO=Jordania
+territories.VU=Vanuatu
+territories.VE=Venezuela
+territories.VC=Sancte Vincente e le Grenadinas
+territories.IT=Italia
+territories.IS=Islanda
+territories.IR=Iran
+territories.IQ=Irak
+territories.UZ=Uzbekistan
+territories.IO=Territorio oceanic britanno-indian
+territories.UY=Uruguay
+territories.IN=India
+territories.IL=Israel
+territories.US=Statos Unite
+territories.IE=Irlanda
+territories.ID=Indonesia
+territories.UG=Uganda
+territories.UA=Ukraina
+territories.HU=Hungaria
+territories.HT=Haiti
+territories.HR=Croatia
+territories.TZ=Tanzania
+territories.HN=Honduras
+territories.TW=Taiwan
+territories.TV=Tuvalu
+territories.TT=Trinidad e Tobago
+territories.TR=Turchia
+territories.TO=tonga
+territories.TN=Tunisia
+territories.TM=Turkmenistan
+languages.es=espaniol
+languages.ku=kurdo
+languages.eo=esperanto
+languages.en=anglese
+languages.el=greco
+languages.ko=coreano
+languages.kn=kannada
+languages.km=Cambodiano
+languages.ka=georgiano
+languages.jv=javanese
+languages.fil=tagalog
+languages.pt=portugese
+languages.ps=pashto
+languages.de=germano
+languages.pl=polonese
+languages.da=danese
+languages.tlh=Klingon
+languages.ja=japonese
+languages.vi=vietnamese
+languages.cy=gallese
+languages.pa=punjabi
+languages.cs=checo
+languages.it=italiano
+languages.is=islandese
+languages.uz=uzbeco
+languages.or=oriya
+languages.ur=urdu
+languages.ca=catalano
+languages.ie=Interlingue
+languages.id=indonesiano
+languages.uk=ukrainiano
+languages.ia=interlingua
+languages.oc=occitano
+languages.ug=Uyghur
+languages.hy=armeniano
+languages.bs=bosniaco
+languages.br=breton
+languages.hu=hungaro
+languages.bn=bengali
+languages.hr=croato
+languages.tw=twi
+languages.bh=bihari
+languages.bg=bulgaro
+languages.no=norvegiano
+languages.be=bielorusso
+languages.nn=norvegiano (nynorsk)
+languages.hi=hindi
+languages.tr=turco
+languages.nl=nederlandese
+languages.zu=zulu
+languages.he=hebreo
+languages.tk=turkmeno
+languages.ne=nepalese
+languages.az=azerbaidzhani
+languages.ti=tigrinya
+languages.th=thai
+languages.en_US=anglese (SUA)
+languages.te=telugu
+languages.as=Assamese
+languages.ar=arabe
+languages.ta=tamil
+languages.gu=gujarati
+languages.am=amharico
+languages.mt=maltese
+languages.ms=malay
+languages.gn=guarani
+languages.sw=swahili
+languages.mr=marathi
+languages.sv=svedese
+languages.gl=gallego
+languages.su=sundanese
+languages.af=afrikaans
+languages.st=sesotho
+languages.mn=mongolico
+languages.sr=serbo
+languages.sq=albanese
+languages.ml=malayalam
+languages.mk=macedone
+languages.so=somali
+languages.gd=scoto gaelic
+languages.sl=sloveno
+languages.sk=slovaco
+languages.ga=irlandese
+languages.si=sinhalese
+languages.sh=serbocroate
+languages.yi=yiddish
+languages.sd=sindhi
+languages.fy=frisiano
+languages.sa=sanscrito
+languages.fr=francese
+languages.lv=letton
+languages.lt=lithuano
+languages.fo=faroese
+languages.ru=russo
+languages.lo=laotiano
+languages.ln=lingala
+languages.fi=finnese
+languages.ro=romaniano
+languages.fa=persiano
+languages.la=latino
+languages.xh=xhosa
+languages.en_GB=anglese (RU)
+languages.eu=basco
+languages.ky=kirghizo
+languages.et=estoniano
index bd017211bb4792b431e98c78e1c538e8ca0424fd..29b9ed97dc9520f217930d79e1ce0caf017656b8 100644 (file)
@@ -8,18 +8,88 @@
 decimalSeparator=,
 groupingSeparator=.
 currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesDisplayName.CHF=Franc Swiss
+currenciesDisplayName.AUD=Dolar Australia
+currenciesDisplayName.FJD=Dollar Fiji
+currenciesDisplayName.RUB=Rubel Rusia
+currenciesDisplayName.CZK=Koruna Czech
+currenciesDisplayName.THB=Baht Thailand
+currenciesDisplayName.SEK=Kronor Swedia
+currenciesDisplayName.HRK=Kuna Kroasia
+currenciesDisplayName.PLN=NewZloty Polandia
+currenciesDisplayName.SKK=Koruna Slovakia
+currenciesDisplayName.MAD=Dirham Maroko
+currenciesDisplayName.TWD=Dolar Taiwan Baru
+currenciesDisplayName.MYR=Ringgit Malaysia
+currenciesDisplayName.HUF=Forint Hungaria
+currenciesDisplayName.BND=Dollar Brunei
+currenciesDisplayName.UAH=Hryvnia Ukrania
+currenciesDisplayName.INR=Rupee India
+currenciesDisplayName.AED=Dirham Uni Emirat Arab
+currenciesDisplayName.SAR=Real Saudi
+currenciesDisplayName.CAD=Dolar Kanada
+currenciesDisplayName.USD=Dolar Amerika
+currenciesDisplayName.BGN=Lev Bulgaria
+currenciesDisplayName.JPY=Yen Jepang
+currenciesDisplayName.GBP=Pondsterling Inggris
+currenciesDisplayName.PKR=Rupee Pakistan
+currenciesDisplayName.PHP=Peso Filipina
+currenciesDisplayName.PEN=Nuevo Sol Peruvian
+currenciesDisplayName.FRF=Frank Prancis
+currenciesDisplayName.NOK=Kroner Norwegia
+currenciesDisplayName.EUR=Euro
+currenciesDisplayName.HKD=Dolar Hong Kong
+currenciesDisplayName.IDR=Rupiah Indonesia
+currenciesDisplayName.ZAR=Rand Afrika Selatan
+currenciesDisplayName.SGD=Dolar Singapura
+currenciesDisplayName.MXN=Peso Meksiko
+currenciesDisplayName.TRY=Lira Turki Baru
+currenciesDisplayName.CLP=Peso Chili
+currenciesDisplayName.COP=Peso Kolombia
+currenciesDisplayName.KRW=Won Korea Selatan
+currenciesDisplayName.SIT=Tolar Slovenia
+currenciesDisplayName.EEK=Kroon Estonia
+currenciesDisplayName.RSD=Dinar Serbia
+currenciesDisplayName.TRL=Lira Turki
+currenciesDisplayName.BRL=Real Brazil
+currenciesDisplayName.DEM=Mark Jerman
+currenciesDisplayName.VEB=Bolivar Venezuela
+currenciesDisplayName.ARS=Peso Argentina
+currenciesDisplayName.CNY=Yuan Renminbi
+currenciesDisplayName.DKK=Kroner Denmark
+currenciesDisplayName.MTL=Lira Malta
+currenciesDisplayName.ILS=Shekel Israel
+currenciesDisplayName.VND=Dong Vietnam
+currenciesDisplayName.BOB=Boliviano Bolivia
+currenciesDisplayName.NZD=Dolar New Zealand
+currenciesDisplayName.RON=Leu Rumania Baru
+currenciesDisplayName.KES=Shilling Kenya
+currenciesDisplayName.LTL=Litas Lithuania
+currenciesDisplayName.EGP=Pound Mesir
 currenciesSymbol.IDR=Rp
-shortMonths=Jan®Feb®Mar®Apr®Mei®Jun®Jul®Agu®Sep®Okt®Nov®Des®®
-months=Januari®Februari®Maret®April®Mei®Juni®Juli®Agustus®September®Oktober®November®Desember®®
-shortWeekdays=®Min®Sen®Sel®Rab®Kam®Jum®Sab®
-weekdays=®Minggu®Senin®Selasa®Rabu®Kamis®Jumat®Sabtu®
-firstDayOfWeek=mon
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMei\u00aeJun\u00aeJul\u00aeAgu\u00aeSep\u00aeOkt\u00aeNov\u00aeDes\u00ae\u00ae
+months=Januari\u00aeFebruari\u00aeMaret\u00aeApril\u00aeMei\u00aeJuni\u00aeJuli\u00aeAgustus\u00aeSeptember\u00aeOktober\u00aeNovember\u00aeDesember\u00ae\u00ae
+shortWeekdays=\u00aeMin\u00aeSen\u00aeSel\u00aeRab\u00aeKam\u00aeJum\u00aeSab\u00ae
+weekdays=\u00aeMinggu\u00aeSenin\u00aeSelasa\u00aeRabu\u00aeKamis\u00aeJumat\u00aeSabtu\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd MMM yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=H:mm
+mediumTimeFormat=H:mm:ss
+longTimeFormat=H:mm:ss z
+fullTimeFormat=H:mm:ss z
+territories.TL=Timor Timur
 territories.TK=Tokelau
 territories.TJ=Tajikistan
 territories.TH=Thailand
 territories.TG=Togo
+territories.TF=Wilayah Prancis Selatan
 territories.GY=Guyana
 territories.TD=Chad
+territories.TC=Kepulauan Turks dan Caicos
 territories.GW=Guinea-Bissau
 territories.GU=Guam
 territories.GT=Guatemala
@@ -37,6 +107,7 @@ territories.ST=Sao Tome dan Principe
 territories.GI=Gibraltar
 territories.GH=Ghana
 territories.SR=Suriname
+territories.GG=Guernsey
 territories.GF=Guyana Perancis
 territories.GE=Georgia
 territories.SO=Somalia
@@ -64,6 +135,7 @@ territories.FK=Kepulauan Falkland
 territories.RU=Rusia
 territories.FJ=Fiji
 territories.FI=Finlandia
+territories.RS=Serbia
 territories.RO=Romania
 territories.RE=R\u00e9union
 territories.ET=Ethiopia
@@ -99,7 +171,7 @@ territories.CX=Pulau Christmas
 territories.CV=Tanjung Verde
 territories.PA=Panama
 territories.CU=Kuba
-territories.CS=Serbia
+territories.CS=Serbia dan Montenegro
 territories.CR=Kosta Rika
 territories.CO=Kolombia
 territories.CN=Cina
@@ -145,6 +217,7 @@ territories.NG=Nigeria
 territories.NF=Kepulauan Norfolk
 territories.AZ=Azerbaijan
 territories.NE=Niger
+territories.AX=\ufffdLand Islands
 territories.NC=Kaledonia Baru
 territories.AW=Aruba
 territories.ZM=Zambia
@@ -168,14 +241,14 @@ territories.MU=Mauritius
 territories.MT=Malta
 territories.AI=Anguilla
 territories.MS=Montserrat
-territories.AG=Antigua dan Barbuda
 territories.MR=Mauritania
-territories.AF=Afghanistan
+territories.AG=Antigua dan Barbuda
 territories.MQ=Martinique
-territories.AE=Uni Emirat Arab
+territories.AF=Afghanistan
 territories.MP=Kepualuan Mariana Utara
-territories.AD=Andora
+territories.AE=Uni Emirat Arab
 territories.MO=Makao S.A.R. Cina
+territories.AD=Andora
 territories.MN=Mongolia
 territories.MM=Myanmar
 territories.ML=Mali
@@ -183,6 +256,7 @@ territories.MK=Macedonia
 territories.YT=Mayotte
 territories.MH=Kepulauan Marshall
 territories.MG=Madagaskar
+territories.ME=Montenegro
 territories.MD=Moldova
 territories.MC=Monaco
 territories.MA=Maroko
@@ -215,6 +289,7 @@ territories.JP=Jepang
 territories.JO=Yordania
 territories.JM=Jamaika
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=Kepulauan U.S. Virgin
 territories.VG=Kepulauan British Virgin
@@ -226,12 +301,15 @@ territories.IS=Islandia
 territories.IR=Iran
 territories.IQ=Iraq
 territories.UZ=Uzbekistan
+territories.IO=British Indian Ocean Territory
 territories.UY=Uruguay
 territories.IN=India
+territories.IM=Isle of Man
 territories.IL=Israel
 territories.US=Amerika Serikat
 territories.IE=Irlandia
 territories.ID=Indonesia
+territories.UM=Kepulauan minor sekitar Amerika Serikat
 territories.UG=Uganda
 territories.UA=Ukraina
 territories.HU=Hungaria
@@ -248,230 +326,507 @@ territories.TR=Turkey
 territories.TO=Tonga
 territories.TN=Tunisia
 territories.TM=Turkmenistan
+languages.gwi=Gwich'in
+languages.akk=Akkadien
+languages.eka=Ekajuk
+languages.ijo=Ijo
+languages.xh=Xhosa
+languages.sux=Sumeria
+languages.sus=Susu
+languages.mis=Bahasa Lain-lain
+languages.loz=Lozi
+languages.tog=Nyasa Tonga
+languages.pon=Pohnpeia
+languages.min=Minangkabau
+languages.suk=Sukuma
+languages.wo=Wolof
+languages.lol=Mongo
+languages.kut=Kutenai
+languages.mic=Micmac
+languages.wa=Walloon
+languages.kum=Kumyk
+languages.zap=Zapotek
+languages.ain=Ainu
+languages.cus=Cushitic Lain
+languages.jbo=Lojban
+languages.doi=Dogri
+languages.zza=Zaza
+languages.vo=Volap\u00fck
+languages.oto=Bahasa Otomia
+languages.vi=Vietnamese
+languages.vai=Vai
+languages.rar=Rarotongan
+languages.ve=Venda
+languages.rap=Rapanui
+languages.raj=Rajasthani
+languages.ota=Turki Ottoman
+languages.nzi=Nzima
+languages.nap=Neapolitan
+languages.uz=Uzbek
+languages.uga=Ugaritik
+languages.tmh=Tamashek
+languages.nai=Indian Amerika Utara Lain
+languages.nah=Nahuati
+languages.ur=Urdu
+languages.fat=Fanti
+languages.uk=Ukrainian
+languages.egy=Mesir Kuno
+languages.zxx=Tidak ada konten linguistik
+languages.ug=Uighur
+languages.fan=Fang
+languages.ssa=Nilo-Sahara Lain
+languages.mga=Irlandia Abad Pertengahan (900-1200)
+languages.bat=Baltik (Lainnya)
+languages.nyo=Nyoro
+languages.bas=Basa
+languages.nyn=Nyankole
+languages.nym=Nyamwezi
+languages.gsw=Jerman Swiss
+languages.hmn=Hmong
+languages.ban=Balin
+languages.osa=Osage
+languages.bal=Baluchi
+languages.ty=Tahitian
+languages.bai=Bahasa-bahasa Bamileke
+languages.tw=Twi
+languages.srr=Serer
+languages.tli=Tingit
+languages.tlh=Klingon
+languages.tt=Tatar
+languages.ts=Tsonga
+languages.srn=Sranan Tongo
+languages.bad=Banda
+languages.tr=Turkish
+languages.to=Tonga
+languages.tn=Tswana
+languages.tl=Tagalog
+languages.tk=Turkmen
+languages.ti=Tigrinya
+languages.th=Thai
+languages.kru=Kurukh
+languages.tg=Tajik
+languages.byn=Blin
+languages.te=Telugu
+languages.kro=Kru
+languages.csb=Kashubian
+languages.ta=Tamil
+languages.krl=Karelian
+languages.tkl=Tokelau
+languages.efi=Efik
+languages.sw=Swahili
+languages.sv=Swedia
+languages.su=Sundan
+languages.krc=Karachay-Balkar
+languages.st=Sotho Selatan
+languages.ss=Swati
+languages.sr=Serbian
+languages.sq=Albanian
+languages.men=Mende
+languages.crp=Kreol dan Pidgins Lain
+languages.so=Somali
+languages.afh=Afrihili
+languages.sn=Shona
+languages.sm=Samoan
+languages.sl=Slovenian
+languages.grc=Yunani Kuno (sd 1453)
+languages.sk=Slovak
+languages.grb=Grebo
+languages.si=Sinhalese
+languages.sh=Serbo-Croatian
+languages.crh=Turki Krimea
+languages.afa=Afro-Asiatik (Lainnya)
+languages.sg=Sango
+languages.se=Northern Sami
+languages.sd=Sindhi
+languages.udm=Udmurt
+languages.sc=Sardinian
+languages.sa=Sanskrit
+languages.rw=Kinyarwanda
+languages.nwc=Newari Klasik
+languages.ru=Russian
+languages.mdr=Mandar
+languages.ro=Romanian
+languages.rn=Rundi
+languages.rm=Rhaeto-Romance
+languages.fr_CH=Prancis Swiss
+languages.mdf=Moksha
+languages.tiv=Tiv
+languages.fr_CA=Prancis Kanada
+languages.ady=Adyghe
+languages.zun=Zuni
+languages.kpe=Kpelle
+languages.qu=Quechua
+languages.tig=Tigre
+languages.son=Songhai
+languages.cpp=Kreol dan Pidgins Lain berbasis Portugis
+languages.rup=Aromanian
+languages.sog=Sogdien
+languages.ada=Adangme
+languages.kos=Kosrae
+languages.hit=Hittite
+languages.cpf=Kreol dan Pidgins Lain berbasis Prancis
+languages.cpe=Kreol dan Pidgins Lain Berbasis Inggris
+languages.him=Himachali
+languages.kok=Konkani
+languages.hil=Hiligaynon
+languages.got=Gothik
+languages.gor=Gorontalo
+languages.gon=Gondi
+languages.din=Dinka
+languages.nub=Bahasa Nubia
+languages.pt=Portugis
+languages.ps=Pashto (Pushto)
+languages.fur=Friuli
+languages.phn=Phoenicia
+languages.de_CH=Jerman Tinggi Swiss
+languages.goh=Jerman Kuno (kl.750-1050)
+languages.snk=Soninke
+languages.cop=Koptik
+languages.yap=Yap
+languages.ach=Acoli
+languages.yao=Yao
+languages.phi=Filipina (Lainnya)
+languages.pl=Polish
+languages.ace=Aceh
+languages.pi=Pali
+languages.pt_PT=Portugis (Iberia)
+languages.pa=Punjabi
+languages.bug=Bugis
+languages.iba=Iban
+languages.sms=Skolt Sami
+languages.bua=Buriat
+languages.mas=Masai
+languages.smn=Inari Sami
+languages.os=Ossetic
+languages.map=Austronesia
+languages.or=Oriya
+languages.man=Mandingo
+languages.smj=Lule Sami
+languages.smi=Bahasa Sami Lain
+languages.mak=Makassar
+languages.om=Oromo
+languages.mai=Maithili
+languages.oj=Ojibwa
+languages.mag=Magahi
+languages.mad=Madura
+languages.sma=Sami Selatan
+languages.oc=Bahasa Occit
+languages.nso=Sotho Utara
+languages.btk=Batak
+languages.myv=Erzya
+languages.es_ES=Spanyol (Iberia)
+languages.de_AT=Jerman Austria
+languages.dgr=Dogrib
+languages.ny=Nyanja; Chichewa; Chewa
+languages.myn=Bahasa Mayan
+languages.nv=Navajo
+languages.kmb=Kimbundu
+languages.nr=Ndebele Selatan
+languages.gmh=Jerman, Abad Pertengahan (kl.1050-1500)
+languages.no=Norwegian
+languages.nn=Norwegian Nynorsk
+languages.nl=Belanda
+languages.root=Root
+languages.ng=Ndonga
+languages.sla=Slavic Lain
+languages.ne=Nepal
+languages.nd=Ndebele Utara
+languages.cmc=Bahasa Chamic
+languages.tet=Tetum
+languages.nb=Norwegian Bokm\u00e5l
+languages.na=Nauru
+languages.ter=Tereno
+languages.tem=Timne
+languages.my=Burma
+languages.lez=Lezghia
+languages.mt=Maltese
+languages.frs=Frisia Timur
+languages.peo=Persia Kuno (kl.600-400 SM.)
+languages.ms=Malay
+languages.frr=Frisia Utara
+languages.mr=Marathi
+languages.fro=Perancis Kuno (842-kl.1400)
+languages.mo=Moldavian
+languages.mn=Mongolian
+languages.frm=Perancis, Abad Pertengahan (kl.1400-1600)
+languages.ml=Malayalam
+languages.jrb=Judeo-Arab
+languages.mk=Macedonian
+languages.mi=Maori
+languages.mh=Marshall
+languages.mg=Malagasi
+languages.nqo=N'Ko
+languages.mwr=Marwari
+languages.bra=Braj
+languages.mwl=Mirand
+languages.den=Slave
+languages.lv=Latvian
+languages.lu=Luba-Katanga
+languages.del=Delaware
+languages.lt=Lithuania
+languages.lo=Lao
+languages.ln=Lingala
+languages.li=Limburg
+languages.ewo=Ewondo
+languages.lg=Ganda
 languages.lb=Luxembourg
-languages.ast=Astur
 languages.la=Latin
-languages.xh=Xhosa
+languages.jpr=Judeo-Persia
+languages.vot=Votik
+languages.sit=Sino-Tibet Lain
 languages.ky=Kirghiz
 languages.kw=Cornish
 languages.kv=Komi
 languages.ku=Kurdi
+languages.sio=Bahasa Siouan
 languages.ks=Kashmir
 languages.kr=Kanuri
+languages.awa=Awadhi
 languages.ko=Korea
 languages.kn=Kannada
 languages.km=Khmer
+languages.en_GB=Inggris (British)
 languages.kl=Kalaallisut
 languages.kk=Kazakh
+languages.rom=Romany
 languages.kj=Kuanyama
+languages.sid=Sidamo
 languages.ki=Kikuyu
 languages.kg=Kongo
-languages.grc=Yunani Kuno (sd 1453)
-languages.wo=Wolof
-languages.art=Buatan (Lainnya)
+languages.non=Norse Lama
 languages.ka=Georgian
-languages.arn=Araucan
-languages.gem=Jermanik (Lainnya)
-languages.afa=Afro-Asiatik (Lainnya)
+languages.mus=Creek
+languages.roa=Romance Lain
+languages.nog=Nogai
+languages.mun=Bahasa Munda
+languages.mul=Beberapa Bahasa
 languages.jv=Jawa
-languages.wa=Walloon
-languages.arc=Aram
-languages.cel=Celtic (Lainnya)
-languages.vo=Volap\u00fck
+languages.gil=Gilbert
+languages.znd=Zande
+languages.shn=Shan
+languages.fon=Fon
+languages.xal=Kalmyk
+languages.aus=Bahasa-bahasa Australia
+languages.kho=Khotan
 languages.ja=Japanese
-languages.vi=Vietnamese
-languages.ve=Venda
+languages.khi=Khoisa Lain
+languages.pau=Palaua
+languages.chy=Cheyenne
+languages.tai=Tai Lain
+languages.iu=Inuktitut
+languages.pap=Papiamento
 languages.it=Italian
+languages.sgn=Bahasa Isyarat
 languages.is=Icelandic
-languages.uz=Uzbek
+languages.kha=Khasi
+languages.chr=Cherokee
+languages.pam=Pampanga
+languages.pal=Pahlavi
+languages.chp=Chipewyan
 languages.io=Ido
+languages.cho=Choctaw
+languages.chn=Jargon Chinook
+languages.chm=Mari
+languages.tyv=Tuvinia
+languages.bnt=Bantu
+languages.pag=Pangasina
 languages.ik=Inupiaq
+languages.chk=Chuuke
 languages.ii=Sichuan Yi
-languages.ur=Urdu
+languages.haw=Hawaii
+languages.lam=Lamba
 languages.ig=Igbo
+languages.chg=Chagatai
+languages.sga=Irlandia Lama
+languages.paa=Papuan (Lainnya)
 languages.ie=Interlingue
-languages.kos=Kosrae
 languages.id=Bahasa Indonesia
+languages.lah=Lahnda
+languages.day=Dayak
+languages.chb=Chibcha
 languages.ia=Interlingua
-languages.uk=Ukrainian
-languages.kok=Konkani
-languages.ug=Uighur
+languages.lad=Ladino
 languages.hz=Herero
+languages.hai=Haida
+languages.dar=Dargwa
 languages.hy=Armenia
-languages.got=Gothik
+languages.ath=Bahasa-bahasa Athapaska
 languages.hu=Hungaria
-languages.phi=Filipina (Lainnya)
+languages.ht=Haiti
+languages.dak=Dakota
 languages.hr=Kroasia
 languages.ho=Hiri Motu
-languages.ty=Tahitian
-languages.apa=Bahasa-bahasa Apache
-languages.tw=Twi
-languages.fur=Friuli
-languages.goh=Jerman Kuno (kl.750-1050)
-languages.tt=Tatar
 languages.hi=Hindi
-languages.ts=Tsonga
-languages.tr=Turkish
+languages.dyu=Dyula
 languages.he=Ibrani
-languages.cop=Koptik
-languages.tn=Tswana
-languages.tl=Tagalog
+languages.ast=Astur
+languages.kfo=Koro
 languages.ha=Hausa
-languages.tk=Turkmen
-languages.ti=Tigrinya
-languages.ace=Aceh
-languages.th=Thai
-languages.tg=Tajik
-languages.te=Telugu
+languages.wen=Bahasa Serbia
 languages.gv=Manx
-languages.ta=Tamil
-languages.syr=Syria
 languages.gu=Gujarati
-languages.map=Austronesia
-languages.bug=Bugis
-languages.mak=Makassar
+languages.sem=Semitic Lain
+languages.sel=Selkup
+languages.iro=Bahasa Iroquoia
 languages.gn=Guarani
-languages.sw=Swahili
 languages.gl=Gallegan
-languages.sv=Swedia
-languages.su=Sundan
-languages.enm=Inggris, Abad Pertengahan (1100-1500)
-languages.ss=Swati
-languages.mad=Madura
-languages.sr=Serbian
-languages.sq=Albanian
-languages.so=Somali
+languages.en_CA=Inggris Kanada
+languages.arw=Arawak
+languages.gez=Geez
+languages.art=Buatan (Lainnya)
 languages.gd=Gaelik Skotlandia
-languages.sn=Shona
-languages.sm=Samoan
-languages.sl=Slovenian
+languages.ira=Iran Lain
 languages.ga=Irlandia
-languages.sk=Slovak
-languages.si=Sinhalese
-languages.sh=Serbo-Croatian
-languages.sg=Sango
-languages.se=Northern Sami
+languages.arp=Arapaho
+languages.arn=Araucan
 languages.fy=Frisi
-languages.sd=Sindhi
-languages.sc=Sardinian
-languages.sa=Sanskrit
-languages.cau=Kaukasia (Lainnya)
-languages.ang=Inggris Kuno (kl.450-1100)
+languages.bla=Siksika
+languages.gem=Jermanik (Lainnya)
+languages.ypk=Bahasa Yupik
+languages.arc=Aram
 languages.fr=Perancis
-languages.car=Karib
 languages.fo=Faro
-languages.rw=Kinyarwanda
-languages.gmh=Jerman, Abad Pertengahan (kl.1050-1500)
-languages.ru=Russian
+languages.cel=Celtic (Lainnya)
 languages.fj=Fiji
 languages.fi=Finlandia
-languages.cai=India Amerika Tengah (Lainnnya)
 languages.ff=Fulah
-languages.ro=Romanian
-languages.rn=Rundi
-languages.rm=Rhaeto-Romance
+languages.tvl=Tuvalu
+languages.ceb=Cebuano
 languages.fa=Persia
-languages.peo=Persia Kuno (kl.600-400 SM.)
+languages.en_AU=Inggris Australia
+languages.zh_Hans=Cina Sederhana
+languages.zh_Hant=Cina Tradisional
 languages.eu=Basque
-languages.lez=Lezghia
+languages.sco=Skotlandia
 languages.et=Estonian
+languages.scn=Sisilia
 languages.es=Spanyol
 languages.eo=Esperanto
 languages.en=Inggris
 languages.el=Yunani
-languages.qu=Quechua
-languages.jrb=Judeo-Arab
-languages.fro=Perancis Kuno (842-kl.1400)
-languages.frm=Perancis, Abad Pertengahan (kl.1400-1600)
+languages.tut=Altaic Lain
+languages.niu=Niuea
+languages.tup=Bahasa Tupi
 languages.ee=Ewe
-languages.mkh=Mon-Khmer (Lainnya)
+languages.tum=Tumbuka
+languages.nl_BE=Flemish
+languages.es_419=Spanyol Amerika Latin
+languages.mos=Mossi
 languages.dz=Dzongkha
+languages.kcg=Tyap
+languages.nic=Niger - Kordofania Lain
+languages.lus=Lushai
+languages.fiu=Finno - Ugria Lain
 languages.dv=Divehi
-languages.alg=Bahasa Algonquia
-languages.pt=Portugis
-languages.ps=Pashto (Pushto)
+languages.nia=Nias
+languages.moh=Mohawk
+languages.luo=Luo
+languages.lun=Lunda
+languages.apa=Bahasa-bahasa Apache
+languages.fil=Filipina
+languages.lui=Luiseno
+languages.hup=Hupa
+languages.cch=Atsam
+languages.bin=Bini
 languages.de=Jerman
-languages.pl=Polish
+languages.lua=Luba-Lulua
+languages.bik=Bikol
+languages.was=Washo
+languages.und=Bahasa Tidak Dikenal atau Tidak Valid
+languages.war=Waray
 languages.da=Denmark
-languages.pi=Pali
-languages.sux=Sumeria
-languages.jpr=Judeo-Persia
+languages.dum=Belanda Menengah
+languages.wal=Walamo
+languages.mno=Bahasa Manobo
+languages.wak=Bahasa Wakasha
+languages.sat=Santali
 languages.cy=Welsh
-languages.akk=Akkadien
+languages.sas=Sasak
+languages.kbd=Kabardian
 languages.cv=Chuvash
-languages.pa=Punjabi
+languages.cu=Church Slavic
+languages.mni=Manipuri
 languages.cs=Ceko
+languages.sam=Aramaic Samaritan
 languages.cr=Cree
+languages.sal=Bahasa Salisha
+languages.dua=Duala
 languages.co=Korsika
-languages.mis=Bahasa Lain-lain
-languages.os=Ossetic
+languages.sai=Indian Amerika Selatan Lain
+languages.mnc=Manchu
+languages.sah=Yakut
+languages.kaw=Kawi
+languages.inh=Ingush
+languages.gba=Gbaya
+languages.sad=Sandawe
 languages.ch=Chamorro
-languages.or=Oriya
+languages.ine=Indo-Eropa Lain
+languages.bho=Bhojpuri
+languages.enm=Inggris, Abad Pertengahan (1100-1500)
+languages.kar=Karen
+languages.inc=Indic Lain
 languages.ce=Chechen
-languages.om=Oromo
+languages.gay=Gayo
 languages.ca=Catalan
-languages.oj=Ojibwa
+languages.umb=Umbundu
+languages.syr=Syria
+languages.kam=Kamba
+languages.anp=Angika
+languages.tsi=Tsimshian
+languages.kaj=Jju
+languages.ang=Inggris Kuno (kl.450-1100)
+languages.kac=Kachin
+languages.cau=Kaukasia (Lainnya)
+languages.kab=Kabyle
+languages.kaa=Kara-Kalpak
 languages.bs=Bosnia
+languages.car=Karib
 languages.br=Breton
 languages.bo=Tibet
-languages.gil=Gilbert
-languages.ny=Nyanja; Chichewa; Chewa
 languages.bn=Bengal
 languages.bm=Bambara
-languages.nv=Navajo
+languages.gaa=Ga
+languages.cai=India Amerika Tengah (Lainnnya)
 languages.bi=Bislama
 languages.bh=Bihari
 languages.bg=Bulgaria
 languages.be=Belarusia
-languages.no=Norwegian
-languages.nn=Norwegian Nynorsk
-languages.nl=Belanda
+languages.pt_BR=Portugis Brasil
+languages.cad=Caddo
 languages.ba=Bashkir
 languages.zu=Zulu
-languages.ng=Ndonga
+languages.zen=Zenaga
+languages.pro=Proven\u00e7al Lama
+languages.hsb=Sorbia Atas
 languages.az=Azerbaijan
-languages.ne=Nepal
 languages.ay=Aymara
-languages.nb=Norwegian Bokm\u00e5l
 languages.av=Avarik
-languages.na=Nauru
-languages.aus=Bahasa-bahasa Australia
 languages.as=Assam
+languages.dsb=Sorbia Rendahan
 languages.ar=Arab
+languages.ilo=Iloko
+languages.elx=Elamite
 languages.zh=Cina
-languages.my=Burma
+languages.an=Aragon
+languages.pra=Bahasa Prakrit
 languages.am=Amharik
+languages.new=Newari
 languages.ak=Akan
 languages.za=Zhuang
-languages.paa=Papuan (Lainnya)
-languages.mt=Maltese
-languages.ms=Malay
-languages.mr=Marathi
+languages.en_US=Inggris A.S.
 languages.af=Afrikaans
 languages.ae=Avestan
-languages.mo=Moldavian
-languages.haw=Hawaii
-languages.mn=Mongolian
+languages.alt=Altai Selatan
 languages.ab=Abkhaz
-languages.ml=Malayalam
 languages.aa=Afar
-languages.mk=Macedonian
-languages.chk=Chuuke
-languages.mi=Maori
-languages.mh=Marshall
-languages.mg=Malagasi
-languages.mga=Irlandia Abad Pertengahan (900-1200)
 languages.yo=Yoruba
-languages.egy=Mesir Kuno
+languages.alg=Bahasa Algonquia
+languages.ale=Aleut
+languages.mkh=Mon-Khmer (Lainnya)
 languages.yi=Yiddish
-languages.lv=Latvian
-languages.bat=Baltik (Lainnya)
-languages.lu=Luba-Katanga
-languages.ath=Bahasa-bahasa Athapaska
-languages.lt=Lithuania
-languages.ban=Balin
-languages.lo=Lao
-languages.ln=Lingala
-languages.bai=Bahasa-bahasa Bamileke
-languages.li=Limburg
-languages.lg=Ganda
+languages.dra=Dravidia Lain
+languages.ber=Berber
+languages.nds=Jerman Rendah
+languages.bem=Bemba
+languages.bej=Beja
+languages.tpi=Tok Pisin
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ig.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ig.properties
new file mode 100644 (file)
index 0000000..fd205fa
--- /dev/null
@@ -0,0 +1,23 @@
+# LocaleInformation_ig.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=Na\u1ecbra
+currenciesSymbol.NGN=\u20a6
+shortMonths=Jen\u00aeFeb\u00aeMaa\u00aeEpr\u00aeMee\u00aeJuu\u00aeJul\u00ae\u1eccg\u1ecd\u00aeSep\u00ae\u1ecckt\u00aeNov\u00aeDis\u00ae\u00ae
+months=Jen\u1ee5war\u1ecb\u00aeFebr\u1ee5war\u1ecb\u00aeMaach\u1ecb\u00aeEprel\u00aeMee\u00aeJuun\u00aeJula\u1ecb\u00ae\u1eccg\u1ecd\u1ecdst\u00aeSeptemba\u00ae\u1eccktoba\u00aeNovemba\u00aeDisemba\u00ae\u00ae
+shortWeekdays=\u00ae\u1ee4ka\u00aeM\u1ecdn\u00aeTiu\u00aeWen\u00aeT\u1ecd\u1ecd\u00aeFra\u1ecb\u00aeSat\u00ae
+weekdays=\u00aeMb\u1ecds\u1ecb \u1ee4ka\u00aeM\u1ecdnde\u00aeTiuzdee\u00aeWenezdee\u00aeT\u1ecd\u1ecdzdee\u00aeFra\u1ecbdee\u00aeSat\u1ecddee\u00ae
+eras=T.K.\u00aeA.K.\u00ae
+ampms=A.M.\u00aeP.M.\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ii.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ii.properties
new file mode 100644 (file)
index 0000000..d3e5e10
--- /dev/null
@@ -0,0 +1,43 @@
+# LocaleInformation_ii.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=.
+groupingSeparator=,
+currenciesDisplayName.XXX=\ua149\ua00b\ua41a\ua320\ua30b\ua180\ua386\ua0c0\ua00b\ua201\ua010\ua320
+currenciesSymbol.XXX=XXX
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=\ua2cd\ua1aa\u00ae\ua44d\ua1aa\u00ae\ua315\ua1aa\u00ae\ua1d6\ua1aa\u00ae\ua26c\ua1aa\u00ae\ua0d8\ua1aa\u00ae\ua3c3\ua1aa\u00ae\ua246\ua1aa\u00ae\ua22c\ua1aa\u00ae\ua2b0\ua1aa\u00ae\ua2b0\ua2aa\ua1aa\u00ae\ua2b0\ua44b\ua1aa\u00ae\u00ae
+shortWeekdays=\u00ae\ua18f\ua44d\u00ae\ua18f\ua2cd\u00ae\ua18f\ua44d\u00ae\ua18f\ua315\u00ae\ua18f\ua1d6\u00ae\ua18f\ua26c\u00ae\ua18f\ua0d8\u00ae
+weekdays=\u00ae\ua46d\ua18f\ua44d\u00ae\ua18f\ua282\ua2cd\u00ae\ua18f\ua282\ua44d\u00ae\ua18f\ua282\ua315\u00ae\ua18f\ua282\ua1d6\u00ae\ua18f\ua282\ua26c\u00ae\ua18f\ua282\ua0d8\u00ae
+eras=\ua0c5\ua2ca\ua0bf\u00ae\ua0c5\ua2ca\ua282\u00ae
+ampms=\ua3b8\ua111\u00ae\ua06f\ua2d2\u00ae
+longDateFormat=yyyy MMMM d
+territories.FR=\ua0d4\ua1e9
+territories.IN=\ua474\ua117
+territories.CN=\ua34f\ua1e9
+territories.DE=\ua113\ua1e9
+territories.GB=\ua471\ua1e9
+territories.BR=\ua020\ua46d
+territories.ZZ=\ua0c5\ua137\ua149\ua00b\ua41a\ua320
+territories.RU=\ua289\ua1c6\ua326
+territories.JP=\ua3dd\ua02a
+territories.US=\ua0b0\ua1e9
+territories.IT=\ua474\ua10a\ua1ba
+languages.zh=\ua34f\ua1e9\ua259
+languages.en=\ua471\ua1e9\ua259
+languages.pt_BR=\ua020\ua45f\ua04d\ua128\ua478\ua259
+languages.ru=\ua289\ua1e9\ua259
+languages.it=\ua474\ua10a\ua1ba\ua259
+languages.fr=\ua0d4\ua1e9\ua259
+languages.und=\ua149\ua00b\ua320\ua147\ua0b7
+languages.de=\ua113\ua1e9\ua259
+languages.es=\ua46d\ua020\ua478\ua259
+languages.ja=\ua3dd\ua02a\ua259
+languages.ii=\ua188\ua320\ua259
+languages.zh_Hans=\ua21d\ua42f\ua34f\ua1e9\ua259
+languages.zh_Hant=\ua00e\ua2cf\ua34f\ua1e9\ua259
+languages.pt=\ua04d\ua128\ua478\ua259
index c3ca54f41cfc2cea233e271092bdafff3e8b5427..32fac9e3166d94fca265c4fa76f0a717cbf932f7 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=\u00d710^
+infinity=\u221e
+NaN=EiTa
+minusSign=\u2212
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=.
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
 currenciesDisplayName.YDD=Jemenskur denari
-currenciesDisplayName.TWD=Ta\u00edvanskur dalur
+currenciesDisplayName.KES=ken\u00edskur skildingur
+currenciesDisplayName.TWD=ta\u00edvanskur n\u00fd dalur
 currenciesDisplayName.LKR=Sr\u00edl\u00f6nsk r\u00fap\u00eda
-currenciesDisplayName.RWF=Rwandan Franc
 currenciesDisplayName.TJS=Tajikistan Somoni
-currenciesDisplayName.SDP=S\u00fadanskt pund
+currenciesDisplayName.RWF=Rwandan Franc
 currenciesDisplayName.TJR=Tadsjiksk r\u00fabla
+currenciesDisplayName.SDP=S\u00fadanskt pund
 currenciesDisplayName.GRD=Drakma
 currenciesDisplayName.IEP=\u00cdrskt pund
-currenciesDisplayName.ARS=Argent\u00edskur pesi
-currenciesDisplayName.SDD=S\u00fadanskur denari
+currenciesDisplayName.ARS=argent\u00ednskur pes\u00f3
 currenciesDisplayName.ARP=Argent\u00edskur pesi (1983-1985)
+currenciesDisplayName.SDD=S\u00fadanskur denari
 currenciesDisplayName.FKP=Falklenskt pund
-currenciesDisplayName.EEK=Eistnesk kr\u00f3na
+currenciesDisplayName.EEK=eistnesk kr\u00f3na
 currenciesDisplayName.HKD=Hong Kong-dalur
-currenciesDisplayName.ARA=Argentine Austral
 currenciesDisplayName.IQD=\u00cdrakskur denari
+currenciesDisplayName.ARA=Argentine Austral
 currenciesDisplayName.SCR=Seychelles r\u00fap\u00eda
 currenciesDisplayName.VUV=Vanuatu Vatu
-currenciesDisplayName.DKK=D\u00f6nsk kr\u00f3na
 currenciesDisplayName.KPW=Nor\u00f0urk\u00f3reskt vonn
-currenciesDisplayName.IDR=Ind\u00f3nes\u00edsk r\u00fap\u00eda
+currenciesDisplayName.DKK=d\u00f6nsk kr\u00f3na
+currenciesDisplayName.IDR=ind\u00f3nes\u00edsk r\u00fap\u00eda
 currenciesDisplayName.LVR=Lettnesk r\u00fabla
-currenciesDisplayName.AED=Arab\u00edskt d\u00edrham
+currenciesDisplayName.AED=sameinu\u00f0u arab\u00edsku furstad\u00e6min dirham
 currenciesDisplayName.LVL=Lat
-currenciesDisplayName.RUR=R\u00fassnesk r\u00fabla
-currenciesDisplayName.ADP=Andorrskur peseti
-currenciesDisplayName.FJD=F\u00eddjeyskur dalur
+currenciesDisplayName.RUR=R\u00fassnesk r\u00fabla (1991-1998)
 currenciesDisplayName.MOP=Macao Pataca
-currenciesDisplayName.RUB=R\u00fassnesk r\u00fabla
+currenciesDisplayName.FJD=Fiji-dalur
+currenciesDisplayName.ADP=Andorrskur peseti
+currenciesDisplayName.RUB=r\u00fassnesk r\u00fabla
 currenciesDisplayName.DJF=Djibouti Franc
 currenciesDisplayName.SBD=Sal\u00f3monseyskur dalur
 currenciesDisplayName.ECS=Ecuador Sucre
-currenciesDisplayName.THB=Bat
+currenciesDisplayName.THB=ta\u00edlenskur baht
+currenciesDisplayName.PHP=filippeyskir pes\u00f3ar
 currenciesDisplayName.LUF=L\u00faxemborgarfranki
 currenciesDisplayName.FIM=Finnskt mark
 currenciesDisplayName.TTD=Tr\u00ednidad og T\u00f3bag\u00f3-dalur
 currenciesDisplayName.MNT=T\u00far\u00edkur
-currenciesDisplayName.SAR=S\u00e1diarab\u00edskt r\u00edal
 currenciesDisplayName.UAK=Ukrainian Karbovanetz
-currenciesDisplayName.UAH=Hrinja
+currenciesDisplayName.SAR=s\u00e1diarab\u00edskt r\u00edal
+currenciesDisplayName.UAH=\u00fakra\u00ednsk hrinja
 currenciesDisplayName.HUF=F\u00f3rinta
-currenciesDisplayName.COP=K\u00f3lumb\u00edskur pesi
+currenciesDisplayName.COP=k\u00f3lumb\u00edskur pes\u00f3
 currenciesDisplayName.LTT=Lithuanian Talonas
 currenciesDisplayName.PTE=Port\u00fagalskur sk\u00fati
-currenciesDisplayName.GBP=Sterlingspund
-currenciesDisplayName.INR=Indversk r\u00fap\u00eda
-currenciesDisplayName.LTL=L\u00edt
+currenciesDisplayName.GBP=bresk sterlingspund
+currenciesDisplayName.INR=indversk r\u00fap\u00eda
 currenciesDisplayName.XFU=Franskur franki, UIC
+currenciesDisplayName.LTL=lith\u00e1\u00edskir lita
 currenciesDisplayName.KZT=Kazakhstan Tenge
 currenciesDisplayName.BUK=B\u00farmverskt kjat
 currenciesDisplayName.XFO=Franskur gullfranki
 currenciesDisplayName.SYP=S\u00fdrlenskt pund
-currenciesDisplayName.MZE=M\u00f3samb\u00edskur sk\u00fati
 currenciesDisplayName.OMR=\u00d3manskt r\u00edal
+currenciesDisplayName.MZE=M\u00f3samb\u00edskur sk\u00fati
 currenciesDisplayName.NGN=Nigerian Naira
-currenciesDisplayName.CNY=J\u00faan
+currenciesDisplayName.CNY=k\u00ednverskus j\u00faan renminbi
 currenciesDisplayName.MAF=Marokk\u00f3skur franki
+currenciesDisplayName.RSD=serbneskur d\u00ednar
 currenciesDisplayName.GNF=G\u00edneufranki
-currenciesDisplayName.MAD=Marokk\u00f3skt d\u00edrham
-currenciesDisplayName.TRY=N\u00fd, tyrknesk l\u00edra
+currenciesDisplayName.MAD=marokk\u00f3skt d\u00edrham
+currenciesDisplayName.TRY=tyrknesk l\u00edra
 currenciesDisplayName.MMK=Mjanmarskt kjat
-currenciesDisplayName.MYR=Malaysian Ringgit
+currenciesDisplayName.MYR=malas\u00edskt ringgit
 currenciesDisplayName.LSL=Lesotho Loti
-currenciesDisplayName.TRL=Tyrknesk l\u00edra
+currenciesDisplayName.TRL=tyrknesk l\u00edra
 currenciesDisplayName.KMF=K\u00f3moreyskur franki
+currenciesDisplayName.CZK=t\u00e9kknesk kr\u00f3na
 currenciesDisplayName.ANG=Hollenskt Antillugyllini
-currenciesDisplayName.CZK=T\u00e9kknesk kr\u00f3na
 currenciesDisplayName.KYD=Caymaneyskur dalur
 currenciesDisplayName.BGN=Lef, n\u00fdtt
-currenciesDisplayName.CAD=Kanad\u00edskur dalur
 currenciesDisplayName.MXV=Mex\u00edk\u00f3skur pesi, UDI
+currenciesDisplayName.CAD=Kanadadalir
 currenciesDisplayName.BGL=Lef
-currenciesDisplayName.VEB=Venezuelan Bolivar
+currenciesDisplayName.VEB=venes\u00faelskir b\u00f3l\u00edvar
 currenciesDisplayName.MLF=Mal\u00edskur franki
-currenciesDisplayName.ILS=Sikill
 currenciesDisplayName.MXP=Mex\u00edk\u00f3skur silfurpesi  (1861-1992)
+currenciesDisplayName.ILS=\u00edsraelskur sikill
+currenciesDisplayName.MXN=mex\u00edk\u00f3skur pesi
 currenciesDisplayName.GYD=Gv\u00e6janskur dalur
-currenciesDisplayName.MXN=Mex\u00edk\u00f3skur pesi
 currenciesDisplayName.ILP=\u00cdsraelskt pund
-currenciesDisplayName.SKK=Sl\u00f3vak\u00edsk kr\u00f3na
 currenciesDisplayName.CYP=K\u00fdpverskt pund
+currenciesDisplayName.SKK=sl\u00f3vak\u00edsk kr\u00f3na
 currenciesDisplayName.XDR=S\u00e9rst\u00f6k dr\u00e1ttarr\u00e9ttindi
+currenciesDisplayName.PEN=per\u00faskar sol nuevo
 currenciesDisplayName.LRD=L\u00edber\u00edskur dalur
 currenciesDisplayName.AMD=Dramm
 currenciesDisplayName.BSD=Bahameyskur dalur
-currenciesDisplayName.HRK=K\u00fana
-currenciesDisplayName.CLP=Chileskur pesi
+currenciesDisplayName.HRK=kr\u00f3at\u00edskar k\u00fanur
+currenciesDisplayName.CLP=sileskur pes\u00f3
 currenciesDisplayName.XPF=P\u00f3lines\u00edskur franki
-currenciesDisplayName.FRF=Franskur franki
+currenciesDisplayName.FRF=franskur franki
 currenciesDisplayName.MKD=Maked\u00f3nskur denari
 currenciesDisplayName.CLF=Chilean Unidades de Fomento
 currenciesDisplayName.ALL=Lek
-currenciesDisplayName.BRL=Brasil\u00edskt r\u00edal
+currenciesDisplayName.BRL=brasil\u00edskt real
 currenciesDisplayName.TPE=T\u00edmorskur sk\u00fati
-currenciesDisplayName.DEM=\u00de\u00fdskt mark
-currenciesDisplayName.KWD=K\u00faveiskur denari
+currenciesDisplayName.DEM=\u00fe\u00fdskt mark
 currenciesDisplayName.XCD=Austur-Kar\u00edbahafsdalur
-currenciesDisplayName.SVC=El Salvador Colon
+currenciesDisplayName.KWD=K\u00faveiskur denari
 currenciesDisplayName.YUM=J\u00fag\u00f3slavneskur denari
-currenciesDisplayName.SIT=Sl\u00f3venskur dalur
-currenciesDisplayName.JPY=Jen
+currenciesDisplayName.SVC=El Salvador Colon
+currenciesDisplayName.SIT=sl\u00f3venskir tolar
+currenciesDisplayName.JPY=jap\u00f6nsk jen
 currenciesDisplayName.XOF=Mi\u00f0afr\u00edskur franki, BCEAO
-currenciesDisplayName.BEF=Belg\u00edskur franki
 currenciesDisplayName.GWE=Port\u00fagalskur, g\u00edneskur sk\u00fati
+currenciesDisplayName.BEF=Belg\u00edskur franki
 currenciesDisplayName.SUR=Soviet Rouble
+currenciesDisplayName.RON=r\u00famensk leu
 currenciesDisplayName.ROL=R\u00famenskt lei
 currenciesDisplayName.DDM=Austur\u00fe\u00fdskt mark
-currenciesDisplayName.NOK=Norsk kr\u00f3na
+currenciesDisplayName.NOK=norskar kr\u00f3nur
+currenciesDisplayName.ZAR=su\u00f0urafr\u00edkskt rand
 currenciesDisplayName.SHP=Helenskt pund
 currenciesDisplayName.ZAL=Rand (vi\u00f0skipta)
+currenciesDisplayName.VND=v\u00edetnamskt dong
 currenciesDisplayName.TZS=Tanzanian Shilling
 currenciesDisplayName.GIP=G\u00edbraltarspund
 currenciesDisplayName.CVE=Gr\u00e6nh\u00f6f\u00f0eyskur sk\u00fati
@@ -125,66 +141,68 @@ currenciesDisplayName.ZMK=Zambian Kwacha
 currenciesDisplayName.XAF=Mi\u00f0afr\u00edskur franki, BEAC
 currenciesDisplayName.LBP=L\u00edbanskt pund
 currenciesDisplayName.STD=Sao Tome and Principe Dobra
+currenciesDisplayName.EUR=euro
 currenciesDisplayName.DOP=D\u00f3min\u00edskur pesi
-currenciesDisplayName.EUR=Euro
 currenciesDisplayName.BOV=Bolivian Mvdol
-currenciesDisplayName.MTP=Maltneskt pund
 currenciesDisplayName.USS=Bandar\u00edkjadalur (sama dag)
+currenciesDisplayName.MTP=Maltneskt pund
 currenciesDisplayName.BOP=B\u00f3liv\u00edskur pesi
-currenciesDisplayName.CUP=K\u00fabverskur pesi
-currenciesDisplayName.MTL=Meltnesk l\u00edra
 currenciesDisplayName.TMM=T\u00farkmenskt manat
+currenciesDisplayName.MTL=meltnesk l\u00edra
+currenciesDisplayName.CUP=K\u00fabverskur pesi
 currenciesDisplayName.USN=Bandar\u00edkjadalur (n\u00e6sta dag)
-currenciesDisplayName.SGD=Singap\u00farskur dalur
-currenciesDisplayName.NZD=N\u00fdsj\u00e1lenskur dalur
+currenciesDisplayName.SGD=Singaporedalir
+currenciesDisplayName.NZD=N\u00fdja-Sj\u00e1landsdalir
 currenciesDisplayName.USD=Bandar\u00edkjadalur
 currenciesDisplayName.HNL=Hoduras Lempira
-currenciesDisplayName.ITL=\u00cdt\u00f6lsk l\u00edra
+currenciesDisplayName.BOB=b\u00f3liv\u00edskt b\u00f3l\u00edv\u00edan\u00f3
 currenciesDisplayName.PAB=Balb\u00f3i
+currenciesDisplayName.ITL=\u00cdt\u00f6lsk l\u00edra
 currenciesDisplayName.GTQ=Guatemala Quetzal
-currenciesDisplayName.AUD=\u00c1stralskur dalur
+currenciesDisplayName.XXX=\u00f3\u00feekktur e\u00f0a \u00f3gildur gjaldeyrir
+currenciesDisplayName.AUD=\u00e1stralskur dalur
 currenciesDisplayName.NAD=Namib\u00edskur dalur
 currenciesDisplayName.MGF=Madagaskur franki
 currenciesDisplayName.BBD=Barbadoskur dalur
-currenciesDisplayName.CHF=Svissneskur franki
+currenciesDisplayName.CHF=svissneskur franki
 currenciesDisplayName.MGA=Madagascar Ariary
 currenciesDisplayName.PLZ=Slot
 currenciesDisplayName.YER=Jemenskt r\u00edal
 currenciesDisplayName.ATS=Austurr\u00edskur skildingur
-currenciesDisplayName.BND=Br\u00faneiskur dalur
-currenciesDisplayName.JMD=Jama\u00edskur dalur
+currenciesDisplayName.BND=Brunei-dalur
 currenciesDisplayName.EGP=Egypskt pund
-currenciesDisplayName.SRG=Suriname Guilder
+currenciesDisplayName.JMD=Jama\u00edskur dalur
+currenciesDisplayName.PLN=p\u00f3lskt zlot\u00fd
 currenciesDisplayName.ISK=\u00cdslensk kr\u00f3na
+currenciesDisplayName.SRG=Suriname Guilder
 currenciesDisplayName.LYD=L\u00edb\u00edskur denari
 currenciesDisplayName.BZD=Bel\u00edskur dalur
 currenciesDisplayName.ESP=Sp\u00e6nskur peseti
+currenciesDisplayName.KRW=su\u00f0urk\u00f3reskt vonn
 currenciesDisplayName.NLG=Hollenskt gyllini
-currenciesDisplayName.KRW=Su\u00f0urk\u00f3reskt vonn
 currenciesDisplayName.MRO=Mauritania Ouguiya
 currenciesDisplayName.ZWD=Simbabveskur dalur
-currenciesDisplayName.SEK=S\u00e6nsk kr\u00f3na
+currenciesDisplayName.SEK=s\u00e6nsk kr\u00f3na
 currenciesDisplayName.CSK=T\u00e9kknesk kr\u00f3na, eldri
 currenciesDisplayName.IRR=\u00cdranskt r\u00edal
-currenciesDisplayName.PKR=Pakist\u00f6nsk r\u00fap\u00eda
+currenciesDisplayName.PKR=pakist\u00f6nsk r\u00fap\u00eda
 currenciesDisplayName.BMD=Berm\u00fadeyskur dalur
-currenciesSymbol.BGL=lev
 currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
 currenciesSymbol.CYP=\u00a3C
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
 currenciesSymbol.ALL=lek
 currenciesSymbol.IDR=Rp
 currenciesSymbol.DKK=DKr
@@ -196,31 +214,30 @@ currenciesSymbol.TTD=TT$
 currenciesSymbol.STD=Db
 currenciesSymbol.SAR=SRl
 currenciesSymbol.FJD=F$
-currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
 currenciesSymbol.DJF=DF
-currenciesSymbol.USD=US$
 currenciesSymbol.SGD=S$
 currenciesSymbol.SYP=LS
 currenciesSymbol.MTL=Lm
-currenciesSymbol.CVE=CVEsc
-currenciesSymbol.YER=YRl
 currenciesSymbol.HUF=Ft
+currenciesSymbol.YER=YRl
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
 currenciesSymbol.HNL=L
 currenciesSymbol.ZWD=Z$
 currenciesSymbol.MYR=RM
-currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
-currenciesSymbol.GNF=GF
+currenciesSymbol.SRG=Sf
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.CNY=Y
 currenciesSymbol.KMF=CF
@@ -229,27 +246,34 @@ currenciesSymbol.AUD=$A
 currenciesSymbol.LYD=LD
 currenciesSymbol.JMD=J$
 currenciesSymbol.SKK=Sk
-currenciesSymbol.ISK=kr.
 currenciesSymbol.CHF=SwF
-currenciesSymbol.MRO=UM
+currenciesSymbol.ISK=kr.
 currenciesSymbol.BBD=BDS$
+currenciesSymbol.MRO=UM
+currenciesSymbol.TWD=NT$
 currenciesSymbol.PKR=Pra
 currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.ANG=NA f.
 currenciesSymbol.BZD=BZ$
-currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
+currenciesSymbol.IRR=RI
 currenciesSymbol.CAD=Can$
-shortMonths=jan®feb®mar®apr®ma\u00ed®j\u00fan®j\u00fal®\u00e1g\u00fa®sep®okt®n\u00f3v®des®®
-months=jan\u00faar®febr\u00faar®mars®apr\u00edl®ma\u00ed®j\u00fan\u00ed®j\u00fal\u00ed®\u00e1g\u00fast®september®okt\u00f3ber®n\u00f3vember®desember®®
-shortWeekdays=®sun®m\u00e1n®\u00feri®mi\u00f0®fim®f\u00f6s®lau®
-weekdays=®sunnudagur®m\u00e1nudagur®\u00feri\u00f0judagur®mi\u00f0vikudagur®fimmtudagur®f\u00f6studagur®laugardagur®
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aema\u00ed\u00aej\u00fan\u00aej\u00fal\u00ae\u00e1g\u00fa\u00aesep\u00aeokt\u00aen\u00f3v\u00aedes\u00ae\u00ae
+months=jan\u00faar\u00aefebr\u00faar\u00aemars\u00aeapr\u00edl\u00aema\u00ed\u00aej\u00fan\u00ed\u00aej\u00fal\u00ed\u00ae\u00e1g\u00fast\u00aeseptember\u00aeokt\u00f3ber\u00aen\u00f3vember\u00aedesember\u00ae\u00ae
+shortWeekdays=\u00aesun\u00aem\u00e1n\u00ae\u00feri\u00aemi\u00f0\u00aefim\u00aef\u00f6s\u00aelau\u00ae
+weekdays=\u00aesunnudagur\u00aem\u00e1nudagur\u00ae\u00feri\u00f0judagur\u00aemi\u00f0vikudagur\u00aefimmtudagur\u00aef\u00f6studagur\u00aelaugardagur\u00ae
+eras=fyrir Krist\u00aeeftir Krist\u00ae
+ampms=f.h.\u00aee.h.\u00ae
 shortDateFormat=d.M.yyyy
 mediumDateFormat=d.M.yyyy
 longDateFormat=d. MMMM yyyy
 fullDateFormat=EEEE, d. MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00aeAustur-Evr\u00f3put\u00edmi\u00aeAET\u00aesumart\u00edmi Austur-Evr\u00f3pu\u00aeSTAE\u00ae\u00a9Europe_Central\u00aeMi\u00f0-Evr\u00f3put\u00edmi\u00aeMET\u00aesumart\u00edmi Mi\u00f0-Evr\u00f3pu\u00aeSTME\u00ae\u00a9
 territories.TL=Austur-T\u00edmor
 territories.TK=T\u00f3kel\u00e1
 territories.TJ=Tadsjikistan
@@ -272,12 +296,13 @@ territories.GN=G\u00ednea
 territories.GM=Gamb\u00eda
 territories.GL=Gr\u00e6nland
 territories.SV=El Salvador
-territories.062=Sy\u00f0ri mi\u00f0-As\u00eda
+territories.062=Sy\u00f0ri-Mi\u00f0-As\u00eda
 territories.ST=Sa\u00f3 T\u00f3me og Prins\u00edpe
-territories.061=P\u00f3l\u00fdnes\u00eda
 territories.GI=G\u00edbraltar
+territories.061=P\u00f3l\u00fdnes\u00eda
 territories.GH=Gana
 territories.SR=S\u00far\u00ednam
+territories.GG=Guernsey
 territories.GF=Franska Gv\u00e6jana
 territories.GE=Georg\u00eda
 territories.SO=S\u00f3mal\u00eda
@@ -298,26 +323,27 @@ territories.SC=Seychelleseyjar
 territories.SB=Sal\u00f3monseyjar
 territories.SA=S\u00e1di-Arab\u00eda
 territories.FR=Frakkland
-territories.057=M\u00edkr\u00f3nes\u00eda
 territories.FO=F\u00e6reyjar
+territories.057=M\u00edkr\u00f3nes\u00eda
 territories.FM=Mikr\u00f3nes\u00eda
 territories.RW=R\u00faanda
 territories.054=Melanes\u00eda
-territories.053=\u00c1stral\u00eda og N\u00fdja-Sj\u00e1land
 territories.FK=Falklandseyjar
+territories.053=\u00c1stral\u00eda og N\u00fdja-Sj\u00e1land
 territories.RU=R\u00fassland
 territories.FJ=F\u00eddjieyjar
 territories.FI=Finnland
+territories.RS=Serb\u00eda
 territories.RO=R\u00famen\u00eda
 territories.RE=R\u00e9union
 territories.ET=E\u00fe\u00ed\u00f3p\u00eda
 territories.ES=Sp\u00e1nn
 territories.ER=Er\u00edtrea
-territories.833=M\u00f6n
+territories.QU=Evr\u00f3pusambandi\u00f0
 territories.EH=Vestur-Sahara
 territories.EG=Egyptaland
-territories.830=Ermasundseyjar
 territories.EE=Eistland
+territories.830=Ermasundseyjar
 territories.QO=Ytri Eyja\u00e1lfa
 territories.EC=Ekvador
 territories.DZ=Als\u00edr
@@ -325,9 +351,10 @@ territories.QA=Katar
 territories.039=Su\u00f0ur-Evr\u00f3pa
 territories.DO=D\u00f3min\u00edska l\u00fd\u00f0veldi\u00f0
 territories.PY=Paragv\u00e6
-territories.035=Su\u00f0austur-As\u00eda
 territories.DM=D\u00f3min\u00edka
+territories.035=Su\u00f0austur-As\u00eda
 territories.PW=Pal\u00e1
+territories.034=su\u00f0urhluti As\u00edu
 territories.DK=Danm\u00f6rk
 territories.DJ=Dj\u00edb\u00fat\u00ed
 territories.PT=Port\u00fagal
@@ -349,23 +376,24 @@ territories.CX=J\u00f3laey
 territories.CV=Gr\u00e6nh\u00f6f\u00f0aeyjar
 territories.PA=Panama
 territories.CU=K\u00faba
-territories.CS=Serb\u00eda
+territories.CS=Serb\u00eda og Svartfjallaland
 territories.CR=Kostar\u00edka
 territories.029=Kar\u00edbahaf
 territories.CO=K\u00f3lumb\u00eda
 territories.CN=K\u00edna
 territories.CM=Kamer\u00fan
-territories.CL=Chile
+territories.CL=Ch\u00edle
 territories.CK=Cookseyjar
+territories.021=Amer\u00edka nor\u00f0an Mexik\u00f3
 territories.CI=F\u00edlabeinsstr\u00f6ndin
-territories.021=Nor\u00f0ur-Amer\u00edka
 territories.CH=Sviss
-territories.CG=Vestur-Kong\u00f3
+territories.CG=Kong\u00f3-Brazzaville
 territories.CF=Mi\u00f0-Afr\u00edkul\u00fd\u00f0veldi\u00f0
-territories.CD=Austur-Kong\u00f3
+territories.CD=Kong\u00f3-Kinshasa
 territories.CC=K\u00f3koseyjar
 territories.OM=\u00d3man
 territories.CA=Kanada
+territories.419=Lat\u00edn-Amer\u00edka og Kar\u00edbahaf
 territories.BZ=Bel\u00eds
 territories.BY=Hv\u00edta-R\u00fassland
 territories.BW=Botsvana
@@ -374,37 +402,40 @@ territories.BT=B\u00fatan
 territories.BS=Bahamaeyjar
 territories.BR=Brasil\u00eda
 territories.019=Amer\u00edka
-territories.018=Su\u00f0ur-Afr\u00edka
+territories.018=Su\u00f0urhluti Afr\u00edku
 territories.NZ=N\u00fdja-Sj\u00e1land
-territories.BO=B\u00f3liv\u00eda
 territories.017=Mi\u00f0-Afr\u00edka
+territories.BO=B\u00f3liv\u00eda
 territories.BN=Br\u00fanei
-territories.BM=Berm\u00fadaeyjar
 territories.015=Nor\u00f0ur-Afr\u00edka
+territories.BM=Berm\u00fadaeyjar
 territories.014=Austur-Afr\u00edka
+territories.BL=Saint Barth\u00e9lemy
 territories.013=Mi\u00f0-Amer\u00edka
 territories.NU=Niue
 territories.BJ=Ben\u00edn
-territories.BI=B\u00far\u00fand\u00ed
 territories.011=Vestur-Afr\u00edka
+territories.BI=B\u00far\u00fand\u00ed
+territories.172=Samveldi sj\u00e1lfst\u00e6\u00f0ra r\u00edkja
 territories.BH=Barein
 territories.NR=N\u00e1r\u00fa
 territories.BG=B\u00falgar\u00eda
-territories.BF=B\u00fark\u00edna Fas\u00f3
+territories.BF=Burk\u00edna Fas\u00f3
 territories.NP=Nepal
 territories.BE=Belg\u00eda
+territories.ZZ=\u00f3\u00feekkt e\u00f0a \u00f3gilt sv\u00e6\u00f0i
 territories.NO=Noregur
 territories.BD=Bangladess
 territories.BB=Barbados
 territories.ZW=Simbabve
-territories.NL=Ni\u00f0url\u00f6nd
+territories.NL=Holland
 territories.BA=Bosn\u00eda og Herseg\u00f3v\u00edna
 territories.NI=N\u00edkaragva
 territories.NG=N\u00edger\u00eda
 territories.NF=Norfolkeyja
 territories.AZ=Aserba\u00eddsjan
 territories.NE=N\u00edger
-territories.AX=\u00c1landseyjar
+territories.AX=\u00c1land
 territories.NC=N\u00fdja-Kaled\u00f3n\u00eda
 territories.AW=Ar\u00faba
 territories.ZM=Samb\u00eda
@@ -413,24 +444,25 @@ territories.AU=\u00c1stral\u00eda
 territories.AT=Austurr\u00edki
 territories.AS=Bandar\u00edska Sam\u00f3a
 territories.AR=Argent\u00edna
-territories.009=Eyja\u00e1lfa
 territories.AQ=Su\u00f0urskautslandi\u00f0
+territories.009=Eyja\u00e1lfa
 territories.MZ=M\u00f3samb\u00edk
 territories.AO=Ang\u00f3la
 territories.MY=Malas\u00eda
 territories.AN=Hollensku Antillur
 territories.MX=Mex\u00edk\u00f3
-territories.005=Su\u00f0ur-Amer\u00edka
 territories.AM=Armen\u00eda
+territories.005=Su\u00f0ur-Amer\u00edka
 territories.MW=Malav\u00ed
 territories.AL=Alban\u00eda
 territories.MV=Mald\u00edveyjar
+territories.003=Nor\u00f0ur-Amer\u00edka
 territories.ZA=Su\u00f0ur-Afr\u00edka
 territories.MU=M\u00e1rit\u00edus
 territories.002=Afr\u00edka
 territories.MT=Malta
-territories.001=Heimur
 territories.AI=Angvilla
+territories.001=heimur
 territories.MS=Montserrat
 territories.MR=M\u00e1ritan\u00eda
 territories.AG=Ant\u00edgva og Barb\u00fada
@@ -438,7 +470,7 @@ territories.MQ=Martin\u00edk
 territories.AF=Afganistan
 territories.MP=Nor\u00f0ur-Mar\u00edanaeyjar
 territories.AE=Sameinu\u00f0u arab\u00edsku furstad\u00e6min
-territories.MO=Maka\u00f3
+territories.MO=Mak\u00e1o
 territories.AD=Andorra
 territories.MN=Mong\u00f3l\u00eda
 territories.MM=Mjanmar
@@ -447,13 +479,15 @@ territories.MK=Maked\u00f3n\u00eda
 territories.YT=Mayotte
 territories.MH=Marshalleyjar
 territories.MG=Madagaskar
+territories.MF=Saint Martin
+territories.ME=Svartfjallaland
 territories.MD=Mold\u00f3va
 territories.MC=M\u00f3nak\u00f3
 territories.MA=Marokk\u00f3
 territories.YE=Jemen
 territories.LY=L\u00edb\u00eda
 territories.LV=Lettland
-territories.155=Vestur-Evr\u00f3pa
+territories.155=vestur-Evr\u00f3pa
 territories.LU=L\u00faxemborg
 territories.154=Nor\u00f0ur-Evr\u00f3pa
 territories.LT=Lith\u00e1en
@@ -469,7 +503,8 @@ territories.LA=Laos
 territories.KZ=Kasakstan
 territories.KY=Caymaneyjar
 territories.KW=K\u00faveit
-territories.145=Vestur-As\u00eda
+territories.145=vestur-As\u00eda
+territories.143=Mi\u00f0-As\u00eda
 territories.142=As\u00eda
 territories.KR=Su\u00f0ur-K\u00f3rea
 territories.KP=Nor\u00f0ur-K\u00f3rea
@@ -485,9 +520,10 @@ territories.JP=Japan
 territories.JO=J\u00f3rdan\u00eda
 territories.JM=Jama\u00edka
 territories.VU=Van\u00faat\u00fa
+territories.JE=Jersey
 territories.VN=V\u00edetnam
-territories.VI=J\u00f3mfr\u00faaeyjar (bandar\u00edsku)
-territories.VG=J\u00f3mfr\u00faaeyjar (bresku)
+territories.VI=Bandar\u00edsku J\u00f3mfr\u00faareyjar
+territories.VG=Bresku J\u00f3mfr\u00faareyjar
 territories.VE=Venes\u00faela
 territories.VC=Sankti Vinsent og Grenad\u00edneyjar
 territories.VA=P\u00e1fagar\u00f0ur
@@ -499,6 +535,7 @@ territories.UZ=\u00dasbekistan
 territories.IO=Bresku Indlandshafseyjar
 territories.UY=\u00dar\u00fagv\u00e6
 territories.IN=Indland
+territories.IM=M\u00f6n
 territories.IL=\u00cdsrael
 territories.US=Bandar\u00edkin
 territories.IE=\u00cdrland
@@ -520,469 +557,509 @@ territories.TR=Tyrkland
 territories.TO=Tonga
 territories.TN=T\u00fanis
 territories.TM=T\u00farkmenistan
-languages.akk=Akkad\u00edska
-languages.gwi=Gv\u00eds\u00edn
-languages.eka=Ekaj\u00fak
-languages.ijo=\u00cdj\u00f3
-languages.xh=S\u00f3sa
-languages.sux=S\u00famerska
-languages.sus=S\u00fas\u00fa
-languages.mis=\u00ddmis m\u00e1l
-languages.loz=Los\u00ed
-languages.tog=Tongverska
-languages.pon=Ponpeiska
-languages.min=M\u00ednangkab\u00e1
-languages.suk=S\u00fak\u00fama
-languages.wo=Volof
-languages.kut=K\u00fatena\u00ed
-languages.lol=Mong\u00f3
-languages.mic=Mikmak
-languages.wa=Vall\u00f3nska
-languages.kum=K\u00fam\u00edk
-languages.zap=Sap\u00f3tek
-languages.cus=K\u00fasit\u00edsk m\u00e1l (\u00f6nnur)
-languages.doi=Dogr\u00ed
-languages.jbo=Lojban
-languages.vo=Volap\u00fck
-languages.oto=\u00d3tomm\u00e1l
-languages.vi=V\u00edetnamska
-languages.vai=Va\u00ed
-languages.rar=Rar\u00f3tongska
-languages.ve=Venda
-languages.rap=Rapan\u00fa\u00ed
-languages.raj=Rajastan\u00ed
-languages.ota=Tyrkneska, ott\u00f3man (1500-1928)
-languages.nzi=Ns\u00edma
-languages.nap=Nap\u00f3l\u00edska
-languages.uz=\u00dasbekska
-languages.uga=\u00dagar\u00edt\u00edska
-languages.tmh=Tamasjek
-languages.nai=Ind\u00ed\u00e1nam\u00e1l Nor\u00f0ur-Amer\u00edku (\u00f6nnur)
-languages.nah=Nah\u00faatl
-languages.ur=\u00dard\u00fa
-languages.fat=Fant\u00ed
-languages.uk=\u00dakra\u00ednska
-languages.egy=Fornegypska
-languages.ug=\u00da\u00edg\u00far
-languages.fan=Fang
-languages.ssa=N\u00edl\u00f3saharam\u00e1l (\u00f6nnur)
-languages.bat=Baltnesk m\u00e1l (\u00f6nnur)
-languages.mga=Mi\u00f0\u00edrska (900-1200)
-languages.nyo=Nj\u00f3r\u00f3
-languages.bas=Basa
-languages.nyn=Njank\u00f3le
-languages.nym=Njamves\u00ed
-languages.hmn=Hmong
-languages.ban=Bal\u00edska
-languages.osa=\u00d3sage
-languages.bal=Bal\u00fak\u00ed
-languages.ty=Tah\u00edt\u00edska
-languages.bai=Bam\u00edlekem\u00e1l
-languages.tw=Tv\u00ed
-languages.srr=Serer
-languages.tli=Tlingit
-languages.tt=Tatarska
-languages.ts=Tsonga
-languages.bad=Banda
-languages.tr=Tyrkneska
-languages.to=Tongverska
-languages.tn=Ts\u00faana
-languages.tl=Tagalog
-languages.tk=T\u00farkmenska
-languages.ti=T\u00edgrinja
-languages.th=Ta\u00edlenska
-languages.kru=K\u00far\u00fak
-languages.tg=Tadsjikska
-languages.byn=Bl\u00edn
-languages.te=Tel\u00fag\u00fa
-languages.csb=Kas\u00fab\u00edska
-languages.kro=Kr\u00fa
-languages.ta=Tam\u00edlska
-languages.tkl=T\u00f3kel\u00e1ska
-languages.efi=Ef\u00edk
-languages.sw=Svah\u00edl\u00ed
-languages.sv=S\u00e6nska
-languages.su=S\u00fandanska
-languages.krc=Karasa\u00edbalkar
-languages.st=Su\u00f0urs\u00f3t\u00f3
-languages.ss=Svat\u00ed
-languages.sr=Serbneska
-languages.sq=Albanska
-languages.men=Mende
-languages.crp=Kre\u00f3l- og pidginm\u00e1l (\u00f6nnur)
-languages.so=S\u00f3malska
-languages.afh=Afr\u00edh\u00edl\u00ed
-languages.sn=S\u00edn\u00f3t\u00edbesk m\u00e1l (\u00f6nnur)
-languages.sm=Sam\u00f3ska
-languages.sl=Sl\u00f3venska
-languages.grc=Forngr\u00edska (til 1453)
-languages.sk=Sl\u00f3vak\u00edska
-languages.grb=Gerb\u00f3
-languages.si=Singales\u00edska
-languages.sh=Serb\u00f3kr\u00f3at\u00edska
-languages.afa=Afr\u00f3as\u00edsk m\u00e1l (\u00f6nnur)
-languages.crh=Kr\u00edmtyrkneska
-languages.sg=Sang\u00f3
-languages.se=Nor\u00f0ursam\u00edska
-languages.sd=Sind\u00ed
-languages.udm=\u00dadm\u00fart
-languages.sc=Sard\u00ednska
-languages.sa=Sanskr\u00edt
-languages.rw=K\u00ednjarvanda
-languages.ru=R\u00fassneska
-languages.mdr=Mandar
-languages.ro=R\u00famenska
-languages.rn=R\u00fand\u00ed
-languages.rm=Ret\u00f3r\u00f3manska
-languages.mdf=Moksa
-languages.tiv=T\u00edv
-languages.ady=Ad\u00fdge
-languages.zun=S\u00fan\u00ed
-languages.kpe=Kpelle
-languages.qu=Kvesj\u00faa
-languages.tig=T\u00edgre
-languages.son=Songha\u00ed
-languages.cpp=Kre\u00f3l- og pidginm\u00e1l \u00e1 port\u00fag\u00f6lskum grunni
-languages.sog=Sogd\u00eden
-languages.ada=Adangme
-languages.cpf=Kre\u00f3l- og pidginm\u00e1l \u00e1 fr\u00f6nskum grunni
-languages.hit=Hettit\u00edska
-languages.kos=Kosraska
-languages.cpe=Kre\u00f3l- og pidginm\u00e1l \u00e1 enskum grunni
-languages.him=H\u00edmasjal\u00ed
-languages.got=Gotneska
-languages.hil=H\u00edliga\u00ednon
-languages.kok=Konkan\u00ed
-languages.gor=Gorontal\u00f3
-languages.gon=Gond\u00ed
-languages.din=Dinka
-languages.nub=N\u00fab\u00edsk m\u00e1l
-languages.pt=Port\u00fagalska
-languages.ps=Past\u00fa
-languages.fur=Fr\u00ed\u00falska
-languages.phn=F\u00f6nik\u00edska
-languages.goh=Fornh\u00e1\u00fe\u00fdska (um 750-1050)
-languages.snk=S\u00f3ninke
-languages.cop=Kopt\u00edska
-languages.yap=Jap\u00edska
-languages.ach=Ak\u00f3l\u00ed
-languages.yao=Ja\u00f3
-languages.phi=Filippseysk m\u00e1l (\u00f6nnur)
-languages.pl=P\u00f3lska
-languages.ace=Akk\u00edska
-languages.pi=Pal\u00ed
-languages.pa=P\u00fanjab\u00ed
-languages.bug=B\u00fag\u00edska
-languages.iba=\u00cdban
-languages.sms=Skoltesam\u00edska
-languages.bua=B\u00far\u00edat
-languages.mas=Masa\u00ed
-languages.smn=Enaresam\u00edska
-languages.os=Osset\u00edska
-languages.map=\u00c1str\u00f3nes\u00edska
-languages.or=\u00d3r\u00eda
-languages.man=Manding\u00f3
-languages.smj=L\u00falesam\u00edska
-languages.smi=Sam\u00edsk m\u00e1l (\u00f6nnur)
-languages.mak=Makasar
-languages.om=\u00d3r\u00f3m\u00f3
-languages.mai=Ma\u00edt\u00edl\u00ed
-languages.oj=Ojibva
-languages.mag=Magah\u00ed
-languages.mad=Mad\u00farska
-languages.sma=Su\u00f0ursam\u00edska
-languages.oc=Okkit\u00edska (eftir 1500); Pr\u00f3vensalska
-languages.nso=Nor\u00f0urs\u00f3t\u00f3
-languages.btk=Batak
-languages.myv=Ersja
-languages.dgr=Dogr\u00edb
-languages.ny=Njanja; S\u00edsjeva; Sjeva
-languages.myn=Majam\u00e1l
-languages.nv=Navah\u00f3
-languages.kmb=Kimb\u00fand\u00fa
-languages.nr=Su\u00f0urndebele
-languages.gmh=Mi\u00f0h\u00e1\u00fe\u00fdska (um 1050-1500
-languages.no=Norska
-languages.nn=N\u00fdnorska
-languages.nl=Hollenska
-languages.ng=Ndonga
-languages.sla=Slavnesk m\u00e1l (\u00f6nnur)
-languages.ne=Nepalska
-languages.nd=Nor\u00f0urndebele
-languages.cmc=Kam\u00edsk m\u00e1l
-languages.tet=Tet\u00fam
-languages.nb=Norskt b\u00f3km\u00e1l
-languages.na=N\u00e1r\u00faska
-languages.ter=Teren\u00f3
-languages.tem=T\u00edmne
-languages.my=Burmneska
-languages.lez=Lesg\u00edska
-languages.mt=Maltneska
-languages.peo=Fornpersneska
-languages.ms=Mala\u00edska
-languages.mr=Marat\u00ed
-languages.fro=Fornfranska (842 - um 1400)
-languages.mo=Mold\u00f3vska
-languages.mn=Mong\u00f3lska
-languages.frm=Mi\u00f0franska (um 1400-1600)
-languages.ml=Malajalam
-languages.jrb=Gy\u00f0ingaarab\u00edska
-languages.mk=Maked\u00f3nska
-languages.mi=Ma\u00f3r\u00ed
-languages.mh=Marshallska
-languages.mg=Malagas\u00edska
-languages.mwr=Marvar\u00ed
-languages.bra=Bra\u00ed
-languages.lv=Lettneska
-languages.den=Slav
-languages.lu=L\u00fabakatanga
-languages.lt=Lith\u00e1\u00edska
-languages.del=Delaver
-languages.lo=La\u00f3
-languages.ln=Lingala
-languages.li=Limb\u00farg\u00edska
-languages.ewo=Evond\u00f3
-languages.lg=Ganda
-languages.lb=L\u00faxemborg\u00edska
-languages.la=Lat\u00edna
-languages.jpr=Gy\u00f0ingapersneska
-languages.vot=Vot\u00edska
-languages.sit=S\u00edn\u00f3t\u00edbesk m\u00e1l (\u00f6nnur)
-languages.ky=Kirgiska
-languages.kw=Korn\u00edska
-languages.kv=Kom\u00edska
-languages.ku=K\u00fardneska
-languages.sio=S\u00ed\u00fam\u00e1l
-languages.ks=Kasm\u00edrska
-languages.kr=Kan\u00far\u00ed
-languages.awa=Avad\u00ed
-languages.ko=K\u00f3reska
-languages.kn=Kannada
-languages.km=Kmer
-languages.kl=Gr\u00e6nlenska
-languages.kk=Kasakska
-languages.rom=Roman\u00ed
-languages.kj=K\u00faanjama
-languages.sid=S\u00eddam\u00f3
-languages.ki=K\u00edk\u00faj\u00fa
-languages.kg=Kong\u00f3
-languages.non=Norr\u00e6na
-languages.ka=Georg\u00edska
-languages.mus=Kr\u00edk
-languages.roa=R\u00f3m\u00f6nsk m\u00e1l (\u00f6nnur)
-languages.nog=N\u00f3ga\u00ed
-languages.mun=M\u00fandam\u00e1l
-languages.mul=Margv\u00edsleg m\u00e1l
-languages.jv=Javanska
-languages.gil=Gilberska
-languages.znd=Sande
-languages.shn=Sjan
-languages.fon=F\u00f3n
-languages.xal=Kalm\u00fakska
-languages.aus=\u00c1str\u00f6lsk m\u00e1l
-languages.kho=Kotaska
-languages.ja=Japanska
-languages.khi=Ko\u00edm\u00e1l (\u00f6nnur)
-languages.pau=Pal\u00e1ska
-languages.chy=Sjeyen
-languages.tai=Ta\u00edm\u00e1l (\u00f6nnur)
-languages.iu=In\u00faktit\u00fat
-languages.pap=Pap\u00edament\u00f3
-languages.it=\u00cdtalska
-languages.sgn=T\u00e1knm\u00e1l
-languages.kha=Kas\u00ed
-languages.is=\u00cdslenska
-languages.chr=Sjer\u00f3k\u00ed
-languages.pam=Pampanga
-languages.pal=Palav\u00ed
-languages.chp=S\u00edpev\u00edska
-languages.cho=Sjokt\u00e1
-languages.io=\u00cdd\u00f3
-languages.chn=S\u00edn\u00fak
-languages.chm=Mar\u00ed
-languages.tyv=T\u00fav\u00ednska
-languages.bnt=Bant\u00fam\u00e1l
-languages.pag=Pangas\u00ednm\u00e1l
-languages.chk=Sj\u00fak\u00edska
-languages.ik=\u00cdn\u00fap\u00edak
-languages.haw=Hava\u00edska
-languages.ii=S\u00eds\u00faanj\u00ed
-languages.lam=Lamba
-languages.chg=Sjagata\u00ed
-languages.ig=\u00cdgb\u00f3
-languages.sga=Forn\u00edrska (til 900)
-languages.paa=Pap\u00fask m\u00e1l (\u00f6nnur)
-languages.ie=Interlingva
-languages.id=Ind\u00f3nes\u00edska
-languages.lah=Landa
-languages.chb=S\u00edbsja
-languages.day=Dajak
-languages.ia=Interlingva
-languages.lad=Lad\u00ednska
-languages.dar=Dargva
-languages.hai=Ha\u00edda
-languages.hz=Herer\u00f3
-languages.hy=Armenska
-languages.ath=Atapask\u00edsk m\u00e1l
-languages.hu=Ungverska
-languages.ht=Ha\u00edt\u00edska
-languages.dak=Dak\u00f3ta
-languages.hr=Kr\u00f3at\u00edska
-languages.ho=H\u00edr\u00edm\u00f3t\u00fa
-languages.hi=Hind\u00ed
-languages.dyu=Dj\u00fala
-languages.he=Hebreska
-languages.ast=Ast\u00far\u00edska
-languages.ha=H\u00e1sa
-languages.wen=Sorbnesk m\u00e1l
-languages.gv=Manx
-languages.gu=G\u00fajarat\u00ed
-languages.sem=Sem\u00edsk m\u00e1l (\u00f6nnur)
-languages.sel=Selk\u00fap
-languages.iro=\u00cdr\u00f3kesk m\u00e1l
-languages.gn=Gvaran\u00ed
-languages.gl=Gallegska
-languages.arw=Aravakska
-languages.gd=Skosk gel\u00edska
-languages.art=Al\u00fej\u00f3\u00f0am\u00e1l (\u00f6nnur)
-languages.gez=G\u00eds
-languages.ira=\u00cdranska
-languages.ga=\u00cdrska
-languages.arp=Arapah\u00f3
-languages.arn=Ar\u00e1kan\u00edska
-languages.fy=Fr\u00edsneska
-languages.bla=Siksika
-languages.gem=Germ\u00f6nsk m\u00e1l (\u00f6nnur)
-languages.ypk=J\u00fap\u00edsk m\u00e1l
-languages.fr=Franska
-languages.arc=Arame\u00edska
-languages.fo=F\u00e6reyska
-languages.cel=Keltnesk (\u00f6nnur)
-languages.fj=F\u00eddjeyska
-languages.fi=Finnska
-languages.ff=F\u00fala
-languages.tvl=T\u00faval\u00faska
-languages.ceb=Keb\u00faan\u00f3
-languages.fa=Persneska
-languages.eu=Baskneska
-languages.sco=Skoska
-languages.et=Eistneska
-languages.es=Sp\u00e6nska
-languages.eo=Esperant\u00f3
-languages.en=Enska
-languages.el=N\u00fdgr\u00edska (1453-)
-languages.tut=Alta\u00edsk m\u00e1l (\u00f6nnur)
-languages.niu=N\u00edveska
-languages.tup=T\u00fap\u00edm\u00e1l
-languages.ee=Eve
-languages.tum=T\u00famb\u00faka
-languages.mos=Moss\u00ed
-languages.dz=Dsongka
-languages.nic=N\u00edgerkord\u00f3fanm\u00e1l (\u00f6nnur)
-languages.dv=D\u00edveh\u00ed
-languages.fiu=Finnsk\u00fagr\u00edsk m\u00e1l (\u00f6nnur)
-languages.lus=L\u00fasa\u00ed
-languages.nia=N\u00edas
-languages.moh=M\u00f3h\u00edska
-languages.luo=L\u00fa\u00f3
-languages.lun=L\u00fanda
-languages.apa=Apatsjam\u00e1l
-languages.lui=L\u00faisen\u00f3
-languages.hup=H\u00fapa
-languages.bin=B\u00edn\u00ed
-languages.de=\u00de\u00fdska
-languages.lua=L\u00fabal\u00fal\u00faa
-languages.bik=B\u00edkol
-languages.was=Vasj\u00f3
-languages.und=\u00d3lj\u00f3st
-languages.war=Vara\u00ed
-languages.da=Danska
-languages.dum=Mi\u00f0hollenska (um 1050-1350)
-languages.wal=Valam\u00f3
-languages.mno=Man\u00f3b\u00f3m\u00e1l
-languages.wak=Vakasm\u00e1l
-languages.sat=Santal\u00ed
-languages.cy=Velska
-languages.sas=Sasak
-languages.cv=Sj\u00favas
-languages.kbd=Kabard\u00edska
-languages.cu=Kirkjuslavneska
-languages.mni=Man\u00edp\u00far\u00ed
-languages.cs=T\u00e9kkneska
-languages.sam=Samversk arame\u00edska
-languages.cr=Kr\u00ed
-languages.sal=Sal\u00edsm\u00e1l
-languages.dua=D\u00faala
-languages.co=Kors\u00edska
+languages.gwi=gv\u00eds\u00edn
+languages.akk=akkad\u00edska
+languages.eka=ekaj\u00fak
+languages.ijo=\u00edj\u00f3
+languages.xh=s\u00f3sa
+languages.sux=s\u00famerska
+languages.sus=s\u00fas\u00fa
+languages.mis=\u00fdmis m\u00e1l
+languages.loz=los\u00ed
+languages.tog=tongverska (Nyasa)
+languages.zbl=blisst\u00e1kn
+languages.pon=ponpeiska
+languages.min=m\u00ednangkab\u00e1
+languages.suk=s\u00fak\u00fama
+languages.wo=volof
+languages.lol=mong\u00f3
+languages.kut=k\u00fatena\u00ed
+languages.mic=mikmak
+languages.wa=vall\u00f3nska
+languages.kum=k\u00fam\u00edk
+languages.zap=sap\u00f3tek
+languages.ain=a\u00ednu
+languages.cus=k\u00fasit\u00edsk m\u00e1l
+languages.jbo=lojban
+languages.doi=dogr\u00ed
+languages.zza=z\u00e1z\u00e1
+languages.vo=volapyk
+languages.oto=\u00f3tomm\u00e1l
+languages.vi=v\u00edetnamska
+languages.vai=va\u00ed
+languages.rar=rar\u00f3tongska
+languages.ve=venda
+languages.rap=rapan\u00fa\u00ed
+languages.raj=rajastan\u00ed
+languages.ota=ott\u00f3mantyrkneska
+languages.nzi=ns\u00edma
+languages.nap=nap\u00f3l\u00edska
+languages.uz=\u00fasbekska
+languages.uga=\u00fagar\u00edt\u00edska
+languages.tmh=tamasjek
+languages.nai=Nor\u00f0ur-Amer\u00edku ind\u00ed\u00e1nam\u00e1l
+languages.nah=nah\u00faatl
+languages.ur=\u00fard\u00fa
+languages.fat=fant\u00ed
+languages.uk=\u00fakra\u00ednska
+languages.egy=fornegypska
+languages.zxx=ekkert tungutengt efni
+languages.ug=\u00fa\u00edg\u00far
+languages.fan=fang
+languages.ssa=n\u00edl\u00f3saharam\u00e1l
+languages.mga=mi\u00f0\u00edrska
+languages.bat=baltnesk m\u00e1l
+languages.nyo=nj\u00f3r\u00f3
+languages.bas=basa
+languages.nyn=njank\u00f3le
+languages.nym=njamves\u00ed
+languages.gsw=svissnesk \u00fe\u00fdska
+languages.hmn=hmong
+languages.ban=bal\u00edska
+languages.osa=\u00f3sage
+languages.bal=bal\u00fak\u00ed
+languages.ty=tah\u00edt\u00edska
+languages.bai=bam\u00edlekem\u00e1l
+languages.tw=tv\u00ed
+languages.srr=serer
+languages.tli=tlingit
+languages.tlh=kling\u00f3nska
+languages.tt=tatarska
+languages.ts=tsonga
+languages.srn=sranan tongo
+languages.bad=banda
+languages.tr=tyrkneska
+languages.to=tongverska (Tongaeyjar)
+languages.tn=ts\u00faana
+languages.tl=tagalog
+languages.tk=t\u00farkmenska
+languages.ti=t\u00edgrinja
+languages.th=ta\u00edlenska
+languages.kru=k\u00far\u00fak
+languages.tg=tadsjikska
+languages.byn=bl\u00edn
+languages.te=tel\u00fag\u00fa
+languages.kro=kr\u00fa
+languages.csb=kas\u00fab\u00edska
+languages.ta=tam\u00edlska
+languages.krl=kar\u00e9lska
+languages.tkl=t\u00f3kel\u00e1ska
+languages.efi=ef\u00edk
+languages.sw=svah\u00edl\u00ed
+languages.sv=s\u00e6nska
+languages.su=s\u00fandanska
+languages.krc=karasa\u00edbalkar
+languages.st=su\u00f0urs\u00f3t\u00f3
+languages.ss=svat\u00ed
+languages.sr=serbneska
+languages.sq=albanska
+languages.men=mende
+languages.crp=kre\u00f3l-/pidginm\u00e1l
+languages.so=s\u00f3malska
+languages.afh=afr\u00edh\u00edl\u00ed
+languages.sn=sh\u00f3na
+languages.sm=sam\u00f3ska
+languages.sl=sl\u00f3venska
+languages.grc=forngr\u00edska
+languages.sk=sl\u00f3vak\u00edska
+languages.grb=gerb\u00f3
+languages.si=singales\u00edska
+languages.sh=serb\u00f3kr\u00f3at\u00edska
+languages.crh=kr\u00edmtyrkneska
+languages.afa=afr\u00f3as\u00edsk m\u00e1l
+languages.sg=sang\u00f3
+languages.se=nor\u00f0ursam\u00edska
+languages.sd=sind\u00ed
+languages.udm=\u00fadm\u00fart
+languages.sc=sard\u00ednska
+languages.sa=sanskr\u00edt
+languages.rw=k\u00ednjarvanda
+languages.nwc=klassisk nevar\u00ed
+languages.ru=r\u00fassneska
+languages.mdr=mandar
+languages.ro=r\u00famenska
+languages.rn=r\u00fand\u00ed
+languages.rm=ret\u00f3r\u00f3manska
+languages.fr_CH=svissnesk franska
+languages.mdf=moksa
+languages.tiv=t\u00edv
+languages.fr_CA=kanad\u00edsk franska
+languages.ady=ad\u00fdge
+languages.zun=s\u00fan\u00ed
+languages.kpe=kpelle
+languages.qu=kvesj\u00faa
+languages.tig=t\u00edgre
+languages.son=songha\u00ed
+languages.cpp=kre\u00f3l- og pidginm\u00e1l \u00e1 port\u00fag\u00f6lskum grunni
+languages.rup=ar\u00famenska
+languages.sog=sogd\u00eden
+languages.ada=adangme
+languages.kos=kosraska
+languages.hit=hettit\u00edska
+languages.cpf=kre\u00f3l- og pidginm\u00e1l \u00e1 fr\u00f6nskum grunni
+languages.cpe=kre\u00f3l- og pidginm\u00e1l \u00e1 enskum grunni
+languages.him=h\u00edmasjal\u00ed
+languages.kok=konkan\u00ed
+languages.hil=h\u00edliga\u00ednon
+languages.got=gotneska
+languages.gor=gorontal\u00f3
+languages.gon=gond\u00ed
+languages.din=dinka
+languages.nub=n\u00fab\u00edsk m\u00e1l
+languages.pt=port\u00fagalska
+languages.ps=past\u00fa
+languages.fur=fr\u00ed\u00falska
+languages.phn=f\u00f6nik\u00edska
+languages.de_CH=svissnesk h\u00e1\u00fe\u00fdska
+languages.goh=fornh\u00e1\u00fe\u00fdska
+languages.snk=s\u00f3ninke
+languages.cop=kopt\u00edska
+languages.yap=jap\u00edska
+languages.ach=ak\u00f3l\u00ed
+languages.yao=ja\u00f3
+languages.phi=filippseysk m\u00e1l
+languages.pl=p\u00f3lska
+languages.ace=akk\u00edska
+languages.pi=pal\u00ed
+languages.pt_PT=\u00edber\u00edsk port\u00fagalska
+languages.pa=p\u00fanjab\u00ed
+languages.bug=b\u00fag\u00edska
+languages.iba=\u00edban
+languages.sms=skoltesam\u00edska
+languages.bua=b\u00far\u00edat
+languages.mas=masa\u00ed
+languages.smn=enaresam\u00edska
+languages.os=osset\u00edska
+languages.map=\u00e1str\u00f3nes\u00edska
+languages.or=\u00f3r\u00eda
+languages.man=manding\u00f3
+languages.smj=l\u00falesam\u00edska
+languages.smi=sam\u00edsk m\u00e1l
+languages.mak=makasar
+languages.om=\u00f3r\u00f3m\u00f3
+languages.mai=ma\u00edt\u00edl\u00ed
+languages.oj=ojibva
+languages.mag=magah\u00ed
+languages.mad=mad\u00farska
+languages.sma=su\u00f0ursam\u00edska
+languages.oc=oks\u00edtan\u00edska
+languages.nso=nor\u00f0urs\u00f3t\u00f3
+languages.btk=batak
+languages.myv=ersja
+languages.es_ES=sp\u00e6nsk sp\u00e6nska
+languages.de_AT=austurr\u00edsk \u00fe\u00fdska
+languages.dgr=dogr\u00edb
+languages.ny=njanja
+languages.myn=majam\u00e1l
+languages.nv=navah\u00f3
+languages.kmb=kimb\u00fand\u00fa
+languages.nr=su\u00f0urndebele
+languages.gmh=mi\u00f0h\u00e1\u00fe\u00fdska
+languages.no=norska
+languages.nn=n\u00fdnorska
+languages.nl=hollenska
+languages.root=r\u00f3t
+languages.ng=ndonga
+languages.sla=slavnesk m\u00e1l (\u00f6nnur)
+languages.ne=nepalska
+languages.nd=nor\u00f0urndebele
+languages.cmc=kam\u00edsk m\u00e1l
+languages.tet=tet\u00fam
+languages.nb=norskt b\u00f3km\u00e1l
+languages.na=n\u00e1r\u00faska
+languages.ter=teren\u00f3
+languages.tem=t\u00edmne
+languages.my=b\u00farm\u00edska
+languages.lez=lesg\u00edska
+languages.mt=maltneska
+languages.frs=austurfr\u00edsneska
+languages.peo=fornpersneska
+languages.ms=mala\u00edska
+languages.frr=nor\u00f0urfr\u00edsneska
+languages.mr=marat\u00ed
+languages.fro=fornfranska
+languages.mo=mold\u00f3vska
+languages.mn=mong\u00f3lska
+languages.frm=mi\u00f0franska
+languages.ml=malajalam
+languages.jrb=gy\u00f0ingaarab\u00edska
+languages.mk=maked\u00f3nska
+languages.mi=ma\u00f3r\u00ed
+languages.mh=marshallska
+languages.mg=malagas\u00edska
+languages.nqo=nk\u00e5
+languages.mwr=marvar\u00ed
+languages.bra=bra\u00ed
+languages.mwl=mirandes\u00edska
+languages.den=slav
+languages.lv=lettneska
+languages.lu=l\u00fabakatanga
+languages.del=delaver
+languages.lt=lith\u00e1\u00edska
+languages.lo=la\u00f3
+languages.ln=lingala
+languages.li=limb\u00farg\u00edska
+languages.ewo=evond\u00f3
+languages.lg=ganda
+languages.lb=l\u00faxemborg\u00edska
+languages.la=lat\u00edna
+languages.jpr=gy\u00f0ingapersneska
+languages.vot=vot\u00edska
+languages.sit=s\u00edn\u00f3t\u00edbesk m\u00e1l
+languages.ky=kirgiska
+languages.kw=korn\u00edska
+languages.kv=kom\u00edska
+languages.ku=k\u00fardneska
+languages.sio=s\u00ed\u00fam\u00e1l
+languages.ks=kasm\u00edrska
+languages.kr=kan\u00far\u00ed
+languages.awa=avad\u00ed
+languages.ko=k\u00f3reska
+languages.kn=kannada
+languages.km=kmer
+languages.en_GB=bresk enska
+languages.kl=gr\u00e6nlenska
+languages.kk=kasakska
+languages.rom=roman\u00ed
+languages.kj=k\u00faanjama
+languages.sid=s\u00eddam\u00f3
+languages.ki=k\u00edk\u00faj\u00fa
+languages.kg=kong\u00f3
+languages.non=norr\u00e6na
+languages.ka=georg\u00edska
+languages.mus=kr\u00edk
+languages.roa=r\u00f3m\u00f6nsk m\u00e1l
+languages.nog=n\u00f3ga\u00ed
+languages.mun=m\u00fandam\u00e1l
+languages.mul=margv\u00edsleg m\u00e1l
+languages.jv=javanska
+languages.gil=gilberska
+languages.znd=sande
+languages.shn=sjan
+languages.fon=f\u00f3n
+languages.xal=kalm\u00fakska
+languages.aus=\u00e1str\u00f6lsk m\u00e1l
+languages.kho=kotaska
+languages.ja=japanska
+languages.khi=ko\u00edm\u00e1l
+languages.pau=pal\u00e1ska
+languages.chy=sjeyen
+languages.tai=ta\u00edm\u00e1l
+languages.iu=in\u00faktit\u00fat
+languages.pap=pap\u00edament\u00f3
+languages.it=\u00edtalska
+languages.sgn=t\u00e1knm\u00e1l
+languages.is=\u00edslenska
+languages.kha=kas\u00ed
+languages.chr=sjer\u00f3k\u00ed
+languages.pam=pampanga
+languages.pal=palav\u00ed
+languages.chp=s\u00edpev\u00edska
+languages.io=\u00edd\u00f3
+languages.cho=sjokt\u00e1
+languages.chn=s\u00edn\u00fak
+languages.chm=mar\u00ed
+languages.tyv=t\u00fav\u00ednska
+languages.bnt=bant\u00fam\u00e1l
+languages.pag=pangas\u00ednm\u00e1l
+languages.ik=\u00edn\u00fap\u00edak
+languages.chk=sj\u00fak\u00edska
+languages.ii=s\u00eds\u00faanj\u00ed
+languages.haw=hava\u00edska
+languages.lam=lamba
+languages.ig=\u00edgb\u00f3
+languages.chg=sjagata\u00ed
+languages.sga=forn\u00edrska (til 900)
+languages.paa=pap\u00fask m\u00e1l
+languages.ie=interlingve
+languages.id=ind\u00f3nes\u00edska
+languages.lah=landa
+languages.day=dajak
+languages.chb=s\u00edbsja
+languages.ia=interlingva
+languages.lad=lad\u00ednska
+languages.hz=herer\u00f3
+languages.hai=ha\u00edda
+languages.dar=dargva
+languages.hy=armenska
+languages.ath=atapask\u00edsk m\u00e1l
+languages.hu=ungverska
+languages.ht=ha\u00edt\u00edska
+languages.dak=dak\u00f3ta
+languages.hr=kr\u00f3at\u00edska
+languages.ho=h\u00edr\u00edm\u00f3t\u00fa
+languages.hi=hind\u00ed
+languages.dyu=dj\u00fala
+languages.he=hebreska
+languages.ast=ast\u00far\u00edska
+languages.kfo=koro
+languages.ha=h\u00e1sa
+languages.wen=sorbnesk m\u00e1l
+languages.gv=manx
+languages.gu=g\u00fajarat\u00ed
+languages.sem=sem\u00edsk m\u00e1l
+languages.sel=selk\u00fap
+languages.iro=\u00edr\u00f3kesk m\u00e1l
+languages.gn=gvaran\u00ed
+languages.gl=gallegska
+languages.en_CA=kanad\u00edsk enska
+languages.arw=aravakska
+languages.gez=g\u00eds
+languages.art=al\u00fej\u00f3\u00f0am\u00e1l
+languages.gd=skosk gel\u00edska
+languages.ira=\u00edranska
+languages.ga=\u00edrska
+languages.arp=arapah\u00f3
+languages.arn=ar\u00e1kan\u00edska
+languages.fy=fr\u00edsneska
+languages.bla=siksika
+languages.gem=germ\u00f6nsk m\u00e1l
+languages.ypk=j\u00fap\u00edsk m\u00e1l
+languages.arc=arame\u00edska
+languages.fr=franska
+languages.fo=f\u00e6reyska
+languages.cel=keltnesk m\u00e1l
+languages.fj=f\u00eddjeyska
+languages.fi=finnska
+languages.ff=f\u00fala
+languages.tvl=t\u00faval\u00faska
+languages.ceb=keb\u00faan\u00f3
+languages.fa=persneska
+languages.en_AU=\u00e1str\u00f6lsk enska
+languages.zh_Hans=k\u00ednverska (einf\u00f6ldu\u00f0)
+languages.zh_Hant=k\u00ednverska (hef\u00f0bundin)
+languages.eu=baskneska
+languages.sco=skoska
+languages.et=eistneska
+languages.scn=sikileyska
+languages.es=sp\u00e6nska
+languages.eo=esperant\u00f3
+languages.en=enska
+languages.el=gr\u00edska
+languages.tut=alta\u00edsk m\u00e1l
+languages.niu=n\u00edveska
+languages.tup=t\u00fap\u00edm\u00e1l
+languages.ee=eve
+languages.tum=t\u00famb\u00faka
+languages.nl_BE=fl\u00e6mska
+languages.es_419=latnesk-amer\u00edsk sp\u00e6nska
+languages.mos=moss\u00ed
+languages.dz=dsongka
+languages.kcg=tyap
+languages.nic=n\u00edgerkord\u00f3fanm\u00e1l
+languages.lus=l\u00fasa\u00ed
+languages.fiu=finnsk\u00fagr\u00edsk m\u00e1l
+languages.dv=d\u00edveh\u00ed
+languages.nia=n\u00edas
+languages.moh=m\u00f3h\u00edska
+languages.luo=l\u00fa\u00f3
+languages.lun=l\u00fanda
+languages.apa=apatsjam\u00e1l
+languages.fil=filip\u00ednska
+languages.lui=l\u00faisen\u00f3
+languages.hup=h\u00fapa
+languages.cch=atsam
+languages.bin=b\u00edn\u00ed
+languages.de=\u00fe\u00fdska
+languages.lua=l\u00fabal\u00fal\u00faa
+languages.bik=b\u00edkol
+languages.was=vasj\u00f3
+languages.und=\u00f3\u00feekkt e\u00f0a \u00f3gilt tungum\u00e1l
+languages.war=vara\u00ed
+languages.da=danska
+languages.dum=mi\u00f0hollenska
+languages.wal=valam\u00f3
+languages.mno=man\u00f3b\u00f3m\u00e1l
+languages.wak=vakasm\u00e1l
+languages.sat=santal\u00ed
+languages.cy=velska
+languages.sas=sasak
+languages.kbd=kabard\u00edska
+languages.cv=sj\u00favas
+languages.cu=kirkjuslavneska
+languages.mni=man\u00edp\u00far\u00ed
+languages.cs=t\u00e9kkneska
+languages.sam=samversk arame\u00edska
+languages.cr=kr\u00ed
+languages.sal=sal\u00edsm\u00e1l
+languages.dua=d\u00faala
+languages.co=kors\u00edska
 languages.sai=Ind\u00ed\u00e1nam\u00e1l Su\u00f0ur-Amer\u00edku (\u00f6nnur)
-languages.mnc=Mansj\u00fa
-languages.sah=Jak\u00fat
-languages.gba=Gbaja
-languages.inh=Ing\u00fas
-languages.kaw=Kav\u00ed
-languages.sad=Sandave
-languages.ch=Kamorr\u00f3
-languages.bho=Bojp\u00far\u00ed
-languages.ine=Ind\u00f3evr\u00f3psk m\u00e1l (\u00f6nnur)
-languages.enm=Mi\u00f0enska (1100-1500)
-languages.ce=Tsjetsjenska
-languages.inc=Indversk m\u00e1l (\u00f6nnur)
-languages.kar=Karen
-languages.gay=Gaj\u00f3
-languages.ca=Katal\u00f3nska
-languages.umb=\u00damb\u00fand\u00fa
-languages.syr=S\u00fdrlenska
-languages.kam=Kamba
-languages.tsi=Tsims\u00edska
-languages.ang=Fornenska (um 450-1100)
-languages.cau=K\u00e1kasusm\u00e1l (\u00f6nnur)
-languages.kac=Kas\u00edn
-languages.kab=Kab\u00edle
-languages.bs=Bosn\u00edska
-languages.kaa=Karakalpak
-languages.br=Bret\u00f3nska
-languages.car=Kar\u00edbam\u00e1l
-languages.bo=T\u00edbeska
-languages.bn=Bengalska
-languages.bm=Bambara
-languages.gaa=Ga
-languages.bi=B\u00edslama
-languages.cai=Ind\u00ed\u00e1nam\u00e1l Mi\u00f0-Amer\u00edku (\u00f6nnur)
-languages.bh=B\u00edhar\u00ed
-languages.bg=B\u00falgarska
-languages.be=Hv\u00edtr\u00fassneska
-languages.cad=Kadd\u00f3
-languages.ba=Bask\u00edr
-languages.zu=S\u00fal\u00fa
-languages.zen=Senaga
-languages.pro=Fornpr\u00f3vensalska (til 1500)
-languages.hsb=H\u00e1sorbneska
-languages.az=Aserska
-languages.ay=A\u00edmara
-languages.av=Avar\u00edska
-languages.as=Assamska
-languages.ar=Arab\u00edska
-languages.dsb=L\u00e1gsorbneska
-languages.elx=Elam\u00edt
-languages.ilo=\u00cdlok\u00f3
-languages.zh=K\u00ednverska
-languages.an=Aragonska
-languages.pra=Prakr\u00edtm\u00e1l
-languages.am=Amhar\u00edska
-languages.new=Nevar\u00ed
-languages.ak=Akan
-languages.za=S\u00faang
-languages.af=Afr\u00edkanska
-languages.ae=Avest\u00edska
-languages.ab=Abkas\u00edska
-languages.yo=J\u00f3r\u00faba
-languages.alg=Algonkv\u00ednsk m\u00e1l
-languages.ale=Ale\u00faska
-languages.mkh=Monkmerm\u00e1l (\u00f6nnur)
-languages.yi=Jidd\u00edska
-languages.dra=Dravid\u00edsk m\u00e1l (\u00f6nnur)
-languages.ber=Berbam\u00e1l
-languages.nds=L\u00e1g\u00fe\u00fdska; L\u00e1gsaxneska
-languages.bem=Bemba
-languages.bej=Beja
-languages.tpi=Tokpisin
+languages.mnc=mansj\u00fa
+languages.sah=jak\u00fat
+languages.kaw=kav\u00ed
+languages.inh=ing\u00fas
+languages.gba=gbaja
+languages.sad=sandave
+languages.ch=kamorr\u00f3
+languages.ine=ind\u00f3evr\u00f3psk m\u00e1l
+languages.bho=bojp\u00far\u00ed
+languages.enm=mi\u00f0enska
+languages.kar=karen
+languages.inc=indversk m\u00e1l
+languages.ce=tsjetsjenska
+languages.gay=gaj\u00f3
+languages.ca=katal\u00f3nska
+languages.umb=\u00famb\u00fand\u00fa
+languages.syr=s\u00fdrlenska
+languages.kam=kamba
+languages.anp=ang\u00edka
+languages.tsi=tsims\u00edska
+languages.kaj=jju
+languages.ang=fornenska
+languages.kac=kas\u00edn
+languages.cau=k\u00e1kasusm\u00e1l
+languages.kab=kab\u00edle
+languages.kaa=karakalpak
+languages.bs=bosn\u00edska
+languages.car=kar\u00edbam\u00e1l
+languages.br=bret\u00f3nska
+languages.syc=klassisk s\u00fdrlenska
+languages.bo=t\u00edbeska
+languages.bn=bengalska
+languages.bm=bambara
+languages.gaa=ga
+languages.cai=Mi\u00f0-Amer\u00edku ind\u00ed\u00e1nam\u00e1l
+languages.bi=b\u00edslama
+languages.bh=b\u00edhar\u00ed
+languages.bg=b\u00falgarska
+languages.be=hv\u00edtr\u00fassneska
+languages.pt_BR=bras\u00edl\u00edsk port\u00fagalska
+languages.cad=kadd\u00f3
+languages.ba=bask\u00edr
+languages.zu=s\u00fal\u00fa
+languages.zen=senaga
+languages.pro=fornpr\u00f3vensalska
+languages.hsb=h\u00e1sorbneska
+languages.az=aserska
+languages.ay=a\u00edmara
+languages.av=avar\u00edska
+languages.as=assame\u00edska
+languages.dsb=l\u00e1gsorbneska
+languages.ar=arab\u00edska
+languages.ilo=\u00edlok\u00f3
+languages.elx=elam\u00edt
+languages.zh=k\u00ednverska
+languages.an=aragonska
+languages.pra=prakr\u00edtm\u00e1l
+languages.am=amhar\u00edska
+languages.new=nevar\u00ed
+languages.ak=akan
+languages.za=s\u00faang
+languages.en_US=bandar\u00edsk enska
+languages.af=afr\u00edkanska
+languages.ae=avest\u00edska
+languages.alt=su\u00f0uralta\u00edska
+languages.ab=abkas\u00edska
+languages.aa=af\u00e1r
+languages.yo=j\u00f3r\u00faba
+languages.alg=algonkv\u00ednsk m\u00e1l
+languages.ale=aleut\u00edska
+languages.mkh=monkmerm\u00e1l
+languages.yi=jidd\u00edska
+languages.dra=dravid\u00edsk m\u00e1l
+languages.ber=berbam\u00e1l
+languages.nds=l\u00e1g\u00fe\u00fdska
+languages.bem=bemba
+languages.bej=beja
+languages.tpi=tokpisin
index f2662faf024b2a925962bc8476fdbcb4fa99c5cc..3167921800a3fd339ca6806f0a1437b8518df87e 100644 (file)
 
 decimalSeparator=,
 groupingSeparator=.
-currenciesDisplayName.YDD=Dinaro dello Yemen
-currenciesDisplayName.TWD=Nuovo dollaro taiwanese
-currenciesDisplayName.KES=Scellino Keniota
-currenciesDisplayName.BYB=Nuovo Rublo Bielorussia (1994-1999)
-currenciesDisplayName.LKR=Rupia di Sri Lanka
-currenciesDisplayName.RWF=Franco Ruandese
-currenciesDisplayName.TJS=Somoni del Tajikistan
-currenciesDisplayName.SDP=Sterlina Sudanese
-currenciesDisplayName.TJR=Rublo del Tajikistan
-currenciesDisplayName.ERN=Nakfa Eritreo
-currenciesDisplayName.AFN=Afgani
-currenciesDisplayName.GRD=Dracma Greca
-currenciesDisplayName.IEP=Lira Irlandese
-currenciesDisplayName.ARS=Peso Argentino
-currenciesDisplayName.SDD=Dinaro Sudanese
-currenciesDisplayName.ARP=Peso Argentino (vecchio Cod.)
-currenciesDisplayName.GEL=Lari Georgiano
-currenciesDisplayName.AFA=Afgani (1927-2002)
-currenciesDisplayName.GEK=Kupon Larit Georgiano
-currenciesDisplayName.CRC=Col\u00f3n Costaricano
-currenciesDisplayName.FKP=Sterlina delle Falkland
-currenciesDisplayName.EEK=Corona dell\u2019Estonia
-currenciesDisplayName.HKD=Dollaro di Hong Kong
-currenciesDisplayName.MDL=Leu Moldavo
-currenciesDisplayName.ARA=Austral Argentino
-currenciesDisplayName.IQD=Dinaro Iracheno
-currenciesDisplayName.SCR=Rupia delle Seychelles
-currenciesDisplayName.VUV=Vatu di Vanuatu
-currenciesDisplayName.DKK=Corona Danese
-currenciesDisplayName.KPW=Won Nordcoreano
-currenciesDisplayName.GQE=Ekwele della Guinea Equatoriale
-currenciesDisplayName.IDR=Rupia Indiana
-currenciesDisplayName.LVR=Rublo Lettone
-currenciesDisplayName.SOS=Scellino Somalo
-currenciesDisplayName.AED=Dirham degli Emirati Arabi Uniti
-currenciesDisplayName.BWP=Pula del Botswana
-currenciesDisplayName.LVL=Lat Lettone
-currenciesDisplayName.RUR=Rublo della CSI
-currenciesDisplayName.NIO=C\u00f3rdoba oro nicaraguense
-currenciesDisplayName.ADP=Peseta Andorrana
-currenciesDisplayName.FJD=Dollaro delle Figi
-currenciesDisplayName.MOP=Pataca di Macao
-currenciesDisplayName.RUB=Rublo Russo
-currenciesDisplayName.CDF=Franco Congolese
-currenciesDisplayName.NIC=Cordoba Nicaraguense
-currenciesDisplayName.DJF=Franco Gibutiano
-currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) dell\u2019Ecuador
-currenciesDisplayName.SBD=Dollaro delle Isole Solomon
-currenciesDisplayName.UZS=Sum dell\u2019Uzbekistan
-currenciesDisplayName.ECS=Sucre dell\u2019Ecuador
-currenciesDisplayName.PHP=Peso delle Filippine
-currenciesDisplayName.THB=Baht Tailandese
-currenciesDisplayName.LUF=Franco del Lussemburgo
-currenciesDisplayName.FIM=Markka Finlandese
-currenciesDisplayName.TTD=Dollaro di Trinidad e Tobago
-currenciesDisplayName.SZL=Lilangeni dello Swaziland
-currenciesDisplayName.MNT=Tugrik Mongolo
-currenciesDisplayName.SAR=Ryal Saudita
-currenciesDisplayName.UAK=Karbovanetz Ucraino
-currenciesDisplayName.UAH=Hrivna Ucraina
-currenciesDisplayName.HUF=Fiorino Ungherese
-currenciesDisplayName.COP=Peso Colombiano
-currenciesDisplayName.QAR=Rial del Qatar
-currenciesDisplayName.LTT=Talonas Lituani
-currenciesDisplayName.PTE=Escudo Portoghese
-currenciesDisplayName.AOR=Kwanza Reajustado Angolano (1995-1999)
-currenciesDisplayName.UYU=Peso Uruguayo uruguaiano
-currenciesDisplayName.GBP=Sterlina Inglese
-currenciesDisplayName.BIF=Franco del Burundi
-currenciesDisplayName.INR=Rupia Indiana
-currenciesDisplayName.ZRZ=Zaire dello Zaire
-currenciesDisplayName.AON=Nuovo Kwanza Angolano (1990-2000)
-currenciesDisplayName.LTL=Lita Lituana
-currenciesDisplayName.XFU=Franco UIC Francese
-currenciesDisplayName.KZT=Tenge Kazaco
-currenciesDisplayName.MZM=Metical del Mozambico
-currenciesDisplayName.UYP=Peso Uruguaiano (1975-1993)
-currenciesDisplayName.AOK=Kwanza Angolano (1977-1990)
-currenciesDisplayName.BUK=Kyat Birmano
-currenciesDisplayName.GNS=Syli della Guinea
-currenciesDisplayName.XFO=Franco Oro Francese
-currenciesDisplayName.PGK=Kina della Papua Nuova Guinea
-currenciesDisplayName.SYP=Sterlina Siriana
-currenciesDisplayName.MZE=Escudo del Mozambico
-currenciesDisplayName.OMR=Rial Omanita
-currenciesDisplayName.NGN=Naira Nigeriana
-currenciesDisplayName.ZRN=Nuovo Zaire dello Zaire
-currenciesDisplayName.AOA=Kwanza Angolano
-currenciesDisplayName.CNY=Renmimbi Cinese
-currenciesDisplayName.MAF=Franco Marocchino
-currenciesDisplayName.GNF=Franco della Guinea
-currenciesDisplayName.HTG=Gourde Haitiano
-currenciesDisplayName.MAD=Dirham Marocchino
-currenciesDisplayName.MMK=Kyat di Myanmar
-currenciesDisplayName.MYR=Ringgit della Malesia
-currenciesDisplayName.LSL=Loti del Lesotho
-currenciesDisplayName.XEU=Unit\u00e0 Monetaria Europea
-currenciesDisplayName.BHD=Dinaro del Bahraini
-currenciesDisplayName.SLL=Leone della Sierra Leone
-currenciesDisplayName.BTN=Ngultrum Butanese
-currenciesDisplayName.TRL=Lira Turca
-currenciesDisplayName.KMF=Franco Comoriano
-currenciesDisplayName.ANG=Fiorino delle Antille Olandesi
-currenciesDisplayName.CZK=Corona Ceca
-currenciesDisplayName.AZM=Manat Azero
-currenciesDisplayName.KYD=Dollaro delle Isole Cayman
-currenciesDisplayName.GMD=Dalasi del Gambia
-currenciesDisplayName.BGN=Nuovo Lev Bulgaro
-currenciesDisplayName.CAD=Dollaro Canadese
-currenciesDisplayName.MXV=Unidad de Inversion (UDI) Messicana
-currenciesDisplayName.BGL=Lev Bulgaro
-currenciesDisplayName.VEB=Bolivar Venezuelano
-currenciesDisplayName.MLF=Franco di Mali
-currenciesDisplayName.ILS=Nuovo sheqel israeliano
-currenciesDisplayName.MXP=Peso messicano d\u2019argento (1861-1992)
-currenciesDisplayName.PES=Sol Peruviano
-currenciesDisplayName.GYD=Dollaro della Guyana
-currenciesDisplayName.MXN=Peso Messicano
-currenciesDisplayName.ILP=Sterlina Israeliana
-currenciesDisplayName.SKK=Corona Slovacca
-currenciesDisplayName.CYP=Sterlina Cipriota
-currenciesDisplayName.XDR=Diritti Speciali di Incasso
-currenciesDisplayName.PEN=Sol Nuevo Peruviano
-currenciesDisplayName.LRD=Dollaro Liberiano
-currenciesDisplayName.PEI=Inti Peruviano
-currenciesDisplayName.AMD=Dram Armeno
-currenciesDisplayName.BSD=Dollaro delle Bahamas
-currenciesDisplayName.HRK=Kuna Croata
-currenciesDisplayName.CLP=Peso Cileno
-currenciesDisplayName.HRD=Dinaro Croato
-currenciesDisplayName.XPF=Franco CFP
-currenciesDisplayName.FRF=Franco Francese
-currenciesDisplayName.BRR=Cruzeiro Brasiliano
-currenciesDisplayName.MKD=Dinaro Macedone
-currenciesDisplayName.CLF=Unidades de Fomento Chilene
-currenciesDisplayName.ALL=Lek Albanese
-currenciesDisplayName.BRN=Cruzado Novo Brasiliano
-currenciesDisplayName.MWK=Kwacha Malawiano
-currenciesDisplayName.BRL=Real Brasiliano
-currenciesDisplayName.TPE=Escudo di Timor
-currenciesDisplayName.BRE=Cruzeiro Brasiliano (1990-1993)
-currenciesDisplayName.BRC=Cruzado Brasiliano
-currenciesDisplayName.BRB=Cruzeiro Novo Brasiliano (1967-1986)
-currenciesDisplayName.DEM=Marco Tedesco
-currenciesDisplayName.KWD=Dinaro Kuwaitiano
-currenciesDisplayName.XCD=Dollaro dei Caraibi Orientali
-currenciesDisplayName.NPR=Rupia Nepalese
-currenciesDisplayName.GWP=Peso della Guinea-Bissau
-currenciesDisplayName.YUN=Dinaro Convertibile Yugoslavo
-currenciesDisplayName.SVC=Col\u00f3n Salvadoregno
-currenciesDisplayName.YUM=Dinaro Noviy Yugoslavo
-currenciesDisplayName.BEL=Franco Belga (finanziario)
-currenciesDisplayName.SIT=Tallero Sloveno
-currenciesDisplayName.JPY=Yen Giapponese
-currenciesDisplayName.XOF=Franco CFA BCEAO
-currenciesDisplayName.MVR=Rufiyaa delle Maldive
-currenciesDisplayName.GWE=Escudo della Guinea portoghese
-currenciesDisplayName.BEF=Franco Belga
-currenciesDisplayName.TOP=Pa\u02bbanga di Tonga
-currenciesDisplayName.YUD=Dinaro Forte Yugoslavo
-currenciesDisplayName.BEC=Franco Belga (convertibile)
-currenciesDisplayName.SUR=Rublo Sovietico
-currenciesDisplayName.ROL=Leu della Romania
-currenciesDisplayName.DDM=Ostmark della Germania Orientale
-currenciesDisplayName.BDT=Taka Bangladese
-currenciesDisplayName.XBD=Unit\u00e0 di acconto europea (XBD)
-currenciesDisplayName.AWG=Fiorino di Aruba
-currenciesDisplayName.XBC=Unit\u00e0 di acconto europea (XBC)
-currenciesDisplayName.XBB=Unit\u00e0 monetaria europea
-currenciesDisplayName.XBA=Unit\u00e0 composita europea
-currenciesDisplayName.NOK=Corona Norvegese
-currenciesDisplayName.MUR=Rupia Mauriziana
-currenciesDisplayName.ZAR=Rand Sudafricano
-currenciesDisplayName.SHP=Sterlina di Sant\u2019Elena
-currenciesDisplayName.XAU=Oro
-currenciesDisplayName.ZAL=Rand Sudafricano (finanziario)
-currenciesDisplayName.VND=Dong Vietnamita
-currenciesDisplayName.TZS=Scellino della Tanzania
-currenciesDisplayName.GIP=Sterlina di Gibilterra
-currenciesDisplayName.TND=Dinaro Tunisino
-currenciesDisplayName.CVE=Escudo del Capo Verde
-currenciesDisplayName.UGX=Scellino Ugandese
-currenciesDisplayName.ZMK=Kwacha dello Zambia
-currenciesDisplayName.JOD=Dinaro Giordano
-currenciesDisplayName.XAF=Franco CFA BEAC
-currenciesDisplayName.LBP=Sterlina Libanese
-currenciesDisplayName.UGS=Scellino Ugandese (1966-1987)
-currenciesDisplayName.STD=Dobra di S\u00e3o Tom\u00e9 e Principe
-currenciesDisplayName.WST=Tala della Samoa Occidentale
-currenciesDisplayName.KHR=Riel Cambogiano
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Peso Dominicano
-currenciesDisplayName.BOV=Mvdol Boliviano
-currenciesDisplayName.MTP=Sterlina Maltese
-currenciesDisplayName.USS=Dollaro Statunitense (Same day)
-currenciesDisplayName.BOP=Peso Boliviano
-currenciesDisplayName.MTL=Lira Maltese
-currenciesDisplayName.CUP=Peso Cubano
-currenciesDisplayName.TMM=Manat Turkmeno
-currenciesDisplayName.USN=Dollaro Statunitense (Next day)
-currenciesDisplayName.SGD=Dollaro di Singapore
-currenciesDisplayName.NZD=Dollaro Neozelandese
-currenciesDisplayName.USD=Dollaro Statunitense
-currenciesDisplayName.HNL=Lempira Hoduregno
-currenciesDisplayName.BOB=Boliviano
-currenciesDisplayName.ITL=Lira Italiana
-currenciesDisplayName.PAB=Balboa di Panama
-currenciesDisplayName.GTQ=Quetzal Guatemalteco
-currenciesDisplayName.LAK=Kip Laotiano
-currenciesDisplayName.GHC=Cedi del Ghana
-currenciesDisplayName.AUD=Dollaro Australiano
-currenciesDisplayName.NAD=Dollaro Namibiano
-currenciesDisplayName.KGS=Som  Kirghiso
-currenciesDisplayName.MGF=Franco Malgascio
-currenciesDisplayName.CHF=Franco Svizzero
-currenciesDisplayName.BBD=Dollaro di Barbados
-currenciesDisplayName.MGA=Ariary Malgascio
-currenciesDisplayName.PYG=Guarani del Paraguay
-currenciesDisplayName.PLZ=Zloty Polacco (1950-1995)
-currenciesDisplayName.YER=Rial dello Yemen
-currenciesDisplayName.ATS=Scellino Austriaco
-currenciesDisplayName.ETB=Birr Etiopico
-currenciesDisplayName.BND=Dollaro del Brunei
-currenciesDisplayName.JMD=Dollaro Giamaicano
-currenciesDisplayName.EGP=Sterlina Egiziana
-currenciesDisplayName.PLN=Zloty Polacco
-currenciesDisplayName.DZD=Dinaro Algerino
-currenciesDisplayName.ISK=Corona Islandese
-currenciesDisplayName.SRG=Fiorino del Suriname
-currenciesDisplayName.LYD=Dinaro Libico
-currenciesDisplayName.BZD=Dollaro Belize
-currenciesDisplayName.BAM=Marco Conv. Bosnia-Erzegovina
-currenciesDisplayName.ESP=Peseta Spagnola
-currenciesDisplayName.KRW=Won Sudcoreano
-currenciesDisplayName.NLG=Fiorino Olandese
-currenciesDisplayName.MRO=Ouguiya della Mauritania
-currenciesDisplayName.BAD=Dinar Bosnia-Herzegovina
-currenciesDisplayName.ZWD=Dollaro dello Zimbabwe
-currenciesDisplayName.SEK=Corona Svedese
-currenciesDisplayName.CSK=Corona forte cecoslovacca
-currenciesDisplayName.BYR=Rublo Bielorussia
-currenciesDisplayName.IRR=Rial Iraniano
-currenciesDisplayName.PKR=Rupia del Pakistan
-currenciesDisplayName.BMD=Dollaro delle Bermuda
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.YDD=dinaro dello Yemen
+currenciesDisplayName.KES=scellino keniota
+currenciesDisplayName.TWD=nuovo dollaro taiwanese
+currenciesDisplayName.LKR=rupia di Sri Lanka
+currenciesDisplayName.BYB=nuovo rublo bielorusso (1994-1999)
+currenciesDisplayName.TJS=somoni del Tajikistan
+currenciesDisplayName.RWF=franco ruandese
+currenciesDisplayName.ERN=nakfa eritreo
+currenciesDisplayName.TJR=rublo del Tajikistan
+currenciesDisplayName.SDP=sterlina sudanese
+currenciesDisplayName.GRD=dracma Greca
+currenciesDisplayName.AFN=afgani
+currenciesDisplayName.IEP=lira irlandese
+currenciesDisplayName.ARS=peso argentino
+currenciesDisplayName.ARP=peso argentino (vecchio cod.)
+currenciesDisplayName.SDD=dinaro sudanese
+currenciesDisplayName.GEL=lari georgiano
+currenciesDisplayName.GEK=kupon larit georgiano
+currenciesDisplayName.AFA=afgani (1927-2002)
+currenciesDisplayName.CRC=col\u00f3n costaricano
+currenciesDisplayName.FKP=sterlina delle Falkland
+currenciesDisplayName.EEK=corona dell\u2019Estonia
+currenciesDisplayName.MDL=leu moldavo
+currenciesDisplayName.HKD=dollaro di Hong Kong
+currenciesDisplayName.IQD=dinaro iracheno
+currenciesDisplayName.ARA=austral argentino
+currenciesDisplayName.SCR=rupia delle Seychelles
+currenciesDisplayName.VUV=vatu di Vanuatu
+currenciesDisplayName.KPW=won nordcoreano
+currenciesDisplayName.DKK=corona danese
+currenciesDisplayName.IDR=rupia indonesiana
+currenciesDisplayName.GQE=ekwele della Guinea equatoriale
+currenciesDisplayName.SOS=scellino somalo
+currenciesDisplayName.LVR=rublo lettone
+currenciesDisplayName.AED=drham degli Emirati Arabi Uniti
+currenciesDisplayName.LVL=lat lettone
+currenciesDisplayName.BWP=pula del Botswana
+currenciesDisplayName.RUR=rublo della CSI
+currenciesDisplayName.NIO=c\u00f3rdoba oro nicaraguense
+currenciesDisplayName.XTS=codice della valuta di prova
+currenciesDisplayName.MOP=pataca di Macao
+currenciesDisplayName.FJD=dollaro delle Figi
+currenciesDisplayName.ADP=peseta andorrana
+currenciesDisplayName.RUB=rublo russo
+currenciesDisplayName.CDF=franco congolese
+currenciesDisplayName.NIC=cordoba nicaraguense
+currenciesDisplayName.DJF=franco gibutiano
+currenciesDisplayName.UZS=sum dell\u2019Uzbekistan
+currenciesDisplayName.SBD=dollaro delle Isole Solomon
+currenciesDisplayName.ECV=unidad de valor constante (UVC) dell\u2019Ecuador
+currenciesDisplayName.LUL=franco finanziario del Lussemburgo
+currenciesDisplayName.ECS=sucre dell\u2019Ecuador
+currenciesDisplayName.THB=baht tailandese
+currenciesDisplayName.PHP=peso delle Filippine
+currenciesDisplayName.LUF=franco del Lussemburgo
+currenciesDisplayName.RHD=dollaro della Rhodesia
+currenciesDisplayName.LUC=franco convertibile del Lussemburgo
+currenciesDisplayName.FIM=markka finlandese
+currenciesDisplayName.TTD=dollaro di Trinidad e Tobago
+currenciesDisplayName.SZL=lilangeni dello Swaziland
+currenciesDisplayName.MNT=tugrik mongolo
+currenciesDisplayName.UAK=karbovanetz ucraino
+currenciesDisplayName.SAR=ryal saudita
+currenciesDisplayName.UAH=hrivna ucraina
+currenciesDisplayName.HUF=fiorino ungherese
+currenciesDisplayName.QAR=rial del Qatar
+currenciesDisplayName.COP=peso colombiano
+currenciesDisplayName.LTT=talonas lituani
+currenciesDisplayName.PTE=escudo portoghese
+currenciesDisplayName.UYU=peso uruguayo uruguaiano
+currenciesDisplayName.AOR=kwanza reajustado angolano (1995-1999)
+currenciesDisplayName.GBP=sterlina inglese
+currenciesDisplayName.ZRZ=zaire dello Zaire
+currenciesDisplayName.INR=rupia indiana
+currenciesDisplayName.BIF=franco del Burundi
+currenciesDisplayName.XFU=franco UIC francese
+currenciesDisplayName.MZN=metical del Mozambico
+currenciesDisplayName.LTL=lita lituana
+currenciesDisplayName.AON=nuovo kwanza angolano (1990-2000)
+currenciesDisplayName.UYP=peso uruguaiano (1975-1993)
+currenciesDisplayName.MZM=metical del Mozambico
+currenciesDisplayName.KZT=tenge kazaco
+currenciesDisplayName.AOK=kwanza angolano (1977-1990)
+currenciesDisplayName.GNS=syli della Guinea
+currenciesDisplayName.BUK=kyat birmano
+currenciesDisplayName.XFO=franco oro francese
+currenciesDisplayName.PGK=kina della Papua Nuova Guinea
+currenciesDisplayName.SYP=sterlina siriana
+currenciesDisplayName.OMR=rial omanita
+currenciesDisplayName.MZE=escudo del Mozambico
+currenciesDisplayName.ZRN=nuovo zaire dello Zaire
+currenciesDisplayName.NGN=naira nigeriana
+currenciesDisplayName.CNY=renmimbi cinese
+currenciesDisplayName.AOA=kwanza angolano
+currenciesDisplayName.MAF=franco marocchino
+currenciesDisplayName.RSD=dinaro serbo
+currenciesDisplayName.GNF=franco della Guinea
+currenciesDisplayName.MAD=dirham marocchino
+currenciesDisplayName.HTG=gourde haitiano
+currenciesDisplayName.TRY=nuova lira turca
+currenciesDisplayName.MMK=kyat di Myanmar
+currenciesDisplayName.XRE=fondi RINET
+currenciesDisplayName.MYR=ringgit della Malesia
+currenciesDisplayName.LSM=maloti
+currenciesDisplayName.XEU=unit\u00e0 monetaria europea
+currenciesDisplayName.LSL=loti del Lesotho
+currenciesDisplayName.SLL=leone della Sierra Leone
+currenciesDisplayName.BHD=dinaro del Bahraini
+currenciesDisplayName.BTN=ngultrum butanese
+currenciesDisplayName.TRL=lira turca
+currenciesDisplayName.KMF=franco comoriano
+currenciesDisplayName.CZK=corona ceca
+currenciesDisplayName.ANG=fiorino delle Antille olandesi
+currenciesDisplayName.AZN=manat azero
+currenciesDisplayName.AZM=manat azero
+currenciesDisplayName.KYD=dollaro delle Isole Cayman
+currenciesDisplayName.GMD=dalasi del Gambia
+currenciesDisplayName.BGN=nuovo lev bulgaro
+currenciesDisplayName.MXV=unidad de inversion (UDI) messicana
+currenciesDisplayName.CAD=dollaro canadese
+currenciesDisplayName.BGL=lev bulgaro
+currenciesDisplayName.VEB=bolivar venezuelano
+currenciesDisplayName.MLF=franco di Mali
+currenciesDisplayName.MXP=peso messicano d\u2019argento (1861-19
+currenciesDisplayName.ILS=nuovo sheqel israeliano
+currenciesDisplayName.PES=sol peruviano
+currenciesDisplayName.MXN=peso messicano
+currenciesDisplayName.GYD=dollaro della Guyana
+currenciesDisplayName.ILP=sterlina israeliana
+currenciesDisplayName.CYP=sterlina cipriota
+currenciesDisplayName.SKK=corona slovacca
+currenciesDisplayName.XDR=diritti speciali di incasso
+currenciesDisplayName.PEN=sol nuevo peruviano
+currenciesDisplayName.LRD=dollaro liberiano
+currenciesDisplayName.PEI=inti peruviano
+currenciesDisplayName.AMD=dram armeno
+currenciesDisplayName.BSD=dollaro delle Bahamas
+currenciesDisplayName.XPT=platino
+currenciesDisplayName.HRK=kuna croata
+currenciesDisplayName.HRD=dinaro croato
+currenciesDisplayName.CLP=peso cileno
+currenciesDisplayName.XPF=franco CFA BEAC
+currenciesDisplayName.FRF=franco francese
+currenciesDisplayName.BRR=cruzeiro brasiliano
+currenciesDisplayName.MKD=dinaro macedone
+currenciesDisplayName.CLF=unidades de fomento cilene
+currenciesDisplayName.ALL=lek albanese
+currenciesDisplayName.BRN=cruzado novo brasiliano
+currenciesDisplayName.MWK=kwacha malawiano
+currenciesDisplayName.BRL=real brasiliano
+currenciesDisplayName.TPE=escudo di Timor
+currenciesDisplayName.BRE=cruzeiro brasiliano (1990-1993)
+currenciesDisplayName.BRC=cruzado brasiliano
+currenciesDisplayName.BRB=cruzeiro novo brasiliano (1967-1986)
+currenciesDisplayName.DEM=marco tedesco
+currenciesDisplayName.KWD=dinaro kuwaitiano
+currenciesDisplayName.XCD=dollaro dei Caraibi orientali
+currenciesDisplayName.NPR=rupia nepalese
+currenciesDisplayName.GWP=peso della Guinea-Bissau
+currenciesDisplayName.YUN=dinaro convertibile yugoslavo
+currenciesDisplayName.SVC=col\u00f3n salvadoregno
+currenciesDisplayName.YUM=dinaro noviy yugoslavo
+currenciesDisplayName.BEL=franco belga (finanziario)
+currenciesDisplayName.SIT=tallero sloveno
+currenciesDisplayName.JPY=yen giapponese
+currenciesDisplayName.XOF=franco CFA BCEAO
+currenciesDisplayName.MVR=rufiyaa delle Maldive
+currenciesDisplayName.BEF=franco belga
+currenciesDisplayName.GWE=escudo della Guinea portoghese
+currenciesDisplayName.TOP=pa\u02bbanga di Tonga
+currenciesDisplayName.YUD=dinaro forte yugoslavo
+currenciesDisplayName.BEC=franco belga (convertibile)
+currenciesDisplayName.SUR=rublo sovietico
+currenciesDisplayName.RON=leu rumeno
+currenciesDisplayName.ROL=leu della Romania
+currenciesDisplayName.BDT=taka bangladese
+currenciesDisplayName.DDM=ostmark della Germania orientale
+currenciesDisplayName.XBD=unit\u00e0 di acconto europea
+currenciesDisplayName.AWG=fiorino di Aruba
+currenciesDisplayName.XBC=unit\u00e0 di acconto europea
+currenciesDisplayName.XBB=unit\u00e0 monetaria europea
+currenciesDisplayName.XBA=unit\u00e0 composita europea
+currenciesDisplayName.NOK=corona norvegese
+currenciesDisplayName.MUR=rupia mauriziana
+currenciesDisplayName.ZAR=rand sudafricano
+currenciesDisplayName.SHP=sterlina di Sant\u2019Elena
+currenciesDisplayName.XAU=oro
+currenciesDisplayName.ZAL=rand sudafricano (finanziario)
+currenciesDisplayName.VND=dong vietnamita
+currenciesDisplayName.TZS=scellino della Tanzania
+currenciesDisplayName.GIP=sterlina di Gibilterra
+currenciesDisplayName.TND=dinaro tunisino
+currenciesDisplayName.CVE=escudo del Capo Verde
+currenciesDisplayName.UGX=scellino ugandese
+currenciesDisplayName.ZMK=kwacha dello Zambia
+currenciesDisplayName.JOD=dinaro giordano
+currenciesDisplayName.XAF=franco CFA BEAC
+currenciesDisplayName.LBP=sterlina libanese
+currenciesDisplayName.UGS=scellino ugandese (1966-1987)
+currenciesDisplayName.STD=dobra di Sao Tom\u00e9 e Principe
+currenciesDisplayName.WST=tala della Samoa occidentale
+currenciesDisplayName.KHR=riel cambogiano
+currenciesDisplayName.DOP=peso dominicano
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BOV=mvdol boliviano
+currenciesDisplayName.MTP=sterlina maltese
+currenciesDisplayName.USS=dollaro statunitense (same day)
+currenciesDisplayName.BOP=peso boliviano
+currenciesDisplayName.CUP=peso cubano
+currenciesDisplayName.MTL=lira maltese
+currenciesDisplayName.TMM=manat turkmeno
+currenciesDisplayName.USN=dollaro statunitense (next day)
+currenciesDisplayName.SGD=dollaro di Singapore
+currenciesDisplayName.NZD=dollaro neozelandese
+currenciesDisplayName.USD=dollaro statunitense
+currenciesDisplayName.BOB=boliviano
+currenciesDisplayName.HNL=lempira hoduregno
+currenciesDisplayName.ITL=lira italiana
+currenciesDisplayName.PAB=balboa di Panama
+currenciesDisplayName.GTQ=quetzal guatemalteco
+currenciesDisplayName.XXX=nessuna valuta
+currenciesDisplayName.AUD=dollaro australiano
+currenciesDisplayName.GHC=cedi del Ghana
+currenciesDisplayName.LAK=kip laotiano
+currenciesDisplayName.NAD=dollaro namibiano
+currenciesDisplayName.KGS=som kirghiso
+currenciesDisplayName.MGF=franco malgascio
+currenciesDisplayName.BBD=dollaro di Barbados
+currenciesDisplayName.CHF=franco svizzero
+currenciesDisplayName.MGA=ariary malgascio
+currenciesDisplayName.PYG=guarani del Paraguay
+currenciesDisplayName.PLZ=zloty polacco (1950-1995)
+currenciesDisplayName.YER=rial dello Yemen
+currenciesDisplayName.ATS=scellino austriaco
+currenciesDisplayName.ETB=birr etiopico
+currenciesDisplayName.BND=dollaro del Brunei
+currenciesDisplayName.EGP=sterlina egiziana
+currenciesDisplayName.JMD=dollaro giamaicano
+currenciesDisplayName.PLN=zloty polacco
+currenciesDisplayName.DZD=dinaro algerino
+currenciesDisplayName.ISK=corona islandese
+currenciesDisplayName.SRG=fiorino del Suriname
+currenciesDisplayName.LYD=dinaro libico
+currenciesDisplayName.BAM=marco convertibile Bosnia-Erzegovina
+currenciesDisplayName.BZD=dollaro Belize
+currenciesDisplayName.ESP=peseta spagnola
+currenciesDisplayName.KRW=won sudcoreano
+currenciesDisplayName.NLG=fiorino olandese
+currenciesDisplayName.MRO=ouguiya della Mauritania
+currenciesDisplayName.BAD=dinaro Bosnia-Erzegovina
+currenciesDisplayName.ZWD=dollaro dello Zimbabwe
+currenciesDisplayName.SEK=corona svedese
+currenciesDisplayName.CSK=corona forte cecoslovacca
+currenciesDisplayName.BYR=rublo bielorusso
+currenciesDisplayName.ESB=peseta spagnola account convertibile
+currenciesDisplayName.IRR=rial iraniano
+currenciesDisplayName.ESA=peseta spagnola account
+currenciesDisplayName.PKR=rupia del Pakistan
+currenciesDisplayName.BMD=dollaro delle Bermuda
+currenciesDisplayName.CSD=antico dinaro serbo
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
@@ -282,31 +300,32 @@ currenciesSymbol.FJD=F$
 currenciesSymbol.UYU=Ur$
 currenciesSymbol.BDT=Tk
 currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
 currenciesSymbol.DJF=DF
-currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
-currenciesSymbol.CVE=CVEsc
 currenciesSymbol.YER=YRl
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.DOP=RD$
 currenciesSymbol.NAD=N$
 currenciesSymbol.COP=Col$
+currenciesSymbol.ITL=\u20a4
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
 currenciesSymbol.MYR=RM
-currenciesSymbol.SRG=Sf
-currenciesSymbol.BIF=Fbu
 currenciesSymbol.GTQ=Q
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.SRG=Sf
 currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.KMF=CF
 currenciesSymbol.LYD=LD
@@ -317,31 +336,32 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
-currenciesSymbol.ANG=NA f.
 currenciesSymbol.BZD=BZ$
 currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.BGN=lev
-shortMonths=gen®feb®mar®apr®mag®giu®lug®ago®set®ott®nov®dic®®
-months=gennaio®febbraio®marzo®aprile®maggio®giugno®luglio®agosto®settembre®ottobre®novembre®dicembre®®
-shortWeekdays=®dom®lun®mar®mer®gio®ven®sab®
-weekdays=®domenica®luned\u00ec®marted\u00ec®mercoled\u00ec®gioved\u00ec®venerd\u00ec®sabato®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=aC®dC®
-ampms=m.®p.®
+shortMonths=gen\u00aefeb\u00aemar\u00aeapr\u00aemag\u00aegiu\u00aelug\u00aeago\u00aeset\u00aeott\u00aenov\u00aedic\u00ae\u00ae
+months=Gennaio\u00aeFebbraio\u00aeMarzo\u00aeAprile\u00aeMaggio\u00aeGiugno\u00aeLuglio\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aelun\u00aemar\u00aemer\u00aegio\u00aeven\u00aesab\u00ae
+weekdays=\u00aeDomenica\u00aeLuned\u00ec\u00aeMarted\u00ec\u00aeMercoled\u00ec\u00aeGioved\u00ec\u00aeVenerd\u00ec\u00aeSabato\u00ae
+eras=A.C.\u00aeD.C.\u00ae
+ampms=m.\u00aep.\u00ae
 shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MMM/yy
+mediumDateFormat=dd/MMM/yyyy
 longDateFormat=dd MMMM yyyy
 fullDateFormat=EEEE d MMMM yyyy
-zoneStrings=Europe/Paris®CET®Ora Standard Centrale Europeo®CEST®Ora Legale Centrale Europeo®©Pacific/Honolulu®HST®Ora Standard Hawaii®HST®Ora Standard Hawaii®©America/Denver®MST®Ora Standard Mountain®MDT®Ora Legale Mountain®©Asia/Jerusalem®IST®Ora Standard Israele®IDT®Ora Legale Israele®©America/Anchorage®AST®Ora Standard Alaska®ADT®Ora Legale Alaska®©Africa/Casablanca®GMT®Ora Meridiano Greenwich®GMT®Ora Meridiano Greenwich®©America/Phoenix®MST®Ora Standard Mountain®MST®Ora Standard Mountain®©America/Los_Angeles®PST®Ora Standard Pacifico®PDT®Ora Legale Pacifico®©America/Chicago®CST®Ora Standard Centrale®CDT®Ora Legale Centrale®©America/Halifax®AST®Ora Standard Atlantico®ADT®Ora Legale Atlantico®©America/St_Johns®CNT®Ora Standard Newfoundland®CDT®Ora Legale Newfoundland®©America/New_York®EST®Ora Standard Orientale®EDT®Ora Legale Orientale®©Asia/Shanghai®CTT®Ora Standard Cina®CDT®Ora Standard Cina®©Asia/Tokyo®JST®Ora Standard Giappone®JST®Ora Standard Giappone®©Europe/Bucharest®EET®Ora Standard Europa Orientale®EEST®Ora Legale Europa Orientale®©America/Indianapolis®EST®Ora Standard Orientale®EST®Ora Standard Orientale®©
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=H:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Marshall_Islands\u00aeMarshall Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeShevchenko Time\u00ae\u00aeShevchenko Summer Time\u00ae\u00ae\u00a9Bangladesh\u00aeBangladesh Time\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeCentral Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeEastern Standard Time\u00ae\u00aeEastern Daylight Time\u00ae\u00ae\u00a9China\u00aeOra Standard Cina\u00aeCST (Cina)\u00aeOra Legale Cina\u00aeCDT (Cina)\u00ae\u00a9Uzbekistan\u00aeUzbekistan Time\u00ae\u00aeUzbekistan Summer Time\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeEast Kazakhstan Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeKarachi Time\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeTbilisi Time\u00ae\u00aeTbilisi Summer Time\u00ae\u00ae\u00a9Tashkent\u00aeTashkent Time\u00ae\u00aeTashkent Summer Time\u00ae\u00ae\u00a9Changbai\u00aeChangbai Time\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeFrunze Time\u00ae\u00aeFrunze Summer Time\u00ae\u00ae\u00a9Europe_Eastern\u00aeOra Standard Europa Orientale\u00ae\u00aeOra Legale Europa Orientale\u00ae\u00ae\u00a9Greenland_Eastern\u00aeEast Greenland Time\u00ae\u00aeEast Greenland Summer Time\u00ae\u00ae\u00a9Dacca\u00aeDacca Time\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00aeDushanbe Time\u00ae\u00aeDushanbe Summer Time\u00ae\u00ae\u00a9Chile\u00aeChile Time\u00ae\u00aeChile Summer Time\u00ae\u00ae\u00a9Europe_Central\u00aeOra Standard Europa Centrale\u00ae\u00aeOra Legale Europa Centrale\u00ae\u00ae\u00a9Acre\u00aeAcre Time\u00ae\u00aeAcre Summer Time\u00ae\u00ae\u00a9Arabian\u00aeArabian Standard Time\u00aeST arabo\u00aeArabian Daylight Time\u00aeADT arabo\u00ae\u00a9East_Timor\u00aeEast Timor Time\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeNew Zealand Standard Time\u00ae\u00aeNew Zealand Daylight Time\u00ae\u00ae\u00a9Africa_Southern\u00aeSouth Africa Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeKwajalein Time\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeMountain Standard Time\u00ae\u00aeMountain Daylight Time\u00ae\u00ae\u00a9Ecuador\u00aeEcuador Time\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Central\u00aeCentral Africa Time\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii\u00aeOra Standard Hawaii\u00ae\u00aeOra Legale Hawaii\u00ae\u00ae\u00a9Armenia\u00aeArmenia Time\u00aeAMT Armenia\u00aeArmenia Summer Time\u00aeAMST Armenia\u00ae\u00a9Samara\u00aeSamara Time\u00ae\u00aeSamara Summer Time\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii Standard Time\u00ae\u00aeAlaska-Hawaii Daylight Time\u00ae\u00ae\u00a9America_Central\u00aeCentral Standard Time\u00ae\u00aeCentral Daylight Time\u00ae\u00ae\u00a9Malaysia\u00aeMalaysia Time\u00ae\u00ae\u00ae\u00ae\u00a9Aqtobe\u00aeAqtobe Time\u00ae\u00aeAqtobe Summer Time\u00ae\u00ae\u00a9Argentina\u00aeArgentina Time\u00ae\u00aeArgentina Summer Time\u00ae\u00ae\u00a9Qyzylorda\u00aeQyzylorda Time\u00ae\u00aeQyzylorda Summer Time\u00ae\u00ae\u00a9GMT\u00aeGreenwich Mean Time\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00aeAtlantic Standard Time\u00ae\u00aeAtlantic Daylight Time\u00ae\u00ae\u00a9Korea\u00aeKorean Standard Time\u00ae\u00aeKorean Daylight Time\u00ae\u00ae\u00a9Ashkhabad\u00aeAshkhabad Time\u00ae\u00aeAshkhabad Summer Time\u00ae\u00ae\u00a9Australia_Western\u00aeAustralian Western Standard Time\u00ae\u00aeAustralian Western Daylight Time\u00ae\u00ae\u00a9Kizilorda\u00aeKizilorda Time\u00ae\u00aeKizilorda Summer Time\u00ae\u00ae\u00a9Yukon\u00aeYukon Standard Time\u00ae\u00aeYukon Daylight Time\u00ae\u00ae\u00a9Dutch_Guiana\u00aeDutch Guiana Time\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeYerevan Time\u00ae\u00aeYerevan Summer Time\u00ae\u00ae\u00a9Turkmenistan\u00aeTurkmenistan Time\u00ae\u00aeTurkmenistan Summer Time\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundland Standard Time\u00ae\u00aeNewfoundland Daylight Time\u00ae\u00ae\u00a9Africa_Eastern\u00aeEast Africa Time\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aePakistan Time\u00ae\u00aePakistan Summer Time\u00ae\u00ae\u00a9Europe_Western\u00aeWestern European Time\u00ae\u00aeWestern European Summer Time\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybyshev Time\u00ae\u00aeKuybyshev Summer Time\u00ae\u00ae\u00a9India\u00aeIndia Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeChamorro Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00aeWest Greenland Time\u00ae\u00aeWest Greenland Summer Time\u00ae\u00ae\u00a9Indonesia_Western\u00aeWestern Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeGalapagos Time\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00aeSuriname Time\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeMalaya Time\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBering Standard Time\u00aeBST Bering\u00aeBering Daylight Time\u00aeBDT Bering\u00ae\u00a9Georgia\u00aeGeorgia Time\u00ae\u00aeGeorgia Summer Time\u00ae\u00ae\u00a9Kyrgystan\u00aeKyrgystan Time\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeLanka Time\u00ae\u00ae\u00ae\u00ae\u00a9Argentina_Western\u00aeWestern Argentina Time\u00ae\u00ae\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeWest Kazakhstan Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeGuam Standard Time\u00aeGST Guam\u00ae\u00ae\u00ae\u00a9Amazon\u00aeAmazon Time\u00ae\u00aeAmazon Summer Time\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre and Miquelon Standard Time\u00ae\u00aePierre and Miquelon Daylight Time\u00ae\u00ae\u00a9Turkey\u00aeTurkey Time\u00ae\u00aeTurkey Summer Time\u00ae\u00ae\u00a9Macau\u00aeMacau Time\u00ae\u00aeMacau Summer Time\u00ae\u00ae\u00a9Lord_Howe\u00aeLord Howe Standard Time\u00ae\u00aeLord Howe Daylight Time\u00ae\u00ae\u00a9Mongolia\u00aeUlan Bator Time\u00ae\u00aeUlan Bator Summer Time\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeEastern Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeGulf Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeKashgar Time\u00ae\u00ae\u00ae\u00ae\u00a9Brasilia\u00aeBrasilia Time\u00ae\u00aeBrasilia Summer Time\u00ae\u00ae\u00a9America_Pacific\u00aePacific Standard Time\u00ae\u00aePacific Daylight Time\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHawaii-Aleutian Standard Time\u00ae\u00aeHawaii-Aleutian Daylight Time\u00ae\u00ae\u00a9Samarkand\u00aeSamarkand  Time\u00aeSAMT Samarkand\u00aeSamarkand Summer Time\u00aeSAMST Samarkand\u00ae\u00a9Australia_Central\u00aeAustralian Central Standard Time\u00ae\u00aeAustralian Central Daylight Time\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu Time\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeOra Standard Israele\u00ae\u00aeOra Legale Israele\u00ae\u00ae\u00a9Yekaterinburg\u00aeYekaterinburg Time\u00ae\u00aeYekaterinburg Summer Time\u00ae\u00ae\u00a9Sverdlovsk\u00aeSverdlovsk Time\u00ae\u00aeSverdlovsk Summer Time\u00ae\u00ae\u00a9Africa_Western\u00aeWest Africa Time\u00ae\u00aeWest Africa Summer Time\u00ae\u00ae\u00a9Samoa\u00aeSamoa Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeBhutan Time\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeUral'sk Time\u00ae\u00aeUral'sk Summer Time\u00ae\u00ae\u00a9Alaska\u00aeOra Standard Alaska\u00ae\u00aeOra Legale Alaska\u00ae\u00ae\u00a9Urumqi\u00aeUrumqi Time\u00ae\u00ae\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk Time\u00ae\u00aeAktyubinsk Summer Time\u00ae\u00ae\u00a9North_Mariana\u00aeNorth Mariana Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Tajikistan\u00aeTajikistan Time\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aeChoibalsan Time\u00ae\u00aeChoibalsan Summer Time\u00ae\u00ae\u00a9Azores\u00aeAzores Time\u00ae\u00aeAzores Summer Time\u00ae\u00ae\u00a9Aqtau\u00aeAqtau Time\u00ae\u00aeAqtau Summer Time\u00ae\u00ae\u00a9Baku\u00aeBaku Time\u00ae\u00aeBaku Summer Time\u00ae\u00ae\u00a9Australia_Eastern\u00aeAustralian Eastern Standard Time\u00ae\u00aeAustralian Eastern Daylight Tim\u00ae\u00ae\u00a9Greenland_Central\u00aeCentral Greenland Time\u00ae\u00aeCentral Greenland Summer Time\u00ae\u00ae\u00a9Japan\u00aeOra Standard Giappone\u00ae\u00aeOra Legale Giappone\u00ae\u00ae\u00a9Borneo\u00aeBorneo Time\u00ae\u00aeBorneo Summer Time\u00ae\u00ae\u00a9
 territories.TL=Timor Est
 territories.TK=Tokelau
 territories.TJ=Tagikistan
@@ -364,10 +384,13 @@ territories.GN=Guinea
 territories.GM=Gambia
 territories.GL=Groenlandia
 territories.SV=El Salvador
-territories.ST=S\u00e3o Tom\u00e9 e Pr\u00edncipe
+territories.062=Asia centro-meridionale
+territories.ST=Sao Tom\u00e9 e Pr\u00edncipe
 territories.GI=Gibilterra
+territories.061=Polinesia
 territories.GH=Ghana
 territories.SR=Suriname
+territories.GG=Guernsey
 territories.GF=Guiana Francese
 territories.GE=Georgia
 territories.SO=Somalia
@@ -389,31 +412,41 @@ territories.SB=Isole Solomon
 territories.SA=Arabia Saudita
 territories.FR=Francia
 territories.FO=Isole Faroe
+territories.057=Regione Micronesiana
 territories.FM=Micronesia
 territories.RW=Ruanda
+territories.054=Melanesia
 territories.FK=Isole Falkland
+territories.053=Australia e Nuova Zelanda
 territories.RU=Federazione Russa
 territories.FJ=Figi
 territories.FI=Finlandia
+territories.RS=Serbia
 territories.RO=Romania
 territories.RE=R\u00e9union
 territories.ET=Etiopia
 territories.ES=Spagna
 territories.ER=Eritrea
+territories.QU=Unione Europea
 territories.EH=Sahara Occidentale
 territories.EG=Egitto
 territories.EE=Estonia
+territories.QO=Oceania lontana
 territories.EC=Ecuador
 territories.DZ=Algeria
 territories.QA=Qatar
+territories.039=Europa del Sud
 territories.DO=Repubblica Dominicana
 territories.PY=Paraguay
 territories.DM=Dominica
+territories.035=Asia sudorientale
 territories.PW=Palau
+territories.034=Asia del Sud
 territories.DK=Danimarca
 territories.DJ=Gibuti
 territories.PT=Portogallo
 territories.PS=Palestina
+territories.030=Asia orientale
 territories.PR=Portorico
 territories.DE=Germania
 territories.PN=Pitcairn
@@ -432,19 +465,22 @@ territories.PA=Panama
 territories.CU=Cuba
 territories.CS=Serbia e Montenegro
 territories.CR=Costa Rica
+territories.029=Caraibi
 territories.CO=Colombia
 territories.CN=Cina
 territories.CM=Camerun
 territories.CL=Cile
 territories.CK=Isole Cook
+territories.021=America del Nord
 territories.CI=Costa d\u2019Avorio
 territories.CH=Svizzera
 territories.CG=Congo
 territories.CF=Repubblica Centrafricana
 territories.CD=Repubblica Democratica del Congo
-territories.CC=Isole Cocos (Keeling)
+territories.CC=Isole Cocos
 territories.OM=Oman
 territories.CA=Canada
+territories.419=America Latina e Caraibi
 territories.BZ=Belize
 territories.BY=Bielorussia
 territories.BW=Botswana
@@ -452,19 +488,28 @@ territories.BV=Isola Bouvet
 territories.BT=Bhutan
 territories.BS=Bahamas
 territories.BR=Brasile
+territories.019=Americhe
+territories.018=Africa del Sud
 territories.NZ=Nuova Zelanda
+territories.017=Africa centrale
 territories.BO=Bolivia
 territories.BN=Brunei
+territories.015=Africa del Nord
 territories.BM=Bermuda
+territories.014=Africa orientale
+territories.013=America centrale
 territories.NU=Niue
 territories.BJ=Benin
+territories.011=Africa occidentale
 territories.BI=Burundi
+territories.172=Comunit\u00e0 di Stati Indipendenti
 territories.BH=Bahrein
 territories.NR=Nauru
 territories.BG=Bulgaria
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgio
+territories.ZZ=regione non valida o sconosciuta
 territories.NO=Norvegia
 territories.BD=Bangladesh
 territories.BB=Barbados
@@ -476,6 +521,7 @@ territories.NG=Nigeria
 territories.NF=Isola Norfolk
 territories.AZ=Azerbaigian
 territories.NE=Niger
+territories.AX=Isole Aland
 territories.NC=Nuova Caledonia
 territories.AW=Aruba
 territories.ZM=Zambia
@@ -485,45 +531,55 @@ territories.AT=Austria
 territories.AS=Samoa Americane
 territories.AR=Argentina
 territories.AQ=Antartide
+territories.009=Oceania
 territories.MZ=Mozambico
 territories.AO=Angola
-territories.MY=Malaysia
+territories.MY=Malesia
 territories.AN=Antille Olandesi
 territories.MX=Messico
 territories.AM=Armenia
+territories.005=America del Sud
 territories.MW=Malawi
 territories.AL=Albania
 territories.MV=Maldive
+territories.003=Nord America
 territories.ZA=Sudafrica
-territories.MU=Maurizio
+territories.MU=Mauritius
+territories.002=Africa
 territories.MT=Malta
 territories.AI=Anguilla
+territories.001=Mondo
 territories.MS=Montserrat
 territories.MR=Mauritania
 territories.AG=Antigua e Barbuda
-territories.AF=Afghanistan
 territories.MQ=Martinica
-territories.AE=Emirati Arabi Uniti
+territories.AF=Afghanistan
 territories.MP=Isole Marianne Settentrionali
+territories.AE=Emirati Arabi Uniti
+territories.MO=Macao
 territories.AD=Andorra
-territories.MO=Regione Amministrativa Speciale di Macao, Cina
 territories.MN=Mongolia
 territories.MM=Myanmar
 territories.ML=Mali
-territories.MK=Macedonia, Repubblica
+territories.MK=Repubblica di Macedonia
 territories.YT=Mayotte
 territories.MH=Isole Marshall
 territories.MG=Madagascar
+territories.ME=Montenegro
 territories.MD=Moldavia
 territories.MC=Monaco
 territories.MA=Marocco
 territories.YE=Yemen
 territories.LY=Libia
 territories.LV=Lettonia
+territories.155=Europa occidentale
 territories.LU=Lussemburgo
+territories.154=Europa del Nord
 territories.LT=Lituania
 territories.LS=Lesotho
 territories.LR=Liberia
+territories.151=Europa orientale
+territories.150=Europa
 territories.LK=Sri Lanka
 territories.LI=Liechtenstein
 territories.LC=Saint Lucia
@@ -532,6 +588,9 @@ territories.LA=Laos
 territories.KZ=Kazakistan
 territories.KY=Isole Cayman
 territories.KW=Kuwait
+territories.145=Asia occidentale
+territories.143=Asia centrale
+territories.142=Asia
 territories.KR=Corea del Sud
 territories.KP=Corea del Nord
 territories.KN=Saint Kitts e Nevis
@@ -546,20 +605,22 @@ territories.JP=Giappone
 territories.JO=Giordania
 territories.JM=Giamaica
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=Isole Vergini Americane
 territories.VG=Isole Vergini Britanniche
 territories.VE=Venezuela
 territories.VC=Saint Vincent e Grenadines
-territories.VA=Vaticano
+territories.VA=Santa Sede (Citt\u00e0 del Vaticano)
 territories.IT=Italia
 territories.IS=Islanda
 territories.IR=Iran
 territories.IQ=Iraq
 territories.UZ=Uzbekistan
-territories.IO=Territorio Britannico dell\u2019Oceano Indiano
+territories.IO=Territori Britannici dell'Oceano Indiano
 territories.UY=Uruguay
 territories.IN=India
+territories.IM=Isola di Man
 territories.IL=Israele
 territories.US=Stati Uniti
 territories.IE=Irlanda
@@ -572,64 +633,70 @@ territories.HT=Haiti
 territories.HR=Croazia
 territories.TZ=Tanzania
 territories.HN=Honduras
-territories.HM=Isole Heard ed Isole McDonald
+territories.HM=Isole Heard e McDonald
 territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=Regione Amministrativa Speciale di Hong Kong, Cina
+territories.HK=Hong Kong
 territories.TT=Trinidad e Tobago
 territories.TR=Turchia
 territories.TO=Tonga
 territories.TN=Tunisia
 territories.TM=Turkmenistan
-languages.akk=accado
 languages.gwi=gwich\u02bcin
+languages.akk=accado
 languages.eka=ekajuka
 languages.xh=xosa
 languages.sux=sumero
 languages.sus=susu
 languages.mis=lingue diverse
 languages.loz=lozi
-languages.tog=tonga (nyasa)
+languages.tog=nyasa del Tonga
 languages.pon=ponape
 languages.min=menangkabau
 languages.suk=sukuma
 languages.wo=volof
+languages.lol=lolo bantu
 languages.kut=kutenai
-languages.lol=lolo (bantu)
 languages.mic=micmac
 languages.wa=vallone
 languages.kum=kumyk
 languages.zap=zapotec
-languages.cus=cuscitica (altra lingua)
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=lingua cuscitica
 languages.jbo=lojban
-languages.vo=volap\u00fck
+languages.doi=dogri
+languages.zza=zaza
+languages.vo=volapuk
 languages.oto=lingue otomi
 languages.vi=vietnamita
+languages.vai=vai
 languages.rar=rarotonga
 languages.ve=venda
 languages.rap=rapanui
 languages.raj=rajasthani
-languages.ota=turco ottomano (1500-1928)
+languages.ota=turco ottomano
 languages.nzi=nzima
 languages.nap=napoletano
 languages.uz=usbeco
 languages.uga=ugaritico
 languages.tmh=tamashek
-languages.nai=indiano del Nord America (altra lingua)
+languages.nai=lingua indiana del Nord America
 languages.nah=nahuatl
 languages.ur=urdu
 languages.fat=fanti
 languages.uk=ucraino
-languages.egy=egiziano (antico)
+languages.egy=egiziano antico
+languages.zxx=Nessun contenuto linguistico
 languages.ug=uigurico
-languages.ssa=nilo-sahariana (altra lingua)
-languages.bat=baltica (altra lingua)
-languages.mga=irlandese medio (900-1200)
+languages.fan=fang
+languages.ssa=lingua nilo-sahariana
+languages.mga=irlandese medio
+languages.bat=lingua baltica
 languages.nyo=nyoro
 languages.bas=basa
 languages.nyn=nyankole
 languages.nym=nyamwezi
+languages.gsw=tedesco svizzero
 languages.hmn=hmong
 languages.ban=balinese
 languages.osa=osage
@@ -639,11 +706,13 @@ languages.bai=lingue bamileke
 languages.tw=ci
 languages.srr=serer
 languages.tli=tlingit
+languages.tlh=klingon
 languages.tt=tatarico
 languages.ts=tsonga
+languages.srn=sranan tongo
 languages.bad=banda
 languages.tr=turco
-languages.to=tonga (Isole Tonga)
+languages.to=tonga
 languages.tn=tswana
 languages.tl=tagalog
 languages.tk=turcomanno
@@ -653,9 +722,10 @@ languages.kru=kurukh
 languages.tg=tagicco
 languages.byn=blin
 languages.te=telugu
-languages.csb=kashubian
 languages.kro=kru
+languages.csb=kashubian
 languages.ta=tamil
+languages.krl=careliano
 languages.tkl=tokelau
 languages.efi=efik
 languages.sw=swahili
@@ -667,19 +737,19 @@ languages.ss=swati
 languages.sr=serbo
 languages.sq=albanese
 languages.men=mende
-languages.crp=creola e Pidgins (altra lingua)
+languages.crp=creolo o pidgin
 languages.so=somalo
 languages.afh=afrihili
 languages.sn=shona
 languages.sm=samoano
 languages.sl=sloveno
-languages.grc=greco, antico (fino al 1453)
+languages.grc=greco antico
 languages.sk=slovacco
 languages.grb=gerbo
 languages.si=singalese
 languages.sh=serbo-croato
-languages.afa=afro-asiatica (altra lingua)
-languages.crh=turco crimeo; tatar crimeo
+languages.crh=turco crimeo
+languages.afa=lingua afroasiatica
 languages.sg=sango
 languages.se=sami del nord
 languages.sd=sindhi
@@ -687,29 +757,34 @@ languages.udm=udmurt
 languages.sc=sardo
 languages.sa=sanscrito
 languages.rw=kinyarwanda
+languages.nwc=newari classico
 languages.ru=russo
 languages.mdr=mandar
 languages.ro=rumeno
 languages.rn=rundi
 languages.rm=lingua rhaeto-romance
+languages.fr_CH=francese svizzero
 languages.mdf=moksha
+languages.tiv=tiv
+languages.fr_CA=francese canadese
 languages.ady=adyghe
 languages.zun=zuni
 languages.kpe=kpelle
 languages.qu=quechua
 languages.tig=tigre
 languages.son=songhai
-languages.cpp=creolo e pidgins, basato sul portoghese (altra lingua)
+languages.cpp=creolo o pidgin basati sul portoghese
+languages.rup=arumeno
 languages.sog=sogdiano
 languages.ada=adangme
-languages.cpf=creolo e pidgins, basato sul francese (altra lingua)
+languages.kos=kosraean
 languages.hit=hittite
-languages.kos=Kosraean
-languages.cpe=creolo e pidgins, basato sull\u2019inglese (altra lingua)
+languages.cpf=creolo o pidgin basati sul francese
+languages.cpe=creolo o pidgin basati sull'inglese
 languages.him=himachali
-languages.got=gotico
-languages.hil=hiligayna
 languages.kok=konkani
+languages.hil=hiligayna
+languages.got=gotico
 languages.gor=gorontalo
 languages.gon=gondi
 languages.din=dinca
@@ -718,16 +793,18 @@ languages.pt=portoghese
 languages.ps=pashto
 languages.fur=friulano
 languages.phn=fenicio
-languages.goh=tedesco, antico alto (ca.750-1050)
+languages.de_CH=alto tedesco svizzero
+languages.goh=tedesco antico alto
 languages.snk=soninke
 languages.cop=copto
-languages.yap=Yapese
+languages.yap=yapese
 languages.ach=acioli
-languages.yao=yao (bantu)
-languages.phi=filippino (altra lingua)
+languages.yao=yao
+languages.phi=lingua filippina
 languages.pl=polacco
 languages.ace=accinese
 languages.pi=pali
+languages.pt_PT=portoghese del Portogallo
 languages.pa=punjabi
 languages.bug=bugi
 languages.iba=iban
@@ -740,7 +817,7 @@ languages.map=austronesiano
 languages.or=oriya
 languages.man=mandingo
 languages.smj=sami lule
-languages.smi=lingue sami (altra lingua)
+languages.smi=lingua sami
 languages.mak=makasar
 languages.om=oromo
 languages.mai=maithili
@@ -748,53 +825,59 @@ languages.oj=ojibwa
 languages.mag=magahi
 languages.mad=madurese
 languages.sma=sami del sud
-languages.oc=occitano (post 1500); provenzale
+languages.oc=occitano
 languages.nso=sotho del nord
 languages.btk=batak
 languages.myv=erzya
+languages.es_ES=spagnolo della Spagna
+languages.de_AT=tedesco austriaco
 languages.dgr=dogrib
-languages.ny=nyanja; chichewa; chewa
+languages.ny=nyanja
 languages.myn=lingue maya
 languages.nv=navajo
 languages.kmb=kimbundu
 languages.nr=ndebele del sud
-languages.gmh=tedesco, medio alto (ca.1050-1500)
+languages.gmh=tedesco medio alto
 languages.no=norvegese
 languages.nn=norvegese nynorsk
 languages.nl=olandese
+languages.root=root
 languages.ng=ndonga
-languages.sla=slavo (altra lingua)
+languages.sla=lingua slava
 languages.ne=nepalese
 languages.nd=ndebele del nord
 languages.cmc=lingue chamic
 languages.tet=tetum
-languages.nb=norvegese bokm\u00e5l
+languages.nb=norvegese bokmal
 languages.na=nauru
 languages.ter=tereno
 languages.tem=temne
 languages.my=birmano
 languages.lez=lezghian
 languages.mt=maltese
-languages.peo=antico persiano (600-400 A.C.)
+languages.peo=persiano antico
 languages.ms=malese
+languages.frr=frisone settentrionale
 languages.mr=marathi
-languages.fro=francese, antico (842-ca.1400)
+languages.fro=francese antico
 languages.mo=moldavo
 languages.mn=mongolo
-languages.frm=francese, medio (ca.1400-1600)
+languages.frm=francese medio
 languages.ml=malayalam
 languages.jrb=giudeo arabo
 languages.mk=macedone
 languages.mi=maori
 languages.mh=marshallese
 languages.mg=malgascio
+languages.nqo=n'ko
 languages.mwr=marwari
 languages.bra=braj
-languages.lv=lettone
+languages.mwl=mirandese
 languages.den=slave
+languages.lv=lettone
 languages.lu=luba-katanga
-languages.lt=lituano
 languages.del=delaware
+languages.lt=lituano
 languages.lo=lao
 languages.ln=lingala
 languages.li=limburgese
@@ -804,7 +887,7 @@ languages.lb=lussemburghese
 languages.la=latino
 languages.jpr=giudeo persiano
 languages.vot=voto
-languages.sit=sino-tibetano (altra lingua)
+languages.sit=lingua sino-tibetana
 languages.ky=kirghiso
 languages.kw=cornico
 languages.kv=komi
@@ -816,6 +899,7 @@ languages.awa=awadhi
 languages.ko=coreano
 languages.kn=kannada
 languages.km=khmer
+languages.en_GB=inglese britannico
 languages.kl=kalaallisut
 languages.kk=kazako
 languages.rom=romani
@@ -826,9 +910,9 @@ languages.kg=kongo
 languages.non=norse antico
 languages.ka=georgiano
 languages.mus=creek
-languages.roa=lingua romanza (altra lingua)
+languages.roa=lingua romanza
 languages.nog=nogai
-languages.mun=munda (altra lingua)
+languages.mun=lingua munda
 languages.mul=multilingua
 languages.jv=giavanese
 languages.gil=gilbertese
@@ -838,46 +922,46 @@ languages.xal=kalmyk
 languages.aus=lingue australiane
 languages.kho=khotanese
 languages.ja=giapponese
-languages.khi=khoisan (altra lingua)
+languages.khi=lingua khoisan
 languages.pau=palau
 languages.chy=cheyenne
-languages.tai=tailandese (altra lingua)
+languages.tai=lingua tailandese
 languages.iu=inuktitut
 languages.pap=papiamento
 languages.it=italiano
 languages.sgn=lingue sign
-languages.kha=khasi
 languages.is=islandese
+languages.kha=khasi
 languages.chr=cherokee
 languages.pam=pampanga
 languages.pal=pahlavi
 languages.chp=chipewyan
-languages.cho=choctaw
 languages.io=ido
+languages.cho=choctaw
 languages.chn=gergo chinook
 languages.chm=mari
 languages.tyv=tuvinian
 languages.bnt=bantu
 languages.pag=pangasinan
-languages.chk=chuukese
 languages.ik=inupiak
-languages.haw=hawaiano
+languages.chk=chuukese
 languages.ii=sichuan yi
+languages.haw=hawaiano
 languages.lam=lamba
-languages.chg=ciagataico
 languages.ig=igbo
-languages.sga=irlandese, antico (fino al \u2019900)
-languages.paa=papuano-australiano (altra lingua)
+languages.chg=ciagataico
+languages.sga=irlandese antico
+languages.paa=lingua papuana
 languages.ie=interlingue
 languages.id=indonesiano
 languages.lah=lahnda
-languages.chb=chibcha
 languages.day=dayak
+languages.chb=chibcha
 languages.ia=interlingua
 languages.lad=ladino
-languages.dar=dargwa
-languages.hai=haida
 languages.hz=herero
+languages.hai=haida
+languages.dar=dargwa
 languages.hy=armeno
 languages.ath=lingue athabaska
 languages.hu=ungherese
@@ -889,29 +973,31 @@ languages.hi=hindi
 languages.dyu=diula
 languages.he=ebraico
 languages.ast=asturiano
+languages.kfo=kfo
 languages.ha=haussa
 languages.wen=sorabo
 languages.gv=manx
 languages.gu=gujarati
-languages.sem=semitico (altra lingua)
+languages.sem=lingua semitica
 languages.sel=selkup
 languages.iro=lingue irochesi
 languages.gn=guarana
 languages.gl=galiziano
+languages.en_CA=inglese canadese
 languages.arw=aruaco
-languages.gd=gaelico scozzese
-languages.art=artificiale (altra lingua)
 languages.gez=geez
+languages.art=lingua artificiale
+languages.gd=gaelico scozzese
 languages.ira=iraniana
 languages.ga=irlandese
 languages.arp=arapaho
 languages.arn=araucano
 languages.fy=frisone
 languages.bla=siksika
-languages.gem=germanica (altra lingua)
+languages.gem=lingua germanica
 languages.ypk=lingue yupik
-languages.fr=francese
 languages.arc=aramaico
+languages.fr=francese
 languages.fo=faroese
 languages.cel=celtica altra lingua
 languages.fj=figiano
@@ -920,30 +1006,40 @@ languages.ff=fulah
 languages.tvl=tuvalu
 languages.ceb=cebuano
 languages.fa=persiano
+languages.en_AU=inglese australiano
+languages.zh_Hans=cinese semplificato
+languages.zh_Hant=cinese tradizionale
 languages.eu=basco
 languages.sco=scozzese
 languages.et=estone
+languages.scn=siciliano
 languages.es=spagnolo
 languages.eo=esperanto
 languages.en=inglese
 languages.el=greco
-languages.tut=turco-tatarica (altra lingua)
+languages.tut=lingua altaica
 languages.niu=niue
 languages.tup=lingue tupi
 languages.ee=ewe
 languages.tum=tumbuka
+languages.nl_BE=fiammingo belga
+languages.es_419=spagnolo latinoamericano
 languages.mos=mossi
 languages.dz=dzongkha
-languages.nic=niger - cordofan (altra lingua)
-languages.dv=divehi
-languages.fiu=ugrofinnica (altra lingua)
+languages.kcg=tyap
+languages.nic=lingua niger-cordofan
 languages.lus=lushai
+languages.fiu=lingua ungrofinnica
+languages.dv=divehi
+languages.nia=nias
 languages.moh=mohawk
-languages.luo=luo (Kenia e Tanzania)
+languages.luo=luo
 languages.lun=lunda
 languages.apa=lingue apache
+languages.fil=filippino
 languages.lui=luiseno
 languages.hup=hupa
+languages.cch=atsam
 languages.bin=bini
 languages.de=tedesco
 languages.lua=luba-lulua
@@ -952,15 +1048,15 @@ languages.was=washo
 languages.und=lingua imprecisata
 languages.war=waray
 languages.da=danese
-languages.dum=olandese, medio (ca. 1050-1350)
+languages.dum=olandese medio
 languages.wal=walamo
 languages.mno=manobo
 languages.wak=lingue wakash
 languages.sat=santali
 languages.cy=gallese
 languages.sas=sasak
-languages.cv=chuvash
 languages.kbd=kabardia
+languages.cv=chuvash
 languages.cu=slavo della Chiesa
 languages.mni=manipuri
 languages.cs=ceco
@@ -969,57 +1065,60 @@ languages.cr=cree
 languages.sal=lingue salish
 languages.dua=duala
 languages.co=corso
-languages.sai=indiano del Sud America (altra lingua)
+languages.sai=lingua indiana del Sud America
 languages.mnc=manchu
 languages.sah=yakut
-languages.gba=gbaya
-languages.inh=ingush
 languages.kaw=kawi
+languages.inh=ingush
+languages.gba=gbaya
 languages.sad=sandawe
 languages.ch=chamorro
+languages.ine=lingua indoeuropea
 languages.bho=bhojpuri
-languages.ine=indoeuropea (altra lingua)
-languages.enm=inglese, medio (1100-1500)
-languages.ce=ceceno
-languages.inc=indiana (altra lingua)
+languages.enm=inglese medio
 languages.kar=karen
+languages.inc=lingua indiana
+languages.ce=ceceno
 languages.gay=gayo
 languages.ca=catalano
 languages.umb=mbundu
 languages.syr=siriaco
 languages.kam=kamba
+languages.anp=angika
 languages.tsi=tsimshian
-languages.ang=inglese, antico (ca.450-1100)
-languages.cau=caucasica (altra lingua)
+languages.kaj=kaj
+languages.ang=inglese antico
 languages.kac=kachin
+languages.cau=lingua caucasica
 languages.kab=kabyle
-languages.bs=bosniaco
 languages.kaa=kara-kalpak
-languages.br=bretone
+languages.bs=bosniaco
 languages.car=caribico
+languages.br=bretone
 languages.bo=tibetano
 languages.bn=bengalese
 languages.bm=bambara
 languages.gaa=ga
+languages.cai=lingua indiana dell'America Centrale
 languages.bi=bislama
-languages.cai=indiana dell\u2019America Centrale (altra lingua)
 languages.bh=bihari
 languages.bg=bulgaro
 languages.be=bielorusso
+languages.pt_BR=portoghese del Brasile
 languages.cad=caddo
 languages.ba=baschiro
 languages.zu=zulu
 languages.zen=zenaga
-languages.pro=provenzale, antico (fino al 1500)
+languages.pro=provenzale antico
 languages.hsb=alto sorabo
 languages.az=azerbaigiano
 languages.ay=aymara
 languages.av=avaro
 languages.as=assamese
-languages.ar=arabo
 languages.dsb=basso sorabo
-languages.elx=elamitico
+languages.ar=arabo
 languages.ilo=ilocano
+languages.elx=elamitico
 languages.zh=cinese
 languages.an=aragonese
 languages.pra=pracrito
@@ -1027,19 +1126,34 @@ languages.am=amarico
 languages.new=newari
 languages.ak=akan
 languages.za=zhuang
+languages.en_US=inglese americano
 languages.af=afrikaans
 languages.ae=avestan
+languages.alt=altai meridionale
 languages.ab=abkhazian
 languages.aa=afar
 languages.yo=yoruba
 languages.alg=lingue algonchine
 languages.ale=aleuto
-languages.mkh=mon-khmer (altra lingua)
+languages.mkh=lingua mon-khmer
 languages.yi=yiddish
-languages.dra=dravidica (altra lingua)
+languages.dra=lingua dravidica
 languages.ber=berbero
-languages.nds=basso tedesco; basso sassone
+languages.nds=basso tedesco
 languages.bem=wemba
 languages.bej=begia
 languages.tpi=tok pisin
-variants.REVISED=Modificato
+variants.BOONT=boontling
+variants.REVISED=ortografia revisionata
+variants.AREVELA=armeno orientale
+variants.POSIX=computer
+variants.POLYTON=politonico
+variants.FONIPA=fonetica IPA
+variants.1996=ortografia tedesca del 1996
+variants.SAAHO=saho
+variants.AREVMDA=armeno occidentale
+variants.1901=ortografia tradizionale tedesca
+variants.MONOTON=monotonico
+variants.FONUPA=fonetica UPA
+variants.ROZAJ=resiano
+variants.NEDIS=dialetto del Natisone
index e1cde661632717cf6630291ed9e106eadcc57e7f..857d12e1e910870842d210ff40cb5f414962c803 100644 (file)
@@ -7,9 +7,9 @@
 
 decimalSeparator=.
 groupingSeparator='
-currencyFormat=\u00a4 #,##0.00;\u00a4-#,##0.00
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4-#,##0.00
 shortDateFormat=dd.MM.yy
-mediumDateFormat=d-MMM-yy
+mediumDateFormat=d-MMM-yyyy
 longDateFormat=d MMMM yyyy
 fullDateFormat=EEEE, d MMMM yyyy
-fullTimeFormat=HH.mm:ssh' z
+fullTimeFormat=HH.mm:ss 'h' z
index 0570520bd09582dcbfcd6efac5de73f5a2e8c46a..a615fc83f042b1b459b1be88c9095b987beff32c 100644 (file)
@@ -5,8 +5,18 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-shortMonths=\u152d\u14d0\u14c4\u140a\u14d5®\u1555\u155d\u1557\u140a\u14d5®\u14ab\u1466\u14ef®\u140a\u1403\u1449\u1433\u14d7®\u14aa\u1403®\u152b\u14c2®\u152a\u14da\u1403®\u140a\u1405\u14a1\u148d\u14ef®\u14f0\u1466\u144f\u155d\u1559®\u1406\u1466\u1451\u155d\u1559®\u14c5\u1559\u1403\u155d\u1559®\u144f\u14f0\u155d\u1559®®
-months=\u152d\u14d0\u14c4\u140a\u14d5®\u1555\u155d\u1557\u140a\u14d5®\u14ab\u1466\u14ef®\u140a\u1403\u1449\u1433\u14d7®\u14aa\u1403®\u152b\u14c2®\u152a\u14da\u1403®\u140a\u1405\u14a1\u148d\u14ef®\u14f0\u1466\u144f\u155d\u1559®\u1406\u1466\u1451\u155d\u1559®\u14c5\u1559\u1403\u155d\u1559®\u144f\u14f0\u155d\u1559®®
-shortWeekdays=®\u14c8\u1466\u14f0\u1591\u152d®\u14c7\u14a1\u1490\u153e\u152d\u1405®\u14c7\u14a1\u1490\u153e\u152d\u1405\u14d5\u1585\u146d®\u1431\u1593\u1466\u14ef\u1585®\u14ef\u1455\u14bb\u14a5\u1585®\u1455\u14ea\u14d5\u1550\u14a5\u1585®\u14c8\u1466\u14f0\u1591\u152d\u14d5\u1585\u157f®
-weekdays=®\u14c8\u1466\u14f0\u1591\u152d®\u14c7\u14a1\u1490\u153e\u152d\u1405®\u14c7\u14a1\u1490\u153e\u152d\u1405\u14d5\u1585\u146d®\u1431\u1593\u1466\u14ef\u1585®\u14ef\u1455\u14bb\u14a5\u1585®\u1455\u14ea\u14d5\u1550\u14a5\u1585®\u14c8\u1466\u14f0\u1591\u152d\u14d5\u1585\u157f®
+shortMonths=\u152d\u14d0\u14c4\u140a\u14d5\u00ae\u1555\u155d\u1557\u140a\u14d5\u00ae\u14ab\u1466\u14ef\u00ae\u140a\u1403\u1449\u1433\u14d7\u00ae\u14aa\u1403\u00ae\u152b\u14c2\u00ae\u152a\u14da\u1403\u00ae\u140a\u1405\u14a1\u148d\u14ef\u00ae\u14f0\u1466\u144f\u155d\u1559\u00ae\u1406\u1466\u1451\u155d\u1559\u00ae\u14c5\u1559\u1403\u155d\u1559\u00ae\u144f\u14f0\u155d\u1559\u00ae\u00ae
+months=\u152d\u14d0\u14c4\u140a\u14d5\u00ae\u1555\u155d\u1557\u140a\u14d5\u00ae\u14ab\u1466\u14ef\u00ae\u140a\u1403\u1449\u1433\u14d7\u00ae\u14aa\u1403\u00ae\u152b\u14c2\u00ae\u152a\u14da\u1403\u00ae\u140a\u1405\u14a1\u148d\u14ef\u00ae\u14f0\u1466\u144f\u155d\u1559\u00ae\u1406\u1466\u1451\u155d\u1559\u00ae\u14c5\u1559\u1403\u155d\u1559\u00ae\u144f\u14f0\u155d\u1559\u00ae\u00ae
+shortWeekdays=\u00ae\u14c8\u1466\u14f0\u1591\u152d\u00ae\u14c7\u14a1\u1490\u153e\u152d\u1405\u00ae\u14c7\u14a1\u1490\u153e\u152d\u1405\u14d5\u1585\u146d\u00ae\u1431\u1593\u1466\u14ef\u1585\u00ae\u14ef\u1455\u14bb\u14a5\u1585\u00ae\u1455\u14ea\u14d5\u1550\u14a5\u1585\u00ae\u14c8\u1466\u14f0\u1591\u152d\u14d5\u1585\u157f\u00ae
+weekdays=\u00ae\u14c8\u1466\u14f0\u1591\u152d\u00ae\u14c7\u14a1\u1490\u153e\u152d\u1405\u00ae\u14c7\u14a1\u1490\u153e\u152d\u1405\u14d5\u1585\u146d\u00ae\u1431\u1593\u1466\u14ef\u1585\u00ae\u14ef\u1455\u14bb\u14a5\u1585\u00ae\u1455\u14ea\u14d5\u1550\u14a5\u1585\u00ae\u14c8\u1466\u14f0\u1591\u152d\u14d5\u1585\u157f\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
 languages.iu=\u1403\u14c4\u1483\u144e\u1450\u1466 \u144e\u144e\u154b\u1405\u14ef\u1585
index 3dfc726ba28b0651335cd2c6ff49a6482cc974dc..cdbda6135cd0358511dde6abb7fbe292887b233f 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
 currenciesDisplayName.YDD=\u30a4\u30a8\u30e1\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
-currenciesDisplayName.TWD=\u65b0\u53f0\u6e7e\u30c9\u30eb
 currenciesDisplayName.KES=\u30b1\u30cb\u30a2 \u30b7\u30ea\u30f3\u30b0
-currenciesDisplayName.BYB=\u30d9\u30e9\u30eb\u30fc\u30b7 \u30eb\u30fc\u30d6\u30eb (BYB\u30011994-1999)
+currenciesDisplayName.TWD=\u65b0\u53f0\u6e7e\u30c9\u30eb
 currenciesDisplayName.LKR=\u30b9\u30ea\u30e9\u30f3\u30ab \u30eb\u30d4\u30fc
-currenciesDisplayName.RWF=\u30eb\u30ef\u30f3\u30c0 \u30d5\u30e9\u30f3
+currenciesDisplayName.BYB=\u30d9\u30e9\u30eb\u30fc\u30b7 \u30eb\u30fc\u30d6\u30eb (1994-1999)
 currenciesDisplayName.TJS=\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3 \u30bd\u30e2\u30cb
-currenciesDisplayName.SDP=\u30b9\u30fc\u30c0\u30f3 \u30dd\u30f3\u30c9
-currenciesDisplayName.TJR=\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3 \u30eb\u30fc\u30d6\u30eb
+currenciesDisplayName.RWF=\u30eb\u30ef\u30f3\u30c0 \u30d5\u30e9\u30f3
 currenciesDisplayName.ERN=\u30a8\u30ea\u30c8\u30ea\u30a2 \u30ca\u30af\u30d5\u30a1
-currenciesDisplayName.AFN=\u30a2\u30d5\u30ac\u30cb\u30fc
+currenciesDisplayName.TJR=\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3 \u30eb\u30fc\u30d6\u30eb
+currenciesDisplayName.SDP=\u65e7\u30b9\u30fc\u30c0\u30f3 \u30dd\u30f3\u30c9
 currenciesDisplayName.GRD=\u30ae\u30ea\u30b7\u30e3 \u30c9\u30e9\u30af\u30de
+currenciesDisplayName.AFN=\u30a2\u30d5\u30ac\u30cb\u30fc
 currenciesDisplayName.IEP=\u30a2\u30a4\u30ea\u30c3\u30b7\u30e5 \u30dd\u30f3\u30c9
 currenciesDisplayName.ARS=\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3 \u30da\u30bd
-currenciesDisplayName.SDD=\u30b9\u30fc\u30c0\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
+currenciesDisplayName.SDG=\u30b9\u30fc\u30c0\u30f3 \u30dd\u30f3\u30c9
 currenciesDisplayName.ARP=\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3 \u30da\u30bd (1983-1985)
+currenciesDisplayName.SDD=\u30b9\u30fc\u30c0\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
 currenciesDisplayName.GEL=\u30b0\u30eb\u30b8\u30a2 \u30e9\u30ea
-currenciesDisplayName.AFA=\u30a2\u30d5\u30ac\u30cb\u30fc (1927-2002)
 currenciesDisplayName.GEK=\u30b0\u30eb\u30b8\u30a2 \u30af\u30fc\u30dd\u30f3 \u30e9\u30ea
+currenciesDisplayName.AFA=\u30a2\u30d5\u30ac\u30cb\u30fc (1927-2002)
 currenciesDisplayName.CRC=\u30b3\u30b9\u30bf\u30ea\u30ab \u30b3\u30ed\u30f3
 currenciesDisplayName.FKP=\u30d5\u30a9\u30fc\u30af\u30e9\u30f3\u30c9\uff08\u30de\u30eb\u30d3\u30ca\u30b9\uff09\u8af8\u5cf6 \u30dd\u30f3\u30c9
 currenciesDisplayName.EEK=\u30a8\u30b9\u30c8\u30cb\u30a2 \u30af\u30eb\u30fc\u30f3
-currenciesDisplayName.HKD=\u9999\u6e2f\u30c9\u30eb
 currenciesDisplayName.MDL=\u30e2\u30eb\u30c9\u30d0 \u30ec\u30a4
-currenciesDisplayName.ARA=\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3 \u30a2\u30a5\u30b9\u30c8\u30e9\u30fc\u30eb
+currenciesDisplayName.HKD=\u9999\u6e2f\u30c9\u30eb
 currenciesDisplayName.IQD=\u30a4\u30e9\u30af \u30c7\u30a3\u30ca\u30fc\u30eb
+currenciesDisplayName.ARA=\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3 \u30a2\u30a5\u30b9\u30c8\u30e9\u30fc\u30eb
 currenciesDisplayName.SCR=\u30bb\u30a4\u30b7\u30a7\u30eb \u30eb\u30d4\u30fc
 currenciesDisplayName.VUV=\u30d0\u30cc\u30a2\u30c4 \u30d0\u30c4
-currenciesDisplayName.DKK=\u30c7\u30f3\u30de\u30fc\u30af \u30af\u30ed\u30fc\u30cd
 currenciesDisplayName.KPW=\u5317\u671d\u9bae \u30a6\u30a9\u30f3
-currenciesDisplayName.GQE=\u8d64\u9053\u30ae\u30cb\u30a2 \u30ae\u30cb\u30fc
+currenciesDisplayName.DKK=\u30c7\u30f3\u30de\u30fc\u30af \u30af\u30ed\u30fc\u30cd
 currenciesDisplayName.IDR=\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2 \u30eb\u30d4\u30a2
-currenciesDisplayName.LVR=\u30e9\u30c8\u30d3\u30a2 \u30eb\u30fc\u30d6\u30eb
+currenciesDisplayName.GQE=\u8d64\u9053\u30ae\u30cb\u30a2 \u30ae\u30cb\u30fc
 currenciesDisplayName.SOS=\u30bd\u30de\u30ea\u30a2 \u30b7\u30ea\u30f3\u30b0
+currenciesDisplayName.LVR=\u30e9\u30c8\u30d3\u30a2 \u30eb\u30fc\u30d6\u30eb
+currenciesDisplayName.EQE=\u30a8\u30af\u30a6\u30a7\u30ec
 currenciesDisplayName.AED=UAE \u30c7\u30a3\u30eb\u30cf\u30e0
-currenciesDisplayName.BWP=\u30dc\u30c4\u30ef\u30ca \u30d7\u30e9
 currenciesDisplayName.LVL=\u30e9\u30c8\u30d3\u30a2 \u30e9\u30c3\u30c4
+currenciesDisplayName.BWP=\u30dc\u30c4\u30ef\u30ca \u30d7\u30e9
 currenciesDisplayName.RUR=\u30ed\u30b7\u30a2 \u30eb\u30fc\u30d6\u30eb (1991-1998)
 currenciesDisplayName.NIO=\u30cb\u30ab\u30e9\u30b0\u30a2 \u30b3\u30eb\u30c9\u30d0 \u30aa\u30ed
-currenciesDisplayName.ADP=\u30a2\u30f3\u30c9\u30e9 \u30da\u30bb\u30bf
-currenciesDisplayName.FJD=\u30d5\u30a3\u30b8\u30fc\u8af8\u5cf6 \u30c9\u30eb
+currenciesDisplayName.XTS=\u30c6\u30b9\u30c8\u7528\u901a\u8ca8\u30b3\u30fc\u30c9
 currenciesDisplayName.MOP=\u30de\u30ab\u30aa \u30d1\u30bf\u30ab
+currenciesDisplayName.FJD=\u30d5\u30a3\u30b8\u30fc\u8af8\u5cf6 \u30c9\u30eb
+currenciesDisplayName.ADP=\u30a2\u30f3\u30c9\u30e9 \u30da\u30bb\u30bf
 currenciesDisplayName.RUB=\u30ed\u30b7\u30a2 \u30eb\u30fc\u30d6\u30eb
 currenciesDisplayName.CDF=\u30b3\u30f3\u30b4 \u30d5\u30e9\u30f3
 currenciesDisplayName.NIC=\u30cb\u30ab\u30e9\u30b0\u30a2 \u30b3\u30eb\u30c9\u30d0
 currenciesDisplayName.DJF=\u30b8\u30d6\u30c1 \u30d5\u30e9\u30f3
-currenciesDisplayName.ECV=\u30a8\u30af\u30a2\u30c9\u30eb UVC
-currenciesDisplayName.SBD=\u30bd\u30ed\u30e2\u30f3\u8af8\u5cf6 \u30c9\u30eb
 currenciesDisplayName.UZS=\u30a6\u30ba\u30d9\u30ad\u30b9\u30bf\u30f3 \u30b9\u30e0
+currenciesDisplayName.SBD=\u30bd\u30ed\u30e2\u30f3\u8af8\u5cf6 \u30c9\u30eb
+currenciesDisplayName.ECV=\u30a8\u30af\u30a2\u30c9\u30eb UVC
+currenciesDisplayName.LUL=\u30eb\u30af\u30bb\u30f3\u30d6\u30eb\u30af \u91d1\u878d\u30d5\u30e9\u30f3
 currenciesDisplayName.ECS=\u30a8\u30af\u30a2\u30c9\u30eb \u30b9\u30af\u30ec
-currenciesDisplayName.PHP=\u30d5\u30a3\u30ea\u30d4\u30f3 \u30da\u30bd
 currenciesDisplayName.THB=\u30bf\u30a4 \u30d0\u30fc\u30c4
+currenciesDisplayName.PHP=\u30d5\u30a3\u30ea\u30d4\u30f3 \u30da\u30bd
 currenciesDisplayName.LUF=\u30eb\u30af\u30bb\u30f3\u30d6\u30eb\u30b0 \u30d5\u30e9\u30f3
+currenciesDisplayName.RHD=\u30ed\u30fc\u30c7\u30b7\u30a2 \u30c9\u30eb
+currenciesDisplayName.LUC=\u30eb\u30af\u30bb\u30f3\u30d6\u30eb\u30af \u514c\u63db\u30d5\u30e9\u30f3
 currenciesDisplayName.FIM=\u30d5\u30a3\u30f3\u30e9\u30f3\u30c9 \u30de\u30eb\u30ab
 currenciesDisplayName.TTD=\u30c8\u30ea\u30cb\u30c0\u30fc\u30c9\u30c8\u30d0\u30b4 \u30c9\u30eb
 currenciesDisplayName.SZL=\u30b9\u30ef\u30b8\u30e9\u30f3\u30c9 \u30ea\u30e9\u30f3\u30b2\u30cb
 currenciesDisplayName.MNT=\u30e2\u30f3\u30b4\u30eb \u30c8\u30b0\u30ed\u30b0
-currenciesDisplayName.SAR=\u30b5\u30a6\u30b8 \u30ea\u30e4\u30eb
 currenciesDisplayName.UAK=\u30a6\u30af\u30e9\u30a4\u30ca \u30ab\u30eb\u30dc\u30d0\u30cd\u30c4
+currenciesDisplayName.SAR=\u30b5\u30a6\u30b8 \u30ea\u30e4\u30eb
+currenciesDisplayName.COU=\u30ec\u30a2\u30eb (UVR)
 currenciesDisplayName.UAH=\u30a6\u30af\u30e9\u30a4\u30ca \u30b0\u30ea\u30d6\u30ca
 currenciesDisplayName.HUF=\u30cf\u30f3\u30ac\u30ea\u30fc \u30d5\u30a9\u30ea\u30f3\u30c8
-currenciesDisplayName.COP=\u30b3\u30ed\u30f3\u30d3\u30a2 \u30da\u30bd
 currenciesDisplayName.QAR=\u30ab\u30bf\u30fc\u30eb \u30ea\u30a2\u30eb
+currenciesDisplayName.COP=\u30b3\u30ed\u30f3\u30d3\u30a2 \u30da\u30bd
 currenciesDisplayName.LTT=\u30ea\u30c8\u30a2\u30cb\u30a2 \u30bf\u30ed\u30ca
 currenciesDisplayName.PTE=\u30dd\u30eb\u30c8\u30ac\u30eb \u30a8\u30b9\u30af\u30fc\u30c9
-currenciesDisplayName.AOR=\u30a2\u30f3\u30b4\u30e9 \u65e7\u30af\u30ef\u30f3\u30b6 (1995-1999)
 currenciesDisplayName.UYU=\u30a6\u30eb\u30b0\u30a2\u30a4 \u30da\u30bd
+currenciesDisplayName.AOR=\u30a2\u30f3\u30b4\u30e9 \u65e7\u30af\u30ef\u30f3\u30b6 (1995-1999)
 currenciesDisplayName.GBP=\u82f1\u56fd\u30dd\u30f3\u30c9
-currenciesDisplayName.BIF=\u30d6\u30eb\u30f3\u30b8 \u30d5\u30e9\u30f3
-currenciesDisplayName.INR=\u30a4\u30f3\u30c9 \u30eb\u30d4\u30fc
 currenciesDisplayName.ZRZ=\u30b6\u30a4\u30fc\u30eb \u30b6\u30a4\u30fc\u30eb
-currenciesDisplayName.AON=\u30a2\u30f3\u30b4\u30e9 \u65b0\u30af\u30ef\u30f3\u30b6 (1990-2000)
-currenciesDisplayName.LTL=\u30ea\u30c8\u30a2\u30cb\u30a2 \u30ea\u30bf\u30b9
+currenciesDisplayName.INR=\u30a4\u30f3\u30c9 \u30eb\u30d4\u30fc
+currenciesDisplayName.BIF=\u30d6\u30eb\u30f3\u30b8 \u30d5\u30e9\u30f3
 currenciesDisplayName.XFU=\u30d5\u30e9\u30f3\u30b9 UIC \u30d5\u30e9\u30f3
-currenciesDisplayName.KZT=\u30ab\u30b6\u30d5\u30b9\u30bf\u30f3 \u30c6\u30f3\u30b2
-currenciesDisplayName.MZM=\u30e2\u30b6\u30f3\u30d4\u30fc\u30af \u30e1\u30c6\u30a3\u30ab\u30eb
+currenciesDisplayName.MZN=\u30e2\u30b6\u30f3\u30d3\u30fc\u30af \u30e1\u30c6\u30a3\u30ab\u30eb
+currenciesDisplayName.LTL=\u30ea\u30c8\u30a2\u30cb\u30a2 \u30ea\u30bf\u30b9
+currenciesDisplayName.AON=\u30a2\u30f3\u30b4\u30e9 \u65b0\u30af\u30ef\u30f3\u30b6 (1990-2000)
 currenciesDisplayName.UYP=\u30a6\u30eb\u30b0\u30a2\u30a4 \u30da\u30bd (1975-1993)
+currenciesDisplayName.MZM=\u30e2\u30b6\u30f3\u30d4\u30fc\u30af \u30e1\u30c6\u30a3\u30ab\u30eb
+currenciesDisplayName.KZT=\u30ab\u30b6\u30d5\u30b9\u30bf\u30f3 \u30c6\u30f3\u30b2
 currenciesDisplayName.AOK=\u30af\u30ef\u30f3\u30b6 (1977-1990)
-currenciesDisplayName.BUK=\u30d3\u30eb\u30de \u30c1\u30e3\u30c3\u30c8
 currenciesDisplayName.GNS=\u30ae\u30cb\u30a2 \u30b7\u30ea\u30fc
-currenciesDisplayName.XFO=\u30d5\u30e9\u30f3\u30b9 \u30d5\u30e9\u30f3 (XFO)
+currenciesDisplayName.BUK=\u30d3\u30eb\u30de \u30c1\u30e3\u30c3\u30c8
+currenciesDisplayName.XFO=\u30d5\u30e9\u30f3\u30b9\u91d1\u30d5\u30e9\u30f3
 currenciesDisplayName.PGK=\u30d1\u30d7\u30a2\u30cb\u30e5\u30fc\u30ae\u30cb\u30a2 \u30ad\u30ca
 currenciesDisplayName.SYP=\u30b7\u30ea\u30a2 \u30dd\u30f3\u30c9
-currenciesDisplayName.MZE=\u30e2\u30b6\u30f3\u30d4\u30fc\u30af \u30a8\u30b9\u30af\u30fc\u30c9
 currenciesDisplayName.OMR=\u30aa\u30de\u30fc\u30f3 \u30ea\u30a2\u30eb
-currenciesDisplayName.NGN=\u30ca\u30a4\u30b8\u30a7\u30ea\u30a2 \u30ca\u30a4\u30e9
+currenciesDisplayName.MZE=\u30e2\u30b6\u30f3\u30d4\u30fc\u30af \u30a8\u30b9\u30af\u30fc\u30c9
 currenciesDisplayName.ZRN=\u30b6\u30a4\u30fc\u30eb \u65b0\u30b6\u30a4\u30fc\u30eb
-currenciesDisplayName.AOA=\u30af\u30ef\u30f3\u30b6 (AOA)
+currenciesDisplayName.NGN=\u30ca\u30a4\u30b8\u30a7\u30ea\u30a2 \u30ca\u30a4\u30e9
 currenciesDisplayName.CNY=\u4e2d\u56fd\u4eba\u6c11\u5143
+currenciesDisplayName.AOA=\u30af\u30ef\u30f3\u30b6
 currenciesDisplayName.MAF=\u30e2\u30ed\u30c3\u30b3 \u30d5\u30e9\u30f3
+currenciesDisplayName.RSD=\u30c7\u30a3\u30ca\u30fc\u30eb (\u30bb\u30eb\u30d3\u30a2)
 currenciesDisplayName.GNF=\u30ae\u30cb\u30a2 \u30d5\u30e9\u30f3
-currenciesDisplayName.HTG=\u30cf\u30a4\u30c1 \u30b0\u30fc\u30eb\u30c9
 currenciesDisplayName.MAD=\u30e2\u30ed\u30c3\u30b3 \u30c7\u30a3\u30eb\u30cf\u30e0
+currenciesDisplayName.HTG=\u30cf\u30a4\u30c1 \u30b0\u30fc\u30eb\u30c9
 currenciesDisplayName.TRY=\u65b0\u30c8\u30eb\u30b3\u30ea\u30e9
 currenciesDisplayName.MMK=\u30df\u30e3\u30f3\u30de\u30fc \u30c1\u30e3\u30c3\u30c8
+currenciesDisplayName.XRE=RINET\u57fa\u91d1
 currenciesDisplayName.MYR=\u30de\u30ec\u30fc\u30b7\u30a2 \u30ea\u30f3\u30ae\u30c3\u30c8
-currenciesDisplayName.LSL=\u30ec\u30bd\u30c8 \u30ed\u30c6\u30a3
+currenciesDisplayName.LSM=\u30de\u30ed\u30c6\u30a3
 currenciesDisplayName.XEU=\u30e8\u30fc\u30ed\u30c3\u30d1\u901a\u8ca8\u5358\u4f4d
-currenciesDisplayName.BHD=\u30d0\u30fc\u30ec\u30fc\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
+currenciesDisplayName.LSL=\u30ec\u30bd\u30c8 \u30ed\u30c6\u30a3
 currenciesDisplayName.SLL=\u30b7\u30a8\u30e9\u30ec\u30aa\u30cd \u30ec\u30aa\u30f3
+currenciesDisplayName.BHD=\u30d0\u30fc\u30ec\u30fc\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
 currenciesDisplayName.BTN=\u30d6\u30fc\u30bf\u30f3 \u30cb\u30e5\u30eb\u30bf\u30e0
 currenciesDisplayName.TRL=\u30c8\u30eb\u30b3 \u30ea\u30e9
 currenciesDisplayName.KMF=\u30b3\u30e2\u30ed \u30d5\u30e9\u30f3
-currenciesDisplayName.ANG=\u30aa\u30e9\u30f3\u30c0\u9818\u30a2\u30f3\u30c6\u30a3\u30eb \u30ae\u30eb\u30c0\u30fc
 currenciesDisplayName.CZK=\u30c1\u30a7\u30b3 \u30b3\u30eb\u30ca
-currenciesDisplayName.AZM=\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3 \u30de\u30ca\u30c8
+currenciesDisplayName.ANG=\u30aa\u30e9\u30f3\u30c0\u9818\u30a2\u30f3\u30c6\u30a3\u30eb \u30ae\u30eb\u30c0\u30fc
+currenciesDisplayName.AZN=\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3 \u30de\u30ca\u30c8
+currenciesDisplayName.AZM=\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3 \u30de\u30ca\u30c8 (1993-2006)
 currenciesDisplayName.KYD=\u30b1\u30a4\u30de\u30f3\u8af8\u5cf6 \u30c9\u30eb
 currenciesDisplayName.GMD=\u30ac\u30f3\u30d3\u30a2 \u30c0\u30e9\u30b7
+currenciesDisplayName.VEF=\u30d9\u30cd\u30ba\u30a8\u30e9 \u30dc\u30ea\u30d0\u30eb\u30d5\u30a8\u30eb\u30c6
 currenciesDisplayName.BGN=\u30d6\u30eb\u30ac\u30ea\u30a2 \u65b0\u30ec\u30d5
-currenciesDisplayName.CAD=\u30ab\u30ca\u30c0 \u30c9\u30eb
 currenciesDisplayName.MXV=\u30e1\u30ad\u30b7\u30b3 UDI
-currenciesDisplayName.BGL=\u30d6\u30eb\u30ac\u30ea\u30a2 \u30ec\u30d5 (BGL)
+currenciesDisplayName.CAD=\u30ab\u30ca\u30c0 \u30c9\u30eb
+currenciesDisplayName.BGL=\u30d6\u30eb\u30ac\u30ea\u30a2 \u30ec\u30d5
 currenciesDisplayName.VEB=\u30d9\u30cd\u30ba\u30a8\u30e9 \u30dc\u30ea\u30d0\u30eb
 currenciesDisplayName.MLF=\u30de\u30ea \u30d5\u30e9\u30f3
+currenciesDisplayName.MXP=\u30e1\u30ad\u30b7\u30b3 \u30da\u30bd (1861-1992)
 currenciesDisplayName.ILS=\u30a4\u30b9\u30e9\u30a8\u30eb\u65b0\u30b7\u30a7\u30b1\u30eb
-currenciesDisplayName.MXP=\u30e1\u30ad\u30b7\u30b3 \u30da\u30bd (MXP\u30011861-1992)
 currenciesDisplayName.PES=\u30da\u30eb\u30fc \u30bd\u30eb
-currenciesDisplayName.GYD=\u30ac\u30a4\u30a2\u30ca \u30c9\u30eb
 currenciesDisplayName.MXN=\u30e1\u30ad\u30b7\u30b3 \u30da\u30bd
+currenciesDisplayName.GYD=\u30ac\u30a4\u30a2\u30ca \u30c9\u30eb
 currenciesDisplayName.ILP=\u30a4\u30b9\u30e9\u30a8\u30eb \u30dd\u30f3\u30c9
-currenciesDisplayName.SKK=\u30b9\u30ed\u30d0\u30ad\u30a2 \u30b3\u30eb\u30ca
 currenciesDisplayName.CYP=\u30ad\u30d7\u30ed\u30b9 \u30dd\u30f3\u30c9
-currenciesDisplayName.XDR=\u7279\u5225\u5f15\u304d\u51fa\u3057\u6a29 (Special Drawing Rights)
+currenciesDisplayName.SKK=\u30b9\u30ed\u30d0\u30ad\u30a2 \u30b3\u30eb\u30ca
+currenciesDisplayName.XDR=\u7279\u5225\u5f15\u304d\u51fa\u3057\u6a29
 currenciesDisplayName.PEN=\u30da\u30eb\u30fc \u65b0\u30bd\u30eb
 currenciesDisplayName.LRD=\u30ea\u30d9\u30ea\u30a2 \u30c9\u30eb
 currenciesDisplayName.PEI=\u30da\u30eb\u30fc \u30a4\u30f3\u30c6\u30a3
 currenciesDisplayName.AMD=\u30a2\u30eb\u30e1\u30cb\u30a2 \u30c9\u30e9\u30e0
 currenciesDisplayName.BSD=\u30d0\u30cf\u30de \u30c9\u30eb
+currenciesDisplayName.XPT=\u30d7\u30e9\u30c1\u30ca
 currenciesDisplayName.HRK=\u30af\u30ed\u30a2\u30c1\u30a2 \u30af\u30fc\u30ca
 currenciesDisplayName.CLP=\u30c1\u30ea \u30da\u30bd
 currenciesDisplayName.HRD=\u30af\u30ed\u30a2\u30c1\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
 currenciesDisplayName.XPF=CFP \u30d5\u30e9\u30f3
 currenciesDisplayName.FRF=\u30d5\u30e9\u30f3\u30b9 \u30d5\u30e9\u30f3
+currenciesDisplayName.XPD=\u30d1\u30e9\u30b8\u30a6\u30e0
 currenciesDisplayName.BRR=\u30d6\u30e9\u30b8\u30eb \u30af\u30eb\u30bc\u30a4\u30ed \u30ec\u30a2\u30eb
 currenciesDisplayName.MKD=\u30de\u30b1\u30c9\u30cb\u30a2 \u30c7\u30ca\u30eb
 currenciesDisplayName.CLF=\u30c1\u30ea \u30a6\u30cb\u30c0 \u30c7 \u30d5\u30a9\u30e1\u30f3\u30c8
 currenciesDisplayName.ALL=\u30a2\u30eb\u30d0\u30cb\u30a2 \u30ec\u30af
-currenciesDisplayName.BRN=\u30d6\u30e9\u30b8\u30eb \u65b0\u30af\u30eb\u30bc\u30a4\u30ed (BRN)
+currenciesDisplayName.BRN=\u30d6\u30e9\u30b8\u30eb \u65b0\u30af\u30eb\u30bc\u30a4\u30ed
 currenciesDisplayName.MWK=\u30de\u30e9\u30a6\u30a3 \u30af\u30ef\u30c1\u30e3
 currenciesDisplayName.BRL=\u30d6\u30e9\u30b8\u30eb \u30ec\u30a2\u30eb
 currenciesDisplayName.TPE=\u30c6\u30a3\u30e2\u30fc\u30eb \u30a8\u30b9\u30af\u30fc\u30c9
-currenciesDisplayName.BRE=\u30d6\u30e9\u30b8\u30eb \u30af\u30eb\u30bc\u30a4\u30ed (BRE\u30011990-1993)
-currenciesDisplayName.BRC=\u30d6\u30e9\u30b8\u30eb \u30af\u30eb\u30bc\u30a4\u30ed (BRC)
-currenciesDisplayName.BRB=\u30d6\u30e9\u30b8\u30eb \u65b0\u30af\u30eb\u30bc\u30a4\u30ed (BRB\u30011967-1986)
+currenciesDisplayName.BRE=\u30d6\u30e9\u30b8\u30eb \u30af\u30eb\u30bc\u30a4\u30ed (1990-1993)
+currenciesDisplayName.BRC=\u30d6\u30e9\u30b8\u30eb \u30af\u30eb\u30bc\u30a4\u30ed
+currenciesDisplayName.BRB=\u30d6\u30e9\u30b8\u30eb \u65b0\u30af\u30eb\u30bc\u30a4\u30ed (1967-1986)
 currenciesDisplayName.DEM=\u30c9\u30a4\u30c4 \u30de\u30eb\u30af
 currenciesDisplayName.KWD=\u30af\u30a6\u30a7\u30fc\u30c8 \u30c7\u30a3\u30ca\u30fc\u30eb
 currenciesDisplayName.XCD=\u6771\u30ab\u30ea\u30d6 \u30c9\u30eb
@@ -160,18 +179,19 @@ currenciesDisplayName.SVC=\u30a8\u30eb\u30b5\u30eb\u30d0\u30c9\u30eb \u30b3\u30e
 currenciesDisplayName.YUM=\u30e6\u30fc\u30b4\u30b9\u30e9\u30d3\u30a2 \u30b9\u30fc\u30d1\u30fc \u30c7\u30a3\u30ca\u30fc\u30eb
 currenciesDisplayName.BEL=\u30d9\u30eb\u30ae\u30fc \u30d5\u30e9\u30f3 (BEL)
 currenciesDisplayName.SIT=\u30b9\u30ed\u30d9\u30cb\u30a2 \u30c8\u30e9\u30fc\u30eb
-currenciesDisplayName.JPY=\u5186
+currenciesDisplayName.JPY=\u65e5\u672c\u5186
 currenciesDisplayName.XOF=CFA \u30d5\u30e9\u30f3 BCEAO
 currenciesDisplayName.MVR=\u30e2\u30eb\u30c7\u30a3\u30d6\u8af8\u5cf6 \u30eb\u30d5\u30a3\u30a2
-currenciesDisplayName.GWE=\u30dd\u30eb\u30c8\u30ac\u30eb\u9818\u30ae\u30cb\u30a2 \u30a8\u30b9\u30af\u30fc\u30c9
 currenciesDisplayName.BEF=\u30d9\u30eb\u30ae\u30fc \u30d5\u30e9\u30f3
+currenciesDisplayName.GWE=\u30dd\u30eb\u30c8\u30ac\u30eb\u9818\u30ae\u30cb\u30a2 \u30a8\u30b9\u30af\u30fc\u30c9
 currenciesDisplayName.TOP=\u30c8\u30f3\u30ac \u30d1\u30fb\u30a2\u30f3\u30ac
-currenciesDisplayName.YUD=\u30e6\u30fc\u30b4\u30b9\u30e9\u30d3\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb (YUD)
+currenciesDisplayName.YUD=\u30e6\u30fc\u30b4\u30b9\u30e9\u30d3\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
 currenciesDisplayName.BEC=\u30d9\u30eb\u30ae\u30fc \u30d5\u30e9\u30f3 (BEC)
 currenciesDisplayName.SUR=\u30bd\u9023 \u30eb\u30fc\u30d6\u30eb
-currenciesDisplayName.ROL=\u30eb\u30fc\u30de\u30cb\u30a2 \u30ec\u30a4
-currenciesDisplayName.DDM=\u6771\u30c9\u30a4\u30c4 \u30de\u30eb\u30af
+currenciesDisplayName.RON=\u30eb\u30fc\u30de\u30cb\u30a2 \u30ec\u30a4
+currenciesDisplayName.ROL=\u30eb\u30fc\u30de\u30cb\u30a2 \u65e7\u30ec\u30a4
 currenciesDisplayName.BDT=\u30d0\u30f3\u30b0\u30e9\u30c7\u30b7\u30e5 \u30bf\u30ab
+currenciesDisplayName.DDM=\u6771\u30c9\u30a4\u30c4 \u30de\u30eb\u30af
 currenciesDisplayName.XBD=\u30e8\u30fc\u30ed\u30c3\u30d1\u52d8\u5b9a\u5358\u4f4d (EUA-17)
 currenciesDisplayName.AWG=\u30a2\u30eb\u30d0 \u30ae\u30eb\u30c0\u30fc
 currenciesDisplayName.XBC=\u30e8\u30fc\u30ed\u30c3\u30d1\u52d8\u5b9a\u5358\u4f4d (EUA-9)
@@ -189,6 +209,8 @@ currenciesDisplayName.GIP=\u30b8\u30d6\u30e9\u30eb\u30bf\u30eb \u30dd\u30f3\u30c
 currenciesDisplayName.TND=\u30c1\u30e5\u30cb\u30b8\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
 currenciesDisplayName.CVE=\u30ab\u30fc\u30dc\u30d9\u30eb\u30c7 \u30a8\u30b9\u30af\u30fc\u30c9
 currenciesDisplayName.UGX=\u30a6\u30ac\u30f3\u30c0 \u30b7\u30ea\u30f3\u30b0
+currenciesDisplayName.XAG=\u9280
+currenciesDisplayName.ZMK=\u30b6\u30f3\u30d3\u30a2 \u30af\u30ef\u30c1\u30e3
 currenciesDisplayName.JOD=\u30e8\u30eb\u30c0\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
 currenciesDisplayName.XAF=CFA \u30d5\u30e9\u30f3 BEAC
 currenciesDisplayName.LBP=\u30ec\u30d0\u30ce\u30f3 \u30dd\u30f3\u30c9
@@ -196,47 +218,53 @@ currenciesDisplayName.UGS=\u30a6\u30ac\u30f3\u30c0 \u30b7\u30ea\u30f3\u30b0 (196
 currenciesDisplayName.STD=\u30b5\u30f3\u30c8\u30e1\u30fb\u30d7\u30ea\u30f3\u30b7\u30da \u30c9\u30d6\u30e9
 currenciesDisplayName.WST=\u897f\u30b5\u30e2\u30a2 \u30bf\u30e9
 currenciesDisplayName.KHR=\u30ab\u30f3\u30dc\u30b8\u30a2 \u30ea\u30a8\u30eb
-currenciesDisplayName.EUR=\u30e6\u30fc\u30ed
 currenciesDisplayName.DOP=\u30c9\u30df\u30cb\u30ab \u30da\u30bd
+currenciesDisplayName.EUR=\u30e6\u30fc\u30ed
 currenciesDisplayName.BOV=\u30dc\u30ea\u30d3\u30a2 Mvdol
 currenciesDisplayName.MTP=\u30de\u30eb\u30bf \u30dd\u30f3\u30c9
 currenciesDisplayName.USS=\u7c73\u30c9\u30eb (\u5f53\u65e5)
 currenciesDisplayName.BOP=\u30dc\u30ea\u30d3\u30a2 \u30da\u30bd
-currenciesDisplayName.MTL=\u30de\u30eb\u30bf \u30ea\u30e9
 currenciesDisplayName.CUP=\u30ad\u30e5\u30fc\u30d0 \u30da\u30bd
+currenciesDisplayName.MTL=\u30de\u30eb\u30bf \u30ea\u30e9
 currenciesDisplayName.TMM=\u30c8\u30eb\u30af\u30e1\u30cb\u30b9\u30bf\u30f3 \u30de\u30ca\u30c8
 currenciesDisplayName.USN=\u7c73\u30c9\u30eb (\u7fcc\u65e5)
+currenciesDisplayName.GHS=\u30ac\u30fc\u30ca \u30bb\u30c7\u30a3
 currenciesDisplayName.SGD=\u30b7\u30f3\u30ac\u30dd\u30fc\u30eb \u30c9\u30eb
 currenciesDisplayName.NZD=\u30cb\u30e5\u30fc\u30b8\u30fc\u30e9\u30f3\u30c9 \u30c9\u30eb
 currenciesDisplayName.USD=\u7c73\u30c9\u30eb
+currenciesDisplayName.BOB=\u30dc\u30ea\u30d3\u30a2\u30fc\u30ce
 currenciesDisplayName.HNL=\u30db\u30f3\u30b8\u30e5\u30e9\u30b9 \u30ec\u30f3\u30d4\u30e9
-currenciesDisplayName.BOB=\u30dc\u30ea\u30d3\u30a2\u30ce
+currenciesDisplayName.CHW=WIR \u30d5\u30e9\u30f3
 currenciesDisplayName.ITL=\u30a4\u30bf\u30ea\u30a2 \u30ea\u30e9
 currenciesDisplayName.PAB=\u30d1\u30ca\u30de \u30d0\u30eb\u30dc\u30a2
 currenciesDisplayName.GTQ=\u30b0\u30a2\u30c6\u30de\u30e9 \u30b1\u30c4\u30a1\u30eb
-currenciesDisplayName.LAK=\u30e9\u30aa\u30b9 \u30ad\u30fc\u30d7
-currenciesDisplayName.GHC=\u30ac\u30fc\u30ca \u30bb\u30c7\u30a3
+currenciesDisplayName.XXX=\u4e0d\u660e\u307e\u305f\u306f\u7121\u52b9\u306a\u901a\u8ca8
 currenciesDisplayName.AUD=\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2 \u30c9\u30eb
+currenciesDisplayName.GHC=\u30ac\u30fc\u30ca \u30bb\u30c7\u30a3 (1979-2007)
+currenciesDisplayName.LAK=\u30e9\u30aa\u30b9 \u30ad\u30fc\u30d7
 currenciesDisplayName.NAD=\u30ca\u30df\u30d3\u30a2 \u30c9\u30eb
 currenciesDisplayName.KGS=\u30ad\u30eb\u30ae\u30b9\u30bf\u30f3 \u30bd\u30e0
 currenciesDisplayName.MGF=\u30de\u30c0\u30ac\u30b9\u30ab\u30eb \u30d5\u30e9\u30f3
-currenciesDisplayName.CHF=\u30b9\u30a4\u30b9 \u30d5\u30e9\u30f3
 currenciesDisplayName.BBD=\u30d0\u30eb\u30d0\u30c9\u30b9 \u30c9\u30eb
+currenciesDisplayName.CHF=\u30b9\u30a4\u30b9 \u30d5\u30e9\u30f3
+currenciesDisplayName.CHE=WIR \u30e6\u30fc\u30ed
 currenciesDisplayName.MGA=\u30de\u30c0\u30ac\u30b9\u30ab\u30eb \u30a2\u30ea\u30a2\u30ea
 currenciesDisplayName.PYG=\u30d1\u30e9\u30b0\u30a2\u30a4 \u30b0\u30a2\u30e9\u30cb
 currenciesDisplayName.PLZ=\u30dd\u30fc\u30e9\u30f3\u30c9 \u30ba\u30a6\u30a9\u30c6\u30a3 (1950-1995)
 currenciesDisplayName.YER=\u30a4\u30a8\u30e1\u30f3 \u30ea\u30a2\u30eb
+currenciesDisplayName.ATS=\u30aa\u30fc\u30b9\u30c8\u30ea\u30a2 \u30b7\u30ea\u30f3\u30b0
 currenciesDisplayName.ETB=\u30a8\u30c1\u30aa\u30d4\u30a2 \u30d6\u30eb
 currenciesDisplayName.BND=\u30d6\u30eb\u30cd\u30a4 \u30c9\u30eb
-currenciesDisplayName.JMD=\u30b8\u30e3\u30de\u30a4\u30ab \u30c9\u30eb
 currenciesDisplayName.EGP=\u30a8\u30b8\u30d7\u30c8 \u30dd\u30f3\u30c9
+currenciesDisplayName.JMD=\u30b8\u30e3\u30de\u30a4\u30ab \u30c9\u30eb
 currenciesDisplayName.PLN=\u30dd\u30fc\u30e9\u30f3\u30c9 \u30ba\u30a6\u30a9\u30c6\u30a3
 currenciesDisplayName.DZD=\u30a2\u30eb\u30b8\u30a7\u30ea\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
 currenciesDisplayName.ISK=\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9 \u30af\u30ed\u30fc\u30ca
 currenciesDisplayName.SRG=\u30b9\u30ea\u30ca\u30e0 \u30ae\u30eb\u30c0\u30fc
 currenciesDisplayName.LYD=\u30ea\u30d3\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
-currenciesDisplayName.BZD=\u30d9\u30ea\u30fc\u30ba \u30c9\u30eb
+currenciesDisplayName.SRD=\u30b9\u30ea\u30ca\u30e0 \u30c9\u30eb
 currenciesDisplayName.BAM=\u30dc\u30b9\u30cb\u30a2 \u30de\u30eb\u30af (BAM)
+currenciesDisplayName.BZD=\u30d9\u30ea\u30fc\u30ba \u30c9\u30eb
 currenciesDisplayName.ESP=\u30b9\u30da\u30a4\u30f3 \u30da\u30bb\u30bf
 currenciesDisplayName.KRW=\u97d3\u56fd \u30a6\u30a9\u30f3
 currenciesDisplayName.NLG=\u30aa\u30e9\u30f3\u30c0 \u30ae\u30eb\u30c0\u30fc
@@ -244,44 +272,148 @@ currenciesDisplayName.MRO=\u30e2\u30fc\u30ea\u30bf\u30cb\u30a2 \u30a6\u30ae\u30a
 currenciesDisplayName.BAD=\u30dc\u30b9\u30cb\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
 currenciesDisplayName.ZWD=\u30b8\u30f3\u30d0\u30d6\u30a8 \u30c9\u30eb
 currenciesDisplayName.SEK=\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3 \u30af\u30ed\u30fc\u30ca
-currenciesDisplayName.CSK=\u30c1\u30a7\u30b3\u30b9\u30ed\u30d0\u30ad\u30a2 \u30b3\u30eb\u30ca (CSK)
+currenciesDisplayName.CSK=\u30c1\u30a7\u30b3\u30b9\u30ed\u30d0\u30ad\u30a2 \u30b3\u30eb\u30ca
 currenciesDisplayName.BYR=\u30d9\u30e9\u30eb\u30fc\u30b7 \u30eb\u30fc\u30d6\u30eb
+currenciesDisplayName.ESB=\u30b9\u30da\u30a4\u30f3 \u514c\u63db\u30da\u30bb\u30bf
 currenciesDisplayName.IRR=\u30a4\u30e9\u30f3 \u30ea\u30a2\u30eb
+currenciesDisplayName.ESA=\u30b9\u30da\u30a4\u30f3\u30da\u30bb\u30bf
 currenciesDisplayName.PKR=\u30d1\u30ad\u30b9\u30bf\u30f3 \u30eb\u30d4\u30fc
 currenciesDisplayName.BMD=\u30d0\u30df\u30e5\u30fc\u30c0 \u30c9\u30eb
-currenciesSymbol.INR=\u30a4\u30f3\u30c9 \u30eb\u30d4\u30fc
-currenciesSymbol.JPY=\uffe5
-currenciesSymbol.KRW=\uffe6
-currenciesSymbol.VND=\u0111
-currenciesSymbol.CNY=\u4e2d\u56fd \u5143
+currenciesDisplayName.CSD=\u30bb\u30eb\u30d3\u30a2\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
 currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=lev
+currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
+currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
+currenciesSymbol.BMD=Ber$
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
+currenciesSymbol.AMD=dram
+currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
+currenciesSymbol.NPR=Nrs
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.KWD=KD
+currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
-shortMonths=1 \u6708®2 \u6708®3 \u6708®4 \u6708®5 \u6708®6 \u6708®7 \u6708®8 \u6708®9 \u6708®10 \u6708®11 \u6708®12 \u6708®®
-months=1\u6708®2\u6708®3\u6708®4\u6708®5\u6708®6\u6708®7\u6708®8\u6708®9\u6708®10\u6708®11\u6708®12\u6708®®
-shortWeekdays=®\u65e5®\u6708®\u706b®\u6c34®\u6728®\u91d1®\u571f®
-weekdays=®\u65e5\u66dc\u65e5®\u6708\u66dc\u65e5®\u706b\u66dc\u65e5®\u6c34\u66dc\u65e5®\u6728\u66dc\u65e5®\u91d1\u66dc\u65e5®\u571f\u66dc\u65e5®
-eras=\u7d00\u5143\u524d®\u897f\u66a6®
-ampms=\u5348\u524d®\u5348\u5f8c®
+currenciesSymbol.ZAR=R
+currenciesSymbol.RON=0#lei|1#leu|1
+currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=0#Old lei|1#Old leu|1
+currenciesSymbol.HKD=HK$
+currenciesSymbol.ARS=Arg$
+currenciesSymbol.JPY=\uffe5
+currenciesSymbol.ALL=lek
+currenciesSymbol.CRC=C
+currenciesSymbol.IDR=Rp
+currenciesSymbol.VND=VND
+currenciesSymbol.DKK=DKr
+currenciesSymbol.TZS=T Sh
+currenciesSymbol.SBD=SI$
+currenciesSymbol.NOK=NKr
+currenciesSymbol.UGX=U Sh
+currenciesSymbol.BEF=BF
+currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
+currenciesSymbol.SZL=E
+currenciesSymbol.STD=Db
+currenciesSymbol.SAR=SRl
+currenciesSymbol.FJD=F$
+currenciesSymbol.BDT=Tk
+currenciesSymbol.QAR=QR
+currenciesSymbol.LBP=LL
+currenciesSymbol.MNT=Tug
+currenciesSymbol.DJF=DF
+currenciesSymbol.JOD=JD
+currenciesSymbol.USD=$
+currenciesSymbol.SGD=S$
+currenciesSymbol.ECS=CS
+currenciesSymbol.KHR=CR
+currenciesSymbol.SYP=LS
+currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
+currenciesSymbol.MZM=Mt
+currenciesSymbol.YER=YRl
+currenciesSymbol.CVE=CVEsc
+currenciesSymbol.HUF=Ft
+currenciesSymbol.NZD=$NZ
+currenciesSymbol.OMR=RO
+currenciesSymbol.KZT=T
+currenciesSymbol.INR=INR
+currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.NAD=N$
+currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
+currenciesSymbol.HNL=L
+currenciesSymbol.KGS=som
+currenciesSymbol.ZWD=Z$
+currenciesSymbol.MYR=RM
+currenciesSymbol.SRG=Sf
+currenciesSymbol.GTQ=Q
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
+currenciesSymbol.VEB=Be
+currenciesSymbol.BOB=Bs
+currenciesSymbol.CNY=\u5143
+currenciesSymbol.KMF=CF
+currenciesSymbol.SEK=SKr
+currenciesSymbol.AUD=$A
+currenciesSymbol.LYD=LD
+currenciesSymbol.JMD=J$
+currenciesSymbol.SKK=Sk
+currenciesSymbol.CHF=SwF
+currenciesSymbol.ETB=Br
+currenciesSymbol.MRO=UM
+currenciesSymbol.BBD=BDS$
+currenciesSymbol.KRW=\uffe6
+currenciesSymbol.PKR=Pra
+currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
+currenciesSymbol.MXN=MEX$
+currenciesSymbol.DZD=DA
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.IRR=RI
+currenciesSymbol.GYD=G$
+currenciesSymbol.BAM=KM
+currenciesSymbol.CAD=Can$
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u6708\u00ae2\u6708\u00ae3\u6708\u00ae4\u6708\u00ae5\u6708\u00ae6\u6708\u00ae7\u6708\u00ae8\u6708\u00ae9\u6708\u00ae10\u6708\u00ae11\u6708\u00ae12\u6708\u00ae\u00ae
+shortWeekdays=\u00ae\u65e5\u00ae\u6708\u00ae\u706b\u00ae\u6c34\u00ae\u6728\u00ae\u91d1\u00ae\u571f\u00ae
+weekdays=\u00ae\u65e5\u66dc\u65e5\u00ae\u6708\u66dc\u65e5\u00ae\u706b\u66dc\u65e5\u00ae\u6c34\u66dc\u65e5\u00ae\u6728\u66dc\u65e5\u00ae\u91d1\u66dc\u65e5\u00ae\u571f\u66dc\u65e5\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=\u5348\u524d\u00ae\u5348\u5f8c\u00ae
+shortDateFormat=yy/MM/dd
 mediumDateFormat=yyyy/MM/dd
-longDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'
-fullDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'EEEE
+longDateFormat=yyyy\u5e74M\u6708d\u65e5
+fullDateFormat=yyyy\u5e74M\u6708d\u65e5EEEE
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ss:z
-fullTimeFormat=H'\u6642'mm'\u5206'ss'\u79d2'z
-zoneStrings=America/Halifax®AST®\u5927\u897f\u6d0b\u6a19\u6e96\u6642®ADT®\u5927\u897f\u6d0b\u590f\u6642\u9593®©America/Indianapolis®EST®\u6771\u90e8\u6a19\u6e96\u6642®EST®\u6771\u90e8\u6a19\u6e96\u6642®©Europe/Paris®CET®\u4e2d\u6b27\u6a19\u6e96\u6642®CEST®\u4e2d\u6b27\u590f\u6642\u9593®©America/Phoenix®MST®\u5c71\u5730\u6a19\u6e96\u6642®MST®\u5c71\u5730\u6a19\u6e96\u6642®©America/Los_Angeles®PST®\u592a\u5e73\u6d0b\u6a19\u6e96\u6642®PDT®\u592a\u5e73\u6d0b\u590f\u6642\u9593®©Pacific/Honolulu®HST®\u30cf\u30ef\u30a4\u6a19\u6e96\u6642®HST®\u30cf\u30ef\u30a4\u6a19\u6e96\u6642®©America/Denver®MST®\u5c71\u5730\u6a19\u6e96\u6642®MDT®\u5c71\u5730\u590f\u6642\u9593®©Europe/Bucharest®EET®\u6771\u6b27\u6a19\u6e96\u6642®EEST®\u6771\u6b27\u590f\u6642\u9593®©America/New_York®EST®\u6771\u90e8\u6a19\u6e96\u6642®EDT®\u6771\u90e8\u590f\u6642\u9593®©Asia/Tokyo®JST®\u65e5\u672c\u6a19\u6e96\u6642®JST®\u65e5\u672c\u6a19\u6e96\u6642®©America/Anchorage®AST®\u30a2\u30e9\u30b9\u30ab\u6a19\u6e96\u6642®ADT®\u30a2\u30e9\u30b9\u30ab\u590f\u6642\u9593®©Asia/Shanghai®CTT®\u4e2d\u56fd\u6a19\u6e96\u6642®CDT®\u4e2d\u56fd\u6a19\u6e96\u6642®©America/Chicago®CST®\u4e2d\u90e8\u6a19\u6e96\u6642®CDT®\u4e2d\u90e8\u590f\u6642\u9593®©Africa/Casablanca®GMT®\u30b0\u30ea\u30cb\u30c3\u30b8\u6a19\u6e96\u6642®GMT®\u30b0\u30ea\u30cb\u30c3\u30b8\u6a19\u6e96\u6642®©America/St_Johns®CNT®\u30cb\u30e5\u30fc\u30d5\u30a1\u30f3\u30c9\u30e9\u30f3\u30c9\u5cf6\u6a19\u6e96\u6642®CDT®\u30cb\u30e5\u30fc\u30d5\u30a1\u30f3\u30c9\u30e9\u30f3\u30c9\u5cf6\u590f\u6642\u9593®©Asia/Jerusalem®IST®\u30a4\u30b9\u30e9\u30a8\u30eb\u6a19\u6e96\u6642®IDT®\u30a4\u30b9\u30e9\u30a8\u30eb\u590f\u6642\u9593®©
+longTimeFormat=HH:mm:ssz
+fullTimeFormat=H\u6642mm\u5206ss\u79d2z
+zoneStrings=Europe_Central\u00ae\u4e2d\u6b27\u6a19\u6e96\u6642\u00ae\u00ae\u4e2d\u6b27\u590f\u6642\u9593\u00ae\u00ae\u00a9Africa_Western\u00ae\u897f\u30a2\u30d5\u30ea\u30ab\u6642\u9593\u00ae\u00ae\u897f\u30a2\u30d5\u30ea\u30ab\u590f\u6642\u9593\u00ae\u00ae\u00a9Amazon\u00ae\u30a2\u30de\u30be\u30f3\u6642\u9593\u00ae\u00ae\u30a2\u30de\u30be\u30f3\u590f\u6642\u9593\u00ae\u00ae\u00a9Alaska\u00ae\u30a2\u30e9\u30b9\u30ab\u6a19\u6e96\u6642\u00ae\u00ae\u30a2\u30e9\u30b9\u30ab\u590f\u6642\u9593\u00ae\u00ae\u00a9America_Pacific\u00ae\u30a2\u30e1\u30ea\u30ab\u592a\u5e73\u6d0b\u6a19\u6e96\u6642\u00ae\u00ae\u30a2\u30e1\u30ea\u30ab\u592a\u5e73\u6d0b\u590f\u6642\u9593\u00ae\u00ae\u00a9Israel\u00ae\u30a4\u30b9\u30e9\u30a8\u30eb\u6a19\u6e96\u6642\u00ae\u00ae\u30a4\u30b9\u30e9\u30a8\u30eb\u590f\u6642\u9593\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u6771\u6b27\u6a19\u6e96\u6642\u00ae\u00ae\u6771\u6b27\u590f\u6642\u9593\u00ae\u00ae\u00a9Newfoundland\u00ae\u30cb\u30e5\u30fc\u30d5\u30a1\u30f3\u30c9\u30e9\u30f3\u30c9\u5cf6\u6a19\u6e96\u6642\u00ae\u00ae\u30cb\u30e5\u30fc\u30d5\u30a1\u30f3\u30c9\u30e9\u30f3\u30c9\u5cf6\u590f\u6642\u9593\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u6771\u30a2\u30d5\u30ea\u30ab\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00ae\u5927\u897f\u6d0b\u6a19\u6e96\u6642\u00ae\u00ae\u5927\u897f\u6d0b\u590f\u6642\u9593\u00ae\u00ae\u00a9America_Eastern\u00ae\u30a2\u30e1\u30ea\u30ab\u6771\u90e8\u6a19\u6e96\u6642\u00ae\u00ae\u30a2\u30e1\u30ea\u30ab\u6771\u90e8\u590f\u6642\u9593\u00ae\u00ae\u00a9Africa_Central\u00ae\u4e2d\u592e\u30a2\u30d5\u30ea\u30ab\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00ae\u5357\u30a2\u30d5\u30ea\u30ab\u6a19\u6e96\u6642\u00ae\u00ae\u00ae\u00ae\u00a9Argentina\u00ae\u00ae\u00ae\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3\u590f\u6642\u9593\u00ae\u00ae\u00a9China\u00ae\u4e2d\u56fd\u6a19\u6e96\u6642\u00ae\u00ae\u4e2d\u56fd\u590f\u6642\u9593\u00ae\u00ae\u00a9America_Mountain\u00ae\u30a2\u30e1\u30ea\u30ab\u5c71\u5730\u6a19\u6e96\u6642\u00ae\u00ae\u30a2\u30e1\u30ea\u30ab\u5c71\u5730\u590f\u6642\u9593\u00ae\u00ae\u00a9GMT\u00ae\u30b0\u30ea\u30cb\u30c3\u30b8\u6a19\u6e96\u6642\u00ae\u00ae\u00ae\u00ae\u00a9Brasilia\u00ae\u30d6\u30e9\u30b8\u30ea\u30a2\u6642\u9593\u00ae\u00ae\u30d6\u30e9\u30b8\u30ea\u30a2\u590f\u6642\u9593\u00ae\u00ae\u00a9America_Central\u00ae\u30a2\u30e1\u30ea\u30ab\u4e2d\u90e8\u6a19\u6e96\u6642\u00ae\u00ae\u30a2\u30e1\u30ea\u30ab\u4e2d\u90e8\u590f\u6642\u9593\u00ae\u00ae\u00a9Japan\u00ae\u65e5\u672c\u6a19\u6e96\u6642\u00ae\u00ae\u65e5\u672c\u590f\u6642\u9593\u00ae\u00ae\u00a9
 territories.TL=\u6771\u30c6\u30a3\u30e2\u30fc\u30eb
 territories.TK=\u30c8\u30b1\u30e9\u30a6\u8af8\u5cf6
 territories.TJ=\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3
 territories.TH=\u30bf\u30a4
 territories.TG=\u30c8\u30fc\u30b4
-territories.TF=\u4ecf\u5357\u65b9\u9818
+territories.TF=\u30d5\u30e9\u30f3\u30b9\u9818\u6975\u5357\u8af8\u5cf6
 territories.GY=\u30ac\u30a4\u30a2\u30ca
 territories.TD=\u30c1\u30e3\u30c9
 territories.TC=\u30bf\u30fc\u30af\u30b9\u8af8\u5cf6\u30fb\u30ab\u30a4\u30b3\u30b9\u8af8\u5cf6
 territories.GW=\u30ae\u30cb\u30a2\u30d3\u30b5\u30a6
-territories.GU=\u30b0\u30a2\u30e0\u5cf6
+territories.GU=\u30b0\u30a2\u30e0
 territories.GT=\u30b0\u30a2\u30c6\u30de\u30e9
 territories.GS=\u5357\u30b8\u30e7\u30fc\u30b8\u30a2\u5cf6\u30fb\u5357\u30b5\u30f3\u30c9\u30a4\u30c3\u30c1\u8af8\u5cf6
 territories.GR=\u30ae\u30ea\u30b7\u30e3
@@ -295,10 +427,11 @@ territories.GL=\u30b0\u30ea\u30fc\u30f3\u30e9\u30f3\u30c9
 territories.SV=\u30a8\u30eb\u30b5\u30eb\u30d0\u30c9\u30eb
 territories.062=\u5357\u4e2d\u592e\u30a2\u30b8\u30a2
 territories.ST=\u30b5\u30f3\u30c8\u30e1\u30fb\u30d7\u30ea\u30f3\u30b7\u30da
-territories.061=\u30dd\u30ea\u30cd\u30b7\u30a2
 territories.GI=\u30b8\u30d6\u30e9\u30eb\u30bf\u30eb
+territories.061=\u30dd\u30ea\u30cd\u30b7\u30a2
 territories.GH=\u30ac\u30fc\u30ca
 territories.SR=\u30b9\u30ea\u30ca\u30e0
+territories.GG=\u30ac\u30fc\u30f3\u30b8\u30fc
 territories.GF=\u4ecf\u9818\u30ae\u30a2\u30ca
 territories.GE=\u30b0\u30eb\u30b8\u30a2
 territories.SO=\u30bd\u30de\u30ea\u30a2
@@ -311,34 +444,35 @@ territories.GA=\u30ac\u30dc\u30f3
 territories.SK=\u30b9\u30ed\u30d0\u30ad\u30a2
 territories.SJ=\u30b9\u30d0\u30fc\u30eb\u30d0\u30eb\u8af8\u5cf6\u30fb\u30e4\u30f3\u30de\u30a4\u30a8\u30f3\u5cf6
 territories.SI=\u30b9\u30ed\u30d9\u30cb\u30a2
-territories.SH=\u30bb\u30f3\u30c8\u30d8\u30ec\u30ca\u5cf6
+territories.SH=\u30bb\u30f3\u30c8\u30d8\u30ec\u30ca
 territories.SG=\u30b7\u30f3\u30ac\u30dd\u30fc\u30eb
 territories.SE=\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3
 territories.SD=\u30b9\u30fc\u30c0\u30f3
-territories.SC=\u30bb\u30a4\u30b7\u30a7\u30eb
+territories.SC=\u30bb\u30fc\u30b7\u30a7\u30eb
 territories.SB=\u30bd\u30ed\u30e2\u30f3\u8af8\u5cf6
 territories.SA=\u30b5\u30a6\u30b8\u30a2\u30e9\u30d3\u30a2
 territories.FR=\u30d5\u30e9\u30f3\u30b9
-territories.057=\u30df\u30af\u30ed\u30cd\u30b7\u30a2
 territories.FO=\u30d5\u30a7\u30ed\u30fc\u8af8\u5cf6
+territories.057=\u30df\u30af\u30ed\u30cd\u30b7\u30a2\u5730\u57df
 territories.FM=\u30df\u30af\u30ed\u30cd\u30b7\u30a2
 territories.RW=\u30eb\u30ef\u30f3\u30c0
 territories.054=\u30e1\u30e9\u30cd\u30b7\u30a2
-territories.053=\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2\u304a\u3088\u3073\u30cb\u30e5\u30fc\u30b8\u30fc\u30e9\u30f3\u30c9
 territories.FK=\u30d5\u30a9\u30fc\u30af\u30e9\u30f3\u30c9\u8af8\u5cf6
+territories.053=\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2\u30fb\u30cb\u30e5\u30fc\u30b8\u30fc\u30e9\u30f3\u30c9
 territories.RU=\u30ed\u30b7\u30a2
 territories.FJ=\u30d5\u30a3\u30b8\u30fc
 territories.FI=\u30d5\u30a3\u30f3\u30e9\u30f3\u30c9
+territories.RS=\u30bb\u30eb\u30d3\u30a2
 territories.RO=\u30eb\u30fc\u30de\u30cb\u30a2
 territories.RE=\u30ec\u30e6\u30cb\u30aa\u30f3\u5cf6
 territories.ET=\u30a8\u30c1\u30aa\u30d4\u30a2
 territories.ES=\u30b9\u30da\u30a4\u30f3
 territories.ER=\u30a8\u30ea\u30c8\u30ea\u30a2
-territories.833=\u30de\u30f3\u5cf6
+territories.QU=\u6b27\u5dde\u9023\u5408
 territories.EH=\u897f\u30b5\u30cf\u30e9
 territories.EG=\u30a8\u30b8\u30d7\u30c8
-territories.830=\u30c1\u30e3\u30cd\u30eb\u8af8\u5cf6
 territories.EE=\u30a8\u30b9\u30c8\u30cb\u30a2
+territories.830=\u30c1\u30e3\u30cd\u30eb\u8af8\u5cf6
 territories.QO=\u305d\u306e\u4ed6\u306e\u30aa\u30bb\u30a2\u30cb\u30a2
 territories.EC=\u30a8\u30af\u30a2\u30c9\u30eb
 territories.DZ=\u30a2\u30eb\u30b8\u30a7\u30ea\u30a2
@@ -346,24 +480,25 @@ territories.QA=\u30ab\u30bf\u30fc\u30eb
 territories.039=\u5357\u30e8\u30fc\u30ed\u30c3\u30d1
 territories.DO=\u30c9\u30df\u30cb\u30ab\u5171\u548c\u56fd
 territories.PY=\u30d1\u30e9\u30b0\u30a2\u30a4
-territories.035=\u6771\u5357\u30a2\u30b8\u30a2
 territories.DM=\u30c9\u30df\u30cb\u30ab\u56fd
+territories.035=\u6771\u5357\u30a2\u30b8\u30a2
 territories.PW=\u30d1\u30e9\u30aa
+territories.034=\u5357\u30a2\u30b8\u30a2
 territories.DK=\u30c7\u30f3\u30de\u30fc\u30af
 territories.DJ=\u30b8\u30d6\u30c1
 territories.PT=\u30dd\u30eb\u30c8\u30ac\u30eb
-territories.PS=\u30d1\u30ec\u30b9\u30c1\u30ca
+territories.PS=\u30d1\u30ec\u30b9\u30c1\u30ca\u9818\u571f
 territories.030=\u6771\u30a2\u30b8\u30a2
 territories.PR=\u30d7\u30a8\u30eb\u30c8\u30ea\u30b3
 territories.DE=\u30c9\u30a4\u30c4
 territories.PN=\u30d4\u30c8\u30b1\u30a2\u30f3\u5cf6
-territories.PM=\u30b5\u30f3\u30d4\u30a8\u30fc\u30eb\u30fb\u30a8\u30fb\u30df\u30af\u30ed\u30f3\u5cf6
+territories.PM=\u30b5\u30f3\u30d4\u30a8\u30fc\u30eb\u5cf6\u30fb\u30df\u30af\u30ed\u30f3\u5cf6
 territories.PL=\u30dd\u30fc\u30e9\u30f3\u30c9
 territories.PK=\u30d1\u30ad\u30b9\u30bf\u30f3
 territories.PH=\u30d5\u30a3\u30ea\u30d4\u30f3
 territories.PG=\u30d1\u30d7\u30a2\u30cb\u30e5\u30fc\u30ae\u30cb\u30a2
 territories.PF=\u4ecf\u9818\u30dd\u30ea\u30cd\u30b7\u30a2
-territories.CZ=\u30c1\u30a7\u30b3
+territories.CZ=\u30c1\u30a7\u30b3\u5171\u548c\u56fd
 territories.PE=\u30da\u30eb\u30fc
 territories.CY=\u30ad\u30d7\u30ed\u30b9
 territories.CX=\u30af\u30ea\u30b9\u30de\u30b9\u5cf6
@@ -378,15 +513,16 @@ territories.CN=\u4e2d\u56fd
 territories.CM=\u30ab\u30e1\u30eb\u30fc\u30f3
 territories.CL=\u30c1\u30ea
 territories.CK=\u30af\u30c3\u30af\u8af8\u5cf6
-territories.CI=\u30b3\u30fc\u30c8\u30b8\u30dc\u30a2\u30fc\u30eb
 territories.021=\u5317\u30a2\u30e1\u30ea\u30ab
+territories.CI=\u30b3\u30fc\u30c8\u30b8\u30dc\u30ef\u30fc\u30eb
 territories.CH=\u30b9\u30a4\u30b9
-territories.CG=\u30b3\u30f3\u30b4
+territories.CG=\u30b3\u30f3\u30b4\u5171\u548c\u56fd
 territories.CF=\u4e2d\u592e\u30a2\u30d5\u30ea\u30ab\u5171\u548c\u56fd
-territories.CD=\u30b3\u30f3\u30b4\u6c11\u4e3b\u5171\u548c\u56fd
+territories.CD=\u30b3\u30f3\u30b4\u6c11\u4e3b\u5171\u548c\u56fd\uff08\u65e7\u30b6\u30a4\u30fc\u30eb\uff09
 territories.CC=\u30b3\u30b3\u30b9 (\u30ad\u30fc\u30ea\u30f3\u30b0) \u8af8\u5cf6
 territories.OM=\u30aa\u30de\u30fc\u30f3
 territories.CA=\u30ab\u30ca\u30c0
+territories.419=\u30e9\u30c6\u30f3\u30a2\u30e1\u30ea\u30ab\u30fb\u30ab\u30ea\u30d6\u5730\u57df
 territories.BZ=\u30d9\u30ea\u30fc\u30ba
 territories.BY=\u30d9\u30e9\u30eb\u30fc\u30b7
 territories.BW=\u30dc\u30c4\u30ef\u30ca
@@ -395,25 +531,28 @@ territories.BT=\u30d6\u30fc\u30bf\u30f3
 territories.BS=\u30d0\u30cf\u30de
 territories.BR=\u30d6\u30e9\u30b8\u30eb
 territories.019=\u30a2\u30e1\u30ea\u30ab\u5927\u9678
-territories.018=\u5357\u30a2\u30d5\u30ea\u30ab
+territories.018=\u5357\u90e8\u30a2\u30d5\u30ea\u30ab
 territories.NZ=\u30cb\u30e5\u30fc\u30b8\u30fc\u30e9\u30f3\u30c9
-territories.BO=\u30dc\u30ea\u30d3\u30a2
 territories.017=\u4e2d\u90e8\u30a2\u30d5\u30ea\u30ab
+territories.BO=\u30dc\u30ea\u30d3\u30a2
 territories.BN=\u30d6\u30eb\u30cd\u30a4
-territories.BM=\u30d0\u30fc\u30df\u30e5\u30fc\u30c0
 territories.015=\u5317\u30a2\u30d5\u30ea\u30ab
+territories.BM=\u30d0\u30df\u30e5\u30fc\u30c0
 territories.014=\u6771\u30a2\u30d5\u30ea\u30ab
+territories.BL=\u30b5\u30f3\u30fb\u30d0\u30eb\u30c6\u30eb\u30df\u30fc
 territories.013=\u4e2d\u592e\u30a2\u30e1\u30ea\u30ab
 territories.NU=\u30cb\u30a6\u30a8\u5cf6
 territories.BJ=\u30d9\u30cb\u30f3
-territories.BI=\u30d6\u30eb\u30f3\u30b8
 territories.011=\u897f\u30a2\u30d5\u30ea\u30ab
+territories.BI=\u30d6\u30eb\u30f3\u30b8
+territories.172=\u72ec\u7acb\u56fd\u5bb6\u5171\u540c\u4f53
 territories.BH=\u30d0\u30fc\u30ec\u30fc\u30f3
 territories.NR=\u30ca\u30a6\u30eb
 territories.BG=\u30d6\u30eb\u30ac\u30ea\u30a2
 territories.BF=\u30d6\u30eb\u30ad\u30ca\u30d5\u30a1\u30bd
 territories.NP=\u30cd\u30d1\u30fc\u30eb
 territories.BE=\u30d9\u30eb\u30ae\u30fc
+territories.ZZ=\u4e0d\u660e\u306a\u5730\u57df
 territories.NO=\u30ce\u30eb\u30a6\u30a7\u30fc
 territories.BD=\u30d0\u30f3\u30b0\u30e9\u30c7\u30b7\u30e5
 territories.BB=\u30d0\u30eb\u30d0\u30c9\u30b9
@@ -434,24 +573,25 @@ territories.AU=\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2
 territories.AT=\u30aa\u30fc\u30b9\u30c8\u30ea\u30a2
 territories.AS=\u7c73\u9818\u30b5\u30e2\u30a2
 territories.AR=\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3
-territories.009=\u30aa\u30bb\u30a2\u30cb\u30a2
 territories.AQ=\u5357\u6975\u5927\u9678
+territories.009=\u30aa\u30bb\u30a2\u30cb\u30a2
 territories.MZ=\u30e2\u30b6\u30f3\u30d3\u30fc\u30af
 territories.AO=\u30a2\u30f3\u30b4\u30e9
 territories.MY=\u30de\u30ec\u30fc\u30b7\u30a2
 territories.AN=\u30aa\u30e9\u30f3\u30c0\u9818\u30a2\u30f3\u30c6\u30a3\u30eb\u8af8\u5cf6
 territories.MX=\u30e1\u30ad\u30b7\u30b3
-territories.005=\u5357\u30a2\u30e1\u30ea\u30ab
 territories.AM=\u30a2\u30eb\u30e1\u30cb\u30a2
+territories.005=\u5357\u30a2\u30e1\u30ea\u30ab
 territories.MW=\u30de\u30e9\u30a6\u30a3
 territories.AL=\u30a2\u30eb\u30d0\u30cb\u30a2
 territories.MV=\u30e2\u30eb\u30b8\u30d6
+territories.003=\u5317\u7c73
 territories.ZA=\u5357\u30a2\u30d5\u30ea\u30ab
 territories.MU=\u30e2\u30fc\u30ea\u30b7\u30e3\u30b9
 territories.002=\u30a2\u30d5\u30ea\u30ab
 territories.MT=\u30de\u30eb\u30bf
-territories.001=\u4e16\u754c
 territories.AI=\u30a2\u30f3\u30ae\u30e9
+territories.001=\u4e16\u754c
 territories.MS=\u30e2\u30f3\u30c8\u30bb\u30e9\u30c8\u5cf6
 territories.MR=\u30e2\u30fc\u30ea\u30bf\u30cb\u30a2
 territories.AG=\u30a2\u30f3\u30c6\u30a3\u30b0\u30a2\u30fb\u30d0\u30fc\u30d6\u30fc\u30c0
@@ -459,7 +599,7 @@ territories.MQ=\u30de\u30eb\u30c6\u30a3\u30cb\u30fc\u30af\u5cf6
 territories.AF=\u30a2\u30d5\u30ac\u30cb\u30b9\u30bf\u30f3
 territories.MP=\u5317\u30de\u30ea\u30a2\u30ca\u8af8\u5cf6
 territories.AE=\u30a2\u30e9\u30d6\u9996\u9577\u56fd\u9023\u90a6
-territories.MO=\u4e2d\u83ef\u4eba\u6c11\u5171\u548c\u56fd\u30de\u30ab\u30aa\u7279\u5225\u884c\u653f\u533a
+territories.MO=\u30de\u30ab\u30aa
 territories.AD=\u30a2\u30f3\u30c9\u30e9
 territories.MN=\u30e2\u30f3\u30b4\u30eb
 territories.MM=\u30df\u30e3\u30f3\u30de\u30fc
@@ -468,6 +608,8 @@ territories.MK=\u30de\u30b1\u30c9\u30cb\u30a2
 territories.YT=\u30de\u30e8\u30c3\u30c8\u5cf6
 territories.MH=\u30de\u30fc\u30b7\u30e3\u30eb\u8af8\u5cf6\u5171\u548c\u56fd
 territories.MG=\u30de\u30c0\u30ac\u30b9\u30ab\u30eb
+territories.MF=\u30bb\u30f3\u30c8\u30fb\u30de\u30fc\u30c1\u30f3
+territories.ME=\u30e2\u30f3\u30c6\u30cd\u30b0\u30ed
 territories.MD=\u30e2\u30eb\u30c9\u30d0
 territories.MC=\u30e2\u30ca\u30b3
 territories.MA=\u30e2\u30ed\u30c3\u30b3
@@ -491,27 +633,29 @@ territories.KZ=\u30ab\u30b6\u30d5\u30b9\u30bf\u30f3
 territories.KY=\u30b1\u30a4\u30de\u30f3\u8af8\u5cf6
 territories.KW=\u30af\u30a6\u30a7\u30fc\u30c8
 territories.145=\u897f\u30a2\u30b8\u30a2
+territories.143=\u4e2d\u592e\u30a2\u30b8\u30a2
 territories.142=\u30a2\u30b8\u30a2
 territories.KR=\u5927\u97d3\u6c11\u56fd
 territories.KP=\u671d\u9bae\u6c11\u4e3b\u4e3b\u7fa9\u4eba\u6c11\u5171\u548c\u56fd
 territories.KN=\u30bb\u30f3\u30c8\u30af\u30ea\u30b9\u30c8\u30d5\u30a1\u30fc\u30fb\u30cd\u30a4\u30d3\u30b9
 territories.KM=\u30b3\u30e2\u30ed
 territories.KI=\u30ad\u30ea\u30d0\u30b9
-territories.WS=\u897f\u30b5\u30e2\u30a2
+territories.WS=\u30b5\u30e2\u30a2
 territories.KH=\u30ab\u30f3\u30dc\u30b8\u30a2
 territories.KG=\u30ad\u30eb\u30ae\u30b9\u30bf\u30f3
 territories.KE=\u30b1\u30cb\u30a2
-territories.WF=\u30a6\u30a9\u30ea\u30b9\u30fb\u30d5\u30c8\u30fc\u30ca
+territories.WF=\u30a6\u30a9\u30ea\u30b9\u30fb\u30d5\u30c4\u30ca
 territories.JP=\u65e5\u672c
 territories.JO=\u30e8\u30eb\u30c0\u30f3
 territories.JM=\u30b8\u30e3\u30de\u30a4\u30ab
 territories.VU=\u30d0\u30cc\u30a2\u30c4
+territories.JE=\u30b8\u30e3\u30fc\u30b8\u30fc
 territories.VN=\u30d9\u30c8\u30ca\u30e0
-territories.VI=\u7c73\u9818\u30d0\u30fc\u30b8\u30f3\u8af8\u5cf6
-territories.VG=\u82f1\u9818\u30d0\u30fc\u30b8\u30f3\u8af8\u5cf6
+territories.VI=\u30a2\u30e1\u30ea\u30ab\u9818\u30f4\u30a1\u30fc\u30b8\u30f3\u8af8\u5cf6
+territories.VG=\u30a4\u30ae\u30ea\u30b9\u9818\u30f4\u30a1\u30fc\u30b8\u30f3\u8af8\u5cf6
 territories.VE=\u30d9\u30cd\u30ba\u30a8\u30e9
 territories.VC=\u30bb\u30f3\u30c8\u30d3\u30f3\u30bb\u30f3\u30c8\u30fb\u30b0\u30ec\u30ca\u30c7\u30a3\u30fc\u30f3\u8af8\u5cf6
-territories.VA=\u30ed\u30fc\u30de\u6559\u7687\u5e81 (\u30d0\u30c1\u30ab\u30f3\u5e02\u56fd)
+territories.VA=\u30d0\u30c1\u30ab\u30f3\u5e02\u56fd
 territories.IT=\u30a4\u30bf\u30ea\u30a2
 territories.IS=\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9
 territories.IR=\u30a4\u30e9\u30f3
@@ -520,8 +664,9 @@ territories.UZ=\u30a6\u30ba\u30d9\u30ad\u30b9\u30bf\u30f3
 territories.IO=\u82f1\u9818\u30a4\u30f3\u30c9\u6d0b\u690d\u6c11\u5730
 territories.UY=\u30a6\u30eb\u30b0\u30a2\u30a4
 territories.IN=\u30a4\u30f3\u30c9
+territories.IM=\u30de\u30f3\u5cf6
 territories.IL=\u30a4\u30b9\u30e9\u30a8\u30eb
-territories.US=\u30a2\u30e1\u30ea\u30ab\u5408\u8846\u56fd
+territories.US=\u30a2\u30e1\u30ea\u30ab
 territories.IE=\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9
 territories.ID=\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2
 territories.UM=\u7c73\u9818\u592a\u5e73\u6d0b\u8af8\u5cf6
@@ -532,17 +677,17 @@ territories.HT=\u30cf\u30a4\u30c1
 territories.HR=\u30af\u30ed\u30a2\u30c1\u30a2
 territories.TZ=\u30bf\u30f3\u30b6\u30cb\u30a2
 territories.HN=\u30db\u30f3\u30b8\u30e5\u30e9\u30b9
-territories.HM=\u30cf\u30fc\u30c9\u30fb\u30a2\u30f3\u30c9\u30fb\u30de\u30af\u30c9\u30ca\u30eb\u30c9\u30fb\u30a2\u30a4\u30e9\u30f3\u30ba
+territories.HM=\u30cf\u30fc\u30c9\u5cf6\u30fb\u30de\u30af\u30c9\u30ca\u30eb\u30c9\u8af8\u5cf6
 territories.TW=\u53f0\u6e7e
 territories.TV=\u30c4\u30d0\u30eb
-territories.HK=\u4e2d\u83ef\u4eba\u6c11\u5171\u548c\u56fd\u9999\u6e2f\u7279\u5225\u884c\u653f\u533a
+territories.HK=\u9999\u6e2f
 territories.TT=\u30c8\u30ea\u30cb\u30c0\u30fc\u30c9\u30fb\u30c8\u30d0\u30b4
 territories.TR=\u30c8\u30eb\u30b3
 territories.TO=\u30c8\u30f3\u30ac
 territories.TN=\u30c1\u30e5\u30cb\u30b8\u30a2
 territories.TM=\u30c8\u30eb\u30af\u30e1\u30cb\u30b9\u30bf\u30f3
+languages.gwi=\u30b0\u30a6\u30a3\u30c3\u30c1\u30f3\u8a9e
 languages.akk=\u30a2\u30c3\u30ab\u30c9\u8a9e
-languages.gwi=\u30af\u30c1\u30f3\u8a9e
 languages.eka=\u30a8\u30ab\u30b8\u30e5\u30af\u8a9e
 languages.ijo=\u30a4\u30b8\u30e7\u30fc\u8a9e
 languages.xh=\u30b3\u30b5\u8a9e
@@ -555,15 +700,16 @@ languages.pon=\u30dd\u30f3\u30da\u30a4\u8a9e
 languages.min=\u30df\u30ca\u30f3\u30ab\u30d0\u30a6\u8a9e
 languages.suk=\u30b9\u30af\u30de\u8a9e
 languages.wo=\u30a6\u30a9\u30ed\u30d5\u8a9e
-languages.kut=\u30af\u30c6\u30ca\u30a4\u8a9e
 languages.lol=\u30e2\u30f3\u30b4\u8a9e
+languages.kut=\u30af\u30c6\u30ca\u30a4\u8a9e
 languages.mic=\u30df\u30af\u30de\u30af\u8a9e
 languages.wa=\u30ef\u30ed\u30f3\u8a9e
 languages.kum=\u30af\u30e0\u30af\u8a9e
 languages.zap=\u30b6\u30dd\u30c6\u30c3\u30af\u8a9e
+languages.ain=\u30a2\u30a4\u30cc\u8a9e
 languages.cus=\u30af\u30b7\u30e5\u8af8\u8a9e
+languages.jbo=\u30ed\u30b8\u30d0\u30f3\u8a9e
 languages.doi=\u30c9\u30b0\u30ea\u8a9e
-languages.jbo=Lojban\u8a9e
 languages.vo=\u30dc\u30e9\u30d4\u30e5\u30af\u8a9e
 languages.oto=\u30aa\u30c8\u30df\u8a9e\u65cf
 languages.vi=\u30d9\u30c8\u30ca\u30e0\u8a9e
@@ -572,7 +718,7 @@ languages.rar=\u30e9\u30ed\u30c8\u30ac\u8a9e
 languages.ve=\u30d9\u30f3\u30c0\u8a9e
 languages.rap=\u30e9\u30d1\u30cc\u30a4\u8a9e
 languages.raj=\u30e9\u30fc\u30b8\u30e3\u30b9\u30bf\u30fc\u30f3\u8a9e
-languages.ota=\u30aa\u30b9\u30de\u30f3\u30c8\u30eb\u30b3\u8a9e (1500-1928)
+languages.ota=\u30aa\u30b9\u30de\u30f3\u30c8\u30eb\u30b3\u8a9e
 languages.nzi=\u30f3\u30bc\u30de\u8a9e
 languages.nap=\u30ca\u30dd\u30ea\u8a9e
 languages.uz=\u30a6\u30ba\u30d9\u30af\u8a9e
@@ -587,23 +733,26 @@ languages.egy=\u53e4\u4ee3\u30a8\u30b8\u30d7\u30c8\u8a9e
 languages.ug=\u30a6\u30a4\u30b0\u30eb\u8a9e
 languages.fan=\u30d5\u30a1\u30f3\u30b0\u8a9e
 languages.ssa=\u30ca\u30a4\u30eb\u30fb\u30b5\u30cf\u30e9\u8af8\u8a9e
+languages.mga=\u4e2d\u671f\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e
 languages.bat=\u30d0\u30eb\u30c8\u8af8\u8a9e
-languages.mga=\u4e2d\u671f\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e (900-1200)
 languages.nyo=\u30cb\u30e7\u30ed\u8a9e
 languages.bas=\u30d0\u30b5\u8a9e
 languages.nyn=\u30cb\u30e3\u30f3\u30b3\u30ec\u8a9e
 languages.nym=\u30cb\u30e3\u30e0\u30a6\u30a7\u30b8\u8a9e
+languages.gsw=\u30b9\u30a4\u30b9\u30c9\u30a4\u30c4\u8a9e\uff08\u30b9\u30a4\u30b9\uff09
 languages.hmn=\u30d5\u30e2\u30f3\u8a9e
 languages.ban=\u30d0\u30ea\u8a9e
 languages.osa=\u30aa\u30bb\u30fc\u30b8\u8a9e
 languages.bal=\u30d0\u30eb\u30fc\u30c1\u30fc\u8a9e
 languages.ty=\u30bf\u30d2\u30c1\u8a9e
 languages.bai=\u30d0\u30df\u30ec\u30b1\u8a9e\u65cf
-languages.tw=\u30c8\u30a5\u30a4\u8a9e
+languages.tw=\u30c8\u30a6\u30a3\u8a9e
 languages.srr=\u30bb\u30ec\u30eb\u8a9e
 languages.tli=\u30c8\u30ea\u30f3\u30ae\u30c3\u30c8\u8a9e
+languages.tlh=\u30af\u30ea\u30f3\u30b4\u30f3\u8a9e
 languages.tt=\u30bf\u30bf\u30fc\u30eb\u8a9e
 languages.ts=\u30c4\u30a9\u30f3\u30ac\u8a9e
+languages.srn=\u30b9\u30ea\u30ca\u30e0\u8a9e
 languages.bad=\u30d0\u30f3\u30c0\u8a9e
 languages.tr=\u30c8\u30eb\u30b3\u8a9e
 languages.to=\u30c8\u30f3\u30ac\u8a9e
@@ -616,16 +765,17 @@ languages.kru=\u30af\u30eb\u30af\u8a9e
 languages.tg=\u30bf\u30b8\u30af\u8a9e
 languages.byn=\u30d3\u30ea\u30f3\u8a9e
 languages.te=\u30c6\u30eb\u30b0\u8a9e
-languages.csb=\u30ab\u30b7\u30e5\u30fc\u30d6\u8a9e
 languages.kro=\u30af\u30eb\u30fc\u8a9e
+languages.csb=\u30ab\u30b7\u30e5\u30fc\u30d6\u8a9e
 languages.ta=\u30bf\u30df\u30fc\u30eb\u8a9e
+languages.krl=\u30ab\u30ec\u30ea\u30a2\u8a9e
 languages.tkl=\u30c8\u30b1\u30e9\u30a6\u8a9e
 languages.efi=\u30a8\u30d5\u30a3\u30c3\u30af\u8a9e
 languages.sw=\u30b9\u30ef\u30d2\u30ea\u8a9e
 languages.sv=\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3\u8a9e
 languages.su=\u30b9\u30f3\u30c0\u8a9e
 languages.krc=\u30ab\u30e9\u30c1\u30e3\u30a4\u8a9e
-languages.st=\u5357\u30bb\u30bd\u30c8\u8a9e
+languages.st=\u5357\u90e8\u30bd\u30c8\u8a9e
 languages.ss=\u30b7\u30b9\u30ef\u30c6\u30a3\u8a9e
 languages.sr=\u30bb\u30eb\u30d3\u30a2\u8a9e
 languages.sq=\u30a2\u30eb\u30d0\u30cb\u30a2\u8a9e
@@ -636,13 +786,13 @@ languages.afh=\u30a2\u30d5\u30ea\u30d2\u30ea\u8a9e
 languages.sn=\u30b7\u30e7\u30ca\u8a9e
 languages.sm=\u30b5\u30e2\u30a2\u8a9e
 languages.sl=\u30b9\u30ed\u30d9\u30cb\u30a2\u8a9e
-languages.grc=\u53e4\u4ee3\u30ae\u30ea\u30b7\u30e3\u8a9e (1453\u307e\u3067)
+languages.grc=\u53e4\u4ee3\u30ae\u30ea\u30b7\u30e3\u8a9e
 languages.sk=\u30b9\u30ed\u30d0\u30ad\u30a2\u8a9e
 languages.grb=\u30b0\u30ec\u30dc\u8a9e
 languages.si=\u30b7\u30f3\u30cf\u30e9\u8a9e
-languages.sh=\u30bb\u30eb\u30dc\u30fb\u30af\u30ed\u30a2\u30c1\u30a2\u8a9e
-languages.afa=\u30bb\u30e0\u30fb\u30cf\u30e0\u8af8\u8a9e
+languages.sh=\u30bb\u30eb\u30dc\uff1d\u30af\u30ed\u30a2\u30c1\u30a2\u8a9e
 languages.crh=\u30af\u30ea\u30df\u30a2\u30fb\u30bf\u30bf\u30fc\u30eb\u8a9e
+languages.afa=\u30bb\u30e0\u30fb\u30cf\u30e0\u8af8\u8a9e
 languages.sg=\u30b5\u30f3\u30b4\u8a9e
 languages.se=\u5317\u30b5\u30fc\u30df\u8a9e
 languages.sd=\u30b7\u30f3\u30c9\u8a9e
@@ -650,13 +800,16 @@ languages.udm=\u30a6\u30c9\u30e0\u30eb\u30c8\u8a9e
 languages.sc=\u30b5\u30eb\u30c7\u30fc\u30cb\u30e3\u8a9e
 languages.sa=\u30b5\u30f3\u30b9\u30af\u30ea\u30c3\u30c8\u8a9e
 languages.rw=\u30eb\u30ef\u30f3\u30c0\u8a9e
+languages.nwc=\u53e4\u5178\u30cd\u30ef\u30fc\u30eb\u8a9e
 languages.ru=\u30ed\u30b7\u30a2\u8a9e
 languages.mdr=\u30de\u30f3\u30c0\u30eb\u8a9e
 languages.ro=\u30eb\u30fc\u30de\u30cb\u30a2\u8a9e
-languages.rn=\u30eb\u30f3\u30b8\u8a9e
+languages.rn=\u30eb\u30f3\u30c7\u30a3\u8a9e
 languages.rm=\u30ec\u30c8\u30fb\u30ed\u30de\u30f3\u8a9e
+languages.fr_CH=\u30d5\u30e9\u30f3\u30b9\u8a9e\uff08\u30b9\u30a4\u30b9\uff09
 languages.mdf=\u30e2\u30af\u30b7\u30e3\u8a9e
 languages.tiv=\u30c6\u30a3\u30d6\u8a9e
+languages.fr_CA=\u30d5\u30e9\u30f3\u30b9\u8a9e\uff08\u30ab\u30ca\u30c0\uff09
 languages.ady=\u30a2\u30c7\u30a3\u30b2\u8a9e
 languages.zun=\u30ba\u30cb\u8a9e
 languages.kpe=\u30af\u30da\u30ec\u8a9e
@@ -664,25 +817,27 @@ languages.qu=\u30b1\u30c1\u30e5\u30a2\u8a9e
 languages.tig=\u30c6\u30a3\u30b0\u30ec\u8a9e
 languages.son=\u30bd\u30f3\u30ac\u30a4\u8a9e
 languages.cpp=\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e\u304c\u57fa\u76e4\u306e\u6df7\u6210\u8a9e\u30fb\u6df7\u5408\u8a9e
+languages.rup=\u30a2\u30eb\u30fc\u30de\u30cb\u30a2\u8a9e
 languages.sog=\u30bd\u30b0\u30c9\u8a9e
 languages.ada=\u30a2\u30c0\u30f3\u30b0\u30e1\u8a9e
-languages.cpf=\u30d5\u30e9\u30f3\u30b9\u8a9e\u304c\u57fa\u76e4\u306e\u6df7\u6210\u8a9e\u30fb\u6df7\u5408\u8a9e
-languages.hit=\u30d2\u30c3\u30bf\u30a4\u30c8\u8a9e
 languages.kos=\u30b3\u30b7\u30e3\u30a8\u8a9e
+languages.hit=\u30d2\u30c3\u30bf\u30a4\u30c8\u8a9e
+languages.cpf=\u30d5\u30e9\u30f3\u30b9\u8a9e\u304c\u57fa\u76e4\u306e\u6df7\u6210\u8a9e\u30fb\u6df7\u5408\u8a9e
 languages.cpe=\u82f1\u8a9e\u304c\u57fa\u76e4\u306e\u6df7\u6210\u8a9e\u30fb\u6df7\u5408\u8a9e
 languages.him=\u30d2\u30de\u30c1\u30e3\u30eb\u8a9e
-languages.got=\u30b4\u30fc\u30c8\u8a9e
-languages.hil=\u30d2\u30ea\u30ac\u30a4\u30ce\u30f3\u8a9e
 languages.kok=\u30b3\u30f3\u30ab\u30cb\u8a9e
+languages.hil=\u30d2\u30ea\u30ac\u30a4\u30ce\u30f3\u8a9e
+languages.got=\u30b4\u30fc\u30c8\u8a9e
 languages.gor=\u30b4\u30ed\u30f3\u30bf\u30ed\u8a9e
 languages.gon=\u30b4\u30fc\u30f3\u30c7\u30a3\u30fc\u8a9e
 languages.din=\u30c7\u30a3\u30f3\u30ab\u8a9e
 languages.nub=\u30cc\u30d3\u30a2\u8a9e\u65cf
 languages.pt=\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e
-languages.ps=\u30d1\u30b7\u30e5\u30c8\u30fc\u8a9e
+languages.ps=\u30d1\u30b7\u30e5\u30c8\u30a5\u30fc\u8a9e
 languages.fur=\u30d5\u30ea\u30a6\u30ea\u8a9e
 languages.phn=\u30d5\u30a7\u30cb\u30ad\u30a2\u8a9e
-languages.goh=\u53e4\u9ad8\u30c9\u30a4\u30c4\u8a9e (\u7d04750-1050)
+languages.de_CH=\u6b63\u7d71\u30c9\u30a4\u30c4\u8a9e\uff08\u30b9\u30a4\u30b9\uff09
+languages.goh=\u53e4\u9ad8\u30c9\u30a4\u30c4\u8a9e
 languages.snk=\u30bd\u30cb\u30f3\u30b1\u8a9e
 languages.cop=\u30b3\u30d7\u30c8\u8a9e
 languages.yap=\u30e4\u30c3\u30d7\u8a9e
@@ -692,6 +847,7 @@ languages.phi=\u30d5\u30a3\u30ea\u30d4\u30f3\u8af8\u8a9e
 languages.pl=\u30dd\u30fc\u30e9\u30f3\u30c9\u8a9e
 languages.ace=\u30a2\u30c1\u30a7\u30fc\u8a9e
 languages.pi=\u30d1\u30fc\u30ea\u8a9e
+languages.pt_PT=\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e\uff08\u30a4\u30d9\u30ea\u30a2\u534a\u5cf6\uff09
 languages.pa=\u30d1\u30f3\u30b8\u30e3\u30d6\u8a9e
 languages.bug=\u30d6\u30ae\u8a9e
 languages.iba=\u30a4\u30d0\u30f3\u8a9e
@@ -706,59 +862,65 @@ languages.man=\u30de\u30f3\u30c7\u30a3\u30f3\u30b4\u8a9e
 languages.smj=\u30eb\u30ec\u30fb\u30b5\u30fc\u30df\u8a9e
 languages.smi=\u30b5\u30fc\u30df\u8af8\u8a9e
 languages.mak=\u30de\u30ab\u30c3\u30b5\u30eb\u8a9e
-languages.om=\u30ac\u30e9\u8a9e
+languages.om=\u30aa\u30ed\u30e2\u8a9e
 languages.mai=\u30de\u30a4\u30c6\u30a3\u30ea\u30fc\u8a9e
 languages.oj=\u30aa\u30d6\u30b8\u30ef\u8a9e
 languages.mag=\u30de\u30ac\u30d2\u30fc\u8a9e
 languages.mad=\u30de\u30c9\u30a5\u30e9\u8a9e
 languages.sma=\u5357\u30b5\u30fc\u30df\u8a9e
-languages.oc=\u30d7\u30ed\u30f4\u30a1\u30f3\u30b9\u8a9e
-languages.nso=\u5317\u30bb\u30bd\u30c8\u8a9e
+languages.oc=\u30aa\u30c3\u30af\u8a9e
+languages.nso=\u5317\u90e8\u30bd\u30c8\u8a9e
 languages.btk=\u30d0\u30bf\u30af\u8a9e
 languages.myv=\u30a8\u30eb\u30b8\u30e3\u8a9e
+languages.es_ES=\u30b9\u30da\u30a4\u30f3\u8a9e\uff08\u30a4\u30d9\u30ea\u30a2\u534a\u5cf6\uff09
+languages.de_AT=\u30c9\u30a4\u30c4\u8a9e\uff08\u30aa\u30fc\u30b9\u30c8\u30ea\u30a2\uff09
 languages.dgr=\u30c9\u30b0\u30ea\u30d6\u8a9e
 languages.ny=\u30cb\u30e3\u30f3\u30b8\u30e3\u8a9e\u3001\u30c1\u30c1\u30a7\u30ef\u8a9e\u3001\u30c1\u30a7\u30ef\u8a9e
-languages.myn=\u30de\u30e4\u8a9e
+languages.myn=\u30de\u30e4\u8a9e\u65cf
 languages.nv=\u30ca\u30d0\u30db\u8a9e
 languages.kmb=\u30ad\u30f3\u30d6\u30f3\u30c9\u30a5\u8a9e
 languages.nr=\u5357\u30f3\u30c7\u30d9\u30ec\u8a9e
-languages.gmh=\u4e2d\u9ad8\u30c9\u30a4\u30c4\u8a9e (\u7d041050-1500)
+languages.gmh=\u4e2d\u9ad8\u30c9\u30a4\u30c4\u8a9e
 languages.no=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e
-languages.nn=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e (\u30cb\u30e5\u30fc\u30ce\u30eb\u30b9\u30af)
+languages.nn=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e (\u30cb\u30fc\u30ce\u30b7\u30e5\u30af)
 languages.nl=\u30aa\u30e9\u30f3\u30c0\u8a9e
+languages.root=\u30eb\u30fc\u30c8
 languages.ng=\u30f3\u30c9\u30f3\u30ac\u8a9e
 languages.sla=\u30b9\u30e9\u30d6\u8af8\u8a9e
 languages.ne=\u30cd\u30d1\u30fc\u30eb\u8a9e
 languages.nd=\u5317\u30f3\u30c7\u30d9\u30ec\u8a9e
 languages.cmc=\u30c1\u30e3\u30e0\u8a9e\u65cf
 languages.tet=\u30c6\u30c8\u30a5\u30f3\u8a9e
-languages.nb=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e (\u30dc\u30af\u30e2\u30fc\u30eb)
+languages.nb=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e (\u30d6\u30fc\u30af\u30e2\u30fc\u30eb)
 languages.na=\u30ca\u30a6\u30eb\u8a9e
 languages.ter=\u30c6\u30ec\u30fc\u30ce\u8a9e
 languages.tem=\u30c6\u30e0\u30cd\u8a9e
 languages.my=\u30d3\u30eb\u30de\u8a9e
 languages.lez=\u30ec\u30ba\u30ae\u8a9e
 languages.mt=\u30de\u30eb\u30bf\u8a9e
-languages.peo=\u53e4\u4ee3\u30da\u30eb\u30b7\u30a2\u8a9e (\u7d04600-400 B.C.)
+languages.frs=\u6771\u30d5\u30ea\u30b8\u30a2\u8a9e
+languages.peo=\u53e4\u4ee3\u30da\u30eb\u30b7\u30a2\u8a9e
 languages.ms=\u30de\u30ec\u30fc\u8a9e
 languages.mr=\u30de\u30e9\u30fc\u30c6\u30a3\u30fc\u8a9e
-languages.fro=\u53e4\u30d5\u30e9\u30f3\u30b9\u8a9e (842-\u7d041400)
+languages.fro=\u53e4\u30d5\u30e9\u30f3\u30b9\u8a9e
 languages.mo=\u30e2\u30eb\u30c0\u30d3\u30a2\u8a9e
 languages.mn=\u30e2\u30f3\u30b4\u30eb\u8a9e
-languages.frm=\u4e2d\u4e16\u30d5\u30e9\u30f3\u30b9\u8a9e (\u7d041400-1600)
+languages.frm=\u4e2d\u671f\u30d5\u30e9\u30f3\u30b9\u8a9e
 languages.ml=\u30de\u30e9\u30e4\u30fc\u30e9\u30e0\u8a9e
 languages.jrb=\u30e6\u30c0\u30e4\u30fb\u30a2\u30e9\u30d3\u30a2\u8a9e
 languages.mk=\u30de\u30b1\u30c9\u30cb\u30a2\u8a9e
 languages.mi=\u30de\u30aa\u30ea\u8a9e
 languages.mh=\u30de\u30fc\u30b7\u30e3\u30eb\u8a9e
-languages.mg=\u30de\u30e9\u30ac\u30b7\u30fc\u8a9e
+languages.mg=\u30de\u30c0\u30ac\u30b9\u30ab\u30eb\u8a9e
+languages.nqo=\u30f3\u30b3\u8a9e
 languages.mwr=\u30de\u30fc\u30eb\u30ef\u30fc\u30ea\u30fc\u8a9e
 languages.bra=\u30d6\u30e9\u30b8\u8a9e
-languages.lv=\u30e9\u30c8\u30d3\u30a2\u8a9e
+languages.mwl=\u30df\u30e9\u30f3\u30c0\u8a9e
 languages.den=\u30b9\u30ec\u30a4\u30d3\u30fc\u8a9e
+languages.lv=\u30e9\u30c8\u30d3\u30a2\u8a9e
 languages.lu=\u30eb\u30d0\u30fb\u30ab\u30bf\u30f3\u30ac\u8a9e
-languages.lt=\u30ea\u30c8\u30a2\u30cb\u30a2\u8a9e
 languages.del=\u30c7\u30e9\u30a6\u30a7\u30a2\u8a9e
+languages.lt=\u30ea\u30c8\u30a2\u30cb\u30a2\u8a9e
 languages.lo=\u30e9\u30aa\u8a9e
 languages.ln=\u30ea\u30f3\u30ac\u30e9\u8a9e
 languages.li=\u30ea\u30f3\u30d6\u30eb\u30d5\u8a9e
@@ -779,7 +941,8 @@ languages.kr=\u30ab\u30cc\u30ea\u8a9e
 languages.awa=\u30a2\u30ef\u30c7\u30a3\u30fc\u8a9e
 languages.ko=\u97d3\u56fd\u8a9e
 languages.kn=\u30ab\u30f3\u30ca\u30c0\u8a9e
-languages.km=\u30ab\u30f3\u30dc\u30b8\u30a2\u8a9e
+languages.km=\u30af\u30e1\u30fc\u30eb\u8a9e
+languages.en_GB=\u30a4\u30ae\u30ea\u30b9\u82f1\u8a9e
 languages.kl=\u30b0\u30ea\u30fc\u30f3\u30e9\u30f3\u30c9\u8a9e
 languages.kk=\u30ab\u30b6\u30d5\u8a9e
 languages.rom=\u30ed\u30de\u30fc\u30cb\u30fc\u8a9e
@@ -811,38 +974,38 @@ languages.iu=\u30a4\u30cc\u30af\u30a6\u30c6\u30a3\u30c8\u30c3\u30c8\u8a9e
 languages.pap=\u30d1\u30d4\u30a2\u30e1\u30f3\u30c8\u8a9e
 languages.it=\u30a4\u30bf\u30ea\u30a2\u8a9e
 languages.sgn=\u624b\u307e\u306d\u8a00\u8a9e
-languages.kha=\u30ab\u30b7\u8a9e
 languages.is=\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9\u8a9e
+languages.kha=\u30ab\u30b7\u8a9e
 languages.chr=\u30c1\u30a7\u30ed\u30ad\u30fc\u8a9e
 languages.pam=\u30d1\u30f3\u30d1\u30f3\u30ac\u8a9e
 languages.pal=\u30d1\u30d5\u30e9\u30f4\u30a3\u8a9e
 languages.chp=\u30c1\u30da\u30ef\u30a4\u30a2\u30f3\u8a9e
-languages.cho=\u30c1\u30e7\u30af\u30c8\u30fc\u8a9e
 languages.io=\u30a4\u30c9\u8a9e
+languages.cho=\u30c1\u30e7\u30af\u30c8\u30fc\u8a9e
 languages.chn=\u30d3\u30fc\u30c1\u30fb\u30e9\u30fb\u30de\u30fc \u7b49
 languages.chm=\u30de\u30ea\u8a9e
 languages.tyv=\u30c8\u30a5\u30f4\u30a1\u8a9e
 languages.bnt=\u30d0\u30f3\u30c8\u30a5\u8af8\u8a9e
 languages.pag=\u30d1\u30f3\u30ac\u30b7\u30ca\u30f3\u8a9e
-languages.chk=\u30c1\u30e5\u30fc\u30af\u8a9e
 languages.ik=\u30a4\u30cc\u30d4\u30a2\u30c3\u30af\u8a9e
-languages.haw=\u30cf\u30ef\u30a4\u8a9e
+languages.chk=\u30c1\u30e5\u30fc\u30af\u8a9e
 languages.ii=\u56db\u5ddd\u30a4\u8a9e
+languages.haw=\u30cf\u30ef\u30a4\u8a9e
 languages.lam=\u30e9\u30f3\u30d0\u8a9e
-languages.chg=\u30c1\u30e3\u30ac\u30bf\u30a4\u8a9e
 languages.ig=\u30a4\u30dc\u8a9e
-languages.sga=\u53e4\u671f\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e (900\u307e\u3067)
+languages.chg=\u30c1\u30e3\u30ac\u30bf\u30a4\u8a9e
+languages.sga=\u53e4\u671f\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e
 languages.paa=\u30d1\u30d7\u30a2\u8af8\u8a9e
-languages.ie=\u56fd\u969b\u8a9e
+languages.ie=\u30a4\u30f3\u30bf\u30fc\u30ea\u30f3\u30b0\u8a9e
 languages.id=\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2\u8a9e
 languages.lah=\u30e9\u30d5\u30f3\u30c0\u30fc\u8a9e
-languages.chb=\u30c1\u30d6\u30c1\u30e3\u8a9e
 languages.day=\u30c0\u30e4\u30af\u8a9e
-languages.ia=\u56fd\u969b\u8a9e
+languages.chb=\u30c1\u30d6\u30c1\u30e3\u8a9e
+languages.ia=\u30a4\u30f3\u30bf\u30fc\u30ea\u30f3\u30b0\u30a2\u8a9e
 languages.lad=\u30e9\u30b8\u30ce\u8a9e
-languages.dar=\u30c0\u30eb\u30ac\u30f3\u8a9e
-languages.hai=\u30cf\u30a4\u30c0\u8a9e
 languages.hz=\u30d8\u30ec\u30ed\u8a9e
+languages.hai=\u30cf\u30a4\u30c0\u8a9e
+languages.dar=\u30c0\u30eb\u30ac\u30f3\u8a9e
 languages.hy=\u30a2\u30eb\u30e1\u30cb\u30a2\u8a9e
 languages.ath=\u30a2\u30b5\u30d1\u30b9\u30ab\u30f3\u8a9e\u65cf
 languages.hu=\u30cf\u30f3\u30ac\u30ea\u30fc\u8a9e
@@ -854,6 +1017,7 @@ languages.hi=\u30d2\u30f3\u30c7\u30a3\u30fc\u8a9e
 languages.dyu=\u30c7\u30a5\u30a6\u30e9\u8a9e
 languages.he=\u30d8\u30d6\u30e9\u30a4\u8a9e
 languages.ast=\u30a2\u30b9\u30c8\u30a5\u30ea\u30a2\u30b9\u8a9e
+languages.kfo=\u30b3\u30ed\u8a9e
 languages.ha=\u30cf\u30a6\u30b5\u8a9e
 languages.wen=\u30bd\u30eb\u30d3\u30a2\u8a9e\u65cf
 languages.gv=\u30de\u30f3\u5cf6\u8a9e
@@ -861,12 +1025,13 @@ languages.gu=\u30b0\u30b8\u30e3\u30e9\u30fc\u30c8\u8a9e
 languages.sem=\u30bb\u30e0\u8af8\u8a9e
 languages.sel=\u30bb\u30ea\u30af\u30d7\u8a9e
 languages.iro=\u30a4\u30ed\u30b3\u30a4\u8a9e\u65cf
-languages.gn=\u30b0\u30ef\u30e9\u30cb\u8a9e
+languages.gn=\u30b0\u30a2\u30e9\u30cb\u30fc\u8a9e
 languages.gl=\u30ac\u30ea\u30b7\u30a2\u8a9e
+languages.en_CA=\u30ab\u30ca\u30c0\u82f1\u8a9e
 languages.arw=\u30a2\u30e9\u30ef\u30af\u8a9e
-languages.gd=\u30b9\u30b3\u30c3\u30c8\u30e9\u30f3\u30c9\u30fb\u30b2\u30fc\u30eb\u8a9e
-languages.art=\u4eba\u5de5\u8af8\u8a9e
 languages.gez=\u30b2\u30a8\u30ba\u8a9e
+languages.art=\u4eba\u5de5\u8af8\u8a9e
+languages.gd=\u30b9\u30b3\u30c3\u30c8\u30e9\u30f3\u30c9\u30fb\u30b2\u30fc\u30eb\u8a9e
 languages.ira=\u30a4\u30e9\u30f3\u8a9e
 languages.ga=\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e
 languages.arp=\u30a2\u30e9\u30d1\u30db\u30fc\u8a9e
@@ -875,8 +1040,8 @@ languages.fy=\u30d5\u30ea\u30b8\u30a2\u8a9e
 languages.bla=\u30b7\u30af\u30b7\u30ab\u8a9e
 languages.gem=\u30b2\u30eb\u30de\u30f3\u8af8\u8a9e
 languages.ypk=\u30e6\u30d4\u30c3\u30af\u8a9e\u65cf
-languages.fr=\u30d5\u30e9\u30f3\u30b9\u8a9e
 languages.arc=\u30a2\u30e9\u30e0\u8a9e
+languages.fr=\u30d5\u30e9\u30f3\u30b9\u8a9e
 languages.fo=\u30d5\u30a7\u30ed\u30fc\u8a9e
 languages.cel=\u30b1\u30eb\u30c8\u8af8\u8a9e
 languages.fj=\u30d5\u30a3\u30b8\u30fc\u8a9e
@@ -885,9 +1050,12 @@ languages.ff=\u30d5\u30e9\u30cb\u8a9e
 languages.tvl=\u30c4\u30d0\u30eb\u8a9e
 languages.ceb=\u30bb\u30d6\u30a2\u30ce\u8a9e
 languages.fa=\u30da\u30eb\u30b7\u30a2\u8a9e
+languages.zh_Hans=\u7c21\u4f53\u4e2d\u56fd\u8a9e
+languages.zh_Hant=\u7e41\u4f53\u4e2d\u56fd\u8a9e
 languages.eu=\u30d0\u30b9\u30af\u8a9e
 languages.sco=\u30b9\u30b3\u30c3\u30c8\u30e9\u30f3\u30c9\u8a9e
 languages.et=\u30a8\u30b9\u30c8\u30cb\u30a2\u8a9e
+languages.scn=\u30b7\u30c1\u30ea\u30a2\u8a9e
 languages.es=\u30b9\u30da\u30a4\u30f3\u8a9e
 languages.eo=\u30a8\u30b9\u30da\u30e9\u30f3\u30c8\u8a9e
 languages.en=\u82f1\u8a9e
@@ -897,19 +1065,24 @@ languages.niu=\u30cb\u30a6\u30fc\u30a8\u30a4\u8a9e
 languages.tup=\u30c8\u30a5\u30d4\u8a9e\u65cf
 languages.ee=\u30a8\u30a6\u30a7\u8a9e
 languages.tum=\u30c8\u30a5\u30f3\u30d6\u30ab\u8a9e
+languages.nl_BE=\u30d5\u30ec\u30df\u30c3\u30b7\u30e5\u8a9e
+languages.es_419=\u30b9\u30da\u30a4\u30f3\u8a9e\uff08\u30e9\u30c6\u30f3\u30a2\u30e1\u30ea\u30ab\uff09
 languages.mos=\u30e2\u30b7\u8a9e
-languages.dz=\u30d6\u30fc\u30bf\u30f3\u8a9e
+languages.dz=\u30be\u30f3\u30ab\u8a9e
+languages.kcg=\u30ab\u30bf\u30d6\u8a9e
 languages.nic=\u30cb\u30b8\u30a7\u30fc\u30eb\u30fb\u30b3\u30eb\u30c9\u30d5\u30a1\u30f3\u8af8\u8a9e
-languages.dv=\u30c7\u30a3\u30f4\u30a7\u30d2\u8a9e
-languages.fiu=\u30d5\u30a3\u30f3\u30fb\u30a6\u30b4\u30eb\u8af8\u8a9e
 languages.lus=\u30eb\u30b7\u30e3\u30a4\u8a9e
+languages.fiu=\u30d5\u30a3\u30f3\u30fb\u30a6\u30b4\u30eb\u8af8\u8a9e
+languages.dv=\u30c7\u30a3\u30d9\u30d2\u8a9e
 languages.nia=\u30cb\u30a2\u30b9\u8a9e
 languages.moh=\u30e2\u30fc\u30db\u30fc\u30af\u8a9e
 languages.luo=\u30eb\u30aa\u8a9e
 languages.lun=\u30eb\u30f3\u30c0\u8a9e
 languages.apa=\u30a2\u30d1\u30c3\u30c1\u8a9e\u65cf
+languages.fil=\u30d5\u30a3\u30ea\u30d4\u30ce\u8a9e
 languages.lui=\u30eb\u30a4\u30bb\u30fc\u30cb\u30e7\u8a9e
 languages.hup=\u30a2\u30bf\u30d1\u30b9\u30ab\u8a9e
+languages.cch=\u30c1\u30e3\u30ef\u30a4\u8a9e
 languages.bin=\u30d3\u30cb\u8a9e
 languages.de=\u30c9\u30a4\u30c4\u8a9e
 languages.lua=\u30eb\u30d0\u30fb\u30eb\u30eb\u30a2\u8a9e
@@ -925,8 +1098,8 @@ languages.wak=\u30ef\u30ab\u30b7\u8a9e\u65cf
 languages.sat=\u30b5\u30f3\u30bf\u30fc\u30ea\u30fc\u8a9e
 languages.cy=\u30a6\u30a7\u30fc\u30eb\u30ba\u8a9e
 languages.sas=\u30b5\u30b5\u30af\u8a9e
-languages.cv=\u30c1\u30e5\u30f4\u30a1\u30b7\u30e5\u8a9e
 languages.kbd=\u30ab\u30d0\u30eb\u30c9\u8a9e
+languages.cv=\u30c1\u30e5\u30f4\u30a1\u30b7\u30e5\u8a9e
 languages.cu=\u6559\u4f1a\u30b9\u30e9\u30d6\u8a9e
 languages.mni=\u30de\u30cb\u30d7\u30eb\u8a9e
 languages.cs=\u30c1\u30a7\u30b3\u8a9e
@@ -938,54 +1111,57 @@ languages.co=\u30b3\u30eb\u30b7\u30ab\u8a9e
 languages.sai=\u5357\u7c73\u30a4\u30f3\u30c7\u30a3\u30a2\u30f3\u8af8\u8a9e
 languages.mnc=\u6e80\u5dde\u8a9e
 languages.sah=\u30e4\u30af\u30fc\u30c8\u8a9e
-languages.gba=\u30d0\u30e4\u8a9e
-languages.inh=\u30a4\u30f3\u30b0\u30b7\u8a9e
 languages.kaw=\u30ab\u30a6\u30a3\u8a9e
+languages.inh=\u30a4\u30f3\u30b0\u30b7\u8a9e
+languages.gba=\u30d0\u30e4\u8a9e
 languages.sad=\u30b5\u30f3\u30c0\u30a6\u30a7\u8a9e
 languages.ch=\u30c1\u30e3\u30e2\u30ed\u8a9e
-languages.bho=\u30dc\u30fc\u30b8\u30d7\u30ea\u30fc\u8a9e
 languages.ine=\u5370\u6b27\u8af8\u8a9e
+languages.bho=\u30dc\u30fc\u30b8\u30d7\u30ea\u30fc\u8a9e
 languages.enm=\u4e2d\u4e16\u82f1\u8a9e
-languages.ce=\u30c1\u30a7\u30c1\u30a7\u30f3\u8a9e
-languages.inc=\u30a4\u30f3\u30c9\u8af8\u8a9e
 languages.kar=\u30ab\u30ec\u30f3\u8a9e
+languages.inc=\u30a4\u30f3\u30c9\u8af8\u8a9e
+languages.ce=\u30c1\u30a7\u30c1\u30a7\u30f3\u8a9e
 languages.gay=\u30ac\u30e8\u8a9e
 languages.ca=\u30ab\u30bf\u30ed\u30cb\u30a2\u8a9e
 languages.umb=\u30a6\u30f3\u30d6\u30f3\u30c9\u30a5\u8a9e
 languages.syr=\u30b7\u30ea\u30a2\u8a9e
 languages.kam=\u30ab\u30f3\u30d0\u8a9e
+languages.anp=\u30a2\u30f3\u30ae\u30ab\u8a9e
 languages.tsi=\u30c1\u30e0\u30b7\u30e5\u8a9e
-languages.ang=\u53e4\u671f\u82f1\u8a9e
-languages.cau=\u30b3\u30fc\u30ab\u30b5\u30b9\u8af8\u8a9e
+languages.kaj=\u30ab\u30b8\u30a7\u8a9e
+languages.ang=\u53e4\u4ee3\u82f1\u8a9e
 languages.kac=\u30ab\u30c1\u30f3\u8a9e
+languages.cau=\u30b3\u30fc\u30ab\u30b5\u30b9\u8af8\u8a9e
 languages.kab=\u30ab\u30d3\u30eb\u8a9e
-languages.bs=\u30dc\u30b9\u30cb\u30a2\u8a9e
 languages.kaa=\u30ab\u30e9\u30fb\u30ab\u30eb\u30d1\u30af\u8a9e
-languages.br=\u30d6\u30eb\u30c8\u30f3\u8a9e
+languages.bs=\u30dc\u30b9\u30cb\u30a2\u8a9e
 languages.car=\u30ab\u30ea\u30d6\u8a9e
+languages.br=\u30d6\u30eb\u30c8\u30f3\u8a9e
 languages.bo=\u30c1\u30d9\u30c3\u30c8\u8a9e
 languages.bn=\u30d9\u30f3\u30ac\u30eb\u8a9e
 languages.bm=\u30d0\u30f3\u30d0\u30e9\u8a9e
 languages.gaa=\u30ac\u8a9e
-languages.bi=\u30d3\u30b9\u30e9\u30de\u8a9e
 languages.cai=\u4e2d\u7c73\u30a4\u30f3\u30c7\u30a3\u30a2\u30f3\u8af8\u8a9e
+languages.bi=\u30d3\u30b9\u30e9\u30de\u8a9e
 languages.bh=\u30d3\u30cf\u30fc\u30eb\u8a9e
 languages.bg=\u30d6\u30eb\u30ac\u30ea\u30a2\u8a9e
 languages.be=\u30d9\u30e9\u30eb\u30fc\u30b7\u8a9e
+languages.pt_BR=\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e (\u30d6\u30e9\u30b8\u30eb)
 languages.cad=\u30ab\u30c9\u30fc\u8a9e
 languages.ba=\u30d0\u30b7\u30ad\u30fc\u30eb\u8a9e
 languages.zu=\u30ba\u30fc\u30eb\u30fc\u8a9e
 languages.zen=\u30bc\u30ca\u30ac\u8a9e
-languages.pro=\u53e4\u671f\u30d7\u30ed\u30d0\u30f3\u30b9\u8a9e (1500\u307e\u3067)
+languages.pro=\u53e4\u671f\u30d7\u30ed\u30d0\u30f3\u30b9\u8a9e
 languages.hsb=\u4e0a\u30bd\u30eb\u30d3\u30a2\u8a9e
 languages.az=\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3\u8a9e
 languages.ay=\u30a2\u30a4\u30de\u30e9\u8a9e
 languages.av=\u30a2\u30f4\u30a1\u30eb\u8a9e
 languages.as=\u30a2\u30c3\u30b5\u30e0\u8a9e
-languages.ar=\u30a2\u30e9\u30d3\u30a2\u8a9e
 languages.dsb=\u4f4e\u30bd\u30eb\u30d3\u30a2\u8a9e
-languages.elx=\u30a8\u30e9\u30e0\u8a9e
+languages.ar=\u30a2\u30e9\u30d3\u30a2\u8a9e
 languages.ilo=\u30a4\u30ed\u30ab\u30ce\u8a9e
+languages.elx=\u30a8\u30e9\u30e0\u8a9e
 languages.zh=\u4e2d\u56fd\u8a9e
 languages.an=\u30a2\u30e9\u30b4\u30f3\u8a9e
 languages.pra=\u30d7\u30e9\u30fc\u30af\u30ea\u30c3\u30c8\u8a9e\u65cf
@@ -993,10 +1169,12 @@ languages.am=\u30a2\u30e0\u30cf\u30e9\u8a9e
 languages.new=\u30cd\u30ef\u30fc\u30eb\u8a9e
 languages.ak=\u30a2\u30ab\u30f3\u8a9e
 languages.za=\u30c1\u30ef\u30f3\u8a9e
+languages.en_US=\u30a2\u30e1\u30ea\u30ab\u82f1\u8a9e
 languages.af=\u30a2\u30d5\u30ea\u30ab\u30fc\u30f3\u30b9\u8a9e
 languages.ae=\u30a2\u30f4\u30a7\u30b9\u30bf\u8a9e
+languages.alt=\u5357\u30a2\u30eb\u30bf\u30a4\u8a9e
 languages.ab=\u30a2\u30d6\u30cf\u30ba\u8a9e
-languages.aa=\u30a2\u30d5\u30a1\u30fc\u30eb\u8a9e
+languages.aa=\u30a2\u30d5\u30a1\u30eb\u8a9e
 languages.yo=\u30e8\u30eb\u30d0\u8a9e
 languages.alg=\u30a2\u30eb\u30b4\u30f3\u30ad\u30a2\u30f3\u8a9e\u65cf
 languages.ale=\u30a2\u30ec\u30a6\u30c8\u8a9e
@@ -1009,4 +1187,20 @@ languages.bem=\u30d9\u30f3\u30d0\u8a9e
 languages.bej=\u30d9\u30b8\u30e3\u8a9e
 languages.tpi=\u30c8\u30af\u30fb\u30d4\u30b7\u30f3\u8a9e
 variants.POSIX=\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf
+variants.AREVMDA=\u897f\u30a2\u30eb\u30e1\u30cb\u30a2\u6587\u8a9e
+variants.1996=\u30c9\u30a4\u30c4\u8a9e\u6b63\u66f8\u6cd5\uff081996\uff09
+variants.NEDIS=\u30ca\u30c6\u30a3\u30be\u30fc\u30cd\u65b9\u8a00
+variants.1901=\u4f1d\u7d71\u7684\u30c9\u30a4\u30c4\u8a9e\u6b63\u66f8\u6cd5\uff081901\uff09
+variants.FONUPA=\u30a6\u30e9\u30eb\u97f3\u58f0\u8a18\u53f7
+variants.1694ACAD=\u521d\u671f\u73fe\u4ee3\u30d5\u30e9\u30f3\u30b9\u8a9e
 variants.REVISED=\u6539\u8a02\u7248
+variants.FONIPA=\u56fd\u969b\u97f3\u58f0\u8a18\u53f7
+variants.SCOUSE=\u30ea\u30d0\u30d7\u30fc\u30eb\u65b9\u8a00
+variants.SAAHO=\u30b5\u30db\u8a9e
+variants.MONOTON=\u30e2\u30ce\u30c8\u30cb\u30c3\u30af
+variants.ROZAJ=\u30ec\u30b7\u30a2\u65b9\u8a00
+variants.POLYTON=\u30dd\u30ea\u30c8\u30cb\u30c3\u30af
+variants.AREVELA=\u6771\u30a2\u30eb\u30e1\u30cb\u30a2\u6587\u8a9e
+variants.VALENCIA=\u30d0\u30ec\u30f3\u30b7\u30a2\u65b9\u8a00
+variants.BOONT=\u30d6\u30fc\u30f3\u30c8\u30ea\u30f3\u30b0
+variants.1606NICT=\u5f8c\u671f\u4e2d\u4e16\u30d5\u30e9\u30f3\u30b9\u8a9e\uff08\u301c1606\uff09
index c0562be440846b7e1ae176ca51bf500230b1bcc7..61088ed8ddb689b36a9381e1bb09c19101c304f1 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
-groupingSeparator=\u00a0
-currenciesSymbol.GEL=Lari
+groupingSeparator=.
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.YDD=\u10d8\u10d4\u10db\u10d4\u10dc\u10d8\u10e1 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.KES=\u10d9\u10d4\u10dc\u10d8\u10e3\u10e0\u10d8 \u10e8\u10d8\u10da\u10d8\u10dc\u10d2\u10d8
+currenciesDisplayName.TWD=\u10e2\u10d0\u10d8\u10d5\u10d0\u10dc\u10e3\u10e0\u10d8 \u10d0\u10ee\u10d0\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.LKR=\u10e8\u10e0\u10d8 \u10da\u10d0\u10dc\u10d9\u10d8\u10e1 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.BYB=\u10d0\u10ee\u10d0\u10da\u10d8 \u10d1\u10d4\u10da\u10d0\u10e0\u10e3\u10e1\u10d8\u10e3\u10da\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8 (1994-1999)
+currenciesDisplayName.TJS=\u10e2\u10d0\u10ef\u10d8\u10d9\u10e3\u10e0\u10d8 \u10e1\u10dd\u10db\u10dd\u10dc\u10d8
+currenciesDisplayName.RWF=\u10e0\u10e3\u10d0\u10dc\u10d3\u10e3\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.TJR=\u10e2\u10d0\u10ef\u10d8\u10d9\u10e3\u10e0\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8
+currenciesDisplayName.SDP=\u10e1\u10e3\u10d3\u10d0\u10dc\u10d8\u10e1 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.GRD=\u10d1\u10d4\u10e0\u10eb\u10dc\u10e3\u10da\u10d8 \u10d3\u10e0\u10d0\u10f0\u10db\u10d0
+currenciesDisplayName.AFN=\u10d0\u10d5\u10e6\u10d0\u10dc\u10d8
+currenciesDisplayName.IEP=\u10d8\u10e0\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.ARS=\u10d0\u10e0\u10d2\u10d4\u10dc\u10e2\u10d8\u10dc\u10e3\u10da\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.ARP=\u10d0\u10e0\u10d2\u10d4\u10dc\u10e2\u10d8\u10dc\u10e3\u10da\u10d8 \u10de\u10d4\u10e1\u10dd (1983-1985)
+currenciesDisplayName.SDD=\u10e1\u10e3\u10d3\u10d0\u10dc\u10d8\u10e1 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.GEL=\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8 \u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.GEK=\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8 \u10d9\u10e3\u10de\u10dd\u10dc\u10d8 \u10da\u10d0\u10e0\u10d8\u10d7
+currenciesDisplayName.AFA=\u10d0\u10d5\u10e6\u10d0\u10dc\u10d8 (1927-2002)
+currenciesDisplayName.CRC=\u10d9\u10dd\u10e1\u10e2\u10d0 \u10e0\u10d8\u10d9\u10e3\u10da\u10d8 \u10d9\u10dd\u10da\u10dd\u10dc\u10d8
+currenciesDisplayName.EEK=\u10d4\u10e1\u10e2\u10dd\u10dc\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10dc\u10d0
+currenciesDisplayName.MDL=\u10db\u10dd\u10da\u10d3\u10dd\u10d5\u10e3\u10e0\u10d8 \u10da\u10d4\u10e3
+currenciesDisplayName.HKD=\u10f0\u10dd\u10dc\u10d2 \u10d9\u10dd\u10dc\u10d2\u10d8\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.ARA=\u10d0\u10e0\u10d2\u10d4\u10dc\u10e2\u10d8\u10dc\u10e3\u10da\u10d8 \u10d0\u10e3\u10e1\u10e2\u10e0\u10d0\u10da\u10d8
+currenciesDisplayName.SCR=\u10e1\u10d4\u10d8\u10e8\u10d4\u10da\u10d8\u10e1 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.VUV=\u10d5\u10d0\u10dc\u10d0\u10e2\u10e3\u10e1 \u10d5\u10d0\u10e2\u10e3
+currenciesDisplayName.KPW=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7 \u10d9\u10dd\u10e0\u10d4\u10e3\u10da\u10d8 \u10d5\u10dd\u10dc\u10d8
+currenciesDisplayName.DKK=\u10d3\u10d0\u10dc\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.IDR=\u10d8\u10dc\u10d3\u10dd\u10dc\u10d4\u10d6\u10d8\u10e3\u10e0\u10d8 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.LVR=\u10da\u10d0\u10e2\u10d5\u10d8\u10e3\u10e0\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8
+currenciesDisplayName.AED=\u10d2\u10d0\u10d4\u10e0\u10d7\u10d8\u10d0\u10dc\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d1\u10e3\u10da\u10d8 \u10e1\u10d0\u10d4\u10db\u10d8\u10e0\u10dd\u10d4\u10d1\u10d8\u10e1 \u10d3\u10d8\u10e0\u10f0\u10d4\u10db\u10d8
+currenciesDisplayName.LVL=\u10da\u10d0\u10e2\u10d5\u10d8\u10e3\u10e0\u10d8 \u10da\u10d0\u10e2\u10d8
+currenciesDisplayName.BWP=\u10d1\u10dd\u10e2\u10e1\u10d5\u10d0\u10dc\u10d8\u10e3\u10e0\u10d8 \u10de\u10e3\u10da\u10d0
+currenciesDisplayName.RUR=\u10e0\u10e3\u10e1\u10e3\u10da\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8 (1991-1998)
+currenciesDisplayName.NIO=\u10dc\u10d8\u10d9\u10d0\u10e0\u10d0\u10d2\u10e3\u10d0\u10e1 \u10dd\u10e5\u10e0\u10dd\u10e1 \u10d9\u10dd\u10e0\u10d3\u10dd\u10d1\u10d0
+currenciesDisplayName.FJD=\u10e4\u10d8\u10ef\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.ADP=\u10d0\u10dc\u10d3\u10dd\u10e0\u10e3\u10da\u10d8 \u10de\u10d4\u10e1\u10d4\u10e2\u10d0
+currenciesDisplayName.RUB=\u10e0\u10e3\u10e1\u10e3\u10da\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8
+currenciesDisplayName.NIC=\u10dc\u10d8\u10d9\u10d0\u10e0\u10d0\u10d2\u10e3\u10d0\u10e1 \u10d9\u10dd\u10e0\u10d3\u10dd\u10d1\u10d0
+currenciesDisplayName.DJF=\u10ef\u10d8\u10d1\u10e3\u10e2\u10d8\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.UZS=\u10e3\u10d6\u10d1\u10d4\u10d9\u10e3\u10e0\u10d8 \u10e1\u10e3\u10db\u10d8
+currenciesDisplayName.LUL=\u10da\u10e3\u10e5\u10e1\u10d4\u10db\u10d1\u10e3\u10e0\u10d2\u10d8\u10e1 \u10e4\u10d8\u10dc\u10d0\u10dc\u10e1\u10e3\u10e0\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.PHP=\u10e4\u10d8\u10da\u10d8\u10de\u10d8\u10dc\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.LUF=\u10da\u10e3\u10e5\u10e1\u10d4\u10db\u10d1\u10e3\u10e0\u10d2\u10d8\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.RHD=\u10e0\u10dd\u10d3\u10d4\u10d6\u10d8\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.LUC=\u10da\u10e3\u10e5\u10e1\u10d4\u10db\u10d1\u10e3\u10e0\u10d2\u10d8\u10e1 \u10d9\u10dd\u10dc\u10d5\u10d4\u10e0\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0\u10d3\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.FIM=\u10e4\u10d8\u10dc\u10e3\u10e0\u10d8 \u10db\u10d0\u10e0\u10d9\u10d0
+currenciesDisplayName.TTD=\u10e2\u10e0\u10d8\u10dc\u10d8\u10d3\u10d0\u10d3 \u10d3\u10d0 \u10e2\u10dd\u10d1\u10d0\u10d2\u10dd\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.MNT=\u10db\u10dd\u10dc\u10e6\u10dd\u10da\u10e3\u10e0\u10d8 \u10e2\u10e3\u10d2\u10e0\u10d8\u10d9\u10d8
+currenciesDisplayName.UAK=\u10e3\u10d9\u10e0\u10d0\u10d8\u10dc\u10e3\u10da\u10d8 \u10d9\u10d0\u10e0\u10d1\u10dd\u10d5\u10d0\u10dc\u10d4\u10ea\u10d8
+currenciesDisplayName.UAH=\u10e3\u10d9\u10e0\u10d0\u10d8\u10dc\u10e3\u10da\u10d8 \u10d2\u10e0\u10d8\u10d5\u10dc\u10d0
+currenciesDisplayName.HUF=\u10e3\u10dc\u10d2\u10e0\u10e3\u10da\u10d8 \u10e4\u10dd\u10e0\u10d8\u10dc\u10e2\u10d8
+currenciesDisplayName.QAR=\u10d9\u10d0\u10e2\u10d0\u10e0\u10d8\u10e1 \u10e0\u10d8\u10d0\u10da\u10d8
+currenciesDisplayName.LTT=\u10da\u10d8\u10e2\u10d5\u10e3\u10e0\u10d8 \u10e2\u10d0\u10da\u10dd\u10dc\u10d8
+currenciesDisplayName.PTE=\u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8 \u10d4\u10e1\u10d9\u10e3\u10d3\u10dd
+currenciesDisplayName.UYU=\u10e3\u10e0\u10e3\u10d2\u10d5\u10d0\u10d8\u10e1 \u10de\u10d4\u10e1\u10dd \u10e3\u10e0\u10e3\u10d2\u10d5\u10d0\u10d8\u10dd
+currenciesDisplayName.AOR=\u10d0\u10dc\u10d2\u10dd\u10da\u10e3\u10e0\u10d8 \u10db\u10d8\u10e2\u10dd\u10da\u10d4\u10d1\u10e3\u10da\u10d8 \u10d9\u10d5\u10d0\u10dc\u10d6\u10d0 (1995-1999)
+currenciesDisplayName.GBP=\u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0 \u10e1\u10e2\u10d4\u10e0\u10da\u10d8\u10dc\u10d2\u10d8
+currenciesDisplayName.ZRZ=\u10d6\u10d0\u10d8\u10e0\u10d8\u10e1 \u10d6\u10d0\u10d8\u10e0\u10d8
+currenciesDisplayName.INR=\u10d8\u10dc\u10d3\u10e3\u10e0\u10d8 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.BIF=\u10d1\u10e3\u10e0\u10e3\u10dc\u10d3\u10d8\u10e3\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.MZN=\u10db\u10dd\u10d6\u10d0\u10db\u10d1\u10d8\u10d9\u10e3\u10e0\u10d8 \u10db\u10d4\u10e2\u10d8\u10d9\u10d0\u10da\u10d8
+currenciesDisplayName.LTL=\u10da\u10d8\u10e2\u10d5\u10e3\u10e0\u10d8 \u10da\u10d8\u10e2\u10d0
+currenciesDisplayName.AON=\u10d0\u10dc\u10d2\u10dd\u10da\u10e3\u10e0\u10d8 \u10d0\u10ee\u10d0\u10da\u10d8 \u10d9\u10d5\u10d0\u10dc\u10d6\u10d0 (1990-2000)
+currenciesDisplayName.UYP=\u10e3\u10e0\u10e3\u10d2\u10d5\u10d0\u10d8\u10e1 \u10de\u10d4\u10e1\u10dd (1975-1993)
+currenciesDisplayName.MZM=\u10eb\u10d5\u10d4\u10da\u10d8 \u10db\u10dd\u10d6\u10d0\u10db\u10d1\u10d8\u10d9\u10e3\u10e0\u10d8 \u10db\u10d4\u10e2\u10d8\u10d9\u10d0\u10da\u10d8
+currenciesDisplayName.KZT=\u10e7\u10d0\u10d6\u10d0\u10ee\u10e3\u10e0\u10d8 \u10e2\u10d4\u10dc\u10d2\u10d4
+currenciesDisplayName.AOK=\u10d0\u10dc\u10d2\u10dd\u10da\u10e3\u10e0\u10d8 \u10d9\u10d5\u10d0\u10dc\u10d6\u10d0 (1977-1990)
+currenciesDisplayName.XFO=\u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8 \u10dd\u10e5\u10e0\u10dd\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.SYP=\u10e1\u10d8\u10e0\u10d8\u10e3\u10da\u10d8 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.OMR=\u10dd\u10db\u10d0\u10dc\u10d8\u10e1 \u10e0\u10d4\u10d0\u10da\u10d8
+currenciesDisplayName.MZE=\u10db\u10dd\u10d6\u10d0\u10db\u10d1\u10d8\u10d9\u10e3\u10e0\u10d8 \u10d4\u10e1\u10d9\u10e3\u10d3\u10dd
+currenciesDisplayName.ZRN=\u10d6\u10d0\u10d8\u10e0\u10d8\u10e1 \u10d0\u10ee\u10d0\u10da\u10d8 \u10d6\u10d0\u10d8\u10e0\u10d8
+currenciesDisplayName.NGN=\u10dc\u10d8\u10d2\u10d4\u10e0\u10d8\u10e3\u10da\u10d8 \u10dc\u10d0\u10d8\u10e0\u10d0
+currenciesDisplayName.CNY=\u10e9\u10d8\u10dc\u10e3\u10e0\u10d8 \u10e3\u10d0\u10dc\u10d8
+currenciesDisplayName.AOA=\u10d0\u10dc\u10d2\u10dd\u10da\u10e3\u10e0\u10d8 \u10d9\u10d5\u10d0\u10dc\u10d6\u10d0
+currenciesDisplayName.MAF=\u10db\u10d0\u10e0\u10dd\u10d9\u10dd\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.MAD=\u10db\u10d0\u10e0\u10dd\u10d9\u10dd\u10e1 \u10d3\u10d8\u10e0\u10f0\u10d0\u10db\u10d8
+currenciesDisplayName.TRY=\u10d0\u10ee\u10d0\u10da\u10d8 \u10d7\u10e3\u10e0\u10e5\u10e3\u10da\u10d8 \u10da\u10d8\u10e0\u10d0
+currenciesDisplayName.MMK=\u10db\u10d8\u10d0\u10dc\u10db\u10d0\u10e0\u10d8\u10e1 \u10d9\u10d8\u10d0\u10e2\u10d8
+currenciesDisplayName.MYR=\u10db\u10d0\u10da\u10d0\u10d8\u10d6\u10d8\u10e3\u10e0\u10d8 \u10e0\u10d8\u10dc\u10d2\u10d8\u10e2\u10d8
+currenciesDisplayName.LSM=\u10db\u10d0\u10da\u10dd\u10e2\u10d8
+currenciesDisplayName.XEU=\u10d4\u10d5\u10e0\u10dd\u10de\u10e3\u10da\u10d8 \u10e1\u10d0\u10d5\u10d0\u10da\u10e3\u10e2\u10dd \u10d4\u10e0\u10d7\u10d4\u10e3\u10da\u10d8
+currenciesDisplayName.SLL=\u10e1\u10d8\u10d4\u10e0\u10d0 \u10da\u10d4\u10dd\u10dc\u10d4\u10e1 \u10da\u10d4\u10dd\u10dc\u10d4
+currenciesDisplayName.BHD=\u10d1\u10d0\u10f0\u10e0\u10d4\u10d8\u10dc\u10e3\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.TRL=\u10d7\u10e3\u10e0\u10e5\u10e3\u10da\u10d8 \u10da\u10d8\u10e0\u10d0
+currenciesDisplayName.CZK=\u10e9\u10d4\u10ee\u10e3\u10e0\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.ANG=\u10dc\u10d8\u10d3\u10e0\u10d4\u10da\u10d0\u10dc\u10d3\u10d4\u10d1\u10d8\u10e1 \u10d0\u10dc\u10e2\u10d8\u10da\u10d8\u10d8\u10e1 \u10d2\u10e3\u10da\u10d3\u10d4\u10dc\u10d8
+currenciesDisplayName.AZN=\u10d0\u10d6\u10d4\u10e0\u10d1\u10d0\u10d8\u10ef\u10d0\u10dc\u10e3\u10da\u10d8 \u10db\u10d0\u10dc\u10d0\u10d7\u10d8
+currenciesDisplayName.AZM=\u10d0\u10d6\u10d4\u10e0\u10d1\u10d0\u10d8\u10ef\u10d0\u10dc\u10e3\u10da\u10d8 \u10db\u10d0\u10dc\u10d0\u10d7\u10d8 (1993-2006)
+currenciesDisplayName.KYD=\u10d9\u10d0\u10d8\u10db\u10d0\u10dc\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.BGN=\u10d1\u10e3\u10da\u10d2\u10d0\u10e0\u10e3\u10da\u10d8 \u10d0\u10ee\u10d0\u10da\u10d8 \u10da\u10d4\u10d5\u10d8
+currenciesDisplayName.CAD=\u10d9\u10d0\u10dc\u10d0\u10d3\u10e3\u10e0\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.BGL=\u10d1\u10e3\u10da\u10d2\u10d0\u10e0\u10e3\u10da\u10d8 \u10db\u10e7\u10d0\u10e0\u10d8 \u10da\u10d4\u10d5\u10d8
+currenciesDisplayName.VEB=\u10d5\u10d4\u10dc\u10d4\u10e1\u10e3\u10d4\u10da\u10d8\u10e1 \u10d1\u10dd\u10da\u10d8\u10d5\u10d0\u10e0\u10d8
+currenciesDisplayName.MLF=\u10db\u10d0\u10da\u10d8\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.MXP=\u10db\u10d4\u10e5\u10e1\u10d8\u10d9\u10e3\u10e0\u10d8 \u10d5\u10d4\u10e0\u10ea\u10ee\u10da\u10d8\u10e1 \u10de\u10d4\u10e1\u10dd (1861-1992)
+currenciesDisplayName.PES=\u10de\u10d4\u10e0\u10e3\u10e1 \u10e1\u10dd\u10da\u10d8
+currenciesDisplayName.MXN=\u10db\u10d4\u10e5\u10e1\u10d8\u10d9\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.CYP=\u10d9\u10d5\u10d8\u10de\u10e0\u10dd\u10e1\u10d8\u10e1 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.PEN=\u10de\u10d4\u10e0\u10e3\u10e1 \u10d0\u10ee\u10d0\u10da\u10d8 \u10e1\u10dd\u10da\u10d8
+currenciesDisplayName.LRD=\u10da\u10d8\u10d1\u10d4\u10e0\u10d8\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.PEI=\u10de\u10d4\u10e0\u10e3\u10e1 \u10d8\u10dc\u10e2\u10d8
+currenciesDisplayName.AMD=\u10e1\u10dd\u10db\u10ee\u10e3\u10e0\u10d8 \u10d3\u10e0\u10d0\u10db\u10d8
+currenciesDisplayName.BSD=\u10d1\u10d0\u10f0\u10d0\u10db\u10e3\u10e0\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.HRK=\u10ee\u10dd\u10e0\u10d5\u10d0\u10e2\u10d8\u10e3\u10da\u10d8 \u10d9\u10e3\u10dc\u10d0
+currenciesDisplayName.HRD=\u10ee\u10dd\u10e0\u10d5\u10d0\u10e2\u10d8\u10e3\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.FRF=\u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.BRR=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10d6\u10d4\u10d8\u10e0\u10dd
+currenciesDisplayName.MKD=\u10db\u10d0\u10d9\u10d4\u10d3\u10dd\u10dc\u10d8\u10e3\u10e0\u10d8 \u10d3\u10d4\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.BRN=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10d6\u10d0\u10d3\u10dd \u10dc\u10dd\u10d5\u10dd
+currenciesDisplayName.ALL=\u10d0\u10da\u10d1\u10d0\u10dc\u10e3\u10e0\u10d8 \u10da\u10d4\u10d9\u10d8
+currenciesDisplayName.MWK=\u10db\u10d0\u10da\u10d0\u10d5\u10d8\u10e1 \u10d9\u10d5\u10d0\u10dc\u10e9\u10d0
+currenciesDisplayName.BRL=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10e0\u10d4\u10d0\u10da\u10d8
+currenciesDisplayName.BRE=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10d6\u10d4\u10d8\u10e0\u10dd (1990-1993)
+currenciesDisplayName.BRC=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10d6\u10d0\u10d3\u10dd
+currenciesDisplayName.BRB=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10d6\u10d4\u10d8\u10e0\u10dd \u10dc\u10dd\u10d5\u10dd (1967-1986)
+currenciesDisplayName.DEM=\u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8 \u10db\u10d0\u10e0\u10d9\u10d0
+currenciesDisplayName.XCD=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7 \u10d9\u10d0\u10e0\u10d8\u10d1\u10d8\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.KWD=\u10d9\u10e3\u10d5\u10d4\u10d8\u10e2\u10e3\u10e0\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.NPR=\u10dc\u10d4\u10de\u10d0\u10da\u10e3\u10e0\u10d8 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.YUN=\u10d8\u10e3\u10d2\u10dd\u10e1\u10da\u10d0\u10d5\u10d8\u10e3\u10e0\u10d8 \u10d9\u10dd\u10dc\u10d5\u10d4\u10e0\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0\u10d3\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.YUM=\u10d8\u10e3\u10d2\u10dd\u10e1\u10da\u10d0\u10d5\u10d8\u10e3\u10e0\u10d8 \u10d0\u10ee\u10d0\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.BEL=\u10d1\u10d4\u10da\u10d2\u10d8\u10e3\u10e0\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8 (\u10e4\u10d8\u10dc\u10d0\u10dc\u10e1\u10e3\u10e0\u10d8)
+currenciesDisplayName.JPY=\u10d8\u10d0\u10de\u10dd\u10dc\u10e3\u10e0\u10d8 \u10d8\u10d4\u10dc\u10d8
+currenciesDisplayName.MVR=\u10db\u10d0\u10da\u10d3\u10d8\u10d5\u10e3\u10e0\u10d8 \u10e0\u10e3\u10e4\u10d8\u10d0
+currenciesDisplayName.YUD=\u10d8\u10e3\u10d2\u10dd\u10e1\u10da\u10d0\u10d5\u10d8\u10e3\u10e0\u10d8 \u10db\u10e7\u10d0\u10e0\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.GWE=\u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8 \u10d2\u10d8\u10dc\u10d4\u10d0 \u10d4\u10e1\u10d9\u10e3\u10d3\u10dd
+currenciesDisplayName.BEF=\u10d1\u10d4\u10da\u10d2\u10d8\u10e3\u10e0\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.BEC=\u10d1\u10d4\u10da\u10d2\u10d8\u10e3\u10e0\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8 (\u10d9\u10dd\u10d5\u10d4\u10e0\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0\u10d3\u10d8)
+currenciesDisplayName.SUR=\u10e1\u10d0\u10d1\u10ed\u10dd\u10d7\u10d0 \u10e0\u10e3\u10d1\u10da\u10d8
+currenciesDisplayName.RON=\u10e0\u10e3\u10db\u10d8\u10dc\u10e3\u10da\u10d8 \u10da\u10d4\u10e3
+currenciesDisplayName.ROL=\u10eb\u10d5\u10d4\u10da\u10d8 \u10e0\u10e3\u10db\u10d8\u10dc\u10e3\u10da\u10d8 \u10da\u10d4\u10e3
+currenciesDisplayName.DDM=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7 \u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8 \u10db\u10d0\u10e0\u10d9\u10d0
+currenciesDisplayName.BDT=\u10d1\u10d0\u10dc\u10d2\u10da\u10d0\u10d3\u10d4\u10e8\u10e3\u10e0\u10d8 \u10e2\u10d0\u10d9\u10d0
+currenciesDisplayName.AWG=\u10d0\u10e0\u10e3\u10d1\u10d0\u10dc\u10e3\u10da\u10d8 \u10d2\u10e3\u10da\u10d3\u10d4\u10dc\u10d8
+currenciesDisplayName.XBB=\u10d4\u10d5\u10e0\u10dd\u10de\u10e3\u10da\u10d8 \u10e4\u10e3\u10da\u10d0\u10d3\u10d8 \u10d4\u10e0\u10d7\u10d4\u10e3\u10da\u10d8
+currenciesDisplayName.XBA=\u10d4\u10d5\u10e0\u10dd\u10de\u10e3\u10da\u10d8 \u10d9\u10dd\u10db\u10de\u10de\u10dd\u10d6\u10d8\u10e2\u10e3\u10e0\u10d8 \u10d4\u10e0\u10d7\u10d4\u10e3\u10da\u10d8
+currenciesDisplayName.NOK=\u10dc\u10dd\u10e0\u10d5\u10d4\u10d2\u10d8\u10e3\u10da\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.MUR=\u10db\u10d0\u10d5\u10e0\u10d8\u10e2\u10d0\u10dc\u10e3\u10da\u10d8 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.VND=\u10d5\u10d8\u10d4\u10e2\u10dc\u10d0\u10db\u10e3\u10e0\u10d8 \u10d3\u10dd\u10dc\u10d2\u10d8
+currenciesDisplayName.TZS=\u10e2\u10d0\u10dc\u10d6\u10d0\u10dc\u10d8\u10e3\u10e0\u10d8 \u10e8\u10d8\u10da\u10d8\u10dc\u10d2\u10d8
+currenciesDisplayName.TND=\u10e2\u10e3\u10dc\u10d8\u10e1\u10d8\u10e3\u10e0\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.CVE=\u10d9\u10d0\u10d1\u10dd \u10d5\u10d4\u10e0\u10d3\u10d4\u10e1 \u10d4\u10e1\u10d9\u10e3\u10d3\u10dd
+currenciesDisplayName.UGX=\u10e3\u10d2\u10d0\u10dc\u10d3\u10e3\u10e0\u10d8 \u10e8\u10d8\u10da\u10d8\u10dc\u10d2\u10d8
+currenciesDisplayName.XAG=\u10d5\u10d4\u10e0\u10ea\u10ee\u10da\u10d8
+currenciesDisplayName.ZMK=\u10d6\u10d0\u10db\u10d1\u10d8\u10e3\u10e0\u10d8 \u10d9\u10d5\u10d0\u10dc\u10e9\u10d0
+currenciesDisplayName.JOD=\u10d8\u10dd\u10e0\u10d3\u10d0\u10dc\u10d8\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.UGS=\u10e3\u10d2\u10d0\u10dc\u10d3\u10e3\u10e0\u10d8 \u10e8\u10d8\u10da\u10d8\u10dc\u10d2\u10d8 (1966-1987)
+currenciesDisplayName.WST=\u10d3\u10d0\u10e1\u10d0\u10d5\u10da\u10d4\u10d7 \u10e1\u10d0\u10db\u10dd\u10d0\u10e1 \u10e2\u10d0\u10da\u10d0
+currenciesDisplayName.DOP=\u10d3\u10dd\u10db\u10d8\u10dc\u10d8\u10d9\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.EUR=\u10d4\u10d5\u10e0\u10dd
+currenciesDisplayName.MTP=\u10db\u10d0\u10da\u10e2\u10d8\u10e1 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.USS=\u10d0\u10e8\u10e8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8 (\u10d8\u10d2\u10d8\u10d5\u10d4 \u10d3\u10e6\u10d4)
+currenciesDisplayName.BOP=\u10d1\u10dd\u10da\u10d8\u10d5\u10d8\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.CUP=\u10d9\u10e3\u10d1\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.MTL=\u10db\u10d0\u10da\u10e2\u10d8\u10e1 \u10da\u10d8\u10e0\u10d0
+currenciesDisplayName.TMM=\u10d7\u10e3\u10e0\u10e5\u10db\u10d4\u10dc\u10e3\u10da\u10d8 \u10db\u10d0\u10dc\u10d0\u10d7\u10d8
+currenciesDisplayName.USN=\u10d0\u10e8\u10e8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8 (\u10e8\u10d4\u10db\u10d3\u10d4\u10d2\u10d8 \u10d3\u10e6\u10d4)
+currenciesDisplayName.SGD=\u10e1\u10d8\u10dc\u10d2\u10d0\u10de\u10e3\u10e0\u10d8\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.NZD=\u10d0\u10ee\u10d0\u10da\u10d8 \u10d6\u10d4\u10da\u10d0\u10dc\u10d3\u10d8\u10d8\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.USD=\u10d0\u10e8\u10e8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.BOB=\u10d1\u10dd\u10da\u10d8\u10d5\u10d8\u10d0\u10dc\u10dd
+currenciesDisplayName.HNL=\u10f0\u10dd\u10dc\u10d3\u10e3\u10e0\u10d0\u10e1\u10d8\u10e1 \u10da\u10d4\u10db\u10de\u10d8\u10e0\u10d0
+currenciesDisplayName.ITL=\u10d8\u10e2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8 \u10da\u10d8\u10e0\u10d0
+currenciesDisplayName.XXX=\u10e3\u10ea\u10dc\u10dd\u10d1\u10d8 \u10d0\u10dc \u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d5\u10d0\u10da\u10e3\u10e2\u10d0
+currenciesDisplayName.AUD=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d0\u10da\u10d8\u10e3\u10e0\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.NAD=\u10dc\u10d0\u10db\u10d8\u10d1\u10d8\u10e3\u10e0\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.KGS=\u10e7\u10d8\u10e0\u10e6\u10d8\u10d6\u10e3\u10da\u10d8 \u10e1\u10dd\u10db\u10d8
+currenciesDisplayName.MGF=\u10db\u10d0\u10d3\u10d0\u10d2\u10d0\u10e1\u10d9\u10d0\u10e0\u10d8\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.BBD=\u10d1\u10d0\u10e0\u10d1\u10d0\u10d3\u10dd\u10e1\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.CHF=\u10e8\u10d5\u10d4\u10d8\u10ea\u10d0\u10e0\u10d8\u10e3\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.MGA=\u10db\u10d0\u10d3\u10d0\u10d2\u10d0\u10e1\u10d9\u10d0\u10e0\u10d8\u10e1 \u10d0\u10e0\u10d8\u10d0\u10e0\u10d8
+currenciesDisplayName.PLZ=\u10de\u10dd\u10da\u10dd\u10dc\u10e3\u10e0\u10d8 \u10d6\u10da\u10dd\u10e2\u10d8 (1950-1995)
+currenciesDisplayName.YER=\u10d8\u10d4\u10db\u10d4\u10dc\u10d8\u10e1 \u10e0\u10d4\u10d0\u10da\u10d8
+currenciesDisplayName.ATS=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d8\u10e3\u10da\u10d8 \u10e8\u10d8\u10da\u10d8\u10dc\u10d2\u10d8
+currenciesDisplayName.BND=\u10d1\u10e0\u10e3\u10dc\u10d4\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.EGP=\u10d4\u10d2\u10d5\u10d8\u10de\u10e2\u10e3\u10e0\u10d8 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.JMD=\u10d8\u10d0\u10db\u10d0\u10d8\u10d9\u10e3\u10e0\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.PLN=\u10de\u10dd\u10da\u10dd\u10dc\u10e3\u10e0\u10d8 \u10d6\u10da\u10dd\u10e2\u10d8
+currenciesDisplayName.DZD=\u10d0\u10da\u10df\u10d8\u10e0\u10d8\u10e3\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.ISK=\u10d8\u10e1\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.SRG=\u10e1\u10e3\u10e0\u10d8\u10dc\u10d0\u10db\u10d8\u10e1 \u10d2\u10e3\u10da\u10d3\u10d4\u10dc\u10d8
+currenciesDisplayName.LYD=\u10da\u10d8\u10d1\u10d8\u10e3\u10e0\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.SRD=\u10e1\u10e3\u10e0\u10d8\u10dc\u10d0\u10db\u10d8\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.BAM=\u10d1\u10dd\u10e1\u10dc\u10d8\u10d0-\u10f0\u10d4\u10e0\u10ea\u10dd\u10d2\u10dd\u10d5\u10d8\u10dc\u10d0\u10e1 \u10d9\u10dd\u10dc\u10d5\u10d4\u10e0\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0\u10d3\u10d8 \u10db\u10d0\u10e0\u10d9\u10d0
+currenciesDisplayName.ESP=\u10d4\u10e1\u10de\u10d0\u10dc\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10d4\u10e2\u10d0
+currenciesDisplayName.KRW=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7 \u10d9\u10dd\u10e0\u10d4\u10e3\u10da\u10d8 \u10d5\u10dd\u10dc\u10d8
+currenciesDisplayName.NLG=\u10f0\u10dd\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8 \u10d2\u10e3\u10da\u10d3\u10d4\u10dc\u10d8
+currenciesDisplayName.BAD=\u10d1\u10dd\u10e1\u10dc\u10d8\u10d0-\u10f0\u10d4\u10e0\u10ea\u10dd\u10d2\u10dd\u10d5\u10d8\u10dc\u10d0\u10e1 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.ZWD=\u10d6\u10d8\u10db\u10d1\u10d0\u10d1\u10d5\u10d4\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.SEK=\u10e8\u10d5\u10d4\u10d3\u10e3\u10e0\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.CSK=\u10e9\u10d4\u10ee\u10dd\u10e1\u10da\u10dd\u10d5\u10d0\u10d9\u10d8\u10d8\u10e1 \u10db\u10e7\u10d0\u10e0\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.BYR=\u10d1\u10d4\u10da\u10d0\u10e0\u10e3\u10e1\u10d8\u10e3\u10da\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8
+currenciesDisplayName.PKR=\u10de\u10d0\u10d9\u10d8\u10e1\u10e2\u10d0\u10dc\u10e3\u10e0\u10d8 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.BMD=\u10d1\u10d4\u10e0\u10db\u10e3\u10d3\u10e3\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.CSD=\u10eb\u10d5\u10d4\u10da\u10d8 \u10e1\u10d4\u10e0\u10d1\u10d8\u10e3\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesSymbol.GEL=GEL
+currenciesSymbol.XXX=XXX
+shortMonths=\u10d8\u10d0\u10dc\u00ae\u10d7\u10d4\u10d1\u00ae\u10db\u10d0\u10e0\u00ae\u10d0\u10de\u10e0\u00ae\u10db\u10d0\u10d8\u00ae\u10d8\u10d5\u10dc\u00ae\u10d8\u10d5\u10da\u00ae\u10d0\u10d2\u10d5\u00ae\u10e1\u10d4\u10e5\u00ae\u10dd\u10e5\u10e2\u00ae\u10dc\u10dd\u10d4\u00ae\u10d3\u10d4\u10d9\u00ae\u00ae
+months=\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8\u00ae\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8\u00ae\u10db\u10d0\u10e0\u10e2\u10d8\u00ae\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u00ae\u10db\u10d0\u10d8\u10e1\u10d8\u00ae\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8\u00ae\u10d8\u10d5\u10da\u10d8\u10e1\u10d8\u00ae\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd\u00ae\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8\u00ae\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8\u00ae\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8\u00ae\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8\u00ae\u00ae
+shortWeekdays=\u00ae\u10d9\u10d5\u10d8\u00ae\u10dd\u10e0\u10e8\u00ae\u10e1\u10d0\u10db\u00ae\u10dd\u10d7\u10ee\u00ae\u10ee\u10e3\u10d7\u00ae\u10de\u10d0\u10e0\u00ae\u10e8\u10d0\u10d1\u00ae
+weekdays=\u00ae\u10d9\u10d5\u10d8\u10e0\u10d0\u00ae\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8\u00ae\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8\u00ae\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8\u00ae\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8\u00ae\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8\u00ae\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8\u00ae
+eras=\u10e9\u10d5\u10d4\u10dc\u10e1 \u10ec\u10d4\u10da\u10d7\u10d0\u10e6\u10e0\u10d8\u10ea\u10ee\u10d5\u10d0\u10db\u10d3\u10d4\u00ae\u10e9\u10d5\u10d4\u10dc\u10d8 \u10ec\u10d4\u10da\u10d7\u10d0\u10e6\u10e0\u10d8\u10ea\u10ee\u10d5\u10d8\u10d7\u00ae
+ampms=\u10d3\u10d8\u10da\u10d8\u10e1\u00ae\u10e1\u10d0\u10e6\u10d0\u10db\u10dd\u10e1\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10e2\u10d8\u10db\u10dd\u10e0\u10d8
 territories.TJ=\u10e2\u10d0\u10ef\u10d8\u10d9\u10d4\u10d7\u10d8
 territories.TH=\u10e2\u10d0\u10d8\u10da\u10d0\u10dc\u10d3\u10d8
 territories.TG=\u10e2\u10dd\u10d2\u10dd
+territories.TF=\u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8 \u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8\u10e1 \u10e2\u10d4\u10e0\u10d8\u10e2\u10dd\u10e0\u10d8\u10d4\u10d1\u10d8
 territories.GY=\u10d2\u10d0\u10d8\u10d0\u10dc\u10d0
 territories.TD=\u10e9\u10d0\u10d3\u10d8
 territories.GW=\u10d2\u10d5\u10d8\u10dc\u10d4\u10d0-\u10d1\u10d8\u10e1\u10d0\u10e3
+territories.GU=\u10d2\u10e3\u10d0\u10db\u10d8
 territories.GT=\u10d2\u10d5\u10d0\u10e2\u10d4\u10db\u10d0\u10da\u10d0
+territories.GS=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10ef\u10dd\u10e0\u10ef\u10d8\u10d0 \u10d3\u10d0 \u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7 \u10e1\u10d4\u10dc\u10d3\u10d5\u10d8\u10e9\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
 territories.GR=\u10e1\u10d0\u10d1\u10d4\u10e0\u10eb\u10dc\u10d4\u10d7\u10d8
 territories.GQ=\u10d4\u10d9\u10d5\u10d0\u10e2\u10dd\u10e0\u10e3\u10da\u10d8 \u10d2\u10d5\u10d8\u10dc\u10d4\u10d0
+territories.GP=\u10d2\u10d5\u10d0\u10d3\u10d4\u10da\u10e3\u10de\u10d4
 territories.SZ=\u10e1\u10d5\u10d0\u10d6\u10d8\u10da\u10d4\u10dc\u10d3\u10d8
 territories.SY=\u10e1\u10d8\u10e0\u10d8\u10d0
 territories.GN=\u10d2\u10d5\u10d8\u10dc\u10d4\u10d0
 territories.GM=\u10d2\u10d0\u10db\u10d1\u10d8\u10d0
+territories.GL=\u10d2\u10e0\u10d4\u10dc\u10da\u10d0\u10dc\u10d3\u10d8\u10d0
 territories.SV=\u10e1\u10d0\u10da\u10d5\u10d0\u10d3\u10dd\u10e0\u10d8
+territories.062=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7-\u10ea\u10d4\u10dc\u10e2\u10e0\u10d0\u10da\u10e3\u10e0\u10d8 \u10d0\u10d6\u10d8\u10d0
 territories.ST=\u10e1\u10d0\u10dd-\u10e2\u10dd\u10db\u10d4 \u10d3\u10d0 \u10de\u10e0\u10d8\u10dc\u10e1\u10d8\u10de\u10d8
+territories.GI=\u10d2\u10d8\u10d1\u10e0\u10d0\u10da\u10e2\u10d0\u10e0\u10d8
+territories.061=\u10de\u10dd\u10da\u10d8\u10dc\u10d4\u10d6\u10d8\u10d0
 territories.GH=\u10d2\u10d0\u10dc\u10d0
 territories.SR=\u10e1\u10e3\u10e0\u10d8\u10dc\u10d0\u10db\u10d8
 territories.GE=\u10e1\u10d0\u10e5\u10d0\u10e0\u10d7\u10d5\u10d4\u10da\u10dd
@@ -30,10 +259,12 @@ territories.SO=\u10e1\u10dd\u10db\u10d0\u10da\u10d8
 territories.GD=\u10d2\u10e0\u10d4\u10dc\u10d0\u10d3\u10d0
 territories.SN=\u10e1\u10d4\u10dc\u10d4\u10d2\u10d0\u10da\u10d8
 territories.SM=\u10e1\u10d0\u10dc-\u10db\u10d0\u10e0\u10d8\u10dc\u10dd
+territories.GB=\u10d2\u10d0\u10d4\u10e0\u10d7\u10d8\u10d0\u10dc\u10d4\u10d1\u10e3\u10da\u10d8 \u10e1\u10d0\u10db\u10d4\u10e4\u10dd
 territories.SL=\u10e1\u10d8\u10d4\u10e0\u10d0-\u10da\u10d4\u10dd\u10dc\u10d4
 territories.GA=\u10d2\u10d0\u10d1\u10dd\u10dc\u10d8
 territories.SK=\u10e1\u10da\u10dd\u10d5\u10d0\u10d9\u10d4\u10d7\u10d8
 territories.SI=\u10e1\u10da\u10dd\u10d5\u10d4\u10dc\u10d8\u10d0
+territories.SH=\u10ec\u10db\u10d8\u10dc\u10d3\u10d0 \u10d4\u10da\u10d4\u10dc\u10d4\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8
 territories.SG=\u10e1\u10d8\u10dc\u10d2\u10d0\u10de\u10e3\u10e0\u10d8
 territories.SE=\u10e8\u10d5\u10d4\u10ea\u10d8\u10d0
 territories.SD=\u10e1\u10e3\u10d3\u10d0\u10dc\u10d8
@@ -41,98 +272,148 @@ territories.SC=\u10e1\u10d4\u10d8\u10e8\u10d4\u10da\u10d8\u10e1 \u10d9\u10e3\u10
 territories.SB=\u10e1\u10dd\u10da\u10dd\u10db\u10dd\u10dc\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
 territories.SA=\u10e1\u10d0\u10e3\u10d3\u10d8\u10e1 \u10d0\u10e0\u10d0\u10d1\u10d4\u10d7\u10d8
 territories.FR=\u10e1\u10d0\u10e4\u10e0\u10d0\u10dc\u10d2\u10d4\u10d7\u10d8
+territories.FO=\u10e4\u10d0\u10e0\u10dd\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
+territories.057=\u10db\u10d8\u10e0\u10dd\u10dc\u10d4\u10d6\u10d8\u10d0
 territories.FM=\u10db\u10d8\u10d9\u10e0\u10dd\u10dc\u10d4\u10d6\u10d8\u10d0
 territories.RW=\u10e0\u10e3\u10d0\u10dc\u10d3\u10d0
+territories.054=\u10db\u10d4\u10da\u10d0\u10dc\u10d4\u10d6\u10d8\u10d0
+territories.FK=\u10e4\u10d0\u10da\u10d9\u10da\u10d4\u10dc\u10d3\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
+territories.053=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d0\u10da\u10d8\u10d0 \u10d3\u10d0 \u10d0\u10ee\u10d0\u10da\u10d8 \u10d6\u10d4\u10da\u10d0\u10dc\u10d3\u10d8\u10d0
 territories.RU=\u10e0\u10e3\u10e1\u10d4\u10d7\u10d8
 territories.FJ=\u10e4\u10d8\u10ef\u10d8
 territories.FI=\u10e4\u10d8\u10dc\u10d4\u10d7\u10d8
+territories.RS=\u10e1\u10d4\u10e0\u10d1\u10d8\u10d0
 territories.RO=\u10e0\u10e3\u10db\u10d8\u10dc\u10d4\u10d7\u10d8
+territories.RE=\u10e0\u10d4\u10d8\u10e3\u10dc\u10d8\u10dd\u10dc\u10d8
 territories.ET=\u10d4\u10d7\u10d8\u10dd\u10de\u10d8\u10d0
 territories.ES=\u10d4\u10e1\u10de\u10d0\u10dc\u10d4\u10d7\u10d8
 territories.ER=\u10d4\u10e0\u10d8\u10e2\u10e0\u10d4\u10d0
+territories.QU=\u10d4\u10d5\u10e0\u10dd\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d8
 territories.EH=\u10d3\u10d0\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10e1\u10d0\u10f0\u10d0\u10e0\u10d0
 territories.EG=\u10d4\u10d2\u10d5\u10d8\u10de\u10e2\u10d4
 territories.EE=\u10d4\u10e1\u10e2\u10dd\u10dc\u10d4\u10d7\u10d8
+territories.QO=\u10d3\u10d0\u10e8\u10dd\u10e0\u10d4\u10d1\u10e3\u10da\u10d8 \u10dd\u10d9\u10d4\u10d0\u10dc\u10d8\u10d0
 territories.EC=\u10d4\u10d9\u10d5\u10d0\u10d3\u10dd\u10e0\u10d8
 territories.DZ=\u10d0\u10da\u10df\u10d8\u10e0\u10d8
 territories.QA=\u10d9\u10d0\u10e2\u10d0\u10e0\u10d8
+territories.039=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10d4\u10d5\u10e0\u10dd\u10de\u10d0
 territories.DO=\u10d3\u10dd\u10db\u10d8\u10dc\u10d8\u10d9\u10d0\u10dc\u10d8\u10e1 \u10e0\u10d4\u10e1\u10de\u10e3\u10d1\u10da\u10d8\u10d9\u10d0
 territories.PY=\u10de\u10d0\u10e0\u10d0\u10d2\u10d5\u10d0\u10d8
 territories.DM=\u10d3\u10dd\u10db\u10d8\u10dc\u10d8\u10d9\u10d0
+territories.035=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7-\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d0\u10d6\u10d8\u10d0
 territories.PW=\u10de\u10d0\u10da\u10d0\u10e3
+territories.034=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10d0\u10d6\u10d8\u10d0
 territories.DK=\u10d3\u10d0\u10dc\u10d8\u10d0
 territories.DJ=\u10ef\u10d8\u10d1\u10e3\u10e2\u10d8
 territories.PT=\u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10d0
+territories.PS=\u10de\u10d0\u10da\u10d4\u10e1\u10e2\u10d8\u10dc\u10d8\u10e1 \u10e2\u10d4\u10e0\u10d8\u10e2\u10dd\u10e0\u10d8\u10d0
+territories.030=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d0\u10d6\u10d8\u10d0
+territories.PR=\u10de\u10e3\u10d4\u10e0\u10e2\u10dd \u10e0\u10d8\u10d9\u10dd
 territories.DE=\u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10d8\u10d0
+territories.PM=\u10e1\u10d4\u10dc\u10e2-\u10de\u10d8\u10d4\u10e0\u10d8 \u10d3\u10d0 \u10db\u10d8\u10e5\u10d4\u10da\u10dd\u10dc\u10d8
 territories.PL=\u10de\u10dd\u10da\u10dd\u10dc\u10d4\u10d7\u10d8
 territories.PK=\u10de\u10d0\u10d9\u10d8\u10e1\u10e2\u10d0\u10dc\u10d8
 territories.PH=\u10e4\u10d8\u10da\u10d8\u10de\u10d8\u10dc\u10d4\u10d1\u10d8
 territories.PG=\u10de\u10d0\u10de\u10e3\u10d0-\u10d0\u10ee\u10d0\u10da\u10d8 \u10d2\u10d5\u10d8\u10dc\u10d4\u10d0
+territories.PF=\u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8 \u10de\u10dd\u10da\u10d8\u10dc\u10d4\u10d6\u10d8\u10d0
 territories.CZ=\u10e9\u10d4\u10ee\u10d4\u10d7\u10d8\u10e1 \u10e0\u10d4\u10e1\u10de\u10e3\u10d1\u10da\u10d8\u10d9\u10d0
-territories.CY=\u10d9\u10d5\u10d8\u10de\u10e0\u10dd\u10e1\u10d8
 territories.PE=\u10de\u10d4\u10e0\u10e3
+territories.CY=\u10d9\u10d5\u10d8\u10de\u10e0\u10dd\u10e1\u10d8
+territories.CX=\u10e8\u10dd\u10d1\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8
 territories.CV=\u10d9\u10d0\u10d1\u10dd-\u10d5\u10d4\u10e0\u10d3\u10d4
-territories.CU=\u10d9\u10e3\u10d1\u10d0
 territories.PA=\u10de\u10d0\u10dc\u10d0\u10db\u10d0
-territories.CS=\u10e1\u10d4\u10e0\u10d1\u10d8\u10d0
+territories.CU=\u10d9\u10e3\u10d1\u10d0
+territories.CS=\u10e1\u10d4\u10e0\u10d1\u10d8\u10d0 \u10d3\u10d0 \u10db\u10dd\u10dc\u10e2\u10d4\u10dc\u10d4\u10d2\u10e0\u10dd
 territories.CR=\u10d9\u10dd\u10e1\u10e2\u10d0-\u10e0\u10d8\u10d9\u10d0
+territories.029=\u10d9\u10d0\u10e0\u10d8\u10d1\u10d8
 territories.CO=\u10d9\u10dd\u10da\u10e3\u10db\u10d1\u10d8\u10d0
 territories.CN=\u10e9\u10d8\u10dc\u10d4\u10d7\u10d8
 territories.CM=\u10d9\u10d0\u10db\u10d4\u10e0\u10e3\u10dc\u10d8
-territories.CL=\u10e9\u10d8\u10da\u10d8
+territories.CL=\u10e9\u10d8\u10da\u10d4
+territories.CK=\u10d9\u10e3\u10d9\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
+territories.021=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7\u10d8 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0
 territories.CI=\u10e1\u10de\u10d8\u10da\u10dd\u10e1 \u10eb\u10d5\u10da\u10d8\u10e1 \u10e1\u10d0\u10dc\u10d0\u10de\u10d8\u10e0\u10dd
 territories.CH=\u10e8\u10d5\u10d4\u10d8\u10ea\u10d0\u10e0\u10d8\u10d0
 territories.CG=\u10d9\u10dd\u10dc\u10d2\u10dd
 territories.CF=\u10ea\u10d4\u10dc\u10e2\u10e0\u10d0\u10da\u10e3\u10e0\u10d8 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d8\u10e1 \u10e0\u10d4\u10e1\u10de\u10e3\u10d1\u10da\u10d8\u10d9\u10d0
+territories.CD=\u10d9\u10dd\u10dc\u10d2\u10dd - \u10d9\u10d8\u10dc\u10e8\u10d0\u10e1\u10d0
 territories.OM=\u10dd\u10db\u10d0\u10dc\u10d8
 territories.CA=\u10d9\u10d0\u10dc\u10d0\u10d3\u10d0
+territories.419=\u10da\u10d0\u10d7\u10d8\u10dc\u10e3\u10e0\u10d8 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0 \u10d3\u10d0 \u10d9\u10d0\u10e0\u10d8\u10d1\u10d8
 territories.BZ=\u10d1\u10d4\u10da\u10d8\u10d6\u10d8
 territories.BY=\u10d1\u10d4\u10da\u10dd\u10e0\u10e3\u10e1\u10d8\u10d0
 territories.BW=\u10d1\u10dd\u10e2\u10e1\u10d5\u10d0\u10dc\u10d0
+territories.BV=\u10d1\u10e3\u10d5\u10d4\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8
 territories.BT=\u10d1\u10e3\u10e2\u10d0\u10dc\u10d8
 territories.BS=\u10d1\u10d0\u10f0\u10d0\u10db\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
 territories.BR=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10d0
-territories.BO=\u10d1\u10dd\u10da\u10d8\u10d5\u10d8\u10d0
+territories.019=\u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d4\u10d1\u10d8
+territories.018=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
 territories.NZ=\u10d0\u10ee\u10d0\u10da\u10d8 \u10d6\u10d4\u10da\u10d0\u10dc\u10d3\u10d8\u10d0
+territories.017=\u10e8\u10e3\u10d0 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
+territories.BO=\u10d1\u10dd\u10da\u10d8\u10d5\u10d8\u10d0
 territories.BN=\u10d1\u10e0\u10e3\u10dc\u10d4\u10d8
+territories.015=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7\u10d8 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
+territories.BM=\u10d1\u10d4\u10e0\u10db\u10e3\u10d3\u10d0
+territories.014=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
+territories.013=\u10ea\u10d4\u10dc\u10e2\u10e0\u10d0\u10da\u10e3\u10e0\u10d8 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0
 territories.BJ=\u10d1\u10d4\u10dc\u10d8\u10dc\u10d8
+territories.011=\u10d3\u10d0\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
 territories.BI=\u10d1\u10e3\u10e0\u10e3\u10dc\u10d3\u10d8
+territories.172=\u10d3\u10d0\u10db\u10dd\u10e3\u10d9\u10d8\u10d3\u10d4\u10d1\u10d4\u10da \u10e1\u10d0\u10ee\u10d4\u10da\u10db\u10ec\u10d8\u10e4\u10dd\u10d7\u10d0 \u10d7\u10d0\u10dc\u10d0\u10db\u10d4\u10d2\u10dd\u10d1\u10e0\u10dd\u10d1\u10d0
 territories.BH=\u10d1\u10d0\u10f0\u10e0\u10d4\u10d8\u10dc\u10d8
-territories.BG=\u10d1\u10e3\u10da\u10d2\u10d0\u10e0\u10d4\u10d7\u10d8
 territories.NR=\u10dc\u10d0\u10e3\u10e0\u10e3
+territories.BG=\u10d1\u10e3\u10da\u10d2\u10d0\u10e0\u10d4\u10d7\u10d8
 territories.BF=\u10d1\u10e3\u10e0\u10d9\u10d8\u10dc\u10d0-\u10e4\u10d0\u10e1\u10dd
-territories.BE=\u10d1\u10d4\u10da\u10d2\u10d8\u10d0
 territories.NP=\u10dc\u10d4\u10de\u10d0\u10da\u10d8
-territories.BD=\u10d1\u10d0\u10dc\u10d2\u10da\u10d0\u10d3\u10d4\u10e8\u10d8
+territories.BE=\u10d1\u10d4\u10da\u10d2\u10d8\u10d0
+territories.ZZ=\u10e3\u10ea\u10dc\u10dd\u10d1\u10d8 \u10d0\u10dc \u10db\u10ea\u10d3\u10d0\u10e0\u10d8 \u10e0\u10d4\u10d2\u10d8\u10dd\u10dc\u10d8
 territories.NO=\u10dc\u10dd\u10e0\u10d5\u10d4\u10d2\u10d8\u10d0
+territories.BD=\u10d1\u10d0\u10dc\u10d2\u10da\u10d0\u10d3\u10d4\u10e8\u10d8
 territories.BB=\u10d1\u10d0\u10e0\u10d1\u10d0\u10d3\u10dd\u10e1\u10d8
 territories.ZW=\u10d6\u10d8\u10db\u10d1\u10d0\u10d1\u10d5\u10d4
-territories.BA=\u10d1\u10dd\u10e1\u10dc\u10d8\u10d0 \u10d3\u10d0 \u10f0\u10d4\u10e0\u10ea\u10d4\u10d2\u10dd\u10d5\u10d8\u10dc\u10d0
 territories.NL=\u10dc\u10d8\u10d3\u10d4\u10e0\u10da\u10d0\u10dc\u10d3\u10d4\u10d1\u10d8
+territories.BA=\u10d1\u10dd\u10e1\u10dc\u10d8\u10d0 \u10d3\u10d0 \u10f0\u10d4\u10e0\u10ea\u10d4\u10d2\u10dd\u10d5\u10d8\u10dc\u10d0
 territories.NI=\u10dc\u10d8\u10d9\u10d0\u10e0\u10d0\u10d2\u10e3\u10d0
 territories.NG=\u10dc\u10d8\u10d2\u10d4\u10e0\u10d8\u10d0
+territories.NF=\u10dc\u10dd\u10e0\u10e4\u10dd\u10da\u10d9\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8
 territories.AZ=\u10d0\u10d6\u10d4\u10e0\u10d1\u10d0\u10d8\u10ef\u10d0\u10dc\u10d8
 territories.NE=\u10dc\u10d8\u10d2\u10d4\u10e0\u10d8
+territories.AX=\u10d0\u10da\u10d0\u10dc\u10d3\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
+territories.NC=\u10d0\u10ee\u10d0\u10da\u10d8 \u10d9\u10d0\u10da\u10d4\u10d3\u10dd\u10dc\u10d8\u10d0
+territories.AW=\u10d0\u10e0\u10e3\u10d1\u10d0
 territories.ZM=\u10d6\u10d0\u10db\u10d1\u10d8\u10d0
 territories.NA=\u10dc\u10d0\u10db\u10d8\u10d1\u10d8\u10d0
 territories.AU=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d0\u10da\u10d8\u10d0
 territories.AT=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d8\u10d0
+territories.AS=\u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10e3\u10da\u10d8 \u10e1\u10d0\u10db\u10dd\u10d0
 territories.AR=\u10d0\u10e0\u10d2\u10d4\u10dc\u10e2\u10d8\u10dc\u10d0
-territories.AO=\u10d0\u10dc\u10d2\u10dd\u10da\u10d0
+territories.AQ=\u10d0\u10dc\u10e2\u10d0\u10e0\u10e5\u10e2\u10d8\u10d9\u10d0
+territories.009=\u10dd\u10d9\u10d4\u10d0\u10dc\u10d4\u10d7\u10d8
 territories.MZ=\u10db\u10dd\u10d6\u10d0\u10db\u10d1\u10d8\u10d9\u10d8
+territories.AO=\u10d0\u10dc\u10d2\u10dd\u10da\u10d0
 territories.MY=\u10db\u10d0\u10da\u10d0\u10d8\u10d6\u10d8\u10d0
-territories.AM=\u10e1\u10d0\u10e1\u10dd\u10db\u10ee\u10d4\u10d7\u10d8
+territories.AN=\u10dc\u10d8\u10d3\u10d4\u10e0\u10da\u10d0\u10dc\u10d3\u10d4\u10d1\u10d8\u10e1 \u10d0\u10dc\u10e2\u10d8\u10da\u10d4\u10d1\u10d8
 territories.MX=\u10db\u10d4\u10e5\u10e1\u10d8\u10d9\u10d0
-territories.AL=\u10d0\u10da\u10d1\u10d0\u10dc\u10d4\u10d7\u10d8
+territories.AM=\u10e1\u10dd\u10db\u10ee\u10d4\u10d7\u10d8
+territories.005=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0
 territories.MW=\u10db\u10d0\u10da\u10d0\u10d5\u10d8
+territories.AL=\u10d0\u10da\u10d1\u10d0\u10dc\u10d4\u10d7\u10d8
 territories.MV=\u10db\u10d0\u10da\u10d3\u10d8\u10d5\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
+territories.003=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7\u10d8 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0
 territories.ZA=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
 territories.MU=\u10db\u10d0\u10d5\u10e0\u10d8\u10d9\u10d8\u10d0
+territories.002=\u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
 territories.MT=\u10db\u10d0\u10da\u10e2\u10d0
-territories.AG=\u10d0\u10dc\u10e2\u10d8\u10d2\u10e3\u10d0 \u10d3\u10d0 \u10d1\u10d0\u10e0\u10d1\u10e3\u10d3\u10d0
+territories.AI=\u10d0\u10dc\u10d2\u10d5\u10d8\u10da\u10d0
+territories.001=\u10db\u10e1\u10dd\u10e4\u10da\u10d8\u10dd
+territories.MS=\u10db\u10dd\u10dc\u10e1\u10d4\u10e0\u10d0\u10e2\u10d8
 territories.MR=\u10db\u10d0\u10d5\u10e0\u10d8\u10e2\u10d0\u10dc\u10d8\u10d0
+territories.AG=\u10d0\u10dc\u10e2\u10d8\u10d2\u10e3\u10d0 \u10d3\u10d0 \u10d1\u10d0\u10e0\u10d1\u10e3\u10d3\u10d0
+territories.MQ=\u10db\u10d0\u10e0\u10e2\u10d8\u10dc\u10d8\u10d9\u10d8
 territories.AF=\u10d0\u10d5\u10e6\u10d0\u10dc\u10d4\u10d7\u10d8
 territories.AE=\u10d0\u10e0\u10d0\u10d1\u10d4\u10d7\u10d8\u10e1 \u10d2\u10d0\u10d4\u10e0\u10d7\u10d8\u10d0\u10dc\u10d4\u10d1\u10e3\u10da\u10d8 \u10d4\u10db\u10d8\u10e0\u10d0\u10e2\u10d4\u10d1\u10d8
+territories.MO=\u10db\u10d0\u10d9\u10d0\u10dd
 territories.AD=\u10d0\u10dc\u10d3\u10dd\u10e0\u10d0
 territories.MN=\u10db\u10dd\u10dc\u10e6\u10dd\u10da\u10d4\u10d7\u10d8
 territories.MM=\u10db\u10d8\u10d0\u10dc\u10db\u10d0\u10e0\u10d8
@@ -140,25 +421,34 @@ territories.ML=\u10db\u10d0\u10da\u10d8
 territories.MK=\u10db\u10d0\u10d9\u10d4\u10d3\u10dd\u10dc\u10d8\u10d0
 territories.MH=\u10db\u10d0\u10e0\u10e8\u10d0\u10da\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
 territories.MG=\u10db\u10d0\u10d3\u10d0\u10d2\u10d0\u10e1\u10d9\u10d0\u10e0\u10d8
+territories.ME=\u10db\u10dd\u10dc\u10e2\u10d4\u10dc\u10d4\u10d2\u10e0\u10dd
 territories.MD=\u10db\u10dd\u10da\u10d3\u10dd\u10d5\u10d0
 territories.MC=\u10db\u10dd\u10dc\u10d0\u10d9\u10dd
 territories.MA=\u10db\u10d0\u10e0\u10dd\u10d9\u10dd
 territories.YE=\u10d8\u10d4\u10db\u10d4\u10dc\u10d8
 territories.LY=\u10da\u10d8\u10d1\u10d8\u10d0
 territories.LV=\u10da\u10d0\u10e2\u10d5\u10d8\u10d0
+territories.155=\u10d3\u10d0\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d4\u10d5\u10e0\u10dd\u10de\u10d0
 territories.LU=\u10da\u10e3\u10e5\u10e1\u10d4\u10db\u10d1\u10e3\u10e0\u10d2\u10d8
+territories.154=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7\u10d8 \u10d4\u10d5\u10e0\u10dd\u10de\u10d0
 territories.LT=\u10da\u10d8\u10e2\u10d5\u10d0
-territories.LS=\u10da\u10d4\u10e1\u10dd\u10e2\u10dd
+territories.LS=\u10da\u10d4\u10e1\u10dd\u10d7\u10dd
 territories.LR=\u10da\u10d8\u10d1\u10d4\u10e0\u10d8\u10d0
+territories.151=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d4\u10d5\u10e0\u10dd\u10de\u10d0
+territories.150=\u10d4\u10d5\u10e0\u10dd\u10de\u10d0
 territories.LK=\u10e8\u10e0\u10d8-\u10da\u10d0\u10dc\u10d9\u10d0
-territories.LI=\u10da\u10d8\u10ee\u10e2\u10d4\u10dc\u10e8\u10e2\u10d4\u10d8\u10dc\u10d8
+territories.LI=\u10da\u10d8\u10ee\u10e2\u10d4\u10dc\u10e8\u10e2\u10d0\u10d8\u10dc\u10d8
 territories.LC=\u10e1\u10d4\u10dc\u10e2-\u10da\u10e3\u10e1\u10d8\u10d0
 territories.LB=\u10da\u10d8\u10d1\u10d0\u10dc\u10d8
 territories.LA=\u10da\u10d0\u10dd\u10e1\u10d8
 territories.KZ=\u10e7\u10d0\u10d6\u10d0\u10ee\u10d4\u10d7\u10d8
+territories.KY=\u10d9\u10d0\u10d8\u10db\u10d0\u10dc\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
 territories.KW=\u10d9\u10e3\u10d5\u10d4\u10d8\u10e2\u10d8
-territories.KR=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7 \u10d9\u10dd\u10e0\u10d4\u10d0
-territories.KP=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7 \u10d9\u10dd\u10e0\u10d4\u10d0
+territories.145=\u10d3\u10d0\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d0\u10d6\u10d8\u10d0
+territories.143=\u10ea\u10d4\u10dc\u10e2\u10e0\u10d0\u10da\u10e3\u10e0\u10d8 \u10d0\u10d6\u10d8\u10d0
+territories.142=\u10d0\u10d6\u10d8\u10d0
+territories.KR=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10d9\u10dd\u10e0\u10d4\u10d0
+territories.KP=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7\u10d8 \u10d9\u10dd\u10e0\u10d4\u10d0
 territories.KN=\u10e1\u10d4\u10dc\u10e2-\u10d9\u10d8\u10e2\u10e1\u10d8 \u10d3\u10d0 \u10dc\u10d4\u10d5\u10d8\u10e1\u10d8
 territories.KM=\u10d9\u10dd\u10db\u10dd\u10e0\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
 territories.KI=\u10d9\u10d8\u10e0\u10d8\u10d1\u10d0\u10e2\u10d8
@@ -166,10 +456,12 @@ territories.WS=\u10e1\u10d0\u10db\u10dd\u10d0
 territories.KH=\u10d9\u10d0\u10db\u10d1\u10dd\u10ef\u10d0
 territories.KG=\u10e7\u10d8\u10e0\u10d2\u10d8\u10d6\u10d4\u10d7\u10d8
 territories.KE=\u10d9\u10d4\u10dc\u10d8\u10d0
+territories.WF=\u10d5\u10d0\u10da\u10d8\u10e1\u10d8 \u10d3\u10d0 \u10e4\u10e3\u10e2\u10e3\u10dc\u10d0
 territories.JP=\u10d8\u10d0\u10de\u10dd\u10dc\u10d8\u10d0
 territories.JO=\u10d8\u10dd\u10e0\u10d3\u10d0\u10dc\u10d8\u10d0
 territories.JM=\u10d8\u10d0\u10db\u10d0\u10d8\u10d9\u10d0
 territories.VU=\u10d5\u10d0\u10dc\u10e3\u10d0\u10e2\u10e3
+territories.JE=\u10ef\u10d4\u10e0\u10e1\u10d8
 territories.VN=\u10d5\u10d8\u10d4\u10e2\u10dc\u10d0\u10db\u10d8
 territories.VE=\u10d5\u10d4\u10dc\u10d4\u10e1\u10e3\u10d4\u10da\u10d0
 territories.VC=\u10e1\u10d4\u10dc\u10e2-\u10d5\u10d8\u10dc\u10e1\u10d4\u10dc\u10e2\u10d8 \u10d3\u10d0 \u10d2\u10e0\u10d4\u10dc\u10d0\u10d3\u10d8\u10dc\u10d4\u10d1\u10d8
@@ -178,13 +470,16 @@ territories.IT=\u10d8\u10e2\u10d0\u10da\u10d8\u10d0
 territories.IS=\u10d8\u10e1\u10da\u10d0\u10dc\u10d3\u10d8\u10d0
 territories.IR=\u10d8\u10e0\u10d0\u10dc\u10d8
 territories.IQ=\u10d4\u10e0\u10d0\u10e7\u10d8
-territories.UZ=\u10e3\u10d6\u10d1\u10d0\u10d9\u10d4\u10d7\u10d8
+territories.UZ=\u10e3\u10d6\u10d1\u10d4\u10d9\u10d4\u10d7\u10d8
+territories.IO=\u10d1\u10e0\u10d8\u10e2\u10d0\u10dc\u10e3\u10da\u10d8 \u10e2\u10d4\u10e0\u10d8\u10e2\u10dd\u10e0\u10d8\u10d0 \u10d8\u10dc\u10d3\u10dd\u10d4\u10d7\u10d8\u10e1 \u10dd\u10d9\u10d4\u10d0\u10dc\u10d4\u10e8\u10d8
 territories.UY=\u10e3\u10e0\u10e3\u10d2\u10d5\u10d0\u10d8
 territories.IN=\u10d8\u10dc\u10d3\u10dd\u10d4\u10d7\u10d8
+territories.IM=\u10db\u10d0\u10dc\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8
 territories.IL=\u10d8\u10e1\u10e0\u10d0\u10d4\u10da\u10d8
 territories.US=\u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d8\u10e1 \u10e8\u10d4\u10d4\u10e0\u10d7\u10d4\u10d1\u10e3\u10da\u10d8 \u10e8\u10e2\u10d0\u10e2\u10d4\u10d1\u10d8
 territories.IE=\u10d8\u10e0\u10da\u10d0\u10dc\u10d3\u10d8\u10d0
 territories.ID=\u10d8\u10dc\u10d3\u10dd\u10dc\u10d4\u10d6\u10d8\u10d0
+territories.UM=\u10e8\u10d4\u10d4\u10e0\u10d7\u10d4\u10d1\u10e3\u10da\u10d8 \u10e8\u10e2\u10d0\u10e2\u10d4\u10d1\u10d8\u10e1 \u10db\u10ea\u10d8\u10e0\u10d4 \u10d3\u10d0\u10e8\u10dd\u10e0\u10d4\u10d1\u10e3\u10da\u10d8 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
 territories.UG=\u10e3\u10d2\u10d0\u10dc\u10d3\u10d0
 territories.UA=\u10e3\u10d9\u10e0\u10d0\u10d8\u10dc\u10d0
 territories.HU=\u10e3\u10dc\u10d2\u10e0\u10d4\u10d7\u10d8
@@ -192,11 +487,158 @@ territories.HT=\u10f0\u10d0\u10d8\u10e2\u10d8
 territories.HR=\u10f0\u10dd\u10e0\u10d5\u10d0\u10e2\u10d8\u10d0
 territories.TZ=\u10e2\u10d0\u10dc\u10d6\u10d0\u10dc\u10d8\u10d0
 territories.HN=\u10f0\u10dd\u10dc\u10d3\u10e3\u10e0\u10d0\u10e1\u10d8
+territories.HM=\u10f0\u10d4\u10e0\u10d3\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8 \u10d3\u10d0 \u10db\u10d0\u10d9\u10d3\u10dd\u10dc\u10d0\u10da\u10d3\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
 territories.TW=\u10e2\u10d0\u10d8\u10d5\u10d0\u10dc\u10d8
 territories.TV=\u10e2\u10e3\u10d5\u10d0\u10da\u10e3
+territories.HK=\u10f0\u10dd\u10dc\u10d2 \u10d9\u10dd\u10dc\u10d2\u10d8
 territories.TT=\u10e2\u10e0\u10d8\u10dc\u10d8\u10d3\u10d0\u10d3\u10d8 \u10d3\u10d0 \u10e2\u10dd\u10d1\u10d0\u10d2\u10dd
 territories.TR=\u10d7\u10e3\u10e0\u10e5\u10d4\u10d7\u10d8
 territories.TO=\u10e2\u10dd\u10dc\u10d2\u10d0
 territories.TN=\u10e2\u10e3\u10dc\u10d8\u10e1\u10d8
 territories.TM=\u10d7\u10e3\u10e0\u10e5\u10db\u10d4\u10dc\u10d4\u10d7\u10d8
+languages.ast=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d8\u10e3\u10da\u10d8
+languages.lb=\u10da\u10e3\u10e5\u10e1\u10d4\u10db\u10d1\u10e3\u10e0\u10d2\u10e3\u10da\u10d8
+languages.la=\u10da\u10d0\u10d7\u10d8\u10dc\u10e3\u10e0\u10d8
+languages.xh=\u10e5\u10e1\u10dd\u10d6\u10d0
+languages.ky=\u10e7\u10d8\u10e0\u10d2\u10d8\u10d6\u10e3\u10da\u10d8
+languages.ku=\u10e5\u10e3\u10e0\u10d7\u10e3\u10da\u10d8
+languages.ko=\u10d9\u10dd\u10e0\u10d4\u10e3\u10da\u10d8
+languages.udm=\u10e3\u10d3\u10db\u10e3\u10e0\u10e2\u10d8\u10e3\u10da\u10d8
+languages.km=\u10d9\u10d0\u10db\u10d1\u10dd\u10ef\u10d8\u10e3\u10e0\u10d8
+languages.kk=\u10e7\u10d0\u10d6\u10d0\u10ee\u10e3\u10e0\u10d8
+languages.kg=\u10d9\u10dd\u10dc\u10d2\u10dd
+languages.en_GB=\u10d1\u10e0\u10d8\u10e2\u10d0\u10dc\u10e3\u10da\u10d8 \u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.grc=\u10eb\u10d5\u10d4\u10da\u10d8 \u10d1\u10d4\u10e0\u10eb\u10dc\u10e3\u10da\u10d8
+languages.art=\u10ee\u10d4\u10da\u10dd\u10d5\u10dc\u10e3\u10e0\u10d8 \u10e1\u10ee\u10d5\u10d0
 languages.ka=\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8
+languages.jv=\u10d8\u10d0\u10d5\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.arc=\u10d0\u10e0\u10d0\u10db\u10d4\u10e3\u10da\u10d8
+languages.cel=\u10d9\u10d4\u10da\u10e2\u10e3\u10e0\u10d8 \u10e1\u10ee\u10d5\u10d0
+languages.scn=\u10e1\u10d8\u10ea\u10d8\u10da\u10d8\u10e3\u10e0\u10d8
+languages.ja=\u10d8\u10d0\u10de\u10dd\u10dc\u10e3\u10e0\u10d8
+languages.vi=\u10d5\u10d8\u10d4\u10e2\u10dc\u10d0\u10db\u10e3\u10e0\u10d8
+languages.it=\u10d8\u10e2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8
+languages.is=\u10d8\u10e1\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8
+languages.ady=\u10d0\u10d3\u10d8\u10e6\u10d4\u10e3\u10e0\u10d8
+languages.uz=\u10e3\u10d6\u10d1\u10d4\u10d9\u10e3\u10e0\u10d8
+languages.ur=\u10e3\u10e0\u10d3\u10e3
+languages.ie=\u10d8\u10dc\u10e2\u10d4\u10e0\u10da\u10d8\u10dc\u10d2\u10d8
+languages.id=\u10d8\u10dc\u10d3\u10dd\u10dc\u10d4\u10d6\u10d8\u10e3\u10e0\u10d8
+languages.ia=\u10d8\u10dc\u10e2\u10d4\u10e0\u10da\u10d8\u10dc\u10d2\u10e3\u10d0\u10da\u10e3\u10e0\u10d8
+languages.uk=\u10e3\u10d9\u10e0\u10d0\u10d8\u10dc\u10e3\u10da\u10d8
+languages.ug=\u10e3\u10d8\u10d2\u10e3\u10e0\u10e3\u10da\u10d8
+languages.hy=\u10e1\u10dd\u10db\u10ee\u10e3\u10e0\u10d8
+languages.und=\u10e3\u10ea\u10dc\u10dd\u10d1\u10d8 \u10d0\u10dc \u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d4\u10dc\u10d0
+languages.es_ES=\u10d8\u10d1\u10d4\u10e0\u10d8\u10e3\u10da\u10d8 \u10d4\u10e1\u10de\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.hu=\u10e3\u10dc\u10d2\u10e0\u10e3\u10da\u10d8
+languages.hr=\u10ee\u10dd\u10e0\u10d5\u10d0\u10e2\u10d8\u10e3\u10da\u10d8
+languages.fil=\u10e2\u10d0\u10d2\u10d0\u10da\u10dd\u10d2\u10e3\u10e0\u10d8
+languages.tw=\u10d7\u10e3\u10d8
+languages.goh=\u10eb\u10d5\u10d4\u10da\u10d8 \u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8
+languages.hi=\u10f0\u10d8\u10dc\u10d3\u10d8
+languages.tr=\u10d7\u10e3\u10e0\u10e5\u10e3\u10da\u10d8
+languages.he=\u10d4\u10d1\u10e0\u10d0\u10e3\u10da\u10d8
+languages.tn=\u10e2\u10e1\u10d5\u10d0\u10dc\u10d0
+languages.tk=\u10d7\u10e3\u10e0\u10e5\u10db\u10d4\u10dc\u10e3\u10da\u10d8
+languages.th=\u10e2\u10d0\u10d8\u10da\u10d0\u10dc\u10d3\u10e3\u10e0\u10d8
+languages.tg=\u10e2\u10d0\u10ef\u10d8\u10d9\u10e3\u10e0\u10d8
+languages.gu=\u10d2\u10e3\u10ef\u10d0\u10e0\u10d0\u10d7\u10d8
+languages.ine=\u10d8\u10dc\u10d3\u10dd-\u10d4\u10d5\u10e0\u10dd\u10de\u10e3\u10da\u10d8 \u10e1\u10ee\u10d5\u10d0
+languages.gn=\u10d2\u10e3\u10d0\u10e0\u10d0\u10dc\u10d8
+languages.bua=\u10d1\u10e3\u10e0\u10d8\u10d0\u10e2\u10e3\u10da\u10d8
+languages.sw=\u10e1\u10e3\u10d0\u10f0\u10d8\u10da\u10d8
+languages.gl=\u10d2\u10d0\u10da\u10e3\u10e0\u10d8
+languages.sv=\u10e8\u10d5\u10d4\u10d3\u10e3\u10e0\u10d8
+languages.st=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7 \u10e1\u10dd\u10d7\u10dd\u10e1 \u10d4\u10dc\u10d0
+languages.sr=\u10e1\u10d4\u10e0\u10d1\u10e3\u10da\u10d8
+languages.en_CA=\u10d9\u10d0\u10dc\u10d0\u10d3\u10e3\u10e0\u10d8 \u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.sq=\u10d0\u10da\u10d1\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.so=\u10e1\u10dd\u10db\u10d0\u10da\u10d8\u10e3\u10e0\u10d8
+languages.gd=\u10e8\u10dd\u10e2\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0-\u10d2\u10d0\u10da\u10e3\u10e0\u10d8
+languages.sl=\u10e1\u10da\u10dd\u10d5\u10d4\u10dc\u10e3\u10e0\u10d8
+languages.ga=\u10d8\u10e0\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8
+languages.sk=\u10e1\u10da\u10dd\u10d5\u10d0\u10d9\u10e3\u10e0\u10d8
+languages.si=\u10e1\u10d8\u10dc\u10f0\u10d0\u10da\u10e3\u10e0\u10d8
+languages.sh=\u10e1\u10d4\u10e0\u10d1\u10e3\u10da-\u10ee\u10dd\u10e0\u10d5\u10d0\u10e2\u10e3\u10da\u10d8
+languages.myn=\u10db\u10d0\u10d8\u10d0\u10e1 \u10d4\u10dc\u10d4\u10d1\u10d8
+languages.sd=\u10e1\u10d8\u10dc\u10d3\u10e3\u10e0\u10d8
+languages.sc=\u10e1\u10d0\u10e0\u10d3\u10d8\u10dc\u10d8\u10e3\u10da\u10d8
+languages.cau=\u10d9\u10d0\u10d5\u10d9\u10d0\u10e1\u10d8\u10e3\u10e0\u10d8 \u10e1\u10ee\u10d5\u10d0
+languages.sa=\u10e1\u10d0\u10dc\u10e1\u10d9\u10e0\u10d8\u10e2\u10d8
+languages.ang=\u10eb\u10d5\u10d4\u10da\u10d8 \u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.fr=\u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8
+languages.sla=\u10e1\u10da\u10d0\u10d5\u10e3\u10e0\u10d8 \u10e1\u10ee\u10d5\u10d0
+languages.ru=\u10e0\u10e3\u10e1\u10e3\u10da\u10d8
+languages.fi=\u10e4\u10d8\u10dc\u10e3\u10e0\u10d8
+languages.ro=\u10e0\u10e3\u10db\u10d8\u10dc\u10e3\u10da\u10d8
+languages.fa=\u10e1\u10de\u10d0\u10e0\u10e1\u10e3\u10da\u10d8
+languages.pt_PT=\u10d8\u10d1\u10d4\u10e0\u10d8\u10e3\u10da-\u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8
+languages.nl_BE=\u10e4\u10da\u10dd\u10db\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8
+languages.es_419=\u10da\u10d0\u10d7\u10d8\u10dc\u10e3\u10e0 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10e3\u10da\u10d8 \u10d4\u10e1\u10de\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.pra=\u10de\u10e0\u10d0\u10d9\u10e0\u10d8\u10e2\u10d8\u10e1 \u10d4\u10dc\u10d4\u10d1\u10d8
+languages.en_AU=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d0\u10da\u10d8\u10e3\u10e0\u10d8 \u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.peo=\u10eb\u10d5\u10d4\u10da\u10d8 \u10e1\u10de\u10d0\u10e0\u10e1\u10e3\u10da\u10d8
+languages.eu=\u10d1\u10d0\u10e1\u10d9\u10e3\u10e0\u10d8
+languages.et=\u10d4\u10e1\u10e2\u10dd\u10dc\u10e3\u10e0\u10d8
+languages.es=\u10d4\u10e1\u10de\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.eo=\u10d4\u10e1\u10de\u10d4\u10e0\u10d0\u10dc\u10e2\u10dd
+languages.en=\u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.el=\u10d1\u10d4\u10e0\u10eb\u10dc\u10e3\u10da\u10d8
+languages.fro=\u10eb\u10d5\u10d4\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8
+languages.ale=\u10d0\u10da\u10d4\u10e3\u10e2\u10e3\u10e0\u10d8
+languages.pt=\u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8
+languages.pt_BR=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8
+languages.ps=\u10de\u10e3\u10e8\u10e2\u10e3
+languages.de=\u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8
+languages.pl=\u10de\u10dd\u10da\u10dd\u10dc\u10e3\u10e0\u10d8
+languages.da=\u10d3\u10d0\u10dc\u10d8\u10e3\u10e0\u10d8
+languages.sux=\u10e8\u10e3\u10db\u10d4\u10e0\u10e3\u10da\u10d8
+languages.cy=\u10e3\u10d4\u10da\u10e1\u10e3\u10e0\u10d8
+languages.cu=\u10e1\u10d0\u10d4\u10d9\u10da\u10d4\u10e1\u10d8\u10dd \u10e1\u10da\u10d0\u10d5\u10e3\u10e0\u10d8
+languages.cs=\u10e9\u10d4\u10ee\u10e3\u10e0\u10d8
+languages.de_CH=\u10e8\u10d5\u10d4\u10d8\u10ea\u10d0\u10e0\u10d8\u10e3\u10da\u10d8 \u10db\u10d0\u10e6\u10d0\u10da\u10d8 \u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8
+languages.os=\u10dd\u10e1\u10e3\u10e0\u10d8
+languages.or=\u10dd\u10e0\u10d8\u10e3\u10da\u10d8
+languages.ce=\u10e9\u10d4\u10e9\u10dc\u10e3\u10e0\u10d8
+languages.ca=\u10d9\u10d0\u10e2\u10d0\u10da\u10dd\u10dc\u10d8\u10e3\u10e0\u10d8
+languages.oc=\u10dd\u10ea\u10d8\u10e2\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.bs=\u10d1\u10dd\u10e1\u10dc\u10d8\u10e3\u10e0\u10d8
+languages.br=\u10d1\u10e0\u10d4\u10e2\u10dd\u10dc\u10e3\u10da\u10d8
+languages.bo=\u10e2\u10d8\u10d1\u10d4\u10e2\u10e3\u10e0\u10d8
+languages.zh_Hans=\u10d2\u10d0\u10db\u10d0\u10e0\u10e2\u10d8\u10d5\u10d4\u10d1\u10e3\u10da\u10d8 \u10e9\u10d8\u10dc\u10e3\u10e0\u10d8
+languages.zh_Hant=\u10e2\u10e0\u10d0\u10d3\u10d8\u10ea\u10d8\u10e3\u10da\u10d8 \u10e9\u10d8\u10dc\u10e3\u10e0\u10d8
+languages.nv=\u10dc\u10d0\u10d5\u10d0\u10ee\u10dd
+languages.bh=\u10d1\u10d8\u10f0\u10d0\u10e0\u10d8
+languages.bg=\u10d1\u10e3\u10da\u10d2\u10d0\u10e0\u10e3\u10da\u10d8
+languages.be=\u10d1\u10d4\u10da\u10dd\u10e0\u10e3\u10e1\u10e3\u10da\u10d8
+languages.no=\u10dc\u10dd\u10e0\u10d5\u10d4\u10d2\u10d8\u10e3\u10da\u10d8
+languages.nn=\u10dc\u10dd\u10e0\u10d5\u10d4\u10d2\u10d8\u10e3\u10da\u10d8 \u10dc\u10d8\u10dc\u10dd\u10e0\u10e1\u10d9\u10d8
+languages.nl=\u10f0\u10dd\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8
+languages.zu=\u10d6\u10e3\u10da\u10e3
+languages.ain=\u10d0\u10d8\u10dc\u10e3
+languages.az=\u10d0\u10d6\u10d4\u10e0\u10d1\u10d0\u10d8\u10ef\u10d0\u10dc\u10e3\u10da\u10d8
+languages.ne=\u10dc\u10d4\u10de\u10d0\u10da\u10e3\u10e0\u10d8
+languages.de_AT=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d8\u10e3\u10da\u10d8 \u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8
+languages.as=\u10d0\u10e1\u10d0\u10db\u10e3\u10e0\u10d8
+languages.nap=\u10dc\u10d4\u10d0\u10de\u10dd\u10da\u10d8\u10e2\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.ar=\u10d0\u10e0\u10d0\u10d1\u10e3\u10da\u10d8
+languages.zh=\u10e9\u10d8\u10dc\u10e3\u10e0\u10d8
+languages.sga=\u10eb\u10d5\u10d4\u10da\u10d8 \u10d8\u10e0\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8
+languages.ms=\u10db\u10d0\u10da\u10d0\u10d8\u10d6\u10d8\u10e3\u10e0\u10d8
+languages.af=\u10d0\u10e4\u10e0\u10d8\u10d9\u10e3\u10da\u10d8
+languages.ae=\u10d0\u10d5\u10d4\u10e1\u10e2\u10d0
+languages.mo=\u10db\u10dd\u10da\u10d3\u10dd\u10d5\u10e3\u10e0\u10d8
+languages.mn=\u10db\u10dd\u10dc\u10e6\u10dd\u10da\u10e3\u10e0\u10d8
+languages.en_US=\u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10e3\u10da\u10d8  \u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.ab=\u10d0\u10e4\u10ee\u10d0\u10d6\u10e3\u10e0\u10d8
+languages.mk=\u10db\u10d0\u10d9\u10d4\u10d3\u10dd\u10dc\u10d8\u10e3\u10e0\u10d8
+languages.egy=\u10d4\u10d2\u10d5\u10d8\u10de\u10e2\u10e3\u10e0\u10d8
+languages.tlh=\u10d9\u10da\u10d8\u10dc\u10d2\u10dd\u10dc\u10e3\u10e0\u10d8
+languages.yi=\u10d8\u10d3\u10d8\u10e8\u10d8
+languages.gsw=\u10e8\u10d5\u10d4\u10d8\u10ea\u10d0\u10e0\u10d8\u10e3\u10da\u10d8 \u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8
+languages.lv=\u10da\u10d0\u10e2\u10d5\u10d8\u10e3\u10e0\u10d8
+languages.lt=\u10da\u10d8\u10e2\u10d5\u10e3\u10e0\u10d8
+languages.fr_CH=\u10e8\u10d5\u10d4\u10d8\u10ea\u10d0\u10e0\u10d8\u10e3\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8
+languages.lo=\u10da\u10d0\u10dd\u10e1\u10e3\u10e0\u10d8
+languages.ln=\u10da\u10d8\u10dc\u10d2\u10d0\u10da\u10d0
+languages.fr_CA=\u10d9\u10d0\u10dc\u10d0\u10d3\u10e3\u10e0\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kaj.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kaj.properties
new file mode 100644 (file)
index 0000000..d809c98
--- /dev/null
@@ -0,0 +1,23 @@
+# LocaleInformation_kaj.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=A\u0331naira
+currenciesSymbol.NGN=\u20a6
+shortMonths=A\u0331yr\u00aeA\u0331hw\u00aeA\u0331ta\u00aeA\u0331na\u00aeA\u0331pf\u00aeA\u0331ki\u00aeA\u0331ty\u00aeA\u0331ni\u00aeA\u0331ku\u00aeSwa\u00aeSby\u00aeSbh\u00ae\u00ae
+months=Hywan A\u0331yrnig\u00aeHywan A\u0331hwa\u00aeHywan A\u0331tat\u00aeHywan A\u0331naai\u00aeHywan A\u0331pfwon\u00aeHywan A\u0331kitat\u00aeHywan A\u0331tyirin\u00aeHywan A\u0331ninai\u00aeHywan A\u0331kumviriyin\u00aeHywan Swak\u00aeHywan Swak B'a\u0331yrnig\u00aeHywan Swak B'a\u0331hwa\u00ae\u00ae
+shortWeekdays=\u00aeLad\u00aeLin\u00aeTal\u00aeLar\u00aeLam\u00aeJum\u00aeAsa\u00ae
+weekdays=\u00aeLadi\u00aeLintani\u00aeTalata\u00aeLarba\u00aeLamit\u00aeJuma\u00aeAsabar\u00ae
+eras=G.M.\u00aeM.\u00ae
+ampms=A.M.\u00aeP.M.\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kam.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kam.properties
new file mode 100644 (file)
index 0000000..338b211
--- /dev/null
@@ -0,0 +1,23 @@
+# LocaleInformation_kam.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.KES=Silingi ya Kenya
+currenciesSymbol.KES=KSh
+shortMonths=Mwei wa mbee\u00aeMwei wa keli\u00aeMwei wa katatu\u00aeMwei wa kanne\u00aeMwei wa katano\u00aeMwei wa thanthatu\u00aeMwei wa muonza\u00aeMwei wa nyanya\u00aeMwei wa kenda\u00aeMwei wa ikumi\u00aeMwei wa ikumi na imwe\u00aeMwei wa ikumi na ili\u00ae\u00ae
+months=Mwei wa mbee\u00aeMwei wa keli\u00aeMwei wa katatu\u00aeMwei wa kanne\u00aeMwei wa katano\u00aeMwei wa thanthatu\u00aeMwei wa muonza\u00aeMwei wa nyanya\u00aeMwei wa kenda\u00aeMwei wa ikumi\u00aeMwei wa ikumi na imwe\u00aeMwei wa ikumi na ili\u00ae\u00ae
+shortWeekdays=\u00aeJpl\u00aeJtt\u00aeJnn\u00aeJtn\u00aeAlh\u00aeIjm\u00aeJms\u00ae
+weekdays=\u00aeJumapili\u00aeJumatatu\u00aeJumanne\u00aeJumatano\u00aeAlamisi\u00aeIjumaa\u00aeJumamosi\u00ae
+eras=MY\u00aeIY\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kcg.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kcg.properties
new file mode 100644 (file)
index 0000000..c25758b
--- /dev/null
@@ -0,0 +1,23 @@
+# LocaleInformation_kcg.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=Nera
+currenciesSymbol.NGN=\u20a6
+shortMonths=Juw\u00aeSwi\u00aeTsa\u00aeNya\u00aeTsw\u00aeAta\u00aeAna\u00aeAri\u00aeAku\u00aeSwa\u00aeMan\u00aeMas\u00ae\u00ae
+months=Zwat Juwung\u00aeZwat Swiyang\u00aeZwat Tsat\u00aeZwat Nyai\u00aeZwat Tswon\u00aeZwat Ataah\u00aeZwat Anatat\u00aeZwat Arinai\u00aeZwat Akubunyung\u00aeZwat Swag\u00aeZwat Mangjuwang\u00aeZwat Swag-Ma-Suyang\u00ae\u00ae
+shortWeekdays=\u00aeLad\u00aeTan\u00aeTal\u00aeLar\u00aeLam\u00aeJum\u00aeAsa\u00ae
+weekdays=\u00aeLadi\u00aeTanii\u00aeTalata\u00aeLarba\u00aeLamit\u00aeJuma\u00aeAsabat\u00ae
+eras=GM\u00aeM\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kfo.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kfo.properties
new file mode 100644 (file)
index 0000000..c7efa0c
--- /dev/null
@@ -0,0 +1,23 @@
+# LocaleInformation_kfo.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=Neira
+currenciesSymbol.NGN=\u20a6
+shortMonths=Wey\u00aeFan\u00aeTat\u00aeNan\u00aeTuy\u00aeTso\u00aeTaf\u00aeWar\u00aeKun\u00aeBan\u00aeKom\u00aeSau\u00ae\u00ae
+months=Fai Weyene\u00aeFai Fani\u00aeFai Tataka\u00aeFai Nangra\u00aeFai Tuyo\u00aeFai Tsoyi\u00aeFai Tafaka\u00aeFai Warachi\u00aeFai Kunobok\u00aeFai Bansok\u00aeFai Kom\u00aeFai Sauk\u00ae\u00ae
+shortWeekdays=\u00aeLah\u00aeKub\u00aeGba\u00aeTan\u00aeYei\u00aeKoy\u00aeSat\u00ae
+weekdays=\u00aeLahadi\u00aeJe-Kubacha\u00aeJe-Gbai\u00aeTansati\u00aeJe-Yei\u00aeJe-Koye\u00aeSati\u00ae
+eras=KMW\u00aeBCW\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
index 0782017cf7070236238bc1354c801861695b3fe8..21470a5494cc5e9f971cdfffef8207728aacec80 100644 (file)
 
 decimalSeparator=,
 groupingSeparator=\u00a0
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.XXX=Unknown or Invalid Currency
 currenciesSymbol.KZT=\u0442\u04a3\u0433.
-shortMonths=\u049b\u0430\u04a3.®\u0430\u049b\u043f.®\u043d\u0430\u0443.®\u0441\u04d9\u0443.®\u043c\u0430\u043c.®\u043c\u0430\u0443.®\u0448\u0456\u043b.®\u0442\u0430\u043c.®\u049b\u044b\u0440.®\u049b\u0430\u0437.®\u049b\u0430\u0440.®\u0436\u0435\u043b\u0442.®®
-months=\u049b\u0430\u04a3\u0442\u0430\u0440®\u0430\u049b\u043f\u0430\u043d®\u043d\u0430\u0443\u0440\u044b\u0437®\u0441\u04d9\u0443\u0456\u0440®\u043c\u0430\u043c\u044b\u0440®\u043c\u0430\u0443\u0441\u044b\u043c®\u0448\u0456\u043b\u0434\u0435®\u0442\u0430\u043c\u044b\u0437®\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a®\u049b\u0430\u0437\u0430\u043d®\u049b\u0430\u0440\u0430\u0448\u0430®\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d®®
-shortWeekdays=®\u0436\u0441.®\u0434\u0441.®\u0441\u0441.®\u0441\u0440.®\u0431\u0441.®\u0436\u043c.®\u0441\u04bb.®
-weekdays=®\u0436\u0435\u043a\u0441\u0435\u043d\u0456®\u0434\u0443\u0439\u0441\u0435\u043d\u0431\u0456®\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456®\u0441\u04d9\u0440\u0435\u043d\u0431\u0456®\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456®\u0436\u04b1\u043c\u0430®\u0441\u0435\u043d\u0431\u0456®
-firstDayOfWeek=mon
+currenciesSymbol.XXX=XXX
+shortMonths=\u049b\u0430\u04a3.\u00ae\u0430\u049b\u043f.\u00ae\u043d\u0430\u0443.\u00ae\u0441\u04d9\u0443.\u00ae\u043c\u0430\u043c.\u00ae\u043c\u0430\u0443.\u00ae\u0448\u0456\u043b.\u00ae\u0442\u0430\u043c.\u00ae\u049b\u044b\u0440.\u00ae\u049b\u0430\u0437.\u00ae\u049b\u0430\u0440.\u00ae\u0436\u0435\u043b\u0442.\u00ae\u00ae
+months=\u049b\u0430\u04a3\u0442\u0430\u0440\u00ae\u0430\u049b\u043f\u0430\u043d\u00ae\u043d\u0430\u0443\u0440\u044b\u0437\u00ae\u0441\u04d9\u0443\u0456\u0440\u00ae\u043c\u0430\u043c\u044b\u0440\u00ae\u043c\u0430\u0443\u0441\u044b\u043c\u00ae\u0448\u0456\u043b\u0434\u0435\u00ae\u0442\u0430\u043c\u044b\u0437\u00ae\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a\u00ae\u049b\u0430\u0437\u0430\u043d\u00ae\u049b\u0430\u0440\u0430\u0448\u0430\u00ae\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d\u00ae\u00ae
+shortWeekdays=\u00ae\u0436\u0441.\u00ae\u0434\u0441.\u00ae\u0441\u0441.\u00ae\u0441\u0440.\u00ae\u0431\u0441.\u00ae\u0436\u043c.\u00ae\u0441\u04bb.\u00ae
+weekdays=\u00ae\u0436\u0435\u043a\u0441\u0435\u043d\u0456\u00ae\u0434\u0443\u0439\u0441\u0435\u043d\u0431\u0456\u00ae\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456\u00ae\u0441\u04d9\u0440\u0435\u043d\u0431\u0456\u00ae\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456\u00ae\u0436\u04b1\u043c\u0430\u00ae\u0441\u0435\u043d\u0431\u0456\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=dd.MM.yy
 mediumDateFormat=dd.MM.yyyy
-longDateFormat=d MMMM yyyy '\u0436.'
-fullDateFormat=EEEE, d MMMM yyyy '\u0436.'
+longDateFormat=d MMMM yyyy '\u0436'.
+fullDateFormat=EEEE, d MMMM yyyy '\u0436'.
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=\u0422\u043e\u043d\u0433\u0430
 territories.KZ=\u049a\u0430\u0437\u0430\u049b\u0441\u0442\u0430\u043d
+languages.es=\u0438\u0441\u043f\u0430\u043d
+languages.ku=\u043a\u04af\u0440\u0434
+languages.eo=\u044d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0430\u0493\u044b\u043b\u0448\u044b\u043d
+languages.el=\u0433\u0440\u0435\u043a
+languages.ko=\u043a\u04d9\u0440\u0456\u0441
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.km=\u043a\u0430\u043c\u0431\u043e\u0434\u0436\u0438\u044f
 languages.kk=\u049a\u0430\u0437\u0430\u049b
+languages.ka=\u0433\u0440\u0443\u0437\u0438\u043d
+languages.jv=\u044f\u0432\u0430
+languages.fil=\u043f\u0438\u043b\u0438\u043f\u0438\u043d\u043e
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b
+languages.ps=\u043f\u0430\u0448\u0442\u043e
+languages.de=\u043d\u0435\u043c\u0456\u0441
+languages.pl=\u043f\u043e\u043b\u044f\u043a
+languages.da=\u0434\u0430\u0442
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d
+languages.ja=\u0436\u0430\u043f\u043e\u043d
+languages.vi=\u0432\u044c\u0435\u0442\u043d\u0430\u043c
+languages.cy=\u0432\u0430\u043b\u043b\u0438\u0439
+languages.pa=\u043f\u0430\u043d\u0434\u0436\u0430\u0431
+languages.cs=\u0447\u0435\u0445
+languages.it=\u0438\u0442\u0430\u043b\u0438\u044f\u043d
+languages.is=\u0438\u0441\u043b\u0430\u043d\u0434
+languages.uz=\u04e9\u0437\u0431\u0435\u043a
+languages.or=\u043e\u0440\u0438\u044f
+languages.ur=\u0443\u0440\u0434\u0443
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u0430\u043d
+languages.ie=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0435
+languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f
+languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d
+languages.ia=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0430
+languages.oc=\u043e\u043a\u0441\u0438\u0442\u0430\u043d
+languages.ug=\u04b1\u0439\u0493\u044b\u0440
+languages.hy=\u0430\u0440\u043c\u044f\u043d
+languages.bs=\u0431\u043e\u0441\u043d\u0438\u044f
+languages.br=\u0431\u0440\u0438\u0442
+languages.hu=\u043c\u0430\u0434\u044c\u044f\u0440
+languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b
+languages.hr=\u0445\u043e\u0440\u0432\u0430\u0442
+languages.tw=\u0442\u0432\u0438
+languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438
+languages.bg=\u0431\u043e\u043b\u0433\u0430\u0440
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0433
+languages.be=\u0431\u0435\u043b\u0430\u0440\u0443\u0441
+languages.hi=\u0445\u0438\u043d\u0434\u0438
+languages.tr=\u0442\u04af\u0440\u0456\u043a\u0448\u0435
+languages.nl=\u0433\u043e\u043b\u043b\u0430\u043d\u0434
+languages.zu=\u0437\u0443\u043b\u0443\u0441
+languages.he=\u0438\u0432\u0440\u0438\u0442
+languages.tk=\u0442\u04af\u0440\u043a\u043c\u0435\u043d
+languages.ne=\u043d\u0435\u043f\u0430\u043b
+languages.ti=\u0442\u0438\u0433\u0440\u0438\u043d\u044c\u044f
+languages.th=\u0442\u0430\u0439
+languages.te=\u0442\u0435\u043b\u0443\u0433\u0443
+languages.as=\u0430\u0441\u0441\u0430\u043c
+languages.ar=\u0430\u0440\u0430\u0431\u0448\u0430
+languages.ta=\u0442\u0430\u043c\u0438\u043b
+languages.gu=\u0433\u0443\u0434\u0436\u0430\u0440\u0430\u0442\u0438
+languages.am=\u0430\u043c\u0445\u0430\u0440
+languages.mt=\u043c\u0430\u043b\u044c\u0442\u0430
+languages.ms=\u043c\u0430\u043b\u0430\u0439
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0438
+languages.sw=\u0441\u0443\u0430\u0445\u0438\u043b\u0438
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0445\u0438
+languages.sv=\u0448\u0432\u0435\u0434
+languages.gl=\u0433\u0430\u043b\u0438\u0446\u0438\u044f\u0448\u0430
+languages.su=\u0441\u0443\u0434\u0430\u043d
+languages.af=\u0431\u0443\u0440
+languages.st=\u0441\u0435\u0441\u043e\u0442\u043e
+languages.mn=\u043c\u043e\u043d\u0493\u043e\u043b
+languages.sr=\u0441\u0435\u0440\u0431
+languages.sq=\u0430\u043b\u0431\u0430\u043d
+languages.ml=\u043c\u0430\u043b\u0430\u0439\u044f\u043b\u0430\u043c
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d
+languages.so=\u0441\u043e\u043c\u0430\u043b\u0438
+languages.gd=\u0421\u043e\u043b\u0442\u04af\u0441\u0442\u0456\u043a \u0428\u043e\u0442\u043b\u0430\u043d\u0434\u0438\u044f
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u043a
+languages.ga=\u0438\u0440\u043b\u0430\u043d\u0434\u0448\u0430
+languages.si=\u0441\u0438\u043d\u0433\u0430\u043b
+languages.sh=\u0441\u0435\u0440\u0431\u0445\u043e\u0440\u0432\u0430\u0442
+languages.yi=\u0438\u0434\u0438\u0448
+languages.sd=\u0441\u0438\u043d\u0434\u0445\u0438
+languages.fy=\u0444\u0440\u0438\u0441
+languages.sa=\u0441\u0430\u043d\u0441\u043a\u0440\u0438\u0442
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437
+languages.lv=\u043b\u0430\u0442\u044b\u0448
+languages.lt=\u043b\u0438\u0442\u0432\u0430
+languages.fo=\u0444\u0430\u0440\u0435\u0440
+languages.ru=\u043e\u0440\u044b\u0441
+languages.lo=\u043b\u0430\u043e\u0441
+languages.ln=\u043b\u0438\u043d\u0433\u0430\u043b\u0430
+languages.fi=\u0444\u0438\u043d
+languages.ro=\u0440\u0443\u043c\u044b\u043d
+languages.fa=\u043f\u0430\u0440\u0441\u044b
+languages.la=\u043b\u0430\u0442\u044b\u043d
+languages.xh=\u0445\u043e\u0441\u0430
+languages.eu=\u0431\u0430\u0441\u043a
+languages.ky=\u049b\u044b\u0440\u0493\u044b\u0437
+languages.et=\u044d\u0441\u0442\u043e\u043d
index bee1c6a9df4c3e9657db12ae1f49ca298fca2f2a..b97042127218855e85d2967f0b83a374822cdb09 100644 (file)
@@ -7,10 +7,21 @@
 
 decimalSeparator=,
 groupingSeparator=.
+currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
 currenciesSymbol.DKK=kr
-shortMonths=jan®feb®mar®apr®maj®jun®jul®aug®sep®okt®nov®dec®®
-months=januari®februari®martsi®aprili®maji®juni®juli®augustusi®septemberi®oktoberi®novemberi®decemberi®®
-shortWeekdays=®sab®ata®mar®pin®sis®tal®arf®
-weekdays=®sabaat®ataasinngorneq®marlunngorneq®pingasunngorneq®sisamanngorneq®tallimanngorneq®arfininngorneq®
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januari\u00aefebruari\u00aemartsi\u00aeaprili\u00aemaji\u00aejuni\u00aejuli\u00aeaugustusi\u00aeseptemberi\u00aeoktoberi\u00aenovemberi\u00aedecemberi\u00ae\u00ae
+shortWeekdays=\u00aesab\u00aeata\u00aemar\u00aepin\u00aesis\u00aetal\u00aearf\u00ae
+weekdays=\u00aesabaat\u00aeataasinngorneq\u00aemarlunngorneq\u00aepingasunngorneq\u00aesisamanngorneq\u00aetallimanngorneq\u00aearfininngorneq\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=MMM dd, yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.GL=Kalaallit Nunaat
 languages.kl=kalaallisut
index fc979d33f69baf63ad72581c31592b6456be5c8e..5433463d0b40e9bb571ccc380ea839232379007e 100644 (file)
@@ -7,24 +7,24 @@
 
 decimalSeparator=,
 groupingSeparator=.
-localPatternChars=GyMdkHmsSEDFwWahKzYeugXZ
+currencyFormat=#,##0.00\u00a4;-#,##0.00\u00a4
+localPatternChars=GyMdkHmsSEDFwWahKzYeugXZvcL
 currenciesDisplayName.KHR=Riel
 currenciesSymbol.KHR=\u17db
-shortMonths=\u17e1®\u17e2®\u17e3®\u17e4®\u17e5®\u17e6®\u17e7®\u17e8®\u17e9®\u17e1\u17e0®\u17e1\u17e1®\u17e1\u17e2®®
-months=\u1798\u1780\u179a\u17b6®\u1780\u17bb\u1798\u17d2\u1797\u17c8®\u1798\u17b7\u1793\u17b6®\u1798\u17c1\u179f\u17b6®\u17a7\u179f\u1797\u17b6®\u1798\u17b7\u1790\u17bb\u1793\u17b6®\u1780\u1780\u17d2\u1780\u178a\u17b6®\u179f\u17b8\u17a0\u17b6®\u1780\u1789\u17d2\u1789\u17b6®\u178f\u17bb\u179b\u17b6®\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6®\u1792\u17d2\u1793\u17bc®®
-shortWeekdays=®\u17a2\u17b6®\u1785®\u17a2®\u1796\u17bb®\u1796\u17d2\u179a®\u179f\u17bb®\u179f®
-weekdays=®\u1790\u17d2\u1784\u17c3\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799®\u200b\u1790\u17d2\u1784\u17c3\u1785\u17d0\u1793\u17d2\u1791®\u1790\u17d2\u1784\u17c3\u17a2\u1784\u17d2\u1782\u17b6\u179a®\u1790\u17d2\u1784\u17c3\u1796\u17bb\u1792®\u1790\u17d2\u1784\u17c3\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd®\u1790\u17d2\u1784\u17c3\u179f\u17bb\u1780\u17d2\u179a®\u1790\u17d2\u1784\u17c3\u179f\u17c5\u179a\u17cd®
-firstDayOfWeek=mon
-eras=\u1798\u17bb\u1793\u200b\u1782.\u179f.®\u1782.\u179f.®
-ampms=\u1796\u17d2\u179a\u17b9\u1780®\u179b\u17d2\u1784\u17b6\u1785®
+shortMonths=\u17e1\u00ae\u17e2\u00ae\u17e3\u00ae\u17e4\u00ae\u17e5\u00ae\u17e6\u00ae\u17e7\u00ae\u17e8\u00ae\u17e9\u00ae\u17e1\u17e0\u00ae\u17e1\u17e1\u00ae\u17e1\u17e2\u00ae\u00ae
+months=\u1798\u1780\u179a\u17b6\u00ae\u1780\u17bb\u1798\u17d2\u1797\u17c8\u00ae\u1798\u17b7\u1793\u17b6\u00ae\u1798\u17c1\u179f\u17b6\u00ae\u17a7\u179f\u1797\u17b6\u00ae\u1798\u17b7\u1790\u17bb\u1793\u17b6\u00ae\u1780\u1780\u17d2\u1780\u178a\u17b6\u00ae\u179f\u17b8\u17a0\u17b6\u00ae\u1780\u1789\u17d2\u1789\u17b6\u00ae\u178f\u17bb\u179b\u17b6\u00ae\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6\u00ae\u1792\u17d2\u1793\u17bc\u00ae\u00ae
+shortWeekdays=\u00ae\u17a2\u17b6\u00ae\u1785\u00ae\u17a2\u00ae\u1796\u17bb\u00ae\u1796\u17d2\u179a\u00ae\u179f\u17bb\u00ae\u179f\u00ae
+weekdays=\u00ae\u1790\u17d2\u1784\u17c3\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799\u00ae\u200b\u1790\u17d2\u1784\u17c3\u1785\u17d0\u1793\u17d2\u1791\u00ae\u1790\u17d2\u1784\u17c3\u17a2\u1784\u17d2\u1782\u17b6\u179a\u00ae\u1790\u17d2\u1784\u17c3\u1796\u17bb\u1792\u00ae\u1790\u17d2\u1784\u17c3\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd\u00ae\u1790\u17d2\u1784\u17c3\u179f\u17bb\u1780\u17d2\u179a\u00ae\u1790\u17d2\u1784\u17c3\u179f\u17c5\u179a\u17cd\u00ae
+eras=\u1798\u17bb\u1793\u200b\u1782.\u179f.\u00ae\u1782.\u179f.\u00ae
+ampms=\u1796\u17d2\u179a\u17b9\u1780\u00ae\u179b\u17d2\u1784\u17b6\u1785\u00ae
 shortDateFormat=d/M/yyyy
-mediumDateFormat=d MMMM yyyy
-longDateFormat=EEEE' \u1790\u17d2\u1784\u17c3 'd' \u1781\u17c2 'MMMM' \u1786\u17d2\u1793\u17b6\u17c6 ' yyyy
-fullDateFormat=EEEE' \u1790\u17d2\u1784\u17c3 'd' \u1781\u17c2 'MMMM' \u1786\u17d2\u1793\u17b6\u17c6 ' yyyy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d \u1781\u17c2 MMMM \u1786\u17d2\u1793\u17b6\u17c6  yyyy
+fullDateFormat=EEEE \u1790\u17d2\u1784\u17c3 d \u1781\u17c2 MMMM \u1786\u17d2\u1793\u17b6\u17c6  yyyy
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
-longTimeFormat=H' \u1798\u17c9\u17c4\u1784 'm' \u1793\u17b6\u1791\u17b8 'ss' \u179c\u17b7\u1793\u17b6\u1791\u17b8\u200b'
-fullTimeFormat=H' \u1798\u17c9\u17c4\u1784 'm' \u1793\u17b6\u1791\u17b8 'ss' \u179c\u17b7\u1793\u17b6\u1791\u17b8\u200b' z
+longTimeFormat=H \u1798\u17c9\u17c4\u1784 m \u1793\u17b6\u1791\u17b8 ss \u179c\u17b7\u1793\u17b6\u1791\u17b8\u200bz
+fullTimeFormat=H \u1798\u17c9\u17c4\u1784 m \u1793\u17b6\u1791\u17b8 ss \u179c\u17b7\u1793\u17b6\u1791\u17b8\u200b z
 territories.TL=\u1791\u17b8\u1798\u17d0\u179a\u1781\u17b6\u1784\u1780\u17be\u178f
 territories.TJ=\u178f\u17b6\u178a\u17a0\u17d2\u179f\u17c9\u17b8\u1782\u17b8\u179f\u17d2\u178f\u1784\u17cb
 territories.TH=\u1790\u17c3
@@ -57,8 +57,8 @@ territories.SA=\u17a2\u17b6\u179a\u17c9\u17b6\u1794\u17ca\u17b8\u179f\u17b6\u17a
 territories.FR=\u1794\u17b6\u179a\u17b6\u17c6\u1784
 territories.FM=\u1798\u17b7\u1780\u17d2\u179a\u17bc\u1793\u17c1\u179f\u17ca\u17b8
 territories.RW=\u179a\u179c\u17c9\u17b6\u1793\u17cb\u178a\u17b6
-territories.FJ=\u17a0\u17d2\u179c\u17c9\u17b8\u17a0\u17d2\u179f\u17c9\u17b8
 territories.RU=\u179a\u17bc\u179f\u17d2\u179f\u17ca\u17b8
+territories.FJ=\u17a0\u17d2\u179c\u17c9\u17b8\u17a0\u17d2\u179f\u17c9\u17b8
 territories.FI=\u17a0\u17d2\u179c\u17b6\u17c6\u1784\u17a1\u1784\u17cb
 territories.RO=\u179a\u17bc\u1798\u17c9\u17b6\u1793\u17b8
 territories.ET=\u17a2\u17c1\u178f\u17d2\u1799\u17bc\u1796\u17b8
@@ -84,11 +84,11 @@ territories.PK=\u1794\u17c9\u17b6\u1782\u17b8\u179f\u17d2\u1790\u17b6\u1793
 territories.PH=\u17a0\u17d2\u179c\u17c9\u17b8\u179b\u17b8\u1796\u17b8\u1793
 territories.PG=\u1794\u17c9\u17b6\u1796\u17bc\u17a2\u17b6\u1793\u17bc\u179c\u17c2\u179b\u17a0\u17d2\u1782\u17b8\u178e\u17c1
 territories.CZ=\u179f\u17b6\u1792\u17b6\u179a\u178e\u179a\u178a\u17d2\u178b\u1786\u17c1\u1780
-territories.CY=\u179f\u17c9\u17b8\u1796\u179a\u17cd
 territories.PE=\u1794\u17c9\u17c1\u179a\u17bc
+territories.CY=\u179f\u17c9\u17b8\u1796\u179a\u17cd
 territories.CV=\u1780\u17b6\u1794\u179c\u17c2\u179a
-territories.CU=\u1782\u17bb\u1799\u1794\u17b6
 territories.PA=\u1794\u17c9\u17b6\u178e\u17b6\u1798\u17c9\u17b6
+territories.CU=\u1782\u17bb\u1799\u1794\u17b6
 territories.CR=\u1780\u17bc\u179f\u17d2\u178f\u17b6\u179a\u17b8\u1780\u17b6
 territories.CO=\u1780\u17bc\u17a1\u17bb\u17c6\u1794\u17ca\u17b8
 territories.CN=\u1785\u17b7\u1793
@@ -106,36 +106,36 @@ territories.BW=\u1794\u17bb\u178f\u179f\u17d2\u179c\u17b6\u178e\u17b6
 territories.BT=\u1794\u17ca\u17bc\u178f\u17b6\u1793
 territories.BS=\u1794\u17b6\u17a0\u17b6\u1798\u17c9\u17b6
 territories.BR=\u1794\u17d2\u179a\u17c1\u179f\u17ca\u17b8\u179b
-territories.BO=\u1794\u17bc\u179b\u17b8\u179c\u17b8
 territories.NZ=\u1793\u17bc\u179c\u17c2\u179b\u17a0\u17d2\u179f\u17c1\u17a1\u1784\u17cb
+territories.BO=\u1794\u17bc\u179b\u17b8\u179c\u17b8
 territories.BN=\u1794\u17ca\u17d2\u179a\u17bb\u1799\u178e\u17c1
 territories.BJ=\u1794\u17c1\u178e\u17b6\u17c6\u1784
 territories.BI=\u1794\u17ca\u17bc\u179a\u17bb\u1793\u178c\u17b8
 territories.BH=\u1794\u17b6\u179a\u17c9\u17c2\u1793
 territories.BG=\u1794\u17ca\u17bb\u179b\u17a0\u17d2\u1782\u17b6\u179a\u17b8
 territories.BF=\u1794\u17ca\u17bc\u179a\u1782\u17b8\u178e\u17b6\u17a0\u17d2\u179c\u17b6\u179f\u17bc
-territories.BE=\u1794\u17c2\u179b\u17a0\u17d2\u179f\u17c9\u17b7\u1780
 territories.NP=\u1793\u17c1\u1794\u17c9\u17b6\u179b\u17cb
-territories.BD=\u1794\u1784\u17cb\u1780\u17d2\u179b\u17b6\u178a\u17c1\u179f\u17d2\u17a0
+territories.BE=\u1794\u17c2\u179b\u17a0\u17d2\u179f\u17c9\u17b7\u1780
 territories.NO=\u1793\u17d0\u179a\u179c\u17c2\u179f
+territories.BD=\u1794\u1784\u17cb\u1780\u17d2\u179b\u17b6\u178a\u17c1\u179f\u17d2\u17a0
 territories.BB=\u1794\u17b6\u179a\u1794\u17b6\u178a\u17bc\u179f
 territories.ZW=\u17a0\u17d2\u179f\u17ca\u17b8\u1798\u1794\u17b6\u1794\u179c\u17c9\u17c1
-territories.BA=\u1794\u17bc\u179f\u17d2\u1793\u17c9\u17b8
 territories.NL=\u17a0\u17bc\u179b\u17d2\u179b\u1784\u17cb
+territories.BA=\u1794\u17bc\u179f\u17d2\u1793\u17c9\u17b8
 territories.NI=\u1793\u17b8\u1780\u17b6\u179a\u17c9\u17b6\u17a0\u17d2\u1782\u17d0\u179a
 territories.NG=\u1793\u17b8\u17a0\u17d2\u179f\u17c1\u179a\u17b8\u1799\u17c9\u17b6
 territories.AZ=\u17a2\u17b6\u17a0\u17ca\u17d2\u179f\u17c2\u179a\u1794\u17c2\u17a0\u17d2\u179f\u1784\u17cb
 territories.NE=\u1793\u17b8\u17a0\u17d2\u179f\u17c1\u179a
 territories.ZM=\u17a0\u17d2\u179f\u17b6\u17c6\u1794\u17ca\u17b8
-territories.NA=\u178e\u17b6\u1798\u17b8\u1794\u17ca\u17b8
 territories.AU=\u17a2\u17bc\u179f\u17d2\u178f\u17d2\u179a\u17b6\u179b\u17b8
+territories.NA=\u178e\u17b6\u1798\u17b8\u1794\u17ca\u17b8
 territories.AT=\u17a2\u17bc\u1791\u17d2\u179a\u17b8\u179f
 territories.AR=\u17a2\u17b6\u17a0\u17d2\u179f\u1784\u17cb\u1791\u17b8\u1793
-territories.AO=\u17a2\u1784\u17cb\u17a0\u17d2\u1782\u17c4\u17a1\u17b6
 territories.MZ=\u1798\u17c9\u17bc\u17a0\u17d2\u179f\u17b6\u17c6\u1794\u17ca\u17b7\u1780
+territories.AO=\u17a2\u1784\u17cb\u17a0\u17d2\u1782\u17c4\u17a1\u17b6
 territories.MY=\u1798\u17c9\u17b6\u179b\u17c1\u179f\u17c9\u17b8
-territories.AM=\u17a2\u17b6\u179a\u1798\u17c1\u1793\u17b8
 territories.MX=\u1798\u17c9\u17b7\u1785\u179f\u17b7\u1780
+territories.AM=\u17a2\u17b6\u179a\u1798\u17c1\u1793\u17b8
 territories.AL=\u17a2\u17b6\u179b\u17cb\u1794\u17b6\u1793\u17b8
 territories.ZA=\u17a2\u17b6\u17a0\u17d2\u179c\u17d2\u179a\u17b7\u1780\u1781\u17b6\u1784\u178f\u17d2\u1794\u17bc\u1784
 territories.MU=\u1798\u17c9\u17bc\u179a\u17b8\u1791\u17bb\u179f
@@ -217,12 +217,16 @@ languages.kk=\u1797\u17b6\u179f\u17b6\u1780\u17b6\u17a0\u17d2\u179f\u17b6\u1780\
 languages.ka=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u179f\u1780\u17a0\u17d2\u179f\u17c9\u17b8
 languages.dz=\u1797\u17b6\u179f\u17b6\u1794\u17ca\u17bc\u178f\u17b6\u1793
 languages.jv=\u1797\u17b6\u179f\u17b6\u1799\u17c9\u17b6\u179c\u17b6
+languages.fil=\u1796\u17b8\u179b\u17b8\u1796\u17b8\u1793
 languages.pt=\u1797\u17b6\u179f\u17b6\u1796\u17d0\u179a\u1791\u17bb\u1799\u17a0\u17d2\u1780\u17b6\u179b\u17cb
+languages.ps=\u1794\u17b6\u179f\u17d2\u178f\u17bc
 languages.de=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179b\u17d2\u179b\u17ba\u1798\u17c9\u1784\u17cb
 languages.pl=\u1797\u17b6\u179f\u17b6\u1794\u17c9\u17bc\u17a1\u17bc\u1789
 languages.da=\u1797\u17b6\u179f\u17b6\u178a\u17b6\u178e\u17ba\u1798\u17c9\u17b6\u1780
+languages.tlh=\u1781\u17d2\u179b\u17b7\u1784\u179f\u17bb\u1793
 languages.ja=\u1797\u17b6\u179f\u17b6\u1787\u1794\u17c9\u17bb\u1793
 languages.vi=\u1797\u17b6\u179f\u17b6\u179c\u17c0\u178f\u178e\u17b6\u1798
+languages.cy=\u179c\u17c1\u179b
 languages.pa=\u1797\u17b6\u179f\u17b6\u1796\u17bc\u1793\u1799\u17c9\u17b6\u1794\u17ca\u17b8
 languages.cs=\u1797\u17b6\u179f\u17b6\u1786\u17c1\u1780
 languages.it=\u1797\u17b6\u179f\u17b6\u17a2\u17ca\u17b8\u178f\u17b6\u179b\u17b8
@@ -233,16 +237,23 @@ languages.ur=\u1797\u17b6\u179f\u17b6\u17a2\u17ca\u17bc\u179a\u17d2\u178c\u17bc
 languages.ca=\u1797\u17b6\u179f\u17b6\u1780\u17b6\u178f\u17b6\u17a1\u17b6\u1793
 languages.id=\u1797\u17b6\u179f\u17b6\u17a5\u178e\u17d2\u178c\u17bc\u1793\u17c1\u179f\u17ca\u17b8
 languages.uk=\u1797\u17b6\u179f\u17b6\u17a2\u17ca\u17bb\u1799\u1780\u17d2\u179a\u17c2\u1793
+languages.ia=\u17a2\u17b8\u1793\u1792\u17be\u179b\u17b8\u1784
+languages.oc=\u17a2\u17bc\u179f\u17b8\u178f\u17b6\u1793\u17cb
 languages.hy=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179a\u1798\u17c1\u1793\u17b8
+languages.bs=\u1794\u17ca\u17bc\u179f\u17d2\u1793\u17c0\u179a
+languages.br=\u1794\u17d2\u179a\u17b8\u179f\u17d2\u178f\u17bb\u1793
 languages.hu=\u1797\u17b6\u179f\u17b6\u17a0\u17bb\u1784\u1782\u17d2\u179a\u17b8
 languages.bo=\u1797\u17b6\u179f\u17b6\u1791\u17b8\u1794\u17c1
 languages.bn=\u1797\u17b6\u179f\u17b6\u1794\u17c1\u1793\u17d2\u1780\u17b6\u179b\u17b8
+languages.hr=\u1780\u17d2\u179a\u17bc\u17a2\u17b6\u1791\u17c0\u1793
 languages.bm=\u1797\u17b6\u179f\u17b6\u1794\u17b6\u1798\u17d2\u1794\u17b6\u179a\u17b6
+languages.tw=\u1791\u17d2\u179c\u17b8
 languages.bh=\u1797\u17b6\u179f\u17b6\u1794\u17b7\u17a0\u17b6\u179a
 languages.bg=\u1797\u17b6\u179f\u17b6\u1794\u17ca\u17bb\u179b\u17a0\u17d2\u1780\u17b6\u179a\u17b8
 languages.tt=\u1797\u17b6\u179f\u17b6\u178f\u17b6\u178f\u17b6\u179a
-languages.be=\u1797\u17b6\u179f\u17b6\u1794\u17c1\u17a1\u17b6\u179a\u17bb\u179f\u17d2\u179f
 languages.no=\u1797\u17b6\u179f\u17b6\u1793\u17d0\u179a\u179c\u17c2\u179f
+languages.be=\u1797\u17b6\u179f\u17b6\u1794\u17c1\u17a1\u17b6\u179a\u17bb\u179f\u17d2\u179f
+languages.nn=\u1793\u17d0\u179a\u179c\u17c1
 languages.hi=\u1797\u17b6\u179f\u17b6\u17a0\u17c9\u17b7\u1793\u178c\u17b8
 languages.tr=\u1797\u17b6\u179f\u17b6\u1791\u17bd\u179a\u1782\u17b8
 languages.nl=\u1797\u17b6\u179f\u17b6\u17a0\u17bb\u179b\u17d2\u179b\u1784\u17cb
@@ -250,8 +261,9 @@ languages.zu=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u179f\u17c9\u17bc\u179b\u17bc
 languages.to=\u1797\u17b6\u179f\u17b6\u178f\u17bb\u1784\u17a0\u17d2\u1782\u17c4
 languages.he=\u1797\u17b6\u179f\u17b6\u17a0\u17c1\u1794\u17d2\u179a\u17b7
 languages.tk=\u1797\u17b6\u179f\u17b6\u1791\u17bd\u1782\u1798\u17c1\u1793\u17b8\u179f\u17d2\u178f\u1784\u17cb
-languages.az=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u17a0\u17ca\u17d2\u179f\u17c2\u179a\u1794\u17c2\u17a0\u17d2\u179f\u1784\u17cb
 languages.ne=\u1797\u17b6\u179f\u17b6\u1793\u17c1\u1794\u17c9\u17b6\u179b\u17cb
+languages.az=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u17a0\u17ca\u17d2\u179f\u17c2\u179a\u1794\u17c2\u17a0\u17d2\u179f\u1784\u17cb
+languages.ti=\u1791\u17b8\u179a\u17b7\u1793\u1799\u17b6
 languages.ay=\u1797\u17b6\u179f\u17b6\u17a2\u17b8\u1798\u17c9\u17b6\u179a\u17c9\u17b6
 languages.th=\u1797\u17b6\u179f\u17b6\u1790\u17c3
 languages.tg=\u1797\u17b6\u179f\u17b6\u178f\u17b6\u178a\u17a0\u17d2\u179f\u17c9\u17b8\u1782\u17b8\u179f\u17d2\u178f\u1784\u17cb
@@ -261,46 +273,55 @@ languages.ar=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179a\u17c9\u17b6\u1794\u17cb
 languages.ta=\u1797\u17b6\u179f\u17b6\u178f\u17b6\u1798\u17b8\u179b
 languages.gu=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17bb\u1799\u17c9\u17b6\u179a\u17b6\u1791\u17b8
 languages.an=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179a\u17c9\u17b6\u17a0\u17d2\u1782\u17c4\u1793
+languages.am=\u17a2\u17c6\u17a0\u17b6\u179a\u17b7\u1780
 languages.za=\u1797\u17b6\u179f\u17b6\u1785\u17bd\u1784
 languages.mt=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u179b\u17cb\u178f\u17b6
-languages.gn=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17bd\u179a\u17c9\u17b6\u1793\u17b8
 languages.ms=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u179b\u17c1\u179f\u17c9\u17b8
+languages.gn=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17bd\u179a\u17c9\u17b6\u1793\u17b8
 languages.sw=\u1797\u17b6\u179f\u17b6\u179f\u17d2\u179c\u17b6\u17a0\u17c9\u17b8\u179b\u17b8
 languages.mr=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u179a\u17b6\u1792\u17b8
 languages.sv=\u1797\u17b6\u179f\u17b6\u179f\u17ca\u17bb\u1799\u17a2\u17c2\u178a
 languages.gl=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17b6\u179b\u17b8\u179f\u17c9\u17b8
 languages.su=\u1797\u17b6\u17c6\u179f\u17b6\u179f\u17ca\u17bc\u178a\u1784\u17cb
 languages.af=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u17a0\u17d2\u179c\u17d2\u179a\u17b8\u1780\u17b6\u17a2\u17b6\u1793
-languages.ae=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179c\u17c2\u179f\u17d2\u178f\u1784\u17cb
+languages.st=\u179f\u17c1\u179f\u17bc\u178a\u17bc
 languages.mo=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17bb\u179b\u178a\u17b6\u179c\u17b8
+languages.ae=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179c\u17c2\u179f\u17d2\u178f\u1784\u17cb
 languages.mn=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17bb\u1784\u17a0\u17d2\u1782\u17c4\u179b\u17b8
+languages.sr=\u179f\u17be\u1794\u17c0\u1793
 languages.sq=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179b\u17cb\u1794\u17b6\u1793\u17b8
 languages.ml=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u17a1\u17b6\u17a1\u17b6\u1799\u17c9\u17b6\u1793
-languages.aa=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u17a0\u17d2\u179c\u17b6\u179a
 languages.mk=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u179f\u17c1\u178a\u17bc\u1793\u17b8
+languages.aa=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u17a0\u17d2\u179c\u17b6\u179a
 languages.so=\u1797\u17b6\u179f\u17b6\u179f\u17bc\u1798\u17c9\u17b6\u179b\u17b8
-languages.gd=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17c2\u179b\u17b7\u1782
 languages.mi=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17c4\u179a\u17b8
+languages.gd=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17c2\u179b\u17b7\u1782 [gd]
 languages.sm=\u1797\u17b6\u179f\u17b6\u179f\u17b6\u1798\u17bc\u17a2\u17b6
 languages.sl=\u1797\u17b6\u179f\u17b6\u179f\u17d2\u179b\u17bc\u179c\u17c9\u17b6\u1793\u17b8
 languages.mg=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u178a\u17b6\u17a0\u17d2\u1780\u17b6\u179f\u1780\u17b6\u179a
 languages.sk=\u1797\u17b6\u179f\u17b6\u179f\u17d2\u179b\u17bc\u179c\u17c9\u17b6\u1782\u17b8
 languages.ga=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17c2\u179b\u17b7\u1782
 languages.yo=\u1797\u17b6\u179f\u17b6\u1799\u179a\u17bc\u1794\u17b6
+languages.si=\u179f\u17b8\u1793\u17a0\u17b6\u179b\u17b7\u179f
+languages.sh=\u179f\u17be\u1794\u17bc\u1780\u17d2\u179a\u17bc\u1791\u17c0\u1793
 languages.yi=\u1797\u17b6\u179f\u17b6\u1799\u17b8\u178c\u17b8\u17a0\u17d2\u179f
 languages.sd=\u1797\u17b6\u179f\u17b6\u179f\u17c9\u17b8\u1793\u17d2\u178a\u17b8
+languages.fy=\u17a0\u17d2\u179a\u17b8\u179f\u1784\u17cb
 languages.sa=\u1797\u17b6\u179f\u17b6\u179f\u17c6\u179f\u17d2\u1780\u17d2\u179a\u17b9\u178f
 languages.fr=\u1797\u17b6\u179f\u17b6\u1794\u17b6\u179a\u17b6\u17c6\u1784
 languages.lv=\u1797\u17b6\u179f\u17b6\u17a1\u17b6\u178f\u179c\u17b8\u1799\u17c9\u17b6
 languages.lt=\u1797\u17b6\u179f\u17b6\u179b\u17b8\u1791\u17bb\u1799\u17a2\u17b6\u1793\u17b8
+languages.fo=\u17a0\u17d2\u179c\u17b6\u179a\u17bc\u179f
 languages.ru=\u1797\u17b6\u179f\u17b6\u0e23\u0e31\u179a\u17bc\u179f\u17d2\u179f\u17c9\u17b8
-languages.fj=\u17a0\u17d2\u179c\u17c9\u17b8\u17a0\u17d2\u179f\u17c9\u17b8
 languages.lo=\u1797\u17b6\u179f\u17b6\u17a1\u17b6\u179c
+languages.fj=\u17a0\u17d2\u179c\u17c9\u17b8\u17a0\u17d2\u179f\u17c9\u17b8
+languages.ln=\u179b\u17b8\u1793\u1780\u17b6\u17a1\u17b6
 languages.fi=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u179c\u17b6\u17c6\u1784\u17a1\u1784\u17cb
 languages.ro=\u1797\u17b6\u179f\u17b6\u179a\u17bc\u1798\u17c9\u17b6\u1793\u17b8
 languages.rn=\u1797\u17b6\u179f\u17b6\u179a\u17bc\u1793\u17d2\u178c\u17b8
+languages.fa=\u1797\u17ba\u179f\u17c0\u1793
 languages.la=\u1797\u17b6\u179f\u17b6\u17a1\u17b6\u178f\u17c6\u17b6\u1784
 languages.xh=\u1797\u17b6\u179f\u17b6\u1783\u179f\u17b6
 languages.eu=\u1797\u17b6\u179f\u17b6\u1794\u17b6\u179f\u17d2\u1780\u17c1
-languages.et=\u1797\u17b6\u179f\u17b6\u17a2\u17c1\u179f\u17d2\u178f\u17bc\u1793\u17b8
 languages.ky=\u1797\u17b6\u179f\u17b6\u1782\u17c0\u179a\u17a0\u17d2\u1782\u17b8\u179f\u17d2\u178f\u1784\u17cb
+languages.et=\u1797\u17b6\u179f\u17b6\u17a2\u17c1\u179f\u17d2\u178f\u17bc\u1793\u17b8
index 839c7df022ddf602dcd51f9c8e4f76f00aa46746..d4d282439591689ce4190fe1a05c749f74a659c2 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currenciesSymbol.INR=\u0cb0\u0cc2
-shortMonths=\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0®\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0®\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd®\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd®\u0cae\u0cc6®\u0c9c\u0cc2\u0ca8\u0ccd®\u0c9c\u0cc1\u0cb2\u0cc8®\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd®\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd®\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd®\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd®\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd®®
-months=\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0®\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0®\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd®\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd®\u0cae\u0cc6®\u0c9c\u0cc2\u0ca8\u0ccd®\u0c9c\u0cc1\u0cb2\u0cc8®\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd®\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd®\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd®\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd®\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd®®
-shortWeekdays=®\u0cb0.®\u0cb8\u0ccb.®\u0cae\u0c82.®\u0cac\u0cc1.®\u0c97\u0cc1.®\u0cb6\u0cc1.®\u0cb6\u0ca8\u0cbf.®
-weekdays=®\u0cb0\u0cb5\u0cbf\u0cb5\u0cbe\u0cb0®\u0cb8\u0ccb\u0cae\u0cb5\u0cbe\u0cb0®\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0®\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0®\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0®\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0®\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0®
-ampms=\u0caa\u0cc2\u0cb0\u0ccd\u0cb5\u0cbe\u0cb9\u0ccd\u0ca8®\u0c85\u0caa\u0cb0\u0cbe\u0cb9\u0ccd\u0ca8®
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
+currenciesSymbol.INR=\u0930\u0941
+shortMonths=\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0\u00ae\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0\u00ae\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd\u00ae\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd\u00ae\u0cae\u0cc6\u00ae\u0c9c\u0cc2\u0ca8\u0ccd\u00ae\u0c9c\u0cc1\u0cb2\u0cc8\u00ae\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd\u00ae\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd\u00ae\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u00ae
+months=\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0\u00ae\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0\u00ae\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd\u00ae\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd\u00ae\u0cae\u0cc6\u00ae\u0c9c\u0cc2\u0ca8\u0ccd\u00ae\u0c9c\u0cc1\u0cb2\u0cc8\u00ae\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd\u00ae\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd\u00ae\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u00ae
+shortWeekdays=\u00ae\u0cb0.\u00ae\u0cb8\u0ccb.\u00ae\u0cae\u0c82.\u00ae\u0cac\u0cc1.\u00ae\u0c97\u0cc1.\u00ae\u0cb6\u0cc1.\u00ae\u0cb6\u0ca8\u0cbf.\u00ae
+weekdays=\u00ae\u0cb0\u0cb5\u0cbf\u0cb5\u0cbe\u0cb0\u00ae\u0cb8\u0ccb\u0cae\u0cb5\u0cbe\u0cb0\u00ae\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0\u00ae\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0\u00ae\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0\u00ae\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0\u00ae\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u0caa\u0cc2\u0cb0\u0ccd\u0cb5\u0cbe\u0cb9\u0ccd\u0ca8\u00ae\u0c85\u0caa\u0cb0\u0cbe\u0cb9\u0ccd\u0ca8\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=hh:mm a
+mediumTimeFormat=hh:mm:ss a
+longTimeFormat=hh:mm:ss a z
+fullTimeFormat=hh:mm:ss a z
+territories.DK=\u0ca1\u0cc6\u0ca8\u0ccd\u0cae\u0cbe\u0cb0\u0ccd\u0c95\u0ccd
+territories.DE=\u0c9c\u0cb0\u0ccd\u0cae\u0ca8\u0cbf
+territories.SG=\u0cb8\u0cbf\u0c82\u0c97\u0caa\u0cc1\u0cb0
+territories.CZ=\u0c9a\u0cc6\u0c95\u0ccd \u0cb0\u0cbf\u0caa\u0cac\u0ccd\u0cb2\u0cbf\u0c95\u0ccd
+territories.CY=\u0cb8\u0cc8\u0caa\u0ccd\u0cb0\u0cb8\u0ccd
+territories.002=\u0c86\u0cab\u0ccd\u0cb0\u0cbf\u0c95\u0cbe
+territories.FR=\u0cab\u0ccd\u0cb0\u0cbe\u0ca8\u0ccd\u0cb8\u0ccd\u200d
+territories.030=\u0caa\u0cc2\u0cb0\u0ccd\u0cb5 \u0c8e\u0cb6\u0cbf\u0caf\u0cbe
 territories.CN=\u0c9a\u0cc0\u0ca8
-territories.AU=\u0c86\u0cb8\u0ccd\u0c9f\u0ccd\u0cb0\u0cc6\u0cb2\u0cbf\u0caf
-territories.MV=\u0cae\u0cbe\u0cb2\u0ccd\u0ca1\u0cbf\u0cb5 \u0ca6\u0ccd\u0cb5\u0cc0\u0caa\u0c97\u0cb3\u0cc1
+territories.IO=\u0cac\u0ccd\u0cb0\u0cbf\u0c9f\u0cc0\u0cb6\u0ccd \u0c87\u0c82\u0ca1\u0cbf\u0caf\u0ca8\u0ccd \u0c93\u0cb6\u0cbf\u0caf\u0ca8\u0ccd \u0c9f\u0cc6\u0cb0\u0cbf\u0c9f\u0cb0\u0cbf
 territories.IN=\u0cad\u0cbe\u0cb0\u0ca4
-territories.EE=\u0c8e\u0cb8\u0ccd\u0ca4\u0cca\u0ca8\u0cbf\u0caf
-territories.SG=\u0cb8\u0cbf\u0c82\u0c97\u0caa\u0cc1\u0cb0
-territories.TR=\u0ca4\u0cc1\u0cb0\u0ccd\u0c95\u0cbf
+territories.FI=\u0cab\u0cbf\u0ca8\u0ccd\u200d\u200d\u0cb2\u0ccd\u0caf\u0cbe\u0c82\u0ca1\u0ccd
+territories.151=\u0caa\u0cc2\u0cb0\u0ccd\u0cb5 \u0caf\u0cc2\u0cb0\u0ccb\u0caa\u0ccd
+territories.150=\u0caf\u0cc2\u0cb0\u0ccb\u0caa\u0ccd
+territories.029=\u0c95\u0cc6\u0cb0\u0cc7\u0cac\u0cbf\u0caf\u0ca8\u0ccd
+territories.BV=\u0cac\u0ccb\u0cb5\u0cc6\u0c9f\u0ccd \u0c90\u0cb2\u0ccd\u0caf\u0cbe\u0c82\u0ca1\u0ccd
+territories.BR=\u0cac\u0ccd\u0cb0\u0c9d\u0cbf\u0cb2\u0ccd
+territories.053=\u0c86\u0cb8\u0ccd\u0c9f\u0ccd\u0cb0\u0cc7\u0cb2\u0cbf\u0caf\u0cbe \u0cb9\u0cbe\u0c97\u0cc1 \u0ca8\u0ccd\u0caf\u0cc2\u0c9d\u0cbf\u0cb2\u0ccd\u0caf\u0cbe\u0c82\u0ca1\u0ccd
+territories.QU=\u0caf\u0cc1\u0cb0\u0ccb\u0caa\u0cbf\u0caf\u0ca8\u0ccd \u0caf\u0cc2\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
 territories.NP=\u0ca8\u0cc6\u0caa\u0cbe\u0cb3
+territories.BG=\u0cac\u0cb2\u0ccd\u0c97\u0cc7\u0cb0\u0cbf\u0caf\u0ca8\u0ccd
+territories.TR=\u0ca4\u0cc1\u0cb0\u0ccd\u0c95\u0cbf
+territories.BE=\u0cac\u0cc6\u0cb2\u0ccd\u0c9c\u0cbf\u0caf\u0cae\u0ccd
+territories.EE=\u0c8e\u0cb8\u0ccd\u0ca4\u0cca\u0ca8\u0cbf\u0caf
+territories.TO=\u0c9f\u0cca\u0c82\u0c97
+territories.143=\u0cae\u0ca7\u0ccd\u0caf \u0c8f\u0cb6\u0cbf\u0caf\u0cbe
+territories.142=\u0c8f\u0cb6\u0cbf\u0caf\u0cbe
+territories.019=\u0c85\u0cae\u0cc6\u0cb0\u0cbf\u0c95\u0cbe\u0cb8\u0ccd
+territories.TF=\u0cab\u0ccd\u0cb0\u0cc6\u0c82\u0c9a\u0ccd \u0ca6\u0c95\u0ccd\u0cb7\u0cbf\u0ca3 \u0caa\u0ccd\u0cb0\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0cc1
+territories.AU=\u0c86\u0cb8\u0ccd\u0c9f\u0ccd\u0cb0\u0cc6\u0cb2\u0cbf\u0caf
+territories.014=\u0caa\u0cc2\u0cb0\u0ccd\u0cb5 \u0c86\u0cab\u0ccd\u0cb0\u0cbf\u0c95\u0cbe
+territories.AT=\u0c86\u0cb8\u0ccd\u0c9f\u0ccd\u0cb0\u0cbf\u0caf\u0cbe
+territories.013=\u0cae\u0ca7\u0ccd\u0caf \u0c85\u0cae\u0cc7\u0cb0\u0cbf\u0c95\u0cbe
+territories.AQ=\u0c85\u0c82\u0c9f\u0cbe\u0cb0\u0ccd\u0c9f\u0cbf\u0c95\u0cbe
+territories.MV=\u0cae\u0cbe\u0cb2\u0ccd\u0ca1\u0cbf\u0cb5 \u0ca6\u0ccd\u0cb5\u0cc0\u0caa\u0c97\u0cb3\u0cc1
+territories.GR=\u0c97\u0ccd\u0cb0\u0cc0\u0cb8\u0ccd
+languages.es=\u0cb8\u0ccd\u0caa\u0ccd\u0caf\u0cbe\u0ca8\u0cbf\u0cb7\u0ccd
+languages.ku=\u0c95\u0cc1\u0cb0\u0ccd\u0ca6\u0cbf\u0cb6\u0ccd
+languages.eo=\u0c8e\u0cb8\u0ccd\u0caa\u0cb0\u0cbe\u0c82\u0c9f\u0ccb
+languages.en=\u0c87\u0c82\u0c97\u0ccd\u0cb2\u0cc0\u0cb7\u0ccd
+languages.el=\u0c97\u0ccd\u0cb0\u0cc0\u0c95\u0ccd
+languages.ko=\u0c95\u0cca\u0cb0\u0cbf\u0caf\u0ca8\u0ccd
 languages.kn=\u0c95\u0ca8\u0ccd\u0ca8\u0ca1
+languages.km=\u0c95\u0cbe\u0c82\u0cac\u0ccb\u0ca1\u0cbf\u0caf\u0ca8\u0ccd
+languages.ka=\u0c9c\u0cbe\u0cb0\u0ccd\u0c9c\u0cbf\u0caf\u0ca8\u0ccd
+languages.zh_Hans=\u0cb8\u0cbf\u0c82\u0caa\u0ccd\u0cb2\u0cbf\u0cab\u0cc8\u0ca1\u0ccd \u0c9a\u0cc8\u0ca8\u0cc0\u0cb8\u0ccd
+languages.zh_Hant=\u0c9f\u0ccd\u0cb0\u0cc6\u0ca1\u0cc0\u0cb6\u0ca8\u0cb2\u0ccd \u0c9a\u0cc8\u0ca8\u0cc0\u0cb8\u0ccd
+languages.jv=\u0c9c\u0cbe\u0cb5\u0ca8\u0cc0\u0cb8\u0ccd
+languages.fil=\u0c9f\u0ccd\u0caf\u0cbe\u0c97\u0cb2\u0cbe\u0c97\u0ccd
+languages.pt=\u0caa\u0ccb\u0cb0\u0ccd\u0c9a\u0cc1\u0c97\u0cc0\u0cb8\u0ccd
+languages.ps=\u0caa\u0cb6\u0ccd\u0ca4\u0cca
+languages.de=\u0c9c\u0cb0\u0ccd\u0cae\u0ca8\u0ccd
+languages.pl=\u0caa\u0ccb\u0cb2\u0cbf\u0cb7\u0ccd
+languages.da=\u0ca1\u0ccd\u0caf\u0cbe\u0ca8\u0cbf\u0cb7\u0ccd
+languages.tlh=\u0c95\u0ccd\u0cb2\u0cbf\u0c82\u0c97\u0ca8\u0ccd
+languages.ja=\u0c9c\u0caa\u0cbe\u0ca8\u0cc0\u0cb8\u0ccd
+languages.vi=\u0cb5\u0cbf\u0caf\u0cc6\u0c9f\u0ccd\u0ca8\u0cbe\u0cae\u0cbf
+languages.cy=\u0cb5\u0cc6\u0cb2\u0ccd\u0cb6\u0ccd
+languages.pa=\u0caa\u0c82\u0c9c\u0cbe\u0cac\u0cbf
+languages.cs=\u0c9a\u0cc6\u0c95\u0ccd
+languages.it=\u0c87\u0c9f\u0cbe\u0cb2\u0cbf\u0caf\u0ca8\u0ccd
+languages.is=\u0c90\u0cb8\u0ccd\u0cb2\u0ccd\u0caf\u0cbe\u0c82\u0ca1\u0cbf\u0c95\u0ccd
+languages.uz=\u0c89\u0c9c\u0ccd\u0cac\u0cc6\u0c95\u0ccd
+languages.or=\u0c92\u0cb0\u0cbf\u0caf\u0cbe
+languages.ur=\u0c89\u0cb0\u0ccd\u0ca6\u0cc1
+languages.ca=\u0c95\u0ccd\u0caf\u0cbe\u0c9f\u0cb2\u0ca8\u0ccd
+languages.id=\u0c87\u0c82\u0ca1\u0ccb\u0ca8\u0cc7\u0cb7\u0ccd\u0caf\u0ca8\u0ccd
+languages.uk=\u0c89\u0c95\u0ccd\u0cb0\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.ia=\u0c87\u0c82\u0c9f\u0cb0\u0ccd\u0cb2\u0cbf\u0c82\u0c97\u0cc1\u0cb5\u0cbe
+languages.oc=\u0c86\u0c95\u0ccd\u0cb8\u0cbf\u0c9f\u0cbe\u0ca8\u0ccd
+languages.hy=\u0c86\u0cb0\u0ccd\u0cae\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.bs=\u0cac\u0ccb\u0cb8\u0ccd\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.br=\u0cac\u0ccd\u0cb0\u0cc6\u0c9f\u0ca8\u0ccd
+languages.hu=\u0cb9\u0c82\u0c97\u0cc7\u0cb0\u0cbf\u0caf\u0ca8\u0ccd
+languages.pt_PT=\u0caa\u0ccb\u0cb0\u0ccd\u0c9a\u0cc1\u0c97\u0cc0\u0cb8\u0ccd (\u0caa\u0ccb\u0cb0\u0ccd\u0c9a\u0cc1\u0c97\u0cb2\u0ccd)
+languages.bn=\u0cac\u0c82\u0c97\u0cbe\u0cb3\u0cbf
+languages.hr=\u0c95\u0ccd\u0cb0\u0cca\u0caf\u0cc7\u0cb6\u0cbf\u0caf\u0ca8\u0ccd
+languages.tw=\u0c9f\u0ccd\u0cb5\u0cbf
+languages.bh=\u0cac\u0cbf\u0cb9\u0cbe\u0cb0\u0cbf
+languages.bg=\u0cac\u0cb2\u0ccd\u0c97\u0cc7\u0cb0\u0cbf\u0caf\u0ca8\u0ccd
+languages.no=\u0ca8\u0cbe\u0cb0\u0ccd\u0cb5\u0cc7\u0c9c\u0cbf\u0caf\u0ca8\u0ccd
+languages.be=\u0cac\u0cc6\u0cb2\u0cb0\u0cc2\u0cb8\u0cbf\u0caf\u0ca8\u0ccd
+languages.nn=\u0ca8\u0cbe\u0cb0\u0ccd\u0cb5\u0cc7\u0c9c\u0cbf\u0caf\u0ca8\u0ccd (\u0ca8\u0cc2\u0ca8\u0cbe\u0cb0\u0ccd\u0cb8\u0ccd\u0c95\u0ccd\u200d)
+languages.hi=\u0cb9\u0cbf\u0c82\u0ca6\u0cbf
+languages.tr=\u0c9f\u0cb0\u0ccd\u0c95\u0cbf\u0cb7\u0ccd
+languages.nl=\u0ca1\u0c9a\u0ccd
+languages.zu=\u0c9c\u0cc1\u0cb2\u0cc1
+languages.he=\u0cb9\u0cbf\u0cac\u0ccd\u0cb0\u0cc2
+languages.tk=\u0ca4\u0cc1\u0cb0\u0ccd\u0c95\u0ccd\u0cae\u0ca8\u0ccd
+languages.ne=\u0ca8\u0cc7\u0caa\u0cbe\u0cb3\u0cbf
+languages.az=\u0c85\u0c9c\u0cb0\u0ccd\u0cac\u0cc8\u0c9c\u0cbe\u0ca8\u0cbf
+languages.ti=\u0ca4\u0cbf\u0c97\u0ccd\u0cb0\u0cbf\u0ca8\u0ccd\u0caf
+languages.th=\u0ca5\u0cbe\u0caf\u0ccd
+languages.te=\u0ca4\u0cc6\u0cb2\u0cc1\u0c97\u0cc1
+languages.zh=\u0c9a\u0cc8\u0ca8\u0cc0\u0cb8\u0ccd
+languages.as=\u0c85\u0cb8\u0ccd\u0cb8\u0cbe\u0cae\u0cc0\u0cb8\u0ccd
+languages.ar=\u0c85\u0cb0\u0cc7\u0cac\u0cbf\u0c95\u0ccd
+languages.ta=\u0ca4\u0cae\u0cbf\u0cb3\u0cc1
+languages.gu=\u0c97\u0cc1\u0c9c\u0cb0\u0cbe\u0ca4\u0cbf
+languages.ast=\u0c86\u0cb8\u0ccd\u0c9f\u0cc1\u0cb0\u0cbf\u0caf\u0ca8\u0ccd
+languages.am=\u0c85\u0cae\u0ccd\u0cb9\u0cbe\u0cb0\u0cbf\u0c95\u0ccd
+languages.mt=\u0cae\u0cbe\u0cb2\u0ccd\u0c9f\u0cc0\u0cb8\u0ccd
+languages.ms=\u0cae\u0cb2\u0caf
+languages.gn=\u0c97\u0ccd\u0cb5\u0cbe\u0cb0\u0cbe\u0ca8\u0cbf
+languages.sw=\u0cb8\u0ccd\u0cb5\u0cbe\u0cb9\u0cbf\u0cb2\u0cbf
+languages.mr=\u0cae\u0cb0\u0cbe\u0ca0\u0cbf
+languages.sv=\u0cb8\u0ccd\u0cb5\u0cc0\u0ca1\u0cbf\u0cb7\u0ccd
+languages.gl=\u0c97\u0ccd\u0caf\u0cbe\u0cb2\u0cc0\u0cb7\u0cbf\u0caf\u0ca8\u0ccd
+languages.su=\u0cb8\u0cc1\u0c82\u0ca6\u0ca8\u0cc0\u0cb8\u0ccd
+languages.af=\u0c85\u0cab\u0ccd\u0cb0\u0cbf\u0c95\u0cbe\u0ca8\u0ccd\u0cb8\u0ccd\u200d
+languages.st=\u0cb8\u0cc6\u0cb8\u0cca\u0ca4\u0cca
+languages.mn=\u0cae\u0c82\u0c97\u0ccb\u0cb2\u0cbf\u0caf\u0ca8\u0ccd
+languages.sr=\u0cb8\u0cb0\u0ccd\u0cac\u0cbf\u0caf\u0ca8\u0ccd
+languages.sq=\u0c86\u0cb2\u0ccd\u0cac\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.ml=\u0cae\u0cb2\u0cc6\u0caf\u0cbe\u0cb3\u0c82
+languages.mk=\u0cae\u0ccd\u0caf\u0cbe\u0cb8\u0cc6\u0ca1\u0ccb\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.so=\u0cb8\u0cca\u0cae\u0cbe\u0cb2\u0cbf
+languages.gd=\u0cb8\u0ccd\u0c95\u0cbe\u0c9f\u0cbf\u0cb6\u0ccd \u0c97\u0ccd\u0caf\u0cbe\u0cb2\u0cbf\u0c95\u0ccd
+languages.sl=\u0cb8\u0ccd\u0cb2\u0cca\u0cb5\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.sk=\u0cb8\u0ccd\u0cb2\u0cca\u0cb5\u0cbe\u0c95\u0ccd
+languages.ga=\u0c90\u0cb0\u0cbf\u0cb7\u0ccd
+languages.si=\u0cb8\u0cbf\u0c82\u0cb9\u0cb3
+languages.sh=\u0cb8\u0cb0\u0ccd\u0cac\u0ccb-\u0c95\u0ccd\u0cb0\u0cca\u0caf\u0cc7\u0cb6\u0cbf\u0caf\u0ca8\u0ccd
+languages.pt_BR=\u0caa\u0ccb\u0cb0\u0ccd\u0c9a\u0cc1\u0c97\u0cc0\u0cb8\u0ccd(\u0cac\u0ccd\u0cb0\u0cc6\u0c9c\u0cbf\u0cb2\u0ccd)
+languages.yi=\u0caf\u0cbf\u0ca6\u0ccd\u0ca6\u0cbf\u0cb6\u0ccd
+languages.sd=\u0cb8\u0cbf\u0c82\u0ca7\u0cbf
+languages.fy=\u0cab\u0ccd\u0cb0\u0cbf\u0cb8\u0cbf\u0caf\u0ca8\u0ccd
+languages.sa=\u0cb8\u0c82\u0cb8\u0ccd\u0c95\u0cc3\u0ca4
+languages.fr=\u0cab\u0ccd\u0cb0\u0cc6\u0c82\u0c9a\u0ccd
+languages.lv=\u0cb2\u0cbe\u0c9f\u0ccd\u0cb5\u0cbf\u0caf\u0ca8\u0ccd
+languages.lt=\u0cb2\u0cbf\u0ca4\u0cc1\u0cb5\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.fo=\u0cab\u0cc6\u0cb0\u0ccb\u0caf\u0cbf\u0cb8\u0ccd
+languages.ru=\u0cb0\u0cb7\u0cbf\u0caf\u0ca8\u0ccd
+languages.lo=\u0cb2\u0cbe\u0cb5\u0ccb
+languages.ln=\u0cb2\u0cbf\u0c82\u0c97\u0cbe\u0cb2
+languages.fi=\u0cab\u0cbf\u0ca8\u0ccd\u0ca8\u0cbf\u0cb7\u0ccd
+languages.ro=\u0cb0\u0cca\u0cae\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.fa=\u0caa\u0cb0\u0ccd\u0cb7\u0cbf\u0caf\u0ca8\u0ccd
+languages.und=\u0c97\u0cca\u0ca4\u0ccd\u0ca4\u0cbf\u0cb0\u0ca6 \u0c85\u0ca5\u0cb5 \u0c85\u0cae\u0cbe\u0ca8\u0ccd\u0caf \u0cad\u0cbe\u0cb7\u0cc6
+languages.la=\u0cb2\u0ccd\u0caf\u0cbe\u0c9f\u0cbf\u0ca8\u0ccd
+languages.xh=\u0c95\u0ccd\u0cb7\u0ccb\u0cb8
+languages.eu=\u0cac\u0cbe\u0cb8\u0ccd\u0c95\u0ccd
+languages.ky=\u0c95\u0cbf\u0cb0\u0ccd\u0c97\u0cbf\u0c9c\u0ccd
+languages.et=\u0c8e\u0cb8\u0ccd\u0c9f\u0ccb\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
index ee2974d0bb37d7081f267ba9cd66b48564e5103f..9b31ee926c57df10d0f938b1e853a8221c0b3540 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
 currenciesDisplayName.YDD=\uc608\uba58 \ub514\ub098\ub974
-currenciesDisplayName.TWD=\ub300\ub9cc \uc2e0\uad8c \ub2ec\ub7ec
 currenciesDisplayName.KES=\ucf00\ub0d0 \uc2e4\ub9c1
-currenciesDisplayName.BYB=\ubca8\ub77c\ub8e8\uc2a4 \uc2e0\uad8c \ub8e8\ube14 (1994-1999)
+currenciesDisplayName.TWD=\ub274 \ud0c0\uc774\uc644 \ub2ec\ub7ec
 currenciesDisplayName.LKR=\uc2a4\ub9ac\ub791\uce74 \ub8e8\ud53c
-currenciesDisplayName.RWF=\ub974\uc644\ub2e4 \ud504\ub791
+currenciesDisplayName.BYB=\ubca8\ub77c\ub8e8\uc2a4 \uc2e0\uad8c \ub8e8\ube14 (1994-1999)
 currenciesDisplayName.TJS=\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4 \uc18c\ubaa8\ub2c8
-currenciesDisplayName.SDP=\uc218\ub2e8 \ud30c\uc6b4\ub4dc
-currenciesDisplayName.TJR=\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4 \ub8e8\ube14
+currenciesDisplayName.RWF=\ub974\uc644\ub2e4 \ud504\ub791
 currenciesDisplayName.ERN=\uc5d0\ub9ac\ud2b8\ub9ac\uc544 \ub098\ud06c\ud30c
-currenciesDisplayName.AFN=\uc544\ud504\uac00\ub2c8
+currenciesDisplayName.TJR=\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4 \ub8e8\ube14
+currenciesDisplayName.SDP=\uc218\ub2e8 \ud30c\uc6b4\ub4dc
 currenciesDisplayName.GRD=\uadf8\ub9ac\uc2a4 \ub4dc\ub77c\ud06c\ub9c8
+currenciesDisplayName.AFN=\uc544\ud504\uac00\ub2c8
 currenciesDisplayName.IEP=\uc544\uc77c\ub79c\ub4dc \ud30c\uc6b4\ub4dc
 currenciesDisplayName.ARS=\uc544\ub974\ud5e8\ud2f0\ub098 \ud398\uc18c
-currenciesDisplayName.SDD=\uc218\ub2e8 \ub514\ub098\ub974
 currenciesDisplayName.ARP=\uc544\ub974\ud5e8\ud2f0\ub098 \ud398\uc18c (1983-1985)
+currenciesDisplayName.SDD=\uc218\ub2e8 \ub514\ub098\ub974
 currenciesDisplayName.GEL=\uadf8\ub8e8\uc9c0\uc57c \ub77c\ub9ac
-currenciesDisplayName.AFA=\uc544\ud504\uac00\ub2c8 (1927-2002)
 currenciesDisplayName.GEK=\uadf8\ub8e8\uc9c0\uc57c \uc9c0\ud3d0 \ub77c\ub9ac\ud2b8
+currenciesDisplayName.AFA=\uc544\ud504\uac00\ub2c8 (1927-2002)
 currenciesDisplayName.CRC=\ucf54\uc2a4\ud0c0\ub9ac\uce74 \ucf5c\ub860
 currenciesDisplayName.FKP=\ud3ec\ud074\ub79c\ub4dc\uc81c\ub3c4 \ud30c\uc6b4\ub4dc
 currenciesDisplayName.EEK=\uc5d0\uc2a4\ud1a0\ub2c8\uc544 \ud06c\ub8ec
-currenciesDisplayName.HKD=\ud64d\ucf69 \ub2ec\ub7ec
 currenciesDisplayName.MDL=\ubab0\ub3c4\ubc14 \ub808\uc774
-currenciesDisplayName.ARA=\uc544\ub974\ud5e8\ud2f0\ub098 \uc624\uc2a4\ud2b8\ub784
+currenciesDisplayName.HKD=\ud64d\ucf69 \ub2ec\ub7ec
 currenciesDisplayName.IQD=\uc774\ub77c\ud06c \ub514\ub098\ub974
+currenciesDisplayName.ARA=\uc544\ub974\ud5e8\ud2f0\ub098 \uc624\uc2a4\ud2b8\ub784
 currenciesDisplayName.SCR=\uc138\uc774\uc274 \ub8e8\ud53c
 currenciesDisplayName.VUV=\ubc14\ub204\uc544\ud22c \ubc14\ud22c
-currenciesDisplayName.DKK=\ub374\ub9c8\ud06c \ud06c\ub85c\ub124
 currenciesDisplayName.KPW=\uc870\uc120 \ubbfc\uc8fc\uc8fc\uc758 \uc778\ubbfc \uacf5\ud654\uad6d \uc6d0
+currenciesDisplayName.DKK=\ub374\ub9c8\ud06c \ud06c\ub85c\ub124
 currenciesDisplayName.IDR=\uc778\ub3c4\ub124\uc2dc\uc544 \ub8e8\ud53c\uc544
-currenciesDisplayName.LVR=\ub77c\ud2b8\ube44\uc544 \ub8e8\ube14
 currenciesDisplayName.SOS=\uc18c\ub9d0\ub9ac\uc544 \uc2e4\ub9c1
-currenciesDisplayName.AED=\uc544\ub78d\uc5d0\ubbf8\ub808\uc774\ud2b8 \ub514\ub098\ub974
-currenciesDisplayName.BWP=\ubcf4\uce20\uc640\ub098 \ud3f4\ub77c
+currenciesDisplayName.LVR=\ub77c\ud2b8\ube44\uc544 \ub8e8\ube14
+currenciesDisplayName.AED=\uc544\ub78d\uc5d0\ubbf8\ub9ac\ud2b8 \ub514\ub974\ud568
 currenciesDisplayName.LVL=\ub77c\ud2b8\ube44\uc544 \ub77c\ud2b8
+currenciesDisplayName.BWP=\ubcf4\uce20\uc640\ub098 \ud3f4\ub77c
 currenciesDisplayName.RUR=\ub7ec\uc2dc\uc544 \ub8e8\ube14 (1991-1998)
 currenciesDisplayName.NIO=\ub2c8\uce74\ub77c\uacfc \ucf54\ub974\ub3c4\ubc14 \uc624\ub85c
-currenciesDisplayName.ADP=\uc548\ub3c4\ub77c \ud398\uc138\ud0c0
-currenciesDisplayName.FJD=\ud53c\uc9c0 \ub2ec\ub7ec
+currenciesDisplayName.XTS=\ud14c\uc2a4\ud2b8 \ud1b5\ud654 \ucf54\ub4dc
 currenciesDisplayName.MOP=\ub9c8\uce74\uc624 \ud30c\ud0c0\uce74
+currenciesDisplayName.FJD=\ud53c\uc9c0 \ub2ec\ub7ec
+currenciesDisplayName.ADP=\uc548\ub3c4\ub77c \ud398\uc138\ud0c0
 currenciesDisplayName.RUB=\ub7ec\uc2dc\uc544 \ub8e8\ube14
 currenciesDisplayName.CDF=\ucf69\uace0 \ud504\ub791 \ucf69\uace8\ub77c\uc2a4
 currenciesDisplayName.NIC=\ub2c8\uce74\ub77c\uacfc \ucf54\ub974\ub3c4\ubc14
 currenciesDisplayName.DJF=\uc9c0\ubd80\ud2f0 \ud504\ub791
-currenciesDisplayName.SBD=\uc194\ub85c\ubaac \uc81c\ub3c4 \ub2ec\ub7ec
 currenciesDisplayName.UZS=\uc6b0\uc988\ubca0\ud0a4\uc2a4\ud0c4 \uc228
+currenciesDisplayName.SBD=\uc194\ub85c\ubaac \uc81c\ub3c4 \ub2ec\ub7ec
+currenciesDisplayName.LUL=\ub8e9\uc148\ubd80\ub974\ud06c \ud504\ub791(\uc7ac\uc815)
 currenciesDisplayName.ECS=\uc5d0\ucfe0\uc544\ub3c4\ub974 \uc218\ud06c\ub808
-currenciesDisplayName.PHP=\ud544\ub9ac\ud540 \ud398\uc18c
 currenciesDisplayName.THB=\ud0dc\uad6d \ubc14\ud2b8
+currenciesDisplayName.PHP=\ud544\ub9ac\ud540 \ud398\uc18c
 currenciesDisplayName.LUF=\ub8e9\uc148\ubd80\ub974\ud06c \ud504\ub791
+currenciesDisplayName.RHD=\ub85c\ub514\uc9c0\uc544 \ub2ec\ub7ec
+currenciesDisplayName.LUC=\ub8e9\uc148\ubd80\ub974\ud06c \ud504\ub791(\ud0dc\ud658)
 currenciesDisplayName.FIM=\ud540\ub780\ub4dc \ub9c8\ub974\uce74
 currenciesDisplayName.TTD=\ud2b8\ub9ac\ub2c8\ub2e4\ub4dc \ud1a0\ubc14\uace0 \ub2ec\ub7ec
 currenciesDisplayName.SZL=\uc2a4\uc640\uc9c8\ub780\ub4dc \ub9b4\ub791\uac8c\ub2c8
 currenciesDisplayName.MNT=\ubabd\uace8 \ud22c\uadf8\ub9ad
+currenciesDisplayName.UAK=\uc6b0\ud06c\ub77c\uc774\ub098 \uce74\ubcf4\ubc14\ub124\uce20
 currenciesDisplayName.SAR=\uc0ac\uc6b0\ub514\uc544\ub77c\ube44\uc544 \ub9ac\uc584
 currenciesDisplayName.UAH=\uc6b0\ud06c\ub77c\uc774\ub098 \uadf8\ub9ac\ube0c\ub098
 currenciesDisplayName.HUF=\ud5dd\uac00\ub9ac \ud3ec\ub9b0\ud2b8
-currenciesDisplayName.COP=\ucf5c\ub86c\ube44\uc544 \ud398\uc18c
 currenciesDisplayName.QAR=\uce74\ud0c0\ub974 \ub9ac\uc584
+currenciesDisplayName.COP=\ucf5c\ub86c\ube44\uc544 \ud398\uc18c
 currenciesDisplayName.LTT=\ub8e9\uc148\ubd80\ub974\ud06c \ud0c0\ub85c\ub098
 currenciesDisplayName.PTE=\ud3ec\ub974\ud22c\uac08 \uc5d0\uc2a4\ucfe0\ub3c4
-currenciesDisplayName.AOR=\uc559\uace8\ub77c \ucf74\uc790 Reajustado (1995-1999)
 currenciesDisplayName.UYU=\uc6b0\ub8e8\uacfc\uc774 \ud398\uc18c \uc6b0\ub8e8\uacfc\uc694
+currenciesDisplayName.AOR=\uc559\uace8\ub77c \ucf74\uc790 Reajustado (1995-1999)
 currenciesDisplayName.GBP=\uc601\uad6d\ub839 \ud30c\uc6b4\ub4dc \uc2a4\ud138\ub9c1
-currenciesDisplayName.BIF=\ubd80\ub8ec\ub514 \ud504\ub791
-currenciesDisplayName.INR=\uc778\ub3c4 \ub8e8\ud53c
 currenciesDisplayName.ZRZ=\uc790\uc774\ub974 \uc790\uc774\ub974
-currenciesDisplayName.AON=\uc559\uace8\ub77c \uc2e0\uadc4 \ucf74\uc790 (1990-2000)
-currenciesDisplayName.LTL=\ub9ac\ud22c\uc544\ub2c8\uc544 \ub9ac\ud0c0
+currenciesDisplayName.INR=\uc778\ub3c4 \ub8e8\ud53c
+currenciesDisplayName.BIF=\ubd80\ub8ec\ub514 \ud504\ub791
 currenciesDisplayName.XFU=\ud504\ub791\uc2a4 UIC-\ud504\ub791
-currenciesDisplayName.KZT=\uce74\uc790\ud750\uc2a4\ud0c4 \ud150\uac8c
-currenciesDisplayName.MZM=\ubaa8\uc7a0\ube44\ud06c \uba54\ud2f0\uce7c
+currenciesDisplayName.MZN=\ubaa8\uc7a0\ube44\ud06c \uba54\ud2f0\uce7c
+currenciesDisplayName.LTL=\ub9ac\ud22c\uc544\ub2c8\uc544 \ub9ac\ud0c0
+currenciesDisplayName.AON=\uc559\uace8\ub77c \uc2e0\uadc4 \ucf74\uc790 (1990-2000)
 currenciesDisplayName.UYP=\uc6b0\ub8e8\uacfc\uc774 \ud398\uc18c (1975-1993)
+currenciesDisplayName.MZM=\ubaa8\uc7a0\ube44\ud06c \uba54\ud2f0\uce7c
+currenciesDisplayName.KZT=\uce74\uc790\ud750\uc2a4\ud0c4 \ud150\uac8c
 currenciesDisplayName.AOK=\uc559\uace8\ub77c \ucf74\uc790 (1977-1990)
-currenciesDisplayName.BUK=\ubc84\ub9c8 \ucc28\ud2b8
 currenciesDisplayName.GNS=\uae30\ub2c8 \uc2dc\ub9ac
+currenciesDisplayName.BUK=\ubc84\ub9c8 \ucc28\ud2b8
 currenciesDisplayName.XFO=\ud504\ub791\uc2a4 Gold \ud504\ub791
 currenciesDisplayName.PGK=\ud30c\ud478\uc544\ub274\uae30\ub2c8 \ud0a4\ub098
 currenciesDisplayName.SYP=\uc2dc\ub9ac\uc544 \ud30c\uc6b4\ub4dc
-currenciesDisplayName.MZE=\ubaa8\uc7a0\ube44\ud06c \uc5d0\uc2a4\ucfe0\ub3c4
 currenciesDisplayName.OMR=\uc624\ub9cc \ub9ac\uc584
-currenciesDisplayName.NGN=\ub2c8\uc81c\ub974 \ub098\uc774\ub77c
+currenciesDisplayName.MZE=\ubaa8\uc7a0\ube44\ud06c \uc5d0\uc2a4\ucfe0\ub3c4
 currenciesDisplayName.ZRN=\uc790\uc774\ub974 \uc2e0\uad8c \uc790\uc774\ub974
-currenciesDisplayName.AOA=\uc559\uace8\ub77c \ucf74\uc790
+currenciesDisplayName.NGN=\ub2c8\uc81c\ub974 \ub098\uc774\ub77c
 currenciesDisplayName.CNY=\uc911\uad6d \uc704\uc548 \uc778\ubbfc\ud3d0
+currenciesDisplayName.AOA=\uc559\uace8\ub77c \ucf74\uc790
 currenciesDisplayName.MAF=\ubaa8\ub85c\ucf54 \ud504\ub791
+currenciesDisplayName.RSD=\uc138\ub974\ube44\uc544 \ub514\ub098\ub974
 currenciesDisplayName.GNF=\uae30\ub2c8 \ud504\ub791
+currenciesDisplayName.MAD=\ubaa8\ub85c\ucf54 \ub514\ub974\ud568
 currenciesDisplayName.HTG=\ud558\uc774\ud2f0 \uad6c\ub974\ub4dc
-currenciesDisplayName.MAD=\ubaa8\ub85c\ucf54 \ub514\ub818
-currenciesDisplayName.TRY=\uc0c8\ub85c\uc6b4 \ud130\ud0a4 \ub9ac\ub77c
+currenciesDisplayName.TRY=\uc2e0 \ud130\ud0a4 \ub9ac\ub77c
 currenciesDisplayName.MMK=\ubbf8\uc580\ub9c8 \ud0a4\uc58f
-currenciesDisplayName.MYR=\ub9d0\ub808\uc774\uc9c0\uc544 \ub9c1\uae30\ud2b8
-currenciesDisplayName.LSL=\ub808\uc18c\ud1a0 \ub85c\ud2f0
+currenciesDisplayName.XRE=RINET \uae30\uae08
+currenciesDisplayName.MYR=\ub9d0\ub808\uc774\uc2dc\uc544 \ub9c1\uae43
+currenciesDisplayName.LSM=\ub85c\ud2f0
 currenciesDisplayName.XEU=\uc720\ub7fd \ud658\uc728 \ub2e8\uc704
-currenciesDisplayName.BHD=\ubc14\ub808\uc778 \ub514\ub098\ub974
+currenciesDisplayName.LSL=\ub808\uc18c\ud1a0 \ub85c\ud2f0
 currenciesDisplayName.SLL=\uc2dc\uc5d0\ub77c\ub9ac\uc628 \ub9ac\uc628
+currenciesDisplayName.BHD=\ubc14\ub808\uc778 \ub514\ub098\ub974
 currenciesDisplayName.BTN=\ubd80\ud0c4 \ub20c\ud22c\ub214
-currenciesDisplayName.TRL=\ud130\uae30 \ub9ac\ub77c
+currenciesDisplayName.TRL=\uace0 \ud130\ud0a4 \ub9ac\ub77c
 currenciesDisplayName.KMF=\ucf54\ubaa8\ub974 \ud504\ub791
-currenciesDisplayName.ANG=\ub124\ub378\ub780\ub4dc \uc548\ud2f8\ub808\uc2a4 \uad74\ub374
 currenciesDisplayName.CZK=\uccb4\ucf54 \uacf5\ud654\uad6d \ucf54\ub8e8\ub098
-currenciesDisplayName.AZM=\uc544\uc81c\ub974\ubc14\uc774\uc820 \ub9c8\ub098\ud2b8
+currenciesDisplayName.ANG=\ub124\ub35c\ub780\ub4dc \uc564\ud2f0\ub9ac\uc5b8 \uae38\ub354
+currenciesDisplayName.AZN=\uc544\uc81c\ub974\ubc14\uc774\uc794 \ub9c8\ub098\ud2b8
+currenciesDisplayName.AZM=\uc544\uc81c\ub974\ubc14\uc774\uc820 \ub9c8\ub098\ud2b8(1993-2006)
 currenciesDisplayName.KYD=\ucf00\uc774\ub9e8 \uc81c\ub3c4 \ub2ec\ub7ec
 currenciesDisplayName.GMD=\uac10\ube44\uc544 \ub2ec\ub77c\uc2dc
-currenciesDisplayName.BGN=\ubd88\uac00\ub9ac\uc544 \uc2e0\uad8c \ub81b
+currenciesDisplayName.BGN=\ubd88\uac00\ub9ac\uc544 \uc2e0\uad8c \ub808\ubc14
+currenciesDisplayName.MXV=\uba55\uc2dc\ucf54 UDI(Unidad de Inversion)
 currenciesDisplayName.CAD=\uce90\ub098\ub2e4 \ub2ec\ub7ec
 currenciesDisplayName.BGL=\ubd88\uac00\ub9ac\uc544 \ub3d9\uc804 \ub81b
 currenciesDisplayName.VEB=\ubca0\ub124\uc8fc\uc5d8\ub77c \ubcfc\ub9ac\ubc14\ub974
 currenciesDisplayName.MLF=\ub9d0\ub9ac \ud504\ub791
-currenciesDisplayName.ILS=\uc774\uc2a4\ub77c\uc5d8 \uc2e0\uad8c \uc138\ucf08
 currenciesDisplayName.MXP=\uba55\uc2dc\ucf54 \uc2e4\ubc84 \ud398\uc18c (1861-1992)
+currenciesDisplayName.ILS=\uc774\uc2a4\ub77c\uc5d8 \uc2e0\uad8c \uc138\ucf08
 currenciesDisplayName.PES=\ud398\ub8e8 \uc194
-currenciesDisplayName.GYD=\uac00\uc774\uc544\ub098 \ub2ec\ub7ec
 currenciesDisplayName.MXN=\uba55\uc2dc\ucf54 \ud398\uc18c
+currenciesDisplayName.GYD=\uac00\uc774\uc544\ub098 \ub2ec\ub7ec
 currenciesDisplayName.ILP=\uc774\uc2a4\ub77c\uc5d8 \ud30c\uc6b4\ub4dc
-currenciesDisplayName.SKK=\uc2ac\ub85c\ubc14\ud0a4\uc544 \ucf54\ub8e8\ub098
 currenciesDisplayName.CYP=\uc2f8\uc774\ud504\ub7ec\uc2a4 \ud30c\uc6b4\ub4dc
+currenciesDisplayName.SKK=\uc2ac\ub85c\ubc14\ud0a4\uc544 \ucf54\ub8e8\ub098
 currenciesDisplayName.XDR=\ud2b9\ubcc4\uc778\ucd9c\uad8c
-currenciesDisplayName.PEN=\ud398\ub8e8 \uc194 \ub204\uc5d0\ubcf4
+currenciesDisplayName.PEN=\ud398\ub8e8 \ub204\uc5d0\ubcf4\uc194
 currenciesDisplayName.LRD=\ub77c\uc774\ubca0\ub9ac\uc544 \ub2ec\ub7ec
 currenciesDisplayName.PEI=\ud398\ub8e8 \uc778\ud2f0
 currenciesDisplayName.AMD=\uc544\ub974\uba54\ub2c8\uc544 \ub4dc\ub78c
 currenciesDisplayName.BSD=\ubc14\ud558\ub9c8 \ub2ec\ub7ec
+currenciesDisplayName.XPT=\ubc31\uae08
 currenciesDisplayName.HRK=\ud06c\ub85c\uc544\ud2f0\uc544 \ucfe0\ub098
-currenciesDisplayName.CLP=\uce60\ub808 \ud398\uc18c
 currenciesDisplayName.HRD=\ud06c\ub85c\uc544\ud2f0\uc544 \ub514\ub098\ub974
+currenciesDisplayName.CLP=\uce60\ub808 \ud398\uc18c
+currenciesDisplayName.XPF=CFP \ud504\ub791
 currenciesDisplayName.FRF=\ud504\ub791\uc2a4 \ud504\ub791
+currenciesDisplayName.XPD=\ud314\ub77c\ub4d0
 currenciesDisplayName.BRR=\ube0c\ub77c\uc9c8 \ud06c\ub8e8\uc81c\uc774\ub8e8
 currenciesDisplayName.MKD=\ub9c8\ucf00\ub3c4\ub2c8\uc544 \ub514\ub098\ub974
 currenciesDisplayName.ALL=\uc54c\ubc14\ub2c8\uc544 \ub808\ud06c
@@ -143,28 +169,35 @@ currenciesDisplayName.BRL=\ube0c\ub77c\uc9c8 \ub808\uc54c
 currenciesDisplayName.TPE=\ud2f0\ubaa8\ub974 \uc5d0\uc2a4\ucfe0\ub3c4
 currenciesDisplayName.BRE=\ube0c\ub77c\uc9c8 \ud06c\ub8e8\uc81c\uc774\ub8e8 (1990-1993)
 currenciesDisplayName.BRC=\ube0c\ub77c\uc9c8 \ud06c\ub8e8\uc790\ub450
-currenciesDisplayName.BRB=\ubcfc\ub9ac\ube44\uc544\ub178  \ud06c\ub8e8\uc81c\uc774\ub8e8 \ub178\ubcf4 (1967-1986)
+currenciesDisplayName.BRB=\ubcfc\ub9ac\ube44\uc544\ub178 \ud06c\ub8e8\uc81c\uc774\ub8e8 \ub178\ubcf4 (1967-1986)
 currenciesDisplayName.DEM=\ub3c5\uc77c \ub9c8\ub974\ud06c
 currenciesDisplayName.KWD=\ucfe0\uc6e8\uc774\ud2b8 \ub514\ub098\ub974
 currenciesDisplayName.XCD=\ub3d9\uce74\ub9ac\ube0c \ub2ec\ub7ec
 currenciesDisplayName.NPR=\ub124\ud314 \ub8e8\ud53c
 currenciesDisplayName.GWP=\uae30\ub124\ube44\uc3d8 \ud398\uc18c
-currenciesDisplayName.YUN=\uc720\uace0\uc2ac\ub77c\ube44\uc544 \uc804\ud658 \ub514\ub098\ub974
+currenciesDisplayName.YUN=\uc720\uace0\uc2ac\ub77c\ube44\uc544 \ub514\ub098\ub974(\ud0dc\ud658)
 currenciesDisplayName.SVC=\uc5d8\uc0b4\ubc14\ub3c4\ub974 \ucf5c\ub860
 currenciesDisplayName.YUM=\uc720\uace0\uc2ac\ub77c\ube44\uc544 \ub178\ube44 \ub514\ub098\ub974
 currenciesDisplayName.BEL=\ubca8\uae30\uc5d0 \ud504\ub791 (\uae08\uc735)
 currenciesDisplayName.SIT=\uc2ac\ub85c\ubca0\ub2c8\uc544 \ud1a8\ub77c\ub974
-currenciesDisplayName.JPY=\uc77c\ubcf8 \uc5d4\ud654
+currenciesDisplayName.JPY=\uc77c\ubcf8 \uc5d4
+currenciesDisplayName.XOF=CFA \ud504\ub791 BCEAO
 currenciesDisplayName.MVR=\ubab0\ub514\ube0c \uc81c\ub3c4 \ub8e8\ud53c\uc544
-currenciesDisplayName.GWE=\ud3ec\ub974\ud22c\uac08\ub839 \uae30\ub2c8 \uc5d0\uc2a4\ucfe0\ub3c4
 currenciesDisplayName.BEF=\ubca8\uae30\uc5d0 \ud504\ub791
+currenciesDisplayName.GWE=\ud3ec\ub974\ud22c\uac08\ub839 \uae30\ub2c8 \uc5d0\uc2a4\ucfe0\ub3c4
+currenciesDisplayName.TOP=\ud1b5\uac00 \ud30c\uc559\uac00
 currenciesDisplayName.YUD=\uc720\uace0\uc2ac\ub77c\ube44\uc544 \ub3d9\uc804 \ub514\ub098\ub974
 currenciesDisplayName.BEC=\ubca8\uae30\uc5d0 \ud504\ub791 (\ud0dc\ud658)
 currenciesDisplayName.SUR=\uc18c\ub828 \ub8e8\ube14
+currenciesDisplayName.RON=\ub8e8\ub9c8\ub2c8\uc544 \ub808\uc6b0
 currenciesDisplayName.ROL=\ub8e8\ub9c8\ub2c8\uc544 \ub808\uc774
-currenciesDisplayName.DDM=\ub3d9\ub3c5 \uc624\uc2a4\ud2b8\ub9c8\ub974\ud06c
 currenciesDisplayName.BDT=\ubc29\uae00\ub77c\ub370\uc2dc \ud0c0\uce74
+currenciesDisplayName.DDM=\ub3d9\ub3c5 \uc624\uc2a4\ud2b8\ub9c8\ub974\ud06c
+currenciesDisplayName.XBD=\uc720\ub7fd \uacc4\uc0b0 \ub2e8\uc704 (XBD)
 currenciesDisplayName.AWG=\uc544\ub8e8\ubc14 \uae38\ub354
+currenciesDisplayName.XBC=\uc720\ub7fd \uacc4\uc0b0 \ub2e8\uc704 (XBC)
+currenciesDisplayName.XBB=\uc720\ub7fd \ud1b5\ud654 \ub3d9\ub9f9
+currenciesDisplayName.XBA=\uc720\ub974\ucf54 (\uc720\ub7fd \ud68c\uacc4 \ub2e8\uc704)
 currenciesDisplayName.NOK=\ub178\ub974\uc6e8\uc774 \ud06c\ub85c\ub124
 currenciesDisplayName.MUR=\ubaa8\ub9ac\uc154\uc2a4 \ub8e8\ud53c
 currenciesDisplayName.ZAR=\ub0a8\uc544\ud504\ub9ac\uce74 \ub79c\ub4dc
@@ -177,52 +210,60 @@ currenciesDisplayName.GIP=\uc9c0\ube0c\ub864\ud130 \ud30c\uc6b4\ub4dc
 currenciesDisplayName.TND=\ud280\ub2c8\uc9c0 \ub514\ub098\ub974
 currenciesDisplayName.CVE=\uce74\ubcf4\ubca0\ub974\ub370 \uc5d0\uc2a4\ucfe0\ub3c4
 currenciesDisplayName.UGX=\uc6b0\uac04\ub2e4 \uc2e4\ub9c1
+currenciesDisplayName.XAG=\uc740
 currenciesDisplayName.ZMK=\uc7d8\ube44\uc544 \ucf70\uccd0
 currenciesDisplayName.JOD=\uc694\ub974\ub2e8 \ub514\ub098\ub974
+currenciesDisplayName.XAF=CFA \ud504\ub791 BEAC
 currenciesDisplayName.LBP=\ub808\ubc14\ub17c \ud30c\uc6b4\ub4dc
 currenciesDisplayName.UGS=\uc6b0\uac04\ub2e4 \uc2e4\ub9c1 (1966-1987)
 currenciesDisplayName.STD=\uc0c1\ud22c\uba54 \ud504\ub9b0\uc2dc\ud398 \ub3c4\ube0c\ub77c
 currenciesDisplayName.WST=\uc11c \uc0ac\ubaa8\uc544 \ud0c8\ub77c
 currenciesDisplayName.KHR=\uce84\ubcf4\ub514\uc544 \ub9ac\uc584
-currenciesDisplayName.EUR=\uc720\ub85c\ud654
 currenciesDisplayName.DOP=\ub3c4\ubbf8\ub2c8\uce74 \ud398\uc18c
+currenciesDisplayName.EUR=\uc720\ub85c\ud654
 currenciesDisplayName.MTP=\ubab0\ud0c0 \ud30c\uc6b4\ub4dc
+currenciesDisplayName.USS=\ubbf8\uad6d \ub2ec\ub7ec(\ub2f9\uc77c)
 currenciesDisplayName.BOP=\ubcfc\ub9ac\ube44\uc544\ub178 \ud398\uc18c
-currenciesDisplayName.MTL=\ubab0\ud0c0 \ub9ac\ub77c
 currenciesDisplayName.CUP=\ucfe0\ubc14 \ud398\uc18c
+currenciesDisplayName.MTL=\ubab0\ud0c0 \ub9ac\ub77c
 currenciesDisplayName.TMM=\ud22c\ub974\ud06c\uba54\ub2c8\uc2a4\ud0c4 \ub9c8\ub098\ud2b8
+currenciesDisplayName.USN=\ubbf8\uad6d \ub2ec\ub7ec(\uc775\uc77c)
 currenciesDisplayName.SGD=\uc2f1\uac00\ud3f4 \ub2ec\ub7ec
 currenciesDisplayName.NZD=\ub274\uc9c8\ub79c\ub4dc \ub2ec\ub7ec
 currenciesDisplayName.USD=\ubbf8\uad6d \ub2ec\ub7ec
-currenciesDisplayName.HNL=\uc628\ub450\ub77c\uc2a4 \ub818\ud53c\ub77c
 currenciesDisplayName.BOB=\ubcfc\ub9ac\ube44\uc544\ub178
+currenciesDisplayName.HNL=\uc628\ub450\ub77c\uc2a4 \ub818\ud53c\ub77c
+currenciesDisplayName.CHW=WIR \ud504\ub791
 currenciesDisplayName.ITL=\uc774\ud0c8\ub9ac\uc544 \ub9ac\ub77c
 currenciesDisplayName.PAB=\ud30c\ub098\ub9c8 \ubc1c\ubcf4\uc544
 currenciesDisplayName.GTQ=\uacfc\ud14c\ub9d0\ub77c \ucf00\ud2b8\uc0b4
-currenciesDisplayName.LAK=\ub77c\uc624\uc2a4 \ud0a4\ud504
-currenciesDisplayName.GHC=\uac00\ub098 \uc2dc\ub514
+currenciesDisplayName.XXX=\uc54c\uc218\uc5c6\uac70\ub098 \uc720\ud6a8\ud558\uc9c0\uc54a\uc740 \ud1b5\ud654\ub2e8\uc704
 currenciesDisplayName.AUD=\ud638\uc8fc \ub2ec\ub7ec
+currenciesDisplayName.GHC=\uac00\ub098 \uc2dc\ub514
+currenciesDisplayName.LAK=\ub77c\uc624\uc2a4 \ud0a4\ud504
 currenciesDisplayName.NAD=\ub098\ubbf8\ube44\uc544 \ub2ec\ub7ec
 currenciesDisplayName.KGS=\ud0a4\ub974\uae30\uc2a4\uc2a4\ud0c4 \uc19c
 currenciesDisplayName.MGF=\ub9c8\ub2e4\uac00\uc2a4\uce74\ub974 \ud504\ub791
-currenciesDisplayName.CHF=\uc2a4\uc704\uc2a4 \ud504\ub791\ub2ec\ub7ec
 currenciesDisplayName.BBD=\ubc14\ubca0\uc774\ub3c4\uc2a4 \ub2ec\ub7ec
+currenciesDisplayName.CHF=\uc2a4\uc704\uc2a4 \ud504\ub791
+currenciesDisplayName.CHE=WIR \uc720\ub85c
 currenciesDisplayName.MGA=\ub9c8\ub2e4\uac00\uc2a4\uce74\ub974 \uc544\ub9ac\uc544\ub9ac
 currenciesDisplayName.PYG=\ud30c\ub77c\uacfc\uc774 \uacfc\ub77c\ub2c8
 currenciesDisplayName.PLZ=\ud3f4\ub780\ub4dc \uc990\ub85c\ud2f0 (1950-1995)
 currenciesDisplayName.YER=\uc608\uba58 \ub9ac\uc54c
 currenciesDisplayName.ATS=\ud638\uc8fc \uc2e4\ub9c1
 currenciesDisplayName.ETB=\uc774\ub514\uc624\ud53c\uc544 \ube44\ub974
-currenciesDisplayName.BND=\ubd80\ub8e8\ub098\uc774 \ub2ec\ub7ec
-currenciesDisplayName.JMD=\uc790\uba54\uc774\uce74 \ub2ec\ub7ec
+currenciesDisplayName.BND=\ube0c\ub8e8\ub098\uc774 \ub2ec\ub7ec
 currenciesDisplayName.EGP=\uc774\uc9d1\ud2b8 \ud30c\uc6b4\ub4dc
+currenciesDisplayName.JMD=\uc790\uba54\uc774\uce74 \ub2ec\ub7ec
 currenciesDisplayName.PLN=\ud3f4\ub780\ub4dc \uc990\ub85c\ud2f0
 currenciesDisplayName.DZD=\uc54c\uc81c\ub9ac \ub514\ub098\ub974
 currenciesDisplayName.ISK=\uc544\uc774\uc2ac\ub780\ub4dc \ud06c\ub85c\ub098
 currenciesDisplayName.SRG=\uc218\ub9ac\ub0a8 \uae38\ub354
 currenciesDisplayName.LYD=\ub9ac\ube44\uc544 \ub514\ub098\ub974
-currenciesDisplayName.BZD=\ubca8\ub9ac\uc988 \ub2ec\ub7ec
+currenciesDisplayName.SRD=\uc218\ub9ac\ub0a8 \ub2ec\ub7ec
 currenciesDisplayName.BAM=\ubcf4\uc2a4\ub2c8\uc544-\ud5e4\ub974\uccb4\uace0\ube44\ub098 \ud0dc\ud658 \ub9c8\ub974\ud06c
+currenciesDisplayName.BZD=\ubca8\ub9ac\uc988 \ub2ec\ub7ec
 currenciesDisplayName.ESP=\uc2a4\ud398\uc778 \ud398\uc138\ud0c0
 currenciesDisplayName.KRW=\ub300\ud55c\ubbfc\uad6d \uc6d0
 currenciesDisplayName.NLG=\ub124\ub378\ub780\ub4dc \uae38\ub354
@@ -232,30 +273,53 @@ currenciesDisplayName.ZWD=\uc9d0\ube44\ube0c\uc6e8 \ub2ec\ub7ec
 currenciesDisplayName.SEK=\uc2a4\uc6e8\ub374 \ud06c\ub85c\ub098
 currenciesDisplayName.CSK=\uccb4\ucf54\uc2ac\ub85c\ubc14\ud0a4\uc544 \ub3d9\uc804 \ucf54\ub8e8\ub098
 currenciesDisplayName.BYR=\ubca8\ub77c\ub8e8\uc2a4 \ub8e8\ube14
+currenciesDisplayName.ESB=\uc2a4\ud398\uc778 \ud398\uc138\ud0c0(\ubcc0\ud658 \uc608\uae08)
 currenciesDisplayName.IRR=\uc774\ub780 \ub9ac\uc584
+currenciesDisplayName.ESA=\uc2a4\ud398\uc778 \ud398\uc138\ud0c0(\uc608\uae08)
 currenciesDisplayName.PKR=\ud30c\ud0a4\uc2a4\ud0c4 \ub8e8\ud53c
 currenciesDisplayName.BMD=\ubc84\ubba4\ub2e4 \ub2ec\ub7ec
+currenciesDisplayName.CSD=\uc138\ub974\ube44\uc544 \ub514\ub098\ub974
+currenciesSymbol.GYD=G$
+currenciesSymbol.FRF=\u20a3
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.ALL=\ub808\ud06c
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.COP=Col$
+currenciesSymbol.BMD=BM$
 currenciesSymbol.JPY=\uffe5
-currenciesSymbol.MRO=UM
+currenciesSymbol.ITL=\u20a4
+currenciesSymbol.AUD=A$
+currenciesSymbol.FJD=F$
+currenciesSymbol.BBD=Bds$
 currenciesSymbol.KRW=\uffe6
-currenciesSymbol.IEP=IR\u00a3
-currenciesSymbol.ITL=ITL
-currenciesSymbol.USD=US$
-shortMonths=1\uc6d4®2\uc6d4®3\uc6d4®4\uc6d4®5\uc6d4®6\uc6d4®7\uc6d4®8\uc6d4®9\uc6d4®10\uc6d4®11\uc6d4®12\uc6d4®®
-months=1\uc6d4®2\uc6d4®3\uc6d4®4\uc6d4®5\uc6d4®6\uc6d4®7\uc6d4®8\uc6d4®9\uc6d4®10\uc6d4®11\uc6d4®12\uc6d4®®
-shortWeekdays=®\uc77c®\uc6d4®\ud654®\uc218®\ubaa9®\uae08®\ud1a0®
-weekdays=®\uc77c\uc694\uc77c®\uc6d4\uc694\uc77c®\ud654\uc694\uc77c®\uc218\uc694\uc77c®\ubaa9\uc694\uc77c®\uae08\uc694\uc77c®\ud1a0\uc694\uc77c®
-eras=\uae30\uc6d0\uc804®\uc11c\uae30®
-ampms=\uc624\uc804®\uc624\ud6c4®
-shortDateFormat=yy-MM-dd
-mediumDateFormat=yyyy-MM-dd
-longDateFormat=yyyy'\ub144' M'\uc6d4' d'\uc77c' EE
-fullDateFormat=yyyy'\ub144' M'\uc6d4' d'\uc77c' EEEE
-shortTimeFormat=a hh'\uc2dc' mm'\ubd84'
-mediumTimeFormat=a hh'\uc2dc' mm'\ubd84'
-longTimeFormat=a hh'\uc2dc' mm'\ubd84' ss'\ucd08'
-fullTimeFormat=a hh'\uc2dc' mm'\ubd84' ss'\ucd08' z
-zoneStrings=America/St_Johns®CNT®\ub274\ud380\ub4e4\ub79c\ub4dc \ud45c\uc900\uc2dc®CDT®\ub274\ud380\ub4e4\ub79c\ub4dc \uae30\uc900\uc2dc®©America/Anchorage®AST®\uc54c\ub798\uc2a4\uce74 \ud45c\uc900\uc2dc®ADT®\uc54c\ub798\uc2a4\uce74 \uae30\uc900\uc2dc®©Europe/Paris®CET®\uc911\ubd80\uc720\ub7fd \ud45c\uc900\uc2dc®CEST®\uc911\ubd80\uc720\ub7fd \uae30\uc900\uc2dc®©America/Halifax®AST®\ub300\uc11c\uc591 \ud45c\uc900\uc2dc®ADT®\ub300\uc11c\uc591 \uae30\uc900\uc2dc®©Asia/Shanghai®CTT®\uc911\uad6d \ud45c\uc900\uc2dc®CDT®\uc911\uad6d \ud45c\uc900\uc2dc®©America/New_York®EST®\ub3d9\ubd80 \ud45c\uc900\uc2dc®EDT®\ub3d9\ubd80 \uae30\uc900\uc2dc®©America/Denver®MST®\uc0b0\uc545 \ud45c\uc900\uc2dc®MDT®\uc0b0\uc545 \uae30\uc900\uc2dc®©Africa/Casablanca®GMT®\uadf8\ub9ac\ub2c8\uce58 \ud45c\uc900\uc2dc®GMT®\uadf8\ub9ac\ub2c8\uce58 \ud45c\uc900\uc2dc®©America/Los_Angeles®PST®\ud0dc\ud3c9\uc591 \ud45c\uc900\uc2dc®PDT®\ud0dc\ud3c9\uc591 \uae30\uc900\uc2dc®©Asia/Jerusalem®IST®\uc774\uc2a4\ub77c\uc5d8 \ud45c\uc900\uc2dc®IDT®\uc774\uc2a4\ub77c\uc5d8 \uae30\uc900\uc2dc®©Pacific/Honolulu®HST®\ud558\uc640\uc774 \ud45c\uc900\uc2dc®HST®\ud558\uc640\uc774 \ud45c\uc900\uc2dc®©America/Phoenix®MST®\uc0b0\uc545 \ud45c\uc900\uc2dc®MST®\uc0b0\uc545 \ud45c\uc900\uc2dc®©Asia/Tokyo®JST®\uc77c\ubcf8 \ud45c\uc900\uc2dc®JST®\uc77c\ubcf8 \ud45c\uc900\uc2dc®©Europe/Bucharest®EET®\ub3d9\ubd80\uc720\ub7fd \ud45c\uc900\uc2dc®EEST®\ub3d9\ubd80\uc720\ub7fd \uae30\uc900\uc2dc®©America/Chicago®CST®\uc911\ubd80 \ud45c\uc900\uc2dc®CDT®\uc911\ubd80 \uae30\uc900\uc2dc®©Asia/Seoul®KST®\ud55c\uad6d\ud45c\uc900\uc2dc®KST®\ud55c\uad6d\ud45c\uc900\uc2dc®©America/Indianapolis®EST®\ub3d9\ubd80 \ud45c\uc900\uc2dc®EST®\ub3d9\ubd80 \ud45c\uc900\uc2dc®©
+currenciesSymbol.BND=B$
+currenciesSymbol.SGD=S$
+currenciesSymbol.TWD=NT$
+currenciesSymbol.CYP=\uffe1C
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.AMD=\ub4dc\ub7a8
+currenciesSymbol.CNY=\u00a5
+currenciesSymbol.CAD=Can$
+currenciesSymbol.DOP=RD$
+currenciesSymbol.MRO=UM
+currenciesSymbol.KPW=KPW
+currenciesSymbol.HKD=HK$
+shortMonths=1\uc6d4\u00ae2\uc6d4\u00ae3\uc6d4\u00ae4\uc6d4\u00ae5\uc6d4\u00ae6\uc6d4\u00ae7\uc6d4\u00ae8\uc6d4\u00ae9\uc6d4\u00ae10\uc6d4\u00ae11\uc6d4\u00ae12\uc6d4\u00ae\u00ae
+months=1\uc6d4\u00ae2\uc6d4\u00ae3\uc6d4\u00ae4\uc6d4\u00ae5\uc6d4\u00ae6\uc6d4\u00ae7\uc6d4\u00ae8\uc6d4\u00ae9\uc6d4\u00ae10\uc6d4\u00ae11\uc6d4\u00ae12\uc6d4\u00ae\u00ae
+shortWeekdays=\u00ae\uc77c\u00ae\uc6d4\u00ae\ud654\u00ae\uc218\u00ae\ubaa9\u00ae\uae08\u00ae\ud1a0\u00ae
+weekdays=\u00ae\uc77c\uc694\uc77c\u00ae\uc6d4\uc694\uc77c\u00ae\ud654\uc694\uc77c\u00ae\uc218\uc694\uc77c\u00ae\ubaa9\uc694\uc77c\u00ae\uae08\uc694\uc77c\u00ae\ud1a0\uc694\uc77c\u00ae
+eras=\uae30\uc6d0\uc804\u00ae\uc11c\uae30\u00ae
+ampms=\uc624\uc804\u00ae\uc624\ud6c4\u00ae
+shortDateFormat=yy. MM. dd
+mediumDateFormat=yyyy. MM. dd
+longDateFormat=yyyy\ub144 M\uc6d4 d\uc77c
+fullDateFormat=yyyy\ub144 M\uc6d4 d\uc77c EEEE
+shortTimeFormat=a hh\uc2dc mm\ubd84
+mediumTimeFormat=a h:mm:ss
+longTimeFormat=z a h\uc2dc m\ubd84 s\ucd08
+fullTimeFormat=z a h\uc2dc mm\ubd84 ss\ucd08
+zoneStrings=Europe_Central\u00ae\uc911\ubd80\uc720\ub7fd \ud45c\uc900\uc2dc\u00ae\u00ae\uc911\ubd80\uc720\ub7fd \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Africa_Western\u00ae\uc11c\uc544\ud504\ub9ac\uce74 \uc2dc\uac04\u00ae\u00ae\uc11c\uc544\ud504\ub9ac\uce74 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Australia_Eastern\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \ub3d9\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \ub3d9\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Maldives\u00ae\ubab0\ub514\ube0c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00ae\uc601\uad6d\ub839 \uc778\ub3c4\uc591 \uc2dd\ubbfc\uc9c0 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00ae\ud53c\uc9c0 \ud45c\uc900\uc2dc\u00ae\u00ae\ud53c\uc9c0 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Amazon\u00ae\uc544\ub9c8\uc874 \ud45c\uc900\uc2dc\u00ae\u00ae\uc544\ub9c8\uc874 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Arabian\u00ae\uc544\ub77c\ube44\uc544 \ud45c\uc900\uc2dc\u00aeAST(\uc544\ub77c\ube44\uc544)\u00ae\uc544\ub77c\ube44\uc544 \ud558\uacc4 \ud45c\uc900\uc2dc\u00aeADT(\uc544\ub77c\ube44\uc544)\u00ae\u00a9Alaska\u00ae\uc54c\ub798\uc2a4\uce74 \ud45c\uc900\uc2dc\u00ae\u00ae\uc54c\ub798\uc2a4\uce74 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Easter\u00ae\uc774\uc2a4\ud130\uc12c \ud45c\uc900\uc2dc\u00ae\u00ae\uc774\uc2a4\ud130\uc12c \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Hong_Kong\u00ae\ud64d\ucf69 \uc2dc\uac04\u00ae\u00ae\ud64d\ucf69 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Indonesia_Western\u00ae\uc11c\uc778\ub3c4\ub124\uc2dc\uc544 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\ub3d9\uc778\ub3c4\ub124\uc2dc\uc544 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00ae\ucc28\ubaa8\ub85c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9America_Pacific\u00ae\ud0dc\ud3c9\uc591 \ud45c\uc900\uc2dc\u00ae\u00ae\ubbf8 \ud0dc\ud3c9\uc591 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Seychelles\u00ae\uc138\uc774\uc178 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00ae\uc774\uc2a4\ub77c\uc5d8 \ud45c\uc900\uc2dc\u00aeIST\u00ae\uc774\uc2a4\ub77c\uc5d8 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Cocos\u00ae\ucf54\ucf54\uc2a4\uc12c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Eastern\u00ae\ub3d9\ubd80\uc720\ub7fd \ud45c\uc900\uc2dc\u00ae\u00ae\ub3d9\ubd80 \uc720\ub7fd \uc11c\uba38\ud0c0\uc784\u00ae\u00ae\u00a9Newfoundland\u00ae\ub274\ud380\ub4e4\ub79c\ub4dc \ud45c\uc900\uc2dc\u00ae\u00ae\ub274\ud380\ub4e4\ub79c\ub4dc \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Australia_Western\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc11c\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc11c\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Moscow\u00ae\ubaa8\uc2a4\ud06c\ubc14 \ud45c\uc900\uc2dc\u00ae\u00ae\ubaa8\uc2a4\ud06c\ubc14 \uc11c\uba38\ud0c0\uc784\u00ae\u00ae\u00a9Christmas\u00ae\ud06c\ub9ac\uc2a4\ub9c8\uc2a4\uc12c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9South_Georgia\u00ae\uc0ac\uc6b0\uc2a4 \uc870\uc9c0\uc544 \ud45c\uc900\uc2dc\u00aeGST (\uc0ac\uc6b0\uc2a4 \uc870\uc9c0\uc544)\u00ae\u00ae\u00ae\u00a9Korea\u00ae\ud55c\uad6d \ud45c\uc900\uc2dc\u00ae\u00ae\ud55c\uad6d \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Africa_Eastern\u00ae\ub3d9\uc544\ud504\ub9ac\uce74 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00ae\ub300\uc11c\uc591 \ud45c\uc900\uc2dc\u00ae\u00ae\ubbf8 \ub300\uc11c\uc591 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Lord_Howe\u00ae\ub85c\ub4dc \ud558\uc6b0 \ud45c\uc900\uc2dc\u00ae\u00ae\ub85c\ub4dc \ud558\uc6b0 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Cape_Verde\u00ae\uce74\ubcf4 \ubca0\ub974\ub370 \ud45c\uc900\uc2dc\u00ae\u00ae\uce74\ubcf4 \ubca0\ub974\ub370 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9America_Eastern\u00ae\ub3d9\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\ubbf8 \ub3d9\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Reunion\u00ae\ub9ac\uc720\ub2c8\uc628 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Davis\u00ae\ub370\uc774\ube44\uc2a4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00ae\ucc44\ud140 \ud45c\uc900\uc2dc\u00ae\u00ae\ucc44\ud140 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Syowa\u00ae\uc1fc\uc640 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00ae\ud504\ub791\uc2a4\ub839 \ub0a8\ucabd\uc2dd\ubbfc\uc9c0 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00ae\uc544\ud06c\ub808 \ud45c\uc900\uc2dc\u00aeACT (\uc544\ud06c\ub808)\u00ae\uc544\ud06c\ub808 \ud558\uacc4 \ud45c\uc900\uc2dc\u00aeACST (\uc544\ud06c\ub808)\u00ae\u00a9Europe_Western\u00ae\uc11c\ubd80 \uc720\ub7fd \uc2dc\uac04\u00ae\u00ae\uc11c\ubd80 \uc720\ub7fd \uc11c\uba38\ud0c0\uc784\u00ae\u00ae\u00a9Africa_Central\u00ae\uc911\uc559\uc544\ud504\ub9ac\uce74 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00ae\ub0a8\uc544\ud504\ub9ac\uce74 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00ae\ub274\uc9c8\ub79c\ub4dc \ud45c\uc900\uc2dc\u00ae\u00ae\ub274\uc9c8\ub79c\ub4dc \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9China\u00ae\uc911\uad6d \ud45c\uc900\uc2dc\u00aeCST (\uc911\uad6d)\u00ae\uc911\uad6d \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Indonesia_Central\u00ae\uc911\uc559\uc778\ub3c4\ub124\uc2dc\uc544 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\uc0b0\uc545 \ud45c\uc900\uc2dc\u00ae\u00ae\ubbf8 \uc0b0\uc9c0 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9India\u00ae\uc778\ub3c4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00ae\uadf8\ub9ac\ub2c8\uce58 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Mawson\u00ae\ubaa8\uc2a8 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00ae\ud3ec\ud074\ub79c\ub4dc \ud45c\uc900\uc2dc\u00ae\u00ae\ud3ec\ud074\ub79c\ub4dc \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Indochina\u00ae\uc778\ub3c4\ucc28\uc774\ub098 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9Brasilia\u00ae\ube0c\ub77c\uc9c8\ub9ac\uc544 \ud45c\uc900\uc2dc\u00ae\u00ae\ube0c\ub77c\uc9c8\ub9ac\uc544 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Australia_CentralWestern\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc911\uc11c\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc911\uc11c\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9DumontDUrville\u00ae\ub4a4\ubabd \ub4a4\ub974\ube4c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00ae\ub85c\ub370\ub77c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\uc911\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\ubbf8 \uc911\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Azores\u00ae\uc544\uc870\ub808\uc2a4 \ud45c\uc900\uc2dc\u00ae\u00ae\uc544\uc870\ub808\uc2a4 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Japan\u00ae\uc77c\ubcf8 \ud45c\uc900\uc2dc\u00ae\u00ae\uc77c\ubcf8 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Cook\u00ae\ucfe1\uc81c\ub3c4 \ud45c\uc900\uc2dc\u00ae\u00ae\ucfe1\uc81c\ub3c4 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Australia_Central\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc911\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc911\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Vostok\u00ae\ubaa8\uc2a4\ud1a0\ud06c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00ae\uac08\ub77c\ud30c\uace0\uc2a4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Mauritius\u00ae\ubaa8\ub9ac\uc154\uc2a4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9
 territories.TL=\ub3d9\ud2f0\ubaa8\ub974
 territories.TK=\ud1a0\ucf08\ub77c\uc6b0
 territories.TJ=\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4
@@ -278,10 +342,13 @@ territories.GN=\uae30\ub2c8
 territories.GM=\uac10\ube44\uc544
 territories.GL=\uadf8\ub9b0\ub780\ub4dc
 territories.SV=\uc5d8\uc0b4\ubc14\ub3c4\ub974
+territories.062=\uc911\ub0a8 \uc544\uc2dc\uc544
 territories.ST=\uc0c1\ud22c\uba54 \ud504\ub9b0\uc2dc\ud398
 territories.GI=\uc9c0\ube0c\ub864\ud130
+territories.061=\ud3f4\ub9ac\ub124\uc2dc\uc544
 territories.GH=\uac00\ub098
 territories.SR=\uc218\ub9ac\ub0a8
+territories.GG=\uac74\uc9c0
 territories.GF=\ud504\ub791\uc2a4\ub839 \uae30\uc544\ub098
 territories.GE=\uadf8\ub8e8\uc9c0\uc57c
 territories.SO=\uc18c\ub9d0\ub9ac\uc544
@@ -298,36 +365,46 @@ territories.SH=\uc138\uc778\ud2b8\ud5ec\ub808\ub098
 territories.SG=\uc2f1\uac00\ud3ec\ub974
 territories.SE=\uc2a4\uc6e8\ub374
 territories.SD=\uc218\ub2e8
-territories.SC=\uc250\uc774\uc258
-territories.SB=\uc194\ub85c\ubaac
+territories.SC=\uc138\uc774\uc178
+territories.SB=\uc194\ub85c\ubaac \uc81c\ub3c4
 territories.SA=\uc0ac\uc6b0\ub514\uc544\ub77c\ube44\uc544
 territories.FR=\ud504\ub791\uc2a4
 territories.FO=\ud398\ub85c\uc81c\ub3c4
-territories.FM=\ub9c8\uc774\ud06c\ub85c\ub124\uc2dc\uc544
+territories.057=\ubbf8\ud06c\ub85c\ub124\uc2dc\uc544 \uc9c0\uc5ed
+territories.FM=\ubbf8\ud06c\ub85c\ub124\uc2dc\uc544
 territories.RW=\ub974\uc644\ub2e4
+territories.054=\uba5c\ub77c\ub124\uc2dc\uc544
 territories.FK=\ud3ec\ud074\ub79c\ub4dc\uc81c\ub3c4
+territories.053=\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544\uc640 \ub274\uc9c8\ub79c\ub4dc
 territories.RU=\ub7ec\uc2dc\uc544
 territories.FJ=\ud53c\uc9c0
 territories.FI=\ud540\ub780\ub4dc
+territories.RS=\uc138\ub974\ube44\uc544
 territories.RO=\ub8e8\ub9c8\ub2c8\uc544
 territories.RE=\ub9ac\uc720\ub2c8\uc628
 territories.ET=\uc774\ub514\uc624\ud53c\uc544
 territories.ES=\uc2a4\ud398\uc778
 territories.ER=\uc5d0\ub9ac\ud2b8\ub9ac\uc544
+territories.QU=\uc720\ub7fd \uc5f0\ud569
 territories.EH=\uc11c\uc0ac\ud558\ub77c
 territories.EG=\uc774\uc9d1\ud2b8
 territories.EE=\uc5d0\uc2a4\ud1a0\ub2c8\uc544
-territories.EC=\uc5d0\ucfe0\uc544\ub3c4\ub974
+territories.QO=\uc624\uc138\uc544\ub2c8\uc544 \uc678\uacfd
+territories.EC=\uc5d0\ucf70\ub3c4\ub974
 territories.DZ=\uc54c\uc81c\ub9ac
 territories.QA=\uce74\ud0c0\ub974
+territories.039=\ub0a8\uc720\ub7fd
 territories.DO=\ub3c4\ubbf8\ub2c8\uce74 \uacf5\ud654\uad6d
 territories.PY=\ud30c\ub77c\uacfc\uc774
 territories.DM=\ub3c4\ubbf8\ub2c8\uce74
+territories.035=\ub3d9\ub0a8 \uc544\uc2dc\uc544
 territories.PW=\ud314\ub77c\uc6b0
+territories.034=\ub0a8\uc544\uc2dc\uc544
 territories.DK=\ub374\ub9c8\ud06c
 territories.DJ=\uc9c0\ubd80\ud2f0
-territories.PT=\ud3ec\ub974\ud2b8\uce7c
+territories.PT=\ud3ec\ub974\ud22c\uac08
 territories.PS=\ud314\ub808\uc2a4\ud0c0\uc778 \uc9c0\uad6c
+territories.030=\ub3d9\uc544\uc2dc\uc544
 territories.PR=\ud478\uc5d0\ub974\ud1a0\ub9ac\ucf54
 territories.DE=\ub3c5\uc77c
 territories.PN=\ud54f\ucf00\uc5b8\uc12c
@@ -344,21 +421,24 @@ territories.CX=\ud06c\ub9ac\uc2a4\ub9c8\uc2a4\uc12c
 territories.CV=\uae4c\ubf40\ubca0\ub974\ub370
 territories.PA=\ud30c\ub098\ub9c8
 territories.CU=\ucfe0\ubc14
-territories.CS=\uc138\ub974\ube44\uc544 \ubc0f \ubaac\ud14c\ub124\uadf8\ub85c
+territories.CS=\uc138\ub974\ube44\uc544 \ubaac\ud14c\ub124\uadf8\ub85c
 territories.CR=\ucf54\uc2a4\ud0c0\ub9ac\uce74
+territories.029=\uce74\ub9ac\ube0c \ud574 \uc81c\ub3c4
 territories.CO=\ucf5c\ub86c\ube44\uc544
 territories.CN=\uc911\uad6d
 territories.CM=\uce74\uba54\ub8ec
 territories.CL=\uce60\ub808
 territories.CK=\ucfe1\uc81c\ub3c4
-territories.CI=\ucf54\ud2b8\ub514\ubd80\uc640\ub974
+territories.021=\ubd81\ubd80 \uc544\uba54\ub9ac\uce74
+territories.CI=\ucf54\ud2b8\ub514\ubd80\uc544\ub974
 territories.CH=\uc2a4\uc704\uc2a4
 territories.CG=\ucf69\uace0
-territories.CF=\uc911\uc559 \uc544\ud504\ub9ac\uce74
-territories.CD=\ucf69\uace0\ubbfc\uc8fc\uacf5\ud654\uad6d
+territories.CF=\uc911\uc559 \uc544\ud504\ub9ac\uce74 \uacf5\ud654\uad6d
+territories.CD=\ucf69\uace0 \ubbfc\uc8fc\uacf5\ud654\uad6d
 territories.CC=\ucf54\ucf54\uc2a4\uc81c\ub3c4
 territories.OM=\uc624\ub9cc
 territories.CA=\uce90\ub098\ub2e4
+territories.419=\ub77c\ud2f4 \uc544\uba54\ub9ac\uce74 \ubc0f \uce74\ub9ac\ube0c \ud574 \uc81c\ub3c4
 territories.BZ=\ubca8\ub9ac\uc988
 territories.BY=\ubca8\ub77c\ub8e8\uc2a4
 territories.BW=\ubcf4\uce20\uc640\ub098
@@ -366,19 +446,29 @@ territories.BV=\ubd80\ubca0
 territories.BT=\ubd80\ud0c4
 territories.BS=\ubc14\ud558\ub9c8
 territories.BR=\ube0c\ub77c\uc9c8
+territories.019=\uc544\uba54\ub9ac\uce74 \ub300\ub959
+territories.018=\ub0a8\ubd80 \uc544\ud504\ub9ac\uce74
 territories.NZ=\ub274\uc9c8\ub79c\ub4dc
+territories.017=\uc911\ubd80 \uc544\ud504\ub9ac\uce74
 territories.BO=\ubcfc\ub9ac\ube44\uc544
 territories.BN=\ube0c\ub8e8\ub098\uc774
+territories.015=\ubd81\ubd80 \uc544\ud504\ub9ac\uce74
 territories.BM=\ubc84\ubba4\ub2e4
+territories.014=\ub3d9\ubd80 \uc544\ud504\ub9ac\uce74
+territories.BL=\uc138\uc778\ud2b8 \ubc14\ub974\ud154\ub974\ubbf8
+territories.013=\uc911\uc559 \uc544\uba54\ub9ac\uce74
 territories.NU=\ub2c8\uc6b0\uc5d0
-territories.BJ=\ubca0\ub139
+territories.BJ=\ubca0\ub0c9
+territories.011=\uc11c\uc544\ud504\ub9ac\uce74
 territories.BI=\ubd80\ub8ec\ub514
+territories.172=\ub3c5\ub9bd \uad6d\uac00 \uc5f0\ud569
 territories.BH=\ubc14\ub808\uc778
 territories.NR=\ub098\uc6b0\ub8e8
 territories.BG=\ubd88\uac00\ub9ac\uc544
 territories.BF=\ubd80\ub974\ud0a4\ub098\ud30c\uc18c
 territories.NP=\ub124\ud314
 territories.BE=\ubca8\uae30\uc5d0
+territories.ZZ=\uc54c\uc218\uc5c6\uac70\ub098 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc9c0\uc5ed
 territories.NO=\ub178\ub974\uc6e8\uc774
 territories.BD=\ubc29\uae00\ub77c\ub370\uc2dc
 territories.BB=\ubc14\ubca0\uc774\ub3c4\uc2a4
@@ -390,6 +480,7 @@ territories.NG=\ub098\uc774\uc9c0\ub9ac\uc544
 territories.NF=\ub178\ud37d\uc12c
 territories.AZ=\uc544\uc81c\ub974\ubc14\uc774\uc794
 territories.NE=\ub2c8\uc81c\ub974
+territories.AX=\uc62c\ub780\ub4dc \uc81c\ub3c4
 territories.NC=\ub274 \uce7c\ub808\ub3c4\ub2c8\uc544
 territories.AW=\uc544\ub8e8\ubc14
 territories.ZM=\uc7a0\ube44\uc544
@@ -399,45 +490,56 @@ territories.AT=\uc624\uc2a4\ud2b8\ub9ac\uc544
 territories.AS=\uc544\uba54\ub9ac\uce78 \uc0ac\ubaa8\uc544
 territories.AR=\uc544\ub974\ud5e8\ud2f0\ub098
 territories.AQ=\ub0a8\uadf9 \ub300\ub959
+territories.009=\uc624\uc138\uc544\ub2c8\uc544, \ub300\uc591\uc8fc
 territories.MZ=\ubaa8\uc7a0\ube44\ud06c
 territories.AO=\uc559\uace8\ub77c
-territories.MY=\ub9d0\ub808\uc774\uc9c0\uc544
+territories.MY=\ub9d0\ub808\uc774\uc2dc\uc544
 territories.AN=\ub124\ub35c\ub780\ub4dc\ub839 \uc548\ud2f8\ub808\uc2a4
 territories.MX=\uba55\uc2dc\ucf54
 territories.AM=\uc544\ub974\uba54\ub2c8\uc544
+territories.005=\ub0a8\uc544\uba54\ub9ac\uce74[\ub0a8\ubbf8]
 territories.MW=\ub9d0\ub77c\uc704
 territories.AL=\uc54c\ubc14\ub2c8\uc544
 territories.MV=\ubab0\ub514\ube0c
+territories.003=\ubd81\uc544\uba54\ub9ac\uce74
 territories.ZA=\ub0a8\uc544\ud504\ub9ac\uce74
 territories.MU=\ubaa8\ub9ac\uc154\uc2a4
+territories.002=\uc544\ud504\ub9ac\uce74
 territories.MT=\ubab0\ud0c0
 territories.AI=\uc548\uae38\ub77c
+territories.001=\uc138\uacc4
 territories.MS=\ubaac\ud2b8\uc138\ub77c\ud2b8
 territories.MR=\ubaa8\ub9ac\ud0c0\ub2c8
 territories.AG=\uc564\ud2f0\uac00 \ubc14\ubd80\ub2e4
-territories.AF=\uc544\ud504\uac00\ub2c8\uc2a4\ud0c4
 territories.MQ=\ub9d0\ud2f0\ub2c8\ud06c
-territories.AE=\uc544\ub78d\uc5d0\ubbf8\ub9ac\ud2b8
+territories.AF=\uc544\ud504\uac00\ub2c8\uc2a4\ud0c4
 territories.MP=\ubd81\ub9c8\ub9ac\uc544\ub098\uc81c\ub3c4
+territories.AE=\uc544\ub78d\uc5d0\ubbf8\ub9ac\ud2b8 \uc5f0\ud569
+territories.MO=\ub9c8\uce74\uc624
 territories.AD=\uc548\ub3c4\ub77c
-territories.MO=\ub9c8\uce74\uc624, \uc911\uad6d \ud2b9\ubcc4\ud589\uc815\uad6c
 territories.MN=\ubabd\uace8
 territories.MM=\ubbf8\uc580\ub9c8
 territories.ML=\ub9d0\ub9ac
-territories.MK=\ub9c8\ucf00\ub3c4\ub2c8\uc544\uc5b4
+territories.MK=\ub9c8\ucf00\ub3c4\ub2c8\uc544
 territories.YT=\ub9c8\uc694\ud2f0
 territories.MH=\ub9c8\uc0ec \uad70\ub3c4
 territories.MG=\ub9c8\ub2e4\uac00\uc2a4\uce74\ub974
+territories.MF=\uc138\uc778\ud2b8 \ub9c8\ud2f4
+territories.ME=\ubaac\ud14c\ub124\uadf8\ub85c
 territories.MD=\ubab0\ub3c4\ubc14
 territories.MC=\ubaa8\ub098\ucf54
 territories.MA=\ubaa8\ub85c\ucf54
 territories.YE=\uc608\uba58
 territories.LY=\ub9ac\ube44\uc544
 territories.LV=\ub77c\ud2b8\ube44\uc544
+territories.155=\uc11c\uc720\ub7fd
 territories.LU=\ub8e9\uc148\ubd80\ub974\ud06c
+territories.154=\ubd81\uc720\ub7fd
 territories.LT=\ub9ac\ud22c\uc544\ub2c8\uc544
 territories.LS=\ub808\uc18c\ud1a0
 territories.LR=\ub77c\uc774\ubca0\ub9ac\uc544
+territories.151=\ub3d9\uc720\ub7fd
+territories.150=\uc720\ub7fd
 territories.LK=\uc2a4\ub9ac\ub791\uce74
 territories.LI=\ub9ac\ud788\ud150\uc288\ud0c0\uc778
 territories.LC=\uc138\uc778\ud2b8\ub8e8\uc2dc\uc544
@@ -446,10 +548,13 @@ territories.LA=\ub77c\uc624\uc2a4
 territories.KZ=\uce74\uc790\ud750\uc2a4\ud0c4
 territories.KY=\ucf00\uc774\ub9e8\uc81c\ub3c4
 territories.KW=\ucfe0\uc6e8\uc774\ud2b8
+territories.145=\uc11c\uc544\uc2dc\uc544
+territories.143=\uc911\uc559 \uc544\uc2dc\uc544
+territories.142=\uc544\uc2dc\uc544
 territories.KR=\ub300\ud55c\ubbfc\uad6d
 territories.KP=\uc870\uc120 \ubbfc\uc8fc\uc8fc\uc758 \uc778\ubbfc \uacf5\ud654\uad6d
-territories.KN=\uc138\uc778\ud2b8\ud06c\ub9ac\uc2a4\ud1a0\ud37c \ub124\ube44\uc2a4
-territories.KM=\ucf54\ubaa8\ub974
+territories.KN=\uc138\uc778\ud2b8 \ud0a4\uce20 \ub124\ube44\uc2a4
+territories.KM=\ucf54\ubaa8\ub85c\uc2a4
 territories.KI=\ud0a4\ub9ac\ubc14\uc2dc
 territories.WS=\uc0ac\ubaa8\uc544
 territories.KH=\uce84\ubcf4\ub514\uc544
@@ -460,6 +565,7 @@ territories.JP=\uc77c\ubcf8
 territories.JO=\uc694\ub974\ub2e8
 territories.JM=\uc790\uba54\uc774\uce74
 territories.VU=\ubc14\ub204\uc544\ud22c
+territories.JE=\uc800\uc9c0
 territories.VN=\ubca0\ud2b8\ub0a8
 territories.VI=\ubbf8\uad6d\ub839 \ubc84\uc9c4 \uc544\uc77c\ub79c\ub4dc
 territories.VG=\uc601\uad6d\ub839 \ubc84\uc9c4 \uc544\uc77c\ub79c\ub4dc
@@ -474,6 +580,7 @@ territories.UZ=\uc6b0\uc988\ubca0\ud0a4\uc2a4\ud0c4
 territories.IO=\uc601\uad6d\ub839\uc778\ub3c4\uc591\uc2dd\ubbfc\uc9c0
 territories.UY=\uc6b0\ub8e8\uacfc\uc774
 territories.IN=\uc778\ub3c4
+territories.IM=\ub9e8 \uc12c
 territories.IL=\uc774\uc2a4\ub77c\uc5d8
 territories.US=\ubbf8\uad6d
 territories.IE=\uc544\uc77c\ub79c\ub4dc
@@ -482,47 +589,50 @@ territories.UM=\ubbf8\uad6d\ub839 \ud574\uc678 \uc81c\ub3c4
 territories.UG=\uc6b0\uac04\ub2e4
 territories.UA=\uc6b0\ud06c\ub77c\uc774\ub098
 territories.HU=\ud5dd\uac00\ub9ac
-territories.HT=\ud558\uc774\ud2f0
+territories.HT=\uc544\uc774\ud2f0
 territories.HR=\ud06c\ub85c\uc544\ud2f0\uc544
 territories.TZ=\ud0c4\uc790\ub2c8\uc544
 territories.HN=\uc628\ub450\ub77c\uc2a4
 territories.HM=\ud5c8\ub4dc\uc12c-\ub9e5\ub3c4\ub110\ub4dc\uc81c\ub3c4
 territories.TW=\ub300\ub9cc
 territories.TV=\ud22c\ubc1c\ub8e8
-territories.HK=\ud64d\ucf69, \uc911\uad6d \ud2b9\ubcc4\ud589\uc815\uad6c
+territories.HK=\ud64d\ucf69
 territories.TT=\ud2b8\ub9ac\ub2c8\ub2e4\ub4dc \ud1a0\ubc14\uace0
 territories.TR=\ud130\ud0a4
 territories.TO=\ud1b5\uac00
 territories.TN=\ud280\ub2c8\uc9c0
 territories.TM=\ud22c\ub974\ud06c\uba54\ub2c8\uc2a4\ud0c4
-languages.akk=\uc544\uce74\ub4dc\uc5b4
 languages.gwi=\uadf8\uc704\uce5c\uc5b4
+languages.akk=\uc544\uce74\ub4dc\uc5b4
 languages.eka=\uc774\uce74\uc8fd\uc5b4
 languages.ijo=\uc774\uc870\uc5b4
-languages.xh=\ubc18\ud22c\uc5b4(\ub0a8\uc544\ud504\ub9ac\uce74)
+languages.xh=\ucf54\uc0ac\uc5b4
 languages.sux=\uc218\uba54\ub974\uc5b4
 languages.sus=\uc218\uc218\uc5b4
 languages.mis=\uae30\ud0c0 \uc5b8\uc5b4
 languages.loz=\ub85c\uc9c0\uc5b4
 languages.tog=\ud1b5\uac00\uc5b4 (\ub2c8\uc544\uc0b4\ub79c\ub4dc)
+languages.zbl=zbl
 languages.pon=\ud3fc\ud398\uc774\uc5b4
 languages.min=\ubbf8\ub0ad\uce74\ubc14\uc6b0
 languages.suk=\uc218\ucfe0\ub9c8\uc871\uc5b4
 languages.wo=\uc62c\ub85c\ud504\uc5b4
-languages.kut=\ucfe0\ud14c\ub124\uc5b4
 languages.lol=\ubabd\uad6c\uc5b4
+languages.kut=\ucfe0\ud14c\ub124\uc5b4
 languages.mic=\ubbf8\ud06c\ub9e5\uc5b4
 languages.wa=\uc648\ub860\uc5b4
 languages.kum=\ucfe0\ubbf9\uc5b4
 languages.zap=\uc0ac\ud3ec\ud14c\ud06c\uc5b4
-languages.cus=\ucfe0\uc2dc\ud2b8\uc81c\uc871\uc5b4 (\uae30\ud0c0)
-languages.doi=\ub3c4\uadf8\ub9ac\uc5b4
+languages.ain=\uc544\uc774\ub204\uc5b4
+languages.cus=\ucfe0\uc2dc\uc5b4\uc871
 languages.jbo=\ub85c\ubc18\uc5b4
+languages.doi=\ub3c4\uadf8\ub9ac\uc5b4
+languages.zza=\uc790\uc790\uc5b4
 languages.vo=\ubcfc\ub77c\ud4cc\ud06c\uc5b4
 languages.oto=\uc624\ud1a0\ubbf8\uc548\uc5b4
 languages.vi=\ubca0\ud2b8\ub0a8\uc5b4
 languages.vai=\ubc14\uc774\uc5b4
-languages.rar=\ud30c\ub85c\ud1a4\uac04\uc5b4
+languages.rar=\ub77c\ub85c\ud1b5\uac00\uc5b4
 languages.ve=\ubca4\ub2e4\uc5b4
 languages.rap=\ub77c\ud30c\ub274\uc774
 languages.raj=\ub77c\uc790\uc2a4\ud0c4\uc5b4
@@ -541,23 +651,26 @@ languages.egy=\uc774\uc9d1\ud2b8\uc5b4 (\uace0\ub300)
 languages.ug=\uc704\uad6c\ub974\uc5b4
 languages.fan=\ud321\uadf8\uc5b4
 languages.ssa=\ub2c8\ub85c-\uc0ac\ud558\ub78c\uc5b4 (\uae30\ud0c0)
-languages.bat=\ubc1c\ud2b8\uc5b4 (\uae30\ud0c0)
 languages.mga=\uc544\uc77c\ub79c\ub4dc\uc5b4, \uc911\uc138 (900-1200)
+languages.bat=\ubc1c\ud2b8\uc5b4 (\uae30\ud0c0)
 languages.nyo=\ub274\ub85c\uc5b4
 languages.bas=\ubc14\uc0ac\uc5b4
 languages.nyn=\ub2c8\uc548\ucf5c\uc5b4
 languages.nym=\ub2c8\uc554\uc6e8\uc9c0\uc5b4
+languages.gsw=\ub3c5\uc77c\uc5b4 (\uc2a4\uc704\uc2a4)
 languages.hmn=\ud788\ubab8\uc5b4
 languages.ban=\ubc1c\ub9ac\uc5b4
 languages.osa=\uc624\uc138\uc774\uc9c0\uc5b4
 languages.bal=\ubc1c\ub8e8\uce58\uc5b4
 languages.ty=\ud0c0\ud788\ud2f0\uc5b4
-languages.bai=\ubc14\ubbf8\ub808\ucf00\uc5b4
+languages.bai=\ubc14\ubc00\ub808\ucf00\uc5b4\uc871
 languages.tw=\ud2b8\uc704\uc5b4
-languages.srr=\uc138\uc140\uc5b4
+languages.srr=\uc138\ub808\ub974\uc5b4
 languages.tli=\ud2c0\ub9c1\uae43\uc871\uc5b4
+languages.tlh=\ud074\ub9c1\uc628\uc5b4
 languages.tt=\ud0c0\ud0c0\ub974\uc5b4
-languages.ts=\ud1b5\uac00\uc5b4
+languages.ts=\ucd1d\uac00\uc5b4
+languages.srn=\uc2a4\ub77c\ub09c \ud1b5\uac00\uc5b4
 languages.bad=\ubc18\ub2e4\uc5b4
 languages.tr=\ud130\ud0a4\uc5b4
 languages.to=\ud1b5\uac00\uc5b4
@@ -570,21 +683,22 @@ languages.kru=\ucfe0\ub974\ud06c\uc5b4
 languages.tg=\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4\uc5b4
 languages.byn=\ube0c\ub9b0\uc5b4
 languages.te=\ud154\ub8e8\uad6c\uc5b4
-languages.csb=\uce74\uc288\ube44\uc544\uc5b4
 languages.kro=\ud06c\ub8e8\uc5b4
+languages.csb=\uce74\uc288\ube44\uc544\uc5b4
 languages.ta=\ud0c0\ubc00\uc5b4
+languages.krl=\uce74\ub810\ub9ac\uc57c\uc5b4
 languages.tkl=\ud1a0\ucf08\ub77c\uc6b0\uc81c\ub3c4\uc5b4
 languages.efi=\uc774\ud53d\uc5b4
 languages.sw=\uc2a4\uc640\ud790\ub9ac\uc5b4
 languages.sv=\uc2a4\uc6e8\ub374\uc5b4
-languages.su=\uc21c\ub2e8\uc5b4
+languages.su=\uc21c\ub2e4\uc5b4
 languages.krc=\uce74\ub77c\ucc60\uc774-\ubc1c\uce74\ub974\uc5b4
-languages.st=\uc138\uc18c\ud1a0\uc5b4
+languages.st=\uc18c\ud1a0\uc5b4 (\ub0a8\ubd80)
 languages.ss=\uc2dc\uc2a4\uc640\ud2f0\uc5b4
 languages.sr=\uc138\ub974\ube44\uc544\uc5b4
 languages.sq=\uc54c\ubc14\ub2c8\uc544\uc5b4
 languages.men=\uba58\ub370\uc5b4
-languages.crp=\ud06c\ub808\uc624\uc2a4\uc640 \ud53c\uae34\uc2a4\uc5b4 (\uae30\ud0c0)
+languages.crp=\ud06c\ub9ac\uc62c\uc5b4 \ubc0f \ud53c\uc9c4\uc5b4 (\uae30\ud0c0)
 languages.so=\uc18c\ub9d0\ub9ac\uc544\uc5b4
 languages.afh=\uc544\ud504\ub9ac\ud788\ub9ac\uc5b4
 languages.sn=\uc1fc\ub098\uc5b4
@@ -594,49 +708,52 @@ languages.grc=\uadf8\ub9ac\uc2a4\uc5b4, \uace0\ub300 (1453\ub144 \uae4c\uc9c0)
 languages.sk=\uc2ac\ub85c\ubc14\ud0a4\uc544\uc5b4
 languages.grb=\uac8c\ub974\ubcf4\uc5b4
 languages.si=\uc2a4\ub9ac\ub791\uce74\uc5b4
-languages.sh=\uc138\ub974\ubcf4\ud06c\ub85c\uc544\ud2f0\uc544\uc5b4
-languages.afa=\uc544\uc2dc\uc544-\uc544\ud504\ub9ac\uce74\uc5b4 (\uae30\ud0c0)
-languages.crh=\ud06c\ub9ac\ubbfc \ud130\ud0a4\uc5b4; \ud06c\ub9ac\ubbfc \ud0c0\ud0c0\ub974\uc5b4
+languages.sh=\uc138\ub974\ube44\uc544-\ud06c\ub85c\uc544\ud2f0\uc544\uc5b4
+languages.crh=\ud06c\ub9ac\ubbf8\uc544 \ud22c\ub974\ud06c\uc5b4; \ud06c\ub9ac\ubbf8\uc544 \ud0c0\ud0c0\ub974\uc5b4
+languages.afa=\uc544\ud504\ub9ac\uce74 \uc544\uc2dc\uc544\uc5b4 (\uae30\ud0c0)
 languages.sg=\uc0b0\uace0\uc5b4
 languages.se=\ubd81\ubd80 \uc0ac\ubbf8\uc5b4
 languages.sd=\uc2e0\ub514\uc5b4
 languages.udm=\uc6b0\ub4dc\ub9d0\ud2b8\uc5b4
 languages.sc=\uc0ac\ub974\ub514\ub2c8\uc544\uc5b4
 languages.sa=\uc0b0\uc2a4\ud06c\ub9ac\ud2b8\uc5b4
-languages.rw=\ubc18\ud22c\uc5b4(\ub8e8\uc644\ub2e4)
+languages.rw=\ub974\uc644\ub2e4\uc5b4
+languages.nwc=\ub124\uc640\ub9ac\uc5b4 (\uace0\uc804)
 languages.ru=\ub7ec\uc2dc\uc544\uc5b4
 languages.mdr=\ub9cc\ub2e4\ub974\uc5b4
 languages.ro=\ub8e8\ub9c8\ub2c8\uc544\uc5b4
-languages.rn=\ubc18\ud22c\uc5b4(\ubd80\ub8ec\ub514)
+languages.rn=\ub8ec\ub514\uc5b4
 languages.rm=\ub808\ud1a0\ub85c\ub9cc\uc5b4
 languages.mdf=\ubaa8\ud06c\uc0e4\uc5b4
 languages.tiv=\ud2f0\ube44\uc5b4
 languages.ady=\uc544\ub2e5\ud5e4\uc5b4
 languages.zun=\uc8fc\ub2c8\uc5b4
-languages.kpe=\ucf54\ud3a0\ub808
+languages.kpe=\ud06c\ud3a0\ub808\uc5b4
 languages.qu=\ucf00\ucd94\uc544\uc5b4
 languages.tig=\ud2f0\uadf8\ub808\uc5b4
 languages.son=\uc1a1\uac00\uc774\uc871\uc5b4
-languages.cpp=\ud06c\ub808\uc624\ub9ac\uc2a4\uc640 \ud53c\uae34\uc2a4\uc5b4, \ud3ec\ub974\ud22c\uac08\uc5b4-\uae30\ubc18 (\uae30\ud0c0)
+languages.cpp=\ud06c\ub9ac\uc62c\uc5b4 \ubc0f \ud53c\uc9c4\uc5b4 (\ud3ec\ub974\ud22c\uac08\uc5b4\ub97c \uae30\ubc18\uc73c\ub85c \ud55c \uae30\ud0c0)
+languages.rup=\uc544\ub85c\ub9c8\ub2c8\uc544\uc5b4
 languages.sog=\uc18c\uadf8\ub514\uc5d4\uc5b4
 languages.ada=\uc544\ub2f9\uba54\uc5b4
-languages.cpf=\ud06c\ub808\uc624\ub9ac\uc2a4\uc640 \ud53c\uae34\uc2a4\uc5b4, \ud504\ub791\uc2a4\uc5b4-\uae30\ubc18 (\uae30\ud0c0)
-languages.hit=\ud558\ud0c0\uc774\ud2b8\uc5b4
 languages.kos=\ucf54\uc2a4\ub77c\uc774\uc5d4\uc5b4
-languages.cpe=\ud06c\ub808\uc624\ub9ac\uc2a4\uc640 \ud53c\uae34\uc2a4\uc5b4, \uc601\uc5b4-\uae30\ubc18 (\uae30\ud0c0)
+languages.hit=\ud558\ud0c0\uc774\ud2b8\uc5b4
+languages.cpf=\ud06c\ub9ac\uc62c\uc5b4 \ubc0f \ud53c\uc9c4\uc5b4 (\ud504\ub791\uc2a4\uc5b4\ub97c \uae30\ubc18\uc73c\ub85c \ud55c \uae30\ud0c0)
+languages.cpe=\ud06c\ub9ac\uc62c\uc5b4 \ubc0f \ud53c\uc9c4\uc5b4 (\uc601\uc5b4\ub97c \uae30\ubc18\uc73c\ub85c \ud55c \uae30\ud0c0)
 languages.him=\ud788\ub9c8\ucc28\ub9ac\uc5b4
-languages.got=\uace0\ud2b8\uc5b4
-languages.hil=\ud5e4\ub9ac\uac00\ub1ec\uc5b4
 languages.kok=\ucf54\uce74\ub2c8\uc5b4
+languages.hil=\ud5e4\ub9ac\uac00\ub1ec\uc5b4
+languages.got=\uace0\ud2b8\uc5b4
 languages.gor=\uace0\ub860\ud0c8\ub85c\uc5b4
 languages.gon=\uace4\ub514\uc5b4
 languages.din=\ub529\uce74\uc5b4
 languages.nub=\ub204\ube44\uc548\uc5b4
-languages.pt=\ud3ec\ub974\ud22c\uce7c\uc5b4
-languages.ps=\ud30c\uc2dc\ud1a0\uc5b4 (\ud478\uc2dc\ud1a0)
+languages.pt=\ud3ec\ub974\ud22c\uac08\uc5b4
+languages.ps=\ud30c\uc288\ud1a0\uc5b4
 languages.fur=\ud504\ub9ac\uc6b0\ub9ac\uc548\uc5b4
 languages.phn=\ud398\ub2c8\ud0a4\uc544\uc5b4
-languages.goh=\ub3c5\uc77c\uc5b4, \uace0\ub300 \uc800\uae09 (ca.750-1050)
+languages.de_CH=\uace0\uc9c0 \ub3c5\uc77c\uc5b4 (\uc2a4\uc704\uc2a4)
+languages.goh=\uace0\ub300 \uace0\uc9c0 \ub3c5\uc77c\uc5b4
 languages.snk=\uc18c\ub2cc\ucf00\uc5b4
 languages.cop=\ucf65\ud2b8\uc5b4
 languages.yap=\uc58d\ud398\uc138\uc5b4
@@ -664,27 +781,28 @@ languages.om=\uc624\ub85c\ubaa8\uc5b4 (\uc544\ud310)
 languages.mai=\ub9c8\uc774\ud2f8\ub9ac
 languages.oj=\uc624\uc9c0\ube0c\uc6e8\uc774\uc5b4
 languages.mag=\ub9c8\uac00\ud788
-languages.mad=\ub9c8\ub450\ub808\uc138
+languages.mad=\ub9c8\ub450\ub77c\uc5b4
 languages.sma=\ub0a8\ubd80 \uc0ac\ubbf8\uc5b4
-languages.oc=\uc625\uc2dc\ud2b8\uc5b4
+languages.oc=\uc624\ud06c\uc5b4
 languages.nso=\uc18c\ud1a0\uc5b4, \ubd81\ubd80
 languages.btk=\ubc14\ud0c0\ud06c\uc5b4
 languages.myv=\uc5d8\uc988\uc57c\uc5b4
 languages.dgr=\ub3c4\uadf8\ub9ac\ube0c\uc5b4
-languages.ny=\ub2c8\uc548\uc790\uc5b4; \uce58\uce04\uc5b4; \uce04\uc5b4
+languages.ny=\ub2c8\uc580\uc790\uc5b4
 languages.myn=\ub9c8\uc57c\uc5b4
 languages.nv=\ub098\ubc14\ud638\uc5b4
-languages.kmb=\ud0b4\ubd84\ub204\uc5b4
-languages.nr=\uc740\ub370\ubca8\ub808\uc5b4, \ub0a8\ubd80
-languages.gmh=\ub3c5\uc77c\uc5b4, \uc911\uc138 \uace0\uae09 (ca.1050-1500)
+languages.kmb=\ud0b4\ubd84\ub450\uc5b4
+languages.nr=\uc740\ub370\ubca8\ub808\uc5b4(\ub0a8\ubd80)
+languages.gmh=\uc911\uc138 \uace0\uc9c0 \ub3c5\uc77c\uc5b4
 languages.no=\ub178\ub974\uc6e8\uc774\uc5b4
-languages.nn=\ub258\ub178\ub974\uc2a4\ud06c \ub178\ub974\uc6e8\uc774\uc5b4
+languages.nn=\ub178\ub974\uc6e8\uc774\uc5b4(\ub2c8\ub178\ub974\uc2a4\ud06c)
 languages.nl=\ub124\ub35c\ub780\ub4dc\uc5b4
+languages.root=\uc5b4\uadfc
 languages.ng=\ub290\ub3d9\uac00\uc5b4
 languages.sla=\uc2ac\ub77c\ube0c\uc5b4 (\uae30\ud0c0)
 languages.ne=\ub124\ud314\uc5b4
-languages.nd=\uc740\ub370\ubca8\ub808\uc5b4, \ubd81\ubd80
-languages.cmc=\uce74\ubbf9\uc5b4
+languages.nd=\uc740\ub370\ubca8\ub808\uc5b4(\ubd81\ubd80)
+languages.cmc=\ucc38\uc5b4\uad70
 languages.tet=\ud14c\ud23c\uc5b4
 languages.nb=\ubcf4\ud06c\ub9d0 \ub178\ub974\uc6e8\uc774\uc5b4
 languages.na=\ub098\uc6b0\ub8e8\uc5b4
@@ -693,26 +811,30 @@ languages.tem=\ud300\ub2c8\uc5b4
 languages.my=\ubc84\ub9c8\uc5b4
 languages.lez=\ub808\uc988\uae30\uc548\uc5b4
 languages.mt=\ubab0\ud0c0\uc5b4
-languages.peo=\ud398\ub974\uc2dc\uc548 \uace0\ub300\uc5b4 (ca.600-400 B.C.)
+languages.frs=\ub3d9\ubd80 \ud504\ub9ac\uc2ac\ub780\ub4dc\uc5b4
+languages.peo=\uace0\ub300 \ud398\ub974\uc2dc\uc544\uc5b4
 languages.ms=\ub9d0\ub808\uc774\uc5b4
+languages.frr=\ubd81\ubd80 \ud504\ub9ac\uc2ac\ub780\ub4dc\uc5b4
 languages.mr=\ub9c8\ub77c\ud2f0\uc5b4
-languages.fro=\ud504\ub791\uc2a4\uc5b4, \uace0\ub300 (842-ca.1400)
-languages.mo=\ubab0\ub2e4\ube44\uc544\uc5b4
-languages.mn=\ubabd\uace8\uc5b4
-languages.frm=\ud504\ub791\uc2a4\uc5b4, \uc911\uc138 (ca.1400-1600)
+languages.fro=\uace0\ub300 \ud504\ub791\uc2a4\uc5b4
+languages.mo=\ubab0\ub3c4\ubc14\uc5b4
+languages.mn=\ubabd\uace0\uc5b4
+languages.frm=\uc911\uc138 \ud504\ub791\uc2a4\uc5b4
 languages.ml=\ub9d0\ub77c\uc584\ub78c\uc5b4
 languages.jrb=\uc720\ub300-\uc544\ub77c\ube44\uc544\uc5b4
 languages.mk=\ub9c8\ucf00\ub3c4\ub2c8\uc544\uc5b4
 languages.mi=\ub9c8\uc624\ub9ac\uc5b4
 languages.mh=\ub9c8\uc15c\uc81c\ub3c4\uc5b4
 languages.mg=\ub9c8\ub2e4\uac00\uc2a4\uce74\ub974\uc5b4
+languages.nqo=\uc751\ucf54\uc5b4
 languages.mwr=\ub9c8\ub974\uc640\ub9ac\uc5b4
-languages.bra=\ube0c\ub77c\uc5b4
-languages.lv=\ub77c\ud2b8\ube44\uc544\uc5b4
+languages.bra=\ube0c\ub77c\uc9c0\uc5b4
+languages.mwl=\ubbf8\ub780\ub370\uc5b4
 languages.den=\uc2ac\ub77c\ube0c\uc5b4
+languages.lv=\ub77c\ud2b8\ube44\uc544\uc5b4
 languages.lu=\ub8e8\ubc14-\uce74\ud0c4\uac00\uc5b4
-languages.lt=\ub9ac\ud22c\uc544\ub2c8\uc544\uc5b4
 languages.del=\ub378\ub77c\uc6e8\uc5b4\uc5b4
+languages.lt=\ub9ac\ud22c\uc544\ub2c8\uc544\uc5b4
 languages.lo=\ub77c\uc624\uc5b4
 languages.ln=\ub9c1\uac08\ub77c\uc5b4
 languages.li=\ub9bc\ubc84\uac70\uc5b4
@@ -726,7 +848,7 @@ languages.sit=\uc778\ub3c4\uc81c\uc5b8\uc5b4 (\uae30\ud0c0)
 languages.ky=\ud0a4\ub974\uae30\uc2a4\uc5b4
 languages.kw=\ucf58\uc6d4\uc5b4
 languages.kv=\ucf54\ubbf8\uc5b4
-languages.ku=\ud06c\ub974\ub4dc\uc5b4
+languages.ku=\ucfe0\ub974\ub4dc\uc5b4
 languages.sio=\uc218\uc871\uc5b4
 languages.ks=\uce74\uc288\ubbf8\ub974\uc5b4
 languages.kr=\uce78\ub204\ub9ac\uc5b4
@@ -734,7 +856,8 @@ languages.awa=\uc544\uc640\ud788\uc5b4
 languages.ko=\ud55c\uad6d\uc5b4
 languages.kn=\uce74\ub098\ub2e4\uc5b4
 languages.km=\uce84\ubcf4\ub514\uc544\uc5b4
-languages.kl=\uadf8\ub9b0\ub79c\ub4dc\uc5b4
+languages.en_GB=\uc601\uc5b4 (\uc601\uad6d\uc2dd)
+languages.kl=\uadf8\ub9b0\ub780\ub4dc\uc5b4
 languages.kk=\uce74\uc790\ud750\uc5b4
 languages.rom=\uc9d1\uc2dc\uc5b4
 languages.kj=\ucfe0\uc548\uc57c\ub9c8\uc5b4
@@ -754,8 +877,8 @@ languages.znd=\uc544\uc794\ub370\uc871\uc5b4
 languages.shn=\uc0e8\uc5b4
 languages.fon=\ud3f0\uc5b4
 languages.xal=\uce7c\ubbf8\ud06c\uc5b4
-languages.aus=\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544\uc5b4
-languages.kho=\ucf54\ud0c4\uc2a4\uc5b4
+languages.aus=\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544\uc5b4\uc871
+languages.kho=\ud638\ud0c4\uc5b4
 languages.ja=\uc77c\ubcf8\uc5b4
 languages.khi=\ucf54\uc774\uc0b0\uc5b4 (\uae30\ud0c0)
 languages.pau=\ud30c\ub77c\uc6b0\uc548\uc5b4
@@ -765,39 +888,40 @@ languages.iu=\uc774\ub205\ud2f0\ud22c\ud2b8\uc5b4
 languages.pap=\ud30c\ud53c\uc544\uba3c\ud1a0\uc5b4
 languages.it=\uc774\ud0c8\ub9ac\uc544\uc5b4
 languages.sgn=\uc218\ud654
-languages.kha=\uce74\uc2dc\uc5b4
 languages.is=\uc544\uc774\uc2ac\ub780\ub4dc\uc5b4
+languages.kha=\uce74\uc2dc\uc5b4
 languages.chr=\uccb4\ub85c\ud0a4\uc5b4
 languages.pam=\ud31c\ud321\uac00\uc5b4
-languages.pal=\ud314\ube4c\ub808\uc5b4
+languages.pal=\ud314\ub808\ube44\uc5b4
 languages.chp=\uce58\ud398\uc6b0\uc580
-languages.cho=\ucd09\ud1a0\uc5b4
 languages.io=\uc774\ub3c4\uc5b4
+languages.cho=\ucd09\ud1a0\uc5b4
 languages.chn=\uce58\ub204\ud06c\uc5b4\uc640 \uc601\uc5b4 \ud504\ub791\uc2a4\uc5b4\uc758 \ud63c\uc131\uc5b4
 languages.chm=\ub9c8\ub9ac\uc5b4
 languages.tyv=\ud22c\ube44\ub2c8\uc548\uc5b4
 languages.bnt=\ubc18\ud22c\uc5b4
 languages.pag=\ud310\uac00\uc2dc\ub09c\uc5b4
-languages.chk=\uce04\ucf00\uc2a4\uc5b4
 languages.ik=\uc774\ub204\ud53c\uc544\ud06c\uc5b4
+languages.chk=\ucd94\ud06c\uc5b4
+languages.ii=\uc4f0\ucd28 \uc774\uc5b4
 languages.haw=\ud558\uc640\uc774\uc5b4
-languages.ii=\uc2dc\uce04\uc548 \uc774\uc5b4
 languages.lam=\ub78c\ubc14\uc5b4
-languages.chg=\ucc28\uac00\ud0c0\uc774\uc5b4
 languages.ig=\uc774\uadf8\ubcf4\uc5b4
+languages.chg=\ucc28\uac00\ud0c0\uc774\uc5b4
 languages.sga=\uc544\uc77c\ub79c\ub4dc, \uace0\ub300 (900\ub144 \uae4c\uc9c0)
 languages.paa=\ud30c\ud478\uc544\uc5b4 (\uae30\ud0c0)
-languages.ie=\uc778\ud130\ub9c1\uac8c\uc5b4
+languages.ie=\uc778\ud14c\ub974\ub9c1\uad6c\uc5d0
 languages.id=\uc778\ub3c4\ub124\uc2dc\uc544\uc5b4
 languages.lah=\ub77c\ud55c\ub2e4\uc5b4
-languages.chb=\uce58\ube0c\ucc28\uc5b4
 languages.day=\ub2e4\uc57c\ud06c\uc5b4
-languages.ia=\uc778\ud130\ub9c1\uac70
+languages.chb=\uce58\ube0c\ucc28\uc5b4
+languages.ia=\uc778\ud14c\ub974\ub9c1\uad6c\uc544(\uad6d\uc81c\ubcf4\uc870\uc5b4\ud611\ud68c)
 languages.lad=\ub77c\ub514\ub178\uc5b4
-languages.dar=\ub2e4\ub974\uadf8\uc640\uc5b4
+languages.hz=\ud5e4\ub808\ub85c\uc5b4
 languages.hai=\ud558\uc774\ub2e4\uc5b4
+languages.dar=\ub2e4\ub974\uadf8\uc640\uc5b4
 languages.hy=\uc544\ub974\uba54\ub2c8\uc544\uc5b4
-languages.ath=\uc544\ud0c0\ubc14\uc2a4\uce74\uc5b4
+languages.ath=\uc544\ud0c0\ud30c\uc2a4\uce74\uc5b4\uad70
 languages.hu=\ud5dd\uac00\ub9ac\uc5b4
 languages.ht=\uc544\uc774\ud2f0\uc5b4
 languages.dak=\ub2e4\ucf54\ud0c0\uc5b4
@@ -807,20 +931,22 @@ languages.hi=\ud78c\ub514\uc5b4
 languages.dyu=\ub4dc\uc728\ub77c\uc5b4
 languages.he=\ud788\ube0c\ub9ac\uc5b4
 languages.ast=\uc544\uc2a4\ud22c\ub9ac\uc544\uc5b4
-languages.ha=\ud558\uc6b0\uc790\uc5b4
+languages.kfo=\ucf54\ub85c\uc5b4
+languages.ha=\ud558\uc6b0\uc0ac\uc5b4
 languages.wen=\uc18c\ub974\ube0c\uc5b4
 languages.gv=\ub9f9\ud06c\uc2a4\uc5b4
 languages.gu=\uad6c\uc790\ub77c\ud2b8\uc5b4
 languages.sem=\uc148\uc5b4 (\uae30\ud0c0)
 languages.sel=\uc140\ucfe0\ud504\uc5b4
 languages.iro=\uc774\ub7ec\ucffc\uc774\uc5b4
-languages.gn=\uad6c\uc544\ub77c\ub2c8\uc5b4
+languages.gn=\uacfc\ub77c\ub2c8\uc5b4
 languages.gl=\uac08\ub9ac\uc2dc\uc544\uc5b4
+languages.en_CA=\uce90\ub098\ub2e4 \uc601\uc5b4
 languages.arw=\uc544\ub77c\uc640\ud06c\uc5b4
-languages.gd=\uc2a4\ucf54\uac24\ub9ad\uc5b4
-languages.art=\uae30\uacc4\uc5b4 (\uae30\ud0c0)
 languages.gez=\uac8c\uc774\uc988\uc5b4
-languages.ira=\uc774\ub780\uc5b4
+languages.art=\uae30\uacc4\uc5b4 (\uae30\ud0c0)
+languages.gd=\uc2a4\ucf54\ud2c0\ub79c\ub4dc \uac8c\uc77c\uc5b4
+languages.ira=\uc774\ub780\uc5b4 [ira]
 languages.ga=\uc544\uc77c\ub79c\ub4dc\uc5b4
 languages.arp=\uc544\ub77c\ud30c\ud638\uc5b4
 languages.arn=\uc544\ub77c\uc6b0\uce78\uc5b4
@@ -828,19 +954,23 @@ languages.fy=\ud504\ub9ac\uc9c0\uc544\uc5b4
 languages.bla=\uc2dd\uc2dc\uce74\uc5b4
 languages.gem=\ub3c5\uc77c\uc5b4 (\uae30\ud0c0)
 languages.ypk=\uc57c\ud53d\uc5b4
-languages.fr=\ud504\ub791\uc2a4\uc5b4
 languages.arc=\uc544\ub78c\uc5b4
-languages.fo=\ud398\ub85c\uc2a4\uc5b4
+languages.fr=\ud504\ub791\uc2a4\uc5b4
+languages.fo=\ud398\ub85c\uc5b4
 languages.cel=\ucf08\ud2b8\uc5b4 (\uae30\ud0c0)
 languages.fj=\ud53c\uc9c0\uc5b4
 languages.fi=\ud540\ub780\ub4dc\uc5b4
 languages.ff=\ud480\ub77c\uc5b4
 languages.tvl=\ud22c\ubc1c\ub8e8\uc5b4
 languages.ceb=\uc138\ubd80\uc544\ub178\uc5b4
-languages.fa=\uc774\ub780\uc5b4
+languages.fa=\ud398\ub974\uc2dc\uc544\uc5b4
+languages.en_AU=\uc601\uc5b4 (\ud638\uc8fc)
+languages.zh_Hans=\uc911\uad6d\uc5b4(\uac04\uccb4)
+languages.zh_Hant=\uc911\uad6d\uc5b4 (\ubc88\uccb4)
 languages.eu=\ubc14\uc2a4\ud06c\uc5b4
 languages.sco=\uc2a4\ucf54\ud2c0\ub79c\ub4dc\uc5b4
 languages.et=\uc5d0\uc2a4\ud1a0\ub2c8\uc544\uc5b4
+languages.scn=\uc2dc\uce60\ub9ac\uc544\uc5b4
 languages.es=\uc2a4\ud398\uc778\uc5b4
 languages.eo=\uc5d0\uc2a4\ud398\ub780\ud1a0\uc5b4
 languages.en=\uc601\uc5b4
@@ -850,19 +980,23 @@ languages.niu=\ub2c8\uc6e8\uc5b8\uc5b4
 languages.tup=\ud22c\ud53c\uc5b4
 languages.ee=\uc5d0\uc6e8\uc5b4
 languages.tum=\ud23c\ubd80\uce74\uc5b4
+languages.nl_BE=\ud50c\ub77c\ub9dd\uc5b4
+languages.es_419=\uc911\ub0a8\ubbf8 \uc2a4\ud398\uc778\uc5b4
 languages.mos=\ubaa8\uc2dc\uc5b4
-languages.dz=\ubd80\ud0c4\uc5b4
+languages.dz=\uc885\uce74\uc5b4
 languages.nic=\ub2c8\uc81c\ub974 - \ucf54\ub974\ub3c4\ud30c\ub2c8\uc544\uc5b4 (\uae30\ud0c0)
-languages.dv=\ub514\ubca0\ud788\uc5b4
-languages.fiu=\ud53c\ub178\uc6b0\uadf8\ub9ac\uc544\uc5b4 (\uae30\ud0c0)
 languages.lus=\ub8e8\uc0e4\uc774\uc5b4
+languages.fiu=\ud53c\ub178\uc6b0\uadf8\ub9ac\uc544\uc5b4 (\uae30\ud0c0)
+languages.dv=\ub514\ubca0\ud788\uc5b4
 languages.nia=\ub2c8\uc544\uc2a4\uc5b4
 languages.moh=\ubaa8\ud638\ud06c\uc5b4
 languages.luo=\ub8e8\uc624\uc5b4
 languages.lun=\ub8ec\ub2e4\uc5b4
 languages.apa=\uc544\ud30c\uce58\uc5b4
+languages.fil=\ud544\ub9ac\ud540\uc5b4
 languages.lui=\ub8e8\uc774\uc138\ub178\uc5b4
 languages.hup=\ud6c4\ud30c\uc5b4
+languages.cch=cch
 languages.bin=\ube44\ub2c8\uc5b4
 languages.de=\ub3c5\uc77c\uc5b4
 languages.lua=\ub8e8\ubc14-\ub8f0\ub8e8\uc544\uc5b4
@@ -871,16 +1005,16 @@ languages.was=\uc640\uc1fc\uc5b4
 languages.und=\uacb0\uc815\ub418\uc9c0\uc54a\uc74c
 languages.war=\uc640\ub77c\uc774\uc5b4
 languages.da=\ub374\ub9c8\ud06c\uc5b4
-languages.dum=\ub124\ub35c\ub780\ub4dc, \uc911\uc138 (ca. 1050-1350)
+languages.dum=\uc911\uc138 \ub124\ub35c\ub780\ub4dc\uc5b4
 languages.wal=\uc640\ub77c\ubaa8\uc5b4
 languages.mno=\ub9c8\ub178\ubcf4\uc5b4
 languages.wak=\uc640\uce74\uc0e8\uc5b4
 languages.sat=\uc0b0\ud0c8\ub9ac\uc5b4
 languages.cy=\uc6e8\uc77c\uc2a4\uc5b4
 languages.sas=\uc0ac\uc0ac\ud06c\uc5b4
-languages.cv=\ucd94\ubc14\uc2dc\uc5b4
 languages.kbd=\uce74\ubc14\ub974\ub514\uc5b4
-languages.cu=\uad50\ud68c\uc2ac\ub77c\ube0c\uc5b4
+languages.cv=\ucd94\ubc14\uc2dc\uc5b4
+languages.cu=\uad50\ud68c \uc2ac\ub77c\ube0c\uc5b4
 languages.mni=\ub9c8\ub2c8\ud478\ub9ac\uc5b4
 languages.cs=\uccb4\ucf54\uc5b4
 languages.sam=\uc0ac\ub9c8\ub9ac\uc544 \uc544\ub78d\uc5b4
@@ -891,72 +1025,97 @@ languages.co=\ucf54\ub974\uc2dc\uce74\uc5b4
 languages.sai=\ub0a8\uc544\uba54\ub9ac\uce74 \uc778\ub514\uc5b8\uc5b4 (\uae30\ud0c0)
 languages.mnc=\ub9cc\uc8fc\uc5b4
 languages.sah=\uc57c\ud050\ud2b8\uc5b4
-languages.gba=\uadf8\ubc14\uc57c\uc5b4
-languages.inh=\uc778\uadc0\uc2dc\uc5b4
 languages.kaw=\uce74\uc704\uc5b4
+languages.inh=\uc778\uadc0\uc2dc\uc5b4
+languages.gba=\uadf8\ubc14\uc57c\uc5b4
 languages.sad=\uc0b0\ub2e4\uc6e8\uc5b4
 languages.ch=\ucc28\ubaa8\ub85c\uc5b4
-languages.bho=\ud638\uc988\ud478\ub9ac\uc5b4
 languages.ine=\uc778\ub3c4\uc720\ub7fd\uc5b4 (\uae30\ud0c0)
+languages.bho=\ud638\uc988\ud478\ub9ac\uc5b4
 languages.enm=\uc601\uc5b4, \uc911\uc138 (1100-1500)
-languages.inc=\uc778\ub3c4\uc5b4 (\uae30\ud0c0)
 languages.kar=\uce74\ub80c\uc5b4
+languages.inc=\uc778\ub3c4\uc5b4 (\uae30\ud0c0)
+languages.ce=\uccb4\uccb8\uc5b4
 languages.gay=\uac00\uc694\uc5b4
 languages.ca=\uce74\ud0c8\ub85c\ub2c8\uc544\uc5b4
 languages.umb=\uc724\ubc88\ub450\uc5b4
 languages.syr=\uc2dc\ub9ac\uc544\uc5b4
 languages.kam=\uce84\ubc14\uc5b4
+languages.anp=\uc559\uac00\uc5b4
 languages.tsi=\ud2b8\uc2ec\uc2dc\uc548\uc5b4
-languages.ang=\uc774\uc804 \uc601\uc5b4 (ca.450-1100)
-languages.cau=\uce74\ud504\uce74\uc2a4\uc5b4 (\uae30\ud0c0)
+languages.ang=\uace0\ub300 \uc601\uc5b4
 languages.kac=\uce74\uce5c\uc5b4
+languages.cau=\ucf54\uce74\uc11c\uc2a4\uc5b4 (\uae30\ud0c0)
 languages.kab=\ucee4\ubc14\uc77c\uc5b4
-languages.bs=\ubcf4\uc2a4\ub2c8\uc544\uc5b4
 languages.kaa=\uce74\ub77c\uce7c\ud30c\ud06c\uc5b4
-languages.br=\ube0c\ub974\ud0c0\ub274\uc5b4
+languages.bs=\ubcf4\uc2a4\ub2c8\uc544\uc5b4
 languages.car=\uce74\ub9ac\ube0c\uc5b4
+languages.br=\ube0c\ub974\ud0c0\ub274\uc5b4
+languages.syc=syc
 languages.bo=\ud2f0\ubca0\ud2b8\uc5b4
 languages.bn=\ubcb5\uace8\uc5b4
 languages.bm=\ubc24\ubc14\ub77c\uc5b4
 languages.gaa=\uac00\uc5b4
+languages.cai=\uc911\uc559 \uc544\uba54\ub9ac\uce74 \uc778\ub514\uc5b8\uc5b4(\uae30\ud0c0)
 languages.bi=\ube44\uc2ac\ub77c\ub9c8\uc5b4
-languages.cai=\uc911\uc559 \uc544\uba54\ub9ac\uce74 \uc778\ub514\uc548\uc5b4 (\uae30\ud0c0)
 languages.bh=\ube44\ud558\ub974\uc5b4
 languages.bg=\ubd88\uac00\ub9ac\uc544\uc5b4
 languages.be=\ubca8\ub85c\ub8e8\uc2dc\uc5b4
+languages.pt_BR=\ud3ec\ub974\ud22c\uac08\uc5b4 (\ube0c\ub77c\uc9c8)
 languages.cad=\uce74\ub3c4\uc5b4
 languages.ba=\ubc14\uc288\ud0a4\ub974\uc5b4
 languages.zu=\uc904\ub8e8\uc5b4
 languages.zen=\uc81c\ub098\uac00\uc5b4
-languages.pro=\ud504\ub85c\ubca4\uce7c\uc5b4, \uace0\ub300 (1500\ub144 \uae4c\uc9c0)
-languages.hsb=\uc704 \uc18c\ub974\ube44\uc548\uc5b4
+languages.pro=\uace0\ub300 \ud504\ub85c\ubc29\uc2a4\uc5b4
+languages.hsb=\uace0\uc9c0 \uc18c\ub974\ube44\uc544\uc5b4
 languages.az=\uc544\uc81c\ub974\ubc14\uc774\uc794\uc5b4
 languages.ay=\uc544\uc774\ub9c8\ub77c\uc5b4
 languages.av=\uc544\ubc14\ub9ad\uc5b4
-languages.as=\uc544\uc0d8\uc5b4
+languages.as=\uc544\uc0bc\uc5b4
+languages.dsb=\uc800\uc9c0 \uc18c\ub974\ube44\uc544\uc5b4
 languages.ar=\uc544\ub78d\uc5b4
-languages.dsb=\uc800\uae09 \uc18c\ub974\ube44\uc548\uc5b4
-languages.elx=\uc5d8\ub78c\uc5b4
 languages.ilo=\uc774\ub85c\ucf54\uc5b4
+languages.elx=\uc5d8\ub78c\uc5b4
 languages.zh=\uc911\uad6d\uc5b4
 languages.an=\uc544\ub77c\uace4\uc5b4
 languages.pra=\ud504\ub77c\ud06c\ub9ac\ud2b8\uc5b4
 languages.am=\uc554\ud558\ub77c\uc5b4
-languages.new=\ub124\uc640\ub9ac\uc5b4
+languages.new=\ub124\uc640\ub974\uc5b4
 languages.ak=\uc544\uce78\uc5b4
 languages.za=\uc8fc\uc559\uc5b4
+languages.en_US=\uc601\uc5b4 (\ubbf8\uad6d\uc2dd)
 languages.af=\ub0a8\uc544\uacf5 \uacf5\uc6a9\uc5b4
+languages.ae=\uc544\ubca0\uc2a4\ud0c0\uc5b4
+languages.alt=\ub0a8\ubd80 \uc54c\ud0c0\uc774\uc5b4
 languages.ab=\uc555\uce74\uc988\uc5b4
 languages.aa=\uc544\ud30c\ub974\uc5b4
 languages.yo=\uc694\ub8e8\ubc14\uc5b4
-languages.alg=\uc54c\ucf58\ud0a8\uc5b4
+languages.alg=\uc54c\uacf5\ud0a8\uc5b4\uc871
 languages.ale=\uc54c\ub958\ud2b8\uc5b4
 languages.mkh=\ubaac\ud06c\uba54\ub974\uc5b4 (\uae30\ud0c0)
 languages.yi=\uc774\ub514\uc2dc\uc5b4
 languages.dra=\ub4dc\ub77c\ube44\ub2e4\uc5b4 (\uae30\ud0c0)
 languages.ber=\ubca0\ub974\ubca0\ub974\uc5b4
-languages.nds=\uc800\uae09 \ub3c5\uc77c\uc5b4; \uc800\uae09 \uc0c9\uc2a8\uc5b4
+languages.nds=\uc800\uc9c0 \ub3c5\uc77c\uc5b4
 languages.bem=\ubcb0\ubc14\uc5b4
 languages.bej=\ubca0\uc790\uc5b4
 languages.tpi=\ud1a0\ud06c \ud53c\uc2e0\uc5b4
+variants.POSIX=\ucef4\ud4e8\ud130 (POSIX)
+variants.1996=\ub3c5\uc77c\uc5b4 \ucca0\uc790\ubc95 (1996\ub144)
+variants.NEDIS=\ub098\ud2f0\uc18c\ub124 \ubc29\uc5b8
+variants.1994=\ud45c\uc900 \ub808\uc9c0\uc544\uc5b4 \ucca0\uc790\ubc95
+variants.1901=\uc804\ud1b5 \ub3c5\uc77c\uc5b4 \ucca0\uc790\ubc95 (1901\ub144)
+variants.FONUPA=UPA \uc74c\uc131\uc5b4
 variants.REVISED=\uac1c\uc815
+variants.NJIVA=\ub2c8\ubc14 \ubc29\uc5b8
+variants.FONIPA=IPA \uc74c\uc131\uae30\ud638
+variants.BISKE=\uc0b0\uc870\ub974\uc9c0\uc624/\ube4c\ub77c \ubc29\uc5b8
+variants.SCOUSE=\uc2a4\uce74\uc6b0\uc2a4\uc5b4
+variants.BAKU1926=\ud1b5\ud569 \ud22c\ub974\ud06c\uc5b4 \ub77c\ud2f4 \uc54c\ud30c\ubcb3
+variants.SAAHO=\uc0ac\ud638\uc5b4
+variants.ROZAJ=\ub808\uc9c0\uc544\uc5b4
+variants.AREVELA=\ub3d9\uc544\ub974\uba54\ub2c8\uc544\uc5b4
+variants.SCOTLAND=\uc2a4\ucf54\ud2c0\ub79c\ub4dc \ud45c\uc900 \uc601\uc5b4
+variants.VALENCIA=\ubc1c\ub80c\uc2dc\uc544\uc5b4
+variants.BOONT=\ubd84\ud2c0\ub9c1\uc5b4
+variants.1606NICT=\ud6c4\uae30 \uc911\uc138 \ud504\ub791\uc2a4\uc5b4
index 6e3fe912282b99b75986b774c85027457f743a3c..5c27daf63a64bb325a44b876c5856e95e51ec52f 100644 (file)
@@ -5,26 +5,36 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
 currenciesSymbol.INR=\u0930\u0941
-shortMonths=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940®\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u090f\u092a\u094d\u0930\u093f\u0932®\u092e\u0947®\u091c\u0942\u0928®\u091c\u0941\u0932\u0948®\u0913\u0917\u0938\u094d\u091f®\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930®\u0913\u0915\u094d\u091f\u094b\u092c\u0930®\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930®\u0921\u093f\u0938\u0947\u0902\u092c\u0930®®
-months=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940®\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u090f\u092a\u094d\u0930\u093f\u0932®\u092e\u0947®\u091c\u0942\u0928®\u091c\u0941\u0932\u0948®\u0913\u0917\u0938\u094d\u091f®\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930®\u0913\u0915\u094d\u091f\u094b\u092c\u0930®\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930®\u0921\u093f\u0938\u0947\u0902\u092c\u0930®®
-shortWeekdays=®\u0930\u0935\u093f®\u0938\u094b\u092e®\u092e\u0902\u0917\u0933®\u092c\u0941\u0927®\u0917\u0941\u0930\u0941®\u0936\u0941\u0915\u094d\u0930®\u0936\u0928\u093f®
-weekdays=®\u0906\u0926\u093f\u0924\u094d\u092f\u0935\u093e\u0930®\u0938\u094b\u092e\u0935\u093e\u0930®\u092e\u0902\u0917\u0933\u093e\u0930®\u092c\u0941\u0927\u0935\u093e\u0930®\u0917\u0941\u0930\u0941\u0935\u093e\u0930®\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930®\u0936\u0928\u093f\u0935\u093e\u0930®
-eras=\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u092a\u0942\u0930\u094d\u0935®\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u0936\u0916\u093e®
-ampms=\u092e.\u092a\u0942.®\u092e.\u0928\u0902.®
-zoneStrings=Asia/Calcutta®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®©
+shortMonths=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940\u00ae\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u090f\u092a\u094d\u0930\u093f\u0932\u00ae\u092e\u0947\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u0948\u00ae\u0913\u0917\u0938\u094d\u091f\u00ae\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930\u00ae\u0913\u0915\u094d\u091f\u094b\u092c\u0930\u00ae\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930\u00ae\u0921\u093f\u0938\u0947\u0902\u092c\u0930\u00ae\u00ae
+months=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940\u00ae\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u090f\u092a\u094d\u0930\u093f\u0932\u00ae\u092e\u0947\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u0948\u00ae\u0913\u0917\u0938\u094d\u091f\u00ae\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930\u00ae\u0913\u0915\u094d\u091f\u094b\u092c\u0930\u00ae\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930\u00ae\u0921\u093f\u0938\u0947\u0902\u092c\u0930\u00ae\u00ae
+shortWeekdays=\u00ae\u0930\u0935\u093f\u00ae\u0938\u094b\u092e\u00ae\u092e\u0902\u0917\u0933\u00ae\u092c\u0941\u0927\u00ae\u0917\u0941\u0930\u0941\u00ae\u0936\u0941\u0915\u094d\u0930\u00ae\u0936\u0928\u093f\u00ae
+weekdays=\u00ae\u0906\u0926\u093f\u0924\u094d\u092f\u0935\u093e\u0930\u00ae\u0938\u094b\u092e\u0935\u093e\u0930\u00ae\u092e\u0902\u0917\u0933\u093e\u0930\u00ae\u092c\u0941\u0927\u0935\u093e\u0930\u00ae\u0917\u0941\u0930\u0941\u0935\u093e\u0930\u00ae\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930\u00ae\u0936\u0928\u093f\u0935\u093e\u0930\u00ae
+eras=\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u092a\u0942\u0930\u094d\u0935\u00ae\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u0936\u0916\u093e\u00ae
+ampms=\u092e.\u092a\u0942.\u00ae\u092e.\u0928\u0902.\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=India\u00ae\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f\u00ae\u00ae\u00ae\u00ae\u00a9
 territories.IN=\u092d\u093e\u0930\u0924
 languages.es=\u0938\u094d\u092a\u093e\u0928\u093f\u0937
 languages.ku=\u0915\u0941\u0930\u094d\u0926\u093f\u0937
 languages.eo=\u0907\u0938\u094d\u092a\u0930\u093e\u0928\u094d\u091f\u094b
-languages.en=\u0906\u0902\u0917\u094d\u0932
 languages.ks=\u0915\u0936\u094d\u092e\u0940\u0930\u0940
+languages.en=\u0906\u0902\u0917\u094d\u0932
 languages.el=\u0917\u094d\u0930\u0940\u0915\u094d
 languages.qu=\u0915\u094d\u0935\u0947\u091a\u094d\u0935\u093e
 languages.ko=\u0915\u094b\u0930\u093f\u092f\u0928\u094d
 languages.kn=\u0915\u0928\u094d\u0928\u0921\u093e
-languages.km=\u0915\u0902\u092c\u094b\u0921\u093f\u092f\u0928
 languages.kok=\u0915\u094b\u0902\u0915\u0923\u0940
+languages.km=\u0915\u0902\u092c\u094b\u0921\u093f\u092f\u0928
 languages.kl=\u0917\u094d\u0930\u0940\u0928\u0932\u093e\u0928\u094d\u0921\u093f\u0915
 languages.kk=\u0915\u091c\u093c\u0916\u094d
 languages.wo=\u0909\u0932\u094b\u092b\u093c
@@ -43,8 +53,8 @@ languages.cy=\u0935\u0947\u0933\u094d\u0937\u094d
 languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
 languages.cs=\u091c\u093c\u0947\u0915\u094d
 languages.iu=\u0907\u0928\u094d\u092f\u0941\u0915\u091f\u094d\u091f
-languages.co=\u0915\u094b\u0930\u094d\u0936\u093f\u092f\u0928
 languages.it=\u0907\u091f\u093e\u0932\u093f\u092f\u0928
+languages.co=\u0915\u094b\u0930\u094d\u0936\u093f\u092f\u0928
 languages.is=\u0906\u0908\u0938\u094d\u0932\u093e\u0928\u094d\u0921\u093f\u0915
 languages.uz=\u0909\u091c\u093c\u092c\u0947\u0915
 languages.or=\u0913\u0930\u093f\u092f\u093e
@@ -137,14 +147,14 @@ languages.fy=\u092b\u094d\u0930\u093f\u0936\u093f\u092f\u0928\u094d
 languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924
 languages.fr=\u092b\u094d\u0930\u0947\u0928\u094d\u091a
 languages.lv=\u0932\u093e\u091f\u094d\u0935\u093f\u092f\u0928\u094d (\u0932\u0947\u091f\u094d\u091f\u093f\u0937\u094d)
-languages.fo=\u092b\u0947\u0930\u094b\u0938\u094d
 languages.lt=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u0928\u094d
+languages.fo=\u092b\u0947\u0930\u094b\u0938\u094d
 languages.rw=\u0915\u093f\u0928\u094d\u092f\u093e\u0930\u094d\u0935\u093e\u0928\u094d\u0921\u093e
 languages.ru=\u0930\u0937\u094d\u092f\u0928\u094d
-languages.fj=\u092b\u093f\u091c\u0940
 languages.lo=\u0932\u093e\u0913\u0924\u093f\u092f\u0928\u094d
-languages.fi=\u092b\u093f\u0928\u094d\u0928\u093f\u0937\u094d
+languages.fj=\u092b\u093f\u091c\u0940
 languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
+languages.fi=\u092b\u093f\u0928\u094d\u0928\u093f\u0937\u094d
 languages.ro=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u0928\u094d
 languages.rn=\u0915\u093f\u0930\u0941\u0928\u094d\u0926\u0940
 languages.rm=\u0930\u0939\u091f\u094b-\u0930\u094b\u092e\u093e\u0928\u094d\u0938\u094d
@@ -152,5 +162,5 @@ languages.fa=\u092a\u0930\u094d\u0937\u093f\u092f\u0928\u094d
 languages.la=\u0932\u093e\u091f\u093f\u0928
 languages.xh=\u091d\u093c\u094c\u0938\u093e
 languages.eu=\u092c\u093e\u0938\u094d\u0915
-languages.et=\u0907\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u0928\u094d
 languages.ky=\u0915\u093f\u0930\u094d\u0917\u093f\u091c\u093c
+languages.et=\u0907\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u0928\u094d
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kpe.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kpe.properties
new file mode 100644 (file)
index 0000000..3d46855
--- /dev/null
@@ -0,0 +1,21 @@
+# LocaleInformation_kpe.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku.properties
new file mode 100644 (file)
index 0000000..ca95e13
--- /dev/null
@@ -0,0 +1,111 @@
+# LocaleInformation_ku.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+languages.es=\u0626\u06cc\u0633\u067e\u0627\u0646\u06cc
+languages.ku=\u0643\u0648\u0631\u062f\u06cc
+languages.eo=\u0626\u06ce\u0633\u067e\u06cc\u0631\u0627\u0646\u062a\u06c6
+languages.en=\u0626\u06cc\u0646\u06af\u0644\u06cc\u0632\u06cc
+languages.el=\u06cc\u06c6\u0646\u0627\u0646\u06cc
+languages.ko=\u0643\u06c6\u0631\u06cc
+languages.kn=\u0643\u0647\u200c\u0646\u0647\u200c\u062f\u0627\u06cc\u06cc
+languages.km=\u06a9\u0627\u0645\u0628\u06c6\u062c\u06cc (\u0632\u0648\u0628\u0627\u0646)
+languages.ka=\u06af\u06c6\u0631\u062c\u0633\u062a\u0627\u0646\u06cc
+languages.jv=\u062c\u0627\u06a4\u0627\u0646\u06cc
+languages.fil=\u062a\u0627\u06af\u0627\u0644\u06c6\u06af\u06cc
+languages.pt=\u067e\u06c6\u0631\u062a\u06c6\u06af\u0627\u0644\u06cc
+languages.ps=\u067e\u0647\u200c\u0634\u062a\u0648\u0648
+languages.de=\u0626\u0627\u06b5\u0645\u0627\u0646\u06cc
+languages.pl=\u067e\u06c6\u06b5\u06c6\u0646\u06cc\u0627\u06cc\u06cc (\u0644\u0647\u200c\u0647\u0633\u062a\u0627\u0646\u06cc)
+languages.da=\u062f\u0627\u0646\u0645\u0627\u0631\u0643\u06cc
+languages.tlh=\u0643\u0644\u06cc\u0646\u06af\u06c6\u0646
+languages.ja=\u0698\u0627\u067e\u06c6\u0646\u06cc
+languages.vi=\u06a4\u06cc\u0647\u200c\u062a\u0646\u0627\u0645\u06cc
+languages.cy=\u0648\u06ce\u0644\u0632\u06cc
+languages.pa=\u067e\u0647\u200c\u0646\u062c\u0627\u0628\u06cc
+languages.cs=\u0686\u0647\u200c\u0643\u06cc
+languages.it=\u0626\u06cc\u062a\u0627\u0644\u06cc
+languages.is=\u0626\u06cc\u0633\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.uz=\u0626\u06c6\u0632\u0628\u0647\u200c\u0643\u06cc
+languages.or=\u0626\u06c6\u0631\u06cc\u06cc\u0627
+languages.ur=\u0626\u06c6\u0631\u062f\u0648\u200c\u0648
+languages.ca=\u0643\u0627\u062a\u0627\u0644\u06c6\u0646\u06cc
+languages.ie=\u0626\u0647 \u0646\u062a\u0647 \u0631 \u0644\u064a\u0646\u06af (\u0632\u0648\u0628\u0627\u0646)
+languages.id=\u0626\u06ce\u0647\u200c\u0646\u062f\u0648\u0646\u06cc\u0632\u06cc
+languages.uk=\u0626\u06c6\u0643\u0631\u0627\u06cc\u0646\u06cc
+languages.ia=\u0626\u06cc\u0646\u062a\u0631\u0644\u06cc\u0646\u06af\u0648\u06cc
+languages.oc=\u0626\u06c6\u0633\u06cc\u062a\u0627\u0646\u06cc
+languages.ug=\u0626\u0648\u064a\u062e\u0648\u0648\u0631\u06cc
+languages.hy=\u0626\u0647 \u0631\u0645\u0647 \u0646\u06cc
+languages.bs=\u0628\u06c6\u0633\u0646\u06cc
+languages.br=\u0628\u0631\u06ce\u062a\u0648\u0646\u06cc
+languages.hu=\u0647\u0647\u200c\u0646\u06af\u0627\u0631\u06cc (\u0645\u0647\u200c\u062c\u0627\u0631\u06cc)
+languages.pt_PT=\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5\u06cc (\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5)
+languages.bn=\u0628\u0647\u200c\u0646\u06af\u0644\u0627\u062f\u06ce\u0634\u06cc
+languages.hr=\u0643\u0631\u0648\u0627\u062a\u06cc
+languages.tw=\u062a\u0648\u06cc
+languages.bh=\u0628\u06cc\u0647\u0627\u0631\u06cc
+languages.bg=\u0628\u06c6\u0644\u06af\u0627\u0631\u06cc
+languages.no=\u0646\u06c6\u0631\u0648\u06ce\u0698\u06cc
+languages.be=\u0628\u06ce\u0644\u0627\u0695\u0648\u0648\u0633\u06cc
+languages.hi=\u0647\u06cc\u0646\u062f\u06cc
+languages.tr=\u062a\u0648\u0631\u0643\u06cc
+languages.nl=\u0647\u06c6\u06b5\u0647\u200c\u0646\u062f\u06cc
+languages.zu=\u0632\u0648\u0644\u0648
+languages.he=\u0647\u06cc\u0628\u0631\u06ce
+languages.tk=\u062a\u0631\u0648\u0643\u0645\u0627\u0646\u06cc
+languages.ne=\u0646\u06ce\u067e\u0627\u0644\u06cc
+languages.az=\u0626\u0627\u0632\u0647\u200c\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u06cc
+languages.ti=\u062a\u06cc\u06af\u0631\u06cc\u0646\u06cc\u0627\u06cc
+languages.th=\u062a\u0627\u06cc\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.te=\u062a\u0647\u200c\u0644\u06c6\u06af\u0648\u06cc
+languages.as=\u0626\u0627 \u0633\u0633\u0627\u0645\u06cc (\u0632\u0648\u0628\u0627\u0646)
+languages.ar=\u0639\u0647\u200c\u0631\u0647\u200c\u0628\u06cc
+languages.ta=\u062a\u0627\u0645\u06cc\u0644\u06cc
+languages.gu=\u06af\u0648\u062c\u0627\u0631\u0627\u062a\u06cc
+languages.am=\u0626\u0647\u200c\u0645\u0647\u0647\u200c\u0631\u06cc\u0646\u062c\u06cc
+languages.mt=\u0645\u0627\u06b5\u062a\u0627\u06cc\u06cc
+languages.ms=\u0645\u0627\u0644\u06cc\u0632\u06cc
+languages.gn=\u06af\u0648\u0648\u0627\u0631\u0627\u0646\u06cc
+languages.sw=\u0633\u0648\u0627\u0647\u06cc\u0644\u06cc
+languages.mr=\u0645\u0627\u0631\u0627\u062a\u06cc
+languages.sv=\u0633\u0648\u06cc\u062f\u06cc
+languages.gl=\u06af\u0627\u0644\u06cc\u0633\u06cc
+languages.su=\u0633\u0648\u062f\u0627\u0646\u06cc
+languages.af=\u0626\u0647\u200c\u0641\u0631\u06cc\u0643\u0627\u06cc
+languages.st=\u0633\u06ce\u0633\u06c6\u062a\u06c6
+languages.mn=\u0645\u0647\u200c\u0646\u06af\u06c6\u0644\u06cc
+languages.sr=\u0633\u0647\u200c\u0631\u0628\u06cc
+languages.sq=\u0626\u0627\u06b5\u0628\u0627\u0646\u06cc
+languages.ml=\u0645\u0627\u0644\u0627\u06cc\u0644\u0627\u0645
+languages.mk=\u0645\u0627\u0643\u06ce\u062f\u06c6\u0646\u06cc
+languages.so=\u0633\u06c6\u0645\u0627\u0644\u06cc
+languages.gd=\u06af\u0647\u200c\u0644\u06cc\u0643\u06cc \u0633\u0643\u06c6\u062a\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.sl=\u0633\u0644\u06c6\u06a4\u06ce\u0646\u06cc
+languages.sk=\u0633\u0644\u06c6\u06a4\u0627\u0643\u06cc
+languages.ga=\u0626\u06cc\u0631\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.si=\u0633\u06cc\u0646\u0647\u0647\u200c\u0644\u06cc
+languages.sh=\u0633\u06ce\u0631\u0628\u06c6\u0643\u0631\u0648\u0627\u062a\u06cc
+languages.pt_BR=\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5\u06cc (\u0628\u0631\u0627\u0632\u06cc\u0644)
+languages.yi=\u06cc\u0648\u062f\u062f\u06cc
+languages.sd=\u0633\u064a\u0646\u062f\u06cc(\u0632\u0648\u0628\u0627\u0646)
+languages.fy=\u0641\u0631\u06cc\u0633\u06cc
+languages.sa=\u0633\u0627\u0646\u0633\u06a9\u0631\u064a\u062a
+languages.fr=\u0641\u0647\u200c\u0631\u0627\u0646\u0633\u06cc
+languages.lv=\u0644\u06ce\u062a\u06c6\u0646\u06cc
+languages.lt=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc
+languages.fo=\u0641\u0647\u200c\u0631\u0626\u06c6\u06cc\u06cc
+languages.ru=\u0695\u0648\u0648\u0633\u06cc
+languages.lo=\u0644\u0627\u0648\u200f\u0649
+languages.ln=\u0644\u064a\u0646\u06af\u0627\u0644\u0627
+languages.fi=\u0641\u06cc\u0646\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.ro=\u0695\u06c6\u0645\u0627\u0646\u06cc
+languages.fa=\u0641\u0627\u0631\u0633\u06cc
+languages.la=\u0644\u0627\u062a\u06cc\u0646\u06cc
+languages.xh=\u0633\u0633\u0648\u0633\u0627
+languages.eu=\u0628\u0627\u0633\u0643\u06cc
+languages.ky=\u0643\u0631\u06af\u06cc\u0632\u06cc
+languages.et=\u0626\u06cc\u0633\u062a\u06c6\u0646\u06cc
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Arab.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Arab.properties
new file mode 100644 (file)
index 0000000..a17e1ca
--- /dev/null
@@ -0,0 +1,110 @@
+# LocaleInformation_ku_Arab.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+languages.es=\u0626\u06cc\u0633\u067e\u0627\u0646\u06cc
+languages.ku=\u0643\u0648\u0631\u062f\u06cc
+languages.eo=\u0626\u06ce\u0633\u067e\u06cc\u0631\u0627\u0646\u062a\u06c6
+languages.en=\u0626\u06cc\u0646\u06af\u0644\u06cc\u0632\u06cc
+languages.el=\u06cc\u06c6\u0646\u0627\u0646\u06cc
+languages.ko=\u0643\u06c6\u0631\u06cc
+languages.kn=\u0643\u0647\u200c\u0646\u0647\u200c\u062f\u0627\u06cc\u06cc
+languages.km=\u06a9\u0627\u0645\u0628\u06c6\u062c\u06cc (\u0632\u0648\u0628\u0627\u0646)
+languages.ka=\u06af\u06c6\u0631\u062c\u0633\u062a\u0627\u0646\u06cc
+languages.jv=\u062c\u0627\u06a4\u0627\u0646\u06cc
+languages.fil=\u062a\u0627\u06af\u0627\u0644\u06c6\u06af\u06cc
+languages.pt=\u067e\u06c6\u0631\u062a\u06c6\u06af\u0627\u0644\u06cc
+languages.ps=\u067e\u0647\u200c\u0634\u062a\u0648\u0648
+languages.de=\u0626\u0627\u06b5\u0645\u0627\u0646\u06cc
+languages.pl=\u067e\u06c6\u06b5\u06c6\u0646\u06cc\u0627\u06cc\u06cc (\u0644\u0647\u200c\u0647\u0633\u062a\u0627\u0646\u06cc)
+languages.da=\u062f\u0627\u0646\u0645\u0627\u0631\u0643\u06cc
+languages.tlh=\u0643\u0644\u06cc\u0646\u06af\u06c6\u0646
+languages.ja=\u0698\u0627\u067e\u06c6\u0646\u06cc
+languages.vi=\u06a4\u06cc\u0647\u200c\u062a\u0646\u0627\u0645\u06cc
+languages.cy=\u0648\u06ce\u0644\u0632\u06cc
+languages.pa=\u067e\u0647\u200c\u0646\u062c\u0627\u0628\u06cc
+languages.cs=\u0686\u0647\u200c\u0643\u06cc
+languages.it=\u0626\u06cc\u062a\u0627\u0644\u06cc
+languages.is=\u0626\u06cc\u0633\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.uz=\u0626\u06c6\u0632\u0628\u0647\u200c\u0643\u06cc
+languages.or=\u0626\u06c6\u0631\u06cc\u06cc\u0627
+languages.ur=\u0626\u06c6\u0631\u062f\u0648\u200c\u0648
+languages.ca=\u0643\u0627\u062a\u0627\u0644\u06c6\u0646\u06cc
+languages.ie=\u0626\u0647 \u0646\u062a\u0647 \u0631 \u0644\u064a\u0646\u06af (\u0632\u0648\u0628\u0627\u0646)
+languages.id=\u0626\u06ce\u0647\u200c\u0646\u062f\u0648\u0646\u06cc\u0632\u06cc
+languages.uk=\u0626\u06c6\u0643\u0631\u0627\u06cc\u0646\u06cc
+languages.ia=\u0626\u06cc\u0646\u062a\u0631\u0644\u06cc\u0646\u06af\u0648\u06cc
+languages.oc=\u0626\u06c6\u0633\u06cc\u062a\u0627\u0646\u06cc
+languages.ug=\u0626\u0648\u064a\u062e\u0648\u0648\u0631\u06cc
+languages.hy=\u0626\u0647 \u0631\u0645\u0647 \u0646\u06cc
+languages.bs=\u0628\u06c6\u0633\u0646\u06cc
+languages.br=\u0628\u0631\u06ce\u062a\u0648\u0646\u06cc
+languages.hu=\u0647\u0647\u200c\u0646\u06af\u0627\u0631\u06cc (\u0645\u0647\u200c\u062c\u0627\u0631\u06cc)
+languages.pt_PT=\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5\u06cc (\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5)
+languages.bn=\u0628\u0647\u200c\u0646\u06af\u0644\u0627\u062f\u06ce\u0634\u06cc
+languages.hr=\u0643\u0631\u0648\u0627\u062a\u06cc
+languages.tw=\u062a\u0648\u06cc
+languages.bh=\u0628\u06cc\u0647\u0627\u0631\u06cc
+languages.bg=\u0628\u06c6\u0644\u06af\u0627\u0631\u06cc
+languages.no=\u0646\u06c6\u0631\u0648\u06ce\u0698\u06cc
+languages.be=\u0628\u06ce\u0644\u0627\u0695\u0648\u0648\u0633\u06cc
+languages.hi=\u0647\u06cc\u0646\u062f\u06cc
+languages.tr=\u062a\u0648\u0631\u0643\u06cc
+languages.nl=\u0647\u06c6\u06b5\u0647\u200c\u0646\u062f\u06cc
+languages.zu=\u0632\u0648\u0644\u0648
+languages.he=\u0647\u06cc\u0628\u0631\u06ce
+languages.tk=\u062a\u0631\u0648\u0643\u0645\u0627\u0646\u06cc
+languages.ne=\u0646\u06ce\u067e\u0627\u0644\u06cc
+languages.az=\u0626\u0627\u0632\u0647\u200c\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u06cc
+languages.ti=\u062a\u06cc\u06af\u0631\u06cc\u0646\u06cc\u0627\u06cc
+languages.th=\u062a\u0627\u06cc\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.te=\u062a\u0647\u200c\u0644\u06c6\u06af\u0648\u06cc
+languages.as=\u0626\u0627 \u0633\u0633\u0627\u0645\u06cc (\u0632\u0648\u0628\u0627\u0646)
+languages.ar=\u0639\u0647\u200c\u0631\u0647\u200c\u0628\u06cc
+languages.ta=\u062a\u0627\u0645\u06cc\u0644\u06cc
+languages.gu=\u06af\u0648\u062c\u0627\u0631\u0627\u062a\u06cc
+languages.am=\u0626\u0647\u200c\u0645\u0647\u0647\u200c\u0631\u06cc\u0646\u062c\u06cc
+languages.mt=\u0645\u0627\u06b5\u062a\u0627\u06cc\u06cc
+languages.ms=\u0645\u0627\u0644\u06cc\u0632\u06cc
+languages.gn=\u06af\u0648\u0648\u0627\u0631\u0627\u0646\u06cc
+languages.sw=\u0633\u0648\u0627\u0647\u06cc\u0644\u06cc
+languages.mr=\u0645\u0627\u0631\u0627\u062a\u06cc
+languages.sv=\u0633\u0648\u06cc\u062f\u06cc
+languages.gl=\u06af\u0627\u0644\u06cc\u0633\u06cc
+languages.su=\u0633\u0648\u062f\u0627\u0646\u06cc
+languages.af=\u0626\u0647\u200c\u0641\u0631\u06cc\u0643\u0627\u06cc
+languages.st=\u0633\u06ce\u0633\u06c6\u062a\u06c6
+languages.mn=\u0645\u0647\u200c\u0646\u06af\u06c6\u0644\u06cc
+languages.sr=\u0633\u0647\u200c\u0631\u0628\u06cc
+languages.sq=\u0626\u0627\u06b5\u0628\u0627\u0646\u06cc
+languages.ml=\u0645\u0627\u0644\u0627\u06cc\u0644\u0627\u0645
+languages.mk=\u0645\u0627\u0643\u06ce\u062f\u06c6\u0646\u06cc
+languages.so=\u0633\u06c6\u0645\u0627\u0644\u06cc
+languages.gd=\u06af\u0647\u200c\u0644\u06cc\u0643\u06cc \u0633\u0643\u06c6\u062a\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.sl=\u0633\u0644\u06c6\u06a4\u06ce\u0646\u06cc
+languages.sk=\u0633\u0644\u06c6\u06a4\u0627\u0643\u06cc
+languages.ga=\u0626\u06cc\u0631\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.si=\u0633\u06cc\u0646\u0647\u0647\u200c\u0644\u06cc
+languages.pt_BR=\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5\u06cc (\u0628\u0631\u0627\u0632\u06cc\u0644)
+languages.yi=\u06cc\u0648\u062f\u062f\u06cc
+languages.sd=\u0633\u064a\u0646\u062f\u06cc(\u0632\u0648\u0628\u0627\u0646)
+languages.fy=\u0641\u0631\u06cc\u0633\u06cc
+languages.sa=\u0633\u0627\u0646\u0633\u06a9\u0631\u064a\u062a
+languages.fr=\u0641\u0647\u200c\u0631\u0627\u0646\u0633\u06cc
+languages.lv=\u0644\u06ce\u062a\u06c6\u0646\u06cc
+languages.lt=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc
+languages.fo=\u0641\u0647\u200c\u0631\u0626\u06c6\u06cc\u06cc
+languages.ru=\u0695\u0648\u0648\u0633\u06cc
+languages.lo=\u0644\u0627\u0648\u200f\u0649
+languages.ln=\u0644\u064a\u0646\u06af\u0627\u0644\u0627
+languages.fi=\u0641\u06cc\u0646\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.ro=\u0695\u06c6\u0645\u0627\u0646\u06cc
+languages.fa=\u0641\u0627\u0631\u0633\u06cc
+languages.la=\u0644\u0627\u062a\u06cc\u0646\u06cc
+languages.xh=\u0633\u0633\u0648\u0633\u0627
+languages.eu=\u0628\u0627\u0633\u0643\u06cc
+languages.ky=\u0643\u0631\u06af\u06cc\u0632\u06cc
+languages.et=\u0626\u06cc\u0633\u062a\u06c6\u0646\u06cc
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Latn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Latn.properties
new file mode 100644 (file)
index 0000000..f42b5c0
--- /dev/null
@@ -0,0 +1,20 @@
+# LocaleInformation_ku_Latn.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=\u00e7il\u00aesib\u00aeadr\u00aen\u00ees\u00aegul\u00aehez\u00aet\u00eer\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u00e7ile\u00aesibat\u00aeadar\u00aen\u00eesan\u00aegulan\u00aehez\u00eeran\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00aey\u015f\u00aed\u015f\u00aes\u015f\u00ae\u00e7\u015f\u00aep\u015f\u00ae\u00een\u00ae\u015f\u00ae
+weekdays=\u00aeyek\u015fem\u00aedu\u015fem\u00ae\u015f\u00ea\u00ae\u00e7ar\u015fem\u00aep\u00eanc\u015fem\u00ae\u00een\u00ae\u015fem\u00ee\u00ae
+eras=BZ\u00aePZ\u00ae
+ampms=BN\u00aePN\u00ae
+shortDateFormat=yy/MM/dd
+territories.TR=Tirkiye
+territories.001=C\u00eehan
+languages.ar=ereb\u00ee
+languages.en=\u00eengil\u00eez\u00ee
+languages.ja=japon\u00ee
+languages.ku=kurd\u00ee
index 5e2b3ffbdcd6618d9096e15d7d3f9cd0579199c1..078c0ad5aed50d4da76606721824af3bb3d81d24 100644 (file)
@@ -5,11 +5,20 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-shortMonths=Gen®Whe®Mer®Ebr®Me®Efn®Gor®Est®Gwn®Hed®Du®Kev®®
-months=Mys Genver®Mys Whevrel®Mys Merth®Mys Ebrel®Mys Me®Mys Efan®Mys Gortheren®Mye Est®Mys Gwyngala®Mys Hedra®Mys Du®Mys Kevardhu®®
-shortWeekdays=®Sul®Lun®Mth®Mhr®Yow®Gwe®Sad®
-weekdays=®De Sul®De Lun®De Merth®De Merher®De Yow®De Gwener®De Sadorn®
-eras=RC®AD®
-ampms=a.m.®p.m.®
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+shortMonths=Gen\u00aeWhe\u00aeMer\u00aeEbr\u00aeMe\u00aeEfn\u00aeGor\u00aeEst\u00aeGwn\u00aeHed\u00aeDu\u00aeKev\u00ae\u00ae
+months=Mys Genver\u00aeMys Whevrel\u00aeMys Merth\u00aeMys Ebrel\u00aeMys Me\u00aeMys Efan\u00aeMys Gortheren\u00aeMye Est\u00aeMys Gwyngala\u00aeMys Hedra\u00aeMys Du\u00aeMys Kevardhu\u00ae\u00ae
+shortWeekdays=\u00aeSul\u00aeLun\u00aeMth\u00aeMhr\u00aeYow\u00aeGwe\u00aeSad\u00ae
+weekdays=\u00aeDe Sul\u00aeDe Lun\u00aeDe Merth\u00aeDe Merher\u00aeDe Yow\u00aeDe Gwener\u00aeDe Sadorn\u00ae
+eras=RC\u00aeAD\u00ae
+ampms=a.m.\u00aep.m.\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
 territories.GB=Rywvaneth Unys
 languages.kw=kernewek
index ae3295179dfddbea40b1cb921c7b070396e94924..7b12dbc321035bf66f0a419a0196de0f11a5653e 100644 (file)
@@ -8,5 +8,98 @@
 decimalSeparator=,
 groupingSeparator=\u00a0
 currenciesSymbol.KGS=\u0441\u043e\u043c
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
 territories.KG=\u041a\u044b\u0440\u0433\u044b\u0437\u0441\u0442\u0430\u043d
+languages.es=\u0438\u0441\u043f\u0430\u043d\u0447\u0430
+languages.ku=\u043a\u0443\u0440\u0442
+languages.en=\u0430\u043d\u0433\u043b\u0438\u0441\u0447\u0435
+languages.el=\u0433\u0440\u0435\u043a\u0447\u0435
+languages.ko=\u043a\u043e\u0440\u0435\u0439\u0447\u0435
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430\u0447\u0430
+languages.ka=\u0433\u0440\u0443\u0437\u0438\u043d\u0447\u0435
+languages.jv=\u0436\u0430\u0432\u0430\u043d\u0438\u0437\u0447\u0435
+languages.fil=\u0442\u0430\u0433\u0430\u043b\u0447\u0430
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0447\u0430
+languages.ps=\u043f\u0430\u0448\u0442\u043e
+languages.de=\u043d\u0435\u043c\u0438\u0441\u0447\u0435
+languages.pl=\u043f\u043e\u043b\u044f\u043a\u0447\u0430
+languages.da=\u0434\u0430\u0442\u0447\u0430
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d\u0447\u043e
+languages.ja=\u044f\u043f\u043e\u043d\u0447\u043e
+languages.vi=\u0432\u044c\u0435\u0442\u043d\u0430\u043c\u0447\u0430
+languages.pa=\u043f\u0443\u043d\u0436\u0430\u0431\u0438\u0447\u0435
+languages.cs=\u0447\u0435\u0445 \u0442\u0438\u043b\u0438
+languages.it=\u0438\u0442\u0430\u043b\u0438\u044f\u043d\u0447\u0430
+languages.is=\u0438\u0441\u043b\u0430\u043d\u0434\u0447\u0430
+languages.uz=\u043e\u0437\u0431\u0435\u043a\u0447\u0435
+languages.or=\u043e\u0440\u0438\u044f
+languages.ur=\u0443\u0440\u0434\u0443\u0447\u0430
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u0430\u043d\u0447\u0430
+languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f\u0447\u0430
+languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d\u0447\u0435
+languages.bs=\u0431\u043e\u0441\u043d\u0438\u044f\u0447\u0430
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d
+languages.hu=\u0432\u0435\u043d\u0433\u0440\u0438\u044f\u0447\u0430
+languages.bn=\u0431\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448\u0447\u0435
+languages.hr=\u0445\u043e\u0440\u0432\u0430\u0442\u0447\u0430
+languages.tw=\u0442\u0432\u0438
+languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438\u0447\u0435
+languages.bg=\u0431\u043e\u043b\u0433\u0430\u0440\u0438\u044f\u0447\u0430
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0436\u0447\u0435
+languages.be=\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u0447\u0430
+languages.nn=\u043d\u043e\u0440\u0432\u0435\u0433\u0438\u044f\u0447\u0430
+languages.hi=\u0438\u043d\u0434\u0443\u0441\u0447\u0430
+languages.tr=\u0442\u0443\u0440\u043a\u0447\u043e
+languages.nl=\u0433\u043e\u043b\u043b\u0430\u043d\u0434\u0447\u0430
+languages.he=\u0435\u0432\u0440\u0435\u0439\u0447\u0435
+languages.tk=\u0442\u04af\u0440\u043a\u043c\u04e9\u043d
+languages.ne=\u043d\u0435\u043f\u0430\u043b\u0447\u0430
+languages.az=\u0430\u0437\u0435\u0440\u0431\u0430\u0439\u0436\u0430\u043d\u0447\u0430
+languages.th=\u0442\u0430\u0439\u0447\u0430
+languages.te=\u0442\u0435\u043b\u0443\u0433\u0443\u0447\u0430
+languages.zh=\u043a\u044b\u0442\u0430\u0439\u0447\u0430
+languages.ar=\u0430\u0440\u0430\u0431\u0447\u0430
+languages.ta=\u0442\u0430\u043c\u0438\u043b\u0447\u0435
+languages.gu=\u0433\u0443\u0436\u0430\u0440\u0430\u0442\u0447\u0430
+languages.mt=\u043c\u0430\u043b\u0442\u0438\u0437\u0447\u0435
+languages.ms=\u043c\u0430\u043b\u0430\u0439\u0447\u0430
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u0448
+languages.sw=\u0441\u0443\u0430\u0445\u0438\u043b\u0438\u0447\u0435
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0438\u0447\u0435
+languages.sv=\u0448\u0432\u0435\u0434\u0447\u0435
+languages.su=\u0441\u0443\u043d\u0434\u0430\u043d\u0447\u0430
+languages.af=\u0430\u0444\u0440\u0438\u043a\u0430\u0430\u043d\u0447\u0430
+languages.st=\u0441\u0435\u0441\u043e\u0442\u043e
+languages.sr=\u0441\u0435\u0440\u0431\u0447\u0435
+languages.sq=\u0430\u043b\u0431\u0430\u043d\u0447\u0430
+languages.ml=\u043c\u0430\u043b\u0430\u0439\u0430\u043b\u0430\u043c\u0447\u0430
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u044f\u0447\u0430
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0447\u0435
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u043a\u0447\u0430
+languages.ga=\u0438\u0440\u043b\u0430\u043d\u0434\u0447\u0430
+languages.si=\u0441\u0438\u043d\u0433\u0430\u043b\u0430\u0447\u0430
+languages.sh=\u0441\u0435\u0440\u0431-\u0445\u043e\u0440\u0432\u0430\u0442
+languages.yi=\u0435\u0432\u0440\u0435\u0439
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0447\u0430
+languages.lv=\u043b\u0430\u0442\u0432\u0438\u044f\u0447\u0430
+languages.lt=\u043b\u0438\u0442\u0432\u0430\u0447\u0430
+languages.ru=\u043e\u0440\u0443\u0441\u0447\u0430
+languages.fi=\u0444\u0438\u043d\u0447\u0435
+languages.ro=\u0440\u0443\u043c\u044b\u043d\u0438\u044f\u0447\u0430
+languages.fa=\u0444\u0430\u0440\u0437\u0447\u0430
+languages.la=\u043b\u0430\u0442\u044b\u043d\u0447\u0430
 languages.ky=\u041a\u044b\u0440\u0433\u044b\u0437
+languages.et=\u044d\u0441\u0442\u043e\u043d\u0447\u043e
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ln.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ln.properties
new file mode 100644 (file)
index 0000000..e5713af
--- /dev/null
@@ -0,0 +1,261 @@
+# LocaleInformation_ln.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=.
+currenciesDisplayName.FRF=Fal\u00e1nga ya Falansia
+currenciesDisplayName.BEF=fal\u00e1nga ya B\u025b\u0301ljika
+currenciesDisplayName.XPF=Fal\u00e1nga CFP
+currenciesDisplayName.CHF=Fal\u00e1nga ya Swisi
+currenciesDisplayName.CDF=fal\u00e1nga kongol\u00e9
+currenciesDisplayName.BIF=fal\u00e1nga ya Burundi
+currenciesDisplayName.XOF=Fal\u00e1nga CFA BCEAO
+currenciesDisplayName.XXX=mb\u0254\u0301ng\u0254 ey\u00e9b\u00e1m\u00ed t\u025b\u0301
+currenciesSymbol.CHF=Fr.
+currenciesSymbol.CDF=Fc
+currenciesSymbol.XXX=XXX
+shortMonths=s1\u00aes2\u00aes3\u00aes4\u00aes5\u00aes6\u00aes7\u00aes8\u00aes9\u00aes10\u00aes11\u00aes12\u00ae\u00ae
+months=s\u00e1nz\u00e1 ya yambo\u00aes\u00e1nz\u00e1 ya m\u00edbal\u00e9\u00aes\u00e1nz\u00e1 ya m\u00eds\u00e1to\u00aes\u00e1nz\u00e1 ya m\u00ednei\u00aes\u00e1nz\u00e1 ya m\u00edt\u00e1no\u00aes\u00e1nz\u00e1 ya mot\u00f3b\u00e1\u00aes\u00e1nz\u00e1 ya nsambo\u00aes\u00e1nz\u00e1 ya mwambe\u00aes\u00e1nz\u00e1 ya libwa\u00aes\u00e1nz\u00e1 ya z\u00f3mi\u00aes\u00e1nz\u00e1 ya z\u00f3mi na m\u0254\u030ck\u0254\u0301\u00aes\u00e1nz\u00e1 ya z\u00f3mi na m\u00edbal\u00e9\u00ae\u00ae
+shortWeekdays=\u00aeeye\u00aem1\u00aem2\u00aem3\u00aem4\u00aem5\u00aemps\u00ae
+weekdays=\u00aeeyenga\u00aemok\u0254l\u0254 ya libos\u00f3\u00aemok\u0254l\u0254 ya m\u00edbal\u00e9\u00aemok\u0254l\u0254 ya m\u00eds\u00e1to\u00aemok\u0254l\u0254 ya m\u00edn\u00e9i\u00aemok\u0254l\u0254 ya m\u00edt\u00e1no\u00aemp\u0254\u0301s\u0254\u00ae
+eras=libos\u00f3 ya Y.-K.\u00aensima ya Y.-K.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.GW=Gine-Bisau
+territories.AR=Argentina
+territories.MZ=Mozamb\u00edki
+territories.AO=Ang\u00f3la
+territories.GR=Gresi
+territories.ZA=Sidafr\u00edka
+territories.MV=Mad\u00edvi
+territories.SY=Sir\u00ed
+territories.GN=Gine
+territories.GM=Gambia
+territories.AG=Antigua mp\u00e9 Barbuda
+territories.AF=Afganist\u00e1ni
+territories.ST=S\u01ceo Tom\u00e9 na Principe
+territories.MO=Makau
+territories.MN=Mongol\u00ed
+territories.GI=Gibraltar
+territories.AD=Andora
+territories.GH=Ghana
+territories.ML=Mali
+territories.MK=Masedoni
+territories.SO=Somalia
+territories.SM=Santu Marino
+territories.GB=Ing\u025bl\u025b\u0301t\u025bl\u025b
+territories.SH=Santu Helena
+territories.SE=Sw\u00e9si
+territories.SD=Sudani
+territories.YE=Yem\u00e9ni
+territories.LY=Lib\u00edya
+territories.FR=Falansia
+territories.LV=Letoni
+territories.LU=Luksamburg
+territories.LT=Litwani
+territories.RW=Rwanda
+territories.LR=Liberia
+territories.RU=Rus\u00ed
+territories.018=Afr\u00edka ya S\u00eddi
+territories.FI=Finilanda
+territories.015=Afr\u00edka ya Nola
+territories.RO=Rumania
+territories.011=Afr\u00edka ya l\u00edmbe
+territories.LB=Liban
+territories.KZ=Kazakst\u00e1ni
+territories.ET=Etiopya
+territories.ES=Espania
+territories.KR=Kore ya Sidi
+territories.KP=Kore ya Nola
+territories.005=Amer\u00edka ya S\u00eddi
+territories.EH=Sahara ya l\u00edmbe
+territories.EG=Ejipti
+territories.002=Afr\u00edka
+territories.001=mokili mobimba
+territories.KI=KI
+territories.KG=Kirghizist\u00e1ni
+territories.KE=Kenya
+territories.DZ=Aljeria
+territories.JP=Yapan
+territories.PT=Pulutugal
+territories.JO=Zordan\u00ed
+territories.DJ=Djibuti
+territories.155=Er\u00f3pa ya l\u00edmbe
+territories.154=Er\u00f3pa ya Nola
+territories.DE=Al\u00e9mani
+territories.150=Er\u00f3pa
+territories.PL=Poloni
+territories.PK=Pakist\u00e1ni
+territories.VN=Vietnami
+territories.CZ=Republiki Sheki
+territories.VA=Vatik\u00e1ni
+territories.IT=Italia
+territories.IS=Islandi
+territories.CN=S\u00edna
+territories.CM=Kamerun
+territories.UZ=Uzbekist\u00e1ni
+territories.IN=\u0190nd\u025b
+territories.CH=Swisi
+territories.CG=Kong\u00f3-Brazzaville
+territories.CF=Santrafr\u00edka
+territories.142=Az\u00eda
+territories.US=Etaz\u00edni
+territories.CD=Kong\u00f3-Kins\u00e1s\u00e1
+territories.CA=Kanad\u00e1
+territories.IE=Irland\u00ed
+territories.ID=Indonezi\u00e1
+territories.BY=Bielorusia
+territories.BW=Botswana
+territories.BT=But\u00e1ni
+territories.BR=Bres\u00edli
+territories.HU=Ungri
+territories.HR=Kroasia
+territories.BI=Burundi
+territories.TW=Taiwan
+territories.BG=Bulgaria
+territories.ZZ=Es\u00edk\u00e1 ey\u00e9b\u00e1m\u00ed t\u025b\u0301
+territories.NP=Nep\u00e1li
+territories.BF=Burkina Faso
+territories.TT=Trinidad mp\u00e9 Tobago
+territories.NO=Norvej
+territories.BE=B\u025b\u0301ljika
+territories.BD=B\u00e1ngalad\u025b\u0301si
+territories.ZW=Zimbabwe
+territories.TR=Turk\u00ed
+territories.NL=Holanda
+territories.BA=Bosnia na Erzegovina
+territories.TN=Tunizia
+territories.TM=Turkmenist\u00e1ni
+territories.NG=Nijeria
+territories.TJ=Tazikist\u00e1ni
+territories.NE=Nij\u00e9
+territories.ZM=Zambia
+territories.AX=Albania
+territories.TG=Togo
+territories.NA=Namibia
+languages.es=lispanyola
+languages.mul=nk\u00f3t\u00e1 m\u00edngi
+languages.ku=likurdi
+languages.eo=lisipelanto
+languages.en=ling\u025bl\u025b\u0301sa
+languages.lun=lunda
+languages.el=ligreki
+languages.ko=likorea
+languages.kn=kanada
+languages.km=likambodia
+languages.kg=kik\u0254\u0301ng\u0254
+languages.lua=ciluba
+languages.ka=lizorzi
+languages.jv=lizava
+languages.fil=litagalog
+languages.pt=lipulutug\u025b\u0301si
+languages.ps=pashto
+languages.de=lialemani
+languages.pl=lipoloni
+languages.da=lidanemark
+languages.tlh=kilingoni
+languages.ja=liyapani
+languages.vi=livietnami
+languages.cy=liwelesi
+languages.pa=lipunzabi
+languages.cs=litsh\u025bki
+languages.it=litaliano
+languages.is=lislanda
+languages.uz=liusibeki
+languages.or=oriya
+languages.ur=liurdu
+languages.ca=katalani
+languages.ie=interlingue
+languages.id=lindonesi
+languages.uk=liukrenia
+languages.ia=interlingua
+languages.oc=liosita
+languages.ug=uighur
+languages.hy=liarmenya
+languages.bs=libosinia
+languages.br=breton
+languages.hu=liungaria
+languages.bn=bengali
+languages.hr=likroasia
+languages.bm=bambara
+languages.tw=twi
+languages.bh=libiyari
+languages.bg=kibulgaria
+languages.fr_CA=lifalans\u00e9 (CA)
+languages.no=linovezi
+languages.be=belarusi
+languages.nn=linovezi-nynorsk
+languages.hi=lihindi
+languages.tr=turk
+languages.nl=lifalam\u00e1
+languages.zu=zulu
+languages.he=liyuda
+languages.tk=turkmen
+languages.ne=linepali
+languages.az=liazerbayani
+languages.ti=tigirinya
+languages.th=thai
+languages.bai=nk\u00f3t\u00e1 ya Bamileke
+languages.te=litelegu
+languages.en_CA=ling\u025bl\u025b\u0301sa (CA)
+languages.as=liasame
+languages.ar=liarabu
+languages.ta=tamili
+languages.gu=liguzarati
+languages.am=liamariki
+languages.ak=akan
+languages.mt=limalta
+languages.ms=limalasi
+languages.gn=ligwarani
+languages.sw=kiswahili
+languages.mr=limarati
+languages.sv=lisw\u00e9dwa
+languages.gl=ligalicia
+languages.su=lisundan\u025b\u0301si
+languages.af=afrik\u00e1nsi
+languages.st=Sotho ya Sidi
+languages.mn=limongoli
+languages.sr=liserbia
+languages.sq=lialbania
+languages.ml=limalayalami
+languages.mk=limasedonia
+languages.so=lisomali
+languages.gd=ligaeliki
+languages.sl=lisoloveni
+languages.sk=lisolovaki
+languages.ga=lirlande
+languages.si=lisinal\u025b\u0301si
+languages.sh=liserbokroata
+languages.sg=sango
+languages.pt_BR=lipulutug\u025b\u0301si (Brazil)
+languages.yi=yiddish
+languages.sd=lisindi
+languages.fy=lifrisi
+languages.sa=indu-ya-kala
+languages.fr=lifalans\u00e9
+languages.afh=afr\u00edhili
+languages.lv=lilativa
+languages.lt=lituani
+languages.fo=lifarose
+languages.ru=lirusi
+languages.lo=lilao
+languages.ln=ling\u00e1la
+languages.fi=lifilandi
+languages.ro=lirumani
+languages.fa=lip\u025brsi
+languages.und=lok\u00f3t\u00e1 ey\u00e9b\u00e1m\u00ed t\u025b\u0301
+languages.la=kilatini
+languages.xh=xhosa
+languages.eu=libaske
+languages.ky=kirgizi
+languages.et=liestonia
index cf94908fde8e2d3c60657078673d61a24c4584aa..d3a4c97ec4f9247b831bdf76c45ae68cdb15f6f2 100644 (file)
@@ -5,23 +5,24 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
 currenciesDisplayName.LAK=\u0e81\u0eb5\u0e9a
 currenciesSymbol.LAK=\u20ad
-shortMonths=\u0ea1.\u0e81.®\u0e81.\u0e9e.®\u0ea1\u0eb5.\u0e99.®\u0ea1.\u0eaa..®\u0e9e.\u0e9e.®\u0ea1\u0eb4.\u0e96.®\u0e81.\u0ea5.®\u0eaa.\u0eab.®\u0e81.\u0e8d.®\u0e95.\u0ea5.®\u0e9e.\u0e88.®\u0e97.\u0ea7.®®
-months=\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99®\u0e81\u0eb8\u0ea1\u0e9e\u0eb2®\u0ea1\u0eb5\u0e99\u0eb2®\u0ec0\u0ea1\u0eaa\u0eb2®\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2®\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2®\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94®\u0eaa\u0eb4\u0e87\u0eab\u0eb2®\u0e81\u0eb1\u0e99\u0e8d\u0eb2®\u0e95\u0eb8\u0ea5\u0eb2®\u0e9e\u0eb0\u0e88\u0eb4\u0e81®\u0e97\u0eb1\u0e99\u0ea7\u0eb2®®
-shortWeekdays=®\u0ead\u0eb2.®\u0e88.®\u0ead.®\u0e9e.®\u0e9e\u0eab.®\u0eaa\u0e81.®\u0eaa.®
-weekdays=®\u0ea7\u0eb1\u0e99\u0ead\u0eb2\u0e97\u0eb4\u0e94®\u0ea7\u0eb1\u0e99\u0e88\u0eb1\u0e99®\u0ea7\u0eb1\u0e99\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99®\u0ea7\u0eb1\u0e99\u0e9e\u0eb8\u0e94®\u0ea7\u0eb1\u0e99\u0e9e\u0eb0\u0eab\u0eb1\u0e94®\u0ea7\u0eb1\u0e99\u0eaa\u0eb8\u0e81®\u0ea7\u0eb1\u0e99\u0ec0\u0eaa\u0ebb\u0eb2®
-eras=\u0e9b\u0eb5\u0e81\u0ec8\u0ead\u0e99\u0e84\u0eb4\u0e94\u0eaa\u0eb0\u0e81\u0eb2\u0e99\u0e97\u0eb5\u0ec8®\u0e84.\u0eaa.®
-ampms=\u0e81\u0ec8\u0ead\u0e99\u0e97\u0ec8\u0ebd\u0e87®\u0eab\u0ea5\u0eb1\u0e87\u0e97\u0ec8\u0ebd\u0e87®
+shortMonths=\u0ea1.\u0e81.\u00ae\u0e81.\u0e9e.\u00ae\u0ea1\u0eb5.\u0e99.\u00ae\u0ea1.\u0eaa..\u00ae\u0e9e.\u0e9e.\u00ae\u0ea1\u0eb4.\u0e96.\u00ae\u0e81.\u0ea5.\u00ae\u0eaa.\u0eab.\u00ae\u0e81.\u0e8d.\u00ae\u0e95.\u0ea5.\u00ae\u0e9e.\u0e88.\u00ae\u0e97.\u0ea7.\u00ae\u00ae
+months=\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99\u00ae\u0e81\u0eb8\u0ea1\u0e9e\u0eb2\u00ae\u0ea1\u0eb5\u0e99\u0eb2\u00ae\u0ec0\u0ea1\u0eaa\u0eb2\u00ae\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2\u00ae\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2\u00ae\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94\u00ae\u0eaa\u0eb4\u0e87\u0eab\u0eb2\u00ae\u0e81\u0eb1\u0e99\u0e8d\u0eb2\u00ae\u0e95\u0eb8\u0ea5\u0eb2\u00ae\u0e9e\u0eb0\u0e88\u0eb4\u0e81\u00ae\u0e97\u0eb1\u0e99\u0ea7\u0eb2\u00ae\u00ae
+shortWeekdays=\u00ae\u0ead\u0eb2.\u00ae\u0e88.\u00ae\u0ead.\u00ae\u0e9e.\u00ae\u0e9e\u0eab.\u00ae\u0eaa\u0e81.\u00ae\u0eaa.\u00ae
+weekdays=\u00ae\u0ea7\u0eb1\u0e99\u0ead\u0eb2\u0e97\u0eb4\u0e94\u00ae\u0ea7\u0eb1\u0e99\u0e88\u0eb1\u0e99\u00ae\u0ea7\u0eb1\u0e99\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99\u00ae\u0ea7\u0eb1\u0e99\u0e9e\u0eb8\u0e94\u00ae\u0ea7\u0eb1\u0e99\u0e9e\u0eb0\u0eab\u0eb1\u0e94\u00ae\u0ea7\u0eb1\u0e99\u0eaa\u0eb8\u0e81\u00ae\u0ea7\u0eb1\u0e99\u0ec0\u0eaa\u0ebb\u0eb2\u00ae
+eras=\u0e9b\u0eb5\u0e81\u0ec8\u0ead\u0e99\u0e84\u0eb4\u0e94\u0eaa\u0eb0\u0e81\u0eb2\u0e99\u0e97\u0eb5\u0ec8\u00ae\u0e84.\u0eaa.\u00ae
+ampms=\u0e81\u0ec8\u0ead\u0e99\u0e97\u0ec8\u0ebd\u0e87\u00ae\u0eab\u0ea5\u0eb1\u0e87\u0e97\u0ec8\u0ebd\u0e87\u00ae
 shortDateFormat=d/M/yyyy
 mediumDateFormat=d MMM yyyy
 longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE'\u0e97\u0eb5  'd MMMM G yyyy
+fullDateFormat=EEEE\u0e97\u0eb5  d MMMM G yyyy
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
-longTimeFormat=H' \u0ec2\u0ea1\u0e87 'm'\u0e99\u0eb2\u0e97\u0eb5'
-fullTimeFormat=H'\u0ec2\u0ea1\u0e87 'm'\u0e99\u0eb2\u0e97\u0eb5 'ss' \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5
+longTimeFormat=H \u0ec2\u0ea1\u0e87 m\u0e99\u0eb2\u0e97\u0eb5ss z
+fullTimeFormat=H\u0ec2\u0ea1\u0e87 m\u0e99\u0eb2\u0e97\u0eb5 ss \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5z
 territories.TL=\u0e95\u0eb4\u0ea1\u0ecd\u0e95\u0eb2\u0ec0\u0ea7\u0eb1\u0e99\u0ead\u0ead\u0e81
 territories.TK=\u0ec2\u0e97\u0e81\u0eb4\u0ec2\u0ea5
 territories.TJ=\u0e97\u0eb2\u0e88\u0eb4\u0e81\u0eb4\u0eaa\u0eb0\u0e96\u0eb2\u0e99
@@ -84,13 +85,13 @@ territories.PL=\u0ec2\u0e9b\u0ec1\u0ea5\u0e99
 territories.PK=\u0e9b\u0eb2\u0e81\u0eb4\u0eaa\u0e96\u0eb2\u0e99
 territories.PH=\u0e9f\u0eb4\u0ea5\u0eb4\u0e9b\u0eb4\u0e99
 territories.PG=\u0e9b\u0eb2\u0e9b\u0ebb\u0ea7\u0e99\u0eb4\u0ea7\u0e81\u0eb5\u0e99\u0eb5
-territories.CZ=\u0eaa\u0eb2\u0e97\u0eb2\u0ea5\u0eb0\u0e99\u0eb0\u0ea5\u0eb1\u0e94\u0ec0\u0e8a\u0eb1\u0e81
 territories.PF=\u0ec0\u0e9f\u0eb1\u0e99\u0ea3\u0ec2\u0e9e\u0ea5\u0eb4\u0e99\u0eb5\u0ec0\u0e8a\u0e8d
-territories.CY=\u0ec4\u0e8a\u0e9b\u0eb1\u0ebc\u0e94
+territories.CZ=\u0eaa\u0eb2\u0e97\u0eb2\u0ea5\u0eb0\u0e99\u0eb0\u0ea5\u0eb1\u0e94\u0ec0\u0e8a\u0eb1\u0e81
 territories.PE=\u0ec0\u0e9b\u0ea5\u0eb9
+territories.CY=\u0ec4\u0e8a\u0e9b\u0eb1\u0ebc\u0e94
 territories.CV=\u0ec0\u0e84\u0e9a\u0ea7\u0ead\u0e94
-territories.CU=\u0e84\u0eb4\u0ea7\u0e9a\u0eb2
 territories.PA=\u0e9b\u0eb2\u0e99\u0eb2\u0ea1\u0eb2
+territories.CU=\u0e84\u0eb4\u0ea7\u0e9a\u0eb2
 territories.CS=\u0ec0\u0e8a\u0eb5\u0ec0\u0e9a\u0e8d
 territories.CR=\u0e84\u0ead\u0eaa\u0e95\u0eb2\u0ea5\u0eb4\u0e81\u0eb2
 territories.CO=\u0ec2\u0e84\u0ea5\u0eb3\u0ec0\u0e9a\u0e8d
@@ -109,53 +110,53 @@ territories.BW=\u0e9a\u0ead\u0eb1\u0e94\u0eaa\u0eb0\u0ea7\u0eb2\u0e99\u0eb2
 territories.BT=\u0e9e\u0eb9\u0e96\u0eb2\u0e99
 territories.BS=\u0e9a\u0eb2\u0eae\u0eb2\u0ea1\u0eb2\u0eaa
 territories.BR=\u0e9a\u0ebc\u0eb2\u0e8a\u0eb4\u0ea7
-territories.BO=\u0ec2\u0e9a\u0ea5\u0eb4\u0ec0\u0ea7\u0e8d
 territories.NZ=\u0e99\u0eb4\u0ea7\u0e8a\u0eb5\u0ec1\u0ea5\u0e99
+territories.BO=\u0ec2\u0e9a\u0ea5\u0eb4\u0ec0\u0ea7\u0e8d
 territories.BN=\u0e9a\u0eb9\u0eae\u0ec4\u0e99
 territories.BM=\u0ec0\u0e9a\u0eb5\u0ea1\u0eb4\u0ea7\u0e94\u0eb2
-territories.BJ=\u0ec0\u0e9a\u0e99\u0eb4\u0e99
 territories.NU=\u0e99\u0eb5\u0ea2\u0eb9
+territories.BJ=\u0ec0\u0e9a\u0e99\u0eb4\u0e99
 territories.BI=\u0e9a\u0eb9\u0ea5\u0eb1\u0e99\u0e95\u0eb4
 territories.BH=\u0e9a\u0eb2\u0ec0\u0ea5\u0e99
 territories.BG=\u0e9a\u0eb1\u0e87\u0e81\u0eb2\u0ec0\u0ea5\u0e8d
 territories.BF=\u0ec0\u0e9a\u0eb5\u0e81\u0eb4\u0e99\u0eb2\u0e9f\u0eb2\u0ec2\u0e8a
-territories.BE=\u0ec0\u0e9a\u0ea7\u0ea2\u0ebd\u0ea1
 territories.NP=\u0ec0\u0e99\u0e9b\u0eb2\u0e99
-territories.BD=\u0e9a\u0eb1\u0e87\u0e81\u0eb0\u0ea5\u0eb2\u0ec0\u0e97\u0e94
+territories.BE=\u0ec0\u0e9a\u0ea7\u0ea2\u0ebd\u0ea1
 territories.NO=\u0e99\u0ecd\u0ec0\u0ea7
+territories.BD=\u0e9a\u0eb1\u0e87\u0e81\u0eb0\u0ea5\u0eb2\u0ec0\u0e97\u0e94
 territories.BB=\u0e9a\u0eb2\u0e9a\u0eb2\u0e84\u0eb1\u0ead\u0e94
 territories.ZW=\u0e8a\u0eb4\u0ea1\u0e9a\u0eb1\u0e9a\u0ec0\u0ea7
-territories.BA=\u0e9a\u0eb1\u0ead\u0e94\u0eaa\u0ec0\u0e99\u0e8d \u0ec1\u0ea5\u0eb0 \u0ec0\u0eae\u0eb5\u0e94\u0ec2\u0e81\u0ea7\u0eb4\u0ec0\u0e99\u0e8d
 territories.NL=\u0ec0\u0e99\u0ec0\u0e97\u0eb5\u0ec1\u0ea5\u0e99
+territories.BA=\u0e9a\u0eb1\u0ead\u0e94\u0eaa\u0ec0\u0e99\u0e8d \u0ec1\u0ea5\u0eb0 \u0ec0\u0eae\u0eb5\u0e94\u0ec2\u0e81\u0ea7\u0eb4\u0ec0\u0e99\u0e8d
 territories.NI=\u0e99\u0eb4\u0e84\u0eb2\u0ea5\u0eb2\u0e81\u0ebb\u0ea7
 territories.NG=\u0ec4\u0e99\u0e88\u0eb5\u0ec0\u0ea5\u0e8d
 territories.AZ=\u0ead\u0eb2\u0ec0\u0e8a\u0eb5\u0ec4\u0e9a\u0e88\u0eb1\u0e99
 territories.NE=\u0ec4\u0e99\u0ec0\u0e88\u0eb5
-territories.AW=\u0ead\u0eb2\u0ea5\u0eb9\u0e9a\u0eb2
 territories.NC=\u0e99\u0eb4\u0ea7\u0e84\u0eb2\u0ea5\u0eb4\u0ec2\u0e84\u0ec0\u0e99\u0e8d
+territories.AW=\u0ead\u0eb2\u0ea5\u0eb9\u0e9a\u0eb2
 territories.ZM=\u0ec1\u0e8a\u0ea1\u0ec0\u0e9a\u0e8d
-territories.NA=\u0e99\u0eb2\u0ea1\u0eb4\u0ec0\u0e9a\u0e8d
 territories.AU=\u0ead\u0ebb\u0ead\u0e94\u0eaa\u0eb0\u0e95\u0eb2\u0ea5\u0eb5
+territories.NA=\u0e99\u0eb2\u0ea1\u0eb4\u0ec0\u0e9a\u0e8d
 territories.AT=\u0ead\u0ebb\u0ead\u0e94\u0eaa\u0eb0\u0ec0\u0e95\u0ebc\u0e8d
 territories.AR=\u0ead\u0eb2\u0ec0\u0e88\u0e99\u0e95\u0eb4\u0e99\u0eb2\u0ec8
-territories.AO=\u0ead\u0eb1\u0e99\u0ec2\u0e81\u0ea5\u0eb2
 territories.MZ=\u0ec2\u0ea1\u0ec1\u0e8a\u0ea1\u0e9a\u0eb4\u0e81
-territories.AN=\u0ec0\u0e99\u0ec0\u0e97\u0eb5\u0ec1\u0ea5\u0e99\u0ec1\u0ead\u0e99\u0ec0\u0e97\u0eb4\u0e99
+territories.AO=\u0ead\u0eb1\u0e99\u0ec2\u0e81\u0ea5\u0eb2
 territories.MY=\u0ea1\u0eb2\u0ec0\u0ea5\u0ec0\u0e8a\u0e8d
-territories.AM=\u0ead\u0eb2\u0ea1\u0eb4\u0ec0\u0e99\u0e8d
+territories.AN=\u0ec0\u0e99\u0ec0\u0e97\u0eb5\u0ec1\u0ea5\u0e99\u0ec1\u0ead\u0e99\u0ec0\u0e97\u0eb4\u0e99
 territories.MX=\u0ec1\u0ea1\u0eb1\u0e81\u0e8a\u0eb4\u0ec2\u0e81
+territories.AM=\u0ead\u0eb2\u0ea1\u0eb4\u0ec0\u0e99\u0e8d
 territories.AL=\u0ec1\u0ead\u0ea5\u0ec0\u0e9a\u0ec0\u0e99\u0e8d
 territories.ZA=\u0ead\u0eb2\u0e9f\u0eb0\u0ea5\u0eb4\u0e81\u0eb2\u0ec3\u0e95\u0ec9
 territories.MU=\u0ea1\u0ecd\u0ea3\u0eb4\u0e95\u0ebd\u0e94
-territories.AI=\u0ead\u0eb1\u0e99\u0e81\u0eb4\u0ea5\u0eb2
 territories.MT=\u0ea1\u0eb1\u0e99\u0e95\u0eb2
+territories.AI=\u0ead\u0eb1\u0e99\u0e81\u0eb4\u0ea5\u0eb2
 territories.MS=\u0ea1\u0ead\u0e99\u0ec0\u0e8a\u0eb5\u0ea5\u0eb2\u0e94
 territories.MR=\u0ea1\u0ecd\u0ea5\u0eb4\u0e81\u0e97\u0eb2\u0ec0\u0e99\u0e8d
-territories.AF=\u0ead\u0eb1\u0e9f\u0e81\u0eb2\u0e99\u0eb4\u0e94\u0eaa\u0eb0\u0e96\u0eb2\u0e99
 territories.MQ=\u0ea1\u0eb2\u0e95\u0eb4\u0e99\u0eb4\u0e81
+territories.AF=\u0ead\u0eb1\u0e9f\u0e81\u0eb2\u0e99\u0eb4\u0e94\u0eaa\u0eb0\u0e96\u0eb2\u0e99
 territories.AE=\u0eaa\u0eb0\u0eab\u0eb0\u0ea5\u0eb1\u0e94\u0ead\u0eb2\u0eab\u0ea5\u0eb1\u0e9a\u0ec0\u0ead\u0ea1\u0eb4\u0ec0\u0ea5\u0e94
-territories.AD=\u0ead\u0eb1\u0e99\u0e94\u0ecd\u0ea5\u0eb2
 territories.MO=\u0ea1\u0eb2\u0ec0\u0e81\u0ebb\u0ec9\u0eb2
+territories.AD=\u0ead\u0eb1\u0e99\u0e94\u0ecd\u0ea5\u0eb2
 territories.MN=\u0ea1\u0ebb\u0e87\u0ec2\u0e81\u0ea5\u0eb5
 territories.MM=\u0eaa\u0eb0\u0eab\u0eb0\u0e9e\u0eb2\u0e9a\u0e9e\u0eb0\u0ea1\u0ec9\u0eb2
 territories.ML=\u0ea1\u0eb2\u0ea5\u0eb4
@@ -185,7 +186,7 @@ territories.KI=\u0e84\u0eb5\u0ea5\u0eb4\u0e9a\u0eb2\u0e94
 territories.KH=\u0e81\u0eb3\u0e9b\u0eb9\u0ec0\u0e88\u0e8d
 territories.KG=\u0ec0\u0e94\u0eb5\u0e81\u0eb4\u0e94\u0eaa\u0eb0\u0e96\u0eb2\u0e99
 territories.KE=\u0ec0\u0e84\u0e99\u0ea2\u0ec8\u0eb2
-territories.JP=\u0e8d\u0eb5\u0ec8\u0e9b\u0ec8\u0eb8\u0e99
+territories.JP=\u0e8d\u0eb5\u0ec8\u0e9b\u0eb8\u0ec8\u0e99
 territories.JO=\u0e88\u0ecd\u0ec1\u0e94\u0e99
 territories.JM=\u0e88\u0eb2\u0ec4\u0ea1\u0e81\u0eb2
 territories.VU=\u0ea7\u0eb2\u0e99\u0ebb\u0ea7\u0e95\u0eb9
@@ -216,145 +217,151 @@ territories.TW=\u0ec4\u0e95\u0ec9\u0eab\u0ea7\u0eb1\u0e99
 territories.HK=\u0eae\u0ec8\u0ead\u0e87\u0e81\u0ebb\u0e87
 territories.TT=\u0e97\u0eb4\u0e99\u0eb4\u0ec1\u0e94\u0e94
 territories.TR=\u0e95\u0eb8\u0e99\u0e81\u0eb5
-territories.TO=\u0e97\u0ead\u0e87\u0e81\u0ec9\u0eb2
+territories.TO=\u0e95\u0ead\u0e87\u0e81\u0eb2
 territories.TN=\u0e95\u0eb9\u0e99\u0eb4\u0ec0\u0e8a\u0e8d
 territories.TM=\u0ec0\u0e95\u0ea3\u0eb5\u0e81\u0ec0\u0ea1\u0e99\u0eb4\u0eaa\u0eb0\u0e96\u0eb2\u0e99
-languages.es=\u0eaa\u0eb0\u0ec0\u0e9b\u0e99
-languages.ku=\u0ec0\u0e84\u0eb5\u0e94
-languages.eo=\u0ec0\u0ead\u0eaa\u0ec0\u0e9b\u0eb5\u0ea5\u0eb1\u0e99\u0ec2\u0e95
-languages.en=\u0ead\u0eb1\u0e87\u0e81\u0eb4\u0e94
+languages.la=\u0ea5\u0eb2\u0ec1\u0e95\u0eb1\u0e87
+languages.xh=\u0ec2\u0e8a\u0e8a\u0eb2
+languages.ky=\u0ec0\u0e81\u0e8d\u0e81\u0eb4\u0eaa
+languages.ku=\u0ec0\u0e84\u0eb5\u0e94\u0eb4\u0eaa
 languages.ks=\u0e84\u0eb1\u0e94\u0e8a\u0eb0\u0ea1\u0eb5\u0ea5\u0eb5
-languages.el=\u0e81\u0eb5\u0e81
-languages.qu=\u0e84\u0eb4\u0ea7\u0e8a\u0ebb\u0ea7
-languages.ko=\u0ec0\u0e81\u0ebb\u0eb2\u0eab\u0ea5\u0eb5
-languages.kn=\u0e81\u0eb2\u0e99\u0eb2\u0e94\u0eb2
-languages.km=\u0e82\u0eb0\u0ec0\u0edd\u0e99
+languages.ko=\u0ec0\u0e81\u0ebb\u0eb2\u0eab\u0ebc\u0eb5
+languages.kn=\u0e81\u0eb1\u0e99\u0e99\u0eb2\u0e94\u0eb2
+languages.km=\u0e81\u0eb3\u0e9b\u0eb9\u0ec0\u0e88\u0e8d
 languages.kl=\u0e81\u0ebc\u0eb5\u0e99\u0ec1\u0ea5\u0e99\u0e94\u0eb4\u0e94
 languages.kk=\u0e84\u0eb2\u0e8a\u0eb1\u0e81
 languages.wo=\u0ea7\u0eb9\u0e9a
-languages.ka=\u0e88\u0ecd\u0ec0\u0e88\u0e8d
-languages.dz=\u0e9e\u0eb9\u0e96\u0eb2\u0e99\u0eb5
-languages.jv=\u0e8a\u0eb0\u0ea7\u0eb2
-languages.pt=\u0ec2\u0e9b\u0e95\u0eb8\u0ec0\u0e81\u0e94
-languages.ps=\u0e9e\u0eb2\u0eaa\u0ec2\u0e95(\u0e9e\u0eb8\u0e94\u0ec2\u0e95)
-languages.de=\u0ec0\u0ea2\u0e8d\u0ea5\u0eb0\u0ea1\u0eb1\u0e99
-languages.pl=\u0ec2\u0e9b\u0ec1\u0ea5\u0e99
-languages.da=\u0ec0\u0e94\u0e99\u0edd\u0eb2\u0e81
+languages.ka=\u0e8a\u0ead\u0e81\u0e8a\u0eb5
+languages.jv=\u0e8a\u0ea7\u0eb2
 languages.vo=\u0ec2\u0ea7\u0ea5\u0eb2\u0e9e\u0eb8\u0e81
 languages.ja=\u0e8d\u0eb5\u0ec8\u0e9b\u0eb8\u0ec8\u0e99
-languages.vi=\u0ea7\u0ebd\u0e94\u0e99\u0eb2\u0ea1
-languages.cy=\u0ec0\u0ea7\u0ea7
-languages.pa=\u0e9b\u0eb1\u0e99\u0e88\u0eb2
-languages.cs=\u0ec0\u0e8a\u0eb1\u0e81
+languages.vi=\u0eab\u0ea7\u0ebd\u0e94\u0e99\u0eb2\u0ea1
 languages.iu=\u0ec4\u0ead\u0e99\u0eb8\u0e81\u0e95\u0eb4\u0e95\u0eb1\u0e81
-languages.co=\u0e84\u0ecd\u0e8a\u0eb4\u0e81\u0ec9\u0eb2
-languages.it=\u0ead\u0eb4\u0e95\u0eb2\u0eaa\u0eb4
-languages.is=\u0ec4\u0ead\u0ec1\u0ea5\u0e99\u0e94\u0eb4\u0e94
-languages.uz=\u0ead\u0eb8\u0e94\u0eaa\u0eb0\u0ec0\u0e9a\u0e94
-languages.or=\u0ec2\u0ead\u0ea5\u0eb4\u0e8d\u0eb2
+languages.it=\u0ead\u0eb5\u0e95\u0eb2\u0ea5\u0eb5
+languages.is=\u0ead\u0eb4\u0eaa\u0ea5\u0eb1\u0e87
+languages.uz=\u0ead\u0eb8\u0e94\u0e8a\u0eb0\u0ec0\u0e9a\u0eb1\u0e81\u0e81\u0eb4\u0e94\u0eaa\u0eb0\u0e96\u0eb2\u0e99
 languages.ik=\u0ec4\u0ead\u0e99\u0eb9\u0e9b\u0ebd\u0e81
-languages.ur=\u0ead\u0eb4\u0e99\u0e94\u0eb9
-languages.om=\u0ec2\u0ead\u0ec2\u0ea5\u0ec2\u0ea1(\u0ead\u0eb2\u0e9f\u0eb2\u0e99)
-languages.ca=\u0ec1\u0e84\u0e95\u0eb2\u0ec1\u0ea5\u0e99
+languages.ur=\u0ead\u0eb9\u0ea3\u0eb0\u0e94\u0eb9
 languages.ie=\u0ead\u0eb4\u0e99\u0ec0\u0e95\u0eb5\u0ea5\u0eb4\u0e87
 languages.id=\u0ead\u0eb4\u0e99\u0ec2\u0e94\u0ec0\u0e99\u0ec0\u0e8a\u0e8d
-languages.uk=\u0ea2\u0eb9\u0ec0\u0e84\u0ebc\u0e99
-languages.ia=\u0ead\u0eb4\u0e99\u0ec0\u0e95\u0eb5\u0ea5\u0eb4\u0e87\u0e81\u0ea7\u0eb2
-languages.oc=\u0ead\u0ead\u0eb1\u0e81\u0e8a\u0eb4\u0e97\u0eb1\u0e99
-languages.ug=\u0ead\u0eb8\u0e8d\u0e81\u0ebb\u0ea7
-languages.hy=\u0ead\u0eb2\u0ea1\u0eb4\u0ec0\u0e99\u0e8d
-languages.br=\u0e9a\u0eb5\u0e97\u0eb1\u0e99
-languages.hu=\u0eae\u0ebb\u0e87\u0e81\u0eb2\u0ea5\u0eb5
-languages.bo=\u0e97\u0eb4\u0ec0\u0e9a\u0e94
-languages.bn=\u0e9a\u0eb8\u0e99\u0e81\u0eb2\u0ea5\u0eb5
-languages.hr=\u0ec2\u0e84\u0ec0\u0ead\u0ec0\u0e8a\u0e8d
-languages.bi=\u0e9a\u0eb4\u0eaa\u0ea5\u0eb2\u0ea1\u0eb2
-languages.tw=\u0e97\u0eb0\u0ea7\u0eb5
-languages.bh=\u0e9a\u0eb4\u0eae\u0eb2\u0ea5\u0eb4
-languages.bg=\u0e9a\u0eb1\u0e87\u0e81\u0eb2\u0ec0\u0ea5\u0e8d
+languages.ia=\u0ead\u0eb4\u0e99\u0ec0\u0e95\u0eb5\u0ea5\u0eb4\u0e87\u0e81\u0eb2
+languages.uk=\u0ead\u0eb9\u0ec1\u0e81\u0ea3\u0e99
+languages.ug=\u0ead\u0eb8\u0e8d\u0ec0\u0e84\u0eb5
+languages.hy=\u0ead\u0eb2\u0e81\u0ec0\u0ea1\u0e99\u0eb5
+languages.hu=\u0eae\u0eb1\u0e87\u0e81\u0eb2\u0ea3\u0eb5
+languages.hr=\u0ec2\u0e81\u0ea3\u0ead\u0eb2\u0e8a\u0eb5
+languages.fil=\u0e95\u0eb2\u0e81\u0eb2\u0ea5\u0eca\u0ead\u0e81
+languages.tw=\u0e95\u0ea7\u0eb5
 languages.tt=\u0e95\u0eb2\u0e94
-languages.no=\u0e99\u0ecd\u0ec0\u0ea7\u0ea7
-languages.be=\u0e9a\u0eb2\u0e8d\u0ec2\u0ea5\u0ea5\u0eb1\u0e94\u0ec0\u0e8a\u0e8d
+languages.hi=\u0eae\u0eb4\u0e99\u0e94\u0eb9
 languages.ts=\u0e8a\u0ead\u0e87\u0e81\u0eb2
-languages.hi=\u0eae\u0eb4\u0e99\u0e94\u0eb4
-languages.tr=\u0e95\u0eb8\u0ea5\u0eb2\u0e81\u0eb5
-languages.nl=\u0ead\u0ecd\u0ea5\u0eb1\u0e99\u0e94\u0eb2
-languages.zu=\u0e8a\u0eb9\u0ea5\u0eb9
-languages.ba=\u0e9a\u0eb2\u0eaa\u0eaa\u0eb5
+languages.tr=\u0e95\u0ea7\u0e81\u0e81\u0eb5
+languages.he=\u0e8d\u0eb4\u0ea7
 languages.to=\u0e97\u0ead\u0e87\u0e81\u0ec9\u0eb2
-languages.he=\u0ea2\u0eb4\u0ea7
 languages.tn=\u0ec0\u0e8a\u0e95\u0eb0\u0eaa\u0eb0\u0ea7\u0eb2\u0e99\u0eb2
 languages.tl=\u0e95\u0eb2\u0e81\u0eb2\u0ea5\u0eb1\u0ead\u0e81
-languages.tk=\u0ec0\u0e95\u0eb5\u0e81\u0ec0\u0ea1\u0e99
 languages.ha=\u0ec2\u0ead\u0e8a\u0eb2
-languages.ne=\u0ec0\u0e99\u0e9b\u0eb2\u0e99
-languages.az=\u0ead\u0eb2\u0ec0\u0e8a\u0eb5\u0ec4\u0e9a\u0e88\u0eb2\u0e99\u0eb5
-languages.ti=\u0e97\u0eb4\u0e81\u0eb4\u0e99\u0ea2\u0eb2
-languages.ay=\u0ec4\u0ead\u0ea1\u0eb2\u0ea5\u0eb2
+languages.tk=\u0e95\u0ea7\u0ebd\u0e81\u0ec0\u0ea1\u0e99
+languages.ti=\u0e95\u0eb5\u0e81\u0ea3\u0eb4\u0e99\u0ea2\u0eb2
 languages.th=\u0ec4\u0e97
 languages.tg=\u0e97\u0eb2\u0e88\u0eb4\u0e94
+languages.te=\u0ec0\u0e95\u0ea5\u0eb9\u0e81\u0eb9
+languages.ta=\u0e97\u0eb0\u0ea1\u0eb4\u0e99
+languages.gu=\u0e81\u0eb9\u0e8a\u0eb2\u0ea3\u0eb2\u0e95\u0eb5
+languages.gn=\u0e81\u0ebb\u0ea7\u0ea3\u0eb2\u0e99\u0eb5
+languages.sw=\u0e8a\u0ea7\u0eb2\u0eae\u0eb5\u0ea5\u0eb5
+languages.gl=\u0e81\u0eb2\u0ea5\u0eb4\u0e94
+languages.sv=\u0e8a\u0eb9\u0ec1\u0ead\u0eb1\u0e94
+languages.su=\u0e8a\u0eb1\u0e99\u0e94\u0eb2\u0e99
+languages.st=\u0ec0\u0e8a\u0ec2\u0e8a\u0ec2\u0e97
+languages.ss=\u0e8a\u0eb4\u0eaa\u0ea7\u0eb2\u0e95\u0eb4
+languages.sr=\u0ec1\u0e8a\u0e81\u0e9a\u0eb5
+languages.sq=\u0ead\u0eb2\u0e99\u0e9a\u0eb2\u0e99\u0eb5
+languages.so=\u0ec2\u0e8a\u0ea1\u0eb2\u0ea5\u0eb5
+languages.gd=\u0eaa\u0eb0\u0e81\u0eb1\u0ead\u0e94 \u0ec1\u0e81\u0ea5\u0eb4\u0e81
+languages.sn=\u0ec2\u0e8a\u0e99\u0eb2
+languages.sm=\u0e8a\u0eb2\u0ea1\u0ebb\u0ea7
+languages.sl=\u0eaa\u0eb0\u0ec2\u0ea5\u0ea7\u0eb2\u0e99\u0eb5
+languages.ga=\u0ec4\u0ead\u0ec1\u0ea5\u0e99
+languages.sk=\u0eaa\u0eb0\u0ec2\u0ea5\u0ea7\u0eb1\u0e81\u0e81\u0eb5
+languages.si=\u0eaa\u0eb4\u0e87\u0eab\u0eb2\u0e99
+languages.sh=\u0ec1\u0e8a\u0eb1\u0e81\u0ec2\u0e9a-\u0ec2\u0e81\u0ea3\u0ec1\u0ead\u0eb1\u0e94
+languages.sg=\u0eaa\u0eb1\u0e99\u0ec2\u0e84
+languages.fy=\u0e9f\u0ea3\u0eb5\u0e8a\u0ebd\u0e99
+languages.sd=\u0eaa\u0eb4\u0e99\u0e97\u0eb4
+languages.sa=\u0eaa\u0eb1\u0e99\u0eaa\u0eb0\u0e81\u0eb4\u0e94
+languages.fr=\u0e9d\u0ea3\u0eb1\u0ec8\u0e87
+languages.fo=\u0e9f\u0eb2\u0ec2\u0ea3
+languages.rw=\u0e84\u0eb4\u0e99\u0e8d\u0eb2\u0ea7\u0eb1\u0e99\u0e94\u0eb2
+languages.ru=\u0ea5\u0eb1\u0e94\u0ec0\u0e8a\u0e8d
+languages.fj=\u0e9f\u0eb4\u0e88\u0eb4
+languages.fi=\u0ec1\u0e9f\u0e87\u0ea5\u0eb1\u0e87
+languages.ro=\u0ec2\u0ea3\u0ea1\u0eb2\u0e99\u0eb5
+languages.rn=\u0e84\u0eb4\u0ea5\u0eb1\u0e99\u0eaa\u0eb5
+languages.rm=\u0ec0\u0ea5\u0ec2\u0e95-\u0ec2\u0ea5\u0ec1\u0ea1\u0e99
+languages.fa=\u0ec0\u0e9b\u0eb5\u0ec0\u0e8a\u0e8d
+languages.pt_PT=\u0e9b\u0ead\u0e81\u0e95\u0eb8\u0e8d\u0e81\u0eb2\u0e99 (\u0e9b\u0ead\u0e81\u0e95\u0eb8\u0e8d\u0e81\u0eb2\u0e99)
+languages.eu=\u0e9a\u0eb1\u0eaa\u0ec0\u0e81\u0eb5
+languages.et=\u0ec0\u0ead\u0eaa\u0ec2\u0e95\u0e99\u0eb5
+languages.es=\u0ec1\u0ead\u0eaa\u0e9b\u0eb2\u0ec2\u0e8d\u0e99
+languages.eo=\u0ec0\u0ead\u0eaa\u0ec0\u0e9b\u0ea3\u0eb1\u0e87\u0ec2\u0e95
+languages.en=\u0ead\u0eb1\u0e87\u0e81\u0eb4\u0e94
+languages.el=\u0e81\u0ec0\u0ea3\u0eb1\u0e81
+languages.qu=\u0e84\u0eb4\u0ea7\u0e8a\u0ebb\u0ea7
+languages.dz=\u0e9e\u0eb9\u0e96\u0eb2\u0e99\u0eb5
+languages.pt=\u0e9b\u0ead\u0e81\u0e95\u0eb8\u0e8d\u0e81\u0eb2\u0e99
+languages.pt_BR=\u0e9b\u0ead\u0e81\u0e95\u0eb8\u0e8d\u0e81\u0eb2\u0e99 (\u0e9a\u0ea3\u0eb2\u0e8a\u0eb5\u0e99)
+languages.ps=\u0e9b\u0eb2\u0eaa\u0ec2\u0e95
+languages.de=\u0ec0\u0e8d\u0e8d\u0ea5\u0eb0\u0ea1\u0eb1\u0e99
+languages.pl=\u0ec2\u0e9b\u0ec2\u0ea5\u0e8d
+languages.da=\u0ec0\u0e94\u0eb1\u0e99\u0ea1\u0eb2\u0e81
+languages.cy=\u0ec1\u0ea7\u0ea7
+languages.pa=\u0e9b\u0eb1\u0e99\u0e88\u0eb2\u0e9a
+languages.cs=\u0ec0\u0e8a\u0eb1\u0e81
+languages.co=\u0e84\u0ecd\u0e8a\u0eb4\u0e81\u0ec9\u0eb2
+languages.or=\u0ec2\u0ead\u0ea3\u0eb5\u0ea2\u0eb2
+languages.om=\u0ec2\u0ead\u0ec2\u0ea5\u0ec2\u0ea1(\u0ead\u0eb2\u0e9f\u0eb2\u0e99)
+languages.ca=\u0e81\u0eb2\u0e95\u0eb2\u0ea5\u0eb1\u0e87
+languages.oc=\u0ead\u0ebb\u0e81\u0e8a\u0eb5\u0e95\u0eb2\u0e99
+languages.bs=\u0e9a\u0ead\u0eaa\u0e99\u0eb5
+languages.br=\u0e9a\u0ec0\u0ea3\u0eb5\u0e95\u0ebb\u0e87
+languages.bo=\u0e97\u0eb4\u0ec0\u0e9a\u0e94
+languages.bn=\u0ec0\u0e9a\u0eb1\u0e87\u0e81\u0eb2\u0e99
+languages.bi=\u0e9a\u0eb4\u0eaa\u0ea5\u0eb2\u0ea1\u0eb2
+languages.bh=\u0e9a\u0eb5\u0eae\u0eb2\u0ea3\u0eb5
+languages.bg=\u0e9a\u0eb8\u0e99\u0e81\u0eb2\u0ea3\u0eb5
+languages.be=\u0ec0\u0e9a\u0ea5\u0eb2\u0ea5\u0eb8\u0e94\u0e8a\u0eb5
+languages.no=\u0e99\u0ead\u0e81\u0ec1\u0ea7
+languages.nn=\u0e99\u0ead\u0e81\u0ec1\u0ea7 (\u0e99\u0eb5\u0e99\u0ead\u0e81)
+languages.nl=\u0ec2\u0eae\u0e99\u0ea5\u0eb1\u0e87
+languages.ba=\u0e9a\u0eb2\u0eaa\u0eaa\u0eb5
+languages.zu=\u0e8a\u0eb9\u0ea5\u0eb9
+languages.az=\u0ead\u0eb2\u0ec1\u0e8a\u0e81\u0e9a\u0eb2\u0e8d\u0e8a\u0eb2\u0e99
+languages.ne=\u0ec0\u0e99\u0e9b\u0eb2\u0e99
+languages.ay=\u0ec4\u0ead\u0ea1\u0eb2\u0ea5\u0eb2
 languages.na=\u0e99\u0ecd\u0ea5\u0eb9
-languages.te=\u0e97\u0eb4\u0ea5\u0eb9\u0e81\u0eb9
+languages.as=\u0ead\u0eb1\u0eaa\u0eaa\u0eb3
+languages.ar=\u0ead\u0eb2\u0ea3\u0eb1\u0e9a
 languages.zh=\u0e88\u0eb5\u0e99
-languages.as=\u0ead\u0eb1\u0e94\u0eaa\u0eb3\u0ea1\u0eb4\u0e94
-languages.ar=\u0ead\u0eb2\u0ea5\u0eb2\u0ec0\u0e9a\u0e8d
-languages.ta=\u0e97\u0eb0\u0ea1\u0eb4\u0e9a
-languages.gu=\u0e81\u0eb9\u0e88\u0eb2\u0ea5\u0eb2\u0e95\u0eb5
 languages.my=\u0e9e\u0eb0\u0ea1\u0ec8\u0eb2
-languages.am=\u0ead\u0eb3\u0eae\u0eb2\u0ea5\u0eb4\u0e94
+languages.am=\u0ead\u0eb3\u0eab\u0eb2\u0ea3\u0eb4\u0e81
 languages.za=\u0e88\u0ea7\u0e87
-languages.mt=\u0ea1\u0ead\u0e99\u0e95\u0eb2
-languages.ms=\u0ea1\u0eb2\u0ea5\u0eb2\u0ea2\u0eb9
-languages.gn=\u0e81\u0ebb\u0ea7\u0ea5\u0eb2\u0e99\u0eb5
-languages.sw=\u0e8a\u0eb0\u0ea7\u0eb2\u0eae\u0eb4\u0ea5\u0eb5
-languages.mr=\u0ea1\u0eb2\u0ea5\u0eb2\u0e97\u0eb4
-languages.sv=\u0eaa\u0eb0\u0ea7\u0eb5\u0ec0\u0e94\u0e99
-languages.gl=\u0e81\u0eb0\u0eaa\u0eb4\u0ec0\u0e8a\u0e8d
-languages.su=\u0e8a\u0eb1\u0e99\u0e94\u0eb2\u0e99\u0eb4\u0eaa
-languages.af=\u0ead\u0eb2\u0e9f\u0eb4\u0ebc\u0e81\u0e81\u0eb2
-languages.st=\u0ec0\u0e8a\u0ec2\u0eaa\u0ec2\u0e97
+languages.mt=\u0ea1\u0eb2\u0e99\u0e95\u0eb2
+languages.ms=\u0ea1\u0eb2\u0ec0\u0ea5
+languages.mr=\u0ea1\u0eb2\u0ea3\u0eb2\u0e97\u0eb5
+languages.af=\u0ead\u0eb1\u0e9f\u0ea3\u0eb4\u0e81\u0eb2
 languages.mo=\u0ec2\u0ea1\u0e84\u0eb2\u0ec0\u0ea7\u0e8d
-languages.ss=\u0e8a\u0eb4\u0eaa\u0ea7\u0eb2\u0e95\u0eb4
-languages.mn=\u0ea1\u0ead\u0e87\u0ec2\u0e81\u0ebc
-languages.sr=\u0ec0\u0e8a\u0eb5\u0ec0\u0e9a\u0e8d
-languages.sq=\u0ec1\u0ead\u0ea5\u0ec0\u0e9a\u0ec0\u0e99\u0e8d
-languages.ml=\u0ec1\u0ea1\u0ea5\u0eb0\u0ea2\u0eb2\u0ea5\u0eb3
+languages.mn=\u0ea1\u0ebb\u0e87\u0ec2\u0e81\u0e99
 languages.ab=\u0ec1\u0ead\u0e9a\u0e84\u0eb2\u0ec0\u0e8a\u0e8d
-languages.mk=\u0ec1\u0ea1\u0eb1\u0e81\u0e8a\u0eb4\u0ec2\u0e94\u0ec0\u0e99\u0e8d
+languages.ml=\u0ea1\u0eb2\u0ea5\u0eb2\u0ea2\u0eb2\u0ea5\u0eb3
 languages.aa=\u0ead\u0eb2\u0e9f\u0eb2
-languages.so=\u0ec2\u0e8a\u0ea1\u0eb2\u0eaa\u0eb4
-languages.sn=\u0ec2\u0e8a\u0e99\u0eb2
-languages.gd=\u0eaa\u0eb0\u0e81\u0eb1\u0ead\u0e94\u0ec0\u0e84\u0eb5\u0e94
+languages.mk=\u0ea1\u0eb2\u0ec0\u0e8a\u0ec2\u0e94\u0e99\u0eb5
 languages.mi=\u0ec0\u0ea1\u0ebb\u0eb2\u0ea5\u0eb5
-languages.sm=\u0e8a\u0eb2\u0ea1\u0ebb\u0ea7
-languages.sl=\u0eaa\u0eb0\u0ec2\u0ea5\u0ea7\u0eb2\u0ec0\u0e99\u0e8d
 languages.mg=\u0ea1\u0eb2\u0ea5\u0eb2\u0e81\u0eb2\u0e8a\u0eb4
-languages.sk=\u0eaa\u0eb0\u0ec2\u0ea5\u0ea7\u0eb1\u0e81
-languages.ga=\u0ec4\u0ead\u0ea5\u0eb4\u0e94
 languages.yo=\u0ec2\u0ea2\u0ea5\u0eb9\u0e9a\u0eb2
-languages.si=\u0eaa\u0eb4\u0e87\u0eab\u0ea5\u0ecd
-languages.sh=\u0ec0\u0e8a\u0eb5\u0ec2\u0e9a-\u0ec2\u0e84\u0ec0\u0ead\u0e97\u0ebd\u0e99
-languages.sg=\u0eaa\u0eb1\u0e99\u0ec2\u0e84
-languages.yi=\u0ea2\u0eb5\u0e84\u0eb4\u0e94
-languages.sd=\u0e8a\u0eb4\u0e99\u0e94\u0eb4
-languages.fy=\u0e9f\u0eb4\u0e99\u0ec1\u0ea5\u0e99
-languages.sa=\u0eaa\u0eb1\u0e99\u0eaa\u0eb0\u0e81\u0eb4\u0e94
-languages.fr=\u0e9d\u0eb1\u0ec8\u0ea5\u0e87\u0ec0\u0eaa\u0e94
-languages.lv=\u0ec1\u0ea5\u0e95\u0eb0\u0ec0\u0ea7\u0e8d(\u0ec0\u0ea5\u0e94\u0e97\u0eb0\u0ea7\u0eb4\u0e94)
-languages.fo=\u0e9f\u0eb2\u0ec2\u0ea5\u0e94
-languages.lt=\u0ea5\u0eb4\u0e97\u0ebb\u0ea7\u0ec0\u0e99\u0e8d
-languages.rw=\u0e84\u0eb4\u0e99\u0e8d\u0eb2\u0ea7\u0eb1\u0e99\u0e94\u0eb2
-languages.ru=\u0ea5\u0eb1\u0e94\u0ec0\u0e8a\u0e8d
-languages.fj=\u0e9f\u0eb4\u0e88\u0eb4
+languages.tlh=\u0e81\u0ea5\u0eb4\u0e87\u0e81\u0ead\u0e87
+languages.yi=\u0ea2\u0eb4\u0e94\u0e94\u0eb4\u0eaa
+languages.lv=\u0ea5\u0eb1\u0e94\u0ec0\u0ea7\u0e8d
+languages.lt=\u0ea5\u0eb5\u0e97\u0ebb\u0ea7\u0e99\u0eb5
 languages.lo=\u0ea5\u0eb2\u0ea7
-languages.fi=\u0e9f\u0eb4\u0e99
 languages.ln=\u0ea5\u0eb4\u0e87\u0e81\u0eb2\u0ea5\u0eb2
-languages.ro=\u0ec2\u0ea5\u0ea1\u0eb1\u0e99
-languages.rn=\u0e84\u0eb4\u0ea5\u0eb1\u0e99\u0eaa\u0eb5
-languages.rm=\u0ec0\u0ea5\u0ec2\u0e95-\u0ec2\u0ea5\u0ec1\u0ea1\u0e99
-languages.fa=\u0ec0\u0e9b\u0eb5\u0ec0\u0e8a\u0e8d
-languages.la=\u0ea5\u0eb2\u0e95\u0eb4\u0e99
-languages.xh=\u0ec2\u0e8a\u0eaa\u0eb2
-languages.eu=\u0ec1\u0e9a\u0eaa
-languages.et=\u0ec0\u0ead\u0eaa\u0ec2\u0e95\u0ec0\u0e99\u0e8d
-languages.ky=\u0ec0\u0e84\u0ea7\u0e81\u0eb4\u0e94
index 5eea5f1c57724e62431061365df1cee1e1d59b46..a8b1ba99f2f64595bfe8f5564bf5872ff7e657d1 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+exponential=\u00d710^
+minusSign=\u2212
 decimalSeparator=,
 groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.INR=Indijos rupija
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=Jemeno dinaras
+currenciesDisplayName.KES=Kenijos \u0161ilingas
+currenciesDisplayName.TWD=Naujasis Taivano doleris
+currenciesDisplayName.LKR=\u0160ri Lankos rupija
+currenciesDisplayName.BYB=Baltarusijos naujieji rubliai
+currenciesDisplayName.TJS=Tad\u017eikistano somonis
+currenciesDisplayName.RWF=Ruandos frankas
+currenciesDisplayName.ERN=Eritr\u0117jos nakfa
+currenciesDisplayName.TJR=Tad\u017eikistano rublis
+currenciesDisplayName.SDP=Senasis Sudano svaras
+currenciesDisplayName.GRD=Graikijos drachma
+currenciesDisplayName.AFN=Afganiai
+currenciesDisplayName.IEP=Airijos svaras
+currenciesDisplayName.ARS=Argentinos pesai
+currenciesDisplayName.SDG=Sudano svaras
+currenciesDisplayName.ARP=Argentinos pesai (1983-1985)
+currenciesDisplayName.SDD=Senasis Sudano dinaras
+currenciesDisplayName.GEL=Gruzijos laris
+currenciesDisplayName.AFA=Afganiai (1927-2002)
+currenciesDisplayName.CRC=Kosta Rikos kolonai
+currenciesDisplayName.FKP=Falklando sal\u0173 svaras
+currenciesDisplayName.EEK=Estijos krona
+currenciesDisplayName.MDL=Moldovos l\u0117ja
+currenciesDisplayName.HKD=Honkongo doleris
+currenciesDisplayName.IQD=Irako dinaras
+currenciesDisplayName.SCR=Sei\u0161eli\u0173 sal\u0173 rupija
+currenciesDisplayName.KPW=\u0160iaur\u0117s Kor\u0117jos vonas
+currenciesDisplayName.DKK=Danijos krona
+currenciesDisplayName.IDR=Indonezijos rupija
+currenciesDisplayName.SOS=Somalio \u0161ilingas
+currenciesDisplayName.LVR=Latvijos rublis
+currenciesDisplayName.AED=JAE dirhamas
+currenciesDisplayName.LVL=Latvijos latas
+currenciesDisplayName.BWP=Botsvanos pulos
+currenciesDisplayName.RUR=Rusijos rublis (1991-1998)
+currenciesDisplayName.NIO=Nikaragvos kardoba oras
+currenciesDisplayName.MOP=Macao pataka
+currenciesDisplayName.FJD=Fid\u017eio doleris
+currenciesDisplayName.ADP=Andoros pesetos
 currenciesDisplayName.RUB=Rusijos rublis
-currenciesDisplayName.JPY=Jena
-currenciesDisplayName.BRL=Brazilijos realas
-currenciesDisplayName.CNY=\u017denminbi juanis
-currenciesDisplayName.USD=JAV doleris
-currenciesDisplayName.EUR=Euras
+currenciesDisplayName.CDF=Kongo frankai
+currenciesDisplayName.NIC=Nikaragvos kardoba
+currenciesDisplayName.DJF=D\u017eibu\u010dio frankas
+currenciesDisplayName.UZS=Uzbekistano sumas
+currenciesDisplayName.SBD=Saliamono sal\u0173 doleris
+currenciesDisplayName.ECV=Ekvadoro constante (UVC)
+currenciesDisplayName.LUL=Liuksemburgo finansinis frankas
+currenciesDisplayName.ECS=Ekvadoro sukr\u0117
+currenciesDisplayName.THB=Batas
+currenciesDisplayName.PHP=Filipin\u0173 pesas
+currenciesDisplayName.LUF=Liuksemburgo frankas
+currenciesDisplayName.RHD=Rodezijos doleris
+currenciesDisplayName.LUC=Liuksemburgo konvertuojamas frankas
+currenciesDisplayName.FIM=Suomijos mark\u0117
+currenciesDisplayName.TTD=Trinidado ir Tobago doleris
+currenciesDisplayName.SZL=Svazilendo lilangenis
+currenciesDisplayName.MNT=Mongolijos tugrikas
+currenciesDisplayName.UAK=Ukrainos karbovanecas
+currenciesDisplayName.SAR=Saudo Arabijos rialas
+currenciesDisplayName.UAH=Ukrainos grivina
+currenciesDisplayName.HUF=Vengrijos forintas
+currenciesDisplayName.QAR=Kataro rialas
+currenciesDisplayName.COP=Kolumbijos pesai
+currenciesDisplayName.LTT=Lietuvos talonas
+currenciesDisplayName.PTE=Portugalijos eskudas
+currenciesDisplayName.UYU=Urugvajaus pesas uruguayo
+currenciesDisplayName.GBP=Did\u017eiosios Britanijos svaras sterling\u0173
+currenciesDisplayName.ZRZ=Zairo zairas
+currenciesDisplayName.INR=Indijos rupija
+currenciesDisplayName.BIF=Burund\u017eio frankai
+currenciesDisplayName.XFU=Uic -frankas
+currenciesDisplayName.MZN=Mozambiko metikalis
 currenciesDisplayName.LTL=Litas
-currenciesDisplayName.GBP=Svaras sterling\u0173
+currenciesDisplayName.AON=Angolos naujosios kvanzos
+currenciesDisplayName.UYP=Urugvajaus pesas (1975-1993)
+currenciesDisplayName.MZM=Senasis Mozambiko metikalis
+currenciesDisplayName.KZT=Kazachstano teng\u0117
+currenciesDisplayName.AOK=Angolos kvanzai (1977-1990)
+currenciesDisplayName.XFO=Auksinis - frankas
+currenciesDisplayName.PGK=Papua Naujosios Gvin\u0117jos kina
+currenciesDisplayName.SYP=Sirijos svaras
+currenciesDisplayName.OMR=Omano rialas
+currenciesDisplayName.MZE=Mozambiko eskudas
+currenciesDisplayName.ZRN=Zairo naujasis zairas
+currenciesDisplayName.NGN=Nigerijos naira
+currenciesDisplayName.CNY=Kinijos \u017eenminbi juanis
+currenciesDisplayName.AOA=Angolos kvanzai
+currenciesDisplayName.MAF=Maroko frankas
+currenciesDisplayName.RSD=Serbijos dinaras
+currenciesDisplayName.GNF=Gvin\u0117jos frankas
+currenciesDisplayName.MAD=Maroko dirhamas
+currenciesDisplayName.HTG=Hai\u010dio gurdas
+currenciesDisplayName.TRY=Naujoji Turkijos Lira
+currenciesDisplayName.MMK=Mianmaro kijatas
+currenciesDisplayName.MYR=Malaizijos ringitas
+currenciesDisplayName.XEU=Europos piniginis vienetas (1993-1999)
+currenciesDisplayName.LSL=Lesoto lotis
+currenciesDisplayName.SLL=Siera Leon\u0117s leon\u0117
+currenciesDisplayName.BHD=Bahreino dinarai
+currenciesDisplayName.BTN=Butano ngultrumai
+currenciesDisplayName.TRL=Turkijos lira
+currenciesDisplayName.KMF=Komoro frankai
+currenciesDisplayName.CZK=\u010cekijos krona
+currenciesDisplayName.ANG=Nyderland\u0173 Antil\u0173 guldenai
+currenciesDisplayName.AZN=Azerbaid\u017eano manatai
+currenciesDisplayName.AZM=Azerbaid\u017eano manatai (1993-2006)
+currenciesDisplayName.GMD=Gambijos dalasis
+currenciesDisplayName.VEF=Stiprusis Venesuelos bolivaras
+currenciesDisplayName.BGN=Bulgarijos naujasis levai
+currenciesDisplayName.MXV=Meksikos United de Inversion (UDI)
+currenciesDisplayName.CAD=Kanados doleriai
+currenciesDisplayName.BGL=Bulgarijos levai
+currenciesDisplayName.VEB=Bolivaras
+currenciesDisplayName.MLF=Malio frankas
+currenciesDisplayName.MXP=Meksikos sidabrinis pesas
+currenciesDisplayName.ILS=Izraelio \u0161ekelis
+currenciesDisplayName.PES=Peru solis
+currenciesDisplayName.MXN=Meksikos pesas
+currenciesDisplayName.GYD=Gajanos doleris
+currenciesDisplayName.ILP=Izraelio svaras
+currenciesDisplayName.CYP=Kipro svaras
+currenciesDisplayName.SKK=Slovakijos krona
+currenciesDisplayName.XDR=SDR Tarptautinis valiutos fondas
+currenciesDisplayName.PEN=Peru naujasis solis
+currenciesDisplayName.LRD=Liberijos doleris
+currenciesDisplayName.AMD=Arm\u0117nijos dramai
+currenciesDisplayName.BSD=Baham\u0173 doleriai
+currenciesDisplayName.XPT=Platina
+currenciesDisplayName.HRK=Kroatijos kuna
+currenciesDisplayName.HRD=Kroatijos dinaras
+currenciesDisplayName.CLP=\u010cil\u0117s pesai
+currenciesDisplayName.XPF=CFP frankai
+currenciesDisplayName.FRF=Pranc\u016bzijos frankas
+currenciesDisplayName.XPD=Paladis
+currenciesDisplayName.BRR=Brazilijos kruzeirai
+currenciesDisplayName.MKD=Makedonijos denaras
+currenciesDisplayName.BRN=Brazilijos naujieji kruzadai
+currenciesDisplayName.ALL=Albanijos lekai
+currenciesDisplayName.MWK=Malavio kva\u010da
+currenciesDisplayName.BRL=Brazilijos realai
+currenciesDisplayName.TPE=Timoro eskudas
+currenciesDisplayName.BRE=Brazilijos kruzeirai (1990-1993)
+currenciesDisplayName.BRC=Brazilijos kruzadai
+currenciesDisplayName.BRB=Brazilijos naujieji kruzeirai
+currenciesDisplayName.DEM=Vokietijos mark\u0117
+currenciesDisplayName.KWD=Kuveito dinaras
+currenciesDisplayName.XCD=Ryt\u0173 Karib\u0173 doleris
+currenciesDisplayName.NPR=Nepalo rupija
+currenciesDisplayName.GWP=Gvin\u0117jos-Bisau pesas
+currenciesDisplayName.YUN=Jugoslavijos konvertuojamas dinaras
+currenciesDisplayName.SVC=Salvadoro kolonas
+currenciesDisplayName.YUM=Jugoslavijos naujasis dinaras
+currenciesDisplayName.BEL=Belgijos frankai (finansiniai)
+currenciesDisplayName.SIT=Slov\u0117nijos tolaras
+currenciesDisplayName.JPY=Japonijos jena
+currenciesDisplayName.XOF=CFA BCEAO frankai
+currenciesDisplayName.MVR=Maldyv\u0173 sal\u0173 rufija
+currenciesDisplayName.BEF=Belgijos frankai
+currenciesDisplayName.GWE=Portugal\u0173 Gvin\u0117jos eskudas
+currenciesDisplayName.TOP=Tongo paanga
+currenciesDisplayName.BEC=Belgijos frankai (konvertuojami)
+currenciesDisplayName.SUR=Soviet\u0173 S\u0105jungos rublis
+currenciesDisplayName.RON=Naujoji Rumunijos l\u0117ja
+currenciesDisplayName.ROL=Senoji Rumunijos l\u0117ja
+currenciesDisplayName.BDT=Banglade\u0161o takos
+currenciesDisplayName.DDM=Ryt\u0173 Vokietijos ostmark\u0117
+currenciesDisplayName.XBD=Europos valiutos/apskaitos vienetas (XBD)
+currenciesDisplayName.AWG=Arubos guldenai
+currenciesDisplayName.XBC=Europos valiutos/apskaitos vienetas (XBC)
+currenciesDisplayName.XBB=Europos piniginis vienetas (XBB)
+currenciesDisplayName.XBA=Europos suvestin\u0117s vienetas
+currenciesDisplayName.NOK=Norvegijos krona
+currenciesDisplayName.MUR=Mauricijaus rupija
+currenciesDisplayName.ZAR=PAR Randas
+currenciesDisplayName.SHP=\u0160v. Elenos sal\u0173 svaras
+currenciesDisplayName.XAU=Auksas
+currenciesDisplayName.ZAL=Piet\u0173 Afrikos Respublikos finansinis randas
+currenciesDisplayName.VND=Vietnamo dongai
+currenciesDisplayName.TZS=Tanzanijos \u0161ilingas
+currenciesDisplayName.GIP=Gibraltaro svaras
+currenciesDisplayName.TND=Tuniso dinaras
+currenciesDisplayName.UGX=Ugandos \u0161ilingas
+currenciesDisplayName.XAG=Sidabras
+currenciesDisplayName.ZMK=Zambijos kva\u010da
+currenciesDisplayName.JOD=Jordanijos dinaras
+currenciesDisplayName.XAF=CFA BEAC frankai
+currenciesDisplayName.LBP=Libano svaras
+currenciesDisplayName.UGS=Ugandos \u0161ilingas (1966-1987)
+currenciesDisplayName.STD=Sao Tom\u0117s ir Princip\u0117s dobra
+currenciesDisplayName.WST=Vakar\u0173 Samoa tala
+currenciesDisplayName.DOP=Dominikos pesas
+currenciesDisplayName.EUR=Euras
+currenciesDisplayName.BOV=Bolivijos mvdol
+currenciesDisplayName.MTP=Maltos svaras
+currenciesDisplayName.USS=JAV doleris (\u0161ios dienos)
+currenciesDisplayName.BOP=Bolivijos pesai
+currenciesDisplayName.CUP=Kubos pesas
+currenciesDisplayName.MTL=Maltos lira
+currenciesDisplayName.TMM=Turkm\u0117nistano manatas
+currenciesDisplayName.USN=JAV doleris (sekan\u010dios dienos)
+currenciesDisplayName.GHS=Ganos sedis
+currenciesDisplayName.SGD=Singap\u016bro doleris
+currenciesDisplayName.NZD=Naujosios Zelandijos doleris
+currenciesDisplayName.USD=JAV doleris
+currenciesDisplayName.BOB=Bolivijos bolivijanai
+currenciesDisplayName.HNL=Honduro lempira
+currenciesDisplayName.ITL=Italijos lira
+currenciesDisplayName.PAB=Panamos balboja
+currenciesDisplayName.GTQ=Gvatemalos ketcalis
+currenciesDisplayName.AUD=Australijos doleriai
+currenciesDisplayName.GHC=Ganos sedis (1979-2007)
+currenciesDisplayName.LAK=Laoso kipas
+currenciesDisplayName.NAD=Namibijos doleris
+currenciesDisplayName.KGS=Kirgizijos somas
+currenciesDisplayName.MGF=Madagaskaro frankas
+currenciesDisplayName.BBD=Barbadoso doleriai
+currenciesDisplayName.CHF=\u0160veicarijos frankas
+currenciesDisplayName.MGA=Madagaskaro ariaris
+currenciesDisplayName.PYG=Paragvajaus guaranis
+currenciesDisplayName.PLZ=Lenkijos zlotas (1950-1995)
+currenciesDisplayName.YER=Jemeno rialas
+currenciesDisplayName.ATS=Austrijos \u0161ilingai
+currenciesDisplayName.ETB=Etiopijos biras
+currenciesDisplayName.BND=Brun\u0117jaus doleriai
+currenciesDisplayName.EGP=Egipto svaras
+currenciesDisplayName.JMD=Jamaikos doleris
+currenciesDisplayName.PLN=Lenkijos zlotas
+currenciesDisplayName.DZD=Al\u017eyro dinarai
+currenciesDisplayName.ISK=Islandijos krona
+currenciesDisplayName.SRG=Surimano guldenas
+currenciesDisplayName.LYD=Libijos dinaras
+currenciesDisplayName.SRD=Surimano doleris
+currenciesDisplayName.BAM=Bosnijos ir Hercegovinos konvertuojamosios mark\u0117s
+currenciesDisplayName.BZD=Belizo doleriai
+currenciesDisplayName.ESP=Ispanijos peseta
+currenciesDisplayName.KRW=Piet\u0173 Kor\u0117jos vonas
+currenciesDisplayName.NLG=Nyderland\u0173 guldenas
+currenciesDisplayName.MRO=Mauritanijos ugija
+currenciesDisplayName.BAD=Bosnijos ir Hercegovinos dinarai
+currenciesDisplayName.ZWD=Zimbabv\u0117s doleris
+currenciesDisplayName.SEK=\u0160vedijos krona
+currenciesDisplayName.BYR=Baltarusijos rubliai
+currenciesDisplayName.IRR=Irano rialas
+currenciesDisplayName.PKR=Pakistano rupija
+currenciesDisplayName.BMD=Bermudos doleriai
+currenciesDisplayName.CSD=Senasis Serbijos dinaras
 currenciesSymbol.LTL=Lt
-shortMonths=Sau®Vas®Kov®Bal®Geg®Bir®Lie®Rgp®Rgs®Spl®Lap®Grd®®
-months=Sausis®Vasaris®Kovas®Balandis®Gegu\u017e\u0117®Bir\u017eelis®Liepa®Rugpj\u016btis®Rugs\u0117jis®Spalis®Lapkritis®Gruodis®®
-shortWeekdays=®Sk®Pr®An®Tr®Kt®Pn®\u0160t®
-weekdays=®sekmadienis®pirmadienis®antradienis®tre\u010diadienis®ketvirtadienis®penktadienis®\u0161e\u0161tadienis®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=pr. Kr.®po Kr.®
-ampms=prie\u0161piet®popiet®
+shortMonths=Sau\u00aeVas\u00aeKov\u00aeBal\u00aeGeg\u00aeBir\u00aeLie\u00aeRgp\u00aeRgs\u00aeSpl\u00aeLap\u00aeGrd\u00ae\u00ae
+months=Sausis\u00aeVasaris\u00aeKovas\u00aeBalandis\u00aeGegu\u017e\u0117\u00aeBir\u017eelis\u00aeLiepa\u00aeRugpj\u016btis\u00aeRugs\u0117jis\u00aeSpalis\u00aeLapkritis\u00aeGruodis\u00ae\u00ae
+shortWeekdays=\u00aeSk\u00aePr\u00aeAn\u00aeTr\u00aeKt\u00aePn\u00ae\u0160t\u00ae
+weekdays=\u00aesekmadienis\u00aepirmadienis\u00aeantradienis\u00aetre\u010diadienis\u00aeketvirtadienis\u00aepenktadienis\u00ae\u0161e\u0161tadienis\u00ae
+eras=pr. Kr.\u00aepo Kr.\u00ae
+ampms=prie\u0161piet\u00aepopiet\u00ae
 shortDateFormat=yyyy-MM-dd
 mediumDateFormat=yyyy.MM.dd
-longDateFormat=yyyy 'm.' MMMM d 'd.'
-fullDateFormat=yyyy 'm.' MMMM d 'd.',EEEE
+longDateFormat=yyyy 'm'. MMMM d 'd'.
+fullDateFormat=yyyy 'm'. MMMM d 'd'.,EEEE
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=America_Eastern\u00aeRyt\u0173 standartinis laikas\u00ae\u00aeRyt\u0173 vasaros laikas\u00ae\u00ae\u00a9Guyana\u00aeGajanos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Uruguay\u00aeUrugvajaus laikas\u00ae\u00aeUrugvajaus vasaros laikas\u00ae\u00ae\u00a9French_Guiana\u00aePranc\u016bz\u0173 Gajanos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Eastern\u00aeRyt\u0173 Europos laikas\u00ae\u00aeRyt\u0173 Europos vasaros laikas\u00ae\u00ae\u00a9Greenland_Eastern\u00aeGrenlandijos ryt\u0173 laikas\u00ae\u00aeGrenlandijos ryt\u0173 vasaros laikas\u00ae\u00ae\u00a9Chile\u00ae\u010cil\u0117s laikas\u00ae\u00ae\u010cil\u0117s vasaros laikas\u00ae\u00ae\u00a9Europe_Central\u00aeVidurio Europos laikas\u00ae\u00aeVidurio Europos vasaros laikas\u00ae\u00ae\u00a9Africa_Southern\u00aePiet\u0173 Afrikos standartinis laikas\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeEkvadoro laikas\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Central\u00aeCentrin\u0117s Afrikos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00aeSamaros laikas\u00ae\u00aeSamaros vasaros laikas\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAliaskos-Havaj\u0173 standartinis laikas\u00ae\u00aeAliaskos-Havaj\u0173 vasaros laikas\u00ae\u00ae\u00a9America_Central\u00aeCentro standartinis laikas\u00ae\u00aeCentro vasaros laikas\u00ae\u00ae\u00a9Moscow\u00aeMaskvos standartinis laikas\u00ae\u00aeMaskvos vasaros laikas\u00ae\u00ae\u00a9Peru\u00aePeru laikas\u00ae\u00aePeru vasaros laikas\u00ae\u00ae\u00a9Argentina\u00aeArgentinos laikas\u00ae\u00aeArgentinos vasaros laikas\u00ae\u00ae\u00a9Atlantic\u00aeAtlanto standartinis laikas\u00ae\u00aeAtlanto vasaros laikas\u00ae\u00ae\u00a9Venezuela\u00aeVenesuelos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeParagvajaus laikas\u00ae\u00aeParagvajaus vasaros laikas\u00ae\u00ae\u00a9Dutch_Guiana\u00aeOland\u0173 Gajanos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00aeNiufaundlendo standartinis laikas\u00ae\u00aeNiufaundlendo vasaros laikas\u00ae\u00ae\u00a9Africa_Eastern\u00aeRyt\u0173 Afrikos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00aeKuiby\u0161evo laikas\u00ae\u00aeKuiby\u0161evo vasaros laikas\u00ae\u00ae\u00a9Greenland_Western\u00aeGrenlandijos vakar\u0173 laikas\u00ae\u00aeGrenlandijos vakar\u0173 vasaros laikas\u00ae\u00ae\u00a9Bolivia\u00aeBolivijos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBeringo standartinis laikas\u00ae\u00aeBeringo vasaros laikas\u00ae\u00ae\u00a9Argentina_Western\u00aeVakar\u0173 Argentinos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeVolgogrado laikas\u00ae\u00aeVolgogrado vasaros laikas\u00ae\u00ae\u00a9Amazon\u00aeAmazon\u0117s laikas\u00ae\u00aeAmazon\u0117s vasaros laikas\u00ae\u00ae\u00a9Turkey\u00aeTurkijos laikas\u00ae\u00aeTurkijos vasaros laikas\u00ae\u00ae\u00a9Cuba\u00aeKubos standartinis laikas\u00ae\u00aeKubos vasaros laikas\u00ae\u00ae\u00a9Brasilia\u00aeBrazilijos laikas\u00ae\u00aeBrazilijos vasaros laikas\u00ae\u00ae\u00a9America_Pacific\u00aeRamiojo vandenyno standartinis laikas\u00ae\u00aeRamiojo vandenyno vasaros laikas\u00ae\u00ae\u00a9Africa_Western\u00aeVakar\u0173 Afrikos laikas\u00ae\u00aeVakar\u0173 Afrikos vasaros laikas\u00ae\u00ae\u00a9Alaska\u00aeAliaskos standartinis laikas\u00ae\u00aeAliaskos vasaros laikas\u00ae\u00ae\u00a9Colombia\u00aeKolumbijos laikas\u00ae\u00aeKolumbijos vasaros laikas\u00ae\u00ae\u00a9Greenland_Central\u00aeGrenlandijos centro laikas\u00ae\u00aeGrenlandijos centro vasaros laikas\u00ae\u00ae\u00a9
 territories.TL=Ryt\u0173 Timoras
 territories.TK=Tokelau
-territories.TJ=Tad\u017eikistas
+territories.TJ=Tad\u017eikistanas
 territories.TH=Tailandas
 territories.TG=Togas
 territories.TF=Pranc\u016bzijos Piet\u0173 sritys
@@ -42,7 +285,7 @@ territories.TC=Turkso ir Caicoso salos
 territories.GW=Bisau Gvin\u0117ja
 territories.GU=Guamas
 territories.GT=Gvatemala
-territories.GS=Piet\u0173 Georgijos ir Piet\u0173 Sandwicho Salos
+territories.GS=Piet\u0173 D\u017eord\u017eija ir Piet\u0173 Sandvi\u010do salos
 territories.GR=Graikija
 territories.GQ=Pusiaujo Gvin\u0117ja
 territories.GP=Gvadelup\u0117
@@ -52,10 +295,13 @@ territories.GN=Gvin\u0117ja
 territories.GM=Gambija
 territories.GL=Grenlandija
 territories.SV=Salvadoras
+territories.062=Piet\u0173-vidurio Azija
 territories.ST=San Tom\u0117 ir Princip\u0117
 territories.GI=Gibraltaras
+territories.061=Polinezija
 territories.GH=Gana
 territories.SR=Surinamas
+territories.GG=Guernsey
 territories.GF=Pranc\u016bzijos Gviana
 territories.GE=Gruzija
 territories.SO=Somalis
@@ -65,10 +311,10 @@ territories.SM=San Marinas
 territories.GB=Did\u017eioji Britanija
 territories.SL=Siera Leon\u0117
 territories.GA=Gabonas
-territories.SK=Slovakia
+territories.SK=Slovakija
 territories.SJ=Svalbardo ir Jan Majen salos
 territories.SI=Slov\u0117nija
-territories.SH=\u0160v. Elenos sala
+territories.SH=\u0160ventoji Elena
 territories.SG=Singap\u016bras
 territories.SE=\u0160vedija
 territories.SD=Sudanas
@@ -77,34 +323,43 @@ territories.SB=Saliamono salos
 territories.SA=Saudo Arabija
 territories.FR=Pranc\u016bzija
 territories.FO=Farer\u0173 salos
+territories.057=Mikronezija [057]
 territories.FM=Mikronezija
 territories.RW=Ruanda
+territories.054=Melanezija
 territories.FK=Falklando salos
-territories.RU=Rusija
+territories.053=Australija ir Naujoji Zelandija
+territories.RU=Rusijos Federacija
 territories.FJ=Fid\u017eis
 territories.FI=Suomija
+territories.RS=Serbija
 territories.RO=Rumunija
-territories.RE=Rejunjonas
+territories.RE=Reunionas
 territories.ET=Etiopija
 territories.ES=Ispanija
 territories.ER=Eritr\u0117ja
+territories.QU=Europos s\u0105junga
 territories.EH=Vakar\u0173 Sachara
 territories.EG=Egiptas
 territories.EE=Estija
 territories.EC=Ekvadoras
 territories.DZ=Al\u017eyras
 territories.QA=Kataras
+territories.039=Piet\u0173 Europa
 territories.DO=Dominikos Respublika
 territories.PY=Paragvajus
 territories.DM=Dominika
+territories.035=Pietry\u010di\u0173 Azija
 territories.PW=Palau
+territories.034=Piet\u0173 Azija
 territories.DK=Danija
 territories.DJ=D\u017eibutis
 territories.PT=Portugalija
 territories.PS=Palestinos teritorija
+territories.030=Ryt\u0173 Azija
 territories.PR=Puerto Rikas
 territories.DE=Vokietija
-territories.PN=Pitcairnas
+territories.PN=Pitkernas
 territories.PM=Sen Pjeras ir Mikelonas
 territories.PL=Lenkija
 territories.PK=Pakistanas
@@ -120,39 +375,51 @@ territories.PA=Panama
 territories.CU=Kuba
 territories.CS=Serbija ir Juodkalnija
 territories.CR=Kosta Rika
+territories.029=Karibai
 territories.CO=Kolumbija
 territories.CN=Kinija
 territories.CM=Kamer\u016bnas
 territories.CL=\u010cil\u0117
 territories.CK=Kuko salos
+territories.021=\u0160iaur\u0117s Amerika
 territories.CI=Dramblio Kaulo Krantas
 territories.CH=\u0160veicarija
 territories.CG=Kongas
 territories.CF=Centrin\u0117s Afrikos Respublika
 territories.CD=Kongo Demokratin\u0117 Respublika
-territories.CC=Kokos\u0173 (Keelingo) salos
+territories.CC=Kokos\u0173 salos
 territories.OM=Omanas
 territories.CA=Kanada
+territories.419=Lotyn\u0173 Amerika ir Karibai
 territories.BZ=Belizas
 territories.BY=Baltarusija
 territories.BW=Botsvana
 territories.BV=Bouvet sala
 territories.BT=Butanas
-territories.BS=Bahamos
+territories.BS=Baham\u0173
 territories.BR=Brazilija
+territories.019=Amerika
+territories.018=Piet\u0173 Afrika [018]
 territories.NZ=Naujoji Zelandija
+territories.017=Vidurio Afrika
 territories.BO=Bolivija
 territories.BN=Brun\u0117jus
+territories.015=\u0160iaur\u0117s Afrika
 territories.BM=Bermuda
+territories.014=Ryt\u0173 Afrika
+territories.013=Centrin\u0117 Amerika
 territories.NU=Niue
 territories.BJ=Beninas
+territories.011=Vakar\u0173 Afrika
 territories.BI=Burundis
+territories.172=Nepriklausom\u0173 Valstybi\u0173 Sandrauga
 territories.BH=Bahreinas
-territories.NR=Nauru Respublika
+territories.NR=Nauru
 territories.BG=Bulgarija
 territories.BF=Burkina Fasas
 territories.NP=Nepalas
 territories.BE=Belgija
+territories.ZZ=ne\u017einoma ar neteisinga sritis
 territories.NO=Norvegija
 territories.BD=Banglade\u0161as
 territories.BB=Barbadosas
@@ -164,6 +431,7 @@ territories.NG=Nigerija
 territories.NF=Norfolko sala
 territories.AZ=Azerbaid\u017eanas
 territories.NE=Nigeris
+territories.AX=\u00c5land
 territories.NC=Naujoji Kaledonija
 territories.AW=Aruba
 territories.ZM=Zambija
@@ -172,30 +440,35 @@ territories.AU=Australija
 territories.AT=Austrija
 territories.AS=Amerikos Samoa
 territories.AR=Argentina
-territories.AQ=Antarktis
+territories.AQ=Antarktida
+territories.009=Okeanija
 territories.MZ=Mozambikas
-territories.200=Serbija ir Juodkalnija
 territories.AO=Angola
+territories.200=\u010cekoslovakija
 territories.MY=Malaizija
 territories.AN=Olandijos Antilai
 territories.MX=Meksika
 territories.AM=Arm\u0117nija
+territories.005=Piet\u0173 Amerika
 territories.MW=Malavis
 territories.AL=Albanija
 territories.MV=Maldivai
+territories.003=\u0160iaur\u0117s Amerika
 territories.ZA=Piet\u0173 Afrika
 territories.MU=Mauricijus
+territories.002=Afrika
 territories.MT=Malta
 territories.AI=Angilija
+territories.001=Pasaulis
 territories.MS=Montserratas
 territories.MR=Mauritanija
 territories.AG=Antigva ir Barbuda
 territories.MQ=Martinika
 territories.AF=Afganistanas
-territories.AE=Jungtiniai Arab\u0173 Emyratai
 territories.MP=Marianos \u0161iaurin\u0117s salos
+territories.AE=Jungtiniai Arab\u0173 Emyratai
+territories.MO=Macao
 territories.AD=Andora
-territories.MO=Kinijos S.A.R. Makao
 territories.MN=Mongolija
 territories.MM=Mianmaras
 territories.ML=Malis
@@ -203,24 +476,32 @@ territories.MK=Makedonija
 territories.YT=Mayotte\u2019as
 territories.MH=Mar\u0161alo Salos
 territories.MG=Madagaskaras
+territories.ME=Juodkalnija
 territories.MD=Moldova
 territories.MC=Monakas
 territories.MA=Marokas
 territories.YE=Jemenas
 territories.LY=Libija
 territories.LV=Latvija
+territories.155=Vakar\u0173 Europa
 territories.LU=Liuksemburgas
+territories.154=\u0160iaur\u0117s Europa
 territories.LT=Lietuva
 territories.LS=Lesotas
 territories.LR=Liberija
+territories.151=Ryt\u0173 Europa
+territories.150=Europa
 territories.LK=\u0160ri Lanka
 territories.LI=Lichten\u0161teinas
-territories.LC=Sent Lusija
+territories.LC=\u0160ventoji Liucija
 territories.LB=Libanas
 territories.LA=Laosas
 territories.KZ=Kazachstanas
 territories.KY=Kaiman\u0173 salos
 territories.KW=Kuveitas
+territories.145=Vakar\u0173 Azija
+territories.143=Centrin\u0117 Azija
+territories.142=Azija
 territories.KR=Piet\u0173 Kor\u0117ja
 territories.KP=\u0160iaur\u0117s Kor\u0117ja
 territories.KN=Sent Kitsas ir Nevis
@@ -235,6 +516,7 @@ territories.JP=Japonija
 territories.JO=Jordanija
 territories.JM=Jamaika
 territories.VU=Vanuatu
+territories.JE=D\u017eersis
 territories.VN=Vietnamas
 territories.VI=Mergeli\u0173 salos (JAV)
 territories.VG=Did\u017eiosios Britanijos Mergeli\u0173 salos
@@ -249,8 +531,9 @@ territories.UZ=Uzbekistanas
 territories.IO=Indijos vandenyno brit\u0173 sritis
 territories.UY=Urugvajus
 territories.IN=Indija
+territories.IM=Meno sala
 territories.IL=Izraelis
-territories.US=Jungtin\u0117s Valstijos US
+territories.US=Jungtin\u0117s Valstijos
 territories.IE=Airija
 territories.ID=Indonezija
 territories.UM=Jungtini\u0173 Valstij\u0173 ma\u017eosios aplinkin\u0117s salos
@@ -261,43 +544,183 @@ territories.HT=Haitis
 territories.HR=Kroatija
 territories.TZ=Tanzanija
 territories.HN=Hond\u016bras
-territories.HM=Heardo salos
+territories.HM=Heardo ir McDonaldo Sal\u0173 Sritis
 territories.TW=Taivanas
 territories.TV=Tuvalu
-territories.HK=Kinijos S.A.R.Honkongas
+territories.HK=Honkongas
 territories.TT=Trinidadas ir Tobagas
 territories.TR=Turkija
 territories.TO=Tonga
 territories.TN=Tunisas
 territories.TM=Turkm\u0117nistanas
-languages.ja=Japon\u0173
-languages.en=Angl\u0173
-languages.tr=Turk\u0173
-languages.ko=Kor\u0117jie\u010di\u0173
-languages.no=Norveg\u0173
-languages.el=Graik\u0173
-languages.nl=Oland\u0173
-languages.bg=Bulgar\u0173
-languages.hi=Hindi
-languages.lv=Latvi\u0173
-languages.cs=\u010cek\u0173
-languages.he=Hebraj\u0173
-languages.it=Ital\u0173
-languages.lt=Lietuvi\u0173
-languages.fr=Pranc\u016bz\u0173
-languages.zh=Kin\u0173
-languages.ru=Rus\u0173
-languages.ro=Rumun\u0173
-languages.fi=Suomi\u0173
-languages.ar=Arab\u0173
-languages.sv=\u0160ved\u0173
-languages.pt=Portugal\u0173
-languages.pl=Lenk\u0173
-languages.sl=Slov\u0117n\u0173
-languages.sk=Slovak\u0173
-languages.de=Vokie\u010di\u0173
-languages.et=Est\u0173
-languages.hu=Vengr\u0173
-languages.es=Ispan\u0173
-languages.da=Dan\u0173
-languages.hr=Kroat\u0173
+languages.lb=liuksemburgie\u010di\u0173
+languages.la=lotyn\u0173
+languages.xh=kos\u0173
+languages.ky=kirgiz\u0173
+languages.ku=kurd\u0173
+languages.ko=kor\u0117jie\u010di\u0173
+languages.udm=udmurt\u0173
+languages.kn=kanad\u0173
+languages.km=khmer\u0173
+languages.kk=kazach\u0173
+languages.ira=Iranie\u010di\u0173
+languages.en_GB=angl\u0173 (brit\u0173)
+languages.grc=senov\u0117s graik\u0173
+languages.art=dirbtin\u0117 kalba
+languages.ka=gruzin\u0173
+languages.crh=krymo turk\u0173
+languages.gem=german\u0173 kalba
+languages.jv=javie\u010di\u0173
+languages.wa=valon\u0173
+languages.cel=kelt\u0173 kalba
+languages.sco=\u0161kot\u0173
+languages.scn=sicilie\u010di\u0173
+languages.vo=volapiuk
+languages.ja=japon\u0173
+languages.vi=vietnamie\u010di\u0173
+languages.it=ital\u0173
+languages.is=island\u0173
+languages.ady=adyg\u0117j\u0173
+languages.uz=uzbek\u0173
+languages.ur=urdu
+languages.ie=interlingue
+languages.id=indonezie\u010di\u0173
+languages.ia=interlingva
+languages.uk=ukrainie\u010di\u0173
+languages.ug=uig\u016br\u0173
+languages.fiu=finougr\u0173 kalba
+languages.und=nenustatyta kalba
+languages.hy=arm\u0117n\u0173
+languages.got=got\u0173
+languages.hu=vengr\u0173
+languages.hr=kroat\u0173
+languages.fil=tagal\u0173
+languages.tw=tvi
+languages.tt=totori\u0173
+languages.hi=hindi
+languages.tr=turk\u0173
+languages.he=hebraj\u0173
+languages.sah=jakut\u0173
+languages.tl=tagalog\u0173
+languages.kbd=kabardin\u0173
+languages.tk=turkm\u0117n\u0173
+languages.ti=tigraj\u0173
+languages.th=taj\u0173
+languages.te=telug\u0173
+languages.ta=tamil\u0173
+languages.gu=gud\u017earat\u0173
+languages.inh=ingu\u0161\u0173
+languages.ine=indoeuropie\u010di\u0173 kalba
+languages.gn=gvarani\u0173
+languages.sw=svahili
+languages.bua=buriat\u0173
+languages.gl=galis\u0173
+languages.sv=\u0161ved\u0173
+languages.su=sund\u0173
+languages.st=sesuto
+languages.sr=serb\u0173
+languages.sq=alban\u0173
+languages.so=somali\u0173
+languages.gd=\u0161kot\u0173 (g\u0117l\u0173)
+languages.sl=slov\u0117n\u0173
+languages.ga=airi\u0173
+languages.sk=slovak\u0173
+languages.kaa=karakalpak\u0173
+languages.si=sinhal\u0173
+languages.sh=serb\u0173-kroat\u0173
+languages.se=\u0161iaurini\u0173 sami\u0173
+languages.fy=Fryz\u0173
+languages.sd=sind\u0173
+languages.sc=sardinie\u010di\u0173
+languages.cau=kaukazie\u010di\u0173 kalba
+languages.sa=sanskritas
+languages.ang=senoji angl\u0173
+languages.fr=pranc\u016bz\u0173
+languages.sla=slav\u0173 kalba
+languages.fo=farerie\u010di\u0173
+languages.ru=rus\u0173
+languages.cai=Centrin\u0117s Amerikos ind\u0117n\u0173 kalba
+languages.fi=suomi\u0173
+languages.ro=rumun\u0173
+languages.fa=pers\u0173
+languages.pt_PT=portugal\u0173 (Portugalijos)
+languages.en_AU=angl\u0173 kalba (australija)
+languages.peo=senoji pers\u0173
+languages.lez=lezgin\u0173
+languages.eu=bask\u0173
+languages.et=est\u0173
+languages.es=ispan\u0173
+languages.eo=esperanto
+languages.en=angl\u0173
+languages.frs=ryt\u0173 fryz\u0173
+languages.el=graik\u0173
+languages.frr=\u0161iaurini\u0173 fryz\u0173
+languages.fro=senoji pranc\u016bz\u0173
+languages.ale=aleut\u0173
+languages.pt=portugal\u0173
+languages.pt_BR=portugal\u0173 (Brazilijos)
+languages.ber=berber\u0173
+languages.ps=pu\u0161t\u016bn\u0173
+languages.de=vokie\u010di\u0173
+languages.pl=lenk\u0173
+languages.da=dan\u0173
+languages.sux=\u0161umer\u0173
+languages.cy=val\u0173
+languages.cv=\u010diuva\u0161\u0173
+languages.pa=pand\u017eab\u0173
+languages.cu=ba\u017enytin\u0117 slav\u0173
+languages.cs=\u010dek\u0173
+languages.co=korsikie\u010di\u0173
+languages.mis=\u012fvairios kalba
+languages.os=osetin\u0173
+languages.or=orij\u0173
+languages.ce=\u010de\u010d\u0117n\u0173
+languages.ca=katalon\u0173
+languages.mul=kelios kalbos
+languages.oc=provansal\u0173
+languages.bs=bosni\u0173
+languages.xal=kalmuk\u0173
+languages.br=breton\u0173
+languages.bo=tibetie\u010di\u0173
+languages.zh_Hans=kin\u0173 supaprastinta
+languages.bn=bengal\u0173
+languages.zh_Hant=kin\u0173 tradicin\u0117
+languages.bh=bihar\u0173
+languages.bg=bulgar\u0173
+languages.be=baltarusi\u0173
+languages.no=norveg\u0173
+languages.nn=norveg\u0173 (Nynorsk)
+languages.nl=oland\u0173
+languages.ba=ba\u0161kir\u0173
+languages.zu=zul\u0173
+languages.az=azerbaid\u017eanie\u010di\u0173
+languages.ne=nepal\u0173
+languages.tyv=tuvi\u0173
+languages.aus=austral\u0173 kalba
+languages.as=asam\u0173
+languages.nap=neapolie\u010di\u0173
+languages.ar=arab\u0173
+languages.zh=kin\u0173
+languages.sga=senoji airi\u0173
+languages.am=amhar\u0173
+languages.nai=\u0160iaur\u0117s Amerikos ind\u0117n\u0173 kalba
+languages.paa=papuas\u0173 kalba
+languages.mt=maltie\u010di\u0173
+languages.ms=malajie\u010di\u0173
+languages.mr=marat\u0173
+languages.af=afrikanso
+languages.mo=moldav\u0173
+languages.mn=mongol\u0173
+languages.en_US=angl\u0173 (amerikie\u010di\u0173)
+languages.ab=abchaz\u0173
+languages.ml=malajali\u0173
+languages.bnt=bant\u0173
+languages.mk=makedon\u0173
+languages.egy=senov\u0117s egiptie\u010di\u0173
+languages.tlh=kelioni\u0173
+languages.yi=jidi\u0161
+languages.bat=balt\u0173 kalba
+languages.lv=latvi\u0173
+languages.lt=lietuvi\u0173
+languages.lo=laosie\u010di\u0173
+languages.ln=lingala
index d032ba0e37b26653cc79e3a8f57bff7442ea435f..74cd024b2094c94a82df70ec5fbc4a8577f8e2e2 100644 (file)
@@ -7,18 +7,87 @@
 
 decimalSeparator=,
 groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.CHF=\u0160veices franks
+currenciesDisplayName.AUD=Austr\u0101lijas dol\u0101rs
+currenciesDisplayName.FJD=Fid\u017ei dol\u0101rs
+currenciesDisplayName.KZT=Kazahst\u0101nas tenge
+currenciesDisplayName.RUB=Krievijas rublis
+currenciesDisplayName.CZK=\u010cehijas krona
+currenciesDisplayName.THB=Taizemes b\u0101ts
+currenciesDisplayName.SEK=Zviedrijas krona
+currenciesDisplayName.HRK=Horv\u0101tijas kuna
+currenciesDisplayName.PLN=Polijas zlots
+currenciesDisplayName.SKK=Slovakijas krona
+currenciesDisplayName.MAD=Marokas dirh\u0113ms
+currenciesDisplayName.TWD=jaunais Taiv\u0101nas dol\u0101rs
+currenciesDisplayName.XXX=nezin\u0101ma vai neder\u012bga val\u016bta
+currenciesDisplayName.MYR=Malaizijas ringits
+currenciesDisplayName.HUF=Ung\u0101rijas forints
+currenciesDisplayName.BND=Brunejas dol\u0101rs
+currenciesDisplayName.UAH=Ukrainas grivna
+currenciesDisplayName.INR=Indijas r\u016bpija
+currenciesDisplayName.AED=Apvienoto Ar\u0101bu Emir\u0101tu dirh\u0113ms
+currenciesDisplayName.SAR=Sa\u016bda ri\u0101ls
+currenciesDisplayName.CAD=Kan\u0101das dol\u0101rs
+currenciesDisplayName.LVL=Latvijas lats
+currenciesDisplayName.USD=ASV dol\u0101rs
+currenciesDisplayName.BGN=Bulg\u0101rijas leva
+currenciesDisplayName.JPY=Jap\u0101nas jena
+currenciesDisplayName.GBP=Lielbrit\u0101nijas sterli\u0146u m\u0101rci\u0146a
+currenciesDisplayName.PKR=Pakist\u0101nas r\u016bpija
+currenciesDisplayName.PHP=Filip\u012bnu peso
+currenciesDisplayName.PEN=Peru jaunais sols
+currenciesDisplayName.FRF=Francijas franks
+currenciesDisplayName.NOK=Norv\u0113\u0123ijas krona
+currenciesDisplayName.EUR=eiro
+currenciesDisplayName.HKD=Honkongas dol\u0101rs
+currenciesDisplayName.IDR=Indon\u0113zijas r\u016bpija
+currenciesDisplayName.SGD=Singap\u016bras dol\u0101rs
+currenciesDisplayName.ZAR=Dienvid\u0101frikas rands
+currenciesDisplayName.MXN=Meksikas peso
+currenciesDisplayName.TRY=jaun\u0101 Turcijas lira
+currenciesDisplayName.CLP=\u010c\u012bles peso
+currenciesDisplayName.COP=Kolumbijas peso
+currenciesDisplayName.KRW=Dienvidkorejas vona
+currenciesDisplayName.SIT=Slov\u0113nijas tolars
+currenciesDisplayName.EEK=Igaunijas krona
+currenciesDisplayName.RSD=Serbijas din\u0101rs
+currenciesDisplayName.TRL=Turcijas lira
+currenciesDisplayName.BRL=Braz\u012blijas re\u0101ls
+currenciesDisplayName.DEM=V\u0101cijas marka
+currenciesDisplayName.VEB=Venecu\u0113las boliv\u0101rs
+currenciesDisplayName.ARS=Argent\u012bnas peso
+currenciesDisplayName.CNY=\u0136\u012bnas juana
+currenciesDisplayName.DKK=D\u0101nijas krona
+currenciesDisplayName.MTL=Maltas lira
+currenciesDisplayName.ILS=Izra\u0113las \u0161ekelis
+currenciesDisplayName.VND=Vjetnamas dongi
+currenciesDisplayName.BOB=Bol\u012bvijas boliviano
+currenciesDisplayName.NZD=Jaunz\u0113landes dol\u0101rs
+currenciesDisplayName.RON=Rum\u0101nijas leja
+currenciesDisplayName.KES=Kenijas \u0161ili\u0146\u0161
+currenciesDisplayName.LTL=Lietuvas lits
+currenciesDisplayName.EGP=\u0112\u0123iptes m\u0101rci\u0146a
 currenciesSymbol.LVL=Ls
-shortMonths=Jan®Feb®Mar®Apr®Mai®J\u016bn®J\u016bl®Aug®Sep®Okt®Nov®Dec®®
-months=janv\u0101ris®febru\u0101ris®marts®apr\u012blis®maijs®j\u016bnijs®j\u016blijs®augusts®septembris®oktobris®novembris®decembris®®
-shortWeekdays=®Sv®P®O®T®C®Pk®S®
-weekdays=®sv\u0113tdiena®pirmdiena®otrdiena®tre\u0161diena®ceturtdiena®piektdiena®sestdiena®
-firstDayOfWeek=mon
-eras=pm\u0113®m\u0113®
+currenciesSymbol.EUR=\u20ac
+currenciesSymbol.XXX=XXX
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMai\u00aeJ\u016bn\u00aeJ\u016bl\u00aeAug\u00aeSep\u00aeOkt\u00aeNov\u00aeDec\u00ae\u00ae
+months=janv\u0101ris\u00aefebru\u0101ris\u00aemarts\u00aeapr\u012blis\u00aemaijs\u00aej\u016bnijs\u00aej\u016blijs\u00aeaugusts\u00aeseptembris\u00aeoktobris\u00aenovembris\u00aedecembris\u00ae\u00ae
+shortWeekdays=\u00ae\u00aepr\u00aeot\u00aetr\u00aece\u00aepk\u00aese\u00ae
+weekdays=\u00aesv\u0113tdiena\u00aepirmdiena\u00aeotrdiena\u00aetre\u0161diena\u00aeceturtdiena\u00aepiektdiena\u00aesestdiena\u00ae
+eras=p.m.\u0113.\u00aem.\u0113.\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=yy.d.M
 mediumDateFormat=yyyy.d.M
-longDateFormat=yyyy'. gada 'd. MMMM
-fullDateFormat=EEEE, yyyy'. gada 'd. MMMM
+longDateFormat=yyyy. 'gada' d. MMMM
+fullDateFormat=EEEE, yyyy. 'gada' d. MMMM
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
 territories.TL=Austrumtimora
 territories.TK=Tokelau
 territories.TJ=Tad\u017eikist\u0101na
@@ -41,10 +110,13 @@ territories.GN=Gvineja
 territories.GM=Gambija
 territories.GL=Grenlande
 territories.SV=Salvadora
+territories.062=Centr\u0101ldienvid\u0101zija
 territories.ST=Santome un Prinsipi
 territories.GI=Gibralt\u0101rs
+territories.061=Polin\u0113zija
 territories.GH=Gana
 territories.SR=Surinama
+territories.GG=G\u0113rnsija
 territories.GF=Fran\u010du Gvi\u0101na
 territories.GE=Gruzija
 territories.SO=Som\u0101lija
@@ -66,31 +138,41 @@ territories.SB=Z\u0101lamana salas
 territories.SA=Sa\u016bda Ar\u0101bija
 territories.FR=Francija
 territories.FO=Far\u0113ru salas
+territories.057=Mikron\u0113zijas re\u0123ions
 territories.FM=Mikron\u0113zijas Federat\u012bv\u0101s Valstis
 territories.RW=Ruanda
+territories.054=Melan\u0113zija
 territories.FK=Folklenda salas
+territories.053=Austr\u0101lija un Jaunz\u0113lande
 territories.RU=Krievija
 territories.FJ=Fid\u017ei
 territories.FI=Somija
+territories.RS=Serbija
 territories.RO=Rum\u0101nija
 territories.RE=Reinjona
 territories.ET=Etiopija
 territories.ES=Sp\u0101nija
 territories.ER=Eritreja
+territories.QU=Eiropas Savien\u012bba
 territories.EH=Rietumsah\u0101ra
 territories.EG=\u0112\u0123ipte
 territories.EE=Igaunija
+territories.QO=ASV Maz\u0101s Aizj\u016bras salas
 territories.EC=Ekvadora
 territories.DZ=Al\u017e\u012brija
 territories.QA=Katara
+territories.039=Eiropas dienvidi
 territories.DO=Dominik\u0101nas Republika
 territories.PY=Paragvaja
 territories.DM=Dominika
+territories.035=Centr\u0101laustrum\u0101zija
 territories.PW=Palau
+territories.034=\u0100zijas dienvidi
 territories.DK=D\u0101nija
 territories.DJ=D\u017eibutija
 territories.PT=Portug\u0101le
 territories.PS=Palest\u012bnie\u0161u pa\u0161p\u0101rvaldes teritorija
+territories.030=Austrum\u0101zija
 territories.PR=Puertoriko
 territories.DE=V\u0101cija
 territories.PN=Pitk\u0113rna
@@ -109,19 +191,22 @@ territories.PA=Panama
 territories.CU=Kuba
 territories.CS=Serbija un Melnkalne
 territories.CR=Kostarika
+territories.029=Kar\u012bbu j\u016bras re\u0123ions
 territories.CO=Kolumbija
 territories.CN=\u0136\u012bna
 territories.CM=Kamer\u016bna
 territories.CL=\u010c\u012ble
 territories.CK=Kuka salas
+territories.021=Amerikas zieme\u013ci
 territories.CI=Kotdivu\u0101ra
 territories.CH=\u0160veice
-territories.CG=Kongo
+territories.CG=Kongo-Brazzaville
 territories.CF=Centr\u0101l\u0101frikas Republika
-territories.CD=Kongo Demokr\u0101tisk\u0101 Republika
-territories.CC=Kokosu (K\u012blinga) salas
+territories.CD=Kongo-Kinshasa
+territories.CC=Kokosu jeb K\u012blinga salas
 territories.OM=Om\u0101na
 territories.CA=Kan\u0101da
+territories.419=Lat\u012b\u0146amerika un Kar\u012bbu j\u016bras re\u0123ions
 territories.BZ=Beliza
 territories.BY=Baltkrievija
 territories.BW=Botsv\u0101na
@@ -129,19 +214,28 @@ territories.BV=Buv\u0113 sala
 territories.BT=But\u0101na
 territories.BS=Bahamas
 territories.BR=Braz\u012blija
+territories.019=Am\u0113rikas
+territories.018=\u0100frikas dienvidi
 territories.NZ=Jaunz\u0113lande
+territories.017=Vidus\u0101frika
 territories.BO=Bol\u012bvija
 territories.BN=Bruneja
+territories.015=Zieme\u013c\u0101frika
 territories.BM=Bermudu salas
+territories.014=Austrum\u0101frika
+territories.013=Centr\u0101lamerika
 territories.NU=Niue
 territories.BJ=Benina
+territories.011=Rietum\u0101frika
 territories.BI=Burundi
+territories.172=Neatkar\u012bgo Valstu Savien\u012bba
 territories.BH=Bahreina
 territories.NR=Nauru
 territories.BG=Bulg\u0101rija
 territories.BF=Burkinafaso
 territories.NP=Nep\u0101la
 territories.BE=Be\u013c\u0123ija
+territories.ZZ=nezin\u0101ms vai neder\u012bgs re\u0123ions
 territories.NO=Norv\u0113\u0123ija
 territories.BD=Banglade\u0161a
 territories.BB=Barbadosa
@@ -150,9 +244,10 @@ territories.NL=N\u012bderlande
 territories.BA=Bosnija un Hercegovina
 territories.NI=Nikaragva
 territories.NG=Nig\u0113rija
-territories.NF=Norfolka
+territories.NF=Norfolkas sala
 territories.AZ=Azerbaid\u017e\u0101na
 territories.NE=Nig\u0113ra
+territories.AX=\u0100landi
 territories.NC=Jaunkaledonija
 territories.AW=Aruba
 territories.ZM=Zambija
@@ -162,28 +257,33 @@ territories.AT=Austrija
 territories.AS=Amerik\u0101\u0146u Samoa
 territories.AR=Argent\u012bna
 territories.AQ=Antarktika
+territories.009=Oke\u0101nija
 territories.MZ=Mozambika
 territories.AO=Angola
 territories.MY=Malaizija
-territories.AN=Anti\u013cas
+territories.AN=N\u012bderlandes Anti\u013cas
 territories.MX=Meksika
 territories.AM=Arm\u0113nija
+territories.005=Dienvidamerika
 territories.MW=Mal\u0101vija
 territories.AL=Alb\u0101nija
 territories.MV=Mald\u012bvija
+territories.003=Zieme\u013camerika
 territories.ZA=Dienvid\u0101frika
 territories.MU=Maur\u012bcija
+territories.002=\u0100frika
 territories.MT=Malta
 territories.AI=Angilja
+territories.001=pasaule
 territories.MS=Montserrata
 territories.MR=Maurit\u0101nija
 territories.AG=Antigva un Barbuda
-territories.AF=Afganist\u0101na
 territories.MQ=Martinika
+territories.AF=Afganist\u0101na
+territories.MP=Zieme\u013cmarianas salas
 territories.AE=Apvienotie Ar\u0101bu Emir\u0101ti
-territories.MP=Zieme\u013cu Marianas
+territories.MO=Makao
 territories.AD=Andora
-territories.MO=Makao, \u0136\u012bnas \u012bpa\u0161\u0101s p\u0101rvaldes apgabals
 territories.MN=Mongolija
 territories.MM=Mjanma
 territories.ML=Mali
@@ -191,16 +291,21 @@ territories.MK=Ma\u0137edonija
 territories.YT=Majota
 territories.MH=M\u0101r\u0161ala salas
 territories.MG=Madagaskara
+territories.ME=Melnkalne
 territories.MD=Moldova
 territories.MC=Monako
 territories.MA=Maroka
 territories.YE=Jemena
 territories.LY=L\u012bbija
 territories.LV=Latvija
+territories.155=Rietumeiropa
 territories.LU=Luksemburga
+territories.154=Eiropas zieme\u013ci
 territories.LT=Lietuva
 territories.LS=Lesoto
 territories.LR=Lib\u0113rija
+territories.151=Austrumeiropa
+territories.150=Eiropa
 territories.LK=\u0160rilanka
 territories.LI=Lihten\u0161teina
 territories.LC=Sentl\u016bsija
@@ -209,6 +314,9 @@ territories.LA=Laosa
 territories.KZ=Kazahst\u0101na
 territories.KY=Kaimanu salas
 territories.KW=Kuveita
+territories.145=Rietum\u0101zija
+territories.143=Centr\u0101l\u0101zija
+territories.142=\u0100zija
 territories.KR=Dienvidkoreja
 territories.KP=Zieme\u013ckoreja
 territories.KN=Sentkitsa un Nevisa
@@ -223,6 +331,7 @@ territories.JP=Jap\u0101na
 territories.JO=Jord\u0101nija
 territories.JM=Jamaika
 territories.VU=Vanuatu
+territories.JE=D\u017e\u0113rsija
 territories.VN=Vjetnama
 territories.VI=Amerik\u0101\u0146u Vird\u017e\u012bnu salas
 territories.VG=Britu Vird\u017e\u012bnu salas
@@ -230,15 +339,16 @@ territories.VE=Venecu\u0113la
 territories.VC=Sentvinsenta un Grenad\u012bnas
 territories.VA=Vatik\u0101ns
 territories.IT=It\u0101lija
-territories.IS=Islande
+territories.IS=\u012aslande
 territories.IR=Ir\u0101na
 territories.IQ=Ir\u0101ka
 territories.UZ=Uzbekist\u0101na
 territories.IO=Britu Indijas oke\u0101na teritorija
 territories.UY=Urugvaja
 territories.IN=Indija
+territories.IM=Menas sala
 territories.IL=Izra\u0113la
-territories.US=United States
+territories.US=Amerikas Savienot\u0101s Valstis
 territories.IE=\u012arija
 territories.ID=Indon\u0113zija
 territories.UM=ASV maz\u0101s aizj\u016bras teritorijas
@@ -252,39 +362,508 @@ territories.HN=Hondurasa
 territories.HM=H\u0113rda un Makdonalda salas
 territories.TW=Taiv\u0101na
 territories.TV=Tuvalu
-territories.HK=Honkonga, \u0136\u012bnas \u012bpa\u0161\u0101s p\u0101rvaldes apgabals
+territories.HK=Honkonga
 territories.TT=Trinid\u0101da un Tob\u0101go
 territories.TR=Turcija
 territories.TO=Tonga
 territories.TN=Tunisija
 territories.TM=Turkmenist\u0101na
-languages.ja=jap\u0101\u0146u
-languages.en=ang\u013cu
+languages.gwi=ku\u010dinu
+languages.akk=akadie\u0161u
+languages.eka=ekad\u017euku
+languages.ijo=id\u017ebu
+languages.xh=khosu
+languages.sux=\u0161umeru
+languages.sus=susu
+languages.mis=da\u017e\u0101das valodas
+languages.loz=lozu
+languages.tog=tongu valoda (Njas\u0101)
+languages.pon=ponapie\u0161u
+languages.min=minangkabavu
+languages.suk=sukumu
+languages.wo=volofu
+languages.lol=mongu
+languages.kut=kutenaju
+languages.mic=mikmaku
+languages.wa=valo\u0146u
+languages.kum=kumiku
+languages.zap=sapoteku
+languages.ain=ainu
+languages.cus=ku\u0161\u012btu valoda
+languages.jbo=lo\u017ebans
+languages.doi=dogru
+languages.vo=volapiks
+languages.oto=otomu valodas
+languages.vi=vjetnamie\u0161u
+languages.vai=vaju
+languages.rar=rarotongie\u0161u
+languages.ve=vendu
+languages.rap=rapanuju
+languages.raj=rad\u017east\u0101\u0146u
+languages.ota=turku osma\u0146u
+languages.nzi=nzemu
+languages.nap=neapolie\u0161u
+languages.uz=uzbeku
+languages.uga=ugaritie\u0161u
+languages.tmh=tuaregu
+languages.nai=Zieme\u013camerikas indi\u0101\u0146u valoda
+languages.nah=navatlu
+languages.ur=urdu
+languages.fat=fantu
+languages.uk=ukrai\u0146u
+languages.egy=\u0113\u0123iptie\u0161u
+languages.zxx=lingvistiska satura nav
+languages.ug=uighuru
+languages.fan=fangu
+languages.ssa=N\u012blas-Sah\u0101ras valodas
+languages.mga=vidus\u012bru
+languages.bat=baltu valoda
+languages.nyo=\u0146oru
+languages.bas=basu
+languages.nyn=\u0146ankolu
+languages.nym=\u0146amvezu
+languages.gsw=\u0160veices v\u0101cu
+languages.hmn=hmongu
+languages.ban=balie\u0161u
+languages.osa=va\u017e\u0101\u017eu
+languages.bal=belud\u017eu
+languages.ty=taitie\u0161u
+languages.bai=bamileku valodas
+languages.tw=\u010dv\u012b
+languages.srr=ser\u0113ru
+languages.tli=tlinkitu
+languages.tlh=klingonie\u0161u
+languages.tt=tat\u0101ru
+languages.ts=congu
+languages.srn=sranantongo
+languages.bad=bandu
 languages.tr=turku
-languages.ko=korejie\u0161u
+languages.to=tongu
+languages.tn=cvanu
+languages.tl=tagalogu
+languages.tk=turkm\u0113\u0146u
+languages.ti=tigrinja
+languages.th=taju
+languages.kru=kuruhu
+languages.tg=tad\u017eiku
+languages.byn=bilinu
+languages.te=telugu
+languages.kro=kr\u016b
+languages.csb=ka\u0161ubu
+languages.ta=tamilu
+languages.krl=kar\u0113\u013cu
+languages.tkl=tokelavie\u0161u
+languages.efi=efiku
+languages.sw=svahilu
+languages.sv=zviedru
+languages.su=sundanie\u0161u
+languages.krc=kara\u010daju un balk\u0101ru
+languages.st=sesoto
+languages.ss=svatu
+languages.sr=serbu
+languages.sq=alb\u0101\u0146u
+languages.men=mendu
+languages.crp=kreolisk\u0101 vai pid\u017einvaloda
+languages.so=som\u0101\u013cu
+languages.afh=afrihili
+languages.sn=\u0161onu
+languages.sm=samo\u0101\u0146u
+languages.sl=slov\u0113\u0146u
+languages.grc=sengrie\u0137u
+languages.sk=slov\u0101ku
+languages.grb=grebo
+languages.si=sinhal\u012bzu
+languages.sh=serbu-horv\u0101tu
+languages.crh=Krimas tat\u0101ru
+languages.afa=afroazi\u0101tu valodas
+languages.sg=sangu
+languages.se=zieme\u013cs\u0101mu
+languages.sd=sind\u017eu
+languages.udm=udmurtu
+languages.sc=sard\u012bnie\u0161u
+languages.sa=sanskrita
+languages.rw=ki\u0146aruanda
+languages.nwc=klasisk\u0101 nevaru
+languages.ru=krievu
+languages.mdr=mandaru
+languages.ro=rum\u0101\u0146u
+languages.rn=rundu
+languages.rm=retorom\u0101\u0146u
+languages.fr_CH=\u0160veices fran\u010du
+languages.mdf=mok\u0161u
+languages.tiv=tivu
+languages.fr_CA=Kan\u0101das fran\u010du
+languages.ady=adigu
+languages.zun=zunju
+languages.kpe=kpellu
+languages.qu=ke\u010dvu
+languages.tig=tigru
+languages.son=songaju
+languages.cpp=portug\u0101lisk\u0101s kreolisk\u0101s vai pid\u017einvaloda
+languages.rup=arom\u016bnu
+languages.sog=sogdie\u0161u
+languages.ada=adangmu
+languages.kos=kosr\u0101jie\u0161u
+languages.hit=hetu
+languages.cpf=francisk\u0101s kreolisk\u0101s valodas un pid\u017einvalodas
+languages.cpe=anglisk\u0101 kreolisk\u0101 vai pid\u017einvaloda
+languages.him=hima\u010dali
+languages.kok=konkanu
+languages.hil=hiligainonu
+languages.got=gotu
+languages.gor=gorontalu
+languages.gon=gondu
+languages.din=dinku
+languages.nub=n\u016bbie\u0161u valodas
+languages.pt=portug\u0101\u013cu
+languages.ps=pu\u0161tu
+languages.fur=fri\u016blu
+languages.phn=feni\u0137ie\u0161u
+languages.de_CH=\u0160veices aug\u0161v\u0101cu
+languages.goh=senaug\u0161v\u0101cu
+languages.snk=soninku
+languages.cop=koptu
+languages.yap=japie\u0161u
+languages.ach=a\u010dolu
+languages.yao=jao
+languages.phi=filip\u012bnie\u0161u valoda
+languages.pl=po\u013cu
+languages.ace=a\u010dinu
+languages.pi=p\u0101li
+languages.pt_PT=ib\u0113rie\u0161u portug\u0101\u013cu
+languages.pa=pand\u017eabu
+languages.bug=bugu
+languages.iba=ibanu
+languages.sms=skolts\u0101mu
+languages.bua=burjatu
+languages.mas=masaju
+languages.smn=Inari s\u0101mu
+languages.os=oset\u012bnu
+languages.map=austron\u0113zie\u0161u
+languages.or=orisie\u0161u
+languages.man=mandingu
+languages.smj=Luleo s\u0101mu
+languages.smi=s\u0101mu valodas
+languages.mak=makasaru
+languages.om=oromu
+languages.mai=maithili
+languages.oj=od\u017eibvu
+languages.mag=magahie\u0161u
+languages.mad=madurie\u0161u
+languages.sma=dienvids\u0101mu
+languages.oc=provansie\u0161u
+languages.nso=zieme\u013csotu
+languages.btk=bataku
+languages.myv=erzju
+languages.es_ES=ib\u0113rie\u0161u sp\u0101\u0146u
+languages.de_AT=Austrijas v\u0101cu
+languages.dgr=dogribu
+languages.ny=\u010di\u010deva
+languages.myn=maiju valodas
+languages.nv=navahu
+languages.kmb=kimbundu
+languages.nr=dienvidndebelu
+languages.gmh=vidusaug\u0161v\u0101cu
 languages.no=norv\u0113\u0123u
-languages.el=grie\u0137u
+languages.nn=jaunnorv\u0113\u0123u
 languages.nl=holandie\u0161u
-languages.bg=bulg\u0101ru
+languages.root=sakne
+languages.ng=ndongu
+languages.sla=sl\u0101vu
+languages.ne=nep\u0101lie\u0161u
+languages.nd=zieme\u013cndebelu
+languages.cmc=\u010damie\u0161u valodas
+languages.tet=tetumu
+languages.nb=norv\u0113\u0123u bukmols
+languages.na=nauruie\u0161u
+languages.ter=tereno
+languages.tem=temnu
+languages.my=birmie\u0161u
+languages.lez=lezg\u012bnu
+languages.mt=maltie\u0161u
+languages.frs=austrumfr\u012bzu
+languages.peo=persu
+languages.ms=malajie\u0161u
+languages.frr=zieme\u013cfr\u012bzu
+languages.mr=maratu
+languages.fro=senfran\u010du
+languages.mo=mold\u0101vu
+languages.mn=mongo\u013cu
+languages.frm=vidusfran\u010du
+languages.ml=malajalamie\u0161u
+languages.jrb=j\u016bdar\u0101bu
+languages.mk=ma\u0137edonie\u0161u
+languages.mi=maoru
+languages.mh=m\u0101r\u0161alie\u0161u
+languages.mg=malagasu
+languages.mwr=marvaru
+languages.bra=brad\u017eie\u0161u
+languages.mwl=mirandie\u0161u
+languages.den=sleivu
 languages.lv=latvie\u0161u
-languages.cs=\u010dehu
-languages.he=ivrits
-languages.it=it\u0101lie\u0161u
+languages.lu=lubakatanga
+languages.del=delav\u0113ru
 languages.lt=lietuvie\u0161u
+languages.lo=laosie\u0161u
+languages.ln=lingala
+languages.li=limburgie\u0161u
+languages.ewo=evondu
+languages.lg=gandu
+languages.lb=luksemburgie\u0161u
+languages.la=lat\u012b\u0146u
+languages.jpr=j\u016bdpersie\u0161u
+languages.vot=votu
+languages.sit=sinotibetie\u0161u valoda
+languages.ky=kirg\u012bzu
+languages.kw=kornie\u0161u
+languages.kv=komie\u0161u
+languages.ku=kurdu
+languages.sio=si\u016b valodas
+languages.ks=ka\u0161mirie\u0161u
+languages.kr=kanuru
+languages.awa=avadhu
+languages.ko=korejie\u0161u
+languages.kn=kannada
+languages.km=khmeru
+languages.kl=grenlandie\u0161u
+languages.kk=kazahu
+languages.rom=\u010dig\u0101nu
+languages.kj=kva\u0146amu
+languages.sid=sidamu
+languages.ki=kikuju
+languages.kg=kongu
+languages.non=sennorv\u0113\u0123u
+languages.ka=gruz\u012bnu
+languages.mus=kr\u012bku
+languages.roa=rom\u0101\u0146u valodas
+languages.nog=nogaju
+languages.mun=mundu valodas
+languages.mul=vair\u0101kas valodas
+languages.jv=javie\u0161u
+languages.gil=kiribatie\u0161u
+languages.znd=zand\u0113
+languages.shn=\u0161anu
+languages.fon=fonu
+languages.xal=kalmiku
+languages.aus=austr\u0101lie\u0161u valodas
+languages.kho=hotanie\u0161u
+languages.ja=jap\u0101\u0146u
+languages.khi=hojsanu valodas
+languages.pau=palavie\u0161u
+languages.chy=\u0161ejenu
+languages.tai=taju valoda
+languages.iu=inu\u012btu
+languages.pap=papjamento
+languages.it=it\u0101\u013cu
+languages.sgn=z\u012bmju valodas
+languages.is=islandie\u0161u
+languages.kha=khasu
+languages.chr=\u010diroku
+languages.pam=pampanganu
+languages.pal=pehlevi
+languages.chp=\u010dipevaianu
+languages.io=ido
+languages.cho=\u010doktavu
+languages.chn=\u010dinuku \u017eargons
+languages.chm=marie\u0161u
+languages.tyv=tuvie\u0161u
+languages.bnt=bantu
+languages.pag=pangasinanu
+languages.ik=inupiaku
+languages.chk=\u010d\u016bku
+languages.ii=Si\u010dua\u0146as ji
+languages.haw=havajie\u0161u
+languages.lam=lambu
+languages.ig=igbo
+languages.chg=d\u017eagatajs
+languages.sga=sen\u012bru
+languages.paa=papuasu valodas
+languages.ie=interlingue
+languages.id=indon\u0113zie\u0161u
+languages.lah=landu
+languages.day=dajaku
+languages.chb=\u010dib\u010du
+languages.ia=interlingva
+languages.lad=ladino
+languages.hz=hereru
+languages.hai=haidu
+languages.dar=dargu
+languages.hy=arm\u0113\u0146u
+languages.ath=atapasku valodas
+languages.hu=ung\u0101ru
+languages.ht=haitie\u0161u
+languages.dak=dakotu
+languages.hr=horv\u0101tu
+languages.ho=hirimotu
+languages.hi=hindi
+languages.dyu=di\u016blu
+languages.he=ivrits
+languages.ast=ast\u016brie\u0161u
+languages.kfo=koru
+languages.ha=hausu
+languages.wen=sorbu
+languages.gv=menie\u0161u
+languages.gu=gud\u017earatu
+languages.sem=sem\u012btu valodas
+languages.sel=selkupu
+languages.iro=irok\u0113zu valodas
+languages.gn=gvaranu
+languages.gl=galisie\u0161u
+languages.en_CA=Kan\u0101das ang\u013cu
+languages.arw=aravaku
+languages.gez=g\u0113zu
+languages.art=m\u0101ksl\u012bg\u0101s valodas
+languages.gd=skotu-\u0137eltu
+languages.ira=ir\u0101\u0146u valodas
+languages.ga=\u012bru
+languages.arp=arapahu
+languages.arn=arauk\u0101\u0146u
+languages.fy=fr\u012bzu
+languages.bla=siksiku
+languages.gem=\u0123erm\u0101\u0146u valodas
+languages.ypk=jupiku
+languages.arc=aramie\u0161u
 languages.fr=fran\u010du
-languages.zh=\u0137\u012bnie\u0161u
-languages.ru=krievu
-languages.ro=rum\u0101\u0146u
+languages.fo=faroisu
+languages.cel=\u0137eltu valodas
+languages.fj=fid\u017eie\u0161u
 languages.fi=somu
-languages.ar=ar\u0101bu
-languages.sv=zviedru
-languages.pt=portug\u0101\u013cu
-languages.pl=po\u013cu
-languages.sl=slov\u0113\u0146u
-languages.sk=slov\u0101ku
-languages.de=v\u0101cu
+languages.ff=fulu
+languages.tvl=tuvalie\u0161u
+languages.ceb=sebu\u0101\u0146u
+languages.fa=persie\u0161u
+languages.en_AU=Austr\u0101lijas ang\u013cu
+languages.zh_Hans=\u0137\u012bnie\u0161u vienk\u0101r\u0161ot\u0101
+languages.zh_Hant=\u0137\u012bnie\u0161u tradicion\u0101l\u0101
+languages.eu=basku
+languages.sco=skotu
 languages.et=igau\u0146u
-languages.hu=ung\u0101ru
+languages.scn=sic\u012blie\u0161u
 languages.es=sp\u0101\u0146u
+languages.eo=esperanto
+languages.en=ang\u013cu
+languages.el=grie\u0137u
+languages.tut=altajie\u0161u valoda
+languages.niu=niu\u0101\u0146u
+languages.tup=tupu
+languages.ee=evu
+languages.tum=tumbuku
+languages.nl_BE=fl\u0101mu
+languages.es_419=Lat\u012b\u0146amerikas sp\u0101\u0146u
+languages.mos=mosu
+languages.dz=dzongke
+languages.nic=nig\u0113rie\u0161u-kordof\u0101\u0146u valodas
+languages.lus=lu\u0161eju
+languages.fiu=somugru valoda
+languages.dv=mald\u012bvie\u0161u
+languages.nia=njasu
+languages.moh=mohauku
+languages.luo=luo
+languages.lun=lundu
+languages.apa=apa\u010du valodas
+languages.fil=tagalu
+languages.lui=luisenu
+languages.hup=hupu
+languages.bin=binu
+languages.de=v\u0101cu
+languages.lua=lubalulva
+languages.bik=bikolu
+languages.was=va\u0161o
+languages.und=nezin\u0101ma vai neder\u012bga valoda
+languages.war=varaju
 languages.da=d\u0101\u0146u
-languages.hr=horv\u0101tu
+languages.dum=vidusholandie\u0161u
+languages.wal=valamu
+languages.mno=manobu valodas
+languages.wak=vaka\u0161u
+languages.sat=santalu
+languages.cy=velsie\u0161u
+languages.sas=sasaku
+languages.kbd=kabardie\u0161u
+languages.cv=\u010duva\u0161u
+languages.cu=bazn\u012bcsl\u0101vu
+languages.mni=manip\u016bru
+languages.cs=\u010dehu
+languages.sam=Sam\u0101rijas aramie\u0161u
+languages.cr=kr\u012b
+languages.sal=sali\u0161u valodas
+languages.dua=dualu
+languages.co=korsik\u0101\u0146u
+languages.sai=Dienvidamerikas indi\u0101\u0146u valoda
+languages.mnc=mand\u017e\u016bru
+languages.sah=jakutu
+languages.kaw=k\u0101vi
+languages.inh=ingu\u0161u
+languages.gba=gbaju
+languages.sad=sandavu
+languages.ch=\u010damorru
+languages.ine=indoeiropie\u0161u valoda
+languages.bho=bhod\u017ep\u016bru
+languages.enm=vidusang\u013cu
+languages.kar=karenu
+languages.inc=indo\u0101rie\u0161u valoda
+languages.ce=\u010de\u010denu
+languages.gay=gajo
+languages.ca=katal\u0101\u0146u
+languages.umb=umbundu
+languages.syr=s\u012brie\u0161u
+languages.kam=kambu
+languages.anp=angika
+languages.tsi=cim\u0161i\u0101\u0146u
+languages.ang=senang\u013cu
+languages.kac=ka\u010dinu
+languages.cau=kauk\u0101zie\u0161u valodas
+languages.kab=kabilu
+languages.kaa=karakalpaku
+languages.bs=bosnie\u0161u
+languages.car=kar\u012bbu
+languages.br=breto\u0146u
+languages.syc=klasisk\u0101 s\u012brie\u0161u
+languages.bo=tibetie\u0161u
+languages.bn=beng\u0101\u013cu
+languages.bm=bambaru
+languages.gaa=ga
+languages.cai=Centr\u0101lamerikas indi\u0101\u0146u valodas
+languages.bi=bi\u0161lam\u0101
+languages.bh=biharu
+languages.bg=bulg\u0101ru
+languages.be=baltkrievu
+languages.pt_BR=Braz\u012blijas portug\u0101\u013cu
+languages.cad=kadu
+languages.ba=ba\u0161k\u012bru
+languages.zu=zulu
+languages.zen=zenagu
+languages.pro=senprovansie\u0161u
+languages.hsb=aug\u0161sorbu
+languages.az=azerbaid\u017e\u0101\u0146u
+languages.ay=aimaru
+languages.av=av\u0101ru
+languages.as=asamie\u0161u
+languages.dsb=lejassorbu
+languages.ar=ar\u0101bu
+languages.ilo=iloku
+languages.elx=elamie\u0161u
+languages.zh=\u0137\u012bnie\u0161u
+languages.an=aragonie\u0161u
+languages.pra=pr\u0101krita valodas
+languages.am=amharu
+languages.new=nevaru
+languages.ak=akanu
+languages.za=d\u017euanu
+languages.en_US=ang\u013cu (ASV)
+languages.af=afrik\u0101\u0146u
+languages.ae=avesta
+languages.alt=dienvidaltajie\u0161u
+languages.ab=abh\u0101zu
+languages.aa=af\u0101ru
+languages.yo=jorubu
+languages.alg=algonkinu valodas
+languages.ale=aleutu
+languages.mkh=monkhmeru valoda
+languages.yi=jidi\u0161s
+languages.dra=drav\u012bdu valodas
+languages.ber=berberu
+languages.nds=lejasv\u0101cu
+languages.bem=bembu
+languages.bej=bed\u017eu
+languages.tpi=tokpisins
index ea30eeeb92aaa256a9625aafc0af68cea4867785..0579c4e51b64d43967f7a2a7b1fd62276f5e671a 100644 (file)
@@ -7,47 +7,47 @@
 
 decimalSeparator=,
 groupingSeparator=.
-localPatternChars=GuMtkHmsSEDFwWahKzUeygAZ
+localPatternChars=GuMtkHmsSEDFwWahKzUeygAZvcL
 currenciesDisplayName.YDD=\u0408\u0435\u043c\u0435\u043d\u0441\u043a\u0438 \u0434\u0438\u0430\u043d\u0440
-currenciesDisplayName.TWD=\u0422\u0430\u0458\u0432\u0430\u043d\u0441\u043a\u0438 \u043d\u043e\u0432 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.KES=\u041a\u0435\u043d\u0438\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
-currenciesDisplayName.BYB=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u0440\u0443\u0431\u0459\u0430 (1994-1999)
+currenciesDisplayName.TWD=\u0422\u0430\u0458\u0432\u0430\u043d\u0441\u043a\u0438 \u043d\u043e\u0432 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.LKR=\u0428\u0440\u0438\u043b\u0430\u043d\u043a\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
-currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.BYB=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u0440\u0443\u0431\u0459\u0430 (1994-1999)
 currenciesDisplayName.TJS=\u0422\u0430\u045f\u0438\u043a\u0438\u0441\u0442\u0430\u043d\u0442\u0441\u043a\u0438 \u0441\u043e\u043c\u043e\u043d\u0438
-currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
+currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.TJR=\u0442\u0430\u045f\u0438\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
-currenciesDisplayName.AFN=\u0410\u0432\u0433\u0430\u043d\u0438
+currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
 currenciesDisplayName.GRD=\u0413\u0440\u0447\u043a\u0430 \u0434\u0440\u0430\u0445\u043c\u0430
+currenciesDisplayName.AFN=\u0410\u0432\u0433\u0430\u043d\u0438
 currenciesDisplayName.IEP=\u0418\u0440\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
 currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441
-currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.ARP=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441 (1983-1985)
+currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.GEL=\u0413\u0440\u0443\u0437\u0438\u0441\u043a\u0438 \u043b\u0430\u0440\u0438
 currenciesDisplayName.AFA=\u0410\u0432\u0433\u0430\u043d\u0438 (1927-2002)
 currenciesDisplayName.CRC=\u041a\u043e\u0441\u0442\u0430\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u041a\u043e\u043b\u043e\u043d
 currenciesDisplayName.FKP=\u0424\u0430\u043a\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
-currenciesDisplayName.HKD=\u0425\u043e\u043d\u0433\u043a\u043e\u0448\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.MDL=\u041c\u043e\u043b\u0434\u0430\u0432\u0441\u043a\u0438 \u043b\u0435\u0443
+currenciesDisplayName.HKD=\u0425\u043e\u043d\u0433\u043a\u043e\u0448\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.IQD=\u0418\u0440\u0430\u0447\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.SCR=\u0421\u0435\u0458\u0448\u0435\u043b\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
 currenciesDisplayName.VUV=\u0412\u0430\u043d\u0430\u0442\u0441\u043a\u0438 \u0432\u0430\u0442\u0443
 currenciesDisplayName.KPW=\u0421\u0435\u0432\u0435\u0440\u043d\u043e \u043a\u043e\u0440\u0435\u0458\u0441\u043a\u0438 \u0432\u043e\u043d
-currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0438\u0458\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
 currenciesDisplayName.SOS=\u0421\u043e\u043c\u0430\u043b\u0438\u0458\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
+currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0438\u0458\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
 currenciesDisplayName.AED=\u0414\u0438\u0440\u0445\u0430\u043c
-currenciesDisplayName.BWP=\u0411\u043e\u0446\u0432\u0430\u043d\u0442\u0441\u043a\u0430 \u041f\u0443\u043b\u0430
 currenciesDisplayName.LVL=\u041b\u0430\u0442\u0432\u0438\u0458\u0441\u043a\u0438 \u043b\u0430\u0442
+currenciesDisplayName.BWP=\u0411\u043e\u0446\u0432\u0430\u043d\u0442\u0441\u043a\u0430 \u041f\u0443\u043b\u0430
 currenciesDisplayName.RUR=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430 (1991-1998)
-currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0441\u043a\u0430 \u041f\u0435\u0437\u0435\u0442\u0430
-currenciesDisplayName.FJD=\u0424\u0438\u045f\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.MOP=\u041c\u0430\u043a\u0430\u043e \u043f\u0430\u0442\u0430\u043a\u0430
+currenciesDisplayName.FJD=\u0424\u0438\u045f\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0441\u043a\u0430 \u041f\u0435\u0437\u0435\u0442\u0430
 currenciesDisplayName.RUB=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
 currenciesDisplayName.NIC=\u041d\u0438\u043a\u0430\u0440\u0430\u0433\u0432\u0430\u043d\u0441\u043a\u0430 \u043a\u043e\u0440\u0434\u043e\u0431\u0430
-currenciesDisplayName.SBD=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.UZS=\u0423\u0417\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0421\u0443\u043c
-currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e\u0441
+currenciesDisplayName.SBD=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.THB=\u0422\u0430\u0438 \u0431\u0430\u0442
+currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e\u0441
 currenciesDisplayName.LUF=\u041b\u0443\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0448\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.FIM=\u0424\u0438\u043d\u0441\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
 currenciesDisplayName.SZL=\u0421\u0432\u0430\u0437\u0438\u043b\u0435\u043d\u0434\u0441\u043a\u0438 \u043b\u0438\u043b\u0430\u0433\u0435\u043d
@@ -55,35 +55,35 @@ currenciesDisplayName.MNT=\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u0441\u043a
 currenciesDisplayName.SAR=\u0421\u0430\u0443\u0434\u0438\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
 currenciesDisplayName.UAH=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0430 \u0445\u0440\u0438\u0432\u043d\u0438\u0458\u0430
 currenciesDisplayName.HUF=\u0423\u043d\u0433\u0430\u0440\u0441\u043a\u0430 \u0444\u043e\u0440\u0438\u043d\u0442\u0430
-currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441
 currenciesDisplayName.QAR=\u041a\u0432\u0430\u0442\u0430\u0440\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
+currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441
 currenciesDisplayName.LTT=\u041b\u0438\u0442\u0432\u0430\u043d\u0438\u0441\u043a\u0438 \u043b\u0438\u0442\u0430\u0437
 currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.GBP=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430 \u0424\u0443\u043d\u0442\u0430
-currenciesDisplayName.BIF=\u0411\u0443\u0440\u0438\u043d\u0434\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
-currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
 currenciesDisplayName.ZRZ=\u0417\u0438\u0440\u0441\u043a\u043e \u0437\u0430\u0438\u0440\u0435
-currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u041a\u0432\u0430\u043d\u0437\u0430 (1990-2000)
+currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
+currenciesDisplayName.BIF=\u0411\u0443\u0440\u0438\u043d\u0434\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
 currenciesDisplayName.LTL=\u041b\u0438\u0442\u0432\u0430\u043d\u0438\u0441\u043a\u0430 \u043b\u0438\u0442\u0430
-currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u043a\u0441\u0442\u0430\u043d\u0442\u0441\u043a\u0430 \u0442\u0435\u043d\u0433\u0430
-currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u0441\u043a\u0438 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u041a\u0432\u0430\u043d\u0437\u0430 (1990-2000)
 currenciesDisplayName.UYP=\u0423\u0440\u0443\u0433\u0432\u0430\u0458\u0441\u043a\u043e \u043f\u0435\u0441\u043e (1975-1993)
+currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u0441\u043a\u0438 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u043a\u0441\u0442\u0430\u043d\u0442\u0441\u043a\u0430 \u0442\u0435\u043d\u0433\u0430
 currenciesDisplayName.AOK=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u041a\u0432\u0430\u043d\u0437\u0430 (1977-1990)
 currenciesDisplayName.PGK=\u041f\u0430\u043f\u0443\u0430 \u043d\u043e\u0432\u043e\u0433\u0432\u0438\u043d\u0435\u0458\u0441\u043a\u0438\u0430 \u043a\u0438\u043d\u0430
 currenciesDisplayName.SYP=\u0421\u0438\u0440\u0438\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
-currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.OMR=\u041e\u043c\u0430\u043d\u0441\u043a\u0438 \u0420\u0438\u0430\u043b
-currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0441\u043a\u0430 \u043d\u0430\u0438\u0440\u0430
+currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.ZRN=\u0417\u0430\u0438\u0440\u0441\u043a\u043e \u043d\u043e\u0432\u043e\u0437\u0430\u0438\u0440\u0435
+currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0441\u043a\u0430 \u043d\u0430\u0438\u0440\u0430
 currenciesDisplayName.AOA=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u041a\u0432\u0430\u043d\u0437\u0430
 currenciesDisplayName.MAF=\u041c\u0430\u0440\u043a\u043e\u043d\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.GNF=\u0413\u0432\u0438\u043d\u0435\u0458\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.HTG=\u0425\u0430\u0438\u0442\u0441\u043a\u0438 \u0433\u0443\u0440\u0434
 currenciesDisplayName.MAD=\u041c\u0430\u0440\u043e\u043a\u0430\u043d\u0441\u043a\u0438 \u0414\u0438\u0440\u0445\u0430\u043c
+currenciesDisplayName.HTG=\u0425\u0430\u0438\u0442\u0441\u043a\u0438 \u0433\u0443\u0440\u0434
 currenciesDisplayName.MYR=\u041c\u0430\u043b\u0430\u0437\u0438\u0441\u043a\u0438 \u0440\u0438\u043d\u0433\u0438\u0442
 currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u043a\u043e \u043b\u043e\u0442\u0438
-currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0430\u0438\u043d\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440
 currenciesDisplayName.SLL=\u0421\u0438\u0435\u0440\u0430\u043b\u0435\u043e\u043d\u0441\u043a\u043e \u043b\u0435\u043e\u043d\u0435
+currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0430\u0438\u043d\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440
 currenciesDisplayName.TRL=\u0422\u0443\u0440\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
 currenciesDisplayName.KMF=\u041a\u043e\u043c\u043e\u0440\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.CZK=\u0427\u0435\u0448\u043a\u0430 \u043a\u043e\u0440\u043e\u043d\u0430
@@ -93,14 +93,14 @@ currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438 \u041
 currenciesDisplayName.BGL=\u0411\u0443\u0433\u0430\u0440\u0441\u043a\u0438 \u0446\u0432\u0440\u0441\u0442 \u043b\u0435\u0432
 currenciesDisplayName.VEB=\u0412\u0435\u043d\u0435\u0446\u0443\u0435\u043b\u0441\u043a\u0438 \u0431\u043e\u043b\u0438\u0432\u0430\u0440
 currenciesDisplayName.MLF=\u041c\u0430\u043b\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.ILS=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0438 \u043d\u043e\u0432 \u0448\u0435\u043a\u0435\u043b
 currenciesDisplayName.MXP=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0441\u0440\u0435\u0431\u0440\u0435\u043d \u043f\u0435\u0437\u043e\u0441 (1861-1992)
+currenciesDisplayName.ILS=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0438 \u043d\u043e\u0432 \u0448\u0435\u043a\u0435\u043b
 currenciesDisplayName.PES=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438 \u0441\u043e\u043b
-currenciesDisplayName.GYD=\u0413\u0432\u0438\u0458\u0430\u043d\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
 currenciesDisplayName.MXN=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e\u0441
+currenciesDisplayName.GYD=\u0413\u0432\u0438\u0458\u0430\u043d\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
 currenciesDisplayName.ILP=\u0418\u0437\u0440\u0435\u043b\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
-currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0447\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
 currenciesDisplayName.CYP=\u041a\u0438\u043f\u0430\u0440\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
+currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0447\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
 currenciesDisplayName.PEN=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438 \u043d\u043e\u0432 \u0441\u043e\u043b
 currenciesDisplayName.LRD=\u041b\u0438\u0431\u0435\u0440\u0438\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.AMD=\u0415\u0440\u043c\u0435\u043d\u0438\u0441\u043a\u0438 \u0414\u0440\u0430\u043c
@@ -112,17 +112,17 @@ currenciesDisplayName.MKD=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a
 currenciesDisplayName.ALL=\u0410\u043b\u0431\u0430\u043d\u0441\u043a\u0438 \u041b\u0435\u043a
 currenciesDisplayName.TPE=\u0422\u0438\u043c\u043e\u0440\u0441\u043a\u0438 \u0435\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.DEM=\u0413\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0430 \u041c\u0430\u0440\u043a\u0430
-currenciesDisplayName.KWD=\u041a\u0443\u0432\u0430\u0458\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.XCD=\u0418\u0441\u0442\u043e\u0447\u043d\u043e \u043a\u0430\u0440\u0438\u0431\u0438\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.KWD=\u041a\u0443\u0432\u0430\u0458\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.NPR=\u041d\u0435\u043f\u0430\u043b\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
 currenciesDisplayName.GWP=\u0413\u0432\u0438\u043d\u0435\u0458\u0441\u043a\u0438 \u0411\u0438\u0441\u0430\u0443 \u043f\u0435\u0437\u043e\u0441
 currenciesDisplayName.YUN=\u0408\u0443\u0433\u043e\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0431\u0438\u043b\u0435\u043d \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.SVC=\u0415\u043b\u0441\u0430\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u0438 \u043a\u043e\u043b\u043e\u043d
-currenciesDisplayName.BEL=\u0411\u0435\u043b\u0433\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a (\u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0441\u043a\u0438)
 currenciesDisplayName.SIT=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438 \u0442\u043e\u043b\u0430\u0440
+currenciesDisplayName.BEL=\u0411\u0435\u043b\u0433\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a (\u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0441\u043a\u0438)
 currenciesDisplayName.JPY=\u0408\u0430\u043f\u043e\u043d\u0441\u043a\u0438 \u0458\u0435\u043d
-currenciesDisplayName.BEF=\u0411\u0435\u043b\u0433\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
 currenciesDisplayName.YUD=\u0408\u0443\u0433\u043e\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.BEF=\u0411\u0435\u043b\u0433\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
 currenciesDisplayName.BEC=\u0411\u0435\u043b\u0433\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0431\u0438\u043b\u0435\u043d)
 currenciesDisplayName.SUR=\u0421\u043e\u0432\u0435\u0442\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
 currenciesDisplayName.ROL=\u0420\u043e\u043c\u0430\u043d\u0441\u043a\u0430 \u043b\u0435\u0430
@@ -140,46 +140,46 @@ currenciesDisplayName.LBP=\u041b\u0438\u0431\u0438\u0441\u043a\u0430 \u0444\u044
 currenciesDisplayName.UGS=\u0423\u0433\u0430\u043d\u0434\u0438\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433 (1966-1987)
 currenciesDisplayName.WST=\u0421\u0430\u043c\u043e\u0430 \u0442\u0430\u043b\u0430
 currenciesDisplayName.KHR=\u041a\u0430\u043c\u0431\u043e\u045f\u0438\u0441\u043a\u0438 \u0440\u0435\u043b
-currenciesDisplayName.DOP=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441
 currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
-currenciesDisplayName.MTP=\u041c\u0430\u043b\u0442\u0438\u0441\u043a\u0430 \u0444\u0438\u043d\u0442\u0430
+currenciesDisplayName.DOP=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441
 currenciesDisplayName.USS=\u0421\u0410\u0414 \u0434\u043e\u043b\u0430\u0440 (Same day)
-currenciesDisplayName.CUP=\u041a\u0443\u0431\u0430\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e\u0441
-currenciesDisplayName.MTL=\u041c\u0430\u043b\u0442\u0438\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.MTP=\u041c\u0430\u043b\u0442\u0438\u0441\u043a\u0430 \u0444\u0438\u043d\u0442\u0430
 currenciesDisplayName.TMM=\u0422\u0443\u0440\u043c\u0435\u043d\u0442\u0438\u0441\u0442\u0430\u043d\u0442\u0441\u043a\u0438 \u043c\u0430\u0442\u0430\u0442
+currenciesDisplayName.MTL=\u041c\u0430\u043b\u0442\u0438\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.CUP=\u041a\u0443\u0431\u0430\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e\u0441
 currenciesDisplayName.USN=\u0421\u0410\u0414 \u0434\u043e\u043b\u0430\u0440 (Next day)
 currenciesDisplayName.SGD=\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440\u0441\u043a\u0438 \u0434\u043e\u0430\u043b\u0440
 currenciesDisplayName.NZD=\u041d\u043e\u0432\u043e\u0437\u0435\u043b\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.USD=\u0421\u0410\u0414 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.HNL=\u0425\u043e\u043d\u0434\u0443\u0440\u0441\u043a\u0430 \u043b\u0435\u043c\u043f\u0438\u0440\u0430
-currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u0430 \u0431\u0430\u043b\u0431\u043e\u0430
 currenciesDisplayName.ITL=\u0418\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u043a\u0441\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u0430 \u0431\u0430\u043b\u0431\u043e\u0430
 currenciesDisplayName.GTQ=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0441\u043a\u0438 \u043a\u0432\u0435\u0442\u0446\u0430\u043b
-currenciesDisplayName.NAD=\u041d\u0430\u043c\u0438\u0431\u0438\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u043a\u0438 \u043a\u0438\u043f
-currenciesDisplayName.GHC=\u0413\u0430\u043d\u0430\u0458\u0441\u043a\u0438 \u0421\u0435\u0434\u0438
 currenciesDisplayName.AUD=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
+currenciesDisplayName.GHC=\u0413\u0430\u043d\u0430\u0458\u0441\u043a\u0438 \u0421\u0435\u0434\u0438
+currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u043a\u0438 \u043a\u0438\u043f
+currenciesDisplayName.NAD=\u041d\u0430\u043c\u0438\u0431\u0438\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.KGS=\u041a\u0438\u0440\u0433\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0441\u043e\u043c
-currenciesDisplayName.CHF=\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
 currenciesDisplayName.BBD=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
+currenciesDisplayName.CHF=\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
 currenciesDisplayName.PYG=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0458\u0441\u043a\u0430 \u0433\u0443\u0430\u0440\u0430\u043d\u0430
 currenciesDisplayName.PLZ=\u041f\u043e\u043b\u0441\u043a\u0430 \u0437\u043b\u043e\u0442\u0430 (1950-1995)
 currenciesDisplayName.YER=\u0408\u0435\u043c\u0435\u043d\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
 currenciesDisplayName.ATS=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0441\u043a\u0438 \u0428\u0438\u043b\u0438\u043d\u0433
 currenciesDisplayName.ETB=\u0415\u0442\u0438\u043e\u043f\u0438\u0441\u043a\u0438 \u0411\u0438\u0440
 currenciesDisplayName.BND=\u0411\u0440\u0443\u043d\u0435\u0458\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.PLN=\u041f\u043e\u043b\u0441\u043a\u0430 \u0437\u043b\u043e\u0442\u0430
-currenciesDisplayName.JMD=\u0408\u0430\u043c\u0430\u0458\u043a\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.EGP=\u0415\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0430 \u0424\u0443\u043d\u0442\u0430
+currenciesDisplayName.JMD=\u0408\u0430\u043c\u0430\u0458\u043a\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.PLN=\u041f\u043e\u043b\u0441\u043a\u0430 \u0437\u043b\u043e\u0442\u0430
 currenciesDisplayName.DZD=\u0410\u043b\u0433\u0435\u0440\u0438\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440
 currenciesDisplayName.ISK=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.SRG=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u043a\u0438 \u0433\u0438\u043b\u0434\u0435\u0440
 currenciesDisplayName.LYD=\u041b\u0438\u0431\u0438\u0458\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.BZD=\u0411\u0435\u043b\u0438\u0437\u0438\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
 currenciesDisplayName.BAM=\u0411\u043e\u0441\u0430\u043d\u0441\u043a\u043e-\u0425\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0431\u0438\u043b\u043d\u0430 \u043c\u0430\u0440\u043a\u0430
+currenciesDisplayName.BZD=\u0411\u0435\u043b\u0438\u0437\u0438\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
 currenciesDisplayName.ESP=\u0428\u043f\u0430\u043d\u0441\u043a\u0430 \u041f\u0435\u0437\u0435\u0442\u0430
-currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0438\u043b\u0434\u0435\u0440
 currenciesDisplayName.KRW=\u0408\u0443\u0436\u043d\u043e \u043a\u043e\u0440\u0435\u0458\u0441\u043a\u0438 \u0432\u043e\u043d
+currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0438\u043b\u0434\u0435\u0440
 currenciesDisplayName.BAD=\u0411\u043e\u0441\u0430\u043d\u0441\u043a\u043e-\u0425\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440
 currenciesDisplayName.ZWD=\u0417\u0438\u043c\u0431\u0430\u0431\u0432\u0438\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.SEK=\u0428\u0432\u0435\u0434\u0441\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
@@ -188,26 +188,26 @@ currenciesDisplayName.BYR=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0430
 currenciesDisplayName.IRR=\u0418\u0440\u0430\u043d\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
 currenciesDisplayName.PKR=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
 currenciesDisplayName.BMD=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
-currenciesSymbol.BGL=lev
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
 currenciesSymbol.ALL=lek
@@ -221,35 +221,34 @@ currenciesSymbol.SZL=E
 currenciesSymbol.SAR=SRl
 currenciesSymbol.FJD=F$
 currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
 currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
-currenciesSymbol.YER=YRl
 currenciesSymbol.HUF=Ft
+currenciesSymbol.YER=YRl
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
 currenciesSymbol.MYR=RM
 currenciesSymbol.SRG=Sf
-currenciesSymbol.BIF=Fbu
 currenciesSymbol.GTQ=Q
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
+currenciesSymbol.BIF=Fbu
 currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.KMF=CF
 currenciesSymbol.SEK=SKr
@@ -261,8 +260,8 @@ currenciesSymbol.CHF=SwF
 currenciesSymbol.ETB=Br
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.TWD=NT$
 currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.BZD=BZ$
@@ -270,16 +269,20 @@ currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=\u0458\u0430\u043d.®\u0444\u0435\u0432.®\u043c\u0430\u0440.®\u0430\u043f\u0440.®\u043c\u0430\u0458.®\u0458\u0443\u043d.®\u0458\u0443\u043b.®\u0430\u0432\u0433.®\u0441\u0435\u043f\u0442.®\u043e\u043a\u0442.®\u043d\u043e\u0435\u043c.®\u0434\u0435\u043a\u0435\u043c.®®
-months=\u0458\u0430\u043d\u0443\u0430\u0440\u0438®\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438®\u043c\u0430\u0440\u0442®\u0430\u043f\u0440\u0438\u043b®\u043c\u0430\u0458®\u0458\u0443\u043d\u0438®\u0458\u0443\u043b\u0438®\u0430\u0432\u0433\u0443\u0441\u0442®\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438®\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438®\u043d\u043e\u0435\u043c\u0432\u0440\u0438®\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438®®
-shortWeekdays=®\u043d\u0435\u0434.®\u043f\u043e\u043d.®\u0432\u0442.®\u0441\u0440\u0435.®\u0447\u0435\u0442.®\u043f\u0435\u0442.®\u0441\u0430\u0431.®
-weekdays=®\u043d\u0435\u0434\u0435\u043b\u0430®\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a®\u0432\u0442\u043e\u0440\u043d\u0438\u043a®\u0441\u0440\u0435\u0434\u0430®\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a®\u043f\u0435\u0442\u043e\u043a®\u0441\u0430\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u043f\u0440.\u043d.\u0435.®\u0430\u0435.®
+shortMonths=\u0458\u0430\u043d.\u00ae\u0444\u0435\u0432.\u00ae\u043c\u0430\u0440.\u00ae\u0430\u043f\u0440.\u00ae\u043c\u0430\u0458\u00ae\u0458\u0443\u043d.\u00ae\u0458\u0443\u043b.\u00ae\u0430\u0432\u0433.\u00ae\u0441\u0435\u043f\u0442.\u00ae\u043e\u043a\u0442.\u00ae\u043d\u043e\u0435\u043c.\u00ae\u0434\u0435\u043a\u0435\u043c.\u00ae\u00ae
+months=\u0458\u0430\u043d\u0443\u0430\u0440\u0438\u00ae\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440\u0438\u043b\u00ae\u043c\u0430\u0458\u00ae\u0458\u0443\u043d\u0438\u00ae\u0458\u0443\u043b\u0438\u00ae\u0430\u0432\u0433\u0443\u0441\u0442\u00ae\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438\u00ae\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438\u00ae\u043d\u043e\u0435\u043c\u0432\u0440\u0438\u00ae\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438\u00ae\u00ae
+shortWeekdays=\u00ae\u043d\u0435\u0434.\u00ae\u043f\u043e\u043d.\u00ae\u0432\u0442.\u00ae\u0441\u0440\u0435.\u00ae\u0447\u0435\u0442.\u00ae\u043f\u0435\u0442.\u00ae\u0441\u0430\u0431.\u00ae
+weekdays=\u00ae\u043d\u0435\u0434\u0435\u043b\u0430\u00ae\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a\u00ae\u0432\u0442\u043e\u0440\u043d\u0438\u043a\u00ae\u0441\u0440\u0435\u0434\u0430\u00ae\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a\u00ae\u043f\u0435\u0442\u043e\u043a\u00ae\u0441\u0430\u0431\u043e\u0442\u0430\u00ae
+eras=\u043f\u0440.\u043d.\u0435.\u00ae\u0430\u0435.\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=dd.M.yy
 mediumDateFormat=dd.M.yyyy
 longDateFormat=dd MMMM yyyy
 fullDateFormat=EEEE, dd MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
 territories.TL=\u0418\u0441\u0442\u043e\u0447\u0435\u043d \u0422\u0438\u043c\u043e\u0440
 territories.TK=\u0422\u043e\u043a\u0435\u043b\u0430\u0443
 territories.TJ=\u0422\u0430\u045f\u0438\u043a\u0438\u0441\u0442\u0430\u043d
@@ -439,12 +442,12 @@ territories.AI=\u0410\u043d\u0433\u0432\u0438\u043b\u0430
 territories.MS=\u041c\u043e\u043d\u0441\u0435\u0440\u0430\u0442
 territories.MR=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0438\u0458\u0430
 territories.AG=\u0410\u043d\u0442\u0438\u0433\u0443\u0430 \u0438 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
-territories.AF=\u0410\u0432\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d
 territories.MQ=\u041c\u0430\u0440\u0442\u0438\u043d\u0438\u043a
-territories.AE=\u041e\u0431\u0435\u0434\u0438\u043d\u0435\u0442\u0438 \u0410\u0440\u0430\u043f\u0441\u043a\u0438 \u0415\u043c\u0438\u0440\u0430\u0442\u0438
+territories.AF=\u0410\u0432\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d
 territories.MP=\u0421\u0435\u0432\u0435\u0440\u043d\u0438 \u041c\u0430\u0440\u0438\u0458\u0430\u043d\u0438\u043d\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
-territories.AD=\u0410\u043d\u0434\u043e\u0440\u0430
+territories.AE=\u041e\u0431\u0435\u0434\u0438\u043d\u0435\u0442\u0438 \u0410\u0440\u0430\u043f\u0441\u043a\u0438 \u0415\u043c\u0438\u0440\u0430\u0442\u0438
 territories.MO=\u041c\u0430\u043a\u0430\u043e \u0421.\u0410.\u0420 \u041a\u0438\u043d\u0430
+territories.AD=\u0410\u043d\u0434\u043e\u0440\u0430
 territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u0458\u0430
 territories.MM=\u041c\u0443\u0430\u043d\u043c\u0430\u0440
 territories.ML=\u041c\u0430\u043b\u0438
@@ -518,4 +521,105 @@ territories.TR=\u0422\u0443\u0440\u0446\u0438\u0458\u0430
 territories.TO=\u0422\u043e\u043d\u0433\u0430
 territories.TN=\u0422\u0443\u043d\u0438\u0441
 territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d
+languages.es=\u0448\u043f\u0430\u043d\u0441\u043a\u0438
+languages.ku=\u043a\u0443\u0440\u0434\u0441\u043a\u0438
+languages.eo=\u0435\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0430\u043d\u0433\u043b\u0438\u0441\u043a\u0438
+languages.el=\u0433\u0440\u0447\u043a\u0438
+languages.ko=\u043a\u043e\u0440\u0435\u0458\u0441\u043a\u0438
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.km=\u043a\u0430\u043c\u0431\u043e\u045f\u0430\u043d\u0441\u043a\u0438
+languages.ka=\u0433\u0440\u0443\u0437\u0438\u0441\u043a\u0438
+languages.jv=\u0458\u0430\u0432\u0430\u043d\u0441\u043a\u0438
+languages.fil=\u0442\u0430\u0433\u0430\u043b\u043e\u0433 (\u0444\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438)
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
+languages.ps=\u043f\u0430\u0448\u0442\u043e
+languages.de=\u0433\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.pl=\u043f\u043e\u043b\u0441\u043a\u0438
+languages.da=\u0434\u0430\u043d\u0441\u043a\u0438
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d\u0441\u043a\u0438
+languages.ja=\u0458\u0430\u043f\u043e\u043d\u0441\u043a\u0438
+languages.vi=\u0432\u0438\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438
+languages.cy=\u0432\u0435\u043b\u0448\u043a\u0438
+languages.pa=\u043f\u0443\u043d\u045f\u0430\u0431\u0438
+languages.cs=\u0447\u0435\u0448\u043a\u0438
+languages.it=\u0438\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0438
+languages.is=\u0438\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.uz=\u0443\u0437\u0431\u0435\u0447\u043a\u0438
+languages.or=\u043e\u0440\u0438\u0458\u0430
+languages.ur=\u0443\u0440\u0434\u0443
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438
+languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0441\u043a\u0438
+languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438
+languages.ia=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0430
+languages.oc=\u043e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438
+languages.ug=\u0443\u0458\u0433\u0443\u0440\u0441\u043a\u0438
+languages.hy=\u0435\u0440\u043c\u0435\u043d\u0441\u043a\u0438
+languages.bs=\u0431\u043e\u0441\u0430\u043d\u0441\u043a\u0438
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438
+languages.hu=\u0443\u043d\u0433\u0430\u0440\u0441\u043a\u0438
+languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b\u0441\u043a\u0438
+languages.pt_PT=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 (\u0432\u043e \u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u0458\u0430)
+languages.hr=\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.tw=\u0442\u0432\u0438 (\u0434\u0438\u0430\u043b\u0435\u043a\u0442 \u043d\u0430 \u0430\u043a\u0430\u043d\u0441\u043a\u0438\u043e\u0442 \u0458\u0430\u0437\u0438\u043a)
+languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438
+languages.bg=\u0431\u0443\u0433\u0430\u0440\u0441\u043a\u0438
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0448\u043a\u0438
+languages.be=\u0431\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0438
+languages.nn=\u043d\u043e\u0440\u0432\u0435\u0448\u043a\u0438 (\u041d\u0438\u043d\u043e\u0440\u0448\u043a)
+languages.hi=\u0445\u0438\u043d\u0434\u0438
+languages.tr=\u0442\u0443\u0440\u0441\u043a\u0438
+languages.nl=\u0445\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.zu=\u0437\u0443\u043b\u0443
+languages.he=\u0445\u0435\u0431\u0440\u0435\u0458\u0441\u043a\u0438
+languages.tk=\u0442\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438
+languages.ne=\u043d\u0435\u043f\u0430\u043b\u0441\u043a\u0438
+languages.az=\u0430\u0437\u0435\u0440\u0431\u0435\u0458\u045f\u0430\u043d\u0441\u043a\u0438
+languages.ti=\u0442\u0438\u0433\u0440\u0435\u0458\u0441\u043a\u0438
+languages.th=\u0442\u0430\u0458\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.te=\u0442\u0435\u043b\u0443\u0433\u0443
+languages.zh=\u043a\u0438\u043d\u0435\u0441\u043a\u0438
+languages.as=\u0430\u0441\u0430\u043c\u0441\u043a\u0438
+languages.ar=\u0430\u0440\u0430\u043f\u0441\u043a\u0438
+languages.ta=\u0442\u0430\u043c\u0438\u043b\u0441\u043a\u0438
+languages.gu=\u0433\u0443\u045f\u0430\u0440\u0430\u0442\u0438
+languages.am=\u0430\u043c\u0445\u0430\u0440\u0438\u0441\u043a\u0438
+languages.mt=\u043c\u0430\u043b\u0442\u0435\u0448\u043a\u0438
+languages.ms=\u043c\u0430\u043b\u0435\u0437\u0438\u0441\u043a\u0438
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0438
+languages.sw=\u0441\u0432\u0430\u0445\u0438\u043b\u0438
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0438
+languages.sv=\u0448\u0432\u0435\u0434\u0441\u043a\u0438
+languages.gl=\u0433\u0430\u043b\u0438\u0446\u0438\u0441\u043a\u0438
+languages.af=\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438
+languages.st=\u0441\u0435\u0441\u043e\u0442\u043e
+languages.mn=\u043c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438
+languages.sr=\u0441\u0440\u043f\u0441\u043a\u0438
+languages.sq=\u0430\u043b\u0431\u0430\u043d\u0441\u043a\u0438
+languages.ml=\u043c\u0430\u043b\u0430\u0458\u0430\u043b\u0430\u043c
 languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438
+languages.so=\u0441\u043e\u043c\u0430\u043b\u0438\u0441\u043a\u0438
+languages.gd=\u0448\u043a\u043e\u0442\u0441\u043a\u043e \u0433\u0430\u043b\u0441\u043a\u0438
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0435\u0447\u043a\u0438 \u0458\u0430\u0437\u0438\u043a
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u0447\u043a\u0438
+languages.ga=\u0438\u0440\u0441\u043a\u0438
+languages.si=\u0441\u0438\u043d\u0445\u0430\u043b\u0438\u0441\u043a\u0438
+languages.sh=\u0441\u0440\u043f\u0441\u043a\u043e-\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.pt_BR=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 (\u0432\u043e \u0411\u0440\u0430\u0437\u0438\u043b)
+languages.yi=\u0458\u0438\u0434\u0441\u043a\u0438
+languages.sd=\u0441\u0438\u043d\u0434\u0438
+languages.fy=\u0444\u0440\u0438\u0437\u0438\u0441\u043a\u0438
+languages.sa=\u0441\u0430\u043d\u0441\u043a\u0440\u0438\u0442
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0438
+languages.lv=\u043b\u0430\u0442\u0432\u0438\u0441\u043a\u0438
+languages.lt=\u043b\u0438\u0442\u0432\u0430\u043d\u0441\u043a\u0438
+languages.fo=\u0444\u0430\u0440\u0441\u043a\u0438
+languages.ru=\u0440\u0443\u0441\u043a\u0438
+languages.fi=\u0444\u0438\u043d\u0441\u043a\u0438
+languages.ro=\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438
+languages.fa=\u043f\u0435\u0440\u0441\u0438\u0441\u043a\u0438
+languages.la=\u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438
+languages.xh=\u0445\u0430\u0443\u0441\u0430
+languages.eu=\u0431\u0430\u0441\u043a\u0438\u0441\u043a\u0438
+languages.ky=\u043a\u0438\u0440\u0433\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438
+languages.et=\u0435\u0441\u0442\u043e\u043d\u0441\u043a\u0438
index f237bb0264c59755c76727a91b85fad3f49700d1..4b15b4010ad91c9d419e4ff1dda16a79d87ecd17 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-zeroDigit=\u0d66
-shortMonths=\u0d1c\u0d28\u0d41®\u0d2b\u0d3f\u0d2c\u0d4d®\u0d2e\u0d3e\u0d31\u0d4d\u0d05®\u0d0f\u0d2a\u0d4d\u0d31\u0d3f\u0d32\u0d4d\u0d05®\u0d2e\u0d46\u0d2f\u0d4d®\u0d1c\u0d42\u0d23\u0d4d\u0d05®\u0d1c\u0d42\u0d48\u0d32®\u0d06\u0d17®\u0d38\u0d46\u0d2a\u0d4d\u0d24\u0d02®\u0d12\u0d15\u0d4d\u0d1f®\u0d28\u0d35\u0d02®\u0d21\u0d3f\u0d38\u0d02®®
-months=\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f®\u0d2b\u0d3f\u0d2c\u0d4d\u0d31\u0d35\u0d30\u0d3f®\u0d2e\u0d3e\u0d31\u0d4d\u0d05\u0d1a\u0d4d\u0d05\u0d1a\u0d4d®\u0d0f\u0d2a\u0d4d\u0d31\u0d3f\u0d32\u0d4d\u0d05®\u0d2e\u0d46\u0d2f\u0d4d®\u0d1c\u0d42\u0d23\u0d4d\u0d05®\u0d1c\u0d42\u0d48\u0d32®\u0d06\u0d17\u0d38\u0d4d\u0d24\u0d4d\u0d05®\u0d38\u0d46\u0d2a\u0d4d\u0d24\u0d02\u0d2c\u0d31\u0d4d\u0d05®\u0d12\u0d15\u0d4d\u0d1f\u0d48\u0d2c\u0d31\u0d4d\u0d05®\u0d28\u0d35\u0d02\u0d2c\u0d31\u0d4d\u0d05®\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d31\u0d4d\u0d05®®
-shortWeekdays=®\u0d1e\u0d3e®\u0d24\u0d3f®\u0d1a\u0d4a®\u0d2c\u0d41®\u0d35\u0d4d\u0d2f®\u0d35\u0d46®\u0d36®
-weekdays=®\u0d1e\u0d3e\u0d2f\u0d31\u0d4d\u0d05®\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d4d\u0d05®\u0d1a\u0d4a\u0d35\u0d4d\u0d35®\u0d2c\u0d41\u0d28\u0d2d\u0d4d\u0d05®\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02®\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f®\u0d36\u0d28\u0d3f®
-ampms=\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46®\u0d35\u0d48\u0d15\u0d41®
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=\u0d38\u0d02\u0d16\u0d4d\u0d2f\u0d2f\u0d32\u0d4d\u0d32
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##,##0%
+currencyFormat=#,##,##0.00\u00a4;-#,##,##0.00\u00a4
+currenciesDisplayName.YDD=\u0d2f\u0d2e\u0d28\u0d3f \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.KES=\u0d15\u0d46\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d37\u0d3f\u0d32\u0d4d\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d38\u0d4d
+currenciesDisplayName.TWD=\u0d24\u0d3e\u0d2f\u0d4d\u200c\u0d35\u0d3e\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.LKR=LKR
+currenciesDisplayName.BYB=\u0d2c\u0d46\u0d32\u0d3e\u0d31\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d4d\u0d2f\u0d42 \u0d31\u0d42\u0d2c\u0d3f\u0d33\u0d4d\u200d\u0d38\u0d4d (BYB)
+currenciesDisplayName.TJS=\u0d24\u0d1c\u0d3f\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4a\u0d2e\u0d4b\u0d28\u0d3f\u0d38\u0d4d
+currenciesDisplayName.RWF=RWF
+currenciesDisplayName.ERN=\u0d0e\u0d31\u0d3f\u0d24\u0d4d\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d15\u0d4d\u0d2b\u0d3e\u0d38\u0d4d
+currenciesDisplayName.TJR=\u0d24\u0d1c\u0d3f\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d31\u0d42\u0d2c\u0d3f\u0d33\u0d4d\u200d
+currenciesDisplayName.SDP=SDP
+currenciesDisplayName.GRD=\u0d17\u0d4d\u0d30\u0d40\u0d15\u0d4d\u0d15\u0d4d \u0d21\u0d4d\u0d30\u0d3e\u0d15\u0d4d\u0d15\u0d4d\u0d2e\u0d3e\u0d38\u0d4d
+currenciesDisplayName.AFN=\u0d05\u0d2b\u0d4d\u0d18\u0d3e\u0d28\u0d3f\u0d38\u0d4d
+currenciesDisplayName.IEP=\u0d10\u0d31\u0d3f\u0d37\u0d4d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ARS=\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.SDG=SDG
+currenciesDisplayName.ARP=\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d (ARP)
+currenciesDisplayName.SDD=SDD
+currenciesDisplayName.GEL=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d32\u0d3e\u0d30\u0d3f\u0d38\u0d4d
+currenciesDisplayName.GEK=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d2f\u0d42\u0d2a\u0d4b\u0d23\u0d4d\u200d \u0d32\u0d3e\u0d30\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.AFA=\u0d05\u0d2b\u0d4d\u0d18\u0d3e\u0d28\u0d3f\u0d38\u0d4d (AFA)
+currenciesDisplayName.CRC=\u0d15\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e \u0d31\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d15\u0d4b\u0d33\u0d28\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.FKP=\u0d2b\u0d4b\u0d15\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.EEK=\u0d0e\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4c\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d42\u0d23\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.MDL=MDL
+currenciesDisplayName.HKD=\u0d39\u0d4b\u0d19\u0d4d \u0d15\u0d4b\u0d19\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.IQD=\u0d07\u0d31\u0d3e\u0d15\u0d4d\u0d15\u0d3f \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ARA=\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28\u0d4d\u200d  \u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.SCR=SCR
+currenciesDisplayName.VUV=\u0d35\u0d28\u0d41\u0d35\u0d3e\u0d24\u0d41 \u0d35\u0d3e\u0d24\u0d42\u0d38\u0d4d
+currenciesDisplayName.KPW=KPW
+currenciesDisplayName.DKK=\u0d21\u0d3e\u0d28\u0d3f\u0d37\u0d4d \u0d15\u0d4d\u0d30\u0d4b\u0d23\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.IDR=\u0d07\u0d28\u0d4d\u0d24\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d30\u0d42\u0d2a
+currenciesDisplayName.GQE=\u0d07\u0d15\u0d4d\u0d35\u0d3f\u0d31\u0d4d\u0d31\u0d4b\u0d31\u0d3f\u0d2f\u0d32\u0d4d\u200d \u0d17\u0d3f\u0d28\u0d3f \u0d0e\u0d15\u0d4d\u0d35\u0d40\u0d32\u0d46
+currenciesDisplayName.SOS=SOS
+currenciesDisplayName.LVR=LVR
+currenciesDisplayName.EQE=\u0d0e\u0d15\u0d4d\u0d35\u0d40\u0d32\u0d46\u0d38\u0d4d
+currenciesDisplayName.AED=\u0d2f\u0d41.\u0d0e.\u0d07. \u0d26\u0d3f\u0d30\u0d4d\u200d\u0d39\u0d02\u0d38\u0d4d
+currenciesDisplayName.LVL=LVL
+currenciesDisplayName.BWP=\u0d2c\u0d4b\u0d1f\u0d4d\u0d38\u0d4d\u0d35\u0d3e\u0d28\u0d28\u0d4d\u200d \u0d2a\u0d4d\u0d2f\u0d42\u0d32\u0d3e\u0d38\u0d4d
+currenciesDisplayName.RUR=RUR
+currenciesDisplayName.NIO=NIO
+currenciesDisplayName.XTS=\u0d31\u0d4d\u0d31\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3f\u0d02\u0d17\u0d4d \u0d15\u0d31\u0d28\u0d4d\u200d\u0d38\u0d3f \u0d15\u0d4b\u0d21\u0d4d
+currenciesDisplayName.MOP=\u0d2e\u0d15\u0d4c \u0d2a\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d38\u0d4d
+currenciesDisplayName.FJD=\u0d2b\u0d3f\u0d1c\u0d3f \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ADP=\u0d05\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d31\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d38\u0d4d
+currenciesDisplayName.RUB=\u0d31\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d31\u0d42\u0d2c\u0d3f\u0d33\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.CDF=\u0d15\u0d4b\u0d19\u0d4d\u0d15\u0d33\u0d40\u0d38\u0d4d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d \u0d15\u0d4b\u0d19\u0d4d\u0d15\u0d4a\u0d33\u0d48\u0d38\u0d4d
+currenciesDisplayName.NIC=NIC
+currenciesDisplayName.DJF=\u0d1c\u0d40\u0d2c\u0d4b\u0d1f\u0d4d\u0d1f\u0d3f \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.UZS=\u0d09\u0d38\u0d4d\u0d2c\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d02\u0d38\u0d4d
+currenciesDisplayName.SBD=SBD
+currenciesDisplayName.ECV=\u0d07\u0d15\u0d4d\u0d35\u0d21\u0d4b\u0d30\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d21\u0d3e\u0d21\u0d4d\u0d38\u0d4d \u0d21\u0d3f \u0d35\u0d3e\u0d32\u0d30\u0d4d\u200d \u0d15\u0d4b\u0d23\u0d4d\u200d\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d28\u0d4d\u200d\u0d31\u0d46 (UVC)
+currenciesDisplayName.LUL=LUL
+currenciesDisplayName.ECS=\u0d07\u0d15\u0d4d\u0d35\u0d21\u0d4b\u0d30\u0d4d\u200d \u0d38\u0d42\u0d15\u0d4d\u0d30\u0d47\u0d38\u0d4d
+currenciesDisplayName.THB=\u0d24\u0d3e\u0d2f\u0d4d \u0d2c\u0d1f\u0d4d\u0d1f\u0d4d
+currenciesDisplayName.PHP=\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d48\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.LUF=LUF
+currenciesDisplayName.RHD=RHD
+currenciesDisplayName.LUC=LUC
+currenciesDisplayName.FIM=\u0d2b\u0d3f\u0d28\u0d4d\u0d28\u0d3f\u0d37\u0d4d \u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d38\u0d4d
+currenciesDisplayName.TTD=TTD
+currenciesDisplayName.SZL=SZL
+currenciesDisplayName.MNT=MNT
+currenciesDisplayName.UAK=\u0d09\u0d15\u0d4d\u0d30\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d3e\u0d30\u0d4d\u200d\u0d2c\u0d4b\u0d35\u0d3e\u0d28\u0d46\u0d38\u0d4d
+currenciesDisplayName.SAR=SAR
+currenciesDisplayName.COU=\u0d2f\u0d42\u0d23\u0d3f\u0d21\u0d3e\u0d21\u0d4d \u0d21\u0d3f \u0d35\u0d3e\u0d32\u0d30\u0d4d\u200d \u0d31\u0d3f\u0d2f\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.UAH=\u0d09\u0d15\u0d4d\u0d30\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d39\u0d4d\u0d30\u0d3f\u0d35\u0d4d\u0d28\u0d3f\u0d2f\u0d3e\u0d38\u0d4d
+currenciesDisplayName.HUF=\u0d39\u0d02\u0d17\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2b\u0d4b\u0d31\u0d3f\u0d28\u0d4d\u200d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.QAR=QAR
+currenciesDisplayName.COP=\u0d15\u0d4a\u0d33\u0d02\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.LTT=LTT
+currenciesDisplayName.PTE=PTE
+currenciesDisplayName.UYU=\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35\u0d47 \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b
+currenciesDisplayName.AOR=\u0d05\u0d02\u0d17\u0d4b\u0d33\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d35\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d3e\u0d38\u0d4d \u0d31\u0d40\u0d05\u0d21\u0d4d\u0d1c\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d21\u0d4b (AOR)
+currenciesDisplayName.GBP=\u0d2c\u0d4d\u0d30\u0d3f\u0d1f\u0d4d\u0d1f\u0d40\u0d37\u0d4d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d46\u0d30\u0d4d\u200d\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ZRZ=\u0d38\u0d48\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d48\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.INR=\u0d07\u0d28\u0d4d\u0d24\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d30\u0d42\u0d2a
+currenciesDisplayName.BIF=\u0d2c\u0d41\u0d31\u0d41\u0d23\u0d4d\u0d1f\u0d3f \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XFU=\u0d2b\u0d4d\u0d30\u0d46\u0d1e\u0d4d\u0d1a\u0d4d UIC-\u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.MZN=MZN
+currenciesDisplayName.LTL=LTL
+currenciesDisplayName.AON=\u0d05\u0d02\u0d17\u0d4b\u0d33\u0d28\u0d4d\u200d \u0d28\u0d4d\u0d2f\u0d42 \u0d15\u0d4d\u0d35\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d3e\u0d38\u0d4d (AON)
+currenciesDisplayName.UYP=\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35\u0d47 \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d (UYP)
+currenciesDisplayName.MZM=MZM
+currenciesDisplayName.KZT=KZT
+currenciesDisplayName.AOK=\u0d05\u0d02\u0d17\u0d4b\u0d33\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d35\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d3e\u0d38\u0d4d (AOK
+currenciesDisplayName.GNS=\u0d17\u0d3f\u0d28\u0d3f\u0d2f \u0d38\u0d48\u0d32\u0d3f\u0d38\u0d4d
+currenciesDisplayName.BUK=\u0d2c\u0d30\u0d4d\u200d\u0d2e\u0d40\u0d38\u0d4d \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XFO=\u0d2b\u0d4d\u0d30\u0d46\u0d1e\u0d4d\u0d1a\u0d4d \u0d17\u0d4b\u0d33\u0d4d\u200d\u0d21\u0d4d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.PGK=\u0d2a\u0d3e\u0d2a\u0d41\u0d35 \u0d28\u0d4d\u0d2f\u0d42 \u0d17\u0d3f\u0d28\u0d3f \u0d15\u0d3f\u0d28\u0d3e\u0d38\u0d4d
+currenciesDisplayName.UYI=\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35\u0d47 \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d \u0d0e\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d21\u0d3e\u0d21\u0d4d\u0d38\u0d4d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d46\u0d15\u0d4d\u0d38\u0d3e\u0d21\u0d3e\u0d38\u0d4d
+currenciesDisplayName.SYP=\u0d38\u0d3f\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d
+currenciesDisplayName.OMR=OMR
+currenciesDisplayName.MZE=MZE
+currenciesDisplayName.ZRN=\u0d38\u0d48\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d4d\u0d2f\u0d42 \u0d38\u0d48\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.NGN=NGN
+currenciesDisplayName.CNY=\u0d1a\u0d48\u0d28\u0d40\u0d38\u0d4d \u0d2f\u0d41\u0d35\u0d3e\u0d28\u0d4d\u200d
+currenciesDisplayName.AOA=\u0d05\u0d02\u0d17\u0d4b\u0d33\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d35\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d3e\u0d38\u0d4d
+currenciesDisplayName.MAF=MAF
+currenciesDisplayName.RSD=RSD
+currenciesDisplayName.GNF=\u0d17\u0d3f\u0d28\u0d3f\u0d2f \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.MAD=MAD
+currenciesDisplayName.HTG=\u0d39\u0d46\u0d2f\u0d4d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d17\u0d42\u0d30\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d
+currenciesDisplayName.TRY=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f\u0d37\u0d4d \u0d32\u0d3f\u0d31\u0d3e\u0d38\u0d4d
+currenciesDisplayName.MMK=MMK
+currenciesDisplayName.XRE=RINET \u0d2b\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.MYR=MYR
+currenciesDisplayName.LSM=LSM
+currenciesDisplayName.XEU=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d3e\u0d23\u0d2f \u0d2f\u0d42\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.LSL=LSL
+currenciesDisplayName.SLL=SLL
+currenciesDisplayName.BHD=\u0d2c\u0d39\u0d4d\u0d31\u0d48\u0d28\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.BTN=BTN
+currenciesDisplayName.TRL=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f\u0d37\u0d4d \u0d32\u0d3f\u0d31\u0d3e\u0d38\u0d4d
+currenciesDisplayName.KMF=KMF
+currenciesDisplayName.CZK=\u0d1a\u0d46\u0d15\u0d4d\u0d15\u0d4d \u0d31\u0d3f\u0d2a\u0d4d\u0d2a\u0d2c\u0d4d\u0d32\u0d3f\u0d15\u0d4d \u0d15\u0d4a\u0d30\u0d42\u0d28\u0d3e\u0d38\u0d4d
+currenciesDisplayName.ANG=\u0d28\u0d46\u0d24\u0d30\u0d4d\u200d\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d \u0d06\u0d28\u0d4d\u200d\u0d21\u0d3f\u0d32\u0d28\u0d4d\u200d \u0d17\u0d3f\u0d32\u0d4d\u200d\u0d21\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.AZN=\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d2f\u0d4d\u0d1c\u0d3e\u0d28\u0d4d\u200d \u0d2e\u0d28\u0d24\u0d4d\u200c\u0d38\u0d4d
+currenciesDisplayName.AZM=\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d2f\u0d4d\u0d1c\u0d3e\u0d28\u0d4d\u200d \u0d2e\u0d28\u0d24\u0d4d\u200c\u0d38\u0d4d (AZM)
+currenciesDisplayName.KYD=KYD
+currenciesDisplayName.GMD=\u0d17\u0d3e\u0d28\u0d4d\u0d2a\u0d3f\u0d2f \u0d26\u0d32\u0d3e\u0d38\u0d3f\u0d38\u0d4d
+currenciesDisplayName.VEF=\u0d35\u0d46\u0d28\u0d38\u0d4d\u0d35\u0d47\u0d32\u0d28\u0d4d\u200d \u0d2c\u0d4b\u0d32\u0d3f\u0d35\u0d30\u0d4d\u200d \u0d2b\u0d41\u0d35\u0d46\u0d30\u0d4d\u200d\u0d31\u0d4d\u0d31\u0d46\u0d38\u0d4d
+currenciesDisplayName.BGN=\u0d2c\u0d33\u0d4d\u200d\u0d17\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d4d\u0d2f\u0d42 \u0d32\u0d46\u0d35\u0d4d\u0d38\u0d4d
+currenciesDisplayName.MXV=\u0d2e\u0d46\u0d15\u0d4d\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d21\u0d3e\u0d21\u0d4d\u0d38\u0d4d \u0d21\u0d3f \u0d07\u0d28\u0d4d\u200d\u0d35\u0d46\u0d30\u0d4d\u200d\u0d37\u0d28\u0d4d\u200d (UDI)
+currenciesDisplayName.CAD=\u0d15\u0d28\u0d47\u0d21\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.BGL=\u0d2c\u0d33\u0d4d\u200d\u0d17\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d39\u0d3e\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d32\u0d46\u0d35\u0d4d\u0d38\u0d4d
+currenciesDisplayName.VEB=\u0d35\u0d46\u0d28\u0d38\u0d4d\u0d35\u0d47\u0d32\u0d28\u0d4d\u200d \u0d2c\u0d4b\u0d32\u0d3f\u0d35\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.MLF=MLF
+currenciesDisplayName.MXP=\u0d2e\u0d46\u0d15\u0d4d\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f \u0d2a\u0d46\u0d38\u0d4b
+currenciesDisplayName.ILS=\u0d07\u0d38\u0d4d\u0d30\u0d3e\u0d2f\u0d47\u0d32\u0d3f \u0d28\u0d4d\u0d2f\u0d42 \u0d37\u0d46\u0d15\u0d4d\u0d15\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.PES=\u0d2a\u0d46\u0d31\u0d42\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4b\u0d33\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.MXN=MXN
+currenciesDisplayName.GYD=\u0d17\u0d2f\u0d3e\u0d28 \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ILP=\u0d07\u0d38\u0d4d\u0d30\u0d2f\u0d47\u0d32\u0d3f \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.CYP=\u0d38\u0d48\u0d2a\u0d4d\u0d30\u0d38\u0d4d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.SKK=SKK
+currenciesDisplayName.XDR=\u0d38\u0d4d\u0d2a\u0d46\u0d37\u0d4d\u0d2f\u0d32\u0d4d\u200d \u0d21\u0d4d\u0d30\u0d4b\u0d2f\u0d3f\u0d02\u0d17\u0d4d \u0d31\u0d48\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.PEN=\u0d2a\u0d46\u0d31\u0d42\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4b\u0d33\u0d4d\u200d \u0d28\u0d4d\u0d2f\u0d42\u0d35\u0d4b\u0d38\u0d4d
+currenciesDisplayName.LRD=LRD
+currenciesDisplayName.PEI=\u0d2a\u0d46\u0d31\u0d42\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d38\u0d4d
+currenciesDisplayName.AMD=\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d21\u0d4d\u0d30\u0d3e\u0d02\u0d38\u0d4d
+currenciesDisplayName.BSD=BSD
+currenciesDisplayName.XPT=\u0d2a\u0d4d\u0d32\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d02
+currenciesDisplayName.HRK=\u0d15\u0d4d\u0d30\u0d4a\u0d2f\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d2f\u0d42\u0d28\u0d3e\u0d38\u0d4d
+currenciesDisplayName.CLP=\u0d1a\u0d3f\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.HRD=\u0d15\u0d4d\u0d30\u0d4a\u0d2f\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.XPF=CFP \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.FRF=\u0d2b\u0d4d\u0d30\u0d46\u0d1e\u0d4d\u0d1a\u0d4d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XPD=\u0d2a\u0d32\u0d3e\u0d21\u0d3f\u0d2f\u0d02
+currenciesDisplayName.BRR=BRR
+currenciesDisplayName.MKD=MKD
+currenciesDisplayName.CLF=\u0d1a\u0d3f\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d21\u0d3e\u0d21\u0d4d\u0d38\u0d4d \u0d21\u0d3f \u0d2b\u0d4b\u0d2e\u0d46\u0d28\u0d4d\u200d\u0d31\u0d4b\u0d38\u0d4d
+currenciesDisplayName.ALL=\u0d05\u0d32\u0d4d\u200d\u0d2c\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d32\u0d46\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.BRN=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d41\u0d38\u0d3e\u0d21\u0d4b \u0d28\u0d4b\u0d35\u0d4b\u0d38\u0d4d
+currenciesDisplayName.MWK=MWK
+currenciesDisplayName.BRL=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d31\u0d3f\u0d2f\u0d3e\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.TPE=\u0d24\u0d3f\u0d2e\u0d4b\u0d30\u0d4d\u200d \u0d0e\u0d38\u0d4d\u0d15\u0d4d\u0d2f\u0d42\u0d21\u0d4b\u0d38\u0d4d
+currenciesDisplayName.BRE=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d41\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4b\u0d38\u0d4d (BRE)
+currenciesDisplayName.BRC=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d41\u0d38\u0d3e\u0d21\u0d4b\u0d38\u0d4d
+currenciesDisplayName.BRB=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d41\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4b\u0d38\u0d4d \u0d28\u0d4b\u0d35\u0d4b (BRB)
+currenciesDisplayName.DEM=\u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d \u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.KWD=KWD
+currenciesDisplayName.XCD=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d15\u0d30\u0d40\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.NPR=NPR
+currenciesDisplayName.GWP=\u0d17\u0d3f\u0d28\u0d3f-\u0d2c\u0d3f\u0d38\u0d3e\u0d35\u0d41 \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.YUN=\u0d2f\u0d42\u0d17\u0d4b\u0d38\u0d4d\u0d32\u0d47\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d23\u0d4d\u200d\u0d35\u0d47\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d2c\u0d3f\u0d33\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.SVC=SVC
+currenciesDisplayName.YUM=\u0d2f\u0d42\u0d17\u0d4b\u0d38\u0d4d\u0d32\u0d47\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d4b\u0d35\u0d3f \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.BEL=\u0d2c\u0d46\u0d32\u0d4d\u200d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d(\u0d2b\u0d3f\u0d28\u0d3e\u0d28\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d32\u0d4d\u200d)
+currenciesDisplayName.SIT=SIT
+currenciesDisplayName.JPY=\u0d1c\u0d3e\u0d2a\u0d4d\u0d2a\u0d28\u0d40\u0d38\u0d4d \u0d2f\u0d46\u0d28\u0d4d\u200d
+currenciesDisplayName.XOF=CFA \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d  BCEAO
+currenciesDisplayName.MVR=\u0d2e\u0d3e\u0d32\u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d30\u0d42\u0d2a
+currenciesDisplayName.BEF=\u0d2c\u0d46\u0d32\u0d4d\u200d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.GWE=\u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d40\u0d38\u0d4d \u0d17\u0d3f\u0d28\u0d3f \u0d0e\u0d38\u0d4d\u0d15\u0d4d\u0d2f\u0d42\u0d21\u0d4b\u0d38\u0d4d
+currenciesDisplayName.TOP=\u0d31\u0d4d\u0d31\u0d4b\u0d02\u0d17 \u0d2a\u0d3e\u0d02\u0d17\u0d3e\u0d38\u0d4d
+currenciesDisplayName.YUD=\u0d2f\u0d42\u0d17\u0d4b\u0d38\u0d4d\u0d32\u0d47\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d39\u0d3e\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.BEC=\u0d2c\u0d46\u0d32\u0d4d\u200d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d (\u0d15\u0d48\u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d35\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d)
+currenciesDisplayName.SUR=SUR
+currenciesDisplayName.RON=RON
+currenciesDisplayName.ROL=ROL
+currenciesDisplayName.BDT=\u0d2c\u0d02\u0d17\u0d4d\u0d32\u0d3e\u0d26\u0d47\u0d36\u0d4d \u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d38\u0d4d
+currenciesDisplayName.DDM=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d \u0d13\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XBD=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d \u0d13\u0d2b\u0d4d \u0d05\u0d15\u0d4d\u0d15\u0d4c\u0d23\u0d4d\u0d1f\u0d4d (XBD)
+currenciesDisplayName.AWG=\u0d05\u0d31\u0d42\u0d2c\u0d28\u0d4d\u200d \u0d17\u0d3f\u0d32\u0d4d\u200d\u0d21\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XBC=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d \u0d13\u0d2b\u0d4d \u0d05\u0d15\u0d4d\u0d15\u0d4c\u0d23\u0d4d\u0d1f\u0d4d (XBC)
+currenciesDisplayName.XBB=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2e\u0d4b\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d31\u0d3f \u0d2f\u0d42\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XBA=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4b\u0d28\u0d4d\u0d2a\u0d38\u0d3f\u0d31\u0d4d\u0d31\u0d4d \u0d2f\u0d42\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.NOK=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d35\u0d40\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d4b\u0d23\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.MUR=MUR
+currenciesDisplayName.ZAR=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d
+currenciesDisplayName.SHP=SHP
+currenciesDisplayName.XAU=\u0d38\u0d4d\u0d35\u0d30\u0d4d\u200d\u0d23\u0d4d\u0d23\u0d02
+currenciesDisplayName.ZAL=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d (\u0d2b\u0d3f\u0d28\u0d3e\u0d28\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d32\u0d4d\u200d)
+currenciesDisplayName.VND=VND
+currenciesDisplayName.TZS=TZS
+currenciesDisplayName.GIP=\u0d17\u0d3f\u0d2c\u0d4d\u0d30\u0d3e\u0d32\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d30\u0d4d\u200d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.TND=TND
+currenciesDisplayName.CVE=\u0d15\u0d46\u0d2f\u0d4d\u0d2a\u0d4d \u0d35\u0d46\u0d30\u0d4d\u200d\u0d21\u0d46 \u0d0e\u0d38\u0d4d\u0d15\u0d4d\u0d2f\u0d41\u0d21\u0d4b\u0d38\u0d4d
+currenciesDisplayName.UGX=UGX
+currenciesDisplayName.XAG=\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f
+currenciesDisplayName.ZMK=\u0d38\u0d3e\u0d02\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d35\u0d3e\u0d1a\u0d3e\u0d38\u0d4d
+currenciesDisplayName.JOD=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d26\u0d4d\u0d26\u0d3e\u0d28\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.XAF=CFA \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d  BEAC
+currenciesDisplayName.LBP=\u0d32\u0d46\u0d2c\u0d28\u0d40\u0d38\u0d4d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.UGS=UGS
+currenciesDisplayName.STD=STD
+currenciesDisplayName.WST=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d38\u0d2e\u0d4b\u0d35 \u0d24\u0d3e\u0d32\u0d3e\u0d38\u0d4d
+currenciesDisplayName.KHR=KHR
+currenciesDisplayName.DOP=\u0d21\u0d4a\u0d2e\u0d3f\u0d28\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.EUR=\u0d2f\u0d42\u0d31\u0d4b\u0d38\u0d4d
+currenciesDisplayName.BOV=\u0d2c\u0d4a\u0d33\u0d40\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d0e\u0d02\u0d35\u0d3f\u0d21\u0d4b\u0d38\u0d4d
+currenciesDisplayName.MTP=MTP
+currenciesDisplayName.USS=\u0d2f\u0d41\u0d0e\u0d38\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d (\u0d05\u0d24\u0d47 \u0d26\u0d3f\u0d35\u0d38\u0d02)
+currenciesDisplayName.BOP=\u0d2c\u0d4a\u0d33\u0d40\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.CUP=\u0d15\u0d4d\u0d2f\u0d42\u0d2c\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.MTL=MTL
+currenciesDisplayName.TMM=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d2e\u0d46\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d2e\u0d28\u0d24\u0d4d\u200c\u0d38\u0d4d
+currenciesDisplayName.USN=USN
+currenciesDisplayName.GHS=\u0d18\u0d3e\u0d28 \u0d15\u0d46\u0d21\u0d3f\u0d38\u0d4d
+currenciesDisplayName.SGD=SGD
+currenciesDisplayName.NZD=\u0d28\u0d4d\u0d2f\u0d42\u0d38\u0d3f\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.USD=\u0d2f\u0d41.\u0d0e\u0d38\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.BOB=\u0d2c\u0d4a\u0d33\u0d40\u0d35\u0d3f\u0d2f\u0d3e\u0d28\u0d4b\u0d38\u0d4d
+currenciesDisplayName.HNL=\u0d39\u0d4b\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d2f\u0d41\u0d31\u0d3e\u0d38\u0d4d \u0d32\u0d46\u0d02\u0d2a\u0d40\u0d30\u0d3e\u0d38\u0d4d
+currenciesDisplayName.CHW=WIR \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ITL=\u0d07\u0d31\u0d4d\u0d31\u0d3e\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d32\u0d3f\u0d31\u0d3e\u0d38\u0d4d
+currenciesDisplayName.PAB=\u0d2a\u0d28\u0d3e\u0d2e\u0d46\u0d2f\u0d4d\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2c\u0d3e\u0d32\u0d4d\u200d\u0d2c\u0d4b\u0d35\u0d3e\u0d38\u0d4d
+currenciesDisplayName.GTQ=\u0d17\u0d4d\u0d35\u0d3e\u0d1f\u0d4d\u0d1f\u0d3f\u0d2e\u0d3e\u0d32 \u0d15\u0d4d\u0d35\u0d46\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.XXX=\u0d05\u0d31\u0d3f\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d06\u0d2f \u0d28\u0d3e\u0d23\u0d2f\u0d02
+currenciesDisplayName.AUD=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.GHC=\u0d18\u0d3e\u0d28 \u0d15\u0d46\u0d21\u0d3f\u0d38\u0d4d (GHC)
+currenciesDisplayName.LAK=LAK
+currenciesDisplayName.NAD=NAD
+currenciesDisplayName.KGS=\u0d15\u0d3f\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4b\u0d02\u0d38\u0d4d
+currenciesDisplayName.MGF=MGF
+currenciesDisplayName.BBD=\u0d2c\u0d3e\u0d30\u0d4d\u200d\u0d2c\u0d21\u0d4b\u0d38\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.CHF=\u0d38\u0d4d\u0d35\u0d3f\u0d38\u0d4d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.CHE=WIR \u0d2f\u0d42\u0d31\u0d4b\u0d38\u0d4d
+currenciesDisplayName.MGA=MGA
+currenciesDisplayName.PYG=PYG
+currenciesDisplayName.PLZ=PLZ
+currenciesDisplayName.YER=\u0d2f\u0d2e\u0d28\u0d3f \u0d31\u0d3f\u0d2f\u0d3e\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ATS=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d37\u0d3f\u0d32\u0d4d\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ETB=\u0d0e\u0d24\u0d4d\u0d2f\u0d4b\u0d2a\u0d4d\u0d2a\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2c\u0d3f\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.BND=\u0d2c\u0d4d\u0d30\u0d42\u0d23\u0d46 \u0d21\u0d4b\u0d33\u0d31\u0d41\u0d15\u0d33\u0d4d\u200d
+currenciesDisplayName.EGP=\u0d08\u0d1c\u0d3f\u0d2a\u0d4d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.JMD=\u0d1c\u0d2e\u0d48\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.PLN=\u0d2a\u0d4b\u0d33\u0d3f\u0d37\u0d4d \u0d38\u0d4d\u0d32\u0d4b\u0d1f\u0d4d\u0d1f\u0d40\u0d38\u0d4d
+currenciesDisplayName.DZD=\u0d05\u0d33\u0d4d\u200d\u0d1c\u0d40\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ISK=\u0d10\u0d38\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d3f\u0d15\u0d4d \u0d15\u0d4d\u0d30\u0d4b\u0d23\u0d3e\u0d38\u0d4d
+currenciesDisplayName.SRG=SRG
+currenciesDisplayName.LYD=LYD
+currenciesDisplayName.SRD=SRD
+currenciesDisplayName.BAM=\u0d2c\u0d4b\u0d38\u0d4d\u0d28\u0d3f\u0d2f \u0d39\u0d46\u0d30\u0d4d\u200d\u0d38\u0d17\u0d4b\u0d35\u0d3f\u0d28 \u0d15\u0d23\u0d4d\u200d\u0d35\u0d47\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d2c\u0d3f\u0d33\u0d4d\u200d \u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.BZD=\u0d2c\u0d46\u0d32\u0d40\u0d38\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ESP=\u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d \u0d2a\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d38\u0d4d
+currenciesDisplayName.KRW=KRW
+currenciesDisplayName.NLG=\u0d28\u0d46\u0d24\u0d30\u0d4d\u200d\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d \u0d17\u0d3f\u0d32\u0d4d\u200d\u0d21\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.MRO=MRO
+currenciesDisplayName.BAD=\u0d2c\u0d4b\u0d38\u0d4d\u0d28\u0d3f\u0d2f \u0d39\u0d46\u0d30\u0d4d\u200d\u0d38\u0d17\u0d4b\u0d35\u0d3f\u0d28 \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ZWD=\u0d38\u0d3f\u0d02\u0d2c\u0d3e\u0d2c\u0d4d\u200c\u0d35\u0d46 \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.SEK=SEK
+currenciesDisplayName.CSK=\u0d1a\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d38\u0d4d\u0d32\u0d4a\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d39\u0d3e\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d15\u0d4a\u0d30\u0d42\u0d28\u0d3e\u0d38\u0d4d
+currenciesDisplayName.BYR=\u0d2c\u0d46\u0d32\u0d3e\u0d31\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d31\u0d42\u0d2c\u0d3f\u0d33\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ESB=\u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d \u0d2a\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d38\u0d4d (\u0d15\u0d48\u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d35\u0d41\u0d28\u0d4d\u0d28 \u0d05\u0d15\u0d4d\u0d15\u0d4c\u0d23\u0d4d\u0d1f\u0d4d)
+currenciesDisplayName.IRR=\u0d07\u0d31\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d31\u0d3f\u0d2f\u0d3e\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ESA=\u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d \u0d2a\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d38\u0d4d (A \u0d05\u0d15\u0d4d\u0d15\u0d4c\u0d23\u0d4d\u0d1f\u0d4d)
+currenciesDisplayName.PKR=\u0d2a\u0d3e\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d3f \u0d30\u0d42\u0d2a
+currenciesDisplayName.BMD=\u0d2c\u0d46\u0d30\u0d4d\u200d\u0d2e\u0d41\u0d21\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.CSD=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d38\u0d46\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=\u0d32\u0d46\u0d35\u0d4d
+currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
+currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=M\u0d21\u0d46\u0d28\u0d4d\u200d
+currenciesSymbol.MWK=MK
+currenciesSymbol.BMD=\u0d2c\u0d46\u0d30\u0d4d\u200d$
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.AMD=\u0d21\u0d4d\u0d30\u0d3e\u0d02
+currenciesSymbol.TOP=T$
+currenciesSymbol.NPR=Nrs
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.KWD=KD
+currenciesSymbol.GEL=\u0d32\u0d3e\u0d30\u0d3f
+currenciesSymbol.AFN=\u0d05\u0d2b\u0d4d
+currenciesSymbol.ZAR=R
+currenciesSymbol.IQD=ID
+currenciesSymbol.HKD=HK$
+currenciesSymbol.ARS=\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d4d$
+currenciesSymbol.JPY=\u00b4
+currenciesSymbol.ALL=\u0d32\u0d46\u0d15\u0d4d
+currenciesSymbol.CRC=C
+currenciesSymbol.IDR=Rp
+currenciesSymbol.DKK=DKr
+currenciesSymbol.TZS=T Sh
+currenciesSymbol.NOK=NKr
+currenciesSymbol.UGX=U Sh
+currenciesSymbol.BEF=BF
+currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
+currenciesSymbol.FJD=F$
+currenciesSymbol.UYU=Ur$
+currenciesSymbol.BDT=Tk
+currenciesSymbol.MNT=\u0d31\u0d4d\u0d31\u0d17\u0d4d
+currenciesSymbol.LBP=LL
+currenciesSymbol.DJF=DF
+currenciesSymbol.XXX=[\u0d28\u0d3e\u0d23\u0d2f\u0d02 \u0d05\u0d31\u0d3f\u0d35\u0d3f\u0d32\u0d4d\u0d32]
+currenciesSymbol.JOD=JD
+currenciesSymbol.USD=$
+currenciesSymbol.KHR=CR
+currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
+currenciesSymbol.MZM=Mt
+currenciesSymbol.YER=YRl
+currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
+currenciesSymbol.NZD=$NZ
+currenciesSymbol.OMR=RO
+currenciesSymbol.KZT=T
+currenciesSymbol.INR=\u0d30\u0d42
+currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.NAD=N$
+currenciesSymbol.GHS=GH\u00a2
+currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
+currenciesSymbol.HNL=L
+currenciesSymbol.KGS=\u0d38\u0d4b\u0d02
+currenciesSymbol.ZWD=Z$
+currenciesSymbol.MYR=RM
+currenciesSymbol.GTQ=Q
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
+currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
+currenciesSymbol.VEB=Be
+currenciesSymbol.BOB=Bs
+currenciesSymbol.CNY=Y
+currenciesSymbol.KMF=CF
+currenciesSymbol.AUD=$A
+currenciesSymbol.LYD=LD
+currenciesSymbol.JMD=J$
+currenciesSymbol.CHF=SwF
+currenciesSymbol.ETB=Br
+currenciesSymbol.MRO=UM
+currenciesSymbol.BBD=BDS$
+currenciesSymbol.PKR=Pra
+currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
+currenciesSymbol.MXN=MEX$
+currenciesSymbol.DZD=DA
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.IRR=RI
+currenciesSymbol.GYD=G$
+currenciesSymbol.BAM=KM
+currenciesSymbol.CAD=Can$
+shortMonths=\u0d1c\u0d28\u0d41\u00ae\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u00ae\u0d2e\u0d3e\u0d30\u0d4d\u200d\u00ae\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u00ae\u0d2e\u0d47\u0d2f\u0d4d\u00ae\u0d1c\u0d42\u0d23\u0d4d\u200d\u00ae\u0d1c\u0d42\u0d32\u0d48\u00ae\u0d13\u0d17\u00ae\u0d38\u0d46\u0d2a\u0d4d\u0d24\u0d02\u00ae\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u00ae\u0d28\u0d35\u0d02\u00ae\u0d21\u0d3f\u0d38\u0d02\u00ae\u00ae
+months=\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f\u00ae\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f\u00ae\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d4d\u00ae\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u200d\u00ae\u0d2e\u0d47\u0d2f\u0d4d\u00ae\u0d1c\u0d42\u0d23\u0d4d\u200d\u00ae\u0d1c\u0d42\u0d32\u0d48\u00ae\u0d06\u0d17\u0d38\u0d4d\u0d24\u0d4d\u00ae\u0d38\u0d46\u0d2a\u0d4d\u0d24\u0d02\u0d2c\u0d30\u0d4d\u200d\u00ae\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d30\u0d4d\u200d\u00ae\u0d28\u0d35\u0d02\u0d2c\u0d30\u0d4d\u200d\u00ae\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d30\u0d4d\u200d\u00ae\u00ae
+shortWeekdays=\u00ae\u0d1e\u0d3e\u0d2f\u0d30\u0d4d\u200d\u00ae\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d4d\u200d\u00ae\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u00ae\u0d2c\u0d41\u0d27\u0d28\u0d4d\u200d\u00ae\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02\u00ae\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u00ae\u0d36\u0d28\u0d3f\u00ae
+weekdays=\u00ae\u00ae\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+eras=\u0d15\u0d4d\u0d30\u0d3f.\u0d2e\u0d41.\u00ae\u0d15\u0d4d\u0d30\u0d3f.\u0d2a\u0d3f.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd-MM-yy
+mediumDateFormat=yyyy, MMM d
+longDateFormat=yyyy, MMMM d
+fullDateFormat=yyyy, MMMM d, EEEE
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=Europe_Central\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Africa_Western\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Urumqi\u00ae\u0d09\u0d31\u0d41\u0d02\u0d16\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u200c\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Kamchatka\u00ae\u0d2a\u0d46\u0d1f\u0d4d\u0d30\u0d4b\u0d2a\u0d3e\u0d35\u0d4d\u200c\u0d32\u0d4b\u0d38\u0d4d\u0d15\u0d4d \u0d15\u0d02\u0d1a\u0d3e\u0d38\u0d4d\u0d15\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d46\u0d1f\u0d4d\u0d30\u0d4b\u0d2a\u0d3e\u0d35\u0d4d\u200c\u0d32\u0d4b\u0d38\u0d4d\u0d15\u0d4d \u0d15\u0d02\u0d1a\u0d3e\u0d38\u0d4d\u0d15\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Uralsk\u00ae\u0d2f\u0d41\u0d31\u0d3e\u0d32\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d41\u0d31\u0d3e\u0d32\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Novosibirsk\u00ae\u0d28\u0d4b\u0d35\u0d4b\u0d38\u0d3f\u0d2c\u0d3f\u0d30\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d28\u0d4b\u0d35\u0d4b\u0d38\u0d3f\u0d2c\u0d3f\u0d30\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Irkutsk\u00ae\u0d07\u0d30\u0d4d\u200d\u0d15\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d07\u0d30\u0d4d\u200d\u0d15\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Borneo\u00ae\u0d2c\u0d4b\u0d30\u0d4d\u200d\u0d23\u0d3f\u0d2f\u0d4b \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2c\u0d4b\u0d30\u0d4d\u200d\u0d23\u0d3f\u0d2f\u0d4b \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Papua_New_Guinea\u00ae\u0d2a\u0d3e\u0d2a\u0d4d\u0d2f\u0d41 \u0d28\u0d4d\u0d2f\u0d42 \u0d17\u0d3f\u0d28\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d08\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d08\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Aqtau\u00ae\u0d05\u0d16\u0d4d\u0d24\u0d4c \u0d38\u0d2e\u0d2f\u0d02\u00aeAQTT (\u0d05\u0d16\u0d4d\u0d24\u0d4c)\u00ae\u0d05\u0d16\u0d4d\u0d24\u0d4c \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00aeAQTST (\u0d05\u0d16\u0d4d\u0d24\u0d4c)\u00ae\u00a9Kazakhstan_Western\u00ae\u0d2a\u0d1f\u0d3f\u0d1e\u0d4d\u0d1e\u0d3e\u0d31\u0d28\u0d4d\u200d \u0d15\u0d38\u0d3e\u0d16\u0d4d\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00ae\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d\u200c\u0d32\u0d4b\u0d35\u0d4d\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d\u200c\u0d32\u0d4b\u0d35\u0d4d\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Bangladesh\u00ae\u0d2c\u0d02\u0d17\u0d4d\u0d32\u0d3e\u0d26\u0d47\u0d36\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Maldives\u00ae\u0d2e\u0d3e\u0d32\u0d3f\u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00ae\u0d2a\u0d4a\u0d28\u0d3e\u0d2a\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00ae\u0d38\u0d2e\u0d30\u0d4d\u200d\u0d15\u0d28\u0d4d\u0d26\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeSAMT (\u0d38\u0d2e\u0d30\u0d4d\u200d\u0d15\u0d28\u0d4d\u0d26\u0d4d )\u00ae\u0d38\u0d2e\u0d30\u0d4d\u200d\u0d15\u0d28\u0d4d\u0d26\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00aeSAMST (\u0d38\u0d2e\u0d30\u0d4d\u200d\u0d15\u0d28\u0d4d\u0d26\u0d4d )\u00ae\u00a9Indian_Ocean\u00ae\u0d07\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2e\u0d39\u0d3e\u0d38\u0d2e\u0d41\u0d26\u0d4d\u0d30 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00ae\u0d2b\u0d3f\u0d1c\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2b\u0d3f\u0d1c\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Long_Shu\u00ae\u0d32\u0d4b\u0d19\u0d4d-\u0d37\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Singapore\u00ae\u0d38\u0d3f\u0d19\u0d4d\u0d15\u0d2a\u0d4d\u0d2a\u0d42\u0d30\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00ae\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d2f\u0d4d\u0d1c\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d2f\u0d4d\u0d1c\u0d3e\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Amazon\u00ae\u0d06\u0d2e\u0d38\u0d4b\u0d23\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d06\u0d2e\u0d38\u0d4b\u0d23\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Arabian\u00ae\u0d05\u0d31\u0d47\u0d2c\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeAST (\u0d05\u0d31\u0d47\u0d2c\u0d4d\u0d2f\u0d28\u0d4d\u200d)\u00ae\u0d05\u0d31\u0d47\u0d2c\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00aeADT (\u0d05\u0d31\u0d47\u0d2c\u0d4d\u0d2f\u0d28\u0d4d\u200d)\u00ae\u00a9Phoenix_Islands\u00ae\u0d2b\u0d40\u0d28\u0d3f\u0d15\u0d4d\u0d38\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Yekaterinburg\u00ae\u0d2f\u0d46\u0d15\u0d4d\u0d15\u0d3e\u0d31\u0d4d\u0d31\u0d31\u0d3f\u0d28\u0d4d\u200d\u0d2c\u0d30\u0d4d\u200d\u0d17\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d46\u0d15\u0d4d\u0d15\u0d3e\u0d31\u0d4d\u0d31\u0d31\u0d3f\u0d28\u0d4d\u200d\u0d2c\u0d30\u0d4d\u200d\u0d17\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Krasnoyarsk\u00ae\u0d15\u0d4d\u0d30\u0d3e\u0d38\u0d4d\u0d28\u0d4b\u0d2f\u0d3e\u0d34\u0d4d\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d4d\u0d30\u0d3e\u0d38\u0d4d\u0d28\u0d4b\u0d2f\u0d3e\u0d34\u0d4d\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Alaska\u00ae\u0d05\u0d32\u0d3e\u0d38\u0d4d\u0d15 \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d32\u0d3e\u0d38\u0d4d\u0d15 \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Qyzylorda\u00ae\u0d16\u0d3f\u0d38\u0d3f\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d16\u0d3f\u0d38\u0d3f\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Gulf\u00ae\u0d17\u0d33\u0d4d\u200d\u0d2b\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Dutch_Guiana\u00ae\u0d21\u0d1a\u0d4d\u0d1a\u0d4d \u0d17\u0d2f\u0d3e\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Omsk\u00ae\u0d13\u0d02\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d13\u0d02\u0d38\u0d4d\u0d15\u0d4d  \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Easter\u00ae\u0d08\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d30\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d08\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d30\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Hong_Kong\u00ae\u0d39\u0d4b\u0d19\u0d4d \u0d15\u0d4b\u0d19\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d39\u0d4b\u0d19\u0d4d \u0d15\u0d4b\u0d19\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00ae\u0d35\u0d4d\u200c\u0d33\u0d3e\u0d21\u0d3f\u0d35\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d35\u0d4d\u200c\u0d33\u0d3e\u0d21\u0d3f\u0d35\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Aqtobe\u00ae\u0d05\u0d16\u0d4d\u0d24\u0d4b\u0d2c\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeAQTT (\u0d05\u0d16\u0d4d\u0d24\u0d4b\u0d2c\u0d4d)\u00ae\u0d05\u0d16\u0d4d\u0d24\u0d4b\u0d2c\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00aeAQTST (\u0d05\u0d16\u0d4d\u0d24\u0d4b\u0d2c\u0d4d)\u00ae\u00a9Chamorro\u00ae\u0d15\u0d2e\u0d4b\u0d31\u0d4b \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Kizilorda\u00ae\u0d15\u0d3f\u0d38\u0d3f\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d3f\u0d38\u0d3f\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Armenia\u00ae\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00aeAMT (\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f)\u00ae\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00aeAMST (\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f)\u00ae\u00a9America_Pacific\u00ae\u0d2a\u0d38\u0d2b\u0d3f\u0d15\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d38\u0d2b\u0d3f\u0d15\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Almaty\u00ae\u0d05\u0d32\u0d4d\u200d\u0d2e\u0d24\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d32\u0d4d\u200d\u0d2e\u0d24\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Tajikistan\u00ae\u0d24\u0d1c\u0d3f\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Anadyr\u00ae\u0d05\u0d28\u0d3e\u0d21\u0d3f\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d28\u0d3e\u0d21\u0d3f\u0d30\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9French_Guiana\u00ae\u0d2b\u0d4d\u0d30\u0d46\u0d1e\u0d4d\u0d1a\u0d4d \u0d17\u0d2f\u0d3e\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00ae\u0d39\u0d35\u0d3e\u0d2f\u0d3f-\u0d05\u0d32\u0d42\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Nepal\u00ae\u0d28\u0d47\u0d2a\u0d4d\u0d2a\u0d3e\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00ae\u0d2c\u0d4d\u0d30\u0d42\u0d23\u0d46 \u0d21\u0d3e\u0d31\u0d41\u0d38\u0d4d\u0d38\u0d32\u0d3e\u0d02 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u0d26\u0d41\u0d37\u0d3e\u0d28\u0d4d\u200d\u0d2c\u0d46 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d26\u0d41\u0d37\u0d3e\u0d28\u0d4d\u200d\u0d2c\u0d46 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Kosrae\u00ae\u0d15\u0d4a\u0d38\u0d4d\u0d31\u0d47 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00ae\u0d2f\u0d46\u0d30\u0d46\u0d35\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d46\u0d30\u0d46\u0d35\u0d3e\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Tokelau\u00ae\u0d31\u0d4d\u0d31\u0d4b\u0d15\u0d4d\u0d15\u0d3f\u0d32\u0d4c \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00ae\u0d2a\u0d30\u0d3e\u0d17\u0d4d\u0d35\u0d47 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d30\u0d3e\u0d17\u0d4d\u0d35\u0d47 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Seychelles\u00ae\u0d38\u0d46\u0d2f\u0d4d\u0d37\u0d46\u0d32\u0d4d\u200d\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00ae\u0d07\u0d38\u0d4d\u0d30\u0d3e\u0d2f\u0d47\u0d32\u0d4d\u200d  \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeIST (\u0d07\u0d38\u0d4d\u0d30\u0d3e\u0d2f\u0d47\u0d32\u0d4d\u200d)\u00ae\u0d07\u0d38\u0d4d\u0d30\u0d3e\u0d2f\u0d47\u0d32\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Cocos\u00ae\u0d15\u0d4a\u0d15\u0d4d\u0d15\u0d4b\u0d38\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Norfolk\u00ae\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d2b\u0d4b\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00ae\u0d35\u0d4b\u0d33\u0d4d\u200d\u0d17\u0d4b\u0d17\u0d4d\u0d30\u0d3e\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d35\u0d4b\u0d33\u0d4d\u200d\u0d17\u0d4b\u0d17\u0d4d\u0d30\u0d3e\u0d21\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Greenland_Western\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9New_Caledonia\u00ae\u0d28\u0d4d\u0d2f\u0d42 \u0d15\u0d3e\u0d32\u0d3f\u0d21\u0d4b\u0d23\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d28\u0d4d\u0d2f\u0d42 \u0d15\u0d3e\u0d32\u0d3f\u0d21\u0d4b\u0d23\u0d3f\u0d2f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9North_Mariana\u00ae\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d4d \u0d2e\u0d31\u0d3f\u0d2f\u0d3e\u0d28\u0d3e \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00ae\u0d28\u0d4d\u0d2f\u0d42\u0d2b\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d28\u0d4d\u0d2f\u0d42\u0d2b\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d\u200c \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Australia_Western\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u200d\u0d35\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d  \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d\u00ae\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u200d\u0d35\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Moscow\u00ae\u0d2e\u0d4b\u0d38\u0d4d\u0d15\u0d4b \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2e\u0d4b\u0d38\u0d4d\u0d15\u0d4b \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Kyrgystan\u00ae\u0d15\u0d3f\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00ae\u0d35\u0d46\u0d28\u0d38\u0d4d\u0d35\u0d47\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00ae\u0d2e\u0d32\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Peru\u00ae\u0d2a\u0d46\u0d31\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d46\u0d31\u0d41 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Christmas\u00ae\u0d15\u0d4d\u0d30\u0d3f\u0d38\u0d4d\u0d2e\u0d38\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9South_Georgia\u00ae\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00aeGST (\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f)\u00ae\u00ae\u00ae\u00a9Korea\u00ae\u0d15\u0d4a\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d4a\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Argentina_Western\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d47 \u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00ae\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d4d\u0d2e\u0d46\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d4d\u0d2e\u0d46\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Pierre_Miquelon\u00ae\u0d2a\u0d3f\u0d2f\u0d31\u0d3f \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2e\u0d3f\u0d15\u0d4d\u0d35\u0d3f\u0d32\u0d4b\u0d23\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d3f\u0d2f\u0d31\u0d3f \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2e\u0d3f\u0d15\u0d4d\u0d35\u0d3f\u0d32\u0d4b\u0d23\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Atlantic\u00ae\u0d05\u0d31\u0d4d\u0d31\u0d4d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d15\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d31\u0d4d\u0d31\u0d4d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d15\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u0d05\u0d32\u0d3e\u0d38\u0d4d\u0d15-\u0d39\u0d35\u0d3e\u0d2f\u0d3f \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d32\u0d3e\u0d38\u0d4d\u0d15-\u0d39\u0d35\u0d3e\u0d2f\u0d3f \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Uzbekistan\u00ae\u0d09\u0d38\u0d4d\u0d2c\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d09\u0d38\u0d4d\u0d2c\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u200c\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Lord_Howe\u00ae\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d39\u0d4b\u0d35\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d39\u0d4b\u0d35\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Hovd\u00ae\u0d39\u0d4c\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d39\u0d4c\u0d21\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Cape_Verde\u00ae\u0d15\u0d46\u0d2f\u0d4d\u0d2a\u0d4d \u0d35\u0d46\u0d30\u0d4d\u200d\u0d21\u0d46 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d46\u0d2f\u0d4d\u0d2a\u0d4d \u0d35\u0d46\u0d30\u0d4d\u200d\u0d21\u0d46 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Tbilisi\u00ae\u0d24\u0d3f\u0d2c\u0d3f\u0d32\u0d40\u0d38\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d24\u0d3f\u0d2c\u0d3f\u0d32\u0d40\u0d38\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Malaysia\u00ae\u0d2e\u0d32\u0d47\u0d37\u0d4d\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Baku\u00ae\u0d2c\u0d3e\u0d15\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2c\u0d3e\u0d15\u0d41 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Reunion\u00ae\u0d31\u0d40\u0d2f\u0d42\u0d23\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Davis\u00ae\u0d21\u0d46\u0d2f\u0d4d\u200c\u0d35\u0d3f\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Noronha\u00ae\u0d2b\u0d46\u0d30\u0d4d\u200d\u0d23\u0d3e\u0d23\u0d4d\u0d1f\u0d4b \u0d21\u0d3f \u0d28\u0d4a\u0d31\u0d4b\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2b\u0d46\u0d30\u0d4d\u200d\u0d23\u0d3e\u0d23\u0d4d\u0d1f\u0d4b \u0d21\u0d3f \u0d28\u0d4a\u0d31\u0d4b\u0d28 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Chatham\u00ae\u0d1a\u0d3e\u0d24\u0d02 \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d1a\u0d3e\u0d24\u0d02 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Syowa\u00ae\u0d38\u0d4d\u0d2f\u0d4b\u0d35 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00ae\u0d05\u0d2b\u0d4d\u0d17\u0d3e\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Samoa\u00ae\u0d38\u0d2e\u0d4b\u0d35\u0d3e \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Palau\u00ae\u0d2a\u0d32\u0d4c \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00ae\u0d2b\u0d4d\u0d30\u0d46\u0d1e\u0d4d\u0d1a\u0d4d \u0d38\u0d24\u0d47\u0d23\u0d4d\u200d \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d05\u0d28\u0d4d\u200d\u0d31\u0d3e\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00ae\u0d38\u0d4b\u0d33\u0d2e\u0d28\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Line_Islands\u00ae\u0d32\u0d48\u0d28\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00ae\u0d07\u0d15\u0d4d\u0d35\u0d21\u0d4b\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00ae\u0d0e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00aeACT (\u0d0e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d30\u0d4d\u200d)\u00ae\u0d0e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d30\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00aeACST (\u0d0e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d30\u0d4d\u200d)\u00ae\u00a9Dacca\u00ae\u0d21\u0d3e\u0d15\u0d4d\u0d15 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00ae\u0d1a\u0d4b\u0d2f\u0d4d\u0d2c\u0d32\u0d4d\u200d\u0d38\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d1a\u0d4b\u0d2f\u0d4d\u0d2c\u0d32\u0d4d\u200d\u0d38\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Africa_Central\u00ae\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Africa_Southern\u00ae\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00ae\u0d05\u0d37\u0d4d\u0d16\u0d3e\u0d2c\u0d3e\u0d26\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d37\u0d4d\u0d16\u0d3e\u0d2c\u0d3e\u0d26\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Bering\u00ae\u0d2c\u0d46\u0d31\u0d3f\u0d19\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeBST (\u0d2c\u0d46\u0d31\u0d3f\u0d19\u0d4d )\u00ae\u0d2c\u0d46\u0d31\u0d3f\u0d19\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00aeBDT (\u0d2c\u0d46\u0d31\u0d3f\u0d19\u0d4d )\u00ae\u00a9Guam\u00ae\u0d17\u0d4d\u0d35\u0d3e\u0d02 \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeGST (\u0d17\u0d4d\u0d35\u0d3e\u0d02)\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00ae\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d37\u0d32\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00ae\u0d2d\u0d42\u0d1f\u0d4d\u0d1f\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Changbai\u00ae\u0d1a\u0d3e\u0d19\u0d4d\u0d2c\u0d2f\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00ae\u0d38\u0d16\u0d3e\u0d32\u0d3f\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d16\u0d3e\u0d32\u0d3f\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Karachi\u00ae\u0d15\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Truk\u00ae\u0d1f\u0d4d\u0d30\u0d15\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00ae\u0d24\u0d3e\u0d37\u0d4d\u0d15\u0d28\u0d4d\u0d26\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d24\u0d3e\u0d37\u0d4d\u0d15\u0d28\u0d4d\u0d26\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Nauru\u00ae\u0d28\u0d4c\u0d31\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Tuvalu\u00ae\u0d24\u0d41\u0d35\u0d3e\u0d32\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00ae\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d40\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d40\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Gilbert_Islands\u00ae\u0d17\u0d3f\u0d32\u0d4d\u200d\u0d2c\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9East_Timor\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d24\u0d3f\u0d2e\u0d42\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00ae\u0d2f\u0d3e\u0d15\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d3e\u0d15\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Pitcairn\u00ae\u0d2a\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d15\u0d46\u0d2f\u0d4d\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00ae\u0d07\u0d31\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d07\u0d31\u0d3e\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Argentina\u00ae\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Tonga\u00ae\u0d31\u0d4d\u0d31\u0d4b\u0d02\u0d17\u0d3e \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d31\u0d4d\u0d31\u0d4b\u0d02\u0d17\u0d3e \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Yukon\u00ae\u0d2f\u0d42\u0d15\u0d4d\u0d15\u0d4b\u0d23\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d42\u0d15\u0d4d\u0d15\u0d23\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9New_Zealand\u00ae\u0d28\u0d4d\u0d2f\u0d42\u0d38\u0d40\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d28\u0d4d\u0d2f\u0d42\u0d38\u0d40\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Magadan\u00ae\u0d2e\u0d17\u0d3e\u0d21\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2e\u0d17\u0d3e\u0d21\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Gambier\u00ae\u0d17\u0d3e\u0d28\u0d4d\u0d2a\u0d3f\u0d2f\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9China\u00ae\u0d1a\u0d48\u0d28\u0d3e \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeCST (\u0d1a\u0d48\u0d28)\u00ae\u0d1a\u0d48\u0d28 \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00aeCDT (\u0d1a\u0d48\u0d28)\u00ae\u00a9Indonesia_Central\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u0d2e\u0d4c\u0d23\u0d4d\u0d1f\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2e\u0d4c\u0d23\u0d4d\u0d1f\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9India\u00ae\u0d07\u0d28\u0d4d\u200d\u200c\u0d21\u0d4d\u0d2f \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00ae\u0d38\u0d42\u0d31\u0d3f\u0d28\u0d3e\u0d02 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u0d38\u0d2e\u0d3e\u0d31 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d2e\u0d3e\u0d31 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Marquesas\u00ae\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d2f\u0d41\u0d38\u0d3e\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Mawson\u00ae\u0d2e\u0d3e\u0d35\u0d4d\u0d38\u0d23\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00ae\u0d2b\u0d3e\u0d15\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2b\u0d3e\u0d15\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Indochina\u00ae\u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d1a\u0d48\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00ae\u0d35\u0d46\u0d2f\u0d4d\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Uruguay\u00ae\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35\u0d46 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35\u0d46 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Chile\u00ae\u0d1a\u0d3f\u0d32\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d1a\u0d3f\u0d32\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Vanuatu\u00ae\u0d35\u0d28\u0d4d\u0d35\u0d3e\u0d24\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d35\u0d28\u0d4d\u0d35\u0d3e\u0d24\u0d41 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Australia_CentralWestern\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d35\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d35\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Brasilia\u00ae\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32  \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Tahiti\u00ae\u0d24\u0d39\u0d3f\u0d24\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d15\u0d38\u0d3e\u0d16\u0d4d\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9DumontDUrville\u00ae\u0d21\u0d4d\u0d2f\u0d42\u0d2e\u0d23\u0d4d\u0d1f\u0d4d \u0d21\u0d3f \u0d2f\u0d42\u0d30\u0d4d\u200d\u0d35\u0d3f\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00ae\u0d31\u0d4a\u0d24\u0d40\u0d31 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Mongolia\u00ae\u0d2f\u0d41\u0d32\u0d3e\u0d28\u0d4d\u200d \u0d2c\u0d3e\u0d31\u0d4d\u0d31\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d41\u0d32\u0d3e\u0d28\u0d4d\u200d \u0d2c\u0d3e\u0d31\u0d4d\u0d31\u0d30\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Frunze\u00ae\u0d2b\u0d4d\u0d30\u0d42\u0d28\u0d4d\u200d\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2b\u0d4d\u0d30\u0d42\u0d28\u0d4d\u200d\u0d38\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Lanka\u00ae\u0d32\u0d19\u0d4d\u0d15 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00ae\u0d15\u0d41\u0d2f\u0d4d\u0d2c\u0d48\u0d37\u0d46\u0d35\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d41\u0d2f\u0d4d\u0d2c\u0d48\u0d37\u0d46\u0d35\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Azores\u00ae\u0d0e\u0d2f\u0d4d\u0d38\u0d4b\u0d30\u0d4d\u200d\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d0e\u0d2f\u0d4d\u0d38\u0d4b\u0d30\u0d4d\u200d\u0d38\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Greenland_Central\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Japan\u00ae\u0d1c\u0d2a\u0d4d\u0d2a\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d1c\u0d2a\u0d4d\u0d2a\u0d3e\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Kwajalein\u00ae\u0d15\u0d4d\u0d35\u0d3e\u0d1c\u0d32\u0d46\u0d2f\u0d4d\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00ae\u0d37\u0d46\u0d35\u0d4d\u0d1a\u0d46\u0d19\u0d4d\u0d15\u0d4b \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d37\u0d46\u0d35\u0d4d\u0d1a\u0d46\u0d19\u0d4d\u0d15\u0d4b \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Pakistan\u00ae\u0d2a\u0d3e\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d3e\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Bolivia\u00ae\u0d2c\u0d4a\u0d33\u0d40\u0d35\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00ae\u0d15\u0d41\u0d15\u0d4d\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d41\u0d15\u0d4d\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d05\u0d30\u0d4d\u200d\u0d26\u0d4d\u0d27 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Kashgar\u00ae\u0d15\u0d3e\u0d37\u0d4d\u0d17\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Vostok\u00ae\u0d35\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Guyana\u00ae\u0d17\u0d2f\u0d3e\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Colombia\u00ae\u0d15\u0d4a\u0d33\u0d02\u0d2c\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d4a\u0d33\u0d02\u0d2c\u0d3f\u0d2f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Galapagos\u00ae\u0d17\u0d3e\u0d32\u0d2a\u0d4d\u0d2a\u0d3e\u0d17\u0d4b\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00ae\u0d15\u0d4d\u0d2f\u0d42\u0d2c \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeCST (\u0d15\u0d4d\u0d2f\u0d42\u0d2c)\u00ae\u0d15\u0d4d\u0d2f\u0d42\u0d2c \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00aeCDT (\u0d15\u0d4d\u0d2f\u0d42\u0d2c )\u00ae\u00a9Myanmar\u00ae\u0d2e\u0d4d\u0d2f\u0d3e\u0d28\u0d4d\u200d\u0d2e\u0d3e\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Niue\u00ae\u0d28\u0d3f\u0d2f\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Mauritius\u00ae\u0d2e\u0d4c\u0d31\u0d3f\u0d37\u0d4d\u0d2f\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00ae\u0d35\u0d3e\u0d32\u0d3f\u0d38\u0d4d \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2b\u0d4d\u0d2f\u0d42\u0d1a\u0d41\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00ae\u0d2e\u0d15\u0d4c \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2e\u0d15\u0d4c \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Aktyubinsk\u00ae\u0d05\u0d15\u0d4d\u0d24\u0d4d\u0d2f\u0d41\u0d2c\u0d3f\u0d28\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d15\u0d4d\u0d24\u0d4d\u0d2f\u0d41\u0d2c\u0d3f\u0d28\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9
+territories.TL=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d24\u0d3f\u0d2e\u0d41\u0d30\u0d4d\u200d
+territories.TK=\u0d1f\u0d4a\u0d15\u0d46\u0d32\u0d3e\u0d35\u0d41
+territories.TJ=\u0d24\u0d3e\u0d1c\u0d3f\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.TH=\u0d24\u0d3e\u0d2f\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d
+territories.TG=\u0d1f\u0d4b\u0d17\u0d4b
+territories.TF=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d \u0d2d\u0d42\u0d2a\u0d4d\u0d30\u0d26\u0d47\u0d36\u0d02
+territories.GY=\u0d17\u0d2f\u0d3e\u0d28
+territories.TD=\u0d1a\u0d3e\u0d21\u0d4d
+territories.GW=\u0d17\u0d3f\u0d28\u0d3f-\u0d2c\u0d3f\u0d38\u0d4b
+territories.GU=\u0d17\u0d4d\u0d35\u0d3e\u0d02
+territories.GT=\u0d17\u0d4d\u0d35\u0d3e\u0d1f\u0d4d\u0d1f\u0d3f\u0d2e\u0d3e\u0d32\u0d3e
+territories.GS=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f\u0d2f\u0d41\u0d02 \u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d38\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d\u200c\u0d35\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d41\u0d02
+territories.GR=\u0d17\u0d4d\u0d30\u0d40\u0d38\u0d4d
+territories.GQ=\u0d07\u0d15\u0d4d\u0d35\u0d3f\u0d31\u0d4d\u0d31\u0d4b\u0d31\u0d3f\u0d2f\u0d32\u0d4d\u200d \u0d17\u0d4d\u0d35\u0d3f\u0d28\u0d3f\u0d2f
+territories.GP=\u0d17\u0d41\u0d35\u0d3e\u0d21\u0d46\u0d32\u0d4b\u0d2a\u0d4d
+territories.SZ=\u0d38\u0d4d\u0d35\u0d3e\u0d38\u0d3f\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d4d
+territories.SY=\u0d38\u0d3f\u0d31\u0d3f\u0d2f
+territories.GN=\u0d17\u0d4d\u0d35\u0d3f\u0d28\u0d3f\u0d2f
+territories.GM=\u0d17\u0d3e\u0d02\u0d2c\u0d3f\u0d2f
+territories.GL=\u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d4d
+territories.SV=\u0d0e\u0d32\u0d4d\u200d \u0d38\u0d3e\u0d32\u0d4d\u0d35\u0d21\u0d4b\u0d30\u0d4d\u200d
+territories.062=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f\u0d47\u0d37\u0d4d\u0d2f
+territories.ST=\u0d38\u0d3e\u0d35\u0d4b \u0d31\u0d4d\u0d31\u0d2e\u0d46 \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2a\u0d4d\u0d30\u0d3f\u0d28\u0d4d\u200d\u0d38\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f
+territories.GI=\u0d1c\u0d3f\u0d2c\u0d4d\u0d30\u0d3e\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d30\u0d4d\u200d
+territories.061=\u0d2a\u0d4b\u0d33\u0d3f\u0d28\u0d47\u0d37\u0d4d\u0d2f
+territories.GH=\u0d18\u0d3e\u0d28
+territories.SR=\u0d38\u0d41\u0d31\u0d3f\u0d28\u0d3e\u0d02
+territories.GG=\u0d17\u0d47\u0d23\u0d4d\u200d\u0d38\u0d3f
+territories.GF=\u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d \u0d17\u0d2f\u0d3e\u0d28
+territories.GE=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d3f\u0d2f
+territories.SO=\u0d38\u0d4b\u0d2e\u0d3e\u0d32\u0d3f\u0d2f
+territories.GD=\u0d17\u0d4d\u0d30\u0d28\u0d47\u0d21
+territories.SN=\u0d38\u0d46\u0d28\u0d17\u0d32\u0d4d\u200d
+territories.SM=\u0d38\u0d3e\u0d28\u0d4d\u200d \u0d2e\u0d31\u0d3f\u0d28\u0d4b
+territories.GB=\u0d2c\u0d4d\u0d30\u0d3f\u0d1f\u0d4d\u0d1f\u0d28\u0d4d\u200d
+territories.SL=\u0d38\u0d3f\u0d2f\u0d47\u0d31\u0d3e \u0d32\u0d3f\u0d2f\u0d4b\u0d23\u0d4d\u200d
+territories.GA=\u0d17\u0d3e\u0d2c\u0d4b\u0d23\u0d4d\u200d
+territories.SK=\u0d38\u0d4d\u0d32\u0d4b\u0d35\u0d3e\u0d15\u0d4d\u0d2f
+territories.SJ=SJ
+territories.SI=\u0d38\u0d4d\u0d32\u0d4b\u0d35\u0d47\u0d28\u0d3f\u0d2f
+territories.SH=\u0d38\u0d46\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d39\u0d46\u0d32\u0d40\u0d28
+territories.SG=\u0d38\u0d3f\u0d02\u0d17\u0d2a\u0d4d\u0d2a\u0d41\u0d30\u0d4d\u200d
+territories.SE=\u0d38\u0d4d\u0d35\u0d40\u0d21\u0d28\u0d4d\u200d
+territories.SD=\u0d38\u0d41\u0d21\u0d3e\u0d28\u0d4d\u200d
+territories.SC=\u0d38\u0d46\u0d2f\u0d4d\u0d37\u0d46\u0d32\u0d4d\u200d\u0d38\u0d4d
+territories.SB=\u0d38\u0d4b\u0d33\u0d2e\u0d28\u0d4d\u200d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.SA=\u0d38\u0d57\u0d26\u0d3f \u0d05\u0d31\u0d47\u0d2c\u0d4d\u0d2f
+territories.FR=\u0d2b\u0d4d\u0d30\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d4d
+territories.FO=\u0d2b\u0d31\u0d4b\u0d2f\u0d3f \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.057=\u0d2e\u0d48\u0d15\u0d4d\u0d30\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d17\u0d02
+territories.FM=\u0d2e\u0d48\u0d15\u0d4d\u0d30\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f
+territories.RW=\u0d31\u0d41\u0d35\u0d3e\u0d23\u0d4d\u0d1f
+territories.054=\u0d2e\u0d46\u0d32\u0d28\u0d47\u0d37\u0d4d\u0d2f
+territories.FK=\u0d2b\u0d3e\u0d15\u0d4d\u0d15\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d10\u0d32\u0d28\u0d4d\u200d\u0d31\u0d4d
+territories.053=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d2f\u0d41\u0d02 \u0d28\u0d4d\u0d2f\u0d42\u0d38\u0d3f\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d41\u0d02
+territories.RU=\u0d31\u0d37\u0d4d\u0d2f
+territories.FJ=\u0d2b\u0d3f\u0d1c\u0d3f
+territories.FI=\u0d2b\u0d3f\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d
+territories.RS=\u0d38\u0d46\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f
+territories.RO=\u0d31\u0d4a\u0d2e\u0d3e\u0d28\u0d3f\u0d2f
+territories.RE=\u0d31\u0d40\u0d2f\u0d42\u0d23\u0d3f\u0d2f\u0d28\u0d4d\u200d
+territories.ET=\u0d0e\u0d24\u0d4d\u0d2f\u0d4b\u0d2a\u0d4d\u0d2f
+territories.ES=\u0d38\u0d4d\u0d2a\u0d46\u0d2f\u0d3f\u0d28\u0d4d\u200d
+territories.ER=\u0d0e\u0d31\u0d3f\u0d24\u0d4d\u0d30\u0d3f\u0d2f
+territories.QU=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d2f\u0d28\u0d4d\u200d
+territories.EH=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d38\u0d39\u0d3e\u0d31
+territories.EG=\u0d08\u0d1c\u0d3f\u0d2a\u0d4d\u0d24\u0d4d
+territories.EE=\u0d0e\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d23\u0d3f\u0d2f\u200d
+territories.QO=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d2b\u0d4b\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d
+territories.EC=\u0d07\u0d15\u0d4d\u0d35\u0d21\u0d4b\u0d30\u0d4d\u200d
+territories.DZ=\u0d05\u0d33\u0d4d\u200d\u0d1c\u0d40\u0d30\u0d3f\u0d2f
+territories.QA=\u0d16\u0d24\u0d4d\u0d24\u0d30\u0d4d\u200d
+territories.039=\u0d24\u0d46\u0d15\u0d4d\u0d15\u0d47 \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2a\u0d4d
+territories.DO=\u0d21\u0d4a\u0d2e\u0d3f\u0d28\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d31\u0d3f\u0d2a\u0d4d\u0d2a\u0d2c\u0d4d\u0d32\u0d3f\u0d15\u0d4d
+territories.PY=\u0d2a\u0d30\u0d3e\u0d17\u0d4d\u0d35\u0d47
+territories.DM=\u0d21\u0d4a\u0d2e\u0d3f\u0d28\u0d3f\u0d15\u0d4d\u0d15
+territories.035=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d2a\u0d42\u0d30\u0d4d\u200d\u0d35\u0d4d\u0d35\u0d47\u0d37\u0d4d\u0d2f
+territories.PW=\u0d2a\u0d32\u0d3e\u0d35\u0d41
+territories.034=\u0d24\u0d46\u0d15\u0d4d\u0d15\u0d47 \u0d0f\u0d37\u0d4d\u0d2f
+territories.DK=\u0d21\u0d46\u0d28\u0d4d\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d4d
+territories.DJ=\u0d1c\u0d3f\u0d2c\u0d42\u0d1f\u0d4d\u0d1f\u0d3f
+territories.PT=\u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d32\u0d4d\u200d
+territories.PS=\u0d2a\u0d3e\u0d32\u0d38\u0d4d\u0d24\u0d40\u0d28\u0d4d\u200d
+territories.030=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d0f\u0d37\u0d4d\u0d2f
+territories.PR=\u0d2a\u0d4d\u0d2f\u0d42\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d4b \u0d31\u0d3f\u0d15\u0d4d\u0d15\u0d4b
+territories.DE=\u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d3f
+territories.PN=\u0d2a\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d15\u0d46\u0d2f\u0d4d\u0d28\u0d4d\u200d
+territories.PL=\u0d2a\u0d4b\u0d33\u0d23\u0d4d\u0d1f\u0d4d
+territories.PK=\u0d2a\u0d3e\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.PH=\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d48\u0d28\u0d4d\u200d\u0d38\u0d4d
+territories.PG=PG
+territories.PF=\u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d \u0d2a\u0d4b\u0d33\u0d3f\u0d28\u0d47\u0d37\u0d4d\u0d2f
+territories.CZ=\u0d1a\u0d46\u0d15\u0d4d\u0d15\u0d4d \u0d31\u0d3f\u0d2a\u0d4d\u0d2a\u0d2c\u0d4d\u0d32\u0d3f\u0d15\u0d4d
+territories.PE=\u0d2a\u0d46\u0d31\u0d41
+territories.CY=\u0d38\u0d48\u0d2a\u0d4d\u0d30\u0d38\u0d4d\u0d38\u0d4d
+territories.CX=\u0d15\u0d4d\u0d30\u0d3f\u0d38\u0d4d\u0d2e\u0d38\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d
+territories.CV=\u0d15\u0d47\u0d2a\u0d4d\u0d2a\u0d4d \u0d35\u0d46\u0d30\u0d4d\u200d\u0d21\u0d46
+territories.PA=\u0d2a\u0d28\u0d3e\u0d2e
+territories.CU=\u0d15\u0d4d\u0d2f\u0d42\u0d2c
+territories.CR=\u0d15\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d31\u0d3f\u0d15\u0d4d\u0d15
+territories.029=\u0d15\u0d30\u0d40\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+territories.CO=\u0d15\u0d4a\u0d33\u0d02\u0d2c\u0d3f\u0d2f
+territories.CN=\u0d1a\u0d48\u0d28
+territories.CM=\u0d15\u0d3e\u0d2e\u0d31\u0d42\u0d23\u0d4d\u200d
+territories.CL=\u0d1a\u0d3f\u0d32\u0d3f
+territories.CK=\u0d15\u0d42\u0d15\u0d4d\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.021=\u0d35\u0d1f\u0d15\u0d4d\u0d15\u0d47 \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.CI=\u0d10\u0d35\u0d31\u0d3f \u0d15\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d
+territories.CH=\u0d38\u0d4d\u0d35\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d30\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d
+territories.CG=\u0d15\u0d4b\u0d02\u0d17\u0d4b - \u0d2c\u0d4d\u0d30\u0d3e\u0d38\u0d3e\u0d35\u0d3f\u0d32\u0d4d\u200d
+territories.CF=\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d31\u0d3f\u0d2a\u0d4d\u0d2a\u0d2c\u0d4d\u0d32\u0d3f\u0d15\u0d4d
+territories.CD=\u0d15\u0d4b\u0d02\u0d17\u0d4b - \u0d15\u0d3f\u0d28\u0d4d\u200d\u0d37\u0d3e\u0d38
+territories.CC=\u0d15\u0d4b\u0d15\u0d4d\u0d15\u0d38\u0d4d
+territories.OM=\u0d12\u0d2e\u0d3e\u0d28\u0d4d\u200d
+territories.CA=\u0d15\u0d3e\u0d28\u0d21
+territories.419=\u0d32\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d2f\u0d41\u0d02 \u0d15\u0d30\u0d40\u0d2c\u0d3f\u0d2f\u0d28\u0d41\u0d02
+territories.BZ=\u0d2c\u0d46\u0d32\u0d40\u0d38\u0d4d
+territories.BY=\u0d2c\u0d32\u0d3e\u0d31\u0d38\u0d4d
+territories.BW=\u0d2c\u0d4b\u0d1f\u0d4d\u0d38\u0d4d\u0d35\u0d3e\u0d28
+territories.BV=\u0d2c\u0d4c\u0d35\u0d31\u0d4d\u0d31\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d
+territories.BT=\u0d2d\u0d42\u0d1f\u0d4d\u0d1f\u0d3e\u0d28\u0d4d\u200d
+territories.BS=\u0d2c\u0d39\u0d3e\u0d2e\u0d3e\u0d38\u0d4d
+territories.BR=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d4d\u200d
+territories.019=\u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d38\u0d4d
+territories.018=\u0d24\u0d46\u0d15\u0d4d\u0d15\u0d47 \u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.NZ=\u0d28\u0d4d\u0d2f\u0d42\u0d38\u0d3f\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d4d
+territories.017=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.BO=\u0d2c\u0d4a\u0d33\u0d40\u0d35\u0d3f\u0d2f
+territories.BN=\u0d2c\u0d4d\u0d30\u0d42\u0d23\u0d2f\u0d4d
+territories.015=\u0d09\u0d24\u0d4d\u0d24\u0d30\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.BM=\u0d2c\u0d30\u0d4d\u200d\u0d2e\u0d41\u0d21
+territories.014=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.013=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f\u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.NU=\u0d28\u0d4d\u0d2f\u0d42\u0d35\u0d47
+territories.BJ=\u0d2c\u0d46\u0d28\u0d3f\u0d28\u0d4d\u200d
+territories.011=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.BI=\u0d2c\u0d41\u0d31\u0d41\u0d23\u0d4d\u0d1f\u0d3f
+territories.172=\u0d38\u0d4d\u0d35\u0d24\u0d28\u0d4d\u0d24\u0d4d\u0d30\u0d30\u0d3e\u0d37\u0d4d\u0d1f\u0d4d\u0d30\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d15\u0d4b\u0d2e\u0d23\u0d4d\u200d\u200c\u0d35\u0d46\u0d32\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d4d
+territories.BH=\u0d2c\u0d39\u0d4d\u0d31\u0d48\u0d28\u0d4d\u200d
+territories.NR=\u0d28\u0d4c\u0d31\u0d42
+territories.BG=\u0d2c\u0d33\u0d4d\u200d\u0d17\u0d47\u0d31\u0d3f\u0d2f
+territories.BF=\u0d2c\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f\u0d28\u0d3e \u0d2b\u0d3e\u0d38\u0d4b
+territories.NP=\u0d28\u0d47\u0d2a\u0d4d\u0d2a\u0d3e\u0d33\u0d4d\u200d
+territories.BE=\u0d2c\u0d46\u0d32\u0d4d\u200d\u0d1c\u0d3f\u0d2f\u0d02
+territories.ZZ=\u0d05\u0d31\u0d3f\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d06\u0d2f \u0d2a\u0d4d\u0d30\u0d26\u0d47\u0d36\u0d02
+territories.NO=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d35\u0d46
+territories.BD=\u0d2c\u0d02\u0d17\u0d4d\u0d32\u0d3e\u0d26\u0d47\u0d36\u0d4d
+territories.BB=\u0d2c\u0d3e\u0d30\u0d4d\u200d\u0d2c\u0d21\u0d4b\u0d38\u0d4d
+territories.ZW=\u0d38\u0d3f\u0d02\u0d2c\u0d3e\u0d35\u0d46
+territories.NL=\u0d28\u0d46\u0d24\u0d30\u0d4d\u200d\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d
+territories.BA=\u0d2c\u0d4b\u0d38\u0d4d\u0d28\u0d3f\u0d2f \u0d39\u0d46\u0d30\u0d4d\u200d\u0d38\u0d17\u0d4b\u0d35\u0d3f\u0d28
+territories.NI=\u0d28\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d30\u0d17\u0d4d\u0d35
+territories.NG=\u0d28\u0d48\u0d1c\u0d40\u0d30\u0d3f\u0d2f
+territories.AZ=\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d48\u0d1c\u0d3e\u0d28\u0d4d\u200d
+territories.NE=\u0d28\u0d48\u0d17\u0d30\u0d4d\u200d
+territories.AX=\u0d05\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.AW=\u0d05\u0d31\u0d41\u0d2c
+territories.ZM=\u0d38\u0d3e\u0d02\u0d2c\u0d3f\u0d2f
+territories.NA=\u0d28\u0d2e\u0d40\u0d2c\u0d3f\u0d2f
+territories.AU=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f
+territories.AT=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d3f\u0d2f
+territories.AS=\u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d3e\u0d2e\u0d4b\u0d35
+territories.AR=\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28
+territories.AQ=\u0d05\u0d28\u0d4d\u200d\u0d31\u0d3e\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d15\u0d4d\u0d15
+territories.009=\u0d38\u0d2e\u0d41\u0d26\u0d4d\u0d30\u0d30\u0d3e\u0d37\u0d4d\u0d1f\u0d4d\u0d30\u0d19\u0d4d\u0d19\u0d33\u0d4d\u200d
+territories.MZ=\u0d2e\u0d4a\u0d38\u0d3e\u0d02\u0d2c\u0d3f\u0d15\u0d4d\u0d15\u0d4d
+territories.AO=\u0d05\u0d02\u0d17\u0d4b\u0d33
+territories.MY=\u0d2e\u0d32\u0d47\u0d37\u0d4d\u0d2f
+territories.AN=\u0d28\u0d46\u0d24\u0d30\u0d4d\u200d\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d \u0d06\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d32\u0d3f\u0d38\u0d4d
+territories.MX=\u0d2e\u0d46\u0d15\u0d4d\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d4b
+territories.AM=\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f
+territories.005=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.MW=\u0d2e\u0d32\u0d3e\u0d35\u0d3f
+territories.AL=\u0d05\u0d32\u0d4d\u200d\u0d2c\u0d47\u0d28\u0d3f\u0d2f
+territories.MV=\u0d2e\u0d3e\u0d32\u0d3f\u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d
+territories.003=\u0d35\u0d1f\u0d15\u0d4d\u0d15\u0d47 \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2d\u0d42\u0d16\u0d23\u0d4d\u0d21\u0d02
+territories.ZA=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.MU=\u0d2e\u0d4c\u0d31\u0d40\u0d37\u0d4d\u0d2f\u0d38\u0d4d
+territories.002=\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.MT=\u0d2e\u0d3e\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f
+territories.AI=\u0d06\u0d28\u0d4d\u200d\u0d17\u0d4d\u0d35\u0d3f\u0d32\u0d4d\u0d32
+territories.001=\u0d32\u0d4b\u0d15\u0d02
+territories.MS=\u0d2e\u0d4b\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d46\u0d31\u0d3e\u0d31\u0d4d\u0d31\u0d4d
+territories.MR=\u0d2e\u0d4c\u0d31\u0d3f\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d3f\u0d2f
+territories.AG=\u0d06\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d17\u0d4d\u0d35 \u0d06\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d2c\u0d30\u0d4d\u200d\u0d2c\u0d41\u0d21
+territories.MQ=\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d40\u0d28\u0d3f\u0d15\u0d4d
+territories.AF=\u0d05\u0d2b\u0d4d\u0d17\u0d3e\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.MP=\u0d09\u0d24\u0d4d\u0d24\u0d30 \u0d2e\u0d31\u0d3f\u0d2f\u0d3e\u0d28\u0d3e \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.AE=\u0d38\u0d02\u0d2f\u0d41\u0d15\u0d4d\u0d24 \u0d05\u0d31\u0d2c\u0d4d \u0d30\u0d3e\u0d37\u0d4d\u0d1f\u0d4d\u0d30\u0d02
+territories.MO=\u0d2e\u0d15\u0d4d\u0d15\u0d3e\u0d35\u0d4b
+territories.AD=\u0d05\u0d28\u0d4d\u200d\u0d1f\u0d4b\u0d31
+territories.MN=\u0d2e\u0d02\u0d17\u0d4b\u0d33\u0d3f\u0d2f
+territories.MM=\u0d2e\u0d4d\u0d2f\u0d3e\u0d28\u0d4d\u200d\u0d2e\u0d3e\u0d30\u0d4d\u200d
+territories.ML=\u0d2e\u0d3e\u0d32\u0d3f
+territories.MK=\u0d2e\u0d3e\u0d38\u0d3f\u0d21\u0d4b\u0d23\u0d3f\u0d2f
+territories.YT=\u0d2e\u0d2f\u0d4b\u0d1f\u0d4d\u0d1f\u0d4d
+territories.MH=\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d37\u0d32\u0d4d\u200d\u200d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.MG=\u0d2e\u0d21\u0d17\u0d3e\u0d38\u0d4d\u0d15\u0d30\u0d4d\u200d
+territories.MF=\u0d38\u0d46\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d28\u0d4d\u200d
+territories.ME=\u0d2e\u0d4b\u0d23\u0d4d\u0d1f\u0d47\u0d28\u0d47\u0d17\u0d4d\u0d30\u0d4b
+territories.MD=\u0d2e\u0d33\u0d4d\u200d\u0d21\u0d4b\u0d35
+territories.MC=\u0d2e\u0d4a\u0d23\u0d4b\u0d15\u0d4d\u0d15\u0d4a
+territories.MA=\u0d2e\u0d4a\u0d31\u0d4b\u0d15\u0d4d\u0d15\u0d4a
+territories.YE=\u0d2f\u0d2e\u0d28\u0d4d\u200d
+territories.LY=\u0d32\u0d3f\u0d2c\u0d3f\u0d2f
+territories.LV=\u0d32\u0d3e\u0d24\u0d4d\u0d35\u0d3f\u0d2f
+territories.155=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2a\u0d4d
+territories.LU=\u0d32\u0d15\u0d4d\u0d38\u0d02\u0d2c\u0d30\u0d4d\u200d\u0d17\u0d4d
+territories.154=\u0d35\u0d1f\u0d15\u0d4d\u0d15\u0d47 \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2a\u0d4d
+territories.LT=\u0d32\u0d3f\u0d24\u0d4d\u0d35\u0d3e\u0d28\u0d3f\u0d2f
+territories.LS=\u0d32\u0d46\u0d38\u0d4b\u0d24\u0d4d\u0d24\u0d4b
+territories.LR=\u0d32\u0d48\u0d2c\u0d40\u0d30\u0d3f\u0d2f
+territories.151=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2a\u0d4d
+territories.150=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2a\u0d4d
+territories.LK=\u0d36\u0d4d\u0d30\u0d40\u0d32\u0d19\u0d4d\u0d15
+territories.LI=\u0d32\u0d48\u0d1a\u0d4d\u0d1f\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d4d\u200d
+territories.LC=\u0d38\u0d46\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d32\u0d42\u0d38\u0d3f\u0d2f
+territories.LB=\u0d32\u0d2c\u0d28\u0d4b\u0d23\u0d4d\u200d
+territories.LA=\u0d32\u0d3e\u0d35\u0d4b\u0d38\u0d4d
+territories.KZ=\u0d15\u0d38\u0d3e\u0d16\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.KY=\u0d15\u0d47\u0d2f\u0d4d\u0d2e\u0d3e\u0d28\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.KW=\u0d15\u0d41\u0d35\u0d48\u0d31\u0d4d\u0d31\u0d4d
+territories.145=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e\u0d47\u0d37\u0d4d\u0d2f
+territories.143=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f\u0d47\u0d37\u0d4d\u0d2f
+territories.142=\u0d0f\u0d37\u0d4d\u0d2f
+territories.KR=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d15\u0d4a\u0d31\u0d3f\u0d2f
+territories.KP=\u0d09\u0d24\u0d4d\u0d24\u0d30\u0d15\u0d4a\u0d31\u0d3f\u0d2f
+territories.KN=\u0d38\u0d46\u0d2f\u0d4d\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d15\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d41\u0d02 \u0d28\u0d46\u0d35\u0d3f\u0d38\u0d41\u0d02
+territories.KM=\u0d15\u0d4b\u0d2e\u0d31\u0d4b\u0d38\u0d4d
+territories.KI=\u0d15\u0d3f\u0d30\u0d3f\u0d2c\u0d3e\u0d24\u0d4d\u0d24\u0d3f
+territories.WS=\u0d38\u0d3e\u0d2e\u0d4b\u0d35
+territories.KH=\u0d15\u0d02\u0d2c\u0d4b\u0d21\u0d3f\u0d2f
+territories.KG=\u0d15\u0d3f\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.KE=\u0d15\u0d46\u0d28\u0d3f\u0d2f
+territories.WF=\u0d35\u0d3e\u0d32\u0d3f\u0d38\u0d4d \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2b\u0d4d\u0d2f\u0d41\u0d1a\u0d42\u0d28
+territories.JP=\u0d1c\u0d2a\u0d4d\u0d2a\u0d3e\u0d28\u0d4d\u200d
+territories.JO=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d26\u0d4d\u0d26\u0d3e\u0d28\u0d4d\u200d
+territories.JM=\u0d1c\u0d2e\u0d48\u0d15\u0d4d\u0d15
+territories.VU=\u0d35\u0d28\u0d4d\u0d35\u0d3e\u0d24\u0d4d\u0d24\u0d41
+territories.JE=\u0d1c\u0d47\u0d34\u0d4d\u0d38\u0d3f
+territories.VN=\u0d35\u0d3f\u0d2f\u0d31\u0d4d\u0d31\u0d4d\u0d28\u0d3e\u0d02
+territories.VI=\u0d2f\u0d41 \u0d0e\u0d38\u0d4d \u0d35\u0d46\u0d30\u0d4d\u200d\u0d1c\u0d3f\u0d28\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.VG=\u0d2c\u0d4d\u0d30\u0d3f\u0d1f\u0d4d\u0d1f\u0d40\u0d37\u0d4d \u0d35\u0d3f\u0d30\u0d4d\u200d\u0d1c\u0d3f\u0d28\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.VE=\u0d35\u0d46\u0d28\u0d3f\u0d38\u0d4d\u0d35\u0d47\u0d32
+territories.VA=\u0d35\u0d24\u0d4d\u0d24\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d28\u0d4d\u200d
+territories.IT=\u0d07\u0d31\u0d4d\u0d31\u0d32\u0d3f
+territories.IS=\u0d10\u0d38\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u0d31\u0d4d
+territories.IR=\u0d07\u0d31\u0d3e\u0d28\u0d4d\u200d
+territories.IQ=\u0d07\u0d31\u0d3e\u0d15\u0d4d\u0d15\u0d4d
+territories.UZ=\u0d09\u0d38\u0d4d\u0d2c\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.IO=\u0d2c\u0d4d\u0d30\u0d3f\u0d1f\u0d4d\u0d1f\u0d40\u0d37\u0d4d \u0d07\u0d28\u0d4d\u0d24\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2e\u0d39\u0d3e\u0d38\u0d2e\u0d41\u0d26\u0d4d\u0d30 \u0d2a\u0d4d\u0d30\u0d26\u0d47\u0d36\u0d02
+territories.UY=\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35
 territories.IN=\u0d07\u0d28\u0d4d\u0d24\u0d4d\u0d2f
+territories.IM=\u0d10\u0d32\u0d4d\u200d \u0d13\u0d2b\u0d4d \u0d2e\u0d3e\u0d28\u0d4d\u200d
+territories.IL=\u0d07\u0d38\u0d4d\u0d30\u0d2f\u0d47\u0d32\u0d4d\u200d
+territories.US=\u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d10\u0d15\u0d4d\u0d2f\u0d28\u0d3e\u0d1f\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.IE=\u0d05\u0d2f\u0d30\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d
+territories.ID=\u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f
+territories.UG=\u0d09\u0d17\u0d3e\u0d23\u0d4d\u0d1f
+territories.UA=\u0d09\u0d15\u0d4d\u0d30\u0d48\u0d28\u0d4d\u200d
+territories.HU=\u0d39\u0d02\u0d17\u0d31\u0d3f
+territories.HT=\u0d39\u0d46\u0d2f\u0d4d\u0d24\u0d3f
+territories.HR=\u0d15\u0d4d\u0d30\u0d4a\u0d2f\u0d47\u0d37\u0d4d\u0d2f
+territories.TZ=\u0d1f\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d3e\u0d28\u0d3f\u0d2f
+territories.HN=\u0d39\u0d4b\u0d23\u0d4d\u0d1f\u0d41\u0d31\u0d3e\u0d38\u0d4d
+territories.TW=\u0d24\u0d3e\u0d2f\u0d4d\u200c\u0d35\u0d3e\u0d28\u0d4d\u200d
+territories.TV=\u0d24\u0d41\u0d35\u0d3e\u0d32\u0d41
+territories.HK=\u0d39\u0d4b\u0d19\u0d4d \u0d15\u0d4b\u0d19\u0d4d
+territories.TT=\u0d1f\u0d4d\u0d30\u0d3f\u0d28\u0d3f\u0d21\u0d3e\u0d21\u0d41\u0d02 \u0d31\u0d4d\u0d31\u0d4a\u0d2c\u0d3e\u0d17\u0d4b\u0d2f\u0d41\u0d02
+territories.TR=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f
+territories.TO=\u0d1f\u0d4b\u0d02\u0d17
+territories.TN=\u0d1f\u0d41\u0d23\u0d40\u0d37\u0d4d\u0d2f
+territories.TM=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+languages.gwi=\u0d17\u0d4d\u0d35\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d07\u0d28\u0d4d\u200d
+languages.akk=\u0d05\u0d15\u0d4d\u0d15\u0d3e\u0d21\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.eka=\u0d0e\u0d15\u0d3e\u0d1c\u0d41\u0d15\u0d4d
+languages.ijo=\u0d07\u0d1c\u0d4b
+languages.xh=\u0d15\u0d4d\u0d37\u0d4b\u0d38\u0d3e
+languages.sux=\u0d38\u0d41\u0d2e\u0d47\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.sus=\u0d38\u0d41\u0d38\u0d41
+languages.mis=\u0d07\u0d24\u0d30\u0d2d\u0d3e\u0d37
+languages.loz=\u0d32\u0d4b\u0d38\u0d3f
+languages.tog=\u0d28\u0d4d\u0d2f\u0d3e\u0d38\u0d3e \u0d21\u0d4b\u0d19\u0d4d\u0d15
+languages.zbl=\u0d2c\u0d4d\u0d32\u0d3f\u0d38\u0d4d\u200c \u0d1a\u0d3f\u0d24\u0d4d\u0d30\u0d32\u0d3f\u0d2a\u0d3f
+languages.pon=\u0d2a\u0d4a\u0d28\u0d4d\u200d\u0d2a\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.min=\u0d2e\u0d3f\u0d28\u0d3e\u0d19\u0d4d\u0d15\u0d2c\u0d4c
+languages.suk=\u0d38\u0d41\u0d15\u0d41\u0d2e
+languages.wo=\u0d35\u0d4a\u0d33\u0d4b\u0d2b\u0d4d
+languages.lol=\u0d2e\u0d4b\u0d19\u0d4d\u0d15\u0d4b
+languages.kut=\u0d15\u0d41\u0d24\u0d47\u0d28\u0d48
+languages.mic=\u0d2e\u0d3f\u0d15\u0d4d\u0d2e\u0d3e\u0d15\u0d4d
+languages.wa=\u0d35\u0d32\u0d4d\u0d32\u0d42\u0d23\u0d4d\u200d
+languages.kum=\u0d15\u0d41\u0d2e\u0d48\u0d15\u0d4d
+languages.zap=\u0d38\u0d3e\u0d2a\u0d4d\u0d2a\u0d4b\u0d1f\u0d46\u0d15\u0d4d
+languages.ain=\u0d05\u0d2f\u0d3f\u0d28\u0d41
+languages.cus=\u0d15\u0d41\u0d37\u0d3f\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.jbo=\u0d32\u0d4b\u0d1c\u0d4d\u0d2c\u0d3e\u0d28\u0d4d\u200d
+languages.doi=\u0d21\u0d4b\u0d17\u0d4d\u0d30\u0d3f
+languages.zza=\u0d38\u0d3e\u0d38\u0d3e
+languages.vo=\u0d35\u0d4b\u0d33\u0d3e\u0d2a\u0d41\u0d15\u0d4d
+languages.oto=\u0d13\u0d1f\u0d4d\u0d1f\u0d4b\u0d2e\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.vi=\u0d35\u0d3f\u0d2f\u0d31\u0d4d\u0d31\u0d4d\u0d28\u0d3e\u0d2e\u0d40\u0d38\u0d4d
+languages.vai=\u0d35\u0d48
+languages.rar=\u0d30\u0d3e\u0d30\u0d4b\u0d1f\u0d4b\u0d19\u0d4d\u0d15\u0d28\u0d4d\u200d
+languages.ve=\u0d35\u0d46\u0d28\u0d4d\u0d26
+languages.rap=\u0d30\u0d3e\u0d2a\u0d28\u0d42\u0d2f\u0d3f
+languages.raj=\u0d30\u0d3e\u0d1c\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d3f
+languages.ota=\u0d13\u0d1f\u0d4d\u0d1f\u0d4b\u0d2e\u0d28\u0d4d\u200d \u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f\u0d37\u0d4d
+languages.nzi=\u0d38\u0d3f\u0d2e
+languages.nap=\u0d28\u0d46\u0d2a\u0d4d\u0d2a\u0d4b\u0d33\u0d3f\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d
+languages.uz=\u0d09\u0d38\u0d4d\u0d2c\u0d46\u0d15\u0d4d
+languages.uga=\u0d09\u0d17\u0d31\u0d3f\u0d1f\u0d4d\u0d1f\u0d3f\u0d15\u0d4d
+languages.tmh=\u0d1f\u0d2e\u0d37\u0d47\u0d15\u0d4d
+languages.nai=\u0d35\u0d1f\u0d15\u0d4d\u0d15\u0d47 \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.nah=\u0d28\u0d3e\u0d39\u0d4d\u0d35\u0d3e\u0d33\u0d4d\u200d\u200d\u0d1f\u0d4d\u0d1f\u0d4d
+languages.ur=\u0d09\u0d31\u0d41\u0d26\u0d41
+languages.fat=\u0d2b\u0d28\u0d4d\u200d\u0d31\u0d46
+languages.uk=\u0d09\u0d15\u0d4d\u0d30\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.egy=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d08\u0d1c\u0d3f\u0d2a\u0d4d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.zxx=\u0d2d\u0d3e\u0d37\u0d47\u0d24\u0d30\u0d02
+languages.ug=\u0d09\u0d2f\u0d4d\u0d18\u0d41\u0d30\u0d4d\u200d
+languages.fan=\u0d2b\u0d19\u0d4d
+languages.ssa=\u0d28\u0d3f\u0d33\u0d4b-\u0d38\u0d39\u0d3e\u0d31\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.mga=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d10\u0d31\u0d3f\u0d37\u0d4d
+languages.bat=\u0d2c\u0d3e\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.nyo=\u0d28\u0d4d\u0d2f\u0d4b\u0d31\u0d4b
+languages.bas=\u0d2c\u0d38
+languages.nyn=\u0d28\u0d4d\u0d2f\u0d3e\u0d28\u0d4d\u200d\u0d15\u0d32\u0d47
+languages.nym=\u0d28\u0d4d\u0d2f\u0d3e\u0d02\u0d35\u0d47\u0d38\u0d3f
+languages.gsw=\u0d38\u0d4d\u0d35\u0d3f\u0d38\u0d4d \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.hmn=\u0d2e\u0d4b\u0d19\u0d4d
+languages.ban=\u0d2c\u0d3e\u0d32\u0d3f\u0d28\u0d40\u0d38\u0d4d
+languages.osa=\u0d12\u0d38\u0d47\u0d1c\u0d4d
+languages.bal=\u0d2c\u0d32\u0d42\u0d1a\u0d3f
+languages.ty=\u0d1f\u0d3e\u0d39\u0d3f\u0d24\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.bai=\u0d2c\u0d3e\u0d2e\u0d3f\u0d32\u0d15\u0d47 \u0d2d\u0d3e\u0d37
+languages.tw=\u0d24\u0d4d\u0d35\u0d3f
+languages.srr=\u0d38\u0d46\u0d31\u0d30\u0d4d\u200d
+languages.tli=\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d35\u0d3f\u0d31\u0d4d\u0d31\u0d4d
+languages.tlh=\u0d15\u0d4d\u0d32\u0d3f\u0d19\u0d4d\u0d17\u0d4b\u0d23\u0d4d\u200d
+languages.tt=\u0d1f\u0d3e\u0d1f\u0d4d\u0d1f\u0d3e\u0d30\u0d4d\u200d
+languages.ts=\u0d24\u0d4d\u0d38\u0d4b\u0d02\u0d17
+languages.srn=\u0d36\u0d4d\u0d30\u0d3e\u0d28\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d19\u0d4d\u0d15\u0d4b
+languages.bad=\u0d2c\u0d28\u0d4d\u200d\u0d21
+languages.tr=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f
+languages.to=\u0d1f\u0d4b\u0d02\u0d17\u0d28\u0d4d\u200d
+languages.tn=\u0d24\u0d4d\u0d38\u0d4d\u0d35\u0d3e\u0d28
+languages.tl=\u0d24\u0d17\u0d3e\u0d32\u0d4b\u0d17\u0d4d
+languages.tk=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d2e\u0d46\u0d28\u0d4d\u200d
+languages.ti=\u0d24\u0d3f\u0d17\u0d4d\u0d30\u0d3f\u0d28\u0d4d\u0d2f
+languages.th=\u0d24\u0d3e\u0d2f\u0d4d
+languages.kru=\u0d15\u0d41\u0d30\u0d41\u0d16\u0d4d
+languages.tg=\u0d24\u0d3e\u0d1c\u0d3f\u0d15\u0d4d
+languages.byn=\u0d2c\u0d4d\u0d32\u0d3f\u0d28\u0d4d\u200d
+languages.te=\u0d24\u0d46\u0d32\u0d41\u0d19\u0d4d\u0d15\u0d4d
+languages.kro=\u0d15\u0d4d\u0d30\u0d41
+languages.csb=\u0d15\u0d3e\u0d37\u0d41\u0d2c\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.ta=\u0d24\u0d2e\u0d3f\u0d34\u0d4d
+languages.krl=\u0d15\u0d30\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.tkl=\u0d1f\u0d4a\u0d15\u0d4d\u0d15\u0d47\u0d32\u0d4c
+languages.efi=\u0d0e\u0d2b\u0d3f\u0d15\u0d4d
+languages.sw=\u0d38\u0d4d\u0d35\u0d3e\u0d39\u0d3f\u0d32\u0d3f
+languages.sv=\u0d38\u0d4d\u0d35\u0d40\u0d21\u0d3f\u0d37\u0d4d
+languages.su=\u0d38\u0d41\u0d21\u0d3e\u0d28\u0d40\u0d38\u0d4d
+languages.krc=\u0d15\u0d30\u0d1a\u0d48-\u0d2c\u0d3e\u0d32\u0d4d\u200d\u0d15\u0d30\u0d4d\u200d
+languages.st=\u0d38\u0d46\u0d38\u0d4b\u0d24\u0d4b
+languages.ss=\u0d38\u0d4d\u0d35\u0d3e\u0d31\u0d4d\u0d31\u0d3f
+languages.sr=\u0d38\u0d46\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.sq=\u0d05\u0d32\u0d4d\u200d\u0d2c\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.men=\u0d2e\u0d46\u0d28\u0d4d\u200d\u0d21\u0d46
+languages.crp=\u0d2e\u0d3f\u0d36\u0d4d\u0d30\u0d2d\u0d3e\u0d37
+languages.so=\u0d38\u0d4b\u0d2e\u0d3e\u0d32\u0d3f
+languages.afh=\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d39\u0d3f\u0d32\u0d3f
+languages.sn=\u0d37\u0d4b\u0d23\u0d3e
+languages.sm=\u0d38\u0d2e\u0d4b\u0d35\u0d28\u0d4d\u200d
+languages.sl=\u0d38\u0d4d\u0d32\u0d4b\u0d35\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.grc=\u0d2a\u0d41\u0d30\u0d3e\u0d24\u0d28 \u0d2f\u0d35\u0d28 \u0d2d\u0d3e\u0d37
+languages.sk=\u0d38\u0d4d\u0d32\u0d4b\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d4d
+languages.grb=\u0d17\u0d4d\u0d30\u0d2c\u0d4a
+languages.si=\u0d38\u0d3f\u0d02\u0d39\u0d33
+languages.crh=\u0d15\u0d4d\u0d30\u0d3f\u0d2e\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d1f\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f\u0d37\u0d4d
+languages.afa=\u0d06\u0d2b\u0d4d\u0d30\u0d4b-\u0d0f\u0d37\u0d4d\u0d2f\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.sg=\u0d38\u0d3e\u0d19\u0d4d\u0d15\u0d4b
+languages.se=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d47\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d3f
+languages.sd=\u0d38\u0d3f\u0d28\u0d4d\u0d27\u0d3f
+languages.udm=\u0d09\u0d21\u0d4d\u0d2e\u0d41\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d4d
+languages.sc=\u0d38\u0d30\u0d4d\u200d\u0d21\u0d3f\u0d28\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.sa=\u0d38\u0d02\u0d38\u0d4d\u0d15\u0d43\u0d24\u0d02
+languages.rw=\u0d15\u0d3f\u0d28\u0d4d\u0d2f\u0d30\u0d4d\u200d\u0d35\u0d23\u0d4d\u0d1f
+languages.nwc=\u0d15\u0d4d\u0d32\u0d3e\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d32\u0d4d\u200d \u0d28\u0d47\u0d35\u0d3e\u0d30\u0d3f
+languages.ru=\u0d31\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.mdr=\u0d2e\u0d23\u0d4d\u0d21\u0d3e\u0d30\u0d4d\u200d
+languages.ro=\u0d31\u0d4a\u0d2e\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.rn=\u0d31\u0d41\u0d23\u0d4d\u0d1f\u0d3f
+languages.rm=\u0d30\u0d39\u0d2f\u0d4d\u0d1f\u0d4d\u0d1f\u0d4b-\u0d31\u0d4b\u0d2e\u0d28\u0d4d\u200d\u0d38\u0d4d
+languages.fr_CH=\u0d38\u0d4d\u0d35\u0d3f\u0d38\u0d4d \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
+languages.mdf=\u0d2e\u0d4b\u0d15\u0d4d\u0d37
+languages.tiv=\u0d1f\u0d3f\u0d35\u0d4d
+languages.fr_CA=\u0d15\u0d28\u0d47\u0d21\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
+languages.ady=\u0d05\u0d21\u0d48\u0d17\u0d47
+languages.zun=\u0d38\u0d41\u0d28\u0d3f
+languages.kpe=\u0d15\u0d2a\u0d46\u0d32\u0d4d\u0d32\u0d47
+languages.qu=\u0d15\u0d4d\u0d35\u0d46\u0d1a\u0d4d\u0d1a\u0d41\u0d35
+languages.tig=\u0d1f\u0d48\u0d17\u0d4d\u0d30\u0d3f
+languages.son=\u0d38\u0d4b\u0d19\u0d4d\u0d17\u0d48
+languages.cpp=\u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d40\u0d38\u0d4d \u0d05\u0d27\u0d3f\u0d37\u0d4d\u0d1f\u0d3f\u0d24 \u0d15\u0d4d\u0d30\u0d3f\u0d2f\u0d4b\u0d33\u0d4b \u0d2a\u0d3f\u0d21\u0d4d\u0d17\u0d3f\u0d28\u0d4b
+languages.rup=\u0d06\u0d30\u0d4b\u0d2e\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.sog=\u0d38\u0d4b\u0d1c\u0d3f\u0d21\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.ada=\u0d05\u0d21\u0d3e\u0d19\u0d4d\u0d17\u0d2e\u0d3f
+languages.kos=\u0d15\u0d4a\u0d38\u0d31\u0d47\u0d2f\u0d28\u0d4d\u200d
+languages.hit=\u0d39\u0d3f\u0d31\u0d4d\u0d31\u0d48\u0d31\u0d4d\u0d31\u0d47
+languages.cpf=\u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d \u0d05\u0d27\u0d3f\u0d37\u0d4d\u0d1f\u0d3f\u0d24 \u0d2e\u0d3f\u0d36\u0d4d\u0d30\u0d2d\u0d3e\u0d37
+languages.cpe=\u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d \u0d05\u0d27\u0d3f\u0d37\u0d4d\u0d1f\u0d3f\u0d24 \u0d2e\u0d3f\u0d36\u0d4d\u0d30 \u0d2d\u0d3e\u0d37
+languages.him=\u0d39\u0d3f\u0d2e\u0d3e\u0d1a\u0d32\u0d3f
+languages.kok=\u0d15\u0d4a\u0d19\u0d4d\u0d15\u0d23\u0d3f
+languages.hil=\u0d39\u0d3f\u0d32\u0d3f\u0d17\u0d2f\u0d4d\u0d28\u0d4b\u0d23\u0d4d\u200d
+languages.got=\u0d17\u0d4b\u0d25\u0d3f\u0d15\u0d4d\u0d15\u0d4d
+languages.gor=\u0d17\u0d4a\u0d31\u0d4b\u0d28\u0d4d\u200d\u0d31\u0d3e\u0d32\u0d4b
+languages.gon=\u0d17\u0d4b\u0d23\u0d4d\u0d21\u0d3f
+languages.din=\u0d26\u0d3f\u0d28\u0d4d\u200d\u0d15
+languages.nub=\u0d28\u0d41\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.pt=\u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d40\u0d38\u0d4d
+languages.ps=\u0d2a\u0d37\u0d4d\u0d24\u0d41
+languages.fur=\u0d2b\u0d4d\u0d30\u0d3f\u0d2f\u0d41\u0d32\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.phn=\u0d2b\u0d40\u0d28\u0d3f\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.de_CH=\u0d38\u0d4d\u0d35\u0d3f\u0d38\u0d4d \u0d09\u0d1a\u0d4d\u0d1a \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.goh=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d09\u0d1a\u0d4d\u0d1a \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.snk=\u0d38\u0d4b\u0d23\u0d3f\u0d28\u0d4d\u200d\u0d15\u0d46
+languages.cop=\u0d15\u0d4b\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d
+languages.yap=\u0d2f\u0d46\u0d2a\u0d4d\u0d2a\u0d40\u0d38\u0d4d
+languages.ach=\u0d05\u0d15\u0d4b\u0d32\u0d3f
+languages.yao=\u0d2f\u0d3e\u0d35\u0d4b
+languages.phi=\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d40\u0d28\u0d3f \u0d2d\u0d3e\u0d37
+languages.pl=\u0d2a\u0d4b\u0d33\u0d3f\u0d37\u0d4d
+languages.ace=\u0d05\u0d1a\u0d3f\u0d28\u0d40\u0d38\u0d4d
+languages.pi=\u0d2a\u0d3e\u0d32\u0d3f
+languages.pt_PT=\u0d07\u0d2c\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d40\u0d38\u0d4d
+languages.pa=\u0d2a\u0d1e\u0d4d\u0d1a\u0d3e\u0d2c\u0d3f
+languages.bug=\u0d2c\u0d41\u0d17\u0d3f\u0d28\u0d40\u0d38\u0d4d
+languages.iba=\u0d07\u0d2c\u0d3e\u0d28\u0d4d\u200d
+languages.sms=\u0d38\u0d4d\u0d15\u0d4b\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d4d \u0d38\u0d2e\u0d3f
+languages.bua=\u0d2c\u0d41\u0d31\u0d3f\u0d2f\u0d24\u0d4d\u0d24\u0d4d
+languages.mas=\u0d2e\u0d38\u0d48
+languages.smn=\u0d07\u0d28\u0d3e\u0d30\u0d3f \u0d38\u0d3e\u0d2e\u0d3f
+languages.os=\u0d12\u0d38\u0d4d\u0d38\u0d46\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d
+languages.map=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.or=\u0d12\u0d31\u0d3f\u0d2f
+languages.man=\u0d2e\u0d23\u0d4d\u0d21\u0d3f\u0d28\u0d4d\u200d\u0d17\u0d4b
+languages.smj=\u0d32\u0d42\u0d32\u0d40 \u0d38\u0d2e\u0d3f
+languages.smi=\u0d38\u0d2e\u0d3f \u0d2d\u0d3e\u0d37
+languages.mak=\u0d2e\u0d15\u0d3e\u0d38\u0d30\u0d4d\u200d
+languages.om=\u0d12\u0d31\u0d4b\u0d2e\u0d42
+languages.mai=\u0d2e\u0d48\u0d25\u0d3f\u0d32\u0d3f
+languages.oj=\u0d13\u0d1c\u0d3f\u0d2c\u0d4d\u0d35\u0d3e
+languages.mag=\u0d2e\u0d17\u0d3e\u0d39\u0d3f
+languages.mad=\u0d2e\u0d26\u0d41\u0d30\u0d47\u0d38\u0d47
+languages.sma=\u0d24\u0d46\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d05\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3e\u0d2f\u0d3f
+languages.oc=\u0d12\u0d38\u0d3f\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d
+languages.nso=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d47\u0d28\u0d4d\u200d \u0d38\u0d4b\u0d24\u0d4b
+languages.btk=\u0d2c\u0d3e\u0d31\u0d4d\u0d31\u0d15\u0d4d
+languages.myv=\u0d0f\u0d34\u0d4d\u0d38\u0d4d\u0d2f
+languages.es_ES=\u0d07\u0d2c\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d
+languages.de_AT=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.dgr=\u0d21\u0d4b\u0d17\u0d4d\u0d30\u0d3f\u0d2c\u0d4d
+languages.ny=\u0d28\u0d4d\u0d2f\u0d28\u0d4d\u200d\u0d1c
+languages.myn=\u0d2e\u0d3e\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.nv=\u0d28\u0d35\u0d1c\u0d4b
+languages.kmb=\u0d15\u0d3f\u0d02\u0d2c\u0d41\u0d23\u0d4d\u0d1f\u0d41
+languages.nr=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d28\u0d46\u0d21\u0d3f\u0d2c\u0d3f\u0d33\u0d4d\u200d
+languages.gmh=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d09\u0d1a\u0d4d\u0d1a \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.no=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d35\u0d40\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.nn=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d35\u0d40\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d48\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d38\u0d4d
+languages.nl=\u0d21\u0d1a\u0d4d\u0d1a\u0d4d
+languages.root=root
+languages.ng=\u0d21\u0d4b\u0d19\u0d4d\u0d15
+languages.sla=\u0d38\u0d4d\u0d32\u0d47\u0d35\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.ne=\u0d28\u0d47\u0d2a\u0d4d\u0d2a\u0d3e\u0d33\u0d3f
+languages.nd=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d4d \u0d21\u0d46\u0d2c\u0d3f\u0d33\u0d4d\u200d
+languages.cmc=\u0d1a\u0d3e\u0d2e\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.tet=\u0d1f\u0d46\u0d31\u0d4d\u0d31\u0d41\u0d02
+languages.nb=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d35\u0d40\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2c\u0d41\u0d15\u0d4d\u200c\u0d2e\u0d32\u0d4d\u200d
+languages.na=\u0d28\u0d4c\u0d31\u0d41
+languages.ter=\u0d1f\u0d46\u0d31\u0d47\u0d28\u0d4b
+languages.tem=\u0d1f\u0d3f\u0d02\u0d28\u0d47
+languages.my=\u0d2c\u0d30\u0d4d\u200d\u0d2e\u0d40\u0d38\u0d4d
+languages.lez=\u0d32\u0d39\u0d4d\u0d17\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.mt=\u0d2e\u0d3e\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d40\u0d38\u0d4d
+languages.frs=\u0d08\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d3f\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.peo=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d2a\u0d47\u0d30\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.ms=\u0d2e\u0d32\u0d2f
+languages.frr=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d47\u0d28\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d3f\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.mr=\u0d2e\u0d31\u0d3e\u0d20\u0d3f
+languages.fro=\u0d2a\u0d34\u0d2f \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
+languages.mo=\u0d2e\u0d4b\u0d33\u0d4d\u200d\u0d21\u0d3e\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.mn=\u0d2e\u0d02\u0d17\u0d4b\u0d33\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.frm=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
 languages.ml=\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02
+languages.jrb=\u0d1c\u0d42\u0d21\u0d3f\u0d2f\u0d4b-\u0d05\u0d31\u0d2c\u0d3f\u0d15\u0d4d
+languages.mk=\u0d2e\u0d3e\u0d38\u0d3f\u0d21\u0d4b\u0d23\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.mi=\u0d2e\u0d4c\u0d31\u0d3f
+languages.mh=\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d37\u0d32\u0d4d\u0d32\u0d40\u0d38\u0d4d
+languages.mg=\u0d2e\u0d32\u0d17\u0d3e\u0d38\u0d3f
+languages.nqo=\u0d07\u0d28\u0d4d\u200d\u0d15\u0d4b
+languages.mwr=\u0d2e\u0d30\u0d4d\u200d\u0d35\u0d3e\u0d30\u0d3f
+languages.bra=\u0d2c\u0d4d\u0d30\u0d1c\u0d4d
+languages.mwl=\u0d2e\u0d3f\u0d30\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d38\u0d47
+languages.den=\u0d38\u0d4d\u0d32\u0d47\u0d35\u0d4d
+languages.lv=\u0d32\u0d3e\u0d24\u0d4d\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.lu=\u0d32\u0d41\u0d2c-\u0d15\u0d31\u0d4d\u0d31\u0d02\u0d17
+languages.del=\u0d26\u0d32\u0d35\u0d3e\u0d30\u0d46
+languages.lt=\u0d32\u0d3f\u0d24\u0d4d\u0d35\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.lo=\u0d32\u0d3e\u0d35\u0d4b
+languages.ln=\u0d32\u0d3f\u0d02\u0d17\u0d3e\u0d32
+languages.li=\u0d32\u0d3f\u0d02\u0d2c\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d37\u0d4d
+languages.ewo=\u0d0e\u0d35\u0d4b\u0d28\u0d4d\u200d\u0d21\u0d4b
+languages.lg=\u0d17\u0d3e\u0d28\u0d4d\u200d\u0d21
+languages.lb=\u0d32\u0d15\u0d4d\u0d38\u0d02\u0d2c\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d37\u0d4d
+languages.la=\u0d32\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d4d\u200d
+languages.jpr=\u0d1c\u0d42\u0d21\u0d3f\u0d2f\u0d4b-\u0d2a\u0d47\u0d30\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.vot=\u0d35\u0d4b\u0d1f\u0d4d\u0d1f\u0d3f\u0d15\u0d4d
+languages.sit=\u0d1a\u0d40\u0d28-\u0d1f\u0d3f\u0d2c\u0d24\u0d4d\u0d24\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.ky=\u0d15\u0d3f\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d38\u0d4d
+languages.kw=\u0d15\u0d4b\u0d30\u0d4d\u200d\u0d23\u0d3f\u0d37\u0d4d
+languages.kv=\u0d15\u0d4b\u0d2e\u0d3f
+languages.ku=\u0d15\u0d41\u0d30\u0d4d\u200d\u0d26\u0d3f\u0d37\u0d4d
+languages.sio=\u0d38\u0d3f\u0d35\u0d4b\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.ks=\u0d15\u0d3e\u0d36\u0d4d\u0d2e\u0d40\u0d30\u0d3f
+languages.kr=\u0d15\u0d28\u0d42\u0d31\u0d3f
+languages.awa=\u0d05\u0d35\u0d3e\u0d27\u0d3f
+languages.ko=\u0d15\u0d4a\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.kn=\u0d15\u0d28\u0d4d\u0d28\u0d21
+languages.km=\u0d16\u0d2e\u0d30\u0d4d\u200d
+languages.en_GB=\u0d2c\u0d4d\u0d30\u0d3f\u0d1f\u0d4d\u0d1f\u0d40\u0d37\u0d4d \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.kl=\u0d15\u0d32\u0d3e\u0d32\u0d4d\u0d32\u0d3f\u0d38\u0d1f\u0d4d\u0d1f\u0d4d
+languages.kk=\u0d15\u0d38\u0d3e\u0d16\u0d4d
+languages.rom=\u0d31\u0d4b\u0d2e\u0d28\u0d3f
+languages.kj=\u0d15\u0d4d\u0d35\u0d3e\u0d28\u0d4d\u0d2f\u0d2e
+languages.sid=\u0d38\u0d3f\u0d21\u0d3e\u0d2e\u0d4b
+languages.ki=\u0d15\u0d3f\u0d15\u0d42\u0d2f\u0d41
+languages.kg=\u0d15\u0d4b\u0d19\u0d4d\u0d17\u0d4b
+languages.non=\u0d2a\u0d34\u0d2f \u0d2a\u0d47\u0d30\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.ka=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.mus=\u0d15\u0d4d\u0d30\u0d40\u0d15\u0d4d\u0d15\u0d4d
+languages.roa=\u0d31\u0d4b\u0d2e\u0d28\u0d4d\u200d\u0d38\u0d4d \u0d2d\u0d3e\u0d37
+languages.nog=\u0d28\u0d4b\u0d17\u0d48
+languages.mun=\u0d2e\u0d41\u0d23\u0d4d\u0d1f
+languages.mul=\u0d35\u0d3f\u0d35\u0d3f\u0d27 \u0d2d\u0d3e\u0d37\u0d15\u0d33\u0d4d\u200d
+languages.jv=\u0d1c\u0d3e\u0d35\u0d3e\u0d28\u0d40\u0d38\u0d4d
+languages.gil=\u0d17\u0d3f\u0d32\u0d4d\u200d\u0d2c\u0d30\u0d4d\u200d\u0d38\u0d47
+languages.znd=\u0d38\u0d3e\u0d28\u0d4d\u0d26\u0d46
+languages.shn=\u0d37\u0d3e\u0d28\u0d4d\u200d
+languages.fon=\u0d2b\u0d4b\u0d28\u0d4d\u200d
+languages.xal=\u0d15\u0d32\u0d4d\u200d\u0d2e\u0d48\u0d15\u0d4d
+languages.aus=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.kho=\u0d18\u0d4b\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d47\u0d38\u0d47
+languages.ja=\u0d1c\u0d3e\u0d2a\u0d4d\u0d2a\u0d28\u0d40\u0d38\u0d4d
+languages.khi=\u0d18\u0d4b\u0d2f\u0d3f\u0d38\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.pau=\u0d2a\u0d32\u0d3e\u0d35\u0d41\u0d28\u0d4d\u200d
+languages.chy=\u0d1a\u0d3f\u0d2f\u0d47\u0d28\u0d4d\u0d28\u0d47
+languages.tai=\u0d31\u0d4d\u0d31\u0d48 \u0d2d\u0d3e\u0d37
+languages.iu=\u0d07\u0d28\u0d41\u0d15\u0d4d\u0d31\u0d4d\u0d31\u0d3f\u0d31\u0d4d\u0d31\u0d1f\u0d4d\u0d1f\u0d4d
+languages.pap=\u0d2a\u0d3e\u0d2a\u0d3f\u0d2f\u0d3e\u0d2e\u0d46\u0d28\u0d4d\u200d\u0d31\u0d4a
+languages.it=\u0d07\u0d31\u0d4d\u0d31\u0d3e\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.sgn=\u0d06\u0d02\u0d17\u0d4d\u0d2f\u0d2d\u0d3e\u0d37
+languages.is=\u0d10\u0d38\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d3f\u0d15\u0d4d
+languages.kha=\u0d18\u0d3e\u0d38\u0d3f
+languages.chr=\u0d1a\u0d46\u0d30\u0d4b\u0d15\u0d40
+languages.pam=\u0d2a\u0d3e\u0d02\u0d2a\u0d28\u0d4d\u200d\u0d17
+languages.pal=\u0d2a\u0d3e\u0d39\u0d4d\u0d32\u0d35\u0d3f
+languages.chp=\u0d1a\u0d3f\u0d2a\u0d47\u0d35\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.io=\u0d07\u0d21\u0d4b
+languages.cho=\u0d1a\u0d4b\u0d15\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d35\u0d4d
+languages.chn=\u0d1a\u0d3f\u0d28\u0d42\u0d17\u0d4d-\u0d1c\u0d3e\u0d30\u0d4d\u200d\u0d17\u0d23\u0d4d\u200d
+languages.chm=\u0d2e\u0d3e\u0d30\u0d3f
+languages.tyv=\u0d24\u0d41\u0d35\u0d3f\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.bnt=\u0d2c\u0d3e\u0d28\u0d4d\u200c\u0d1f\u0d41
+languages.pag=\u0d2a\u0d19\u0d4d\u0d15\u0d3e\u0d38\u0d3f\u0d28\u0d28\u0d4d\u200d
+languages.ik=\u0d07\u0d28\u0d41\u0d2a\u0d3f\u0d2f\u0d3e\u0d15\u0d4d
+languages.chk=\u0d1a\u0d42\u0d15\u0d40\u0d38\u0d4d
+languages.ii=\u0d37\u0d41\u0d35\u0d3e\u0d28\u0d4d\u200d\u0d2f\u0d3f
+languages.haw=\u0d39\u0d35\u0d3e\u0d2f\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.lam=\u0d32\u0d02\u0d2c
+languages.ig=\u0d07\u0d17\u0d4d\u0d2c\u0d4b
+languages.chg=\u0d1a\u0d17\u0d24\u0d48
+languages.sga=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d10\u0d31\u0d3f\u0d37\u0d4d
+languages.paa=\u0d2a\u0d3e\u0d2a\u0d41\u0d35\u0d3e\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.ie=\u0d07\u0d28\u0d4d\u200d\u0d31\u0d30\u0d4d\u200d\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d35\u0d3f
+languages.id=\u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.lah=\u0d32\u0d39\u0d4d\u200c\u0d28\u0d4d\u200d\u0d21
+languages.day=\u0d26\u0d2f\u0d3e\u0d15\u0d4d
+languages.chb=\u0d1a\u0d3f\u0d2c\u0d4d\u0d1a
+languages.ia=\u0d07\u0d28\u0d4d\u200d\u0d31\u0d30\u0d4d\u200d\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d35\u0d3e
+languages.lad=\u0d32\u0d3e\u0d21\u0d3f\u0d28\u0d4b
+languages.hz=\u0d39\u0d46\u0d31\u0d40\u0d31\u0d4b
+languages.hai=\u0d39\u0d48\u0d21
+languages.dar=\u0d21\u0d30\u0d4d\u200d\u0d17\u0d4d\u0d35\u0d3e
+languages.hy=\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.ath=\u0d05\u0d24\u0d2a\u0d3e\u0d38\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.hu=\u0d39\u0d02\u0d17\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.ht=\u0d39\u0d46\u0d2f\u0d4d\u0d24\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.dak=\u0d21\u0d15\u0d4b\u0d1f\u0d4d\u0d1f
+languages.hr=\u0d15\u0d4d\u0d30\u0d4b\u0d2f\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.ho=\u0d39\u0d3f\u0d30\u0d3f \u0d2e\u0d4b\u0d24\u0d41
+languages.hi=\u0d39\u0d3f\u0d28\u0d4d\u0d26\u0d3f
+languages.dyu=\u0d26\u0d4d\u0d35\u0d48\u0d32
+languages.he=\u0d39\u0d40\u0d2c\u0d4d\u0d30\u0d41
+languages.ast=\u0d13\u0d38\u0d4d\u200c\u0d1f\u0d4d\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.kfo=\u0d15\u0d4b\u0d31\u0d4b
+languages.ha=\u0d39\u0d4c\u0d38
+languages.wen=\u0d38\u0d4b\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.gv=\u0d2e\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d4d
+languages.gu=\u0d17\u0d41\u0d1c\u0d31\u0d3e\u0d24\u0d4d\u0d24\u0d3f
+languages.sem=\u0d38\u0d46\u0d2e\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.sel=\u0d38\u0d46\u0d32\u0d4d\u200d\u0d15\u0d2a\u0d4d
+languages.iro=\u0d07\u0d31\u0d4b\u0d15\u0d4d\u0d35\u0d3e\u0d2f\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.gn=\u0d17\u0d4d\u0d35\u0d3e\u0d31\u0d3e\u0d28\u0d3f
+languages.gl=\u0d17\u0d32\u0d40\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.en_CA=\u0d15\u0d28\u0d47\u0d21\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.arw=\u0d05\u0d31\u0d3e\u0d35\u0d15\u0d4d
+languages.gez=\u0d17\u0d40\u0d38\u0d4d
+languages.art=\u0d15\u0d43\u0d24\u0d4d\u0d30\u0d3f\u0d2e\u0d2d\u0d3e\u0d37
+languages.gd=\u0d38\u0d4d\u0d15\u0d4b\u0d1f\u0d4d\u0d1f\u0d3f\u0d37\u0d4d \u0d17\u0d48\u0d32\u0d3f\u0d15\u0d4d
+languages.ira=\u0d07\u0d31\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.ga=\u0d10\u0d31\u0d3f\u0d37\u0d4d
+languages.arp=\u0d05\u0d30\u0d2a\u0d3e\u0d39\u0d4b
+languages.arn=\u0d06\u0d30\u0d4c\u0d15\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.fy=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d2b\u0d4d\u0d30\u0d3f\u0d37\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.bla=\u0d38\u0d3f\u0d15\u0d4d\u0d38\u0d3f\u0d15
+languages.gem=\u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d3e\u0d28\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.ypk=\u0d2f\u0d41\u0d2a\u0d3f\u0d15\u0d4d
+languages.arc=\u0d05\u0d30\u0d2e\u0d3e\u0d2f \u0d2d\u0d3e\u0d37
+languages.fr=\u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
+languages.fo=\u0d2b\u0d3e\u0d31\u0d4b\u0d38\u0d4d
+languages.cel=\u0d38\u0d46\u0d32\u0d4d\u200d\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.fj=\u0d2b\u0d3f\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.fi=\u0d2b\u0d3f\u0d28\u0d4d\u0d28\u0d3f\u0d37\u0d4d
+languages.ff=\u0d2b\u0d41\u0d32
+languages.tvl=\u0d24\u0d41\u0d35\u0d3e\u0d32\u0d41
+languages.ceb=\u0d38\u0d46\u0d2c\u0d41\u0d35\u0d3e\u0d28\u0d4b
+languages.fa=\u0d2a\u0d47\u0d30\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.en_AU=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.zh_Hans=\u0d32\u0d33\u0d3f\u0d24\u0d1a\u0d40\u0d28\u0d2d\u0d3e\u0d37
+languages.zh_Hant=\u0d2a\u0d30\u0d2e\u0d4d\u0d2a\u0d30\u0d3e\u0d17\u0d24 \u0d1a\u0d48\u0d28\u0d40\u0d38\u0d4d\u200c
+languages.eu=\u0d2c\u0d3e\u0d38\u0d4d\u0d15\u0d4d
+languages.sco=\u0d38\u0d4d\u0d15\u0d4b\u0d1f\u0d4d\u0d38\u0d4d
+languages.et=\u0d0e\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d23\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.scn=\u0d38\u0d3f\u0d38\u0d3f\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.es=\u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d
+languages.eo=\u0d0e\u0d38\u0d4d\u0d2a\u0d30\u0d3e\u0d28\u0d4d\u0d24\u0d4b
+languages.en=\u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.el=\u0d17\u0d4d\u0d30\u0d40\u0d15\u0d4d\u0d15\u0d4d
+languages.tut=\u0d05\u0d31\u0d4d\u0d31\u0d4d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d15\u0d4d\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.niu=\u0d28\u0d4d\u0d2f\u0d41\u0d35\u0d3e\u0d28\u0d4d\u200d
+languages.tup=\u0d24\u0d41\u0d2a\u0d3f \u0d2d\u0d3e\u0d37
+languages.ee=\u0d0e\u0d35\u0d4d
+languages.tum=\u0d24\u0d41\u0d02\u0d2c\u0d41\u0d15
+languages.nl_BE=\u0d2b\u0d4d\u0d32\u0d2e\u0d3f\u0d37\u0d4d
+languages.es_419=\u0d32\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d4d\u200d \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d
+languages.mos=\u0d2e\u0d4a\u0d38\u0d4d\u0d38\u0d3f
+languages.dz=\u0d2d\u0d42\u0d1f\u0d4d\u0d1f\u0d3e\u0d28\u0d3f
+languages.kcg=\u0d1f\u0d4d\u0d2f\u0d3e\u0d2a\u0d4d
+languages.nic=\u0d28\u0d48\u200d\u0d1c\u0d30\u0d4d\u200d-\u0d15\u0d4b\u0d30\u0d4d\u200d\u200d\u0d21\u0d4b\u0d2b\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.lus=\u0d32\u0d41\u0d37\u0d3e\u0d2f\u0d3f
+languages.fiu=\u0d2b\u0d3f\u0d28\u0d4d\u0d28\u0d4b-\u0d09\u0d17\u0d4d\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.dv=\u0d26\u0d3f\u0d35\u0d47\u0d39\u0d3f
+languages.nia=\u0d28\u0d3f\u0d2f\u0d3e\u0d38\u0d4d
+languages.moh=\u0d2e\u0d4b\u0d39\u0d3e\u0d15\u0d4d
+languages.luo=\u0d32\u0d35\u0d4b
+languages.lun=\u0d32\u0d41\u0d28\u0d4d\u200d\u0d21
+languages.apa=\u0d05\u0d2a\u0d4d\u0d2a\u0d3e\u0d1a\u0d47 \u0d2d\u0d3e\u0d37
+languages.fil=\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d28\u0d4b
+languages.lui=\u0d32\u0d42\u0d2f\u0d3f\u0d38\u0d46\u0d28\u0d4b
+languages.hup=\u0d39\u0d42\u0d2a
+languages.cch=\u0d05\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d3e\u0d02
+languages.bin=\u0d2c\u0d3f\u0d28\u0d3f
+languages.de=\u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d4d\u0d2e\u0d28\u0d4d\u200d
+languages.lua=\u0d32\u0d42\u0d2c-\u0d32\u0d41\u0d32\u0d41\u0d35
+languages.bik=\u0d2c\u0d3f\u0d15\u0d4b\u0d32\u0d4d\u200d
+languages.was=\u0d35\u0d3e\u0d37\u0d4a
+languages.und=\u0d05\u0d31\u0d3f\u0d2f\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d06\u0d2f \u0d2d\u0d3e\u0d37
+languages.war=\u0d35\u0d3e\u0d30\u0d47\u0d2f\u0d4d
+languages.da=\u0d21\u0d3e\u0d28\u0d3f\u0d37\u0d4d
+languages.dum=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d21\u0d1a\u0d4d\u0d1a\u0d4d
+languages.wal=\u0d35\u0d32\u0d2e\u0d4a
+languages.mno=\u0d2e\u0d28\u0d4b\u0d2c\u0d4b \u0d2d\u0d3e\u0d37
+languages.wak=\u0d35\u0d15\u0d37\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37\u0d15\u0d33\u0d4d\u200d
+languages.sat=\u0d38\u0d28\u0d4d\u0d24\u0d3e\u0d32\u0d3f
+languages.cy=\u0d35\u0d46\u0d32\u0d4d\u200d\u0d37\u0d4d
+languages.sas=\u0d38\u0d38\u0d3e\u0d15\u0d4d
+languages.kbd=\u0d15\u0d2c\u0d30\u0d4d\u200d\u0d21\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.cv=\u0d1a\u0d41\u0d35\u0d3e\u0d37\u0d4d
+languages.cu=\u0d1a\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d4d\u0d32\u0d3e\u0d35\u0d3f\u0d15\u0d4d
+languages.mni=\u0d2e\u0d23\u0d3f\u0d2a\u0d4d\u0d2a\u0d42\u0d30\u0d3f
+languages.cs=\u0d1a\u0d46\u0d15\u0d4d\u0d15\u0d4d
+languages.sam=\u0d38\u0d2e\u0d30\u0d3f\u0d24\u0d3e\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.cr=\u0d15\u0d4d\u0d30\u0d40
+languages.sal=\u0d38\u0d2e\u0d30\u0d3f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d30\u0d41\u0d1f\u0d46 \u0d05\u0d30\u0d2e\u0d3e\u0d2f
+languages.dua=\u0d26\u0d4d\u0d35\u0d3e\u0d32
+languages.co=\u0d15\u0d4b\u0d30\u0d4d\u200d\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d
+languages.sai=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.mnc=\u0d2e\u0d28\u0d4d\u200d\u0d1a\u0d41
+languages.sah=\u0d2f\u0d3e\u0d15\u0d42\u0d1f\u0d4d
+languages.kaw=\u0d15\u0d3e\u0d35\u0d3f
+languages.inh=\u0d07\u0d02\u0d17\u0d4d\u0d35\u0d3f\u0d37\u0d4d
+languages.gba=\u0d17\u0d2c\u0d4d\u0d2f
+languages.sad=sad
+languages.ch=\u0d1a\u0d2e\u0d4b\u0d31\u0d4b
+languages.ine=\u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b-\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.bho=\u0d2d\u0d4b\u0d1c\u0d4d\u200c\u0d2a\u0d42\u0d30\u0d3f
+languages.enm=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.kar=\u0d15\u0d30\u0d47\u0d28\u0d4d\u200d
+languages.inc=\u0d2d\u0d3e\u0d30\u0d24\u0d40\u0d2f\u0d2d\u0d3e\u0d37
+languages.ce=\u0d1a\u0d46\u0d1a\u0d28\u0d4d\u200d
+languages.gay=\u0d17\u0d2f\u0d4a
+languages.ca=\u0d15\u0d31\u0d4d\u0d31\u0d3e\u0d32\u0d28\u0d4d\u200d
+languages.umb=\u0d09\u0d02\u0d2c\u0d41\u0d28\u0d4d\u0d26\u0d41
+languages.syr=\u0d38\u0d41\u0d31\u0d3f\u0d2f\u0d3e\u0d28\u0d3f
+languages.kam=\u0d15\u0d02\u0d2c
+languages.anp=\u0d06\u0d28\u0d4d\u200d\u0d17\u0d3f\u0d15
+languages.tsi=\u0d38\u0d3f\u0d02\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.kaj=\u0d1c\u0d4d\u0d1c\u0d41
+languages.ang=\u0d2a\u0d34\u0d2f \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.kac=\u0d15\u0d3e\u0d1a\u0d3f\u0d28\u0d4d\u200d
+languages.cau=\u0d15\u0d4a\u0d15\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.kab=\u0d15\u0d2c\u0d48\u0d32\u0d4d\u200d
+languages.kaa=\u0d15\u0d30-\u0d15\u0d3e\u0d32\u0d4d\u200d\u0d2a\u0d4d\u0d2a\u0d15\u0d4d
+languages.bs=\u0d2c\u0d4b\u0d38\u0d4d\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.car=\u0d15\u0d3e\u0d30\u0d3f\u0d2c\u0d4d
+languages.br=\u0d2c\u0d4d\u0d30\u0d3f\u0d31\u0d4d\u0d31\u0d4b\u0d23\u0d4d\u200d
+languages.syc=\u0d15\u0d4d\u0d32\u0d3e\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d32\u0d4d\u200d \u0d38\u0d41\u0d31\u0d3f\u0d2f\u0d3e\u0d28\u0d3f \u0d2d\u0d3e\u0d37
+languages.bo=\u0d24\u0d3f\u0d2c\u0d31\u0d4d\u0d31\u0d28\u0d4d\u200d
+languages.bn=\u0d2c\u0d02\u0d17\u0d3e\u0d33\u0d3f
+languages.bm=\u0d2c\u0d02\u0d2c\u0d3e\u0d31
+languages.gaa=\u0d17\u0d3e
+languages.cai=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.bi=\u0d2c\u0d3f\u0d38\u0d4d\u200c\u0d32\u0d3e\u0d2e
+languages.bh=\u0d2c\u0d40\u0d39\u0d3e\u0d31\u0d3f
+languages.bg=\u0d2c\u0d33\u0d4d\u200d\u0d17\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.be=\u0d2c\u0d48\u0d32\u0d4b\u0d31\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.pt_BR=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d40\u0d38\u0d4d
+languages.cad=\u0d15\u0d3e\u0d21\u0d4b
+languages.ba=\u0d2c\u0d37\u0d4d\u0d16\u0d3f\u0d30\u0d4d\u200d
+languages.zu=\u0d38\u0d41\u0d33\u0d41
+languages.zen=\u0d38\u0d46\u0d28\u0d17
+languages.pro=\u0d2a\u0d4d\u0d30\u0d4a\u0d35\u0d28\u0d4d\u200d\u0d37\u0d4d\u0d32\u0d4d\u200d
+languages.hsb=\u0d05\u0d2a\u0d4d\u0d2a\u0d30\u0d4d\u200d \u0d38\u0d4b\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.az=\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d48\u0d1c\u0d3e\u0d28\u0d3f
+languages.ay=\u0d05\u0d2f\u0d4d\u0d2e\u0d3e\u0d31
+languages.av=\u0d05\u0d35\u0d3e\u0d30\u0d3f\u0d15\u0d4d
+languages.as=\u0d06\u0d38\u0d4d\u0d38\u0d3e\u0d2e\u0d40\u0d38\u0d4d
+languages.dsb=\u0d32\u0d4b\u0d35\u0d30\u0d4d\u200d \u0d38\u0d4b\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.ar=\u0d05\u0d31\u0d2c\u0d3f
+languages.ilo=\u0d07\u0d32\u0d4b\u0d15\u0d4b
+languages.elx=\u0d0e\u0d32\u0d3e\u0d2e\u0d48\u0d31\u0d4d\u0d31\u0d4d
+languages.zh=\u0d1a\u0d48\u0d28\u0d40\u0d38\u0d4d
+languages.an=\u0d05\u0d30\u0d17\u0d4b\u0d23\u0d40\u0d38\u0d4d
+languages.pra=\u0d2a\u0d4d\u0d30\u0d3e\u0d15\u0d43\u0d24\u0d02
+languages.am=\u0d05\u0d02\u0d39\u0d3e\u0d31\u0d3f\u0d15\u0d4d
+languages.new=\u0d28\u0d35\u0d3e\u0d30\u0d3f
+languages.ak=\u0d06\u0d16\u0d3e\u0d28\u0d4d\u200d
+languages.za=\u0d38\u0d4d\u0d35\u0d3e\u0d02\u0d17\u0d4d
+languages.en_US=\u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.af=\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d4d
+languages.ae=\u0d05\u0d35\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d
+languages.alt=\u0d24\u0d46\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d05\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3e\u0d2f\u0d3f
+languages.ab=\u0d05\u0d2c\u0d4d\u0d16\u0d3e\u0d38\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.aa=\u0d05\u0d2b\u0d3e\u0d30\u0d4d\u200d
+languages.yo=\u0d2f\u0d4a\u0d31\u0d42\u0d2c\u0d3e
+languages.alg=\u0d05\u0d32\u0d4d\u200d\u0d17\u0d4b\u0d23\u0d4d\u200d\u0d15\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.ale=\u0d05\u0d32\u0d48\u0d1f\u0d4d\u0d1f\u0d4d
+languages.mkh=\u0d2e\u0d4b\u0d23\u0d4d\u200d-\u0d16\u0d2e\u0d30\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.yi=\u0d2f\u0d3f\u0d26\u0d4d\u0d26\u0d3f\u0d37\u0d4d
+languages.dra=\u0d26\u0d4d\u0d30\u0d3e\u0d35\u0d3f\u0d21\u0d2d\u0d3e\u0d37
+languages.ber=\u0d2c\u0d46\u0d30\u0d4d\u200d\u0d2c\u0d30\u0d4d\u200d
+languages.nds=\u0d32\u0d4b \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.bem=\u0d2c\u0d46\u0d02\u0d2c
+languages.bej=\u0d2c\u0d46\u0d1c
+languages.tpi=\u0d1f\u0d4b\u0d15\u0d4d \u0d2a\u0d3f\u0d38\u0d3f\u0d28\u0d4d\u200d
+variants.BOONT=\u0d2c\u0d42\u0d23\u0d4d\u0d1f\u0d4d\u200c\u0d32\u0d3f\u0d19\u0d4d\u0d19\u0d4d
+variants.NJIVA=\u0d17\u0d4d\u0d28\u0d3f\u0d35/\u0d28\u0d3f\u0d1c\u0d3f\u0d35 \u0d2a\u0d4d\u0d30\u0d3e\u0d26\u0d47\u0d36\u0d3f\u0d15\u0d30\u0d42\u0d2a\u0d02
+variants.REVISED=\u0d2a\u0d41\u0d24\u0d3f\u0d2f\u0d32\u0d3f\u0d2a\u0d3f
+variants.AREVELA=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d05\u0d30\u0d4d\u200d\u0d2e\u0d40\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+variants.POSIX=POSIX
+variants.FONIPA=\u0d10\u0d2a\u0d3f\u200c\u0d0e \u0d35\u0d30\u0d4d\u200d\u0d23\u0d4d\u0d23\u0d32\u0d3f\u0d2a\u0d3f
+variants.1996=1996
+variants.MONOTON=MONOTON
+variants.1606NICT=1606 \u0d35\u0d30\u0d46\u0d2f\u0d41\u0d33\u0d4d\u0d33 \u0d06\u0d27\u0d41\u0d28\u0d3f\u0d15\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f\u0d15\u0d3e\u0d32 \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
+variants.NEDIS=\u0d28\u0d47\u0d31\u0d4d\u0d31\u0d3f\u0d38\u0d4b\u0d23\u0d4d\u200d \u0d2a\u0d4d\u0d30\u0d3e\u0d26\u0d47\u0d36\u0d3f\u0d15\u0d30\u0d42\u0d2a\u0d02
index 42073b6888b43f11b3d551bc8ecc2fef6b3d9f4c..f0a64d008e5875baf0359fe143140c7f75247832 100644 (file)
 decimalSeparator=,
 groupingSeparator=\u00a0
 currenciesSymbol.MNT=\u20ae
-shortMonths=\u0445\u0443\u043b®\u04af\u0445\u044d®\u0431\u0430\u0440®\u0442\u0443\u0443®\u043b\u0443\u0443®\u043c\u043e\u0433®\u043c\u043e\u0440®\u0445\u043e\u043d®\u0431\u0438\u0447®\u0442\u0430\u0445®\u043d\u043e\u0445®\u0433\u0430\u0445®®
-months=\u0425\u0443\u043b\u0433\u0430\u043d\u0430®\u04ae\u0445\u044d\u0440®\u0411\u0430\u0440®\u0422\u0443\u0443\u043b\u0430\u0439®\u041b\u0443\u0443®\u041c\u043e\u0433\u043e\u0439®\u041c\u043e\u0440\u044c®\u0425\u043e\u043d\u044c®\u0411\u0438\u0447®\u0422\u0430\u0445\u0438\u0430®\u041d\u043e\u0445\u043e\u0439®\u0413\u0430\u0445\u0430\u0439®®
-shortWeekdays=®\u041d\u044f®\u0414\u0430®\u041c\u044f®\u041b\u0445®\u041f\u04af®\u0411\u0430®\u0411\u044f®
-weekdays=®\u043d\u044f\u043c®\u0434\u0430\u0432\u0430\u0430®\u043c\u044f\u0433\u043c\u0430\u0440®\u043b\u0445\u0430\u0433\u0432\u0430®\u043f\u04af\u0440\u044d\u0432®\u0431\u0430\u0430\u0441\u0430\u043d®\u0431\u044f\u043c\u0431\u0430®
-eras=\u043c.\u044d.\u04e9®\u043c.\u044d.®
+shortMonths=\u0445\u0443\u043b\u00ae\u04af\u0445\u044d\u00ae\u0431\u0430\u0440\u00ae\u0442\u0443\u0443\u00ae\u043b\u0443\u0443\u00ae\u043c\u043e\u0433\u00ae\u043c\u043e\u0440\u00ae\u0445\u043e\u043d\u00ae\u0431\u0438\u0447\u00ae\u0442\u0430\u0445\u00ae\u043d\u043e\u0445\u00ae\u0433\u0430\u0445\u00ae\u00ae
+months=\u0425\u0443\u043b\u0433\u0430\u043d\u0430\u00ae\u04ae\u0445\u044d\u0440\u00ae\u0411\u0430\u0440\u00ae\u0422\u0443\u0443\u043b\u0430\u0439\u00ae\u041b\u0443\u0443\u00ae\u041c\u043e\u0433\u043e\u0439\u00ae\u041c\u043e\u0440\u044c\u00ae\u0425\u043e\u043d\u044c\u00ae\u0411\u0438\u0447\u00ae\u0422\u0430\u0445\u0438\u0430\u00ae\u041d\u043e\u0445\u043e\u0439\u00ae\u0413\u0430\u0445\u0430\u0439\u00ae\u00ae
+shortWeekdays=\u00ae\u041d\u044f\u00ae\u0414\u0430\u00ae\u041c\u044f\u00ae\u041b\u0445\u00ae\u041f\u04af\u00ae\u0411\u0430\u00ae\u0411\u044f\u00ae
+weekdays=\u00ae\u043d\u044f\u043c\u00ae\u0434\u0430\u0432\u0430\u0430\u00ae\u043c\u044f\u0433\u043c\u0430\u0440\u00ae\u043b\u0445\u0430\u0433\u0432\u0430\u00ae\u043f\u04af\u0440\u044d\u0432\u00ae\u0431\u0430\u0430\u0441\u0430\u043d\u00ae\u0431\u044f\u043c\u0431\u0430\u00ae
+eras=\u043c.\u044d.\u04e9\u00ae\u043c.\u044d.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.FR=\u0424\u0440\u0430\u043d\u0446
+territories.IN=\u042d\u043d\u044d\u0442\u0445\u044d\u0433
+territories.TO=\u0422\u043e\u043d\u0433\u0430
+territories.DE=\u0413\u0435\u0440\u043c\u0430\u043d
+territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0438
+territories.RU=\u041e\u0440\u043e\u0441
+territories.JP=\u042f\u043f\u043e\u043d
+territories.US=\u0410\u043c\u0435\u0440\u0438\u043a\u0438\u0439\u043d \u041d\u044d\u0433\u0434\u0441\u044d\u043d \u0423\u043b\u0441
 territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b \u0443\u043b\u0441
-languages.mn=\u041c\u043e\u043d\u0433\u043e\u043b \u0445\u044d\u043b
+territories.IT=\u0418\u0442\u0430\u043b\u0438
+languages.es=\u0438\u0441\u043f\u0430\u043d\u0438
+languages.ku=\u043a\u0443\u0440\u0434
+languages.eo=\u044d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0430\u043d\u0433\u043b\u0438
+languages.el=\u0433\u0440\u0435\u043a
+languages.ko=\u0441\u043e\u043b\u043e\u043d\u0433\u043e\u0441
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.km=\u043a\u0430\u043c\u0431\u0443\u0447
+languages.ka=\u0433\u04af\u0440\u0436
+languages.jv=\u044f\u0432\u0430
+languages.fil=\u0442\u0430\u0433\u0430\u043b\u043e
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438
+languages.ps=\u0430\u0444\u0433\u0430\u043d
+languages.de=\u0433\u0435\u0440\u043c\u0430\u043d
+languages.pl=\u043f\u043e\u043b\u044c\u0448
+languages.da=\u0434\u0430\u043d\u0438
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d \u0445\u044d\u043b
+languages.ja=\u044f\u043f\u043e\u043d
+languages.vi=\u0432\u044c\u0435\u0442\u043d\u0430\u043c
+languages.cy=\u0443\u044d\u043b\u0441
+languages.pa=\u043f\u0435\u043d\u0436\u0430\u0431\u0438
+languages.cs=\u0447\u0435\u0445
+languages.it=\u0438\u0442\u0430\u043b\u0438
+languages.is=\u0438\u0441\u043b\u0430\u043d\u0434
+languages.uz=\u0443\u0437\u0431\u0435\u043a
+languages.or=\u043e\u0440\u0438\u044f
+languages.ur=\u043f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u044b \u0443\u0440\u0434\u0443
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u0430\u043d
+languages.ie=\u043d\u044d\u0433\u0434\u043c\u044d\u043b \u0445\u044d\u043b
+languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438
+languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d
+languages.ia=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u043e
+languages.oc=\u0444\u0440\u0430\u043d\u0446\u044b\u043d \u043e\u043a\u0441\u0438\u0442\u0430\u043d
+languages.ug=\u0443\u0439\u0433\u0443\u0440
+languages.hy=\u0430\u0440\u043c\u0435\u043d
+languages.bs=\u0431\u043e\u0441\u043d\u0438\u0430
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d
+languages.hu=\u0443\u043d\u0433\u0430\u0440
+languages.pt_PT=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438 (\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438)
+languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b\u044c
+languages.hr=\u0445\u043e\u0440\u0432\u0430\u0442\u0438
+languages.tw=\u0442\u0432\u0438
+languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438 \u0445\u044d\u043b
+languages.bg=\u0431\u043e\u043b\u0433\u0430\u0440
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0433\u0438
+languages.be=\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u044c
+languages.nn=\u043d\u043e\u0440\u0432\u0435\u0433\u0438 (\u043d\u044b\u043d\u043e\u0440\u0441\u043a)
+languages.hi=\u0445\u0438\u043d\u0434\u0438
+languages.tr=\u0442\u0443\u0440\u043a
+languages.nl=\u0433\u043e\u043b\u043b\u0430\u043d\u0434
+languages.zu=\u0437\u0443\u043b\u0443
+languages.he=\u043a\u0438\u043f\u0440
+languages.tk=\u0442\u0443\u0440\u043a\u043c\u0435\u043d
+languages.ne=\u0431\u0430\u043b\u0431\u0430
+languages.az=\u0430\u0437\u0430\u0440\u0431\u0435\u0436\u0430\u043d
+languages.ti=\u0442\u0438\u043a\u0440\u0438\u043d\u0430
+languages.th=\u0442\u0430\u0439
+languages.te=\u0442\u044d\u043b\u04af\u0433\u04af
+languages.zh=\u0445\u044f\u0442\u0430\u0434
+languages.as=\u0430\u0441\u0441\u0430\u043c \u04af\u043d\u0434\u044d\u0441\u0442\u044d\u043d
+languages.ar=\u0430\u0440\u0430\u0431
+languages.ta=\u0442\u0430\u043c\u0438\u043b
+languages.gu=\u044d\u043d\u044d\u0442\u0445\u044d\u0433\u0438\u0439\u043d \u0433\u0443\u0436\u0430\u0440\u0430\u0442\u0438
+languages.am=\u0430\u043c\u0445\u0430\u0440\u0438\u043a
+languages.mt=\u043c\u0430\u043b\u0442\u0438
+languages.ms=\u043c\u0430\u043b\u0430\u0439
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0438
+languages.sw=\u0430\u0444\u0440\u0438\u043a\u0438\u0439\u043d \u0441\u0432\u0430\u0445\u0438\u043b\u0438 \u0445\u044d\u043b
+languages.mr=\u044d\u043d\u044d\u0442\u0445\u044d\u0433\u0438\u0439\u043d \u043c\u0430\u0440\u0430\u0442\u0438
+languages.sv=\u0448\u0432\u0435\u0434
+languages.gl=\u0433\u0430\u043b\u0438\u043a
+languages.su=\u0441\u0443\u043d\u0434\u0430\u043d\u0435\u0441 \u0445\u044d\u043b
+languages.af=\u0430\u0444\u0440\u0438\u043a
+languages.st=\u0441\u0435\u0441\u043e\u0442\u043e
+languages.mn=\u043c\u043e\u043d\u0433\u043e\u043b
+languages.sr=\u0441\u0435\u0440\u0431\u0438
+languages.sq=\u0430\u043b\u0431\u0430\u043d\u0438
+languages.ml=\u043c\u0430\u043b\u0430\u0439\u043b\u0430\u043c
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0438
+languages.so=\u0441\u043e\u043c\u0430\u043b\u0438
+languages.gd=\u0448\u043e\u0442\u043b\u0430\u043d\u0434 \u043a\u0435\u043b\u0442
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0438
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u043a
+languages.ga=\u0438\u0440\u043b\u0430\u043d\u0434
+languages.si=\u0448\u0440\u0438 \u043b\u0430\u043d\u043a
+languages.sh=\u0445\u043e\u0440\u0432\u0430\u0442\u044b\u043d \u0441\u0435\u0440\u0431
+languages.pt_BR=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438 (\u0431\u0440\u0430\u0437\u0438\u043b)
+languages.yi=\u0438\u0434\u0434\u0438\u0448
+languages.sd=\u0441\u0438\u043d\u0434\u0445\u0438
+languages.fy=\u0433\u043e\u043b\u043b\u0430\u043d\u0434\u044b\u043d \u0444\u0440\u0438\u0441\u0438\u0430\u043d \u0445\u044d\u043b
+languages.sa=\u0441\u0430\u043d\u0441\u043a\u0438\u0440\u0438\u0442
+languages.fr=\u0444\u0440\u0430\u043d\u0446
+languages.lv=\u043b\u0430\u0442\u0432\u0438
+languages.lt=\u043b\u0438\u0442\u0432\u0438
+languages.fo=\u0444\u04e9\u0440\u0438\u044d\u0441 \u0445\u044d\u043b
+languages.ru=\u043e\u0440\u043e\u0441
+languages.lo=\u043b\u0430\u043e\u0442\u0438\u0430\u043d
+languages.ln=\u043b\u0438\u043d\u0433\u0430\u043b\u0430
+languages.fi=\u0444\u0438\u043d\u043b\u044f\u043d\u0434
+languages.ro=\u0440\u0443\u043c\u044b\u043d
+languages.fa=\u043f\u0435\u0440\u0441
+languages.la=\u043b\u0430\u0442\u0438\u043d
+languages.xh=\u0445\u043e\u0441\u0430
+languages.eu=\u0431\u0430\u0441\u043a
+languages.ky=\u043a\u0438\u0440\u0433\u0438\u0437
+languages.et=\u044d\u0441\u0442\u043e\u043d\u0438
index 77dc88cd5a22d6503bfee3593b346015fbd9cdd9..a81a94d86ab85726c006b40fe4d28beb6ccada8e 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
 currenciesSymbol.INR=\u0930\u0941
-shortMonths=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940®\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u090f\u092a\u094d\u0930\u093f\u0932®\u092e\u0947®\u091c\u0942\u0928®\u091c\u0941\u0932\u0948®\u0913\u0917\u0938\u094d\u091f®\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930®\u0913\u0915\u094d\u091f\u094b\u092c\u0930®\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930®\u0921\u093f\u0938\u0947\u0902\u092c\u0930®®
-months=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940®\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u090f\u092a\u094d\u0930\u093f\u0932®\u092e\u0947®\u091c\u0942\u0928®\u091c\u0941\u0932\u0948®\u0913\u0917\u0938\u094d\u091f®\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930®\u0913\u0915\u094d\u091f\u094b\u092c\u0930®\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930®\u0921\u093f\u0938\u0947\u0902\u092c\u0930®®
-shortWeekdays=®\u0930\u0935\u093f®\u0938\u094b\u092e®\u092e\u0902\u0917\u0933®\u092c\u0941\u0927®\u0917\u0941\u0930\u0941®\u0936\u0941\u0915\u094d\u0930®\u0936\u0928\u093f®
-weekdays=®\u0930\u0935\u093f\u0935\u093e\u0930®\u0938\u094b\u092e\u0935\u093e\u0930®\u092e\u0902\u0917\u0933\u0935\u093e\u0930®\u092c\u0941\u0927\u0935\u093e\u0930®\u0917\u0941\u0930\u0941\u0935\u093e\u0930®\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930®\u0936\u0928\u093f\u0935\u093e\u0930®
-eras=\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935®\u0938\u0928®
-ampms=\u092e.\u092a\u0942.®\u092e.\u0928\u0902.®
-zoneStrings=Asia/Calcutta®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®©
+shortMonths=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940\u00ae\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u090f\u092a\u094d\u0930\u093f\u0932\u00ae\u092e\u0947\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u0948\u00ae\u0913\u0917\u0938\u094d\u091f\u00ae\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930\u00ae\u0913\u0915\u094d\u091f\u094b\u092c\u0930\u00ae\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930\u00ae\u0921\u093f\u0938\u0947\u0902\u092c\u0930\u00ae\u00ae
+months=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940\u00ae\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u090f\u092a\u094d\u0930\u093f\u0932\u00ae\u092e\u0947\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u0948\u00ae\u0913\u0917\u0938\u094d\u091f\u00ae\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930\u00ae\u0913\u0915\u094d\u091f\u094b\u092c\u0930\u00ae\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930\u00ae\u0921\u093f\u0938\u0947\u0902\u092c\u0930\u00ae\u00ae
+shortWeekdays=\u00ae\u0930\u0935\u093f\u00ae\u0938\u094b\u092e\u00ae\u092e\u0902\u0917\u0933\u00ae\u092c\u0941\u0927\u00ae\u0917\u0941\u0930\u0941\u00ae\u0936\u0941\u0915\u094d\u0930\u00ae\u0936\u0928\u093f\u00ae
+weekdays=\u00ae\u0930\u0935\u093f\u0935\u093e\u0930\u00ae\u0938\u094b\u092e\u0935\u093e\u0930\u00ae\u092e\u0902\u0917\u0933\u0935\u093e\u0930\u00ae\u092c\u0941\u0927\u0935\u093e\u0930\u00ae\u0917\u0941\u0930\u0941\u0935\u093e\u0930\u00ae\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930\u00ae\u0936\u0928\u093f\u0935\u093e\u0930\u00ae
+eras=\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935\u00ae\u0938\u0928\u00ae
+ampms=\u092e.\u092a\u0942.\u00ae\u092e.\u0928\u0902.\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=India\u00ae\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TO=\u091f\u093e\u0902\u0917\u093e
+territories.DE=\u091c\u092e\u093f\u0928
 territories.IN=\u092d\u093e\u0930\u0924
-languages.es=\u0938\u094d\u092a\u093e\u0928\u093f\u0937
+territories.BR=\u092c\u094d\u0930\u093e\u091c\u0940\u0932
+languages.la=\u0932\u093e\u091f\u093f\u0928
+languages.xh=\u0915\u094d\u0938\u094d\u0939\u094b\u0938\u093e
+languages.ky=\u0915\u093f\u0930\u094d\u0917\u093f\u091c\u093c
 languages.ku=\u0915\u0941\u0930\u094d\u0926\u093f\u0937
-languages.eo=\u0907\u0938\u094d\u092a\u0930\u093e\u0928\u094d\u091f\u094b
-languages.en=\u0907\u0902\u0917\u094d\u0930\u0947\u091c\u0940
 languages.ks=\u0915\u0936\u094d\u092e\u0940\u0930\u0940
-languages.el=\u0917\u094d\u0930\u0940\u0915
-languages.qu=\u0915\u094d\u0935\u0947\u091a\u0913
 languages.ko=\u0915\u094b\u0930\u093f\u092f\u0928\u094d
 languages.kn=\u0915\u0928\u094d\u0928\u0921
 languages.km=\u0915\u0902\u092c\u094b\u0921\u093f\u092f\u0928
-languages.kok=\u0915\u094b\u0902\u0915\u0923\u0940
 languages.kl=\u0917\u094d\u0930\u0940\u0928\u0932\u093e\u0928\u094d\u0921\u093f\u0915
 languages.kk=\u0915\u091c\u093c\u0915
 languages.wo=\u0909\u0932\u094b\u092b
 languages.ka=\u091c\u093e\u0930\u094d\u091c\u093f\u092f\u0928\u094d
-languages.dz=\u092d\u0942\u091f\u093e\u0928\u0940
 languages.jv=\u091c\u093e\u0935\u0928\u0940\u0938\u094d
-languages.pt=\u092a\u094b\u0930\u094d\u091a\u0941\u0917\u0940\u0938\u094d
-languages.ps=\u092a\u0937\u094d\u091f\u094b (\u092a\u0941\u0937\u094d\u091f\u094b)
-languages.de=\u091c\u0930\u094d\u092e\u0928
-languages.pl=\u092a\u094b\u0932\u093f\u0937
-languages.da=\u0921\u093e\u0928\u093f\u0937
 languages.vo=\u0913\u0932\u093e\u092a\u0941\u0915
 languages.ja=\u091c\u093e\u092a\u0928\u0940\u0938\u094d
 languages.vi=\u0935\u093f\u092f\u0924\u094d\u0928\u093e\u092e\u0940\u091c\u093c
-languages.cy=\u0935\u0947\u0932\u094d\u0937
-languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
-languages.cs=\u091c\u093c\u0947\u0915
 languages.iu=\u0907\u0928\u0941\u0915\u093f\u091f\u0941\u091f\u094d
-languages.co=\u0915\u094b\u0930\u094d\u0938\u093f\u0915\u0928
 languages.it=\u0907\u091f\u093e\u0932\u093f\u092f\u0928
 languages.is=\u0906\u0908\u0938\u0932\u093e\u0928\u094d\u0921\u093f\u0915
 languages.uz=\u0909\u091c\u093c\u092c\u0947\u0915
-languages.or=\u0913\u0930\u093f\u092f\u093e
 languages.ik=\u0907\u0928\u0942\u092a\u093f\u092f\u093e\u0915
 languages.ur=\u0909\u0930\u094d\u0926\u0942
-languages.om=\u0913\u0930\u094b\u092e\u094b (\u0905\u092b\u093e\u0928)
-languages.ca=\u0915\u091f\u0932\u0928
 languages.ie=\u0907\u0928\u094d\u091f\u0930\u0932\u093f\u0902\u0917
 languages.id=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0937\u093f\u092f\u0928
-languages.uk=\u092f\u0941\u0915\u094d\u0930\u0947\u0928\u093f\u092f\u0928\u094d
 languages.ia=\u0907\u0928\u094d\u091f\u0930\u0932\u093f\u0902\u0917\u094d\u0935\u093e
-languages.oc=\u0913\u0938\u093f\u091f\u093e\u0928\u094d
+languages.uk=\u092f\u0941\u0915\u094d\u0930\u0947\u0928\u093f\u092f\u0928\u094d
+languages.kok=\u0915\u094b\u0902\u0915\u0923\u0940
 languages.ug=\u0909\u0927\u0942\u0930
 languages.hy=\u0906\u0930\u094d\u092e\u0940\u0928\u093f\u092f\u0928\u094d
-languages.br=\u092c\u094d\u0930\u0947\u091f\u0928
 languages.hu=\u0939\u0902\u0917\u0947\u0930\u093f\u092f\u0928\u094d
-languages.bo=\u0924\u093f\u092c\u0947\u091f\u093f\u092f\u0928
-languages.bn=\u092c\u0902\u0917\u093e\u0932\u0940
 languages.hr=\u0915\u094d\u0930\u094b\u092f\u0947\u0937\u093f\u092f\u0928\u094d
-languages.bi=\u092c\u093f\u0938\u0932\u092e\u093e
+languages.fil=\u092b\u093f\u0932\u093f\u092a\u093f\u0928\u094b
 languages.tw=\u0924\u094d\u0935\u093f
-languages.bh=\u092c\u0940\u0939\u093e\u0930\u0940
-languages.bg=\u092c\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u0928
 languages.tt=\u091f\u091f\u093e\u0930
-languages.no=\u0928\u094b\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u0928
-languages.be=\u092c\u0948\u0932\u094b\u0930\u0941\u0938\u093f\u092f\u0928
-languages.ts=\u0924\u094d\u0938\u094b\u0917\u093e
 languages.hi=\u0939\u093f\u0928\u094d\u0926\u0940
+languages.ts=\u0924\u094d\u0938\u094b\u0917\u093e
 languages.tr=\u0924\u0941\u0930\u094d\u0915\u093f\u0937
-languages.nl=\u0921\u091a
-languages.zu=\u091c\u0941\u0932\u0942
-languages.ba=\u092c\u0937\u094d\u0915\u093f\u0930
-languages.to=\u0924\u094b\u0902\u0917\u093e
 languages.he=\u0939\u0947\u092c\u0943
+languages.to=\u0924\u094b\u0902\u0917\u093e
 languages.tn=\u0938\u0947\u0924\u094d\u0938\u094d\u0935\u093e\u0928\u093e
 languages.tl=\u0924\u0917\u093e\u0932\u094b\u0917
-languages.tk=\u0924\u0941\u0930\u094d\u0915\u092e\u0947\u0928
 languages.ha=\u0939\u094c\u0938\u093e
-languages.ne=\u0928\u0947\u092a\u093e\u0932\u0940
-languages.az=\u0905\u091c\u093c\u0930\u092c\u093e\u0907\u091c\u093e\u0928\u0940
+languages.tk=\u0924\u0941\u0930\u094d\u0915\u092e\u0947\u0928
 languages.ti=\u0924\u093f\u0917\u094d\u0930\u093f\u0928\u094d\u092f\u093e
-languages.ay=\u0910\u092e\u0930\u093e
 languages.th=\u0925\u093e\u0908
 languages.tg=\u0924\u091c\u093f\u0915
-languages.na=\u0928\u094c\u0930\u094b
 languages.te=\u0924\u0947\u0932\u0902\u0917\u0942
-languages.zh=\u091a\u093f\u0928\u0940\u0938\u094d
-languages.as=\u0905\u0938\u093e\u092e\u0940
-languages.ar=\u0905\u0930\u0947\u092c\u093f\u0915
 languages.ta=\u0924\u092e\u093f\u0933
 languages.gu=\u0917\u0941\u091c\u0930\u093e\u0924\u0940
-languages.my=\u092c\u0930\u094d\u092e\u0940\u0938\u094d
-languages.am=\u0905\u092e\u0939\u093e\u0930\u093f\u0915
-languages.za=\u091d\u094d\u0939\u0941\u0928\u094d\u0917
-languages.mt=\u092e\u093e\u0932\u0924\u0940\u0938\u094d
-languages.ms=\u092e\u0932\u092f
 languages.gn=\u0917\u094c\u0930\u093e\u0928\u0940
 languages.sw=\u0938\u094d\u0935\u093e\u0939\u093f\u0932\u0940
-languages.mr=\u092e\u0930\u093e\u0920\u0940
-languages.sv=\u0938\u094d\u0935\u0940\u0921\u093f\u0937
 languages.gl=\u0917\u0947\u0932\u0940\u0936\u093f\u092f\u0928
+languages.sv=\u0938\u094d\u0935\u0940\u0921\u093f\u0937
 languages.su=\u0938\u0941\u0902\u0926\u0928\u0940\u0938\u094d
-languages.af=\u0905\u092b\u094d\u0930\u093f\u0915\u093e\u0928\u094d\u0938
 languages.st=\u0938\u0947\u0938\u094b\u0925\u094b
-languages.mo=\u092e\u094b\u0932\u094d\u0921\u093e\u0935\u093f\u092f\u0928\u094d
 languages.ss=\u0938\u093f\u0938\u094d\u0935\u0924\u0940
-languages.mn=\u092e\u0902\u0917\u094b\u0932\u093f\u092f\u0928\u094d
 languages.sr=\u0938\u0947\u0930\u094d\u092c\u093f\u092f\u0928\u094d
 languages.sq=\u0906\u0932\u094d\u092c\u0947\u0928\u093f\u092f\u0928\u094d
-languages.ml=\u092e\u0932\u093f\u092f\u093e\u0932\u092e
-languages.ab=\u0905\u092c\u0916\u0947\u091c\u093f\u092f\u0928
-languages.mk=\u092e\u0938\u0940\u0921\u094b\u0928\u093f\u092f\u0928\u094d
-languages.aa=\u0905\u092b\u093e\u0930
 languages.so=\u0938\u094b\u092e\u093e\u0932\u0940
-languages.sn=\u0936\u094b\u0928\u093e
-languages.mi=\u092e\u093e\u0913\u0930\u0940
 languages.gd=\u0938\u094d\u0915\u093e\u091f\u0938\u094d \u0917\u0947\u0932\u093f\u0915
+languages.sn=\u0936\u094b\u0928\u093e
 languages.sm=\u0938\u092e\u094b\u0928
 languages.sl=\u0938\u094d\u0932\u094b\u0935\u0947\u0928\u093f\u092f\u0928\u094d
-languages.mg=\u092e\u0932\u093e\u0917\u0938\u0940
-languages.sk=\u0938\u094d\u0932\u094b\u0935\u093e\u0915
 languages.ga=\u0910\u0930\u093f\u0937
-languages.yo=\u092f\u0942\u0930\u0941\u092c\u093e
+languages.sk=\u0938\u094d\u0932\u094b\u0935\u093e\u0915
 languages.si=\u0938\u093f\u0928\u094d\u0939\u0932\u0940\u0938\u094d
 languages.sh=\u0938\u0947\u0930\u094d\u092c\u094b-\u0915\u094d\u0930\u094b\u092f\u0947\u0937\u093f\u092f\u0928\u094d
 languages.sg=\u0938\u093e\u0902\u0917\u094d\u0930\u094b
-languages.yi=\u0907\u0926\u094d\u0926\u093f\u0937
-languages.sd=\u0938\u093f\u0902\u0927\u0940
 languages.fy=\u092b\u094d\u0930\u093f\u0938\u093f\u092f\u0928\u094d
+languages.sd=\u0938\u093f\u0902\u0927\u0940
 languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924
 languages.fr=\u092b\u094d\u0930\u0947\u0928\u094d\u091a
-languages.lv=\u0932\u093e\u091f\u094d\u0935\u093f\u092f\u0928\u094d (\u0932\u0947\u091f\u094d\u091f\u093f\u0937)
 languages.fo=\u092b\u0947\u0930\u094b\u0938\u094d
-languages.lt=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u0928\u094d
 languages.rw=\u0915\u093f\u0928\u094d\u092f\u093e\u0930\u094d\u0935\u093e\u0928\u094d\u0921\u093e
-languages.root=\u092e\u0930\u093e\u0920\u0940
 languages.ru=\u0930\u0937\u094d\u092f\u0928\u094d
 languages.fj=\u092b\u093f\u091c\u0940
-languages.lo=\u0932\u093e\u0913\u0924\u093f\u092f\u0928\u094d
 languages.fi=\u092b\u093f\u0928\u094d\u0928\u093f\u0937
-languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
 languages.ro=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u0928\u094d
 languages.rn=\u0915\u093f\u0930\u0941\u0928\u094d\u0926\u0940
 languages.rm=\u0930\u0939\u091f\u094b-\u0930\u094b\u092e\u093e\u0928\u094d\u0938\u094d
 languages.fa=\u092a\u0930\u094d\u0937\u093f\u092f\u0928\u094d
-languages.la=\u0932\u093e\u091f\u093f\u0928
-languages.xh=\u0915\u094d\u0938\u094d\u0939\u094b\u0938\u093e
+languages.pt_PT=\u092a\u094b\u0930\u094d\u0924\u0941\u0917\u0940\u091c (\u092a\u094b\u0930\u094d\u0924\u0941\u0917\u093e\u0932)
 languages.eu=\u092c\u093e\u0938\u094d\u0915
 languages.et=\u0907\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u0928\u094d
-languages.ky=\u0915\u093f\u0930\u094d\u0917\u093f\u091c\u093c
+languages.es=\u0938\u094d\u092a\u093e\u0928\u093f\u0937
+languages.eo=\u0907\u0938\u094d\u092a\u0930\u093e\u0928\u094d\u091f\u094b
+languages.en=\u0907\u0902\u0917\u094d\u0930\u0947\u091c\u0940
+languages.el=\u0917\u094d\u0930\u0940\u0915
+languages.qu=\u0915\u094d\u0935\u0947\u091a\u0913
+languages.dz=\u092d\u0942\u091f\u093e\u0928\u0940
+languages.pt=\u092a\u094b\u0930\u094d\u091a\u0941\u0917\u0940\u0938\u094d
+languages.ps=\u092a\u0937\u094d\u091f\u094b (\u092a\u0941\u0937\u094d\u091f\u094b)
+languages.de=\u091c\u0930\u094d\u092e\u0928
+languages.pl=\u092a\u094b\u0932\u093f\u0937
+languages.da=\u0921\u093e\u0928\u093f\u0937
+languages.cy=\u0935\u0947\u0932\u094d\u0937
+languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
+languages.cs=\u091c\u093c\u0947\u0915
+languages.co=\u0915\u094b\u0930\u094d\u0938\u093f\u0915\u0928
+languages.or=\u0913\u0930\u093f\u092f\u093e
+languages.om=\u0913\u0930\u094b\u092e\u094b (\u0905\u092b\u093e\u0928)
+languages.ca=\u0915\u091f\u0932\u0928
+languages.oc=\u0913\u0938\u093f\u091f\u093e\u0928\u094d
+languages.bs=\u092c\u094b\u0938\u094d\u0928\u093f\u092f\u0928
+languages.br=\u092c\u094d\u0930\u0947\u091f\u0928
+languages.bo=\u0924\u093f\u092c\u0947\u091f\u093f\u092f\u0928
+languages.bn=\u092c\u0902\u0917\u093e\u0932\u0940
+languages.bi=\u092c\u093f\u0938\u0932\u092e\u093e
+languages.bh=\u092c\u0940\u0939\u093e\u0930\u0940
+languages.bg=\u092c\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u0928
+languages.be=\u092c\u0948\u0932\u094b\u0930\u0941\u0938\u093f\u092f\u0928
+languages.no=\u0928\u094b\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u0928
+languages.nl=\u0921\u091a
+languages.ba=\u092c\u0937\u094d\u0915\u093f\u0930
+languages.zu=\u091c\u0941\u0932\u0942
+languages.az=\u0905\u091c\u093c\u0930\u092c\u093e\u0907\u091c\u093e\u0928\u0940
+languages.ne=\u0928\u0947\u092a\u093e\u0932\u0940
+languages.ay=\u0910\u092e\u0930\u093e
+languages.na=\u0928\u094c\u0930\u094b
+languages.as=\u0905\u0938\u093e\u092e\u0940
+languages.ar=\u0905\u0930\u0947\u092c\u093f\u0915
+languages.zh=\u091a\u093f\u0928\u0940\u0938\u094d
+languages.my=\u092c\u0930\u094d\u092e\u0940\u0938\u094d
+languages.am=\u0905\u092e\u0939\u093e\u0930\u093f\u0915
+languages.za=\u091d\u094d\u0939\u0941\u0928\u094d\u0917
+languages.mt=\u092e\u093e\u0932\u0924\u0940\u0938\u094d
+languages.ms=\u092e\u0932\u092f
+languages.mr=\u092e\u0930\u093e\u0920\u0940
+languages.af=\u0905\u092b\u094d\u0930\u093f\u0915\u093e\u0928\u094d\u0938
+languages.mo=\u092e\u094b\u0932\u094d\u0921\u093e\u0935\u093f\u092f\u0928\u094d
+languages.mn=\u092e\u0902\u0917\u094b\u0932\u093f\u092f\u0928\u094d
+languages.ab=\u0905\u092c\u0916\u0947\u091c\u093f\u092f\u0928
+languages.ml=\u092e\u0932\u093f\u092f\u093e\u0932\u092e
+languages.aa=\u0905\u092b\u093e\u0930
+languages.mk=\u092e\u0938\u0940\u0921\u094b\u0928\u093f\u092f\u0928\u094d
+languages.mi=\u092e\u093e\u0913\u0930\u0940
+languages.root=\u0936\u093f\u0916\u0930
+languages.mg=\u092e\u0932\u093e\u0917\u0938\u0940
+languages.yo=\u092f\u0942\u0930\u0941\u092c\u093e
+languages.tlh=\u0915\u094d\u0932\u093f\u0902\u0917\u0949\u0928
+languages.yi=\u0907\u0926\u094d\u0926\u093f\u0937
+languages.lv=\u0932\u093e\u091f\u094d\u0935\u093f\u092f\u0928\u094d (\u0932\u0947\u091f\u094d\u091f\u093f\u0937)
+languages.lt=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u0928\u094d
+languages.lo=\u0932\u093e\u0913\u0924\u093f\u092f\u0928\u094d
+languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
index 26e7c8e119025dd6e835bad9ed8c7c45d6477ff9..610713aa5905e771b80fde35236cb3f669e2f3c2 100644 (file)
@@ -5,14 +5,23 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
 currenciesDisplayName.MYR=Ringgit Malaysia
 currenciesSymbol.MYR=RM
-shortMonths=Jan®Feb®Mac®Apr®Mei®Jun®Jul®Ogos®Sep®Okt®Nov®Dis®®
-months=Januari®Februari®Mac®April®Mei®Jun®Julai®Ogos®September®Oktober®November®Disember®®
-shortWeekdays=®Ahd®Isn®Sel®Rab®Kha®Jum®Sab®
-weekdays=®Ahad®Isnin®Selasa®Rabu®Khamis®Jumaat®Sabtu®
-firstDayOfWeek=mon
-eras=S.M.®T.M.®
+shortMonths=Jan\u00aeFeb\u00aeMac\u00aeApr\u00aeMei\u00aeJun\u00aeJul\u00aeOgos\u00aeSep\u00aeOkt\u00aeNov\u00aeDis\u00ae\u00ae
+months=Januari\u00aeFebruari\u00aeMac\u00aeApril\u00aeMei\u00aeJun\u00aeJulai\u00aeOgos\u00aeSeptember\u00aeOktober\u00aeNovember\u00aeDisember\u00ae\u00ae
+shortWeekdays=\u00aeAhd\u00aeIsn\u00aeSel\u00aeRab\u00aeKha\u00aeJum\u00aeSab\u00ae
+weekdays=\u00aeAhad\u00aeIsnin\u00aeSelasa\u00aeRabu\u00aeKhamis\u00aeJumaat\u00aeSabtu\u00ae
+eras=S.M.\u00aeT.M.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=dd MMM yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMM yyyy
+shortTimeFormat=h:mm
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.TL=Timor-Leste
 territories.TK=Tokelau
 territories.TJ=Tadjikistan
@@ -101,7 +110,7 @@ territories.CX=Christmas Island
 territories.CV=Cape Verde
 territories.PA=Panama
 territories.CU=Cuba
-territories.CS=Serbia
+territories.CS=Serbia dan Montenegro
 territories.CR=Kosta Rika
 territories.CO=Colombia
 territories.CN=Cina
@@ -172,12 +181,12 @@ territories.AI=Anguilla
 territories.MS=Montserrat
 territories.MR=Mauritania
 territories.AG=Antigua dan Barbuda
-territories.AF=Afghanistan
 territories.MQ=Martinique
-territories.AE=Emiriah Arab Bersatu
+territories.AF=Afghanistan
 territories.MP=Northern Mariana Islands
-territories.AD=Andorra
+territories.AE=Emiriah Arab Bersatu
 territories.MO=Macao S.A.R., China
+territories.AD=Andorra
 territories.MN=Mongolia
 territories.MM=Myanmar
 territories.ML=Mali
@@ -252,4 +261,107 @@ territories.TR=Turki
 territories.TO=Tonga
 territories.TN=Tunisia
 territories.TM=Turkmenistan
+languages.es=Sepanyol
+languages.ku=Kurdish
+languages.eo=Esperanto
+languages.en=Inggeris
+languages.el=Greek
+languages.ko=Korea
+languages.kn=Kannada
+languages.km=Khmer
+languages.ka=Georgia
+languages.jv=Jawa
+languages.fil=Tagalog
+languages.pt=Portugis
+languages.ps=Pashto
+languages.de=Jerman
+languages.pl=Poland
+languages.da=Denmark
+languages.tlh=Klingon
+languages.ja=Jepun
+languages.vi=Vietnam
+languages.cy=Wales
+languages.pa=Punjabi
+languages.cs=Czech
+languages.it=Itali
+languages.is=Iceland
+languages.uz=Uzbek
+languages.or=Oriya
+languages.ur=Urdu
+languages.ca=Catalonia
+languages.ie=Interlingue
+languages.id=Indonesia
+languages.uk=Ukraine
+languages.ia=Interlingua
+languages.oc=Occitan
+languages.ug=Uighur
+languages.hy=Armenia
+languages.bs=Bosnia
+languages.br=Brittany
+languages.hu=Hungary
+languages.pt_PT=Portugis Iberia
+languages.bn=Benggala
+languages.hr=Croat
+languages.tw=Twi
+languages.bh=Bihari
+languages.bg=Bulgaria
+languages.no=Norway
+languages.be=Belarus
+languages.nn=Nynorsk Norway
+languages.hi=Hindi
+languages.tr=Turki
+languages.nl=Belanda
+languages.zu=Zulu
+languages.he=Ibrani
+languages.tk=Turkmen
+languages.ne=Nepal
+languages.az=Azerbaijan
+languages.ti=Tigrinya
+languages.th=Thai
+languages.te=Telugu
+languages.as=Assam
+languages.ar=Arab
+languages.ta=Tamil
+languages.gu=Gujerat
+languages.am=Amharic
+languages.mt=Malta
 languages.ms=Bahasa Melayu
+languages.gn=Guarani
+languages.sw=Swahili
+languages.mr=Marathi
+languages.sv=Sweden
+languages.gl=Galicia
+languages.su=Sunda
+languages.af=Afrikaans
+languages.st=Sesoto
+languages.mn=Mongolia
+languages.sr=Serbia
+languages.sq=Albania
+languages.ml=Malayalam
+languages.mk=Macedonia
+languages.so=Somali
+languages.gd=Scots Gaelic
+languages.sl=Slovenia
+languages.sk=Slovak
+languages.ga=Ireland
+languages.si=Sinhala
+languages.sh=SerboCroatia
+languages.yi=Yahudi
+languages.sd=Sindhi
+languages.fy=Frisian
+languages.sa=Sanskrit
+languages.fr=Perancis
+languages.lv=Latvia
+languages.lt=Lithuania
+languages.fo=Faroese
+languages.ru=Rusia
+languages.lo=Laos
+languages.ln=Lingala
+languages.fi=Finland
+languages.ro=Romania
+languages.fa=Parsi
+languages.la=Latin
+languages.xh=Xhosa
+languages.eu=Basque
+languages.ky=Kyrgyz
+languages.et=Estonia
index 52663ae888cdbd32da5539c141a825220fdb750f..736bcf31f2d5323d19a3224a60e13981dfa95920 100644 (file)
@@ -7,13 +7,11 @@
 
 decimalSeparator=,
 groupingSeparator=.
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
 currenciesSymbol.BND=$
-currenciesSymbol.USD=US$
-shortDateFormat=dd/MM/yyyy
 mediumDateFormat=dd/MM/yyyy
-longDateFormat=dd MMMM yyyy
 fullDateFormat=dd MMMM yyyy
-shortTimeFormat=H:mm:ss
+shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ss
-fullTimeFormat=h:mm:ss aa
+longTimeFormat=H:mm:ss z
+fullTimeFormat=h:mm:ss aa z
index 4dfc21b7ab77d5f41e4819ef830aa01c0d758df5..b1c5475f90a4d7451f7e0b44331bc3a4bb58c007 100644 (file)
@@ -5,19 +5,29 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+decimalSeparator=.
+groupingSeparator=,
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.MTL=Lira Maltija
+currenciesDisplayName.EUR=Ewro
+currenciesDisplayName.XXX=Munita Mhux Mag\u0127ruf jew Mhux Validu
 currenciesSymbol.MTL=Lm
-shortMonths=Jan®Fra®Mar®Apr®Mej®\u0120un®Lul®Awi®Set®Ott®Nov®Di\u010b®®
-months=Jannar®Frar®Marzu®April®Mejju®\u0120unju®Lulju®Awissu®Settembru®Ottubru®Novembru®Di\u010bembru®®
-shortWeekdays=®\u0126ad®Tne®Tli®Erb®\u0126am®\u0120im®Sib®
-weekdays=®Il-\u0126add®It-Tnejn®It-Tlieta®L-Erbg\u0127a®Il-\u0126amis®Il-\u0120img\u0127a®Is-Sibt®
-minNumberOfDaysInFirstWeek=4
-eras=QK®WK®
+currenciesSymbol.XXX=XXX
+shortMonths=Jan\u00aeFra\u00aeMar\u00aeApr\u00aeMej\u00ae\u0120un\u00aeLul\u00aeAwi\u00aeSet\u00aeOtt\u00aeNov\u00aeDi\u010b\u00ae\u00ae
+months=Jannar\u00aeFrar\u00aeMarzu\u00aeApril\u00aeMejju\u00ae\u0120unju\u00aeLulju\u00aeAwissu\u00aeSettembru\u00aeOttubru\u00aeNovembru\u00aeDi\u010bembru\u00ae\u00ae
+shortWeekdays=\u00ae\u0126ad\u00aeTne\u00aeTli\u00aeErb\u00ae\u0126am\u00ae\u0120im\u00aeSib\u00ae
+weekdays=\u00aeIl-\u0126add\u00aeIt-Tnejn\u00aeIt-Tlieta\u00aeL-Erbg\u0127a\u00aeIl-\u0126amis\u00aeIl-\u0120img\u0127a\u00aeIs-Sibt\u00ae
+eras=QK\u00aeWK\u00ae
+ampms=QN\u00aeWN\u00ae
 shortDateFormat=dd/MM/yyyy
 mediumDateFormat=dd MMM yyyy
-longDateFormat=d 'ta\u2019' MMMM yyyy
-fullDateFormat=EEEE, d 'ta\u2019' MMMM yyyy
-zoneStrings=Europe/Malta®CET®\u0126in \u010aentrali Ewropew®CEST®\u0126in \u010aentrali Ewropew tas-Sajf®©
+longDateFormat=d 'ta'\u2019 MMMM yyyy
+fullDateFormat=EEEE, d 'ta'\u2019 MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Central\u00ae\u0126in \u010aentrali Ewropew\u00ae\u00ae\u0126in \u010aentrali Ewropew tas-Sajf\u00ae\u00ae\u00a9
 territories.TL=Timor tal-Lvant
 territories.TK=Tokelaw
 territories.TJ=Ta\u0121ikistan
@@ -40,10 +50,9 @@ territories.GN=Gineja
 territories.GM=Gambja
 territories.GL=Grinlandja
 territories.SV=El Salvador
-territories.062=Asja t\u2019Isfel \u010aentrali
 territories.ST=Sao Tome and Principe
-territories.061=Polinesja
 territories.GI=Gibraltar
+territories.061=Polinesja
 territories.GH=Gana
 territories.SR=Surinam
 territories.GF=Gujana Fran\u010bi\u017ca
@@ -66,13 +75,13 @@ territories.SC=Seychelles
 territories.SB=Solomon Islands
 territories.SA=G\u0127arabja Sawdita
 territories.FR=Franza
-territories.057=Mikronesja
 territories.FO=G\u017cejjer Faroe
+territories.057=Re\u0121jun ta\u2019 Mikrone\u017cja
 territories.FM=Mikronesja
 territories.RW=Rwanda
 territories.054=Melanesja
-territories.053=Awstralja u New Zealand
 territories.FK=Falkland Islands
+territories.053=Awstralja u New Zealand
 territories.RU=Russja
 territories.FJ=Fi\u0121i
 territories.FI=Finlandja
@@ -81,20 +90,21 @@ territories.RE=R\u00e9union
 territories.ET=Etijopja
 territories.ES=Spanja
 territories.ER=Eritreja
-territories.833=Isle of Man
+territories.QU=Unjoni Ewropea
 territories.EH=Sahara tal-Punent
 territories.EG=E\u0121ittu
-territories.830=Channel Islands
 territories.EE=Estonja
+territories.830=G\u017cejjer tal-Kanal Ingli\u017c
 territories.EC=Ekwador
 territories.DZ=Al\u0121erija
 territories.QA=Qatar
 territories.039=Ewropa t\u2019Isfel
 territories.DO=Republikka Domenikana
 territories.PY=Paragwaj
-territories.035=Asja tax-Xlokk
 territories.DM=Dominika
+territories.035=Asja tax-Xlokk
 territories.PW=Palau
+territories.034=Asja t\u2019Isfel \u010aentrali
 territories.DK=Danimarka
 territories.DJ=\u0120ibuti
 territories.PT=Portugall
@@ -124,8 +134,8 @@ territories.CN=\u010aina
 territories.CM=Kamerun
 territories.CL=\u010aili
 territories.CK=Cook Islands
+territories.021=Amerika N\u00f2rdiku
 territories.CI=Kosta ta\u2019 l-Avorju
-territories.021=Amerika ta\u2019 Fuq
 territories.CH=Svizzera
 territories.CG=Kongo
 territories.CF=Repubblika Afrikana \u010aentrali
@@ -144,24 +154,25 @@ territories.BR=Bra\u017cil
 territories.019=Amerika
 territories.018=Affrika t\u2019Isfel
 territories.NZ=New Zealand
-territories.BO=Bolivja
 territories.017=Affrika Nofsani
+territories.BO=Bolivja
 territories.BN=Brunej
-territories.BM=Bermuda
 territories.015=Affrika ta\u2019 Fuq
+territories.BM=Bermuda
 territories.014=Affrika tal-Lvant
 territories.013=Amerika \u010aentrali
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Affrika tal-Punent
-territories.BH=Ba\u0127rajn
+territories.BI=Burundi
 territories.172=Commonwealth tal-Istati Independenti
+territories.BH=Ba\u0127rajn
 territories.NR=Nauru
 territories.BG=Bulgarija
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Bel\u0121ju
+territories.ZZ=Re\u0121jun Mhux Mag\u0127ruf jew Mhux Validu
 territories.NO=Norve\u0121ja
 territories.BD=Bangladexx
 territories.BB=Barbados
@@ -173,6 +184,7 @@ territories.NG=Ni\u0121erja
 territories.NF=Norfolk Island
 territories.AZ=A\u017cerbaj\u0121an
 territories.NE=Ni\u0121er
+territories.AX=G\u017cejjer Aland
 territories.NC=New Caledonia
 territories.AW=Aruba
 territories.ZM=\u017bambja
@@ -181,15 +193,15 @@ territories.AU=Awstralja
 territories.AT=Awstrija
 territories.AS=Samoa Amerikana
 territories.AR=Ar\u0121entina
+territories.AQ=Antartika
 territories.009=O\u010bejanja
-territories.AQ=Antarctica
 territories.MZ=Mo\u017cambik
 territories.AO=Angola
 territories.MY=Malasja
 territories.AN=Antilles Olandi\u017ci
 territories.MX=Messiku
-territories.005=Amerika t\u2019Isfel
 territories.AM=Armenja
+territories.005=Amerika t\u2019Isfel
 territories.MW=Malawi
 territories.AL=Albanija
 territories.MV=Maldives
@@ -198,8 +210,8 @@ territories.ZA=Afrika t\u2019Isfel
 territories.MU=Mawrizju
 territories.002=Affrika
 territories.MT=Malta
-territories.001=Dinja
 territories.AI=Angwilla
+territories.001=Dinja
 territories.MS=Montserrat
 territories.MR=Mawritanja
 territories.AG=Antigua and Barbuda
@@ -232,13 +244,14 @@ territories.151=Ewropa tal-Lvant
 territories.150=Ewropa
 territories.LK=Sri Lanka
 territories.LI=Liechtenstein
-territories.LC=Saint Lucia
+territories.LC=Santa Lu\u010bija
 territories.LB=Libanu
 territories.LA=Laos
 territories.KZ=Ka\u017cakstan
-territories.KY=Cayman Islands
+territories.KY=G\u017cejjer Kajmani
 territories.KW=Kuwajt
 territories.145=Asja tal-Punent
+territories.143=Asja \u010aentrali
 territories.142=Asja
 territories.KR=Koreja t\u2019Isfel
 territories.KP=Koreja ta\u2019 Fuq
@@ -268,6 +281,7 @@ territories.UZ=U\u017cbekistan
 territories.IO=British Indian Ocean Territory
 territories.UY=Urugwaj
 territories.IN=Indja
+territories.IM=Isle of Man
 territories.IL=I\u017crael
 territories.US=Stati Uniti
 territories.IE=Irlanda
@@ -289,8 +303,8 @@ territories.TR=Turkija
 territories.TO=Tonga
 territories.TN=Tune\u017c
 territories.TM=Turkmenistan
-languages.akk=Akkadjen
 languages.gwi=Gwi\u010bin
+languages.akk=Akkadjen
 languages.eka=Ekajuk
 languages.ijo=I\u0121o
 languages.xh=\u0126o\u017ca
@@ -303,15 +317,16 @@ languages.pon=Ponpejan
 languages.min=Minangkabaw
 languages.suk=Sukuma
 languages.wo=Wolof
-languages.kut=Kutenaj
 languages.lol=Mongo
+languages.kut=Kutenaj
 languages.mic=Mikmek
 languages.wa=Walloon
 languages.kum=Kumiku
 languages.zap=\u017bapotek
+languages.ain=Ajnu
 languages.cus=Kuxtiku (O\u0127ra)
-languages.doi=Dogri
 languages.jbo=Lojban
+languages.doi=Dogri
 languages.vo=Volapuk
 languages.oto=Lingwi Otomjani
 languages.vi=Vjetnami\u017c
@@ -335,8 +350,8 @@ languages.egy=E\u0121izzjan (Antik)
 languages.ug=Wigur
 languages.fan=Fang
 languages.ssa=Nilo-Sa\u0127aram
-languages.bat=Baltiku (O\u0127ra)
 languages.mga=Irlandi\u017c, Medjevali (900-1200)
+languages.bat=Baltiku (O\u0127ra)
 languages.nyo=Njoro
 languages.bas=Basa
 languages.nyn=Nyankole
@@ -365,8 +380,8 @@ languages.kru=Kurusk
 languages.tg=Ta\u0121ik
 languages.byn=Blin
 languages.te=Telugu
-languages.csb=Kashubian
 languages.kro=Kru
+languages.csb=Kashubian
 languages.ta=Tamil
 languages.tkl=Tokelau
 languages.efi=Efik
@@ -384,14 +399,14 @@ languages.so=Somali
 languages.afh=Afri\u0127ili
 languages.sn=Xona
 languages.sm=Samojan
-languages.sl=Slav
+languages.sl=Sloven
 languages.grc=Grieg, Antik (to 1453)
 languages.sk=Slovakk
 languages.grb=\u0120erbo
 languages.si=Sin\u0127ali\u017c
 languages.sh=Serbo-Kroat
-languages.afa=Afro-Asjatiku (O\u0127ra)
 languages.crh=Crimean Turkish; Crimean Tatar
+languages.afa=Afro-Asjatiku (O\u0127ra)
 languages.sg=Sango
 languages.se=Sami ta\u2019 Fuq
 languages.sd=Sindi
@@ -413,17 +428,18 @@ languages.kpe=Kpelle
 languages.qu=Ke\u010bwa
 languages.tig=Tigre
 languages.son=Songaj
-languages.cpp=Creoles and pidgins, Portuguese-based (Other)
+languages.cpp=Kreoli u Pi\u0121ini, Bba\u017cat fuq il-Portugi\u017c (O\u0127ra)
+languages.rup=Aromanijan
 languages.sog=Sogdien
 languages.ada=Adangme
-languages.cpf=Kreoli u Pi\u0121ini, Bba\u017cat fuq il-Fran\u010bi\u017c (O\u0127ra)
-languages.hit=\u0126ittit
 languages.kos=Kosrejan
+languages.hit=\u0126ittit
+languages.cpf=Kreoli u Pi\u0121ini, Bba\u017cat fuq il-Fran\u010bi\u017c (O\u0127ra)
 languages.cpe=Kreoli u Pi\u0121ini, Bba\u017cat fuq l-Ingli\u017c (O\u0127ra)
 languages.him=\u0126ima\u010bali
-languages.got=Gotiku
-languages.hil=Hiligaynon
 languages.kok=Konkani
+languages.hil=Hiligaynon
+languages.got=Gotiku
 languages.gor=Gorontalo
 languages.gon=Gondi
 languages.din=Dinka
@@ -432,7 +448,7 @@ languages.pt=Portugi\u017c
 languages.ps=Paxtun
 languages.fur=Frijuljan
 languages.phn=Feni\u010bju
-languages.goh=\u0120ermaniku, Antik Pulit (ca. 750-1050)
+languages.goh=\u0120ermaniku, Antik Pulit
 languages.snk=Soninke
 languages.cop=Koptiku
 languages.yap=Japese
@@ -462,7 +478,7 @@ languages.oj=O\u0121ibwa
 languages.mag=Maga\u0127i
 languages.mad=Maduri\u017c
 languages.sma=Southern Sami
-languages.oc=Provenzal (wara 1500)
+languages.oc=O\u010b\u010bitan
 languages.nso=Soto, ta\u2019 Fuq
 languages.btk=Batak
 languages.myv=Erzya
@@ -472,7 +488,7 @@ languages.myn=Majan
 languages.nv=Nava\u0127o
 languages.kmb=Kimbundu
 languages.nr=Ndebele, t\u2019Isfel
-languages.gmh=\u0120ermaniku, Medjevali Pulit (ca. 1050-1500)
+languages.gmh=\u0120ermaniku, Medjevali Pulit
 languages.no=Norve\u0121i\u017c
 languages.nn=Ninorsk Norve\u0121i\u017c
 languages.nl=Olandi\u017c
@@ -490,26 +506,27 @@ languages.tem=Timne
 languages.my=Burmi\u017c
 languages.lez=Le\u017cgjan
 languages.mt=Malti
-languages.peo=Persjan Antik (ca. 600-400 Q.K.)
+languages.peo=Persjan Antik
 languages.ms=Malajan
 languages.mr=Marati
-languages.fro=Fran\u010bi\u017c, Antik (842-ca. 1400)
+languages.fro=Fran\u010bi\u017c, Antik
 languages.mo=Moldavjan
+languages.frm=Fran\u010bi\u017c, Medjevali
 languages.mn=Mongoljan
-languages.frm=Fran\u010bi\u017c, Medjevali (ca. 1400-1600)
-languages.ml=Malajalam
 languages.jrb=Lhudi-G\u0127arbi
+languages.ml=Malajalam
 languages.mk=Ma\u010bedonjan
 languages.mi=Maori
 languages.mh=Marxall
 languages.mg=Malaga\u017ci
 languages.mwr=Marwari
 languages.bra=Braj
-languages.lv=Latvjan (Lettix)
+languages.mwl=Mirandi\u017c
 languages.den=Slav
+languages.lv=Latvjan (Lettix)
 languages.lu=Luba-Katanga
-languages.lt=Litwanjan
 languages.del=Delawerjan
+languages.lt=Litwanjan
 languages.lo=Lao
 languages.ln=Lingaljan
 languages.li=Limburgish
@@ -562,38 +579,38 @@ languages.iu=Inukitut
 languages.pap=Papjamento
 languages.it=Taljan
 languages.sgn=Lingwa tas-Sinjali
-languages.kha=Kasi
 languages.is=I\u017clandi\u017c
+languages.kha=Kasi
 languages.chr=\u010aerokij
 languages.pam=Pampamga
 languages.pal=Pa\u0127lavi
 languages.chp=\u010aipewjan
-languages.cho=\u010aostaw
 languages.io=Ido
+languages.cho=\u010aostaw
 languages.chn=\u0120argon ta\u010b-\u010ainuk
 languages.chm=Mari
 languages.tyv=Tuvinjan
 languages.bnt=Bantu
 languages.pag=Pangasinjan
-languages.chk=\u010aukese
 languages.ik=Inupjak
-languages.haw=\u0126awajjan
+languages.chk=\u010aukese
 languages.ii=Sichuan Yi
+languages.haw=\u0126awajjan
 languages.lam=Lamba
-languages.chg=\u010aagataj
 languages.ig=Igbo
+languages.chg=\u010aagataj
 languages.sga=Irlandi\u017c, Antik (sa l-900)
 languages.paa=Papwan (O\u0127ra)
 languages.ie=Interlingue
 languages.id=Indone\u017cjan
 languages.lah=Landa
-languages.chb=\u010aib\u010ba
 languages.day=Dajak
+languages.chb=\u010aib\u010ba
 languages.ia=Interlingua
 languages.lad=Ladino
-languages.dar=Dargwa
-languages.hai=\u0126ajda
 languages.hz=\u0126erero
+languages.hai=\u0126ajda
+languages.dar=Dargwa
 languages.hy=Armenjan
 languages.ath=Lingwi Atabaskani
 languages.hu=Ungeri\u017c
@@ -615,9 +632,9 @@ languages.iro=Lingwi Irogwjani
 languages.gn=Gwarani
 languages.gl=Gallegjan
 languages.arw=Arawak
-languages.gd=Galliku Sko\u010b\u010bi\u017c
-languages.art=Artifi\u010bjali (O\u0127ra)
 languages.gez=Geez
+languages.art=Artifi\u010bjali (O\u0127ra)
+languages.gd=Galliku Sko\u010b\u010bi\u017c
 languages.ira=Iranjan
 languages.ga=Irlandi\u017c
 languages.arp=Arapa\u0127o
@@ -626,8 +643,8 @@ languages.fy=Fri\u017cjan
 languages.bla=Siksika
 languages.gem=\u0120ermaniku (O\u0127ra)
 languages.ypk=Lingwi Jupi\u010bi
-languages.fr=Fran\u010bi\u017c
 languages.arc=Aramajk
+languages.fr=Fran\u010bi\u017c
 languages.fo=Fawri\u017c
 languages.cel=Keltiku (O\u0127ra)
 languages.fj=Fi\u0121i
@@ -651,16 +668,18 @@ languages.tum=Tumbuka
 languages.mos=Mossi
 languages.dz=D\u017congka
 languages.nic=Ni\u0121erjan - Kordofanjan
-languages.dv=Dive\u0127i
-languages.fiu=Finno - Ugrijan
 languages.lus=Luxaj
+languages.fiu=Finno - Ugrijan
+languages.dv=Dive\u0127i
 languages.nia=Nijas
 languages.moh=Mo\u0127ak
 languages.luo=Luwa
 languages.lun=Lunda
 languages.apa=Lingwi Apa\u010bi
+languages.fil=Filippino
 languages.lui=Luwisinu\u017c
 languages.hup=\u0126upa
+languages.cch=Atsam
 languages.bin=Bini
 languages.de=\u0120ermani\u017c
 languages.lua=Luba-Luluwa
@@ -669,15 +688,15 @@ languages.was=Waxo
 languages.und=Indeterminat
 languages.war=Waraj
 languages.da=Dani\u017c
-languages.dum=Olandi\u017c, Medjevali (ca. 1050-1350)
+languages.dum=Olandi\u017c, Medjevali
 languages.wal=Walamo
 languages.mno=Lingwi Manobo
 languages.wak=Lingwi Wakaxani
 languages.sat=Santali
 languages.cy=Welx
 languages.sas=Saska
-languages.cv=\u010auvax
 languages.kbd=Kabardian
+languages.cv=\u010auvax
 languages.cu=Slaviku tal-Knisja
 languages.mni=Manipuri
 languages.cs=\u010aek
@@ -689,37 +708,38 @@ languages.co=Korsiku
 languages.sai=Indjan tal-Amerika t\u2019Isfel (O\u0127ra)
 languages.mnc=Man\u010burjan
 languages.sah=Jakut
-languages.gba=Gbaja
-languages.inh=Ingush
 languages.kaw=Kawi
+languages.inh=Ingush
+languages.gba=Gbaja
 languages.sad=Sandawe
 languages.ch=\u010aamorro
-languages.bho=Bojpuri
 languages.ine=Indo-Ewropew
+languages.bho=Bojpuri
 languages.enm=Ingli\u017c, Medjevali (1100-1500)
-languages.ce=\u010ae\u010ben
-languages.inc=Indjan (O\u0127ra)
 languages.kar=Karen
+languages.inc=Indjan (O\u0127ra)
+languages.ce=\u010ae\u010ben
 languages.gay=Gajo
 languages.ca=Katalan
 languages.umb=Umbundu
 languages.syr=Sirjan
 languages.kam=Kamba
+languages.anp=Angika
 languages.tsi=Zimxjan
-languages.ang=Ingli\u017c, Antik (ca.450-1100)
-languages.cau=Kawkasu (O\u0127ra)
+languages.ang=Ingli\u017c, Antik
 languages.kac=Ka\u010bin
+languages.cau=Kawkasu (O\u0127ra)
 languages.kab=Kabuljan
-languages.bs=Bosnijan
 languages.kaa=Kara-Kalpak
-languages.br=Brenton
+languages.bs=Bosnijan
 languages.car=Karib
+languages.br=Brenton
 languages.bo=Tibetjan
 languages.bn=Bengali
 languages.bm=Bambara
 languages.gaa=Ga
-languages.bi=Bislama
 languages.cai=Amerika \u010aentrali (O\u0127ra)
+languages.bi=Bislama
 languages.bh=Bi\u0127ari
 languages.bg=Bulgaru
 languages.be=Belarussu
@@ -733,10 +753,10 @@ languages.az=A\u017cerbaj\u0121ani
 languages.ay=Ajmara
 languages.av=Avarik
 languages.as=Assamese
-languages.ar=G\u0127arbi
 languages.dsb=Lower Sorbian
-languages.elx=Elamit
+languages.ar=G\u0127arbi
 languages.ilo=Iloko
+languages.elx=Elamit
 languages.zh=\u010aini\u017c
 languages.an=Aragonese
 languages.pra=Lingwi Prakriti
@@ -759,3 +779,4 @@ languages.nds=\u0120ermani\u017c Komuni; Sassonu Komuni
 languages.bem=Bemba
 languages.bej=Beja
 languages.tpi=Tok Pisin
+variants.REVISED=Ortografija Irriveda
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_my.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_my.properties
new file mode 100644 (file)
index 0000000..dc9efa6
--- /dev/null
@@ -0,0 +1,480 @@
+# LocaleInformation_my.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+zeroDigit=\u1040
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.LKR=\u101e\u102e\u101b\u102d\u101c\u1004\u103a\u1039\u1000\u102c \u101b\u1030\u1015\u102e\u1038
+currenciesDisplayName.CYP=\u1006\u102d\u102f\u1000\u103a\u1015\u101b\u1000\u103a\u1005\u103a \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.XOF=CFA \u1016\u101b\u1014\u1037\u103a BCEAO
+currenciesDisplayName.BYR=\u1018\u102e\u101c\u102c\u101b\u102f\u1005\u103a \u101b\u1030\u1018\u101a\u103a
+currenciesDisplayName.BMD=\u1018\u102c\u1019\u1030\u1012\u102b \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.BSD=\u1018\u101f\u102c\u1038\u1019\u102c\u1038 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.FRF=\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.BYB=\u1018\u102e\u101c\u102c\u101b\u102f\u1005\u103a \u101b\u1030\u1018\u101a\u103a\u1021\u101e\u1005\u103a (\u1041\u1049\u1049\u1044-\u1041\u1049\u1049\u1049)
+currenciesDisplayName.NPR=\u1014\u102e\u1015\u1031\u102b \u101b\u1030\u1015\u102e\u1038
+currenciesDisplayName.CLP=\u1001\u103b\u102e\u101c\u102e \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.XTS=\u1005\u1019\u103a\u1038\u101e\u1015\u103a \u1004\u103d\u1031\u1000\u103c\u1031\u1038 \u1000\u102f\u1012\u103a
+currenciesDisplayName.SUR=\u1006\u102d\u102f\u1017\u102e\u101a\u1000\u103a \u101b\u1030\u1017\u101a\u103a
+currenciesDisplayName.XBB=\u1025\u101b\u1031\u102c\u1015\u1004\u103d\u1031\u1000\u103c\u1031\u1038\u1005\u1036\u1014\u1005\u103a
+currenciesDisplayName.RUR=\u101b\u102f\u101b\u103e \u101b\u1030\u1018\u101a\u103a (\u1041\u1049\u1049\u1041-\u1041\u1049\u1049\u1048)
+currenciesDisplayName.KPW=\u1019\u103c\u1031\u102c\u1000\u103a\u1000\u102d\u102f\u1038\u101b\u102e\u1038\u101a\u102c\u1038 \u101d\u1019\u103a
+currenciesDisplayName.HKD=\u101f\u1031\u102c\u1004\u103a\u1000\u1031\u102c\u1004\u103a \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.FKP=\u1016\u1031\u102c\u1000\u103a\u1000\u101c\u1014\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.ARS=\u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038 \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.BRL=\u1018\u101b\u102c\u1007\u102e\u1038 \u101b\u102e\u1038\u101a\u1032
+currenciesDisplayName.JPY=\u1002\u103b\u1015\u1014\u103a\u101a\u1014\u103a\u1038
+currenciesDisplayName.ARP=\u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038 \u1015\u102e\u1006\u102d\u102f (\u1041\u1049\u1048\u1043-\u1041\u1049\u1048\u1045)
+currenciesDisplayName.IDR=\u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038 \u101b\u1030\u1015\u102e\u1038\u101a\u102c\u1038
+currenciesDisplayName.XAU=\u101b\u103d\u103e\u1031
+currenciesDisplayName.DEM=\u1002\u103b\u102c\u1019\u100f\u102e \u1019\u1010\u103a
+currenciesDisplayName.RUB=\u101b\u102f\u101b\u103e \u101b\u1030\u1018\u101a\u103a
+currenciesDisplayName.VND=\u1017\u102e\u101a\u1000\u103a\u1014\u1019\u103a \u1012\u1031\u102b\u1004\u103a
+currenciesDisplayName.DKK=\u1012\u102d\u1014\u103a\u1038\u1019\u1010\u103a \u1001\u101b\u102d\u102f\u100f\u102c
+currenciesDisplayName.XAG=\u1004\u103d\u1031
+currenciesDisplayName.SBD=\u1006\u1031\u102c\u103a\u101c\u1019\u103d\u1014\u103a\u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.THB=\u1011\u102d\u102f\u1004\u103a\u1038\u1018\u1010\u103a
+currenciesDisplayName.NOK=\u1014\u1031\u102c\u103a\u101d\u1031 \u1001\u101b\u102d\u102f\u100f\u102c
+currenciesDisplayName.BEF=\u1018\u101a\u103a\u101c\u103a\u1002\u103b\u102e\u101a\u1019\u103a \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.PHP=\u1016\u102d\u101c\u1005\u103a\u1015\u102d\u102f\u1004\u103a \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.BWP=\u1018\u1031\u102c\u1037\u1005\u103a\u101d\u102b\u1014\u102c \u1015\u102f\u101c
+currenciesDisplayName.USS=\u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1012\u1031\u102b\u103a\u101c\u102c (\u1010\u1014\u1031\u1037\u1010\u100a\u103a\u1038)
+currenciesDisplayName.FJD=\u1016\u102e\u1002\u103b\u102e \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.USN=\u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1012\u1031\u102b\u103a\u101c\u102c (\u1014\u1031\u102c\u1000\u103a\u1014\u1031\u1037)
+currenciesDisplayName.BDT=\u1018\u1004\u103a\u1039\u1002\u101c\u102c\u1038\u1012\u1031\u1037\u101b\u103e\u103a \u1010\u102c\u1000\u102c
+currenciesDisplayName.AWG=\u1021\u101b\u1030\u1018\u1014\u103a \u1002\u1004\u103a\u1038\u1012\u102b\u1038
+currenciesDisplayName.LBP=\u101c\u1000\u103a\u1018\u1014\u103d\u1014\u103a \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.XXX=\u1019\u101e\u102d (\u101e\u102d\u102f\u1037) \u1019\u101b\u103e\u102d\u101e\u1031\u102c \u1004\u103d\u1031\u1000\u103c\u1031\u1038
+currenciesDisplayName.GIP=\u1002\u103b\u102e\u1018\u101b\u1031\u102c\u103a\u101c\u103a\u1010\u102c \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.USD=\u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.SGD=\u1005\u1004\u103a\u1039\u1000\u102c\u1015\u1030 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.KHR=\u1000\u1019\u1039\u1018\u1031\u102c\u1012\u102e\u1038\u101a\u102c\u1038 \u101b\u102e\u1038\u101a\u1032
+currenciesDisplayName.TRY=\u1010\u1030\u101b\u1000\u102e \u101c\u102d\u102f\u1004\u103a\u101b\u102c
+currenciesDisplayName.NZD=\u1014\u101a\u1030\u1038\u1007\u102e\u101c\u1014\u103a \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.EUR=\u101a\u1030\u101b\u102d\u102f
+currenciesDisplayName.INR=\u1021\u102d\u1014\u1039\u1012\u103c\u102d\u101a \u101b\u1030\u1015\u102e\u1038
+currenciesDisplayName.DOP=\u1012\u102d\u102f\u1019\u102e\u1014\u102e\u1000\u1014\u103a \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.GBP=\u1017\u103c\u102d\u1010\u102d\u101e\u103b\u103e \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.NAD=\u1014\u1019\u103a\u1019\u102e\u1038\u1018\u102e\u1038\u101a\u102c\u1038 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.COP=\u1000\u102d\u102f\u101c\u1036\u1018\u102e\u101a\u102c \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.TRL=\u101b\u103e\u1031\u1038\u101f\u1031\u102c\u1004\u103a\u1038\u1010\u1030\u101b\u1000\u102e \u101c\u102d\u102f\u1004\u103a\u101b\u102c
+currenciesDisplayName.CUP=\u1000\u103b\u1030\u1038\u1018\u102c\u1038 \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.BOP=\u1018\u102d\u102f\u101c\u102e\u1038\u1018\u102e\u1038\u101a\u102c\u1038 \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.MMK=\u1019\u103c\u1014\u103a\u1019\u102c \u1000\u103b\u1015\u103a
+currenciesDisplayName.ZWD=\u1007\u1004\u103a\u1018\u102c\u1018\u103d\u1031 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.MYR=\u1019\u101c\u1031\u1038\u101b\u103e\u102c\u1038 \u101b\u1004\u103a\u1038\u1002\u1005\u103a
+currenciesDisplayName.BIF=\u1018\u1030\u101b\u103d\u1014\u103a\u1012\u102e \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.SRD=\u1006\u1030\u101b\u102d\u1014\u1019\u103a \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.BUK=\u1017\u1019\u102c \u1000\u103b\u1015\u103a
+currenciesDisplayName.PLN=\u1015\u102d\u102f\u101c\u1014\u103a \u1007\u200c\u101c\u1031\u102c\u1037\u1010\u102e
+currenciesDisplayName.GNF=\u1002\u102e\u101b\u102c\u1014\u102c \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.XDR=\u1021\u1011\u1030\u1038\u1011\u102f\u1010\u103a\u101a\u1030\u1001\u103d\u1004\u1037\u103a
+currenciesDisplayName.CNY=\u1010\u101b\u102f\u1010\u103a \u101a\u103d\u1019\u103a\u101b\u1030\u1019\u1004\u103a\u1018\u102e
+currenciesDisplayName.SEK=\u1006\u103d\u102e\u1012\u1004\u103a \u1001\u101b\u102d\u102f\u100f\u102c
+currenciesDisplayName.AUD=\u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.XPT=\u1015\u101c\u1000\u103a\u1010\u102e\u1014\u1019\u103a
+currenciesDisplayName.JMD=\u1002\u103b\u1019\u1031\u1014\u102e\u1000\u102c \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.KYD=\u1000\u1031\u1019\u1014\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.CHF=\u1006\u103d\u1005\u103a \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.KRW=\u1010\u1031\u102c\u1004\u103a\u1000\u102d\u102f\u1038\u101b\u102e\u1038\u101a\u102c\u1038 \u101d\u1019\u103a
+currenciesDisplayName.PKR=\u1015\u102b\u1000\u1005\u1039\u1005\u1010\u1014\u103a \u101b\u1030\u1015\u102e\u1038
+currenciesDisplayName.TWD=\u1011\u102d\u102f\u1004\u103a\u101d\u1019\u103a \u1012\u1031\u102b\u103a\u101c\u102c\u1021\u101e\u1005\u103a
+currenciesDisplayName.EGP=\u1021\u102e\u1002\u103b\u1005\u103a \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.MXN=\u1019\u1000\u1039\u1000\u1006\u102e\u1000\u102d\u102f \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.BND=\u1018\u101b\u1030\u1014\u102d\u102f\u1004\u103a\u1038 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.ANG=\u1014\u101a\u103a\u101e\u102c\u101c\u1014\u103a \u1021\u1014\u103a\u1010\u102e\u101c\u1014\u103a \u1002\u1004\u103a\u1038\u1012\u102b\u1038
+currenciesDisplayName.RWF=\u101b\u101d\u1014\u103a\u1012\u102b \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.SDP=\u1006\u1030\u1012\u1014\u103a \u1015\u1031\u102b\u1004\u103a\u1021\u101f\u1031\u102c\u1004\u103a\u1038
+currenciesDisplayName.ESP=\u1005\u1015\u102d\u1014\u103a \u1015\u101a\u103a\u1005\u1031\u1038\u1010\u102c
+currenciesDisplayName.LRD=\u101c\u102d\u102f\u1004\u103a\u1018\u1031\u1038\u101b\u102e\u1038\u101a\u102c\u1038 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.ILP=\u1021\u1005\u1039\u1005\u101b\u1031\u1038 \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.BZD=\u1018\u1031\u101c\u102e\u1007\u103a \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.SDG=\u1006\u1030\u1012\u1014\u103a \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.CAD=\u1000\u1014\u1031\u1012\u102b \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesSymbol.MMK=K
+shortMonths=\u1007\u1014\u103a\u00ae\u1016\u1031\u00ae\u1019\u1010\u103a\u00ae\u1027\u00ae\u1019\u1031\u00ae\u1007\u103d\u1014\u103a\u00ae\u1007\u1030\u00ae\u1029\u00ae\u1005\u1000\u103a\u00ae\u1021\u1031\u102c\u1000\u103a\u00ae\u1014\u102d\u102f\u00ae\u1012\u102e\u00ae\u00ae
+months=\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e\u00ae\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e\u00ae\u1019\u1010\u103a\u00ae\u1027\u1015\u103c\u102e\u00ae\u1019\u1031\u00ae\u1007\u103d\u1014\u103a\u00ae\u1007\u1030\u101c\u102d\u102f\u1004\u103a\u00ae\u1029\u1002\u102f\u1010\u103a\u00ae\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c\u00ae\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c\u00ae\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c\u00ae\u1012\u102e\u1007\u1004\u103a\u1018\u102c\u00ae\u00ae
+shortWeekdays=\u00ae\u1014\u103d\u1031\u00ae\u101c\u102c\u00ae\u1002\u102b\u00ae\u101f\u1030\u1038\u00ae\u1010\u1031\u1038\u00ae\u1000\u103c\u102c\u00ae\u1014\u1031\u00ae
+weekdays=\u00ae\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031\u00ae\u1010\u1014\u1004\u103a\u1039\u101c\u102c\u00ae\u1021\u1004\u103a\u1039\u1002\u102b\u00ae\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038\u00ae\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038\u00ae\u101e\u1031\u102c\u1000\u103c\u102c\u00ae\u1005\u1014\u1031\u00ae
+eras=\u1018\u102e\u1005\u102e\u00ae\u1021\u1031\u1012\u102e\u00ae
+ampms=\u1014\u1036\u1014\u1000\u103a\u00ae\u100a\u1014\u1031\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=yyyy MMMM d\u104a EEEE
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Iran\u00ae\u1021\u102e\u101b\u1014\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u102e\u101b\u1014\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Africa_Southern\u00ae\u1010\u1031\u102c\u1004\u103a\u1021\u102c\u1016\u101b\u102d\u1000 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1025\u101b\u1031\u102c\u1015 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101b\u103e\u1031\u1037\u1025\u101b\u1031\u102c\u1015 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00ae\u1014\u101a\u1030\u1038\u1007\u102e\u101c\u1014\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1014\u101a\u1030\u1038\u1007\u102e\u101c\u1014\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1000\u102c\u1007\u1000\u103a\u1005\u1010\u1014\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Nepal\u00ae\u1014\u102e\u1015\u1031\u102b \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00ae\u1015\u1004\u103a\u101c\u101a\u103a\u1002\u103d\u1031\u1037 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Malaysia\u00ae\u1019\u101c\u1031\u1038\u101b\u103e\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u1021\u1019\u1031\u101b\u102d\u1000 \u1010\u1031\u102c\u1004\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1019\u1031\u101b\u102d\u1000 \u1010\u1031\u102c\u1004\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Greenland_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a \u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1014\u1031\u102c\u1000\u103a \u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Hong_Kong\u00ae\u101f\u1031\u102c\u1004\u103a\u1000\u1031\u102c\u1004\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u101f\u1031\u102c\u1004\u103a\u1000\u1031\u102c\u1004\u103a \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Myanmar\u00ae\u1019\u103c\u1014\u103a\u1019\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00ae\u1015\u102b\u101b\u102c\u1002\u103d\u1031\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1015\u102b\u101b\u102c\u1002\u103d\u1031\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Ecuador\u00ae\u1021\u102e\u1000\u103d\u1031\u1012\u1031\u102b \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Dutch_Guiana\u00ae\u1012\u1010\u103a\u1001\u103b\u103a \u1002\u102e\u101a\u102c\u1014\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00ae\u1014\u101a\u1030\u1038\u1016\u1031\u102c\u1004\u103a\u101c\u1014\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1014\u101a\u1030\u1038\u1016\u1031\u102c\u1004\u103a\u101c\u1014\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Uruguay\u00ae\u1025\u101b\u102f\u1002\u103d\u1031\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1025\u101b\u102f\u1002\u103d\u1031\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Armenia\u00ae\u1021\u102c\u1019\u1031\u1014\u102e\u1038\u101a\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u102c\u1019\u1031\u1014\u102e\u1038\u101a\u102c\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Korea\u00ae\u1000\u102d\u102f\u1038\u101b\u102e\u1038\u101a\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1000\u102d\u102f\u1038\u101b\u102e\u1038\u101a\u102c\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9South_Georgia\u00ae\u1010\u1031\u102c\u1004\u103a\u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Central\u00ae\u1021\u101c\u101a\u103a\u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101c\u101a\u103a\u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9America_Pacific\u00ae\u1015\u1005\u102d\u1016\u102d\u1010\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1015\u1005\u102d\u1016\u102d\u1010\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Africa_Central\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u102c \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Argentina\u00ae\u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Europe_Central\u00ae\u1025\u101b\u1031\u102c\u1015 \u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1025\u101b\u1031\u102c\u1015 \u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Venezuela\u00ae\u1017\u1004\u103a\u1014\u102e\u1007\u103d\u1032\u101c\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9India\u00ae\u1021\u102d\u1014\u1039\u1012\u103c\u102d\u101a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00ae\u1016\u1031\u102c\u1004\u103a\u1000\u101c\u1014\u103a\u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1016\u1031\u102c\u1004\u103a\u1000\u101c\u1014\u103a\u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9China\u00ae\u1010\u101b\u102f\u1010\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1010\u101b\u102f\u1010\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Singapore\u00ae\u1005\u1004\u103a\u1039\u1000\u102c\u1015\u1030 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Indochina\u00ae\u1021\u1004\u103a\u1012\u102d\u102f\u1001\u103b\u102d\u102f\u1004\u103a\u1038\u1014\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00ae\u1021\u1005\u1039\u1005\u101b\u1031\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00aeIST (\u1021\u1005\u1039\u1005\u101b\u1031\u1038)\u00ae\u1021\u1005\u1039\u1005\u101b\u1031\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Colombia\u00ae\u1000\u102d\u102f\u101c\u1036\u1018\u102e\u101a\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1000\u102d\u102f\u101c\u1036\u1018\u102e\u101a\u102c \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Turkey\u00ae\u1010\u1030\u101b\u1000\u102e \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1010\u1030\u101b\u1000\u102e \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101b\u103e\u1031\u1037\u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Argentina_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a \u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00ae\u1018\u101b\u1030\u1014\u102d\u102f\u1004\u103a\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00ae\u1019\u1000\u102c\u1021\u102d\u102f \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1019\u1000\u102c\u1021\u102d\u102f \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Europe_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Afghanistan\u00ae\u1021\u102c\u1016\u1002\u1014\u103a\u1014\u1005\u1039\u1005\u1010\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00ae\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1002\u102e\u101a\u102c\u1014\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00ae\u1021\u1007\u102c\u1018\u102d\u102f\u1004\u103a\u1002\u103b\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1007\u102c\u1018\u102d\u102f\u1004\u103a\u1002\u103b\u1014\u103a \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00ae\u1021\u102d\u1014\u1039\u1012\u103c\u102d\u101a \u101e\u1019\u102f\u1012\u1039\u1012\u101b\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9East_Timor\u00ae\u1021\u101b\u103e\u1031\u1037\u1010\u102e\u1019\u1031\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00ae\u1000\u103b\u1030\u1038\u1018\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1000\u103b\u1030\u1038\u1018\u102c\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Brasilia\u00ae\u1018\u101b\u102c\u1007\u102e\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1018\u101b\u102c\u1007\u102e\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Bolivia\u00ae\u1018\u102d\u102f\u101c\u102e\u1038\u1018\u102e\u1038\u101a\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Chile\u00ae\u1001\u103b\u102e\u101c\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1001\u103b\u102e\u101c\u102e \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Japan\u00ae\u1002\u103b\u1015\u1014\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1002\u103b\u1015\u1014\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Uzbekistan\u00ae\u1025\u1018\u1000\u103a\u1000\u1005\u1039\u1005\u1010\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1025\u1018\u1000\u103a\u1000\u1005\u1039\u1005\u1010\u1014\u103a \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9British\u00ae\u00ae\u00ae\u1017\u103c\u102d\u1010\u102d\u101e\u103b\u103e \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Indonesia_Central\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Moscow\u00ae\u1019\u1031\u102c\u103a\u1005\u1000\u102d\u102f \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1019\u1031\u102c\u103a\u1005\u1000\u102d\u102f \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Peru\u00ae\u1015\u102e\u101b\u1030\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1015\u102e\u101b\u1030\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9GMT\u00ae\u1002\u101b\u1004\u103a\u1038\u1014\u1005\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Arabian\u00ae\u1021\u102c\u101b\u1031\u1017\u103b \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u102c\u101b\u1031\u1017\u103b \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Atlantic\u00ae\u1021\u1010\u1039\u1011\u101c\u1014\u103a\u1010\u1005\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1010\u1039\u1011\u101c\u1014\u103a\u1010\u1005\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Australia_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Bhutan\u00ae\u1018\u1030\u1010\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00ae\u101e\u102e\u101b\u102d\u101c\u1004\u103a\u1039\u1000\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00ae\u1021\u101c\u101a\u103a\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101c\u101a\u103a\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Philippines\u00ae\u1016\u102d\u101c\u1005\u103a\u1015\u102d\u102f\u1004\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1016\u102d\u101c\u1005\u103a\u1015\u102d\u102f\u1004\u103a \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Papua_New_Guinea\u00ae\u1015\u102b\u1015\u1030\u101b\u102c\u1014\u101a\u1030\u1038\u1002\u102e\u1014\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00ae\u1015\u102b\u1000\u1005\u1039\u1005\u1010\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1015\u102b\u1000\u1005\u1039\u1005\u1010\u1014\u103a \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Bangladesh\u00ae\u1018\u1004\u103a\u1039\u1002\u101c\u102c\u1038\u1012\u1031\u1037\u101b\u103e\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u1021\u101b\u103e\u1031\u1037\u1010\u102e\u1019\u1031\u102c
+territories.TJ=\u1010\u102c\u1002\u103b\u102e\u1000\u1005\u1039\u1005\u1010\u1014\u103a
+territories.TH=\u1011\u102d\u102f\u1004\u103a\u1038
+territories.TF=\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1015\u102d\u102f\u1004\u103a\u1014\u1000\u103a\u1019\u103b\u102c\u1038
+territories.TD=\u1001\u103b\u1012\u103a
+territories.GU=\u1002\u1030\u1021\u1019\u103a
+territories.GT=\u1002\u103d\u102c\u1010\u102e\u1019\u102c\u101c\u102c
+territories.GS=\u1010\u1031\u102c\u1004\u103a \u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u102c \u1014\u103e\u1004\u1037\u103a \u1010\u1031\u102c\u1004\u103a \u1006\u1004\u103a\u1038\u1012\u101d\u1005\u103a\u1002\u103b\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u1019\u103b\u102c\u1038
+territories.GR=\u1002\u101b\u102d
+territories.GQ=\u1021\u102e\u1000\u103d\u1031\u1010\u102c \u1002\u102e\u101b\u102c\u1014\u102c
+territories.SY=\u1006\u102e\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+territories.GN=\u1002\u102e\u101b\u102c\u1014\u102c
+territories.GM=\u1002\u1014\u103a\u1018\u102e\u101b\u102c
+territories.GL=\u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038
+territories.SV=\u1021\u101a\u103a\u101c\u103a\u1006\u102c\u1017\u1031\u1038\u1012\u102d\u102f\u1038
+territories.062=\u1010\u1031\u102c\u1004\u103a-\u1021\u101c\u101a\u103a \u1021\u102c\u101b\u103e
+territories.GI=\u1002\u103b\u102e\u1018\u101b\u1031\u102c\u103a\u101c\u103a\u1010\u102c
+territories.GH=\u1002\u102b\u1014\u102c
+territories.GF=\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1002\u102e\u101a\u102c\u1014\u102c
+territories.GE=\u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u102c
+territories.SO=\u1006\u102d\u102f\u1019\u102c\u101c\u102e\u101a\u102c
+territories.SN=\u1006\u102e\u1014\u102e\u1002\u1031\u102b
+territories.GB=\u101a\u1030\u1014\u102d\u102f\u1000\u103a\u1010\u1000\u103a\u1000\u1004\u103a\u1038\u1012\u1019\u103a\u1038
+territories.SK=\u1005\u101c\u102d\u102f\u1017\u1031\u1038\u1000\u102e\u1038\u101a\u102c\u1038
+territories.SI=\u1005\u101c\u102d\u102f\u1017\u1031\u1038\u1014\u102e\u1038\u101a\u102c\u1038
+territories.SG=\u1005\u1004\u103a\u1039\u1000\u102c\u1015\u1030
+territories.SE=\u1006\u103d\u102e\u1012\u1004\u103a
+territories.SD=\u1006\u1030\u1012\u1014\u103a
+territories.SB=\u1006\u1031\u102c\u103a\u101c\u1019\u103d\u1014\u103a\u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.SA=\u1006\u1031\u102c\u103a\u1012\u102e\u1021\u102c\u101b\u1031\u1038\u1017\u102e\u1038\u101a\u102c\u1038
+territories.FR=\u1015\u103c\u1004\u103a\u101e\u1005\u103a
+territories.FO=\u1016\u102c\u101b\u102d\u102f\u1038 \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u1019\u103b\u102c\u1038
+territories.RW=\u101b\u101d\u1014\u103a\u1012\u102b
+territories.FK=\u1016\u1031\u102c\u1000\u103a\u1000\u101c\u1014\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.053=\u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e \u1014\u103e\u1004\u1037\u103a \u1014\u101a\u1030\u1038\u1007\u102e\u101c\u1014\u103a
+territories.RU=\u101b\u102f\u101b\u103e
+territories.FJ=\u1016\u102e\u1002\u103b\u102e
+territories.FI=\u1016\u1004\u103a\u101c\u1014\u103a
+territories.RS=\u1006\u102c\u1038\u1018\u102e\u1038\u101a\u102c\u1038
+territories.RO=\u101b\u102d\u102f\u1019\u1031\u1038\u1014\u102e\u1038\u101a\u102c\u1038
+territories.ET=\u1021\u102e\u101e\u102e\u101a\u102d\u102f\u1038\u1015\u102e\u1038\u101a\u102c\u1038
+territories.ES=\u1005\u1015\u102d\u1014\u103a
+territories.QU=\u1025\u101b\u1031\u102c\u1015\u101e\u1019\u1002\u1039\u1002
+territories.EH=\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1006\u102c\u101f\u102c\u101b
+territories.EG=\u1021\u102e\u1002\u103b\u1005\u103a
+territories.EE=\u1021\u1000\u103a\u1005\u1010\u102d\u102f\u1038\u1014\u102e\u1038\u101a\u102c\u1038
+territories.EC=\u1021\u102e\u1000\u103d\u1031\u1012\u1031\u102b
+territories.DZ=\u1021\u101a\u103a\u101c\u103a\u1002\u103b\u102e\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+territories.QA=\u1000\u102c\u1010\u102c
+territories.039=\u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015
+territories.DO=\u1012\u102d\u102f\u1019\u102e\u1014\u102e\u1000\u1014\u103a
+territories.PY=\u1015\u102b\u101b\u102c\u1002\u103d\u1031\u1038
+territories.DM=\u1012\u102d\u102f\u1019\u102e\u1014\u102e\u1000\u102c
+territories.035=\u1021\u200c\u101b\u103e\u1031\u1037\u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u101b\u103e
+territories.034=\u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u101b\u103e
+territories.DK=\u1012\u102d\u1014\u103a\u1038\u1019\u1010\u103a
+territories.PT=\u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e
+territories.PS=\u1015\u102b\u101c\u1000\u103a\u1005\u1010\u102d\u102f\u1004\u103a\u1038 \u1015\u102d\u102f\u1004\u103a\u1014\u1000\u103a
+territories.030=\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u101b\u103e
+territories.PR=\u1015\u1031\u102b\u103a\u1010\u1030\u101b\u102e\u1000\u102d\u102f
+territories.DE=\u1002\u103b\u102c\u1019\u100f\u102e
+territories.PL=\u1015\u102d\u102f\u101c\u1014\u103a
+territories.PK=\u1015\u102b\u1000\u1005\u1039\u1005\u1010\u1014\u103a
+territories.PH=\u1016\u102d\u101c\u1005\u103a\u1015\u102d\u102f\u1004\u103a
+territories.PG=\u1015\u102b\u1015\u1030\u101b\u102c\u1014\u101a\u1030\u1038\u1002\u102e\u1014\u102e
+territories.PF=\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1015\u1031\u102b\u103a\u101c\u102e\u1014\u1031\u1038\u101b\u103e\u102c\u1038
+territories.CZ=\u1001\u103b\u1000\u103a \u1015\u103c\u100a\u103a\u1011\u1031\u102c\u1004\u103a\u1005\u102f
+territories.PE=\u1015\u102e\u101b\u1030\u1038
+territories.CY=\u1006\u102d\u102f\u1000\u103a\u1015\u101b\u1000\u103a\u1005\u103a
+territories.CX=\u1001\u101b\u1005\u103a\u1005\u1019\u1010\u103a \u1000\u103b\u103d\u1014\u103a\u1038
+territories.PA=\u1015\u1014\u102c\u1038\u1019\u102c\u1038
+territories.CU=\u1000\u103b\u1030\u1038\u1018\u102c\u1038
+territories.CR=\u1000\u1031\u102c\u1037\u1005\u103a\u1010\u102c\u101b\u102e\u1000\u102c
+territories.029=\u1000\u102c\u101b\u102e\u1018\u102e\u101a\u1036
+territories.CO=\u1000\u102d\u102f\u101c\u1036\u1018\u102e\u101a\u102c
+territories.CN=\u1010\u101b\u102f\u1010\u103a
+territories.CM=\u1000\u1004\u103a\u1019\u101b\u103d\u1014\u103a\u1038
+territories.CL=\u1001\u103b\u102e\u101c\u102e
+territories.CK=\u1000\u103d\u1010\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.021=\u1019\u103c\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000
+territories.CI=\u1021\u102d\u102f\u1004\u103a\u1017\u101b\u102e\u1000\u102d\u102f\u1005\u1037\u103a
+territories.CH=\u1006\u103d\u1005\u103a\u1007\u101c\u1014\u103a
+territories.CF=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000 \u1015\u103c\u100a\u103a\u1011\u1031\u102c\u1004\u103a\u1005\u102f
+territories.CC=\u1000\u102d\u102f\u1000\u102d\u102f\u1038 \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.OM=\u1021\u102d\u102f\u1019\u1014\u103a
+territories.CA=\u1000\u1014\u1031\u1012\u102b
+territories.419=\u101c\u1000\u103a\u1010\u1004\u103a \u1021\u1019\u1031\u101b\u102d\u1000 \u1014\u103e\u1004\u1037\u103a \u1000\u102c\u101b\u102e\u1018\u102e\u101a\u1014\u103a
+territories.BZ=\u1018\u1031\u101c\u102e\u1007\u103a
+territories.BY=\u1018\u102e\u101c\u102c\u101b\u102f\u1005\u103a
+territories.BW=\u1018\u1031\u102c\u1037\u1005\u103a\u101d\u102b\u1014\u102c
+territories.BT=\u1018\u1030\u1010\u1014\u103a
+territories.BS=\u1018\u101f\u102c\u1038\u1019\u102c\u1038
+territories.BR=\u1018\u101b\u102c\u1007\u102e\u1038
+territories.019=\u1021\u1019\u1031\u101b\u102d\u1000\u1019\u103b\u102c\u1038
+territories.018=\u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000
+territories.NZ=\u1014\u101a\u1030\u1038\u1007\u102e\u101c\u1014\u103a
+territories.017=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000
+territories.BO=\u1018\u102d\u102f\u101c\u102e\u1038\u1018\u102e\u1038\u101a\u102c\u1038
+territories.BN=\u1018\u101b\u1030\u1014\u102d\u102f\u1004\u103a\u1038
+territories.015=\u1019\u103c\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000
+territories.BM=\u1018\u102c\u1019\u1030\u1012\u102b
+territories.014=\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000
+territories.013=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000
+territories.011=\u1021\u1014\u1031\u102c\u1000\u103a \u1021\u102c\u1016\u101b\u102d\u1000
+territories.172=\u101c\u103d\u1010\u103a\u101c\u1015\u103a\u101e\u1031\u102c \u1015\u103c\u100a\u103a\u1011\u1031\u102c\u1004\u103a\u1005\u102f\u1019\u103b\u102c\u1038\u104f \u1013\u1014\u101e\u101f\u102c\u101a\u1021\u1016\u103d\u1032\u1037
+territories.BH=\u1018\u102c\u101b\u102d\u1014\u103a\u1038
+territories.BG=\u1018\u1030\u1002\u1031\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+territories.NP=\u1014\u102e\u1015\u1031\u102b
+territories.BE=\u1018\u101a\u103a\u101c\u103a\u1002\u103b\u102e\u101a\u1019\u103a
+territories.ZZ=\u1019\u101e\u102d \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1019\u101b\u103e\u102d \u101e\u1031\u102c \u1014\u1031\u101b\u102c
+territories.NO=\u1014\u1031\u102c\u103a\u101d\u1031
+territories.BD=\u1018\u1004\u103a\u1039\u1002\u101c\u102c\u1038\u1012\u1031\u1037\u101b\u103e\u103a
+territories.ZW=\u1007\u1004\u103a\u1018\u102c\u1018\u103d\u1031
+territories.NL=\u1014\u101a\u103a\u101e\u102c\u101c\u1014\u103a
+territories.BA=\u1018\u1031\u102c\u1037\u1005\u1014\u102e\u1038\u101a\u102c\u1038 \u1014\u103e\u1004\u1037\u103a \u101f\u102c\u1007\u102e\u1002\u102d\u102f\u1018\u102e\u1038\u1014\u102c\u1038
+territories.NI=\u1014\u102e\u1000\u102c\u101b\u102c\u1002\u103d\u102c
+territories.NG=\u1014\u102d\u102f\u1004\u103a\u1002\u103b\u102e\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+territories.AZ=\u1021\u1007\u102c\u1018\u102d\u102f\u1004\u103a\u1002\u103b\u1014\u103a
+territories.NE=\u1014\u102d\u102f\u1004\u103a\u1002\u103b\u102c
+territories.NC=\u1014\u101a\u1030\u1038 \u1000\u101a\u103a\u101c\u102e\u1012\u102d\u102f\u1014\u102e\u1038\u101a\u102c\u1038
+territories.ZM=\u1007\u1019\u103a\u1018\u102e\u101a\u102c
+territories.NA=\u1014\u1019\u103a\u1019\u102e\u1038\u1018\u102e\u1038\u101a\u102c\u1038
+territories.AU=\u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038
+territories.AT=\u1029\u1005\u1010\u103c\u102e\u1038\u101a\u102c\u1038
+territories.AS=\u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1005\u1019\u102d\u102f\u1021
+territories.AR=\u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038
+territories.AQ=\u1021\u1014\u1039\u1010\u102c\u1010\u102d\u1000
+territories.009=\u101e\u1019\u102f\u1012\u1039\u1012\u101b\u102c\u1012\u1031\u101e
+territories.MZ=\u1019\u102d\u102f\u1007\u1014\u103a\u1018\u1005\u103a
+territories.AO=\u1021\u1004\u103a\u1002\u102d\u102f\u101c\u102c
+territories.MY=\u1019\u101c\u1031\u1038\u101b\u103e\u102c\u1038
+territories.MX=\u1019\u1000\u1039\u1000\u1006\u102e\u1000\u102d\u102f
+territories.AM=\u1021\u102c\u1019\u1031\u1014\u102e\u1038\u101a\u102c\u1038
+territories.005=\u1010\u1031\u102c\u1004\u103a \u1021\u1019\u1031\u101b\u102d\u1000
+territories.MW=\u1019\u102c\u101c\u102c\u101d\u102e
+territories.MV=\u1019\u1031\u102c\u103a\u101c\u1012\u102d\u102f\u1000\u103a
+territories.003=\u1019\u103c\u1031\u102c\u1000\u103a \u1021\u1019\u1031\u101b\u102d\u1000
+territories.ZA=\u1010\u1031\u102c\u1004\u103a\u1021\u102c\u1016\u101b\u102d\u1000
+territories.002=\u1021\u102c\u1016\u101b\u102d\u1000
+territories.AI=\u1021\u1014\u103a\u1000\u103d\u102e\u101c\u102c
+territories.001=\u1000\u1019\u1039\u1018\u102c
+territories.AF=\u1021\u102c\u1016\u1002\u1014\u103a\u1014\u1005\u1039\u1005\u1010\u1014\u103a
+territories.AE=\u101a\u1030\u1021\u1031\u1021\u102e\u1038
+territories.MO=\u1019\u1000\u102c\u1021\u102d\u102f
+territories.MN=\u1019\u103d\u1014\u103a\u1002\u102d\u102f\u1038\u101c\u102e\u1038\u101a\u102c\u1038
+territories.MM=\u1019\u103c\u1014\u103a\u1019\u102c
+territories.ML=\u1019\u102c\u101c\u102e
+territories.MK=\u1019\u102c\u1005\u102e\u1012\u102d\u102f\u1038\u1014\u102e\u1038\u101a\u102c\u1038
+territories.MH=\u1019\u102c\u101b\u103e\u101a\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.MG=\u1019\u1012\u1002\u1010\u103a\u1005\u1000\u102c
+territories.MF=\u1005\u102d\u1014\u1037\u103a\u1019\u102c\u1010\u1004\u103a
+territories.ME=\u1019\u103d\u1014\u103a\u1010\u102e\u1014\u102d\u1002\u101b\u102d\u102f\u1038
+territories.MC=\u1019\u102d\u102f\u1014\u1000\u102d\u102f
+territories.MA=\u1019\u1031\u102c\u103a\u101b\u102d\u102f\u1000\u102d\u102f
+territories.YE=\u101a\u102e\u1019\u1004\u103a
+territories.LV=\u101c\u1010\u103a\u1017\u102e\u1038\u101a\u102c\u1038
+territories.155=\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015
+territories.LU=\u101c\u1030\u1007\u1004\u103a\u1018\u1010\u103a
+territories.154=\u1019\u103c\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015
+territories.LT=\u101c\u1005\u103a\u101e\u1030\u101a\u1031\u1038\u1014\u102e\u1038\u101a\u102c\u1038
+territories.LR=\u101c\u102d\u102f\u1004\u103a\u1018\u1031\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+territories.151=\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015
+territories.150=\u1025\u101b\u1031\u102c\u1015
+territories.LK=\u101e\u102e\u101b\u102d\u101c\u1004\u103a\u1039\u1000\u102c
+territories.LB=\u101c\u1000\u103a\u1018\u1014\u103d\u1014\u103a
+territories.LA=\u101c\u102c\u1021\u102d\u102f
+territories.KZ=\u1000\u102c\u1007\u1000\u103a\u1005\u1010\u1014\u103a
+territories.KY=\u1000\u1031\u1019\u1014\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.KW=\u1000\u1030\u101d\u102d\u1010\u103a
+territories.145=\u1021\u1014\u1031\u102c\u1000\u103a \u1021\u102c\u101b\u103e
+territories.143=\u1021\u101c\u101a\u103a \u1021\u102c\u101b\u103e
+territories.142=\u1021\u102c\u101b\u103e
+territories.KR=\u1010\u1031\u102c\u1004\u103a\u1000\u102d\u102f\u101b\u102e\u1038\u101a\u102c\u1038
+territories.KP=\u1019\u103c\u1031\u102c\u1000\u103a\u1000\u102d\u102f\u101b\u102e\u1038\u101a\u102c\u1038
+territories.KH=\u1000\u1019\u1039\u1018\u1031\u102c\u1012\u102e\u1038\u101a\u102c\u1038
+territories.KG=\u1001\u101a\u103a\u1000\u1005\u1039\u1005\u1010\u1014\u103a
+territories.KE=\u1000\u1004\u103a\u100a\u102c
+territories.JP=\u1002\u103b\u1015\u1014\u103a
+territories.JO=\u1002\u103b\u1031\u102c\u103a\u1012\u1014\u103a
+territories.JM=\u1002\u103b\u1019\u1031\u1014\u102e\u1000\u102c
+territories.JE=\u1002\u103b\u102c\u1005\u102e
+territories.VN=\u1017\u102e\u101a\u1000\u103a\u1014\u1019\u103a
+territories.VI=\u101a\u1030\u1021\u1000\u103a\u1005\u103a \u1017\u102c\u1002\u103b\u1004\u103a\u1038 \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.VG=\u1017\u103c\u102d\u1010\u102d\u101e\u103b\u103e \u1017\u102c\u1002\u103b\u1004\u103a\u1038 \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.VE=\u1017\u1004\u103a\u1014\u102e\u1007\u103d\u1032\u101c\u102c\u1038
+territories.VA=\u1017\u102c\u1010\u102e\u1000\u1014\u103a
+territories.IT=\u1021\u102e\u1010\u101c\u102e
+territories.IS=\u1021\u102d\u102f\u1000\u103a\u1005\u101c\u1014\u103a
+territories.IR=\u1021\u102e\u101b\u1014\u103a
+territories.IQ=\u1021\u102e\u101b\u1010\u103a
+territories.UZ=\u1025\u1018\u1000\u103a\u1000\u1005\u1039\u1005\u1010\u1014\u103a
+territories.IO=\u1017\u103c\u102d\u1010\u102d\u101e\u103b\u103e \u1021\u102d\u1014\u1039\u1012\u103c\u102d\u101a \u101e\u1019\u102f\u1012\u1039\u1012\u101b\u102c \u1015\u102d\u102f\u1004\u103a\u1014\u1000\u103a
+territories.UY=\u1025\u101b\u102f\u1002\u103d\u1031\u1038
+territories.IN=\u1021\u102d\u1014\u1039\u1012\u103c\u102d\u101a
+territories.IL=\u1021\u1005\u1039\u1005\u101b\u1031\u1038
+territories.US=\u101a\u1030\u1014\u102d\u102f\u1000\u103a\u1010\u1000\u103a\u1005\u1010\u102d\u1010\u103a
+territories.IE=\u1021\u102d\u102f\u1004\u103a\u101a\u102c\u101c\u1014\u103a
+territories.ID=\u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038
+territories.UM=\u101a\u1030\u1014\u102d\u102f\u1000\u103a\u1010\u1000\u103a\u1005\u1010\u102d\u1010\u103a \u1021\u1015\u103c\u1004\u103a\u1011\u103d\u1000\u103a \u1014\u1031\u101e\u100a\u1037\u103a \u101e\u1031\u1038\u1004\u101a\u103a\u101e\u1031\u102c\u1000\u103b\u103d\u1014\u103a\u1038\u1019\u103b\u102c\u1038
+territories.UG=\u101a\u1030\u1002\u1014\u1039\u1012\u102c
+territories.UA=\u101a\u1030\u1000\u101b\u102d\u1014\u103a\u1038
+territories.HU=\u101f\u1014\u103a\u1002\u1031\u101b\u102e
+territories.HT=\u101f\u1031\u1010\u102e
+territories.HR=\u1001\u101b\u102d\u102f\u1021\u1031\u1038\u101b\u103e\u102c\u1038
+territories.TZ=\u1010\u1014\u103a\u1007\u1014\u103a\u1014\u102e\u1038\u101a\u102c\u1038
+territories.HN=\u101f\u103d\u1014\u103a\u1012\u1030\u1038\u101b\u1015\u103a\u1005\u103a
+territories.TW=\u1011\u102d\u102f\u1004\u103a\u101d\u1019\u103a
+territories.HK=\u101f\u1031\u102c\u1004\u103a\u1000\u1031\u102c\u1004\u103a
+territories.TR=\u1010\u1030\u101b\u1000\u102e
+territories.TO=\u1010\u103d\u1014\u103a\u1002\u102b
+territories.TN=\u1010\u1030\u1014\u102e\u1038\u101b\u103e\u102c\u1038
+languages.es=\u1005\u1015\u102d\u1014\u103a
+languages.mul=\u1019\u103b\u102c\u1038\u1005\u103d\u102c\u200b\u101e\u1031\u102c \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038\u1019\u103b\u102c\u1038
+languages.ku=\u1000\u1012\u103a
+languages.en=\u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.el=\u1002\u101b\u102d
+languages.phi=\u1016\u102d\u101c\u1005\u103a\u1015\u102d\u102f\u1004\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.ko=\u1000\u102d\u102f\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+languages.kn=\u1000\u1014\u103a\u1014\u102c\u1012\u102b
+languages.zxx=\u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038 \u1014\u103e\u1004\u1037\u103a \u1015\u1010\u103a\u101e\u1000\u103a \u101e\u1031\u102c\u1021\u101b\u102c\u1019\u101b\u103e\u102d
+languages.tai=\u1010\u102d\u102f\u1004\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.km=\u1001\u1019\u102c
+languages.sgn=\u1021\u1001\u103b\u1000\u103a\u1015\u103c \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.sai=\u1010\u1031\u102c\u1004\u103a \u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.kg=\u1000\u103d\u1014\u103a\u1002\u102d\u102f
+languages.ka=\u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u1014\u103a
+languages.cpp=\u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e \u1021\u1001\u103c\u1031\u1001\u1036 \u1021\u1014\u1031\u102c\u1000\u103a\u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u101e\u102c\u1038 \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1017\u1014\u103a\u1038\u1005\u1000\u102c\u1038
+languages.dz=\u200b\u1007\u1031\u102c\u1004\u103a\u1038\u1001\u102b
+languages.mno=\u1019\u1014\u102d\u102f\u1018\u102d\u102f \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.zh_Hans=\u101b\u102d\u102f\u1038\u101b\u103e\u1004\u103a\u1038\u101e\u1031\u102c \u1010\u101b\u102f\u1010\u103a
+languages.smi=\u1006\u102c\u1019\u102d \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.zh_Hant=\u101b\u103e\u1031\u1038\u101b\u102d\u102f\u1038\u1005\u1009\u103a\u101c\u102c \u1010\u101b\u102f\u1010\u103a
+languages.sga=\u1021\u102d\u102f\u1004\u103a\u1038\u101b\u1005\u103a \u101f\u1031\u102c\u1004\u103a\u1038
+languages.mni=\u1019\u100f\u102d\u1015\u1030\u101b
+languages.jv=\u1002\u103b\u102c\u1017\u102c\u1038\u1014\u102e\u1038\u1005\u103a
+languages.cpf=\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1021\u1001\u103c\u1031\u1001\u1036 \u1021\u1014\u1031\u102c\u1000\u103a\u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u101e\u102c\u1038 \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1017\u1014\u103a\u1038\u1005\u1000\u102c\u1038
+languages.cpe=\u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a \u1021\u1001\u103c\u1031\u1001\u1036 \u1021\u1014\u1031\u102c\u1000\u103a\u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u101e\u102c\u1038 \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1017\u1014\u103a\u1038\u1005\u1000\u102c\u1038
+languages.sma=\u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1006\u102c\u1019\u102d
+languages.fil=\u1016\u102d\u101c\u1005\u103a\u1015\u102e\u1014\u102d\u102f
+languages.mnc=\u1019\u1014\u103a\u1001\u103b\u1030\u1038
+languages.pt=\u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e
+languages.paa=\u1015\u102b\u1015\u1030\u101b\u1014\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.de=\u1002\u103b\u102c\u1019\u1014\u103a
+languages.kha=\u1001\u102b\u1005\u102e
+languages.pl=\u1015\u102d\u102f\u101c\u1014\u103a
+languages.da=\u1012\u102d\u1014\u103a\u1038\u1019\u1010\u103a
+languages.pi=\u1015\u102b\u1020\u102d
+languages.ja=\u1002\u103b\u1015\u1014\u103a
+languages.vi=\u1017\u102e\u101a\u1000\u103a\u1014\u1019\u103a
+languages.kar=\u1000\u101b\u1004\u103a
+languages.dum=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1012\u1010\u103a\u1001\u103b\u103a
+languages.cy=\u101d\u1031\u101c
+languages.pa=\u1015\u1014\u103a\u1002\u103b\u102c\u1015\u102e
+languages.ine=\u1021\u1004\u103a\u1012\u102d\u102f \u1025\u101b\u1031\u102c\u1015 \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.cs=\u1001\u103b\u1000\u103a
+languages.inc=\u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1021\u1001\u103c\u1031\u1001\u1036 \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.cr=\u1001\u101b\u102e\u1038
+languages.sla=\u1005\u101c\u102d\u102f\u1017\u1005\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.mga=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102d\u102f\u1004\u103a\u1038\u101b\u1005\u103a
+languages.it=\u1021\u102e\u1010\u101c\u102e
+languages.haw=\u101f\u102c\u101d\u1031\u101b\u1014\u103a
+languages.kac=\u1000\u1001\u103b\u1004\u103a
+languages.enm=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.ce=\u1001\u103b\u1031\u1001\u103b\u1004\u103a\u1038
+languages.ii=\u1005\u102e\u1001\u103b\u103d\u1019\u103a \u101b\u102e
+languages.chr=\u1001\u103b\u102c\u101b\u102d\u102f\u1000\u102e
+languages.id=\u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038
+languages.es_419=\u101c\u1000\u103a\u1010\u1004\u103a\u1021\u1019\u1031\u101b\u102d\u1000 \u1005\u1015\u102d\u1014\u103a
+languages.uk=\u101a\u1030\u1000\u101b\u102d\u1014\u103a\u1038
+languages.gsw=\u1006\u103d\u1005\u103a \u1002\u103b\u102c\u1019\u1014\u103a
+languages.egy=\u101b\u103e\u1031\u1038\u101f\u1031\u102c\u1004\u103a\u1038 \u1021\u102e\u1002\u103b\u1005\u103a
+languages.bs=\u1018\u1031\u102c\u1037\u1005\u103a\u1014\u102e\u1038\u101a\u102c\u1038
+languages.peo=\u1015\u102b\u101b\u103e\u1014\u103a \u1021\u101f\u1031\u102c\u1004\u103a\u1038
+languages.hu=\u101f\u1014\u103a\u1002\u1031\u101b\u102e
+languages.bo=\u1010\u102d\u1018\u1000\u103a
+languages.bn=\u1018\u1004\u103a\u1039\u1002\u102b\u101c\u102e
+languages.fr_CH=\u1006\u103d\u1005\u103a \u1015\u103c\u1004\u103a\u101e\u1005\u103a
+languages.hr=\u1001\u101b\u102d\u102f\u1021\u1031\u101b\u103e\u1014\u103a
+languages.gmh=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u103c\u1004\u1037\u103a\u1002\u103b\u102c\u1019\u1014\u103a
+languages.cau=\u1000\u1031\u102c\u1000\u103a\u1000\u1031\u1038\u101b\u103e\u1015\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.dak=\u1012\u102b\u1000\u102d\u102f\u1010\u102c
+languages.bg=\u1018\u1030\u1002\u1031\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+languages.fr_CA=\u1000\u1014\u1031\u1012\u102b \u1015\u103c\u1004\u103a\u101e\u1005\u103a
+languages.de_CH=\u1006\u103d\u1005\u103a \u1021\u1019\u103c\u1004\u1037\u103a \u1002\u103b\u102c\u1019\u1014\u103a
+languages.ang=\u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a\u1005\u102c\u101f\u1031\u102c\u1004\u103a\u1038
+languages.no=\u1014\u1031\u102c\u103a\u101d\u1031\u1038
+languages.be=\u1018\u102e\u101c\u102c\u101b\u102f
+languages.bat=\u1018\u1031\u102c\u103a\u101c\u1010\u1005\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.hi=\u101f\u102d\u1014\u1039\u1012\u102e
+languages.bas=\u1018\u102c\u1006\u102c
+languages.nl=\u1012\u1010\u103a\u1001\u103b\u103a
+languages.zu=\u1007\u1030\u101c\u1030
+languages.he=\u101f\u102e\u1038\u1018\u101b\u1030\u1038
+languages.cai=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.ban=\u1018\u102c\u101c\u102e
+languages.ne=\u1014\u102e\u1015\u1031\u102b\u101c\u103a
+languages.th=\u1011\u102d\u102f\u1004\u103a\u1038
+languages.en_US=\u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.en_CA=\u1000\u1014\u1031\u1012\u102b \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.zh=\u1010\u101b\u102f\u1010\u103a
+languages.jrb=\u1002\u103b\u1030\u1012\u102e\u101a\u102d\u102f-\u1021\u102c\u101b\u1031\u1017\u103b
+languages.ar=\u1021\u102c\u101b\u1017\u102e
+languages.ta=\u1010\u1019\u102e\u1038\u101c\u103a
+languages.mkh=\u1019\u103d\u1014\u103a-\u1001\u1019\u102c \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.gu=\u1002\u1030\u1002\u103b\u102c\u101b\u101e\u102e
+languages.my=\u1017\u1019\u102c
+languages.ira=\u1021\u102e\u101b\u1014\u103a \u1021\u1001\u103c\u1031\u1001\u1036 \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.frs=\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1016\u101b\u102e\u1005\u102e\u101b\u1014\u103a
+languages.frr=\u1019\u103c\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1016\u101b\u102e\u1005\u102e\u101b\u1014\u103a
+languages.ms=\u1019\u101c\u1031\u1038
+languages.nds=\u1021\u1014\u102d\u1019\u1037\u103a \u1002\u103b\u102c\u1019\u1014\u103a
+languages.mr=\u1019\u102c\u101b\u101e\u102e
+languages.fro=\u1015\u103c\u1004\u103a\u101e\u1005\u103a\u101f\u1031\u102c\u1004\u103a\u1038
+languages.sv=\u1006\u103d\u102e\u1012\u1004\u103a
+languages.su=\u1006\u1030\u1012\u1014\u103a
+languages.frm=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1015\u103c\u1004\u103a\u101e\u1005\u103a
+languages.mn=\u1019\u103d\u1014\u103a\u1002\u102d\u102f\u101c\u102e\u1038\u101a\u1014\u103a\u1038
+languages.sr=\u1006\u102c\u1038\u1017\u102e\u1038\u101a\u1014\u103a\u1038
+languages.sit=\u1010\u101b\u102f\u1010\u103a-\u1010\u102d\u1018\u1000\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.sco=\u1005\u1000\u1031\u102c\u1037
+languages.sq=\u1021\u101a\u103a\u101c\u103a\u1018\u1031\u1038\u1014\u102e\u1038\u101a\u1014\u103a\u1038
+languages.ml=\u1019\u101c\u1031\u1038\u101b\u102c\u101c\u1019\u103a
+languages.grc=\u101b\u103e\u1031\u1038\u101f\u1031\u102c\u1004\u103a\u1038 \u1002\u101b\u102d
+languages.so=\u1006\u102d\u102f\u1019\u102c\u101c\u102e
+languages.sl=\u1005\u101c\u102d\u102f\u1017\u1031\u1038\u1014\u102e\u1038\u101a\u1019\u103a\u1038
+languages.sk=\u1005\u101c\u102d\u102f\u1017\u1000\u103a
+languages.ga=\u1021\u102d\u102f\u1004\u103a\u1038\u101b\u1005\u103a
+languages.tup=\u1010\u1030\u1015\u102e \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.si=\u1006\u1004\u103a\u101f\u102c\u101c
+languages.pt_BR=\u1018\u101b\u102c\u1007\u102e\u1038 \u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e
+languages.crp=\u1021\u1014\u1031\u102c\u1000\u103a\u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u101e\u102c\u1038 \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1017\u1014\u103a\u1038\u1005\u1000\u102c\u1038
+languages.gem=\u1002\u103b\u102c\u1019\u1014\u103a \u1021\u1001\u103c\u1031\u1001\u1036\u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.sd=\u1005\u1004\u103a\u1012\u102e
+languages.fy=\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1016\u101b\u102e\u1005\u102e\u101b\u1014\u103a
+languages.de_AT=\u1029\u1005\u1010\u103c\u102e\u1038\u101a \u1002\u103b\u102c\u1019\u1014\u103a
+languages.sa=\u101e\u1004\u103a\u1039\u101e\u1000\u101b\u102d\u102f\u1000\u103a
+languages.art=\u1021\u101a\u1031\u102c\u1004\u103a\u1006\u1031\u102c\u1004\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.fr=\u1015\u103c\u1004\u103a\u101e\u1005\u103a
+languages.en_AU=\u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.root=\u1019\u1030\u101c\u101b\u1004\u103a\u1038\u1019\u103c\u1005\u103a
+languages.ru=\u101b\u102f\u101b\u103e
+languages.lo=\u101c\u102c\u1021\u102d\u102f
+languages.fj=\u1016\u102e\u1002\u103b\u102e
+languages.jpr=\u1002\u103b\u1030\u1012\u102e\u101a\u102d\u102f-\u1015\u102b\u101b\u103e\u1014\u103a
+languages.fi=\u1016\u1004\u103a\u1014\u1005\u103a\u101b\u103e\u103a
+languages.del=\u1012\u102e\u101c\u102c\u101d\u1032
+languages.ro=\u101b\u102d\u102f\u1019\u1031\u1014\u102e\u101a\u102c\u1038
+languages.shn=\u101b\u103e\u1019\u103a\u1038
+languages.mis=\u1021\u1019\u103b\u102d\u102f\u1038\u1019\u103b\u102d\u102f\u1038\u101e\u1031\u102c \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.fa=\u1015\u102b\u101b\u103e\u1014\u103a
+languages.und=\u1019\u101e\u102d \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1019\u101b\u103e\u102d \u101e\u1031\u102c \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.la=\u101c\u1000\u103a\u1010\u1004\u103a
+languages.en_GB=\u1017\u103c\u102d\u1010\u102d\u101e\u103b\u103e \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.et=\u1021\u1000\u103a\u1005\u103a\u1010\u102d\u102f\u1038\u1014\u102e\u1038\u101b\u1014\u103a\u1038
+variants.REVISED=\u1015\u103c\u1014\u103a\u101c\u100a\u103a\u1005\u102e\u1005\u1005\u103a\u1011\u102c\u1038\u101e\u1031\u102c \u101b\u1031\u1038\u1011\u102f\u1036\u1038
+variants.AREVELA=\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038\u1021\u102c\u1019\u1031\u1038\u1014\u102e\u1038\u101a\u1014\u103a\u1038
+variants.POSIX=\u1000\u103d\u1014\u103a\u1015\u103b\u1030\u1010\u102c
+variants.FONIPA=IPA \u1021\u101e\u1036\u1011\u103d\u1000\u103a
+variants.1694ACAD=\u1041\u1046\u1049\u1044ACAD
+variants.1996=\u1041\u1049\u1049\u1046 \u1002\u103b\u102c\u1019\u1014\u103a \u101b\u1031\u1038\u1011\u102f\u1036\u1038
+variants.SCOTLAND=\u1005\u1000\u1031\u102c\u1037 \u1005\u1036 \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+variants.1901=\u101b\u103e\u1031\u1038\u101b\u102d\u102f\u1038\u1005\u1009\u103a\u101c\u102c \u1002\u103b\u102c\u1019\u1014\u103a \u101b\u1031\u1038\u1011\u102f\u1036\u1038
+variants.BAKU1926=\u1015\u1031\u102b\u1004\u103a\u1038\u1005\u1015\u103a\u1011\u102c\u1038\u101e\u1031\u102c \u1010\u1030\u101b\u1000\u102e \u101c\u1000\u103a\u1010\u1004\u103a\u1005\u1000\u102c\u1038\u101c\u102f\u1036\u1038
+variants.FONUPA=UPA \u1021\u101e\u1036\u1011\u103d\u1000\u103a
+variants.1606NICT=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038\u1014\u1031\u102c\u1000\u103a\u1000\u103b\u101e\u1031\u102c\u1015\u103c\u1004\u103a\u101e\u1005\u103a\u1019\u103e \u1041\u1046\u1040\u1046
index 0ce22cd3ddbded94cbcaa039fb24bcb7824f88aa..e0a6b14763cc6f8fab0dc306148eadef6e079896 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=\u00a0
-percentFormat=#,##0 %
-currenciesDisplayName.YDD=Jemenittiske dinarer
-currenciesDisplayName.TWD=Taiwanske nye dollar
-currenciesDisplayName.KES=Kenyanske shilling
-currenciesDisplayName.BYB=Hviterussiske nye rubler (1994-1999)
-currenciesDisplayName.LKR=Srilankiske rupier
-currenciesDisplayName.RWF=Rwandiske franc
-currenciesDisplayName.TJS=Tadsjikiske somoni
-currenciesDisplayName.SDP=Sudanesiske pund
-currenciesDisplayName.TJR=Tadsjikiske rubler
-currenciesDisplayName.ERN=Eritreiske nakfa
-currenciesDisplayName.AFN=Afghani
-currenciesDisplayName.GRD=Greske drakmer
-currenciesDisplayName.IEP=Irske pund
-currenciesDisplayName.ARS=Argentinske pesos
-currenciesDisplayName.SDD=Sudanesiske dinarer
-currenciesDisplayName.ARP=Argentinske pesos (1983-1985)
-currenciesDisplayName.GEL=Georgiske lari
-currenciesDisplayName.AFA=Afghani (1927-2002)
-currenciesDisplayName.GEK=Georgiske kupon larit
-currenciesDisplayName.CRC=Costaricanske colon
-currenciesDisplayName.FKP=Falklands\u00f8yene-pund
-currenciesDisplayName.EEK=Estiske kroon
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.YDD=jemenittiske dinarer
+currenciesDisplayName.KES=kenyanske shilling
+currenciesDisplayName.TWD=taiwanske nye dollar
+currenciesDisplayName.LKR=srilankiske rupier
+currenciesDisplayName.BYB=hviterussiske nye rubler (1994-1999)
+currenciesDisplayName.TJS=tadsjikiske somoni
+currenciesDisplayName.RWF=rwandiske franc
+currenciesDisplayName.ERN=eritreiske nakfa
+currenciesDisplayName.TJR=tadsjikiske rubler
+currenciesDisplayName.SDP=sudanesiske pund
+currenciesDisplayName.GRD=greske drakmer
+currenciesDisplayName.AFN=afghani
+currenciesDisplayName.IEP=irske pund
+currenciesDisplayName.ARS=argentinske pesos
+currenciesDisplayName.SDG=sudanske pund
+currenciesDisplayName.ARP=argentinske pesos (1983-1985)
+currenciesDisplayName.SDD=sudanesiske dinarer
+currenciesDisplayName.GEL=georgiske lari
+currenciesDisplayName.GEK=georgiske kupon larit
+currenciesDisplayName.AFA=afghani (1927-2002)
+currenciesDisplayName.CRC=costaricanske colon
+currenciesDisplayName.FKP=Falkland-pund
+currenciesDisplayName.EEK=estiske kroon
+currenciesDisplayName.MDL=moldovske leu
 currenciesDisplayName.HKD=Hongkong-dollar
-currenciesDisplayName.MDL=Moldovske leu
-currenciesDisplayName.ARA=Argentinske australer
-currenciesDisplayName.IQD=Irakske dinarer
-currenciesDisplayName.SCR=Seychelliske rupier
-currenciesDisplayName.VUV=Vanuatisk vatu
-currenciesDisplayName.DKK=Danske kroner
-currenciesDisplayName.KPW=Nordkoreanske won
-currenciesDisplayName.GQE=Ekvatorialguineanske ekwele guineana
-currenciesDisplayName.IDR=Indonesiske rupier
-currenciesDisplayName.LVR=Latviske rubler
-currenciesDisplayName.SOS=Somaliske shilling
+currenciesDisplayName.IQD=irakske dinarer
+currenciesDisplayName.ARA=argentinske australer
+currenciesDisplayName.SCR=seychelliske rupier
+currenciesDisplayName.VUV=vanuatiske vatu
+currenciesDisplayName.KPW=nordkoreanske won
+currenciesDisplayName.DKK=danske kroner
+currenciesDisplayName.IDR=indonesiske rupier
+currenciesDisplayName.GQE=ekvatorialguineanske ekwele guineana
+currenciesDisplayName.SOS=somaliske shilling
+currenciesDisplayName.LVR=latviske rubler
+currenciesDisplayName.EQE=ekwele
 currenciesDisplayName.AED=UAE dirham
-currenciesDisplayName.BWP=Botswanske pula
-currenciesDisplayName.LVL=Latviske lats
-currenciesDisplayName.RUR=Russiske rubler (1991-1998)
-currenciesDisplayName.NIO=Nicaraguanske cordoba oro
-currenciesDisplayName.ADP=Andorranske pesetas
-currenciesDisplayName.FJD=Fijianske dollar
-currenciesDisplayName.MOP=Makaoske pataca
-currenciesDisplayName.RUB=Russiske rubler
-currenciesDisplayName.CDF=Kongolesiske franc (congolais)
-currenciesDisplayName.NIC=Nicaraguanske cordoba
-currenciesDisplayName.DJF=Djiboutiske franc
-currenciesDisplayName.ECV=Ecuadorianske Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Salomonske dollar
-currenciesDisplayName.UZS=Usbekiske sum
-currenciesDisplayName.ECS=Ecuadorianske sucre
-currenciesDisplayName.PHP=Filippinske pesos
-currenciesDisplayName.THB=Thailandske baht
-currenciesDisplayName.LUF=Luxemburgske franc
-currenciesDisplayName.FIM=Finske mark
-currenciesDisplayName.TTD=Trinidadiske dollar
-currenciesDisplayName.SZL=Swazilandske lilangeni
-currenciesDisplayName.MNT=Mongolske tugrik
-currenciesDisplayName.SAR=Saudiarabiske riyaler
-currenciesDisplayName.UAK=Ukrainske karbovanetz
-currenciesDisplayName.UAH=Ukrainsle hryvnia
-currenciesDisplayName.HUF=Ungarske forinter
-currenciesDisplayName.COP=Colombianske pesos
-currenciesDisplayName.QAR=Qatarske riyaler
-currenciesDisplayName.LTT=Litauiske talonas
-currenciesDisplayName.PTE=Portugisiske escudo
-currenciesDisplayName.AOR=Angolan Kwanza Reajustado (1995-1999)
-currenciesDisplayName.UYU=Uruguayanske peso uruguayo
-currenciesDisplayName.GBP=Britiske pund sterling
-currenciesDisplayName.BIF=Burundiske franc
-currenciesDisplayName.INR=Indiske rupier
-currenciesDisplayName.ZRZ=Zairiske zaire
-currenciesDisplayName.AON=Angolanske ny kwanza (1990-2000)
-currenciesDisplayName.LTL=Litauiske lita
-currenciesDisplayName.XFU=French UIC-Franc
-currenciesDisplayName.KZT=Kasakhstanske tenge
-currenciesDisplayName.MZM=Mosambikiske metical
-currenciesDisplayName.UYP=Uruguayanske pesos (1975-1993)
-currenciesDisplayName.AOK=Angolanske kwanza (1977-1990)
-currenciesDisplayName.BUK=Burmesiske kyat
-currenciesDisplayName.GNS=Guineanske syli
-currenciesDisplayName.XFO=French Gold Franc
-currenciesDisplayName.PGK=Papuanske kina
-currenciesDisplayName.SYP=Syriske pund
-currenciesDisplayName.MZE=Mosambikiske escudo
-currenciesDisplayName.OMR=Omanske rialer
-currenciesDisplayName.NGN=Nigerianske naira
-currenciesDisplayName.ZRN=Zairiske nye zaire
-currenciesDisplayName.AOA=Angolanske kwanza
-currenciesDisplayName.CNY=Kinesiske Yuan Renminbi
-currenciesDisplayName.MAF=Marokkanske franc
-currenciesDisplayName.GNF=Guineanske franc
-currenciesDisplayName.HTG=Haitiske gourde
-currenciesDisplayName.MAD=Marokkanske dirham
-currenciesDisplayName.TRY=Ny tyrkisk lire
-currenciesDisplayName.MMK=Myanmarske kyat
-currenciesDisplayName.MYR=Malaysiske ringgit
-currenciesDisplayName.LSL=Lesothiske loti
-currenciesDisplayName.XEU=European Currency Unit
-currenciesDisplayName.BHD=Bahrainske dinarer
-currenciesDisplayName.SLL=Sierraleonske leone
-currenciesDisplayName.BTN=Bhutanske ngultrum
-currenciesDisplayName.TRL=Tyrkiske lira
-currenciesDisplayName.KMF=Komoriske franc
-currenciesDisplayName.ANG=Nederlandske antillegylden
-currenciesDisplayName.CZK=Tsjekkiske koruna
-currenciesDisplayName.AZM=Aserbajdsjanske Manat
-currenciesDisplayName.KYD=Caymanske dollar
-currenciesDisplayName.GMD=Gambiske dalasi
-currenciesDisplayName.BGN=Bulgarske lev
-currenciesDisplayName.CAD=Kanadiske dollar
-currenciesDisplayName.MXV=Meksikanske Unidad de Inversion (UDI)
-currenciesDisplayName.BGL=Bulgarske lev (hard)
-currenciesDisplayName.VEB=Venezuelanske bolivar
-currenciesDisplayName.MLF=Maliske franc
-currenciesDisplayName.ILS=Israelske nye shekler
-currenciesDisplayName.MXP=Meksikanske s\u00f8lvpesos (1861-1992)
-currenciesDisplayName.PES=Peruvianske sol
-currenciesDisplayName.GYD=Guyanske dollar
-currenciesDisplayName.MXN=Meksikanske pesos
-currenciesDisplayName.ILP=Israelske pund
-currenciesDisplayName.SKK=Slovakiske koruna
-currenciesDisplayName.CYP=Kypriotiske pund
-currenciesDisplayName.XDR=Special Drawing Rights
-currenciesDisplayName.PEN=Peruvianske sol nuevo
-currenciesDisplayName.LRD=Liberiske dollar
-currenciesDisplayName.PEI=Peruvianske inti
-currenciesDisplayName.AMD=Armenske dram
-currenciesDisplayName.BSD=Bahamske dollar
-currenciesDisplayName.HRK=Kroatiske kuna
-currenciesDisplayName.CLP=Chilenske pesos
-currenciesDisplayName.HRD=Kroatiske dinarer
-currenciesDisplayName.XPF=CFP Franc
-currenciesDisplayName.FRF=Franske franc
-currenciesDisplayName.BRR=Brasilianske cruzeiro
-currenciesDisplayName.MKD=Makedonske denarer
-currenciesDisplayName.CLF=Chilenske Unidades de Fomento
-currenciesDisplayName.ALL=Albanske lek
-currenciesDisplayName.BRN=Brasilianske cruzado novo
-currenciesDisplayName.MWK=Malawisle kwacha
-currenciesDisplayName.BRL=Brasilianske realer
-currenciesDisplayName.TPE=Timoresiske escudo
-currenciesDisplayName.BRE=Brasilianske cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brasilianske cruzado
-currenciesDisplayName.BRB=Brasiliansk cruzeiro novo (1967-1986)
-currenciesDisplayName.DEM=Tyske mark
-currenciesDisplayName.KWD=Kuwaitiske dinarer
-currenciesDisplayName.XCD=\u00d8stkaribiske dollar
-currenciesDisplayName.NPR=Nepalesiske rupier
+currenciesDisplayName.LVL=latviske lats
+currenciesDisplayName.BWP=botswanske pula
+currenciesDisplayName.RUR=russiske rubler (1991-1998)
+currenciesDisplayName.NIO=nicaraguanske cordoba oro
+currenciesDisplayName.MOP=makaoske pataca
+currenciesDisplayName.FJD=fijianske dollar
+currenciesDisplayName.ADP=andorranske pesetas
+currenciesDisplayName.RUB=russiske rubler
+currenciesDisplayName.CDF=kongolesiske franc (congolais)
+currenciesDisplayName.NIC=nicaraguanske cordoba
+currenciesDisplayName.DJF=djiboutiske franc
+currenciesDisplayName.UZS=usbekiske sum
+currenciesDisplayName.SBD=salomonske dollar
+currenciesDisplayName.ECV=ecuadorianske unidad de valor constante (UVC)
+currenciesDisplayName.LUL=luxemburgske finansielle franc
+currenciesDisplayName.ECS=ecuadorianske sucre
+currenciesDisplayName.THB=thailandske baht
+currenciesDisplayName.PHP=filippinske pesos
+currenciesDisplayName.LUF=luxemburgske franc
+currenciesDisplayName.RHD=rhodesiske dollar
+currenciesDisplayName.LUC=luxemburgske konvertible franc
+currenciesDisplayName.FIM=finske mark
+currenciesDisplayName.TTD=trinidadiske dollar
+currenciesDisplayName.SZL=swazilandske lilangeni
+currenciesDisplayName.MNT=mongolske tugrik
+currenciesDisplayName.UAK=ukrainske karbovanetz
+currenciesDisplayName.SAR=saudiarabiske riyaler
+currenciesDisplayName.COU=unidad de valor real
+currenciesDisplayName.UAH=ukrainske hryvnia
+currenciesDisplayName.HUF=ungarske forinter
+currenciesDisplayName.QAR=qatarske rialer
+currenciesDisplayName.COP=colombianske pesos
+currenciesDisplayName.LTT=litauiske talonas
+currenciesDisplayName.PTE=portugisiske escudo
+currenciesDisplayName.UYU=uruguayanske peso uruguayo
+currenciesDisplayName.AOR=angolanske kwanza reajustado (1995-1999)
+currenciesDisplayName.GBP=britiske pund sterling
+currenciesDisplayName.ZRZ=zairiske zaire
+currenciesDisplayName.INR=indiske rupier
+currenciesDisplayName.BIF=burundiske franc
+currenciesDisplayName.XFU=franske UIC-franc
+currenciesDisplayName.MZN=mosambikiske metical
+currenciesDisplayName.LTL=litauiske lita
+currenciesDisplayName.AON=angolanske nye kwanza (1990-2000)
+currenciesDisplayName.UYP=uruguayanske pesos (1975-1993)
+currenciesDisplayName.MZM=gamle mosambikiske metical
+currenciesDisplayName.KZT=kasakhstanske tenge
+currenciesDisplayName.AOK=angolanske kwanza (1977-1990)
+currenciesDisplayName.GNS=guineanske syli
+currenciesDisplayName.BUK=burmesiske kyat
+currenciesDisplayName.XFO=franske gullfranc
+currenciesDisplayName.PGK=papuanske kina
+currenciesDisplayName.SYP=syriske pund
+currenciesDisplayName.OMR=omanske rialer
+currenciesDisplayName.MZE=mosambikiske escudo
+currenciesDisplayName.ZRN=zairiske nye zaire
+currenciesDisplayName.NGN=nigerianske naira
+currenciesDisplayName.CNY=kinesiske yuan renminbi
+currenciesDisplayName.AOA=angolanske kwanza
+currenciesDisplayName.MAF=marokkanske franc
+currenciesDisplayName.RSD=serbiske dinarer
+currenciesDisplayName.GNF=guineanske franc
+currenciesDisplayName.MAD=marokkanske dirham
+currenciesDisplayName.HTG=haitiske gourde
+currenciesDisplayName.TRY=nye tyrkiske lire
+currenciesDisplayName.MMK=myanmarske kyat
+currenciesDisplayName.XRE=RINET-fond
+currenciesDisplayName.MYR=malaysiske ringgit
+currenciesDisplayName.LSM=maloti
+currenciesDisplayName.XEU=europeisk valutaenhet
+currenciesDisplayName.LSL=lesothiske loti
+currenciesDisplayName.SLL=sierraleonske leone
+currenciesDisplayName.BHD=bahrainske dinarer
+currenciesDisplayName.BTN=bhutanske ngultrum
+currenciesDisplayName.TRL=tyrkiske lire
+currenciesDisplayName.KMF=komoriske franc
+currenciesDisplayName.CZK=tsjekkiske koruna
+currenciesDisplayName.ANG=nederlandske antillegylden
+currenciesDisplayName.AZN=aserbajdsjanske manat
+currenciesDisplayName.AZM=aserbajdsjanske manat (1993-2006)
+currenciesDisplayName.KYD=caymanske dollar
+currenciesDisplayName.GMD=gambiske dalasi
+currenciesDisplayName.VEF=venezuelanske bolivar fuerte
+currenciesDisplayName.BGN=bulgarske lev
+currenciesDisplayName.MXV=meksikanske unidad de inversion (UDI)
+currenciesDisplayName.CAD=kanadiske dollar
+currenciesDisplayName.BGL=bulgarske lev (hard)
+currenciesDisplayName.VEB=venezuelanske bolivar
+currenciesDisplayName.MLF=maliske franc
+currenciesDisplayName.MXP=meksikanske s\u00f8lvpesos (1861-1992)
+currenciesDisplayName.ILS=israelske nye shekler
+currenciesDisplayName.PES=peruvianske sol
+currenciesDisplayName.MXN=meksikanske pesos
+currenciesDisplayName.GYD=guyanske dollar
+currenciesDisplayName.ILP=israelske pund
+currenciesDisplayName.CYP=kypriotiske pund
+currenciesDisplayName.SKK=slovakiske koruna
+currenciesDisplayName.XDR=spesielle trekkrettigheter
+currenciesDisplayName.PEN=peruvianske nye sol
+currenciesDisplayName.LRD=liberiske dollar
+currenciesDisplayName.PEI=peruvianske inti
+currenciesDisplayName.AMD=armenske dram
+currenciesDisplayName.BSD=bahamske dollar
+currenciesDisplayName.XPT=unse platina
+currenciesDisplayName.HRK=kroatiske kuna
+currenciesDisplayName.CLP=chilenske pesos
+currenciesDisplayName.HRD=kroatiske dinarer
+currenciesDisplayName.XPF=CFP franc
+currenciesDisplayName.FRF=franske franc
+currenciesDisplayName.XPD=palladium
+currenciesDisplayName.BRR=brasilianske cruzeiro
+currenciesDisplayName.MKD=makedonske denarer
+currenciesDisplayName.CLF=chilenske unidades de fomento
+currenciesDisplayName.ALL=albanske lek
+currenciesDisplayName.BRN=brasilianske cruzado novo
+currenciesDisplayName.MWK=malawiske kwacha
+currenciesDisplayName.BRL=brasilianske realer
+currenciesDisplayName.TPE=timoresiske escudo
+currenciesDisplayName.BRE=brasilianske cruzeiro (1990-1993)
+currenciesDisplayName.BRC=brasilianske cruzado
+currenciesDisplayName.BRB=brasilianske cruzeiro novo (1967-1986)
+currenciesDisplayName.DEM=tyske mark
+currenciesDisplayName.KWD=kuwaitiske dinarer
+currenciesDisplayName.XCD=\u00f8stkaribiske dollar
+currenciesDisplayName.NPR=nepalske rupier
 currenciesDisplayName.GWP=Guinea-Bissau-pesos
-currenciesDisplayName.YUN=Jugoslaviske konvertible dinarer
-currenciesDisplayName.SVC=Salvadoranske colon
-currenciesDisplayName.YUM=Jugoslaviske noviy-dinarer
-currenciesDisplayName.BEL=Belgiske franc (\u00f8konomiske)
-currenciesDisplayName.SIT=Slovenske tolar
-currenciesDisplayName.JPY=Japanske yen
-currenciesDisplayName.XOF=CFA Franc BCEAO
-currenciesDisplayName.MVR=Maldiviske rufiyaa
-currenciesDisplayName.GWE=Portugisiske guinea escudo
-currenciesDisplayName.BEF=Belgiske franc
-currenciesDisplayName.TOP=Tonganske pa\u02bbanga
-currenciesDisplayName.YUD=Jugoslaviske dinarer (hard)
-currenciesDisplayName.BEC=Belgiske franc (konvertible)
-currenciesDisplayName.SUR=Sovjetiske rubler
-currenciesDisplayName.ROL=Rumenske leu
-currenciesDisplayName.DDM=\u00d8sttyske ostmark
-currenciesDisplayName.BDT=Bangladeshiske taka
-currenciesDisplayName.XBD=European Unit of Account (XBD)
-currenciesDisplayName.AWG=Arubiske gylden
-currenciesDisplayName.XBC=European Unit of Account (XBC)
-currenciesDisplayName.XBB=European Monetary Unit
-currenciesDisplayName.XBA=European Composite Unit
-currenciesDisplayName.NOK=Norske kroner
-currenciesDisplayName.MUR=Mauritiske rupier
-currenciesDisplayName.ZAR=S\u00f8rafrikanske rand
-currenciesDisplayName.SHP=Sankthelenske pund
-currenciesDisplayName.XAU=Gull
-currenciesDisplayName.ZAL=S\u00f8rafrikanske rand (\u00f8konomisk)
-currenciesDisplayName.VND=Vietnamesiske dong
-currenciesDisplayName.TZS=Tanzanianske shilling
-currenciesDisplayName.GIP=Gibraltarske pund
-currenciesDisplayName.TND=Tunisiske dinarer
-currenciesDisplayName.CVE=Kappverdiske escudo
-currenciesDisplayName.UGX=Ugandiske shilling
-currenciesDisplayName.ZMK=Zambiske kwacha
-currenciesDisplayName.JOD=Jordanske dinarer
-currenciesDisplayName.XAF=CFA Franc BEAC
-currenciesDisplayName.LBP=Libanesiske pund
-currenciesDisplayName.UGS=Ugandiske shilling (1966-1987)
+currenciesDisplayName.YUN=jugoslaviske konvertible dinarer
+currenciesDisplayName.SVC=salvadoranske colon
+currenciesDisplayName.YUM=jugoslaviske noviy-dinarer
+currenciesDisplayName.BEL=belgiske franc (finansielle)
+currenciesDisplayName.SIT=slovenske tolar
+currenciesDisplayName.JPY=japanske yen
+currenciesDisplayName.XOF=CFA franc BCEAO
+currenciesDisplayName.MVR=maldiviske rufiyaa
+currenciesDisplayName.BEF=belgiske franc
+currenciesDisplayName.GWE=portugisiske guinea escudo
+currenciesDisplayName.TOP=tonganske pa\u02bbanga
+currenciesDisplayName.YUD=jugoslaviske dinarer (hard)
+currenciesDisplayName.BEC=belgiske franc (konvertible)
+currenciesDisplayName.SUR=sovjetiske rubler
+currenciesDisplayName.RON=rumenske leu
+currenciesDisplayName.ROL=gamle rumenske leu
+currenciesDisplayName.BDT=bangladeshiske taka
+currenciesDisplayName.DDM=\u00f8sttyske ostmark
+currenciesDisplayName.XBD=europeisk kontoenhet (XBD)
+currenciesDisplayName.AWG=arubiske gylden
+currenciesDisplayName.XBC=europeisk kontoenhet (XBC)
+currenciesDisplayName.XBB=europeisk monet\u00e6r enhet
+currenciesDisplayName.XBA=europeisk sammensatt enhet
+currenciesDisplayName.NOK=norske kroner
+currenciesDisplayName.MUR=mauritiske rupier
+currenciesDisplayName.ZAR=s\u00f8rafrikanske rand
+currenciesDisplayName.SHP=sankthelenske pund
+currenciesDisplayName.XAU=unse gull
+currenciesDisplayName.ZAL=s\u00f8rafrikanske rand (finansielle)
+currenciesDisplayName.VND=vietnamesiske dong
+currenciesDisplayName.TZS=tanzanianske shilling
+currenciesDisplayName.GIP=gibraltarske pund
+currenciesDisplayName.TND=tunisiske dinarer
+currenciesDisplayName.CVE=kappverdiske escudo
+currenciesDisplayName.UGX=ugandiske shilling
+currenciesDisplayName.XAG=s\u00f8lv
+currenciesDisplayName.ZMK=zambiske kwacha
+currenciesDisplayName.JOD=jordanske dinarer
+currenciesDisplayName.XAF=CFA franc BEAC
+currenciesDisplayName.LBP=libanesiske pund
+currenciesDisplayName.UGS=ugandiske shilling (1966-1987)
 currenciesDisplayName.STD=Sao Tome og Principe-dobra
-currenciesDisplayName.WST=Vestsamoisk tala
-currenciesDisplayName.KHR=Kambodsjanske riel
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Dominikanske pesos
-currenciesDisplayName.BOV=Boliviansk mvdol
-currenciesDisplayName.MTP=Maltesiske pund
-currenciesDisplayName.USS=Amerikanske dollar (samme dag)
-currenciesDisplayName.BOP=Boliviansk pesos
-currenciesDisplayName.MTL=Maltesiske lira
-currenciesDisplayName.CUP=Kubanske pesos
-currenciesDisplayName.TMM=Turkmenske manat
-currenciesDisplayName.USN=Amerikanske dollar (neste dag)
-currenciesDisplayName.SGD=Singaporske dollar
-currenciesDisplayName.NZD=Nyzealandske dollar
-currenciesDisplayName.USD=Amerikanske dollar
+currenciesDisplayName.WST=vestsamoiske tala
+currenciesDisplayName.KHR=kambodsjanske riel
+currenciesDisplayName.DOP=dominikanske pesos
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BOV=boliviansk mvdol
+currenciesDisplayName.MTP=maltesiske pund
+currenciesDisplayName.USS=amerikanske dollar (samme dag)
+currenciesDisplayName.BOP=bolivianske pesos
+currenciesDisplayName.CUP=kubanske pesos
+currenciesDisplayName.MTL=maltesiske lira
+currenciesDisplayName.TMM=turkmenske manat
+currenciesDisplayName.USN=amerikanske dollar (neste dag)
+currenciesDisplayName.SGD=singaporske dollar
+currenciesDisplayName.NZD=new zealandske dollar
+currenciesDisplayName.USD=amerikanske dollar
+currenciesDisplayName.BOB=boliviano
 currenciesDisplayName.HNL=Hoduras Lempira
-currenciesDisplayName.BOB=Boliviano
-currenciesDisplayName.ITL=Italienske lire
-currenciesDisplayName.PAB=Panamanske balboa
-currenciesDisplayName.GTQ=Guatemalanske quetzal
-currenciesDisplayName.LAK=Laotiske kip
-currenciesDisplayName.GHC=Ghanesiske cedi
-currenciesDisplayName.AUD=Australske dollar
-currenciesDisplayName.NAD=Namibiske dollar
-currenciesDisplayName.KGS=Kirgisiske som
-currenciesDisplayName.MGF=Madagassiske franc
-currenciesDisplayName.CHF=Sveitsiske franc
-currenciesDisplayName.BBD=Barbadisk dollar
-currenciesDisplayName.MGA=Madagassiske ariary
-currenciesDisplayName.PYG=Paraguayanske guarani
-currenciesDisplayName.PLZ=Polske zloty (1950-1995)
-currenciesDisplayName.YER=Jemenittiske rialer
-currenciesDisplayName.ATS=\u00d8sterrikske shilling
-currenciesDisplayName.ETB=Etiopiske birr
-currenciesDisplayName.BND=Bruneiske dollar
-currenciesDisplayName.JMD=Jamaikanske dollar
-currenciesDisplayName.EGP=Egyptiske pund
-currenciesDisplayName.PLN=Polske zloty
-currenciesDisplayName.DZD=Algeriske dinarer
-currenciesDisplayName.ISK=Islandske kronar
-currenciesDisplayName.SRG=Surinamske gylden
-currenciesDisplayName.LYD=Libyske dinarer
-currenciesDisplayName.BZD=Beliziske dollar
-currenciesDisplayName.BAM=Bosnia-Hercegovina mark (konvertible)
-currenciesDisplayName.ESP=Spanske peseta
-currenciesDisplayName.KRW=S\u00f8rkoreanske won
-currenciesDisplayName.NLG=Nederlandske gylden
-currenciesDisplayName.MRO=Mauritanske ouguiya
-currenciesDisplayName.BAD=Bosnia-Hercegovina dinarer
-currenciesDisplayName.ZWD=Zimbabwiske dollar
-currenciesDisplayName.SEK=Svenske kroner
-currenciesDisplayName.CSK=Tsjekkoslovakiske koruna (hard)
-currenciesDisplayName.BYR=Hviterussiske rubler
-currenciesDisplayName.IRR=Iranske rialer
-currenciesDisplayName.PKR=Pakistanske rupier
-currenciesDisplayName.BMD=Bermudiske dollar
+currenciesDisplayName.CHW=WIR franc
+currenciesDisplayName.ITL=italienske lire
+currenciesDisplayName.PAB=panamanske balboa
+currenciesDisplayName.GTQ=guatemalanske quetzal
+currenciesDisplayName.XXX=ukjent eller ugyldig valuta
+currenciesDisplayName.AUD=australske dollar
+currenciesDisplayName.GHC=ghanesiske cedi
+currenciesDisplayName.LAK=laotiske kip
+currenciesDisplayName.NAD=namibiske dollar
+currenciesDisplayName.KGS=kirgisiske som
+currenciesDisplayName.MGF=madagassiske franc
+currenciesDisplayName.BBD=barbadiske dollar
+currenciesDisplayName.CHF=sveitsiske franc
+currenciesDisplayName.CHE=WIR euro
+currenciesDisplayName.MGA=madagassiske ariary
+currenciesDisplayName.PYG=paraguayanske guarani
+currenciesDisplayName.PLZ=polske zloty (1950-1995)
+currenciesDisplayName.YER=jemenittiske rialer
+currenciesDisplayName.ATS=\u00f8sterrikske schilling
+currenciesDisplayName.ETB=etiopiske birr
+currenciesDisplayName.BND=bruneiske dollar
+currenciesDisplayName.EGP=egyptiske pund
+currenciesDisplayName.JMD=jamaikanske dollar
+currenciesDisplayName.PLN=polske zloty
+currenciesDisplayName.DZD=algeriske dinarer
+currenciesDisplayName.ISK=islandske kroner
+currenciesDisplayName.SRG=surinamske gylden
+currenciesDisplayName.LYD=libyske dinarer
+currenciesDisplayName.SRD=surinamske dollar
+currenciesDisplayName.BAM=bosnisk-hercegovinske mark (konvertible)
+currenciesDisplayName.BZD=beliziske dollar
+currenciesDisplayName.ESP=spanske peseta
+currenciesDisplayName.KRW=s\u00f8rkoreanske won
+currenciesDisplayName.NLG=nederlandske gylden
+currenciesDisplayName.MRO=mauritanske ouguiya
+currenciesDisplayName.BAD=bosnisk-hercegovinske dinarer
+currenciesDisplayName.ZWD=zimbabwiske dollar
+currenciesDisplayName.SEK=svenske kroner
+currenciesDisplayName.CSK=tsjekkoslovakiske koruna (hard)
+currenciesDisplayName.BYR=hviterussiske rubler
+currenciesDisplayName.ESB=spanske peseta (konvertibel konto)
+currenciesDisplayName.IRR=iranske rialer
+currenciesDisplayName.ESA=spanske peseta (A-konto)
+currenciesDisplayName.PKR=pakistanske rupier
+currenciesDisplayName.BMD=bermudiske dollar
+currenciesDisplayName.CSD=gamle serbiske dinarer
+currenciesSymbol.INR=INR
+currenciesSymbol.JPY=JPY
+currenciesSymbol.ITL=ITL
+currenciesSymbol.EUR=EUR
+currenciesSymbol.GBP=GBP
+currenciesSymbol.USD=USD
+currenciesSymbol.BRL=BRL
 currenciesSymbol.BGL=lev
-currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
-currenciesSymbol.LKR=SL Re
-currenciesSymbol.CYP=\u00a3C
-currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
-currenciesSymbol.VUV=VT
-currenciesSymbol.MWK=MK
-currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
-currenciesSymbol.IEP=IR\u00a3
-currenciesSymbol.AMD=dram
-currenciesSymbol.TOP=T$
-currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
-currenciesSymbol.CLP=Ch$
-currenciesSymbol.KWD=KD
-currenciesSymbol.GEL=lari
-currenciesSymbol.AFN=Af
-currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
-currenciesSymbol.IQD=ID
-currenciesSymbol.HKD=HK$
-currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
-currenciesSymbol.ALL=lek
-currenciesSymbol.CRC=C
-currenciesSymbol.IDR=Rp
-currenciesSymbol.DKK=DKr
-currenciesSymbol.TZS=T Sh
-currenciesSymbol.SBD=SI$
-currenciesSymbol.NOK=kr
-currenciesSymbol.UGX=U Sh
-currenciesSymbol.BEF=BF
-currenciesSymbol.TTD=TT$
-currenciesSymbol.SZL=E
-currenciesSymbol.STD=Db
-currenciesSymbol.SAR=SRl
-currenciesSymbol.FJD=F$
-currenciesSymbol.UYU=Ur$
-currenciesSymbol.BDT=Tk
-currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
-currenciesSymbol.MNT=Tug
-currenciesSymbol.DJF=DF
-currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
-currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
-currenciesSymbol.SYP=LS
-currenciesSymbol.MTL=Lm
-currenciesSymbol.MZM=Mt
-currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
-currenciesSymbol.HUF=Ft
-currenciesSymbol.NZD=$NZ
-currenciesSymbol.OMR=RO
-currenciesSymbol.KZT=T
-currenciesSymbol.DOP=RD$
-currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
-currenciesSymbol.COP=Col$
-currenciesSymbol.HNL=L
-currenciesSymbol.KGS=som
-currenciesSymbol.ZWD=Z$
-currenciesSymbol.MYR=RM
-currenciesSymbol.SRG=Sf
-currenciesSymbol.GTQ=Q
-currenciesSymbol.BIF=Fbu
-currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
-currenciesSymbol.VEB=Be
-currenciesSymbol.BOB=Bs
-currenciesSymbol.CNY=Y
-currenciesSymbol.KMF=CF
-currenciesSymbol.SEK=SKr
-currenciesSymbol.AUD=$A
-currenciesSymbol.LYD=LD
-currenciesSymbol.JMD=J$
-currenciesSymbol.SKK=Sk
-currenciesSymbol.CHF=SwF
-currenciesSymbol.ETB=Br
-currenciesSymbol.MRO=UM
-currenciesSymbol.BBD=BDS$
-currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
-currenciesSymbol.BTN=Nu
-currenciesSymbol.MXN=MEX$
-currenciesSymbol.DZD=DA
-currenciesSymbol.ANG=NA f.
-currenciesSymbol.BZD=BZ$
-currenciesSymbol.IRR=RI
-currenciesSymbol.GYD=G$
-currenciesSymbol.BAM=KM
-currenciesSymbol.CAD=Can$
-shortMonths=jan.®feb.®mars®april®mai®juni®juli®aug.®sep.®okt.®nov.®des.®®
-months=januar®februar®mars®april®mai®juni®juli®august®september®oktober®november®desember®®
-shortWeekdays=®s\u00f8.®ma.®ti.®on.®to.®fr.®l\u00f8.®
-weekdays=®s\u00f8ndag®mandag®tirsdag®onsdag®torsdag®fredag®l\u00f8rdag®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=f.Kr.®e.Kr.®
-ampms=a.m.®p.m.®
+shortMonths=jan.\u00aefeb.\u00aemars\u00aeapr.\u00aemai\u00aejuni\u00aejuli\u00aeaug.\u00aesep.\u00aeokt.\u00aenov.\u00aedes.\u00ae\u00ae
+months=januar\u00aefebruar\u00aemars\u00aeapril\u00aemai\u00aejuni\u00aejuli\u00aeaugust\u00aeseptember\u00aeoktober\u00aenovember\u00aedesember\u00ae\u00ae
+shortWeekdays=\u00aes\u00f8.\u00aema.\u00aeti.\u00aeon.\u00aeto.\u00aefr.\u00ael\u00f8.\u00ae
+weekdays=\u00aes\u00f8ndag\u00aemandag\u00aetirsdag\u00aeonsdag\u00aetorsdag\u00aefredag\u00ael\u00f8rdag\u00ae
+eras=f.Kr.\u00aee.Kr.\u00ae
+ampms=formiddag\u00aeettermiddag\u00ae
 shortDateFormat=dd.MM.yy
-mediumDateFormat=d. MMM. yyyy
+mediumDateFormat=d. MMM yyyy
 longDateFormat=d. MMMM yyyy
 fullDateFormat=EEEE d. MMMM yyyy
 shortTimeFormat=HH.mm
 mediumTimeFormat=HH.mm.ss
 longTimeFormat=HH.mm.ss z
-fullTimeFormat='kl. 'HH.mm.ss z
-zoneStrings=Europe/Bucharest®EET®Eastern European Standard Time®EEST®Eastern European Daylight Time®©
+fullTimeFormat='kl'. HH.mm.ss z
+zoneStrings=Europe_Eastern\u00ae\u00f8steuropeisk normaltid\u00ae\u00ae\u00f8steuropeisk sommertid\u00ae\u00ae\u00a9Australia_Central\u00aesentralaustralsk standardtid\u00ae\u00aesentralaustralsk sommertid\u00ae\u00ae\u00a9Africa_Southern\u00aes\u00f8rafrikansk normaltid\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u00f8stindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aenewzealandsk standardtid\u00ae\u00aenewzealandsk sommertid\u00ae\u00ae\u00a9Hong_Kong\u00aeHong Kong-tid\u00ae\u00aeHong Kong-sommertid\u00ae\u00ae\u00a9Africa_Western\u00aevestafrikansk tid\u00ae\u00aevestafrikansk sommertid\u00ae\u00ae\u00a9Korea\u00aekoreansk standardtid\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Central\u00aesentralafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Central\u00aesentraleuropeisk normaltid\u00ae\u00aesentraleuropeisk sommertid\u00ae\u00ae\u00a9India\u00aeindisk standardtid\u00ae\u00ae\u00ae\u00ae\u00a9China\u00aekinesisk standardtid\u00aeCST (Kina)\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u00f8stafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Indochina\u00aeindokinesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeisraelsk standardtid\u00aeIST (Israel)\u00aeisraelsk sommertid\u00ae\u00ae\u00a9Acre\u00ae\u00ae\u00aeAcre sommertid\u00ae\u00ae\u00a9Europe_Western\u00aevesteuropeisk tid\u00ae\u00aevesteuropeisk sommertid\u00ae\u00ae\u00a9Indonesia_Western\u00aevestindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Brasilia\u00ae\u00ae\u00aeBrasilia sommertid\u00ae\u00ae\u00a9Japan\u00aejapansk standardtid\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aesentralindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00ae\u00ae\u00aeAmazonas sommertid\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u00f8staustralsk standardtid\u00ae\u00ae\u00f8staustralsk sommertid\u00ae\u00ae\u00a9Moscow\u00aeMoskva normaltid\u00ae\u00aeMoskva sommertid\u00ae\u00ae\u00a9GMT\u00aeGreenwich middeltid\u00ae\u00ae\u00ae\u00ae\u00a9Arabian\u00aearabisk standardtid\u00aeAST (arabisk)\u00aearabisk sommertid\u00aeADT (arabisk)\u00ae\u00a9Australia_Western\u00aevestaustralsk standardtid\u00ae\u00aevestaustralsk sommertid\u00ae\u00ae\u00a9Australia_CentralWestern\u00aevest-sentralaustralsk standardtid\u00ae\u00aevest-sentralaustralsk sommertid\u00ae\u00ae\u00a9
 territories.TL=\u00d8st-Timor
 territories.TK=Tokelau
 territories.TJ=Tadsjikistan
 territories.TH=Thailand
 territories.TG=Togo
-territories.TF=Franske s\u00f8romr\u00e5der
+territories.TF=De franske s\u00f8rterritorier
 territories.GY=Guyana
-territories.TD=Tchad
+territories.TD=Tsjad
 territories.TC=Turks- og Caicos\u00f8yene
 territories.GW=Guinea-Bissau
 territories.GU=Guam
 territories.GT=Guatemala
-territories.GS=S\u00f8r-Georgia og S\u00f8r-Sandwich-\u00f8yene
+territories.GS=S\u00f8r-Georgia og de s\u00f8rlige Sandwich-\u00f8yene
 territories.GR=Hellas
 territories.GQ=Ekvatorial-Guinea
 territories.GP=Guadeloupe
@@ -391,10 +330,13 @@ territories.GN=Guinea
 territories.GM=Gambia
 territories.GL=Gr\u00f8nland
 territories.SV=El Salvador
-territories.ST=Sao Tome og Principe
+territories.062=S\u00f8rsentral-Asia
+territories.ST=S\u00e3o Tom\u00e9 og Pr\u00edncipe
 territories.GI=Gibraltar
+territories.061=Polynesia
 territories.GH=Ghana
 territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Fransk Guyana
 territories.GE=Georgia
 territories.SO=Somalia
@@ -407,40 +349,50 @@ territories.GA=Gabon
 territories.SK=Slovakia
 territories.SJ=Svalbard og Jan Mayen
 territories.SI=Slovenia
-territories.SH=Saint Helena
+territories.SH=St. Helena
 territories.SG=Singapore
 territories.SE=Sverige
 territories.SD=Sudan
 territories.SC=Seychellene
 territories.SB=Salomon\u00f8yene
-territories.SA=Saudi Arabia
+territories.SA=Saudi-Arabia
 territories.FR=Frankrike
 territories.FO=F\u00e6r\u00f8yene
+territories.057=Mikronesia
 territories.FM=Mikronesiaf\u00f8derasjonen
 territories.RW=Rwanda
-territories.FK=Falklands\u00f8yene (Malvinas)
-territories.RU=Den russiske f\u00f8derasjon
+territories.054=Melanesia
+territories.FK=Falklands\u00f8yene
+territories.053=Australia og New Zealand
+territories.RU=Russland
 territories.FJ=Fiji
 territories.FI=Finland
+territories.RS=Serbia
 territories.RO=Romania
 territories.RE=Reunion
 territories.ET=Etiopia
 territories.ES=Spania
 territories.ER=Eritrea
+territories.QU=Den europeiske union
 territories.EH=Vest-Sahara
 territories.EG=Egypt
 territories.EE=Estland
+territories.QO=avsidesliggende Oceania
 territories.EC=Ecuador
 territories.DZ=Algerie
 territories.QA=Qatar
+territories.039=S\u00f8r-Europa
 territories.DO=Den dominikanske republikk
 territories.PY=Paraguay
 territories.DM=Dominica
+territories.035=S\u00f8r\u00f8st-Asia
 territories.PW=Palau
+territories.034=S\u00f8r-Asia
 territories.DK=Danmark
 territories.DJ=Djibouti
 territories.PT=Portugal
 territories.PS=Palestinsk territorium
+territories.030=\u00d8st-Asia
 territories.PR=Puerto Rico
 territories.DE=Tyskland
 territories.PN=Pitcairn
@@ -459,19 +411,22 @@ territories.PA=Panama
 territories.CU=Cuba
 territories.CS=Serbia og Montenegro
 territories.CR=Costa Rica
+territories.029=Karibia
 territories.CO=Colombia
 territories.CN=Kina
 territories.CM=Kamerun
 territories.CL=Chile
 territories.CK=Cook\u00f8yene
+territories.021=Nordlige Amerika
 territories.CI=Elfenbenskysten
 territories.CH=Sveits
-territories.CG=Kongo
+territories.CG=Kongo-Brazzaville
 territories.CF=Den sentralafrikanske republikk
-territories.CD=Kongo, Den demokratiske republikken
-territories.CC=Kokos\u00f8yene (Keeling\u00f8yene)
+territories.CD=Kongo-Kinshasa
+territories.CC=Kokos\u00f8yene
 territories.OM=Oman
 territories.CA=Canada
+territories.419=Latin-Amerika og Karibia
 territories.BZ=Belize
 territories.BY=Hviterussland
 territories.BW=Botswana
@@ -479,30 +434,41 @@ territories.BV=Bouvet\u00f8ya
 territories.BT=Bhutan
 territories.BS=Bahamas
 territories.BR=Brasil
+territories.019=Amerika
+territories.018=S\u00f8rlige Afrika
 territories.NZ=New Zealand
+territories.017=Sentral-Afrika
 territories.BO=Bolivia
 territories.BN=Brunei Darussalam
+territories.015=Nord-Afrika
 territories.BM=Bermuda
+territories.014=\u00d8st-Afrika
+territories.BL=Saint Barth\u00e9lemy
+territories.013=Sentral-Amerika
 territories.NU=Niue
 territories.BJ=Benin
+territories.011=Vest-Afrika
 territories.BI=Burundi
+territories.172=Samveldet av uavhengige stater
 territories.BH=Bahrain
 territories.NR=Nauru
 territories.BG=Bulgaria
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgia
+territories.ZZ=ukjent eller ugyldig omr\u00e5de
 territories.NO=Norge
 territories.BD=Bangladesh
 territories.BB=Barbados
 territories.ZW=Zimbabwe
 territories.NL=Nederland
-territories.BA=Bosnia og Hercegovina
+territories.BA=Bosnia-Hercegovina
 territories.NI=Nicaragua
 territories.NG=Nigeria
-territories.NF=Norfolk\u00f8yene
+territories.NF=Norfolk\u00f8ya
 territories.AZ=Aserbajdsjan
 territories.NE=Niger
+territories.AX=\u00c5land
 territories.NC=Ny-Caledonia
 territories.AW=Aruba
 territories.ZM=Zambia
@@ -512,56 +478,70 @@ territories.AT=\u00d8sterrike
 territories.AS=Amerikansk Samoa
 territories.AR=Argentina
 territories.AQ=Antarktis
+territories.009=Oseania
 territories.MZ=Mosambik
 territories.AO=Angola
 territories.MY=Malaysia
 territories.AN=De nederlandske antiller
 territories.MX=Mexico
 territories.AM=Armenia
+territories.005=S\u00f8r-Amerika
 territories.MW=Malawi
 territories.AL=Albania
 territories.MV=Maldivene
+territories.003=Nord-Amerika
 territories.ZA=S\u00f8r-Afrika
 territories.MU=Mauritius
+territories.002=Afrika
 territories.MT=Malta
 territories.AI=Anguilla
+territories.001=verden
 territories.MS=Montserrat
 territories.MR=Mauritania
 territories.AG=Antigua og Barbuda
-territories.AF=Afghanistan
 territories.MQ=Martinique
-territories.AE=De forente arabiske emiratene
+territories.AF=Afghanistan
 territories.MP=Nord-Marianene
+territories.AE=De forente arabiske emirater
+territories.MO=Macao
 territories.AD=Andorra
-territories.MO=Macao S.A.R. (Kina)
 territories.MN=Mongolia
 territories.MM=Myanmar
 territories.ML=Mali
-territories.MK=Makedonia, Republikken
+territories.MK=Makedonia
 territories.YT=Mayotte
 territories.MH=Marshall\u00f8yene
 territories.MG=Madagaskar
+territories.MF=Saint Martin
+territories.ME=Montenegro
 territories.MD=Moldova
 territories.MC=Monaco
 territories.MA=Marokko
-territories.YE=Yemen
+territories.YE=Jemen
 territories.LY=Libya
 territories.LV=Latvia
+territories.155=Vest-Europa
 territories.LU=Luxembourg
+territories.154=Nord-Europa
 territories.LT=Litauen
 territories.LS=Lesotho
 territories.LR=Liberia
+territories.151=\u00d8st-Europa
+territories.150=Europa
 territories.LK=Sri Lanka
 territories.LI=Liechtenstein
 territories.LC=St. Lucia
 territories.LB=Libanon
-territories.LA=Laos, Den folkedemokratiske republikken
+territories.LA=Laos
 territories.KZ=Kasakhstan
 territories.KY=Cayman\u00f8yene
 territories.KW=Kuwait
+territories.145=Vest-Asia
+territories.143=Sentral-Asia
+territories.142=Asia
 territories.KR=S\u00f8r-Korea
 territories.KP=Nord-Korea
-territories.KN=St. Christopher og Nevis
+territories.KN=St. Kitts og Nevis
 territories.KM=Komorene
 territories.KI=Kiribati
 territories.WS=Samoa
@@ -573,9 +553,10 @@ territories.JP=Japan
 territories.JO=Jordan
 territories.JM=Jamaica
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
-territories.VI=Jomfru\u00f8yene (USA)
-territories.VG=Jomfru\u00f8yene (britisk)
+territories.VI=De amerikanske jomfru\u00f8yene
+territories.VG=De britiske jomfru\u00f8yene
 territories.VE=Venezuela
 territories.VC=St. Vincent og Grenadinene
 territories.VA=Vatikanstaten
@@ -584,14 +565,15 @@ territories.IS=Island
 territories.IR=Iran
 territories.IQ=Irak
 territories.UZ=Usbekistan
-territories.IO=Britiske omr\u00e5der i det indiske hav
+territories.IO=Britiske territorier i Indiahavet
 territories.UY=Uruguay
 territories.IN=India
+territories.IM=Man
 territories.IL=Israel
 territories.US=USA
 territories.IE=Irland
 territories.ID=Indonesia
-territories.UM=USAs mindre \u00f8yer
+territories.UM=USAs ytre sm\u00e5\u00f8yer
 territories.UG=Uganda
 territories.UA=Ukraina
 territories.HU=Ungarn
@@ -599,65 +581,72 @@ territories.HT=Haiti
 territories.HR=Kroatia
 territories.TZ=Tanzania
 territories.HN=Honduras
-territories.HM=Heard- og McDonalds\u00f8yene
+territories.HM=Heard\u00f8ya og McDonald\u00f8yene
 territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R. (Kina)
+territories.HK=Hongkong
 territories.TT=Trinidad og Tobago
 territories.TR=Tyrkia
 territories.TO=Tonga
 territories.TN=Tunisia
 territories.TM=Turkmenistan
+languages.gwi=gwichin
 languages.akk=akkadisk
-languages.gwi=gwich\u02bcin
 languages.eka=ekajuk
+languages.ijo=ijo
 languages.xh=xhosa
 languages.sux=sumerisk
 languages.sus=susu
-languages.mis=ulike spr\u00e5k
+languages.mis=annet spr\u00e5k
 languages.loz=lozi
-languages.tog=tonga (Nyasa)
+languages.tog=nyasa-tongansk
+languages.zbl=blissymboler
 languages.pon=ponapisk
 languages.min=minangkabau
 languages.suk=sukuma
 languages.wo=wolof
-languages.kut=kutenai
 languages.lol=mongo
+languages.kut=kutenai
 languages.mic=micmac
 languages.wa=vallonsk
 languages.kum=kumyk
 languages.zap=zapotec
-languages.cus=kusjitisk (annet)
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=kusjitisk spr\u00e5k
 languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
 languages.vo=volapyk
 languages.oto=otomisk spr\u00e5k
 languages.vi=vietnamesisk
+languages.vai=vai
 languages.rar=rarotongansk
 languages.ve=venda
 languages.rap=rapanui
 languages.raj=rajasthani
-languages.ota=tyrkisk, ottomansk (1500-1928)
+languages.ota=ottomansk tyrkisk
 languages.nzi=nzima
 languages.nap=napolitansk
 languages.uz=usbekisk
 languages.uga=ugaritisk
 languages.tmh=tamasjek
-languages.nai=nordamerikansk indiansk
+languages.nai=nordamerikansk indiansk spr\u00e5k
 languages.nah=nahuatl
 languages.ur=urdu
 languages.fat=fanti
 languages.uk=ukrainsk
-languages.egy=egyptisk (historisk)
+languages.egy=gammelegyptisk
+languages.zxx=uten spr\u00e5klig innhold
 languages.ug=uigurisk
 languages.fan=fang
-languages.ssa=nilo-saharam (annet)
-languages.bat=baltisk (annet)
-languages.mga=mellomirsk (900-1200)
+languages.ssa=nilo-saharaspr\u00e5k
+languages.mga=mellomirsk
+languages.bat=baltisk spr\u00e5k
 languages.nyo=nyoro
 languages.bas=basa
 languages.nyn=nyankole
 languages.nym=nyamwezi
+languages.gsw=sveitsertysk
 languages.hmn=hmong
 languages.ban=balinesisk
 languages.osa=osage
@@ -667,47 +656,50 @@ languages.bai=bamilekisk spr\u00e5k
 languages.tw=twi
 languages.srr=serer
 languages.tli=tlingit
+languages.tlh=klingon
 languages.tt=tatarisk
 languages.ts=tsonga
+languages.srn=sranan tongo
 languages.bad=banda
 languages.tr=tyrkisk
-languages.to=tonga (Tonga-\u00f8yene)
-languages.tn=tswana
+languages.to=tongansk
+languages.tn=setswana
 languages.tl=tagalog
 languages.tk=turkmensk
 languages.ti=tigrinja
 languages.th=thai
 languages.kru=kurukh
-languages.tg=tatsjikisk
+languages.tg=tadsjikisk
 languages.byn=blin
 languages.te=telugu
-languages.csb=kasjubisk
 languages.kro=kru
-languages.ta=tamil
+languages.csb=kasjubisk
+languages.ta=tamilsk
+languages.krl=karelsk
 languages.tkl=tokelau
 languages.efi=efik
 languages.sw=swahili
 languages.sv=svensk
 languages.su=sundanesisk
 languages.krc=karachay-balkar
-languages.st=sotho (s\u00f8rlig)
+languages.st=s\u00f8r-sotho
 languages.ss=swati
 languages.sr=serbisk
 languages.sq=albansk
 languages.men=mende
-languages.crp=kreolsk og pidgin (annet)
+languages.crp=kreol- eller pidginspr\u00e5k
 languages.so=somalisk
 languages.afh=afrihili
 languages.sn=shona
 languages.sm=samoansk
 languages.sl=slovensk
-languages.grc=gammelgresk (til 1453)
+languages.grc=gammelgresk
 languages.sk=slovakisk
 languages.grb=grebo
 languages.si=singalesisk
 languages.sh=serbokroatisk
-languages.afa=afroasiatisk (annet)
 languages.crh=krimtatarisk
+languages.afa=afroasiatisk spr\u00e5k
 languages.sg=sango
 languages.se=nordsamisk
 languages.sd=sindhi
@@ -715,29 +707,34 @@ languages.udm=udmurt
 languages.sc=sardinsk
 languages.sa=sanskrit
 languages.rw=kinjarwanda
+languages.nwc=klassisk newari
 languages.ru=russisk
 languages.mdr=mandar
 languages.ro=rumensk
 languages.rn=rundi
 languages.rm=retoromansk
+languages.fr_CH=sveitsisk fransk
 languages.mdf=moksha
+languages.tiv=tiv
+languages.fr_CA=canadisk fransk
 languages.ady=adyghe
 languages.zun=zuni
 languages.kpe=kpelle
 languages.qu=quechua
 languages.tig=tigr\u00e9
 languages.son=songhai
-languages.cpp=kreolsk og pidgin, portugisiskbasert (annet)
+languages.cpp=portugisiskbasert kreol- eller pidginspr\u00e5k
+languages.rup=aromansk
 languages.sog=sogdisk
 languages.ada=adangme
-languages.cpf=kreolsk og pidgin, franskbasert (annet)
-languages.hit=hettittisk
 languages.kos=kosraeansk
-languages.cpe=kreolsk og pidgin, engelskbasert (annet)
+languages.hit=hettittisk
+languages.cpf=fransk kreolsk eller pidginspr\u00e5k
+languages.cpe=engelsk kreolsk eller pidginspr\u00e5k
 languages.him=himachali
-languages.got=gotisk
-languages.hil=hiligaynon
 languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=gotisk
 languages.gor=gorontalo
 languages.gon=gondi
 languages.din=dinka
@@ -746,15 +743,18 @@ languages.pt=portugisisk
 languages.ps=pashto
 languages.fur=friuliansk
 languages.phn=f\u00f8nikisk
-languages.goh=gammelh\u00f8ytysk (ca.750-1050)
+languages.de_CH=sveitsisk h\u00f8ytysk
+languages.goh=gammelh\u00f8ytysk
 languages.snk=soninke
 languages.cop=koptisk
 languages.yap=yapesisk
 languages.ach=acoli
-languages.phi=filippinsk (annet)
+languages.yao=yao
+languages.phi=filippinsk spr\u00e5k
 languages.pl=polsk
 languages.ace=achinesisk
 languages.pi=pali
+languages.pt_PT=iberisk portugisisk
 languages.pa=panjabi
 languages.bug=buginesisk
 languages.iba=iban
@@ -767,7 +767,7 @@ languages.map=austronesisk
 languages.or=oriya
 languages.man=mandingo
 languages.smj=lulesamisk
-languages.smi=samisk spr\u00e5k (annet)
+languages.smi=samisk spr\u00e5k
 languages.mak=makasar
 languages.om=oromo
 languages.mai=maithili
@@ -775,24 +775,27 @@ languages.oj=ojibwa
 languages.mag=magahi
 languages.mad=maduresisk
 languages.sma=s\u00f8rsamisk
-languages.oc=oksitansk (etter 1500)
-languages.nso=sotho, nord
-languages.btk=batak (Indonesia)
+languages.oc=oksitansk
+languages.nso=nord-sotho
+languages.btk=batakisk
 languages.myv=erzya
+languages.es_ES=iberisk spansk
+languages.de_AT=\u00f8sterriksk tysk
 languages.dgr=dogrib
 languages.ny=nyanja
-languages.myn=maya
+languages.myn=mayaspr\u00e5k
 languages.nv=navajo
 languages.kmb=kimbundu
-languages.nr=ndebele, s\u00f8r
-languages.gmh=mellomh\u00f8ytysk (ca.1050-1500)
+languages.nr=s\u00f8r-ndebele
+languages.gmh=mellomh\u00f8ytysk
 languages.no=norsk
-languages.nn=norsk nynorsk
+languages.nn=nynorsk
 languages.nl=nederlandsk
+languages.root=rot
 languages.ng=ndonga
-languages.sla=slavisk (annet)
+languages.sla=slavisk spr\u00e5k
 languages.ne=nepalsk
-languages.nd=ndebele (nord)
+languages.nd=nord-ndebele
 languages.cmc=kamisk spr\u00e5k
 languages.tet=tetum
 languages.nb=norsk bokm\u00e5l
@@ -802,26 +805,30 @@ languages.tem=temne
 languages.my=burmesisk
 languages.lez=lezghian
 languages.mt=maltesisk
-languages.peo=gammelpersisk (ca. 600-400 f. kr.)
+languages.frs=\u00f8stfrisisk
+languages.peo=gammelpersisk
 languages.ms=malayisk
+languages.frr=nordfrisisk
 languages.mr=marathi
-languages.fro=gammelfransk (842 til ca.1400)
+languages.fro=gammelfransk
 languages.mo=moldavisk
 languages.mn=mongolsk
-languages.frm=mellomfransk (ca.1400-1600)
+languages.frm=mellomfransk
 languages.ml=malayalam
 languages.jrb=j\u00f8dearabisk
 languages.mk=makedonsk
 languages.mi=maori
 languages.mh=marshallesisk
 languages.mg=madagassisk
+languages.nqo=n-k\u00e5
 languages.mwr=marwari
 languages.bra=braj
+languages.mwl=mirandesisk
+languages.den=slavej
 languages.lv=latvisk
-languages.den=slavisk (athapaskansk)
-languages.lu=luba-katanga
-languages.lt=litauisk
+languages.lu=luba-Katanga
 languages.del=delaware
+languages.lt=litauisk
 languages.lo=laotisk
 languages.ln=lingala
 languages.li=limburgisk
@@ -831,19 +838,20 @@ languages.lb=luxemburgsk
 languages.la=latin
 languages.jpr=j\u00f8depersisk
 languages.vot=votisk
-languages.sit=sino-tibetansk (annet)
+languages.sit=sino-tibetansk spr\u00e5k
 languages.ky=kirgisisk
 languages.kw=kornisk
 languages.kv=komi
 languages.ku=kurdisk
-languages.sio=sioux-spr\u00e5k
-languages.ks=kasjmiri
+languages.sio=siouxspr\u00e5k
+languages.ks=kasjmirsk
 languages.kr=kanuri
 languages.awa=awadhi
 languages.ko=koreansk
 languages.kn=kannada
 languages.km=khmer
-languages.kl=kalaallisut
+languages.en_GB=britisk engelsk
+languages.kl=gr\u00f8nlandsk
 languages.kk=kasakhisk
 languages.rom=romani
 languages.kj=kuanyama
@@ -853,58 +861,59 @@ languages.kg=kikongo
 languages.non=gammelnorsk
 languages.ka=georgisk
 languages.mus=creek
-languages.roa=romansk (annet)
+languages.roa=romansk spr\u00e5k
 languages.nog=nogai
-languages.mun=munda-spr\u00e5k
+languages.mun=mundaspr\u00e5k
 languages.mul=flere spr\u00e5k
 languages.jv=javanesisk
-languages.gil=kiribatisk; gilbertesisk
+languages.gil=kiribatisk
 languages.znd=zande
 languages.shn=shan
+languages.fon=fon
 languages.xal=kalmyk
 languages.aus=australsk spr\u00e5k
 languages.kho=khotanesisk
 languages.ja=japansk
-languages.khi=khoisan (annet)
+languages.khi=khoisanspr\u00e5k
 languages.pau=palauisk
 languages.chy=cheyenne
-languages.tai=tai (annet)
+languages.tai=taispr\u00e5k
 languages.iu=inuktitut
 languages.pap=papiamento
 languages.it=italiensk
 languages.sgn=tegnspr\u00e5k
-languages.kha=khasi
 languages.is=islandsk
+languages.kha=khasi
 languages.chr=cherokee
 languages.pam=pampanga
 languages.pal=pahlavi
 languages.chp=chipewiansk
-languages.cho=choctaw
 languages.io=ido
+languages.cho=choctaw
 languages.chn=chinook
 languages.chm=mari
 languages.tyv=tuvinisk
 languages.bnt=bantu
 languages.pag=pangasinan
+languages.ik=inupiak
 languages.chk=chuukesisk
-languages.ik=unupiak
-languages.haw=hawaiisk
 languages.ii=sichuan-yi
+languages.haw=hawaiisk
 languages.lam=lamba
-languages.chg=chagatai
 languages.ig=ibo
-languages.sga=gammelirsk (til 900)
-languages.paa=papuisk (annet)
+languages.chg=chagatai
+languages.sga=gammelirsk
+languages.paa=papuisk spr\u00e5k
 languages.ie=interlingue
 languages.id=indonesisk
 languages.lah=lahnda
-languages.chb=chibcha
 languages.day=dayak
+languages.chb=chibcha
 languages.ia=interlingua
 languages.lad=ladinsk
-languages.dar=dargwa
-languages.hai=haida
 languages.hz=herero
+languages.hai=haida
+languages.dar=dargwa
 languages.hy=armensk
 languages.ath=athapaskansk spr\u00e5k
 languages.hu=ungarsk
@@ -916,77 +925,90 @@ languages.hi=hindi
 languages.dyu=dyula
 languages.he=hebraisk
 languages.ast=asturisk
+languages.kfo=koro
+languages.ha=hausa
 languages.wen=sorbisk spr\u00e5k
 languages.gv=manx
 languages.gu=gujarati
-languages.sem=semittisk (annet)
+languages.sem=semittisk spr\u00e5k
 languages.sel=selkupisk
 languages.iro=irokansk spr\u00e5k
 languages.gn=guarani
-languages.gl=galicisk
+languages.gl=galisisk
+languages.en_CA=canadisk engelsk
 languages.arw=arawak
-languages.gd=skotsk g\u00e6lisk
-languages.art=kunstig (annet)
 languages.gez=ges
+languages.art=kunstig spr\u00e5k
+languages.gd=skotsk g\u00e6lisk
 languages.ira=iransk
 languages.ga=irsk
 languages.arp=arapaho
 languages.arn=araukansk
-languages.fy=frisisk
+languages.fy=vestfrisisk
 languages.bla=siksika
-languages.gem=germansk (annet)
+languages.gem=germansk spr\u00e5k
 languages.ypk=jupisk spr\u00e5k
-languages.fr=fransk
 languages.arc=arameisk
+languages.fr=fransk
 languages.fo=f\u00e6r\u00f8ysk
-languages.cel=keltisk (annet)
+languages.cel=keltisk spr\u00e5k
 languages.fj=fijiansk
 languages.fi=finsk
 languages.ff=fulani
 languages.tvl=tuvalu
 languages.ceb=cebuansk
 languages.fa=persisk
+languages.en_AU=australsk engelsk
+languages.zh_Hans=forenklet kinesisk
+languages.zh_Hant=tradisjonell kinesisk
 languages.eu=baskisk
 languages.sco=skotsk
 languages.et=estisk
+languages.scn=siciliansk
 languages.es=spansk
 languages.eo=esperanto
 languages.en=engelsk
 languages.el=gresk
-languages.tut=altaisk (annet)
+languages.tut=altaisk spr\u00e5k
 languages.niu=niueansk
-languages.tup=tupi-spr\u00e5k
+languages.tup=tupispr\u00e5k
 languages.ee=ewe
 languages.tum=tumbuka
+languages.nl_BE=flamsk
+languages.es_419=latinamerikansk spansk
 languages.mos=mossi
 languages.dz=dzongkha
-languages.nic=niger - kordofaniansk (annet)
-languages.dv=divehi
-languages.fiu=finsk-ugrisk (annet)
+languages.kcg=tyap
+languages.nic=niger-kordofiansk spr\u00e5k
 languages.lus=lushai
+languages.fiu=finsk-ugrisk spr\u00e5k
+languages.dv=divehi
 languages.nia=nias
 languages.moh=mohawk
+languages.luo=luo
 languages.lun=lunda
-languages.apa=apache-spr\u00e5k
+languages.apa=apachespr\u00e5k
+languages.fil=filippinsk
 languages.lui=luiseno
 languages.hup=hupa
+languages.cch=atsam
 languages.bin=bini
 languages.de=tysk
-languages.lua=luba-lulua
+languages.lua=luba-Lulua
 languages.bik=bikol
 languages.was=washo
-languages.und=ikke angitt
+languages.und=ukjent eller ugyldig spr\u00e5k
 languages.war=waray
 languages.da=dansk
-languages.dum=mellomnederlandsk (ca. 1050-1350)
+languages.dum=mellomnederlandsk
 languages.wal=walamo
-languages.mno=manobo-spr\u00e5k
+languages.mno=manobospr\u00e5k
 languages.wak=wakasjansk spr\u00e5k
 languages.sat=santali
 languages.cy=walisisk
 languages.sas=sasak
-languages.cv=tsjuvansk
 languages.kbd=kabardisk
+languages.cv=tsjuvansk
 languages.cu=kirkeslavisk
 languages.mni=manipuri
 languages.cs=tsjekkisk
@@ -995,77 +1017,97 @@ languages.cr=cree
 languages.sal=salishansk spr\u00e5k
 languages.dua=duala
 languages.co=korsikansk
-languages.sai=s\u00f8ramerikansk indiansk (annet)
+languages.sai=s\u00f8ramerikansk indiansk spr\u00e5k
 languages.mnc=mandsju
 languages.sah=jakutsk
-languages.gba=gbaya
-languages.inh=ingusjisk
 languages.kaw=kawi
+languages.inh=ingusjisk
+languages.gba=gbaya
 languages.sad=sandawe
 languages.ch=chamorro
+languages.ine=indoeuropeisk spr\u00e5k
 languages.bho=bhojpuri
-languages.ine=indoeuropeisk (annet)
-languages.enm=mellomengelsk (1100-1500)
-languages.ce=tsjetsjensk
-languages.inc=indisk (annet)
+languages.enm=mellomengelsk
 languages.kar=karensk
+languages.inc=indisk spr\u00e5k
+languages.ce=tsjetsjensk
 languages.gay=gayo
 languages.ca=katalansk
 languages.umb=umbundu
 languages.syr=syrisk
 languages.kam=kamba
+languages.anp=angika
 languages.tsi=tsimshian
-languages.ang=gammelengelsk (ca. 450-1100)
-languages.cau=kaukasisk (annet)
+languages.kaj=jju
+languages.ang=gammelengelsk
 languages.kac=kachin
+languages.cau=kaukasisk spr\u00e5k
 languages.kab=kabylsk
-languages.bs=bosnisk
 languages.kaa=karakalpakisk
-languages.br=bretonsk
+languages.bs=bosnisk
 languages.car=karibisk
+languages.br=bretonsk
+languages.syc=klassisk syrisk
 languages.bo=tibetansk
 languages.bn=bengali
 languages.bm=bambara
 languages.gaa=ga
+languages.cai=sentralamerikansk indiansk spr\u00e5k
 languages.bi=bislama
-languages.cai=sentralamerikansk indiansk (annet)
 languages.bh=bihari
 languages.bg=bulgarsk
 languages.be=hviterussisk
+languages.pt_BR=brasiliansk portugisisk
 languages.cad=caddo
 languages.ba=basjkirsk
 languages.zu=zulu
 languages.zen=zenaga
-languages.pro=gammelproven\u00e7alsk (til 1500)
+languages.pro=gammelproven\u00e7alsk
 languages.hsb=h\u00f8ysorbisk
 languages.az=aserbajdsjansk
 languages.ay=aymara
 languages.av=avarisk
-languages.as=assamisk
-languages.ar=arabisk
+languages.as=assamesisk
 languages.dsb=lavsorbisk
-languages.elx=elamittisk
+languages.ar=arabisk
 languages.ilo=iloko
+languages.elx=elamittisk
 languages.zh=kinesisk
 languages.an=aragonsk
-languages.pra=prakrit-spr\u00e5k
+languages.pra=prakritspr\u00e5k
 languages.am=amharisk
 languages.new=newari
 languages.ak=akan
 languages.za=zhuang
+languages.en_US=amerikansk engelsk
 languages.af=afrikaans
 languages.ae=avestisk
+languages.alt=s\u00f8raltaisk
 languages.ab=abkhasisk
 languages.aa=afar
 languages.yo=joruba
 languages.alg=algonkinsk spr\u00e5k
 languages.ale=aleutisk
-languages.mkh=mon-khmer (Other)
+languages.mkh=mon-khmerspr\u00e5k
 languages.yi=jiddisk
-languages.dra=dravidisk (annet)
-languages.ber=berbisk (annet)
-languages.nds=lavtysk; lavsaksisk
+languages.dra=dravidisk spr\u00e5k
+languages.ber=berbisk
+languages.nds=lavtysk
 languages.bem=bemba
 languages.bej=beja
 languages.tpi=tok pisin
-variants.REVISED=Revidert
+variants.SCOUSE=scouse dialekt
+variants.BOONT=boontling
+variants.REVISED=revidert rettskriving
+variants.AREVELA=\u00f8st-armensk
+variants.POLYTON=polytonisk rettskriving
+variants.FONIPA=FONIPA
+variants.1996=tysk ortografi fra 1996
+variants.SAAHO=saaho dialekt
+variants.SCOTLAND=skotsk standard engelsk
+variants.AREVMDA=vest-armensk
+variants.VALENCIA=valensisk dialekt
+variants.1901=tradisjonell tysk ortografi
+variants.MONOTON=monotonisk rettskriving
+variants.FONUPA=FONUPA
+variants.ROZAJ=resisk dialekt
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ne.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ne.properties
new file mode 100644 (file)
index 0000000..0ae99f7
--- /dev/null
@@ -0,0 +1,421 @@
+# LocaleInformation_ne.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+minusSign=-
+zeroDigit=\u0966
+decimalSeparator=.
+groupingSeparator=,
+currenciesDisplayName.INR=\u092d\u093e\u0930\u0924\u0940 \u0930\u0942\u092a\u093f\u0901\u092f\u093e
+currenciesDisplayName.NOK=\u0928\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u093e\u0932\u0940 \u0915\u094d\u0930\u094b\u0928
+currenciesDisplayName.ALL=\u0905\u0932\u094d\u092c\u093e\u0928\u093f\u092f\u0928 \u0932\u0947\u0915
+currenciesDisplayName.JPY=\u091c\u093e\u092a\u093e\u0928\u0940 \u092f\u0947\u0928
+currenciesDisplayName.RUB=\u0930\u0942\u0938\u0940 \u0930\u0942\u092c\u0932
+currenciesDisplayName.AFN=\u0905\u092b\u094d\u0917\u093e\u0928\u0940
+currenciesDisplayName.BRL=\u092c\u094d\u0930\u093e\u091c\u093f\u0932\u093f\u092f\u0928 \u0930\u093f\u092f\u0932
+currenciesDisplayName.CNY=\u091a\u093f\u0928\u093f\u0901\u092f\u093e \u092f\u0941\u0906\u0928 \u0930\u0947\u0928\u093f\u092c\u0940
+currenciesDisplayName.AUD=\u0905\u0937\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u0928 \u0921\u0932\u0930
+currenciesDisplayName.USD=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0921\u0932\u0930
+currenciesDisplayName.XXX=\u0905\u092a\u0930\u093f\u091a\u093f\u0924 \u0935\u093e \u0905\u0935\u0948\u0927 \u092e\u0941\u0926\u094d\u0930\u093e
+currenciesDisplayName.EUR=\u092f\u0941\u0930\u094b
+currenciesDisplayName.PHP=\u092b\u093f\u0932\u093f\u092a\u093f\u0928\u0940 \u092a\u0947\u0938\u094b
+currenciesDisplayName.AFA=\u0905\u092b\u094d\u0917\u093e\u0928\u0940(\u0967\u096f\u0968\u096d-\u0968\u0966\u0966\u0968)
+currenciesDisplayName.GBP=\u092c\u0947\u0932\u093e\u092f\u0924\u0940 \u092a\u093e\u0909\u0923\u094d\u0921 \u0938\u094d\u091f\u0930\u094d\u0932\u093f\u0919
+currenciesSymbol.NPR=\u0928\u0947\u0930\u0942
+shortMonths=\u091c\u0928\u00ae\u092b\u0947\u092c\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u0905\u092a\u094d\u0930\u093f\u00ae\u092e\u0947\u00ae\u091c\u0941\u0928\u00ae\u091c\u0941\u0932\u093e\u00ae\u0905\u0917\u00ae\u0938\u0947\u092a\u094d\u091f\u00ae\u0905\u0915\u094d\u091f\u094b\u00ae\u0928\u094b\u092d\u0947\u00ae\u0921\u093f\u0938\u0947\u00ae\u00ae
+months=\u091c\u0928\u0935\u0930\u0940\u00ae\u092b\u0947\u092c\u094d\u0930\u0941\u0905\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u0905\u092a\u094d\u0930\u093f\u0932\u00ae\u092e\u0947\u00ae\u091c\u0941\u0928\u00ae\u091c\u0941\u0932\u093e\u0908\u00ae\u0905\u0917\u0938\u094d\u0924\u00ae\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930\u00ae\u0905\u0915\u094d\u091f\u094b\u092c\u0930\u00ae\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930\u00ae\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930\u00ae\u00ae
+shortWeekdays=\u00ae\u0906\u0907\u0924\u00ae\u0938\u094b\u092e\u00ae\u092e\u0919\u094d\u0917\u0932\u00ae\u092c\u0941\u0927\u00ae\u092c\u093f\u0939\u0940\u00ae\u0936\u0941\u0915\u094d\u0930\u00ae\u0936\u0928\u093f\u00ae
+weekdays=\u00ae\u0906\u0907\u0924\u092c\u093e\u0930\u00ae\u0938\u094b\u092e\u092c\u093e\u0930\u00ae\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930\u00ae\u092c\u0941\u0927\u092c\u093e\u0930\u00ae\u092c\u093f\u0939\u0940\u092c\u093e\u0930\u00ae\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930\u00ae\u0936\u0928\u093f\u092c\u093e\u0930\u00ae
+eras=\u0908\u0938\u093e \u092a\u0942\u0930\u094d\u0935\u00ae\u0938\u0928\u094d\u00ae
+ampms=\u092a\u0942\u0930\u094d\u0935 \u092e\u0927\u094d\u092f\u093e\u0928\u094d\u0939\u00ae\u0909\u0924\u094d\u0924\u0930 \u092e\u0927\u094d\u092f\u093e\u0928\u094d\u0939\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Africa_Central\u00ae\u0967\u0969:\u0968\u096b \u0915\u0947\u0928\u094d\u0926\u094d\u0930\u0940\u092f \u0905\u092b\u094d\u0930\u093f\u0915\u0940 \u0938\u092e\u092f\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u092a\u0942\u0930\u094d\u0935\u0940 \u091f\u093f\u092e\u094b\u0930
+territories.TK=\u0924\u094b\u0917\u094b
+territories.TJ=\u0924\u093e\u091c\u093f\u0915\u093f\u0938\u094d\u0924\u093e\u0928
+territories.TH=\u0925\u093e\u0907\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.TG=\u091f\u094b\u0917\u094b
+territories.TF=\u092b\u094d\u0930\u093e\u0928\u094d\u0938\u0947\u0932\u0940 \u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u0915\u094d\u0937\u0947\u0924\u094d\u0930
+territories.GY=\u0917\u0941\u092f\u093e\u0928\u093e
+territories.TD=\u091a\u093e\u0921
+territories.TC=\u0924\u0941\u0930\u094d\u0915 \u0930 \u0915\u093e\u0907\u0915\u094b\u0938 \u091f\u093e\u092a\u0941
+territories.GW=\u0917\u093f\u0928\u0940-\u092c\u093f\u0938\u093e\u0909
+territories.GU=\u0917\u0941\u0935\u093e\u092e
+territories.GT=\u0917\u094d\u0935\u093e\u091f\u0947\u092e\u093e\u0932\u093e
+territories.GR=\u0917\u094d\u0930\u093f\u0936
+territories.GQ=\u092d\u0942-\u092e\u0927\u094d\u092f\u0940\u092f \u0917\u093f\u0928\u0940
+territories.GP=\u0917\u094d\u0935\u093e\u0921\u0947\u0932\u0941\u092a
+territories.SZ=\u0938\u094d\u0935\u093e\u091c\u093f\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.SY=\u0938\u093f\u0930\u093f\u092f\u093e
+territories.GN=\u0917\u093f\u0928\u0940
+territories.GM=\u0917\u093e\u092e\u094d\u0935\u093f\u092f\u093e
+territories.GL=\u0917\u094d\u0930\u093f\u0928\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.SV=\u090f\u0932\u094d \u0938\u093e\u0932\u094d\u092d\u093e\u0921\u094b\u0930
+territories.062=\u0926\u0915\u094d\u0937\u093f\u0923 \u092e\u0927\u094d\u092f \u090f\u0936\u093f\u092f\u093e
+territories.ST=\u0938\u093e\u0913 \u091f\u094b\u092e\u0947 \u0930 \u092a\u094d\u0930\u093f\u0928\u094d\u0938\u093f\u092a
+territories.GI=\u091c\u093f\u092c\u094d\u0930\u093e\u0932\u094d\u091f\u093e\u0930
+territories.061=\u092a\u094b\u0932\u093f\u0928\u0947\u0936\u093f\u092f\u093e
+territories.GH=\u0918\u093e\u0928\u093e
+territories.SR=\u0938\u0941\u0930\u093f\u0928\u0947\u092e
+territories.GG=\u0917\u0941\u090f\u0930\u094d\u0928\u0938\u0947
+territories.GF=\u092b\u094d\u0930\u093e\u0928\u094d\u0938\u0947\u0932\u0940 \u0917\u093e\u092f\u0928\u093e
+territories.GE=\u091c\u094b\u0930\u094d\u091c\u093f\u092f\u093e
+territories.SO=\u0938\u094b\u092e\u093e\u0932\u093f\u092f\u093e
+territories.GD=\u0917\u094d\u0930\u0947\u0928\u093e\u0921\u093e
+territories.SN=\u0938\u0947\u0928\u0947\u0917\u093e\u0932
+territories.SM=\u0938\u093e\u0928\u094d \u092e\u093e\u0930\u093f\u0928\u094b
+territories.GB=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0905\u0927\u093f\u0930\u093e\u091c\u094d\u092f
+territories.SL=\u0938\u093f\u090f\u0930\u094d\u0930\u093e \u0932\u093f\u0913\u0928
+territories.GA=\u0917\u093e\u0935\u094b\u0928
+territories.SK=\u0938\u094d\u0932\u094b\u092d\u093e\u0915\u093f\u092f\u093e
+territories.SJ=\u0938\u092d\u093e\u0932\u094d\u092c\u093e\u0930\u094d\u0921 \u0930 \u091c\u093e\u0928 \u092e\u093e\u092f\u0947\u0928
+territories.SI=\u0938\u094d\u0932\u094b\u092d\u0947\u0928\u093f\u092f\u093e
+territories.SH=\u0938\u0947\u0928\u094d\u091f \u0939\u0947\u0932\u0947\u0928\u093e
+territories.SG=\u0938\u093f\u0919\u094d\u0917\u093e\u092a\u0941\u0930
+territories.SE=\u0938\u094d\u0935\u093f\u0921\u0947\u0928
+territories.SD=\u0938\u0941\u0921\u093e\u0928
+territories.SC=\u0938\u0947\u091a\u0947\u0932\u0947\u0938
+territories.SB=\u0938\u094b\u0932\u094b\u092e\u094b\u0928 \u091f\u093e\u092a\u0941
+territories.SA=\u0938\u093e\u0909\u0926\u0940 \u0905\u0930\u092c
+territories.FR=\u092b\u094d\u0930\u093e\u0928\u094d\u0938
+territories.FO=\u092b\u093e\u0930\u094b\u0930 \u091f\u093e\u092a\u0941
+territories.057=\u092e\u093e\u0907\u0915\u094d\u0930\u094b\u0928\u0947\u0938\u093f\u092f\u093e\u0932\u0940 \u0915\u094d\u0937\u0947\u0924\u094d\u0930
+territories.FM=\u092e\u093e\u0907\u0915\u094d\u0930\u094b\u0928\u0947\u0938\u093f\u092f\u093e
+territories.RW=\u0930\u0935\u093e\u0923\u094d\u0921\u093e
+territories.054=\u092e\u0947\u0932\u093e\u0928\u0947\u0938\u093f\u092f\u093e
+territories.FK=\u092b\u0915\u0932\u094d\u092f\u093e\u0923\u094d\u0921 \u091f\u093e\u092a\u0941
+territories.053=\u0905\u0937\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e \u0930 \u0928\u094d\u092f\u0941\u091c\u093f\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.RU=\u0930\u0942\u0938
+territories.FJ=\u092b\u093f\u091c\u0940
+territories.FI=\u092b\u093f\u0928\u094d\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.RS=\u0938\u0930\u094d\u092c\u093f\u092f\u093e
+territories.RO=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e
+territories.RE=\u0930\u093f\u092f\u0941\u0928\u093f\u092f\u0928
+territories.ET=\u0907\u0925\u094b\u092a\u093f\u092f\u093e
+territories.ES=\u0938\u094d\u092a\u0947\u0928
+territories.ER=\u090f\u0930\u093f\u0924\u094d\u0930\u093f\u092f\u093e
+territories.QU=\u092f\u0941\u0930\u094b\u092a\u093f\u092f\u0928 \u092f\u0941\u0928\u093f\u092f\u0928
+territories.EH=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u0938\u093e\u0939\u093e\u0930\u093e
+territories.EG=\u0907\u091c\u093f\u092a\u094d\u091f
+territories.EE=\u0907\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u093e
+territories.QO=\u092c\u093e\u0939\u094d\u092f \u0913\u0938\u0928\u093f\u092f\u093e
+territories.EC=\u0907\u0915\u094d\u0935\u0921\u0947\u0930
+territories.DZ=\u0905\u0932\u094d\u091c\u0947\u0930\u093f\u092f\u093e
+territories.QA=\u0915\u091f\u093e\u0930
+territories.039=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u092f\u0941\u0930\u094b\u092a
+territories.DO=\u0921\u094b\u092e\u093f\u0928\u093f\u0915\u0928 \u0917\u0923\u0924\u0928\u094d\u0924\u094d\u0930
+territories.PY=\u092a\u094d\u092f\u093e\u0930\u093e\u0917\u0941\u092f\u0947
+territories.DM=\u0921\u094b\u092e\u093f\u0928\u093f\u0915\u093e
+territories.035=\u0926\u0915\u094d\u0937\u093f\u0923 \u092a\u0942\u0930\u094d\u0935\u0940 \u090f\u0936\u093f\u092f\u093e
+territories.PW=\u092a\u0932\u093e\u0909
+territories.034=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u090f\u0936\u093f\u092f\u093e
+territories.DK=\u0921\u0947\u0928\u094d\u092e\u093e\u0930\u094d\u0915
+territories.DJ=\u0921\u093f\u091c\u093f\u092c\u0941\u091f\u0940
+territories.PT=\u092a\u094b\u0930\u094d\u0924\u0941\u0917\u0932
+territories.PS=\u092a\u094d\u092f\u093e\u0932\u0947\u0938\u094d\u091f\u0928\u0940 \u092d\u0942-\u092d\u093e\u0917
+territories.030=\u092a\u0942\u0930\u094d\u0935\u0940 \u090f\u0936\u093f\u092f\u093e
+territories.PR=\u092a\u094d\u092f\u0941\u0930\u094d\u091f\u094b\u0930\u093f\u0915\u094b
+territories.DE=\u091c\u0930\u094d\u092e\u0928\u0940
+territories.PN=\u092a\u093f\u091f\u0915\u093e\u0907\u0930\u094d\u0928
+territories.PM=\u0938\u0947\u0928\u094d\u091f \u092a\u093f\u0930\u094d\u0930\u0947 \u0930 \u092e\u093f\u0915\u094d\u0915\u0947\u0932\u094b\u0928
+territories.PL=\u092a\u094b\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.PK=\u092a\u093e\u0915\u093f\u0938\u094d\u0924\u093e\u0928
+territories.PH=\u092b\u093f\u0932\u093f\u092a\u093f\u0928\u094d\u0938
+territories.PG=\u092a\u092a\u0941\u0906 \u0928\u094d\u092f\u0942 \u0917\u093e\u0907\u0928\u093f\u092f\u093e
+territories.PF=\u092b\u094d\u0930\u093e\u0928\u094d\u0938\u0947\u0932\u0940 \u092a\u094b\u0932\u093f\u0928\u0947\u0938\u093f\u092f\u093e
+territories.CZ=\u091a\u0947\u0916 \u0917\u0923\u0924\u0928\u094d\u0924\u094d\u0930
+territories.PE=\u092a\u0947\u0930\u0942
+territories.CY=\u0938\u093e\u0907\u092a\u094d\u0930\u0938
+territories.CX=\u0915\u094d\u0930\u093f\u0937\u094d\u091f\u092e\u0938 \u091f\u093e\u092a\u0941
+territories.CV=\u0915\u0947\u092a \u092d\u0930\u094d\u0921\u0947
+territories.PA=\u092a\u0928\u093e\u092e\u093e
+territories.CU=\u0915\u094d\u092f\u0941\u092c\u093e
+territories.CR=\u0915\u094b\u0937\u094d\u091f\u093e\u0930\u093f\u0915\u093e
+territories.029=\u0915\u094d\u092f\u093e\u0930\u093f\u092c\u093f\u090f\u0928
+territories.CO=\u0915\u094b\u0932\u094b\u092e\u094d\u092c\u093f\u092f\u093e
+territories.CN=\u091a\u0940\u0928
+territories.CM=\u0915\u094d\u092f\u093e\u092e\u0947\u0930\u0942\u0928
+territories.CL=\u091a\u093f\u0932\u0940
+territories.CK=\u0915\u0941\u0915 \u091f\u093e\u092a\u0941
+territories.021=\u0909\u0924\u094d\u0924\u0930\u0940 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
+territories.CI=\u0906\u0907\u092d\u094b\u0930\u0940 \u0915\u094b\u0937\u094d\u091f
+territories.CH=\u0938\u094d\u0935\u093f\u091c\u0930\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.CG=\u0915\u094b\u0919\u094d\u0917\u094b - \u092c\u094d\u0930\u093e\u091c\u094d\u091c\u093e\u092d\u093f\u0932\u094d\u0932\u0947
+territories.CF=\u0915\u0947\u0928\u094d\u0926\u094d\u0930\u0940\u092f \u0905\u092b\u094d\u0930\u093f\u0915\u0940 \u0917\u0923\u0924\u0928\u094d\u0924\u094d\u0930
+territories.CD=\u0915\u094b\u0919\u094d\u0917\u094b-\u0915\u093f\u0928\u094d\u0936\u093e\u0938\u093e
+territories.CC=\u0915\u094b\u0915\u094b\u0938 \u091f\u093e\u092a\u0941
+territories.OM=\u0913\u092e\u0928
+territories.CA=\u0915\u094d\u092f\u093e\u0928\u093e\u0921\u093e
+territories.419=\u0932\u094d\u092f\u093e\u091f\u093f\u0928 \u0905\u092e\u0947\u0930\u093f\u0915\u093e \u0924\u0925\u093e \u0915\u094d\u092f\u093e\u0930\u093f\u092c\u093f\u092f\u0928
+territories.BZ=\u092c\u0947\u0932\u093f\u091c
+territories.BY=\u092c\u0947\u0932\u093e\u0930\u0942\u0938
+territories.BW=\u092c\u094b\u091f\u094d\u0938\u094d\u0935\u093e\u0928\u093e
+territories.BV=\u092c\u0941\u092d\u0947\u091f \u091f\u093e\u092a\u0941
+territories.BT=\u092d\u0941\u091f\u093e\u0928
+territories.BS=\u092c\u0939\u093e\u092e\u093e\u0938
+territories.BR=\u092c\u094d\u0930\u093e\u091c\u093f\u0932
+territories.019=\u0905\u092e\u0947\u0930\u093f\u0915\u093e\u0938
+territories.018=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.NZ=\u0928\u094d\u092f\u0941\u091c\u093f\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.017=\u092e\u0927\u094d\u092f \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.BO=\u092c\u094b\u0932\u093f\u092d\u093f\u092f\u093e
+territories.BN=\u092c\u094d\u0930\u0941\u0928\u093e\u0907
+territories.015=\u0909\u0924\u094d\u0924\u0930\u0940 \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.BM=\u092c\u0930\u094d\u092e\u0941\u0921\u093e
+territories.014=\u092a\u0942\u0930\u094d\u0935\u0940 \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.BL=\u0938\u0947\u0928\u094d\u091f \u092c\u093e\u0930\u094d\u0925\u093e\u0932\u0947\u092e\u0940
+territories.013=\u0915\u0947\u0928\u094d\u0926\u094d\u0930\u0940\u092f \u0905\u092e\u0947\u0930\u093f\u0915\u093e
+territories.NU=\u0928\u093f\u092f\u0941\u0907
+territories.BJ=\u092c\u0947\u0928\u093f\u0928
+territories.011=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.BI=\u092c\u0941\u0930\u0942\u0923\u094d\u0921\u0940
+territories.172=\u0915\u092e\u0928\u0935\u0947\u0932\u094d\u0925\u0915\u093e \u0938\u094d\u0935\u0924\u0928\u094d\u0924\u094d\u0930 \u0930\u093e\u091c\u094d\u092f\u0939\u0930\u0942
+territories.BH=\u092c\u093e\u0939\u094d\u0930\u0947\u0928
+territories.NR=\u0928\u093e\u0909\u0930\u0942
+territories.BG=\u092c\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u093e
+territories.BF=\u092c\u0930\u094d\u0915\u093f\u0928\u093e \u092b\u093e\u0938\u094b
+territories.NP=\u0928\u0947\u092a\u093e\u0932
+territories.BE=\u092c\u0947\u0932\u094d\u091c\u093f\u092f\u092e
+territories.ZZ=\u0905\u092a\u0930\u093f\u091a\u093f\u0924 \u0935\u093e \u0905\u0935\u0948\u0927 \u0915\u094d\u0937\u0947\u0924\u094d\u0930
+territories.NO=\u0928\u0930\u094d\u0935\u0947
+territories.BD=\u092c\u0919\u094d\u0917\u0932\u093e\u0926\u0947\u0936
+territories.BB=\u092c\u093e\u0930\u094d\u092c\u093e\u0921\u094b\u0938
+territories.ZW=\u091c\u093f\u092e\u094d\u092c\u093e\u092c\u0947
+territories.NL=\u0928\u0947\u0926\u0930\u0932\u094d\u092f\u093e\u0923\u094d\u0921\u094d\u0938
+territories.BA=\u092c\u094b\u0938\u094d\u0928\u093f\u092f\u093e \u0930 \u0939\u0930\u094d\u091c\u0917\u094b\u092d\u093f\u0928\u093f\u092f\u093e
+territories.NI=\u0928\u093f\u0915\u093e\u0930\u093e\u0917\u0941\u0935\u093e
+territories.NG=\u0928\u093e\u0907\u091c\u0947\u0930\u093f\u092f\u093e
+territories.NF=\u0928\u094b\u0930\u092b\u094b\u0932\u094d\u0915 \u091f\u093e\u092a\u0941
+territories.AZ=\u0905\u091c\u0930\u092c\u0948\u091c\u093e\u0928
+territories.NE=\u0928\u093e\u0907\u091c\u0930
+territories.AX=\u0905\u0932\u093e\u0928\u094d\u0921 \u091f\u093e\u092a\u0941
+territories.NC=\u0928\u092f\u093e\u0901 \u0915\u093e\u0932\u0947\u0921\u094b\u0928\u093f\u092f\u093e
+territories.AW=\u0906\u0930\u0942\u092c\u093e
+territories.ZM=\u091c\u093e\u092e\u094d\u092c\u093f\u092f\u093e
+territories.NA=\u0928\u093e\u092e\u093f\u092c\u093f\u092f\u093e
+territories.AU=\u0905\u0937\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e
+territories.AT=\u0905\u0937\u094d\u091f\u094d\u0930\u093f\u092f\u093e
+territories.AS=\u0905\u092e\u0947\u0930\u093f\u0915\u0940 \u0938\u092e\u094b\u0906
+territories.AR=\u0905\u0930\u094d\u091c\u0947\u0923\u094d\u091f\u093f\u0928\u093e
+territories.AQ=\u0905\u0928\u094d\u091f\u093e\u0930\u0924\u093f\u0915\u093e
+territories.009=\u0913\u0938\u0928\u093f\u092f\u093e
+territories.MZ=\u092e\u094b\u091c\u093e\u092e\u094d\u092c\u093f\u0915
+territories.AO=\u0905\u0919\u094d\u0917\u094b\u0932\u093e
+territories.MY=\u092e\u0932\u0947\u0938\u093f\u092f\u093e
+territories.AN=\u0928\u0947\u0926\u0930\u0932\u094d\u092f\u093e\u0923\u094d\u0921\u094d\u0938 \u090f\u0923\u094d\u091f\u093f\u0932\u093f\u0938
+territories.MX=\u092e\u0947\u0915\u094d\u0938\u093f\u0915\u094b
+territories.AM=\u0906\u0930\u094d\u092e\u0947\u0928\u093f\u092f\u093e
+territories.005=\u0926\u0915\u094d\u0937\u093f\u0923 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
+territories.MW=\u092e\u093e\u0932\u093e\u0935\u0940
+territories.AL=\u0905\u0932\u094d\u092c\u093e\u0928\u093f\u092f\u093e
+territories.MV=\u092e\u093e\u0932\u094d\u0926\u093f\u092d\u094d\u0938
+territories.003=\u0909\u0924\u094d\u0924\u0930 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
+territories.ZA=\u0926\u0915\u094d\u0937\u093f\u0923 \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.MU=\u092e\u093e\u0909\u0930\u093f\u091f\u0938
+territories.002=\u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.MT=\u092e\u093e\u0932\u094d\u091f\u093e
+territories.AI=\u0906\u0919\u094d\u0917\u0941\u0907\u0932\u093e
+territories.001=\u0935\u093f\u0936\u094d\u0935
+territories.MS=\u092e\u094b\u0928\u094d\u091f\u0938\u0947\u0930\u094d\u0930\u093e\u091f
+territories.MR=\u092e\u093e\u0909\u0930\u093f\u091f\u093e\u0928\u093f\u092f\u093e
+territories.AG=\u090f\u0928\u094d\u091f\u093f\u0917\u0941\u0906 \u0930 \u092c\u093e\u0930\u092c\u0941\u0921\u093e
+territories.MQ=\u092e\u093e\u0930\u094d\u091f\u093f\u0928\u093f\u0915
+territories.AF=\u0905\u092b\u094d\u0917\u093e\u0928\u093f\u0937\u094d\u0924\u093e\u0928
+territories.MP=\u0909\u0924\u094d\u0924\u0930\u0940 \u092e\u093e\u0930\u093f\u0906\u0928\u093e \u091f\u093e\u092a\u0941
+territories.AE=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0905\u0930\u092c \u0907\u092e\u093f\u0930\u093e\u091f\u094d\u0938
+territories.MO=\u092e\u0915\u093e\u0935\u094b
+territories.AD=\u0905\u0928\u094d\u0921\u094b\u0930\u094d\u0930\u093e
+territories.MN=\u092e\u0919\u094d\u0917\u094b\u0932\u093f\u092f\u093e
+territories.MM=\u092e\u094d\u092f\u093e\u0928\u094d\u092e\u093e\u0930
+territories.ML=\u092e\u093e\u0932\u0940
+territories.MK=\u092e\u094d\u092f\u093e\u0915\u0947\u0921\u094b\u0928\u093f\u092f\u093e
+territories.YT=\u092e\u093e\u092f\u094b\u091f\u094d\u091f
+territories.MH=\u092e\u093e\u0930\u094d\u0936\u0932 \u091f\u093e\u092a\u0941
+territories.MG=\u092e\u0921\u093e\u0917\u093e\u0938\u094d\u0915\u0930
+territories.MF=\u0938\u0947\u0928\u094d\u091f \u092e\u093e\u0930\u094d\u091f\u093f\u0928
+territories.ME=\u092e\u094b\u0928\u094d\u091f\u0947\u0928\u0947\u0917\u094d\u0930\u094b
+territories.MD=\u092e\u093e\u0932\u094d\u0921\u094b\u092d\u093e
+territories.MC=\u092e\u094b\u0928\u093e\u0915\u094b
+territories.MA=\u092e\u094b\u0930\u094b\u0915\u094d\u0915\u094b
+territories.YE=\u092f\u0947\u092e\u0947\u0928
+territories.LY=\u0932\u093f\u092c\u093f\u092f\u093e
+territories.LV=\u0932\u093e\u091f\u094d\u092d\u093f\u092f\u093e
+territories.155=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u092f\u0941\u0930\u094b\u092a
+territories.LU=\u0932\u0915\u094d\u091c\u0947\u092e\u092c\u0930\u094d\u0917
+territories.154=\u0909\u0924\u094d\u0924\u0930\u0940 \u092f\u0941\u0930\u094b\u092a
+territories.LT=\u0932\u093f\u0925\u0941\u0905\u0928\u093f\u092f\u093e
+territories.LS=\u0932\u0947\u0938\u094b\u0925\u094b
+territories.LR=\u0932\u093e\u0907\u092c\u0947\u0930\u093f\u092f\u093e
+territories.151=\u092a\u0942\u0930\u094d\u0935\u0940 \u092f\u0941\u0930\u094b\u092a
+territories.150=\u092f\u0941\u0930\u094b\u092a
+territories.LK=\u0936\u094d\u0930\u0940\u0932\u0919\u094d\u0915\u093e
+territories.LI=\u0932\u093f\u090f\u0916\u091f\u0947\u0928\u094d\u0938\u094d\u091f\u093e\u0907\u0928
+territories.LC=\u0938\u0947\u0928\u094d\u091f \u0932\u0941\u0938\u093f\u092f\u093e
+territories.LB=\u0932\u0947\u092c\u0928\u094b\u0928
+territories.LA=\u0932\u093e\u0913\u0938
+territories.KZ=\u0915\u093e\u091c\u093e\u0915\u0938\u094d\u0925\u093e\u0928
+territories.KY=\u0915\u0947\u092f\u092e\u093e\u0928 \u091f\u093e\u092a\u0941
+territories.KW=\u0915\u0941\u0935\u0947\u0924
+territories.145=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u090f\u0936\u093f\u092f\u093e
+territories.143=\u0915\u0947\u0928\u094d\u0926\u094d\u0930\u0940\u092f \u090f\u0936\u093f\u092f\u093e
+territories.142=\u090f\u0936\u093f\u092f\u093e
+territories.KR=\u0926\u0915\u094d\u0937\u093f\u0923 \u0915\u094b\u0930\u093f\u092f\u093e
+territories.KP=\u0909\u0924\u094d\u0924\u0930 \u0915\u094b\u0930\u093f\u092f\u093e
+territories.KN=\u0938\u0947\u0928\u094d\u091f \u0915\u093f\u091f\u094d\u0938 \u0930 \u0928\u0947\u092d\u093f\u0938
+territories.KM=\u0915\u094b\u092e\u094b\u0930\u094b\u0938
+territories.KI=\u0915\u093f\u0930\u093f\u092c\u093e\u091f\u0940
+territories.WS=\u0938\u093e\u092e\u094b\u0906
+territories.KH=\u0915\u092e\u094d\u092c\u094b\u0921\u093f\u092f\u093e
+territories.KG=\u0915\u093f\u0930\u094d\u0917\u093f\u0938\u094d\u0925\u093e\u0928
+territories.KE=\u0915\u0947\u0928\u094d\u092f\u093e
+territories.WF=\u0935\u093e\u0932\u093f\u0938 \u0930 \u092b\u0941\u091f\u0941\u0928\u093e
+territories.JP=\u091c\u093e\u092a\u093e\u0928
+territories.JO=\u091c\u094b\u0930\u094d\u0921\u0928
+territories.JM=\u091c\u092e\u093e\u0907\u0915\u093e
+territories.VU=\u092d\u093e\u0928\u0941\u0906\u0924\u0941
+territories.JE=\u091c\u0930\u094d\u0938\u0940
+territories.VN=\u092d\u093f\u090f\u0924\u0928\u093e\u092e
+territories.VI=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u092d\u0930\u094d\u091c\u093f\u0928 \u091f\u093e\u092a\u0941
+territories.VG=\u092c\u0947\u0932\u093e\u092f\u0924\u0940 \u092d\u0930\u094d\u091c\u093f\u0928 \u091f\u093e\u092a\u0941
+territories.VE=\u092d\u0947\u0928\u0947\u091c\u0941\u090f\u0932\u093e
+territories.VC=\u0938\u0947\u0928\u094d\u091f \u092d\u093f\u0928\u094d\u0938\u0947\u0928\u094d\u091f \u0930 \u0917\u094d\u0930\u0947\u0928\u093e\u0921\u093f\u0928\u094d\u0938
+territories.VA=\u092d\u0947\u091f\u093f\u0915\u0928
+territories.IT=\u0907\u091f\u093e\u0932\u0940
+territories.IS=\u0906\u0907\u0938\u094d\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.IR=\u0907\u0930\u093e\u0928
+territories.IQ=\u0907\u0930\u093e\u0915
+territories.UZ=\u0909\u091c\u094d\u092c\u0947\u0915\u093f\u0938\u094d\u0924\u093e\u0928
+territories.IO=\u092c\u0947\u0932\u093e\u092f\u0924\u0940 \u0939\u093f\u0928\u094d\u0926 \u092e\u0939\u093e\u0938\u093e\u0917\u0930 \u0915\u094d\u0937\u0947\u0924\u094d\u0930
+territories.UY=\u092f\u0941\u0930\u0942\u0917\u0941\u090f
+territories.IN=\u092d\u093e\u0930\u0924
+territories.IM=\u0906\u0907\u091c\u094d\u0932\u0947 \u0905\u092b\u094d \u092e\u094d\u092f\u093e\u0928
+territories.IL=\u0907\u091c\u094d\u0930\u093e\u092f\u0932
+territories.US=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f
+territories.IE=\u0906\u0907\u0930\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.ID=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0936\u093f\u092f\u093e
+territories.UM=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0905\u0932\u094d\u092a \u092c\u093e\u0939\u094d\u092f \u091f\u093e\u092a\u0941
+territories.UG=\u092f\u0941\u0917\u093e\u0923\u094d\u0921\u093e
+territories.UA=\u092f\u0941\u0915\u094d\u0930\u0947\u0928
+territories.HU=\u0939\u0919\u094d\u0917\u0947\u0930\u0940
+territories.HT=\u0939\u0948\u091f\u0940
+territories.HR=\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u093e
+territories.TZ=\u0924\u093e\u0928\u094d\u091c\u093e\u0928\u093f\u092f\u093e
+territories.HN=\u0939\u0928\u094d\u0921\u0941\u0930\u093e\u0938
+territories.HM=\u0939\u0930\u094d\u0921 \u091f\u093e\u092a\u0941 \u0930 \u092e\u094d\u092f\u093e\u0915\u0921\u094b\u0928\u093e\u0932\u094d\u0921 \u091f\u093e\u092a\u0941
+territories.TW=\u0924\u093e\u0907\u0935\u093e\u0928
+territories.TV=\u0924\u0941\u092d\u093e\u0932\u0941
+territories.HK=\u0939\u0919\u0915\u0919
+territories.TT=\u0924\u094d\u0930\u093f\u0928\u093f\u0921\u093e\u0921 \u0930 \u0924\u094b\u092c\u093e\u0917\u094b
+territories.TR=\u091f\u0930\u094d\u0915\u0940
+territories.TO=\u091f\u094b\u0902\u0917\u093e
+territories.TN=\u091f\u0941\u0928\u093f\u0938\u093f\u092f\u093e
+territories.TM=\u0924\u0941\u0930\u094d\u0915\u092e\u0947\u0928\u093f\u0938\u094d\u0924\u093e\u0928
+languages.es=\u0938\u094d\u092a\u094d\u092f\u093e\u0928\u093f\u0936
+languages.ku=\u0915\u0941\u0930\u094d\u0926\u093f\u0936
+languages.eo=\u090f\u0938\u094d\u092a\u0947\u0930\u093e\u0928\u094d\u0924\u094b
+languages.en=\u0905\u0901\u0917\u094d\u0930\u0947\u091c\u0940
+languages.el=\u0917\u094d\u0930\u0940\u0915
+languages.ko=\u0915\u094b\u0930\u093f\u092f\u093e\u0932\u0940
+languages.kn=\u0915\u0928\u094d\u0928\u093e\u0921\u093e
+languages.km=\u0915\u092e\u094d\u092c\u094b\u0921\u0940\u092f\u093e\u0932\u0940
+languages.ka=\u091c\u094b\u0930\u091c\u093f\u092f\u0928
+languages.zh_Hans=\u0938\u0930\u0932\u093f\u0915\u0943\u0924 \u091a\u093f\u0928\u093f\u092f\u093e\u0901
+languages.zh_Hant=\u092a\u0930\u092e\u094d\u092a\u0930\u093e\u0917\u0924 \u091a\u093f\u0928\u093f\u092f\u093e\u0901
+languages.jv=\u091c\u093e\u092d\u093e\u0928\u093f\u091c
+languages.fil=\u092b\u093f\u0932\u093f\u092a\u093f\u0928\u0940
+languages.pt=\u092a\u094b\u0930\u094d\u0924\u0941\u0917\u093e\u0932\u0940
+languages.ps=\u092a\u093e\u0936\u094d\u0924\u094b
+languages.de=\u091c\u0930\u094d\u092e\u0928
+languages.pl=\u092a\u094b\u0932\u093f\u0936
+languages.da=\u0921\u094d\u092f\u093e\u0928\u093f\u0936
+languages.tlh=\u0915\u094d\u0932\u093f\u0919\u094d\u0917\u0928
+languages.ja=\u091c\u093e\u092a\u093e\u0928\u0940
+languages.vi=\u092d\u093f\u092f\u0924\u0928\u093e\u092e\u0940
+languages.cy=\u0935\u0947\u0932\u094d\u0936
+languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
+languages.cs=\u091a\u0947\u0915\u094b\u0938\u094d\u0932\u094b\u092d\u093e\u0915\u093f\u092f\u093e\u0932\u0940
+languages.it=\u0907\u091f\u093e\u0932\u093f\u092f\u0928
+languages.is=\u0906\u0907\u0938\u0932\u094d\u092f\u093e\u0928\u094d\u0921\u093f\u0915
+languages.uz=\u0909\u091c\u093c\u094d\u092c\u0947\u0915
+languages.or=\u0913\u0930\u093f\u092f\u093e
+languages.ur=\u0909\u0930\u094d\u0926\u0941
+languages.ca=\u0915\u094d\u092f\u093e\u091f\u093e\u0932\u0928
+languages.ie=\u0905\u0928\u094d\u0924\u0930\u092d\u093e\u0937\u0940
+languages.id=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0938\u093f\u092f\u093e\u0932\u0940
+languages.uk=\u092f\u0941\u0915\u094d\u0930\u0947\u0928\u0940
+languages.ia=\u0907\u0928\u094d\u091f\u0930\u094d\u0932\u093f\u0919\u094d\u0917\u0941\u0906
+languages.oc=\u0905\u0915\u094d\u0938\u093f\u091f\u0928
+languages.bs=\u092c\u094b\u0938\u094d\u0928\u093f\u092f\u093e\u0932\u0940
+languages.hu=\u0939\u0902\u0917\u094d\u0930\u0940\u092f\u093e\u0932\u0940
+languages.bn=\u092c\u0902\u0917\u093e\u0932\u0940
+languages.pt_PT=\u0906\u0907\u092c\u0947\u0930\u0940, \u092a\u0930\u094d\u0924\u0941\u0917\u093e\u0932\u0940
+languages.hr=\u0915\u094d\u0930\u094b\u090f\u0938\u093f\u092f\u093e\u0932\u0940
+languages.bh=\u092c\u093f\u0939\u093e\u0930\u0940
+languages.bg=\u092c\u0941\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u093e\u0932\u0940
+languages.no=\u0928\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u093e\u0932\u0940
+languages.be=\u092c\u0947\u0932\u093e\u0930\u0941\u0938\u093f\u092f\u093e\u0932\u0940
+languages.hi=\u0939\u093f\u0928\u094d\u0926\u0940
+languages.tr=\u091f\u0930\u094d\u0915\u0940
+languages.nl=\u0921\u091a
+languages.zu=\u091c\u0941\u0932\u0942
+languages.he=\u0939\u093f\u092c\u094d\u0930\u0941
+languages.ne=\u0928\u0947\u092a\u093e\u0932\u0940
+languages.az=\u0905\u091c\u0930\u092c\u0948\u091c\u093e\u0928\u0940
+languages.ti=\u0924\u093f\u0917\u094d\u0930\u0940\u0928\u094d\u092f\u093e
+languages.th=\u0925\u093e\u0908
+languages.te=\u0924\u0947\u0932\u0941\u0917\u0941
+languages.zh=\u091a\u093f\u0928\u093f\u092f\u093e\u0901
+languages.as=\u0906\u0938\u093e\u092e\u0940
+languages.ar=\u0905\u0930\u092c\u0940
+languages.ta=\u0924\u093e\u092e\u093f\u0932
+languages.gu=\u0917\u0941\u091c\u0930\u093e\u0924\u0940
+languages.am=\u0905\u092e\u094d\u0939\u093e\u0930\u093f\u0915
+languages.mt=\u092e\u093e\u0932\u094d\u091f\u093f\u091c
+languages.ms=\u092e\u0932\u093e\u092f\u093e
+languages.sw=\u0938\u094d\u0935\u093e\u0939\u093f\u0932\u0940
+languages.mr=\u092e\u0930\u093e\u0920\u0940
+languages.sv=\u0938\u094d\u0935\u093f\u0921\u093f\u0936
+languages.gl=\u0917\u0932\u093f\u0938\u093f\u092f\u093e\u0932\u0940
+languages.su=\u0938\u0941\u0921\u093e\u0928\u0940
+languages.af=\u0905\u092b\u094d\u0930\u093f\u0915\u093e\u0932\u0940
+languages.mn=\u092e\u0902\u0917\u094b\u0932
+languages.sr=\u0938\u0930\u094d\u092c\u093f\u092f\u093e\u0932\u0940
+languages.sq=\u0905\u0932\u094d\u092c\u0947\u0928\u093f\u092f\u0928
+languages.ml=\u092e\u0932\u092f\u093e\u0932\u092e
+languages.mk=\u092e\u094d\u092f\u093e\u0915\u0947\u0921\u094b\u0928\u093f\u092f\u0928
+languages.so=\u0938\u094b\u092e\u093e\u0932\u0940
+languages.gd=\u0938\u094d\u0915\u091f\u094d\u0938 \u0917\u093e\u090f\u0932\u093f\u0915
+languages.sl=\u0938\u094d\u0932\u094b\u092d\u0947\u0928\u093f\u092f\u093e\u0932\u0940
+languages.sk=\u0938\u094d\u0932\u094b\u092d\u093e\u0915\u093f\u092f\u093e\u0932\u0940
+languages.ga=\u0906\u0907\u0930\u093f\u0936
+languages.si=\u0938\u093f\u0928\u094d\u0939\u093e\u0932\u0940
+languages.pt_BR=\u092a\u0930\u094d\u0924\u0941\u0917\u093e\u0932\u0940 (\u092c\u094d\u0930\u093e\u091c\u093f\u0932\u094d\u092f\u093e\u0932\u0940)
+languages.yi=\u092f\u093f\u0926\u094d\u0926\u093f\u0938
+languages.fy=\u092b\u094d\u0930\u093f\u091c\u0940\u092f\u0928
+languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924
+languages.fr=\u092b\u094d\u0930\u093e\u0902\u0938\u0947\u0932\u0940
+languages.lv=\u0932\u093e\u0924\u094d\u092d\u093f\u092f\u093e\u0932\u0940
+languages.lt=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u093e\u0932\u0940
+languages.fo=\u092b\u093e\u0930\u094b\u0907\u091c
+languages.ru=\u0930\u0938\u093f\u092f\u093e\u0932\u0940
+languages.lo=\u0932\u093e\u0913
+languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
+languages.fi=\u092b\u093f\u0928\u093f\u0936
+languages.ro=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e\u0932\u0940
+languages.fa=\u092b\u093e\u0930\u0938\u0940
+languages.la=\u0932\u094d\u092f\u093e\u091f\u093f\u0928
+languages.xh=\u091d\u094b\u0938\u093e
+languages.eu=\u092c\u093e\u0938\u094d\u0915
+languages.et=\u0907\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u093e\u0932\u0940
+variants.POSIX=\u0915\u092e\u094d\u092a\u094d\u092f\u0941\u091f\u0930
+variants.AREVELA=\u092a\u0942\u0930\u094d\u0935\u0940 \u0906\u0930\u094d\u092e\u0947\u0928\u093f\u092f\u093e\u0932\u0940
index f21481bdcfcd8ff1090ed0b0468297a6eb7a82d5..7f076c7d0621a9e55eabec8ad070352ad6251081 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=.
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;(\u00a4\u00a0#,##0.00)
 currenciesDisplayName.YDD=Jemenitische dinar
+currenciesDisplayName.KES=Keniaanse shilling
 currenciesDisplayName.TWD=Nieuwe Taiwanese dollar
-currenciesDisplayName.KES=Kenyaanse shilling
-currenciesDisplayName.BYB=Wit-Russische nieuwe roebel (1994-1999)
 currenciesDisplayName.LKR=Srilankaanse rupee
-currenciesDisplayName.RWF=Rwandese franc
+currenciesDisplayName.BYB=Wit-Russische nieuwe roebel (1994-1999)
 currenciesDisplayName.TJS=Tadzjikistaanse somoni
-currenciesDisplayName.SDP=Soedanees pond
-currenciesDisplayName.TJR=Tadzjikistaanse roebel
+currenciesDisplayName.RWF=Rwandese franc
 currenciesDisplayName.ERN=Eritrese nakfa
-currenciesDisplayName.AFN=Afghani
+currenciesDisplayName.TJR=Tadzjikistaanse roebel
+currenciesDisplayName.SDP=Soedanees pond
 currenciesDisplayName.GRD=Griekse drachme
+currenciesDisplayName.AFN=Afghani
 currenciesDisplayName.IEP=Iers pond
 currenciesDisplayName.ARS=Argentijnse peso
-currenciesDisplayName.SDD=Soedanese dinar
+currenciesDisplayName.SDG=Soedanese pond
 currenciesDisplayName.ARP=Argentijnse peso (1983-1985)
+currenciesDisplayName.SDD=Soedanese dinar
 currenciesDisplayName.GEL=Georgische lari
-currenciesDisplayName.AFA=Afghani (1927-2002)
 currenciesDisplayName.GEK=Georgische kupon larit
+currenciesDisplayName.AFA=Afghani (AFA)
 currenciesDisplayName.CRC=Costaricaanse col\u00f3n
 currenciesDisplayName.FKP=Falklandeilands pond
 currenciesDisplayName.EEK=Estlandse kroon
-currenciesDisplayName.HKD=Hongkongse dollar
 currenciesDisplayName.MDL=Moldavische leu
-currenciesDisplayName.ARA=Argentijnse austral
+currenciesDisplayName.HKD=Hongkongse dollar
 currenciesDisplayName.IQD=Iraakse dinar
+currenciesDisplayName.ARA=Argentijnse austral
 currenciesDisplayName.SCR=Seychelse rupee
 currenciesDisplayName.VUV=Vanuatuaanse vatu
-currenciesDisplayName.DKK=Deense kroon
 currenciesDisplayName.KPW=Noord-Koreaanse won
-currenciesDisplayName.GQE=Equatoriaal-Guinese ekwele guineana
+currenciesDisplayName.DKK=Deense kroon
 currenciesDisplayName.IDR=Indonesische rupiah
-currenciesDisplayName.LVR=Letse roebel
+currenciesDisplayName.GQE=Equatoriaal-Guinese ekwele guineana
 currenciesDisplayName.SOS=Somalische shilling
+currenciesDisplayName.LVR=Letse roebel
+currenciesDisplayName.EQE=Ekwele
 currenciesDisplayName.AED=Verenigde Arabische Emiraten-dirham
-currenciesDisplayName.BWP=Botswaanse pula
 currenciesDisplayName.LVL=Letse lats
+currenciesDisplayName.BWP=Botswaanse pula
 currenciesDisplayName.RUR=Russische roebel (1991-1998)
 currenciesDisplayName.NIO=Nicaraguaanse  c\u00f3rdoba oro
-currenciesDisplayName.ADP=Andorrese peseta
-currenciesDisplayName.FJD=Fijische dollar
+currenciesDisplayName.XTS=Valutacode voor testdoeleinden
 currenciesDisplayName.MOP=Macause pataca
+currenciesDisplayName.FJD=Fiji dollar
+currenciesDisplayName.ADP=Andorrese peseta
 currenciesDisplayName.RUB=Russische roebel
-currenciesDisplayName.CDF=Congolese franc congolais
+currenciesDisplayName.CDF=Congolese franc
 currenciesDisplayName.NIC=Nicaraguaanse c\u00f3rdoba
 currenciesDisplayName.DJF=Djiboutiaanse franc
-currenciesDisplayName.ECV=Ecuadoraanse unidad de valor constante (UVC)
-currenciesDisplayName.SBD=Salomonseilandse dollar
 currenciesDisplayName.UZS=Oezbekistaanse sum
+currenciesDisplayName.SBD=Salomonseilandse dollar
+currenciesDisplayName.ECV=Ecuadoraanse unidad de valor constante (UVC)
+currenciesDisplayName.LUL=Luxemburgse financi\u00eble franc
 currenciesDisplayName.ECS=Ecuadoraanse sucre
-currenciesDisplayName.PHP=Filipijnse peso
 currenciesDisplayName.THB=Thaise baht
+currenciesDisplayName.PHP=Filipijnse peso
 currenciesDisplayName.LUF=Luxemburgse frank
+currenciesDisplayName.RHD=Rhodesische dollar
+currenciesDisplayName.LUC=Luxemburgse convertibele franc
 currenciesDisplayName.FIM=Finse markka
 currenciesDisplayName.TTD=Trinidad en Tobago-dollar
 currenciesDisplayName.SZL=Swazische lilangeni
 currenciesDisplayName.MNT=Mongoolse tugrik
-currenciesDisplayName.SAR=Saoedische rial
 currenciesDisplayName.UAK=Oekra\u00efense karbovanetz
-currenciesDisplayName.UAH=Oekra\u00efense hryvnia
+currenciesDisplayName.SAR=Saudische riyal
+currenciesDisplayName.COU=Unidad de Valor Real
+currenciesDisplayName.UAH=Oekra\u00efense grivna
 currenciesDisplayName.HUF=Hongaarse forint
-currenciesDisplayName.COP=Colombiaanse peso
 currenciesDisplayName.QAR=Qatarese rial
+currenciesDisplayName.COP=Colombiaanse peso
 currenciesDisplayName.LTT=Litouwse talonas
 currenciesDisplayName.PTE=Portugese escudo
-currenciesDisplayName.AOR=Angolese kwanza reajustado (1995-1999)
 currenciesDisplayName.UYU=Uruguayaanse peso uruguayo
+currenciesDisplayName.AOR=Angolese kwanza reajustado (1995-1999)
 currenciesDisplayName.GBP=Brits pond sterling
-currenciesDisplayName.BIF=Burundese franc
-currenciesDisplayName.INR=Indiase rupee
 currenciesDisplayName.ZRZ=Za\u00efrese za\u00efre
-currenciesDisplayName.AON=Angolese nieuwe kwanza (1990-2000)
-currenciesDisplayName.LTL=Litouwse litas
+currenciesDisplayName.INR=Indiase roepie
+currenciesDisplayName.BIF=Burundese franc
 currenciesDisplayName.XFU=Franse UIC-franc
-currenciesDisplayName.KZT=Kazachstaanse tenge
-currenciesDisplayName.MZM=Mozambikaanse metical
+currenciesDisplayName.MZN=Mozambikaanse metical
+currenciesDisplayName.LTL=Litouwse litas
+currenciesDisplayName.AON=Angolese nieuwe kwanza (1990-2000)
 currenciesDisplayName.UYP=Uruguayaanse peso (1975-1993)
+currenciesDisplayName.MZM=Oude Mozambikaanse metical
+currenciesDisplayName.KZT=Kazachstaanse tenge
 currenciesDisplayName.AOK=Angolese kwanza (1977-1990)
-currenciesDisplayName.BUK=Birmese kyat
 currenciesDisplayName.GNS=Guinese syli
+currenciesDisplayName.BUK=Birmese kyat
 currenciesDisplayName.XFO=Franse gouden franc
 currenciesDisplayName.PGK=Papuaanse kina
+currenciesDisplayName.UYI=Uruguayaanse peso en ge\u00efndexeerde eenheden
 currenciesDisplayName.SYP=Syrisch pond
-currenciesDisplayName.MZE=Mozambikaanse escudo
 currenciesDisplayName.OMR=Omaanse rial
-currenciesDisplayName.NGN=Nigeriaanse naira
+currenciesDisplayName.MZE=Mozambikaanse escudo
 currenciesDisplayName.ZRN=Za\u00efrese nieuwe za\u00efre
-currenciesDisplayName.AOA=Angolese kwanza
+currenciesDisplayName.NGN=Nigeriaanse naira
 currenciesDisplayName.CNY=Chinese yuan renminbi
+currenciesDisplayName.AOA=Angolese kwanza
 currenciesDisplayName.MAF=Marokkaanse franc
+currenciesDisplayName.RSD=Servische dinar
 currenciesDisplayName.GNF=Guinese franc
-currenciesDisplayName.HTG=Ha\u00eftiaanse gourde
 currenciesDisplayName.MAD=Marokkaanse dirham
-currenciesDisplayName.TRY=Nieuwe Turkse lire
+currenciesDisplayName.HTG=Ha\u00eftiaanse gourde
+currenciesDisplayName.TRY=Turkse lira
 currenciesDisplayName.MMK=Myanmarese kyat
+currenciesDisplayName.XRE=RINET-fondsen
 currenciesDisplayName.MYR=Maleisische ringgit
-currenciesDisplayName.LSL=Lesothaanse loti
+currenciesDisplayName.LSM=Maloti
 currenciesDisplayName.XEU=European Currency Unit
-currenciesDisplayName.BHD=Bahreinse dinar
+currenciesDisplayName.LSL=Lesothaanse loti
 currenciesDisplayName.SLL=Sierraleoonse leone
+currenciesDisplayName.BHD=Bahreinse dinar
 currenciesDisplayName.BTN=Bhutaanse ngultrum
-currenciesDisplayName.TRL=Turkse lire
+currenciesDisplayName.TRL=Oude Turkse lira
 currenciesDisplayName.KMF=Comorese franc
-currenciesDisplayName.ANG=Nederlands-Antilliaanse gulden
 currenciesDisplayName.CZK=Tsjechische koruna
-currenciesDisplayName.AZM=Azerbeidzjaanse manat
+currenciesDisplayName.ANG=Nederlands-Antilliaanse gulden
+currenciesDisplayName.AZN=Azerbeidzjaanse manat
+currenciesDisplayName.AZM=Azerbeidzjaanse manat (1993-2006)
 currenciesDisplayName.KYD=Caymaneilandse dollar
 currenciesDisplayName.GMD=Gambiaanse dalasi
+currenciesDisplayName.VEF=Venezolaanse sterke bolivar
 currenciesDisplayName.BGN=Bulgaarse nieuwe lev
-currenciesDisplayName.CAD=Canadese dollar
 currenciesDisplayName.MXV=Mexicaanse unidad de inversion (UDI)
+currenciesDisplayName.CAD=Canadese dollar
 currenciesDisplayName.BGL=Bulgaarse harde lev
 currenciesDisplayName.VEB=Venezolaanse bolivar
 currenciesDisplayName.MLF=Malinese franc
-currenciesDisplayName.ILS=Isra\u00eblische nieuwe shekel
 currenciesDisplayName.MXP=Mexicaanse zilveren peso (1861-1992)
+currenciesDisplayName.ILS=Isra\u00eblische nieuwe shekel
 currenciesDisplayName.PES=Peruaanse sol
-currenciesDisplayName.GYD=Guyaanse dollar
 currenciesDisplayName.MXN=Mexicaanse peso
+currenciesDisplayName.GYD=Guyaanse dollar
 currenciesDisplayName.ILP=Isra\u00eblisch pond
-currenciesDisplayName.SKK=Slowaakse koruna
 currenciesDisplayName.CYP=Cyprisch pond
+currenciesDisplayName.SKK=Slowaakse koruna
 currenciesDisplayName.XDR=Special Drawing Rights
 currenciesDisplayName.PEN=Peruaanse nieuwe sol
 currenciesDisplayName.LRD=Liberiaanse dollar
 currenciesDisplayName.PEI=Peruaanse inti
 currenciesDisplayName.AMD=Armeense dram
 currenciesDisplayName.BSD=Bahamaanse dollar
+currenciesDisplayName.XPT=Platina
 currenciesDisplayName.HRK=Kroatische kuna
 currenciesDisplayName.CLP=Chileense peso
 currenciesDisplayName.HRD=Kroatische dinar
 currenciesDisplayName.XPF=CFP-franc
 currenciesDisplayName.FRF=Franse franc
+currenciesDisplayName.XPD=Palladium
 currenciesDisplayName.BRR=Braziliaanse cruzeiro
 currenciesDisplayName.MKD=Macedonische denar
 currenciesDisplayName.CLF=Chileense unidades de fomento
@@ -164,15 +190,16 @@ currenciesDisplayName.SIT=Sloveense tolar
 currenciesDisplayName.JPY=Japanse yen
 currenciesDisplayName.XOF=CFA-franc BCEAO
 currenciesDisplayName.MVR=Maldivische rufiyaa
-currenciesDisplayName.GWE=Portuguees-Guinese escudo
 currenciesDisplayName.BEF=Belgische frank
+currenciesDisplayName.GWE=Portugees-Guinese escudo
 currenciesDisplayName.TOP=Tongaanse pa\u02bbanga
 currenciesDisplayName.YUD=Joegoslavische harde dinar
 currenciesDisplayName.BEC=Belgische frank (convertibel)
 currenciesDisplayName.SUR=Sovjet-roebel
-currenciesDisplayName.ROL=Roemeense leu
-currenciesDisplayName.DDM=Oost-Duitse ostmark
+currenciesDisplayName.RON=Roemeense leu
+currenciesDisplayName.ROL=Oude Roemeense leu
 currenciesDisplayName.BDT=Bengalese taka
+currenciesDisplayName.DDM=Oost-Duitse ostmark
 currenciesDisplayName.XBD=Europese rekeneenheid (XBD)
 currenciesDisplayName.AWG=Arubaanse gulden
 currenciesDisplayName.XBC=Europese rekeneenheid (XBC)
@@ -190,6 +217,7 @@ currenciesDisplayName.GIP=Gibraltarees pond
 currenciesDisplayName.TND=Tunesische dinar
 currenciesDisplayName.CVE=Kaapverdische escudo
 currenciesDisplayName.UGX=Oegandese shilling
+currenciesDisplayName.XAG=Zilver
 currenciesDisplayName.ZMK=Zambiaanse kwacha
 currenciesDisplayName.JOD=Jordaanse dinar
 currenciesDisplayName.XAF=CFA-franc BEAC
@@ -198,32 +226,36 @@ currenciesDisplayName.UGS=Oegandese shilling (1966-1987)
 currenciesDisplayName.STD=Santomese dobra
 currenciesDisplayName.WST=West-Samoaanse tala
 currenciesDisplayName.KHR=Cambodjaanse riel
-currenciesDisplayName.EUR=Euro
 currenciesDisplayName.DOP=Dominicaanse peso
+currenciesDisplayName.EUR=Euro
 currenciesDisplayName.BOV=Boliviaanse mvdol
 currenciesDisplayName.MTP=Maltees pond
 currenciesDisplayName.USS=Amerikaanse dollar (zelfde dag)
 currenciesDisplayName.BOP=Boliviaanse peso
-currenciesDisplayName.MTL=Maltese lire
 currenciesDisplayName.CUP=Cubaanse peso
+currenciesDisplayName.MTL=Maltese lire
 currenciesDisplayName.TMM=Turkmeense manat
 currenciesDisplayName.USN=Amerikaanse dollar (volgende dag)
+currenciesDisplayName.GHS=Ghanese cedi
 currenciesDisplayName.SGD=Singaporese dollar
 currenciesDisplayName.NZD=Nieuw-Zeelandse dollar
 currenciesDisplayName.USD=Amerikaanse dollar
-currenciesDisplayName.HNL=Hodurese lempira
 currenciesDisplayName.BOB=Boliviano
+currenciesDisplayName.HNL=Hondurese lempira
+currenciesDisplayName.CHW=WIR franc
 currenciesDisplayName.ITL=Italiaanse lire
 currenciesDisplayName.PAB=Panamese balboa
 currenciesDisplayName.GTQ=Guatemalteekse quetzal
-currenciesDisplayName.LAK=Laotiaanse kip
-currenciesDisplayName.GHC=Ghanese cedi
+currenciesDisplayName.XXX=Onbekende of ongeldige munteenheid
 currenciesDisplayName.AUD=Australische dollar
+currenciesDisplayName.GHC=Ghanese cedi (1979-2007)
+currenciesDisplayName.LAK=Laotiaanse kip
 currenciesDisplayName.NAD=Namibische dollar
 currenciesDisplayName.KGS=Kirgizische som
 currenciesDisplayName.MGF=Malagassische franc
-currenciesDisplayName.CHF=Zwitserse franc
 currenciesDisplayName.BBD=Barbadaanse dollar
+currenciesDisplayName.CHF=Zwitserse franc
+currenciesDisplayName.CHE=WIR euro
 currenciesDisplayName.MGA=Malagassische ariary
 currenciesDisplayName.PYG=Paraguayaanse guarani
 currenciesDisplayName.PLZ=Poolse zloty (1950-1995)
@@ -231,16 +263,16 @@ currenciesDisplayName.YER=Jemenitische rial
 currenciesDisplayName.ATS=Oostenrijkse schilling
 currenciesDisplayName.ETB=Ethiopische birr
 currenciesDisplayName.BND=Bruneise dollar
-currenciesDisplayName.JMD=Jamaicaanse dollar
 currenciesDisplayName.EGP=Egyptisch pond
+currenciesDisplayName.JMD=Jamaicaanse dollar
 currenciesDisplayName.PLN=Poolse zloty
 currenciesDisplayName.DZD=Algerijnse dinar
 currenciesDisplayName.ISK=IJslandse kroon
 currenciesDisplayName.SRG=Surinaamse gulden
 currenciesDisplayName.LYD=Libische dinar
 currenciesDisplayName.SRD=Surinaamse dollar
-currenciesDisplayName.BZD=Belizaanse dollar
 currenciesDisplayName.BAM=Bosnische convertibele mark
+currenciesDisplayName.BZD=Belizaanse dollar
 currenciesDisplayName.ESP=Spaanse peseta
 currenciesDisplayName.KRW=Zuid-Koreaanse won
 currenciesDisplayName.NLG=Nederlandse gulden
@@ -250,35 +282,39 @@ currenciesDisplayName.ZWD=Zimbabwaanse dollar
 currenciesDisplayName.SEK=Zweedse kroon
 currenciesDisplayName.CSK=Tsjechoslowaakse harde koruna
 currenciesDisplayName.BYR=Wit-Russische roebel
+currenciesDisplayName.ESB=Spaanse peseta (convertibele account)
 currenciesDisplayName.IRR=Iraanse rial
+currenciesDisplayName.ESA=Spaanse peseta (account A)
 currenciesDisplayName.PKR=Pakistaanse rupee
 currenciesDisplayName.BMD=Bermuda-dollar
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=Oude Servische dinar
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
+currenciesSymbol.RON=L
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.JPY=\u00a5
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
@@ -289,6 +325,7 @@ currenciesSymbol.NOK=NKr
 currenciesSymbol.UGX=U Sh
 currenciesSymbol.BEF=BF
 currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
 currenciesSymbol.SZL=E
 currenciesSymbol.STD=Db
 currenciesSymbol.SAR=SRl
@@ -300,11 +337,12 @@ currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
 currenciesSymbol.DJF=DF
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
 currenciesSymbol.SGD=S$
 currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
 currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
 currenciesSymbol.CVE=CVEsc
@@ -312,10 +350,14 @@ currenciesSymbol.HUF=Ft
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
+currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
+currenciesSymbol.GHS=GH\u00a2
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -323,9 +365,10 @@ currenciesSymbol.MYR=RM
 currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
 currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.BOB=Bs
 currenciesSymbol.CNY=Y
@@ -341,32 +384,34 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
 currenciesSymbol.BZD=BZ$
 currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=jan®feb®mrt®apr®mei®jun®jul®aug®sep®okt®nov®dec®®
-months=januari®februari®maart®april®mei®juni®juli®augustus®september®oktober®november®december®®
-shortWeekdays=®zo®ma®di®wo®do®vr®za®
-weekdays=®zondag®maandag®dinsdag®woensdag®donderdag®vrijdag®zaterdag®
-eras=v. Chr.®n. Chr.®
-shortDateFormat=d-M-yy
-mediumDateFormat=d-MMM-yyyy
+shortMonths=jan\u00aefeb\u00aemrt\u00aeapr\u00aemei\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januari\u00aefebruari\u00aemaart\u00aeapril\u00aemei\u00aejuni\u00aejuli\u00aeaugustus\u00aeseptember\u00aeoktober\u00aenovember\u00aedecember\u00ae\u00ae
+shortWeekdays=\u00aezo\u00aema\u00aedi\u00aewo\u00aedo\u00aevr\u00aeza\u00ae
+weekdays=\u00aezondag\u00aemaandag\u00aedinsdag\u00aewoensdag\u00aedonderdag\u00aevrijdag\u00aezaterdag\u00ae
+eras=v. Chr.\u00aen. Chr.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd-MM-yy
+mediumDateFormat=d MMM yyyy
 longDateFormat=d MMMM yyyy
 fullDateFormat=EEEE d MMMM yyyy
-shortTimeFormat=H:mm
-mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ss z
-fullTimeFormat=H:mm:ss' uur' z
-zoneStrings=Pacific/Honolulu®HST®Hawa\u00ef-standaardtijd®HST®Hawa\u00ef-standaardtijd®©Europe/Bucharest®EET®Oost-Europese standaardtijd®EEST®Oost-Europese zomertijd®©America/Los_Angeles®PST®Pacific-standaardtijd®PDT®Pacific-zomertijd®©America/Denver®MST®Mountain-standaardtijd®MDT®Mountain-zomertijd®©Asia/Jerusalem®IST®Isra\u00eblische standaardtijd®IDT®Isra\u00eblische zomertijd®©America/Phoenix®MST®Mountain-standaardtijd®MST®Mountain-standaardtijd®©America/Chicago®CST®Central-standaardtijd®CDT®Central-zomertijd®©America/Indianapolis®EST®Eastern-standaardtijd®EST®Eastern-standaardtijd®©America/St_Johns®CNT®Newfoundland-standaardtijd®CDT®Newfoundland-zomertijd®©America/Anchorage®AST®Alaska-standaardtijd®ADT®Alaska-zomertijd®©Asia/Shanghai®CTT®Chinese standaardtijd®CDT®Chinese standaardtijd®©Asia/Tokyo®JST®Japanse standaardtijd®JST®Japanse standaardtijd®©Europe/Paris®CET®Midden-Europese standaardtijd®CEST®Midden-Europese zomertijd®©America/New_York®EST®Eastern-standaardtijd®EDT®Eastern-zomertijd®©America/Halifax®AST®Atlantic-standaardtijd®ADT®Atlantic-zomertijd®©Africa/Casablanca®GMT®Greenwich Mean Time®GMT®Greenwich Mean Time®©
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Marshall_Islands\u00aeMarshalleilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeShevchenko-tijd\u00ae\u00aeShevchenko-zomertijd\u00ae\u00ae\u00a9Bangladesh\u00aeBengalese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeMidden-Australische westelijke standaardtijd\u00ae\u00aeMidden-Australische westelijke zomertijd\u00ae\u00ae\u00a9Marquesas\u00aeMarquesaseilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeCentraal-Indonesische tijd\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeEastern-standaardtijd\u00ae\u00aeEastern-zomertijd\u00ae\u00ae\u00a9China\u00aeChinese standaardtijd\u00aeCST (China)\u00aeChinese zomertijd\u00aeCDT (China)\u00ae\u00a9Omsk\u00aeOmsk-tijd\u00ae\u00aeOmsk-zomertijd\u00ae\u00ae\u00a9Guyana\u00aeGuyaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Uzbekistan\u00aeOezbeekse tijd\u00ae\u00aeOezbeekse zomertijd\u00ae\u00ae\u00a9Uruguay\u00aeUruguayaanse tijd\u00ae\u00aeUruguayaanse zomertijd\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeOost-Kazachse standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeKarachi-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeTbilisi-tijd\u00ae\u00aeTbilisi-zomertijd\u00ae\u00ae\u00a9Tashkent\u00aeTasjkent-tijd\u00ae\u00aeTasjkent-zomertijd\u00ae\u00ae\u00a9Changbai\u00aeChangbai-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeChatham-standaardtijd\u00ae\u00aeChatham-zomertijd\u00ae\u00ae\u00a9South_Georgia\u00aeZuid-Georgische tijd\u00aeGST (Z. Georgi\u00eb)\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeFrans-Guyaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeFrunze-tijd\u00ae\u00aeFrunze-zomertijd\u00ae\u00ae\u00a9Europe_Eastern\u00aeOost-Europese standaardtijd\u00ae\u00aeOost-Europese zomertijd\u00ae\u00ae\u00a9Greenland_Eastern\u00aeOost-Groenlandse tijd\u00ae\u00aeOost-Groenlandse zomertijd\u00ae\u00ae\u00a9Dushanbe\u00aeDushanbe-tijd\u00ae\u00aeDushanbe-zomertijd\u00ae\u00ae\u00a9Dacca\u00aeDhaka-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Chile\u00aeChileense tijd\u00ae\u00aeChileense zomertijd\u00ae\u00ae\u00a9Europe_Central\u00aeMidden-Europese standaardtijd\u00ae\u00aeMidden-Europese zomertijd\u00ae\u00ae\u00a9Acre\u00aeAcre-tijd\u00ae\u00aeAcre-zomertijd\u00ae\u00ae\u00a9Arabian\u00aeArabische standaardtijd\u00aeAST (Arabisch)\u00aeArabische zomertijd\u00aeADT (Arabisch)\u00ae\u00a9East_Timor\u00aeOost-Timorese tijd\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeNieuw-Zeelandse standaardtijd\u00ae\u00aeNieuw-Zeelandse zomertijd\u00ae\u00ae\u00a9Indochina\u00aeIndochinese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeKwajaleinse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00aeZuid-Afrikaanse standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9DumontDUrville\u00aeDumont-d'Urville-tijd\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeMountain-standaardtijd\u00ae\u00aeMountain-zomertijd\u00ae\u00ae\u00a9Tokelau\u00aeTokelause tijd\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeEcuadoriaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Hovd\u00aeHovd-tijd\u00ae\u00aeHovd-zomertijd\u00ae\u00ae\u00a9Africa_Central\u00aeCentraal-Afrikaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Phoenix_Islands\u00aePhoenixeilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00aeArmeense tijd\u00aeAMT (Armeni\u00eb)\u00aeArmeense zomertijd\u00aeAMST (Armeni\u00eb)\u00ae\u00a9Tuvalu\u00aeTuvaluaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00aeSachalin-tijd\u00ae\u00aeSachalin-zomertijd\u00ae\u00ae\u00a9Samara\u00aeSamara-tijd\u00ae\u00aeSamara-zomertijd\u00ae\u00ae\u00a9Palau\u00aeBelause tijd\u00ae\u00ae\u00ae\u00ae\u00a9Kosrae\u00aeKosraese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii-standaardtijd\u00ae\u00aeAlaska-Hawaii-zomertijd\u00ae\u00ae\u00a9Pitcairn\u00aePitcairnse tijd\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00aeCentral-standaardtijd\u00ae\u00aeCentral-zomertijd\u00ae\u00ae\u00a9Malaysia\u00aeMaleisische tijd\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeMoskou-standaardtijd\u00ae\u00aeMoskou-zomertijd\u00ae\u00ae\u00a9Vanuatu\u00aeVanuatuaanse tijd\u00ae\u00aeVanuatuaanse zomertijd\u00ae\u00ae\u00a9Kamchatka\u00aePetropavlovsk-Kamtsjatski-tijd\u00ae\u00aePetropavlovsk-Kamtsjatski-zomertijd\u00ae\u00ae\u00a9Cape_Verde\u00aeKaapverdische tijd\u00ae\u00aeKaapverdische zomertijd\u00ae\u00ae\u00a9Aqtobe\u00aeAqt\u00f6be-tijd\u00aeAQTT (Aqt\u00f6be)\u00aeAqt\u00f6be-zomertijd\u00aeAQTST (Aqt\u00f6be)\u00ae\u00a9Falkland\u00aeFalklandeilandse tijd\u00ae\u00aeFalklandeilandse zomertijd\u00ae\u00ae\u00a9Peru\u00aePeruaanse tijd\u00ae\u00aePeruaanse zomertijd\u00ae\u00ae\u00a9Krasnoyarsk\u00aeKrasnojarsk-tijd\u00ae\u00aeKrasnojarsk-zomertijd\u00ae\u00ae\u00a9Argentina\u00aeArgentijnse tijd\u00ae\u00aeArgentijnse zomertijd\u00ae\u00ae\u00a9Qyzylorda\u00aeQyzylorda-tijd\u00ae\u00aeQyzylorda-zomertijd\u00ae\u00ae\u00a9Tahiti\u00aeTahitiaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00aeIndische Oceaan-tijd\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeGreenwich Mean Time\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00aeVladivostok-tijd\u00ae\u00aeVladivostok-zomertijd\u00ae\u00ae\u00a9Atlantic\u00aeAtlantic - standaardtijd\u00ae\u00aeAtlantic - zomertijd\u00ae\u00ae\u00a9Truk\u00aeChuukse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aeRothera-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeWallis en Futunase tijd\u00ae\u00ae\u00ae\u00ae\u00a9Syowa\u00aeSyowa-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00aeKoreaanse standaardtijd\u00ae\u00aeKoreaanse zomertijd\u00ae\u00ae\u00a9Ashkhabad\u00aeAshkhabad-tijd\u00ae\u00aeAshkhabad-zomertijd\u00ae\u00ae\u00a9Australia_Western\u00aeWest-Australische standaardtijd\u00ae\u00aeWest-Australische zomertijd\u00ae\u00ae\u00a9Gilbert_Islands\u00aeGilberteilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Seychelles\u00aeSeychelse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Cocos\u00aeCocoseilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00aeVenezolaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00aeSolomoneilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeParaguayaanse tijd\u00ae\u00aeParaguayaanse zomertijd\u00ae\u00ae\u00a9Yakutsk\u00aeJakoetsk-tijd\u00ae\u00aeJakoetsk-zomertijd\u00ae\u00ae\u00a9Azerbaijan\u00aeAzerbeidzjaanse tijd\u00ae\u00aeAzerbeidzjaanse zomertijd\u00ae\u00ae\u00a9Kizilorda\u00aeKizilorda-tijd\u00ae\u00aeKizilorda-zomertijd\u00ae\u00ae\u00a9Yukon\u00aeYukon-standaardtijd\u00ae\u00aeYukon-zomertijd\u00ae\u00ae\u00a9Dutch_Guiana\u00aeNederlands-Guyaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeJerevan-tijd\u00ae\u00aeJerevan-zomertijd\u00ae\u00ae\u00a9Turkmenistan\u00aeTurkmeense tijd\u00ae\u00aeTurkmeense zomertijd\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundland-standaardtijd\u00ae\u00aeNewfoundland-zomertijd\u00ae\u00ae\u00a9Africa_Eastern\u00aeOost-Afrikaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00aeWake-eilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aePakistaanse tijd\u00ae\u00aePakistaanse zomertijd\u00ae\u00ae\u00a9Singapore\u00aeSingaporese standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybyshev-tijd\u00ae\u00aeKuybyshev-zomertijd\u00ae\u00ae\u00a9Europe_Western\u00aeWest-Europese tijd\u00ae\u00aeWest-Europese zomertijd\u00ae\u00ae\u00a9India\u00aeIndiaase standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeChamorro-standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00aeWest-Groenlandse tijd\u00ae\u00aeWest-Groenlandse zomertijd\u00ae\u00ae\u00a9Bolivia\u00aeBoliviaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeWest-Indonesische tijd\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeGalapagoseilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00aeIraanse standaardtijd\u00ae\u00aeIraanse zomertijd\u00ae\u00ae\u00a9Suriname\u00aeSurinaamse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Vostok\u00aeVostok-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Papua_New_Guinea\u00aePapoea-Nieuw-Guinea-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeMalakka-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBering-standaardtijd\u00ae\u00aeBering-zomertijd\u00ae\u00ae\u00a9Mawson\u00aeMawson-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeGeorgia-tijd\u00ae\u00aeGeorgia-zomertijd\u00ae\u00ae\u00a9Kyrgystan\u00aeKirgizische tijd\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeFranse zuidelijke en Antarctische tijd\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aePohnpeise tijd\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeLanka-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Christmas\u00aeChristmaseilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeFilipijnse tijd\u00ae\u00aeFilipijnse zomertijd\u00ae\u00ae\u00a9Argentina_Western\u00aeWest-Argentijnse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeWolgograd-tijd\u00ae\u00aeWolgograd-zomertijd\u00ae\u00ae\u00a9Hong_Kong\u00aeHongkong-tijd\u00ae\u00aeHongkong-zomertijd\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeWest-Kazachse standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeGuamese standaardtijd\u00aeGST (Guam)\u00ae\u00ae\u00ae\u00a9Amazon\u00aeAmazone-tijd\u00ae\u00aeAmazone-zomertijd\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre en Miquelon-standaardtijd\u00ae\u00aePierre en Miquelon-zomertijd\u00ae\u00ae\u00a9Niue\u00aeNiuese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aeTurkse tijd\u00ae\u00aeTurkse zomertijd\u00ae\u00ae\u00a9Nepal\u00aeNepalese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeCookeilandse tijd\u00ae\u00aeCookeilandse halve zomertijd\u00ae\u00ae\u00a9Macau\u00aeMacause tijd\u00ae\u00aeMacause zomertijd\u00ae\u00ae\u00a9Mauritius\u00aeMauritiaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aeCubaanse standaardtijd\u00aeCST (Cuba)\u00aeCubaanse zomertijd\u00aeCDT (Cuba)\u00ae\u00a9Lord_Howe\u00aeLord Howe-standaardtijd\u00ae\u00aeLord Howe-zomertijd\u00ae\u00ae\u00a9Tonga\u00aeTongaanse tijd\u00ae\u00aeTongaanse zomertijd\u00ae\u00ae\u00a9Maldives\u00aeMaldivische tijd\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00aeUlaanbaatar-tijd\u00ae\u00aeUlaanbaatar-zomertijd\u00ae\u00ae\u00a9Norfolk\u00aeNorfolkeilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Anadyr\u00aeAnadyr-tijd\u00ae\u00aeAnadyr-zomertijd\u00ae\u00ae\u00a9Irkutsk\u00aeIrkoetsk-tijd\u00ae\u00aeIrkoetsk-zomertijd\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeOost-Indonesische tijd\u00ae\u00ae\u00ae\u00ae\u00a9Myanmar\u00aeMyanmarese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Reunion\u00aeR\u00e9unionse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeGolf-standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeAfghaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeKashgar-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeBruneise tijd\u00ae\u00ae\u00ae\u00ae\u00a9Novosibirsk\u00aeNovosibirsk-tijd\u00ae\u00aeNovosibirsk-zomertijd\u00ae\u00ae\u00a9Brasilia\u00aeBraziliaanse tijd\u00ae\u00aeBraziliaanse zomertijd\u00ae\u00ae\u00a9Line_Islands\u00aeLine-eilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9America_Pacific\u00aePacific-standaardtijd\u00ae\u00aePacific-zomertijd\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHawaii-Aleoetische standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeSamarkand-tijd\u00ae\u00aeSamarkand-zomertijd\u00ae\u00ae\u00a9Australia_Central\u00aeMidden-Australische standaardtijd\u00ae\u00aeMidden-Australische zomertijd\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeFijische tijd\u00ae\u00aeFijische zomertijd\u00ae\u00ae\u00a9Israel\u00aeIsra\u00eblische standaardtijd\u00aeIST (Isra\u00ebl)\u00aeIsra\u00eblische zomertijd\u00ae\u00ae\u00a9Yekaterinburg\u00aeJekaterinenburg-tijd\u00ae\u00aeJekaterinenburg-zomertijd\u00ae\u00ae\u00a9Easter\u00aePaaseilandse tijd\u00ae\u00aePaaseilandse zomertijd\u00ae\u00ae\u00a9Almaty\u00aeAlma-Ata-tijd\u00ae\u00aeAlma-Ata-zomertijd\u00ae\u00ae\u00a9Sverdlovsk\u00aeSverdlovsk-tijd\u00ae\u00aeSverdlovsk-zomertijd\u00ae\u00ae\u00a9Africa_Western\u00aeWest-Afrikaanse tijd\u00ae\u00aeWest-Afrikaanse zomertijd\u00ae\u00ae\u00a9Samoa\u00aeSamoaanse standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeBhutaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeOral-tijd\u00ae\u00aeOral-zomertijd\u00ae\u00ae\u00a9Alaska\u00aeAlaska - standaardtijd\u00ae\u00aeAlaska - zomertijd\u00ae\u00ae\u00a9Urumqi\u00ae\u00dcr\u00fcmqi-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Colombia\u00aeColombiaanse tijd\u00ae\u00aeColombiaanse zomertijd\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk-tijd\u00ae\u00aeAktyubinsk-zomertijd\u00ae\u00ae\u00a9North_Mariana\u00aeNoordelijk Mariaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Nauru\u00aeNauruaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Magadan\u00aeMagadan-tijd\u00ae\u00aeMagadan-zomertijd\u00ae\u00ae\u00a9Tajikistan\u00aeTadzjiekse tijd\u00ae\u00ae\u00ae\u00ae\u00a9New_Caledonia\u00aeNieuw-Caledonische tijd\u00ae\u00aeNieuw-Caledonische zomertijd\u00ae\u00ae\u00a9Choibalsan\u00aeChoibalsan-tijd\u00ae\u00aeChoibalsan-zomertijd\u00ae\u00ae\u00a9Azores\u00aeAzoren-tijd\u00ae\u00aeAzoren-zomertijd\u00ae\u00ae\u00a9Aqtau\u00aeAqtau-tijd\u00ae\u00aeAqtau-zomertijd\u00ae\u00ae\u00a9Baku\u00aeBakoe-tijd\u00ae\u00aeBakoe-zomertijd\u00ae\u00ae\u00a9Australia_Eastern\u00aeOost-Australische standaardtijd\u00ae\u00aeOost-Australische zomertijd\u00ae\u00ae\u00a9Davis\u00aeDavis-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Gambier\u00aeGambiereilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Noronha\u00aeFernando de Noronha-tijd\u00ae\u00aeFernando de Noronha-zomertijd\u00ae\u00ae\u00a9Greenland_Central\u00aeCentraal-Groenlandse tijd\u00ae\u00aeCentraal-Groenlandse zomertijd\u00ae\u00ae\u00a9Japan\u00aeJapanse standaardtijd\u00ae\u00aeJapanse zomertijd\u00ae\u00ae\u00a9Borneo\u00aeBorneose tijd\u00ae\u00aeBorneose zomertijd\u00ae\u00ae\u00a9
 territories.TL=Oost-Timor
 territories.TK=Tokelau
 territories.TJ=Tadzjikistan
@@ -379,22 +424,23 @@ territories.TC=Turks- en Caicoseilanden
 territories.GW=Guinee-Bissau
 territories.GU=Guam
 territories.GT=Guatemala
-territories.GS=Zuid-Georgi\u00eb en Zuidelijke Sandwicheilanden
+territories.GS=Zuid-Georgi\u00eb en de Zuidelijke Sandwicheilanden
 territories.GR=Griekenland
 territories.GQ=Equatoriaal-Guinea
 territories.GP=Guadeloupe
 territories.SZ=Swaziland
 territories.SY=Syri\u00eb
-territories.GN=Guinea
+territories.GN=Guinee
 territories.GM=Gambia
 territories.GL=Groenland
 territories.SV=El Salvador
 territories.062=Zuidelijk Centraal-Azi\u00eb
 territories.ST=Sao Tom\u00e9 en Principe
-territories.061=Polynesi\u00eb
 territories.GI=Gibraltar
+territories.061=Polynesi\u00eb
 territories.GH=Ghana
 territories.SR=Suriname
+territories.GG=Guernsey
 territories.GF=Frans-Guyana
 territories.GE=Georgi\u00eb
 territories.SO=Somali\u00eb
@@ -405,46 +451,48 @@ territories.GB=Verenigd Koninkrijk
 territories.SL=Sierra Leone
 territories.GA=Gabon
 territories.SK=Slowakije
-territories.SJ=Svalbard en Jan Mayen
+territories.SJ=Spitsbergen en Jan Mayen
 territories.SI=Sloveni\u00eb
-territories.SH=Saint Helena
+territories.SH=Sint-Helena
 territories.SG=Singapore
 territories.SE=Zweden
 territories.SD=Soedan
 territories.SC=Seychellen
 territories.SB=Salomonseilanden
-territories.SA=Saoedi-Arabi\u00eb
+territories.SA=Saudi-Arabi\u00eb
 territories.FR=Frankrijk
-territories.057=Micronesi\u00eb
 territories.FO=Faer\u00f6er
-territories.FM=Micronesia, Federale Staten van
+territories.057=Micronesische regio
+territories.FM=Micronesia
 territories.RW=Rwanda
 territories.054=Melanesi\u00eb
-territories.053=Australi\u00eb en Nieuw-Zeeland
 territories.FK=Falklandeilanden
-territories.RU=Russische Federatie
+territories.053=Australi\u00eb en Nieuw-Zeeland
+territories.RU=Rusland
 territories.FJ=Fiji
 territories.FI=Finland
+territories.RS=Servi\u00eb
 territories.RO=Roemeni\u00eb
 territories.RE=R\u00e9union
 territories.ET=Ethiopi\u00eb
 territories.ES=Spanje
 territories.ER=Eritrea
-territories.833=Isle of Man
-territories.EH=West-Sahara
+territories.QU=Europese Unie
+territories.EH=Westelijke Sahara
 territories.EG=Egypte
-territories.830=Kanaaleilanden
 territories.EE=Estland
-territories.QO=Oceani\u00eb (overige)
+territories.830=Kanaaleilanden
+territories.QO=Overige gebieden van Oceani\u00eb
 territories.EC=Ecuador
 territories.DZ=Algerije
 territories.QA=Qatar
 territories.039=Zuid-Europa
 territories.DO=Dominicaanse Republiek
 territories.PY=Paraguay
-territories.035=Zuidoost-Azi\u00eb
 territories.DM=Dominica
+territories.035=Zuidoost-Azi\u00eb
 territories.PW=Palau
+territories.034=Zuid-Azi\u00eb
 territories.DK=Denemarken
 territories.DJ=Djibouti
 territories.PT=Portugal
@@ -474,97 +522,104 @@ territories.CN=China
 territories.CM=Kameroen
 territories.CL=Chili
 territories.CK=Cookeilanden
-territories.CI=Ivoorkust
 territories.021=Noord-Amerika
+territories.CI=Ivoorkust
 territories.CH=Zwitserland
-territories.CG=Congo
+territories.CG=Congo, Republiek
 territories.CF=Centraal-Afrikaanse Republiek
 territories.CD=Congo, Democratische Republiek
 territories.CC=Cocoseilanden
 territories.OM=Oman
 territories.CA=Canada
+territories.419=Latijns-Amerika en het Caribisch gebied
 territories.BZ=Belize
 territories.BY=Wit-Rusland
 territories.BW=Botswana
 territories.BV=Bouveteiland
 territories.BT=Bhutan
-territories.BS=Bahama\u2019s
+territories.BS=Bahama's
 territories.BR=Brazili\u00eb
 territories.019=Amerika
 territories.018=Zuidelijk Afrika
 territories.NZ=Nieuw-Zeeland
-territories.BO=Bolivia
 territories.017=Centraal-Afrika
-territories.BN=Brunei Darussalam
-territories.BM=Bermuda
+territories.BO=Bolivia
+territories.BN=Brunei
 territories.015=Noord-Afrika
+territories.BM=Bermuda
 territories.014=Oost-Afrika
+territories.BL=Saint Barth\u00e9lemy
 territories.013=Midden-Amerika
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=West-Afrika
+territories.BI=Burundi
+territories.172=Gemenebest van Onafhankelijke Staten
 territories.BH=Bahrein
 territories.NR=Nauru
 territories.BG=Bulgarije
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgi\u00eb
+territories.ZZ=Onbekend of onjuist gebied
 territories.NO=Noorwegen
 territories.BD=Bangladesh
 territories.BB=Barbados
 territories.ZW=Zimbabwe
 territories.NL=Nederland
-territories.BA=Bosni\u00eb Herzegovina
+territories.BA=Bosni\u00eb en Herzegovina
 territories.NI=Nicaragua
 territories.NG=Nigeria
 territories.NF=Norfolkeiland
 territories.AZ=Azerbeidzjan
 territories.NE=Niger
-territories.AX=Alandeilanden
+territories.AX=\u00c5landseilanden
 territories.NC=Nieuw-Caledoni\u00eb
 territories.AW=Aruba
 territories.ZM=Zambia
 territories.NA=Namibi\u00eb
 territories.AU=Australi\u00eb
 territories.AT=Oostenrijk
-territories.AS=Amerikaans Samoa
+territories.AS=Amerikaans-Samoa
 territories.AR=Argentini\u00eb
-territories.009=Oceani\u00eb
 territories.AQ=Antarctica
+territories.009=Oceani\u00eb
 territories.MZ=Mozambique
 territories.AO=Angola
 territories.MY=Maleisi\u00eb
 territories.AN=Nederlandse Antillen
 territories.MX=Mexico
-territories.005=Zuid-Amerika
 territories.AM=Armeni\u00eb
+territories.005=Zuid-Amerika
 territories.MW=Malawi
 territories.AL=Albani\u00eb
 territories.MV=Maldiven
+territories.003=Noord-Amerika
 territories.ZA=Zuid-Afrika
 territories.MU=Mauritius
 territories.002=Afrika
 territories.MT=Malta
-territories.001=Wereld
 territories.AI=Anguilla
+territories.001=Wereld
 territories.MS=Montserrat
 territories.MR=Mauritani\u00eb
 territories.AG=Antigua en Barbuda
 territories.MQ=Martinique
 territories.AF=Afghanistan
-territories.MP=Noordelijke Marianeneilanden
+territories.MP=Noordelijke Marianen
 territories.AE=Verenigde Arabische Emiraten
-territories.MO=Macao S.A.R. van China
+territories.MO=Macao
 territories.AD=Andorra
 territories.MN=Mongoli\u00eb
 territories.MM=Myanmar
 territories.ML=Mali
-territories.MK=Macedoni\u00eb, Republiek
+territories.MK=Macedoni\u00eb
 territories.YT=Mayotte
 territories.MH=Marshalleilanden
 territories.MG=Madagaskar
-territories.MD=Republiek Moldavi\u00eb
+territories.MF=Sint-Maarten
+territories.ME=Montenegro
+territories.MD=Moldavi\u00eb
 territories.MC=Monaco
 territories.MA=Marokko
 territories.YE=Jemen
@@ -587,6 +642,7 @@ territories.KZ=Kazachstan
 territories.KY=Caymaneilanden
 territories.KW=Koeweit
 territories.145=West-Azi\u00eb
+territories.143=Centraal-Azi\u00eb
 territories.142=Azi\u00eb
 territories.KR=Zuid-Korea
 territories.KP=Noord-Korea
@@ -595,13 +651,14 @@ territories.KM=Comoren
 territories.KI=Kiribati
 territories.WS=Samoa
 territories.KH=Cambodja
-territories.KG=Kirgizstan
+territories.KG=Kirgizi\u00eb
 territories.KE=Kenia
 territories.WF=Wallis en Futuna
 territories.JP=Japan
 territories.JO=Jordani\u00eb
 territories.JM=Jamaica
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=Amerikaanse Maagdeneilanden
 territories.VG=Britse Maagdeneilanden
@@ -616,6 +673,7 @@ territories.UZ=Oezbekistan
 territories.IO=Brits Territorium in de Indische Oceaan
 territories.UY=Uruguay
 territories.IN=India
+territories.IM=Isle of Man
 territories.IL=Isra\u00ebl
 territories.US=Verenigde Staten
 territories.IE=Ierland
@@ -628,17 +686,17 @@ territories.HT=Ha\u00efti
 territories.HR=Kroati\u00eb
 territories.TZ=Tanzania
 territories.HN=Honduras
-territories.HM=Heardeiland en McDonaldeiland
+territories.HM=Heard- en McDonaldeilanden
 territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=Hongkong S.A.R. van China
+territories.HK=Hongkong
 territories.TT=Trinidad en Tobago
 territories.TR=Turkije
 territories.TO=Tonga
 territories.TN=Tunesi\u00eb
 territories.TM=Turkmenistan
-languages.akk=Akkadisch
 languages.gwi=Gwich\u02bcin
+languages.akk=Akkadisch
 languages.eka=Ekajuk
 languages.ijo=Ijo
 languages.xh=Xhosa
@@ -646,20 +704,21 @@ languages.sux=Soemerisch
 languages.sus=Soesoe
 languages.mis=Diverse talen
 languages.loz=Lozi
-languages.tog=Tonga (Nyasa)
+languages.tog=Nyasa Tonga
 languages.pon=Pohnpeiaans
 languages.min=Minangkabau
 languages.suk=Sukuma
 languages.wo=Wolof
-languages.kut=Kutenai
 languages.lol=Mongo
+languages.kut=Kutenai
 languages.mic=Mi'kmaq
 languages.wa=Wallonisch
 languages.kum=Kumyk
 languages.zap=Zapotec
-languages.cus=Koesjitisch (overige)
-languages.doi=Dogri
+languages.ain=Ainu
+languages.cus=Koesjitische taal
 languages.jbo=Lojban
+languages.doi=Dogri
 languages.vo=Volap\u00fck
 languages.oto=Otomi-talen
 languages.vi=Vietnamees
@@ -668,7 +727,7 @@ languages.rar=Rarotongan
 languages.ve=Venda
 languages.rap=Rapanui
 languages.raj=Rajasthani
-languages.ota=Turks, Ottomaans (1500-1928)
+languages.ota=Ottomaans-Turks
 languages.nzi=Nzima
 languages.nap=Napolitaans
 languages.uz=Oezbeeks
@@ -679,16 +738,17 @@ languages.nah=Nahuatl
 languages.ur=Urdu
 languages.fat=Fanti
 languages.uk=Oekra\u00efens
-languages.egy=Egyptisch (klassiek)
-languages.ug=Uighur
+languages.egy=Oudegyptisch
+languages.ug=Oeigoers
 languages.fan=Fang
-languages.ssa=Nilo-Saharam (overige)
-languages.bat=Baltisch (overige)
+languages.ssa=Nilo-Saharaanse taal
 languages.mga=Iers, middel- (900-1200)
+languages.bat=Baltische taal
 languages.nyo=Nyoro
 languages.bas=Basa
 languages.nyn=Nyankole
 languages.nym=Nyamwezi
+languages.gsw=Zwitsers Duits
 languages.hmn=Hmong
 languages.ban=Balinees
 languages.osa=Osage
@@ -698,96 +758,104 @@ languages.bai=Bamileke-talen
 languages.tw=Twi
 languages.srr=Serer
 languages.tli=Tlingit
+languages.tlh=Klingon
 languages.tt=Tataars
 languages.ts=Tsonga
+languages.srn=Sranantongo
 languages.bad=Banda
 languages.tr=Turks
-languages.to=Tonga (Tonga-eilanden)
+languages.to=Tonga
 languages.tn=Tswana
 languages.tl=Tagalog
 languages.tk=Turkmeens
 languages.ti=Tigrinya
 languages.th=Thai
 languages.kru=Kurukh
-languages.tg=Tadzjik
+languages.tg=Tadzjieks
 languages.byn=Blin
 languages.te=Teloegoe
-languages.csb=Kasjoebisch
 languages.kro=Kru
+languages.csb=Kasjoebisch
 languages.ta=Tamil
 languages.tkl=Tokelau
 languages.efi=Efik
 languages.sw=Swahili
 languages.sv=Zweeds
-languages.su=Sundanees
+languages.su=Soendanees
 languages.krc=Karachay-Balkar
-languages.st=Sotho, zuid
-languages.ss=Swati
+languages.st=Zuid-Sotho
+languages.ss=Swazi
 languages.sr=Servisch
 languages.sq=Albanees
 languages.men=Mende
-languages.crp=Creools en Pidgin (overige)
+languages.crp=Creools of Pidgin
 languages.so=Somalisch
 languages.afh=Afrihili
 languages.sn=Shona
 languages.sm=Samoaans
 languages.sl=Sloveens
-languages.grc=Grieks, klassiek (tot 1453)
+languages.grc=Oudgrieks
 languages.sk=Slowaaks
 languages.grb=Grebo
 languages.si=Singalees
-languages.sh=Servokroatisch
-languages.afa=Afro-Aziatisch (overige)
+languages.sh=Servo-Kroatisch
 languages.crh=Krim-Tataars
+languages.afa=Afro-Aziatische taal
 languages.sg=Sango
 languages.se=Noord-Samisch
 languages.sd=Sindhi
 languages.udm=Udmurt
 languages.sc=Sardinisch
-languages.sa=Sanskrit
+languages.sa=Sanskriet
 languages.rw=Kinyarwanda
+languages.nwc=Klassiek Newari
 languages.ru=Russisch
 languages.mdr=Mandar
 languages.ro=Roemeens
 languages.rn=Rundi
-languages.rm=Retoromaans
+languages.rm=Reto-Romaans
+languages.fr_CH=Zwitsers Frans
 languages.mdf=Moksha
 languages.tiv=Tiv
+languages.fr_CA=Canadees Frans
 languages.ady=Adyghe
 languages.zun=Zuni
 languages.kpe=Kpelle
 languages.qu=Quechua
 languages.tig=Tigre
 languages.son=Songhai
-languages.cpp=Creools en Pidgin, op Portugees gebaseerd (overige)
+languages.cpp=op Portugees gebaseerd Creools of Pidgin
+languages.rup=Aromaniaans
 languages.sog=Sogdisch
 languages.ada=Adangme
-languages.cpf=Creools en Pidgin, op Frans gebaseerd (overige)
-languages.hit=Hettitisch
 languages.kos=Kosraeaans
-languages.cpe=Creools en Pidgin, op Engels gebaseerd (overige)
+languages.hit=Hettitisch
+languages.cpf=op Frans gebaseerd Creools of Pidgin
+languages.cpe=op Engels gebaseerd Creools of Pidgin
 languages.him=Himachali
-languages.got=Gothisch
-languages.hil=Hiligaynon
 languages.kok=Konkani
+languages.hil=Hiligaynon
+languages.got=Gothisch
 languages.gor=Gorontalo
 languages.gon=Gondi
 languages.din=Dinka
 languages.nub=Nubische talen
 languages.pt=Portugees
-languages.ps=Pashto
+languages.ps=Pasjtoe
 languages.fur=Friulisch
 languages.phn=Foenicisch
-languages.goh=Duits, oudhoog- (ca. 750-1050)
+languages.de_CH=Zwitsers Hoogduits
+languages.goh=Oudhoogduits
 languages.snk=Soninke
 languages.cop=Koptisch
 languages.yap=Yapees
 languages.ach=Akoli
 languages.yao=Yao
-languages.phi=Filippijns (overige)
+languages.phi=Filippijnse taal
 languages.pl=Pools
 languages.ace=Atjees
 languages.pi=Pali
+languages.pt_PT=Iberisch Portugees
 languages.pa=Punjabi
 languages.bug=Buginees
 languages.iba=Iban
@@ -796,11 +864,11 @@ languages.bua=Buriat
 languages.mas=Masai
 languages.smn=Inari Sami
 languages.os=Ossetisch
-languages.map=Austronesisch (overige)
+languages.map=Austronesische taal
 languages.or=Oriya
 languages.man=Mandingo
 languages.smj=Lule Sami
-languages.smi=Sami-talen (overige)
+languages.smi=Sami-taal
 languages.mak=Makassaars
 languages.om=Oromo
 languages.mai=Maithili
@@ -808,24 +876,27 @@ languages.oj=Ojibwa
 languages.mag=Magahi
 languages.mad=Madurees
 languages.sma=Zuid-Samisch
-languages.oc=Langue d\u2019Oc (na 1500)
+languages.oc=Occitaans
 languages.nso=Noord-Sotho
-languages.btk=Bataks (Indonesi\u00eb)
+languages.btk=Batak
 languages.myv=Erzya
+languages.es_ES=Iberisch Spaans
+languages.de_AT=Oostenrijks Duits
 languages.dgr=Dogrib
 languages.ny=Nyanja
 languages.myn=Mayan-talen
 languages.nv=Navajo
 languages.kmb=Kimbundu
-languages.nr=Ndebele, zuid-
+languages.nr=Zuid-Ndbele
 languages.gmh=Duits, middelhoog- (ca. 1050-1500)
 languages.no=Noors
-languages.nn=Noors - Nynorsk
+languages.nn=Nieuwnoors
 languages.nl=Nederlands
+languages.root=Root
 languages.ng=Ndonga
-languages.sla=Slavisch (overige)
+languages.sla=Slavische taal
 languages.ne=Nepalees
-languages.nd=Ndebele, noord-
+languages.nd=Noord-Ndbele
 languages.cmc=Chamische talen
 languages.tet=Tetum
 languages.nb=Noors - Bokm\u00e5l
@@ -835,10 +906,10 @@ languages.tem=Timne
 languages.my=Birmees
 languages.lez=Lezgisch
 languages.mt=Maltees
-languages.peo=Perzisch, oud- (ca. 600-400 v. Chr.)
+languages.peo=Oudperzisch
 languages.ms=Maleis
 languages.mr=Marathi
-languages.fro=Frans, oud- (ca. 842-1400)
+languages.fro=Oudfrans
 languages.mo=Moldavisch
 languages.mn=Mongools
 languages.frm=Frans, middel- (ca. 1400-1800)
@@ -847,15 +918,16 @@ languages.jrb=Judeo-Arabisch
 languages.mk=Macedonisch
 languages.mi=Maori
 languages.mh=Marshallees
-languages.mg=Malagasisch
+languages.mg=Malagasi
 languages.mwr=Marwari
 languages.bra=Braj
-languages.lv=Letlands
-languages.den=Slave (Athapascan)
+languages.mwl=Mirandees
+languages.den=Slavey
+languages.lv=Lets
 languages.lu=Luba-Katanga
-languages.lt=Litouws
 languages.del=Delaware
-languages.lo=Lao
+languages.lt=Litouws
+languages.lo=Laotiaans
 languages.ln=Lingala
 languages.li=Limburgs
 languages.ewo=Ewondo
@@ -864,18 +936,19 @@ languages.lb=Luxemburgs
 languages.la=Latijn
 languages.jpr=Judeo-Perzisch
 languages.vot=Votisch
-languages.sit=Sino-Tibetaans (overige)
+languages.sit=Sino-Tibetaanse taal
 languages.ky=Kirgizisch
 languages.kw=Cornish
 languages.kv=Komi
 languages.ku=Koerdisch
 languages.sio=Siouaanse talen
-languages.ks=Kashmiri
+languages.ks=Kasjmiri
 languages.kr=Kanuri
 languages.awa=Awadhi
 languages.ko=Koreaans
 languages.kn=Kannada
 languages.km=Khmer
+languages.en_GB=Brits Engels
 languages.kl=Kalaallisut
 languages.kk=Kazachs
 languages.rom=Romani
@@ -883,10 +956,10 @@ languages.kj=Kuanyama
 languages.sid=Sidamo
 languages.ki=Kikuyu
 languages.kg=Kongo
-languages.non=Noors, oud-
+languages.non=Oudnoors
 languages.ka=Georgisch
 languages.mus=Creek
-languages.roa=Romaans (overige)
+languages.roa=Romaanse taal
 languages.nog=Nogai
 languages.mun=Munda-talen
 languages.mul=Meerdere talen
@@ -899,46 +972,46 @@ languages.xal=Kalmyk
 languages.aus=Australische talen
 languages.kho=Khotanees
 languages.ja=Japans
-languages.khi=Khoisan (overige)
+languages.khi=Khoisan-taal
 languages.pau=Palauaans
 languages.chy=Cheyenne
-languages.tai=Tai (overige)
+languages.tai=Tai-taal
 languages.iu=Inuktitut
 languages.pap=Papiamento
 languages.it=Italiaans
 languages.sgn=Gebarentalen
-languages.kha=Khasi
 languages.is=IJslands
+languages.kha=Khasi
 languages.chr=Cherokee
 languages.pam=Pampanga
 languages.pal=Pahlavi
 languages.chp=Chipewyan
-languages.cho=Choctaw
 languages.io=Ido
+languages.cho=Choctaw
 languages.chn=Chinook-jargon
 languages.chm=Mari
 languages.tyv=Tuvinisch
-languages.bnt=Bantoe (overige)
+languages.bnt=Bantoetaal
 languages.pag=Pangasinan
-languages.chk=Chuukees
 languages.ik=Inupiaq
-languages.haw=Hawa\u00efaans
+languages.chk=Chuukees
 languages.ii=Sichuan Yi
+languages.haw=Hawa\u00efaans
 languages.lam=Lamba
-languages.chg=Chagatai
 languages.ig=Igbo
-languages.sga=Iers, oud- (tot 900)
-languages.paa=Papoeaas (overige)
+languages.chg=Chagatai
+languages.sga=Oudiers
+languages.paa=Papoeataal
 languages.ie=Interlingue
 languages.id=Indonesisch
 languages.lah=Lahnda
-languages.chb=Chibcha
 languages.day=Dajak
+languages.chb=Chibcha
 languages.ia=Interlingua
 languages.lad=Ladino
-languages.dar=Dargwa
-languages.hai=Haida
 languages.hz=Herero
+languages.hai=Haida
+languages.dar=Dargwa
 languages.hy=Armeens
 languages.ath=Athapascaanse talen
 languages.hu=Hongaars
@@ -950,62 +1023,73 @@ languages.hi=Hindi
 languages.dyu=Dyula
 languages.he=Hebreeuws
 languages.ast=Asturisch
+languages.kfo=Koro
 languages.ha=Hausa
 languages.wen=Sorbische talen
 languages.gv=Manx
 languages.gu=Gujarati
-languages.sem=Semitisch (overige)
+languages.sem=Semitische taal
 languages.sel=Selkup
 languages.iro=Irokese talen
 languages.gn=Guarani
 languages.gl=Galicisch
+languages.en_CA=Canadees Engels
 languages.arw=Arawak
-languages.gd=Schots Gaelic
-languages.art=Kunstmatige talen (overige)
 languages.gez=Geez
-languages.ira=Iraans (overige)
+languages.art=kunstmatige taal
+languages.gd=Schots-Gaelisch
+languages.ira=Iraanse taal
 languages.ga=Iers
 languages.arp=Arapaho
 languages.arn=Araukaans
 languages.fy=Fries
 languages.bla=Siksika
-languages.gem=Germaans (overige)
+languages.gem=Germaanse taal
 languages.ypk=Yupik-talen
-languages.fr=Frans
 languages.arc=Aramees
+languages.fr=Frans
 languages.fo=Faer\u00f6ers
-languages.cel=Keltisch (overige)
+languages.cel=Keltische taal
 languages.fj=Fijisch
 languages.fi=Fins
 languages.ff=Fulah
 languages.tvl=Tuvalu
 languages.ceb=Cebuano
 languages.fa=Perzisch
+languages.en_AU=Australisch Engels
+languages.zh_Hans=Vereenvoudigd Chinees
+languages.zh_Hant=Traditioneel Chinees
 languages.eu=Baskisch
 languages.sco=Schots
 languages.et=Estlands
+languages.scn=Siciliaans
 languages.es=Spaans
 languages.eo=Esperanto
 languages.en=Engels
 languages.el=Grieks
-languages.tut=Alta\u00efsch (overige)
+languages.tut=Alta\u00efsche taal
 languages.niu=Niueaans
 languages.tup=Tupi-talen
 languages.ee=Ewe
 languages.tum=Toemboeka
+languages.nl_BE=Vlaams
+languages.es_419=Latijns-Amerikaans Spaans
 languages.mos=Mossi
 languages.dz=Dzongkha
-languages.nic=Niger-Kordofanisch (overige)
-languages.dv=Divehi
-languages.fiu=Finoegrische talen (overige)
+languages.kcg=Tyap
+languages.nic=Niger-Kordofanische taal
 languages.lus=Lushai
+languages.fiu=Finoegrische taal
+languages.dv=Divehi
 languages.nia=Nias
 languages.moh=Mohawk
-languages.luo=Luo (Kenia en Tanzania)
+languages.luo=Luo
 languages.lun=Lunda
 languages.apa=Apache-talen
+languages.fil=Filipijns
 languages.lui=Luiseno
 languages.hup=Hupa
+languages.cch=Atsam
 languages.bin=Bini
 languages.de=Duits
 languages.lua=Luba-Lulua
@@ -1021,8 +1105,8 @@ languages.wak=Wakashan-talen
 languages.sat=Santali
 languages.cy=Welsh
 languages.sas=Sasak
-languages.cv=Tsjoevasjisch
 languages.kbd=Kabardisch
+languages.cv=Tsjoevasjisch
 languages.cu=Kerkslavisch
 languages.mni=Manipoeri
 languages.cs=Tsjechisch
@@ -1031,57 +1115,59 @@ languages.cr=Cree
 languages.sal=Salishan-talen
 languages.dua=Duala
 languages.co=Corsicaans
-languages.sai=Zuid-Amerikaans Indiaans (overige)
+languages.sai=Zuid-Amerikaans Indiaanse taal
 languages.mnc=Mantsjoe
 languages.sah=Yakut
-languages.gba=Gbaya
-languages.inh=Ingoesj
 languages.kaw=Kawi
+languages.inh=Ingoesj
+languages.gba=Gbaya
 languages.sad=Sandawe
 languages.ch=Chamorro
+languages.ine=Indo-Europese taal
 languages.bho=Bhojpuri
-languages.ine=Indo-Europees (overige)
 languages.enm=Engels, middel- (1100-1500)
-languages.ce=Chechen
-languages.inc=Indisch (overige)
 languages.kar=Karen
+languages.inc=Indische taal
+languages.ce=Chechen
 languages.gay=Gayo
 languages.ca=Catalaans
 languages.umb=Umbundu
 languages.syr=Syriac
 languages.kam=Kamba
 languages.tsi=Tsimshian
-languages.ang=Engels, oud (ca. 450-1100)
-languages.cau=Kaukasisch (overige)
+languages.kaj=Jju
+languages.ang=Oudengels
 languages.kac=Kachin
+languages.cau=Kaukasische taal
 languages.kab=Kabyle
-languages.bs=Bosnisch
 languages.kaa=Karakalpaks
-languages.br=Bretons
+languages.bs=Bosnisch
 languages.car=Caribisch
+languages.br=Bretons
 languages.bo=Tibetaans
-languages.bn=Bengalees
+languages.bn=Bengaals
 languages.bm=Bambara
 languages.gaa=Ga
+languages.cai=Midden-Amerikaans Indiaanse taal
 languages.bi=Bislama
-languages.cai=Midden-Amerikaans Indiaans (overige)
 languages.bh=Bihari
 languages.bg=Bulgaars
 languages.be=Wit-Russisch
+languages.pt_BR=Braziliaans Portugees
 languages.cad=Caddo
 languages.ba=Basjkiers
 languages.zu=Zulu
 languages.zen=Zenaga
-languages.pro=Proven\u00e7aals, oud- (tot 1500)
+languages.pro=Oudproven\u00e7aals
 languages.hsb=Oppersorbisch
 languages.az=Azerbeidzjaans
 languages.ay=Aymara
 languages.av=Avarisch
 languages.as=Assamees
-languages.ar=Arabisch
 languages.dsb=Nedersorbisch
-languages.elx=Elamitisch
+languages.ar=Arabisch
 languages.ilo=Iloko
+languages.elx=Elamitisch
 languages.zh=Chinees
 languages.an=Aragonees
 languages.pra=Prakrit-talen
@@ -1089,19 +1175,39 @@ languages.am=Amhaars
 languages.new=Newari
 languages.ak=Akan
 languages.za=Zhuang
+languages.en_US=Amerikaans Engels
 languages.af=Afrikaans
 languages.ae=Avestisch
+languages.alt=Zuid-Alta\u00efsch
 languages.ab=Abchazisch
 languages.aa=Afar
-languages.yo=Joruba
+languages.yo=Yoruba
 languages.alg=Algonkium-talen
 languages.ale=Aleut
-languages.mkh=Mon-Khmer (overige)
+languages.mkh=Mon-Khmer-taal
 languages.yi=Jiddisch
-languages.dra=Dravidisch (overige)
-languages.ber=Berber (overige)
+languages.dra=Dravidische taal
+languages.ber=Berber
 languages.nds=Laagduits
 languages.bem=Bemba
 languages.bej=Beja
 languages.tpi=Tok Pisin
-variants.REVISED=Gewijzigd
+variants.POSIX=Computer
+variants.AREVMDA=West-Armeens
+variants.1996=Duitse spelling van 1996
+variants.SOLBA=Stolvizza/Solbica-dialect
+variants.NEDIS=Natisone-dialect
+variants.1901=traditionele Duitse spelling
+variants.FONUPA=Oeralisch Fonetisch Alfabet
+variants.OSOJS=Oseacco/Osojane-dialect
+variants.REVISED=gewijzigde spelling
+variants.NJIVA=Gniva/Njiva-dialect
+variants.FONIPA=Internationaal Fonetisch Alfabet
+variants.BISKE=San Giorgio/Bila-dialect
+variants.SCOUSE=Liverpools
+variants.SAAHO=Saho
+variants.MONOTON=monotonaal
+variants.ROZAJ=Resiaans
+variants.POLYTON=polytonaal
+variants.AREVELA=Oost-Armeens
+variants.BOONT=Boontling
index 9c0abf4f1592202e4eeaa5f90cbd010b012dd79e..fe4a4fe81e1f9b693a66fd587f8479e86da7b27f 100644 (file)
@@ -5,12 +5,14 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
 shortDateFormat=d/MM/yy
-mediumDateFormat=d-MMM-yy
-shortTimeFormat=HH:mm
-mediumTimeFormat=HH:mm:ss
-longTimeFormat=HH:mm:ss z
-fullTimeFormat=HH.mm' u. 'z
+mediumDateFormat=d-MMM-yyyy
+territories.SB=Salomoneilanden
+territories.MV=Malediven
+territories.IM=Het Eiland Man
+territories.013=Centraal-Amerika
+languages.oc=Occitaans (na 1500); Proven\u00e7aals
+languages.ssa=Nilo-Saharaans
+languages.sh=Servo-Kroatisch
+languages.lv=Lets
index 934b6c3fe3c18b41a588f52ea80af9c9baaaa6b0..e63810426533946f9760c5b4894db55a8ee7f783 100644 (file)
@@ -5,23 +5,93 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=\u00d710^
+infinity=\u221e
+minusSign=\u2212
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=\u00a0
-currenciesDisplayName.INR=Indiske rupi
-currenciesDisplayName.NOK=Norske kroner
-currenciesDisplayName.RUB=Russiske rubler
-currenciesDisplayName.CNY=Kinesiske yuan renminbi
-currenciesDisplayName.GBP=Britiske pund
-currenciesDisplayName.BRL=Brasilianske real
-currenciesDisplayName.USD=Amerikanske dollar
-shortMonths=jan.®feb.®mars®april®mai®juni®juli®aug.®sep.®okt.®nov.®des.®®
-months=januar®februar®mars®april®mai®juni®juli®august®september®oktober®november®desember®®
-shortWeekdays=®su.®m\u00e5.®ty.®on.®to.®fr.®la.®
-weekdays=®sundag®m\u00e5ndag®tysdag®onsdag®torsdag®fredag®laurdag®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=f.Kr.®e.Kr.®
-ampms=a.m.®p.m.®
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.AOA=angolsk kwanza
+currenciesDisplayName.AUD=australsk dollar
+currenciesDisplayName.ARA=argentisk austral
+currenciesDisplayName.BEL=belgisk franc (finansiell)
+currenciesDisplayName.RUB=russisk rubel
+currenciesDisplayName.BEF=belgisk franc
+currenciesDisplayName.BBD=barbadisk dollar
+currenciesDisplayName.BTN=bhutansk ngultrum
+currenciesDisplayName.BEC=belgisk franc (konvertibel)
+currenciesDisplayName.BHD=bahrainsk dinar
+currenciesDisplayName.XXX=ukjend eller ugyldig valuta
+currenciesDisplayName.BND=bruneisk dollar
+currenciesDisplayName.ATS=austerriksk schilling
+currenciesDisplayName.INR=indisk rupi
+currenciesDisplayName.AED=UAE dirham
+currenciesDisplayName.STD=Sao Tome og Principe-dobra
+currenciesDisplayName.ANG=nederlansk antillegylden
+currenciesDisplayName.BDT=bangladeshisk taka
+currenciesDisplayName.XOF=CFA franc BCEAO
+currenciesDisplayName.AZM=aserbaijansk manat
+currenciesDisplayName.AWG=arubisk gylden
+currenciesDisplayName.BAM=bosnisk-hercegovinsk mark (konvertibel)
+currenciesDisplayName.USD=amerikansk dollar
+currenciesDisplayName.BGN=bulgarsk ny lev
+currenciesDisplayName.BGL=bulgarsk hard lev
+currenciesDisplayName.JPY=japansk yen
+currenciesDisplayName.GBP=britisk pund sterling
+currenciesDisplayName.NOK=norsk krone
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BAD=bosnisk-hercegovinsk dinar
+currenciesDisplayName.ADP=andorransk peseta
+currenciesDisplayName.CVE=kappverdisk escudo
+currenciesDisplayName.ZWD=zimbabwisk dollar
+currenciesDisplayName.ZAR=s\u00f8rafrikansk rand
+currenciesDisplayName.BMD=bermudisk dollar
+currenciesDisplayName.GWP=Guinea-Bissau-peso
+currenciesDisplayName.BSD=bahamisk dollar
+currenciesDisplayName.ZAL=s\u00f8rafrikansk rand (finansiell)
+currenciesDisplayName.AMD=armensk dram
+currenciesDisplayName.ZMK=zambisk kwacha
+currenciesDisplayName.BOV=bolivisk mvdol
+currenciesDisplayName.BOP=bolivisk peso
+currenciesDisplayName.BRR=brasiliansk cruzeiro
+currenciesDisplayName.BRN=brasiliansk cruzado novo
+currenciesDisplayName.BIF=burundisk franc
+currenciesDisplayName.BRL=brasiliansk real
+currenciesDisplayName.AFN=afghani
+currenciesDisplayName.AOR=angolsk kwanza reajustado (1995-1999)
+currenciesDisplayName.BUK=burmesisk kyat
+currenciesDisplayName.ARS=argentinsk peso
+currenciesDisplayName.CNY=kinesisk yuan renminbi
+currenciesDisplayName.DKK=dansk krone
+currenciesDisplayName.ALL=albansk lek
+currenciesDisplayName.AON=angolsk ny kwanza (1990-2000)
+currenciesDisplayName.ARP=argentinsk peso (1983-1985)
+currenciesDisplayName.BRE=brasiliansk cruzeiro (1990-1993)
+currenciesDisplayName.ZRZ=zairisk zaire
+currenciesDisplayName.BOB=boliviano
+currenciesDisplayName.BRC=brasiliansk cruzado
+currenciesDisplayName.MZN=mosambikisk metical
+currenciesDisplayName.AOK=angolsk kwanza (1977-1990)
+currenciesDisplayName.BRB=brasiliansk cruzeiro novo (1967-1986)
+currenciesDisplayName.AFA=afghani (1927-2002)
+currenciesDisplayName.ZRN=zairisk ny zaire
+currenciesSymbol.NOK=kr
+currenciesSymbol.INR=INR
+currenciesSymbol.JPY=JPY
+currenciesSymbol.EUR=EUR
+currenciesSymbol.GBP=GBP
+currenciesSymbol.BRL=BRL
+currenciesSymbol.USD=USD
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemai\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedes\u00ae\u00ae
+months=januar\u00aefebruar\u00aemars\u00aeapril\u00aemai\u00aejuni\u00aejuli\u00aeaugust\u00aeseptember\u00aeoktober\u00aenovember\u00aedesember\u00ae\u00ae
+shortWeekdays=\u00ae\u00aem\u00e5.\u00ae\u00ae\u00ae\u00ae\u00aela.\u00ae
+weekdays=\u00aes\u00f8ndag\u00aem\u00e5ndag\u00aetysdag\u00aeonsdag\u00aetorsdag\u00aefredag\u00aelaurdag\u00ae
+eras=f.Kr.\u00aee.Kr.\u00ae
+ampms=formiddag\u00aeettermiddag\u00ae
 shortDateFormat=dd.MM.yy
 mediumDateFormat=d. MMM. yyyy
 longDateFormat=d. MMMM yyyy
@@ -29,20 +99,21 @@ fullDateFormat=EEEE d. MMMM yyyy
 shortTimeFormat=HH.mm
 mediumTimeFormat=HH.mm.ss
 longTimeFormat=HH.mm.ss z
-fullTimeFormat='kl. 'HH.mm.ss z
-territories.TL=\u00d8st-Timor
+fullTimeFormat='kl'. HH.mm.ss z
+zoneStrings=Australia_Eastern\u00aeaustaustralsk standardtid\u00ae\u00aeaustaustralsk sommartid\u00ae\u00ae\u00a9Africa_Western\u00aevestafrikansk tid\u00ae\u00aevestafrikansk sommartid\u00ae\u00ae\u00a9Africa_Southern\u00aes\u00f8rafrikansk standardtid\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00aeaustafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Eastern\u00aeausteuropeisk tid\u00ae\u00aeausteuropeisk sommartid\u00ae\u00ae\u00a9Europe_Central\u00aesentraleuropeisk tid\u00ae\u00aesentraleuropeisk sommartid\u00ae\u00ae\u00a9Australia_Western\u00aevestaustralsk standardtid\u00ae\u00aevestaustralsk sommartid\u00ae\u00ae\u00a9Africa_Central\u00aesentralafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeGreenwich middeltid\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aevest-sentralaustralsk standardtid\u00ae\u00aevest-sentralaustralsk sommartid\u00ae\u00ae\u00a9Europe_Western\u00aevesteuropeisk tid\u00ae\u00aevesteuropeisk sommartid\u00ae\u00ae\u00a9Australia_Central\u00aesentralaustralsk standardtid\u00ae\u00aesentralaustralsk sommartid\u00ae\u00ae\u00a9
+territories.TL=Aust-Timor
 territories.TK=Tokelau
 territories.TJ=Tadsjikistan
 territories.TH=Thailand
 territories.TG=Togo
-territories.TF=Franske s\u00f8romr\u00e5der
+territories.TF=Franske s\u00f8romr\u00e5de
 territories.GY=Guyana
 territories.TD=Tchad
-territories.TC=Turks- og Caicos\u00f8yene
+territories.TC=Turks- og Caicos\u00f8yane
 territories.GW=Guinea-Bissau
 territories.GU=Guam
 territories.GT=Guatemala
-territories.GS=S\u00f8r-Georgia og S\u00f8r-Sandwich-\u00f8yene
+territories.GS=S\u00f8r-Georgia og S\u00f8r-Sandwich-\u00f8yane
 territories.GR=Hellas
 territories.GQ=Ekvatorial-Guinea
 territories.GP=Guadeloupe
@@ -53,11 +124,12 @@ territories.GM=Gambia
 territories.GL=Gr\u00f8nland
 territories.SV=El Salvador
 territories.062=S\u00f8rlege Sentral-Asia
-territories.ST=Sao Tome og Principe
-territories.061=Polynesia
+territories.ST=S\u00e3o Tom\u00e9 og Pr\u00edncipe
 territories.GI=Gibraltar
+territories.061=Polynesia
 territories.GH=Ghana
 territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Fransk Guyana
 territories.GE=Georgia
 territories.SO=Somalia
@@ -74,40 +146,42 @@ territories.SH=Saint Helena
 territories.SG=Singapore
 territories.SE=Sverige
 territories.SD=Sudan
-territories.SC=Seychellene
-territories.SB=Salomon\u00f8yene
+territories.SC=Seychellane
+territories.SB=Salomon\u00f8yane
 territories.SA=Saudi Arabia
 territories.FR=Frankrike
+territories.FO=F\u00e6r\u00f8yane
 territories.057=Mikronesia
-territories.FO=F\u00e6r\u00f8yene
 territories.FM=Mikronesiaf\u00f8derasjonen
 territories.RW=Rwanda
 territories.054=Melanesia
+territories.FK=Falklands\u00f8yane
 territories.053=Australia og New Zealand
-territories.FK=Falklands\u00f8yene (Malvinas)
-territories.RU=Den russiske f\u00f8derasjon
+territories.RU=Russland
 territories.FJ=Fiji
 territories.FI=Finland
+territories.RS=Serbia
 territories.RO=Romania
-territories.RE=Reunion
+territories.RE=R\u00e9union
 territories.ET=Etiopia
 territories.ES=Spania
 territories.ER=Eritrea
-territories.833=Man
+territories.QU=Den europeiske unionen
 territories.EH=Vest-Sahara
 territories.EG=Egypt
-territories.830=Kanal\u00f8yene
 territories.EE=Estland
+territories.830=Kanal\u00f8yane
 territories.QO=Ytre Oseania
 territories.EC=Ecuador
 territories.DZ=Algerie
 territories.QA=Qatar
 territories.039=S\u00f8r-Europa
-territories.DO=Den dominikanske republikk
+territories.DO=Den dominikanske republikken
 territories.PY=Paraguay
-territories.035=S\u00f8raust-Asia
 territories.DM=Dominica
+territories.035=S\u00f8raust-Asia
 territories.PW=Palau
+territories.034=S\u00f8r-Asia
 territories.DK=Danmark
 territories.DJ=Djibouti
 territories.PT=Portugal
@@ -119,7 +193,7 @@ territories.PN=Pitcairn
 territories.PM=St. Pierre og Miquelon
 territories.PL=Polen
 territories.PK=Pakistan
-territories.PH=Filippinene
+territories.PH=Filippinane
 territories.PG=Papua Ny-Guinea
 territories.PF=Fransk Polynesia
 territories.CZ=Tsjekkia
@@ -129,25 +203,26 @@ territories.CX=Christmas\u00f8ya
 territories.CV=Kapp Verde
 territories.PA=Panama
 territories.CU=Cuba
-territories.CS=Serbia Montenegro
+territories.CS=Serbia og Montenegro
 territories.CR=Costa Rica
-territories.029=Karibiske hav
+territories.029=Karibia
 territories.CO=Colombia
 territories.CN=Kina
 territories.CM=Kamerun
 territories.CL=Chile
-territories.CK=Cook\u00f8yene
-territories.CI=Elfenbenskysten
-territories.021=Nord-Amerika
+territories.CK=Cook\u00f8yane
+territories.021=nordlege Amerika
+territories.CI=Elfenbeinskysten
 territories.CH=Sveits
-territories.CG=Kongo
-territories.CF=Den sentralafrikanske republikk
-territories.CD=Kongo, Den demokratiske republikken
-territories.CC=Kokos\u00f8yene (Keeling\u00f8yene)
+territories.CG=Kongo-Brazzaville
+territories.CF=Den sentralafrikanske republikken
+territories.CD=Kongo-Kinshasa
+territories.CC=Kokos\u00f8yane
 territories.OM=Oman
 territories.CA=Canada
+territories.419=Latin-Amerika og Karibia
 territories.BZ=Belize
-territories.BY=Hviterussland
+territories.BY=Kviterussland
 territories.BW=Botswana
 territories.BV=Bouvet\u00f8ya
 territories.BT=Bhutan
@@ -156,23 +231,25 @@ territories.BR=Brasil
 territories.019=Amerika
 territories.018=S\u00f8rlege Afrika
 territories.NZ=New Zealand
-territories.BO=Bolivia
 territories.017=Sentral-Afrika
+territories.BO=Bolivia
 territories.BN=Brunei Darussalam
-territories.BM=Bermuda
 territories.015=Nord-Afrika
+territories.BM=Bermuda
 territories.014=Aust-Afrika
 territories.013=Sentral-Amerika
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Vest-Afrika
+territories.BI=Burundi
+territories.172=Samveldet av uavhengige statar
 territories.BH=Bahrain
 territories.NR=Nauru
 territories.BG=Bulgaria
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgia
+territories.ZZ=(ukjent eller ugyldig omr\u00e5de)
 territories.NO=Noreg
 territories.BD=Bangladesh
 territories.BB=Barbados
@@ -181,7 +258,7 @@ territories.NL=Nederland
 territories.BA=Bosnia og Hercegovina
 territories.NI=Nicaragua
 territories.NG=Nigeria
-territories.NF=Norfolk\u00f8yene
+territories.NF=Norfolk\u00f8yane
 territories.AZ=Aserbajdsjan
 territories.NE=Niger
 territories.AX=\u00c5land
@@ -190,43 +267,45 @@ territories.AW=Aruba
 territories.ZM=Zambia
 territories.NA=Namibia
 territories.AU=Australia
-territories.AT=\u00d8sterrike
+territories.AT=Austerrike
 territories.AS=Amerikansk Samoa
 territories.AR=Argentina
-territories.009=Oseania
 territories.AQ=Antarktis
+territories.009=Oseania
 territories.MZ=Mosambik
 territories.AO=Angola
 territories.MY=Malaysia
-territories.AN=De nederlandske antiller
+territories.AN=Dei nederlandske Antillane
 territories.MX=Mexico
-territories.005=S\u00f8r-Amerika
 territories.AM=Armenia
+territories.005=S\u00f8r-Amerika
 territories.MW=Malawi
 territories.AL=Albania
-territories.MV=Maldivene
+territories.MV=Maldivane
+territories.003=Nord-Amerika
 territories.ZA=S\u00f8r-Afrika
 territories.MU=Mauritius
 territories.002=Afrika
 territories.MT=Malta
-territories.001=Verden
 territories.AI=Anguilla
+territories.001=verda
 territories.MS=Montserrat
 territories.MR=Mauritania
 territories.AG=Antigua og Barbuda
 territories.MQ=Martinique
 territories.AF=Afghanistan
-territories.MP=Nord-Marianene
-territories.AE=De forente arabiske emiratene
-territories.MO=Macao S.A.R. (Kina)
+territories.MP=Nord-Marianane
+territories.AE=Dei sameinte arabiske emirata
+territories.MO=Macao
 territories.AD=Andorra
 territories.MN=Mongolia
 territories.MM=Myanmar
 territories.ML=Mali
-territories.MK=Makedonia, Republikken
+territories.MK=Makedonia
 territories.YT=Mayotte
-territories.MH=Marshall\u00f8yene
+territories.MH=Marshall\u00f8yane
 territories.MG=Madagaskar
+territories.ME=Montenegro
 territories.MD=Moldova
 territories.MC=Monaco
 territories.MA=Marokko
@@ -245,11 +324,12 @@ territories.LK=Sri Lanka
 territories.LI=Liechtenstein
 territories.LC=St. Lucia
 territories.LB=Libanon
-territories.LA=Laos, Den folkedemokratiske republikken
+territories.LA=Laos
 territories.KZ=Kasakhstan
-territories.KY=Cayman\u00f8yene
+territories.KY=Cayman\u00f8yane
 territories.KW=Kuwait
 territories.145=Vest-Asia
+territories.143=Sentral-Asia
 territories.142=Asia
 territories.KR=S\u00f8r-Korea
 territories.KP=Nord-Korea
@@ -265,25 +345,27 @@ territories.JP=Japan
 territories.JO=Jordan
 territories.JM=Jamaica
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
-territories.VI=Jomfru\u00f8yene (USA)
-territories.VG=Jomfru\u00f8yene (britisk)
+territories.VI=Jomfru\u00f8yane (USA)
+territories.VG=Jomfru\u00f8yane (britisk)
 territories.VE=Venezuela
-territories.VC=St. Vincent og Grenadinene
+territories.VC=St. Vincent og Grenadinane
 territories.VA=Vatikanstaten
 territories.IT=Italia
 territories.IS=Island
 territories.IR=Iran
 territories.IQ=Irak
 territories.UZ=Usbekistan
-territories.IO=Britiske omr\u00e5der i det indiske hav
+territories.IO=Britiske omr\u00e5de i Det indiske hav
 territories.UY=Uruguay
 territories.IN=India
+territories.IM=Man
 territories.IL=Israel
 territories.US=USA
 territories.IE=Irland
 territories.ID=Indonesia
-territories.UM=USAs mindre \u00f8yer
+territories.UM=USAs ytre sm\u00e5\u00f8yar
 territories.UG=Uganda
 territories.UA=Ukraina
 territories.HU=Ungarn
@@ -291,25 +373,520 @@ territories.HT=Haiti
 territories.HR=Kroatia
 territories.TZ=Tanzania
 territories.HN=Honduras
-territories.HM=Heard- og McDonalds\u00f8yene
+territories.HM=Heard- og McDonalds\u00f8yane
 territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R. (Kina)
+territories.HK=Hongkong
 territories.TT=Trinidad og Tobago
 territories.TR=Tyrkia
 territories.TO=Tonga
 territories.TN=Tunisia
 territories.TM=Turkmenistan
-languages.zh=Kinesisk
-languages.en=Engelsk
-languages.ru=Russisk
-languages.ar=Arabisk
-languages.it=Italiensk
-languages.nb=norsk bokm\u00e5l
-languages.fr=Fransk
-languages.de=Tysk
-languages.es=Spansk
+languages.gwi=gwichin
+languages.akk=akkadisk
+languages.eka=ekajuk
+languages.ijo=ijo
+languages.xh=xhosa
+languages.sux=sumerisk
+languages.sus=susu
+languages.mis=anna spr\u00e5k
+languages.loz=lozi
+languages.tog=tonga (Nyasa)
+languages.zbl=blissymboler
+languages.pon=ponapisk
+languages.min=minangkabau
+languages.suk=sukuma
+languages.wo=wolof
+languages.lol=mongo
+languages.kut=kutenai
+languages.mic=micmac
+languages.wa=vallonsk
+languages.kum=kumyk
+languages.zap=zapotec
+languages.ain=ainu
+languages.cus=kusjitisk spr\u00e5k
+languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
+languages.vo=volapyk
+languages.oto=otomisk spr\u00e5k
+languages.vi=vietnamesisk
+languages.vai=vai
+languages.rar=rarotongansk
+languages.ve=venda
+languages.rap=rapanui
+languages.raj=rajasthani
+languages.ota=ottomansk tyrkisk
+languages.nzi=nzima
+languages.nap=napolitansk
+languages.uz=usbekisk
+languages.uga=ugaritisk
+languages.tmh=tamasjek
+languages.nai=nordamerikansk indiansk spr\u00e5k
+languages.nah=nahuatl
+languages.ur=urdu
+languages.fat=fanti
+languages.uk=ukrainsk
+languages.egy=gammalegyptisk
+languages.zxx=utan spr\u00e5kleg innhald
+languages.ug=uigurisk
+languages.fan=fang
+languages.ssa=nilo-saharaspr\u00e5k
+languages.mga=mellomirsk
+languages.bat=baltisk spr\u00e5k
+languages.nyo=nyoro
+languages.bas=basa
+languages.nyn=nyankole
+languages.nym=nyamwezi
+languages.gsw=sveitsertysk
+languages.hmn=hmong
+languages.ban=balinesisk
+languages.osa=osage
+languages.bal=baluchi
+languages.ty=tahitisk
+languages.bai=bamilekisk spr\u00e5k
+languages.tw=twi
+languages.srr=serer
+languages.tli=tlingit
+languages.tlh=klingon
+languages.tt=tatarisk
+languages.ts=tsonga
+languages.srn=sranan tongo
+languages.bad=banda
+languages.tr=tyrkisk
+languages.to=tonga (Tonga-\u00f8yane)
+languages.tn=tswana
+languages.tl=tagalog
+languages.tk=turkmensk
+languages.ti=tigrinja
+languages.th=thai
+languages.kru=kurukh
+languages.tg=tatsjikisk
+languages.byn=blin
+languages.te=telugu
+languages.kro=kru
+languages.csb=kasjubisk
+languages.ta=tamil
+languages.krl=karelsk
+languages.tkl=tokelau
+languages.efi=efik
+languages.sw=swahili
+languages.sv=svensk
+languages.su=sundanesisk
+languages.krc=karachay-balkar
+languages.st=s\u00f8rsotho
+languages.ss=swati
+languages.sr=serbisk
+languages.sq=albansk
+languages.men=mende
+languages.crp=kreol- eller pidginspr\u00e5k
+languages.so=somali
+languages.afh=afrihili
+languages.sn=shona
+languages.sm=samoansk
+languages.sl=slovensk
+languages.grc=gammalgresk
+languages.sk=slovakisk
+languages.grb=grebo
+languages.si=singalesisk
+languages.sh=serbokroatisk
+languages.crh=krimtatarisk
+languages.afa=afroasiatisk spr\u00e5k
+languages.sg=sango
+languages.se=nordsamisk
+languages.sd=sindhi
+languages.udm=udmurt
+languages.sc=sardinsk
+languages.sa=sanskrit
+languages.rw=kinjarwanda
+languages.nwc=klassisk newarisk
+languages.ru=russisk
+languages.mdr=mandar
+languages.ro=rumensk
+languages.rn=rundi
+languages.rm=retoromansk
+languages.mdf=moksha
+languages.tiv=tivi
+languages.ady=adyghe
+languages.zun=zuni
+languages.kpe=kpelle
+languages.qu=quechua
+languages.tig=tigr\u00e9
+languages.son=songhai
+languages.cpp=portugisiskbasert kreol- eller pidginspr\u00e5k
+languages.rup=aromansk
+languages.sog=sogdisk
+languages.ada=adangme
+languages.kos=kosraeansk
+languages.hit=hettittisk
+languages.cpf=franskbasert kreol- eller pidginspr\u00e5k
+languages.cpe=engelskbasert kreol- eller pidginspr\u00e5k
+languages.him=himachali
+languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=gotisk
+languages.gor=gorontalo
+languages.gon=gondi
+languages.din=dinka
+languages.nub=nubisk spr\u00e5k
+languages.pt=portugisisk
+languages.ps=pashto
+languages.fur=friuliansk
+languages.phn=f\u00f8nikisk
+languages.goh=gammalh\u00f8gtysk
+languages.snk=soninke
+languages.cop=koptisk
+languages.yap=yapesisk
+languages.ach=acoli
+languages.yao=yao
+languages.phi=filippinsk spr\u00e5k
+languages.pl=polsk
+languages.ace=achinesisk
+languages.pi=pali
+languages.pa=panjabi
+languages.bug=buginesisk
+languages.iba=iban
+languages.sms=skoltesamisk
+languages.bua=burjatisk
+languages.mas=masai
+languages.smn=enaresamisk
+languages.os=ossetisk
+languages.map=austronesisk
+languages.or=oriya
+languages.man=mandingo
+languages.smj=lulesamisk
+languages.smi=samisk spr\u00e5k
+languages.mak=makasar
+languages.om=oromo
+languages.mai=maithili
+languages.oj=ojibwa
+languages.mag=magahi
+languages.mad=maduresisk
+languages.sma=s\u00f8rsamisk
+languages.oc=oksitansk
+languages.nso=nordsotho
+languages.btk=batak
+languages.myv=erzya
+languages.dgr=dogrib
+languages.ny=nyanja
+languages.myn=mayaspr\u00e5k
+languages.nv=navajo
+languages.kmb=kimbundu
+languages.nr=s\u00f8r-ndebele
+languages.gmh=mellomh\u00f8gtysk
 languages.no=norsk
-languages.ja=Japansk
 languages.nn=norsk nynorsk
-languages.pt=Portugisisk
+languages.nl=nederlandsk
+languages.root=rot
+languages.ng=ndonga
+languages.sla=slavisk spr\u00e5k
+languages.ne=nepalsk
+languages.nd=nord-ndebele
+languages.cmc=kamisk spr\u00e5k
+languages.tet=tetum
+languages.nb=norsk bokm\u00e5l
+languages.na=nauru
+languages.ter=tereno
+languages.tem=temne
+languages.my=burmesisk
+languages.lez=lezghian
+languages.mt=maltesisk
+languages.frs=austfrisisk
+languages.peo=gammalpersisk
+languages.ms=malayisk
+languages.frr=nordfrisisk
+languages.mr=marathi
+languages.fro=gammalfransk
+languages.mo=moldavisk
+languages.frm=mellomfransk
+languages.mn=mongolsk
+languages.jrb=j\u00f8dearabisk
+languages.ml=malayalam
+languages.mk=makedonsk
+languages.mi=maori
+languages.mh=marshallesisk
+languages.mg=madagassisk
+languages.nqo=n-k\u00e5
+languages.mwr=marwari
+languages.bra=braj
+languages.mwl=mirandesisk
+languages.den=slavej
+languages.lv=latvisk
+languages.lu=luba-katanga
+languages.del=delaware
+languages.lt=litauisk
+languages.lo=laotisk
+languages.ln=lingala
+languages.li=limburgisk
+languages.ewo=ewondo
+languages.lg=ganda
+languages.lb=luxemburgsk
+languages.la=latin
+languages.jpr=j\u00f8depersisk
+languages.vot=votisk
+languages.sit=sino-tibetansk spr\u00e5k
+languages.ky=kirgisisk
+languages.kw=kornisk
+languages.kv=komi
+languages.ku=kurdisk
+languages.sio=sioux-spr\u00e5k
+languages.ks=kasjmiri
+languages.kr=kanuri
+languages.awa=awadhi
+languages.ko=koreansk
+languages.kn=kannada
+languages.km=kambodsjansk
+languages.kl=gr\u00f8nlandsk
+languages.kk=kasakhisk
+languages.rom=romani
+languages.kj=kuanyama
+languages.sid=sidamo
+languages.ki=kikuyu
+languages.kg=kikongo
+languages.non=gammalnorsk
+languages.ka=georgisk
+languages.mus=creek
+languages.roa=romansk spr\u00e5k
+languages.nog=nogai
+languages.mun=mundaspr\u00e5k
+languages.mul=fleire spr\u00e5k
+languages.jv=javanesisk
+languages.gil=kiribatisk
+languages.znd=zande
+languages.shn=shan
+languages.fon=fon
+languages.xal=kalmyk
+languages.aus=australsk spr\u00e5k
+languages.kho=khotanesisk
+languages.ja=japansk
+languages.khi=khoisanspr\u00e5k
+languages.pau=palauisk
+languages.chy=cheyenne
+languages.tai=taispr\u00e5k
+languages.iu=inuktitut
+languages.pap=papiamento
+languages.it=italiensk
+languages.sgn=teiknspr\u00e5k
+languages.is=islandsk
+languages.kha=khasi
+languages.chr=cherokee
+languages.pam=pampanga
+languages.pal=pahlavi
+languages.chp=chipewiansk
+languages.io=ido
+languages.cho=choctaw
+languages.chn=chinook
+languages.chm=mari
+languages.tyv=tuvinisk
+languages.bnt=bantu
+languages.pag=pangasinan
+languages.ik=inupiak
+languages.chk=chuukesisk
+languages.ii=sichuan-yi
+languages.haw=hawaiisk
+languages.lam=lamba
+languages.ig=ibo
+languages.chg=chagatai
+languages.sga=gammalirsk
+languages.paa=papuisk spr\u00e5k
+languages.ie=interlingue
+languages.id=indonesisk
+languages.lah=lahnda
+languages.day=dayak
+languages.chb=chibcha
+languages.ia=interlingua
+languages.lad=ladinsk
+languages.hz=herero
+languages.hai=haida
+languages.dar=dargwa
+languages.hy=armensk
+languages.ath=athapaskansk spr\u00e5k
+languages.hu=ungarsk
+languages.ht=haitisk
+languages.dak=dakota
+languages.hr=kroatisk
+languages.ho=hiri motu
+languages.hi=hindi
+languages.dyu=dyula
+languages.he=hebraisk
+languages.ast=asturisk
+languages.kfo=koro
+languages.ha=hausa
+languages.wen=sorbisk spr\u00e5k
+languages.gv=manx
+languages.gu=gujarati
+languages.sem=semittisk spr\u00e5k
+languages.sel=selkupisk
+languages.iro=irokansk spr\u00e5k
+languages.gn=guarani
+languages.gl=galicisk
+languages.arw=arawak
+languages.gez=ges
+languages.art=kunstig spr\u00e5k
+languages.gd=skotsk-g\u00e6lisk
+languages.ira=iransk
+languages.ga=irsk
+languages.arp=arapaho
+languages.arn=araukansk
+languages.fy=vestfrisisk
+languages.bla=siksika
+languages.gem=germansk spr\u00e5k
+languages.ypk=jupisk spr\u00e5k
+languages.arc=arameisk
+languages.fr=fransk
+languages.fo=f\u00e6r\u00f8ysk
+languages.cel=keltisk spr\u00e5k
+languages.fj=fijiansk
+languages.fi=finsk
+languages.ff=fulani
+languages.tvl=tuvalu
+languages.ceb=cebuansk
+languages.fa=persisk
+languages.zh_Hans=forenkla kinesisk
+languages.zh_Hant=tradisjonell kinesisk
+languages.eu=baskisk
+languages.sco=skotsk
+languages.et=estisk
+languages.scn=siciliansk
+languages.es=spansk
+languages.eo=esperanto
+languages.en=engelsk
+languages.el=gresk
+languages.tut=altaisk spr\u00e5k
+languages.niu=niueansk
+languages.tup=tupi-spr\u00e5k
+languages.ee=ewe
+languages.tum=tumbuka
+languages.mos=mossi
+languages.dz=dzongkha
+languages.kcg=tyap
+languages.nic=niger-kordofaniansk spr\u00e5k
+languages.lus=lushai
+languages.fiu=finsk-ugrisk spr\u00e5k
+languages.dv=divehi
+languages.nia=nias
+languages.moh=mohawk
+languages.luo=luo
+languages.lun=lunda
+languages.apa=apache-spr\u00e5k
+languages.fil=filippinsk
+languages.lui=luiseno
+languages.hup=hupa
+languages.cch=atsam
+languages.bin=bini
+languages.de=tysk
+languages.lua=luba-lulua
+languages.bik=bikol
+languages.was=washo
+languages.und=ikkje bestemt
+languages.war=waray
+languages.da=dansk
+languages.dum=mellumnederlandsk
+languages.wal=walamo
+languages.mno=manobospr\u00e5k
+languages.wak=wakasjansk spr\u00e5k
+languages.sat=santali
+languages.cy=walisisk
+languages.sas=sasak
+languages.kbd=kabardisk
+languages.cv=tsjuvansk
+languages.cu=kyrkjeslavisk
+languages.mni=manipuri
+languages.cs=tsjekkisk
+languages.sam=samaritansk arameisk
+languages.cr=cree
+languages.sal=salishansk spr\u00e5k
+languages.dua=duala
+languages.co=korsikansk
+languages.sai=s\u00f8ramerikansk indiansk spr\u00e5k
+languages.mnc=mandsju
+languages.sah=jakutsk
+languages.kaw=kawi
+languages.inh=ingusjisk
+languages.gba=gbaya
+languages.sad=sandawe
+languages.ch=chamorro
+languages.ine=indo-europeisk spr\u00e5k
+languages.bho=bhojpuri
+languages.enm=mellomengelsk
+languages.kar=karensk
+languages.inc=indisk spr\u00e5k
+languages.ce=tsjetsjensk
+languages.gay=gayo
+languages.ca=katalansk
+languages.umb=umbundu
+languages.syr=syrisk
+languages.kam=kamba
+languages.anp=angika
+languages.tsi=tsimshian
+languages.kaj=jju
+languages.ang=gammalengelsk
+languages.kac=kachin
+languages.cau=kaukasisk spr\u00e5k
+languages.kab=kabylsk
+languages.kaa=karakalpakisk
+languages.bs=bosnisk
+languages.car=karibisk
+languages.br=bretonsk
+languages.syc=klassisk syrisk
+languages.bo=tibetansk
+languages.bn=bengali
+languages.bm=bambara
+languages.gaa=ga
+languages.cai=sentralamerikansk indiansk spr\u00e5k
+languages.bi=bislama
+languages.bh=bihari
+languages.bg=bulgarsk
+languages.be=kviterussisk
+languages.cad=caddo
+languages.ba=basjkirsk
+languages.zu=zulu
+languages.zen=zenaga
+languages.pro=gammalproven\u00e7alsk
+languages.hsb=h\u00f8gsorbisk
+languages.az=aserbajdsjansk
+languages.ay=aymara
+languages.av=avarisk
+languages.as=assamisk
+languages.dsb=l\u00e5gsorbisk
+languages.ar=arabisk
+languages.ilo=iloko
+languages.elx=elamittisk
+languages.zh=kinesisk
+languages.an=aragonsk
+languages.pra=prakrit-spr\u00e5k
+languages.am=amharisk
+languages.new=newarisk
+languages.ak=akan
+languages.za=zhuang
+languages.en_US=engelsk (amerikansk)
+languages.af=afrikaans
+languages.ae=avestisk
+languages.alt=s\u00f8r-altai
+languages.ab=abkhasisk
+languages.aa=afar
+languages.yo=joruba
+languages.alg=algonkinsk spr\u00e5k
+languages.ale=aleutisk
+languages.mkh=mon-khmerspr\u00e5k
+languages.yi=jiddisk
+languages.dra=dravidisk spr\u00e5k
+languages.ber=berbisk
+languages.nds=l\u00e5gtysk
+languages.bem=bemba
+languages.bej=beja
+languages.tpi=tok pisin
+variants.SCOUSE=scouse-dialekt
+variants.BOONT=boontling
+variants.REVISED=revidert rettskriving
+variants.AREVELA=austarmensk
+variants.POLYTON=polytonisk rettskriving
+variants.FONIPA=det internasjonale fonetiske alfabetet (IPA)
+variants.1996=tysk ortografi fr\u00e5 1996
+variants.SAAHO=saaho-dialekt
+variants.AREVMDA=vestarmensk
+variants.VALENCIA=valensisk dialekt
+variants.1901=tradisjonell tysk ortografi
+variants.MONOTON=monotonisk rettskriving
+variants.FONUPA=det uralske fonetiske alfabetet UPA
+variants.ROZAJ=resisk dialekt
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nr.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nr.properties
new file mode 100644 (file)
index 0000000..5a9a92f
--- /dev/null
@@ -0,0 +1,27 @@
+# LocaleInformation_nr.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Jan\u00aeFeb\u00aeMat\u00aeApr\u00aeMey\u00aeJun\u00aeJul\u00aeArh\u00aeSep\u00aeOkt\u00aeUsi\u00aeDis\u00ae\u00ae
+months=Janabari\u00aeuFeberbari\u00aeuMatjhi\u00aeu-Apreli\u00aeMeyi\u00aeJuni\u00aeJulayi\u00aeArhostosi\u00aeSeptemba\u00aeOktoba\u00aeUsinyikhaba\u00aeDisemba\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMvu\u00aeBil\u00aeTha\u00aeNe\u00aeHla\u00aeGqi\u00ae
+weekdays=\u00aeuSonto\u00aeuMvulo\u00aeuLesibili\u00aeLesithathu\u00aeuLesine\u00aengoLesihlanu\u00aeumGqibelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.nr=isiNdebele
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nso.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nso.properties
new file mode 100644 (file)
index 0000000..67ad242
--- /dev/null
@@ -0,0 +1,27 @@
+# LocaleInformation_nso.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Jan\u00aeFeb\u00aeMat\u00aeApo\u00aeMei\u00aeJun\u00aeJul\u00aeAgo\u00aeSet\u00aeOkt\u00aeNof\u00aeDis\u00ae\u00ae
+months=Janaware\u00aeFeberware\u00aeMat\u0161he\u00aeAporele\u00aeMei\u00aeJune\u00aeJulae\u00aeAgostose\u00aeSetemere\u00aeOktobore\u00aeNofemere\u00aeDisemere\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMos\u00aeBed\u00aeRar\u00aeNe\u00aeHla\u00aeMok\u00ae
+weekdays=\u00aeSontaga\u00aeMosupalogo\u00aeLabobedi\u00aeLaboraro\u00aeLabone\u00aeLabohlano\u00aeMokibelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.nso=Sesotho sa Leboa
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ny.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ny.properties
new file mode 100644 (file)
index 0000000..1c55ece
--- /dev/null
@@ -0,0 +1,23 @@
+# LocaleInformation_ny.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.MWK=Malawian Kwacha
+currenciesSymbol.MWK=K
+shortMonths=Jan\u00aeFeb\u00aeMal\u00aeEpu\u00aeMei\u00aeJun\u00aeJul\u00aeOga\u00aeSep\u00aeOku\u00aeNov\u00aeDis\u00ae\u00ae
+months=Januwale\u00aeFebuluwale\u00aeMalichi\u00aeEpulo\u00aeMei\u00aeJuni\u00aeJulai\u00aeOgasiti\u00aeSeputemba\u00aeOkutoba\u00aeNovemba\u00aeDisemba\u00ae\u00ae
+shortWeekdays=\u00aeMul\u00aeLem\u00aeWir\u00aeTat\u00aeNai\u00aeSan\u00aeWer\u00ae
+weekdays=\u00aeLamulungu\u00aeLolemba\u00aeLachiwiri\u00aeLachitatu\u00aeLachinayi\u00aeLachisanu\u00aeLoweruka\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
index fa6a876400146388d93b17808ff8fd1751f5bb2a..f181b4d80149fcdaabd7603b46bcd1719afa611a 100644 (file)
@@ -5,27 +5,37 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.INR=Indian Rupee
-currenciesDisplayName.RUB=Russian Ruble
 currenciesDisplayName.JPY=Japanese Yen
+currenciesDisplayName.RUB=Russian Ruble
 currenciesDisplayName.BRL=Brazilian Real
 currenciesDisplayName.CNY=Chinese Yuan Renminbi
 currenciesDisplayName.USD=US Dollar
 currenciesDisplayName.EUR=Euro
 currenciesDisplayName.ETB=Itoophiyaa Birrii
 currenciesDisplayName.GBP=British Pound Sterling
+currenciesSymbol.ETB=$
 currenciesSymbol.KES=Ksh
-shortMonths=Ama®Gur®Bit®Elb®Cam®Wax®Ado®Hag®Ful®Onk®Sad®Mud®®
-months=Amajjii®Guraandhala®Bitooteessa®Elba®Caamsa®Waxabajjii®Adooleessa®Hagayya®Fuulbana®Onkololeessa®Sadaasa®Muddee®®
-shortWeekdays=®Dil®Wix®Qib®Rob®Kam®Jim®San®
-weekdays=®Dilbata®Wiixata®Qibxata®Roobii®Kamiisa®Jimaata®Sanbata®
-firstDayOfWeek=sat
-eras=KD®KB®
+shortMonths=Ama\u00aeGur\u00aeBit\u00aeElb\u00aeCam\u00aeWax\u00aeAdo\u00aeHag\u00aeFul\u00aeOnk\u00aeSad\u00aeMud\u00ae\u00ae
+months=Amajjii\u00aeGuraandhala\u00aeBitooteessa\u00aeElba\u00aeCaamsa\u00aeWaxabajjii\u00aeAdooleessa\u00aeHagayya\u00aeFuulbana\u00aeOnkololeessa\u00aeSadaasa\u00aeMuddee\u00ae\u00ae
+shortWeekdays=\u00aeDil\u00aeWix\u00aeQib\u00aeRob\u00aeKam\u00aeJim\u00aeSan\u00ae
+weekdays=\u00aeDilbata\u00aeWiixata\u00aeQibxata\u00aeRoobii\u00aeKamiisa\u00aeJimaata\u00aeSanbata\u00ae
+eras=KD\u00aeKB\u00ae
+ampms=WD\u00aeWB\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE, MMMM d, yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.FR=France
 territories.IN=India
 territories.CN=China
-territories.ET=Itoophiyaa
 territories.DE=Germany
+territories.ET=Itoophiyaa
 territories.GB=United Kingdom
 territories.BR=Brazil
 territories.RU=Russia
@@ -33,15 +43,90 @@ territories.JP=Japan
 territories.US=United States
 territories.KE=Keeniyaa
 territories.IT=Italy
-languages.zh=Chinese
-languages.en=English
-languages.ru=Russian
-languages.hi=Hindi
-languages.ar=Arabic
-languages.it=Italian
-languages.fr=French
+languages.es=Afaan Ispeen
+languages.eo=Afaan Esperantoo
+languages.en=Ingliffa
+languages.el=Afaan Giriiki
+languages.ko=Afaan Korea
+languages.kn=Afaan Kannada
+languages.ka=Afaan Georgian
+languages.jv=Afaan Java
+languages.fil=Afaan Filippinii
+languages.pt=Afaan Porchugaal
+languages.de=Afaan Jarmanii
+languages.pl=Afaan Polandii
+languages.da=Afaan Deenmaark
+languages.tlh=Afaan Kilingon
+languages.ja=Afaan Japanii
+languages.vi=Afaan Veetinam
+languages.cy=Welishiffaa
+languages.pa=Afaan Punjabii
+languages.cs=Afaan Czech
+languages.it=Afaan Xaaliyaani
+languages.is=Ayiislandiffaa
+languages.uz=Afaan Uzbek
+languages.ur=Afaan Urdu
 languages.om=Oromoo
-languages.de=German
-languages.es=Spanish
-languages.ja=Japanese
-languages.pt=Portuguese
+languages.ca=Afaan Katalaa
+languages.id=Afaan Indoneziya
+languages.uk=Afaan Ukreenii
+languages.ia=Interlingua
+languages.oc=Afaan Occit
+languages.bs=Afaan Bosniyaa
+languages.hu=Afaan Hangaari
+languages.bn=Afaan Baangladeshi
+languages.pt_PT=Afaan Protuguese
+languages.hr=Afaan Croatian
+languages.bh=Afaan Bihari
+languages.bg=Afaan Bulgariya
+languages.no=Afaan Norweyii
+languages.be=Afaan Belarusia
+languages.nn=Afaan Norwegian
+languages.hi=Afaan Hindii
+languages.tr=Afaan Turkii
+languages.nl=Afaan Dachii
+languages.zu=Afaan Zuulu
+languages.he=Afaan Hebrew
+languages.tk=Lammii Turkii
+languages.ne=Afaan Nepalii
+languages.az=Afaan Azerbaijani
+languages.ti=Afaan Tigiree
+languages.th=Afaan Tayii
+languages.te=Afaan Telugu
+languages.zh=Chinese
+languages.ar=Arabiffaa
+languages.ta=Afaan Tamilii
+languages.gu=Afaan Gujarati
+languages.am=Afaan Sidaamaa
+languages.mt=Afaan Maltesii
+languages.ms=Malaayiffaa
+languages.gn=Afaan Guarani
+languages.sw=Suwahilii
+languages.mr=Afaan Maratii
+languages.sv=Afaan Suwidiin
+languages.gl=Afaan Galishii
+languages.su=Afaan Sudaanii
+languages.af=Afrikoota
+languages.sr=Afaan Serbiya
+languages.sq=Afaan Albaniyaa
+languages.ml=Malayaalamiffaa
+languages.mk=Afaan Macedooniyaa
+languages.gd=Scots Gaelic
+languages.sl=Afaan Islovaniyaa
+languages.sk=Afaan Slovak
+languages.ga=Afaan Ayirishii
+languages.si=Afaan Sinhalese
+languages.pt_BR=Afaan Portugali (Braazil)
+languages.fy=Afaan Firisiyaani
+languages.fr=Afaan Faransaayii
+languages.lv=Afaan Lativiyaa
+languages.lt=Afaan Liituniyaa
+languages.fo=Afaan Faroese
+languages.ru=Afaan Rushiyaa
+languages.fi=Afaan Fiilaandi
+languages.ro=Afaan Romaniyaa
+languages.fa=Afaan Persia
+languages.la=Afaan Laatini
+languages.xh=Afaan Xhosa
+languages.eu=Afaan Baskuu
+languages.et=Afaan Istooniya
index 4e55489ceb2e6358538d38aa225c457dda22a2f2..045f79116b3867334aaad23b54877f24e2bccdd0 100644 (file)
@@ -5,13 +5,4 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
-ampms=WD®WB®
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
-longDateFormat=dd MMMM yyyy
-fullDateFormat=EEEE, MMMM d, yyyy
-shortTimeFormat=h:mm a
-mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
+currenciesSymbol.ETB=ETB
index d845f4671e66df3f68786a7be66b973c804f5624..4cfd59c091ad5c275fa90bbd89b3682f33706933 100644 (file)
@@ -6,8 +6,24 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 zeroDigit=\u0b66
-months=\u0b1c\u0b3e\u0b28\u0b41\u0b06\u0b30\u0b40®\u0b2b\u0b47\u0b2c\u0b4d\u0b30\u0b41\u0b5f\u0b3e\u0b30\u0b40®\u0b2e\u0b3e\u0b30\u0b4d\u0b1a\u0b4d\u0b1a®\u0b05\u0b2a\u0b4d\u0b30\u0b47\u0b32®\u0b2e\u0b47®\u0b1c\u0b41\u0b28®\u0b1c\u0b41\u0b32\u0b3e\u0b07®\u0b05\u0b17\u0b37\u0b4d\u0b1f®\u0b38\u0b47\u0b2a\u0b4d\u0b1f\u0b47\u0b2e\u0b4d\u0b2c\u0b30®\u0b05\u0b15\u0b4d\u0b1f\u0b4b\u0b2c\u0b30®\u0b28\u0b2d\u0b47\u0b2e\u0b4d\u0b2c\u0b30®\u0b21\u0b3f\u0b38\u0b47\u0b2e\u0b4d\u0b2c\u0b30®®
-shortWeekdays=®\u0b30\u0b2c\u0b3f®\u0b38\u0b4b\u0b2e®\u0b2e\u0b19\u0b4d\u0b17\u0b33®\u0b2c\u0b41\u0b27®\u0b17\u0b41\u0b30\u0b41®\u0b36\u0b41\u0b15\u0b4d\u0b30®\u0b36\u0b28\u0b3f®
-weekdays=®\u0b30\u0b2c\u0b3f\u0b2c\u0b3e\u0b30®\u0b38\u0b4b\u0b2e\u0b2c\u0b3e\u0b30®\u0b2e\u0b19\u0b4d\u0b17\u0b33\u0b2c\u0b3e\u0b30®\u0b2c\u0b41\u0b27\u0b2c\u0b3e\u0b30®\u0b17\u0b41\u0b30\u0b41\u0b2c\u0b3e\u0b30®\u0b36\u0b41\u0b15\u0b4d\u0b30\u0b2c\u0b3e\u0b30®\u0b36\u0b28\u0b3f\u0b2c\u0b3e\u0b30®
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
+currenciesDisplayName.INR=\u0b1f\u0b19\u0b15\u0b3e
+shortMonths=\u0b1c\u0b3e\u0b28\u0b41\u0b06\u0b30\u0b40\u00ae\u0b2b\u0b47\u0b2c\u0b4d\u0b30\u0b41\u0b5f\u0b3e\u0b30\u0b40\u00ae\u0b2e\u0b3e\u0b30\u0b4d\u0b1a\u0b4d\u0b1a\u00ae\u0b05\u0b2a\u0b4d\u0b30\u0b47\u0b32\u00ae\u0b2e\u0b47\u00ae\u0b1c\u0b41\u0b28\u00ae\u0b1c\u0b41\u0b32\u0b3e\u0b07\u00ae\u0b05\u0b17\u0b37\u0b4d\u0b1f\u00ae\u0b38\u0b47\u0b2a\u0b4d\u0b1f\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u0b05\u0b15\u0b4d\u0b1f\u0b4b\u0b2c\u0b30\u00ae\u0b28\u0b2d\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u0b21\u0b3f\u0b38\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u00ae
+months=\u0b1c\u0b3e\u0b28\u0b41\u0b06\u0b30\u0b40\u00ae\u0b2b\u0b47\u0b2c\u0b4d\u0b30\u0b41\u0b5f\u0b3e\u0b30\u0b40\u00ae\u0b2e\u0b3e\u0b30\u0b4d\u0b1a\u0b4d\u0b1a\u00ae\u0b05\u0b2a\u0b4d\u0b30\u0b47\u0b32\u00ae\u0b2e\u0b47\u00ae\u0b1c\u0b41\u0b28\u00ae\u0b1c\u0b41\u0b32\u0b3e\u0b07\u00ae\u0b05\u0b17\u0b37\u0b4d\u0b1f\u00ae\u0b38\u0b47\u0b2a\u0b4d\u0b1f\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u0b05\u0b15\u0b4d\u0b1f\u0b4b\u0b2c\u0b30\u00ae\u0b28\u0b2d\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u0b21\u0b3f\u0b38\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u00ae
+shortWeekdays=\u00ae\u0b30\u0b2c\u0b3f\u00ae\u0b38\u0b4b\u0b2e\u00ae\u0b2e\u0b19\u0b4d\u0b17\u0b33\u00ae\u0b2c\u0b41\u0b27\u00ae\u0b17\u0b41\u0b30\u0b41\u00ae\u0b36\u0b41\u0b15\u0b4d\u0b30\u00ae\u0b36\u0b28\u0b3f\u00ae
+weekdays=\u00ae\u0b30\u0b2c\u0b3f\u0b2c\u0b3e\u0b30\u00ae\u0b38\u0b4b\u0b2e\u0b2c\u0b3e\u0b30\u00ae\u0b2e\u0b19\u0b4d\u0b17\u0b33\u0b2c\u0b3e\u0b30\u00ae\u0b2c\u0b41\u0b27\u0b2c\u0b3e\u0b30\u00ae\u0b17\u0b41\u0b30\u0b41\u0b2c\u0b3e\u0b30\u00ae\u0b36\u0b41\u0b15\u0b4d\u0b30\u0b2c\u0b3e\u0b30\u00ae\u0b36\u0b28\u0b3f\u0b2c\u0b3e\u0b30\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd-MM-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=MMMM d, yyyy
+fullDateFormat=MMMM d,EEEE, yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.IN=\u0b2d\u0b3e\u0b30\u0b24
-languages.or=\u0b13\u0b5c\u0b3f\u0b06
+languages.or=\u0b13\u0b21\u0b3c\u0b3f\u0b06
index 6d4770aeba481f43064ba08fee3dedd194dbefaa..31e4a13d87bd5378e4b0cb3ce9734f3bd5eeebb1 100644 (file)
@@ -7,13 +7,63 @@
 
 zeroDigit=\u0a66
 percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
 currenciesDisplayName.INR=\u0a30\u0a41\u0a2a\u0a3f\u0a2f
+currenciesDisplayName.EUR=\u0a2f\u0a42\u0a30\u0a4b
+currenciesDisplayName.AFN=\u0a05\u0a2b\u0a3c\u0a17\u0a3e\u0a28\u0a40
+currenciesDisplayName.XXX=\u0a05\u0a23\u0a1c\u0a3e\u0a23
 currenciesSymbol.INR=\u0a30\u0a41.
-shortMonths=\u0a1c\u0a28\u0a35\u0a30\u0a40®\u0a5e\u0a30\u0a35\u0a30\u0a40®\u0a2e\u0a3e\u0a30\u0a1a®\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32®\u0a2e\u0a08®\u0a1c\u0a42\u0a28®\u0a1c\u0a41\u0a32\u0a3e\u0a08®\u0a05\u0a17\u0a38\u0a24®\u0a38\u0a24\u0a70\u0a2c\u0a30®\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30®\u0a28\u0a35\u0a70\u0a2c\u0a30®\u0a26\u0a38\u0a70\u0a2c\u0a30®®
-months=\u0a1c\u0a28\u0a35\u0a30\u0a40®\u0a5e\u0a30\u0a35\u0a30\u0a40®\u0a2e\u0a3e\u0a30\u0a1a®\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32®\u0a2e\u0a08®\u0a1c\u0a42\u0a28®\u0a1c\u0a41\u0a32\u0a3e\u0a08®\u0a05\u0a17\u0a38\u0a24®\u0a38\u0a24\u0a70\u0a2c\u0a30®\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30®\u0a28\u0a35\u0a70\u0a2c\u0a30®\u0a26\u0a38\u0a70\u0a2c\u0a30®®
-shortWeekdays=®\u0a10\u0a24.®\u0a38\u0a4b\u0a2e.®\u0a2e\u0a70\u0a17\u0a32.®\u0a2c\u0a41\u0a27.®\u0a35\u0a40\u0a30.®\u0a36\u0a41\u0a15\u0a30.®\u0a36\u0a28\u0a40.®
-weekdays=®\u0a10\u0a24\u0a35\u0a3e\u0a30®\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30®\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30®\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30®\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30®\u0a36\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30®\u0a36\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30®
-ampms=\u0a38\u0a35\u0a47\u0a30\u0a47®\u0a36\u0a3e\u0a2e®
+currenciesSymbol.XXX=\u0a05\u0a23\u0a1c\u0a3e\u0a23
+shortMonths=\u0a1c\u0a28\u0a35\u0a30\u0a40\u00ae\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40\u00ae\u0a2e\u0a3e\u0a30\u0a1a\u00ae\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32\u00ae\u0a2e\u0a08\u00ae\u0a1c\u0a42\u0a28\u00ae\u0a1c\u0a41\u0a32\u0a3e\u0a08\u00ae\u0a05\u0a17\u0a38\u0a24\u00ae\u0a38\u0a24\u0a70\u0a2c\u0a30\u00ae\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30\u00ae\u0a28\u0a35\u0a70\u0a2c\u0a30\u00ae\u0a26\u0a38\u0a70\u0a2c\u0a30\u00ae\u00ae
+months=\u0a1c\u0a28\u0a35\u0a30\u0a40\u00ae\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40\u00ae\u0a2e\u0a3e\u0a30\u0a1a\u00ae\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32\u00ae\u0a2e\u0a08\u00ae\u0a1c\u0a42\u0a28\u00ae\u0a1c\u0a41\u0a32\u0a3e\u0a08\u00ae\u0a05\u0a17\u0a38\u0a24\u00ae\u0a38\u0a24\u0a70\u0a2c\u0a30\u00ae\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30\u00ae\u0a28\u0a35\u0a70\u0a2c\u0a30\u00ae\u0a26\u0a38\u0a70\u0a2c\u0a30\u00ae\u00ae
+shortWeekdays=\u00ae\u0a10\u0a24.\u00ae\u0a38\u0a4b\u0a2e.\u00ae\u0a2e\u0a70\u0a17\u0a32.\u00ae\u0a2c\u0a41\u0a27.\u00ae\u0a35\u0a40\u0a30.\u00ae\u0a38\u0a3c\u0a41\u0a15\u0a30.\u00ae\u0a38\u0a3c\u0a28\u0a40.\u00ae
+weekdays=\u00ae\u0a10\u0a24\u0a35\u0a3e\u0a30\u00ae\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30\u00ae\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30\u00ae\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30\u00ae\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30\u00ae\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30\u00ae\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u0a38\u0a35\u0a47\u0a30\u0a47\u00ae\u0a38\u0a3c\u0a3e\u0a2e\u00ae
+shortDateFormat=dd/MM/yyy
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, dd MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=TO
+territories.ZZ=\u0a05\u0a23\u0a1c\u0a3e\u0a23
 territories.IN=\u0a2d\u0a3e\u0a30\u0a24
+languages.th=\u0a25\u0a3e\u0a08
+languages.az=\u0a05\u0a1c\u0a3c\u0a47\u0a30\u0a2c\u0a48\u0a1c\u0a28\u0a3f
+languages.te=\u0a24\u0a47\u0a32\u0a17\u0a42
+languages.ta=\u0a24\u0a3e\u0a2e\u0a3f\u0a32
+languages.as=\u0a05\u0a38\u0a3e\u0a2e\u0a40
+languages.ar=\u0a05\u0a30\u0a2c\u0a40
+languages.gu=\u0a17\u0a41\u0a1c\u0a30\u0a3e\u0a24\u0a40
+languages.apa=\u0a05\u0a2a\u0a3e\u0a1a\u0a47 \u0a2d\u0a3e\u0a38\u0a3c\u0a3e
+languages.sv=\u0a38\u0a35\u0a48\u0a21\u0a3f\u0a38\u0a3c
+languages.pt=\u0a2a\u0a4b\u0a30\u0a24\u0a42\u0a17\u0a42\u0a08\u0a38
+languages.af=\u0a05\u0a2b\u0a3c\u0a30\u0a40\u0a15\u0a40
+languages.mk=\u0a2e\u0a48\u0a15\u0a47\u0a21\u0a4b\u0a28\u0a40\u0a05\u0a28
+languages.de=\u0a1c\u0a30\u0a2e\u0a28
+languages.ab=\u0a05\u0a2c\u0a16\u0a3e\u0a1c\u0a3c\u0a40\u0a05\u0a28
+languages.da=\u0a21\u0a48\u0a28\u0a3f\u0a38\u0a3c
+languages.ach=\u0a05\u0a15\u0a4b\u0a32\u0a40
+languages.aus=\u0a06\u0a38\u0a1f\u0a30\u0a47\u0a32\u0a40\u0a05\u0a28 \u0a2d\u0a3e\u0a38\u0a3c\u0a3e
+languages.ja=\u0a1c\u0a3e\u0a2a\u0a3e\u0a28\u0a40
+languages.ace=\u0a05\u0a1a\u0a40\u0a28\u0a40
 languages.pa=\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40
+languages.und=und
+languages.it=\u0a07\u0a24\u0a3e\u0a32\u0a35\u0a40
+languages.fr=\u0a2b\u0a30\u0a48\u0a02\u0a1a
+languages.fi=\u0a2b\u0a3f\u0a28\u0a3f\u0a38\u0a3c
+languages.id=\u0a07\u0a70\u0a21\u0a4b\u0a28\u0a47\u0a38\u0a3c\u0a40\u0a06\u0a08
+languages.ug=\u0a09\u0a07\u0a18\u0a41\u0a30
+languages.bat=\u0a2c\u0a48\u0a32\u0a1f\u0a3f\u0a15 \u0a2d\u0a3e\u0a38\u0a3c\u0a3e
+languages.es=\u0a38\u0a2a\u0a47\u0a28\u0a3f\u0a38\u0a3c
+languages.bn=\u0a2c\u0a70\u0a17\u0a3e\u0a32\u0a40
+languages.eo=\u0a0f\u0a38\u0a2a\u0a30\u0a47\u0a02\u0a1f\u0a4b
+languages.en=\u0a05\u0a70\u0a17\u0a30\u0a47\u0a1c\u0a3c\u0a40
+languages.tw=\u0a24\u0a4d\u0a35\u0a3f
+languages.no=\u0a28\u0a3e\u0a30\u0a35\u0a47\u0a1c\u0a40\u0a05\u0a28
+languages.hi=\u0a39\u0a3f\u0a70\u0a26\u0a40
+languages.be=\u0a2c\u0a47\u0a32\u0a3e\u0a30\u0a42\u0a38\u0a40\u0a05\u0a28
+languages.nl=\u0a21\u0a71\u0a1a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa_Arab.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa_Arab.properties
new file mode 100644 (file)
index 0000000..05278b9
--- /dev/null
@@ -0,0 +1,16 @@
+# LocaleInformation_pa_Arab.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.PKR=\u0631\u0648\u067e\u0626\u06cc\u06c1
+currenciesDisplayName.INR=\u0631\u0648\u067e\u0626\u06cc\u06c1 [INR]
+currenciesDisplayName.EUR=\u064a\u0648\u0631\u0648
+currenciesSymbol.PKR=\u0631
+currenciesSymbol.INR=\u0631 [INR]
+months=\u062c\u0646\u0648\u0631\u06cc\u00ae\u0641\u0631\u0648\u0631\u06cc\u00ae\u0645\u0627\u0631\u0686\u00ae\u0627\u067e\u0631\u06cc\u0644\u00ae\u0645\u0626\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u0627\u0626\u06cc\u00ae\u0627\u06af\u0633\u062a\u00ae\u0633\u062a\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0645\u0628\u0631\u00ae\u062f\u0633\u0645\u0628\u0631\u00ae\u00ae
+weekdays=\u00ae\u0627\u062a\u0648\u0627\u0631\u00ae\u067e\u06cc\u0631\u00ae\u0645\u0646\u06af\u0644\u00ae\u0628\u064f\u062f\u06be\u00ae\u062c\u0645\u0639\u0631\u0627\u062a\u00ae\u062c\u0645\u0639\u06c1\u00ae\u06c1\u0641\u062a\u06c1\u00ae
+territories.PK=\u067e\u06a9\u0633\u062a\u0627\u0646
+languages.pa=\u067e\u0646\u062c\u0627\u0628
index 91f53cd8c7e69c66a4a928764e832efaade271be..a8dcc645fdfa5501ef2fba4bf690ebc769ccd7b7 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=\u00a0
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
 currenciesDisplayName.YDD=dinar jeme\u0144ski
-currenciesDisplayName.TWD=nowy dolar tajwa\u0144ski
 currenciesDisplayName.KES=szyling kenijski
-currenciesDisplayName.BYB=rubel bia\u0142oruski (1994-1999)
+currenciesDisplayName.TWD=nowy dolar tajwa\u0144ski
 currenciesDisplayName.LKR=rupia lankijska
-currenciesDisplayName.RWF=frank ruandyjski
+currenciesDisplayName.BYB=rubel bia\u0142oruski (1994-1999)
 currenciesDisplayName.TJS=somoni tad\u017cyckie
-currenciesDisplayName.SDP=funt suda\u0144ski
-currenciesDisplayName.TJR=rubel tad\u017cycki
+currenciesDisplayName.RWF=frank ruandyjski
 currenciesDisplayName.ERN=nakfa erytrejska
-currenciesDisplayName.AFN=afgani
+currenciesDisplayName.TJR=rubel tad\u017cycki
+currenciesDisplayName.SDP=stary funt suda\u0144ski
 currenciesDisplayName.GRD=drachma grecka
+currenciesDisplayName.AFN=afgani
 currenciesDisplayName.IEP=funt irlandzki
 currenciesDisplayName.ARS=peso argenty\u0144skie
-currenciesDisplayName.SDD=dinar suda\u0144ski
+currenciesDisplayName.SDG=funt suda\u0144ski
 currenciesDisplayName.ARP=peso argenty\u0144skie (1983-1985)
+currenciesDisplayName.SDD=dinar suda\u0144ski
 currenciesDisplayName.GEL=lari gruzi\u0144skie
+currenciesDisplayName.GEK=gruzi\u0144ski kupon larit
 currenciesDisplayName.AFA=afgani (1927-2002)
-currenciesDisplayName.GEK=Larit gruzi\u0144ski kupon
 currenciesDisplayName.CRC=colon kostaryka\u0144ski
 currenciesDisplayName.FKP=funt Wysp Falklandzkich
-currenciesDisplayName.EEK=korona esto\u0144ska
-currenciesDisplayName.HKD=dolar hongko\u0144ski
+currenciesDisplayName.EEK=koron esto\u0144skich
 currenciesDisplayName.MDL=lej mo\u0142dawski
-currenciesDisplayName.ARA=austral argenty\u0144ski
+currenciesDisplayName.HKD=dolar hongko\u0144ski
 currenciesDisplayName.IQD=dinar iracki
+currenciesDisplayName.ARA=austral argenty\u0144ski
 currenciesDisplayName.SCR=rupia seszelska
 currenciesDisplayName.VUV=vatu Vanuatu
-currenciesDisplayName.DKK=korona du\u0144ska
 currenciesDisplayName.KPW=won p\u00f3\u0142nocnokorea\u0144ski
-currenciesDisplayName.GQE=ekwele gwinejskie Gwinei R\u00f3wnikowej
+currenciesDisplayName.DKK=koron du\u0144skich
 currenciesDisplayName.IDR=rupia indonezyjska
-currenciesDisplayName.LVR=rubel \u0142otewski
+currenciesDisplayName.GQE=ekwele gwinejskie Gwinei R\u00f3wnikowej
 currenciesDisplayName.SOS=szyling somalijski
-currenciesDisplayName.AED=dirham ZEA
-currenciesDisplayName.BWP=pula
+currenciesDisplayName.LVR=rubel \u0142otewski
+currenciesDisplayName.AED=dirham\u00f3w arabskich
 currenciesDisplayName.LVL=\u0142at \u0142otewski
+currenciesDisplayName.BWP=pula
 currenciesDisplayName.RUR=rubel rosyjski (1991-1998)
 currenciesDisplayName.NIO=cordoba oro nikaragua\u0144ska
-currenciesDisplayName.ADP=peseta andorska
-currenciesDisplayName.FJD=dolar fid\u017cijski
 currenciesDisplayName.MOP=pataka Macao
-currenciesDisplayName.RUB=rubel rosyjski
+currenciesDisplayName.FJD=dolar Fid\u017ci
+currenciesDisplayName.ADP=peset andorskich
+currenciesDisplayName.RUB=rubli rosyjskich
 currenciesDisplayName.CDF=frank kongijski
 currenciesDisplayName.NIC=cordoba nikaragua\u0144ska
 currenciesDisplayName.DJF=frank D\u017cibuti
-currenciesDisplayName.SBD=dolar Wysp Salomona
 currenciesDisplayName.UZS=som uzbecki
+currenciesDisplayName.SBD=dolar Wysp Salomona
 currenciesDisplayName.ECS=sucre ekwadorski
-currenciesDisplayName.PHP=peso filipi\u0144skie
 currenciesDisplayName.THB=baht tajski
+currenciesDisplayName.PHP=peso filipi\u0144skie
 currenciesDisplayName.LUF=frank luksemburski
+currenciesDisplayName.RHD=dolar rodezyjski
 currenciesDisplayName.FIM=marka fi\u0144ska
 currenciesDisplayName.TTD=dolar Trynidadu i Tobago
 currenciesDisplayName.SZL=lilangeni Suazi
 currenciesDisplayName.MNT=tugrik mongolski
+currenciesDisplayName.UAK=karbowa\u0144c\u00f3w ukrai\u0144skich
 currenciesDisplayName.SAR=rial saudyjski
-currenciesDisplayName.UAK=karbowaniec ukrai\u0144ski
-currenciesDisplayName.UAH=hrywna ukrai\u0144ska
-currenciesDisplayName.HUF=forint w\u0119gierski\u00a0
-currenciesDisplayName.COP=peso kolumbijskie
+currenciesDisplayName.UAH=hrywien ukrai\u0144skich
+currenciesDisplayName.HUF=forint\u00f3w w\u0119gierskich
 currenciesDisplayName.QAR=rial katarski
+currenciesDisplayName.COP=peso kolumbijskie
 currenciesDisplayName.LTT=talon litewski
 currenciesDisplayName.PTE=escudo portugalskie
-currenciesDisplayName.AOR=kwanza angola\u0144ska Reajustado (1995-1999)
 currenciesDisplayName.UYU=peso urugwajskie
+currenciesDisplayName.AOR=kwanz angola\u0144skich Reajustado (1995-1999)
 currenciesDisplayName.GBP=funt szterling
-currenciesDisplayName.BIF=frank burundyjski
-currenciesDisplayName.INR=rupia indyjska
 currenciesDisplayName.ZRZ=zair zairski
-currenciesDisplayName.AON=nowa kwanza angola\u0144ska (1990-2000)
-currenciesDisplayName.LTL=lit litewski
+currenciesDisplayName.INR=rupia indyjska
+currenciesDisplayName.BIF=frank burundyjski
 currenciesDisplayName.XFU=UIC-frank francuski
-currenciesDisplayName.KZT=Tenge kazachskie
-currenciesDisplayName.MZM=metical Mozambik
+currenciesDisplayName.MZN=metical Mozambiku
+currenciesDisplayName.LTL=lit litewski
+currenciesDisplayName.AON=nowych kwanz angola\u0144skich (1990-2000)
 currenciesDisplayName.UYP=peso urugwajskie (1975-1993)
-currenciesDisplayName.AOK=kwanza angola\u0144ska (1977-1990)
-currenciesDisplayName.BUK=kyat birma\u0144ski
+currenciesDisplayName.MZM=metical Mozambik
+currenciesDisplayName.KZT=tenge kazachskie
+currenciesDisplayName.AOK=kwanz angola\u0144skich (1977-1990)
 currenciesDisplayName.GNS=syli gwinejskie
+currenciesDisplayName.BUK=kyat birma\u0144ski
 currenciesDisplayName.XFO=frank z\u0142oty francuski
 currenciesDisplayName.PGK=kina Papua Nowa Gwinea
 currenciesDisplayName.SYP=funt syryjski
-currenciesDisplayName.MZE=escudo mozambickie
 currenciesDisplayName.OMR=rial Omanu
-currenciesDisplayName.NGN=naira nigeryjska
+currenciesDisplayName.MZE=escudo mozambickie
 currenciesDisplayName.ZRN=nowy zair zairski
-currenciesDisplayName.AOA=kwanza angola\u0144ska
+currenciesDisplayName.NGN=naira nigeryjska
 currenciesDisplayName.CNY=juan renminbi
-currenciesDisplayName.MAF=frank maroka\u0144ski
+currenciesDisplayName.AOA=kwanz angola\u0144skich
+currenciesDisplayName.MAF=frank\u00f3w maroka\u0144skich
+currenciesDisplayName.RSD=dinar serbski
 currenciesDisplayName.GNF=frank gwinejski
-currenciesDisplayName.HTG=gourde haita\u0144skie
 currenciesDisplayName.MAD=dirham maroka\u0144ski
-currenciesDisplayName.TRY=nowa lira turecka
+currenciesDisplayName.HTG=gourde haita\u0144skie
+currenciesDisplayName.TRY=lira turecka
 currenciesDisplayName.MMK=kyat Myanmar
 currenciesDisplayName.MYR=ringgit malezyjski
+currenciesDisplayName.XEU=ECU
 currenciesDisplayName.LSL=loti Lesoto
-currenciesDisplayName.BHD=dinar bahra\u0144ski
 currenciesDisplayName.SLL=leone Sierra Leone
-currenciesDisplayName.BTN=ngultrum  Bhutan
-currenciesDisplayName.TRL=lir turecki
+currenciesDisplayName.BHD=dinar bahra\u0144ski
+currenciesDisplayName.BTN=ngultrum Bhutanu
+currenciesDisplayName.TRL=stary lir turecki
 currenciesDisplayName.KMF=frank komoryjski
-currenciesDisplayName.ANG=gulden Antyle Holenderskie
-currenciesDisplayName.CZK=korona czeska
+currenciesDisplayName.CZK=koron czeskich
+currenciesDisplayName.ANG=gulden\u00f3w Antyle Holenderskie
+currenciesDisplayName.AZN=manat\u00f3w azerskich
 currenciesDisplayName.AZM=manat azerbejd\u017ca\u0144ski
 currenciesDisplayName.KYD=dolar kajma\u0144ski
 currenciesDisplayName.GMD=dalasi gambijskie
-currenciesDisplayName.BGN=nowe lewa bu\u0142garskie
-currenciesDisplayName.CAD=dolar kanadyjski
-currenciesDisplayName.BGL=lewa bu\u0142garskie
+currenciesDisplayName.VEF=boliwar fuerte
+currenciesDisplayName.BGN=nowy lew bu\u0142garski
+currenciesDisplayName.CAD=dolar\u00f3w kanadyjskich
+currenciesDisplayName.BGL=lew bu\u0142garski
 currenciesDisplayName.VEB=boliwar wenezuelski
 currenciesDisplayName.MLF=frank malijski
-currenciesDisplayName.ILS=nowy szekel izraelski
 currenciesDisplayName.MXP=peso srebrne meksyka\u0144skie (1861-1992)
+currenciesDisplayName.ILS=nowy szekel izraelski
 currenciesDisplayName.PES=sol peruwia\u0144ski
-currenciesDisplayName.GYD=dolar guja\u0144ski
 currenciesDisplayName.MXN=peso meksyka\u0144skie
+currenciesDisplayName.GYD=dolar guja\u0144ski
 currenciesDisplayName.ILP=funt izraelski
-currenciesDisplayName.SKK=korona s\u0142owacka
 currenciesDisplayName.CYP=funt cypryjski
+currenciesDisplayName.SKK=koron s\u0142owackich
 currenciesDisplayName.XDR=specjalne prawa ci\u0105gnienia
 currenciesDisplayName.PEN=nowy sol peruwia\u0144ski
 currenciesDisplayName.LRD=dolar liberyjski
 currenciesDisplayName.PEI=inti peruwia\u0144ski
-currenciesDisplayName.AMD=dram arme\u0144ski
+currenciesDisplayName.AMD=dram\u00f3w arme\u0144skich
 currenciesDisplayName.BSD=dolar bahamski
+currenciesDisplayName.XPT=uncja platyny
 currenciesDisplayName.HRK=kuna chorwacka
-currenciesDisplayName.CLP=peso chilijskie
 currenciesDisplayName.HRD=dinar chorwacki
+currenciesDisplayName.CLP=peso chilijskie
 currenciesDisplayName.XPF=frank CFP
-currenciesDisplayName.FRF=frank francuski\u00a0
+currenciesDisplayName.FRF=frank\u00f3w francuskich
+currenciesDisplayName.XPD=pallad
 currenciesDisplayName.BRR=cruzeiro brazylijskie
 currenciesDisplayName.MKD=denar macedo\u0144ski
-currenciesDisplayName.ALL=lek alba\u0144ski
-currenciesDisplayName.BRN=cruzado brazylijskie
+currenciesDisplayName.BRN=nowe cruzado brazylijskie
+currenciesDisplayName.ALL=lek\u00f3w alba\u0144skich
 currenciesDisplayName.MWK=kwacha malawska
 currenciesDisplayName.BRL=real brazylijski
 currenciesDisplayName.TPE=escudo timorskie
-currenciesDisplayName.BRE=cruzeiro brazylijskie(1990-1993)
+currenciesDisplayName.BRE=cruzeiro brazylijskie (1990-1993)
 currenciesDisplayName.BRC=cruzado brazylijskie
 currenciesDisplayName.BRB=cruzeiro novo brazylijskie (1967-1986)
-currenciesDisplayName.DEM=marka niemiecka
+currenciesDisplayName.DEM=marek niemieckich
 currenciesDisplayName.KWD=dinar kuwejcki
 currenciesDisplayName.XCD=dolar wschodniokaraibski
 currenciesDisplayName.NPR=rupia nepalska
@@ -156,21 +175,21 @@ currenciesDisplayName.YUN=dinar jugos\u0142awia\u0144ski wymienny
 currenciesDisplayName.SVC=colon salwadorski
 currenciesDisplayName.YUM=nowy dinar jugos\u0142awia\u0144ski
 currenciesDisplayName.BEL=frank belgijski (finansowy)
-currenciesDisplayName.SIT=tolar s\u0142owe\u0144ski
-currenciesDisplayName.JPY=jen japo\u0144ski
+currenciesDisplayName.SIT=tolar\u00f3w s\u0142owe\u0144skich
+currenciesDisplayName.JPY=jen\u00f3w japo\u0144skich
 currenciesDisplayName.XOF=frank CFA
 currenciesDisplayName.MVR=rufiyaa malediwska
-currenciesDisplayName.GWE=escudo Gwinea Portugalska
 currenciesDisplayName.BEF=frank belgijski
+currenciesDisplayName.GWE=escudo Gwinea Portugalska
 currenciesDisplayName.TOP=pa\u02bbanga Tonga
-currenciesDisplayName.YUD=dinar jugos\u0142awia\u0144ski wymienny
 currenciesDisplayName.BEC=frank belgijski (zamienny)
-currenciesDisplayName.SUR=rubel radziecki
+currenciesDisplayName.SUR=rubli radzieckich
+currenciesDisplayName.RON=nowa leja rumu\u0144ska
 currenciesDisplayName.ROL=lej rumu\u0144ski
-currenciesDisplayName.DDM=wschodnia marka wschodnioniemiecka
 currenciesDisplayName.BDT=taka bengalska
+currenciesDisplayName.DDM=wschodnia marka wschodnioniemiecka
 currenciesDisplayName.AWG=gulden arubski
-currenciesDisplayName.NOK=korona norweska
+currenciesDisplayName.NOK=koron norweskich
 currenciesDisplayName.MUR=rupia Mauritius
 currenciesDisplayName.ZAR=rand po\u0142udniowoafryka\u0144ski
 currenciesDisplayName.SHP=funt Wyspy \u015awi\u0119tej Heleny
@@ -182,6 +201,7 @@ currenciesDisplayName.GIP=funt gibraltarski
 currenciesDisplayName.TND=dinar tunezyjski
 currenciesDisplayName.CVE=escudo Zielonego Przyl\u0105dka
 currenciesDisplayName.UGX=szyling ugandyjski
+currenciesDisplayName.XAG=uncja srebra
 currenciesDisplayName.ZMK=kwacha zambijska
 currenciesDisplayName.JOD=dinar jorda\u0144ski
 currenciesDisplayName.XAF=frank CFA BEAC
@@ -190,30 +210,32 @@ currenciesDisplayName.UGS=szyling ugandyjski (1966-1987)
 currenciesDisplayName.STD=dobra Wysp \u015awi\u0119tego Tomasza i\u00a0Ksi\u0105\u017c\u0119cej
 currenciesDisplayName.WST=tala samoa\u0144ska
 currenciesDisplayName.KHR=riel kambod\u017ca\u0144ski
-currenciesDisplayName.EUR=euro
 currenciesDisplayName.DOP=peso dominika\u0144skie
+currenciesDisplayName.EUR=euro
 currenciesDisplayName.BOV=mvdol boliwijski
 currenciesDisplayName.MTP=funt malta\u0144ski
 currenciesDisplayName.BOP=peso boliwijskie
-currenciesDisplayName.MTL=lira malta\u0144ska
 currenciesDisplayName.CUP=peso kuba\u0144skie
+currenciesDisplayName.MTL=lira malta\u0144ska
 currenciesDisplayName.TMM=manat turkme\u0144ski
+currenciesDisplayName.GHS=cedi Ghany
 currenciesDisplayName.SGD=dolar singapurski
-currenciesDisplayName.NZD=dolar nowozelandzki
-currenciesDisplayName.USD=dolar ameryka\u0144ski\u00a0
-currenciesDisplayName.HNL=lempira Hondurasu
+currenciesDisplayName.NZD=dolar\u00f3w nowozelandzkich
+currenciesDisplayName.USD=dolar\u00f3w ameryka\u0144skich
 currenciesDisplayName.BOB=boliviano
+currenciesDisplayName.HNL=lempira Hondurasu
 currenciesDisplayName.ITL=lir w\u0142oski
 currenciesDisplayName.PAB=balboa panamski
 currenciesDisplayName.GTQ=quetzal gwatemalski
-currenciesDisplayName.LAK=kip laota\u0144ski
+currenciesDisplayName.XXX=XXX
+currenciesDisplayName.AUD=dolar\u00f3w australijskich
 currenciesDisplayName.GHC=cedi gha\u0144skie
-currenciesDisplayName.AUD=dolar australijski
+currenciesDisplayName.LAK=kip laota\u0144ski
 currenciesDisplayName.NAD=dolar namibijski
 currenciesDisplayName.KGS=som kirgiski
 currenciesDisplayName.MGF=frank malgaski
-currenciesDisplayName.CHF=frank szwajcarski
 currenciesDisplayName.BBD=dolar Barbadosu
+currenciesDisplayName.CHF=frank\u00f3w szwajcarskich
 currenciesDisplayName.MGA=ariar malgaski
 currenciesDisplayName.PYG=guarani paragwajskie
 currenciesDisplayName.PLZ=z\u0142oty polski (1950-1995)
@@ -221,53 +243,57 @@ currenciesDisplayName.YER=rial jeme\u0144ski
 currenciesDisplayName.ATS=szyling austriacki\u00a0
 currenciesDisplayName.ETB=birr etiopski
 currenciesDisplayName.BND=dolar brunejski
-currenciesDisplayName.JMD=dolar jamajski
 currenciesDisplayName.EGP=funt egipski
-currenciesDisplayName.PLN=z\u0142oty polski
+currenciesDisplayName.JMD=dolar jamajski
+currenciesDisplayName.PLN=z\u0142otych polskich
 currenciesDisplayName.DZD=dinar algierski
 currenciesDisplayName.ISK=korona islandzka
 currenciesDisplayName.SRG=gulden surinamski
 currenciesDisplayName.LYD=dinar libijski
+currenciesDisplayName.SRD=dolar\u00f3w surinamskich
+currenciesDisplayName.BAM=marka zamienna Bo\u015bni i Hercegowiny
 currenciesDisplayName.BZD=dolar belize\u0144ski
-currenciesDisplayName.BAM=marka konwertybilna Bo\u015bni i Hercegowiny
 currenciesDisplayName.ESP=peseta hiszpa\u0144ska
 currenciesDisplayName.KRW=won po\u0142udniowokorea\u0144ski
 currenciesDisplayName.NLG=gulden holenderski\u00a0
 currenciesDisplayName.MRO=ouguiya mautera\u0144ska
 currenciesDisplayName.BAD=dinar Bo\u015bni i Hercegowiny
 currenciesDisplayName.ZWD=dolar Zimbabwe
-currenciesDisplayName.SEK=korona szwedzka
-currenciesDisplayName.CSK=korona czechos\u0142owacka
-currenciesDisplayName.BYR=rubel bia\u0142oruski
+currenciesDisplayName.SEK=koron szwedzkich
+currenciesDisplayName.CSK=koron czechos\u0142owackich
+currenciesDisplayName.BYR=rubli bia\u0142oruskich
+currenciesDisplayName.ESB=peseta hiszpa\u0144ska (konto wymienne)
 currenciesDisplayName.IRR=rial ira\u0144ski
+currenciesDisplayName.ESA=peseta hiszpa\u0144ska (Konto A)
 currenciesDisplayName.PKR=rupia pakista\u0144ska
 currenciesDisplayName.BMD=dolar bermudzki
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=dinar serbski
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.JPY=\u00a5
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
@@ -285,27 +311,28 @@ currenciesSymbol.FJD=F$
 currenciesSymbol.UYU=Ur$
 currenciesSymbol.BDT=Tk
 currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
 currenciesSymbol.DJF=DF
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
 currenciesSymbol.SGD=S$
 currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
 currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -314,8 +341,8 @@ currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
 currenciesSymbol.PLN=z\u0142
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.BOB=Bs
 currenciesSymbol.CNY=Y
@@ -330,10 +357,10 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.ANG=NA f.
@@ -342,16 +369,21 @@ currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=st®lut®mrz®kw®maj®cz®lip®sier®wrz®pa\u017a®lis®gr®®
-months=stycze\u0144®luty®marzec®kwiecie\u0144®maj®czerwiec®lipiec®sierpie\u0144®wrzesie\u0144®pa\u017adziernik®listopad®grudzie\u0144®®
-shortWeekdays=®niedz.®pon.®wt.®\u015br.®czw.®pt.®sob.®
-weekdays=®niedziela®poniedzia\u0142ek®wtorek®\u015broda®czwartek®pi\u0105tek®sobota®
-firstDayOfWeek=mon
-eras=p.n.e.®n.e.®
-shortDateFormat=dd.MM.yy
+shortMonths=sty\u00aelut\u00aemar\u00aekwi\u00aemaj\u00aecze\u00aelip\u00aesie\u00aewrz\u00aepa\u017a\u00aelis\u00aegru\u00ae\u00ae
+months=stycze\u0144\u00aeluty\u00aemarzec\u00aekwiecie\u0144\u00aemaj\u00aeczerwiec\u00aelipiec\u00aesierpie\u0144\u00aewrzesie\u0144\u00aepa\u017adziernik\u00aelistopad\u00aegrudzie\u0144\u00ae\u00ae
+shortWeekdays=\u00aeniedz.\u00aepon.\u00aewt.\u00ae\u015br.\u00aeczw.\u00aept.\u00aesob.\u00ae
+weekdays=\u00aeniedziela\u00aeponiedzia\u0142ek\u00aewtorek\u00ae\u015broda\u00aeczwartek\u00aepi\u0105tek\u00aesobota\u00ae
+eras=p.n.e.\u00aen.e.\u00ae
+ampms=rano\u00aepo po\u0142udniu/wieczorem\u00ae
+shortDateFormat=yy-MM-dd
 mediumDateFormat=yyyy-MM-dd
 longDateFormat=d MMMM yyyy
 fullDateFormat=EEEE, d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00aeCzas wschodnioeuropejski\u00ae\u00aeCzas wschodnioeuropejski letni\u00ae\u00ae\u00a9Europe_Central\u00aeCzas \u015brodkowoeuropejski\u00ae\u00aeCzas \u015brodkowoeuropejski letni\u00ae\u00ae\u00a9Europe_Western\u00aeCzas zachodnioeuropejski\u00ae\u00aeCzas zachodnioeuropejski letni\u00ae\u00ae\u00a9
 territories.TL=Timor Wschodni
 territories.TK=Tokelau
 territories.TJ=Tad\u017cykistan
@@ -360,11 +392,11 @@ territories.TG=Togo
 territories.TF=Francuskie Terytoria Po\u0142udniowe
 territories.GY=Gujana
 territories.TD=Czad
-territories.TC=Turks i Caicos
+territories.TC=Wyspy Turks i Caicos
 territories.GW=Gwinea Bissau
 territories.GU=Guam
 territories.GT=Gwatemala
-territories.GS=Wyspy Georgia Po\u0142udniowa i Sandwich Po\u0142udniowy
+territories.GS=Georgia Po\u0142udniowa i Sandwich Po\u0142udniowy
 territories.GR=Grecja
 territories.GQ=Gwinea R\u00f3wnikowa
 territories.GP=Gwadelupa
@@ -374,12 +406,13 @@ territories.GN=Gwinea
 territories.GM=Gambia
 territories.GL=Grenlandia
 territories.SV=Salwador
-territories.062=Azja Po\u0142udniowo-\u015arodkowa
+territories.062=Azja Po\u0142udniowo-\u015brodkowa
 territories.ST=Wyspy \u015awi\u0119tego Tomasza i Ksi\u0105\u017c\u0119ca
-territories.061=Polinezja
 territories.GI=Gibraltar
+territories.061=Polinezja
 territories.GH=Ghana
 territories.SR=Surinam
+territories.GG=Wyspa Guernsey
 territories.GF=Gujana Francuska
 territories.GE=Gruzja
 territories.SO=Somalia
@@ -390,7 +423,7 @@ territories.GB=Wielka Brytania
 territories.SL=Sierra Leone
 territories.GA=Gabon
 territories.SK=S\u0142owacja
-territories.SJ=Svalbard i Wyspy Jan Mayen
+territories.SJ=Svalbard i Jan Mayen
 territories.SI=S\u0142owenia
 territories.SH=Wyspa \u015awi\u0119tej Heleny
 territories.SG=Singapur
@@ -400,51 +433,53 @@ territories.SC=Seszele
 territories.SB=Wyspy Salomona
 territories.SA=Arabia Saudyjska
 territories.FR=Francja
-territories.057=Mikronezja
 territories.FO=Wyspy Owcze
-territories.FM=Mikronezja, Stany Sfederowane
+territories.057=Region Mikronezji
+territories.FM=Mikronezja
 territories.RW=Rwanda
 territories.054=Melanezja
+territories.FK=Falklandy
 territories.053=Australia i Nowa Zelandia
-territories.FK=Falklandy (Malwiny)
-territories.RU=Federacja Rosyjska
+territories.RU=Rosja
 territories.FJ=Fid\u017ci
 territories.FI=Finlandia
+territories.RS=Serbia
 territories.RO=Rumunia
 territories.RE=Reunion
 territories.ET=Etiopia
 territories.ES=Hiszpania
 territories.ER=Erytrea
-territories.833=Wyspa Man
+territories.QU=Unia Europejska
 territories.EH=Sahara Zachodnia
 territories.EG=Egipt
-territories.830=Wyspy Normandzkie
 territories.EE=Estonia
+territories.830=Wyspy Normandzkie
 territories.QO=Oceania inne
 territories.EC=Ekwador
 territories.DZ=Algieria
 territories.QA=Katar
 territories.039=Europa Po\u0142udniowa
-territories.DO=Republika Dominika\u0144ska
+territories.DO=Republika Dominikany
 territories.PY=Paragwaj
-territories.035=Azja Po\u0142udniowo-Wschodnia
 territories.DM=Dominika
+territories.035=Azja Po\u0142udniowo-Wschodnia
 territories.PW=Palau
+territories.034=Azja Po\u0142udniowa
 territories.DK=Dania
 territories.DJ=D\u017cibuti
 territories.PT=Portugalia
 territories.PS=Terytoria Palesty\u0144skie
 territories.030=Azja Wschodnia
-territories.PR=Puerto Rico
+territories.PR=Portoryko
 territories.DE=Niemcy
 territories.PN=Pitcairn
-territories.PM=St. Pierre i Miquelon
+territories.PM=Saint-Pierre i Miquelon
 territories.PL=Polska
 territories.PK=Pakistan
 territories.PH=Filipiny
-territories.PG=Papua Nowa Gwinea
+territories.PG=Papua-Nowa Gwinea
 territories.PF=Polinezja Francuska
-territories.CZ=Republika Czeska
+territories.CZ=Czechy
 territories.PE=Peru
 territories.CY=Cypr
 territories.CX=Wyspa Bo\u017cego Narodzenia
@@ -453,48 +488,52 @@ territories.PA=Panama
 territories.CU=Kuba
 territories.CS=Serbia i Czarnog\u00f3ra
 territories.CR=Kostaryka
-territories.029=Morze Karaibskie
+territories.029=Karaiby
 territories.CO=Kolumbia
 territories.CN=Chiny
 territories.CM=Kamerun
 territories.CL=Chile
 territories.CK=Wyspy Cooka
-territories.CI=Wybrze\u017ce Ko\u015bci S\u0142oniowej
 territories.021=Ameryka P\u00f3\u0142nocna
+territories.CI=Wybrze\u017ce Ko\u015bci S\u0142oniowej
 territories.CH=Szwajcaria
-territories.CG=Kongo
+territories.CG=Republika Konga
 territories.CF=Republika \u015arodkowej Afryki
 territories.CD=Kongo, Republika Demokratyczna
-territories.CC=Wyspy Kokosowe (Keelinga)
+territories.CC=Wyspy Kokosowe
 territories.OM=Oman
 territories.CA=Kanada
+territories.419=Ameryka \u0141aci\u0144ska i Karaiby
 territories.BZ=Belize
 territories.BY=Bia\u0142oru\u015b
 territories.BW=Botswana
 territories.BV=Wyspa Bouveta
 territories.BT=Bhutan
-territories.BS=Bahamy
+territories.BS=Wyspy Bahama
 territories.BR=Brazylia
 territories.019=Ameryka
 territories.018=Afryka Po\u0142udniowa
 territories.NZ=Nowa Zelandia
-territories.BO=Boliwia
 territories.017=Afryka \u015arodkowa
+territories.BO=Boliwia
 territories.BN=Brunei Darussalam
-territories.BM=Bermudy
 territories.015=Afryka P\u00f3\u0142nocna
+territories.BM=Bermudy
 territories.014=Afryka Wschodnia
+territories.BL=Saint Barth\u00e9lemy
 territories.013=Ameryka \u015arodkowa
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Afryka Zachodnia
+territories.BI=Burundi
+territories.172=Wsp\u00f3lnota Niepodleg\u0142ych Pa\u0144stw
 territories.BH=Bahrajn
 territories.NR=Nauru
 territories.BG=Bu\u0142garia
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgia
+territories.ZZ=Nieznany lub nieprawid\u0142owy region
 territories.NO=Norwegia
 territories.BD=Bangladesz
 territories.BB=Barbados
@@ -506,7 +545,7 @@ territories.NG=Nigeria
 territories.NF=Wyspa Norfolk
 territories.AZ=Azerbejd\u017can
 territories.NE=Niger
-territories.AX=Wyspy Alandzkie
+territories.AX=Wyspy alandzkie
 territories.NC=Nowa Kaledonia
 territories.AW=Aruba
 territories.ZM=Zambia
@@ -515,45 +554,48 @@ territories.AU=Australia
 territories.AT=Austria
 territories.AS=Samoa Ameryka\u0144skie
 territories.AR=Argentyna
-territories.009=Oceania
 territories.AQ=Antarktyka
+territories.009=Oceania
 territories.MZ=Mozambik
 territories.AO=Angola
 territories.MY=Malezja
 territories.AN=Antyle Holenderskie
 territories.MX=Meksyk
-territories.005=Ameryka Po\u0142udniowa
 territories.AM=Armenia
+territories.005=Ameryka Po\u0142udniowa
 territories.MW=Malawi
 territories.AL=Albania
 territories.MV=Malediwy
-territories.ZA=Afryka Po\u0142udniowa
+territories.003=Ameryka - p\u00f3\u0142noc
+territories.ZA=Republika Po\u0142udniowej Afryki
 territories.MU=Mauritius
 territories.002=Afryka
 territories.MT=Malta
-territories.001=\u015awiat
 territories.AI=Anguilla
+territories.001=\u015bwiat
 territories.MS=Montserrat
 territories.MR=Mauretania
 territories.AG=Antigua i Barbuda
 territories.MQ=Martynika
 territories.AF=Afganistan
-territories.MP=Wsp\u00f3lnota Marian\u00f3w P\u00f3\u0142nocnych
+territories.MP=Mariany P\u00f3\u0142nocne
 territories.AE=Zjednoczone Emiraty Arabskie
-territories.MO=Makau, Specjalny Region Administracyjny Chin
+territories.MO=Makau
 territories.AD=Andora
 territories.MN=Mongolia
-territories.MM=Birma
+territories.MM=Myanmar
 territories.ML=Mali
-territories.MK=Macedonia, Republika
+territories.MK=Macedonia
 territories.YT=Majotta
 territories.MH=Wyspy Marshalla
 territories.MG=Madagaskar
-territories.MD=Mo\u0142dawia, Republika
+territories.MF=Sint Maarten
+territories.ME=Czarnog\u00f3ra
+territories.MD=Mo\u0142dawia
 territories.MC=Monako
 territories.MA=Maroko
 territories.YE=Jemen
-territories.LY=Libijska
+territories.LY=Libia
 territories.LV=\u0141otwa
 territories.155=Europa Zachodnia
 territories.LU=Luksemburg
@@ -567,11 +609,12 @@ territories.LK=Sri Lanka
 territories.LI=Liechtenstein
 territories.LC=Saint Lucia
 territories.LB=Liban
-territories.LA=Laos (Demokratyczna Republika Ludowa)
+territories.LA=Laos
 territories.KZ=Kazachstan
 territories.KY=Kajmany
 territories.KW=Kuwejt
 territories.145=Azja Zachodnia
+territories.143=Azja \u015arodkowa
 territories.142=Azja
 territories.KR=Korea Po\u0142udniowa
 territories.KP=Korea P\u00f3\u0142nocna
@@ -587,25 +630,27 @@ territories.JP=Japonia
 territories.JO=Jordania
 territories.JM=Jamajka
 territories.VU=Vanuatu
+territories.JE=Wyspa Jersey
 territories.VN=Wietnam
-territories.VI=Wyspy Dziewicze, Stan\u00f3w Zjednoczonych
+territories.VI=Wyspy Dziewicze USA
 territories.VG=Brytyjskie Wyspy Dziewicze
 territories.VE=Wenezuela
-territories.VC=Saint Vincent and the Grenadines
-territories.VA=Stolica Apostolska (Pa\u0144stwo Watyka\u0144skie)
+territories.VC=Saint Vincent i Grenadyny
+territories.VA=Watykan
 territories.IT=W\u0142ochy
 territories.IS=Islandia
 territories.IR=Iran
 territories.IQ=Irak
 territories.UZ=Uzbekistan
-territories.IO=Terytorium Brytyjskie Oceanu Indyjskiego
+territories.IO=Terytorium brytyjskie na Oceanie Indyjskim
 territories.UY=Urugwaj
 territories.IN=Indie
+territories.IM=Wyspa Man
 territories.IL=Izrael
 territories.US=Stany Zjednoczone
 territories.IE=Irlandia
 territories.ID=Indonezja
-territories.UM=United States Minor Outlying Islands
+territories.UM=Dalekie Wyspy Mniejsze Stan\u00f3w Zjednoczonych
 territories.UG=Uganda
 territories.UA=Ukraina
 territories.HU=W\u0119gry
@@ -616,39 +661,538 @@ territories.HN=Honduras
 territories.HM=Wyspy Heard i McDonald
 territories.TW=Tajwan
 territories.TV=Tuvalu
-territories.HK=Hongkong, Specjalny Region Administracyjny Chin
-territories.TT=Trinidad i Tobago
+territories.HK=Hongkong
+territories.TT=Trynidad i Tobago
 territories.TR=Turcja
 territories.TO=Tonga
 territories.TN=Tunezja
-territories.TM=Turkmenia
-languages.ja=japo\u0144ski
-languages.en=angielski
+territories.TM=Turkmenistan
+languages.gwi=gwich\u02bcin
+languages.akk=akadyjski
+languages.eka=ekajuk
+languages.ijo=ijo
+languages.xh=khosa
+languages.sux=sumeryjski
+languages.sus=susu
+languages.mis=inny j\u0119zyk
+languages.loz=lozi
+languages.tog=tonga niasa
+languages.zbl=bliss
+languages.pon=ponpejski
+languages.min=minangkabu
+languages.suk=sukuma
+languages.wo=wolof
+languages.lol=mongo
+languages.kut=kutenai
+languages.mic=micmac
+languages.wa=walo\u0144ski
+languages.kum=kumycki
+languages.zap=zapotecki
+languages.ain=Ajnu
+languages.cus=kuszycki
+languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zazaki
+languages.vo=volapuk
+languages.oto=otomi
+languages.vi=wietnamski
+languages.vai=wai
+languages.rar=rarotonga
+languages.ve=venda
+languages.rap=rapanui
+languages.raj=rad\u017aasthani
+languages.ota=osma\u0144sko-turecki
+languages.nzi=nzema
+languages.nap=neapolita\u0144ski
+languages.uz=uzbecki
+languages.uga=ugarycki
+languages.tmh=tamaszek
+languages.nai=j\u0119zyk Indian p\u00f3\u0142nocnoameryka\u0144skich
+languages.nah=nahuatl
+languages.ur=urdu
+languages.fat=fanti
+languages.uk=ukrai\u0144ski
+languages.egy=staro\u017cytny egipski
+languages.zxx=brak tre\u015bci lingwistycznych
+languages.ug=ujgurski
+languages.fan=fang
+languages.ssa=nilosaharyjski
+languages.mga=\u015bredniowieczny irlandzki
+languages.bat=ba\u0142tycki
+languages.nyo=nyoro
+languages.bas=Basa
+languages.nyn=nyankole
+languages.nym=niamwezi
+languages.gsw=niemiecki (Szwajcaria)
+languages.hmn=hmongijski
+languages.ban=balijski
+languages.osa=osage
+languages.bal=Belud\u017ci
+languages.ty=tahita\u0144ski
+languages.bai=j\u0119zyk Bamileke
+languages.tw=twi
+languages.srr=serer
+languages.tli=tlingit
+languages.tlh=klingo\u0144ski
+languages.tt=tatarski
+languages.ts=tsonga
+languages.srn=sranan tongo
+languages.bad=Banda
 languages.tr=turecki
-languages.ko=korea\u0144ski
+languages.to=Tonga
+languages.tn=setswana
+languages.tl=tagalski
+languages.tk=turkme\u0144ski
+languages.ti=tigrinia
+languages.th=afrykanerski
+languages.kru=kurukh
+languages.tg=tad\u017cycki
+languages.byn=Blin
+languages.te=telugu
+languages.kro=kru
+languages.csb=kaszubski
+languages.ta=tamilski
+languages.krl=karelski
+languages.tkl=tokelau
+languages.efi=efik
+languages.sw=suahili
+languages.sv=szwedzki
+languages.su=sundajski
+languages.krc=karaczajsko-ba\u0142karski
+languages.st=sotho po\u0142udniowy
+languages.ss=siswati
+languages.sr=serbski
+languages.sq=alba\u0144ski
+languages.men=mende
+languages.crp=kreolski lub pid\u017cin
+languages.so=somalijski
+languages.afh=Arihili
+languages.sn=szona
+languages.sm=samoa\u0144ski
+languages.sl=s\u0142owe\u0144ski
+languages.grc=starogrecki
+languages.sk=s\u0142owacki
+languages.grb=grebo
+languages.si=syngaleski
+languages.sh=serbsko-chorwacki
+languages.crh=krymski turecki
+languages.afa=j\u0119zyki afro-azjatyckie
+languages.sg=sango
+languages.se=p\u00f3\u0142nocny lapo\u0144ski
+languages.sd=sindhi
+languages.udm=udmurcki
+languages.sc=sardy\u0144ski
+languages.sa=sanskryt
+languages.rw=kinya-ruanda
+languages.nwc=newarski klasyczny
+languages.ru=rosyjski
+languages.mdr=mandar
+languages.ro=rumu\u0144ski
+languages.rn=rundi
+languages.rm=retoroma\u0144ski
+languages.mdf=moksza
+languages.tiv=tiw
+languages.fr_CA=kanadyjski francuski
+languages.ady=adygejski
+languages.zun=zuni
+languages.kpe=kpelle
+languages.qu=keczua
+languages.tig=tigre
+languages.son=songhaj
+languages.cpp=portugalski kreolski lub pid\u017cynowy
+languages.rup=arumu\u0144ski
+languages.sog=sogdyjski
+languages.ada=Adangme
+languages.kos=kosrae
+languages.hit=hetycki
+languages.cpf=kreolski lub pid\u017cin na bazie francuskiego
+languages.cpe=kreolski lub pid\u017cin na bazie angielskiego
+languages.him=himachali
+languages.kok=konkani
+languages.hil=hiligajnon
+languages.got=gocki
+languages.gor=gorontalo
+languages.gon=gondi
+languages.din=dinka
+languages.nub=nubijski
+languages.pt=portugalski
+languages.ps=paszto
+languages.fur=friulijski
+languages.phn=fenicki
+languages.de_CH=wysokoniemiecki (Szwajcaria)
+languages.goh=staro-wysoko-niemiecki
+languages.snk=soninke
+languages.cop=koptyjski
+languages.yap=japski
+languages.ach=Aczoli
+languages.yao=yao
+languages.phi=filipi\u0144ski
+languages.pl=polski
+languages.ace=Aceh
+languages.pi=palijski
+languages.pa=pend\u017cabski
+languages.bug=bugi\u0144ski
+languages.iba=ibanag
+languages.sms=lapo\u0144ski Skolt
+languages.bua=buriacki
+languages.mas=masajski
+languages.smn=lapo\u0144ski Inari
+languages.os=osetyjski
+languages.map=j\u0119zyki austronezyjskie
+languages.or=orija
+languages.man=mandingo
+languages.smj=lapo\u0144ski Lule
+languages.smi=lapo\u0144ski
+languages.mak=makasar
+languages.om=oromski
+languages.mai=maithili
+languages.oj=od\u017cibwa
+languages.mag=magahi
+languages.mad=madurajski
+languages.sma=po\u0142udniowolapo\u0144ski
+languages.oc=prowansalski
+languages.nso=p\u00f3\u0142nocny sotho
+languages.btk=Batak
+languages.myv=erzja
+languages.de_AT=austriacki niemiecki
+languages.dgr=dogrib
+languages.ny=njand\u017ca
+languages.myn=j\u0119zyk Maj\u00f3w
+languages.nv=nawaho
+languages.kmb=kimbundu
+languages.nr=ndebele po\u0142udniowy
+languages.gmh=\u015bredniowieczny wysokoniemiecki
 languages.no=norweski
-languages.el=grecki
-languages.nl=holenderski
-languages.bg=bu\u0142garski
+languages.nn=norweski Nynorsk
+languages.nl=niderlandzki
+languages.root=j\u0119zyk izoluj\u0105cy
+languages.ng=ndonga
+languages.sla=s\u0142owia\u0144ski
+languages.ne=nepalski
+languages.nd=p\u00f3\u0142nocny ndebele
+languages.cmc=czam
+languages.tet=tetum
+languages.nb=norweski Bokm\u00e5l
+languages.na=nauru
+languages.ter=tereno
+languages.tem=temne
+languages.my=birma\u0144ski
+languages.lez=lezgijski
+languages.mt=malta\u0144ski
+languages.frs=wschodniofryzyjski
+languages.peo=staroperski
+languages.ms=malajski
+languages.frr=p\u00f3\u0142nocnofryzyjski
+languages.mr=marathi
+languages.fro=starofrancuski
+languages.mo=mo\u0142dawski
+languages.mn=mongolski
+languages.frm=\u015bredniowieczny francuski
+languages.ml=malajalam
+languages.jrb=judeoarabski
+languages.mk=macedo\u0144ski
+languages.mi=maoryjski
+languages.mh=marshall
+languages.mg=malgaski
+languages.nqo=n\u2019ko
+languages.mwr=marwari
+languages.bra=Brad\u017a
+languages.mwl=mirandese
+languages.den=slave
 languages.lv=\u0142otewski
-languages.cs=czeski
-languages.he=hebrajski
-languages.it=w\u0142oski
+languages.lu=luba-katanga
+languages.del=delaware
 languages.lt=litewski
+languages.lo=laota\u0144ski
+languages.ln=lingala
+languages.li=limburgijski
+languages.ewo=ewondo
+languages.lg=ganda
+languages.lb=luksemburski
+languages.la=\u0142aci\u0144ski
+languages.jpr=judeoperski
+languages.vot=wotiacki
+languages.sit=chi\u0144sko-tybeta\u0144ski
+languages.ky=kirgiski
+languages.kw=kornijski
+languages.kv=komi
+languages.ku=kurdyjski
+languages.sio=sioua\u0144ski
+languages.ks=kaszmirski
+languages.kr=kanuri
+languages.awa=Awadhi
+languages.ko=korea\u0144ski
+languages.kn=kannada
+languages.km=khmerski
+languages.en_GB=brytyjski angielski
+languages.kl=grenlandzki
+languages.kk=kazachski
+languages.rom=romski
+languages.kj=kwanyama
+languages.sid=sidamo
+languages.ki=kikuju
+languages.kg=kongo
+languages.non=staronordyjski
+languages.ka=gruzi\u0144ski
+languages.mus=creek
+languages.roa=roma\u0144ski
+languages.nog=nogajski
+languages.mun=mundajski
+languages.mul=wiele j\u0119zyk\u00f3w
+languages.jv=jawajski
+languages.gil=gilberta\u0144ski
+languages.znd=zande
+languages.shn=shan
+languages.fon=fon
+languages.xal=ka\u0142mucki
+languages.aus=j\u0119zyki australijskie
+languages.kho=chota\u0144ski
+languages.ja=japo\u0144ski
+languages.khi=khoisan
+languages.pau=palau
+languages.chy=j\u0119zyk Czejen\u00f3w
+languages.tai=esto\u0144ski
+languages.iu=inuktitut
+languages.pap=papiamento
+languages.it=w\u0142oski
+languages.sgn=migowy
+languages.is=islandzki
+languages.kha=khasi
+languages.chr=czirokezki
+languages.pam=pampango
+languages.pal=pahlavi
+languages.chp=chipewyan
+languages.io=ido
+languages.cho=choctaw
+languages.chn=\u017cargon Chinook
+languages.chm=maryjski
+languages.tyv=tuwi\u0144ski
+languages.bnt=Bantu
+languages.pag=pangasino
+languages.ik=inupiak
+languages.chk=truk
+languages.ii=syczua\u0144ski
+languages.haw=hawajski
+languages.lam=lamba
+languages.ig=igbo
+languages.chg=czagatajski
+languages.sga=staroirlandzki
+languages.paa=papuaski
+languages.ie=interlingue
+languages.id=indonezyjski
+languages.lah=lahnda
+languages.day=dajak
+languages.chb=czibcza
+languages.ia=interlingua
+languages.lad=ladino
+languages.hz=herero
+languages.hai=haida
+languages.dar=dargwijski
+languages.hy=ormia\u0144ski
+languages.ath=atapaska\u0144ski
+languages.hu=w\u0119gierski
+languages.ht=haita\u0144ski
+languages.dak=dakota
+languages.hr=chorwacki
+languages.ho=hiri motu
+languages.hi=hindi
+languages.dyu=dyula
+languages.he=hebrajski
+languages.ast=asturyjski
+languages.kfo=koro
+languages.ha=hausa
+languages.wen=\u0142u\u017cycki
+languages.gv=manx
+languages.gu=gud\u017aaracki
+languages.sem=semicki
+languages.sel=selkupski
+languages.iro=irokeski
+languages.gn=guarani
+languages.gl=galicyjski
+languages.en_CA=kanadyjski angielski
+languages.arw=Arawak
+languages.gez=gyyz
+languages.art=j\u0119zyki sztuczne
+languages.gd=szkocki gaelicki
+languages.ira=ira\u0144ski
+languages.ga=irlandzki
+languages.arp=Arapaho
+languages.arn=arauka\u0144ski
+languages.fy=zachodniofryzjski
+languages.bla=siksika
+languages.gem=germa\u0144ski
+languages.ypk=jupik
+languages.arc=aramejski
 languages.fr=francuski
-languages.zh=chi\u0144ski
-languages.ru=rosyjski
-languages.ro=rumu\u0144ski
+languages.fo=farerski
+languages.cel=celtycki
+languages.fj=fid\u017cijski
 languages.fi=fi\u0144ski
-languages.ar=arabski
-languages.sv=szwedzki
-languages.pt=portugalski
-languages.pl=polski
-languages.sl=s\u0142owe\u0144ski
-languages.sk=s\u0142owacki
-languages.de=niemiecki
+languages.ff=fulani
+languages.tvl=tuvalu
+languages.ceb=Cebuano
+languages.fa=perski
+languages.zh_Hans=chi\u0144ski uproszczony
+languages.zh_Hant=chi\u0144ski tradycyjny
+languages.eu=baskijski
+languages.sco=szkocki
 languages.et=esto\u0144ski
-languages.hu=w\u0119gierski
+languages.scn=sycylijski
 languages.es=hiszpa\u0144ski
+languages.eo=esperanto
+languages.en=angielski
+languages.el=grecki
+languages.tut=j\u0119zyki a\u0142tajskie
+languages.niu=niue
+languages.tup=tupi
+languages.ee=ewe
+languages.tum=tumbuka
+languages.nl_BE=flamandzki (Belgia)
+languages.es_419=hiszpa\u0144ski (Ameryka \u0141aci\u0144ska)
+languages.mos=mossi
+languages.dz=dzongkha
+languages.kcg=tyap
+languages.nic=nigrokordofa\u0144ski
+languages.lus=lushai
+languages.fiu=ugrofi\u0144ski
+languages.dv=malediwski
+languages.nia=nias
+languages.moh=mohawk
+languages.luo=luo
+languages.lun=lunda
+languages.apa=j\u0119zyk Apacz\u00f3w
+languages.fil=filipino
+languages.lui=luiseno
+languages.hup=hupa
+languages.cch=Atsam
+languages.bin=Bini
+languages.de=niemiecki
+languages.lua=luba-lulua
+languages.bik=Bikol
+languages.was=washo
+languages.und=nieznany lub niepoprawny j\u0119zyk
+languages.war=waraj
 languages.da=du\u0144ski
-languages.hr=chorwacki
+languages.dum=\u015bredniowieczny niderlandzki
+languages.wal=walamo
+languages.mno=manobo
+languages.wak=wakasz
+languages.sat=santali
+languages.cy=walijski
+languages.sas=sasak
+languages.kbd=kabardyjski
+languages.cv=czuwaski
+languages.cu=staro-cerkiewno-s\u0142owia\u0144ski
+languages.mni=manipuryjski
+languages.cs=czeski
+languages.sam=samaryta\u0144ski aramejski
+languages.cr=kri
+languages.sal=salisz
+languages.dua=duala
+languages.co=korsyka\u0144ski
+languages.sai=j\u0119zyk Indian po\u0142udniowoameryka\u0144skich
+languages.mnc=manchu
+languages.sah=jakucki
+languages.kaw=kawi
+languages.inh=inguski
+languages.gba=gbaya
+languages.sad=sandawe
+languages.ch=chamorro
+languages.ine=indoeuropejski
+languages.bho=Bhod\u017apuri
+languages.enm=\u015bredniowieczny angielski
+languages.kar=kare\u0144ski
+languages.inc=indoaryjski
+languages.ce=czecze\u0144ski
+languages.gay=gayo
+languages.ca=katalo\u0144ski
+languages.umb=umbundu
+languages.syr=syryjski
+languages.kam=kamba
+languages.anp=Angika
+languages.tsi=tsimshian
+languages.kaj=jju
+languages.ang=staroangielski
+languages.kac=kaczin
+languages.cau=kaukaski
+languages.kab=kabylski
+languages.kaa=karaka\u0142packi
+languages.bs=bo\u015bniacki
+languages.car=Karibi
+languages.br=breto\u0144ski
+languages.syc=syriacki
+languages.bo=tybeta\u0144ski
+languages.bn=bengalski
+languages.bm=Bambara
+languages.gaa=ga
+languages.cai=j\u0119zyk Indian \u015brodkowoameryka\u0144skich
+languages.bi=Bislama
+languages.bh=biharski
+languages.bg=bu\u0142garski
+languages.be=bia\u0142oruski
+languages.pt_BR=brazylyjski portugalski
+languages.cad=Kaddo
+languages.ba=baszkirski
+languages.zu=zulu
+languages.zen=zenaga
+languages.pro=staroprowansalski
+languages.hsb=g\u00f3rno\u0142u\u017cycki
+languages.az=azerski
+languages.ay=Ajmara
+languages.av=awarski
+languages.as=asamski
+languages.dsb=dolno\u0142u\u017cycki
+languages.ar=arabski
+languages.ilo=ilokano
+languages.elx=elamicki
+languages.zh=chi\u0144ski
+languages.an=arago\u0144ski
+languages.pra=prakryty
+languages.am=amharski
+languages.new=newarski
+languages.ak=Akan
+languages.za=czuang
+languages.en_US=angielski (USA)
+languages.af=Afrikaans
+languages.ae=awestyjski
+languages.alt=po\u0142udniowoa\u0142tajski
+languages.ab=abchaski
+languages.aa=Afar
+languages.yo=joruba
+languages.alg=angloki\u0144ski
+languages.ale=aleucki
+languages.mkh=Mon-Khmer
+languages.yi=jidysz
+languages.dra=drawidyjski
+languages.ber=berberski
+languages.nds=dolnosakso\u0144ski
+languages.bem=Bemba
+languages.bej=Bed\u017ca
+languages.tpi=tok pisin
+variants.POSIX=komputerowy
+variants.AREVMDA=ormia\u0144ski zachodni
+variants.1996=ortografia niemiecka z 1996 r.
+variants.SOLBA=dialekt Stolvizza/Solbica
+variants.NEDIS=dialekt Natisone
+variants.1994=standardowa ortografia regionu Resia
+variants.1901=tradycyjna ortografia niemiecka
+variants.FONUPA=fonetyczny
+variants.OSOJS=dialekt Oseacco/Osojane
+variants.1694ACAD=siedemnastowieczny francuski
+variants.LIPAW=dialekt Lipovaz w regionie Resia
+variants.REVISED=ortografia zrewidowana
+variants.NJIVA=dialekt Gniva/Njiva
+variants.TARASK=ortografia taraszkiewicka
+variants.FONIPA=fonetyczny mi\u0119dzynarodowy
+variants.BISKE=dialekt San Giorgio/Bila
+variants.SCOUSE=dialekt Scouse
+variants.BAKU1926=turecki zunifikowany alfabet \u0142aci\u0144ski
+variants.SAAHO=dialekt Saho
+variants.ROZAJ=dialekt regionu Resia
+variants.MONOTON=monotoniczny
+variants.POLYTON=politoniczny
+variants.AREVELA=ormia\u0144ski wchodni
+variants.SCOTLAND=standardowy szkocki angielski
+variants.VALENCIA=walencki
+variants.BOONT=dialekt Boontling
+variants.1606NICT=szesnastowieczny francuski
index 3ddfebb98423423d31e5e38b5e1dfcbdd5516a34..d990027a9ed4c929d6852d99bb729637d421b04b 100644 (file)
@@ -5,27 +5,33 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currenciesDisplayName.AFA=\u0627\u0641\u063a\u0627\u0646\u06cd
-currenciesSymbol.AFA=\u0627\u0641\u063a\u0627\u0646\u06cd
-shortMonths=\u062c\u0646\u0648®\u0641\u0628\u0631®\u0645\u0627\u0631®\u0627\u067e\u0631®\u0645\u0640\u06cc®\u062c\u0648\u0646®\u062c\u0648\u0644®\u0627\u06ab\u0633®\u0633\u067e\u062a®\u0627\u06a9\u062a®\u0646\u0648\u0645®\u062f\u0633\u0645®®
-months=\u062c\u0646\u0648\u0631\u064a®\u0641\u0628\u0631\u0648\u0631\u064a®\u0645\u0627\u0631\u0686®\u0627\u067e\u0631\u06cc\u0644®\u0645\u06cc®\u062c\u0648\u0646®\u062c\u0648\u0644\u0627\u06cc®\u0627\u06ab\u0633\u062a®\u0633\u067e\u062a\u0645\u0628\u0631®\u0627\u06a9\u062a\u0648\u0628\u0631®\u0646\u0648\u0645\u0628\u0631®\u062f\u0633\u0645\u0628\u0631®®
-shortWeekdays=®\u06cc.®\u062f.®\u0633.®\u0686.®\u067e.®\u062c.®\u0634.®
-weekdays=®\u06cc\u06a9\u0634\u0646\u0628\u0647®\u062f\u0648\u0634\u0646\u0628\u0647®\u0633\u0647\u200c\u0634\u0646\u0628\u0647®\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647®\u067e\u0646\u062c\u0634\u0646\u0628\u0647®\u062c\u0645\u0639\u0647®\u0634\u0646\u0628\u0647®
-eras=\u0642.\u0645.®\u0645.®
-ampms=\u063a.\u0645.®\u063a.\u0648.®
+percent=\u066a
+exponential=\u00d7\u06f1\u06f0^
+minusSign=\u2212
+zeroDigit=\u06f0
+decimalSeparator=\u066b
+groupingSeparator=\u066c
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.AFN=\u0627\u0641\u063a\u0627\u0646\u06cd
+currenciesSymbol.AFN=\u060b
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae\u0645\u0640\u06cc\u00ae\u062c\u0648\u0646\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=\u062c\u0646\u0648\u0631\u064a\u00ae\u0641\u0628\u0631\u0648\u0631\u064a\u00ae\u0645\u0627\u0631\u0686\u00ae\u0627\u067e\u0631\u06cc\u0644\u00ae\u0645\u06cc\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u0627\u06cc\u00ae\u0627\u06ab\u0633\u062a\u00ae\u0633\u067e\u062a\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0645\u0628\u0631\u00ae\u062f\u0633\u0645\u0628\u0631\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae\u06cc\u06a9\u0634\u0646\u0628\u0647\u00ae\u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u0633\u0647\u200c\u0634\u0646\u0628\u0647\u00ae\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647\u00ae\u067e\u0646\u062c\u0634\u0646\u0628\u0647\u00ae\u062c\u0645\u0639\u0647\u00ae\u0634\u0646\u0628\u0647\u00ae
+eras=\u0642.\u0645.\u00ae\u0645.\u00ae
+ampms=\u063a.\u0645.\u00ae\u063a.\u0648.\u00ae
 shortDateFormat=yyyy/M/d
-mediumDateFormat=d MMMM yyyy
+mediumDateFormat=d MMM yyyy
 longDateFormat=\u062f yyyy \u062f MMMM d
 fullDateFormat=EEEE \u062f yyyy \u062f MMMM d
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
 longTimeFormat=H:mm:ss (z)
 fullTimeFormat=H:mm:ss (z)
-zoneStrings=Asia/Kabul®AFT®\u062f \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646 \u067e\u0647 \u0648\u062e\u062a®AFT®\u062f \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646 \u067e\u0647 \u0648\u062e\u062a®©
 territories.SV=\u0633\u0627\u0644\u0648\u06d0\u0689\u0648\u0631
 territories.PT=\u067e\u0648\u0631\u062a\u06ab\u0627\u0644
-territories.GN=\u06ab\u06cc\u0627\u0646\u0627
 territories.JP=\u062c\u0627\u067e\u0627\u0646
+territories.GN=\u06ab\u06cc\u0627\u0646\u0627
 territories.PS=\u0641\u0644\u0633\u0637\u06cc\u0646
 territories.DK=\u0689\u0646\u0645\u0627\u0631\u06a9
 territories.JM=\u062c\u0645\u06cc\u06a9\u0627
@@ -42,10 +48,10 @@ territories.YE=\u06cc\u0645\u0646
 territories.SA=\u0633\u0639\u0648\u062f\u06cc \u0639\u0631\u0628\u0633\u062a\u0627\u0646
 territories.CU=\u06a9\u06cc\u0648\u0628\u0627
 territories.LY=\u0644\u06cc\u0628\u06cc\u0627
-territories.FR=\u0641\u0631\u0627\u0646\u0633\u0647
 territories.IT=\u0627\u06cc\u067c\u0627\u0644\u06cc\u0647
-territories.CO=\u06a9\u0648\u0644\u0645\u0628\u06cc\u0627
+territories.FR=\u0641\u0631\u0627\u0646\u0633\u0647
 territories.IS=\u0622\u06cc\u0633\u0644\u06cc\u0646\u0689
+territories.CO=\u06a9\u0648\u0644\u0645\u0628\u06cc\u0627
 territories.CN=\u0686\u06cc\u0646
 territories.UY=\u06cc\u0648\u0631\u0648\u06ab\u0648\u0627\u06cc
 territories.RW=\u0631\u0648\u0646\u062f\u0627
@@ -62,14 +68,13 @@ territories.LA=\u0644\u0627\u0648\u0633
 territories.NZ=\u0646\u06cc\u0648\u0632\u06cc\u0644\u0646\u0689
 territories.ET=\u062d\u0628\u0634\u0647
 territories.KW=\u06a9\u0648\u06cc\u067c
-territories.ES=\u0647\u0633\u067e\u0627\u0646\u06cc\u0647
 territories.HU=\u0645\u062c\u0627\u0631\u0633\u062a\u0627\u0646
+territories.ES=\u0647\u0633\u067e\u0627\u0646\u06cc\u0647
 territories.TZ=\u062a\u0646\u0632\u0627\u0646\u06cc\u0627
 territories.HN=\u0647\u0627\u0646\u0689\u0648\u0631\u0627\u0633
 territories.NP=\u0646\u06cc\u067e\u0627\u0644
 territories.NO=\u0646\u0627\u0631\u0648\u06d0
 territories.BG=\u0628\u0644\u063a\u0627\u0631\u06cc\u0647
-territories.HK=\u0647\u0627\u0646\u06a9\u0627\u0646\u06ab
 territories.EG=\u0645\u0635\u0631
 territories.NL=\u0647\u0627\u0644\u06d0\u0646\u0689
 territories.BD=\u0628\u0646\u06ab\u0644\u0647\u200c\u062f\u06cc\u0634
@@ -86,35 +91,113 @@ territories.AO=\u0627\u0646\u06ab\u0648\u0644\u0627
 territories.GR=\u06cc\u0648\u0646\u0627\u0646
 territories.SY=\u0633\u0648\u0631\u06cc\u0647
 territories.AL=\u0627\u0644\u0628\u0627\u0646\u06cc\u0647
-languages.tt=\u062a\u0627\u062a\u0627\u0631
-languages.ja=\u062c\u0627\u067e\u0627\u0646\u06cc
+languages.es=\u0647\u0633\u067e\u0627\u0646\u0648\u064a
+languages.ku=\u06a9\u0631\u062f\u064a
+languages.eo=\u0627\u0633\u067e\u0631\u0627\u0646\u062a\u0648
 languages.en=\u0627\u0646\u06ab\u0644\u06cc\u0633\u064a
-languages.sa=\u0633\u0646\u0633\u06a9\u0631\u06cc\u067c
 languages.el=\u06cc\u0648\u0646\u0627\u0646\u064a
-languages.hi=\u0647\u0646\u062f\u064a
-languages.tk=\u062a\u0631\u06a9\u0645\u0646\u064a
+languages.ko=\u06a9\u0648\u0631\u064a\u0627\u0626\u064a
+languages.kn=\u06a9\u0646\u0623\u0689\u0647
+languages.km=\u06a9\u0645\u0628\u0648\u0689\u064a\u0627\u064a\u06d0 \u064a\u0627 \u062f \u06a9\u0645\u0628\u0648\u0689\u064a\u0627
+languages.ka=\u062c\u0648\u0631\u062c\u064a\u0627\u0626\u064a
+languages.jv=\u062c\u0627\u0648\u0627\u064a\u06d0
+languages.fil=\u062a\u06ab\u0627\u0644\u0648\u06ab
+languages.pt=\u067e\u0648\u0631\u062a\u06ab\u0627\u0644\u064a
+languages.ps=\u067e\u069a\u062a\u0648
+languages.de=\u0627\u0644\u0645\u0627\u0646\u064a
+languages.pl=\u067e\u0648\u0644\u0646\u0689\u064a
+languages.da=\u0689\u06d0\u0646\u0634
+languages.tlh=\u06a9\u0644\u064a\u0646\u06ab\u0627\u0646\u064a
+languages.ja=\u062c\u0627\u067e\u0627\u0646\u06cc
+languages.vi=\u0648\u06d0\u062a\u0646\u0627\u0645\u064a
+languages.cy=\u0648\u064a\u0644\u0634\u064a
+languages.pa=\u067e\u0646\u062c\u0627\u0628\u064a
+languages.ine=\u0647\u0646\u062f \u0648 \u0627\u0631\u0648\u067e\u0627\u06cc\u064a
+languages.cs=\u0686\u06d0\u06a9
+languages.it=\u0627\u06cc\u067c\u0627\u0644\u0648\u064a
+languages.is=\u0623\u064a\u0633\u0644\u06d0\u0646\u0689\u064a
 languages.uz=\u0627\u0632\u0628\u06a9\u064a
+languages.or=\u0627\u0648\u0631\u064a\u0627
+languages.ur=\u0627\u0631\u062f\u0648
+languages.ca=\u06a9\u067c\u0644\u0627\u0646\u064a
+languages.ie=\u0622\u0633\u0627 \u0646\u0627 \u062c\u0628\u0629
+languages.id=\u0627\u0646\u0689\u0648\u0646\u06d0\u0634\u064a\u0627\u064a\u064a
+languages.uk=\u0627\u0648\u06a9\u0631\u0627\u0646\u0627\u064a\u064a
+languages.ia=\u0627\u0646\u067c\u0631\u0644\u0646\u06ab\u0648\u0627
+languages.oc=\u0627\u0648\u06a9\u0633\u064a\u067c\u0627\u0646\u064a
+languages.ug=\u0627\u0648\u064a\u06af\u0648\u0631
+languages.hy=\u0627\u0631\u0645\u0646\u064a
+languages.bs=\u0628\u0648\u0633\u0646\u064a
+languages.br=\u0628\u0631\u06d0\u062a\u0648\u0646
+languages.hu=\u0647\u0646\u06ab\u0631\u064a
+languages.pt_PT=\u067e\u0631\u062a\u06ab\u0627\u0644\u064a (\u067e\u0631\u062a\u06ab\u0627\u0644)
+languages.bn=\u0628\u0646\u06ab\u0627\u0644\u064a
+languages.hr=\u06a9\u0631\u0648\u0648\u0627\u062a\u064a
+languages.tw=\u062a\u0648\u06cc
+languages.bh=\u0628\u064a\u0647\u0627\u0631\u064a
+languages.bg=\u0628\u0644\u063a\u0627\u0631\u064a
+languages.tt=\u062a\u0627\u062a\u0627\u0631
+languages.no=\u0646\u0627\u0631\u0648\u06d0\u0626\u06d0
+languages.be=\u0628\u06d0\u0644\u0627\u0631\u0648\u0633\u064a
+languages.nn=\u0646\u0627\u0631\u0648\u06d0\u0626\u064a (\u0646\u0627\u0626\u0646\u0648\u0631\u0633\u06a9)
+languages.hi=\u0647\u0646\u062f\u064a
+languages.tr=\u062a\u0631\u06a9\u064a
+languages.nl=\u0647\u0627\u0644\u06d0\u0646\u0689\u064a
+languages.zu=\u0632\u0648\u0644\u0648
 languages.he=\u0639\u0628\u0631\u064a
-languages.it=\u0627\u06cc\u067c\u0627\u0644\u0648\u064a
+languages.tk=\u062a\u0631\u06a9\u0645\u0646\u064a
+languages.bal=\u0628\u0644\u0648\u0685\u064a
+languages.ne=\u0646\u06d0\u067e\u0627\u0644\u064a
+languages.az=\u0623\u0630\u0631\u0628\u0627\u0626\u062c\u0627\u0646\u064a
+languages.ti=\u062a\u064a\u06ab\u0631\u064a\u0646\u064a
+languages.th=\u062a\u0627\u064a\u0644\u06d0\u0646\u0689\u064a
 languages.tg=\u062a\u0627\u062c\u06a9
-languages.fr=\u0641\u0631\u0627\u0646\u0633\u0648\u064a
+languages.te=\u062a\u06d0\u0644\u064a\u06ab\u0648
 languages.zh=\u0686\u06cc\u0646\u064a
-languages.ru=\u0631\u0648\u0633\u064a
-languages.ine=\u0647\u0646\u062f \u0648 \u0627\u0631\u0648\u067e\u0627\u06cc\u064a
-languages.fi=\u0641\u06cc\u0646\u0644\u0646\u0689\u064a
+languages.as=\u0627\u0633\u0645\u0627\u0626\u0649 \u0698\u0628\u0647
 languages.ar=\u0639\u0631\u0628\u064a
-languages.sv=\u0633\u0648\u06cc\u0689\u0646\u06cc
-languages.pt=\u067e\u0648\u0631\u062a\u06ab\u0627\u0644\u064a
+languages.ta=\u062a\u0627\u0645\u0644
+languages.gu=\u06ab\u062c\u0631\u0627\u062a\u064a
+languages.am=\u0627\u0645\u0647\u0627\u0631\u064a
+languages.mt=\u0645\u0627\u0644\u067c\u0627\u064a\u064a
 languages.ms=\u0645\u0644\u0627\u06cc\u0627
-languages.fa=\u0641\u0627\u0631\u0633\u064a
-languages.ps=\u067e\u069a\u062a\u0648
-languages.la=\u0644\u0627\u062a\u06cc\u0646\u064a
+languages.gn=\u06ab\u0648\u0631\u0627\u0646\u064a
+languages.sw=\u0633\u0648\u0627\u0647\u06d0\u0644\u064a
+languages.mr=\u0645\u0631\u0627\u067c\u0647\u064a
+languages.sv=\u0633\u0648\u06cc\u0689\u0646\u06cc
+languages.gl=\u06ab\u0644\u06d0\u0634\u064a\u0627\u064a\u064a
+languages.su=\u0633\u0648\u0689\u0627\u0646\u064a
+languages.af=\u0627\u0641\u0631\u064a\u06a9\u0627\u0646\u064a
+languages.st=\u0633\u064a\u0633\u0648\u062a\u0648
 languages.mn=\u0645\u063a\u0648\u0644\u064a
-languages.pl=\u067e\u0648\u0644\u0646\u0689\u064a
+languages.sr=\u0633\u0631\u0628\u064a\u0627\u0626\u064a
+languages.sq=\u0627\u0644\u0628\u0627\u0646\u064a
+languages.ml=\u0645\u0627\u0644\u0627\u064a\u0627\u0644\u0645
 languages.mk=\u0645\u0642\u062f\u0648\u0646\u064a
-languages.hy=\u0627\u0631\u0645\u0646\u064a
-languages.de=\u0627\u0644\u0645\u0627\u0646\u064a
+languages.so=\u0633\u0648\u0645\u0627\u0644\u064a
+languages.gd=\u0633\u06a9\u0627\u067c\u0644\u06d0\u0646\u0689\u064a \u06ab\u06d0\u0644\u06a9
+languages.sl=\u0633\u0644\u0648\u0648\u0627\u0646\u064a
 languages.mg=\u0645\u0644\u063a\u0627\u0633\u064a
+languages.sk=\u0633\u0644\u0648\u0648\u0627\u06a9\u064a
+languages.ga=\u0627\u0626\u064a\u0631\u0644\u06d0\u0646\u0689\u064a
+languages.si=\u0633\u064a\u0646\u0647\u0627\u0644\u064a
+languages.sh=\u0633\u0631\u0628-\u06a9\u0631\u0648\u0634\u064a\u0627\u064a\u064a
+languages.pt_BR=\u067e\u0631\u062a\u06af\u0627\u0644 (\u0628\u0631\u0627\u0632\u064a\u0644)
+languages.yi=\u064a\u062f\u064a\u0634
+languages.sd=\u0633\u0646\u062f\u0647\u064a
+languages.fy=\u0641\u0631\u064a\u0632\u064a
+languages.sa=\u0633\u0646\u0633\u06a9\u0631\u06cc\u067c
+languages.fr=\u0641\u0631\u0627\u0646\u0633\u0648\u064a
+languages.lv=\u0644\u06d0\u067c\u0648\u0627\u0646\u064a
+languages.lt=\u0644\u064a\u062a\u0648\u0627\u0646\u064a
+languages.fo=\u0641\u0627\u0631\u0648\u0626\u06d0
+languages.ru=\u0631\u0648\u0633\u064a
+languages.lo=\u0644\u0648\u064a\u062a\u064a\u0646
+languages.fi=\u0641\u06cc\u0646\u0644\u0646\u0689\u064a
+languages.ro=\u0631\u0648\u0645\u0627\u0646\u064a
+languages.fa=\u0641\u0627\u0631\u0633\u064a
+languages.la=\u0644\u0627\u062a\u06cc\u0646\u064a
+languages.xh=\u062e\u0648\u0633\u0627
+languages.eu=\u0628\u0627\u0633\u06a9\u064a
+languages.ky=\u06a9\u0631\u06ab\u064a\u0632
 languages.et=\u062d\u0628\u0634\u064a
-languages.bal=\u0628\u0644\u0648\u0685\u064a
-languages.ku=\u06a9\u0631\u062f\u064a
index 15ce646ee953de3414a20acbfeefba6b8bd6b79e..3be18a40bea9673b0a83ad6dcf078bf07693398a 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=.
-currenciesDisplayName.YDD=Dinar iemenita
-currenciesDisplayName.TWD=D\u00f3lar Novo de Taiwan
-currenciesDisplayName.KES=Xelim queniano
-currenciesDisplayName.BYB=Rublo novo bielo-russo (1994-1999)
-currenciesDisplayName.LKR=Rupia de Sri Lanka
-currenciesDisplayName.RWF=Franco ruand\u00eas
-currenciesDisplayName.TJS=Somoni tadjique
-currenciesDisplayName.SDP=Libra sudanesa
-currenciesDisplayName.TJR=Rublo do Tadjiquist\u00e3o
-currenciesDisplayName.ERN=Nakfa da Eritr\u00e9ia
-currenciesDisplayName.AFN=Afegane
-currenciesDisplayName.GRD=Dracma grego
-currenciesDisplayName.IEP=Libra irlandesa
-currenciesDisplayName.ARS=Peso argentino
-currenciesDisplayName.SDD=Dinar sudan\u00eas
-currenciesDisplayName.ARP=Peso argentino (1983-1985)
-currenciesDisplayName.GEL=Lari georgiano
-currenciesDisplayName.AFA=Afegane (1927-2002)
-currenciesDisplayName.GEK=Cupom Lari georgiano
-currenciesDisplayName.CRC=Colon da Costa Rica
-currenciesDisplayName.FKP=Libra das Malvinas
-currenciesDisplayName.EEK=Coroa estoniana
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
+currenciesDisplayName.YDD=Dinares do I\u00eamen
+currenciesDisplayName.KES=Shillings quenianos
+currenciesDisplayName.TWD=D\u00f3lares de Taiwan
+currenciesDisplayName.LKR=R\u00fapias do Siri Lanka
+currenciesDisplayName.BYB=Novos rublos bielorussos
+currenciesDisplayName.TJS=Somonis do Tajaquist\u00e3o
+currenciesDisplayName.RWF=Francos de Ruanda
+currenciesDisplayName.ERN=Nakfas da Eritr\u00e9ia
+currenciesDisplayName.TJR=R\u00fapias do Tajaquist\u00e3o
+currenciesDisplayName.SDP=Libras antigas sudanesas
+currenciesDisplayName.GRD=Dracmas gregos
+currenciesDisplayName.AFN=Afghanis
+currenciesDisplayName.IEP=Libras irlandesas
+currenciesDisplayName.ARS=Pesos argentinos
+currenciesDisplayName.SDG=Libras sudanesas
+currenciesDisplayName.ARP=Pesos argentinos (ARP)
+currenciesDisplayName.SDD=Dinares antigos do Sud\u00e3o
+currenciesDisplayName.GEL=Laris da Ge\u00f3rgia
+currenciesDisplayName.GEK=Kupon larits da Ge\u00f3rgia
+currenciesDisplayName.AFA=Afghani (AFA)
+currenciesDisplayName.CRC=Colons costa-riquenhos
+currenciesDisplayName.FKP=Libras das Ilhas Malvinas
+currenciesDisplayName.EEK=Kroons estonianos
+currenciesDisplayName.MDL=Leus da Mold\u00e1via
 currenciesDisplayName.HKD=D\u00f3lar de Hong Kong
-currenciesDisplayName.MDL=Leu de Mold\u00e1via
-currenciesDisplayName.ARA=Austral argentino
-currenciesDisplayName.IQD=Dinar iraquiano
-currenciesDisplayName.SCR=Rupia das Seychelles
-currenciesDisplayName.VUV=Vatu de Vanuatu
-currenciesDisplayName.DKK=Coroa dinamarquesa
-currenciesDisplayName.KPW=Won norte-coreano
-currenciesDisplayName.GQE=Ekwele de Guin\u00e9 Equatorial
-currenciesDisplayName.IDR=Rupia indon\u00e9sia
-currenciesDisplayName.LVR=Rublo let\u00e3o
-currenciesDisplayName.SOS=Xelim somali
-currenciesDisplayName.AED=Dir\u00e9m dos Emirados \u00c1rabes Unidos
-currenciesDisplayName.BWP=Pula botsuanesa
-currenciesDisplayName.LVL=Lats let\u00e3o
-currenciesDisplayName.RUR=Rublo russo (1991-1998)
-currenciesDisplayName.NIO=C\u00f3rdoba Ouro nicaraguano
-currenciesDisplayName.ADP=Peseta de Andorra
-currenciesDisplayName.FJD=D\u00f3lar de Fiji
-currenciesDisplayName.MOP=Pataca macaense
-currenciesDisplayName.RUB=Rublo russo
-currenciesDisplayName.CDF=Franco congol\u00eas
-currenciesDisplayName.NIC=C\u00f3rdoba nicaraguano
-currenciesDisplayName.DJF=Franco do Djibuti
-currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) do Equador
-currenciesDisplayName.SBD=D\u00f3lar das Ilhas Salom\u00e3o
-currenciesDisplayName.UZS=Sum do Usbequist\u00e3o
-currenciesDisplayName.ECS=Sucre equatoriano
-currenciesDisplayName.PHP=Peso filipino
-currenciesDisplayName.THB=Baht tailand\u00eas
-currenciesDisplayName.LUF=Franco luxemburgu\u00eas
-currenciesDisplayName.FIM=Marca finlandesa
-currenciesDisplayName.TTD=D\u00f3lar de Trinidad e Tobago
-currenciesDisplayName.SZL=Lilangeni da Suazil\u00e2ndia
-currenciesDisplayName.MNT=Tugrik mongol
-currenciesDisplayName.SAR=Rial saudita
-currenciesDisplayName.UAK=Karbovanetz ucraniano
-currenciesDisplayName.UAH=Hryvnia ucraniano
-currenciesDisplayName.HUF=Forinte h\u00fangaro
-currenciesDisplayName.COP=Peso colombiano
-currenciesDisplayName.QAR=Rial catariano
-currenciesDisplayName.LTT=Talonas lituano
-currenciesDisplayName.PTE=Escudo portugu\u00eas
-currenciesDisplayName.AOR=Cuanza angolano reajustado (1995-1999)
-currenciesDisplayName.UYU=Peso uruguaio
-currenciesDisplayName.GBP=Libra esterlina brit\u00e2nica
-currenciesDisplayName.BIF=Franco do Burundi
-currenciesDisplayName.INR=Rupia indiana
-currenciesDisplayName.ZRZ=Zaire zairense
-currenciesDisplayName.AON=Cuanza novo angolano (1990-2000)
-currenciesDisplayName.LTL=Lita lituano
-currenciesDisplayName.XFU=Franco UIC franc\u00eas
-currenciesDisplayName.KZT=Tenge do Cazaquist\u00e3o
-currenciesDisplayName.MZM=Metical de Mo\u00e7ambique
-currenciesDisplayName.UYP=Peso uruguaio (1975-1993)
-currenciesDisplayName.AOK=Cuanza angolano (1977-1990)
-currenciesDisplayName.BUK=Kyat birman\u00eas
-currenciesDisplayName.GNS=Syli de Guin\u00e9
-currenciesDisplayName.XFO=Franco-ouro franc\u00eas
-currenciesDisplayName.PGK=Kina da Papua-Nova Guin\u00e9
-currenciesDisplayName.SYP=Libra s\u00edria
-currenciesDisplayName.MZE=Escudo de Mo\u00e7ambique
-currenciesDisplayName.OMR=Rial de Om\u00e3
-currenciesDisplayName.NGN=Naira nigeriana
-currenciesDisplayName.ZRN=Zaire Novo zairense
-currenciesDisplayName.AOA=Cuanza angolano
-currenciesDisplayName.CNY=Yuan Renminbi chin\u00eas
-currenciesDisplayName.MAF=Franco marroquino
-currenciesDisplayName.GNF=Franco de Guin\u00e9
-currenciesDisplayName.HTG=Gurde do Haiti
-currenciesDisplayName.MAD=Dir\u00e9m marroquino
-currenciesDisplayName.MMK=Kyat de Mianmar
-currenciesDisplayName.MYR=Ringgit malaio
-currenciesDisplayName.LSL=Loti de Lesoto
-currenciesDisplayName.XEU=Unidade Monet\u00e1ria Europ\u00e9ia
-currenciesDisplayName.BHD=Dinar bareinita
-currenciesDisplayName.SLL=Leone de Serra Leoa
-currenciesDisplayName.BTN=Ngultrum do But\u00e3o
-currenciesDisplayName.TRL=Lira turca
-currenciesDisplayName.KMF=Franco de Comores
-currenciesDisplayName.ANG=Guilder das Antilhas Holandesas
-currenciesDisplayName.CZK=Coroa da Rep\u00fablica Checa
-currenciesDisplayName.AZM=Manat azerbaijano
-currenciesDisplayName.KYD=D\u00f3lar das Ilhas Caim\u00e3o
-currenciesDisplayName.GMD=Dalasi de G\u00e2mbia
-currenciesDisplayName.BGN=Lev novo b\u00falgaro
-currenciesDisplayName.CAD=D\u00f3lar canadense
-currenciesDisplayName.MXV=Unidad de Inversion (UDI) mexicana
-currenciesDisplayName.BGL=Lev forte b\u00falgaro
-currenciesDisplayName.VEB=Bol\u00edvar venezuelano
-currenciesDisplayName.MLF=Franco de Mali
-currenciesDisplayName.ILS=Sheqel Novo israelita
-currenciesDisplayName.MXP=Peso Plata mexicano (1861-1992)
-currenciesDisplayName.PES=Sol peruano
-currenciesDisplayName.GYD=D\u00f3lar da Guiana
-currenciesDisplayName.MXN=Peso mexicano
-currenciesDisplayName.ILP=Libra israelita
-currenciesDisplayName.SKK=Coroa eslovaca
-currenciesDisplayName.CYP=Libra de Chipre
-currenciesDisplayName.XDR=Direitos Especiais de Giro
-currenciesDisplayName.PEN=Sol Novo peruano
-currenciesDisplayName.LRD=D\u00f3lar liberiano
-currenciesDisplayName.PEI=Inti peruano
-currenciesDisplayName.AMD=Dram Arm\u00e9nio
-currenciesDisplayName.BSD=D\u00f3lar das Bahamas
-currenciesDisplayName.HRK=Kuna croata
-currenciesDisplayName.CLP=Peso chileno
-currenciesDisplayName.HRD=Dinar croata
-currenciesDisplayName.XPF=Franco CFP
-currenciesDisplayName.FRF=Franco franc\u00eas
-currenciesDisplayName.BRR=Cruzeiro brasileiro
-currenciesDisplayName.MKD=Dinar maced\u00f4nio
-currenciesDisplayName.CLF=Unidades de Fomento chilenas
-currenciesDisplayName.ALL=Lek Alban\u00eas
-currenciesDisplayName.BRN=Cruzado novo brasileiro
-currenciesDisplayName.MWK=Cuacha do Mal\u00e1ui
-currenciesDisplayName.BRL=Real brasileiro
-currenciesDisplayName.TPE=Escudo timorense
-currenciesDisplayName.BRE=Cruzeiro brasileiro (1990-1993)
-currenciesDisplayName.BRC=Cruzado brasileiro
-currenciesDisplayName.BRB=Cruzeiro novo brasileiro(1967-1986)
-currenciesDisplayName.DEM=Marco alem\u00e3o
-currenciesDisplayName.KWD=Dinar coveitiano
-currenciesDisplayName.XCD=D\u00f3lar do Caribe Oriental
-currenciesDisplayName.NPR=Rupia nepalesa
-currenciesDisplayName.GWP=Peso da Guin\u00e9-Bissau
-currenciesDisplayName.YUN=Dinar convers\u00edvel iugoslavo
-currenciesDisplayName.SVC=Colom salvadorenho
-currenciesDisplayName.YUM=Super Dinar iugoslavo
-currenciesDisplayName.BEL=Franco belga (financeiro)
-currenciesDisplayName.SIT=Tolar Bons esloveno
-currenciesDisplayName.JPY=Iene japon\u00eas
-currenciesDisplayName.XOF=Franco CFA BCEAO
-currenciesDisplayName.MVR=Rupias das Ilhas Maldivas
-currenciesDisplayName.GWE=Escudo da Guin\u00e9 Portuguesa
-currenciesDisplayName.BEF=Franco belga
-currenciesDisplayName.TOP=Pa\u02bbanga de Tonga
-currenciesDisplayName.YUD=Dinar forte iugoslavo
-currenciesDisplayName.BEC=Franco belga (convers\u00edvel)
-currenciesDisplayName.SUR=Rublo sovi\u00e9tico
-currenciesDisplayName.ROL=Leu romeno
-currenciesDisplayName.DDM=Ostmark da Alemanha Oriental
-currenciesDisplayName.BDT=Taka de Bangladesh
-currenciesDisplayName.XBD=Unidade de Conta Europ\u00e9ia (XBD)
-currenciesDisplayName.AWG=Guilder de Aruba
-currenciesDisplayName.XBC=Unidade de Conta Europ\u00e9ia (XBC)
-currenciesDisplayName.XBB=Unidade Monet\u00e1ria Europ\u00e9ia
-currenciesDisplayName.XBA=Unidade Composta Europ\u00e9ia
-currenciesDisplayName.NOK=Coroa norueguesa
-currenciesDisplayName.MUR=Rupia de Maur\u00edcio
-currenciesDisplayName.ZAR=Rand sul-africano
-currenciesDisplayName.SHP=Libra de Santa Helena
+currenciesDisplayName.IQD=Dinares iraquianos
+currenciesDisplayName.ARA=Austrais argentinos
+currenciesDisplayName.SCR=R\u00fapias das Ilhas Seychelles
+currenciesDisplayName.VUV=Vatus de Vanuatu
+currenciesDisplayName.KPW=Wons norte coreano
+currenciesDisplayName.DKK=Krones dinamarqueses
+currenciesDisplayName.IDR=R\u00fapias da Indon\u00e9sia
+currenciesDisplayName.GQE=Ekweles da Guin\u00e9a Equatorial
+currenciesDisplayName.SOS=Shillings da Som\u00e1lia
+currenciesDisplayName.LVR=Rublos da Let\u00f4nia
+currenciesDisplayName.EQE=Ekweles
+currenciesDisplayName.AED=Dirhans de UAE
+currenciesDisplayName.LVL=Latses da Let\u00f4nia
+currenciesDisplayName.BWP=Pulas de Botsuana
+currenciesDisplayName.RUR=R\u00fapias russas (RUR)
+currenciesDisplayName.NIO=C\u00f3rdobas de ouro da Nicar\u00e1gua
+currenciesDisplayName.XTS=C\u00f3digo de moeda de teste
+currenciesDisplayName.MOP=Patacas de Macau
+currenciesDisplayName.FJD=D\u00f3lares de Fiji
+currenciesDisplayName.ADP=Pesetas de Andorra
+currenciesDisplayName.RUB=R\u00fapias russas
+currenciesDisplayName.CDF=Francos congoleses
+currenciesDisplayName.NIC=C\u00f3rdobas da Nicar\u00e1gua
+currenciesDisplayName.DJF=Francos de Djibouti
+currenciesDisplayName.UZS=Sums do Uzbequist\u00e3o
+currenciesDisplayName.SBD=D\u00f3lares das Ilhas Salom\u00e3o
+currenciesDisplayName.ECV=Unidades de valor constante equatoriana (UVC)
+currenciesDisplayName.LUL=Francos financeiros de Luxemburgo
+currenciesDisplayName.ECS=Sucres equatorianos
+currenciesDisplayName.THB=Bahts da Tail\u00e2ndia
+currenciesDisplayName.PHP=Pesos filipinos
+currenciesDisplayName.LUF=Francos de Luxemburgo
+currenciesDisplayName.RHD=D\u00f3lares da Rod\u00e9sia
+currenciesDisplayName.LUC=Francos convers\u00edveis de Luxemburgo
+currenciesDisplayName.FIM=Markkas finlandesas
+currenciesDisplayName.TTD=D\u00f3lares de Trinidad e Tobago
+currenciesDisplayName.SZL=Lilangenis da Suazil\u00e2ndia
+currenciesDisplayName.MNT=Tugriks da Mong\u00f3lia
+currenciesDisplayName.UAK=Karbovanetzs da Ucr\u00e2nia
+currenciesDisplayName.SAR=Riyales sauditas
+currenciesDisplayName.COU=Unidades de valor real
+currenciesDisplayName.UAH=Hryvnias da Ucr\u00e2nia
+currenciesDisplayName.HUF=Forints h\u00fangaros
+currenciesDisplayName.QAR=Riales do Quatar
+currenciesDisplayName.COP=Pesos colombianos
+currenciesDisplayName.LTT=Talonases lituanas
+currenciesDisplayName.PTE=Escudos portugueses
+currenciesDisplayName.UYU=Pesos uruguaios
+currenciesDisplayName.AOR=Kwanzas angolanos reajustados (AOR)
+currenciesDisplayName.GBP=Libras esterlinas brit\u00e2nicas
+currenciesDisplayName.ZRZ=Zaires do Zaire
+currenciesDisplayName.INR=R\u00fapias ind\u00fas
+currenciesDisplayName.BIF=Francos do Burundi
+currenciesDisplayName.XFU=Francos UIC franceses
+currenciesDisplayName.MZN=Meticales de Mo\u00e7ambique
+currenciesDisplayName.LTL=Litas lituanas
+currenciesDisplayName.AON=Novos kwanzas angolanos (AOK)
+currenciesDisplayName.UYP=Pesos uruguaios (UYP)
+currenciesDisplayName.MZM=Meticales antigos de Mo\u00e7ambique
+currenciesDisplayName.KZT=Tengue do Casaquist\u00e3o
+currenciesDisplayName.AOK=Kwanzas angolanos (AOK)
+currenciesDisplayName.GNS=Sylis da Guin\u00e9a
+currenciesDisplayName.BUK=Kyats burmeses
+currenciesDisplayName.XFO=Francos de ouro franceses
+currenciesDisplayName.PGK=Kinas de Papua Nova Guin\u00e9
+currenciesDisplayName.UYI=Pesos uruguaios em unidades indexadas
+currenciesDisplayName.SYP=Libras s\u00edrias
+currenciesDisplayName.OMR=Riales de Om\u00e3
+currenciesDisplayName.MZE=Escudos de Mo\u00e7ambique
+currenciesDisplayName.ZRN=Novos zaires do Zaire
+currenciesDisplayName.NGN=Nairas da Nig\u00e9ria
+currenciesDisplayName.CNY=Yuans chineses
+currenciesDisplayName.AOA=Kwanzas angolanos
+currenciesDisplayName.MAF=Francos marroquinos
+currenciesDisplayName.RSD=Dinares s\u00e9rvios
+currenciesDisplayName.GNF=Francos da Guin\u00e9a
+currenciesDisplayName.MAD=Dirhams marroquinos
+currenciesDisplayName.HTG=Gourdes haitianos
+currenciesDisplayName.TRY=Liras turcas
+currenciesDisplayName.MMK=Kyats de Mianmar
+currenciesDisplayName.XRE=Fundos RINET
+currenciesDisplayName.MYR=Ringgits da Mal\u00e1sia
+currenciesDisplayName.LSM=Malotis
+currenciesDisplayName.XEU=Unidades de moedas europ\u00e9ias
+currenciesDisplayName.LSL=Lotis do Lesoto
+currenciesDisplayName.SLL=Leones de Serra Leoa
+currenciesDisplayName.BHD=Dinares do Bahraini
+currenciesDisplayName.BTN=Ngultruns do But\u00e3o
+currenciesDisplayName.TRL=Liras turcas antigas
+currenciesDisplayName.KMF=Francos de Comoro
+currenciesDisplayName.CZK=Coronas da Rep\u00fablica Tcheca
+currenciesDisplayName.ANG=Florins das Antilhas Holandesas
+currenciesDisplayName.AZN=Manats do Azeibaij\u00e3o
+currenciesDisplayName.AZM=Manats do Azeibaij\u00e3o (AZM)
+currenciesDisplayName.KYD=D\u00f3lares das Ilhas Caiman
+currenciesDisplayName.GMD=Dalasis da G\u00e2mbia
+currenciesDisplayName.VEF=Bol\u00edvares fortes da Venezuela
+currenciesDisplayName.BGN=Novos levs da Bulg\u00e1ria
+currenciesDisplayName.MXV=Unidades de investimento mexicanas (UDI)
+currenciesDisplayName.CAD=D\u00f3lares canadenses
+currenciesDisplayName.BGL=Levs pesados da Bulg\u00e1ria
+currenciesDisplayName.VEB=Bol\u00edvares venezuelano
+currenciesDisplayName.MLF=Francos de Mali
+currenciesDisplayName.MXP=Pesos de prata mexicanos (MXP)
+currenciesDisplayName.ILS=Sheqels novos israelis
+currenciesDisplayName.PES=Soles peruanos
+currenciesDisplayName.MXN=Pesos mexicanos
+currenciesDisplayName.GYD=D\u00f3lares da Guiana
+currenciesDisplayName.ILP=Libras israelis
+currenciesDisplayName.CYP=Libras do Chipre
+currenciesDisplayName.SKK=Corunas eslovacas
+currenciesDisplayName.XDR=direitos de desenho especiais
+currenciesDisplayName.PEN=Novos soles peruanos
+currenciesDisplayName.LRD=D\u00f3lares da Lib\u00e9ria
+currenciesDisplayName.PEI=Intis peruanos
+currenciesDisplayName.AMD=Dram arm\u00eanio
+currenciesDisplayName.BSD=D\u00f3lares de Bahamian
+currenciesDisplayName.XPT=Platina
+currenciesDisplayName.HRK=Kunas croatas
+currenciesDisplayName.CLP=Pesos chilenos
+currenciesDisplayName.HRD=Dinares croata
+currenciesDisplayName.XPF=Francos CFP
+currenciesDisplayName.FRF=Francos franceses
+currenciesDisplayName.XPD=Pal\u00e1dio
+currenciesDisplayName.BRR=Cruzeiros brasileiros
+currenciesDisplayName.MKD=Denares da Maced\u00f4nia
+currenciesDisplayName.CLF=Unidades de fomento chilenas
+currenciesDisplayName.ALL=Leks albaneses
+currenciesDisplayName.BRN=Cruzados novos brasileiros
+currenciesDisplayName.MWK=Kwachas do Malawi
+currenciesDisplayName.BRL=Reais brasileiros
+currenciesDisplayName.TPE=Escudos do Timor
+currenciesDisplayName.BRE=Cruzeiros brasileiros (BRE)
+currenciesDisplayName.BRC=Cruzados brasileiros
+currenciesDisplayName.BRB=Cruzeiro novo brasileiro (BRB)
+currenciesDisplayName.DEM=Marcos alem\u00e3es
+currenciesDisplayName.KWD=Dinares kuaitianos
+currenciesDisplayName.XCD=D\u00f3lares do Caribe Oriental
+currenciesDisplayName.NPR=R\u00fapias nepalesas
+currenciesDisplayName.GWP=Pesos de Guin\u00e9-Bissau
+currenciesDisplayName.YUN=Dinares convers\u00edveis da Iugosl\u00e1via
+currenciesDisplayName.SVC=Colons de El Salvador
+currenciesDisplayName.YUM=Dinares noviy da Iugosl\u00e1via
+currenciesDisplayName.BEL=Francos belgas (financeiro)
+currenciesDisplayName.SIT=Tolares da Eslov\u00eania
+currenciesDisplayName.JPY=Ienes japoneses
+currenciesDisplayName.XOF=Francos CFA de BCEAO
+currenciesDisplayName.MVR=Rufiyaas das Ilhas Maldivas
+currenciesDisplayName.BEF=Francos belgas
+currenciesDisplayName.GWE=Escudos da Guin\u00e9a Portuguesa
+currenciesDisplayName.TOP=Pa\u02bbangas de Tonga
+currenciesDisplayName.YUD=Dinares pesados da Iugosl\u00e1via
+currenciesDisplayName.BEC=Francos belgas (convers\u00edvel)
+currenciesDisplayName.SUR=R\u00fapias sovi\u00e9ticas
+currenciesDisplayName.RON=Lei da Rom\u00eania
+currenciesDisplayName.ROL=Leus antigos da Rom\u00eania
+currenciesDisplayName.BDT=Takas de Bangladesh
+currenciesDisplayName.DDM=Ostmarks da Alemannha Oriental
+currenciesDisplayName.XBD=Unidades europ\u00e9ias de conta (XBD)
+currenciesDisplayName.AWG=Florins de Aruba
+currenciesDisplayName.XBC=Unidades europ\u00e9ias de conta (XBC)
+currenciesDisplayName.XBB=Unidades monet\u00e1rias europ\u00e9ias
+currenciesDisplayName.XBA=Unidades de composi\u00e7\u00e3o europ\u00e9ias
+currenciesDisplayName.NOK=Crones noruegueses
+currenciesDisplayName.MUR=R\u00fapias das Ilhas Maur\u00edcio
+currenciesDisplayName.ZAR=Rands da \u00c1frica do Sul
+currenciesDisplayName.SHP=Libras de Santa Helena
 currenciesDisplayName.XAU=Ouro
-currenciesDisplayName.ZAL=Rand sul-africano (financeiro)
-currenciesDisplayName.VND=Dong vietnamita
-currenciesDisplayName.TZS=Xelim de Tanz\u00e2nia
-currenciesDisplayName.GIP=Libra de Gibraltar
-currenciesDisplayName.TND=Dinar tunisiano
-currenciesDisplayName.CVE=Escudo cabo-verdiano
-currenciesDisplayName.UGX=Xelim ugandense
-currenciesDisplayName.ZMK=Cuacha zambiano
-currenciesDisplayName.JOD=Dinar jordaniano
-currenciesDisplayName.XAF=Franco CFA BEAC
-currenciesDisplayName.LBP=Libra libanesa
-currenciesDisplayName.UGS=Xelim ugandense (1966-1987)
-currenciesDisplayName.STD=Dobra de S\u00e3o Tom\u00e9 e Pr\u00edncipe
-currenciesDisplayName.WST=Tala de Samoa Ocidental
-currenciesDisplayName.KHR=Riel cambojano
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Peso dominicano
-currenciesDisplayName.BOV=Mvdol boliviano
-currenciesDisplayName.MTP=Libra maltesa
-currenciesDisplayName.USS=D\u00f3lar norte-americano (Mesmo dia)
-currenciesDisplayName.BOP=Peso boliviano
-currenciesDisplayName.MTL=Lira maltesa
-currenciesDisplayName.CUP=Peso cubano
-currenciesDisplayName.TMM=Manat do Turcomenist\u00e3o
-currenciesDisplayName.USN=D\u00f3lar norte-americano (Dia seguinte)
-currenciesDisplayName.SGD=D\u00f3lar de Cingapura
-currenciesDisplayName.NZD=D\u00f3lar da Nova Zel\u00e2ndia
-currenciesDisplayName.USD=D\u00f3lar norte-americano
-currenciesDisplayName.HNL=Lempira de Honduras
-currenciesDisplayName.BOB=Boliviano
-currenciesDisplayName.ITL=Lira italiana
-currenciesDisplayName.PAB=Balboa panamenho
-currenciesDisplayName.GTQ=Quet\u00e7al da Guatemala
-currenciesDisplayName.LAK=Kip de Laos
-currenciesDisplayName.GHC=Cedi de Gana
-currenciesDisplayName.AUD=D\u00f3lar australiano
-currenciesDisplayName.NAD=D\u00f3lar da Nam\u00edbia
-currenciesDisplayName.KGS=Som de Quirguist\u00e3o
-currenciesDisplayName.MGF=Franco de Madagascar
-currenciesDisplayName.CHF=Franco su\u00ed\u00e7o
-currenciesDisplayName.BBD=D\u00f3lar de Barbados
-currenciesDisplayName.MGA=Ariary de Madagascar
-currenciesDisplayName.PYG=Guarani paraguaio
-currenciesDisplayName.PLZ=Zloti polon\u00eas (1950-1995)
-currenciesDisplayName.YER=Rial iemenita
-currenciesDisplayName.ATS=Xelim austr\u00edaco
-currenciesDisplayName.ETB=Birr et\u00edope
-currenciesDisplayName.BND=D\u00f3lar do Brunei
-currenciesDisplayName.JMD=D\u00f3lar jamaicano
-currenciesDisplayName.EGP=Libra eg\u00edpcia
-currenciesDisplayName.PLN=Zloti polon\u00eas
-currenciesDisplayName.DZD=Dinar argelino
-currenciesDisplayName.ISK=Coroa islandesa
-currenciesDisplayName.SRG=Guilder do Suriname
-currenciesDisplayName.LYD=Dinar l\u00edbio
-currenciesDisplayName.BZD=D\u00f3lar do Belize
-currenciesDisplayName.BAM=Marco b\u00f3snio-herzeg\u00f3vino convers\u00edvel
-currenciesDisplayName.ESP=Peseta espanhola
-currenciesDisplayName.KRW=Won sul-coreano
-currenciesDisplayName.NLG=Guilder holand\u00eas
-currenciesDisplayName.MRO=Ouguiya da Maurit\u00e2nia
-currenciesDisplayName.BAD=Dinar da B\u00f3snia-Herzeg\u00f3vina
-currenciesDisplayName.ZWD=D\u00f3lar do Zimb\u00e1bwe
-currenciesDisplayName.SEK=Coroa sueca
-currenciesDisplayName.CSK=Coroa Forte checoslovaca
-currenciesDisplayName.BYR=Rublo bielo-russo
-currenciesDisplayName.IRR=Rial iraniano
-currenciesDisplayName.PKR=Rupia paquistanesa
-currenciesDisplayName.BMD=D\u00f3lar das Bermudas
-currenciesSymbol.XPF=CFPF
+currenciesDisplayName.ZAL=Rands da \u00c1frica do Sul (financeiro)
+currenciesDisplayName.VND=Dongs vietnameses
+currenciesDisplayName.TZS=Shillings da Tanz\u00e2nia
+currenciesDisplayName.GIP=Libras de Gibraltar
+currenciesDisplayName.TND=Dinares da Tun\u00edsia
+currenciesDisplayName.CVE=Escudos de Cabo Verde
+currenciesDisplayName.UGX=Shillings de Uganda
+currenciesDisplayName.XAG=Prata
+currenciesDisplayName.ZMK=Kwachas da Z\u00e2mbia
+currenciesDisplayName.JOD=Dinares jordanianos
+currenciesDisplayName.XAF=Francos CFA de BEAC
+currenciesDisplayName.LBP=Libras libanesas
+currenciesDisplayName.UGS=Shillings de Uganda (UGS)
+currenciesDisplayName.STD=Dobras de San Tom\u00e9 e Pr\u00edncipe
+currenciesDisplayName.WST=Talas da Samoa Ocidental
+currenciesDisplayName.KHR=Rieles cambojanos
+currenciesDisplayName.DOP=Pesos dominicanos
+currenciesDisplayName.EUR=Euros
+currenciesDisplayName.BOV=Mvdols bolivianos
+currenciesDisplayName.MTP=Libras maltesas
+currenciesDisplayName.USS=D\u00f3lares americanos (mesmo dia)
+currenciesDisplayName.BOP=Pesos bolivianos
+currenciesDisplayName.CUP=Pesos cubanos
+currenciesDisplayName.MTL=Liras maltesas
+currenciesDisplayName.TMM=Manats do Turcomenist\u00e3o
+currenciesDisplayName.USN=D\u00f3lares americanos (dia seguinte)
+currenciesDisplayName.GHS=Cedis de Gana
+currenciesDisplayName.SGD=D\u00f3lares de Singapura
+currenciesDisplayName.NZD=D\u00f3lares da Nova Zel\u00e2ndia
+currenciesDisplayName.USD=D\u00f3lares americanos
+currenciesDisplayName.BOB=Bolivianos
+currenciesDisplayName.HNL=Lempiras de Honduras
+currenciesDisplayName.CHW=Francos WIR
+currenciesDisplayName.ITL=Liras italianas
+currenciesDisplayName.PAB=Balboas do Panam\u00e1
+currenciesDisplayName.GTQ=Quetzales da Guatemala
+currenciesDisplayName.XXX=moeda desconhecida ou inv\u00e1lida
+currenciesDisplayName.AUD=D\u00f3lares australianos
+currenciesDisplayName.GHC=Cedis de Gana (GHC)
+currenciesDisplayName.LAK=Kips do Laos
+currenciesDisplayName.NAD=D\u00f3lares da Nam\u00edbia
+currenciesDisplayName.KGS=Soms do Quirguist\u00e3o
+currenciesDisplayName.MGF=Francos de Madagascar
+currenciesDisplayName.BBD=D\u00f3lares de Barbados
+currenciesDisplayName.CHF=Francos su\u00ed\u00e7os
+currenciesDisplayName.CHE=Euros WIR
+currenciesDisplayName.MGA=Ariaries de Madagascar
+currenciesDisplayName.PYG=Guaranis paraguaios
+currenciesDisplayName.PLZ=Zlotis poloneses (PLZ)
+currenciesDisplayName.YER=Riales do I\u00eamen
+currenciesDisplayName.ATS=Schillings australianos
+currenciesDisplayName.ETB=Birrs et\u00edopes
+currenciesDisplayName.BND=D\u00f3lares de Brunei
+currenciesDisplayName.EGP=Libras eg\u00edpcias
+currenciesDisplayName.JMD=D\u00f3lares jamaicanos
+currenciesDisplayName.PLN=Zlotis poloneses
+currenciesDisplayName.DZD=Dinares algerianos
+currenciesDisplayName.ISK=Kronas islandesas
+currenciesDisplayName.SRG=Florins do Suriname
+currenciesDisplayName.LYD=Dinares l\u00edbios
+currenciesDisplayName.SRD=D\u00f3lares do Suriname
+currenciesDisplayName.BAM=Marcas convers\u00edveis da B\u00f3snia Herzegovina
+currenciesDisplayName.BZD=D\u00f3lares de Belize
+currenciesDisplayName.ESP=Pesetas espanholas
+currenciesDisplayName.KRW=Won sul coreano
+currenciesDisplayName.NLG=Florins holandeses
+currenciesDisplayName.MRO=Ouguiyas da Maurit\u00e2nia
+currenciesDisplayName.BAD=Dinares da B\u00f3snia Herzegovina
+currenciesDisplayName.ZWD=D\u00f3lares do Zimb\u00e1bue
+currenciesDisplayName.SEK=Cronas su\u00e9cas
+currenciesDisplayName.CSK=Coronas tchecas
+currenciesDisplayName.BYR=Rublos bielorussos
+currenciesDisplayName.ESB=Pesetas espanholas (conta convers\u00edvel)
+currenciesDisplayName.IRR=Riales iranianos
+currenciesDisplayName.ESA=Pesetas espanholas (conta A)
+currenciesDisplayName.PKR=R\u00fapias paquistanesas
+currenciesDisplayName.BMD=D\u00f3lares das Bermudas
+currenciesDisplayName.CSD=Dinares antigos da S\u00e9rvia
+currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=lev
+currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
+currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
+currenciesSymbol.MWK=MK
+currenciesSymbol.BMD=Ber$
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
+currenciesSymbol.AMD=dram
+currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
+currenciesSymbol.NPR=Nrs
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.KWD=KD
+currenciesSymbol.GEL=lari
+currenciesSymbol.AFN=Af
+currenciesSymbol.ZAR=R
+currenciesSymbol.RON=0\u2264lei|1\u2264leu|1
+currenciesSymbol.IQD=ID
+currenciesSymbol.HKD=HK$
+currenciesSymbol.ARS=Arg$
+currenciesSymbol.JPY=\u00a5
+currenciesSymbol.ALL=lek
+currenciesSymbol.CRC=C
+currenciesSymbol.IDR=Rp
+currenciesSymbol.VND=VND
+currenciesSymbol.DKK=DKr
+currenciesSymbol.TZS=T Sh
+currenciesSymbol.SBD=SI$
+currenciesSymbol.NOK=NKr
+currenciesSymbol.UGX=U Sh
+currenciesSymbol.BEF=BF
+currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
+currenciesSymbol.SZL=E
+currenciesSymbol.STD=Db
+currenciesSymbol.SAR=SRI
+currenciesSymbol.FJD=F$
+currenciesSymbol.UYU=Ur$
+currenciesSymbol.BDT=Tk
+currenciesSymbol.QAR=QR
+currenciesSymbol.LBP=LL
+currenciesSymbol.MNT=Tug
+currenciesSymbol.DJF=DF
+currenciesSymbol.PTE=PTE
+currenciesSymbol.JOD=JD
+currenciesSymbol.SGD=S$
+currenciesSymbol.KHR=CR
+currenciesSymbol.SYP=LS
+currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
+currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.VND=\u0111
-currenciesSymbol.PTE=Esc.
-currenciesSymbol.BRL=R$
-currenciesSymbol.AFN=AFA
-shortMonths=jan®fev®mar®abr®mai®jun®jul®ago®set®out®nov®dez®®
-months=janeiro®fevereiro®mar\u00e7o®abril®maio®junho®julho®agosto®setembro®outubro®novembro®dezembro®®
-shortWeekdays=®dom®seg®ter®qua®qui®sex®s\u00e1b®
-weekdays=®domingo®segunda-feira®ter\u00e7a-feira®quarta-feira®quinta-feira®sexta-feira®s\u00e1bado®
-firstDayOfWeek=mon
-eras=a.C.®d.C.®
-shortDateFormat=dd-MM-yyyy
-mediumDateFormat=d/MMM/yyyy
-longDateFormat=d' de 'MMMM' de 'yyyy
-fullDateFormat=EEEE, d' de 'MMMM' de 'yyyy
-fullTimeFormat=HH'H'mm'm'ss's' z
-zoneStrings=Pacific/Honolulu®HST®Hor\u00e1rio Padr\u00e3o do Hava\u00ed®HST®Hor\u00e1rio Padr\u00e3o do Hava\u00ed®©Europe/Bucharest®EET®Hor\u00e1rio Padr\u00e3o da Europa Oriental®EEST®Hor\u00e1rio de Ver\u00e3o da Europa Oriental®©America/Los_Angeles®PST®Hor\u00e1rio Padr\u00e3o do Pac\u00edfico®PDT®Hor\u00e1rio de Ver\u00e3o do Pac\u00edfico®©America/Denver®MST®Hor\u00e1rio Padr\u00e3o Montanha®MDT®Hor\u00e1rio de Ver\u00e3o Montanha®©Asia/Jerusalem®IST®Hor\u00e1rio Padr\u00e3o de Israel®IDT®Hor\u00e1rio de Ver\u00e3o de Israel®©America/Phoenix®MST®Hor\u00e1rio Padr\u00e3o Montanha®MST®Hor\u00e1rio Padr\u00e3o Montanha®©America/Chicago®CST®Hor\u00e1rio Padr\u00e3o Central®CDT®Hor\u00e1rio de Ver\u00e3o Central®©America/Indianapolis®EST®Hor\u00e1rio Padr\u00e3o Oriental®EST®Hor\u00e1rio Padr\u00e3o Oriental®©America/St_Johns®CNT®Hor\u00e1rio Padr\u00e3o de Terra Nova®CDT®Hor\u00e1rio de Ver\u00e3o de Terra Nova®©America/Anchorage®AST®Hor\u00e1rio Padr\u00e3o do Alasca®ADT®Hor\u00e1rio de Ver\u00e3o do Alasca®©Asia/Shanghai®CTT®Hor\u00e1rio Padr\u00e3o da China®CDT®Hor\u00e1rio Padr\u00e3o da China®©Asia/Tokyo®JST®Hor\u00e1rio Padr\u00e3o do Jap\u00e3o®JST®Hor\u00e1rio Padr\u00e3o do Jap\u00e3o®©Europe/Paris®CET®Hor\u00e1rio Padr\u00e3o Europa Central®CEST®Hor\u00e1rio de Ver\u00e3o Europa Central®©America/New_York®EST®Hor\u00e1rio Padr\u00e3o Oriental®EDT®Hor\u00e1rio de Ver\u00e3o Oriental®©America/Halifax®AST®Hor\u00e1rio Padr\u00e3o Atl\u00e2ntico®ADT®Hor\u00e1rio de Ver\u00e3o Atl\u00e2ntico®©Africa/Casablanca®GMT®Hor\u00e1rio do Meridiano de Greenwich®GMT®Hor\u00e1rio do Meridiano de Greenwich®©
+currenciesSymbol.CVE=CVEsc
+currenciesSymbol.HUF=Ft
+currenciesSymbol.NZD=$NZ
+currenciesSymbol.OMR=RO
+currenciesSymbol.KZT=T
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1
+currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.NAD=N$
+currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
+currenciesSymbol.HNL=L
+currenciesSymbol.KGS=som
+currenciesSymbol.ZWD=Z$
+currenciesSymbol.MYR=RM
+currenciesSymbol.SRG=Sf
+currenciesSymbol.GTQ=Q
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
+currenciesSymbol.VEB=Be
+currenciesSymbol.BOB=Bs
+currenciesSymbol.CNY=Y
+currenciesSymbol.KMF=CF
+currenciesSymbol.SEK=SKr
+currenciesSymbol.AUD=$A
+currenciesSymbol.LYD=LD
+currenciesSymbol.JMD=J$
+currenciesSymbol.SKK=Sk
+currenciesSymbol.CHF=SwF
+currenciesSymbol.ETB=Br
+currenciesSymbol.MRO=UM
+currenciesSymbol.BBD=BDS$
+currenciesSymbol.PKR=Pra
+currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
+currenciesSymbol.MXN=MEX$
+currenciesSymbol.DZD=DA
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.IRR=RI
+currenciesSymbol.GYD=G$
+currenciesSymbol.BAM=KM
+currenciesSymbol.CAD=Can$
+shortMonths=jan\u00aefev\u00aemar\u00aeabr\u00aemai\u00aejun\u00aejul\u00aeago\u00aeset\u00aeout\u00aenov\u00aedez\u00ae\u00ae
+months=janeiro\u00aefevereiro\u00aemar\u00e7o\u00aeabril\u00aemaio\u00aejunho\u00aejulho\u00aeagosto\u00aesetembro\u00aeoutubro\u00aenovembro\u00aedezembro\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aeseg\u00aeter\u00aequa\u00aequi\u00aesex\u00aes\u00e1b\u00ae
+weekdays=\u00aedomingo\u00aesegunda-feira\u00aeter\u00e7a-feira\u00aequarta-feira\u00aequinta-feira\u00aesexta-feira\u00aes\u00e1bado\u00ae
+eras=a.C.\u00aed.C.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd/MM/yyyy
+longDateFormat=d 'de' MMMM 'de' yyyy
+fullDateFormat=EEEE, d 'de' MMMM 'de' yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH'h'mm'min'ss's' z
+zoneStrings=Europe_Central\u00aeHor\u00e1rio da Europa Central\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Europa Central\u00ae\u00ae\u00a9Africa_Western\u00aeHor\u00e1rio da \u00c1frica Ocidental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da \u00c1frica Ocidental\u00ae\u00ae\u00a9Urumqi\u00aeHor\u00e1rio de Urumqi\u00ae\u00ae\u00ae\u00ae\u00a9Kamchatka\u00aeHor\u00e1rio de Petropavlovsk-Kamchatski\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Petropavlovsk-Kamchatski\u00ae\u00ae\u00a9Uralsk\u00aeHor\u00e1rio de Ural'sk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Ural'sk\u00ae\u00ae\u00a9Novosibirsk\u00aeHor\u00e1rio de Novosibirsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Novosibirsk\u00ae\u00ae\u00a9Irkutsk\u00aeHor\u00e1rio de Irkutsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Irkutsk\u00ae\u00ae\u00a9Borneo\u00aeHor\u00e1rio de Born\u00e9o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Born\u00e9o\u00ae\u00ae\u00a9Papua_New_Guinea\u00aeHor\u00e1rio de Papua Nova Guin\u00e9\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Eastern\u00aeHor\u00e1rio Padr\u00e3o da Austr\u00e1lia Oriental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Austr\u00e1lia Oriental\u00ae\u00ae\u00a9Aqtau\u00aeHor\u00e1rio do Aqtau\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Aqtau\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeHor\u00e1rio do Cazaquist\u00e3o Ocidental\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00aeHor\u00e1rio de Sverdlovsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Sverdlovsk\u00ae\u00ae\u00a9Bangladesh\u00aeHor\u00e1rio de Bangladesh\u00ae\u00ae\u00ae\u00ae\u00a9Maldives\u00aeHor\u00e1rio das Ilhas Maldivas\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aeHor\u00e1rio de Ponape\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeHor\u00e1rio de Samarkand\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Samarkand\u00ae\u00ae\u00a9Indian_Ocean\u00aeHor\u00e1rio do Oceano \u00cdndico\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeHor\u00e1rio de Fiji\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Fiji\u00ae\u00ae\u00a9Long_Shu\u00aeHor\u00e1rio de Long-Shu\u00ae\u00ae\u00ae\u00ae\u00a9Singapore\u00aeHor\u00e1rio Padr\u00e3o de Cingapura\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00aeHor\u00e1rio do Arzeibaij\u00e3o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Arzeibaij\u00e3o\u00ae\u00ae\u00a9Amazon\u00aeHor\u00e1rio do Amazonas\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Amazonas\u00ae\u00ae\u00a9Arabian\u00aeHor\u00e1rio Padr\u00e3o da Ar\u00e1bia\u00aeAST (Ar\u00e1bia)\u00aeHor\u00e1rio de Ver\u00e3o \u00c1rabe\u00aeADT (Ar\u00e1bia)\u00ae\u00a9Phoenix_Islands\u00aeHor\u00e1rio das Ilhas F\u00eanix\u00ae\u00ae\u00ae\u00ae\u00a9Yekaterinburg\u00aeHor\u00e1rio de Yekaterinburg\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Yekaterinburg\u00ae\u00ae\u00a9Krasnoyarsk\u00aeHor\u00e1rio de Krasnoyarsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Krasnoyarsk\u00ae\u00ae\u00a9Alaska\u00aeHor\u00e1rio Padr\u00e3o do Alasca\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Alasca\u00ae\u00ae\u00a9Qyzylorda\u00aeHor\u00e1rio de Qyzylorda\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Qyzylorda\u00ae\u00ae\u00a9Gulf\u00aeHor\u00e1rio Padr\u00e3o do Golfo\u00ae\u00ae\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHor\u00e1rio da Guiana Holandesa\u00ae\u00ae\u00ae\u00ae\u00a9Omsk\u00aeHor\u00e1rio de Omsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Omsk\u00ae\u00ae\u00a9Easter\u00aeHor\u00e1rio da Ilha de P\u00e1scoa\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Ilha de P\u00e1scoa\u00ae\u00ae\u00a9Hong_Kong\u00aeHor\u00e1rio de Hong Kong\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Hong Kong\u00ae\u00ae\u00a9Indonesia_Western\u00aeHor\u00e1rio da Indon\u00e9sia Ocidental\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeHor\u00e1rio da Indon\u00e9sia Oriental\u00ae\u00ae\u00ae\u00ae\u00a9Aqtobe\u00aeHor\u00e1rio do Aqtobe\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Aqtobe\u00ae\u00ae\u00a9Vladivostok\u00aeHor\u00e1rio de Vladivostok\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Vladivostok\u00ae\u00ae\u00a9Chamorro\u00aeHor\u00e1rio Padr\u00e3o de Chamorro\u00ae\u00ae\u00ae\u00ae\u00a9Kizilorda\u00aeHor\u00e1rio de Kizilorda\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Kizilorda\u00ae\u00ae\u00a9Armenia\u00aeHor\u00e1rio da Arm\u00eania\u00aeAMT (Arm\u00eania)\u00aeHor\u00e1rio de Ver\u00e3o da Arm\u00eania\u00aeAMST (Arm\u00eania)\u00ae\u00a9America_Pacific\u00aeHor\u00e1rio Padr\u00e3o do Pac\u00edfico\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Pac\u00edfico\u00ae\u00ae\u00a9Almaty\u00aeHor\u00e1rio do Almaty\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Almaty\u00ae\u00ae\u00a9Anadyr\u00aeHor\u00e1rio do Anadyr\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Anadyr\u00ae\u00ae\u00a9Tajikistan\u00aeHor\u00e1rio do Tajiquist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeHor\u00e1rio da Guiana Francesa\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHor\u00e1rio Padr\u00e3o do Hava\u00ed\u00ae\u00ae\u00ae\u00ae\u00a9Nepal\u00aeHor\u00e1rio do Nepal\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeHor\u00e1rio de Brunei Darussalam\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00aeHor\u00e1rio de Dushanbe\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Dushanbe\u00ae\u00ae\u00a9Kosrae\u00aeHor\u00e1rio da Cor\u00e9ia\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeHor\u00e1rio de Yerevan\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Yerevan\u00ae\u00ae\u00a9Tokelau\u00aeHor\u00e1rio de Tokelau\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeHor\u00e1rio do Paraguai\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Paraguai\u00ae\u00ae\u00a9Seychelles\u00aeHor\u00e1rio das Ilhas Seychelles\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeHor\u00e1rio Padr\u00e3o de Israel\u00aeIST (Israel)\u00aeHor\u00e1rio de Ver\u00e3o de Israel\u00ae\u00ae\u00a9Cocos\u00aeHor\u00e1rio das Ilhas Coco\u00ae\u00ae\u00ae\u00ae\u00a9Norfolk\u00aeHor\u00e1rio das Ilhas Norfolk\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeHor\u00e1rio de Volgograd\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Volgograd\u00ae\u00ae\u00a9Greenland_Western\u00aeHor\u00e1rio da Groenl\u00e2ndia Ocidental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Groenl\u00e2ndia Ocidental\u00ae\u00ae\u00a9New_Caledonia\u00aeHor\u00e1rio da Nova Caled\u00f4nia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Nova Caled\u00f4nia\u00ae\u00ae\u00a9Europe_Eastern\u00aeHor\u00e1rio da Europa Oriental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Europa Oriental\u00ae\u00ae\u00a9North_Mariana\u00aeHor\u00e1rio das Ilhas Mariana do Norte\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00aeHor\u00e1rio Padr\u00e3o de Newfoundland\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Newfoundland\u00ae\u00ae\u00a9Australia_Western\u00aeHor\u00e1rio Padr\u00e3o da Austr\u00e1lia Ocidental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Austr\u00e1lia Ocidental\u00ae\u00ae\u00a9Moscow\u00aeHor\u00e1rio Padr\u00e3o de Moscou\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Moscou\u00ae\u00ae\u00a9Kyrgystan\u00aeHor\u00e1rio do Quirguist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00aeHor\u00e1rio da Venezuela\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeHor\u00e1rio de Malaia\u00ae\u00ae\u00ae\u00ae\u00a9Peru\u00aeHor\u00e1rio do Peru\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Peru\u00ae\u00ae\u00a9Christmas\u00aeHor\u00e1rio das Ilhas Christmas\u00ae\u00ae\u00ae\u00ae\u00a9South_Georgia\u00aeHor\u00e1rio da Georgia do Sul\u00aeGST (Georgia do Sul)\u00ae\u00ae\u00ae\u00a9Korea\u00aeHor\u00e1rio Padr\u00e3o da Cor\u00e9ia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Cor\u00e9ia\u00ae\u00ae\u00a9Argentina_Western\u00aeHor\u00e1rio da Argentina Ocidental\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00aeHor\u00e1rio da \u00c1frica Oriental\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00aeHor\u00e1rio do Turcomenist\u00e3o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Turcomenist\u00e3o\u00ae\u00ae\u00a9Pierre_Miquelon\u00aeHor\u00e1rio Padr\u00e3o de Pierre e Miquelon\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Pierre e Miquelon\u00ae\u00ae\u00a9Atlantic\u00aeHor\u00e1rio Padr\u00e3o do Atl\u00e2ntico\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Atl\u00e2ntico\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeHor\u00e1rio Padr\u00e3o do Alaska-Hava\u00ed\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Alasca-Hava\u00ed\u00ae\u00ae\u00a9Uzbekistan\u00aeHor\u00e1rio do Uzbequist\u00e3o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Uzbequist\u00e3o\u00ae\u00ae\u00a9Lord_Howe\u00aeHor\u00e1rio Padr\u00e3o de Lord Howe\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Lord Howe\u00ae\u00ae\u00a9Hovd\u00aeHor\u00e1rio de Hovd\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Hovd\u00ae\u00ae\u00a9Cape_Verde\u00aeHor\u00e1rio de Cabo Verde\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Cabo Verde\u00ae\u00ae\u00a9Tbilisi\u00aeHor\u00e1rio de Tbilisi\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Tbilisi\u00ae\u00ae\u00a9Malaysia\u00aeHor\u00e1rio da Mal\u00e1sia\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeHor\u00e1rio Padr\u00e3o Oriental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o Oriental\u00ae\u00ae\u00a9Baku\u00aeHor\u00e1rio de Baku\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Baku\u00ae\u00ae\u00a9Reunion\u00aeHor\u00e1rio das Ilhas Reuni\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Davis\u00aeHor\u00e1rio de Davis\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeHor\u00e1rio de Padr\u00e3o de Chatham\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Chatham\u00ae\u00ae\u00a9Noronha\u00aeHor\u00e1rio de Fernando de Noronha\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Fernando de Noronha\u00ae\u00ae\u00a9Syowa\u00aeHor\u00e1rio de Syowa\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeHor\u00e1rio do Afeganist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Palau\u00aeHor\u00e1rio de Palau\u00ae\u00ae\u00ae\u00ae\u00a9Samoa\u00aeHor\u00e1rio Padr\u00e3o de Samoa\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeHor\u00e1rio da Ant\u00e1rtida e do Sul da Fran\u00e7a\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00aeHor\u00e1rio das Ilhas Salom\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Line_Islands\u00aeHor\u00e1rio das Ilhas Line\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeHor\u00e1rio do Equador\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00aeHor\u00e1rio do Acre\u00aeACT (Acre)\u00aeHor\u00e1rio de Ver\u00e3o do Acre\u00aeACST (Acre)\u00ae\u00a9Dacca\u00aeHor\u00e1rio de Dacca\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aeHor\u00e1rio de Choibalsan\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Choibalsan\u00ae\u00ae\u00a9Europe_Western\u00aeHor\u00e1rio da Europa Ocidental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Europa Ocidental\u00ae\u00ae\u00a9Africa_Central\u00aeHor\u00e1rio da \u00c1frica Central\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aeHor\u00e1rio da Turquia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Turquia\u00ae\u00ae\u00a9Africa_Southern\u00aeHor\u00e1rio Padr\u00e3o da \u00c1frica do Sul\u00ae\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00aeHor\u00e1rio de Ashkhabad\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Ashkhabad\u00ae\u00ae\u00a9Bering\u00aeHor\u00e1rio Padr\u00e3o de Bering\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Bering\u00ae\u00ae\u00a9Guam\u00aeHor\u00e1rio Padr\u00e3o de Guam\u00aeGST (Guam)\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00aeHor\u00e1rio das Ilhas Marshall\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeHor\u00e1rio do But\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Changbai\u00aeHor\u00e1rio de Changbai\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00aeHor\u00e1rio de Sakhalin\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Sakhalin\u00ae\u00ae\u00a9Karachi\u00aeHor\u00e1rio de Karachi\u00ae\u00ae\u00ae\u00ae\u00a9Truk\u00aeHor\u00e1rio de Truk\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00aeHor\u00e1rio de Tashkent\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Tashkent\u00ae\u00ae\u00a9Nauru\u00aeHor\u00e1rio de Nauru\u00ae\u00ae\u00ae\u00ae\u00a9Tuvalu\u00aeHor\u00e1rio de Tuvalu\u00ae\u00ae\u00ae\u00ae\u00a9Gilbert_Islands\u00aeHor\u00e1rio das Ilhas Gilberto\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeHor\u00e1rio das Filipinas\u00ae\u00aeHor\u00e1rio de Ver\u00e3o das Filipinas\u00ae\u00ae\u00a9East_Timor\u00aeHor\u00e1rio do Timor Leste\u00ae\u00ae\u00ae\u00ae\u00a9Pitcairn\u00aeHor\u00e1rio de Pitcairn\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00aeHor\u00e1rio de Yakutsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Yakutsk\u00ae\u00ae\u00a9Iran\u00aeHor\u00e1rio Padr\u00e3o do Ir\u00e3\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Ir\u00e3\u00ae\u00ae\u00a9Argentina\u00aeHor\u00e1rio da Argentina\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Argentina\u00ae\u00ae\u00a9Tonga\u00aeHor\u00e1rio de Tonga\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Tonga\u00ae\u00ae\u00a9Yukon\u00aeHor\u00e1rio Padr\u00e3o de Yukon\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Yukon\u00ae\u00ae\u00a9New_Zealand\u00aeHor\u00e1rio Padr\u00e3o da Nova Zel\u00e2ndia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Nova Zel\u00e2ndia\u00ae\u00ae\u00a9Magadan\u00aeHor\u00e1rio de Magadan\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Magadan\u00ae\u00ae\u00a9Gambier\u00aeHor\u00e1rio de Gambier\u00ae\u00ae\u00ae\u00ae\u00a9China\u00aeHor\u00e1rio Padr\u00e3o da China\u00aeCST (China)\u00aeHor\u00e1rio de Ver\u00e3o da China\u00aeCDT (China)\u00ae\u00a9Indonesia_Central\u00aeHor\u00e1rio da Indon\u00e9sia Central\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeHor\u00e1rio Padr\u00e3o da Montanha\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Montanha\u00ae\u00ae\u00a9India\u00aeHor\u00e1rio Padr\u00e3o da \u00cdndia\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00aeHor\u00e1rio do Suriname\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeHor\u00e1rio do Meridiano de Greenwich\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00aeHor\u00e1rio de Samara\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Samara\u00ae\u00ae\u00a9Marquesas\u00aeHor\u00e1rio das Marquesas\u00ae\u00ae\u00ae\u00ae\u00a9Mawson\u00aeHor\u00e1rio de Mawson\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00aeHor\u00e1rio das Ilhas Malvinas\u00ae\u00aeHor\u00e1rio de Ver\u00e3o das Ilhas Malvinas\u00ae\u00ae\u00a9Indochina\u00aeHor\u00e1rio da Indochina\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00aeHor\u00e1rio das Ilhas Wake\u00ae\u00ae\u00ae\u00ae\u00a9Uruguay\u00aeHor\u00e1rio do Uruguai\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Uruguai\u00ae\u00ae\u00a9Chile\u00aeHor\u00e1rio do Chile\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Chile\u00ae\u00ae\u00a9Vanuatu\u00aeHor\u00e1rio de Vanuatu\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Vanuatu\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeHor\u00e1rio Padr\u00e3o da Austr\u00e1lia Centro Ocidental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Austr\u00e1lia Centro Ocidental\u00ae\u00ae\u00a9Brasilia\u00aeHor\u00e1rio de Bras\u00edlia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Bras\u00edlia\u00ae\u00ae\u00a9Tahiti\u00aeHor\u00e1rio do Haiti\u00ae\u00ae\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeHor\u00e1rio Padr\u00e3o do Cazaquist\u00e3o do Leste\u00ae\u00ae\u00ae\u00ae\u00a9DumontDUrville\u00aeHor\u00e1rio de Dumont-d'Urville\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aeHor\u00e1rio de Rothera\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00aeHor\u00e1rio Padr\u00e3o Central\u00ae\u00aeHor\u00e1rio de Ver\u00e3o Central\u00ae\u00ae\u00a9Mongolia\u00aeHor\u00e1rio de Ulan Bator\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Ulan Bator\u00ae\u00ae\u00a9Frunze\u00aeHor\u00e1rio de Frunze\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Frunze\u00ae\u00ae\u00a9Lanka\u00aeHor\u00e1rio de Lanka\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00aeHor\u00e1rio de Kuybyshev\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Kuybyshev\u00ae\u00ae\u00a9Greenland_Eastern\u00aeHor\u00e1rio da Groel\u00e2ndia Oriental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Groel\u00e2ndia Oriental\u00ae\u00ae\u00a9Azores\u00aeHor\u00e1rio de A\u00e7ores\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de A\u00e7ores\u00ae\u00ae\u00a9Greenland_Central\u00aeHor\u00e1rio da Groel\u00e2ndia Central\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Groenl\u00e2ndia Central\u00ae\u00ae\u00a9Japan\u00aeHor\u00e1rio Padr\u00e3o do Jap\u00e3o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Jap\u00e3o\u00ae\u00ae\u00a9Kwajalein\u00aeHor\u00e1rio de Kwajalein\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeHor\u00e1rio de Shevchenko\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Shevchenko\u00ae\u00ae\u00a9Pakistan\u00aeHor\u00e1rio do Paquist\u00e3o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Paquist\u00e3o\u00ae\u00ae\u00a9Bolivia\u00aeHor\u00e1rio da Bol\u00edvia\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeHor\u00e1rio das Ilhas Cook\u00ae\u00aeMeio Hor\u00e1rio de Ver\u00e3o das Ilhas Cook\u00ae\u00ae\u00a9Kashgar\u00aeHor\u00e1rio de Kashgar\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00aeHor\u00e1rio Padr\u00e3o da Austr\u00e1lia Central\u00aeACST (Austr\u00e1lia)\u00aeHor\u00e1rio de Ver\u00e3o da Austr\u00e1lia Central\u00aeACDT (Austr\u00e1lia)\u00ae\u00a9Vostok\u00aeHor\u00e1rio de Vostok\u00ae\u00ae\u00ae\u00ae\u00a9Guyana\u00aeHor\u00e1rio da Guiana\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeHor\u00e1rio da Georgia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Georgia\u00ae\u00ae\u00a9Colombia\u00aeHor\u00e1rio da Col\u00f4mbia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Col\u00f4mbia\u00ae\u00ae\u00a9Galapagos\u00aeHor\u00e1rio de Gal\u00e1pagos\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aeHor\u00e1rio Padr\u00e3o de Cuba\u00aeCST (Cuba)\u00aeHor\u00e1rio de Ver\u00e3o de Cuba\u00aeCDT (Cuba)\u00ae\u00a9Myanmar\u00aeHor\u00e1rio de Mianmar\u00ae\u00ae\u00ae\u00ae\u00a9Niue\u00aeHor\u00e1rio de Niue\u00ae\u00ae\u00ae\u00ae\u00a9Mauritius\u00aeHor\u00e1rio das Ilhas Maur\u00edcio\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeHor\u00e1rio de Wallis e Fortuna\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00aeHor\u00e1rio de Macau\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Macau\u00ae\u00ae\u00a9Aktyubinsk\u00aeHor\u00e1rio do Aktyubinsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Aktyubinsk\u00ae\u00ae\u00a9
 territories.TL=Timor Leste
 territories.TK=Tokelau
 territories.TJ=Tadjiquist\u00e3o
@@ -291,10 +431,13 @@ territories.GN=Guin\u00e9
 territories.GM=G\u00e2mbia
 territories.GL=Gro\u00eanlandia
 territories.SV=El Salvador
+territories.062=\u00c1sia Central e do Sul
 territories.ST=S\u00e3o Tom\u00e9 e Pr\u00edncipe
 territories.GI=Gibraltar
+territories.061=Polin\u00e9sia
 territories.GH=Gana
 territories.SR=Suriname
+territories.GG=Guernsey
 territories.GF=Guiana Francesa
 territories.GE=Ge\u00f3rgia
 territories.SO=Som\u00e1lia
@@ -316,31 +459,41 @@ territories.SB=Ilhas Salom\u00e3o
 territories.SA=Ar\u00e1bia Saudita
 territories.FR=Fran\u00e7a
 territories.FO=Ilhas Faroe
-territories.FM=Micron\u00e9sia, Estados Federados da
+territories.057=Regi\u00e3o da Micron\u00e9sia
+territories.FM=Micron\u00e9sia
 territories.RW=Ruanda
+territories.054=Melan\u00e9sia
 territories.FK=Ilhas Malvinas
+territories.053=Austr\u00e1lia e Nova Zel\u00e2ndia
 territories.RU=R\u00fassia
 territories.FJ=Fiji
 territories.FI=Finl\u00e2ndia
+territories.RS=S\u00e9rvia
 territories.RO=Rom\u00eania
 territories.RE=Reuni\u00e3o
 territories.ET=Eti\u00f3pia
 territories.ES=Espanha
 territories.ER=Eritr\u00e9ia
+territories.QU=Uni\u00e3o Europ\u00e9ia
 territories.EH=Saara Ocidental
 territories.EG=Egito
 territories.EE=Est\u00f4nia
+territories.QO=Oceania Exterior
 territories.EC=Equador
 territories.DZ=Arg\u00e9lia
 territories.QA=Catar
+territories.039=Europa do Sul
 territories.DO=Rep\u00fablica Dominicana
 territories.PY=Paraguai
 territories.DM=Dominica
+territories.035=\u00c1sia Oriental e do Sul
 territories.PW=Palau
+territories.034=\u00c1sia do Sul
 territories.DK=Dinamarca
 territories.DJ=Djibuti
 territories.PT=Portugal
 territories.PS=Territ\u00f3rio da Palestina
+territories.030=\u00c1sia Oriental
 territories.PR=Porto Rico
 territories.DE=Alemanha
 territories.PN=Pitcairn
@@ -359,19 +512,22 @@ territories.PA=Panam\u00e1
 territories.CU=Cuba
 territories.CS=S\u00e9rvia e Montenegro
 territories.CR=Costa Rica
+territories.029=Caribe
 territories.CO=Col\u00f4mbia
 territories.CN=China
 territories.CM=Rep\u00fablica dos Camar\u00f5es
 territories.CL=Chile
 territories.CK=Ilhas Cook
+territories.021=Am\u00e9rica Setentrional
 territories.CI=Costa do Marfim
 territories.CH=Su\u00ed\u00e7a
 territories.CG=Congo
 territories.CF=Rep\u00fablica Centro-Africana
-territories.CD=Congo, Rep\u00fablica Democr\u00e1tica do
-territories.CC=Ilhas Cocos (Keeling)
+territories.CD=Congo-Kinshasa
+territories.CC=Ilhas Coco
 territories.OM=Om\u00e3
 territories.CA=Canad\u00e1
+territories.419=Am\u00e9rica Latina e Caribe
 territories.BZ=Belize
 territories.BY=Belarus
 territories.BW=Botsuana
@@ -379,30 +535,41 @@ territories.BV=Ilha Bouvet
 territories.BT=But\u00e3o
 territories.BS=Bahamas
 territories.BR=Brasil
+territories.019=Am\u00e9ricas
+territories.018=\u00c1frica Austral
 territories.NZ=Nova Zel\u00e2ndia
+territories.017=\u00c1frica Central
 territories.BO=Bol\u00edvia
 territories.BN=Brunei
+territories.015=\u00c1frica do Norte
 territories.BM=Bermudas
+territories.014=\u00c1frica Oriental
+territories.BL=San Bartolomeu
+territories.013=Am\u00e9rica Central
 territories.NU=Niue
 territories.BJ=Benin
+territories.011=\u00c1frica Ocidental
 territories.BI=Burundi
-territories.BH=Bareine
+territories.172=Comunidade dos Estados Independentes
+territories.BH=Bahrain
 territories.NR=Nauru
 territories.BG=Bulg\u00e1ria
 territories.BF=Burquina Faso
 territories.NP=Nepal
 territories.BE=B\u00e9lgica
+territories.ZZ=Regi\u00e3o desconhecida ou inv\u00e1lida
 territories.NO=Noruega
 territories.BD=Bangladesh
 territories.BB=Barbados
-territories.ZW=Zimb\u00e1bwe
-territories.NL=Pa\u00edses Baixos
-territories.BA=B\u00f3snia-Herzeg\u00f3vina
+territories.ZW=Zimb\u00e1bue
+territories.NL=Holanda
+territories.BA=B\u00f3snia-Herzegovina
 territories.NI=Nicar\u00e1gua
 territories.NG=Nig\u00e9ria
-territories.NF=Ilha Norfolk
+territories.NF=Ilhas Norfolk
 territories.AZ=Azerbaij\u00e3o
 territories.NE=N\u00edger
+territories.AX=Ilhas Aland
 territories.NC=Nova Caled\u00f4nia
 territories.AW=Aruba
 territories.ZM=Z\u00e2mbia
@@ -412,55 +579,69 @@ territories.AT=\u00c1ustria
 territories.AS=Samoa Americana
 territories.AR=Argentina
 territories.AQ=Ant\u00e1rtida
+territories.009=Oceania
 territories.MZ=Mo\u00e7ambique
 territories.AO=Angola
 territories.MY=Mal\u00e1sia
 territories.AN=Antilhas Holandesas
 territories.MX=M\u00e9xico
 territories.AM=Arm\u00eania
+territories.005=Am\u00e9rica do Sul
 territories.MW=Malawi
 territories.AL=Alb\u00e2nia
 territories.MV=Maldivas
+territories.003=Am\u00e9rica do Norte
 territories.ZA=\u00c1frica do Sul
 territories.MU=Maur\u00edcio
+territories.002=\u00c1frica
 territories.MT=Malta
 territories.AI=Anguilla
+territories.001=Mundo
 territories.MS=Montserrat
 territories.MR=Maurit\u00e2nia
 territories.AG=Ant\u00edgua e Barbuda
-territories.AF=Afeganist\u00e3o
 territories.MQ=Martinica
-territories.AE=Emirados \u00c1rabes Unidos
+territories.AF=Afeganist\u00e3o
 territories.MP=Ilhas Marianas do Norte
+territories.AE=Emirados \u00c1rabes Unidos
+territories.MO=Macau
 territories.AD=Andorra
-territories.MO=Macau, Regi\u00e3o Admin. Especial da China
 territories.MN=Mong\u00f3lia
-territories.MM=Mianm\u00e1
+territories.MM=Mianmar
 territories.ML=Mali
-territories.MK=Maced\u00f4nia, Rep\u00fablica da
+territories.MK=Maced\u00f4nia
 territories.YT=Mayotte
 territories.MH=Ilhas Marshall
 territories.MG=Madagascar
-territories.MD=Moldova, Rep\u00fablica de
+territories.MF=San Martin
+territories.ME=Montenegro
+territories.MD=Mold\u00e1via
 territories.MC=M\u00f4naco
 territories.MA=Marrocos
 territories.YE=I\u00eamen
 territories.LY=L\u00edbia
 territories.LV=Let\u00f4nia
+territories.155=Europa Ocidental
 territories.LU=Luxemburgo
+territories.154=Europa Setentrional
 territories.LT=Litu\u00e2nia
 territories.LS=Lesoto
 territories.LR=Lib\u00e9ria
+territories.151=Europa Oriental
+territories.150=Europa
 territories.LK=Sri Lanka
 territories.LI=Liechtenstein
 territories.LC=Santa L\u00facia
 territories.LB=L\u00edbano
-territories.LA=Rep\u00fablica Democr\u00e1tica Popular de Lao
+territories.LA=Laos
 territories.KZ=Casaquist\u00e3o
 territories.KY=Ilhas Caiman
 territories.KW=Kuwait
-territories.KR=Cor\u00e9ia, Sul
-territories.KP=Cor\u00e9ia, Norte
+territories.145=\u00c1sia Ocidental
+territories.143=\u00c1sia Central
+territories.142=\u00c1sia
+territories.KR=Cor\u00e9ia do Sul
+territories.KP=Cor\u00e9ia do Norte
 territories.KN=S\u00e3o Cristov\u00e3o e Nevis
 territories.KM=Comores
 territories.KI=Quiribati
@@ -473,6 +654,7 @@ territories.JP=Jap\u00e3o
 territories.JO=Jord\u00e2nia
 territories.JM=Jamaica
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietn\u00e3
 territories.VI=Ilhas Virgens dos EUA
 territories.VG=Ilhas Virgens Brit\u00e2nicas
@@ -487,6 +669,7 @@ territories.UZ=Uzbequist\u00e3o
 territories.IO=Territ\u00f3rio Brit\u00e2nico do Oceano \u00cdndico
 territories.UY=Uruguai
 territories.IN=\u00cdndia
+territories.IM=Ilha de Man
 territories.IL=Israel
 territories.US=Estados Unidos
 territories.IE=Irlanda
@@ -502,77 +685,87 @@ territories.HN=Honduras
 territories.HM=Ilha Heard e Ilhas McDonald
 territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=Hong Kong, Regi\u00e3o Admin. Especial da China
+territories.HK=Hong Kong
 territories.TT=Trinidad e Tobago
 territories.TR=Turquia
 territories.TO=Tonga
 territories.TN=Tun\u00edsia
 territories.TM=Turcomenist\u00e3o
-languages.akk=acadiano
 languages.gwi=gwich\u02bcin
+languages.akk=acadiano
 languages.eka=ekajuk
+languages.ijo=ijo
 languages.xh=xosa
 languages.sux=sum\u00e9rio
 languages.sus=sosso
 languages.mis=idiomas diversos
 languages.loz=lozi
-languages.tog=togan\u00eas (Nyasa)
+languages.tog=tongan\u00eas de Nyasa
+languages.zbl=s\u00edmbolos blis
 languages.pon=pohnpeian
 languages.min=minangkabau
 languages.suk=sukuma
 languages.wo=uolofe
-languages.kut=kutenai
 languages.lol=mongo
+languages.kut=kutenai
 languages.mic=miquemaque
-languages.wa=walloon
+languages.wa=val\u00e3o
 languages.kum=kumyk
 languages.zap=zapoteca
-languages.cus=cuxitas (outros)
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=Idioma cuxita
 languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
 languages.vo=volapuque
-languages.oto=idiomas otomanos
+languages.oto=Idioma otomano
 languages.vi=vietnamita
+languages.vai=vai
 languages.rar=rarotongano
 languages.ve=venda
 languages.rap=rapanui
 languages.raj=rajastani
-languages.ota=turco, otomano (1500-1928)
+languages.ota=turco otomano
 languages.nzi=nzima
 languages.nap=napolitano
 languages.uz=usbeque
 languages.uga=ugar\u00edtico
 languages.tmh=tamaxeque
-languages.nai=ind\u00edgenas norte-americanos (outros)
+languages.nai=Idioma ind\u00edgena norte-americano
 languages.nah=n\u00e1uatle
 languages.ur=urdu
 languages.fat=fanti
 languages.uk=ucraniano
-languages.egy=eg\u00edpcio (arcaico)
+languages.egy=eg\u00edpcio arcaico
+languages.zxx=sem conte\u00fado ling\u00fc\u00edstico
 languages.ug=uighur
 languages.fan=fangue
-languages.ssa=nilo-saarianos (outros)
-languages.bat=b\u00e1lticos (outros)
-languages.mga=irland\u00eas, medieval (900-1200)
+languages.ssa=Idioma nilo-saariano
+languages.mga=ga\u00e9lico medieval
+languages.bat=Idioma b\u00e1ltico
 languages.nyo=nyoro
 languages.bas=basa
 languages.nyn=nyankole
 languages.nym=nyamwezi
+languages.gsw=alem\u00e3o su\u00ed\u00e7o
 languages.hmn=hmong
 languages.ban=balin\u00eas
 languages.osa=osage
 languages.bal=bal\u00fachi
 languages.ty=taitiano
-languages.bai=bamileke Languages
+languages.bai=idiomas bamileke
 languages.tw=twi
 languages.srr=serere
 languages.tli=tlinguite
+languages.tlh=klingon
 languages.tt=tatar
 languages.ts=tsonga
+languages.srn=sranan tongo
 languages.bad=banda
 languages.tr=turco
-languages.to=tonga (ilhas tonga)
+languages.to=tongan\u00eas
 languages.tn=tswana
+languages.tl=tagalog
 languages.tk=turcomano
 languages.ti=tigr\u00ednia
 languages.th=tailand\u00eas
@@ -580,111 +773,131 @@ languages.kru=kurukh
 languages.tg=tadjique
 languages.byn=Blin
 languages.te=telugu
-languages.csb=kashubian
 languages.kro=kru
+languages.csb=kashubian
 languages.ta=t\u00e2mil
+languages.krl=careliano
 languages.tkl=toquelauano
 languages.efi=efique
 languages.sw=sua\u00edli
 languages.sv=sueco
 languages.su=sundan\u00eas
-languages.krc=karachay-Balkar
-languages.st=soto, do sul
+languages.krc=karachay-balkar
+languages.st=soto do sul
 languages.ss=swati
 languages.sr=s\u00e9rvio
 languages.sq=alban\u00eas
 languages.men=mende
-languages.crp=crioulos e p\u00eddgins (outros)
+languages.crp=crioulo ou pidgin
 languages.so=somali
-languages.afh=Afrihili
-languages.sl=eslov\u00eanio
-languages.grc=grego, arcaico (at\u00e9 1453)
+languages.afh=afrihili
+languages.sn=shona
+languages.sm=samoano
+languages.sl=esloveno
+languages.grc=grego arcaico
 languages.sk=eslovaco
-languages.grb=Gerbo
+languages.grb=grebo
 languages.si=cingal\u00eas
 languages.sh=servo-croata
-languages.afa=afro-asi\u00e1tico (outros)
-languages.crh=crimean turkish; crimean tatar
+languages.crh=turco da Crim\u00e9ia
+languages.afa=Idioma afro-asi\u00e1tico
 languages.sg=sango
-languages.se=northern sami
+languages.se=sami do norte
 languages.sd=sindi
 languages.udm=udmurt
 languages.sc=sardo
 languages.sa=s\u00e2nscrito
 languages.rw=kinyarwanda
+languages.nwc=newari cl\u00e1ssico
 languages.ru=russo
 languages.mdr=mandar
 languages.ro=romeno
 languages.rn=rundi
-languages.rm=rhaeto-romance
+languages.rm=reto-romano
+languages.fr_CH=franc\u00eas su\u00ed\u00e7o
 languages.mdf=mocsa
+languages.tiv=tiv
+languages.fr_CA=franc\u00eas do Canad\u00e1
 languages.ady=adyghe
 languages.zun=zunhi
 languages.kpe=kpelle
 languages.qu=qu\u00edchua
 languages.tig=tigr\u00e9
 languages.son=songai
-languages.cpp=crioulos e p\u00eddgin, portugu\u00eas (outros)
-languages.sog=sogdien
+languages.cpp=crioulo ou pidgin baseado no portugu\u00eas
+languages.rup=aromeno
+languages.sog=sogdiano
 languages.ada=adangme
-languages.cpf=crioulos e p\u00eddgin, franc\u00eas (outros)
+languages.kos=kosraeano
 languages.hit=hitita
-languages.kos=kosraean
-languages.cpe=crioulos e p\u00eddgin, ingl\u00eas (outros)
+languages.cpf=crioulo ou pidgin baseado no franc\u00eas
+languages.cpe=crioulo ou pidgin baseado no ingl\u00eas
 languages.him=himachali
-languages.got=g\u00f3tico
-languages.hil=hiligaynon
 languages.kok=concani
+languages.hil=hiligaynon
+languages.got=g\u00f3tico
 languages.gor=gorontalo
 languages.gon=gondi
 languages.din=dinka
 languages.nub=idiomas n\u00fabios
 languages.pt=portugu\u00eas
-languages.ps=pashto (pushto)
+languages.ps=pashto
 languages.fur=friulano
 languages.phn=fen\u00edcio
-languages.goh=alem\u00e3o, arcaico alto (aprox.750-1050)
+languages.de_CH=alem\u00e3o (Su\u00ed\u00e7a Alta)
+languages.goh=alem\u00e3o arcaico alto
+languages.snk=soninke
 languages.cop=copta
 languages.yap=yapese
 languages.ach=acoli
 languages.yao=iao
-languages.phi=filipinos (outros)
+languages.phi=Idioma filipino
 languages.pl=polon\u00eas
 languages.ace=achinese
 languages.pi=p\u00e1li
+languages.pt_PT=portugu\u00eas ib\u00e9rico
 languages.pa=panjabi
-languages.bug=Buginese
-languages.iba=Iban
-languages.bua=Buriat
+languages.bug=buguin\u00eas
+languages.iba=ib\u00e3
+languages.sms=skolt sami
+languages.bua=buriat
 languages.mas=massai
-languages.os=ossetic
+languages.smn=inari sami
+languages.os=osseta
 languages.map=austron\u00e9sio
 languages.or=oriya
 languages.man=mandinga
+languages.smj=lule sami
+languages.smi=Idioma sami
 languages.mak=makasar
 languages.om=oromo
 languages.mai=maithili
 languages.oj=ojibwa
 languages.mag=magahi
 languages.mad=madur\u00eas
-languages.oc=occit\u00e2nico (ap\u00f3s 1500); proven\u00e7al
-languages.nso=soto, setentrional
+languages.sma=sami do sul
+languages.oc=occit\u00e2nico
+languages.nso=soto setentrional
 languages.btk=bataque
 languages.myv=erzya
+languages.es_ES=espanhol da Espanha
+languages.de_AT=alem\u00e3o da \u00c1ustria
 languages.dgr=dogrib
-languages.ny=nianja; chicheua; cheua
+languages.ny=nianja
 languages.myn=maia
 languages.nv=navajo
 languages.kmb=quimbundo
-languages.nr=ndebele, south
-languages.gmh=alem\u00e3o, medieval alto (aprox.1050-1500)
+languages.nr=ndebele do sul
+languages.gmh=alem\u00e3o medieval alto
 languages.no=noruegu\u00eas
 languages.nn=nynorsk noruegu\u00eas
 languages.nl=holand\u00eas
+languages.root=root
 languages.ng=dongo
-languages.ne=nepali
-languages.nd=ndebele, north
-languages.cmc=chamic languages
+languages.sla=Idioma eslavo
+languages.ne=nepal\u00eas
+languages.nd=ndebele do norte
+languages.cmc=Idioma chamic
 languages.tet=t\u00e9tum
 languages.nb=bokm\u00e5l noruegu\u00eas
 languages.na=nauruano
@@ -693,109 +906,115 @@ languages.tem=timne
 languages.my=birman\u00eas
 languages.lez=lezghian
 languages.mt=malt\u00eas
-languages.peo=persa arcaico (aprox. 600-400 a.C.)
+languages.frs=fris\u00e3o oriental
+languages.peo=persa arcaico
 languages.ms=malaio
+languages.frr=fris\u00e3o do norte
 languages.mr=marata
-languages.fro=franc\u00eas, arcaico (842-aprox.1400)
+languages.fro=franc\u00eas arcaico
 languages.mo=mold\u00e1vio
 languages.mn=mongol
-languages.frm=franc\u00eas, medieval (aprox.1400-1600)
+languages.frm=franc\u00eas medieval
 languages.ml=malaiala
 languages.jrb=judaico-ar\u00e1bico
 languages.mk=maced\u00f4nio
 languages.mi=maori
-languages.mh=marshall\u00eas
+languages.mh=marshal\u00eas
 languages.mg=malgaxe
+languages.nqo=n'ko
 languages.mwr=marwari
 languages.bra=braj
-languages.lv=let\u00e3o
+languages.mwl=mirand\u00eas
 languages.den=slave
+languages.lv=let\u00e3o
 languages.lu=luba-catanga
-languages.lt=lituano
 languages.del=delaware
+languages.lt=lituano
 languages.lo=laosiano
 languages.ln=lingala
-languages.li=limburgish
+languages.li=limburgu\u00eas
 languages.ewo=ewondo
-languages.lg=luganda
+languages.lg=ganda
 languages.lb=luxemburgu\u00eas
 languages.la=latim
 languages.jpr=judaico-persa
 languages.vot=votic
-languages.sit=sino-tibetanos (outros)
+languages.sit=Idioma sino-tibetano
 languages.ky=quirguiz
 languages.kw=c\u00f3rnico
 languages.kv=komi
 languages.ku=curdo
-languages.sio=idiomas sioux
+languages.sio=Idioma sioux
 languages.ks=kashmiri
 languages.kr=can\u00fari
-languages.awa=Awadhi
+languages.awa=awadhi
 languages.ko=coreano
 languages.kn=canar\u00eas
 languages.km=cmer
+languages.en_GB=ingl\u00eas brit\u00e2nico
 languages.kl=groenland\u00eas
 languages.kk=cazaque
 languages.rom=romani
-languages.kj=Kuanyama
+languages.kj=kuanyama
 languages.sid=sidamo
 languages.ki=quicuio
 languages.kg=congol\u00eas
-languages.non=norse, old
+languages.non=n\u00f3rdico arcaico
 languages.ka=georgiano
 languages.mus=creek
-languages.roa=romances (outros)
+languages.roa=Idioma rom\u00e2ntico
 languages.nog=nogai
 languages.mun=idiomas munda
 languages.mul=idiomas m\u00faltiplos
+languages.jv=javan\u00eas
 languages.gil=gilbert\u00eas
 languages.znd=zande
 languages.shn=shan
 languages.fon=fom
 languages.xal=kalmyk
 languages.aus=idiomas australianos
-languages.kho=khotanese
+languages.kho=khotan\u00eas
 languages.ja=japon\u00eas
-languages.khi=khoisan (other)
+languages.khi=Idioma khoisan
 languages.pau=palauano
 languages.chy=cheiene
-languages.tai=tai (outros)
+languages.tai=Idioma tailand\u00eas
 languages.iu=inuktitut
 languages.pap=papiamento
 languages.it=italiano
-languages.sgn=linguages de sinais
-languages.kha=khasi
+languages.sgn=linguagem de sinais
 languages.is=island\u00eas
+languages.kha=khasi
 languages.chr=cheroqui
 languages.pam=pampanga
 languages.pal=p\u00e1lavi
 languages.chp=chipewyan
-languages.cho=choctaw
 languages.io=ido
-languages.chn=chinook jargon
+languages.cho=choctaw
+languages.chn=jarg\u00e3o chinook
 languages.chm=mari
-languages.tyv=tuvinian
+languages.tyv=tuviniano
 languages.bnt=banto
 languages.pag=pangasin\u00e3
+languages.ik=inupiaque
 languages.chk=chuukese
-languages.ik=Inupiaq
-languages.haw=havaiano
 languages.ii=sichuan yi
+languages.haw=havaiano
 languages.lam=lamba
-languages.chg=chagatai
 languages.ig=ibo
-languages.sga=irland\u00eas, arcaico (at\u00e9 900)
-languages.paa=papuanos (outros)
+languages.chg=chagatai
+languages.sga=ga\u00e9lico arcaico
+languages.paa=Idioma papuano
 languages.ie=interlingue
 languages.id=indon\u00e9sio
 languages.lah=lahnda
-languages.chb=chibcha
 languages.day=dayak
+languages.chb=chibcha
 languages.ia=interl\u00edngua
 languages.lad=ladino
-languages.dar=dargwa
-languages.hai=haida
 languages.hz=herero
+languages.hai=haida
+languages.dar=dargwa
 languages.hy=arm\u00eanio
 languages.ath=idiomas atabascanos
 languages.hu=h\u00fangaro
@@ -807,157 +1026,199 @@ languages.hi=hindi
 languages.dyu=di\u00fala
 languages.he=hebraico
 languages.ast=asturiano
-languages.ha=hau\u00e7\u00e1
-languages.wen=sorbian languages
+languages.kfo=koro
+languages.ha=hausa
+languages.wen=Idioma s\u00e9rvio
 languages.gv=manx
 languages.gu=guzerate
-languages.sem=sem\u00edticos (outros)
+languages.sem=Idioma sem\u00edtico
 languages.sel=selkup
 languages.iro=idiomas iroqueses
 languages.gn=guarani
 languages.gl=galego
+languages.en_CA=ingl\u00eas do Canad\u00e1
 languages.arw=arauaqui
-languages.gd=ga\u00e9lico escoc\u00eas
-languages.art=artificiais (outros)
 languages.gez=geez
+languages.art=Idioma artificial
+languages.gd=ga\u00e9lico escoc\u00eas
 languages.ira=iraniano
-languages.ga=irland\u00eas
+languages.ga=ga\u00e9lico
 languages.arp=arapaho
 languages.arn=araucano
 languages.fy=fris\u00e3o
 languages.bla=siksika
-languages.gem=germ\u00e2nicos (outros)
-languages.ypk=idiomas i\u00fapique
-languages.fr=franc\u00eas
+languages.gem=Idioma germ\u00e2nico
+languages.ypk=Idioma i\u00fapique
 languages.arc=aramaico
-languages.fo=fero\u00eas
-languages.cel=c\u00e9lticos (outros)
+languages.fr=franc\u00eas
+languages.fo=faro\u00eas
+languages.cel=celta
 languages.fj=fijiano
 languages.fi=finland\u00eas
 languages.ff=fula
 languages.tvl=tuvaluano
 languages.ceb=cebuano
 languages.fa=persa
+languages.en_AU=ingl\u00eas australiano
+languages.zh_Hans=chin\u00eas simplificado
+languages.zh_Hant=chin\u00eas tradicional
 languages.eu=basco
 languages.sco=escoc\u00eas
 languages.et=estoniano
+languages.scn=siciliano
 languages.es=espanhol
 languages.eo=esperanto
 languages.en=ingl\u00eas
 languages.el=grego
-languages.tut=altaicos (outros)
+languages.tut=Idioma altaico
 languages.niu=niueano
-languages.tup=idiomas tupi
+languages.tup=Idioma tupi
 languages.ee=eve
 languages.tum=tumbuka
+languages.nl_BE=neerland\u00eas
+languages.es_419=espanhol da Am\u00e9rica Latina
 languages.mos=mossi
 languages.dz=dzonga
-languages.nic=niger - kordofanian (other)
-languages.dv=divehi
-languages.fiu=ugro-fin\u00eas (outros)
+languages.kcg=tyap
+languages.nic=Idioma cordofano-nigeriano
 languages.lus=lushai
+languages.fiu=fino-\u00fagrico
+languages.dv=divehi
 languages.nia=nias
 languages.moh=mohawk
+languages.luo=luo
 languages.lun=lunda
 languages.apa=idiomas apache
+languages.fil=filipino
 languages.lui=luiseno
 languages.hup=hupa
+languages.cch=atsam
 languages.bin=bini
 languages.de=alem\u00e3o
-languages.lua=luba-Lulua
+languages.lua=luba-lulua
 languages.bik=bikol
 languages.was=washo
 languages.und=indeterminado
 languages.war=waray
 languages.da=dinamarqu\u00eas
-languages.dum=holand\u00eas, medieval (aprox. 1050-1350)
+languages.dum=holand\u00eas medieval
 languages.wal=walamo
-languages.mno=manobo languages
-languages.wak=wakashan languages
+languages.mno=Idioma manobo
+languages.wak=Idioma wakashan
 languages.sat=santali
 languages.cy=gal\u00eas
 languages.sas=sasak
+languages.kbd=kabardiano
 languages.cv=chuvash
-languages.kbd=kabardian
 languages.cu=eslavo eclesi\u00e1stico
 languages.mni=manipuri
 languages.cs=tcheco
 languages.sam=aramaico samaritano
 languages.cr=cree
-languages.sal=salishan languages
+languages.sal=Idioma salisano
 languages.dua=duala
 languages.co=c\u00f3rsico
-languages.sai=ind\u00edgenas sul-americanos (outros)
+languages.sai=Idioma ind\u00edgeno sul-americano
 languages.mnc=manchu
 languages.sah=iacuto
-languages.gba=gbaia
-languages.inh=inguche
 languages.kaw=kawi
+languages.inh=inguche
+languages.gba=gbaia
 languages.sad=sandawe
 languages.ch=chamorro
+languages.ine=Idioma indo-europeu
 languages.bho=bhojpuri
-languages.ine=indo-europeus (outros)
-languages.enm=ingl\u00eas, medieval (1100-1500)
-languages.ce=chechene
-languages.inc=\u00edndicos (outros)
+languages.enm=ingl\u00eas medieval
 languages.kar=karen
+languages.inc=Idioma \u00edndico
+languages.ce=checheno
 languages.gay=gayo
 languages.ca=catal\u00e3o
 languages.umb=umbundu
 languages.syr=sir\u00edaco
 languages.kam=kamba
+languages.anp=angika
 languages.tsi=tsimshian
-languages.ang=ingl\u00eas, arcaico (aprox. 450-1100)
-languages.cau=caucasianos (outros)
+languages.kaj=jju
+languages.ang=ingl\u00eas arcaico
 languages.kac=kachin
+languages.cau=Idioma cauc\u00e1sico
 languages.kab=kabyle
+languages.kaa=kara-kalpak
 languages.bs=b\u00f3snio
-languages.kaa=kara-Kalpak
-languages.br=bret\u00e3o
 languages.car=caribe
+languages.br=bret\u00e3o
+languages.syc=sir\u00edaco cl\u00e1ssico
 languages.bo=tibetano
 languages.bn=bengali
 languages.bm=bambara
 languages.gaa=ga
+languages.cai=Idioma ind\u00edgena centro-americano
 languages.bi=bislam\u00e1
-languages.cai=ind\u00edgenas centro-americanos (outros)
 languages.bh=biari
 languages.bg=b\u00falgaro
 languages.be=bielo-russo
+languages.pt_BR=portugu\u00eas do Brasil
 languages.cad=caddo
 languages.ba=bashkir
 languages.zu=zulu
 languages.zen=zenaga
-languages.pro=proven\u00e7al, arcaico (at\u00e9 1500)
-languages.hsb=upper sorbian
+languages.pro=proven\u00e7al arcaico
+languages.hsb=s\u00e9rvio superior
 languages.az=azerbaijano
 languages.ay=aimara
-languages.av=avaric
+languages.av=\u00e1varo
 languages.as=assam\u00eas
+languages.dsb=s\u00e9rvio baixo
 languages.ar=\u00e1rabe
-languages.dsb=Lower Sorbian
-languages.elx=elamite
 languages.ilo=ilocano
+languages.elx=elamite
 languages.zh=chin\u00eas
 languages.an=aragon\u00eas
-languages.pra=idiomas pr\u00e1crito
+languages.pra=Idioma pr\u00e1crito
 languages.am=am\u00e1rico
 languages.new=newari
-languages.ak=Akan
+languages.ak=akan
 languages.za=zhuang
+languages.en_US=ingl\u00eas americano
 languages.af=afric\u00e2ner
 languages.ae=av\u00e9stico
-languages.ab=abkhazian
+languages.alt=altai do sul
+languages.ab=abc\u00e1sio
 languages.aa=afar
-languages.yo=ioruba
+languages.yo=iorub\u00e1
 languages.alg=idiomas algonquianos
 languages.ale=ale\u00fate
-languages.mkh=mon-khmer (other)
-languages.yi=i\u00eddiche
-languages.dra=drav\u00eddicos (outros)
+languages.mkh=L\u00ednguas mon-khmer
+languages.yi=\u00eddiche
+languages.dra=dravidianos
 languages.ber=berbere
-languages.nds=alto alem\u00e3o; baixo sax\u00e3o
+languages.nds=baixo alem\u00e3o
 languages.bem=bemba
 languages.bej=beja
 languages.tpi=tok pisin
-variants.REVISED=Revisado
+variants.POSIX=computador
+variants.AREVMDA=arm\u00eanio ocidental
+variants.1996=ortografia alem\u00e3 de 1996
+variants.SOLBA=dialeto stolvizza/solbica
+variants.NEDIS=dialeto natisone
+variants.1994=ortografia resiana padronizada
+variants.1901=ortografia alem\u00e3 tradicional
+variants.FONUPA=fon\u00e9tica do Alfabeto Fon\u00e9tico Ur\u00e1lico
+variants.OSOJS=dialeto oseacco/osojane
+variants.LIPAW=dialeto lipovaz de Resian
+variants.REVISED=ortografia revisada
+variants.NJIVA=dialeto gniva/njiva
+variants.TARASK=ortografia taraskievica
+variants.FONIPA=fon\u00e9tica do Alfabeto Fon\u00e9tico Internacional
+variants.BISKE=dialeto san giorgio/bila
+variants.SCOUSE=scouse
+variants.BAKU1926=alfabeto latino turco unificado
+variants.SAAHO=saho
+variants.ROZAJ=resiano
+variants.MONOTON=monot\u00f4nico
+variants.POLYTON=polit\u00f4nico
+variants.AREVELA=arm\u00eanio oriental
+variants.SCOTLAND=Ingl\u00eas padr\u00e3o Escoc\u00eas
+variants.BOONT=boontling
+variants.1606NICT=franc\u00eas antigo de 1606
index e8eecd86ba68cd7ec1f4f181fd2046f21768614c..ba2ee37a61edc77966c5a892e26b1d975a66c1c1 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-shortDateFormat=yy/MM/dd
-mediumDateFormat=yyyy/MM/dd
-territories.PS=Territ\u00f3rio Palestiniano
+groupingSeparator=\u00a0
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.TZS=Xelim de Tanz\u00e2nia
+currenciesDisplayName.FJD=D\u00f3lar das Fiji
+currenciesDisplayName.CZK=Coroa da Rep\u00fablica Checa
+currenciesDisplayName.PLN=Zloti polaco
+currenciesDisplayName.YUN=Dinar convers\u00edvel jugoslavo
+currenciesDisplayName.BEC=Franco belga (convert\u00edvel)
+currenciesDisplayName.YUM=Super Dinar jugoslavo
+currenciesDisplayName.XXX=Moeda inv\u00e1lida ou desconhecida
+currenciesDisplayName.KWD=Dinar koweitiano
+currenciesDisplayName.ECV=Unidade de Valor Constante (UVC) do Equador
+currenciesDisplayName.YUD=Dinar forte jugoslavo
+currenciesDisplayName.AED=Dirham dos Emirados \u00c1rabes Unidos
+currenciesDisplayName.ANG=Florim das Antilhas Holandesa
+currenciesDisplayName.NIO=C\u00f3rdoba Ouro nicaraguano
+currenciesDisplayName.AWG=Florim de Aruba
+currenciesDisplayName.BAM=Marco b\u00f3snio-herzeg\u00f3vino convers\u00edvel
+currenciesDisplayName.CYP=Libra de Chipre
+currenciesDisplayName.XEU=Unidade da Moeda Europeia
+currenciesDisplayName.HNL=Lempira das Honduras
+currenciesDisplayName.BAD=Dinar da B\u00f3snia-Herzeg\u00f3vina
+currenciesDisplayName.NIC=C\u00f3rdoba nicaraguano
+currenciesDisplayName.MXV=Unidad de Inversion (UDI) mexicana
+currenciesDisplayName.ZWD=D\u00f3lar do Zimbabwe
+currenciesDisplayName.SGD=D\u00f3lar de Singapura
+currenciesDisplayName.GTQ=Quetzal da Guatemala
+currenciesDisplayName.MXP=Peso Prata mexicano (1861-1992)
+currenciesDisplayName.QAR=Rial do Qatar
+currenciesDisplayName.MLF=Franco do Mali
+currenciesDisplayName.KYD=D\u00f3lar das Ilhas Caim\u00e3o
+currenciesDisplayName.XBD=Unidade de Conta Europeia (XBD)
+currenciesDisplayName.XBC=Unidade de Conta Europeia (XBC)
+currenciesDisplayName.GHC=Cedi do Gana
+currenciesDisplayName.XBB=Unidade Monet\u00e1ria Europeia
+currenciesDisplayName.GNF=Franco da Guin\u00e9
+currenciesDisplayName.XBA=Unidade Composta Europeia
+currenciesDisplayName.BYB=Rublo novo bielorusso (1994-1999)
+currenciesDisplayName.AFN=Afeghani
+currenciesDisplayName.MKD=Dinar maced\u00f3nio
+currenciesDisplayName.MWK=Cuacha do Malawi
+currenciesDisplayName.GMD=Dalasi da G\u00e2mbia
+currenciesDisplayName.AFA=Afeghani (1927-2002)
+currenciesDisplayName.WST=Tala de Samoa Ocidental
+currenciesDisplayName.PLZ=Zloti polaco (1950-1995)
+shortMonths=Jan\u00aeFev\u00aeMar\u00aeAbr\u00aeMai\u00aeJun\u00aeJul\u00aeAgo\u00aeSet\u00aeOut\u00aeNov\u00aeDez\u00ae\u00ae
+months=Janeiro\u00aeFevereiro\u00aeMar\u00e7o\u00aeAbril\u00aeMaio\u00aeJunho\u00aeJulho\u00aeAgosto\u00aeSetembro\u00aeOutubro\u00aeNovembro\u00aeDezembro\u00ae\u00ae
+ampms=Antes do meio-dia\u00aeDepois do meio-dia\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd/MM/yyyy
+fullTimeFormat=HH'H'mm'm'ss's' z
+zoneStrings=Marshall_Islands\u00aeHora das Ilhas Marshall\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeHora de Shevchenko\u00ae\u00aeHora de Ver\u00e3o de Shevchenko\u00ae\u00ae\u00a9Bangladesh\u00aeHora do Bangladesh\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeHora Padr\u00e3o da Austr\u00e1lia Central Ocidental\u00ae\u00aeHora de Ver\u00e3o da Austr\u00e1lia Central Ocidental\u00ae\u00ae\u00a9Marquesas\u00aeHora das Marquesas\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeHora da Indon\u00e9sia Central\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeHora Padr\u00e3o Oriental\u00ae\u00aeHora de Ver\u00e3o Oriental\u00ae\u00ae\u00a9China\u00aeHora Padr\u00e3o da China\u00ae\u00aeHora de Ver\u00e3o da China\u00ae\u00ae\u00a9Omsk\u00aeHora de Omsk\u00ae\u00aeHora de Ver\u00e3o de Omsk\u00ae\u00ae\u00a9Uzbekistan\u00aeHora do Uzbequist\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Uzbequist\u00e3o\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeHora Padr\u00e3o do Cazaquist\u00e3o do Leste\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeHora de Carachi\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeHora de Tbilisi\u00ae\u00aeHora de Ver\u00e3o de Tbilisi\u00ae\u00ae\u00a9Tashkent\u00aeHora de Tashkent\u00ae\u00aeHora de Ver\u00e3o de Tashkent\u00ae\u00ae\u00a9Changbai\u00aeHora de Changbai\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeHora Padr\u00e3o de Chatham\u00ae\u00aeHora de Ver\u00e3o de Chatham\u00ae\u00ae\u00a9South_Georgia\u00aeHora da Georgia do Sul\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeHora da Guiana Francesa\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeHora de Frunze\u00ae\u00aeHora de Ver\u00e3o de Frunze\u00ae\u00ae\u00a9Europe_Eastern\u00aeHora da Europa Oriental\u00ae\u00aeHora de Ver\u00e3o da Europa Oriental\u00ae\u00ae\u00a9Dacca\u00aeHora de Dacca\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00aeHora de Dushanbe\u00ae\u00aeHora de Ver\u00e3o de Dushanbe\u00ae\u00ae\u00a9Chile\u00aeHora do Chile\u00ae\u00aeHora de Ver\u00e3o do Chile\u00ae\u00ae\u00a9Europe_Central\u00aeHora da Europa Central\u00ae\u00aeHora de Ver\u00e3o da Europa Central\u00ae\u00ae\u00a9Acre\u00aeHora do Acre\u00ae\u00aeHora de Ver\u00e3o do Acre\u00ae\u00ae\u00a9Arabian\u00aeHora Padr\u00e3o da Ar\u00e1bia\u00ae\u00aeHora de Ver\u00e3o da Ar\u00e1bia\u00ae\u00ae\u00a9East_Timor\u00aeHora de Timor Leste\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeHora Padr\u00e3o da Nova Zel\u00e2ndia\u00ae\u00aeHora de Ver\u00e3o da Nova Zel\u00e2ndia\u00ae\u00ae\u00a9Africa_Southern\u00aeHora Padr\u00e3o da \u00c1frica do Sul\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeHora de Kwajalein\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeHora Padr\u00e3o da Montanha\u00ae\u00aeHora de Ver\u00e3o da Montanha\u00ae\u00ae\u00a9DumontDUrville\u00aeHora de Dumont-d'Urville\u00ae\u00ae\u00ae\u00ae\u00a9Tokelau\u00aeHora de Toquelau\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeHora do Equador\u00ae\u00ae\u00ae\u00ae\u00a9Hovd\u00aeHora de Hovd\u00ae\u00aeHora de Ver\u00e3o de Hovd\u00ae\u00ae\u00a9Africa_Central\u00aeHora da \u00c1frica Central\u00ae\u00ae\u00ae\u00ae\u00a9Phoenix_Islands\u00aeHora das Ilhas F\u00e9nix\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00aeHora da Arm\u00e9nia\u00aeAMT (Arm\u00e9nia)\u00aeHora de Ver\u00e3o da Arm\u00e9nia\u00aeAMST (Arm\u00e9nia)\u00ae\u00a9Sakhalin\u00aeHora de Sakhalin\u00ae\u00aeHora de Ver\u00e3o de Sakhalin\u00ae\u00ae\u00a9Samara\u00aeHora de Samara\u00ae\u00aeHora de Ver\u00e3o de Samara\u00ae\u00ae\u00a9Palau\u00aeHora de Palau\u00ae\u00ae\u00ae\u00ae\u00a9Kosrae\u00aeHora de Kosrae\u00ae\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeHora Padr\u00e3o do Alaska-Havai\u00ae\u00aeHora de Ver\u00e3o do Alaska-Havai\u00ae\u00ae\u00a9Pitcairn\u00aeHora de Pitcairn\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00aeHora Padr\u00e3o Central\u00ae\u00aeHora de Ver\u00e3o Central\u00ae\u00ae\u00a9Malaysia\u00aeHora da Mal\u00e1sia\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeHora Padr\u00e3o de Moscovo\u00ae\u00aeHora de Ver\u00e3o de Moscovo\u00ae\u00ae\u00a9Vanuatu\u00aeHora de Vanuatu\u00ae\u00ae\u00ae\u00ae\u00a9Kamchatka\u00aeHora de Petropavlovsk-Kamchatski\u00ae\u00aeHora de Ver\u00e3o de Petropavlovsk-Kamchatski\u00ae\u00ae\u00a9Cape_Verde\u00aeHora de Cabo Verde\u00ae\u00aeHora de Ver\u00e3o de Cabo Verde\u00ae\u00ae\u00a9Aqtobe\u00aeHora de Aqtobe\u00ae\u00aeHora de Ver\u00e3o de Aqtobe\u00ae\u00ae\u00a9Falkland\u00aeHora das Ilhas Malvinas\u00ae\u00aeHora de Ver\u00e3o das Ilhas Malvinas\u00ae\u00ae\u00a9Argentina\u00aeHora da Argentina\u00ae\u00aeHora de Ver\u00e3o da Argentina\u00ae\u00ae\u00a9Krasnoyarsk\u00aeHora de Krasnoyarsk\u00ae\u00aeHora de Ver\u00e3o de Krasnoyarsk\u00ae\u00ae\u00a9Qyzylorda\u00aeHora de Qyzylorda\u00ae\u00aeHora de Ver\u00e3o de Qyzylorda\u00ae\u00ae\u00a9Tahiti\u00aeHora do Tahiti\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00aeHora do Oceano \u00cdndico\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeHora do Meridiano de Greenwich\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00aeHora de Vladivostok\u00ae\u00aeHora de Ver\u00e3o de Vladivostok\u00ae\u00ae\u00a9Atlantic\u00aeHora Padr\u00e3o do Atl\u00e2ntico\u00ae\u00aeHora de Ver\u00e3o do Atl\u00e2ntico\u00ae\u00ae\u00a9Truk\u00aeHora de Truk\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aeHora de Rothera\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeHora de Wallis e Futuna\u00ae\u00ae\u00ae\u00ae\u00a9Syowa\u00aeHora de Syowa\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00aeHora Padr\u00e3o da Coreia\u00ae\u00aeHora de Ver\u00e3o da Coreia\u00ae\u00ae\u00a9Ashkhabad\u00aeHora de Ashkhabad\u00ae\u00aeHora de Ver\u00e3o de Ashkhabad\u00ae\u00ae\u00a9Australia_Western\u00aeHora Padr\u00e3o da Austr\u00e1lia Ocidental\u00ae\u00aeHora de Ver\u00e3o da Austr\u00e1lia Ocidental\u00ae\u00ae\u00a9Gilbert_Islands\u00aeHora das Ilhas Gilbert\u00ae\u00ae\u00ae\u00ae\u00a9Seychelles\u00aeHora das Ilhas Seicheles\u00ae\u00ae\u00ae\u00ae\u00a9Cocos\u00aeHora das Ilhas Cocos\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00aeHora de Yakutsk\u00ae\u00aeHora de Ver\u00e3o de Yakutsk\u00ae\u00ae\u00a9Azerbaijan\u00aeHora do Azerbeij\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Azerbeij\u00e3o\u00ae\u00ae\u00a9Kizilorda\u00aeHora de Kizilorda\u00ae\u00aeHora de Ver\u00e3o de Kizilorda\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHora da Guiana Holandesa\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeHora de Yerevan\u00ae\u00aeHora de Ver\u00e3o de Yerevan\u00ae\u00ae\u00a9Turkmenistan\u00aeHora do Turquemenist\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Turquemenist\u00e3o\u00ae\u00ae\u00a9Newfoundland\u00aeHora Padr\u00e3o da Terra Nova\u00ae\u00aeHora de Ver\u00e3o da Terra Nova\u00ae\u00ae\u00a9Africa_Eastern\u00aeHora da \u00c1frica Oriental\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00aeHora das Ilhas Wake\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aeHora do Paquist\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Paquist\u00e3o\u00ae\u00ae\u00a9Singapore\u00aeHora Padr\u00e3o de Singapura\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Western\u00aeHora da Europa Ocidental\u00ae\u00aeHora de Ver\u00e3o da Europa Ocidental\u00ae\u00ae\u00a9Kuybyshev\u00aeHora de Kuybyshev\u00ae\u00aeHora de Ver\u00e3o de Kuybyshev\u00ae\u00ae\u00a9India\u00aeHora Padr\u00e3o da \u00cdndia\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeHora Padr\u00e3o de Chamarro\u00ae\u00ae\u00ae\u00ae\u00a9Bolivia\u00aeHora da Bol\u00edvia\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeHora da Indon\u00e9sia Ocidental\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeHora de Gal\u00e1pagos\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00aeHora Padr\u00e3o do Ir\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Ir\u00e3o\u00ae\u00ae\u00a9Vostok\u00aeHora de Vostok\u00ae\u00ae\u00ae\u00ae\u00a9Papua_New_Guinea\u00aeHora da Papua Nova Guin\u00e9\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeHora de Malaia\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeHora Padr\u00e3o de Bering\u00ae\u00aeHora de Ver\u00e3o de Bring\u00ae\u00ae\u00a9Mawson\u00aeHora de Mawson\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeHora da Georgia\u00ae\u00aeHora de Ver\u00e3o da Georgia\u00ae\u00ae\u00a9Kyrgystan\u00aeHora do Quirguizist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeHora da Ant\u00e1rtida e dos Territ\u00f3rios Franceses do Sul\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aeHora de Ponape\u00ae\u00ae\u00ae\u00ae\u00a9Christmas\u00aeHora da Ilha de Natal\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeHora do Sri Lanka\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeHora das Filipinas\u00ae\u00aeHora de Ver\u00e3o das Filipinas\u00ae\u00ae\u00a9Argentina_Western\u00aeHora da Argentina Ocidental\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeHora de Volvograd\u00ae\u00aeHora de Ver\u00e3o de Volgograd\u00ae\u00ae\u00a9Hong_Kong\u00aeHora de Hong Kong\u00ae\u00aeHora de Ver\u00e3o de Hong Kong\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeHora Padr\u00e3o do Casaquist\u00e3o do Oeste\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeHora Padr\u00e3o de Guam\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00aeHora do Amazonas\u00ae\u00aeHora de Ver\u00e3o do Amazonas\u00ae\u00ae\u00a9Niue\u00aeHora de Niue\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aeHora da Turquia\u00ae\u00aeHora de Ver\u00e3o da Turquia\u00ae\u00ae\u00a9Nepal\u00aeHora do Nepal\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeHora das Ilhas Cook\u00ae\u00aeHora Interm\u00e9dia de Ver\u00e3o das Ilhas Cook\u00ae\u00ae\u00a9Macau\u00aeHora de Macau\u00ae\u00aeHora de Ver\u00e3o de Macau\u00ae\u00ae\u00a9Mauritius\u00aeHora das Ilhas Maur\u00edcias\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aeHora Padr\u00e3o de Cuba\u00ae\u00aeHora de Ver\u00e3o de Cuba\u00ae\u00ae\u00a9Lord_Howe\u00aeHora Padr\u00e3o de Lord Howe\u00ae\u00aeHora de Ver\u00e3o de Lord Howe\u00ae\u00ae\u00a9Tonga\u00ae\u00ae\u00aeHora de Ver\u00e3o de Tonga\u00ae\u00ae\u00a9Maldives\u00aeHora das Ilhas Maldivas\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00aeHora de Ulan Bator\u00ae\u00aeHora de Ver\u00e3o de Ulan Bator\u00ae\u00ae\u00a9Anadyr\u00aeHora de Anadyr\u00ae\u00aeHora de Ver\u00e3o de Anadyr\u00ae\u00ae\u00a9Irkutsk\u00aeHora de Irkutsk\u00ae\u00aeHora de Ver\u00e3o de Irkutsk\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeHora da Indon\u00e9sia Oriental\u00ae\u00ae\u00ae\u00ae\u00a9Reunion\u00aeHora das Ilhas de Reuni\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeHora Padr\u00e3o do Golfo\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeHora do Afeganist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeHora de Kashgar\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeHora do Brunei Darussalam\u00ae\u00ae\u00ae\u00ae\u00a9Novosibirsk\u00aeHora de Novosibirsk\u00ae\u00aeHora de Ver\u00e3o de Novosibirsk\u00ae\u00ae\u00a9Brasilia\u00aeHora de Bras\u00edlia\u00ae\u00aeHora de Ver\u00e3o de Bras\u00edlia\u00ae\u00ae\u00a9Line_Islands\u00aeHora das Ilhas Line\u00ae\u00ae\u00ae\u00ae\u00a9America_Pacific\u00aeHora Padr\u00e3o do Pac\u00edfico\u00ae\u00aeHora de Ver\u00e3o do Pac\u00edfico\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHora Padr\u00e3o do Havai\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeHora de Samarkand\u00ae\u00aeHora de Ver\u00e3o de Samarkand\u00ae\u00ae\u00a9Australia_Central\u00aeHora Padr\u00e3o da Austr\u00e1lia Central\u00ae\u00aeHora de Ver\u00e3o da Austr\u00e1lia Central\u00ae\u00ae\u00a9Long_Shu\u00aeHora de Long-Shu\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeHora das Ilhas Fiji\u00ae\u00aeHora de Ver\u00e3o das Ilhas Fiji\u00ae\u00ae\u00a9Israel\u00aeHora Padr\u00e3o de Israel\u00ae\u00aeHora de Ver\u00e3o de Israel\u00ae\u00ae\u00a9Yekaterinburg\u00aeHora de Yekaterinburg\u00ae\u00aeHora de Ver\u00e3o de Yekaterinburg\u00ae\u00ae\u00a9Easter\u00aeHora da Ilha de P\u00e1scoa\u00ae\u00aeHora de Ver\u00e3o da Ilha de P\u00e1scoa\u00ae\u00ae\u00a9Almaty\u00aeHora de Almaty\u00ae\u00aeHora de Ver\u00e3o de Almaty\u00ae\u00ae\u00a9Sverdlovsk\u00aeHora de Sverdlovsk\u00ae\u00aeHora de Ver\u00e3o de Sverdlovsk\u00ae\u00ae\u00a9Africa_Western\u00aeHora da \u00c1frica Ocidental\u00ae\u00aeHora de Ver\u00e3o da \u00c1frica Ocidental\u00ae\u00ae\u00a9Samoa\u00aeHora Padr\u00e3o da Samoa\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeHora do Bot\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeHora de Ural'sk\u00ae\u00aeHora de Ver\u00e3o de Ural'sk\u00ae\u00ae\u00a9Alaska\u00aeHora Padr\u00e3o do Alaska\u00ae\u00aeHora de Ver\u00e3o do Alaska\u00ae\u00ae\u00a9Urumqi\u00aeHora de Urumqi\u00ae\u00ae\u00ae\u00ae\u00a9Colombia\u00aeHora da Col\u00f4mbia\u00ae\u00aeHora de Ver\u00e3o da Col\u00f4mbia\u00ae\u00ae\u00a9Aktyubinsk\u00aeHora de Aktyubinsk\u00ae\u00aeHora de Ver\u00e3o de Aktyubinsk\u00ae\u00ae\u00a9North_Mariana\u00aeHora das Ilhas Mariana do Norte\u00ae\u00ae\u00ae\u00ae\u00a9Nauru\u00aeHora de Nauru\u00ae\u00ae\u00ae\u00ae\u00a9Magadan\u00aeHora de Magadan\u00ae\u00aeHora de Ver\u00e3o de Magadan\u00ae\u00ae\u00a9Tajikistan\u00aeHora do Tajiquist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aeHora de Choibalsan\u00ae\u00aeHora de Ver\u00e3o de Choibalsan\u00ae\u00ae\u00a9New_Caledonia\u00aeHora da Nova Caled\u00f3nia\u00ae\u00aeHora de Ver\u00e3o da Nova Caled\u00f3nia\u00ae\u00ae\u00a9Azores\u00aeHora dos A\u00e7ores\u00ae\u00aeHora de Ver\u00e3o dos A\u00e7ores\u00ae\u00ae\u00a9Aqtau\u00aeHora de Aqtau\u00ae\u00aeHora de Ver\u00e3o de Aqtau\u00ae\u00ae\u00a9Baku\u00aeHora de Baku\u00ae\u00aeHora de Ver\u00e3o de Baku\u00ae\u00ae\u00a9Australia_Eastern\u00aeHora Padr\u00e3o da Austr\u00e1lia Oriental\u00ae\u00aeHora de Ver\u00e3o da Austr\u00e1lia Oriental\u00ae\u00ae\u00a9Davis\u00aeHora de Davis\u00ae\u00ae\u00ae\u00ae\u00a9Gambier\u00aeHora de Gambier\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Central\u00aeHora da Gronel\u00e2ndia Central\u00ae\u00aeHora de Ver\u00e3o da Gronel\u00e2ndia Central\u00ae\u00ae\u00a9Japan\u00aeHora Padr\u00e3o do Jap\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Jap\u00e3o\u00ae\u00ae\u00a9Borneo\u00aeHora do Born\u00e9u\u00ae\u00aeHora de Ver\u00e3o do Born\u00e9u\u00ae\u00ae\u00a9
+territories.TC=Ilhas Turks e Caicos
+territories.GW=Guin\u00e9-Bissau
+territories.AQ=Ant\u00e1rctica
+territories.MW=Malaui
+territories.AM=Arm\u00e9nia
+territories.MU=Maur\u00edcias
+territories.AI=Anguilha
+territories.MS=Monserrate
 territories.GL=Gronel\u00e2ndia
 territories.MP=Ilhas Mariana do Norte
 territories.MO=Macau - Regi\u00e3o Administrativa Especial da China
-territories.AE=Emiratos \u00c1rabes Unidos
+territories.AE=Emirados \u00c1rabes Unidos
 territories.MK=Maced\u00f3nia, Rep\u00fablica da
-territories.PL=Pol\u00f3nia
 territories.SM=S\u00e3o Marino
-territories.VN=Vietname
 territories.MG=Madag\u00e1scar
+territories.SJ=Esvalbarda e Jan Mayen
 territories.SI=Eslov\u00e9nia
-territories.PG=Papua Nova Guin\u00e9
 territories.MD=Mold\u00e1via, Rep\u00fablica da
-territories.VI=Ilhas Virgin E.U.A.
-territories.SG=Singapura
 territories.MC=M\u00f3naco
-territories.VG=Ilhas Virgin Brit\u00e2nicas
-territories.CZ=Rep\u00fablica Checa
+territories.SG=Singapura
 territories.SC=Seicheles
-territories.CX=Ilha do Natal
 territories.YE=I\u00e9men
-territories.VC=Saint Vincent e Grenadines
-territories.VA=Santa S\u00e9 (Estado da Cidade do Vaticano)
 territories.LV=Let\u00f3nia
-territories.UZ=Uzbaquist\u00e3o
-territories.CM=Camar\u00f5es
-territories.FK=Ilhas Falkland
+territories.FO=Ilhas Faro\u00e9
+territories.FM=Estados Federados da Micron\u00e9sia
+territories.FK=Ilhas Falkland ou Malvinas
+territories.018=\u00c1frica Meridional
+territories.017=\u00c1frica Interior
+territories.015=Norte de \u00c1frica
+territories.172=172
 territories.RO=Rom\u00e9nia
-territories.UM=Ilhas Minor Outlying (E.U.A)
-territories.RE=Reunion
 territories.LA=Lao, Rep\u00fablica Popular Democr\u00e1tica
-territories.BY=Bielorr\u00fassia
 territories.KZ=Cazaquist\u00e3o
 territories.KY=Ilhas Caim\u00e3o
+territories.KW=Cuaite
 territories.ER=Eritreia
 territories.KR=Coreia do Sul
-territories.BJ=Benim
+territories.009=Oce\u00e2nia
+territories.QU=Uni\u00e3o Europeia
 territories.KP=Coreia do Norte
 territories.KN=Saint Kitts e Nevis
-territories.HK=Hong Kong - Regi\u00e3o Administrativa Especial da China
-territories.EH=Sahara Ocidental
+territories.EH=Sara Ocidental
 territories.EG=Egipto
+territories.QO=Oce\u00e2nia Insular
 territories.EE=Est\u00f3nia
-territories.TM=Turquemenist\u00e3o
-territories.BA=B\u00f3snia-Herzegovina
 territories.KG=Quirguizist\u00e3o
+territories.062=\u00c1sia Sul-Central
 territories.KE=Qu\u00e9nia
+territories.PS=Territ\u00f3rio Palestiniano
+territories.154=Europa do Norte
+territories.151=Europa de Leste
+territories.057=Micron\u00e9sia
+territories.PL=Pol\u00f3nia
+territories.VN=Vietname
+territories.PG=Papua Nova Guin\u00e9
+territories.CZ=Rep\u00fablica Checa
+territories.VI=Ilhas Virgens dos EUA
+territories.CX=Ilha do Natal
+territories.VC=The main pump fixing screws with the correct strength class
+territories.IR=Ir\u00e3o
+territories.UZ=Usbequist\u00e3o
+territories.CG=Congo-Brazzaville
+territories.CD=Rep\u00fablica Democr\u00e1tica do Congo
+territories.CC=Ilhas Cocos
+territories.UM=Ilhas Minor Outlying (E.U.A)
+territories.BY=Bielorr\u00fassia
+territories.BS=Baamas
+territories.BJ=Benim
+territories.BH=Bareine
+territories.HK=Hong Kong - Regi\u00e3o Administrativa Especial da China
+territories.BF=Burkina-Faso
+territories.TT=Trindade e Tobago
+territories.BD=Bangladesh
+territories.ZW=Zimbabu\u00e9
+territories.035=Sudeste Asi\u00e1tico
+territories.NL=Pa\u00edses Baixos
+territories.TM=Turquemenist\u00e3o
+territories.TK=Toquelau
+territories.NF=Ilha Norfolque
 territories.TJ=Tajiquist\u00e3o
-territories.NC=Nova Caled\u00f3nia
 territories.AZ=Azerbeij\u00e3o
-territories.TF=Territ\u00f3rios Franceses a Sul
-territories.TD=Tchade
-territories.TC=Ilhas Turcas e Caicos
-territories.GW=Guin\u00e9-Bissau
-territories.AQ=Ant\u00e1rctica
-territories.GS=Ilhas South Georgia e South Sandwich
-territories.AM=Arm\u00e9nia
-territories.MU=Maur\u00edcias
-languages.sl=esloveno
+territories.NC=Nova Caled\u00f3nia
+territories.AX=Ilhas Alanda
+languages.mul=v\u00e1rias l\u00ednguas
+languages.en=Ingl\u00eas
+languages.nl_BE=flamengo (B\u00e9lgica)
+languages.nub=l\u00edngua n\u00fabia
+languages.phi=idioma filipino
+languages.zxx=sem conte\u00fado lingu\u00edstico
+languages.tai=idioma tail\u00e2ndes
+languages.sal=salishan languages
+languages.kj=kuanyama
+languages.sgn=linguagem de sinais
+languages.sai=l\u00edngua ind\u00edgena sul-americana
+languages.tyv=tuviniano
+languages.oto=l\u00edngua otomana
+languages.lua=luba-lulua
+languages.cpp=crioulo ou pidgin do portugu\u00eas
+languages.awa=Awadhi
+languages.mno=l\u00edngua manobo
+languages.fiu=idioma ugro-fin\u00eas
+languages.zh_Hans=chin\u00eas simplificado
+languages.smi=idioma sami
+languages.zh_Hant=chin\u00eas tradicional
+languages.jv=jv
+languages.cpf=Crioulo ou Pidgin do Franc\u00eas
+languages.cpe=Crioulo ou Pidgin do Ingl\u00eas
+languages.goh=alem\u00e3o arcaico alto
+languages.khi=l\u00edngua khoisan
+languages.ssa=l\u00edngua nilo-saariana
+languages.paa=idioma papuano
+languages.nai=l\u00edngua ind\u00edgena norte-americana
 languages.pl=polaco
+languages.nah=Nauatle
+languages.apa=l\u00edngua apache
+languages.iba=Iban
+languages.wen=idioma s\u00f3rbio
+languages.nso=soto setentrional
+languages.cus=l\u00edngua cuchita
+languages.ine=l\u00edngua indo-europeia
 languages.cs=checo
+languages.inc=l\u00edngua \u00edndica
+languages.sla=idioma eslavo
+languages.mga=irland\u00eas medieval
+languages.tet=tetum
+languages.aus=l\u00edngua australiana
+languages.os=oss\u00e9tico
+languages.kaa=kara-kalpak
+languages.bug=Buginese
+languages.pro=proven\u00e7al arcaico
+languages.ik=Inupiaq
+languages.enm=ingl\u00eas medieval
+languages.ce=chechene
+languages.ig=igbo
+languages.sem=l\u00edngua semita
+languages.bua=buriat
+languages.chn=jarg\u00e3o chinook
+languages.ypk=idioma i\u00fapique
+languages.oc=proven\u00e7al
+languages.pra=idioma pr\u00e1cito
+languages.gsw=alem\u00e3o da Su\u00ed\u00e7a
+languages.egy=Eg\u00edpcio cl\u00e1ssico
+languages.hy=arm\u00e9nio
+languages.peo=persa arcaico
+languages.pt_PT=portugu\u00eas europeu
+languages.gmh=alem\u00e3o medieval alto
+languages.cau=l\u00edngua caucasiana
+languages.hsb=sorbiano superior
+languages.de_CH=alem\u00e3o alto (Su\u00ed\u00e7a)
+languages.ang=ingl\u00eas arcaico
+languages.bat=l\u00edngua b\u00e1ltica
+languages.lez=lezghiano
+languages.ath=idioma atabascano
+languages.to=tongan\u00eas
+languages.cai=l\u00edngua centro-americana ind\u00edgena
+languages.tl=tagalogue
+languages.dyu=diula
+languages.krc=karachay-balkar
+languages.bai=bamileke Languages
+languages.tg=tajique
+languages.ta=tamil
+languages.mkh=Mon-Khmer
+languages.cmc=idioma chamic
+languages.frs=fr\u00edsio oriental
+languages.ak=akan
+languages.byn=blin
+languages.nds=baixo alem\u00e3o
+languages.fro=franc\u00eas arcaico
+languages.af=Afrikaans
+languages.frm=franc\u00eas medieval
+languages.sit=idioma sino-tibetano
+languages.grc=grego cl\u00e1ssico
+languages.mk=maced\u00f3nio
+languages.grb=grebo
+languages.tut=l\u00edngua altaica
+languages.sio=l\u00edngua sioux
+languages.tup=l\u00edngua tupi
+languages.tog=togan\u00eas
+languages.crp=Crioulo ou Pidgin
+languages.gem=l\u00edngua germ\u00e2nica
+languages.rom=roman\u00eas
+languages.crh=Turco da Crimeia
+languages.art=l\u00edngua artificial
+languages.dra=l\u00edngua dr\u00e1vida
+languages.afh=afrihili
+languages.zza=zazaki
+languages.alg=l\u00edngua algonquiana
+languages.afa=l\u00edngua afro-asi\u00e1tica
+languages.roa=l\u00edngua rom\u00e2nica
+languages.rm=reto-romance
+languages.cel=l\u00edngua celta
+languages.non=n\u00f3rdico arcaico
+languages.wak=idioma wakashan
+languages.nic=nigeriano - cordofano
 languages.et=est\u00f3nio
+variants.POSIX=Computador
+variants.AREVMDA=arm\u00e9nio ocidental
+variants.1996=Alem\u00e3o Moderno
+variants.SOLBA=dialecto stolvizza/solbica
+variants.NEDIS=dialecto natisone
+variants.1901=Alem\u00e3o Tradicional
+variants.FONUPA=Alfabeto Fon\u00e9tico Ur\u00e1lico
+variants.OSOJS=dialecto oseacco/osojane
+variants.LIPAW=dialecto lipovaz de Resian
+variants.REVISED=Revis\u00e3o Ortogr\u00e1fica
+variants.NJIVA=dialecto gniva/njiva
+variants.FONIPA=Alfabeto Fon\u00e9tico Internacional
+variants.BISKE=dialecto san giorgio/bila
+variants.SCOUSE=Scouse
+variants.SAAHO=Saho
+variants.MONOTON=monot\u00f3nico
+variants.POLYTON=polit\u00f3nico
+variants.AREVELA=arm\u00e9nio oriental
+variants.BOONT=buntlingue
index 439b9803d283b3246114c4c8e8492df23db44551..97a5c12846bee7d288f93e1d4cd22be00b2b0e18 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.INR=Rupie indian\u0103
-currenciesDisplayName.TRY=Noua lir\u0103 turceasc\u0103
-currenciesDisplayName.JPY=Yen japonez
-currenciesDisplayName.RUB=Rubl\u0103 ruseasc\u0103
-currenciesDisplayName.CNY=Yuan Renminbi chinezesc
-currenciesDisplayName.GBP=Lir\u0103 sterlin\u0103 britanic\u0103
-currenciesDisplayName.USD=Dolar SUA
-currenciesDisplayName.BRL=Real brazilian
-currenciesSymbol.ROL=lei
-shortMonths=Ian®Feb®Mar®Apr®Mai®Iun®Iul®Aug®Sep®Oct®Nov®Dec®®
-months=ianuarie®februarie®martie®aprilie®mai®iunie®iulie®august®septembrie®octombrie®noiembrie®decembrie®®
-shortWeekdays=®D®L®Ma®Mi®J®V®S®
-weekdays=®duminic\u0103®luni®mar\u0163i®miercuri®joi®vineri®s\u00eemb\u0103t\u0103®
-firstDayOfWeek=mon
-eras=d.C.®\u00ee.d.C.®
-shortDateFormat=dd.MM.yyyy
-mediumDateFormat=dd.MM.yyyy
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=dinar Yemen
+currenciesDisplayName.KES=\u0219iling kenyan
+currenciesDisplayName.TWD=dolar nou Taiwan
+currenciesDisplayName.LKR=rupie Sri Lanka
+currenciesDisplayName.RWF=franc rwandez
+currenciesDisplayName.TJR=rubl\u0103 Tadjikistan
+currenciesDisplayName.SDP=lir\u0103 sudanez\u0103
+currenciesDisplayName.GRD=drahm\u0103 greceasc\u0103
+currenciesDisplayName.IEP=lir\u0103 irlandez\u0103
+currenciesDisplayName.ARS=peso argentinian
+currenciesDisplayName.ARP=peso argentinian (1983\u20131985)
+currenciesDisplayName.SDD=dinar sudanez
+currenciesDisplayName.GEL=lari georgian
+currenciesDisplayName.CRC=colon costarican
+currenciesDisplayName.FKP=lir\u0103 Insulele Falkland
+currenciesDisplayName.EEK=coroan\u0103 estonian\u0103
+currenciesDisplayName.MDL=leu moldovenesc
+currenciesDisplayName.HKD=dolar Hong Kong
+currenciesDisplayName.IQD=dinar irakian
+currenciesDisplayName.SCR=rupie Seychelles
+currenciesDisplayName.KPW=won nord-coreean
+currenciesDisplayName.DKK=coroan\u0103 danez\u0103
+currenciesDisplayName.IDR=rupie indonezian\u0103
+currenciesDisplayName.SOS=\u0219iling somalez
+currenciesDisplayName.LVR=rubl\u0103 Letonia
+currenciesDisplayName.AED=dirham Emiratele Arabe Unite
+currenciesDisplayName.LVL=lats Letonia
+currenciesDisplayName.XTS=cod monetar de test
+currenciesDisplayName.FJD=dolar Fiji
+currenciesDisplayName.ADP=peset\u0103 andorran\u0103
+currenciesDisplayName.RUB=rubl\u0103 ruseasc\u0103
+currenciesDisplayName.CDF=franc congolez
+currenciesDisplayName.NIC=cordoba Nicaragua
+currenciesDisplayName.DJF=franc Djibouti
+currenciesDisplayName.UZS=sum Uzbekistan
+currenciesDisplayName.SBD=dolar Insulele Solomon
+currenciesDisplayName.LUL=franc financiar luxemburghez
+currenciesDisplayName.ECS=sucre Ecuador
+currenciesDisplayName.THB=baht thailandez
+currenciesDisplayName.PHP=peso filipinez
+currenciesDisplayName.LUF=franc luxemburghez
+currenciesDisplayName.RHD=dolar rhodesian
+currenciesDisplayName.LUC=franc convertibil luxemburghez
+currenciesDisplayName.FIM=marc\u0103 finlandez\u0103
+currenciesDisplayName.TTD=dolar Trinidad-Tobago
+currenciesDisplayName.MNT=tugrik mongol
+currenciesDisplayName.UAK=carboav\u0103 ucrainean\u0103
+currenciesDisplayName.SAR=riyal Arabia Saudit\u0103
+currenciesDisplayName.UAH=hryvna ucrainean\u0103
+currenciesDisplayName.HUF=forint maghiar
+currenciesDisplayName.QAR=riyal Qatar
+currenciesDisplayName.COP=peso columbian
+currenciesDisplayName.UYU=peso nou Uruguay
+currenciesDisplayName.GBP=lir\u0103 sterlin\u0103
+currenciesDisplayName.INR=rupie indian\u0103
+currenciesDisplayName.BIF=franc Burundi
+currenciesDisplayName.MZN=metical Mozambic
+currenciesDisplayName.LTL=lit lituanian
+currenciesDisplayName.UYP=peso Uruguay (1975\u20131993)
+currenciesDisplayName.MZM=metical Mozambic vechi
+currenciesDisplayName.BUK=kyat birman
+currenciesDisplayName.XFO=franc francez aur
+currenciesDisplayName.PGK=kina Papua-Noua Guinee
+currenciesDisplayName.SYP=lir\u0103 sirian\u0103
+currenciesDisplayName.OMR=riyal Oman
+currenciesDisplayName.MZE=escudo Mozambic
+currenciesDisplayName.ZRN=zair nou
+currenciesDisplayName.CNY=yuan renminbi chinezesc
+currenciesDisplayName.MAF=franc marocan
+currenciesDisplayName.RSD=dinar s\u00e2rbesc
+currenciesDisplayName.GNF=franc Guineea
+currenciesDisplayName.MAD=dirham marocan
+currenciesDisplayName.HTG=gourde Haiti
+currenciesDisplayName.TRY=lire turce\u015fti noi
+currenciesDisplayName.MMK=kyat Myanmar
+currenciesDisplayName.MYR=ringgit malaiezian
+currenciesDisplayName.SLL=leu Sierra Leone
+currenciesDisplayName.BTN=ngultrum Bhutan
+currenciesDisplayName.TRL=lire turce\u015fti
+currenciesDisplayName.KMF=franc comorian
+currenciesDisplayName.CZK=coroan\u0103 ceh\u0103
+currenciesDisplayName.ANG=gulden Antilele Olandeze
+currenciesDisplayName.AZN=manat azerbaidjan
+currenciesDisplayName.KYD=dolar Insulele Cayman
+currenciesDisplayName.GMD=dalasi Gambia
+currenciesDisplayName.BGN=leva bulg\u0103reasc\u0103 nou\u0103
+currenciesDisplayName.CAD=dolar canadian
+currenciesDisplayName.VEB=bolivar Venezuela
+currenciesDisplayName.MLF=franc Mali
+currenciesDisplayName.MXP=peso mexican de argint (1861\u20131992)
+currenciesDisplayName.ILS=\u0219echel israelian nou
+currenciesDisplayName.PES=sol Peru
+currenciesDisplayName.MXN=peso mexican
+currenciesDisplayName.GYD=dolar Guyana
+currenciesDisplayName.ILP=lir\u0103 israelian\u0103
+currenciesDisplayName.CYP=lir\u0103 cipriot\u0103
+currenciesDisplayName.SKK=coroan\u0103 slovac\u0103
+currenciesDisplayName.XDR=drepturi speciale de tragere
+currenciesDisplayName.PEN=sol nou Peru
+currenciesDisplayName.LRD=dolar liberian
+currenciesDisplayName.PEI=inti Peru
+currenciesDisplayName.AMD=dram armean
+currenciesDisplayName.BSD=dolar Bahamas
+currenciesDisplayName.XPT=platin\u0103
+currenciesDisplayName.HRK=kuna croat\u0103
+currenciesDisplayName.HRD=dinar croat
+currenciesDisplayName.CLP=peso chilian
+currenciesDisplayName.FRF=franc francez
+currenciesDisplayName.XPD=paladiu
+currenciesDisplayName.BRR=cruzeiro brazilian
+currenciesDisplayName.MKD=dinar macedonean
+currenciesDisplayName.ALL=leka albanez\u0103
+currenciesDisplayName.BRL=real brazilian
+currenciesDisplayName.BRE=cruzeiro brazilian (1990\u20131993)
+currenciesDisplayName.DEM=marc\u0103 german\u0103
+currenciesDisplayName.XCD=dolar Caraibele de Est
+currenciesDisplayName.KWD=dinar kuweitian
+currenciesDisplayName.NPR=rupie nepalez\u0103
+currenciesDisplayName.GWP=peso Guineea-Bissau
+currenciesDisplayName.YUN=dinar iugoslav convertibil
+currenciesDisplayName.YUM=dinar iugoslav nou
+currenciesDisplayName.SVC=colon El Salvador
+currenciesDisplayName.SIT=tolar sloven
+currenciesDisplayName.BEL=franc belgian (financiar)
+currenciesDisplayName.JPY=yen japonez
+currenciesDisplayName.YUD=dinar iugoslav greu
+currenciesDisplayName.BEF=franc belgian
+currenciesDisplayName.BEC=franc belgian (convertibil)
+currenciesDisplayName.SUR=rubl\u0103 sovietic\u0103
+currenciesDisplayName.RON=leu
+currenciesDisplayName.ROL=leu vechi
+currenciesDisplayName.DDM=marc\u0103 est-german\u0103
+currenciesDisplayName.BDT=taka Banglade\u0219
+currenciesDisplayName.NOK=coroan\u0103 norvegian\u0103
+currenciesDisplayName.ZAR=rand sud-african
+currenciesDisplayName.SHP=lir\u0103 Insula Sf. Elena
+currenciesDisplayName.XAU=aur
+currenciesDisplayName.ZAL=rand sud-african (financiar)
+currenciesDisplayName.VND=dong vietnamez
+currenciesDisplayName.TZS=\u0219iling tanzanian
+currenciesDisplayName.GIP=lir\u0103 Gibraltar
+currenciesDisplayName.TND=dinar tunisian
+currenciesDisplayName.CVE=escudo al Capului Verde
+currenciesDisplayName.UGX=\u0219iling ugandez
+currenciesDisplayName.XAG=argint
+currenciesDisplayName.JOD=dinar iordanian
+currenciesDisplayName.XAF=franc Comunitatea Financiar\u0103
+currenciesDisplayName.LBP=lir\u0103 libanez\u0103
+currenciesDisplayName.UGS=\u0219iling ugandez (1966\u20131987)
+currenciesDisplayName.STD=dobra Sao Tome \u0219i Principe
+currenciesDisplayName.KHR=riel cambodgian
+currenciesDisplayName.DOP=peso dominican
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BOV=mvdol bolivian
+currenciesDisplayName.USS=dolar american (aceea\u0219i zi)
+currenciesDisplayName.BOP=peso bolivian
+currenciesDisplayName.CUP=peso cubanez
+currenciesDisplayName.MTL=lir\u0103 maltez\u0103
+currenciesDisplayName.USN=dolar american (ziua urm\u0103toare)
+currenciesDisplayName.SGD=dolar Singapore
+currenciesDisplayName.NZD=dolar neozeelandez
+currenciesDisplayName.USD=dolar american
+currenciesDisplayName.BOB=boliviano
+currenciesDisplayName.HNL=lempira Honduras
+currenciesDisplayName.ITL=lir\u0103 italian\u0103
+currenciesDisplayName.PAB=balboa panamez
+currenciesDisplayName.GTQ=quetzal Guatemala
+currenciesDisplayName.XXX=moned\u0103 necunoscut\u0103 sau incorect\u0103
+currenciesDisplayName.AUD=dolar australian
+currenciesDisplayName.GHC=cedi Ghana
+currenciesDisplayName.LAK=kip Laos
+currenciesDisplayName.NAD=dolar namibian
+currenciesDisplayName.KGS=som Kirghizstan
+currenciesDisplayName.MGF=franc Madagascar
+currenciesDisplayName.BBD=dolar Barbados
+currenciesDisplayName.CHF=franc elve\u021bian
+currenciesDisplayName.PYG=guarani Paraguay
+currenciesDisplayName.PLZ=zlot polonez (1950\u20131995)
+currenciesDisplayName.YER=riyal Yemen
+currenciesDisplayName.ATS=\u0219iling austriac
+currenciesDisplayName.ETB=birr etiopian
+currenciesDisplayName.BND=dolar Brunei
+currenciesDisplayName.EGP=lir\u0103 egiptean\u0103
+currenciesDisplayName.JMD=dolar jamaican
+currenciesDisplayName.PLN=zlot nou polonez
+currenciesDisplayName.DZD=dinar algerian
+currenciesDisplayName.ISK=coroan\u0103 islandez\u0103
+currenciesDisplayName.SRG=gulden Surinam
+currenciesDisplayName.LYD=dinar libian
+currenciesDisplayName.SRD=dolar Surinam
+currenciesDisplayName.BAM=marc\u0103 convertibil\u0103 bosniac\u0103
+currenciesDisplayName.BZD=dolar Belize
+currenciesDisplayName.ESP=peset\u0103 spaniol\u0103
+currenciesDisplayName.KRW=won sud-coreean
+currenciesDisplayName.NLG=gulden olandez
+currenciesDisplayName.BAD=dinar Bosnia-Her\u021begovina
+currenciesDisplayName.ZWD=dolar Zimbabwe
+currenciesDisplayName.SEK=coroan\u0103 suedez\u0103
+currenciesDisplayName.BYR=rubl\u0103 bielorus\u0103
+currenciesDisplayName.IRR=rial iranian
+currenciesDisplayName.PKR=rupie pakistanez\u0103
+currenciesDisplayName.BMD=dolar Bermude
+currenciesDisplayName.CSD=dinar vechi Serbia \u0219i Muntenegru
+currenciesSymbol.RON=0\u2264lei|1\u2264leu|1<lei
+currenciesSymbol.ROL=0\u2264lei vechi|1\u2264leu vechi|1<lei vechi
+currenciesSymbol.EUR=euro
+shortMonths=ian.\u00aefeb.\u00aemar.\u00aeapr.\u00aemai\u00aeiun.\u00aeiul.\u00aeaug.\u00aesept.\u00aeoct.\u00aeNov\u00aedec.\u00ae\u00ae
+months=ianuarie\u00aefebruarie\u00aemartie\u00aeaprilie\u00aemai\u00aeiunie\u00aeiulie\u00aeaugust\u00aeseptembrie\u00aeoctombrie\u00aenoiembrie\u00aedecembrie\u00ae\u00ae
+shortWeekdays=\u00aeD\u00aeL\u00aeMa\u00aeMi\u00aeJ\u00aeV\u00aeS\u00ae
+weekdays=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00aes\u00e2mb\u0103t\u0103\u00ae
+eras=\u00ee.d.H.\u00aed.H.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=d.MM.yyyy
+mediumDateFormat=d MMM yyyy
 longDateFormat=d MMMM yyyy
-fullDateFormat=d MMMM yyyy
+fullDateFormat=EEEE, d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
 territories.TL=Timorul de Est
 territories.TK=Tokelau
 territories.TJ=Tadjikistan
-territories.TH=Tailanda
+territories.TH=Thailanda
 territories.TG=Togo
-territories.TF=Teritoriile Franceze de Sud
+territories.TF=Teritoriile Australe \u0219i Antarctice Franceze
 territories.GY=Guyana
 territories.TD=Ciad
-territories.TC=Insulele Turks \u015fi Caicos
+territories.TC=Insulele Turks \u0219i Caicos
 territories.GW=Guineea-Bissau
 territories.GU=Guam
 territories.GT=Guatemala
-territories.GS=Insulele South Georgia \u015fi South Sandwich
+territories.GS=Insulele Georgia de Sud \u0219i Sandwich de Sud
 territories.GR=Grecia
 territories.GQ=Guineea Ecuatorial\u0103
-territories.GP=Guadeloupe
+territories.GP=Guadelupa
 territories.SZ=Swaziland
 territories.SY=Siria
 territories.GN=Guineea
 territories.GM=Gambia
 territories.GL=Groenlanda
 territories.SV=El Salvador
-territories.062=Asia centrala \u015fi de Sud
-territories.ST=Sao Tome \u015fi Principe
-territories.061=Polinezia
+territories.062=Asia Central\u0103 de Sud
+territories.ST=Sao Tome \u0219i Principe
 territories.GI=Gibraltar
+territories.061=Polinezia
 territories.GH=Ghana
 territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Guyana Francez\u0103
 territories.GE=Georgia
 territories.SO=Somalia
@@ -65,54 +276,57 @@ territories.GB=Marea Britanie
 territories.SL=Sierra Leone
 territories.GA=Gabon
 territories.SK=Slovacia
-territories.SJ=Svalbard \u015fi Jan Mayen
+territories.SJ=Svalbard \u0219i Jan Mayen
 territories.SI=Slovenia
-territories.SH=Saint Helena
+territories.SH=Sf\u00e2nta Elena
 territories.SG=Singapore
 territories.SE=Suedia
 territories.SD=Sudan
 territories.SC=Seychelles
 territories.SB=Insulele Solomon
 territories.SA=Arabia Saudit\u0103
-territories.FR=Fran\u0163a
-territories.057=Micronezia
+territories.FR=Fran\u021ba
 territories.FO=Insulele Feroe
-territories.FM=Micronezia, Statele Federate
+territories.057=Regiunea Micronezia
+territories.FM=Micronezia
 territories.RW=Rwanda
 territories.054=Melanezia
-territories.053=Australia \u0219i Noua Zeeland\u0103
 territories.FK=Insulele Falkland
+territories.053=Australia \u0219i Noua Zeeland\u0103
 territories.RU=Rusia
 territories.FJ=Fiji
 territories.FI=Finlanda
+territories.RS=Serbia
 territories.RO=Rom\u00e2nia
 territories.RE=Reunion
 territories.ET=Etiopia
 territories.ES=Spania
-territories.ER=Eritrea
+territories.ER=Eritreea
+territories.QU=Uniunea European\u0103
 territories.EH=Sahara de Vest
 territories.EG=Egipt
-territories.830=Insulele Anglo-Normande
 territories.EE=Estonia
-territories.QO=Alt\u0103 Oceania
+territories.830=Insulele Anglo-Normande
+territories.QO=Oceania Periferic\u0103
 territories.EC=Ecuador
 territories.DZ=Algeria
 territories.QA=Qatar
-territories.039=Europa meridional\u0103
+territories.039=Europa Meridional\u0103
 territories.DO=Republica Dominican\u0103
 territories.PY=Paraguay
-territories.035=Asia de Sud-Est
 territories.DM=Dominica
+territories.035=Asia de Sud-Est
 territories.PW=Palau
+territories.034=Asia Meridional\u0103
 territories.DK=Danemarca
 territories.DJ=Djibouti
 territories.PT=Portugalia
 territories.PS=Teritoriul Palestinian
-territories.030=Asia oriental\u0103
+territories.030=Asia Oriental\u0103
 territories.PR=Porto Rico
 territories.DE=Germania
 territories.PN=Pitcairn
-territories.PM=Saint Pierre \u015fi Miquelon
+territories.PM=Saint Pierre \u0219i Miquelon
 territories.PL=Polonia
 territories.PK=Pakistan
 territories.PH=Filipine
@@ -125,7 +339,7 @@ territories.CX=Insula Christmas
 territories.CV=Capul Verde
 territories.PA=Panama
 territories.CU=Cuba
-territories.CS=Serbia \u015fi Muntenegru
+territories.CS=Serbia \u0219i Muntenegru
 territories.CR=Costa Rica
 territories.029=Caraibe
 territories.CO=Columbia
@@ -133,15 +347,16 @@ territories.CN=China
 territories.CM=Camerun
 territories.CL=Chile
 territories.CK=Insulele Cook
-territories.CI=Coasta de Filde\u015f
-territories.021=America de Nord
-territories.CH=Eleve\u0163ia
+territories.021=America Septentrional\u0103
+territories.CI=Coasta de Filde\u0219
+territories.CH=Eleve\u021bia
 territories.CG=Congo
-territories.CF=Republica Central African\u0103
-territories.CD=Congo, Republica Democratic\u0103
-territories.CC=Insulele Cocos (Keeling)
+territories.CF=Republica Centrafrican\u0103
+territories.CD=Republica Democrat\u0103 Congo
+territories.CC=Insulele Cocos
 territories.OM=Oman
 territories.CA=Canada
+territories.419=America Latin\u0103 \u0219i Caraibe
 territories.BZ=Belize
 territories.BY=Bielorusia
 territories.BW=Botswana
@@ -150,37 +365,39 @@ territories.BT=Bhutan
 territories.BS=Bahamas
 territories.BR=Brazilia
 territories.019=Americi
-territories.018=Africa austral\u0103
+territories.018=Africa Meridional\u0103
 territories.NZ=Noua Zeeland\u0103
+territories.017=Africa Central\u0103
 territories.BO=Bolivia
-territories.017=Africa central\u0103
 territories.BN=Brunei
+territories.015=Africa Septentrional\u0103
 territories.BM=Bermuda
-territories.015=Africa septentrional\u0103
-territories.014=Africa oriental\u0103
-territories.013=America central\u0103
+territories.014=Africa Oriental\u0103
+territories.013=America Central\u0103
 territories.NU=Niue
 territories.BJ=Benin
+territories.011=Africa Occidental\u0103
 territories.BI=Burundi
-territories.011=Africa occidental\u0103
+territories.172=Comunitatea Statelor Independente
 territories.BH=Bahrain
 territories.NR=Nauru
 territories.BG=Bulgaria
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgia
+territories.ZZ=Regiune necunoscut\u0103 sau incorect\u0103
 territories.NO=Norvegia
 territories.BD=Bangladesh
 territories.BB=Barbados
 territories.ZW=Zimbabwe
 territories.NL=Olanda
-territories.BA=Bosnia \u015fi Herzegovina
+territories.BA=Bosnia \u0219i Her\u021begovina
 territories.NI=Nicaragua
 territories.NG=Nigeria
 territories.NF=Insulele Norfolk
 territories.AZ=Azerbaidjan
 territories.NE=Niger
-territories.AX=Insulele Aland
+territories.AX=Insulele \u00c5land
 territories.NC=Noua Caledonie
 territories.AW=Aruba
 territories.ZM=Zambia
@@ -190,30 +407,33 @@ territories.AT=Austria
 territories.AS=Samoa American\u0103
 territories.AR=Argentina
 territories.AQ=Antarctica
+territories.009=Oceania
 territories.MZ=Mozambic
 territories.AO=Angola
 territories.MY=Malaezia
 territories.AN=Antilele Olandeze
 territories.MX=Mexic
-territories.005=America de Sud
 territories.AM=Armenia
+territories.005=America de Sud
 territories.MW=Malawi
 territories.AL=Albania
 territories.MV=Maldive
+territories.003=America de Nord
 territories.ZA=Africa de Sud
 territories.MU=Mauritius
+territories.002=Africa
 territories.MT=Malta
-territories.001=Lume
 territories.AI=Anguilla
+territories.001=Lume
 territories.MS=Montserrat
 territories.MR=Mauritania
-territories.AG=Antigua \u015fi Barbuda
+territories.AG=Antigua \u0219i Barbuda
 territories.MQ=Martinica
 territories.AF=Afganistan
-territories.MP=Insulele Northern Mariana
+territories.MP=Insulele Mariane de Nord
 territories.AE=Emiratele Arabe Unite
-territories.MO=R.A.S. Macao a Chinei
-territories.AD=Andora
+territories.MO=Macao
+territories.AD=Andorra
 territories.MN=Mongolia
 territories.MM=Myanmar
 territories.ML=Mali
@@ -221,105 +441,304 @@ territories.MK=Macedonia
 territories.YT=Mayotte
 territories.MH=Insulele Marshall
 territories.MG=Madagascar
-territories.MD=Moldova, Republica
+territories.ME=Muntenegru
+territories.MD=Basarabia
 territories.MC=Monaco
 territories.MA=Maroc
 territories.YE=Yemen
-territories.LY=Libia, Jamahiriya Arab\u0103
+territories.LY=Libia
 territories.LV=Letonia
-territories.155=Europa occidental\u0103
+territories.155=Europa Occidental\u0103
 territories.LU=Luxemburg
-territories.154=Europa septentrional\u0103
+territories.154=Europa Septentrional\u0103
 territories.LT=Lituania
 territories.LS=Lesotho
 territories.LR=Liberia
-territories.151=Europa de Est
+territories.151=Europa Oriental\u0103
 territories.150=Europa
 territories.LK=Sri Lanka
 territories.LI=Liechtenstein
-territories.LC=Saint Lucia
+territories.LC=Sf\u00e2nta Lucia
 territories.LB=Liban
-territories.LA=Lao, Republica Democratic\u0103 Popular\u0103
+territories.LA=Laos
 territories.KZ=Kazahstan
 territories.KY=Insulele Cayman
 territories.KW=Kuweit
-territories.145=Asia occidental\u0103
+territories.145=Asia Occidental\u0103
+territories.143=Asia Central\u0103
+territories.142=Asia
 territories.KR=Coreea de Sud
 territories.KP=Coreea de Nord
-territories.KN=Saint Kitts \u015fi Nevis
-territories.KM=Comoros
+territories.KN=Saint Kitts \u0219i Nevis
+territories.KM=Comore
 territories.KI=Kiribati
 territories.WS=Samoa
 territories.KH=Cambodgia
-territories.KG=Kirghizia
+territories.KG=Kirghizstan
 territories.KE=Kenya
-territories.WF=Wallis \u015fi Futuna
+territories.WF=Wallis \u0219i Futuna
 territories.JP=Japonia
 territories.JO=Iordania
 territories.JM=Jamaica
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=Insulele Virgine S.U.A.
 territories.VG=Insulele Virgine Britanice
 territories.VE=Venezuela
-territories.VC=Saint Vincent \u015fi Grenadines
-territories.VA=Sf\u00e2ntul Scaun (Statul Vatican)
+territories.VC=Saint Vincent \u0219i Grenadines
+territories.VA=Vatican
 territories.IT=Italia
 territories.IS=Islanda
 territories.IR=Iran
-territories.IQ=Iraq
+territories.IQ=Irak
 territories.UZ=Uzbekistan
-territories.IO=Teritoriile Britanice din Oceanul Indian
+territories.IO=Teritoriul Britanic din Oceanul Indian
 territories.UY=Uruguay
 territories.IN=India
+territories.IM=Insula Man
 territories.IL=Israel
 territories.US=Statele Unite
 territories.IE=Irlanda
 territories.ID=Indonezia
-territories.UM=United States Minor Outlying Islands
+territories.UM=Teritoriile \u00cendep\u0103rtate ale Statelor Unite
 territories.UG=Uganda
 territories.UA=Ucraina
 territories.HU=Ungaria
 territories.HT=Haiti
-territories.HR=Croa\u0163ia
+territories.HR=Croa\u021bia
 territories.TZ=Tanzania
 territories.HN=Honduras
-territories.HM=Insula Heard \u015fi Insulele McDonald
+territories.HM=Insula Heard \u0219i Insulele McDonald
 territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=R.A.S. Hong Kong a Chinei
-territories.TT=Trinidad \u015fi Tobago
+territories.HK=Hong Kong
+territories.TT=Trinidad-Tobago
 territories.TR=Turcia
 territories.TO=Tonga
 territories.TN=Tunisia
 territories.TM=Turkmenistan
-languages.ja=Japonez\u0103
-languages.en=Englez\u0103
-languages.tr=Turc\u0103
-languages.ko=Coreean\u0103
-languages.no=Norvegian\u0103
-languages.el=Greac\u0103
-languages.nl=Olandez\u0103
-languages.bg=Bulgar\u0103
-languages.lv=Leton\u0103
-languages.cs=Ceh\u0103
-languages.he=Ebraic\u0103
-languages.it=Italian\u0103
-languages.lt=Lituanian\u0103
-languages.fr=Francez\u0103
-languages.zh=Chinez\u0103
-languages.ru=Rus\u0103
-languages.ro=Rom\u00e2n\u0103
-languages.fi=Finlandez\u0103
-languages.ar=Arab\u0103
-languages.sv=Suedez\u0103
-languages.pt=Portughez\u0103
-languages.pl=Polonez\u0103
-languages.sl=Sloven\u0103
-languages.sk=Slovac\u0103
-languages.de=German\u0103
-languages.et=Estonian\u0103
-languages.hu=Maghiar\u0103
-languages.es=Spaniol\u0103
-languages.da=Danez\u0103
-languages.hr=Croat\u0103
+languages.lb=luxemburghez\u0103
+languages.la=latin\u0103
+languages.xh=xhosa
+languages.ky=k\u00eerg\u00eez\u0103
+languages.ku=kurd\u0103
+languages.ks=ca\u0219mirez\u0103
+languages.ko=coreean\u0103
+languages.kn=kannada
+languages.km=khmer\u0103
+languages.kl=kalaallisut
+languages.kk=kazah\u0103
+languages.ira=limb\u0103 iranian\u0103
+languages.kg=congolez\u0103
+languages.en_GB=englez\u0103 britanic\u0103
+languages.grc=greac\u0103 veche
+languages.wo=wolof
+languages.art=limb\u0103 artificial\u0103
+languages.ka=georgian\u0103
+languages.gem=limb\u0103 germanic\u0103
+languages.afa=limb\u0103 afro-asiatic\u0103
+languages.jv=javanez\u0103
+languages.wa=valon\u0103
+languages.arc=aramaic\u0103
+languages.cel=limb\u0103 celtic\u0103
+languages.sco=sco\u021bian\u0103
+languages.scn=sicilian\u0103
+languages.vo=volapuk
+languages.tut=limb\u0103 altaic\u0103
+languages.ja=japonez\u0103
+languages.vi=vietnamez\u0103
+languages.rup=arom\u00e2n\u0103
+languages.it=italian\u0103
+languages.is=islandez\u0103
+languages.uz=uzbec\u0103
+languages.ik=inupiak
+languages.ur=urdu
+languages.ie=interlingua
+languages.id=indonezian\u0103
+languages.hit=hitit\u0103
+languages.ia=interlingua
+languages.uk=ucrainean\u0103
+languages.ug=uigur\u0103
+languages.fiu=limb\u0103 fino-ugric\u0103
+languages.und=limb\u0103 necunoscut\u0103 sau incorect\u0103
+languages.hy=armean\u0103
+languages.nub=limb\u0103 nubian\u0103
+languages.phn=fenician\u0103
+languages.got=gotic\u0103
+languages.es_ES=spaniol\u0103 iberic\u0103
+languages.hu=maghiar\u0103
+languages.ht=haitian\u0103
+languages.phi=limb\u0103 filipinez\u0103
+languages.hr=croat\u0103
+languages.fil=filipinez\u0103
+languages.ty=tahitian\u0103
+languages.apa=limb\u0103 apa\u0219\u0103
+languages.tw=twi
+languages.tt=t\u0103tar\u0103
+languages.hi=hindi
+languages.tr=turc\u0103
+languages.sam=aramaic\u0103 samaritean\u0103
+languages.cop=copt\u0103
+languages.he=ebraic\u0103
+languages.tn=setswana
+languages.sai=limb\u0103 sud-amerindian\u0103
+languages.tl=tagalog
+languages.tk=turkmen\u0103
+languages.ti=tigrinya
+languages.th=thailandez\u0103
+languages.tg=tadjic\u0103
+languages.mnc=manciurian\u0103
+languages.te=telugu
+languages.ta=tamil
+languages.syr=sirian\u0103
+languages.gu=gujarati
+languages.ine=limb\u0103 indo-european\u0103
+languages.gn=guarani
+languages.inc=limb\u0103 indian\u0103
+languages.sw=swahili
+languages.gl=galician\u0103
+languages.sv=suedez\u0103
+languages.su=sundanez\u0103
+languages.st=sesotho
+languages.sr=s\u00e2rb\u0103
+languages.sq=albanez\u0103
+languages.en_CA=englez\u0103 canadian\u0103
+languages.so=somalez\u0103
+languages.gd=gaelic\u0103 sco\u021bian\u0103
+languages.sm=samoan\u0103
+languages.sl=sloven\u0103
+languages.ga=irlandez\u0103
+languages.sk=slovac\u0103
+languages.si=singalez\u0103
+languages.sh=s\u00e2rbo-croat\u0103
+languages.myn=limb\u0103 maya
+languages.fy=frizian\u0103
+languages.sd=sindhi
+languages.sc=sardinian\u0103
+languages.sa=sanscrit\u0103
+languages.cau=limb\u0103 caucazian\u0103
+languages.ang=englez\u0103 veche
+languages.fr=francez\u0103
+languages.sla=limb\u0103 slav\u0103
+languages.fo=faroez\u0103
+languages.pro=provensal\u0103 veche
+languages.ru=rus\u0103
+languages.fj=fijian\u0103
+languages.cai=limb\u0103 central-amerindian\u0103
+languages.fi=finlandez\u0103
+languages.ro=rom\u00e2n\u0103
+languages.rm=reto-roman\u0103
+languages.fa=persan\u0103
+languages.pt_PT=portughez\u0103 iberic\u0103
+languages.nl_BE=flamand\u0103
+languages.es_419=spaniol\u0103 latino-american\u0103
+languages.en_AU=englez\u0103 australian\u0103
+languages.peo=persan\u0103 veche
+languages.eu=basc\u0103
+languages.elx=elamit\u0103
+languages.et=estonian\u0103
+languages.es=spaniol\u0103
+languages.eo=esperanto
+languages.en=englez\u0103
+languages.el=greac\u0103
+languages.qu=quechua
+languages.jrb=iudeo-arab\u0103
+languages.fro=francez\u0103 veche
+languages.alt=altaic\u0103 meridional\u0103
+languages.dra=limb\u0103 dravidian\u0103
+languages.ale=aleut\u0103
+languages.pt_BR=portughez\u0103 brazilian\u0103
+languages.pt=portughez\u0103
+languages.ber=berber\u0103
+languages.ps=pa\u0219to
+languages.de=german\u0103
+languages.sit=limb\u0103 sino-tibetan\u0103
+languages.pl=polonez\u0103
+languages.da=danez\u0103
+languages.pi=pali
+languages.sux=sumerian\u0103
+languages.jpr=iudeo-persan\u0103
+languages.cy=vel\u0219\u0103
+languages.akk=akkadian\u0103
+languages.cv=ciuva\u0219\u0103
+languages.pa=punjabi
+languages.cu=slavon\u0103
+languages.cs=ceh\u0103
+languages.co=corsican\u0103
+languages.mis=limbi diverse
+languages.de_CH=german\u0103 standard elve\u021bian\u0103
+languages.or=oriya
+languages.roa=limb\u0103 romanic\u0103
+languages.ce=cecen\u0103
+languages.om=oromo
+languages.ca=catalan\u0103
+languages.zap=zapotec\u0103
+languages.mun=limb\u0103 munda
+languages.mul=limbi multiple
+languages.oc=occitan\u0103
+languages.bs=bosniac\u0103
+languages.xal=calmuc\u0103
+languages.br=breton\u0103
+languages.bo=tibetan\u0103
+languages.zh_Hans=chinez\u0103 simplificat\u0103
+languages.bn=bengalez\u0103
+languages.zh_Hant=chinez\u0103 tradi\u021bional\u0103
+languages.nv=navajo
+languages.bh=bihari
+languages.bg=bulgar\u0103
+languages.be=bielorus\u0103
+languages.oto=limb\u0103 otomi
+languages.no=norvegian\u0103
+languages.nn=norvegian\u0103 nynorsk
+languages.tai=limb\u0103 thailandez\u0103
+languages.nl=olandez\u0103
+languages.ba=ba\u0219kir\u0103
+languages.zu=zulu
+languages.sgn=limbaj mimico-gestual
+languages.ain=ainu
+languages.az=azer\u0103
+languages.ne=nepalez\u0103
+languages.ay=aymara
+languages.av=avar\u0103
+languages.de_AT=german\u0103 austriac\u0103
+languages.ota=turc\u0103 otoman\u0103
+languages.aus=limb\u0103 australian\u0103
+languages.as=asamez\u0103
+languages.nap=napolitan\u0103
+languages.ar=arab\u0103
+languages.zh=chinez\u0103
+languages.zxx=far\u0103 con\u021binut lingvistic
+languages.sga=irlandez\u0103 veche
+languages.my=birmanez\u0103
+languages.an=aragonez\u0103
+languages.am=amharic\u0103
+languages.nai=limb\u0103 nord-amerindian\u0103
+languages.paa=limb\u0103 papua\u0219\u0103
+languages.mt=maltez\u0103
+languages.ms=malaezian\u0103
+languages.mr=marathi
+languages.af=afrikaans
+languages.haw=hawaian\u0103
+languages.mo=moldoveneasc\u0103
+languages.mn=mongol\u0103
+languages.en_US=englez\u0103 american\u0103
+languages.ab=abhaz\u0103
+languages.ml=malayalam
+languages.bnt=bantu
+languages.mk=macedonean\u0103
+languages.mi=maori
+languages.mg=malga\u0219\u0103
+languages.yo=yoruba
+languages.egy=egiptean\u0103 veche
+languages.tlh=klingonian\u0103
+languages.yi=idi\u0219
+languages.gsw=german\u0103 elve\u021bian\u0103
+languages.bat=limb\u0103 baltic\u0103
+languages.lv=leton\u0103
+languages.lt=lituanian\u0103
+languages.fr_CH=francez\u0103 elve\u021bian\u0103
+languages.lo=lao\u021bian\u0103
+languages.ln=lingala
+languages.fr_CA=francez\u0103 canadian\u0103
+languages.sem=limb\u0103 semitic\u0103
index cc69fee46ef31e979f472edae415a24871011d7d..35c9512f2fe399f02a34767c7ac7ad6bf42094c4 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.TWD=\u041d\u043e\u0432\u044b\u0439 \u0442\u0430\u0439\u0432\u0430\u043d\u044c\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u0419\u0435\u043c\u0435\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.KES=\u041a\u0435\u043d\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
-currenciesDisplayName.BYB=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1994-1999)
+currenciesDisplayName.TWD=\u041d\u043e\u0432\u044b\u0439 \u0442\u0430\u0439\u0432\u0430\u043d\u044c\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
 currenciesDisplayName.LKR=\u0428\u0440\u0438-\u041b\u0430\u043d\u043a\u0438\u0439\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
-currenciesDisplayName.RWF=\u0424\u0440\u0430\u043d\u043a \u0420\u0443\u0430\u043d\u0434\u044b
+currenciesDisplayName.BYB=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1994-1999)
 currenciesDisplayName.TJS=\u0422\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438\u0439 \u0441\u043e\u043c\u043e\u043d\u0438
-currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.RWF=\u0424\u0440\u0430\u043d\u043a \u0420\u0443\u0430\u043d\u0434\u044b
 currenciesDisplayName.ERN=\u041d\u0430\u043a\u0444\u0430
+currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
 currenciesDisplayName.GRD=\u0413\u0440\u0435\u0447\u0435\u0441\u043a\u0430\u044f \u0434\u0440\u0430\u0445\u043c\u0430
+currenciesDisplayName.AFN=\u0410\u0444\u0433\u0430\u043d\u0438
 currenciesDisplayName.IEP=\u0418\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
+currenciesDisplayName.ARP=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e (1983-1985)
 currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.GEL=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438\u0439 \u043b\u0430\u0440\u0438
-currenciesDisplayName.AFA=\u0410\u0444\u0433\u0430\u043d\u0438 (1927-2002)
 currenciesDisplayName.GEK=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438\u0439 \u043a\u0443\u043f\u043e\u043d
+currenciesDisplayName.AFA=\u0410\u0444\u0433\u0430\u043d\u0438 (1927-2002)
 currenciesDisplayName.CRC=\u041a\u043e\u0441\u0442\u0430\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
 currenciesDisplayName.FKP=\u0424\u0443\u043d\u0442 \u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u043a\u0438\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432
 currenciesDisplayName.EEK=\u042d\u0441\u0442\u043e\u043d\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.HKD=\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
 currenciesDisplayName.MDL=\u041c\u043e\u043b\u0434\u0430\u0432\u0441\u043a\u0438\u0439 \u043b\u0435\u0439
+currenciesDisplayName.HKD=\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
 currenciesDisplayName.IQD=\u0418\u0440\u0430\u043a\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.ARA=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438\u0439 \u0430\u0443\u0441\u0442\u0440\u0430\u043b
 currenciesDisplayName.SCR=\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
 currenciesDisplayName.VUV=\u0412\u0430\u0442\u0443
+currenciesDisplayName.KPW=\u0421\u0435\u0432\u0435\u0440\u043e\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0430\u044f \u0432\u043e\u043d\u0430
 currenciesDisplayName.DKK=\u0414\u0430\u0442\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.KPW=\u0421\u0435\u0432\u0435\u0440\u043e-\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0430\u044f \u0432\u043e\u043d\u0430
 currenciesDisplayName.IDR=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
+currenciesDisplayName.GQE=\u042d\u043a\u0432\u0435\u043b\u0435 \u044d\u043a\u0432\u0430\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0413\u0432\u0438\u043d\u0435\u0438
 currenciesDisplayName.SOS=\u0421\u043e\u043c\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
-currenciesDisplayName.AED=\u0414\u0438\u0440\u0445\u0430\u043c (\u041e\u0410\u042d)
-currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0443\u043b\u0430
+currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.EQE=\u042d\u043a\u0432\u0435\u043b\u0435
+currenciesDisplayName.AED=\u0414\u0438\u0440\u0445\u0430\u043c \u041e\u0410\u0415
 currenciesDisplayName.LVL=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0438\u0439 \u043b\u0430\u0442
+currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0443\u043b\u0430
 currenciesDisplayName.RUR=\u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1991-1998)
 currenciesDisplayName.NIO=\u0417\u043e\u043b\u043e\u0442\u0430\u044f \u043a\u043e\u0440\u0434\u043e\u0431\u0430
-currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0440\u0441\u043a\u0430\u044f \u043f\u0435\u0441\u0435\u0442\u0430
+currenciesDisplayName.XTS=\u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0432\u0430\u043b\u044e\u0442\u043d\u044b\u0439 \u043a\u043e\u0434
+currenciesDisplayName.MOP=\u041f\u0430\u0442\u0430\u043a\u0430 \u041c\u0430\u043a\u0430\u043e
 currenciesDisplayName.FJD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0424\u0438\u0434\u0436\u0438
-currenciesDisplayName.RUB=\u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.ADP=\u0430\u043d\u0434\u043e\u0440\u0440\u0441\u043a\u0438\u0445 \u043f\u0435\u0441\u0435\u0442
+currenciesDisplayName.RUB=1,31 \u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u0431\u043b\u044f
 currenciesDisplayName.CDF=\u041a\u043e\u043d\u0433\u043e\u043b\u0435\u0437\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.NIC=\u041d\u0438\u043a\u0430\u0440\u0430\u0433\u0443\u0430\u043d\u0441\u043a\u0430\u044f \u043a\u043e\u0440\u0434\u043e\u0431\u0430
 currenciesDisplayName.DJF=\u0424\u0440\u0430\u043d\u043a \u0414\u0436\u0438\u0431\u0443\u0442\u0438
-currenciesDisplayName.SBD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u044b\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432
 currenciesDisplayName.UZS=\u0423\u0437\u0431\u0435\u043a\u0441\u043a\u0438\u0439 \u0441\u0443\u043c
+currenciesDisplayName.SBD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u044b\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432
+currenciesDisplayName.ECV=\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u042d\u043a\u0432\u0430\u0434\u043e\u0440\u0430
+currenciesDisplayName.LUL=\u0424\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0439 \u0444\u0440\u0430\u043d\u043a \u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0430
 currenciesDisplayName.ECS=\u042d\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u0438\u0439 \u0441\u0443\u043a\u0440\u0435
-currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
 currenciesDisplayName.THB=\u0422\u0430\u0438\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0431\u0430\u0442
+currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
 currenciesDisplayName.LUF=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.RHD=\u0420\u043e\u0434\u0435\u0437\u0438\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.LUC=\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0444\u0440\u0430\u043d\u043a \u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0430
 currenciesDisplayName.FIM=\u0424\u0438\u043d\u0441\u043a\u0430\u044f \u043c\u0430\u0440\u043a\u0430
 currenciesDisplayName.TTD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0434\u0430 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e
 currenciesDisplayName.SZL=\u0421\u0432\u0430\u0437\u0438\u043b\u0435\u043d\u0434\u0441\u043a\u0438\u0439 \u043b\u0438\u043b\u0430\u043d\u0433\u0435\u043d\u0438
 currenciesDisplayName.MNT=\u041c\u043e\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0442\u0443\u0433\u0440\u0438\u043a
+currenciesDisplayName.UAK=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438\u0439 \u043a\u0430\u0440\u0431\u043e\u0432\u0430\u043d\u0435\u0446
 currenciesDisplayName.SAR=\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0438\u0430\u043b
-currenciesDisplayName.UAK=\u041a\u0430\u0440\u0431\u043e\u0432\u0430\u043d\u0435\u0446 (\u0443\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438\u0439)
+currenciesDisplayName.COU=\u0415\u0434\u0438\u043d\u0438\u0446\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0438
 currenciesDisplayName.UAH=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0430\u044f \u0433\u0440\u0438\u0432\u043d\u0430
 currenciesDisplayName.HUF=\u0412\u0435\u043d\u0433\u0435\u0440\u0441\u043a\u0438\u0439 \u0444\u043e\u0440\u0438\u043d\u0442
-currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0439\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
 currenciesDisplayName.QAR=\u041a\u0430\u0442\u0430\u0440\u0441\u043a\u0438\u0439 \u0440\u0438\u0430\u043b
-currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u043e\u0435 \u044d\u0441\u043a\u0443\u0434\u043e
+currenciesDisplayName.COP=\u043a\u043e\u043b\u0443\u043c\u0431\u0438\u0439\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
+currenciesDisplayName.LTT=\u041b\u0438\u0442\u043e\u0432\u0441\u043a\u0438\u0439 \u0442\u0430\u043b\u043e\u043d
+currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439 \u044d\u0441\u043a\u0443\u0434\u043e
+currenciesDisplayName.UYU=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.AOR=\u0430\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0430\u044f \u043a\u0432\u0430\u043d\u0437\u0430 \u0440\u0435\u044e\u0441\u0442\u0430\u0434\u043e (1995-1999)
 currenciesDisplayName.GBP=\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442 \u0441\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u043e\u0432
-currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.ZRZ=\u0417\u0430\u0438\u0440
 currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
-currenciesDisplayName.AON=\u041d\u043e\u0432\u0430\u044f \u043a\u0432\u0430\u043d\u0437\u0430
+currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.XFU=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439 UIC-\u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.MZN=\u041c\u0435\u0442\u0438\u043a\u0430\u043b
 currenciesDisplayName.LTL=\u041b\u0438\u0442\u043e\u0432\u0441\u043a\u0438\u0439 \u043b\u0438\u0442
-currenciesDisplayName.KZT=\u0422\u0435\u043d\u0433\u0435 (\u043a\u0430\u0437\u0430\u0445\u0441\u043a\u0438\u0439)
-currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
-currenciesDisplayName.UYP=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
-currenciesDisplayName.PGK=\u041a\u0438\u043d\u0430
+currenciesDisplayName.AON=1 \u0430\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0430\u044f \u043d\u043e\u0432\u0430\u044f \u043a\u0432\u0430\u043d\u0437\u0430 (1990-2000)
+currenciesDisplayName.UYP=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e (1975-1993)
+currenciesDisplayName.MZM=\u0421\u0442\u0430\u0440\u044b\u0439 \u043c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u0445\u0441\u043a\u0438\u0439 \u0442\u0435\u043d\u0433\u0435
+currenciesDisplayName.AOK=\u0430\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0430\u044f \u043a\u0432\u0430\u043d\u0437\u0430 (1977-1990)
+currenciesDisplayName.GNS=\u0413\u0432\u0438\u043d\u0435\u0439\u0441\u043a\u0430\u044f \u0441\u0438\u043b\u0438
+currenciesDisplayName.BUK=\u0414\u0436\u0430
+currenciesDisplayName.XFO=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439 \u0437\u043e\u043b\u043e\u0442\u043e\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.PGK=\u041a\u0438\u043d\u0430 \u041f\u0430\u043f\u0443\u0430-\u041d\u043e\u0432\u043e\u0439 \u0413\u0432\u0438\u043d\u0435\u0438
 currenciesDisplayName.SYP=\u0421\u0438\u0440\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
 currenciesDisplayName.OMR=\u041e\u043c\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u0438\u0430\u043b
-currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0439\u0441\u043a\u0430\u044f \u043d\u0430\u0439\u0440\u0430
+currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u043e\u0435 \u044d\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.ZRN=\u041d\u043e\u0432\u044b\u0439 \u0437\u0430\u0438\u0440
-currenciesDisplayName.CNY=\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 \u044e\u0430\u043d\u044c
+currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0439\u0441\u043a\u0430\u044f \u043d\u0430\u0439\u0440\u0430
+currenciesDisplayName.CNY=\u044e\u0430\u043d\u044c \u0420\u0435\u043d\u043c\u0438\u043d\u0431\u0438
+currenciesDisplayName.AOA=\u0430\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0430\u044f \u043a\u0432\u0430\u043d\u0437\u0430
+currenciesDisplayName.MAF=\u041c\u0430\u0440\u043e\u043a\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.RSD=\u0421\u0435\u0440\u0431\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.GNF=\u0413\u0432\u0438\u043d\u0435\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.HTG=\u0413\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438\u0439 \u0433\u0443\u0440\u0434
 currenciesDisplayName.MAD=\u041c\u0430\u0440\u043e\u043a\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u0440\u0445\u0430\u043c
-currenciesDisplayName.TRY=\u041d\u043e\u0432\u0430\u044f \u0442\u0443\u0440\u0435\u0446\u043a\u0430\u044f \u043b\u0438\u0440\u0430
+currenciesDisplayName.HTG=\u0413\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438\u0439 \u0433\u0443\u0440\u0434
+currenciesDisplayName.TRY=1 \u043d\u043e\u0432\u0430\u044f \u0442\u0443\u0440\u0435\u0446\u043a\u0430\u044f \u043b\u0438\u0440\u0430
+currenciesDisplayName.MMK=\u041a\u044c\u044f\u0442
+currenciesDisplayName.XRE=\u0415\u0434\u0438\u043d\u0438\u0446\u0430 RINET-\u0444\u043e\u043d\u0434\u043e\u0432
 currenciesDisplayName.MYR=\u041c\u0430\u043b\u0430\u0439\u0437\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u0438\u043d\u0433\u0433\u0438\u0442
-currenciesDisplayName.LSL=\u041b\u043e\u0442\u0438
+currenciesDisplayName.LSM=\u041c\u0430\u043b\u043e\u0442\u0438
 currenciesDisplayName.XEU=\u042d\u041a\u042e (\u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0439 \u0432\u0430\u043b\u044e\u0442\u044b)
-currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u043a\u0438\u0439 \u043b\u043e\u0442\u0438
 currenciesDisplayName.SLL=\u041b\u0435\u043e\u043d\u0435
+currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.BTN=\u041d\u0433\u0443\u043b\u0442\u0440\u0443\u043c
-currenciesDisplayName.TRL=\u0422\u0443\u0440\u0435\u0446\u043a\u0430\u044f \u043b\u0438\u0440\u0430
+currenciesDisplayName.TRL=\u0442\u0443\u0440\u0435\u0446\u043a\u0430\u044f \u043b\u0438\u0440\u0430
 currenciesDisplayName.KMF=\u0424\u0440\u0430\u043d\u043a \u041a\u043e\u043c\u043e\u0440\u0441\u043a\u0438\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432
-currenciesDisplayName.ANG=\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0430\u043d\u0442\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
 currenciesDisplayName.CZK=\u0427\u0435\u0448\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.AZM=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.ANG=\u043d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0430\u043d\u0442\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
+currenciesDisplayName.AZN=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.AZM=\u0430\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
 currenciesDisplayName.KYD=\u0414\u043e\u043b\u043b\u0430\u0440 \u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u044b\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432
 currenciesDisplayName.GMD=\u0413\u0430\u043c\u0431\u0438\u0439\u0441\u043a\u0438\u0439 \u0434\u0430\u043b\u0430\u0441\u0438
 currenciesDisplayName.BGN=\u0411\u043e\u043b\u0433\u0430\u0440\u0441\u043a\u0438\u0439 \u043b\u0435\u0432
+currenciesDisplayName.MXV=\u043c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0435\u0440\u0435\u0441\u0447\u0435\u0442\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 (UDI)
 currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
 currenciesDisplayName.BGL=\u041b\u0435\u0432
 currenciesDisplayName.VEB=\u0412\u0435\u043d\u0435\u0441\u0443\u044d\u043b\u044c\u0441\u043a\u0438\u0439 \u0431\u043e\u043b\u0438\u0432\u0430\u0440
+currenciesDisplayName.MLF=\u041c\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.MXP=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0441\u0435\u0440\u0435\u0431\u0440\u044f\u043d\u044b\u0439 \u043f\u0435\u0441\u043e (1861-1992)
 currenciesDisplayName.ILS=\u041d\u043e\u0432\u044b\u0439 \u0438\u0437\u0440\u0430\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u0448\u0435\u043a\u0435\u043b\u044c
+currenciesDisplayName.PES=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438\u0439 \u0441\u043e\u043b\u044c
+currenciesDisplayName.MXN=\u043c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
 currenciesDisplayName.GYD=\u0413\u0430\u0439\u0430\u043d\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
-currenciesDisplayName.MXN=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043d\u043e\u0432\u043e\u0435 \u043f\u0435\u0441\u043e
-currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0446\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
+currenciesDisplayName.ILP=\u0418\u0437\u0440\u0430\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
 currenciesDisplayName.CYP=\u041a\u0438\u043f\u0440\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0446\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.XDR=\u0421\u0414\u0420 (\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f)
 currenciesDisplayName.PEN=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438\u0439 \u043d\u043e\u0432\u044b\u0439 \u0441\u043e\u043b\u044c
 currenciesDisplayName.LRD=\u041b\u0438\u0431\u0435\u0440\u0438\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
-currenciesDisplayName.AMD=\u0410\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439 \u0434\u0440\u0430\u043c
+currenciesDisplayName.PEI=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u043e\u0435 \u0438\u043d\u0442\u0438
+currenciesDisplayName.AMD=\u0430\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439 \u0434\u0440\u0430\u043c
 currenciesDisplayName.BSD=\u0411\u0430\u0433\u0430\u043c\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.XPT=\u041f\u043b\u0430\u0442\u0438\u043d\u0430
 currenciesDisplayName.HRK=\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0430\u044f \u043a\u0443\u043d\u0430
-currenciesDisplayName.CLP=\u0427\u0438\u043b\u0438\u0439\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
 currenciesDisplayName.HRD=\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.CLP=\u0447\u0438\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
 currenciesDisplayName.XPF=\u0424\u0440\u0430\u043d\u043a \u041a\u0424\u041f
 currenciesDisplayName.FRF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.BRR=\u041a\u0440\u0443\u0437\u0435\u0439\u0440\u043e \u0440\u0435\u0430\u043b
+currenciesDisplayName.XPD=\u041f\u0430\u043b\u043b\u0430\u0434\u0438\u0439
+currenciesDisplayName.BRR=\u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e \u0440\u0435\u0430\u043b
 currenciesDisplayName.MKD=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.ALL=\u0410\u043b\u0431\u0430\u043d\u0441\u043a\u0438\u0439 \u043b\u0435\u043a
-currenciesDisplayName.MWK=\u041a\u0432\u0430\u0447\u0430 (\u043c\u0430\u043b\u0430\u0432\u0438\u0439\u0441\u043a\u0430\u044f)
+currenciesDisplayName.CLF=\u0423\u0441\u043b\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0427\u0438\u043b\u0438
+currenciesDisplayName.ALL=\u0430\u043b\u0431\u0430\u043d\u0441\u043a\u0438\u0439 \u043b\u0435\u043a
+currenciesDisplayName.BRN=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u043a\u043e\u0435 \u043d\u043e\u0432\u043e\u0435 \u043a\u0440\u0443\u0437\u0430\u0434\u043e
+currenciesDisplayName.MWK=\u041c\u0430\u043b\u0430\u0432\u0438\u0439\u0441\u043a\u0430\u044f \u043a\u0432\u0430\u0447\u0430
 currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u0440\u0435\u0430\u043b
-currenciesDisplayName.TPE=\u0422\u0438\u043c\u043e\u0440\u0441\u043a\u043e\u0435 \u044d\u0441\u043a\u0443\u0434\u043e
+currenciesDisplayName.TPE=\u0422\u0438\u043c\u043e\u0440\u0441\u043a\u0438\u0439 \u044d\u0441\u043a\u0443\u0434\u043e
+currenciesDisplayName.BRE=\u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e (1990-1993)
+currenciesDisplayName.BRC=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u043a\u043e\u0435 \u043a\u0440\u0443\u0437\u0430\u0434\u043e
+currenciesDisplayName.BRB=\u043d\u043e\u0432\u044b\u0439 \u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e (1967-1986)
 currenciesDisplayName.DEM=\u041d\u0435\u043c\u0435\u0446\u043a\u0430\u044f \u043c\u0430\u0440\u043a\u0430
 currenciesDisplayName.KWD=\u041a\u0443\u0432\u0435\u0439\u0442\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.XCD=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u043a\u0430\u0440\u0438\u0431\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
@@ -125,107 +181,141 @@ currenciesDisplayName.NPR=\u041d\u0435\u043f\u0430\u043b\u044c\u0441\u043a\u0430
 currenciesDisplayName.GWP=\u041f\u0435\u0441\u043e \u0413\u0432\u0438\u043d\u0435\u0438-\u0411\u0438\u0441\u0430\u0443
 currenciesDisplayName.YUN=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.SVC=\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
+currenciesDisplayName.YUM=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438\u0439 \u043d\u043e\u0432\u044b\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.BEL=\u0411\u0435\u043b\u044c\u0433\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0439)
 currenciesDisplayName.SIT=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438\u0439 \u0442\u043e\u043b\u0430\u0440
-currenciesDisplayName.JPY=\u042f\u043f\u043e\u043d\u0441\u043a\u0430\u044f \u0438\u0435\u043d\u0430
+currenciesDisplayName.JPY=\u042f\u043f\u043e\u043d\u0441\u043a\u0430\u044f \u0439\u0435\u043d\u0430
 currenciesDisplayName.XOF=\u0424\u0440\u0430\u043d\u043a \u041a\u0424\u0410 \u0412\u0421\u0415\u0410\u041e
 currenciesDisplayName.MVR=\u041c\u0430\u043b\u044c\u0434\u0438\u0432\u0441\u043a\u0430\u044f \u0440\u0443\u0444\u0438\u044f
 currenciesDisplayName.BEF=\u0411\u0435\u043b\u044c\u0433\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.GWE=\u042d\u0441\u043a\u0443\u0434\u043e \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u043e\u0439 \u0413\u0432\u0438\u043d\u0435\u0438
 currenciesDisplayName.TOP=\u041f\u0430\u0430\u043d\u0433\u0430
+currenciesDisplayName.YUD=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438\u0439 \u0442\u0432\u0435\u0440\u0434\u044b\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.BEC=\u0411\u0435\u043b\u044c\u0433\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0439)
+currenciesDisplayName.SUR=\u0420\u0443\u0431\u043b\u044c \u0421\u0421\u0421\u0420
+currenciesDisplayName.RON=\u041b\u0435\u0439
 currenciesDisplayName.ROL=\u0420\u0443\u043c\u044b\u043d\u0441\u043a\u0438\u0439 \u043b\u0435\u0439
 currenciesDisplayName.BDT=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448\u0441\u043a\u0430\u044f \u0442\u0430\u043a\u0430
+currenciesDisplayName.DDM=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0433\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0430\u044f \u043c\u0430\u0440\u043a\u0430
+currenciesDisplayName.XBD=\u0420\u0430\u0441\u0447\u0435\u0442\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0432\u0430\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f (XBD)
 currenciesDisplayName.AWG=\u0410\u0440\u0443\u0431\u0430\u043d\u0441\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
+currenciesDisplayName.XBC=\u0420\u0430\u0441\u0447\u0435\u0442\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0432\u0430\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f (XBC)
+currenciesDisplayName.XBB=\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430\u044f \u0434\u0435\u043d\u0435\u0436\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430
+currenciesDisplayName.XBA=\u0415\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430
 currenciesDisplayName.NOK=\u041d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.MUR=\u041c\u0430\u0432\u0440\u0438\u043a\u0438\u0439\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
 currenciesDisplayName.ZAR=\u042e\u0436\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u044d\u043d\u0434
 currenciesDisplayName.SHP=\u0424\u0443\u043d\u0442 \u043e\u0441\u0442\u0440\u043e\u0432\u0430 \u0421\u0432\u044f\u0442\u043e\u0439 \u0415\u043b\u0435\u043d\u044b
 currenciesDisplayName.XAU=\u0417\u043e\u043b\u043e\u0442\u043e
+currenciesDisplayName.ZAL=\u042e\u0436\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u044d\u043d\u0434 (\u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0439)
 currenciesDisplayName.VND=\u0412\u044c\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438\u0439 \u0434\u043e\u043d\u0433
 currenciesDisplayName.TZS=\u0422\u0430\u043d\u0437\u0430\u043d\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
 currenciesDisplayName.GIP=\u0413\u0438\u0431\u0440\u0430\u043b\u0442\u0430\u0440\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
 currenciesDisplayName.TND=\u0422\u0443\u043d\u0438\u0441\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.CVE=\u042d\u0441\u043a\u0443\u0434\u043e \u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435
-currenciesDisplayName.ZMK=\u041a\u0432\u0430\u0447\u0430 (\u0437\u0430\u043c\u0431\u0438\u0439\u0441\u043a\u0430\u044f)
+currenciesDisplayName.UGX=\u0423\u0433\u0430\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
+currenciesDisplayName.XAG=\u0421\u0435\u0440\u0435\u0431\u0440\u043e
+currenciesDisplayName.ZMK=\u0417\u0430\u043c\u0431\u0438\u0439\u0441\u043a\u0430\u044f \u043a\u0432\u0430\u0447\u0430
 currenciesDisplayName.JOD=\u0418\u043e\u0440\u0434\u0430\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.XAF=\u0424\u0440\u0430\u043d\u043a \u041a\u0424\u0410 \u0412\u0415\u0410\u0421
 currenciesDisplayName.LBP=\u041b\u0438\u0432\u0430\u043d\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.UGS=\u0423\u0433\u0430\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
-currenciesDisplayName.STD=\u0414\u043e\u0431\u0440\u0430
+currenciesDisplayName.UGS=\u0443\u0433\u0430\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433 (1966-1987)
+currenciesDisplayName.STD=\u0414\u043e\u0431\u0440\u0430 \u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0441\u0438\u043f\u0438
 currenciesDisplayName.WST=\u0422\u0430\u043b\u0430
 currenciesDisplayName.KHR=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u0438\u0435\u043b\u044c
-currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
 currenciesDisplayName.DOP=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
-currenciesDisplayName.MTL=\u041c\u0430\u043b\u044c\u0442\u0438\u0439\u0441\u043a\u0430\u044f \u043b\u0438\u0440\u0430
+currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
+currenciesDisplayName.BOV=\u0411\u043e\u043b\u0438\u0432\u0438\u0439\u0441\u043a\u0438\u0439 \u043c\u0432\u0434\u043e\u043b
+currenciesDisplayName.MTP=\u041c\u0430\u043b\u044c\u0442\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.USS=\u0414\u043e\u043b\u043b\u0430\u0440 \u0421\u0428\u0410 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043d\u044f
+currenciesDisplayName.BOP=\u0411\u043e\u043b\u0438\u0432\u0438\u0439\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
 currenciesDisplayName.CUP=\u041a\u0443\u0431\u0438\u043d\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.MTL=\u041c\u0430\u043b\u044c\u0442\u0438\u0439\u0441\u043a\u0430\u044f \u043b\u0438\u0440\u0430
 currenciesDisplayName.TMM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.USN=\u0414\u043e\u043b\u043b\u0430\u0440 \u0421\u0428\u0410 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0434\u043d\u044f
+currenciesDisplayName.GHS=\u0421\u0435\u0434\u0438 \u0413\u0430\u043d\u044b
 currenciesDisplayName.SGD=\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
 currenciesDisplayName.NZD=\u041d\u043e\u0432\u043e\u0437\u0435\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
 currenciesDisplayName.USD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0421\u0428\u0410
+currenciesDisplayName.BOB=\u0431\u043e\u043b\u0438\u0432\u0438\u0430\u043d\u043e
 currenciesDisplayName.HNL=\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441\u0441\u043a\u0430\u044f \u043b\u0435\u043c\u043f\u0438\u0440\u0430
-currenciesDisplayName.BOB=\u0411\u043e\u043b\u0438\u0432\u0438\u0430\u043d\u043e
-currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u043e\u0435 \u0431\u0430\u043b\u044c\u0431\u043e\u0430
+currenciesDisplayName.CHW=WIR \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.ITL=\u0418\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0430\u044f \u043b\u0438\u0440\u0430
+currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u043e\u0435 \u0431\u0430\u043b\u044c\u0431\u043e\u0430
 currenciesDisplayName.GTQ=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u0435\u0442\u0441\u0430\u043b\u044c
-currenciesDisplayName.NAD=\u0414\u043e\u043b\u043b\u0430\u0440 \u041d\u0430\u043c\u0438\u0431\u0438\u0438
-currenciesDisplayName.LAK=\u041a\u0438\u043f \u041b\u041d\u0414\u0420
-currenciesDisplayName.GHC=\u0413\u0430\u043d\u0441\u043a\u0438\u0439 \u0441\u0435\u0434\u0438
+currenciesDisplayName.XXX=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u0438\u043b\u0438 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u0430\u043b\u044e\u0442\u0430
 currenciesDisplayName.AUD=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
-currenciesDisplayName.KGS=\u0421\u043e\u043c (\u043a\u0438\u0440\u0433\u0438\u0437\u0441\u043a\u0438\u0439)
+currenciesDisplayName.GHC=\u0413\u0430\u043d\u0441\u043a\u0438\u0439 \u0441\u0435\u0434\u0438
+currenciesDisplayName.LAK=\u041a\u0438\u043f \u041b\u041d\u0414\u0420
+currenciesDisplayName.NAD=\u0414\u043e\u043b\u043b\u0430\u0440 \u041d\u0430\u043c\u0438\u0431\u0438\u0438
+currenciesDisplayName.KGS=\u041a\u0438\u0440\u0433\u0438\u0437\u0441\u043a\u0438\u0439 \u0441\u043e\u043c
 currenciesDisplayName.MGF=\u041c\u0430\u043b\u0430\u0433\u0430\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.BBD=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.CHE=WIR \u0435\u0432\u0440\u043e
+currenciesDisplayName.MGA=\u0410\u0440\u0438\u0430\u0440\u0438
 currenciesDisplayName.PYG=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439\u0441\u043a\u0438\u0439 \u0433\u0443\u0430\u0440\u0430\u043d\u0438
-currenciesDisplayName.PLZ=\u0417\u043b\u043e\u0442\u044b\u0439
+currenciesDisplayName.PLZ=\u041f\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0437\u043b\u043e\u0442\u044b\u0439 (1950-1995)
 currenciesDisplayName.YER=\u0419\u0435\u043c\u0435\u043d\u0441\u043a\u0438\u0439 \u0440\u0438\u0430\u043b
 currenciesDisplayName.ATS=\u0410\u0432\u0441\u0442\u0440\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
 currenciesDisplayName.ETB=\u042d\u0444\u0438\u043e\u043f\u0441\u043a\u0438\u0439 \u0431\u044b\u0440
 currenciesDisplayName.BND=\u0411\u0440\u0443\u043d\u0435\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
-currenciesDisplayName.PLN=\u041f\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0437\u043b\u043e\u0442\u044b\u0439
-currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
 currenciesDisplayName.EGP=\u0415\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.PLN=\u041f\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0437\u043b\u043e\u0442\u044b\u0439
 currenciesDisplayName.DZD=\u0410\u043b\u0436\u0438\u0440\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.ISK=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.SRG=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
 currenciesDisplayName.LYD=\u041b\u0438\u0432\u0438\u0439\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.SRD=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.BAM=\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043c\u0430\u0440\u043a\u0430 \u0411\u043e\u0441\u043d\u0438\u0438 \u0438 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u044b
 currenciesDisplayName.BZD=\u0411\u0435\u043b\u0438\u0437\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.ESP=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0435\u0441\u0435\u0442\u0430
+currenciesDisplayName.KRW=\u042e\u0436\u043d\u043e-\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0430\u044f \u0432\u043e\u043d\u0430
 currenciesDisplayName.NLG=\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
-currenciesDisplayName.KRW=\u0412\u043e\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u041a\u043e\u0440\u0435\u0438
 currenciesDisplayName.MRO=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0443\u0433\u0438\u044f
+currenciesDisplayName.BAD=\u0414\u0438\u043d\u0430\u0440 \u0411\u043e\u0441\u043d\u0438\u0438 \u0438 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u044b
 currenciesDisplayName.ZWD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0417\u0438\u043c\u0431\u0430\u0431\u0432\u0435
 currenciesDisplayName.SEK=\u0428\u0432\u0435\u0434\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
+currenciesDisplayName.CSK=\u0427\u0435\u0445\u043e\u0441\u043b\u043e\u0432\u0430\u0446\u043a\u0430\u044f \u0442\u0432\u0435\u0440\u0434\u0430\u044f \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.BYR=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.ESB=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0435\u0441\u0435\u0442\u0430 (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u0430\u044f)
 currenciesDisplayName.IRR=\u0418\u0440\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u0438\u0430\u043b
+currenciesDisplayName.ESA=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0435\u0441\u0435\u0442\u0430 (\u0410)
 currenciesDisplayName.PKR=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
 currenciesDisplayName.BMD=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=\u0421\u0442\u0430\u0440\u044b\u0439 \u0441\u0435\u0440\u0431\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
-currenciesSymbol.AMD=dram
+currenciesSymbol.SCR=SR
+currenciesSymbol.AMD=\u0434\u0440\u0430\u043c
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.ZAR=R
 currenciesSymbol.RUR=\u0440.
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.JPY=\u00a5
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
 currenciesSymbol.RUB=\u0440\u0443\u0431.
+currenciesSymbol.VND=\u0414\u043e\u043d\u0433
 currenciesSymbol.DKK=DKr
 currenciesSymbol.TZS=T Sh
 currenciesSymbol.SBD=SI$
@@ -243,23 +333,25 @@ currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
 currenciesSymbol.DJF=DF
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
+currenciesSymbol.ADP=\u0430\u043d\u0434\u043e\u0440\u0440\u0441\u043a\u0438\u0445 \u043f\u0435\u0441\u0435\u0442
 currenciesSymbol.SGD=S$
 currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
 currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -268,8 +360,8 @@ currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
 currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.BOB=Bs
 currenciesSymbol.CNY=Y
@@ -284,10 +376,10 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.ANG=NA f.
@@ -295,49 +387,51 @@ currenciesSymbol.BZD=BZ$
 currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.CAD=Can$
-shortMonths=\u044f\u043d\u0432.®\u0444\u0435\u0432\u0440.®\u043c\u0430\u0440\u0442®\u0430\u043f\u0440.®\u043c\u0430\u0439®\u0438\u044e\u043d\u044c®\u0438\u044e\u043b\u044c®\u0430\u0432\u0433.®\u0441\u0435\u043d\u0442.®\u043e\u043a\u0442.®\u043d\u043e\u044f\u0431.®\u0434\u0435\u043a.®®
-months=\u042f\u043d\u0432\u0430\u0440\u044c®\u0424\u0435\u0432\u0440\u0430\u043b\u044c®\u041c\u0430\u0440\u0442®\u0410\u043f\u0440\u0435\u043b\u044c®\u041c\u0430\u0439®\u0418\u044e\u043d\u044c®\u0418\u044e\u043b\u044c®\u0410\u0432\u0433\u0443\u0441\u0442®\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c®\u041e\u043a\u0442\u044f\u0431\u0440\u044c®\u041d\u043e\u044f\u0431\u0440\u044c®\u0414\u0435\u043a\u0430\u0431\u0440\u044c®®
-shortWeekdays=®\u0412\u0441®\u041f\u043d®\u0412\u0442®\u0421\u0440®\u0427\u0442®\u041f\u0442®\u0421\u0431®
-weekdays=®\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435®\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a®\u0432\u0442\u043e\u0440\u043d\u0438\u043a®\u0441\u0440\u0435\u0434\u0430®\u0447\u0435\u0442\u0432\u0435\u0440\u0433®\u043f\u044f\u0442\u043d\u0438\u0446\u0430®\u0441\u0443\u0431\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u0434\u043e \u043d.\u044d.®\u043d.\u044d.®
+shortMonths=\u044f\u043d\u0432.\u00ae\u0444\u0435\u0432\u0440.\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440.\u00ae\u043c\u0430\u0439\u00ae\u0438\u044e\u043d\u044c\u00ae\u0438\u044e\u043b\u044c\u00ae\u0430\u0432\u0433.\u00ae\u0441\u0435\u043d\u0442.\u00ae\u043e\u043a\u0442.\u00ae\u043d\u043e\u044f\u0431.\u00ae\u0434\u0435\u043a.\u00ae\u00ae
+months=\u042f\u043d\u0432\u0430\u0440\u044c\u00ae\u0424\u0435\u0432\u0440\u0430\u043b\u044c\u00ae\u041c\u0430\u0440\u0442\u00ae\u0410\u043f\u0440\u0435\u043b\u044c\u00ae\u041c\u0430\u0439\u00ae\u0418\u044e\u043d\u044c\u00ae\u0418\u044e\u043b\u044c\u00ae\u0410\u0432\u0433\u0443\u0441\u0442\u00ae\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c\u00ae\u041e\u043a\u0442\u044f\u0431\u0440\u044c\u00ae\u041d\u043e\u044f\u0431\u0440\u044c\u00ae\u0414\u0435\u043a\u0430\u0431\u0440\u044c\u00ae\u00ae
+shortWeekdays=\u00ae\u0412\u0441\u00ae\u041f\u043d\u00ae\u0412\u0442\u00ae\u0421\u0440\u00ae\u0427\u0442\u00ae\u041f\u0442\u00ae\u0421\u0431\u00ae
+weekdays=\u00ae\u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435\u00ae\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a\u00ae\u0412\u0442\u043e\u0440\u043d\u0438\u043a\u00ae\u0421\u0440\u0435\u0434\u0430\u00ae\u0427\u0435\u0442\u0432\u0435\u0440\u0433\u00ae\u041f\u044f\u0442\u043d\u0438\u0446\u0430\u00ae\u0421\u0443\u0431\u0431\u043e\u0442\u0430\u00ae
+eras=\u0434\u043e \u043d.\u044d.\u00ae\u043d.\u044d.\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=dd.MM.yy
 mediumDateFormat=dd.MM.yyyy
-longDateFormat=d MMMM yyyy '\u0433.'
-fullDateFormat=d MMMM yyyy '\u0433.'
-shortTimeFormat=H:mm
-mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ss z
-fullTimeFormat=H:mm:ss z
+longDateFormat=d MMMM yyyy '\u0433'.
+fullDateFormat=d MMMM yyyy '\u0433'.
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Central\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Africa_Western\u00ae\u0417\u0430\u043f\u0430\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u0417\u0430\u043f\u0430\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00a9Aqtau\u00ae\u0410\u043a\u0442\u0430\u0443 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u0430\u0443 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u0430\u0443 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u0430\u0443 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Arabian\u00ae\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Alaska\u00ae\u0410\u043b\u044f\u0441\u043a\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u044f\u0441\u043a\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u044f\u0441\u043a\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u044f\u0441\u043a\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Hong_Kong\u00ae\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Indonesia_Western\u00ae\u0417\u0430\u043f\u0430\u0434\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0417\u0430\u043f\u0430\u0434\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Aqtobe\u00ae\u0410\u043a\u0442\u043e\u0431\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u043e\u0431\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u043e\u0431\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u043e\u0431\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Armenia\u00ae\u0410\u0440\u043c\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u043c\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u043c\u0435\u043d\u0438\u044f \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u043c\u0435\u043d\u0438\u044f \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9America_Pacific\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Almaty\u00ae\u0410\u043b\u043c\u0430-\u0410\u0442\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u043c\u0430-\u0410\u0442\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u043c\u0430-\u0410\u0442\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u043c\u0430-\u0410\u0442\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Anadyr\u00ae\u0410\u043d\u0430\u0434\u044b\u0440\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043d\u0430\u0434\u044b\u0440\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043d\u0430\u0434\u044b\u0440\u044c \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043d\u0430\u0434\u044b\u0440\u044c \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Israel\u00ae\u0418\u0437\u0440\u0430\u0438\u043b\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0418\u0437\u0440\u0430\u0438\u043b\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0418\u0437\u0440\u0430\u0438\u043b\u044c \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0418\u0437\u0440\u0430\u0438\u043b\u044c \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Volgograd\u00ae\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Europe_Eastern\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Moscow\u00ae\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Korea\u00ae\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Argentina_Western\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 (\u0437\u0430\u043f\u0430\u0434) \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 (\u0437\u0430\u043f\u0430\u0434) \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9America_Eastern\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Afghanistan\u00ae\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Acre\u00ae\u0410\u043a\u0440\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0440\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0440\u0438 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0440\u0438 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Africa_Central\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u0422\u0443\u0440\u0435\u0446\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0443\u0440\u0435\u0446\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0443\u0440\u0435\u0446\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0443\u0440\u0435\u0446\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Africa_Southern\u00ae\u042e\u0436\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00ae\u00a9Argentina\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9China\u00ae\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u0413\u043e\u0440\u043d\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f (\u0421\u0428\u0410)\u00ae\u0413\u043e\u0440\u043d\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f (\u0421\u0428\u0410)\u00ae\u0413\u043e\u0440\u043d\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f (\u0421\u0428\u0410)\u00ae\u0413\u043e\u0440\u043d\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f (\u0421\u0428\u0410)\u00ae\u00a9India\u00ae\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u0421\u0430\u043c\u0430\u0440\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u043c\u0430\u0440\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u043c\u0430\u0440\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u043c\u0430\u0440\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Indochina\u00ae\u0418\u043d\u0434\u043e\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0418\u043d\u0434\u043e\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Brasilia\u00ae\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f \u0434\u043d\u0435\u0432\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f \u0434\u043d\u0435\u0432\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9America_Central\u00ae\u0421\u0440\u0435\u0434\u043d\u0435-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0440\u0435\u0434\u043d\u0435-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0440\u0435\u0434\u043d\u0435-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0440\u0435\u0434\u043d\u0435-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Kuybyshev\u00ae\u041a\u0443\u0439\u0431\u044b\u0448\u0435\u0432\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041a\u0443\u0439\u0431\u044b\u0448\u0435\u0432\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041a\u0443\u0439\u0431\u044b\u0448\u0435\u0432\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041a\u0443\u0439\u0431\u044b\u0448\u0435\u0432\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Japan\u00ae\u042f\u043f\u043e\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u042f\u043f\u043e\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Aktyubinsk\u00ae\u0410\u043a\u0442\u044e\u0431\u0438\u043d\u0441\u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u044e\u0431\u0438\u043d\u0441\u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u044e\u0431\u0438\u043d\u0441\u043a \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u044e\u0431\u0438\u043d\u0441\u043a \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9
 territories.TL=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u044b\u0439 \u0422\u0438\u043c\u043e\u0440
 territories.TK=\u0422\u043e\u043a\u0435\u043b\u0430\u0443
 territories.TJ=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d
-territories.TH=\u0422\u0430\u0438\u043b\u0430\u043d\u0434
+territories.TH=\u041a\u043e\u0440\u043e\u043b\u0435\u0432\u0441\u0442\u0432\u043e \u0422\u0430\u0438\u043b\u0430\u043d\u0434
 territories.TG=\u0422\u043e\u0433\u043e
 territories.TF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0435 \u042e\u0436\u043d\u044b\u0435 \u0422\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438
 territories.GY=\u0413\u0430\u0439\u0430\u043d\u0430
 territories.TD=\u0427\u0430\u0434
-territories.TC=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u0422\u0443\u0440\u043a\u0441 \u0438 \u041a\u0430\u0439\u043a\u043e\u0441
+territories.TC=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u0422\u0451\u0440\u043a\u0441 \u0438 \u041a\u0430\u0439\u043a\u043e\u0441
 territories.GW=\u0413\u0432\u0438\u043d\u0435\u044f-\u0411\u0438\u0441\u0441\u0430\u0443
 territories.GU=\u0413\u0443\u0430\u043c
 territories.GT=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430
-territories.GS=\u042e\u0436\u043d\u0430\u044f \u0414\u0436\u043e\u0440\u0434\u0436\u0438\u044f \u0438 \u042e\u0436\u043d\u044b\u0435 \u0421\u0430\u043d\u0434\u0432\u0438\u0447\u0435\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430
+territories.GS=\u042e\u0436\u043d\u0430\u044f \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0438 \u042e\u0436\u043d\u044b\u0435 \u0421\u0430\u043d\u0434\u0432\u0438\u0447\u0435\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.GR=\u0413\u0440\u0435\u0446\u0438\u044f
 territories.GQ=\u042d\u043a\u0432\u0430\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f
 territories.GP=\u0413\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430
 territories.SZ=\u0421\u0432\u0430\u0437\u0438\u043b\u0435\u043d\u0434
-territories.SY=\u0421\u0438\u0440\u0438\u0439\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0431\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430
+territories.SY=\u0421\u0438\u0440\u0438\u044f
 territories.GN=\u0413\u0432\u0438\u043d\u0435\u044f
 territories.GM=\u0413\u0430\u043c\u0431\u0438\u044f
 territories.GL=\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0438\u044f
 territories.SV=\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440
-territories.062=\u042e\u0436\u043d\u0430\u044f \u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0410\u0437\u0438\u044f
+territories.062=\u042e\u0433 \u0421\u0440\u0435\u0434\u043d\u0435\u0439 \u0410\u0437\u0438\u0438
 territories.ST=\u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0441\u0438\u043f\u0438
-territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f
 territories.GI=\u0413\u0438\u0431\u0440\u0430\u043b\u0442\u0430\u0440
+territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f
 territories.GH=\u0413\u0430\u043d\u0430
 territories.SR=\u0421\u0443\u0440\u0438\u043d\u0430\u043c
-territories.GF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u0413\u0432\u0438\u0430\u043d\u0430
+territories.GG=\u0413\u0435\u0440\u043d\u0441\u0438
+territories.GF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f
 territories.GE=\u0413\u0440\u0443\u0437\u0438\u044f
 territories.SO=\u0421\u043e\u043c\u0430\u043b\u0438
 territories.GD=\u0413\u0440\u0435\u043d\u0430\u0434\u0430
@@ -347,46 +441,48 @@ territories.GB=\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u043
 territories.SL=\u0421\u044c\u0435\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435
 territories.GA=\u0413\u0430\u0431\u043e\u043d
 territories.SK=\u0421\u043b\u043e\u0432\u0430\u043a\u0438\u044f
-territories.SJ=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u0421\u0432\u0430\u043b\u0431\u0430\u0440\u0434 \u0438 \u0416\u0430\u043d \u041c\u0430\u0439\u0435\u043d
+territories.SJ=\u0428\u043f\u0438\u0446\u0431\u0435\u0440\u0433\u0435\u043d \u0438 \u042f\u043d-\u041c\u0430\u0439\u0435\u043d
 territories.SI=\u0421\u043b\u043e\u0432\u0435\u043d\u0438\u044f
 territories.SH=\u041e\u0441\u0442\u0440\u043e\u0432 \u0421\u0432\u044f\u0442\u043e\u0439 \u0415\u043b\u0435\u043d\u044b
 territories.SG=\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440
 territories.SE=\u0428\u0432\u0435\u0446\u0438\u044f
 territories.SD=\u0421\u0443\u0434\u0430\u043d
-territories.SC=\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
+territories.SC=\u0421\u0435\u0439\u0448\u0435\u043b\u044b
 territories.SB=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.SA=\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f
 territories.FR=\u0424\u0440\u0430\u043d\u0446\u0438\u044f
-territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
 territories.FO=\u0424\u0430\u0440\u0435\u0440\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
-territories.FM=\u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u043e \u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
+territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
+territories.FM=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
 territories.RW=\u0420\u0443\u0430\u043d\u0434\u0430
 territories.054=\u041c\u0435\u043b\u0430\u043d\u0435\u0437\u0438\u044f
+territories.FK=\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.053=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f \u0438 \u041d\u043e\u0432\u0430\u044f \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f
-territories.FK=\u0424\u043e\u043b\u044c\u043a\u043b\u0435\u043d\u0434\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.RU=\u0420\u043e\u0441\u0441\u0438\u044f
 territories.FJ=\u0424\u0438\u0434\u0436\u0438
 territories.FI=\u0424\u0438\u043d\u043b\u044f\u043d\u0434\u0438\u044f
+territories.RS=\u0421\u0435\u0440\u0431\u0438\u044f
 territories.RO=\u0420\u0443\u043c\u044b\u043d\u0438\u044f
 territories.RE=\u0420\u0435\u044e\u043d\u044c\u043e\u043d
 territories.ET=\u042d\u0444\u0438\u043e\u043f\u0438\u044f
 territories.ES=\u0418\u0441\u043f\u0430\u043d\u0438\u044f
 territories.ER=\u042d\u0440\u0438\u0442\u0440\u0435\u044f
-territories.833=\u041c\u044d\u043d, \u043e\u0441\u0442\u0440\u043e\u0432
+territories.QU=\u0415\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0439 \u0441\u043e\u044e\u0437
 territories.EH=\u0417\u0430\u043f\u0430\u0434\u043d\u0430\u044f \u0421\u0430\u0445\u0430\u0440\u0430
 territories.EG=\u0415\u0433\u0438\u043f\u0435\u0442
-territories.830=\u041d\u043e\u0440\u043c\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.EE=\u042d\u0441\u0442\u043e\u043d\u0438\u044f
-territories.QO=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u0430\u044f \u041e\u043a\u0435\u0430\u043d\u0438\u044f
+territories.830=\u041d\u043e\u0440\u043c\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
+territories.QO=\u0412\u043d\u0435\u0448\u043d\u044f\u044f \u041e\u043a\u0435\u0430\u043d\u0438\u044f
 territories.EC=\u042d\u043a\u0432\u0430\u0434\u043e\u0440
 territories.DZ=\u0410\u043b\u0436\u0438\u0440
 territories.QA=\u041a\u0430\u0442\u0430\u0440
 territories.039=\u042e\u0436\u043d\u0430\u044f \u0415\u0432\u0440\u043e\u043f\u0430
 territories.DO=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430
 territories.PY=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439
-territories.035=\u042e\u0433\u043e-\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0410\u0437\u0438\u044f
 territories.DM=\u041e\u0441\u0442\u0440\u043e\u0432 \u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430
+territories.035=\u042e\u0433\u043e-\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0410\u0437\u0438\u044f
 territories.PW=\u041f\u0430\u043b\u0430\u0443
+territories.034=\u042e\u0436\u043d\u0430\u044f \u0410\u0437\u0438\u044f
 territories.DK=\u0414\u0430\u043d\u0438\u044f
 territories.DJ=\u0414\u0436\u0438\u0431\u0443\u0442\u0438
 territories.PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u044f
@@ -394,14 +490,14 @@ territories.PS=\u041f\u0430\u043b\u0435\u0441\u0442\u0438\u043d\u0441\u043a\u043
 territories.030=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0410\u0437\u0438\u044f
 territories.PR=\u041f\u0443\u044d\u0440\u0442\u043e-\u0420\u0438\u043a\u043e
 territories.DE=\u0413\u0435\u0440\u043c\u0430\u043d\u0438\u044f
-territories.PN=\u041e\u0441\u0442\u0440\u043e\u0432 \u041f\u0438\u0442\u043a\u044d\u0440\u043d
+territories.PN=\u041f\u0438\u0442\u043a\u0435\u0440\u043d
 territories.PM=\u0421\u0435\u043d-\u041f\u044c\u0435\u0440 \u0438 \u041c\u0438\u043a\u0435\u043b\u043e\u043d
 territories.PL=\u041f\u043e\u043b\u044c\u0448\u0430
 territories.PK=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d
 territories.PH=\u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u044b
 territories.PG=\u041f\u0430\u043f\u0443\u0430-\u041d\u043e\u0432\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f
 territories.PF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f
-territories.CZ=\u0427\u0435\u0448\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430
+territories.CZ=\u0427\u0435\u0445\u0438\u044f
 territories.PE=\u041f\u0435\u0440\u0443
 territories.CY=\u041a\u0438\u043f\u0440
 territories.CX=\u041e\u0441\u0442\u0440\u043e\u0432 \u0420\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u0430
@@ -416,15 +512,16 @@ territories.CN=\u041a\u0438\u0442\u0430\u0439
 territories.CM=\u041a\u0430\u043c\u0435\u0440\u0443\u043d
 territories.CL=\u0427\u0438\u043b\u0438
 territories.CK=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u041a\u0443\u043a\u0430
-territories.CI=\u041a\u043e\u0442 \u0434\u2019\u0418\u0432\u0443\u0430\u0440
-territories.021=\u0421\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
+territories.021=n/a
+territories.CI=\u041a\u043e\u0442-\u0434'\u0418\u0432\u0443\u0430\u0440
 territories.CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u044f
 territories.CG=\u041a\u043e\u043d\u0433\u043e
 territories.CF=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430
-territories.CD=\u041a\u043e\u043d\u0433\u043e, \u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430
+territories.CD=\u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u041a\u043e\u043d\u0433\u043e
 territories.CC=\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u044b\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430 (\u041a\u0438\u0438\u043b\u0438\u043d\u0433)
 territories.OM=\u041e\u043c\u0430\u043d
 territories.CA=\u041a\u0430\u043d\u0430\u0434\u0430
+territories.419=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0438 \u041a\u0430\u0440\u0438\u0431\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430
 territories.BZ=\u0411\u0435\u043b\u0438\u0437
 territories.BY=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c
 territories.BW=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0430
@@ -433,36 +530,39 @@ territories.BT=\u0411\u0443\u0442\u0430\u043d
 territories.BS=\u0411\u0430\u0433\u0430\u043c\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f
 territories.019=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u042e\u0436\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
-territories.018=\u042e\u0436\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
+territories.018=\u042e\u0436\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430 [018]
 territories.NZ=\u041d\u043e\u0432\u0430\u044f \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f
-territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u044f
 territories.017=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u044f
 territories.BN=\u0411\u0440\u0443\u043d\u0435\u0439 \u0414\u0430\u0440\u0443\u0441\u0441\u0430\u043b\u0430\u043c
-territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.015=\u0421\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.014=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BL=\u041e\u0441\u0442\u0440\u043e\u0432 \u0421\u0432\u044f\u0442\u043e\u0433\u043e \u0411\u0430\u0440\u0442\u043e\u043b\u043e\u043c\u0435\u044f
 territories.013=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.NU=\u041d\u0438\u0443\u0435
 territories.BJ=\u0411\u0435\u043d\u0438\u043d
-territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
 territories.011=\u0417\u0430\u043f\u0430\u0434\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
+territories.172=\u0421\u043e\u0434\u0440\u0443\u0436\u0435\u0441\u0442\u0432\u043e \u041d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432 (\u0421\u041d\u0413)
 territories.BH=\u0411\u0430\u0445\u0440\u0435\u0439\u043d
 territories.NR=\u041d\u0430\u0443\u0440\u0443
 territories.BG=\u0411\u043e\u043b\u0433\u0430\u0440\u0438\u044f
 territories.BF=\u0411\u0443\u0440\u043a\u0438\u043d\u0430 \u0424\u0430\u0441\u043e
 territories.NP=\u041d\u0435\u043f\u0430\u043b
 territories.BE=\u0411\u0435\u043b\u044c\u0433\u0438\u044f
+territories.ZZ=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0438\u043b\u0438 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0433\u0438\u043e\u043d
 territories.NO=\u041d\u043e\u0440\u0432\u0435\u0433\u0438\u044f
 territories.BD=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448
 territories.BB=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441
 territories.ZW=\u0417\u0438\u043c\u0431\u0430\u0431\u0432\u0435
 territories.NL=\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u044b
-territories.BA=\u0411\u043e\u0441\u043d\u0438\u044f
+territories.BA=\u0411\u043e\u0441\u043d\u0438\u044f \u0438 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u0430
 territories.NI=\u041d\u0438\u043a\u0430\u0440\u0430\u0433\u0443\u0430
 territories.NG=\u041d\u0438\u0433\u0435\u0440\u0438\u044f
 territories.NF=\u041e\u0441\u0442\u0440\u043e\u0432 \u041d\u043e\u0440\u0444\u043e\u043b\u043a
 territories.AZ=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d
-territories.NE=\u041d\u0438\u0433\u0435\u0440
+territories.NE=\u041d\u0438\u0433\u0435\u0440\u0438\u044f
 territories.AX=\u0410\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.NC=\u041d\u043e\u0432\u0430\u044f \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0438\u044f
 territories.AW=\u0410\u0440\u0443\u0431\u0430
@@ -472,32 +572,33 @@ territories.AU=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f
 territories.AT=\u0410\u0432\u0441\u0442\u0440\u0438\u044f
 territories.AS=\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0421\u0430\u043c\u043e\u0430
 territories.AR=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430
+territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u043a\u0430
 territories.009=\u041e\u043a\u0435\u0430\u043d\u0438\u044f
-territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u0434\u0430
 territories.MZ=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a
 territories.AO=\u0410\u043d\u0433\u043e\u043b\u0430
 territories.MY=\u041c\u0430\u043b\u0430\u0439\u0437\u0438\u044f
-territories.AN=\u0413\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u0410\u043d\u0442\u0438\u043b\u044c\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
+territories.AN=\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u0410\u043d\u0442\u0438\u043b\u044c\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.MX=\u041c\u0435\u043a\u0441\u0438\u043a\u0430
-territories.005=\u042e\u0436\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.AM=\u0410\u0440\u043c\u0435\u043d\u0438\u044f
+territories.005=\u042e\u0436\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.MW=\u041c\u0430\u043b\u0430\u0432\u0438
 territories.AL=\u0410\u043b\u0431\u0430\u043d\u0438\u044f
 territories.MV=\u041c\u0430\u043b\u044c\u0434\u0438\u0432\u044b
+territories.003=\u0421\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.ZA=\u042e\u0436\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
 territories.MU=\u041c\u0430\u0432\u0440\u0438\u043a\u0438\u0439
 territories.002=\u0410\u0444\u0440\u0438\u043a\u0430
 territories.MT=\u041c\u0430\u043b\u044c\u0442\u0430
+territories.AI=\u0410\u043d\u0433\u0438\u043b\u044c\u044f
 territories.001=\u0412\u0441\u0435\u043c\u0438\u0440\u043d\u043e\u0435
-territories.AI=\u0410\u043d\u0433\u0443\u0438\u043b\u043b\u0430
-territories.MS=\u041c\u043e\u043d\u0441\u0435\u0440\u0440\u0430\u0442
+territories.MS=\u041c\u043e\u043d\u0442\u0441\u0435\u0440\u0440\u0430\u0442
 territories.MR=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0438\u044f
 territories.AG=\u0410\u043d\u0442\u0438\u0433\u0443\u0430 \u0438 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
 territories.MQ=\u041c\u0430\u0440\u0442\u0438\u043d\u0438\u043a
 territories.AF=\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d
 territories.MP=\u0421\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u041c\u0430\u0440\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.AE=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \u0410\u0440\u0430\u0431\u0441\u043a\u0438\u0435 \u042d\u043c\u0438\u0440\u0430\u0442\u044b
-territories.MO=\u041c\u0430\u043a\u0430\u043e (\u041e\u0431\u043b\u0430\u0441\u0442\u044c \u0441 \u041e\u0441\u043e\u0431\u044b\u043c \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c, \u041a\u0438\u0442\u0430\u0439)
+territories.MO=\u041c\u0430\u043a\u0430\u043e
 territories.AD=\u0410\u043d\u0434\u043e\u0440\u0440\u0430
 territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u044f
 territories.MM=\u041c\u044c\u044f\u043d\u043c\u0430
@@ -506,6 +607,8 @@ territories.MK=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u044f
 territories.YT=\u041c\u0430\u0439\u043e\u0442\u0442\u0430
 territories.MH=\u041c\u0430\u0440\u0448\u0430\u043b\u043b\u043e\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.MG=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
+territories.MF=\u041e\u0441\u0442\u0440\u043e\u0432 \u0421\u0432\u044f\u0442\u043e\u0433\u043e \u041c\u0430\u0440\u0442\u0438\u043d\u0430
+territories.ME=\u0427\u0435\u0440\u043d\u043e\u0433\u043e\u0440\u0438\u044f
 territories.MD=\u041c\u043e\u043b\u0434\u043e\u0432\u0430
 territories.MC=\u041c\u043e\u043d\u0430\u043a\u043e
 territories.MA=\u041c\u0430\u0440\u043e\u043a\u043a\u043e
@@ -526,43 +629,46 @@ territories.LC=\u0421\u0435\u043d\u0442-\u041b\u044e\u0441\u0438\u044f
 territories.LB=\u041b\u0438\u0432\u0430\u043d
 territories.LA=\u041b\u0430\u043e\u0441
 territories.KZ=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d
-territories.KY=\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430
+territories.KY=\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u044b \u043e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.KW=\u041a\u0443\u0432\u0435\u0439\u0442
 territories.145=\u0411\u043b\u0438\u0436\u043d\u0438\u0439 \u0438 \u0421\u0440\u0435\u0434\u043d\u0438\u0439 \u0412\u043e\u0441\u0442\u043e\u043a
+territories.143=\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0410\u0437\u0438\u044f
 territories.142=\u0410\u0437\u0438\u044f
 territories.KR=\u042e\u0436\u043d\u0430\u044f \u041a\u043e\u0440\u0435\u044f
-territories.KP=\u0421\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u041a\u043e\u0440\u0435\u044f
-territories.KN=\u0421\u0435\u043d\u0442-\u041a\u0438\u0442\u0442\u0441 \u0438 \u041d\u0435\u0432\u0438\u0441
+territories.KP=\u041a\u041d\u0414\u0420
+territories.KN=\u0421\u0435\u043d\u0442-\u041a\u0438\u0442\u0441 \u0438 \u041d\u0435\u0432\u0438\u0441
 territories.KM=\u041a\u043e\u043c\u043e\u0440\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.KI=\u041a\u0438\u0440\u0438\u0431\u0430\u0442\u0438
 territories.WS=\u0421\u0430\u043c\u043e\u0430
 territories.KH=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430
 territories.KG=\u041a\u044b\u0440\u0433\u044b\u0437\u0441\u0442\u0430\u043d
 territories.KE=\u041a\u0435\u043d\u0438\u044f
-territories.WF=\u042d\u043b\u043b\u0438\u0441 \u0438 \u0424\u0443\u0442\u0443\u043d\u0430
+territories.WF=\u0423\u043e\u043b\u043b\u0438\u0441 \u0438 \u0424\u0443\u0442\u0443\u043d\u0430
 territories.JP=\u042f\u043f\u043e\u043d\u0438\u044f
 territories.JO=\u0418\u043e\u0440\u0434\u0430\u043d\u0438\u044f
 territories.JM=\u042f\u043c\u0430\u0439\u043a\u0430
 territories.VU=\u0412\u0430\u043d\u0443\u0430\u0442\u0443
+territories.JE=\u0414\u0436\u0435\u0440\u0441\u0438
 territories.VN=\u0412\u044c\u0435\u0442\u043d\u0430\u043c
 territories.VI=\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0435 \u0412\u0438\u0440\u0433\u0438\u043d\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.VG=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0435 \u0412\u0438\u0440\u0433\u0438\u043d\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
 territories.VE=\u0412\u0435\u043d\u0435\u0441\u0443\u044d\u043b\u0430
 territories.VC=\u0421\u0435\u043d\u0442-\u0412\u0438\u043d\u0441\u0435\u043d\u0442 \u0438 \u0413\u0440\u0435\u043d\u0430\u0434\u0438\u043d\u044b
-territories.VA=\u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u043e-\u0433\u043e\u0440\u043e\u0434 \u0412\u0430\u0442\u0438\u043a\u0430\u043d
+territories.VA=\u0412\u0430\u0442\u0438\u043a\u0430\u043d
 territories.IT=\u0418\u0442\u0430\u043b\u0438\u044f
 territories.IS=\u0418\u0441\u043b\u0430\u043d\u0434\u0438\u044f
 territories.IR=\u0418\u0440\u0430\u043d
 territories.IQ=\u0418\u0440\u0430\u043a
 territories.UZ=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d
-territories.IO=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0435 \u0422\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0432 \u0418\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u043c \u041e\u043a\u0435\u0430\u043d\u0435
+territories.IO=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u044f \u0432 \u0418\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u043c \u043e\u043a\u0435\u0430\u043d\u0435
 territories.UY=\u0423\u0440\u0443\u0433\u0432\u0430\u0439
 territories.IN=\u0418\u043d\u0434\u0438\u044f
+territories.IM=\u041e\u0441\u0442\u0440\u043e\u0432 \u041c\u044d\u043d
 territories.IL=\u0418\u0437\u0440\u0430\u0438\u043b\u044c
 territories.US=\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \u0428\u0442\u0430\u0442\u044b
 territories.IE=\u0418\u0440\u043b\u0430\u043d\u0434\u0438\u044f
 territories.ID=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f
-territories.UM=\u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u043c\u0430\u043b\u044b\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430 (\u0421\u0428\u0410)
+territories.UM=\u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u043c\u0430\u043b\u044b\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430 \u0421\u0428\u0410
 territories.UG=\u0423\u0433\u0430\u043d\u0434\u0430
 territories.UA=\u0423\u043a\u0440\u0430\u0438\u043d\u0430
 territories.HU=\u0412\u0435\u043d\u0433\u0440\u0438\u044f
@@ -570,68 +676,85 @@ territories.HT=\u0413\u0430\u0438\u0442\u0438
 territories.HR=\u0425\u043e\u0440\u0432\u0430\u0442\u0438\u044f
 territories.TZ=\u0422\u0430\u043d\u0437\u0430\u043d\u0438\u044f
 territories.HN=\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441
-territories.HM=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u0425\u0435\u0440\u0434 \u0438 \u041c\u0430\u043a-\u0414\u043e\u043d\u0430\u043b\u044c\u0434
+territories.HM=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u0425\u0435\u0440\u0434 \u0438 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u044c\u0434
 territories.TW=\u0422\u0430\u0439\u0432\u0430\u043d\u044c
 territories.TV=\u0422\u0443\u0432\u0430\u043b\u0443
-territories.HK=\u0413\u043e\u043d\u043a\u043e\u043d\u0433 (\u041e\u0431\u043b\u0430\u0441\u0442\u044c \u0441 \u041e\u0441\u043e\u0431\u044b\u043c \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c, \u041a\u0438\u0442\u0430\u0439)
+territories.HK=\u0413\u043e\u043d\u043a\u043e\u043d\u0433
 territories.TT=\u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0434 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e
 territories.TR=\u0422\u0443\u0440\u0446\u0438\u044f
 territories.TO=\u0422\u043e\u043d\u0433\u0430
 territories.TN=\u0422\u0443\u043d\u0438\u0441
 territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d
+languages.gwi=\u0433\u0432\u0438\u0447\u0438\u043d
 languages.akk=\u0430\u043a\u043a\u0430\u0434\u0441\u043a\u0438\u0439
 languages.eka=\u044d\u043a\u0430\u0434\u0436\u0443\u043a
 languages.ijo=\u0438\u0434\u0436\u043e
-languages.xh=\u043a\u043e\u0441\u0430
+languages.xh=\u043a\u0445\u043e\u0441\u0430
 languages.sux=\u0448\u0443\u043c\u0435\u0440\u0441\u043a\u0438\u0439
 languages.sus=\u0441\u0443\u0441\u0443
-languages.mis=\u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.mis=\u0421\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0435 \u044f\u0437\u044b\u043a\u0438
 languages.loz=\u043b\u043e\u0437\u0438
-languages.tog=\u0442\u043e\u043d\u0433\u0430 (\u043d\u044c\u044f\u0441\u0430)
+languages.tog=\u043d\u044c\u044f\u0441\u0430 (\u0442\u043e\u043d\u0433\u0430)
+languages.zbl=\u0431\u043b\u0438\u0441\u0441\u0438\u043c\u0432\u043e\u043b\u0438\u043a\u0430
 languages.pon=\u043f\u043e\u043d\u0430\u043f\u0435
 languages.min=\u043c\u0438\u043d\u0430\u043d\u0433\u043a\u0430\u0431\u0430\u0443
 languages.suk=\u0441\u0443\u043a\u0443\u043c\u0430
 languages.wo=\u0432\u043e\u043b\u043e\u0444
-languages.kut=\u043a\u0443\u0442\u0435\u043d\u0430\u0438
 languages.lol=\u043c\u043e\u043d\u0433\u043e
+languages.kut=\u043a\u0443\u0442\u0435\u043d\u0430\u0438
 languages.mic=\u043c\u0438\u043a\u043c\u0430\u043a
+languages.wa=\u0432\u0430\u043b\u043b\u043e\u043d\u0441\u043a\u0438\u0439
 languages.kum=\u043a\u0443\u043c\u044b\u043a\u0441\u043a\u0438\u0439
 languages.zap=\u0441\u0430\u043f\u043e\u0442\u0435\u043a\u0441\u043a\u0438\u0439
+languages.ain=\u0430\u0439\u043d\u0443
 languages.cus=\u043a\u0443\u0448\u0438\u0442\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.jbo=\u043b\u043e\u0436\u0431\u0430\u043d
 languages.doi=\u0434\u043e\u0433\u0440\u0438
+languages.zza=\u0437\u0430\u0437\u0430
 languages.vo=\u0432\u043e\u043b\u0430\u043f\u044e\u043a
-languages.oto=\u043e\u0442\u043e\u043c\u0430\u043d\u0433\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.oto=\u043e\u0442\u043e\u043c\u0430\u043d\u0433\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
 languages.vi=\u0432\u044c\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438\u0439
 languages.vai=\u0432\u0430\u0438
-languages.raj=\u0440\u0430\u0434\u0436\u0430\u0441\u0442\u0445\u0430\u043d\u0438
-languages.nzi=\u043d\u0437\u0438\u043c\u0430
+languages.rar=\u0440\u0430\u0440\u043e\u0442\u043e\u043d\u0433\u0430
+languages.ve=\u0432\u0435\u043d\u0434\u0430
+languages.rap=\u0440\u0430\u043f\u0430\u043d\u0443\u0439\u0441\u043a\u0438\u0439
+languages.raj=\u0440\u0430\u0434\u0436\u0430\u0441\u0442\u0430\u043d\u0438
 languages.ota=\u0441\u0442\u0430\u0440\u043e\u0442\u0443\u0440\u0435\u0446\u043a\u0438\u0439
+languages.nzi=\u043d\u0437\u0438\u043c\u0430
+languages.nap=\u043d\u0435\u0430\u043f\u043e\u043b\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439
 languages.uz=\u0443\u0437\u0431\u0435\u043a\u0441\u043a\u0438\u0439
 languages.uga=\u0443\u0433\u0430\u0440\u0438\u0442\u0441\u043a\u0438\u0439
 languages.tmh=\u0442\u0430\u043c\u0430\u0448\u0435\u043a
-languages.nai=\u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0439 \u0410\u043c\u0435\u0440\u0438\u043a\u0438 \u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.nai=\u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0439 \u0410\u043c\u0435\u0440\u0438\u043a\u0438
 languages.nah=\u0430\u0446\u0442\u0435\u043a\u0441\u043a\u0438\u0439
 languages.ur=\u0443\u0440\u0434\u0443
 languages.fat=\u0444\u0430\u043d\u0442\u0438
 languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438\u0439
 languages.egy=\u0434\u0440\u0435\u0432\u043d\u0435\u0435\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0438\u0439
+languages.zxx=\u0431\u0435\u0437 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f
 languages.ug=\u0443\u0439\u0433\u0443\u0440\u0441\u043a\u0438\u0439
 languages.fan=\u0444\u0430\u043d\u0433
 languages.ssa=\u043d\u0438\u043b\u043e-\u0441\u0430\u0445\u0430\u0440\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
-languages.bat=\u0431\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.mga=\u0441\u0440\u0435\u0434\u043d\u0435\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
-languages.bas=\u0431\u0430\u0441\u0430
+languages.bat=\u0431\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.nyo=\u043d\u044c\u043e\u0440\u043e
+languages.bas=\u0431\u0430\u0441\u0430
 languages.nyn=\u043d\u044c\u044f\u043d\u043a\u043e\u043b\u0435
 languages.nym=\u043d\u044c\u044f\u043c\u0432\u0435\u0437\u0438
+languages.gsw=\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439 (\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u044f)
+languages.hmn=\u0445\u043c\u043e\u043d\u0433
 languages.ban=\u0431\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439
 languages.osa=\u043e\u0441\u0435\u0434\u0436\u0438
 languages.bal=\u0431\u0435\u043b\u0443\u0434\u0436\u0441\u043a\u0438\u0439
-languages.bai=\u0431\u0430\u043c\u0438\u043b\u0435\u043a\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.ty=\u0442\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438\u0439
+languages.bai=\u0431\u0430\u043c\u0438\u043b\u0435\u043a\u0435
 languages.tw=\u0442\u0432\u0438
+languages.srr=\u0441\u0435\u0440\u0435\u0440
 languages.tli=\u0442\u043b\u0438\u043d\u0433\u0438\u0442
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d\u0441\u043a\u0438\u0439
 languages.tt=\u0442\u0430\u0442\u0430\u0440\u0441\u043a\u0438\u0439
 languages.ts=\u0442\u0441\u043e\u043d\u0433\u0430
+languages.srn=c\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u043a\u0438\u0439
 languages.bad=\u0431\u0430\u043d\u0434\u0430
 languages.tr=\u0442\u0443\u0440\u0435\u0446\u043a\u0438\u0439
 languages.to=\u0442\u043e\u043d\u0433\u0430
@@ -640,14 +763,20 @@ languages.tl=\u0442\u0430\u0433\u0430\u043b\u043e\u0433
 languages.tk=\u0442\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u043a\u0438\u0439
 languages.ti=\u0442\u0438\u0433\u0440\u0438\u043d\u044c\u044f
 languages.th=\u0442\u0430\u0439\u0441\u043a\u0438\u0439
+languages.kru=\u043a\u0443\u0440\u0443\u0445
 languages.tg=\u0442\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438\u0439
+languages.byn=\u0431\u0438\u043b\u0438\u043d (\u0431\u043b\u0438\u043d)
 languages.te=\u0442\u0435\u043b\u0443\u0433\u0443
 languages.kro=\u043a\u0440\u0443
+languages.csb=\u043a\u0430\u0448\u0443\u0431\u0438\u0430\u043d\u0441\u043a\u0438\u0439
 languages.ta=\u0442\u0430\u043c\u0438\u043b\u044c\u0441\u043a\u0438\u0439
+languages.krl=\u043a\u0430\u0440\u0435\u043b\u044c\u0441\u043a\u0438\u0439
+languages.tkl=\u0442\u043e\u043a\u0435\u043b\u0430\u0439\u0441\u043a\u0438\u0439
 languages.efi=\u044d\u0444\u0438\u043a
 languages.sw=\u0441\u0443\u0430\u0445\u0438\u043b\u0438
 languages.sv=\u0448\u0432\u0435\u0434\u0441\u043a\u0438\u0439
 languages.su=\u0441\u0443\u043d\u0434\u0430\u043d\u0441\u043a\u0438\u0439
+languages.krc=\u043a\u0430\u0440\u0430\u0447\u0430\u0435\u0432\u043e-\u0431\u0430\u043b\u043a\u0430\u0440\u0441\u043a\u0438\u0439
 languages.st=\u0441\u043e\u0442\u043e \u044e\u0436\u043d\u044b\u0439
 languages.ss=\u0441\u0432\u0430\u0437\u0438
 languages.sr=\u0441\u0435\u0440\u0431\u0441\u043a\u0438\u0439
@@ -661,77 +790,120 @@ languages.sm=\u0441\u0430\u043c\u043e\u0430\u043d\u0441\u043a\u0438\u0439
 languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438\u0439
 languages.grc=\u0434\u0440\u0435\u0432\u043d\u0435\u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0439
 languages.sk=\u0441\u043b\u043e\u0432\u0430\u0446\u043a\u0438\u0439
+languages.grb=\u0433\u0440\u0435\u0431\u043e
 languages.si=\u0441\u0438\u043d\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439
-languages.sh=\u0441\u0435\u0440\u0431\u0441\u043a\u043e\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0439
+languages.sh=\u0441\u0435\u0440\u0431\u043e\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0439
+languages.crh=\u043a\u0440\u044b\u043c\u0441\u043a\u043e-\u0442\u0430\u0442\u0430\u0440\u0441\u043a\u0438\u0439
 languages.afa=\u0430\u0444\u0440\u0430\u0437\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.sg=\u0441\u0430\u043d\u0433\u043e
+languages.se=\u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439
 languages.sd=\u0441\u0438\u043d\u0434\u0445\u0438
+languages.udm=\u0443\u0434\u043c\u0443\u0440\u0442\u0441\u043a\u0438\u0439
+languages.sc=\u0441\u0430\u0440\u0434\u0438\u043d\u0441\u043a\u0438\u0439
 languages.sa=\u0441\u0430\u043d\u0441\u043a\u0440\u0438\u0442
 languages.rw=\u043a\u0438\u043d\u044c\u044f\u0440\u0443\u0430\u043d\u0434\u0430
+languages.nwc=\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u041d\u0435\u0443\u0430\u0440\u0438
 languages.ru=\u0440\u0443\u0441\u0441\u043a\u0438\u0439
+languages.mdr=\u043c\u0430\u043d\u0434\u0430\u0440\u0430
 languages.ro=\u0440\u0443\u043c\u044b\u043d\u0441\u043a\u0438\u0439
 languages.rn=\u0440\u0443\u043d\u0434\u0438
 languages.rm=\u0440\u0435\u0442\u043e\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438\u0439
+languages.fr_CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439
+languages.mdf=\u043c\u043e\u043a\u0448\u0430\u043d\u0441\u043a\u0438\u0439
 languages.tiv=\u0442\u0438\u0432\u0438
+languages.fr_CA=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439
 languages.ady=\u0430\u0434\u044b\u0433\u0435\u0439\u0441\u043a\u0438\u0439
 languages.zun=\u0437\u0443\u043d\u044c\u0438
 languages.kpe=\u043a\u043f\u0435\u043b\u043b\u0435
 languages.qu=\u043a\u0435\u0447\u0443\u0430
 languages.tig=\u0442\u0438\u0433\u0440\u0435
-languages.cpp=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u043a\u0438\u0435 \u0438 \u043f\u0438\u0434\u0436\u0438\u043d\u044b (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.son=c\u043e\u043d\u0433\u0430\u0438
+languages.cpp=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u043a\u0438\u0435 \u0438 \u043f\u0438\u0434\u0436\u0438\u043d\u044b (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.rup=\u0430\u0440\u0443\u043c\u044b\u043d\u0441\u043a\u0438\u0439
 languages.sog=\u0441\u043e\u0433\u0434\u0438\u0439\u0441\u043a\u0438\u0439
 languages.ada=\u0430\u0434\u0430\u043d\u0433\u043c\u0435
+languages.kos=\u043a\u043e\u0441\u0440\u0430\u0435\u043d\u0441\u043a\u0438\u0439
+languages.hit=\u0445\u0435\u0442\u0442\u0441\u043a\u0438\u0439
 languages.cpf=\u0444\u0440\u0430\u043d\u043a\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u043a\u0438\u0435 \u0438 \u043f\u0438\u0434\u0436\u0438\u043d\u044b (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.cpe=\u0430\u043d\u0433\u043b\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u043a\u0438\u0435 \u0438 \u043f\u0438\u0434\u0436\u0438\u043d\u044b (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.him=\u0445\u0438\u043c\u0430\u0447\u0430\u043b\u0438
-languages.got=\u0433\u043e\u0442\u0441\u043a\u0438\u0439
-languages.hil=\u0445\u0438\u043b\u0438\u0433\u0430\u0439\u043d\u043e\u043d
 languages.kok=\u043a\u043e\u043d\u043a\u0430\u043d\u0438
+languages.hil=\u0445\u0438\u043b\u0438\u0433\u0430\u0439\u043d\u043e\u043d
+languages.got=\u0433\u043e\u0442\u0441\u043a\u0438\u0439
+languages.gor=\u0433\u043e\u0440\u043e\u043d\u0442\u0430\u043b\u043e
 languages.gon=\u0433\u043e\u043d\u0434\u0438
 languages.din=\u0434\u0438\u043d\u043a\u0430
-languages.nub=\u043d\u0443\u0431\u0438\u0439\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.nub=\u043d\u0443\u0431\u0438\u0439\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
 languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439
 languages.ps=\u043f\u0430\u0448\u0442\u043e (\u043f\u0443\u0448\u0442\u0443)
+languages.fur=\u0444\u0440\u0438\u0443\u043b\u0430\u043d\u0441\u043a\u0438\u0439
 languages.phn=\u0444\u0438\u043d\u0438\u043a\u0438\u0439\u0441\u043a\u0438\u0439
+languages.de_CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438\u0439 \u0432\u0435\u0440\u0445\u043d\u0435\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
 languages.goh=\u0441\u0442\u0430\u0440\u043e\u0432\u0435\u0440\u0445\u043d\u0435\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
+languages.snk=\u0441\u043e\u043d\u0438\u043d\u043a\u0435
 languages.cop=\u043a\u043e\u043f\u0442\u0441\u043a\u0438\u0439
 languages.yap=\u044f\u043f
 languages.ach=\u0430\u0447\u043e\u043b\u0438
 languages.yao=\u044f\u043e
+languages.phi=\u0444\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.pl=\u043f\u043e\u043b\u044c\u0441\u043a\u0438\u0439
 languages.ace=\u0430\u0447\u0435\u0445\u0441\u043a\u0438\u0439
 languages.pi=\u043f\u0430\u043b\u0438
+languages.pt_PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u0431\u0435\u0440\u0438\u0439\u0441\u043a\u0438\u0439
 languages.pa=\u043f\u0430\u043d\u0434\u0436\u0430\u0431\u0438 (\u043f\u0435\u043d\u0434\u0436\u0430\u0431\u0438)
 languages.bug=\u0431\u0443\u0433\u0438\u0439\u0441\u043a\u0438\u0439
 languages.iba=\u0438\u0431\u0430\u043d\u0441\u043a\u0438\u0439
+languages.sms=\u043a\u043e\u043b\u0442\u0442\u0430-\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439
 languages.bua=\u0431\u0443\u0440\u044f\u0442\u0441\u043a\u0438\u0439
 languages.mas=\u043c\u0430\u0441\u0430\u0438
+languages.smn=\u0418\u043d\u0430\u0440\u0438-\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439
 languages.os=\u043e\u0441\u0435\u0442\u0438\u043d\u0441\u043a\u0438\u0439
 languages.map=\u0430\u0432\u0441\u0442\u0440\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.or=\u043e\u0440\u0438\u044f
 languages.man=\u043c\u0430\u043d\u0434\u0438\u043d\u0433\u043e
-languages.smi=\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.smj=\u043b\u0443\u043b\u0435-\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439
+languages.smi=\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
 languages.mak=\u043c\u0430\u043a\u0430\u0441\u0441\u0430\u0440\u0441\u043a\u0438\u0439
 languages.om=\u043e\u0440\u043e\u043c\u043e
 languages.mai=\u043c\u0430\u0439\u0442\u0445\u0438\u043b\u0438
 languages.oj=\u043e\u0434\u0436\u0438\u0431\u0432\u0430
 languages.mag=\u043c\u0430\u0433\u0430\u0445\u0438
 languages.mad=\u043c\u0430\u0434\u0443\u0440\u0441\u043a\u0438\u0439
+languages.sma=\u044e\u0436\u043d\u043e\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439
 languages.oc=\u043e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439
 languages.nso=\u0441\u043e\u0442\u043e \u0441\u0435\u0432\u0435\u0440\u043d\u044b\u0439
-languages.myn=\u043c\u0430\u0439\u044f \u044f\u0437\u044b\u043a\u0438
+languages.btk=\u0431\u0430\u0442\u0430\u043a\u0441\u043a\u0438\u0439
+languages.myv=\u044d\u0440\u0437\u044f\u043d\u0441\u043a\u0438\u0439
+languages.es_ES=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439 \u0438\u0431\u0435\u0440\u0438\u0439\u0441\u043a\u0438\u0439
+languages.de_AT=\u0430\u0432\u0441\u0442\u0440\u0438\u0439\u0441\u043a\u0438\u0439 \u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
+languages.dgr=\u0434\u043e\u0433\u0440\u0438\u0431
+languages.ny=\u043d\u044c\u044f\u043d\u0434\u0436\u0430
+languages.myn=\u044f\u0437\u044b\u043a \u043c\u0430\u0439\u044f
+languages.nv=\u043d\u0430\u0432\u0430\u0445\u043e
+languages.kmb=\u043a\u0438\u043c\u0431\u0443\u043d\u0434\u0443
+languages.nr=\u043d\u0434\u0435\u0431\u0435\u043b\u0438 (\u044e\u0436\u043d\u044b\u0439)
 languages.gmh=\u0441\u0440\u0435\u0434\u043d\u0435\u0432\u0435\u0440\u0445\u043d\u0435\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
 languages.no=\u043d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0438\u0439
-languages.nl=\u043d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 (\u0433\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439)
+languages.nn=\u043d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0438\u0439 \u043d\u044e\u043d\u043e\u0440\u0441\u043a
+languages.nl=\u0433\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
+languages.root=\u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u044f\u0437\u044b\u043a
+languages.ng=\u043d\u0434\u043e\u043d\u0433\u0430
 languages.sla=\u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.ne=\u043d\u0435\u043f\u0430\u043b\u044c\u0441\u043a\u0438\u0439
+languages.nd=\u043d\u0434\u0435\u0431\u0435\u043b\u0438 \u0441\u0435\u0432\u0435\u0440\u043d\u044b\u0439
+languages.cmc=\u0447\u0430\u043c\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
+languages.tet=\u0442\u0435\u0442\u0443\u043c
+languages.nb=\u043d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0438\u0439 \u0431\u0443\u043a\u043c\u043e\u043b
 languages.na=\u043d\u0430\u0443\u0440\u0443
 languages.ter=\u0442\u0435\u0440\u0435\u043d\u043e
+languages.tem=\u0442\u0435\u043c\u043d\u0435
 languages.my=\u0431\u0438\u0440\u043c\u0430\u043d\u0441\u043a\u0438\u0439
 languages.lez=\u043b\u0435\u0437\u0433\u0438\u043d\u0441\u043a\u0438\u0439
 languages.mt=\u043c\u0430\u043b\u044c\u0442\u0438\u0439\u0441\u043a\u0438\u0439
-languages.ms=\u043c\u0430\u043b\u0430\u0439\u0441\u043a\u0438\u0439
+languages.frs=\u0432\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0444\u0440\u0438\u0437\u0441\u043a\u0438\u0439
 languages.peo=\u0441\u0442\u0430\u0440\u043e\u043f\u0435\u0440\u0441\u0438\u0434\u0441\u043a\u0438\u0439
+languages.ms=\u043c\u0430\u043b\u0430\u0439\u0441\u043a\u0438\u0439
+languages.frr=\u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0444\u0440\u0438\u0437\u0441\u043a\u0438\u0439
 languages.mr=\u043c\u0430\u0440\u0430\u0442\u0445\u0438
 languages.fro=\u0441\u0442\u0430\u0440\u043e\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439
 languages.mo=\u043c\u043e\u043b\u0434\u0430\u0432\u0441\u043a\u0438\u0439
@@ -740,189 +912,272 @@ languages.frm=\u0441\u0440\u0435\u0434\u043d\u0435\u0444\u0440\u0430\u043d\u0446
 languages.ml=\u043c\u0430\u043b\u0430\u044f\u043b\u0430\u043c
 languages.jrb=\u0435\u0432\u0440\u0435\u0439\u0441\u043a\u043e-\u0430\u0440\u0430\u0431\u0441\u043a\u0438\u0439
 languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438\u0439
-languages.mi=\u043c\u0430\u043e\u0440\u0438
+languages.mi=\u043c\u0430\u043e\u0440\u0438\u0439\u0441\u043a\u0438\u0439
+languages.mh=\u043c\u0430\u0440\u0448\u0430\u043b\u044c\u0441\u043a\u0438\u0439
 languages.mg=\u043c\u0430\u043b\u0430\u0433\u0430\u0441\u0438\u0439\u0441\u043a\u0438\u0439
+languages.nqo=\u043d\u043a\u043e
 languages.mwr=\u043c\u0430\u0440\u0432\u0430\u0440\u0438
 languages.bra=\u0431\u0440\u0430\u0443\u0438
+languages.mwl=\u043c\u0438\u0440\u0430\u043d\u0434\u0441\u043a\u0438\u0439
+languages.den=\u0441\u043b\u044d\u0439\u0432\u0438
 languages.lv=\u043b\u0430\u0442\u044b\u0448\u0441\u043a\u0438\u0439
-languages.lu=\u043b\u0443\u0431\u0430-\u041a\u0430\u0442\u0430\u043d\u0433\u0430
-languages.lt=\u043b\u0438\u0442\u043e\u0432\u0441\u043a\u0438\u0439
+languages.lu=\u043b\u0443\u0431\u0430-\u043a\u0430\u0442\u0430\u043d\u0433\u0430
 languages.del=\u0434\u0435\u043b\u0430\u0432\u0430\u0440\u0441\u043a\u0438\u0439
+languages.lt=\u043b\u0438\u0442\u043e\u0432\u0441\u043a\u0438\u0439
 languages.lo=\u043b\u0430\u043e\u0441\u0441\u043a\u0438\u0439
 languages.ln=\u043b\u0438\u043d\u0433\u0430\u043b\u0430
+languages.li=\u043b\u0438\u043c\u0431\u0443\u0440\u0433\u0438\u0439\u0441\u043a\u0438\u0439
 languages.ewo=\u044d\u0432\u043e\u043d\u0434\u043e
+languages.lg=\u0433\u0430\u043d\u0434\u0430
+languages.lb=\u043b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0441\u043a\u0438\u0439
 languages.la=\u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0439
 languages.jpr=\u0435\u0432\u0440\u0435\u0439\u0441\u043a\u043e-\u043f\u0435\u0440\u0441\u0438\u0434\u0441\u043a\u0438\u0439
-languages.vot=\u0443\u0434\u043c\u0443\u0440\u0442\u0441\u043a\u0438\u0439 (\u0412\u043e\u0442\u044f\u0446\u043a\u0438\u0439)
+languages.vot=\u0432\u043e\u0434\u0441\u043a\u0438\u0439
 languages.sit=\u0441\u0438\u043d\u043e\u0442\u0438\u0431\u0435\u0442\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.ky=\u043a\u0438\u0440\u0433\u0438\u0437\u0441\u043a\u0438\u0439
+languages.kw=\u043a\u043e\u0440\u043d\u0438\u0439\u0441\u043a\u0438\u0439
+languages.kv=\u043a\u043e\u043c\u0438
 languages.ku=\u043a\u0443\u0440\u0434\u0441\u043a\u0438\u0439
-languages.sio=\u0441\u0438\u0443 \u044f\u0437\u044b\u043a\u0438
+languages.sio=\u044f\u0437\u044b\u043a \u0441\u0438\u0443
 languages.ks=\u043a\u0430\u0448\u043c\u0438\u0440\u0438
+languages.kr=\u043a\u0430\u043d\u0443\u0440\u0438
 languages.awa=\u0430\u0432\u0430\u0434\u0445\u0438
 languages.ko=\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438\u0439
 languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
 languages.km=\u043a\u0445\u043c\u0435\u0440\u0441\u043a\u0438\u0439
-languages.kl=\u044d\u0441\u043a\u0438\u043c\u043e\u0441\u0441\u043a\u0438\u0439 (\u0433\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439)
+languages.en_GB=\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
+languages.kl=\u0433\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
 languages.kk=\u043a\u0430\u0437\u0430\u0445\u0441\u043a\u0438\u0439
 languages.rom=\u0446\u044b\u0433\u0430\u043d\u0441\u043a\u0438\u0439
+languages.kj=\u043a\u0443\u043d\u0430\u043c\u0430
 languages.sid=\u0441\u0438\u0434\u0430\u043c\u0430
-languages.non=\u0441\u0442\u0430\u0440\u043e\u043d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0438\u0439
+languages.ki=\u043a\u0438\u043a\u0443\u0439\u044e
+languages.kg=\u043a\u043e\u043d\u0433\u043e
+languages.non=\u0434\u0440\u0435\u0432\u043d\u0435\u0441\u043a\u0430\u043d\u0434\u0438\u043d\u0430\u0432\u0441\u043a\u0438\u0439
 languages.ka=\u0433\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438\u0439
 languages.mus=\u043a\u0440\u0438\u043a
 languages.roa=\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.nog=\u043d\u043e\u0433\u0430\u0439\u0441\u043a\u0438\u0439
-languages.mun=\u043c\u0443\u043d\u0434\u0430 \u044f\u0437\u044b\u043a\u0438
-languages.mul=\u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0435\u043c\u0435\u0439 \u044f\u0437\u044b\u043a\u0438
+languages.mun=\u044f\u0437\u044b\u043a \u043c\u0443\u043d\u0434\u0430
+languages.mul=\u043c\u043d\u043e\u0433\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439
 languages.jv=\u044f\u0432\u0430\u043d\u0441\u043a\u0438\u0439
 languages.gil=\u0433\u0438\u043b\u044c\u0431\u0435\u0440\u0442\u0441\u043a\u0438\u0439
+languages.znd=\u0437\u0430\u043d\u0434\u0435
 languages.shn=\u0448\u0430\u043d\u0441\u043a\u0438\u0439
 languages.fon=\u0444\u043e\u043d
+languages.xal=\u043a\u0430\u043b\u043c\u044b\u0446\u043a\u0438\u0439
+languages.aus=\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
 languages.kho=\u0445\u043e\u0442\u0430\u043d\u0441\u043a\u0438\u0439
 languages.ja=\u044f\u043f\u043e\u043d\u0441\u043a\u0438\u0439
 languages.khi=\u043a\u043e\u0439\u0441\u0430\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
-languages.chy=\u0447\u0435\u0439\u0435\u043d\u043d
 languages.pau=\u043f\u0430\u043b\u0430\u0443
-languages.tai=\u0442\u0430\u0442\u0441\u043a\u0438\u0439
+languages.chy=\u0447\u0435\u0439\u0435\u043d\u043d
+languages.tai=\u0442\u0430\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.iu=\u0438\u043d\u0443\u043a\u0442\u0438\u0442\u0443\u0442
 languages.pap=\u043f\u0430\u043f\u044c\u044f\u043c\u0435\u043d\u0442\u043e
 languages.it=\u0438\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0438\u0439
-languages.kha=\u043a\u0445\u0430\u0441\u0438
+languages.sgn=\u043a\u0438\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u0447\u044c
 languages.is=\u0438\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
+languages.kha=\u043a\u0445\u0430\u0441\u0438
 languages.chr=\u0447\u0435\u0440\u043e\u043a\u0438
 languages.pam=\u043f\u0430\u043c\u043f\u0430\u043d\u0433\u0430
 languages.pal=\u043f\u0435\u0445\u043b\u0435\u0432\u0438\u0439\u0441\u043a\u0438\u0439
+languages.chp=\u0447\u0438\u043f\u0435\u0432\u0430\u0439\u044f\u043d
+languages.io=\u0438\u0434\u043e
 languages.cho=\u0447\u043e\u043a\u0442\u0430\u0432
 languages.chn=\u0447\u0438\u043d\u0443\u043a \u0436\u0430\u0440\u0433\u043e\u043d
-languages.chm=\u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0439 (\u0427\u0435\u0440\u0435\u043c\u0438\u0441\u0441\u043a\u0438\u0439)
+languages.chm=\u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0439
 languages.tyv=\u0442\u0443\u0432\u0438\u043d\u0441\u043a\u0438\u0439
 languages.bnt=\u0431\u0430\u043d\u0442\u0443 (\u0434\u0440\u0443\u0433\u0438\u0435)
-languages.chk=\u0447\u0443\u043a\u043e\u0442\u0441\u043a\u0438\u0439
 languages.pag=\u043f\u0430\u043d\u0433\u0430\u0441\u0438\u043d\u0430\u043d
 languages.ik=\u0438\u043d\u0443\u043f\u0438\u0430\u043a
+languages.chk=\u0447\u0443\u043a\u043e\u0442\u0441\u043a\u0438\u0439
+languages.ii=\u0441\u044b\u0447\u0443\u0430\u043d\u044c
 languages.haw=\u0433\u0430\u0432\u0430\u0439\u0441\u043a\u0438\u0439
 languages.lam=\u043b\u0430\u043c\u0431\u0430
+languages.ig=\u0438\u0433\u0431\u043e
 languages.chg=\u0447\u0430\u0433\u0430\u0442\u0430\u0439\u0441\u043a\u0438\u0439
-languages.sga=\u0441\u0442\u0430\u0440\u043e\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
+languages.sga=\u0434\u0440\u0435\u0432\u043d\u0435\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
 languages.paa=\u043f\u0430\u043f\u0443\u0430\u0441\u0441\u043a\u043e-\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.ie=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0435
 languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0438\u0439
 languages.lah=\u043b\u0430\u0445\u043d\u0434\u0430
+languages.day=\u0434\u0430\u044f\u043a
 languages.chb=\u0447\u0438\u0431\u0447\u0430
 languages.ia=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0430
 languages.lad=\u043b\u0430\u0434\u0438\u043d\u043e
+languages.hz=\u0433\u0435\u0440\u0435\u0440\u043e
 languages.hai=\u0445\u0430\u0439\u0434\u0430
+languages.dar=\u0434\u0430\u0440\u0433\u0432\u0430
 languages.hy=\u0430\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439
 languages.ath=\u0430\u0442\u0430\u043f\u0430\u0447\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
 languages.hu=\u0432\u0435\u043d\u0433\u0435\u0440\u0441\u043a\u0438\u0439
+languages.ht=\u0433\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438\u0439
 languages.dak=\u0434\u0430\u043a\u043e\u0442\u0430
 languages.hr=\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0439
+languages.ho=\u0445\u0438\u0440\u0438\u043c\u043e\u0442\u0443
 languages.hi=\u0445\u0438\u043d\u0434\u0438
-languages.dyu=\u0434\u0438\u0443\u043b\u0430 (\u0434\u044c\u044e\u043b\u0430)
+languages.dyu=\u0434\u044c\u044e\u043b\u0430
 languages.he=\u0438\u0432\u0440\u0438\u0442
+languages.ast=\u0430\u0441\u0442\u0443\u0440\u0438\u0439\u0441\u043a\u0438\u0439
+languages.kfo=\u043a\u043e\u0440\u043e
 languages.ha=\u0445\u0430\u0443\u0441\u0430
-languages.wen=\u043b\u0443\u0436\u0438\u0446\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.wen=\u043b\u0443\u0436\u0438\u0446\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
+languages.gv=\u043c\u044d\u043d\u043a\u0441\u043a\u0438\u0439
 languages.gu=\u0433\u0443\u0434\u0436\u0430\u0440\u0430\u0442\u0438
 languages.sem=\u0441\u0435\u043c\u0438\u0442\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.sel=\u0441\u0435\u043b\u044c\u043a\u0443\u043f\u0441\u043a\u0438\u0439
-languages.iro=\u0438\u0440\u043e\u043a\u0435\u0437\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.iro=\u0438\u0440\u043e\u043a\u0435\u0437\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
 languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0438
-languages.gl=\u0433\u0430\u043b\u0438\u0441\u0438\u0439\u0441\u043a\u0438\u0439
+languages.gl=\u0433\u0430\u043b\u0438\u0446\u0438\u0439\u0441\u043a\u0438\u0439
+languages.en_CA=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
 languages.arw=\u0430\u0440\u0430\u0432\u0430\u043a\u0441\u043a\u0438\u0439
-languages.gd=\u0433\u0430\u044d\u043b\u044c\u0441\u043a\u0438\u0439
-languages.art=\u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.gez=\u0433\u0435\u044d\u0437
+languages.art=\u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.gd=\u0448\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0433\u044d\u043b\u044c\u0441\u043a\u0438\u0439
 languages.ira=\u0438\u0440\u0430\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.ga=\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
-languages.fy=\u0444\u0440\u0438\u0437\u0441\u043a\u0438\u0439
+languages.arp=\u0430\u0440\u0430\u043f\u0430\u0445\u043e
+languages.arn=\u0430\u0440\u0430\u0443\u043a\u0430\u043d\u0441\u043a\u0438\u0439
+languages.fy=\u0437\u0430\u043f\u0430\u0434\u043d\u043e\u0444\u0440\u0438\u0437\u0441\u043a\u0438\u0439
 languages.bla=\u0441\u0438\u043a\u0441\u0438\u043a\u0430
 languages.gem=\u0433\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
-languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439
+languages.ypk=\u044e\u043f\u0438\u043a
 languages.arc=\u0430\u0440\u0430\u043c\u0435\u0439\u0441\u043a\u0438\u0439
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439
 languages.fo=\u0444\u0430\u0440\u0435\u0440\u0441\u043a\u0438\u0439
+languages.cel=\u043a\u0435\u043b\u044c\u0442\u0441\u043a\u0438\u0435
 languages.fj=\u0444\u0438\u0434\u0436\u0438
 languages.fi=\u0444\u0438\u043d\u0441\u043a\u0438\u0439
+languages.ff=\u0444\u0443\u043b\u0430\u0445
+languages.tvl=\u0442\u0443\u0432\u0430\u043b\u0443
+languages.ceb=\u043a\u0435\u0431\u0443\u0430\u043d\u043e
 languages.fa=\u043f\u0435\u0440\u0441\u0438\u0434\u0441\u043a\u0438\u0439
+languages.en_AU=\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
+languages.zh_Hans=\u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439
+languages.zh_Hant=\u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439
 languages.eu=\u0431\u0430\u0441\u043a\u0441\u043a\u0438\u0439
+languages.sco=\u0448\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
 languages.et=\u044d\u0441\u0442\u043e\u043d\u0441\u043a\u0438\u0439
+languages.scn=\u0441\u0438\u0446\u0438\u043b\u0438\u0439\u0441\u043a\u0438\u0439
 languages.es=\u0438\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439
 languages.eo=\u044d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
 languages.en=\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
 languages.el=\u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0439
 languages.tut=\u0430\u043b\u0442\u0430\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.niu=\u043d\u0438\u0443\u044d
-languages.mos=\u043c\u043e\u0435\u0439
+languages.tup=\u044f\u0437\u044b\u043a \u0442\u0443\u043f\u0438
+languages.ee=\u044d\u0432\u0435
+languages.tum=\u0442\u0443\u043c\u0431\u0443\u043a\u0430
+languages.nl_BE=\u0444\u043b\u0430\u043c\u0430\u043d\u0434\u0441\u043a\u0438\u0439 (\u0411\u0435\u043b\u044c\u0433\u0438\u044f)
+languages.es_419=\u041b\u0430\u0442\u0438\u043d\u043e-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0438\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439
+languages.mos=\u043c\u043e\u0441\u0438
 languages.dz=\u0434\u0437\u043e\u043d\u0433-\u043a\u044d
-languages.fiu=\u0444\u0438\u043d\u043d\u043e-\u0443\u0433\u043e\u0440\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.kcg=\u0442\u044c\u044f\u043f
 languages.nic=\u043d\u0438\u0433\u0435\u0440-\u043a\u043e\u0440\u0434\u043e\u0444\u0430\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.lus=\u043b\u0443\u0448\u0435\u0439
+languages.fiu=\u0444\u0438\u043d\u043d\u043e-\u0443\u0433\u043e\u0440\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.dv=\u043c\u0430\u043b\u044c\u0434\u0438\u0432\u0441\u043a\u0438\u0439
+languages.nia=\u043d\u0438\u0430\u0441\u0441\u043a\u0438\u0439
 languages.moh=\u043c\u043e\u0445\u0430\u0443\u043a
-languages.luo=\u043b\u0443\u043e (\u041a\u0435\u043d\u0438\u044f \u0438 \u0422\u0430\u043d\u0437\u0430\u043d\u0438\u044f)
+languages.luo=\u043b\u0443\u043e
 languages.lun=\u043b\u0443\u043d\u0434\u0430
+languages.apa=\u0430\u043f\u0430\u0447\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
+languages.fil=\u0444\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u0441\u043a\u0438\u0439
 languages.lui=\u043b\u0443\u0438\u0441\u0435\u043d\u044c\u043e
-languages.hup=\u0425\u0443\u043f\u0430
+languages.hup=\u0445\u0443\u043f\u0430
+languages.cch=\u0430\u0442\u0441\u0430\u043c
 languages.bin=\u0431\u0438\u043d\u0438
 languages.de=\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
+languages.lua=\u043b\u0443\u0431\u0430-\u043b\u0443\u043b\u0443\u0430
 languages.bik=\u0431\u0438\u043a\u043e\u043b\u044c\u0441\u043a\u0438\u0439
 languages.was=\u0432\u0430\u0448\u043e
-languages.und=\u043d\u0435\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439
+languages.und=\u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0438\u043b\u0438 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a
 languages.war=\u0432\u0430\u0440\u0430\u0439
 languages.da=\u0434\u0430\u0442\u0441\u043a\u0438\u0439
 languages.dum=\u043d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0441\u0440\u0435\u0434\u043d\u0435\u0432\u0435\u043a\u043e\u0432\u044b\u0439
 languages.wal=\u0432\u043e\u043b\u0430\u043c\u043e
-languages.mno=\u043c\u0430\u043d\u043e\u0431\u043e \u044f\u0437\u044b\u043a\u0438
-languages.wak=\u0432\u0430\u043a\u0430\u0448\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.mno=\u044f\u0437\u044b\u043a \u043c\u0430\u043d\u043e\u0431\u043e
+languages.wak=\u0432\u0430\u043a\u0430\u0448\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
+languages.sat=\u0441\u0430\u043d\u0442\u0430\u043b\u0438
 languages.cy=\u0432\u0430\u043b\u043b\u0438\u0439\u0441\u043a\u0438\u0439
+languages.sas=\u0441\u0430\u0441\u0430\u043a\u0441\u043a\u0438\u0439
+languages.kbd=\u043a\u0430\u0431\u0430\u0440\u0434\u0438\u043d\u0441\u043a\u0438\u0439
 languages.cv=\u0447\u0443\u0432\u0430\u0448\u0441\u043a\u0438\u0439
+languages.cu=\u0446\u0435\u0440\u043a\u043e\u0432\u043d\u043e\u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438\u0439
 languages.mni=\u043c\u0430\u043d\u0438\u043f\u0443\u0440\u0441\u043a\u0438\u0439
 languages.cs=\u0447\u0435\u0448\u0441\u043a\u0438\u0439
 languages.sam=\u0441\u0430\u043c\u0430\u0440\u0438\u0442\u044f\u043d\u0441\u043a\u0438\u0439 \u0430\u0440\u0430\u043c\u0435\u0439\u0441\u043a\u0438\u0439
+languages.cr=\u043a\u0440\u0438\u0438\u0439\u0441\u043a\u0438\u0439
+languages.sal=\u0441\u0430\u043b\u0438\u0448\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
 languages.dua=\u0434\u0443\u0430\u043b\u0430
-languages.sal=\u0441\u0430\u043b\u0438\u0448\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
 languages.co=\u043a\u043e\u0440\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439
-languages.sai=\u044e\u0436\u043d\u043e\u0439 \u0430\u043c\u0435\u0440\u0438\u043a\u0438 \u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.sai=\u044f\u0437\u044b\u043a \u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 \u042e\u0436\u043d\u043e\u0439 \u0410\u043c\u0435\u0440\u0438\u043a\u0438
+languages.mnc=\u043c\u0430\u043d\u044c\u0447\u0436\u0443\u0440\u0441\u043a\u0438\u0439
 languages.sah=\u044f\u043a\u0443\u0442\u0441\u043a\u0438\u0439
 languages.kaw=\u043a\u0430\u0432\u0438
+languages.inh=\u0438\u043d\u0433\u0443\u0448\u0441\u043a\u0438\u0439
+languages.gba=\u0433\u0431\u0430\u044f
 languages.sad=\u0441\u0430\u043d\u0434\u0430\u0432\u0435
+languages.ch=\u0447\u0430\u043c\u043e\u0440\u0440\u043e
+languages.ine=\u0438\u043d\u0434\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.bho=\u0431\u0445\u043e\u0434\u0436\u043f\u0443\u0440\u0438
 languages.enm=\u0441\u0440\u0435\u0434\u043d\u0435\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
-languages.inc=\u0438\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.kar=\u043a\u0430\u0440\u0435\u043d\u0441\u043a\u0438\u0439
+languages.inc=\u0438\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.ce=\u0447\u0435\u0447\u0435\u043d\u0441\u043a\u0438\u0439
 languages.gay=\u0433\u0430\u0439\u043e
 languages.ca=\u043a\u0430\u0442\u0430\u043b\u0430\u043d\u0441\u043a\u0438\u0439
 languages.umb=\u0443\u043c\u0431\u0443\u043d\u0434\u0443
+languages.syr=\u0441\u0438\u0440\u0438\u0439\u0441\u043a\u0438\u0439
 languages.kam=\u043a\u0430\u043c\u0431\u0430
+languages.anp=\u0430\u043d\u0433\u0438\u043a\u0430
 languages.tsi=\u0446\u0438\u043c\u0448\u0438\u0430\u043d
+languages.kaj=\u043a\u0430\u0434\u0436\u0438
 languages.ang=\u0441\u0442\u0430\u0440\u043e\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
+languages.kac=\u043a\u0430\u0447\u0438\u043d\u0441\u043a\u0438\u0439
 languages.cau=\u043a\u0430\u0432\u043a\u0430\u0437\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.kab=\u043a\u0430\u0431\u0438\u043b\u044c\u0441\u043a\u0438\u0439
 languages.kaa=\u043a\u0430\u0440\u0430\u043a\u0430\u043b\u043f\u0430\u043a\u0441\u043a\u0438\u0439
-languages.br=\u0431\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438\u0439
+languages.bs=\u0431\u043e\u0441\u043d\u0438\u0439\u0441\u043a\u0438\u0439
 languages.car=\u043a\u0430\u0440\u0438\u0431
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438\u0439
+languages.syc=\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0438\u0440\u0438\u0439\u0441\u043a\u0438\u0439
 languages.bo=\u0442\u0438\u0431\u0435\u0442\u0441\u043a\u0438\u0439
 languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439
+languages.bm=\u0431\u0430\u043c\u0431\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0439
 languages.gaa=\u0433\u0430
-languages.bi=\u0431\u0438\u0441\u043b\u0430\u043c\u0430
-languages.cai=\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u0410\u043c\u0435\u0440\u0438\u043a\u0438 \u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.cai=\u044f\u0437\u044b\u043a \u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u0410\u043c\u0435\u0440\u0438\u043a\u0438
+languages.bi=\u0431\u0438\u0441\u043b\u0430\u043c\u0441\u043a\u0438\u0439
 languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438
 languages.bg=\u0431\u043e\u043b\u0433\u0430\u0440\u0441\u043a\u0438\u0439
 languages.be=\u0431\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0438\u0439
+languages.pt_BR=\u0431\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439
 languages.cad=\u043a\u0430\u0434\u0434\u043e
 languages.ba=\u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u0438\u0439
 languages.zu=\u0437\u0443\u043b\u0443
 languages.zen=\u0437\u0435\u043d\u0430\u0433\u0441\u043a\u0438\u0439
 languages.pro=\u0441\u0442\u0430\u0440\u043e\u043f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u044c\u0441\u043a\u0438\u0439
+languages.hsb=\u0432\u0435\u0440\u0445\u043d\u0435\u043b\u0443\u0436\u0438\u0446\u043a\u0438\u0439
 languages.az=\u0430\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438\u0439
 languages.ay=\u0430\u0439\u043c\u0430\u0440\u0430
+languages.av=\u0430\u0432\u0430\u0440\u0441\u043a\u0438\u0439
 languages.as=\u0430\u0441\u0441\u0430\u043c\u0441\u043a\u0438\u0439
+languages.dsb=\u043d\u0438\u0436\u043d\u0435\u043b\u0443\u0436\u0438\u0446\u043a\u0438\u0439
 languages.ar=\u0430\u0440\u0430\u0431\u0441\u043a\u0438\u0439
-languages.elx=\u044d\u043b\u0430\u043c\u0441\u043a\u0438\u0439
 languages.ilo=\u0438\u043b\u043e\u043a\u043e
+languages.elx=\u044d\u043b\u0430\u043c\u0441\u043a\u0438\u0439
 languages.zh=\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439
+languages.an=\u0430\u0440\u0430\u0433\u043e\u043d\u0441\u043a\u0438\u0439
+languages.pra=\u044f\u0437\u044b\u043a \u043f\u0440\u0430\u043a\u0440\u0438\u0442
 languages.am=\u0430\u043c\u0445\u0430\u0440\u0441\u043a\u0438\u0439
-languages.pra=\u043f\u0440\u0430\u043a\u0440\u0438\u0442\u044b \u044f\u0437\u044b\u043a\u0438
-languages.new=\u043d\u0435\u0432\u0430\u0440\u0441\u043a\u0438\u0439
+languages.new=\u043d\u0435\u0432\u0430\u0440\u0438
+languages.ak=\u0430\u043a\u0430\u043d
 languages.za=\u0447\u0436\u0443\u0430\u043d\u044c
+languages.en_US=\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
 languages.af=\u0430\u0444\u0440\u0438\u043a\u0430\u0430\u043d\u0441
+languages.ae=\u0430\u0432\u0435\u0441\u0442\u0438\u0439\u0441\u043a\u0438\u0439
+languages.alt=\u044e\u0436\u043d\u043e\u0430\u043b\u0442\u0430\u0439\u0441\u043a\u0438\u0439
 languages.ab=\u0430\u0431\u0445\u0430\u0437\u0441\u043a\u0438\u0439
 languages.aa=\u0430\u0444\u0430\u0440
 languages.yo=\u0439\u043e\u0440\u0443\u0431\u0430
@@ -931,5 +1186,24 @@ languages.ale=\u0430\u043b\u0435\u0443\u0442\u0441\u043a\u0438\u0439
 languages.mkh=\u043c\u043e\u043d\u043a\u0445\u043c\u0435\u0440\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
 languages.yi=\u0438\u0434\u0438\u0448
 languages.dra=\u0434\u0440\u0430\u0432\u0438\u0434\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.ber=\u0431\u0435\u0440\u0431\u0435\u0440\u0441\u043a\u0438\u0439
+languages.nds=\u043d\u0438\u0436\u043d\u0435\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
 languages.bem=\u0431\u0435\u043c\u0431\u0430
 languages.bej=\u0431\u0435\u0434\u0436\u0430
+languages.tpi=\u0442\u043e\u043a-\u043f\u0438\u0441\u0438\u043d
+variants.AREVELA=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u0430\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439
+variants.POSIX=\u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0439
+variants.POLYTON=\u041c\u043d\u043e\u0433\u043e\u0442\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439
+variants.FONIPA=\u041c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0439 \u0444\u043e\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0444\u0430\u0432\u0438\u0442
+variants.1996=\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u043d\u0435\u043c\u0435\u0446\u043a\u043e\u0439 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438 (1996)
+variants.SAAHO=\u0421\u0430\u0445\u043e
+variants.1994=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0440\u0435\u0437\u044c\u044f\u043d\u0441\u043a\u0430\u044f \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u044f
+variants.SCOTLAND=\u0410\u043d\u0433\u043b\u043e-\u0448\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
+variants.AREVMDA=\u0417\u0430\u043f\u0430\u0434\u043d\u043e-\u0430\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439
+variants.VALENCIA=\u0412\u0430\u043b\u0435\u043d\u0441\u0438\u0439\u0441\u043a\u0438\u0439
+variants.1901=\u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u043d\u0435\u043c\u0435\u0446\u043a\u0430\u044f \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u044f
+variants.MONOTON=\u041c\u043e\u043d\u043e\u0442\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439
+variants.BAKU1926=\u0423\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u044e\u0440\u043a\u0441\u043a\u043e-\u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0439 \u0430\u043b\u0444\u0430\u0432\u0438\u0442
+variants.TARASK=\u0422\u0430\u0440\u0430\u0448\u043a\u0435\u0432\u0438\u0446\u0430
+variants.1606NICT=\u041f\u043e\u0437\u0434\u043d\u0435-\u0441\u0440\u0435\u0434\u043d\u0435\u0432\u0435\u043a\u043e\u0432\u044b\u0439 \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439 \u0434\u043e 1606 \u0433.
+variants.ROZAJ=\u0420\u0435\u0437\u044c\u044f\u043d\u0441\u043a\u0438\u0439
index 65fdceb7a2e5e8afd791f575f82851d060664f38..50a9f3be406d51e916479640931c4d97717e8858 100644 (file)
@@ -5,11 +5,16 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
+currenciesDisplayName.RHD=RHD
+currenciesDisplayName.YUM=YUM
+currenciesDisplayName.ESB=ESB
 mediumDateFormat=d MMM yyyy
 longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE, d MMMM yyyy '\u0433.'
 shortTimeFormat=HH:mm
 mediumTimeFormat=HH:mm:ss
 longTimeFormat=HH:mm:ss z
 fullTimeFormat=HH:mm:ss z
+languages.apa=\u0430\u043f\u0430\u0447\u0441\u043a\u0438\u0439
+languages.mh=\u043c\u0430\u0440\u0448\u0430\u043b\u044c\u0441\u043a\u0438\u0439
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d
+languages.den=\u0441\u043b\u044d\u0439\u0432\u0438
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_rw.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_rw.properties
new file mode 100644 (file)
index 0000000..feaced8
--- /dev/null
@@ -0,0 +1,130 @@
+# LocaleInformation_rw.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=.
+currenciesSymbol.RWF=F
+shortMonths=mut.\u00aegas.\u00aewer.\u00aemat.\u00aegic.\u00aekam.\u00aenya.\u00aekan.\u00aenze.\u00aeukw.\u00aeugu.\u00aeuku.\u00ae\u00ae
+months=Mutarama\u00aeGashyantare\u00aeWerurwe\u00aeMata\u00aeGicuransi\u00aeKamena\u00aeNyakanga\u00aeKanama\u00aeNzeli\u00aeUkwakira\u00aeUgushyingo\u00aeUkuboza\u00ae\u00ae
+shortWeekdays=\u00aecyu.\u00aembe.\u00aekab.\u00aegtu.\u00aekan.\u00aegnu.\u00aegnd.\u00ae
+weekdays=\u00aeKu cyumweru\u00aeKuwa mbere\u00aeKuwa kabiri\u00aeKuwa gatatu\u00aeKuwa kane\u00aeKuwa gatanu\u00aeKuwa gatandatu\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=Igitonga
+languages.es=Icyesipanyolo
+languages.ku=Inyekuridishi
+languages.eo=Icyesiperanto
+languages.en=Icyongereza
+languages.el=Ikigereki
+languages.ko=Igikoreya
+languages.kn=Igikanada
+languages.km=Igikambodiya
+languages.ka=Inyejeworujiya
+languages.jv=Inyejava
+languages.fil=Ikinyafilipine
+languages.pt=Igiporutugali
+languages.ps=Impashito
+languages.de=Ikidage
+languages.pl=Igipolone
+languages.da=Ikidaninwa
+languages.tlh=Inyekilingoni
+languages.ja=Ikiyapani
+languages.vi=Ikinyaviyetinamu
+languages.cy=Ikigaluwa
+languages.pa=Igipunjabi
+languages.cs=Igiceke
+languages.it=Igitaliyani
+languages.is=Igisilande
+languages.uz=Inyeyuzubeki
+languages.or=Inyoriya
+languages.ur=Inyeyurudu
+languages.ca=Igikatalani
+languages.ie=Uruhuzandimi
+languages.id=Ikinyendoziya
+languages.uk=Ikinyayukereni
+languages.ia=Ururimi Gahuzamiryango
+languages.oc=Inyogusitani
+languages.ug=Ikiwiguri
+languages.hy=Ikinyarumeniya
+languages.bs=Inyebosiniya
+languages.br=Inyebiritoni
+languages.hu=Igihongiriya
+languages.pt_PT=Inyeporutigali (Igiporutigali)
+languages.bn=Ikibengali
+languages.hr=Igikorowasiya
+languages.tw=Inyetuwi
+languages.bh=Inyebihari
+languages.bg=Urunyabuligariya
+languages.no=Ikinoruveji
+languages.be=Ikibelarusiya
+languages.nn=Inyenoruveji (Nyonorusiki)
+languages.hi=Igihindi
+languages.tr=Igiturukiya
+languages.nl=Ikinerilande
+languages.zu=Inyezulu
+languages.he=Igiheburayo
+languages.tk=Inyeturukimeni
+languages.ne=Ikinepali
+languages.az=Inyazeribayijani
+languages.ti=Inyatigirinya
+languages.th=Igitayi
+languages.te=Igitelugu
+languages.as=Icyasamizi
+languages.ar=Icyarabu
+languages.ta=Igitamili
+languages.gu=Inyegujarati
+languages.am=Inyamuhariki
+languages.mt=Ikimaliteze
+languages.ms=Ikimalayi
+languages.gn=Inyaguwarani
+languages.sw=Igiswahili
+languages.mr=Ikimarati
+languages.sv=Igisuweduwa
+languages.gl=Ikigalisiya
+languages.su=Inyesudani
+languages.af=Ikinyafurikaneri
+languages.st=Inyesesoto
+languages.mn=Ikimongoli
+languages.sr=Igiseribe
+languages.sq=Icyalubaniya
+languages.ml=Ikimalayalami
+languages.mk=Ikimasedoniyani
+languages.so=Igisomali
+languages.gd=Ikigaluwa cy'Igisweduwa
+languages.sl=Ikinyasiloveniya
+languages.sk=Igisilovaki
+languages.ga=Ikirilandi
+languages.si=Inyesimpaleze
+languages.sh=Inyeseribiya na Korowasiya
+languages.pt_BR=Inyeporutigali (Brezili)
+languages.yi=Inyeyidishi
+languages.sd=Igisindi
+languages.fy=Igifiriziyani
+languages.sa=Igisansikiri
+languages.fr=Igifaransa
+languages.lv=Ikinyaletoviyani
+languages.lt=Ikilituwaniya
+languages.fo=Inyefaroyizi
+languages.ru=Ikirusiya
+languages.lo=Ikilawotiyani
+languages.ln=Ilingala
+languages.fi=Igifinilande
+languages.ro=Ikinyarumaniya
+languages.fa=Inyeperisi
+languages.la=Ikilatini
+languages.xh=Inyehawusa
+languages.eu=Ikibasiki
+languages.ky=Inkerigizi
+languages.et=Icyesitoniya
index 72491fd820a3918e95cfae3255683e7a4e4a5399..62e1cb462b0e3f29bd15d984364b47864d607212 100644 (file)
@@ -7,7 +7,44 @@
 
 zeroDigit=\u0966
 percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
+currencyFormat=\u00a4#,##,##0.00;-\u00a4#,##,##0.00
 currenciesSymbol.INR=\u0930\u0941
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=d-MM-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=hh:mm a
+mediumTimeFormat=hh:mm:ss a
+longTimeFormat=hh:mm:ss a z
+fullTimeFormat=hh:mm:ss a z
 territories.IN=\u092d\u093e\u0930\u0924\u092e\u094d
-languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924
+languages.und=\u0905\u091c\u094d\u091e\u093e\u0924 \u092d\u093e\u0937\u093e
+languages.ain=\u0905\u092f\u093f\u0928\u0941
+languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924 \u092d\u093e\u0937\u093e
+languages.ach=\u0905\u091a\u094b\u0932\u093f
+languages.afh=\u0905\u092b\u094d\u0930\u093f\u0939\u093f\u0932\u093f
+languages.ace=\u0905\u091a\u093f\u0928\u0940\u0938\u094d
+languages.alg=\u0905\u0932\u094d\u0917\u094b\u0923\u094d\u0915\u094d\u092f\u0928\u094d \u092d\u093e\u0937\u093e
+languages.ale=\u0905\u0932\u093f\u092f\u0941\u091f\u094d
+languages.afa=\u0906\u092b\u094d\u0930\u094b \u090f\u0937\u094d\u092f\u0928\u094d \u092d\u093e\u0937\u093e
+languages.nb=\u0928\u094b\u0930\u094d\u0935\u0940\u091c\u093f\u092f\u0928\u094d \u092c\u094a\u0915\u093e\u092e\u0932\u094d
+languages.egy=\u092a\u094d\u0930\u093e\u091a\u0940\u0928 \u0908\u091c\u093f\u092a\u094d\u0924\u094d\u092f\u0928\u094d
+languages.tut=\u0906\u0933\u091f\u093f\u0915\u094d \u092d\u093e\u0937\u093e
+languages.ar=\u0905\u0931\u092c\u093f\u0915\u094d
+languages.ada=\u0905\u0921\u0919\u094d\u0917\u092e\u0947
+languages.grc=\u092a\u0941\u0930\u093e\u0924\u0928 \u092f\u0935\u0928 \u092d\u093e\u0937\u093e
+languages.am=\u0905\u0902\u0939\u093e\u0931\u093f\u0915\u094d
+languages.apa=\u0905\u092a\u093e\u091a\u0947 \u092d\u093e\u0937\u093e
+languages.anp=\u0905\u0919\u094d\u0917\u093f\u0915
+languages.sq=\u0905\u0932\u094d\u092c\u0947\u0928\u093f\u092f\u0928\u094d
+languages.ak=\u0905\u0915\u0928\u094d
+languages.akk=\u0905\u0915\u094d\u0915\u093e\u091f\u093f\u092f\u093e\u0928\u094d
+languages.af=\u0905\u092b\u094d\u0930\u093f\u0915\u094d\u0915\u093e\u0928\u094d\u0938\u094d
+languages.ab=\u0905\u092c\u094d\u0916\u093e\u0938\u093f\u092f\u0928\u094d
+languages.aa=\u0905\u092b\u0930
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_se.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_se.properties
new file mode 100644 (file)
index 0000000..e2da6d8
--- /dev/null
@@ -0,0 +1,370 @@
+# LocaleInformation_se.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+percent=%
+perMill=\u2030
+exponential=\u00d710^
+infinity=\u221e
+NaN=\u00a4\u00a4\u00a4
+minusSign=\u2212
+zeroDigit=0
+decimalSeparator=,
+groupingSeparator=\u00a0
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.XAU=golli
+currenciesDisplayName.NOK=norgga kruvdno
+currenciesDisplayName.XAG=silba
+currenciesDisplayName.SEK=ruo\u0167\u0167a kruvdno
+currenciesDisplayName.FIM=suoma m\u00e1rkki
+shortMonths=o\u0111\u0111j\u00aeguov\u00aenjuk\u00aecuo\u00aemies\u00aegeas\u00aesuoi\u00aeborg\u00ae\u010dak\u010d\u00aegolg\u00aesk\u00e1b\u00aejuov\u00ae\u00ae
+months=o\u0111\u0111ajagem\u00e1nnu\u00aeguovvam\u00e1nnu\u00aenjuk\u010dam\u00e1nnu\u00aecuo\u014bom\u00e1nnu\u00aemiessem\u00e1nnu\u00aegeassem\u00e1nnu\u00aesuoidnem\u00e1nnu\u00aeborgem\u00e1nnu\u00ae\u010dak\u010dam\u00e1nnu\u00aegolggotm\u00e1nnu\u00aesk\u00e1bmam\u00e1nnu\u00aejuovlam\u00e1nnu\u00ae\u00ae
+shortWeekdays=\u00aesotn\u00aevuos\u00aema\u014b\u00aegask\u00aeduor\u00aebear\u00ael\u00e1v\u00ae
+weekdays=\u00aesotnabeaivi\u00aevuoss\u00e1rga\u00aema\u014b\u014beb\u00e1rga\u00aegaskavahkku\u00aeduorasdat\u00aebearjadat\u00ael\u00e1vvardat\u00ae
+eras=OK\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=Nuorta-Timor
+territories.TK=Tokelau
+territories.TJ=Ta\u017eikistan
+territories.TH=Thaieana
+territories.TG=Togo
+territories.GY=Guyana
+territories.TD=Chad
+territories.TC=Turks ja Caicos-sullot
+territories.GW=Guinea-Bissau
+territories.GU=Guam
+territories.GT=Guatemala
+territories.GS=Lulli Georgia ja Lulli Sandwich-sullot
+territories.GR=Greika
+territories.GQ=Ekvatori\u00e1la Guinea
+territories.GP=Guadeloupe
+territories.SZ=Svazieana
+territories.SY=Syria
+territories.GN=Guinea
+territories.GM=G\u00e1mbia
+territories.GL=Kalaallit Nunaat
+territories.SV=El Salvador
+territories.062=m\u00e1tta-gaska-\u00c1sia
+territories.ST=S\u00e3o Tom\u00e9 ja Pr\u00edncipe
+territories.GI=Gibraltar
+territories.061=Polynesia
+territories.GH=Ghana
+territories.SR=Surinam
+territories.GG=Guernsey
+territories.GF=Frankriikka Guayana
+territories.GE=Georgia
+territories.SO=Som\u00e1lia
+territories.GD=Grenada
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=Stuorra-Brit\u00e1nnia
+territories.SL=Sierra Leone
+territories.GA=Gabon
+territories.SK=Slov\u00e1kia
+territories.SJ=Svalb\u00e1rda ja Jan Mayen
+territories.SI=Slovenia
+territories.SH=Saint Helena
+territories.SG=Singapore
+territories.SE=Ruo\u0167\u0167a
+territories.SD=Sudan
+territories.SC=Seychellsullot
+territories.SA=Saudi-Ar\u00e1bia
+territories.FR=Frankriika
+territories.FO=Fearsullot
+territories.FM=Mikronesia
+territories.RW=Rwanda
+territories.054=Melanesia
+territories.FK=Falklandsullot
+territories.053=Austr\u00e1lia ja O\u0111\u0111a-Sel\u00e1nda
+territories.RU=Ruo\u0161\u0161a
+territories.FJ=Fijisullot
+territories.FI=Suopma
+territories.RS=Serbia
+territories.RO=Rom\u00e1nia
+territories.RE=Reunion
+territories.ET=Etiopia
+territories.ES=Sp\u00e1nia
+territories.ER=Eritrea
+territories.QU=EU
+territories.EH=Oarje-Sah\u00e1ra
+territories.EG=Egypta
+territories.EE=Estl\u00e1nda
+territories.EC=Ecuador
+territories.DZ=Algeria
+territories.QA=Qatar
+territories.039=m\u00e1tta-Eurohp\u00e1
+territories.PY=Paraguay
+territories.DM=Dominica
+territories.035=m\u00e1tta-nuorta-\u00c1sia
+territories.PW=Palau
+territories.034=m\u00e1tta-\u00c1sia
+territories.DK=D\u00e1nm\u00e1rku
+territories.DJ=Djibouti
+territories.PT=Portug\u00e1la
+territories.PS=Palestina
+territories.030=nuorta-\u00c1sia
+territories.PR=Puerto Rico
+territories.DE=Duiska
+territories.PN=Pitcairn
+territories.PM=Saint Pierre ja Miquelon
+territories.PL=Polen
+territories.PK=Pakistan
+territories.PH=Filippiinnat
+territories.PG=Papua-O\u0111\u0111a-Guinea
+territories.CZ=\u010ceahkka
+territories.PE=Peru
+territories.CY=Kypros
+territories.CV=Kap Verde
+territories.PA=Panama
+territories.CU=Kuba
+territories.CR=Costa Rica
+territories.029=Karibia
+territories.CO=Kolombia
+territories.CN=Kiinn\u00e1
+territories.CM=Kamerun
+territories.CL=Chile
+territories.021=davvi-Amerihkk\u00e1
+territories.CH=\u0160veica
+territories.CG=Kongo-Brazzaville
+territories.CD=Kongo-Kinshasa
+territories.OM=Oman
+territories.CA=Kan\u00e1da
+territories.419=Lulli-Amerihkk\u00e1 ja Karibia
+territories.BZ=Belize
+territories.BY=Vilges-Ruo\u0161\u0161a
+territories.BW=Botswana
+territories.BT=Bhutan
+territories.BS=Bahamas
+territories.BR=Brasil
+territories.019=Amerihkk\u00e1
+territories.018=m\u00e1tta-Afrihkk\u00e1
+territories.NZ=O\u0111\u0111a-Sel\u00e1nda
+territories.017=gaska-Afrihkk\u00e1
+territories.BO=Bolivia
+territories.BN=Brunei
+territories.015=davvi-Afrihkk\u00e1
+territories.BM=Bermuda
+territories.014=nuorta-Afrihkk\u00e1
+territories.013=gaska-Amerihkk\u00e1
+territories.NU=Niue
+territories.BJ=Benin
+territories.011=oarji-Afrihkk\u00e1
+territories.BI=Burundi
+territories.BH=Bahrain
+territories.NR=Nauru
+territories.BG=Bulg\u00e1ria
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Belgia
+territories.NO=Norga
+territories.BD=Bangladesh
+territories.BB=Barbados
+territories.ZW=Zimbabwe
+territories.NL=Vuolleeatnamat
+territories.BA=Bosnia-Hercegovina
+territories.NI=Nicaragua
+territories.NG=Nigeria
+territories.AZ=Aserbai\u017ean
+territories.NE=Niger
+territories.AX=\u00c5l\u00e1nda
+territories.NC=O\u0111\u0111a-Kaledonia
+territories.AW=Aruba
+territories.ZM=Zambia
+territories.NA=Namibia
+territories.AU=Austr\u00e1lia
+territories.AT=Nuortariika
+territories.AS=Amerihk\u00e1 Samoa
+territories.AR=Argentina
+territories.AQ=Ant\u00e1rktis
+territories.009=Oseania
+territories.MZ=Mosambik
+territories.AO=Angola
+territories.MY=Malesia
+territories.MX=Meksiko
+territories.AM=Armenia
+territories.005=m\u00e1tta-Amerihkk\u00e1
+territories.MW=Malawi
+territories.AL=Alb\u00e1nia
+territories.MV=Malediivvat
+territories.003=davvi-Amerihkk\u00e1
+territories.ZA=M\u00e1tta-Afrihk\u00e1
+territories.MU=Mauritius
+territories.002=Afrihkk\u00e1
+territories.MT=M\u00e1lta
+territories.AI=Anguilla
+territories.001=m\u00e1ilbmi
+territories.MS=Montserrat
+territories.MR=Mauret\u00e1nia
+territories.AG=Antigua ja Barbuda
+territories.MQ=Martinique
+territories.AF=Afghanistan
+territories.MP=Davvi-Mari\u00e1nat
+territories.AE=Ovttastuvvan Ar\u00e1baemir\u00e1htat
+territories.MO=Mak\u00e1o
+territories.AD=Andorra
+territories.MN=Mongolia
+territories.MM=Burma
+territories.ML=Mali
+territories.MK=Makedonia
+territories.YT=Mayotte
+territories.MH=Marshallsullot
+territories.MG=Madagaskar
+territories.ME=Montenegro
+territories.MD=Mold\u00e1via
+territories.MC=Monaco
+territories.MA=Marokko
+territories.YE=Jemen
+territories.LY=Libya
+territories.LV=L\u00e1tvia
+territories.155=oarji-Eurohp\u00e1
+territories.LU=Luxembourg
+territories.154=davvi-Eurohp\u00e1
+territories.LT=Lietuva
+territories.LS=Lesotho
+territories.LR=Liberia
+territories.151=nuorta-Eurohp\u00e1
+territories.150=Eurohp\u00e1
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Saint Lucia
+territories.LB=Libanon
+territories.LA=Laos
+territories.KZ=Kasakstan
+territories.KW=Kuwait
+territories.145=oarji-\u00c1sia
+territories.143=gaska-\u00c1sia
+territories.142=\u00c1sia
+territories.KR=M\u00e1tta-Korea
+territories.KP=Davvi-Korea
+territories.KN=Saint Kitts ja Nevis
+territories.KM=Komorosullot
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Kampu\u010dea
+territories.KG=Kirgisistan
+territories.KE=Kenia
+territories.WF=Wallis ja Futuna
+territories.JP=Jap\u00e1na
+territories.JO=Jord\u00e1nia
+territories.JM=Jamaica
+territories.VU=Vanuatu
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VE=Venezuela
+territories.VC=Saint Vincent ja Grenadine
+territories.VA=Vatik\u00e1na
+territories.IT=It\u00e1lia
+territories.IS=Isl\u00e1nda
+territories.IR=Iran
+territories.IQ=Irak
+territories.UZ=Usbekistan
+territories.UY=Uruguay
+territories.IN=India
+territories.IL=Israel
+territories.US=Amerihk\u00e1 ovttastuvvan st\u00e1htat
+territories.IE=Irl\u00e1nda
+territories.ID=Indonesia
+territories.UG=Uganda
+territories.UA=Ukraina
+territories.HU=Ung\u00e1r
+territories.HT=Haiti
+territories.HR=Kro\u00e1tia
+territories.TZ=Tanz\u00e1nia
+territories.HN=Honduras
+territories.TW=Taiwan
+territories.TV=Tuvalu
+territories.HK=Hongkong
+territories.TT=Trinidad ja Tobago
+territories.TR=Durka
+territories.TO=Tonga
+territories.TN=Tunisia
+territories.TM=Turkmenistan
+languages.es=sp\u00e1nskkagiella
+languages.kw=kornagiella
+languages.kv=komigiella
+languages.en=ea\u014bgalsgiella
+languages.el=greikkagiella
+languages.sms=nuortala\u0161giella
+languages.smn=an\u00e1ra\u0161giella
+languages.fiu=fenno-ugr\u00e1la\u0161 gielat
+languages.smj=julevs\u00e1megiella
+languages.smi=s\u00e1megielat
+languages.wa=vallonagiella
+languages.sma=lullis\u00e1megiella
+languages.pt=portug\u00e1lagiella
+languages.de=duiskkagiella
+languages.pl=polskkagiella
+languages.da=d\u00e1nskkagiella
+languages.apa=apachegielat
+languages.wen=sorbigiella
+languages.myv=ersagiella
+languages.cs=\u010deahkagiella
+languages.it=it\u00e1liagiella
+languages.co=corsicagiella
+languages.is=isl\u00e1nddagiella
+languages.ca=katal\u00e1nagiella
+languages.sel=selkupagiella
+languages.chm=marigiella
+languages.uk=ukrainagiella
+languages.oc=oksit\u00e1nagiella
+languages.hy=armeenala\u0161 gielat
+languages.bs=bosniagiella
+languages.br=bretonagiella
+languages.bn=bengalgiella
+languages.udm=udmurtagiella
+languages.hr=kro\u00e1tiagiella
+languages.bg=bulg\u00e1riagiella
+languages.ang=boares ea\u014bgalasgiella
+languages.no=d\u00e1rogiella
+languages.be=vilges-ruo\u0161\u0161agiella
+languages.krl=g\u00e1rjilgiella
+languages.nn=o\u0111\u0111ad\u00e1rogiella
+languages.hi=hindigiella
+languages.nl=holl\u00e1nddagiella
+languages.nb=girjed\u00e1rogiella
+languages.ar=ar\u00e1bagiella
+languages.gv=manksgiella
+languages.gu=gujaratagiella
+languages.ast=asturiagiella
+languages.an=aragoniagiella
+languages.sv=ruo\u0167agiella
+languages.af=afrik\u00e1nsagiella
+languages.sr=serbiagiella
+languages.scn=sisiliagiella
+languages.sq=alb\u00e1nagiella
+languages.mk=makedoniagiella
+languages.sl=slovenagiella
+languages.sk=slov\u00e1kiagiella
+languages.ga=iirragiella
+languages.gem=germ\u00e1nala\u0161 gielat
+languages.se=davvis\u00e1megiella
+languages.fy=friisagiella
+languages.mdf=mok\u0161agiella
+languages.sc=sardigiella
+languages.fr=fr\u00e1nskkagiella
+languages.lv=l\u00e1tviagiella
+languages.lt=liettuvagiella
+languages.fo=fearagiella
+languages.ru=ruo\u0161\u0161agiella
+languages.roa=rom\u00e1nala\u0161 gielat
+languages.fi=suomagiella
+languages.ro=rom\u00e1niagiella
+languages.rm=retorom\u00e1nagiella
+languages.cel=kelttala\u0161 gielat
+languages.fa=persijagiella
+languages.lb=luxemburggagiella
+languages.la=l\u00e1htengiella
+languages.et=esttegiella
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_se_FI.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_se_FI.properties
new file mode 100644 (file)
index 0000000..e858713
--- /dev/null
@@ -0,0 +1,116 @@
+# LocaleInformation_se_FI.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.XAU=XAU
+currenciesDisplayName.NOK=NOK
+currenciesDisplayName.XAG=XAG
+currenciesDisplayName.SEK=SEK
+currenciesDisplayName.FIM=FIM
+shortMonths=o\u0111\u0111ajage\u00aeguovva\u00aenjuk\u010da\u00aecuo\u014bo\u00aemiesse\u00aegeasse\u00aesuoidne\u00aeborge\u00ae\u010dak\u010da\u00aegolggot\u00aesk\u00e1bma\u00aejuovla\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00aeaejlege\u00aem\u00e5anta\u00aed\u00e4jsta\u00aegaskevahkoe\u00aed\u00e5arsta\u00aebearjadahke\u00aelaavadahke\u00ae
+territories.AU=Austr\u00e1lia
+territories.TD=\u010chad
+territories.AT=Nuortariika
+territories.MY=Malesia
+territories.GR=Greika
+territories.ZA=M\u00e1tta-Afrihk\u00e1
+territories.MV=Malediivvat
+territories.MR=Mauret\u00e1nia
+territories.GL=Kalaallit Nunaat
+territories.MP=D\u00e1vvi-Mari\u00e1nat
+territories.SR=Surinam
+territories.MK=Makedonia
+territories.021=d\u00e1vvi-Amerihkk\u00e1
+territories.MH=Marshallsullot
+territories.MG=Madagaskar
+territories.SK=Slov\u00e1kia
+territories.SJ=Svalb\u00e1rda ja Jan Mayen
+territories.SI=Slovenia
+territories.MA=Marokko
+territories.SE=Ruo\u0167\u0167a
+territories.FR=Frankriika
+territories.LV=L\u00e1tvia
+territories.LT=Lietuva
+territories.FO=Fearsullot
+territories.RU=Ruo\u0161\u0161a
+territories.017=gaska-Afrihkk\u00e1
+territories.FI=Suopma
+territories.015=d\u00e1vvi-Afrihkk\u00e1
+territories.014=nuorta-Afrihkk\u00e1
+territories.011=oarji-Afrihkk\u00e1
+territories.LB=Libanon
+territories.ES=Sp\u00e1nia
+territories.KR=M\u00e1tta-Korea
+territories.KP=D\u00e1vvi-Korea
+territories.005=m\u00e1tta-Amerihkk\u00e1
+territories.002=Afrihkk\u00e1
+territories.EE=Estl\u00e1nda
+territories.JP=J\u00e1hpan
+territories.DK=D\u00e1nm\u00e1rku
+territories.PS=Palestina
+territories.155=oarji-Eurohp\u00e1
+territories.154=d\u00e1vvi-Eurohp\u00e1
+territories.DE=Duiska
+territories.151=nuorta-Eurohp\u00e1
+territories.150=Eurohp\u00e1
+territories.PL=Polen
+territories.PH=Filippiinnat
+territories.CZ=\u010ceahkka
+territories.IT=It\u00e1lia
+territories.IS=Isl\u00e1nda
+territories.CN=Kiinn\u00e1
+territories.IR=Iran
+territories.CM=Kamerun
+territories.IQ=Irak
+territories.145=oarji-\u00c1sia
+territories.CH=\u0160veica
+territories.143=gaska-\u00c1sia
+territories.US=Amerihk\u00e1 ovttastuvvan st\u00e1htat
+territories.IE=Irl\u00e1nda
+territories.BY=Vilges-Ruo\u0161\u0161a
+territories.BR=Brasil
+territories.NZ=O\u0111\u0111a-Sel\u00e1nda
+territories.HU=Ung\u00e1r
+territories.HR=Kro\u00e1tia
+territories.039=m\u00e1tta-Eurohp\u00e1
+territories.BG=Bulg\u00e1ria
+territories.NO=Norga
+territories.BE=Belgia
+territories.TR=Durka
+territories.034=m\u00e1tta-\u00c1sia
+territories.NL=Vuolleeatnamat
+territories.030=nuorta-\u00c1sia
+territories.TL=Nuorta-Timor
+territories.AX=\u00c5l\u00e1nda
+languages.en=e\u014bgelasgiella
+languages.gem=duiskkagielat
+languages.no=d\u00e1rogiella
+languages.el=greikkagiella
+languages.nn=o\u0111\u0111ad\u00e1rogiella
+languages.be=vilgesruo\u0161\u0161agiella
+languages.cs=\u010deahkagiella
+languages.sms=nuortala\u0161giella
+languages.is=isl\u00e1nddagiella
+languages.fr=fr\u00e1nskkagiella
+languages.ru=ruo\u0161\u0161agiella
+languages.nb=girjed\u00e1rogiella
+languages.fo=fearagiella
+languages.smn=an\u00e1ra\u0161giella
+languages.smj=julevs\u00e1megiella
+languages.smi=s\u00e1megielat
+languages.fi=suomagiella
+languages.sv=ruo\u0167agiella
+languages.sma=lullis\u00e1megiella
+languages.fiu=fenno-ugr\u00e1la\u0161 gielat
+languages.apa=apachegielat
+languages.de=duiskkagiella
+languages.ang=boares e\u014bgelasgiella
+languages.et=esttegiella
+languages.es=sp\u00e1nskkagiella
+languages.da=d\u00e1nskkagiella
+languages.se=d\u00e1vvis\u00e1megiella
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_si.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_si.properties
new file mode 100644 (file)
index 0000000..38f7cc8
--- /dev/null
@@ -0,0 +1,28 @@
+# LocaleInformation_si.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+percentFormat=#,##,##0%
+currencyFormat=\u00a4#,##,##0.00;(\u00a4#,##,##0.00)
+currenciesDisplayName.LKR=LKR
+currenciesSymbol.LKR=SL Re
+shortMonths=\u0da2\u0db1\u00ae\u0db4\u0dd9\u0db6\u00ae\u0db8\u0dcf\u0dbb\u0dca\u0dad\u00ae\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u00ae\u0db8\u0dd0\u0dba\u00ae\u0da2\u0dd6\u0db1\u00ae\u0da2\u0dd6\u0dbd\u00ae\u0d85\u0d9c\u0ddd\u00ae\u0dc3\u0dd0\u0db4\u00ae\u0d94\u0d9a\u00ae\u0db1\u0ddc\u0dc0\u0dd0\u00ae\u0daf\u0dd9\u0dc3\u0dd0\u00ae\u00ae
+months=\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u00ae\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u00ae\u0db8\u0dcf\u0dbb\u0dca\u0dad\u00ae\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca\u00ae\u0db8\u0dd0\u0dba\u0dd2\u00ae\u0da2\u0dd6\u0db1\u00ae\u0da2\u0dd6\u0dbd\u0dd2\u00ae\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4\u00ae\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca\u00ae\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca\u00ae\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca\u00ae\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca\u00ae\u00ae
+shortWeekdays=\u00ae\u0d89\u0dbb\u0dd2\u00ae\u0dc3\u0db3\u0dd4\u00ae\u0d85\u0d9f\u00ae\u0db6\u0daf\u0dcf\u00ae\u0db6\u0dca\u200d\u0dbb\u0dc4\u00ae\u0dc3\u0dd2\u0d9a\u0dd4\u00ae\u0dc3\u0dd9\u0db1\u00ae
+weekdays=\u00ae\u0d89\u0dbb\u0dd2\u0daf\u0dcf\u00ae\u0dc3\u0db3\u0dd4\u0daf\u0dcf\u00ae\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf\u00ae\u0db6\u0daf\u0dcf\u0daf\u0dcf\u00ae\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf\u00ae\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf\u00ae\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf\u00ae
+eras=\u0d9a\u0dca\u200d\u0dbb\u0dd2.\u0db4\u0dd6.\u00ae\u0d9a\u0dca\u200d\u0dbb\u0dd2.\u0dc0.\u00ae
+ampms=\u0db4\u0dd9.\u0dc0.\u00ae\u0db4.\u0dc0.\u00ae
+shortDateFormat=yyyy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM d
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=Lanka\u00ae\u0dc1\u0dca\u200d\u0dbb\u0dd3 \u0dbd\u0d82\u0d9a\u0dcf \u0dc0\u0dda\u0dbd\u0dcf\u0dc0\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.LK=\u0dc1\u0dca\u200d\u0dbb\u0dd3 \u0dbd\u0d82\u0d9a\u0dcf\u0dc0
+languages.si=Sinhala
index b5e18b97d0b36db0e9f4ce82b978aac6404c565b..1dda96540fb81d98413dbc9a312beb2e956c9d5e 100644 (file)
@@ -5,6 +5,7 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.INR=Indian Rupee
 currenciesDisplayName.JPY=Japanese Yen
 currenciesDisplayName.RUB=Russian Ruble
@@ -14,27 +15,25 @@ currenciesDisplayName.EUR=Euro
 currenciesDisplayName.USD=US Dollar
 currenciesDisplayName.BRL=Brazilian Real
 currenciesSymbol.ETB=$
-currenciesSymbol.USD=US$
-shortMonths=Jan®Feb®Mar®Apr®May®Jun®Jul®Aug®Sep®Oct®Nov®Dec®®
-months=January®February®March®April®May®June®July®August®September®October®November®December®®
-shortWeekdays=®Sam®San®Mak®Row®Ham®Arb®Qid®
-weekdays=®Sambata®Sanyo®Maakisanyo®Roowe®Hamuse®Arbe®Qidaame®
-firstDayOfWeek=sat
-eras=YIA®YIG®
-ampms=soodo®hawwaro®
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMay\u00aeJun\u00aeJul\u00aeAug\u00aeSep\u00aeOct\u00aeNov\u00aeDec\u00ae\u00ae
+months=January\u00aeFebruary\u00aeMarch\u00aeApril\u00aeMay\u00aeJune\u00aeJuly\u00aeAugust\u00aeSeptember\u00aeOctober\u00aeNovember\u00aeDecember\u00ae\u00ae
+shortWeekdays=\u00aeSam\u00aeSan\u00aeMak\u00aeRow\u00aeHam\u00aeArb\u00aeQid\u00ae
+weekdays=\u00aeSambata\u00aeSanyo\u00aeMaakisanyo\u00aeRoowe\u00aeHamuse\u00aeArbe\u00aeQidaame\u00ae
+eras=YIA\u00aeYIG\u00ae
+ampms=soodo\u00aehawwaro\u00ae
 shortDateFormat=dd/MM/yy
 mediumDateFormat=dd-MMM-yyyy
 longDateFormat=dd MMMM yyyy
 fullDateFormat=EEEE, MMMM dd, yyyy
 shortTimeFormat=h:mm a
 mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.FR=France
 territories.IN=India
 territories.CN=China
-territories.ET=Itiyoophiya
 territories.DE=Germany
+territories.ET=Itiyoophiya
 territories.GB=United Kingdom
 territories.BR=Brazil
 territories.RU=Russia
index d73c3edd91c1195b760114205186a3f9ca4e57e2..fb6250b681c6362f6c0c4e0a2ab7665d9cb73b79 100644 (file)
 
 decimalSeparator=,
 groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
 currenciesDisplayName.YDD=Jemensk\u00fd din\u00e1r
-currenciesDisplayName.TWD=Taiwansk\u00fd nov\u00fd dol\u00e1r
 currenciesDisplayName.KES=Ke\u0148sk\u00fd \u0161iling
-currenciesDisplayName.BYB=Belarussian nov\u00fd rube\u013e (1994-1999)
+currenciesDisplayName.TWD=Taiwansk\u00fd nov\u00fd dol\u00e1r
 currenciesDisplayName.LKR=\u0160rilansk\u00e1 rupia
-currenciesDisplayName.RWF=Rwandsk\u00fd frank
+currenciesDisplayName.BYB=Belarussian nov\u00fd rube\u013e (1994-1999)
 currenciesDisplayName.TJS=Tad\u017eikistansk\u00fd somoni
-currenciesDisplayName.SDP=Sud\u00e1nska libra
-currenciesDisplayName.TJR=Tad\u017eikistansk\u00fd rube\u013e
+currenciesDisplayName.RWF=Rwandsk\u00fd frank
 currenciesDisplayName.ERN=Eritrejsk\u00e1 nakfa
+currenciesDisplayName.TJR=Tad\u017eikistansk\u00fd rube\u013e
+currenciesDisplayName.SDP=Sud\u00e1nska libra
 currenciesDisplayName.GRD=Gr\u00e9cka drachma
 currenciesDisplayName.IEP=\u00cdrska libra
 currenciesDisplayName.ARS=Argentinsk\u00e9 peso
-currenciesDisplayName.SDD=Sud\u00e1nsky din\u00e1r
 currenciesDisplayName.ARP=Argentinsk\u00e9 peso (1983-1985)
+currenciesDisplayName.SDD=Sud\u00e1nsky din\u00e1r
 currenciesDisplayName.GEL=Gruz\u00ednsky lari
 currenciesDisplayName.GEK=Gruz\u00ednsky Kupon Larit
 currenciesDisplayName.CRC=Kostariksk\u00fd colon
 currenciesDisplayName.FKP=Falklandsk\u00e1 libra
 currenciesDisplayName.EEK=Est\u00f3nska kroon
-currenciesDisplayName.HKD=Hong Kongsk\u00fd dol\u00e1r
 currenciesDisplayName.MDL=Moldavsk\u00fd leu
-currenciesDisplayName.ARA=Argentinsk\u00fd austral
+currenciesDisplayName.HKD=Hong Kongsk\u00fd dol\u00e1r
 currenciesDisplayName.IQD=Irack\u00fd din\u00e1r
+currenciesDisplayName.ARA=Argentinsk\u00fd austral
 currenciesDisplayName.SCR=Sej\u0161elsk\u00e1 rupia
 currenciesDisplayName.VUV=Vanuatu vatu
-currenciesDisplayName.DKK=D\u00e1nska krone
 currenciesDisplayName.KPW=Severok\u00f3rejsk\u00fd won
-currenciesDisplayName.GQE=Rovn\u00edkov\u00e1 Guinea Ekwele Guineana
+currenciesDisplayName.DKK=D\u00e1nska krone
 currenciesDisplayName.IDR=Indon\u00e9zska rupia
-currenciesDisplayName.LVR=Loty\u0161sk\u00fd rube\u013e
+currenciesDisplayName.GQE=Rovn\u00edkov\u00e1 Guinea Ekwele Guineana
 currenciesDisplayName.SOS=Som\u00e1lsky \u0161iling
+currenciesDisplayName.LVR=Loty\u0161sk\u00fd rube\u013e
 currenciesDisplayName.AED=UAE dirham
-currenciesDisplayName.BWP=Botswanan Pula
 currenciesDisplayName.LVL=Loty\u0161sk\u00fd lats
+currenciesDisplayName.BWP=Botswanan Pula
 currenciesDisplayName.RUR=Rusk\u00fd rube\u013e (1991-1998)
 currenciesDisplayName.NIO=Nikaragujsk\u00e1 Cordoba Oro
-currenciesDisplayName.ADP=Andorsk\u00e1 peseta
-currenciesDisplayName.FJD=Fiji dol\u00e1r
 currenciesDisplayName.MOP=Macao Pataca
+currenciesDisplayName.FJD=Fiji dol\u00e1r
+currenciesDisplayName.ADP=Andorsk\u00e1 peseta
 currenciesDisplayName.RUB=Rusk\u00fd rube\u013e
 currenciesDisplayName.CDF=Kon\u017esk\u00fd frank Congolais
 currenciesDisplayName.NIC=Nikaragujsk\u00e1 cordoba
 currenciesDisplayName.DJF=D\u017eibutsk\u00fd frank
-currenciesDisplayName.ECV=Ekuadorsk\u00fd Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Solomon Islands dol\u00e1r
 currenciesDisplayName.UZS=Uzbekistansk\u00fd sum
+currenciesDisplayName.SBD=Solomon Islands dol\u00e1r
+currenciesDisplayName.ECV=Ekuadorsk\u00fd Unidad de Valor Constante (UVC)
 currenciesDisplayName.ECS=Ekuadorsk\u00fd sucre
-currenciesDisplayName.PHP=Filip\u00ednske peso
 currenciesDisplayName.THB=Thajsk\u00fd b\u00e1t
+currenciesDisplayName.PHP=Filip\u00ednske peso
 currenciesDisplayName.LUF=Luxembursk\u00fd frank
 currenciesDisplayName.FIM=Finsk\u00e1 marka
 currenciesDisplayName.TTD=Trinidad a Tobago dol\u00e1r
 currenciesDisplayName.SZL=Swaziland lilangeni
 currenciesDisplayName.MNT=Mongolsk\u00fd tugrik
-currenciesDisplayName.SAR=Saudsk\u00fd riyal
 currenciesDisplayName.UAK=Ukrainsk\u00fd karbovanetz
+currenciesDisplayName.SAR=Saudsk\u00fd riyal
 currenciesDisplayName.UAH=Ukrainsk\u00e1 hrivna
 currenciesDisplayName.HUF=Ma\u010farsk\u00fd forint
-currenciesDisplayName.COP=Colombijsk\u00e9 peso
 currenciesDisplayName.QAR=Qatarsk\u00fd rial
+currenciesDisplayName.COP=Colombijsk\u00e9 peso
 currenciesDisplayName.LTT=Litevsk\u00fd talonas
 currenciesDisplayName.PTE=Portugalsk\u00e9 eskudo
-currenciesDisplayName.AOR=Angolsk\u00e1 kwanza Reajustado (1995-1999)
 currenciesDisplayName.UYU=Uruguajsk\u00e9 peso Uruguayo
+currenciesDisplayName.AOR=Angolsk\u00e1 kwanza Reajustado (1995-1999)
 currenciesDisplayName.GBP=Britsk\u00e1 libra
-currenciesDisplayName.BIF=Burundsk\u00fd frank
-currenciesDisplayName.INR=Indijsk\u00e1 rupia
 currenciesDisplayName.ZRZ=Zairsk\u00fd Zaire
-currenciesDisplayName.AON=Angolsk\u00e1 nov\u00e1 kwanza (1990-2000)
-currenciesDisplayName.LTL=Litevsk\u00e1 lita
+currenciesDisplayName.INR=Indijsk\u00e1 rupia
+currenciesDisplayName.BIF=Burundsk\u00fd frank
 currenciesDisplayName.XFU=Franc\u00fazsky UIC-frank
-currenciesDisplayName.KZT=Kaza\u017esk\u00fd tenge
-currenciesDisplayName.MZM=Mozambijsk\u00e9 metical
+currenciesDisplayName.LTL=Litevsk\u00e1 lita
+currenciesDisplayName.AON=Angolsk\u00e1 nov\u00e1 kwanza (1990-2000)
 currenciesDisplayName.UYP=Uruguajsk\u00e9 peso (1975-1993)
+currenciesDisplayName.MZM=Mozambijsk\u00e9 metical
+currenciesDisplayName.KZT=Kaza\u017esk\u00fd tenge
 currenciesDisplayName.AOK=Angolsk\u00e1 kwanza (1977-1990)
-currenciesDisplayName.BUK=Burmese Kyat
 currenciesDisplayName.GNS=Guinejsk\u00fd syli
+currenciesDisplayName.BUK=Burmese Kyat
 currenciesDisplayName.XFO=Franc\u00fazsky zlat\u00fd frank
 currenciesDisplayName.PGK=Papua Nov\u00e1 Guinea kina
 currenciesDisplayName.SYP=Syrsk\u00e1 libra
-currenciesDisplayName.MZE=Mozambijsk\u00e9 eskudo
 currenciesDisplayName.OMR=Om\u00e1nsk\u00fd rial
-currenciesDisplayName.NGN=Nigersk\u00e1 naira
+currenciesDisplayName.MZE=Mozambijsk\u00e9 eskudo
 currenciesDisplayName.ZRN=Zairsk\u00fd nov\u00fd zaire
-currenciesDisplayName.AOA=Angolsk\u00e1 kwanza
+currenciesDisplayName.NGN=Nigersk\u00e1 naira
 currenciesDisplayName.CNY=\u010c\u00ednsky Yuan Renminbi
+currenciesDisplayName.AOA=Angolsk\u00e1 kwanza
 currenciesDisplayName.MAF=Marock\u00fd frank
+currenciesDisplayName.RSD=Srbsk\u00fd din\u00e1r
 currenciesDisplayName.GNF=Guinejsk\u00fd frank
-currenciesDisplayName.HTG=Haitsk\u00e9 gourde
 currenciesDisplayName.MAD=Marock\u00fd dirham
+currenciesDisplayName.HTG=Haitsk\u00e9 gourde
+currenciesDisplayName.TRY=Nov\u00e1 tureck\u00e1 l\u00edra
 currenciesDisplayName.MMK=Myanmarsk\u00fd kyat
 currenciesDisplayName.MYR=Malajsk\u00fd ringgit
 currenciesDisplayName.LSL=Lesothsk\u00fd loti
-currenciesDisplayName.BHD=Bahraisk\u00fd din\u00e1r
 currenciesDisplayName.SLL=Sierra Leone Leone
+currenciesDisplayName.BHD=Bahraisk\u00fd din\u00e1r
 currenciesDisplayName.BTN=Bhutansky ngultrum
 currenciesDisplayName.TRL=Tureck\u00e1 lira
 currenciesDisplayName.KMF=Comoro frank
-currenciesDisplayName.ANG=Nizozemsk\u00fd Antilsk\u00fd guilder
 currenciesDisplayName.CZK=\u010cesk\u00e1 koruna
+currenciesDisplayName.ANG=Nizozemsk\u00fd Antilsk\u00fd guilder
 currenciesDisplayName.AZM=Azerbaid\u017eansk\u00fd manat
 currenciesDisplayName.KYD=Kajmansk\u00fd dol\u00e1r
 currenciesDisplayName.GMD=Gambsk\u00fd dalasi
 currenciesDisplayName.BGN=Bulharsk\u00fd leva nov\u00fd
-currenciesDisplayName.CAD=Kanadsk\u00fd dol\u00e1r
 currenciesDisplayName.MXV=Mexick\u00e9 Unidad de Inversion (UDI)
+currenciesDisplayName.CAD=Kanadsk\u00fd dol\u00e1r
 currenciesDisplayName.BGL=Bulharsk\u00fd leva
 currenciesDisplayName.VEB=Venezuelsk\u00fd bolivar
 currenciesDisplayName.MLF=Malsk\u00fd frank
-currenciesDisplayName.ILS=Izraelsk\u00fd \u0161ekel
 currenciesDisplayName.MXP=Mexick\u00e9 striborn\u00e9 peso (1861-1992)
+currenciesDisplayName.ILS=Izraelsk\u00fd \u0161ekel
 currenciesDisplayName.PES=Peruvsk\u00fd sol
-currenciesDisplayName.GYD=Guyansk\u00fd dol\u00e1r
 currenciesDisplayName.MXN=Mexick\u00e9 peso
+currenciesDisplayName.GYD=Guyansk\u00fd dol\u00e1r
 currenciesDisplayName.ILP=Izraelsk\u00e1 libra
-currenciesDisplayName.SKK=Slovensk\u00e1 koruna
 currenciesDisplayName.CYP=Cyprusk\u00e1 libra
+currenciesDisplayName.SKK=Slovensk\u00e1 koruna
 currenciesDisplayName.XDR=\u0160peci\u00e1lne pr\u00e1va \u010derpania
 currenciesDisplayName.PEN=Peruvsk\u00fd sol Nuevo
 currenciesDisplayName.LRD=Lib\u00e9rsk\u00fd dol\u00e1r
@@ -133,15 +136,15 @@ currenciesDisplayName.PEI=Peruvsk\u00fd inti
 currenciesDisplayName.AMD=Armensk\u00fd dram
 currenciesDisplayName.BSD=Bahamsk\u00fd dol\u00e1r
 currenciesDisplayName.HRK=Chorv\u00e1tska kuna
-currenciesDisplayName.CLP=\u010c\u00edlske peso
 currenciesDisplayName.HRD=Chorv\u00e1tsky din\u00e1r
+currenciesDisplayName.CLP=\u010c\u00edlske peso
 currenciesDisplayName.XPF=CFP frank
 currenciesDisplayName.FRF=Franc\u00fazsky frank
 currenciesDisplayName.BRR=Braz\u00edlske cruzeiro
 currenciesDisplayName.MKD=Maced\u00f3nsky den\u00e1r
 currenciesDisplayName.CLF=\u010c\u00edlske Unidades de Fomento
-currenciesDisplayName.ALL=Alb\u00e1nsky lek
 currenciesDisplayName.BRN=Braz\u00edlske Cruzado Novo
+currenciesDisplayName.ALL=Alb\u00e1nsky lek
 currenciesDisplayName.MWK=Malavsk\u00e1 kwacha
 currenciesDisplayName.BRL=Boliv\u00edjsky real
 currenciesDisplayName.TPE=Timorsk\u00e9 eskudo
@@ -161,15 +164,16 @@ currenciesDisplayName.SIT=Slovinsk\u00fd Tolar
 currenciesDisplayName.JPY=Japonsk\u00fd yen
 currenciesDisplayName.XOF=CFA frank BCEAO
 currenciesDisplayName.MVR=Maldivsk\u00e1 rufiyaa
-currenciesDisplayName.GWE=Portugalsk\u00e1 Guinea eskudo
 currenciesDisplayName.BEF=Belgick\u00fd frank
+currenciesDisplayName.GWE=Portugalsk\u00e1 Guinea eskudo
 currenciesDisplayName.TOP=Tonga Pa\u02bbanga
-currenciesDisplayName.YUD=Juhosl\u00e1vsky din\u00e1r
+currenciesDisplayName.YUD=Juhosl\u00e1vsky din\u00e1r [YUD]
 currenciesDisplayName.BEC=Belgick\u00fd frank (konvertibiln\u00fd)
 currenciesDisplayName.SUR=Sovietsk\u00fd rube\u013e
+currenciesDisplayName.RON=Rumunsk\u00fd Lei
 currenciesDisplayName.ROL=Rumunsk\u00fd leu
-currenciesDisplayName.DDM=V\u00fdchodonemeck\u00e1 marka
 currenciesDisplayName.BDT=Banglad\u00e9\u0161ska taka
+currenciesDisplayName.DDM=V\u00fdchodonemeck\u00e1 marka
 currenciesDisplayName.AWG=Arubsk\u00fd guilder
 currenciesDisplayName.NOK=N\u00f3rksy krone
 currenciesDisplayName.MUR=Mauritsk\u00e1 rupia
@@ -191,31 +195,32 @@ currenciesDisplayName.UGS=Ugandan \u0161iling (1966-1987)
 currenciesDisplayName.STD=Sao Tome a Principe dobra
 currenciesDisplayName.WST=Z\u00e1padn\u00e1 Samoa tala
 currenciesDisplayName.KHR=Kambod\u017esk\u00fd riel
-currenciesDisplayName.EUR=Euro
 currenciesDisplayName.DOP=Dominik\u00e1nske peso
+currenciesDisplayName.EUR=Euro
 currenciesDisplayName.BOV=Boliv\u00edjske mvdol
 currenciesDisplayName.MTP=Maltsk\u00e1 libra
 currenciesDisplayName.USS=US dol\u00e1r (Same day)
 currenciesDisplayName.BOP=Boliv\u00edjske peso
-currenciesDisplayName.MTL=Maltsk\u00e1 lira
 currenciesDisplayName.CUP=Kub\u00e1nske peso
+currenciesDisplayName.MTL=Maltsk\u00e1 lira
 currenciesDisplayName.TMM=Turkm\u00e9nsky manat
 currenciesDisplayName.USN=US dol\u00e1r (Next day)
 currenciesDisplayName.SGD=Singap\u00farsky dol\u00e1r
 currenciesDisplayName.NZD=Novoz\u00e9landsk\u00fd dol\u00e1r
 currenciesDisplayName.USD=US dol\u00e1r
+currenciesDisplayName.BOB=Bol\u00edvijsk\u00e9 Boliviano
 currenciesDisplayName.HNL=Hodurask\u00e1 lempira
 currenciesDisplayName.ITL=Taliansk\u00e1 lira
 currenciesDisplayName.PAB=Panamsk\u00e1 balboa
 currenciesDisplayName.GTQ=Guatemalsk\u00fd quetzal
-currenciesDisplayName.LAK=Laosk\u00fd kip
-currenciesDisplayName.GHC=Ghansk\u00fd cedi
 currenciesDisplayName.AUD=Austr\u00e1lsky dol\u00e1r
+currenciesDisplayName.GHC=Ghansk\u00fd cedi
+currenciesDisplayName.LAK=Laosk\u00fd kip
 currenciesDisplayName.NAD=Namibsk\u00fd dol\u00e1r
 currenciesDisplayName.KGS=Kyrgysk\u00fd som
 currenciesDisplayName.MGF=Madagaskarsk\u00fd frank
-currenciesDisplayName.CHF=\u0160vaj\u010diarsk\u00fd frank
 currenciesDisplayName.BBD=Barbadosk\u00fd dol\u00e1r
+currenciesDisplayName.CHF=\u0160vaj\u010diarsk\u00fd frank
 currenciesDisplayName.MGA=Madagaskarsk\u00fd ariary
 currenciesDisplayName.PYG=Paraguaysk\u00e9 guarani
 currenciesDisplayName.PLZ=Polsk\u00fd zloty (1950-1995)
@@ -223,15 +228,15 @@ currenciesDisplayName.YER=Jemensk\u00fd rial
 currenciesDisplayName.ATS=Rak\u00fasky \u0161iling
 currenciesDisplayName.ETB=Ethiopsk\u00fd birr
 currenciesDisplayName.BND=Bruneisk\u00fd dol\u00e1r
-currenciesDisplayName.JMD=Jamajsk\u00fd dol\u00e1r
 currenciesDisplayName.EGP=Egyptsk\u00e1 libra
+currenciesDisplayName.JMD=Jamajsk\u00fd dol\u00e1r
 currenciesDisplayName.PLN=Polsk\u00fd zloty
 currenciesDisplayName.DZD=Al\u017e\u00edrsky din\u00e1r
 currenciesDisplayName.ISK=Islandsk\u00e1 krona
 currenciesDisplayName.SRG=Surinamsk\u00fd guilder
 currenciesDisplayName.LYD=Libyjsk\u00fd din\u00e1r
-currenciesDisplayName.BZD=Belize dol\u00e1r
 currenciesDisplayName.BAM=Bosniansk\u00fd konvertibiln\u00e1 marka
+currenciesDisplayName.BZD=Belize dol\u00e1r
 currenciesDisplayName.ESP=\u0160panielsk\u00e1 peseta
 currenciesDisplayName.KRW=Juhok\u00f3rejsk\u00fd won
 currenciesDisplayName.NLG=Nizozemsk\u00fd guilder
@@ -244,31 +249,30 @@ currenciesDisplayName.BYR=Belarussian rube\u013e
 currenciesDisplayName.IRR=Ir\u00e1nsky rial
 currenciesDisplayName.PKR=Pakistansk\u00e1 rupia
 currenciesDisplayName.BMD=Bermudsk\u00fd dol\u00e1r
-currenciesSymbol.BGL=lev
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
@@ -286,27 +290,26 @@ currenciesSymbol.FJD=F$
 currenciesSymbol.UYU=Ur$
 currenciesSymbol.BDT=Tk
 currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
 currenciesSymbol.DJF=DF
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
 currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
 currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -315,8 +318,8 @@ currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
 currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.CNY=Y
 currenciesSymbol.KMF=CF
@@ -330,10 +333,10 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.ANG=NA f.
@@ -342,13 +345,12 @@ currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=jan®feb®mar®apr®m\u00e1j®j\u00fan®j\u00fal®aug®sep®okt®nov®dec®®
-months=janu\u00e1r®febru\u00e1r®marec®apr\u00edl®m\u00e1j®j\u00fan®j\u00fal®august®september®okt\u00f3ber®november®december®®
-shortWeekdays=®Ne®Po®Ut®St®\u0160t®Pi®So®
-weekdays=®Nede\u013ea®Pondelok®Utorok®Streda®\u0160tvrtok®Piatok®Sobota®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=pred n.l.®n.l.®
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aem\u00e1j\u00aej\u00fan\u00aej\u00fal\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=janu\u00e1ra\u00aefebru\u00e1ra\u00aemarca\u00aeapr\u00edla\u00aem\u00e1ja\u00aej\u00fana\u00aej\u00fala\u00aeaugusta\u00aeseptembra\u00aeokt\u00f3bra\u00aenovembra\u00aedecembra\u00ae\u00ae
+shortWeekdays=\u00aeNe\u00aePo\u00aeUt\u00aeSt\u00ae\u0160t\u00aePi\u00aeSo\u00ae
+weekdays=\u00aeNede\u013ea\u00aePondelok\u00aeUtorok\u00aeStreda\u00ae\u0160tvrtok\u00aePiatok\u00aeSobota\u00ae
+eras=pred n.l.\u00aen.l.\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=d.M.yyyy
 mediumDateFormat=d.M.yyyy
 longDateFormat=d. MMMM yyyy
@@ -379,12 +381,13 @@ territories.GN=Guinea
 territories.GM=Gambia
 territories.GL=Gr\u00f3nsko
 territories.SV=Salvador
-territories.062=Ju\u017en\u00e1 \u00c1zia
+territories.062=Stredn\u00e1 a ju\u017en\u00e1 \u00c1zia
 territories.ST=Sv\u00e4t\u00fd Tom\u00e1\u0161 a Princove ostrovy
-territories.061=Polyn\u00e9zia
 territories.GI=Gibralt\u00e1r
+territories.061=Polyn\u00e9zia
 territories.GH=Ghana
 territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Franc\u00fazska Guayana
 territories.GE=Gruz\u00ednsko
 territories.SO=Som\u00e1lsko
@@ -405,26 +408,27 @@ territories.SC=Seychelsk\u00e9 ostrovy
 territories.SB=\u0160alam\u00fanove ostrovy
 territories.SA=Saudsk\u00e1 Ar\u00e1bia
 territories.FR=Franc\u00fazsko
-territories.057=Mikron\u00e9sia
 territories.FO=Faersk\u00e9 ostrovy
+territories.057=Mikron\u00e9sia
 territories.FM=Mikron\u00e9zia, Federat\u00edvne \u0161t\u00e1ty
 territories.RW=Rwanda
 territories.054=Melan\u00e9zia
-territories.053=Austr\u00e1lia a Nov\u00fd Z\u00e9land
 territories.FK=Falklandsk\u00e9 ostrovy
+territories.053=Austr\u00e1lia a Nov\u00fd Z\u00e9land
 territories.RU=Rusk\u00e1 feder\u00e1cia
 territories.FJ=Fid\u017ei
 territories.FI=F\u00ednsko
+territories.RS=Srbsko
 territories.RO=Rumunsko
 territories.RE=Reunion
 territories.ET=Eti\u00f3pia
 territories.ES=\u0160panielsko
 territories.ER=Eritrea
-territories.833=Ostrov Man
+territories.QU=Eur\u00f3pska \u00fania
 territories.EH=Z\u00e1padn\u00e1 Sahara
 territories.EG=Egypt
-territories.830=Kan\u00e1l La Manche
 territories.EE=Est\u00f3nsko
+territories.830=Kan\u00e1l La Manche
 territories.QO=Tichomorie - ostatn\u00e9
 territories.EC=Ekv\u00e1dor
 territories.DZ=Al\u017e\u00edrsko
@@ -432,9 +436,10 @@ territories.QA=Katar
 territories.039=Ju\u017en\u00e1 Eur\u00f3pa
 territories.DO=Dominik\u00e1nska republika
 territories.PY=Paraguaj
-territories.035=Juhov\u00fdchodn\u00e1 \u00c1zia
 territories.DM=Dominika
+territories.035=Juhov\u00fdchodn\u00e1 \u00c1zia
 territories.PW=Palau
+territories.034=Ju\u017en\u00e1 \u00c1zia
 territories.DK=D\u00e1nsko
 territories.DJ=D\u017eibuti
 territories.PT=Portugalsko
@@ -464,8 +469,8 @@ territories.CN=\u010c\u00edna
 territories.CM=Kamerun
 territories.CL=\u010cile
 territories.CK=Cookove ostrovy
-territories.CI=Pobre\u017eie Slonoviny
 territories.021=Severn\u00e1 Amerika
+territories.CI=Pobre\u017eie Slonoviny
 territories.CH=\u0160vaj\u010diarsko
 territories.CG=Kongo
 territories.CF=Stredoafrick\u00e1 republika
@@ -473,6 +478,7 @@ territories.CD=Kon\u017esk\u00e1 demokratick\u00e1 republika
 territories.CC=Kokosov\u00e9 (Keelingove) ostrovy
 territories.OM=Om\u00e1n
 territories.CA=Kanada
+territories.419=Latinsk\u00e1 Amerika a Karibik
 territories.BZ=Belize
 territories.BY=Bielorusko
 territories.BW=Botswana
@@ -481,25 +487,28 @@ territories.BT=But\u00e1n
 territories.BS=Bahamy
 territories.BR=Braz\u00edlia
 territories.019=Americk\u00fd kontinent
-territories.018=Ju\u017en\u00e1 Afrika
+territories.018=Ju\u017en\u00e1 Afrika [018]
 territories.NZ=Nov\u00fd Z\u00e9land
-territories.BO=Bol\u00edvia
 territories.017=Stredn\u00e1 Afrika
+territories.BO=Bol\u00edvia
 territories.BN=Brunej
-territories.BM=Bermudy
 territories.015=Severn\u00e1 Afrika
+territories.BM=Bermudy
 territories.014=V\u00fdchodn\u00e1 Afrika
+territories.BL=Sv\u00e4t\u00fd Bartolomej
 territories.013=Stredn\u00e1 Amerika
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Z\u00e1padn\u00e1 Afrika
+territories.BI=Burundi
+territories.172=Spolo\u010denstvo nez\u00e1visl\u00fdch \u0161t\u00e1tov
 territories.BH=Bahrajn
 territories.NR=Nauru
 territories.BG=Bulharsko
 territories.BF=Burkina Faso
 territories.NP=Nep\u00e1l
 territories.BE=Belgicko
+territories.ZZ=Nezn\u00e1my alebo neplatn\u00fd regi\u00f3n
 territories.NO=N\u00f3rsko
 territories.BD=Banglad\u00e9\u0161
 territories.BB=Barbados
@@ -521,23 +530,25 @@ territories.AT=Rak\u00fasko
 territories.AS=Americk\u00e1 Samoa
 territories.AR=Argent\u00edna
 territories.AQ=Antarctica
+territories.009=Oce\u00e1nia
 territories.MZ=Mozambik
-territories.200=\u010ceskoslovensko
 territories.AO=Angola
+territories.200=\u010ceskoslovensko
 territories.MY=Malajzia
 territories.AN=Holandsk\u00e9 Antily
 territories.MX=Mexiko
-territories.005=Ju\u017en\u00e1 Amerika
 territories.AM=Arm\u00e9nsko
+territories.005=Ju\u017en\u00e1 Amerika
 territories.MW=Malawi
 territories.AL=Alb\u00e1nsko
 territories.MV=Maldivy
+territories.003=Severn\u00e1 Amerika
 territories.ZA=Ju\u017en\u00e1 Afrika
 territories.MU=Maur\u00edcius
 territories.002=Afrika
 territories.MT=Malta
-territories.001=Svet
 territories.AI=Anguilla
+territories.001=Svet
 territories.MS=Montserrat
 territories.MR=Maurit\u00e1nia
 territories.AG=Antigua a Barbados
@@ -545,7 +556,7 @@ territories.MQ=Martinik
 territories.AF=Afganistan
 territories.MP=Severn\u00e9 Mari\u00e1ny
 territories.AE=Spojen\u00e9 arabsk\u00e9 emir\u00e1ty
-territories.MO=Makao S.A.R. \u010c\u00edny
+territories.MO=Macao
 territories.AD=Andorra
 territories.MN=Mongolsko
 territories.MM=Mjanmarsko
@@ -554,6 +565,8 @@ territories.MK=Maced\u00f3nsko, republika
 territories.YT=Mayotte
 territories.MH=Marshallove ostrovy
 territories.MG=Madagaskar
+territories.MF=Sv\u00e4t\u00fd Martin
+territories.ME=\u010cierna Hora
 territories.MD=Moldavsko, republika
 territories.MC=Monako
 territories.MA=Maroko
@@ -577,6 +590,7 @@ territories.KZ=Kazachstan
 territories.KY=Kajmansk\u00e9 ostrovy
 territories.KW=Kuvajt
 territories.145=Z\u00e1padn\u00e1 \u00c1zia
+territories.143=Stredn\u00e1 \u00c1zia
 territories.142=\u00c1zia
 territories.KR=K\u00f3rea, Ju\u017en\u00e1
 territories.KP=K\u00f3rea, Severn\u00e1
@@ -592,12 +606,13 @@ territories.JP=Japonsko
 territories.JO=Jord\u00e1nsko
 territories.JM=Jamajka
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=Panensk\u00e9 ostrovy - USA
 territories.VG=Britsk\u00e9 panensk\u00e9 ostrovy
 territories.VE=Venezuela
 territories.VC=Sv\u00e4t\u00fd Vincent a Grenad\u00edny
-territories.VA=Sv\u00e4t\u00e1 stolica (Vatik\u00e1nsky mestsk\u00fd \u0161t\u00e1t)
+territories.VA=Sv\u00e4t\u00fd stolec (Vatik\u00e1nsky mestsk\u00fd \u0161t\u00e1t)
 territories.IT=Taliansko
 territories.IS=Island
 territories.IR=Ir\u00e1n
@@ -606,6 +621,7 @@ territories.UZ=Uzbekistan
 territories.IO=Britsk\u00e9 \u00fazemie v Indickom oce\u00e1ne
 territories.UY=Uruguaj
 territories.IN=India
+territories.IM=Ostrov Man
 territories.IL=Izrael
 territories.US=Spojen\u00e9 \u0161t\u00e1ty
 territories.IE=\u00cdrsko
@@ -621,39 +637,166 @@ territories.HN=Honduras
 territories.HM=Heardove ostrovy a McDonaldove ostrovy
 territories.TW=Tajwan
 territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R. \u010c\u00edny
+territories.HK=Hong Kong
 territories.TT=Trinidad a Tobago
 territories.TR=Turecko
 territories.TO=Tonga
 territories.TN=Tunisko
 territories.TM=Turkm\u00e9nsko
+languages.lb=luxemburgsk\u00fd
+languages.la=latinsk\u00fd
+languages.xh=xhosky
+languages.ky=kyrgyzsk\u00fd
+languages.ku=kurdsk\u00fd
+languages.ko=k\u00f3rejsk\u00fd
+languages.kn=kanadsk\u00fd
+languages.km=kambod\u017esk\u00fd
+languages.ira=ir\u00e1nsky jazyk
+languages.kg=kon\u017esk\u00fd
+languages.en_GB=anglick\u00fd (Ve\u013ek\u00e1 Brit\u00e1nia)
+languages.grc=starogr\u00e9cky
+languages.wo=wolof
+languages.art=umel\u00fd jazyk
+languages.ka=gruz\u00ednsky
+languages.gem=germ\u00e1nsky jazyk
+languages.jv=javansk\u00fd
+languages.wa=val\u00f3nsky
+languages.cel=keltsk\u00fd jazyk
+languages.scn=sic\u00edlsky
 languages.ja=japonsk\u00fd
-languages.en=anglick\u00fd
+languages.vi=vietnamsk\u00fd
+languages.it=taliansky
+languages.is=islandsk\u00fd
+languages.uz=uzbeck\u00fd
+languages.ur=urd\u0161tina
+languages.ie=interlingue
+languages.id=indon\u00e9zsky
+languages.ia=interlingua
+languages.uk=ukrajinsk\u00fd
+languages.ug=uighursky
+languages.fiu=ugrof\u00ednsky jazyk
+languages.und=nezn\u00e1my alebo neplatn\u00fd jazyk
+languages.hy=arm\u00e9nsky
+languages.got=gotick\u00fd
+languages.hu=ma\u010farsk\u00fd
+languages.ht=haitsk\u00fd
+languages.hr=chorv\u00e1tsky
+languages.fil=filip\u00ednsky
+languages.ty=tahitsk\u00fd
+languages.tw=twisky
+languages.tt=tat\u00e1rsky
+languages.hi=hind\u0161tina
 languages.tr=tureck\u00fd
-languages.ko=k\u00f3rejsk\u00fd
-languages.no=n\u00f3rsky
-languages.el=gr\u00e9cky
-languages.nl=holandsk\u00fd
-languages.bg=bulharsk\u00fd
-languages.lv=loty\u0161sk\u00fd
-languages.cs=\u010desk\u00fd
 languages.he=hebrejsk\u00fd
-languages.it=taliansky
-languages.lt=litovsk\u00fd
-languages.fr=franc\u00fazsky
-languages.zh=\u010d\u00ednsky
-languages.ru=rusk\u00fd
-languages.ro=rumunsk\u00fd
-languages.fi=f\u00ednsky
-languages.ar=arabsk\u00fd
+languages.sai=jazyk juhoamerick\u00fdch indi\u00e1nov
+languages.tl=tagalog\u010dina
+languages.tk=turkm\u00e9nsky
+languages.ti=tigrinyjsk\u00fd
+languages.th=thajsk\u00fd
+languages.tg=tad\u017eidsk\u00fd
+languages.te=telugsky
+languages.syr=s\u00fdrsky
+languages.ta=tamilsk\u00fd
+languages.gu=gud\u017earatsky
+languages.ine=indoeur\u00f3psky jazyk
+languages.gn=guaransky
+languages.sw=swahilsky
+languages.gl=galicijsky
 languages.sv=\u0161v\u00e9dsky
-languages.pt=portugalsk\u00fd
-languages.pl=po\u013esk\u00fd
+languages.su=sundsky
+languages.st=sesothsky
+languages.sr=srbsk\u00fd
+languages.sq=alb\u00e1nsky
+languages.so=som\u00e1lsky
+languages.gd=\u0161k\u00f3tskou gael\u0161tinou
 languages.sl=slovinsk\u00fd
+languages.ga=\u00edrsky
 languages.sk=slovensk\u00fd
-languages.de=nemeck\u00fd
+languages.si=sinhal\u00e9zsky
+languages.sh=srbochorv\u00e1tsky
+languages.myn=jazyk mayov
+languages.fy=frizijsky
+languages.sd=sindhsky
+languages.cau=kaukazsk\u00fd jazyk
+languages.sa=sanskrtom
+languages.car=karibsk\u00fd
+languages.fr=franc\u00fazsky
+languages.sla=slovansk\u00fd jazyk
+languages.fo=faersky
+languages.ru=rusk\u00fd
+languages.cai=jazyk stredoamerick\u00fdch indi\u00e1nov
+languages.fi=f\u00ednsky
+languages.ro=rumunsk\u00fd
+languages.rm=r\u00e9torom\u00e1nsky
+languages.fa=perzsk\u00fd
+languages.eu=baskick\u00fd
 languages.et=est\u00f3nsky
-languages.hu=ma\u010farsk\u00fd
 languages.es=\u0161panielsky
+languages.eo=esperantsky
+languages.en=anglick\u00fd
+languages.el=gr\u00e9cky
+languages.pt=portugalsk\u00fd
+languages.ber=berbersk\u00fd
+languages.ps=pa\u0161t\u00fansky
+languages.de=nemeck\u00fd
+languages.pl=po\u013esk\u00fd
 languages.da=d\u00e1nsky
-languages.hr=chorv\u00e1tsky
+languages.sux=sumersk\u00fd
+languages.cy=walesky
+languages.akk=akadsk\u00fd
+languages.pa=pand\u017e\u00e1bsky
+languages.cs=\u010desk\u00fd
+languages.or=urijsk\u00fd
+languages.ce=\u010de\u010densk\u00fd
+languages.ca=katal\u00e1nsky
+languages.oc=okcit\u00e1nsky
+languages.bs=bosniansky
+languages.br=bret\u00f3nsky
+languages.bo=tibetsk\u00fd
+languages.zh_Hans=\u010d\u00edn\u0161tina (zjednodu\u0161en\u00e1)
+languages.bn=beng\u00e1lsky
+languages.zh_Hant=\u010d\u00edn\u0161tina (tradi\u010dn\u00e1)
+languages.nv=jazyk navajov
+languages.bh=biharsk\u00fd
+languages.bg=bulharsk\u00fd
+languages.be=bielorusk\u00fd
+languages.no=n\u00f3rsky
+languages.nn=n\u00f3rsky (nynorsk)
+languages.nl=holandsk\u00fd
+languages.ba=ba\u0161k\u00edrsky
+languages.zu=zulu
+languages.sgn=znakov\u00e1 re\u010d
+languages.ain=ainsk\u00fd
+languages.az=azerbajd\u017eansk\u00fd
+languages.ne=nep\u00e1lsky
+languages.av=avarsk\u00fd
+languages.aus=austr\u00e1lsky jazyk
+languages.as=as\u00e1msky
+languages.ar=arabsk\u00fd
+languages.zh=\u010d\u00ednsky
+languages.zxx=bez jazykov\u00e9ho obsahu
+languages.my=burmsk\u00fd
+languages.am=amharsk\u00fd
+languages.nai=jazyk severoamerick\u00fdch indi\u00e1nov
+languages.paa=papu\u00e1nsky
+languages.mt=maltsk\u00fd
+languages.ms=malajsk\u00fd
+languages.mr=marathsky
+languages.af=africk\u00fd
+languages.haw=havajsk\u00fd
+languages.mn=mongolsk\u00fd
+languages.en_US=anglick\u00fd (USA)
+languages.ab=abch\u00e1zsky
+languages.ml=malajalamsky
+languages.mk=maced\u00f3nsky
+languages.egy=staroegyptsk\u00fd
+languages.tlh=klingonsk\u00fd
+languages.yi=jidi\u0161sky
+languages.gsw=nemeck\u00fd (\u0160vaj\u010diarsko)
+languages.bat=baltsk\u00fd jazyk
+languages.lv=loty\u0161sk\u00fd
+languages.dak=dakotsk\u00fd
+languages.lt=litovsk\u00fd
+languages.ban=balijsk\u00fd
+languages.lo=laosk\u00fd
+languages.ln=lingalsky
index 991615ee159f1e32bd3b2d52e554b63f7cd566d7..e4081e86e9baa3965b687c0ecefec92f870fcdf7 100644 (file)
@@ -5,25 +5,85 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.INR=Indijski Rupi
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.CHF=\u0161vicarski frank
+currenciesDisplayName.AUD=avstralski dolar
+currenciesDisplayName.FJD=fid\u017eijski dolar
 currenciesDisplayName.RUB=Ruska Rublja
-currenciesDisplayName.JPY=Japonski Jen
-currenciesDisplayName.BRL=Brazilski Real
-currenciesDisplayName.CNY=Kitajski Yuan Renminbi
+currenciesDisplayName.CZK=\u010de\u0161ka krona
+currenciesDisplayName.THB=tajski baht
+currenciesDisplayName.SEK=\u0161vedska krona
+currenciesDisplayName.HRK=hrva\u0161ka kuna
+currenciesDisplayName.PLN=poljski novi zlot
+currenciesDisplayName.SKK=slova\u0161ka krona
+currenciesDisplayName.MAD=maro\u0161ki dirham
+currenciesDisplayName.TWD=novi tajvanski dolar
+currenciesDisplayName.XXX=Neznana ali neveljavna valuta
+currenciesDisplayName.MYR=malezijski ringgit
+currenciesDisplayName.HUF=mad\u017earski forint
+currenciesDisplayName.BND=brunejski dolar
+currenciesDisplayName.UAH=ukrajinska grivna
+currenciesDisplayName.INR=Indijski Rupi
+currenciesDisplayName.AED=dirham Zdru\u017eenih Arabskih Emiratov
+currenciesDisplayName.SAR=saudski rial
+currenciesDisplayName.CAD=kanadski dolar
 currenciesDisplayName.USD=Ameri\u0161ki Dolar
+currenciesDisplayName.BGN=bolgarski lev
+currenciesDisplayName.JPY=Japonski Jen
+currenciesDisplayName.GBP=Britanski Funt Sterling
+currenciesDisplayName.PKR=pakistanska rupija
+currenciesDisplayName.PHP=filipinski peso
+currenciesDisplayName.PEN=perujski novi sol
+currenciesDisplayName.FRF=francoski frank
+currenciesDisplayName.NOK=norve\u0161ka krona
 currenciesDisplayName.EUR=Evro
+currenciesDisplayName.HKD=hongkon\u0161ki dolar
+currenciesDisplayName.IDR=indonezijska rupija
+currenciesDisplayName.ZAR=ju\u017enoafri\u0161ki rand
+currenciesDisplayName.SGD=singapurski dolar
+currenciesDisplayName.MXN=mehi\u0161ki peso
+currenciesDisplayName.TRY=nova tur\u0161ka lira
+currenciesDisplayName.CLP=\u010dilski peso
+currenciesDisplayName.COP=kolumbijski peso
+currenciesDisplayName.KRW=ju\u017enokorejski von
 currenciesDisplayName.SIT=Slovenski tolar
-currenciesDisplayName.GBP=Britanski Funt Sterling
-shortMonths=jan®feb®mar®apr®maj®jun®jul®avg®sep®okt®nov®dec®®
-months=januar®februar®marec®april®maj®junij®julij®avgust®september®oktober®november®december®®
-shortWeekdays=®ned®pon®tor®sre®\u010det®pet®sob®
-weekdays=®nedelja®ponedeljek®torek®sreda®\u010detrtek®petek®sobota®
-firstDayOfWeek=mon
-eras=pr.n.\u0161.®n.\u0161.®
-ampms=dop.®pop.®
+currenciesDisplayName.EEK=estonska krona
+currenciesDisplayName.RSD=srbski dinar
+currenciesDisplayName.TRL=tur\u0161ka lira
+currenciesDisplayName.BRL=Brazilski Real
+currenciesDisplayName.DEM=nem\u0161ka marka
+currenciesDisplayName.VEB=venezuelski bolivar
+currenciesDisplayName.ARS=argentinski peso
+currenciesDisplayName.CNY=Kitajski Yuan Renminbi
+currenciesDisplayName.DKK=danska krone
+currenciesDisplayName.MTL=malte\u0161ka lira
+currenciesDisplayName.ILS=izraelski \u0161ekel
+currenciesDisplayName.VND=vientnamski dong
+currenciesDisplayName.BOB=bolivijski boliviano
+currenciesDisplayName.NZD=novozelandski dolar
+currenciesDisplayName.RON=romunski leu
+currenciesDisplayName.KES=kenijski \u0161iling
+currenciesDisplayName.LTL=litovski litas
+currenciesDisplayName.EGP=egiptovski funt
+currenciesSymbol.XXX=XXX
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aeavg\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januar\u00aefebruar\u00aemarec\u00aeapril\u00aemaj\u00aejunij\u00aejulij\u00aeavgust\u00aeseptember\u00aeoktober\u00aenovember\u00aedecember\u00ae\u00ae
+shortWeekdays=\u00aened\u00aepon\u00aetor\u00aesre\u00ae\u010det\u00aepet\u00aesob\u00ae
+weekdays=\u00aenedelja\u00aeponedeljek\u00aetorek\u00aesreda\u00ae\u010detrtek\u00aepetek\u00aesobota\u00ae
+eras=pr.n.\u0161.\u00aepo Kr.\u00ae
+ampms=dop.\u00aepop.\u00ae
 shortDateFormat=d.M.yy
 mediumDateFormat=d.M.yyyy
 longDateFormat=dd. MMMM yyyy
@@ -32,19 +92,20 @@ shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
 longTimeFormat=H:mm:ss z
 fullTimeFormat=H:mm:ss z
+zoneStrings=Europe_Eastern\u00aeVzhodnoevropski \u010das\u00ae\u00aeVzhodnoevropski poletni \u010das\u00ae\u00ae\u00a9Europe_Central\u00aeSrednjeevropski \u010das\u00ae\u00aeSrednjeevropski poletni \u010das\u00ae\u00ae\u00a9
 territories.TL=Vzhodni Timor
 territories.TK=Tokelau
 territories.TJ=Tad\u017eikistan
 territories.TH=Tajska
 territories.TG=Togo
-territories.TF=Francoski ju\u017eni teritorij
+territories.TF=Francosko ju\u017eno ozemlje
 territories.GY=Gvajana
 territories.TD=\u010cad
 territories.TC=Oto\u010dji Turks in Caicos
 territories.GW=Gvineja Bissau
 territories.GU=Guam
 territories.GT=Gvatemala
-territories.GS=Ju\u017ena Georgija in Ju\u017eni Sandwich Islands
+territories.GS=J. Georgija in otoki J. Sandwich
 territories.GR=Gr\u010dija
 territories.GQ=Ekvatorialna Gvineja
 territories.GP=Guadeloupe
@@ -56,50 +117,52 @@ territories.GL=Grenlandija
 territories.SV=Salvador
 territories.062=Ju\u017eno-centralna Azija
 territories.ST=Sao Tome in Principe
-territories.061=Polinezija
 territories.GI=Gibraltar
+territories.061=Polinezija
 territories.GH=Gana
 territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Francoska Gvajana
 territories.GE=Gruzija
 territories.SO=Somalija
 territories.GD=Grenada
 territories.SN=Senegal
 territories.SM=San Marino
-territories.GB=Velika Britanija
+territories.GB=Zdru\u017eeno kraljestvo (V. Britanija in S. Irska)
 territories.SL=Sierra Leone
 territories.GA=Gabon
 territories.SK=Slova\u0161ka
-territories.SJ=Svalbard in Jan Mayen
+territories.SJ=Svalbard in otoki Jan Mayen
 territories.SI=Slovenija
 territories.SH=Sveta Helena
 territories.SG=Singapur
 territories.SE=\u0160vedska
 territories.SD=Sudan
 territories.SC=Sej\u0161eli
-territories.SB=Salomonovo oto\u010dje
+territories.SB=Salomonovi otoki
 territories.SA=Saudova Arabija
 territories.FR=Francija
+territories.FO=Ferski otoki
 territories.057=Micronezija
-territories.FO=Fererski otoki
 territories.FM=Mikronezija
 territories.RW=Ruanda
 territories.054=Melanezija
-territories.053=Avstralija i Nova Zelandija
-territories.FK=Falklandski (Malvinski) otoki
-territories.RU=Ruska federacija
+territories.FK=Falklandsko oto\u010dje
+territories.053=Avstralija in Nova Zelandija
+territories.RU=Rusija
 territories.FJ=Fid\u017ei
 territories.FI=Finska
+territories.RS=Srbija
 territories.RO=Romunija
 territories.RE=Reunion
 territories.ET=Etiopija
 territories.ES=\u0160panija
 territories.ER=Eritreja
-territories.833=Otok Man
+territories.QU=Evropska unija
 territories.EH=Zahodna Sahara
 territories.EG=Egipt
-territories.830=Kanalski otoki
 territories.EE=Estonija
+territories.830=Kanalski otoki
 territories.QO=Ostala oceanija
 territories.EC=Ekvador
 territories.DZ=Al\u017eirija
@@ -107,9 +170,10 @@ territories.QA=Katar
 territories.039=Ju\u017ena Evropa
 territories.DO=Dominikanska republika
 territories.PY=Paragvaj
-territories.035=Jugovzhodna Azija
 territories.DM=Dominika
+territories.035=Jugovzhodna Azija
 territories.PW=Palau
+territories.034=Ju\u017ena Azija
 territories.DK=Danska
 territories.DJ=D\u017eibuti
 territories.PT=Portugalska
@@ -118,7 +182,7 @@ territories.030=Vzhodna Azija
 territories.PR=Portoriko
 territories.DE=Nem\u010dija
 territories.PN=Pitcairn
-territories.PM=Saint Pierre in Miquelon
+territories.PM=St. Pierre in Miquelon
 territories.PL=Poljska
 territories.PK=Pakistan
 territories.PH=Filipini
@@ -139,8 +203,8 @@ territories.CN=Kitajska
 territories.CM=Kamerun
 territories.CL=\u010cile
 territories.CK=Cookovi otoki
-territories.CI=Slonoko\u0161\u010dena obala
 territories.021=Severna Amerika
+territories.CI=Slonoko\u0161\u010dena obala
 territories.CH=\u0160vica
 territories.CG=Kongo
 territories.CF=Centralnoafri\u0161ka republika
@@ -148,33 +212,36 @@ territories.CD=Demokrati\u010dna republika Kongo
 territories.CC=Kokosovi otoki
 territories.OM=Oman
 territories.CA=Kanada
+territories.419=Latinska Amerika in Karibsko oto\u010dje
 territories.BZ=Belize
 territories.BY=Belorusija
 territories.BW=Bocvana
-territories.BV=Otok Bouvet
+territories.BV=Bouvetov otok
 territories.BT=Butan
 territories.BS=Bahami
 territories.BR=Brazilija
 territories.019=Amerike
 territories.018=Ju\u017ena Afrika
 territories.NZ=Nova Zelandija
-territories.BO=Bolivija
 territories.017=Centralna Afrika
+territories.BO=Bolivija
 territories.BN=Brunej
-territories.BM=Bermuda
 territories.015=Severna Afrika
+territories.BM=Bermudi
 territories.014=Vzhodna Afrika
-territories.013=Centralna Amerika
+territories.013=Srednja Amerika
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Zahodna Afrika
+territories.BI=Burundi
+territories.172=Skupnost neodvisnih dr\u017eav
 territories.BH=Bahrajn
 territories.NR=Nauru
 territories.BG=Bolgarija
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgija
+territories.ZZ=Neznana ali neveljavna regija
 territories.NO=Norve\u0161ka
 territories.BD=Banglade\u0161
 territories.BB=Barbados
@@ -183,10 +250,10 @@ territories.NL=Nizozemska
 territories.BA=Bosna in Hercegovina
 territories.NI=Nikaragva
 territories.NG=Nigerija
-territories.NF=Otok Norfolk
+territories.NF=Norfol\u0161ki otok
 territories.AZ=Azerbajd\u017ean
 territories.NE=Niger
-territories.AX=Alandski otoki
+territories.AX=Oto\u010dje Aland
 territories.NC=Nova Kaledonija
 territories.AW=Aruba
 territories.ZM=Zambija
@@ -195,15 +262,15 @@ territories.AU=Avstralija
 territories.AT=Avstrija
 territories.AS=Ameri\u0161ka Samoa
 territories.AR=Argentina
-territories.009=Oceanija
 territories.AQ=Antarktika
+territories.009=Oceanija
 territories.MZ=Mozambik
 territories.AO=Angola
 territories.MY=Malezija
 territories.AN=Nizozemski Antili
 territories.MX=Mehika
-territories.005=Ju\u017ena Amerika
 territories.AM=Armenija
+territories.005=Ju\u017ena Amerika
 territories.MW=Malavi
 territories.AL=Albanija
 territories.MV=Maldivi
@@ -211,8 +278,8 @@ territories.ZA=Ju\u017ena Afrika
 territories.MU=Mauritius
 territories.002=Afrika
 territories.MT=Malta
-territories.001=Svet
 territories.AI=Angvila
+territories.001=Svet
 territories.MS=Montserrat
 territories.MR=Mavretanija
 territories.AG=Antigva in Barbuda
@@ -223,19 +290,20 @@ territories.AE=Zdru\u017eeni arabski emirati
 territories.MO=Makao S.A.R. Kitajske
 territories.AD=Andora
 territories.MN=Mongolija
-territories.MM=Myanmar
+territories.MM=Mjanmar
 territories.ML=Mali
 territories.MK=Republika Makedonija
 territories.YT=Mayotte
 territories.MH=Marshallovi otoki
 territories.MG=Madagaskar
-territories.MD=Republika Moldova
+territories.ME=\u010crna gora
+territories.MD=Moldavija
 territories.MC=Monako
 territories.MA=Maroko
 territories.YE=Jemen
 territories.LY=Libija
 territories.LV=Latvija
-territories.155=Zapadna Evropa
+territories.155=Zahodna Evropa
 territories.LU=Luxemburg
 territories.154=Severna Evropa
 territories.LT=Litva
@@ -244,7 +312,7 @@ territories.LR=Liberija
 territories.151=Vzhodna Evropa
 territories.150=Evropa
 territories.LK=\u0160rilanka
-territories.LI=Liechtenstein
+territories.LI=Lihten\u0161tajn
 territories.LC=Saint Lucia
 territories.LB=Libanon
 territories.LA=Ljudska demokrati\u010dna republika Laos
@@ -252,6 +320,7 @@ territories.KZ=Kazahstan
 territories.KY=Kajmanski otoki
 territories.KW=Kuvajt
 territories.145=Zahodna Azija
+territories.143=Osrednja Azija
 territories.142=Azija
 territories.KR=Ju\u017ena Koreja
 territories.KP=Severna Koreja
@@ -264,12 +333,13 @@ territories.KG=Kirgizistan
 territories.KE=Kenija
 territories.WF=Wallis in Futuna
 territories.JP=Japonska
-territories.JO=Jordan
+territories.JO=Jordanija
 territories.JM=Jamajka
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
-territories.VI=Ameri\u0161ki Devi\u0161ki otoki
-territories.VG=Britanski Devi\u0161ki otoki
+territories.VI=Devi\u0161ki otoki (ZDA)
+territories.VG=Devi\u0161ki otoki (britanski)
 territories.VE=Venezuela
 territories.VC=Saint Vincent in Grenadine
 territories.VA=Vatikan
@@ -278,14 +348,15 @@ territories.IS=Islandija
 territories.IR=Iran
 territories.IQ=Irak
 territories.UZ=Uzbekistan
-territories.IO=Britanska Indija
+territories.IO=Britanski teritorij Indijskega oceana
 territories.UY=Urugvaj
 territories.IN=Indija
+territories.IM=Otok Man
 territories.IL=Izrael
 territories.US=Zdru\u017eene dr\u017eave Amerike
 territories.IE=Irska
 territories.ID=Indonezija
-territories.UM=Ameri\u0161ki manj\u0161i oddaljeni otoki
+territories.UM=Druga ameri\u0161ka ozemlja v Tihem oceanu
 territories.UG=Uganda
 territories.UA=Ukrajina
 territories.HU=Mad\u017earska
@@ -293,7 +364,7 @@ territories.HT=Haiti
 territories.HR=Hrva\u0161ka
 territories.TZ=Tanzanija
 territories.HN=Honduras
-territories.HM=Heardov otok in McDonaldovi otoki
+territories.HM=Otoka Heard in Mc Donald
 territories.TW=Tajvan
 territories.TV=Tuvalu
 territories.HK=Hong Kong S.A.R. Kitajske
@@ -302,34 +373,125 @@ territories.TR=Tur\u010dija
 territories.TO=Tonga
 territories.TN=Tunizija
 territories.TM=Turkmenistan
-languages.ja=Japon\u0161\u010dina
-languages.en=Angle\u0161\u010dina
-languages.tr=Tur\u0161\u010dina
-languages.ko=Korej\u0161\u010dina
-languages.no=Norve\u0161\u010dina
-languages.el=Gr\u0161\u010dina
-languages.nl=Nizozem\u0161\u010dina
-languages.bg=Bolgar\u0161\u010dina
-languages.hi=Hinduj\u0161\u010dina
-languages.lv=Leton\u0161\u010dina
-languages.cs=\u010ce\u0161\u010dina
-languages.he=Hebrej\u0161\u010dina
-languages.it=Italijan\u0161\u010dina
-languages.lt=Litov\u0161\u010dina
-languages.fr=Franco\u0161\u010dina
-languages.zh=Kitaj\u0161\u010dina
-languages.ru=Ru\u0161\u010dina
-languages.ro=Romun\u0161\u010dina
-languages.fi=Fin\u0161\u010dina
-languages.ar=Arab\u0161\u010dina
-languages.sv=\u0160ved\u0161\u010dina
-languages.pt=Portugal\u0161\u010dina
-languages.pl=Polj\u0161\u010dina
-languages.sl=Sloven\u0161\u010dina
-languages.sk=Slova\u0161\u010dina
-languages.de=Nem\u0161\u010dina
-languages.et=Eston\u0161\u010dina
-languages.hu=Mad\u017ear\u0161\u010dina
-languages.es=\u0160pan\u0161\u010dina
-languages.da=Dan\u0161\u010dina
-languages.hr=Hrva\u0161\u010dina
+languages.es=\u0161pan\u0161\u010dina
+languages.ku=kurd\u0161\u010dina
+languages.eo=esperanto
+languages.ks=ka\u0161mir\u0161\u010dina
+languages.en=angle\u0161\u010dina
+languages.el=gr\u0161\u010dina
+languages.ko=korej\u0161\u010dina
+languages.kn=kanada
+languages.km=kambo\u0161\u010dina
+languages.wo=volof\u0161\u010dina
+languages.ka=gruzin\u0161\u010dina
+languages.zh_Hans=poenostavljena kitaj\u0161\u010dina
+languages.zh_Hant=tradicionalna kitaj\u0161\u010dina
+languages.jv=javan\u0161\u010dina
+languages.fil=tagalog\u0161\u010dina
+languages.pt=portugal\u0161\u010dina
+languages.ps=pa\u0161tu
+languages.de=nem\u0161\u010dina
+languages.pl=polj\u0161\u010dina
+languages.da=dan\u0161\u010dina
+languages.tlh=klingon\u0161\u010dina
+languages.ja=japon\u0161\u010dina
+languages.vi=vietnam\u0161\u010dina
+languages.cy=vali\u017ean\u0161\u010dina
+languages.pa=pand\u017eab\u0161\u010dina
+languages.cs=\u010de\u0161\u010dina
+languages.it=italijan\u0161\u010dina
+languages.is=island\u0161\u010dina
+languages.uz=uzbekistan\u0161\u010dina
+languages.or=orij\u0161\u010dina
+languages.ur=urdu
+languages.ca=katalon\u0161\u010dina
+languages.ie=jeziki
+languages.id=indonezij\u0161\u010dina
+languages.uk=ukrajin\u0161\u010dina
+languages.ia=interlingua
+languages.oc=okcitan\u0161\u010dina
+languages.ug=ujgur\u0161\u010dina
+languages.hy=armen\u0161\u010dina
+languages.bs=bosan\u0161\u010dina
+languages.br=breton\u0161\u010dina
+languages.hu=mad\u017ear\u0161\u010dina
+languages.pt_PT=iberska portugal\u0161\u010dina
+languages.bn=bengal\u0161\u010dina
+languages.hr=hrva\u0161\u010dina
+languages.tw=tvi (dialekt jezika akan)
+languages.bh=bihari
+languages.bg=bolgar\u0161\u010dina
+languages.no=norve\u0161\u010dina
+languages.be=beloru\u0161\u010dina
+languages.nn=novonorve\u0161\u010dina
+languages.hi=hindij\u0161\u010dina
+languages.tr=tur\u0161\u010dina
+languages.nl=nizozem\u0161\u010dina
+languages.zu=zuluj\u0161\u010dina
+languages.ba=ba\u0161kir\u0161\u010dina
+languages.he=hebrej\u0161\u010dina
+languages.tl=tagalog
+languages.tk=turkmen\u0161\u010dina
+languages.ne=nepal\u0161\u010dina
+languages.az=azerbajd\u017ean\u0161\u010dina
+languages.ti=tigrej\u0161\u010dina
+languages.ay=ajmara
+languages.th=taj\u0161\u010dina
+languages.en_US=angle\u0161\u010dina (ZDA)
+languages.te=telugij\u0161\u010dina
+languages.zh=kitaj\u0161\u010dina
+languages.as=asam\u0161\u010dina
+languages.ar=arab\u0161\u010dina
+languages.ta=tamil\u0161\u010dina
+languages.gu=gud\u017earati
+languages.my=burman\u0161\u010dina
+languages.am=amhar\u0161\u010dina
+languages.mt=malte\u0161\u010dina
+languages.ms=malaj\u0161\u010dina
+languages.gn=gvaranij\u0161\u010dina
+languages.sw=svahili
+languages.mr=mahara\u0161\u010dina
+languages.sv=\u0161ved\u0161\u010dina
+languages.gl=galicij\u0161\u010dina
+languages.su=sundan\u0161\u010dina
+languages.af=afrikan\u0161\u010dina
+languages.st=sesoto
+languages.mn=mongol\u0161\u010dina
+languages.sr=srb\u0161\u010dina
+languages.sq=alban\u0161\u010dina
+languages.ml=malajalam\u0161\u010dina
+languages.ab=abha\u0161\u010dina
+languages.mk=makedon\u0161\u010dina
+languages.aa=afar
+languages.so=somal\u0161\u010dina
+languages.gd=\u0161kotska gal\u0161\u010dina
+languages.sl=sloven\u0161\u010dina
+languages.sk=slova\u0161\u010dina
+languages.ga=ir\u0161\u010dina
+languages.si=singal\u0161\u010dina
+languages.sh=srbohrva\u0161\u010dina
+languages.yi=jidi\u0161
+languages.sd=sindi
+languages.fy=frizij\u0161\u010dina
+languages.sa=sanskrt
+languages.fr=franco\u0161\u010dina
+languages.lv=leton\u0161\u010dina
+languages.lt=litov\u0161\u010dina
+languages.fo=fer\u0161\u010dina
+languages.ru=ru\u0161\u010dina
+languages.lo=lao\u0161\u010dina
+languages.ln=lingala
+languages.fi=fin\u0161\u010dina
+languages.ro=romun\u0161\u010dina
+languages.rm=reto-roman\u0161\u010dina
+languages.fa=perzij\u0161\u010dina
+languages.und=Neznan ali neveljaven jezik
+languages.lb=luksembur\u0161\u010dina
+languages.la=latin\u0161\u010dina
+languages.xh=xhosa
+languages.en_GB=angle\u0161\u010dina (VB)
+languages.eu=baskov\u0161\u010dina
+languages.ky=kirgizij\u0161\u010dina
+languages.et=eston\u0161\u010dina
+variants.AREVELA=armenska (vzhodna)
+variants.AREVMDA=armenska (zahodna)
index 6928b1f7f1fbef6360a43fd2dd5eb90c6ba68d87..875aaaef8f79670c98af2108a91f300a603650bc 100644 (file)
@@ -5,42 +5,46 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+decimalSeparator=.
+groupingSeparator=,
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.INR=Indian Rupee
-currenciesDisplayName.RUB=Russian Ruble
 currenciesDisplayName.JPY=Japanese Yen
+currenciesDisplayName.RUB=Russian Ruble
 currenciesDisplayName.BRL=Brazilian Real
 currenciesDisplayName.CNY=Chinese Yuan Renminbi
-currenciesDisplayName.USD=US Dollar
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.ETB=Itoobiya Bir
-currenciesDisplayName.SOS=Somalia Schilling
-currenciesDisplayName.DJF=Jabuuti Faran
+currenciesDisplayName.USD=Doollar maraykan
+currenciesDisplayName.XXX=Lacag aan la qoon ama aan saxnayn
+currenciesDisplayName.EUR=Yuuroo
+currenciesDisplayName.ETB=Birta Itoobbiya
+currenciesDisplayName.SOS=Shilin soomaali
 currenciesDisplayName.GBP=British Pound Sterling
+currenciesDisplayName.DJF=Faran Jabbuuti
+currenciesSymbol.SOS=$
 currenciesSymbol.KES=Ksh
-shortMonths=Kob®Lab®Sad®Afr®Sha®Lix®Tod®Sid®Sag®Tob®KIT®LIT®®
-months=Bisha Koobaad®Bisha Labaad®Bisha Saddexaad®Bisha Afraad®Bisha Shanaad®Bisha Lixaad®Bisha Todobaad®Bisha Sideedaad®Bisha Sagaalaad®Bisha Tobnaad®Bisha Kow iyo Tobnaad®Bisha Laba iyo Tobnaad®®
-shortWeekdays=®Axa®Isn®Sal®Arb®Kha®Jim®Sab®
-weekdays=®Axad®Isniin®Salaaso®Arbaco®Khamiis®Jimco®Sabti®
-firstDayOfWeek=sat
-eras=Ciise ka hor®Ciise ka dib®
-ampms=sn®gn®
+shortMonths=Kob\u00aeLab\u00aeSad\u00aeAfr\u00aeSha\u00aeLix\u00aeTod\u00aeSid\u00aeSag\u00aeTob\u00aeKIT\u00aeLIT\u00ae\u00ae
+months=Bisha Koobaad\u00aeBisha Labaad\u00aeBisha Saddexaad\u00aeBisha Afraad\u00aeBisha Shanaad\u00aeBisha Lixaad\u00aeBisha Todobaad\u00aeBisha Sideedaad\u00aeBisha Sagaalaad\u00aeBisha Tobnaad\u00aeBisha Kow iyo Tobnaad\u00aeBisha Laba iyo Tobnaad\u00ae\u00ae
+shortWeekdays=\u00aeAxa\u00aeIsn\u00aeSal\u00aeArb\u00aeKha\u00aeJim\u00aeSab\u00ae
+weekdays=\u00aeAxad\u00aeIsniin\u00aeSalaaso\u00aeArbaco\u00aeKhamiis\u00aeJimco\u00aeSabti\u00ae
+eras=Ciise ka hor\u00aeCiise ka dib\u00ae
+ampms=sn\u00aegn\u00ae
 shortDateFormat=dd/MM/yy
 mediumDateFormat=dd-MMM-yyyy
 longDateFormat=dd MMMM yyyy
 fullDateFormat=EEEE, MMMM dd, yyyy
 shortTimeFormat=h:mm a
 mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.AU=Awstraaliya
 territories.TD=Jaad
 territories.AT=Osteeriya
 territories.MZ=Musambiig
 territories.AO=Angoola
 territories.MX=Meksiko
-territories.AM=Armeeniya
-territories.GR=Giriigga
 territories.MW=Malaawi
+territories.GR=Giriigga
+territories.AM=Armeeniya
 territories.ZA=Koonfur Afrika
 territories.MV=Maaldiqeen
 territories.SY=Suuriya
@@ -69,6 +73,7 @@ territories.LS=Losooto
 territories.LR=Laybeeriya
 territories.RU=Ruush
 territories.FI=Fiinlaand
+territories.014=Afrikada Bari
 territories.LK=Siirilaanka
 territories.RO=Rumaaniya
 territories.LB=Lubnaan
@@ -80,29 +85,32 @@ territories.KR=Kuuriyada Koonfureed
 territories.KP=Kuuriyada Waqooyi
 territories.EG=Masar
 territories.KH=Kamboodiya
+territories.EC=Ikwadoor
 territories.KE=Kiiniya
 territories.QA=Qadar
-territories.DK=Danmaark
 territories.JP=Jabbaan
+territories.DK=Danmaark
 territories.PT=Bortuqaal
-territories.DJ=Jabuuti
 territories.JO=Urdun
+territories.DJ=Jabuuti
 territories.JM=Jameyka
 territories.DE=Jarmal
+territories.151=Yurubta Bari
 territories.PL=Booland
 territories.PK=Bakistaan
 territories.VN=Fiyetnaam
 territories.PH=Filibiin
+territories.CZ=Jekoslafaakiya
 territories.VE=Fenisuweela
 territories.CU=Kuuba
 territories.VA=Faatikaan
 territories.IT=Talyaani
-territories.CN=Shiinaha
 territories.IS=Iislaand
-territories.CM=Kameruun
+territories.CN=Shiinaha
 territories.IR=Iiraan
-territories.CL=Jili
+territories.CM=Kameruun
 territories.IQ=Ciraaq
+territories.CL=Jili
 territories.IN=Hindiya
 territories.CH=Swiiserlaand
 territories.IL=Israa\u02bciil
@@ -119,29 +127,133 @@ territories.HR=Korweeshiya
 territories.TZ=Tansaaniya
 territories.BJ=Beniin
 territories.BH=Baxrayn
-territories.BE=Beljiyam
+territories.ZZ=Far aan la aqoon amase aan saxnayn
 territories.NO=Noorweey
+territories.BE=Beljiyam
 territories.BD=Bangaala-Deesh
 territories.ZW=Simbaabwe
 territories.TR=Turki
 territories.BB=Baarbadoos
 territories.BA=Boosniya Heersigoviina
+territories.TO=Tonga
 territories.TN=Tuniisiya
 territories.NI=Nikaraaguwa
+territories.030=Aasiyada Bari
 territories.NG=Nayjeeriya
 territories.ZM=Saambiya
 territories.TH=Taylaand
 territories.TG=Toogo
 territories.NA=Namiibiya
-languages.zh=Chinese
-languages.en=English
-languages.so=Soomaali
-languages.ru=Russian
+languages.es=Isbaanish
+languages.ku=Kurdishka
+languages.eo=Isberento
+languages.en=Ingiriisi
+languages.el=Giriik
+languages.ko=Kuuriyaan
+languages.kn=Kannadays
+languages.km=Kamboodhian
+languages.ka=Joorijiyaan
+languages.jv=Jafaaniis
+languages.fil=Tagalog
+languages.pt=Boortaqiis
+languages.ps=Bashtuu
+languages.de=Jarmal
+languages.pl=Boolish
+languages.da=Danmarkays
+languages.tlh=Kiligoon
+languages.ja=Jabbaaniis
+languages.vi=Fiitnaamays
+languages.cy=Welsh
+languages.pa=Bunjaabi
+languages.cs=Jeeg
+languages.it=Talyaani
+languages.es_ES=Isbaanish (Isbayn)
+languages.is=Ayslandays
+languages.uz=Usbakis
+languages.or=Oriya
+languages.ur=Urduu
+languages.ca=Katalaan
+languages.ie=Interlingue
+languages.id=Indunuusiyaan
+languages.es_419=Isbaanishka Laatiin Ameerika
+languages.uk=Yukreeniyaan
+languages.ia=Interlinguwa
+languages.oc=Okitaan
+languages.ug=UIGHUR
+languages.hy=Armeeniyaan
+languages.bs=Boosniya
+languages.br=Bereton
+languages.hu=Hangariyaan
+languages.pt_PT=Boortaqiis (Boortuqaal)
+languages.bn=Bangaali
+languages.fr_CH=Faransiis (Iswiiserlaand)
+languages.hr=Koro'eeshiyaan
+languages.tw=Tiwiyan
+languages.bh=Bixaari
+languages.bg=Bulgeeriyaan
+languages.de_CH=Jarmal (Iswiiserlaand)
+languages.no=Af  Noorwiijiyaan
+languages.be=Beleruusiyaan
+languages.nn=Nowrwejiyan (naynoroski)
 languages.hi=Hindi
-languages.ar=Arabic
-languages.it=Italian
-languages.fr=French
-languages.de=German
-languages.es=Spanish
-languages.ja=Japanese
-languages.pt=Portuguese
+languages.tr=Turkish
+languages.nl=Holandays
+languages.zu=Zuulu
+languages.he=Cibri
+languages.tk=Turkumaanish
+languages.ne=Nebaali
+languages.az=Azerbaijan
+languages.ti=Tigrinya
+languages.th=Taaylandays
+languages.en_US=Ingiriisi (Maraykan)
+languages.te=Teluugu
+languages.zh=Jayniis
+languages.as=Asaamiis
+languages.ar=Carabi
+languages.ta=Tamiil
+languages.gu=Gujaraati
+languages.am=Amhari
+languages.mt=Maltiis
+languages.ms=Malaay
+languages.gn=Guraani
+languages.sw=Sawaaxili
+languages.mr=Maarati
+languages.sv=Swiidhis
+languages.gl=Galiisiyaan
+languages.su=Suudaaniis
+languages.af=Afrikaanays
+languages.st=Sesooto
+languages.mn=Mangooli
+languages.sr=Seerbiyaan
+languages.sq=Albaaniyaan
+languages.ml=Malayalam
+languages.mk=Masadooniyaan
+languages.so=Soomaali
+languages.gd=Iskot Giilik
+languages.sl=Islofeeniyaan
+languages.sk=Isloofaak
+languages.ga=Ayrish
+languages.si=Sinhaleys
+languages.sh=Serbiyaan
+languages.pt_BR=Boortaqiiska Baraasiil
+languages.yi=Yadhish
+languages.sd=SINDHI
+languages.fy=Firiisiyan Galbeed
+languages.sa=Sanskrit
+languages.fr=Faransiis
+languages.lv=Laatfiyaan
+languages.lt=Lituwaanays
+languages.fo=Farowsi
+languages.ru=Ruush
+languages.lo=Laothian
+languages.ln=Lingala
+languages.fi=Fiinlaandees
+languages.ro=Romanka
+languages.fa=Faarisi
+languages.und=Af aan la aqoon ama aan sax ahayn
+languages.la=Laatiin
+languages.xh=Hoosta
+languages.en_GB=Ingiriisi (Boqortooyada Midowday)
+languages.eu=Basquu
+languages.ky=Kirgiis
+languages.et=Istooniyaan
index e85acd3ea972a0beea92a9f6330c282eb5764b46..b44d3847d2d9746cbc77c6bfb2808d8dca07d3f8 100644 (file)
@@ -5,6 +5,5 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesSymbol.DJF=$
-currenciesSymbol.USD=US$
+currenciesSymbol.SOS=SOS
index 18388570edb571a372ef8544e454614096445d14..2a04c49fd2b128e54787fa804ddf3b326a3b875e 100644 (file)
@@ -5,6 +5,5 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesSymbol.ETB=$
-currenciesSymbol.USD=US$
+currenciesSymbol.SOS=SOS
index bd7eb6400ef5d3334cbfdccad93df9a8aca542a1..6ec20adaf7b0f75b8e11373d36f9004256538a23 100644 (file)
@@ -5,4 +5,4 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.SOS=SOS
index e8e85c8d727a38186dc1307c82f2e591dd9947e7..06a677f7422471f4c4ac256a8004783a3446909c 100644 (file)
@@ -7,23 +7,25 @@
 
 decimalSeparator=,
 groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
 currenciesDisplayName.INR=Rupee indiane
 currenciesDisplayName.JPY=Jeni Japonez
 currenciesDisplayName.RUB=Rubla ruse
+currenciesDisplayName.BRL=Real Brazilian
 currenciesDisplayName.CNY=Renminbi(Yuan) Kinez
-currenciesDisplayName.GBP=Paund Sterlina Britanike
-currenciesDisplayName.EUR=Euro
 currenciesDisplayName.USD=Dollar amerikan
-currenciesDisplayName.BRL=Real Brazilian
+currenciesDisplayName.XXX=Unknown or Invalid Currency
+currenciesDisplayName.EUR=Euro
+currenciesDisplayName.GBP=Paund Sterlina Britanike
 currenciesSymbol.ALL=Lek
-shortMonths=Jan®Shk®Mar®Pri®Maj®Qer®Kor®Gsh®Sht®Tet®N\u00ebn®Dhj®®
-months=janar®shkurt®mars®prill®maj®qershor®korrik®gusht®shtator®tetor®n\u00ebntor®dhjetor®®
-shortWeekdays=®Die®H\u00ebn®Mar®M\u00ebr®Enj®Pre®Sht®
-weekdays=®e diel®e h\u00ebn\u00eb®e mart\u00eb®e m\u00ebrkur\u00eb®e enjte®e premte®e shtun\u00eb®
-firstDayOfWeek=mon
-eras=p.e.r.®n.e.r.®
-ampms=PD®MD®
+currenciesSymbol.XXX=XXX
+shortMonths=Jan\u00aeShk\u00aeMar\u00aePri\u00aeMaj\u00aeQer\u00aeKor\u00aeGsh\u00aeSht\u00aeTet\u00aeN\u00ebn\u00aeDhj\u00ae\u00ae
+months=janar\u00aeshkurt\u00aemars\u00aeprill\u00aemaj\u00aeqershor\u00aekorrik\u00aegusht\u00aeshtator\u00aetetor\u00aen\u00ebntor\u00aedhjetor\u00ae\u00ae
+shortWeekdays=\u00aeDie\u00aeH\u00ebn\u00aeMar\u00aeM\u00ebr\u00aeEnj\u00aePre\u00aeSht\u00ae
+weekdays=\u00aee diel\u00aee h\u00ebn\u00eb\u00aee mart\u00eb\u00aee m\u00ebrkur\u00eb\u00aee enjte\u00aee premte\u00aee shtun\u00eb\u00ae
+eras=p.e.r.\u00aen.e.r.\u00ae
+ampms=PD\u00aeMD\u00ae
 shortDateFormat=yy-MM-dd
 mediumDateFormat=yyyy-MM-dd
 longDateFormat=dd MMMM yyyy
@@ -32,6 +34,7 @@ shortTimeFormat=h.mm.a
 mediumTimeFormat=h:mm:ss.a
 longTimeFormat=h.mm.ss.a z
 fullTimeFormat=h.mm.ss.a z
+zoneStrings=Moscow\u00aeOra standarde e Mosk\u00ebs\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Central\u00aeOra qendrore evropiane\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Eastern\u00aeOra lindore evropiane\u00ae\u00ae\u00ae\u00ae\u00a9
 territories.TJ=Taxhikistan
 territories.TH=Tajland\u00eb
 territories.TG=Togo
@@ -42,16 +45,16 @@ territories.GT=Guatemal\u00eb
 territories.GR=Greqi
 territories.GQ=Guineja Ekuatoriale
 territories.SZ=Svaziland\u00eb
-territories.GN=Guine
 territories.SY=Siri
+territories.GN=Guine
 territories.GM=Gambi
 territories.ST=Sao Tome e Prinsipe
 territories.GH=Gan\u00eb
 territories.GE=Gjeorgji
 territories.SO=Somali
 territories.GB=Mbret\u00ebria e Bashkuar
-territories.GA=Gjabon
 territories.SL=Siera Leone
+territories.GA=Gjabon
 territories.SK=Sllovaki
 territories.SI=Slloveni
 territories.SG=Singapor
@@ -62,8 +65,8 @@ territories.SA=Arabia Saudite
 territories.FR=Franc\u00eb
 territories.FM=Mikronezi
 territories.RW=Ruanda
-territories.FJ=Fixhi
 territories.RU=Rusi
+territories.FJ=Fixhi
 territories.FI=Finland\u00eb
 territories.RO=Rumani
 territories.ET=Etiopi
@@ -104,36 +107,38 @@ territories.BY=Bjellorusi
 territories.BW=Botsvana
 territories.BT=Butan
 territories.BR=Brazili
-territories.BO=Bolivi
 territories.NZ=Zelanda e Re
+territories.BO=Bolivi
 territories.BN=Brunej
 territories.BH=Bahrein
 territories.BG=Bullgari
 territories.BE=Belgjik\u00eb
+territories.ZZ=Rajon i panjohur ose i pavlefsh\u00ebm
 territories.NO=Norvegji
 territories.ZW=Zimbabve
-territories.BA=Bosnja dhe Hercegovina
 territories.NL=Vendet e Ul\u00ebta
+territories.BA=Bosnja dhe Hercegovina
 territories.NI=Nikaragua
 territories.NG=Nigeri
 territories.AZ=Azerbajxhan
+territories.AX=Ishujt Aland
 territories.ZM=Zambi
-territories.NA=Namibi
 territories.AU=Australi
+territories.NA=Namibi
 territories.AT=Austri
 territories.AR=Argjentin\u00eb
-territories.AO=Angol\u00eb
 territories.MZ=Mozambik
+territories.AO=Angol\u00eb
 territories.MY=Malajzi
-territories.AM=Armeni
 territories.MX=Meksik\u00eb
-territories.AL=Shqip\u00ebria
+territories.AM=Armeni
 territories.MW=Malavi
+territories.AL=Shqip\u00ebria
 territories.MV=Maldivit
 territories.ZA=Afrika e Jugut
 territories.MT=Malt\u00eb
-territories.AG=Antigua e Barbuda
 territories.MR=Mauritani
+territories.AG=Antigua e Barbuda
 territories.AF=Afganistan
 territories.AE=Emiratet Arabe te Bashkuara
 territories.AD=Andorr\u00eb
@@ -185,16 +190,112 @@ territories.TZ=Tanzani
 territories.TW=Tajvan
 territories.TT=Trinidad e Tobago
 territories.TR=Turqi
+territories.TO=Tonga
 territories.TN=Tunisi
-languages.zh=Kineze
-languages.sq=shqipe
+languages.es=Spanjisht
+languages.ku=Kurd
+languages.eo=Esperanto
 languages.en=Anglisht
-languages.ru=Rusisht
+languages.el=Greqisht
+languages.ko=Korean\u00e7e
+languages.kn=Kanada
+languages.km=Kamboxhiane
+languages.ka=Gjeorgjisht
+languages.jv=Javanisht
+languages.fil=Tagalogisht
+languages.pt=Portugeze
+languages.ps=Pashto
+languages.de=Gjermanisht
+languages.pl=Polonisht
+languages.da=Danisht
+languages.tlh=Klingon
+languages.ja=Japanisht
+languages.vi=Vietnamisht
+languages.cy=Uellsisht
+languages.pa=Punxhabi
+languages.cs=\u00c7ekisht
+languages.it=Italisht
+languages.is=Islandisht
+languages.uz=Uzbekistanisht
+languages.or=Orija
+languages.ur=Urdu
+languages.ca=Katalonisht
+languages.ie=Gjuha nderkombtare
+languages.id=Indonezisht
+languages.uk=Ukrainisht
+languages.ia=Interlingua
+languages.oc=Oksitanisht
+languages.ug=Ujgur
+languages.hy=Armen
+languages.bs=Boshnjakisht
+languages.br=Breton
+languages.hu=Hungarisht
+languages.pt_PT=Portugalisht (Portugali)
+languages.bn=Bengalisht
+languages.hr=Kroatisht
+languages.tw=Twi
+languages.bh=Bihari
+languages.bg=Bullgarisht
+languages.no=Norvegjisht
+languages.be=Bjellorusisht
+languages.nn=Norvegjisht (Nynorsk)
 languages.hi=Hindi
+languages.tr=Turqisht
+languages.nl=Hollandisht
+languages.zu=Zulu
+languages.he=Hebraisht
+languages.tk=Turk
+languages.ne=Nepalisht
+languages.az=Azerbajxhanisht
+languages.ti=Tigrinja
+languages.th=Tajlandisht
+languages.te=Telugu
+languages.zh=Kineze
+languages.as=Asamezisht
 languages.ar=Arabisht
-languages.it=Italisht
+languages.ta=Tamil
+languages.gu=Guxharati
+languages.am=Amharike
+languages.mt=Maltisht
+languages.ms=Malajzisht
+languages.gn=Guarani
+languages.sw=Suahilisht
+languages.mr=Marati
+languages.sv=Suedisht
+languages.gl=Galicianisht
+languages.su=Sundanisht
+languages.af=Afrikanisht
+languages.st=Sesotho
+languages.mn=Mongolisht
+languages.sr=Serbisht
+languages.sq=shqipe
+languages.ml=Malajalam
+languages.mk=Maqedonisht
+languages.so=Somalisht
+languages.gd=Galisht
+languages.sl=Sllovenisht
+languages.sk=Sllovakisht
+languages.ga=Irlandisht
+languages.si=Sinhalezisht
+languages.sh=Serbo-Kroatisht
+languages.pt_BR=Portugalisht (Brazil)
+languages.yi=Jiden
+languages.sd=Si'ndi
+languages.fy=Frizianisht
+languages.sa=Sanskritisht
 languages.fr=Frengjisht
-languages.de=Gjermanisht
-languages.es=Spanjisht
-languages.ja=Japanisht
-languages.pt=Portugeze
+languages.lv=Letonisht
+languages.lt=Lituanisht
+languages.fo=Faroisht
+languages.ru=Rusisht
+languages.lo=Laosisht
+languages.ln=Lingala
+languages.fi=Finlandisht
+languages.ro=Rumanisht
+languages.fa=Persisht
+languages.und=Unknown or Invalid Language
+languages.la=Latinisht
+languages.xh=Xhosa
+languages.eu=Baskisht
+languages.ky=Kyrgyz
+languages.et=Estonisht
index f3263c0001301fdd46925530fbb773f8d3bea339..d623164fee13ddc7ee49d3b298b8bcf97c59d84c 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=\u0435
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.GBP=\u0424\u0443\u043d\u0442\u0430 \u0441\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0430
-currenciesDisplayName.CHF=\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u0430\u043a
-currenciesDisplayName.HRK=\u041a\u0443\u043d\u0430
-currenciesDisplayName.FRF=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u0430\u043a
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.KES=\u041a\u0435\u043d\u0438\u0458\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
+currenciesDisplayName.BAD=\u0411\u043e\u0441\u0430\u043d\u0441\u043a\u043e-\u0425\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0430\u0447\u043a\u0438\u0445 \u0434\u0438\u043d\u0430\u0440\u0430
+currenciesDisplayName.HRK=\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0445 \u043a\u0443\u043d\u0430
+currenciesDisplayName.MKD=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u0458\u0441\u043a\u0438 \u0434\u0435\u043d\u0430\u0440
+currenciesDisplayName.CSD=\u0421\u0440\u043f\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440 (\u0421\u0440\u0431\u0438\u0458\u0430 \u0438 \u0426\u0440\u043d\u0430 \u0413\u043e\u0440\u0430)
+currenciesDisplayName.HRD=\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0445 \u0434\u0438\u043d\u0430\u0440\u0430
 currenciesDisplayName.IEP=\u0418\u0440\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
-currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0458\u0441\u043a\u0438 \u0420\u0443\u043f\u0438
-currenciesDisplayName.JPY=\u0408\u0435\u043d
-currenciesDisplayName.HRD=\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.EUR=\u0415\u0412\u0420\u041e
-currenciesDisplayName.ITL=\u0418\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
-currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 \u0435\u0441\u043a\u0443\u0434\u043e
-currenciesDisplayName.AUD=\u0410\u0443\u0441\u0442\u0440\u0430\u043b\u0438\u0458\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.GRD=\u0414\u0440\u0430\u0445\u043c\u0430
+currenciesDisplayName.AMD=\u0408\u0435\u0440\u043c\u0435\u043d\u0441\u043a\u0438\u0445 \u0434\u0440\u0430\u043c\u0430
+currenciesDisplayName.SIT=\u0422\u043e\u043b\u0430\u0440
+currenciesDisplayName.FRF=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0438\u0445 \u0444\u0440\u0430\u043d\u0430\u043a\u0430
+currenciesDisplayName.CLP=\u0427\u0438\u043b\u0435\u0430\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e
+currenciesDisplayName.KWD=\u041a\u0443\u0432\u0430\u0458\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.ZAR=\u0408\u0443\u0436\u043d\u043e \u0410\u0444\u0440\u0438\u0447\u043a\u0438 \u0420\u0430\u043d\u0434
+currenciesDisplayName.RON=\u0420\u0443\u043c\u0443\u043d\u0441\u043a\u0438 \u043b\u0435\u0443
+currenciesDisplayName.RUR=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430 (1991-1998)
+currenciesDisplayName.HKD=\u0425\u043e\u043d\u0433 \u041a\u043e\u043d\u0433\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440\u0438
+currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e
+currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b\u0441\u043a\u0438 \u0420\u0435\u0430\u043b
+currenciesDisplayName.JPY=\u0408\u0430\u043f\u0430\u043d\u0441\u043a\u0438\u0445 \u0458\u0435\u043d\u0430
+currenciesDisplayName.ALL=\u0410\u043b\u0431\u0430\u043d\u0441\u043a\u0438\u0445 \u043b\u0435\u043a\u0430
+currenciesDisplayName.IDR=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0458\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0430\u0445
+currenciesDisplayName.EEK=\u0415\u0441\u0442\u043e\u043d\u0441\u043a\u0430 \u043a\u0440\u043e\u043e\u043d
+currenciesDisplayName.DEM=\u041d\u0435\u043c\u0430\u0447\u043a\u0438\u0445 \u043c\u0430\u0440\u0430\u043a\u0430
+currenciesDisplayName.RUB=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
+currenciesDisplayName.VND=\u0412\u0438\u0458\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438 \u0434\u043e\u043d\u0433
+currenciesDisplayName.DKK=\u0414\u0430\u043d\u0441\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
 currenciesDisplayName.NOK=\u041d\u043e\u0440\u0432\u0435\u0448\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
-currenciesDisplayName.DEM=\u041d\u0435\u043c\u0430\u0447\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
-currenciesDisplayName.LUF=\u041b\u0443\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0448\u043a\u0438 \u0444\u0440\u0430\u043d\u0430\u043a
-currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
 currenciesDisplayName.BEF=\u0411\u0435\u043b\u0433\u0438\u0458\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u0430\u043a
-currenciesDisplayName.DKK=\u0414\u0430\u043d\u0441\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
-currenciesDisplayName.RUR=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430 (1991-1998)
-currenciesDisplayName.KWD=\u041a\u0443\u0432\u0430\u0458\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438 \u043f\u0435\u0441\u043e
+currenciesDisplayName.UAH=\u0423\u043a\u0440\u0430\u0458\u0438\u043d\u0441\u043a\u0430 \u0445\u0440\u0438\u0432\u045a\u0430
+currenciesDisplayName.AED=\u0423\u0458\u0435\u0434\u0438\u045a\u0435\u043d\u0438 \u0430\u0440\u0430\u043f\u0441\u043a\u0438 \u0435\u043c\u0438\u0440\u0430\u0442\u0438 \u0434\u0438\u0440\u0445\u0430\u043c
+currenciesDisplayName.FJD=\u0424\u0438\u045f\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.LUF=\u041b\u0443\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0448\u043a\u0438 \u0444\u0440\u0430\u043d\u0430\u043a
+currenciesDisplayName.XXX=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442\u0438\u0445 \u0438\u043b\u0438 \u043d\u0435\u0432\u0430\u0436\u0435\u045b\u0438\u0445 \u0432\u0430\u043b\u0443\u0442\u0430
+currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 \u0435\u0441\u043a\u0443\u0434\u043e
+currenciesDisplayName.USD=\u0410\u043c\u0435\u0440\u0438\u0447\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.SGD=\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.FIM=\u0424\u0438\u043d\u0441\u043a\u0438\u0445 \u043c\u0430\u0440\u0430\u043a\u0430
+currenciesDisplayName.MTL=\u041c\u0430\u043b\u0442\u0435\u0448\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.HUF=\u041c\u0430\u0452\u0430\u0440\u0441\u043a\u0430 \u0444\u043e\u0440\u0438\u043d\u0442\u0430
+currenciesDisplayName.LTL=\u041b\u0438\u0442\u0432\u0430\u043d\u0441\u043a\u0438 \u043b\u0438\u0442\u0430\u0441
+currenciesDisplayName.TRY=\u0422\u0443\u0440\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.NZD=\u041d\u043e\u0432\u043e\u0437\u0435\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.RSD=\u0421\u0440\u043f\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
+currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0458\u0441\u043a\u0438 \u0420\u0443\u043f\u0438
+currenciesDisplayName.GBP=\u0424\u0443\u043d\u0442\u0430 \u0441\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0430
+currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0458\u0441\u043a\u0438 \u043f\u0435\u0437\u043e
+currenciesDisplayName.TRL=\u0421\u0442\u0430\u0440\u0438\u0445 \u0442\u0443\u0440\u0441\u043a\u0438\u0445 \u043b\u0438\u0440\u0430
+currenciesDisplayName.MAD=\u041c\u0430\u0440\u043e\u043a\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u0440\u0445\u0430\u043c
+currenciesDisplayName.ITL=\u0418\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0438\u0445 \u043b\u0438\u0440\u0430
+currenciesDisplayName.MYR=\u041c\u0430\u043b\u0435\u0437\u0438\u0458\u0441\u043a\u0438 \u0440\u0438\u043d\u0433\u0433\u0438\u0442
+currenciesDisplayName.VEB=\u0412\u0435\u043d\u0435\u0446\u0443\u0435\u043b\u0430\u043d\u0441\u043a\u0438 \u0431\u043e\u043b\u0438\u0432\u0430\u0440
+currenciesDisplayName.BOB=\u0411\u043e\u043b\u0438\u0432\u0438\u0458\u0441\u043a\u0438 \u0411\u043e\u043b\u0438\u0432\u0438\u0430\u043d\u043e
 currenciesDisplayName.CNY=\u041a\u0438\u043d\u0435\u0441\u043a\u0438 \u0408\u0443\u0430\u043d \u0420\u0435\u043d\u043c\u0438\u043d\u0431\u0438
-currenciesDisplayName.ESP=\u0428\u043f\u0430\u043d\u0441\u043a\u0430 \u043f\u0435\u0437\u0435\u0442\u0430
-currenciesDisplayName.GRD=\u0414\u0440\u0430\u0445\u043c\u0430
-currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.ATS=\u0410\u0443\u0441\u0442\u0440\u0438\u0458\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
-currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b\u0441\u043a\u0438 \u0420\u0435\u0430\u043b
 currenciesDisplayName.SEK=\u0428\u0432\u0435\u0434\u0441\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
-currenciesDisplayName.USD=\u0410\u043c\u0435\u0440\u0438\u0447\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.CSD=\u0421\u0440\u043f\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440
-currenciesDisplayName.RUB=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
-currenciesDisplayName.FIM=\u0424\u0438\u043d\u0441\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
-currenciesDisplayName.SIT=\u0422\u043e\u043b\u0430\u0440
-currenciesDisplayName.BAM=\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0431\u0438\u043b\u043d\u0430 \u043c\u0430\u0440\u043a\u0430
+currenciesDisplayName.AUD=\u0410\u0443\u0441\u0442\u0440\u0430\u043b\u0438\u0458\u0441\u043a\u0438\u0445 \u0434\u043e\u043b\u0430\u0440\u0430
+currenciesDisplayName.LYD=\u041b\u0438\u0431\u0438\u0458\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0447\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
+currenciesDisplayName.CHF=\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0438\u0445 \u0444\u0440\u0430\u043d\u0430\u043a\u0430
+currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
+currenciesDisplayName.PEN=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438 \u043d\u0443\u0435\u0432\u043e \u0441\u043e\u043b
+currenciesDisplayName.KRW=\u0408\u0443\u0436\u043d\u043e\u043a\u043e\u0440\u0435\u0458\u0441\u043a\u0438 \u0412\u043e\u043d
+currenciesDisplayName.TWD=\u041d\u043e\u0432\u0438 \u0442\u0430\u0458\u0432\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.PKR=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0440\u0443\u043f\u0438
+currenciesDisplayName.ATS=\u0410\u0443\u0441\u0442\u0440\u0438\u0458\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
+currenciesDisplayName.MXN=\u041c\u0435\u043a\u0441\u0438\u0447\u043a\u0438 \u043f\u0435\u0441\u043e
+currenciesDisplayName.EGP=\u0415\u0433\u0438\u043f\u0430\u0442\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
+currenciesDisplayName.CZK=\u0427\u0435\u0448\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
+currenciesDisplayName.BND=\u0411\u0440\u0443\u043d\u0435\u0458\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.ILS=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0438 \u0448\u0435\u043a\u0435\u043b
+currenciesDisplayName.ESP=\u0428\u043f\u0430\u043d\u0441\u043a\u0430 \u043f\u0435\u0437\u0435\u0442\u0430
+currenciesDisplayName.BAM=\u0411\u043e\u0441\u0430\u043d\u0441\u043a\u043e-\u0425\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0430\u0447\u043a\u0430 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0431\u0438\u043b\u043d\u0430 \u043c\u0430\u0440\u043a\u0430
+currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438\u0445 \u0434\u043e\u043b\u0430\u0440\u0430
+currenciesDisplayName.BGN=\u0411\u0443\u0433\u0430\u0440\u0441\u043a\u0438\u0445 \u043b\u0435\u0432\u0430
 currenciesSymbol.KWD=KD
 currenciesSymbol.INR=INR
 currenciesSymbol.NOK=NKr
 currenciesSymbol.BEF=BF
-currenciesSymbol.BAM=KM
 currenciesSymbol.YUN=\u0414\u0438\u043d
+currenciesSymbol.BAM=KM
 currenciesSymbol.IEP=IR\u00a3
 currenciesSymbol.DKK=DKr
 currenciesSymbol.CHF=SwF
-currenciesSymbol.CNY=\u0423
+currenciesSymbol.CNY=Y
 currenciesSymbol.AUD=$A
-currenciesSymbol.USD=US$
-currenciesSymbol.CSD=YUN
 currenciesSymbol.SEK=SKr
 currenciesSymbol.CAD=Can$
-shortMonths=\u0458\u0430\u043d®\u0444\u0435\u0431®\u043c\u0430\u0440®\u0430\u043f\u0440®\u043c\u0430\u0458®\u0458\u0443\u043d®\u0458\u0443\u043b®\u0430\u0432\u0433®\u0441\u0435\u043f®\u043e\u043a\u0442®\u043d\u043e\u0432®\u0434\u0435\u0446®®
-months=\u0458\u0430\u043d\u0443\u0430\u0440®\u0444\u0435\u0431\u0440\u0443\u0430\u0440®\u043c\u0430\u0440\u0442®\u0430\u043f\u0440\u0438\u043b®\u043c\u0430\u0458®\u0458\u0443\u043d®\u0458\u0443\u043b®\u0430\u0432\u0433\u0443\u0441\u0442®\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440®\u043e\u043a\u0442\u043e\u0431\u0430\u0440®\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440®\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440®®
-shortWeekdays=®\u043d\u0435\u0434®\u043f\u043e\u043d®\u0443\u0442\u043e®\u0441\u0440\u0435®\u0447\u0435\u0442®\u043f\u0435\u0442®\u0441\u0443\u0431®
-weekdays=®\u043d\u0435\u0434\u0435\u0459\u0430®\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a®\u0443\u0442\u043e\u0440\u0430\u043a®\u0441\u0440\u0435\u0434\u0430®\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a®\u043f\u0435\u0442\u0430\u043a®\u0441\u0443\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u043f. \u043d. \u0435.®\u043d. \u0435®
+shortMonths=\u0458\u0430\u043d\u00ae\u0444\u0435\u0431\u00ae\u043c\u0430\u0440\u00ae\u0430\u043f\u0440\u00ae\u043c\u0430\u0458\u00ae\u0458\u0443\u043d\u00ae\u0458\u0443\u043b\u00ae\u0430\u0432\u0433\u00ae\u0441\u0435\u043f\u00ae\u043e\u043a\u0442\u00ae\u043d\u043e\u0432\u00ae\u0434\u0435\u0446\u00ae\u00ae
+months=\u0458\u0430\u043d\u0443\u0430\u0440\u00ae\u0444\u0435\u0431\u0440\u0443\u0430\u0440\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440\u0438\u043b\u00ae\u043c\u0430\u0458\u00ae\u0458\u0443\u043d\u00ae\u0458\u0443\u043b\u00ae\u0430\u0432\u0433\u0443\u0441\u0442\u00ae\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440\u00ae\u043e\u043a\u0442\u043e\u0431\u0430\u0440\u00ae\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440\u00ae\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440\u00ae\u00ae
+shortWeekdays=\u00ae\u043d\u0435\u0434\u00ae\u043f\u043e\u043d\u00ae\u0443\u0442\u043e\u00ae\u0441\u0440\u0435\u00ae\u0447\u0435\u0442\u00ae\u043f\u0435\u0442\u00ae\u0441\u0443\u0431\u00ae
+weekdays=\u00ae\u043d\u0435\u0434\u0435\u0459\u0430\u00ae\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a\u00ae\u0443\u0442\u043e\u0440\u0430\u043a\u00ae\u0441\u0440\u0435\u0434\u0430\u00ae\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a\u00ae\u043f\u0435\u0442\u0430\u043a\u00ae\u0441\u0443\u0431\u043e\u0442\u0430\u00ae
+eras=\u043f. \u043d. \u0435.\u00ae\u043d. \u0435\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=d.M.yy.
 mediumDateFormat=dd.MM.yyyy.
-longDateFormat=dd.MM.yyyy.
-fullDateFormat=EEEE, dd.MMMM.yyyy.
+longDateFormat=dd. MMMM yyyy.
+fullDateFormat=EEEE, dd. MMMM yyyy.
 shortTimeFormat=HH.mm
 mediumTimeFormat=HH.mm.ss
 longTimeFormat=HH.mm.ss z
 fullTimeFormat=HH.mm.ss z
-zoneStrings=Europe/Belgrade®CET®\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e \u0415\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u0412\u0440\u0435\u043c\u0435®CET®\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e \u0415\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u0412\u0440\u0435\u043c\u0435®©
-territories.TL=\u0422\u0438\u043c\u043e\u0440-\u041b\u0435\u0441\u0442\u0435
+zoneStrings=Europe_Central\u00ae\u0421\u0440\u0435\u0434\u045a\u0435\u0435\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u00ae\u00ae\u0421\u0440\u0435\u0434\u045a\u0435\u0435\u0432\u0440\u043e\u043f\u0441\u043a\u043e  \u043b\u0435\u0442\u045a\u0435 \u0432\u0440\u0435\u043c\u0435\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0418\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u00ae\u00ae\u0418\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u043b\u0435\u0442\u045a\u0435 \u0432\u0440\u0435\u043c\u0435\u00ae\u00ae\u00a9
+territories.TL=\u0418\u0441\u0442\u043e\u0447\u043d\u0438 \u0422\u0438\u043c\u043e\u0440
 territories.TK=\u0422\u043e\u043a\u0435\u043b\u0430\u0443
 territories.TJ=\u0422\u0430\u045f\u0438\u043a\u0438\u0441\u0442\u0430\u043d
 territories.TH=\u0422\u0430\u0458\u043b\u0430\u043d\u0434
@@ -93,12 +144,13 @@ territories.GN=\u0413\u0432\u0438\u043d\u0435\u0458\u0430
 territories.GM=\u0413\u0430\u043c\u0431\u0438\u0458\u0430
 territories.GL=\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434
 territories.SV=\u0421\u0430\u043b\u0432\u0430\u0434\u043e\u0440
-territories.062=\u0408\u0443\u0436\u043d\u043e-\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
-territories.ST=\u0421\u0430\u043e \u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u0438
-territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u0458\u0430
+territories.062=\u0408\u0443\u0433\u043e-\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
+territories.ST=\u0421\u0430\u043e \u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u0435
 territories.GI=\u0413\u0438\u0431\u0440\u0430\u043b\u0442\u0430\u0440
+territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u0458\u0430
 territories.GH=\u0413\u0430\u043d\u0430
 territories.SR=\u0421\u0443\u0440\u0438\u043d\u0430\u043c
+territories.GG=\u0413\u0443\u0440\u043d\u0441\u0438
 territories.GF=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0430 \u0413\u0432\u0430\u0458\u0430\u043d\u0430
 territories.GE=\u0413\u0440\u0443\u0437\u0438\u0458\u0430
 territories.SO=\u0421\u043e\u043c\u0430\u043b\u0438\u0458\u0430
@@ -119,26 +171,27 @@ territories.SC=\u0421\u0435\u0458\u0448\u0435\u043b\u0438
 territories.SB=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
 territories.SA=\u0421\u0430\u0443\u0434\u0438\u0458\u0441\u043a\u0430 \u0410\u0440\u0430\u0431\u0438\u0458\u0430
 territories.FR=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0430
-territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u0458\u0430
 territories.FO=\u0424\u0430\u0440\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
+territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u0458\u0441\u043a\u0438 \u0440\u0435\u0433\u0438\u043e\u043d
 territories.FM=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u0458\u0430
 territories.RW=\u0420\u0443\u0430\u043d\u0434\u0430
 territories.054=\u041c\u0435\u043b\u0430\u043d\u0435\u0437\u0438\u0458\u0430
+territories.FK=\u0424\u043e\u043a\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043e\u0441\u0442\u0440\u0432\u0430
 territories.053=\u0410\u0443\u0441\u0442\u0440\u0430\u043b\u0438\u0458\u0430 \u0438 \u041d\u043e\u0432\u0438 \u0417\u0435\u043b\u0430\u043d\u0434
-territories.FK=\u0424\u043e\u043b\u043a\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
 territories.RU=\u0420\u0443\u0441\u0438\u0458\u0430
 territories.FJ=\u0424\u0438\u045f\u0438
 territories.FI=\u0424\u0438\u043d\u0441\u043a\u0430
+territories.RS=\u0421\u0440\u0431\u0438\u0458\u0430
 territories.RO=\u0420\u0443\u043c\u0443\u043d\u0438\u0458\u0430
 territories.RE=\u0420\u0435\u0438\u043d\u0438\u043e\u043d
 territories.ET=\u0415\u0442\u0438\u043e\u043f\u0438\u0458\u0430
 territories.ES=\u0428\u043f\u0430\u043d\u0438\u0458\u0430
 territories.ER=\u0415\u0440\u0438\u0442\u0440\u0435\u0458\u0430
-territories.833=\u041e\u0441\u0442\u0440\u0432\u043e \u041c\u0430\u043d
+territories.QU=\u0415\u0432\u0440\u043e\u043f\u0441\u043a\u0430 \u0443\u043d\u0438\u0458\u0430
 territories.EH=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0421\u0430\u0445\u0430\u0440\u0430
 territories.EG=\u0415\u0433\u0438\u043f\u0430\u0442
-territories.830=\u041a\u0430\u043d\u0430\u043b\u0441\u043a\u0430 \u043e\u0441\u0442\u0440\u0432\u0430
 territories.EE=\u0415\u0441\u0442\u043e\u043d\u0438\u0458\u0430
+territories.830=\u041a\u0430\u043d\u0430\u043b\u0441\u043a\u0430 \u043e\u0441\u0442\u0440\u0432\u0430
 territories.QO=\u041e\u0441\u0442\u0430\u043b\u0430 \u043e\u043a\u0435\u0430\u043d\u0438\u0458\u0430
 territories.EC=\u0415\u043a\u0432\u0430\u0434\u043e\u0440
 territories.DZ=\u0410\u043b\u0436\u0438\u0440
@@ -146,9 +199,10 @@ territories.QA=\u041a\u0430\u0442\u0430\u0440
 territories.039=\u0408\u0443\u0436\u043d\u0430 \u0415\u0432\u0440\u043e\u043f\u0430
 territories.DO=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
 territories.PY=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0458
-territories.035=\u0408\u0443\u0433\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
 territories.DM=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430
+territories.035=\u0408\u0443\u0433\u043e-\u0438\u0441\u0442\u043e\u0447\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
 territories.PW=\u041f\u0430\u043b\u0430\u0443
+territories.034=\u0408\u0443\u0436\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
 territories.DK=\u0414\u0430\u043d\u0441\u043a\u0430
 territories.DJ=\u040f\u0438\u0431\u0443\u0442\u0438
 territories.PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b
@@ -166,7 +220,7 @@ territories.PF=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0430 \u041f\u04
 territories.CZ=\u0427\u0435\u0448\u043a\u0430
 territories.PE=\u041f\u0435\u0440\u0443
 territories.CY=\u041a\u0438\u043f\u0430\u0440
-territories.CX=\u0411\u043e\u0436\u0438\u045b\u043d\u043e \u041e\u0441\u0442\u0440\u0432\u043e
+territories.CX=\u0411\u043e\u0436\u0438\u045b\u043d\u0430 \u043e\u0441\u0442\u0440\u0432\u0430
 territories.CV=\u041a\u0430\u043f\u0435 \u0412\u0435\u0440\u0434\u0435
 territories.PA=\u041f\u0430\u043d\u0430\u043c\u0430
 territories.CU=\u041a\u0443\u0431\u0430
@@ -177,42 +231,45 @@ territories.CO=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0458\u0430
 territories.CN=\u041a\u0438\u043d\u0430
 territories.CM=\u041a\u0430\u043c\u0435\u0440\u0443\u043d
 territories.CL=\u0427\u0438\u043b\u0435
-territories.CI=\u041e\u0431\u0430\u043b\u0430 \u0421\u043b\u043e\u043d\u043e\u0432\u0430\u0447\u0435
+territories.CK=\u041a\u0443\u043a\u043e\u0432\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
 territories.021=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
+territories.CI=\u041e\u0431\u0430\u043b\u0430 \u0421\u043b\u043e\u043d\u043e\u0432\u0430\u0447\u0435
 territories.CH=\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0430
 territories.CG=\u041a\u043e\u043d\u0433\u043e
 territories.CF=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e \u0410\u0444\u0440\u0438\u0447\u043a\u0430 \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
 territories.CD=\u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0441\u043a\u0430 \u0440\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u041a\u043e\u043d\u0433\u043e
-territories.CC=\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
+territories.CC=\u041a\u043e\u043a\u043e\u0441 (\u041a\u0435\u043b\u0438\u043d\u0433) \u041e\u0441\u0442\u0440\u0432\u0430
 territories.OM=\u041e\u043c\u0430\u043d
 territories.CA=\u041a\u0430\u043d\u0430\u0434\u0430
-territories.BZ=\u0411\u0435\u043b\u0438\u0441\u0435
+territories.419=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0438 \u041a\u0430\u0440\u0438\u0431\u0438
+territories.BZ=\u0411\u0435\u043b\u0438\u0437\u0435
 territories.BY=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0438\u0458\u0430
 territories.BW=\u0411\u043e\u0446\u0432\u0430\u043d\u0430
-territories.BV=\u0411\u0443\u0432\u0435
+territories.BV=\u0411\u0443\u0432\u0435 \u041e\u0441\u0442\u0440\u0432\u0430
 territories.BT=\u0411\u0443\u0442\u0430\u043d
 territories.BS=\u0411\u0430\u0445\u0430\u043c\u0438
-territories.BR=\u0411\u0440\u0430\u0455\u0438\u043b
+territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b
 territories.019=\u0410\u043c\u0435\u0440\u0438\u043a\u0435
 territories.018=\u0408\u0443\u0436\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
 territories.NZ=\u041d\u043e\u0432\u0438 \u0417\u0435\u043b\u0430\u043d\u0434
-territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u0458\u0430
 territories.017=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u0458\u0430
 territories.BN=\u0411\u0440\u0443\u043d\u0435\u0458
-territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0430
 territories.015=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0430
 territories.014=\u0418\u0441\u0442\u043e\u0447\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
 territories.013=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.NU=\u041d\u0438\u0443\u0435
 territories.BJ=\u0411\u0435\u043d\u0438\u043d
-territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
 territories.011=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
 territories.BH=\u0411\u0430\u0445\u0440\u0435\u0438\u043d
 territories.NR=\u041d\u0430\u0443\u0440\u0443
 territories.BG=\u0411\u0443\u0433\u0430\u0440\u0441\u043a\u0430
 territories.BF=\u0411\u0443\u0440\u043a\u0438\u043d\u0430 \u0424\u0430\u0441\u043e
 territories.NP=\u041d\u0435\u043f\u0430\u043b
 territories.BE=\u0411\u0435\u043b\u0433\u0438\u0458\u0430
+territories.ZZ=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442\u0430 \u0438\u043b\u0438 \u043d\u0435\u0432\u0430\u0436\u0435\u045b\u0430 \u043e\u0431\u043b\u0430\u0441\u0442
 territories.NO=\u041d\u043e\u0440\u0432\u0435\u0448\u043a\u0430
 territories.BD=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448
 territories.BB=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441
@@ -231,30 +288,35 @@ territories.ZM=\u0417\u0430\u043c\u0431\u0438\u0458\u0430
 territories.NA=\u041d\u0430\u043c\u0438\u0431\u0438\u0458\u0430
 territories.AU=\u0410\u0443\u0441\u0442\u0440\u0430\u043b\u0438\u0458\u0430
 territories.AT=\u0410\u0443\u0441\u0442\u0440\u0438\u0458\u0430
+territories.AS=\u0410\u043c\u0435\u0440\u0438\u0447\u043a\u0430 \u0421\u0430\u043c\u043e\u0430
 territories.AR=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430
+territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u043a
 territories.009=\u041e\u043a\u0435\u0430\u043d\u0438\u0458\u0430
 territories.MZ=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a
 territories.AO=\u0410\u043d\u0433\u043e\u043b\u0430
 territories.MY=\u041c\u0430\u043b\u0435\u0437\u0438\u0458\u0430
 territories.AN=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0410\u043d\u0442\u0438\u043b\u0438
 territories.MX=\u041c\u0435\u043a\u0441\u0438\u043a\u043e
-territories.005=\u0408\u0443\u0436\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.AM=\u0410\u0440\u043c\u0435\u043d\u0438\u0458\u0430
+territories.005=\u0408\u0443\u0436\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.MW=\u041c\u0430\u043b\u0430\u0432\u0438
 territories.AL=\u0410\u043b\u0431\u0430\u043d\u0438\u0458\u0430
 territories.MV=\u041c\u0430\u043b\u0434\u0438\u0432\u0438
-territories.ZA=\u0408\u0443\u0436\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.003=\u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u0447\u043a\u0438 \u043a\u043e\u043d\u0442\u0438\u043d\u0435\u043d\u0442
+territories.ZA=\u0408\u0443\u0436\u043d\u043e\u0430\u0444\u0440\u0438\u0447\u043a\u0430 \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
 territories.MU=\u041c\u0430\u0443\u0440\u0438\u0446\u0438\u0458\u0443\u0441
 territories.002=\u0410\u0444\u0440\u0438\u043a\u0430
 territories.MT=\u041c\u0430\u043b\u0442\u0430
+territories.AI=\u0410\u043d\u0433\u0432\u0438\u043b\u0430
 territories.001=\u0421\u0432\u0435\u0442
 territories.MS=\u041c\u043e\u043d\u0441\u0435\u0440\u0430\u0442
 territories.MR=\u041c\u0430\u0443\u0440\u0438\u0442\u0430\u043d\u0438\u0458\u0430
+territories.AG=\u0410\u043d\u0442\u0438\u0433\u0432\u0435 \u0438 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
 territories.MQ=\u041c\u0430\u0440\u0442\u0438\u043d\u0438\u043a
 territories.AF=\u0410\u0432\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d
 territories.MP=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u041c\u0430\u0440\u0438\u0458\u0430\u043d\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
 territories.AE=\u0423\u0458\u0435\u0434\u0438\u045a\u0435\u043d\u0438 \u0410\u0440\u0430\u043f\u0441\u043a\u0438 \u0415\u043c\u0438\u0440\u0430\u0442\u0438
-territories.MO=\u041c\u0430\u043a\u0430\u043e (\u0421. \u0410. \u0420. \u041a\u0438\u043d\u0430)
+territories.MO=\u041c\u0430\u043a\u0430\u043e
 territories.AD=\u0410\u043d\u0434\u043e\u0440\u0430
 territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u0458\u0430
 territories.MM=\u041c\u0438\u0458\u0430\u043d\u043c\u0430\u0440
@@ -263,6 +325,8 @@ territories.MK=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u0458\u0430
 territories.YT=\u041c\u0430\u0458\u043e\u0442\u0435
 territories.MH=\u041c\u0430\u0440\u0448\u0430\u043b\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
 territories.MG=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
+territories.MF=\u0421\u0435\u043d\u0442 \u041c\u0430\u0440\u0442\u0438\u043d
+territories.ME=\u0426\u0440\u043d\u0430 \u0413\u043e\u0440\u0430
 territories.MD=\u041c\u043e\u043b\u0434\u0430\u0432\u0438\u0458\u0430
 territories.MC=\u041c\u043e\u043d\u0430\u043a\u043e
 territories.MA=\u041c\u0430\u0440\u043e\u043a\u043e
@@ -286,6 +350,7 @@ territories.KZ=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d
 territories.KY=\u041a\u0430\u0458\u043c\u0430\u043d\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
 territories.KW=\u041a\u0443\u0432\u0430\u0458\u0442
 territories.145=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
+territories.143=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
 territories.142=\u0410\u0437\u0438\u0458\u0430
 territories.KR=\u0408\u0443\u0436\u043d\u0430 \u041a\u043e\u0440\u0435\u0458\u0430
 territories.KP=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u041a\u043e\u0440\u0435\u0458\u0430
@@ -301,6 +366,7 @@ territories.JP=\u0408\u0430\u043f\u0430\u043d
 territories.JO=\u0408\u043e\u0440\u0434\u0430\u043d
 territories.JM=\u0408\u0430\u043c\u0430\u0458\u043a\u0430
 territories.VU=\u0412\u0430\u043d\u0443\u0430\u0442\u0443
+territories.JE=\u040f\u0435\u0440\u0441\u0438
 territories.VN=\u0412\u0438\u0458\u0435\u0442\u043d\u0430\u043c
 territories.VI=\u0421.\u0410.\u0414. \u0414\u0435\u0432\u0438\u0447\u0430\u043d\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
 territories.VG=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430 \u0414\u0435\u0432\u0438\u0447\u0430\u043d\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
@@ -312,8 +378,10 @@ territories.IS=\u0418\u0441\u043b\u0430\u043d\u0434
 territories.IR=\u0418\u0440\u0430\u043d
 territories.IQ=\u0418\u0440\u0430\u043a
 territories.UZ=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d
+territories.IO=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0438\u0458\u0430 \u0443 \u0418\u043d\u0434\u0438\u0458\u0441\u043a\u043e\u043c \u043e\u043a\u0435\u0430\u043d\u0443
 territories.UY=\u0423\u0440\u0443\u0433\u0432\u0430\u0458
 territories.IN=\u0418\u043d\u0434\u0438\u0458\u0430
+territories.IM=\u041e\u0441\u0442\u0440\u0432\u043e \u041c\u0430\u043d
 territories.IL=\u0418\u0437\u0440\u0430\u0435\u043b
 territories.US=\u0421\u0458\u0435\u0434\u0438\u045a\u0435\u043d\u0435 \u0410\u043c\u0435\u0440\u0438\u0447\u043a\u0435 \u0414\u0440\u0436\u0430\u0432\u0435
 territories.IE=\u0418\u0440\u0441\u043a\u0430
@@ -329,70 +397,175 @@ territories.HN=\u0425\u043e\u043d\u0434\u0443\u0440\u0430\u0441
 territories.HM=\u0425\u0435\u0440\u0434 \u0438 \u041c\u0435\u043a\u0434\u043e\u043d\u0430\u043b\u0434 \u041e\u0441\u0442\u0440\u0432\u0430
 territories.TW=\u0422\u0430\u0458\u0432\u0430\u043d
 territories.TV=\u0422\u0443\u0432\u0430\u043b\u0443
-territories.HK=\u0425\u043e\u043d\u0433 \u041a\u043e\u043d\u0433 (\u0421. \u0410. \u0420. \u041a\u0438\u043d\u0430)
+territories.HK=\u0425\u043e\u043d\u0433 \u041a\u043e\u043d\u0433
 territories.TT=\u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0434 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e
 territories.TR=\u0422\u0443\u0440\u0441\u043a\u0430
 territories.TO=\u0422\u043e\u043d\u0433\u0430
 territories.TN=\u0422\u0443\u043d\u0438\u0441
 territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d
+languages.lb=\u041b\u0443\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0448\u043a\u0438
+languages.la=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0438
+languages.xh=\u0425\u0430\u0443\u0441\u0430
+languages.ky=\u041a\u0438\u0440\u0433\u0438\u0441\u043a\u0438
+languages.ku=\u041a\u0443\u0440\u0434\u0441\u043a\u0438
+languages.ko=\u041a\u043e\u0440\u0435\u0458\u0441\u043a\u0438
+languages.kn=\u041a\u0430\u043d\u0434\u0438\u0433\u0430\u043d\u0441\u043a\u0438 (\u0418\u043d\u0434\u0438\u0458\u0430)
+languages.km=\u041a\u043c\u0435\u0440\u0441\u043a\u0438
+languages.kk=\u041a\u043e\u0437\u0430\u0447\u043a\u0438
+languages.ira=\u0418\u0440\u0430\u043d\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.grc=\u0421\u0442\u0430\u0440\u043e\u0433\u0440\u0447\u043a\u0438
 languages.ka=\u0413\u0440\u0443\u0437\u0438\u0458\u0441\u043a\u0438
-languages.zh=\u041a\u0438\u043d\u0435\u0441\u043a\u0438
-languages.ar=\u0410\u0440\u0430\u043f\u0441\u043a\u0438
-languages.my=\u0411\u0443\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.gem=\u0413\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.jv=\u0408\u0430\u0432\u0430\u043d\u0441\u043a\u0438
+languages.cel=\u041a\u0435\u043b\u0442\u0441\u043a\u0438
+languages.scn=\u0421\u0438\u0446\u0438\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0438
+languages.ja=\u0408\u0430\u043f\u0430\u043d\u0441\u043a\u0438
+languages.vi=\u0412\u0438\u0458\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438
+languages.it=\u0418\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0438
+languages.is=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.uz=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438
+languages.ur=\u0423\u0440\u0434\u0443
+languages.ie=\u041c\u0435\u0452\u0443\u0458\u0435\u0437\u0438\u0447\u043a\u0438
+languages.id=\u0418\u043d\u0434\u043e\u043d\u0435\u0436\u0430\u043d\u0441\u043a\u0438
+languages.ia=\u0418\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0430
+languages.uk=\u0423\u043a\u0440\u0430\u0458\u0438\u043d\u0441\u043a\u0438
+languages.ug=\u0423\u0458\u0433\u0443\u0440\u0441\u043a\u0438
+languages.fiu=\u0423\u0433\u0440\u043e-\u0444\u0438\u043d\u0441\u043a\u0438
+languages.und=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442 \u0438\u043b\u0438 \u043d\u0435\u0432\u0430\u0436\u0435\u045b\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.hy=\u0408\u0435\u0440\u043c\u0435\u043d\u0441\u043a\u0438
+languages.got=\u0413\u043e\u0442\u0441\u043a\u0438
+languages.hu=\u041c\u0430\u0452\u0430\u0440\u0441\u043a\u0438
+languages.ht=\u0425\u0430\u0438\u0442\u0441\u043a\u0438
+languages.phi=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.hr=\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.fil=\u0422\u0430\u0433\u0430\u043b\u043e\u0433
+languages.ty=\u0422\u0430\u0445\u0438\u045b\u0430\u043d\u0441\u043a\u0438
+languages.apa=\u0410\u043f\u0430\u0447\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.tw=\u0422\u0432\u0438
+languages.goh=\u0421\u0442\u0430\u0440\u043e\u043d\u0435\u043c\u0430\u0447\u043a\u0438
+languages.tt=\u0422\u0430\u0442\u0430\u0440\u0441\u043a\u0438
+languages.hi=\u0425\u0438\u043d\u0434\u0438
+languages.tr=\u0422\u0443\u0440\u0441\u043a\u0438
+languages.cop=\u041a\u043e\u043f\u0442\u0441\u043a\u0438
+languages.he=\u0425\u0435\u0431\u0440\u0435\u0458\u0441\u043a\u0438
+languages.sai=\u0408\u0435\u0437\u0438\u043a \u0458\u0443\u0436\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u0447\u043a\u0438\u0445 \u0418\u043d\u0434\u0438\u0458\u0430\u043d\u0430\u0446\u0430
+languages.tl=\u0422\u0430\u0433\u0430\u043b\u043e\u0433
+languages.tk=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u043a\u0438
+languages.ti=\u0422\u0438\u0433\u0440\u0438\u045a\u0430
+languages.th=\u0422\u0430\u0458\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.te=\u0422\u0435\u043b\u0443\u0433\u0443
+languages.mas=\u041c\u0430\u0441\u0430\u0438
+languages.ta=\u0422\u0430\u043c\u0438\u043b\u0441\u043a\u0438
+languages.gu=\u0413\u0443\u045f\u0430\u0440\u0430\u0442\u0438
+languages.ine=\u0418\u043d\u0434\u043e-\u0435\u0432\u0440\u043e\u043f\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.gn=\u0413\u0432\u0430\u0440\u0430\u043d\u0438
 languages.sw=\u0421\u0432\u0430\u0445\u0438\u043b\u0438
+languages.gl=\u0413\u0430\u043b\u0441\u043a\u0438
 languages.sv=\u0428\u0432\u0435\u0434\u0441\u043a\u0438
-languages.pt=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
-languages.mo=\u041c\u043e\u043b\u0434\u0430\u0432\u0441\u043a\u0438
+languages.su=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438
+languages.st=\u0421\u0435\u0441\u043e\u0442\u043e
 languages.sr=\u0421\u0440\u043f\u0441\u043a\u0438
-languages.mn=\u041c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438
-languages.af=\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0435\u0440\u0441\u043a\u0438
 languages.sq=\u0410\u043b\u0431\u0430\u043d\u0441\u043a\u0438
-languages.mk=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438
-languages.de=\u041d\u0435\u043c\u0430\u0447\u043a\u0438
-languages.pl=\u041f\u043e\u0459\u0441\u043a\u0438
+languages.so=\u0421\u043e\u043c\u0430\u043b\u0441\u043a\u0438
+languages.gd=\u0428\u043a\u043e\u0442\u0441\u043a\u0438 \u0413\u0430\u043b\u0441\u043a\u0438
 languages.sl=\u0421\u043b\u043e\u0432\u0435\u043d\u0430\u0447\u043a\u0438
-languages.sk=\u0421\u043b\u043e\u0432\u0430\u0447\u043a\u0438
-languages.da=\u0414\u0430\u043d\u0441\u043a\u0438
 languages.ga=\u0418\u0440\u0441\u043a\u0438
-languages.sh=\u0421\u0440\u043f\u0441\u043a\u043e-\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438
-languages.vi=\u0412\u0438\u0458\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438
-languages.ja=\u0408\u0430\u043f\u0430\u043d\u0441\u043a\u0438
-languages.yi=\u0408\u0438\u0434\u0438\u0448
+languages.sk=\u0421\u043b\u043e\u0432\u0430\u0447\u043a\u0438
+languages.si=\u0421\u0438\u043d\u0433\u0430\u043b\u0435\u0441\u043a\u0438
+languages.sh=\u0421\u0440\u043f\u0441\u043a\u043e\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.fy=\u0424\u0440\u0438\u0437\u0438\u0458\u0441\u043a\u0438
+languages.sd=\u0421\u0438\u043d\u0434\u0438
+languages.sc=\u0421\u0430\u0440\u0434\u0438\u045a\u0430\u0441\u043a\u0438
 languages.sa=\u0421\u0430\u043d\u0441\u043a\u0440\u0438\u0442
-languages.cs=\u0427\u0435\u0448\u043a\u0438
-languages.lv=\u041b\u0435\u0442\u043e\u043d\u0441\u043a\u0438
+languages.ang=\u0421\u0442\u0430\u0440\u043e\u0435\u043d\u0433\u043b\u0435\u0441\u043a\u0438
 languages.fr=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0438
-languages.it=\u0418\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0438
-languages.co=\u041a\u043e\u0440\u0437\u0438\u043a\u0430\u043d\u0441\u043a\u0438
-languages.is=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438
-languages.lt=\u041b\u0438\u0442\u0432\u0430\u043d\u0441\u043a\u0438
+languages.sla=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.fo=\u0424\u0430\u0440\u0441\u043a\u0438
+languages.pro=\u0421\u0442\u0430\u0440\u043e\u043f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u0441\u043a\u0438
 languages.ru=\u0420\u0443\u0441\u043a\u0438
+languages.cai=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e \u0430\u043c\u0435\u0440\u0438\u0447\u043a\u0438 \u0418\u043d\u0434\u0438\u0458\u0430\u043d\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
 languages.fi=\u0424\u0438\u043d\u0441\u043a\u0438
 languages.ro=\u0420\u0443\u043c\u0443\u043d\u0441\u043a\u0438
 languages.rm=\u0420\u0435\u0442\u043e-\u0420\u043e\u043c\u0430\u043d\u0441\u043a\u0438
-languages.ca=\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438
-languages.id=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0458\u0441\u043a\u0438
-languages.uk=\u0423\u043a\u0440\u0430\u0458\u0438\u043d\u0441\u043a\u0438
 languages.fa=\u041f\u0435\u0440\u0441\u0438\u0458\u0441\u043a\u0438
-languages.la=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0438
-languages.hy=\u0410\u0440\u043c\u0435\u043d\u0441\u043a\u0438
+languages.pt_PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 (\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u0458\u0430)
+languages.nl_BE=\u0424\u043b\u0430\u043c\u0435\u043d\u0441\u043a\u0438
+languages.es_419=\u0428\u043f\u0430\u043d\u0441\u043a\u0438 (\u0408\u0443\u0436\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0438 \u041a\u0430\u0440\u0438\u0431\u0438)
+languages.peo=\u0421\u0442\u0430\u0440\u043e\u043f\u0435\u0440\u0441\u0438\u0458\u0441\u043a\u0438
 languages.eu=\u0411\u0430\u0441\u043a\u0438\u0458\u0441\u043a\u0438
-languages.ky=\u041a\u0438\u0440\u0433\u0438\u0441\u043a\u0438
-languages.br=\u0411\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438
 languages.et=\u0415\u0441\u0442\u043e\u043d\u0441\u043a\u0438
 languages.es=\u0428\u043f\u0430\u043d\u0441\u043a\u0438
-languages.hu=\u041c\u0430\u0452\u0430\u0440\u0441\u043a\u0438
-languages.ku=\u041a\u0443\u0440\u0434\u0441\u043a\u0438
-languages.hr=\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438
 languages.eo=\u0415\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
 languages.en=\u0415\u043d\u0433\u043b\u0435\u0441\u043a\u0438
 languages.el=\u0413\u0440\u0447\u043a\u0438
-languages.ko=\u041a\u043e\u0440\u0435\u0458\u0441\u043a\u0438
-languages.no=\u041d\u043e\u0440\u0432\u0435\u0448\u043a\u0438
+languages.jrb=\u0408\u0443\u0434\u0435\u043e-\u0430\u0440\u0430\u043f\u0441\u043a\u0438
+languages.fro=\u0421\u0442\u0430\u0440\u043e\u0444\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0438
+languages.del=\u0414\u0435\u043b\u0430\u0432\u0435\u0440
+languages.pt=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
+languages.ps=\u041f\u0430\u0448\u0442\u043e
+languages.de=\u041d\u0435\u043c\u0430\u0447\u043a\u0438
+languages.pl=\u041f\u043e\u0459\u0441\u043a\u0438
+languages.da=\u0414\u0430\u043d\u0441\u043a\u0438
+languages.sux=\u0421\u0443\u043c\u0435\u0440\u0441\u043a\u0438
+languages.jpr=\u0408\u0443\u0434\u0435\u043e-\u043f\u0435\u0440\u0441\u0438\u0458\u0441\u043a\u0438
+languages.cy=\u0412\u0435\u043b\u0448\u043a\u0438
+languages.akk=\u0410\u043a\u0430\u0434\u0438\u0458\u0441\u043a\u0438
+languages.pa=\u041f\u0430\u043d\u045f\u0430\u0431\u0441\u043a\u0438
+languages.cu=\u0426\u0440\u043a\u0432\u0435\u043d\u043e\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438
+languages.cs=\u0427\u0435\u0448\u043a\u0438
+languages.co=\u041a\u043e\u0440\u0437\u0438\u043a\u0430\u043d\u0441\u043a\u0438
+languages.or=\u041e\u0440\u0438\u0458\u0441\u043a\u0438
+languages.ce=\u0427\u0435\u0447\u0435\u043d\u0441\u043a\u0438
+languages.ca=\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438
+languages.oc=\u041f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u0441\u043a\u0438
+languages.bs=\u0411\u043e\u0441\u0430\u043d\u0441\u043a\u0438
+languages.br=\u0411\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438
+languages.bo=\u0422\u0438\u0431\u0435\u0442\u0430\u043d\u0441\u043a\u0438
+languages.zh_Hans=\u041a\u0438\u043d\u0435\u0441\u043a\u0438 (\u043f\u043e\u0458\u0435\u0434\u043d\u043e\u0441\u0442\u0430\u0432\u0459\u0435\u043d)
+languages.bn=\u0411\u0435\u043d\u0433\u043b\u0430\u0441\u043a\u0438
+languages.zh_Hant=\u041a\u0438\u043d\u0435\u0441\u043a\u0438 (\u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u0438)
+languages.nv=\u041d\u0430\u0432\u0430\u0445\u043e
+languages.bh=\u0411\u0438\u0445\u0430\u0440\u0441\u043a\u0438
 languages.bg=\u0411\u0443\u0433\u0430\u0440\u0441\u043a\u0438
-languages.km=\u041a\u043c\u0435\u0440\u0441\u043a\u0438
-languages.tr=\u0422\u0443\u0440\u0441\u043a\u0438
 languages.be=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0438
-languages.hi=\u0425\u0438\u043d\u0434\u0438
+languages.no=\u041d\u043e\u0440\u0432\u0435\u0448\u043a\u0438
 languages.nl=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438
-languages.he=\u0425\u0435\u0431\u0440\u0435\u0458\u0441\u043a\u0438
+languages.zu=\u0417\u0443\u043b\u0443
+languages.sgn=\u0408\u0435\u0437\u0438\u043a \u0437\u043d\u0430\u043a\u043e\u0432\u0430
+languages.az=\u0410\u0437\u0435\u0440\u0431\u0435\u0458\u045f\u0430\u043d\u0441\u043a\u0438
+languages.ne=\u041d\u0435\u043f\u0430\u043b\u0441\u043a\u0438
+languages.av=\u0410\u0432\u0430\u0440\u0441\u043a\u0438
+languages.aus=\u0410\u0443\u0441\u0442\u0440\u0430\u043b\u0438\u0458\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.as=\u0410\u0441\u0435\u043c\u0438\u0458\u0441\u043a\u0438
+languages.ar=\u0410\u0440\u0430\u043f\u0441\u043a\u0438
+languages.zh=\u041a\u0438\u043d\u0435\u0441\u043a\u0438
+languages.zxx=\u0411\u0435\u0437 \u043b\u0438\u043d\u0433\u0432\u0438\u0441\u0442\u0438\u0447\u043a\u043e\u0433 \u0441\u0430\u0434\u0440\u0436\u0430\u0458\u0430
+languages.sga=\u0421\u0442\u0430\u0440\u043e\u0438\u0440\u0441\u043a\u0438
+languages.my=\u0411\u0443\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.am=\u0410\u043c\u0445\u0430\u0440\u0441\u043a\u0438
+languages.nai=\u0408\u0435\u0437\u0438\u043a \u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u0447\u043a\u0438\u0445 \u0418\u043d\u0434\u0438\u0458\u0430\u043d\u0430\u0446\u0430
+languages.mt=\u041c\u0435\u043b\u0442\u0435\u0448\u043a\u0438
+languages.ms=\u041c\u0430\u043b\u0430\u0458\u0441\u043a\u0438
+languages.chr=\u0427\u0438\u0440\u043e\u043a\u0438
+languages.mr=\u041c\u0430\u0440\u0430\u0442\u0438
+languages.af=\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0435\u0440\u0441\u043a\u0438
+languages.haw=\u0425\u0430\u0432\u0430\u0458\u0441\u043a\u0438
+languages.mo=\u041c\u043e\u043b\u0434\u0430\u0432\u0441\u043a\u0438
+languages.mn=\u041c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438
+languages.en_US=\u0415\u043d\u0433\u043b\u0435\u0441\u043a\u0438 (\u0421\u0410\u0414)
+languages.ml=\u041c\u0430\u043b\u0430\u0458\u0430\u043b\u0430\u043c
+languages.bnt=\u0411\u0430\u043d\u0442\u0443
+languages.mk=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438
+languages.mi=\u041c\u0430\u043e\u0440\u0441\u043a\u0438
+languages.egy=\u0421\u0442\u0430\u0440\u043e\u0435\u0433\u0438\u043f\u0430\u0442\u0441\u043a\u0438
+languages.tlh=\u041a\u043b\u0438\u043d\u0433\u043e\u043d\u0441\u043a\u0438
+languages.yi=\u0408\u0438\u0434\u0438\u0448
+languages.gsw=\u041d\u0435\u043c\u0430\u0447\u043a\u0438 (\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0430)
+languages.bat=\u0411\u0430\u043b\u0442\u0438\u0447\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.lv=\u041b\u0435\u0442\u043e\u043d\u0441\u043a\u0438
+languages.dak=\u0414\u0430\u043a\u043e\u0442\u0430
+languages.lt=\u041b\u0438\u0442\u0432\u0430\u043d\u0441\u043a\u0438
+languages.lo=\u041b\u0430\u043e\u0441\u043a\u0438
+languages.ln=\u041b\u0438\u043d\u0433\u0430\u043b\u0430
+variants.SCOTLAND=SCOTLAND
+variants.1606NICT=1606NICT
index 6d66ad180e6006fd515e13d1fe0aa20cdc23acc8..ca2218df89cdc56b99850a8d62e61b3406d1b828 100644 (file)
@@ -5,19 +5,14 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
 currenciesDisplayName.BAM=\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0431\u0438\u043b\u043d\u0430 \u041c\u0430\u0440\u043a\u0430
 currenciesSymbol.BAM=\u041a\u041c.
-shortMonths=\u0408\u0430\u043d®\u0424\u0435\u0431®\u041c\u0430\u0440®\u0410\u043f\u0440®\u041c\u0430\u0458®\u0408\u0443\u043d®\u0408\u0443\u043b®\u0410\u0432\u0433®\u0421\u0435\u043f®\u041e\u043a\u0442®\u041d\u043e\u0432®\u0414\u0435\u0446®®
-months=®®®®®\u0458\u0443\u043d\u0438®\u0458\u0443\u043b\u0438®®®®®®®
-shortWeekdays=®®®®\u0441\u0440\u0438®®®®
-weekdays=®®®®\u0441\u0440\u0438\u0458\u0435\u0434\u0430®®®®
+months=\u00ae\u00ae\u00ae\u00ae\u00ae\u0458\u0443\u043d\u0438\u00ae\u0458\u0443\u043b\u0438\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00ae\u00ae\u00ae\u00ae\u0441\u0440\u0438\u00ae\u00ae\u00ae\u00ae
+weekdays=\u00ae\u00ae\u00ae\u00ae\u0441\u0440\u0438\u0458\u0435\u0434\u0430\u00ae\u00ae\u00ae\u00ae
 shortDateFormat=yy-MM-dd
 mediumDateFormat=yyyy-MM-dd
-longDateFormat=dd. MMMM yyyy.
-fullDateFormat=EEEE, dd. MMMM yyyy.
 shortTimeFormat=HH:mm
 mediumTimeFormat=HH:mm:ss
-fullTimeFormat=HH '\u0447\u0430\u0441\u043e\u0432\u0430', mm '\u043c\u0438\u043d\u0443\u0442\u0430', ss' \u0441\u0435\u043a\u0443\u043d\u0434\u0438'
-zoneStrings=Europe/Sarajevo®\u0421\u0440\u0435\u0434\u045a\u0435 \u0415\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u0412\u0440\u0438\u0458\u0435\u043c\u0435®©
-languages.sr=\u0441\u0440\u043f\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+fullTimeFormat=HH '\u0447\u0430\u0441\u043e\u0432\u0430', mm '\u043c\u0438\u043d\u0443\u0442\u0430', ss '\u0441\u0435\u043a\u0443\u043d\u0434\u0438' z
+languages.sr=\u0441\u0440\u043f\u0441\u043a\u0438
index 8f6a178f0c193e83fc550c37ea47a5f2ed882690..48b6bf29ff987f3d715eedd0b0e5545dc90e55ca 100644 (file)
@@ -5,50 +5,87 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currenciesDisplayName.GBP=Funta sterlinga
 currenciesDisplayName.CHF=\u0160vajcarski franak
+currenciesDisplayName.AUD=Australijski dolar
+currenciesDisplayName.FJD=Fid\u017ei dolar
+currenciesDisplayName.RUB=Ruska rublja
+currenciesDisplayName.ESP=\u0160panska pezeta
+currenciesDisplayName.CZK=\u010ce\u0161ka kruna
+currenciesDisplayName.SEK=\u0160vedska kruna
+currenciesDisplayName.BEF=Belgijski franak
 currenciesDisplayName.HRK=Kuna
-currenciesDisplayName.FRF=Francuski franak
+currenciesDisplayName.SKK=Slova\u010dka kruna
+currenciesDisplayName.MAD=Marokanski dirham
+currenciesDisplayName.TWD=Novi tajvanski dolar
+currenciesDisplayName.XXX=Nepoznata ili neva\u017ee\u0107a valuta
+currenciesDisplayName.MYR=Malezijski ringgit
+currenciesDisplayName.BND=Brunejski dolar
+currenciesDisplayName.ATS=Austrijski \u0161iling
+currenciesDisplayName.HUF=Ma\u0111arska forinta
 currenciesDisplayName.IEP=Irska funta
+currenciesDisplayName.HRD=Hrvatski dinar
+currenciesDisplayName.UAH=Ukrajinska hrivnja
+currenciesDisplayName.KWD=Kuvajtski dinar
 currenciesDisplayName.INR=Indijski Rupi
+currenciesDisplayName.AED=Ujedinjeni arapski emirati dirham
+currenciesDisplayName.FIM=Finska marka
+currenciesDisplayName.GRD=Drahma
+currenciesDisplayName.CAD=Kanadski dolar
+currenciesDisplayName.BAM=Konvertibilna marka
+currenciesDisplayName.ITL=Italijanska lira
+currenciesDisplayName.USD=Ameri\u010dki dolar
+currenciesDisplayName.BGN=Bugarski lev
 currenciesDisplayName.JPY=Jen
-currenciesDisplayName.HRD=Hrvatski dinar
+currenciesDisplayName.PKR=Pakistanski rupi
+currenciesDisplayName.PEN=Peruanski nuevo sol
+currenciesDisplayName.GBP=Funta sterlinga
+currenciesDisplayName.PHP=Filipinski peso
+currenciesDisplayName.FRF=Francuski franak
+currenciesDisplayName.NOK=Norve\u0161ka kruna
 currenciesDisplayName.EUR=EVRO
-currenciesDisplayName.ITL=Italijanska lira
+currenciesDisplayName.NLG=Holandski gulden
+currenciesDisplayName.CSD=Srpski Dinar (Srbija i Crna Gora)
+currenciesDisplayName.HKD=Hong Kongski Dolari
+currenciesDisplayName.IDR=Indonezijska rupiah
+currenciesDisplayName.ZAR=Ju\u017ena Afrika Rand
+currenciesDisplayName.SGD=Singapurski dolar
+currenciesDisplayName.MXN=Meksi\u010dki peso
+currenciesDisplayName.TRY=Nova turska lira
+currenciesDisplayName.CLP=\u010cileanski pezo
 currenciesDisplayName.PTE=Portugalski eskudo
-currenciesDisplayName.AUD=Australijski dolar
-currenciesDisplayName.NOK=Norve\u0161ka kruna
-currenciesDisplayName.DEM=Nema\u010dka marka
+currenciesDisplayName.COP=Kolumbijski pezo
+currenciesDisplayName.KRW=Ju\u017eno-korejski Von
+currenciesDisplayName.SIT=Tolar
+currenciesDisplayName.RSD=Srpski Dinar
+currenciesDisplayName.EEK=Estonska kroon
+currenciesDisplayName.TRL=Turska lira
 currenciesDisplayName.LUF=Luksembur\u0161ki franak
-currenciesDisplayName.NLG=Holandski gulden
-currenciesDisplayName.BEF=Belgijski franak
+currenciesDisplayName.DEM=Nema\u010dka marka
+currenciesDisplayName.BRL=Brazilski Real
+currenciesDisplayName.VEB=Venecuelanski bolivar
+currenciesDisplayName.ARS=Argentinski pezo
+currenciesDisplayName.CNY=Kineski Juan Renminbi
 currenciesDisplayName.DKK=Danska kruna
+currenciesDisplayName.ILS=Izraelski \u0161ekel
+currenciesDisplayName.MTL=Malte\u0161ka lira
+currenciesDisplayName.VND=Vijetnamski dong
+currenciesDisplayName.BOB=Bolivijski Boliviano
+currenciesDisplayName.NZD=Novozelandski dolar
 currenciesDisplayName.RUR=Ruska rublja (1991-1998)
-currenciesDisplayName.KWD=Kuvajtski dinar
-currenciesDisplayName.CNY=Kineski Juan Renminbi
-currenciesDisplayName.ESP=\u0160panska pezeta
-currenciesDisplayName.GRD=Drahma
-currenciesDisplayName.CAD=Kanadski dolar
-currenciesDisplayName.ATS=Austrijski \u0161iling
-currenciesDisplayName.BRL=Brazilski Real
-currenciesDisplayName.SEK=\u0160vedska kruna
-currenciesDisplayName.USD=Ameri\u010dki dolar
-currenciesDisplayName.CSD=Srpski Dinar
-currenciesDisplayName.RUB=Ruska rublja
-currenciesDisplayName.FIM=Finska marka
-currenciesDisplayName.SIT=Tolar
-currenciesDisplayName.BAM=Konvertibilna marka
+currenciesDisplayName.RON=Rumunski leu
+currenciesDisplayName.KES=Kenijski \u0161iling
+currenciesDisplayName.LTL=Litvanski litas
+currenciesDisplayName.EGP=Egipatska funta
 currenciesSymbol.CNY=U
 currenciesSymbol.YUN=Din
-shortMonths=jan®feb®mar®apr®maj®jun®jul®avg®sep®okt®nov®dec®®
-months=januar®februar®mart®april®maj®jun®jul®avgust®septembar®oktobar®novembar®decembar®®
-shortWeekdays=®ned®pon®uto®sre®\u010det®pet®sub®
-weekdays=®nedelja®ponedeljak®utorak®sreda®\u010detvrtak®petak®subota®
-eras=p. n. e.®n. e.®
-longDateFormat=EEEE, d.MM.yyyy.
-fullDateFormat=EEEE, dd. MMMM yyyy.
-zoneStrings=Europe/Belgrade®Centralno Evropsko Vreme®Centralno Evropsko Vreme®©
-territories.TL=Timor-Leste
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aeavg\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januar\u00aefebruar\u00aemart\u00aeapril\u00aemaj\u00aejun\u00aejul\u00aeavgust\u00aeseptembar\u00aeoktobar\u00aenovembar\u00aedecembar\u00ae\u00ae
+shortWeekdays=\u00aened\u00aepon\u00aeuto\u00aesre\u00ae\u010det\u00aepet\u00aesub\u00ae
+weekdays=\u00aenedelja\u00aeponedeljak\u00aeutorak\u00aesreda\u00ae\u010detvrtak\u00aepetak\u00aesubota\u00ae
+eras=p. n. e.\u00aen. e\u00ae
+ampms=AM\u00aePM\u00ae
+zoneStrings=Europe_Central\u00aeCentralnoevropsko vreme\u00ae\u00aeCentralnoevropsko letnje vreme\u00ae\u00ae\u00a9
+territories.TL=Isto\u010dni Timor
 territories.TK=Tokelau
 territories.TJ=Tad\u017eikistan
 territories.TH=Tajland
@@ -72,10 +109,11 @@ territories.GL=Grenland
 territories.SV=Salvador
 territories.062=Ju\u017eno-centralna Azija
 territories.ST=Sao Tome i Principe
-territories.061=Polinezija
 territories.GI=Gibraltar
+territories.061=Polinezija
 territories.GH=Gana
 territories.SR=Surinam
+territories.GG=Gurnsi
 territories.GF=Francuska Gvajana
 territories.GE=Gruzija
 territories.SO=Somalija
@@ -96,26 +134,27 @@ territories.SC=Sej\u0161eli
 territories.SB=Solomonska Ostrva
 territories.SA=Saudijska Arabija
 territories.FR=Francuska
-territories.057=Micronezija
 territories.FO=Farska Ostrva
+territories.057=Micronezija
 territories.FM=Mikronezija
 territories.RW=Ruanda
 territories.054=Melanezija
-territories.053=Australija i Novi Zeland
 territories.FK=Folklandska Ostrva
+territories.053=Australija i Novi Zeland
 territories.RU=Rusija
 territories.FJ=Fid\u017ei
 territories.FI=Finska
+territories.RS=Srbija
 territories.RO=Rumunija
 territories.RE=Rejunion
 territories.ET=Etiopija
 territories.ES=\u0160panija
 territories.ER=Eritreja
-territories.833=Ostrvo Man
+territories.QU=Evropska unija
 territories.EH=Zapadna Sahara
 territories.EG=Egipat
-territories.830=Kanalska ostrva
 territories.EE=Estonija
+territories.830=Kanalska ostrva
 territories.QO=Ostala okeanija
 territories.EC=Ekvador
 territories.DZ=Al\u017eir
@@ -123,9 +162,10 @@ territories.QA=Katar
 territories.039=Ju\u017ena Evropa
 territories.DO=Dominikanska Republika
 territories.PY=Paragvaj
-territories.035=Jugoisto\u010dna Azija
 territories.DM=Dominika
+territories.035=Jugoisto\u010dna Azija
 territories.PW=Palau
+territories.034=Ju\u017ena Azija
 territories.DK=Danska
 territories.DJ=D\u017eibuti
 territories.PT=Portugal
@@ -143,7 +183,7 @@ territories.PF=Francuska Polinezija
 territories.CZ=\u010ce\u0161ka
 territories.PE=Peru
 territories.CY=Kipar
-territories.CX=Uskr\u0161nja Ostrva
+territories.CX=Bo\u017ei\u0107na Ostrva
 territories.CV=Kape Verde
 territories.PA=Panama
 territories.CU=Kuba
@@ -155,8 +195,8 @@ territories.CN=Kina
 territories.CM=Kamerun
 territories.CL=\u010cile
 territories.CK=Kukova Ostrva
-territories.CI=Obala Slonova\u010de
 territories.021=Severna Amerika
+territories.CI=Obala Slonova\u010de
 territories.CH=\u0160vajcarska
 territories.CG=Kongo
 territories.CF=Centralno Afri\u010dka Republika
@@ -164,6 +204,7 @@ territories.CD=Demokratska Republika Kongo
 territories.CC=Kokos (Keling) Ostrva
 territories.OM=Oman
 territories.CA=Kanada
+territories.419=Latinska Amerika i Karibi
 territories.BZ=Belise
 territories.BY=Belorusija
 territories.BW=Bocvana
@@ -174,23 +215,24 @@ territories.BR=Brazil
 territories.019=Amerike
 territories.018=Ju\u017ena Afrika
 territories.NZ=Novi Zeland
-territories.BO=Bolivija
 territories.017=Centralna Afrika
+territories.BO=Bolivija
 territories.BN=Brunej
-territories.BM=Bermuda
 territories.015=Severna Afrika
+territories.BM=Bermuda
 territories.014=Isto\u010dna Afrika
 territories.013=Centralna Amerika
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Zapadna Afrika
+territories.BI=Burundi
 territories.BH=Bahrein
 territories.NR=Nauru
 territories.BG=Bugarska
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgija
+territories.ZZ=Nepoznat ili neva\u017ee\u0107i region
 territories.NO=Norve\u0161ka
 territories.BD=Banglade\u0161
 territories.BB=Barbados
@@ -211,24 +253,25 @@ territories.AU=Australija
 territories.AT=Austrija
 territories.AS=Ameri\u010dka Samoa
 territories.AR=Argentina
-territories.009=Okeanija
 territories.AQ=Antarktika
+territories.009=Okeanija
 territories.MZ=Mozambik
 territories.AO=Angola
 territories.MY=Malezija
 territories.AN=Holandski Antili
 territories.MX=Meksiko
-territories.005=Ju\u017ena Amerika
 territories.AM=Armenija
+territories.005=Ju\u017ena Amerika
 territories.MW=Malavi
 territories.AL=Albanija
 territories.MV=Maldivi
-territories.ZA=Ju\u017ena Afrika
+territories.003=Severnoameri\u010dki kontinent
+territories.ZA=Ju\u017enoafri\u010dka Republika
 territories.MU=Mauricius
 territories.002=Afrika
 territories.MT=Malta
-territories.001=Svet
 territories.AI=Angvila
+territories.001=Svet
 territories.MS=Monserat
 territories.MR=Mauritanija
 territories.AG=Antigva i Barbuda
@@ -236,7 +279,7 @@ territories.MQ=Martinik
 territories.AF=Avganistan
 territories.MP=Severna Marijanska Ostrva
 territories.AE=Ujedinjeni Arapski Emirati
-territories.MO=Makao (S. A. R. Kina)
+territories.MO=Makao
 territories.AD=Andora
 territories.MN=Mongolija
 territories.MM=Mijanmar
@@ -245,6 +288,7 @@ territories.MK=Makedonija
 territories.YT=Majote
 territories.MH=Mar\u0161alska Ostrva
 territories.MG=Madagaskar
+territories.ME=Crna Gora
 territories.MD=Moldavija
 territories.MC=Monako
 territories.MA=Maroko
@@ -283,6 +327,7 @@ territories.JP=Japan
 territories.JO=Jordan
 territories.JM=Jamajka
 territories.VU=Vanuatu
+territories.JE=D\u017eersi
 territories.VN=Vijetnam
 territories.VI=S.A.D. Devi\u010danska Ostrva
 territories.VG=Britanska Devi\u010danska Ostrva
@@ -294,9 +339,10 @@ territories.IS=Island
 territories.IR=Iran
 territories.IQ=Irak
 territories.UZ=Uzbekistan
-territories.IO=British Indian Ocean Territory
+territories.IO=Britansko Indijska Okeanska Teritorija
 territories.UY=Urugvaj
 territories.IN=Indija
+territories.IM=Ostrvo Man
 territories.IL=Izrael
 territories.US=Sjedinjene Ameri\u010dke Dr\u017eave
 territories.IE=Irska
@@ -312,70 +358,127 @@ territories.HN=Honduras
 territories.HM=Herd i Mekdonald Ostrva
 territories.TW=Tajvan
 territories.TV=Tuvalu
-territories.HK=Hong Kong (S. A. R. Kina)
+territories.HK=Hong Kong
 territories.TT=Trinidad i Tobago
 territories.TR=Turska
 territories.TO=Tonga
 territories.TN=Tunis
 territories.TM=Turkmenistan
+languages.es=\u0160panski
+languages.ku=Kurdski
+languages.eo=Esperanto
+languages.en=Engleski
+languages.el=Gr\u010dki
+languages.ko=Korejski
+languages.kn=Kanada
+languages.km=Kmerski
 languages.ka=Gruzijski
+languages.zh_Hans=Kineski (pojednostavljen)
+languages.zh_Hant=Kineski (tradicionalni)
+languages.jv=Javanski
+languages.fil=Tagalog
+languages.pt=Portugalski
+languages.ps=Pa\u0161tunski
+languages.de=Nema\u010dki
+languages.pl=Poljski
+languages.da=Danski
+languages.tlh=Klingonski
+languages.ja=Japanski
+languages.vi=Vijetnamski
+languages.cy=Vel\u0161ki
+languages.pa=Pand\u017eabski
+languages.cu=Staroslovenski
+languages.cs=\u010ce\u0161ki
+languages.it=Italijanski
+languages.co=Korzikanski
+languages.is=Islandski
+languages.haw=Havajski
+languages.uz=Uzbe\u010dki
+languages.or=Orijski
+languages.ce=\u010ce\u010denski
+languages.ur=Urdu
+languages.chr=\u010ceroki
+languages.ca=Katalonski
+languages.ie=Me\u0111ujezi\u010dki
+languages.id=Indonezijski
+languages.uk=Ukrajinski
+languages.ia=Interlingva
+languages.oc=Provansalski
+languages.ug=Ujgurski
+languages.hy=Jermenski
+languages.bs=Bosanski
+languages.br=Bretonski
+languages.hu=Ma\u0111arski
+languages.pt_PT=Portugalski (Portugalija)
+languages.bn=Bengalski
+languages.hr=Hrvatski
+languages.tw=Tvi
+languages.bh=Biharski
+languages.bg=Bugarski
+languages.no=Norve\u0161ki
+languages.be=Beloruski
+languages.hi=Hindi
+languages.tr=Turski
+languages.nl=Holandski
+languages.zu=Zulu
+languages.he=Hebrejski
+languages.tl=Tagalski
+languages.tk=Turkmenski
+languages.ne=Nepalski
+languages.az=Azerbejd\u017eanski
+languages.ti=Tigrinja
+languages.th=Tajlandski
+languages.en_US=Engleski (SAD)
+languages.te=Telugu
 languages.zh=Kineski
+languages.as=Asemijski
 languages.ar=Arapski
+languages.ta=Tamilski
+languages.gu=Gud\u017earati
 languages.my=Burmanski
+languages.am=Amharski
+languages.mt=Melte\u0161ki
+languages.ms=Malajski
+languages.gn=Gvarani
 languages.sw=Svahili
+languages.mr=Marati
 languages.sv=\u0160vedski
-languages.pt=Portugalski
+languages.gl=Galski
+languages.su=Sudanski
+languages.af=Afrikanerski
+languages.st=Sesoto
 languages.mo=Moldavski
-languages.sr=Srpski
 languages.mn=Mongolski
-languages.af=Afrikanerski
+languages.sr=Srpski
 languages.sq=Albanski
+languages.ml=Malajalam
 languages.mk=Makedonski
-languages.de=Nema\u010dki
-languages.pl=Poljski
+languages.so=Somalski
+languages.gd=\u0160kotski Galski
+languages.sux=Sumerski
 languages.sl=Slovena\u010dki
 languages.sk=Slova\u010dki
-languages.da=Danski
 languages.ga=Irski
+languages.si=Singaleski
 languages.sh=Srpsko-Hrvatski
-languages.vi=Vijetnamski
-languages.ja=Japanski
 languages.yi=Jidi\u0161
+languages.sd=Sindi
+languages.fy=Frizijski
 languages.sa=Sanskrit
-languages.cs=\u010ce\u0161ki
-languages.lv=Letonski
 languages.fr=Francuski
-languages.it=Italijanski
-languages.co=Korzikanski
-languages.is=Islandski
+languages.lv=Letonski
 languages.lt=Litvanski
+languages.fo=Farski
 languages.ru=Ruski
+languages.lo=Lao\u0161ki
+languages.ln=Lingala
 languages.fi=Finski
 languages.ro=Rumunski
 languages.rm=Reto-Romanski
-languages.ca=Katalonski
-languages.id=Indonezijski
-languages.uk=Ukrajinski
 languages.fa=Persijski
+languages.und=Nepoznat ili neva\u017ee\u0107i jezik
 languages.la=Latinski
-languages.hy=Armenski
+languages.xh=Hausa
 languages.eu=Baskijski
 languages.ky=Kirgiski
-languages.br=Bretonski
 languages.et=Estonski
-languages.es=\u0160panski
-languages.hu=Ma\u0111arski
-languages.ku=Kurdski
-languages.hr=Hrvatski
-languages.eo=Esperanto
-languages.en=Engleski
-languages.el=Gr\u010dki
-languages.ko=Korejski
-languages.no=Norve\u0161ki
-languages.bg=Bugarski
-languages.km=Kmerski
-languages.tr=Turski
-languages.be=Beloruski
-languages.hi=Hindi
-languages.nl=Holandski
-languages.he=Hebrejski
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties
new file mode 100644 (file)
index 0000000..7531660
--- /dev/null
@@ -0,0 +1,10 @@
+# LocaleInformation_sr_ME_Latn.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+longDateFormat=d.MM.yyyy.
+fullTimeFormat=HH.mm.ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties
new file mode 100644 (file)
index 0000000..4d828ed
--- /dev/null
@@ -0,0 +1,10 @@
+# LocaleInformation_sr_RS_Latn.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4 #,##0.00;-\u00a4 #,##0.00
+longDateFormat=d. MMM yyyy.
+fullTimeFormat=HH.mm.ss v
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ss.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ss.properties
new file mode 100644 (file)
index 0000000..763d8b1
--- /dev/null
@@ -0,0 +1,27 @@
+# LocaleInformation_ss.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Bhi\u00aeVan\u00aeVol\u00aeMab\u00aeNkh\u00aeNhl\u00aeKho\u00aeNgc\u00aeNyo\u00aeMph\u00aeLwe\u00aeNgo\u00ae\u00ae
+months=Bhimbidvwane\u00aeiNdlovana\u00aeiNdlovu-lenkhulu\u00aeMabasa\u00aeiNkhwekhweti\u00aeiNhlaba\u00aeKholwane\u00aeiNgci\u00aeiNyoni\u00aeiMphala\u00aeLweti\u00aeiNgongoni\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMso\u00aeBil\u00aeTsa\u00aeNe\u00aeHla\u00aeMgc\u00ae
+weekdays=\u00aeLisontfo\u00aeuMsombuluko\u00aeLesibili\u00aeLesitsatfu\u00aeLesine\u00aeLesihlanu\u00aeuMgcibelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.ss=Siswati
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ssy.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ssy.properties
new file mode 100644 (file)
index 0000000..2582e19
--- /dev/null
@@ -0,0 +1,9 @@
+# LocaleInformation_ssy.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortWeekdays=\u00aeNab\u00aeSan\u00aeSal\u00aeRab\u00aeCam\u00aeJum\u00aeQun\u00ae
+weekdays=\u00aeNaba Sambat\u00aeSani\u00aeSalus\u00aeRabuq\u00aeCamus\u00aeJumqata\u00aeQunxa Sambat\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_st.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_st.properties
new file mode 100644 (file)
index 0000000..3fd6a05
--- /dev/null
@@ -0,0 +1,119 @@
+# LocaleInformation_st.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Phe\u00aeKol\u00aeUbe\u00aeMme\u00aeMot\u00aeJan\u00aeUpu\u00aePha\u00aeLeo\u00aeMph\u00aePun\u00aeTsh\u00ae\u00ae
+months=Phesekgong\u00aeHlakola\u00aeHlakubele\u00aeMmese\u00aeMotsheanong\u00aePhupjane\u00aePhupu\u00aePhata\u00aeLeotshe\u00aeMphalane\u00aePundungwane\u00aeTshitwe\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMma\u00aeBed\u00aeRar\u00aeNe\u00aeHla\u00aeMoq\u00ae
+weekdays=\u00aeSontaha\u00aeMmantaha\u00aeLabobedi\u00aeLaboraru\u00aeLabone\u00aeLabohlane\u00aeMoqebelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.es=Sespain
+languages.ku=Kurdish
+languages.eo=Se-esperanto
+languages.en=Senyesemane
+languages.el=Se-greek
+languages.ko=Se-korea
+languages.kn=Se-kannada
+languages.ka=Se-geogia
+languages.jv=Se-javane
+languages.fil=Se-tagalog
+languages.pt=Se-portugal
+languages.ps=Pashto
+languages.de=Se-jeremane
+languages.pl=Se-polish
+languages.da=Se-dutch
+languages.tlh=Se-klingon
+languages.ja=Se-japane
+languages.vi=Se-vietnam
+languages.cy=Se-welsh
+languages.pa=Se-punjabi
+languages.cs=Se-czech
+languages.it=Se-tariana
+languages.is=Se-iceland
+languages.uz=Se-uzbek
+languages.or=Oriya
+languages.ur=Se-urdu
+languages.ca=Se-catalia
+languages.id=Se-indonesia
+languages.uk=Se-ukrania
+languages.ia=Se-interlingua
+languages.oc=Se-occitan
+languages.bs=Se-bosnia
+languages.br=Breton
+languages.hu=Se-hungaria
+languages.bn=Se-bengali
+languages.pt_PT=Se-portugal (Portugal)
+languages.hr=Se-croatia
+languages.tw=Twi
+languages.bh=Se-bihari
+languages.bg=Se-bulgaria
+languages.no=Se-norway
+languages.be=Se-belarusia
+languages.nn=Se-norway (Nynorsk)
+languages.hi=Se-hindi
+languages.tr=Se-theki
+languages.nl=Dutch
+languages.zu=se Zulu
+languages.he=Se-hebrew
+languages.tk=Turkmen
+languages.ne=Se-nepali
+languages.az=Se-azerbaijani
+languages.ti=Se-tigrinya
+languages.th=Se-thai
+languages.te=Se-telegu
+languages.ar=Se-arab
+languages.ta=Se-tamil
+languages.gu=Se-gujarati
+languages.am=Se-amhari
+languages.mt=Se-maltese
+languages.ms=Se-malay
+languages.gn=Guarani
+languages.sw=Se-swahili
+languages.mr=Se-marathi
+languages.sv=Se-sweden
+languages.gl=Se-galicia
+languages.su=Se-sundanese
+languages.af=Seburu
+languages.st=Sesotho
+languages.sr=Se-serbian
+languages.sq=Se-albanian
+languages.ml=Se-malayalam
+languages.mk=Se-masedonia
+languages.gd=Se-scots gaelic
+languages.sl=Se-slovania
+languages.sk=Se-slovak
+languages.ga=Se-irish
+languages.si=Se-sinhali
+languages.sh=Serbo-Croatian
+languages.pt_BR=Seputukesi (sa Brazil)
+languages.yi=Yiddish
+languages.fy=Se-frisia
+languages.fr=Se-french
+languages.lt=Se-Lithuano
+languages.fo=Se-foroese
+languages.ru=Se-rushia
+languages.fi=Se-finnish
+languages.ro=Se-romania
+languages.fa=Se-persia
+languages.la=Se-latino
+languages.xh=se Xhosa
+languages.eu=Se-basque
+languages.ky=Kyrgyz
+languages.et=Se-estonia
index 5792519c7686d0608cf1c850e0e37db8ce016153..bde180e2ceb184d4cf000af7884cde7f1a576cae 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=\u00d710^
+infinity=\u221e
+NaN=\u00a4\u00a4\u00a4
+minusSign=\u2212
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=\u00a0
-currenciesDisplayName.YDD=Jemenitisk dinar
-currenciesDisplayName.TWD=Taiwanesisk ny dollar
-currenciesDisplayName.KES=Kenyansk shilling
-currenciesDisplayName.BYB=Vitrysk ny rubel (1994-1999)
-currenciesDisplayName.LKR=Srilankesisk rupie
-currenciesDisplayName.RWF=Rwandisk franc
-currenciesDisplayName.TJS=Tadzjikisk somoni
-currenciesDisplayName.SDP=Sudanesiskt pund
-currenciesDisplayName.TJR=Tadzjikisk rubel
-currenciesDisplayName.ERN=Eritreansk nakfa
-currenciesDisplayName.GRD=Grekisk drachma
-currenciesDisplayName.IEP=Irl\u00e4ndskt pund
-currenciesDisplayName.ARS=Argentinsk peso
-currenciesDisplayName.SDD=Sudanesisk dinar
-currenciesDisplayName.ARP=Argentinsk peso (1983-1985)
-currenciesDisplayName.GEL=Georgisk lari
-currenciesDisplayName.GEK=Georgisk kupon larit
-currenciesDisplayName.CRC=Costarikansk col\u00f3n
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.YDD=jemenitiska dinarer
+currenciesDisplayName.KES=kenyanska shilling
+currenciesDisplayName.TWD=taiwanesiska nya dollar
+currenciesDisplayName.LKR=srilankesiska rupier
+currenciesDisplayName.BYB=vitryska nya rubel (1994-1999)
+currenciesDisplayName.TJS=tadzjikiska somoni
+currenciesDisplayName.RWF=rwandiska franc
+currenciesDisplayName.ERN=eritreanska nakfa
+currenciesDisplayName.TJR=tadzjikiska rubler
+currenciesDisplayName.SDP=sudanskt gammalt pund
+currenciesDisplayName.GRD=grekiska drachmer
+currenciesDisplayName.ARY=argentinska gamla pesos
+currenciesDisplayName.AFN=afghani
+currenciesDisplayName.IEP=irl\u00e4ndska pund
+currenciesDisplayName.ARS=argentinska pesos
+currenciesDisplayName.SDG=sudanskt pund
+currenciesDisplayName.ARP=argentinska pesos (1983-1985)
+currenciesDisplayName.SDD=sudansk gammal dinar
+currenciesDisplayName.GEL=georgiska lari
+currenciesDisplayName.GEK=georgiska kupon larit
+currenciesDisplayName.AFA=afghani (1927-2002)
+currenciesDisplayName.CRC=costarikanska col\u00f3n
 currenciesDisplayName.FKP=Falklands\u00f6arnas pund
-currenciesDisplayName.EEK=Estnisk krona
+currenciesDisplayName.EEK=estniska kronor
+currenciesDisplayName.MDL=moldaviska leu
 currenciesDisplayName.HKD=Hongkong-dollar
-currenciesDisplayName.MDL=Moldavisk leu
-currenciesDisplayName.ARA=Argentinsk austral
-currenciesDisplayName.IQD=Irakisk dinar
-currenciesDisplayName.SCR=Seychellisk rupie
-currenciesDisplayName.VUV=Vanuatisk vatu
-currenciesDisplayName.DKK=Dansk krona
-currenciesDisplayName.KPW=Nordkoreansk won
-currenciesDisplayName.GQE=Ekvatorialguineansk ekwele guineana
-currenciesDisplayName.IDR=Indonesisk rupiah
-currenciesDisplayName.LVR=Lettisk rubel
-currenciesDisplayName.SOS=Somalisk shilling
-currenciesDisplayName.AED=F\u00f6renade arabemiratens dirham
-currenciesDisplayName.BWP=Botswansk pula
-currenciesDisplayName.LVL=Lettisk lats
-currenciesDisplayName.RUR=Rysk rubel (1991-1998)
-currenciesDisplayName.NIO=Nicaraguansk c\u00f3rdoba oro
-currenciesDisplayName.ADP=Andorransk peseta
-currenciesDisplayName.FJD=Fijiansk dollar
-currenciesDisplayName.MOP=Macaoisk pataca
-currenciesDisplayName.RUB=Rysk rubel
-currenciesDisplayName.CDF=Kongolesisk franc congolais
-currenciesDisplayName.NIC=Nicaraguansk c\u00f3rdoba
-currenciesDisplayName.DJF=Djiboutisk franc
-currenciesDisplayName.ECV=Ecuadoriansk Unidad de Valor Constante (UVC)
+currenciesDisplayName.IQD=irakiska dinarer
+currenciesDisplayName.ARA=argentinska australer
+currenciesDisplayName.SCR=seychelliska rupier
+currenciesDisplayName.VUV=vanuatiska vatu
+currenciesDisplayName.KPW=nordkoreanska won
+currenciesDisplayName.DKK=danska kronor
+currenciesDisplayName.IDR=indonesiska rupier
+currenciesDisplayName.GQE=ekvatorialguineanska ekweler
+currenciesDisplayName.SOS=somaliska shilling
+currenciesDisplayName.LVR=lettiska rubel
+currenciesDisplayName.EQE=ekwele
+currenciesDisplayName.AED=F\u00f6renade Arabemiratens dirham
+currenciesDisplayName.LVL=lettiska lats
+currenciesDisplayName.BWP=botswanska pula
+currenciesDisplayName.RUR=ryska rubel (1991-1998)
+currenciesDisplayName.NIO=nicaraguanska c\u00f3rdoba oro
+currenciesDisplayName.XTS=(valutakod f\u00f6r test\u00e4ndam\u00e5l)
+currenciesDisplayName.MOP=Macao-pataca
+currenciesDisplayName.FJD=Fiji-dollar
+currenciesDisplayName.ADP=andorranska pesetas
+currenciesDisplayName.RUB=ryska rubel
+currenciesDisplayName.CDF=kongolesiska franc
+currenciesDisplayName.NIC=nicaraguanska c\u00f3rdoba
+currenciesDisplayName.DJF=djiboutiska franc
+currenciesDisplayName.UZS=uzbekiska sum
 currenciesDisplayName.SBD=Salomon-dollar
-currenciesDisplayName.UZS=Uzbekisk sum
-currenciesDisplayName.ECS=Ecuadoriansk sucre
-currenciesDisplayName.PHP=Filippinsk peso
-currenciesDisplayName.THB=Thail\u00e4ndsk baht
-currenciesDisplayName.LUF=Luxemburgsk franc
-currenciesDisplayName.FIM=Finsk mark
-currenciesDisplayName.TTD=Trinidadisk dollar
-currenciesDisplayName.SZL=Swazil\u00e4ndsk lilangeni
-currenciesDisplayName.MNT=Mongolisk tugrik
-currenciesDisplayName.SAR=Saudisk riyal
-currenciesDisplayName.UAK=Ukrainsk karbovanetz
-currenciesDisplayName.UAH=Ukrainsk hryvnia
-currenciesDisplayName.HUF=Ungersk forint
-currenciesDisplayName.COP=Colombiansk peso
-currenciesDisplayName.QAR=Qatarisk rial
-currenciesDisplayName.LTT=Lettisk talonas
-currenciesDisplayName.PTE=Portugisisk escudo
-currenciesDisplayName.AOR=Angolansk kwanza \u2013 Reajustado (1995-1999)
-currenciesDisplayName.UYU=Uruguayansk peso uruguayo
-currenciesDisplayName.GBP=Brittiskt pund sterling
-currenciesDisplayName.BIF=Burundisk franc
-currenciesDisplayName.INR=Indisk rupie
-currenciesDisplayName.ZRZ=Zairisk zaire
-currenciesDisplayName.AON=Angolansk ny kwanza (1990-2000)
-currenciesDisplayName.LTL=Lettisk lita
-currenciesDisplayName.XFU=French UIC-Franc
-currenciesDisplayName.KZT=Kazakisk tenge
-currenciesDisplayName.MZM=Mo\u00e7ambikisk metical
-currenciesDisplayName.UYP=Uruguayansk peso (1975-1993)
-currenciesDisplayName.AOK=Angolansk kwanza (1977-1990)
-currenciesDisplayName.BUK=Burmesisk kyat
-currenciesDisplayName.GNS=Guineansk syli
-currenciesDisplayName.XFO=Fransk guldfranc
-currenciesDisplayName.PGK=Papuansk kina
-currenciesDisplayName.SYP=Syriskt pund
-currenciesDisplayName.MZE=Mo\u00e7ambikisk escudo
-currenciesDisplayName.OMR=Omansk rial
-currenciesDisplayName.NGN=Nigeriansk naira
-currenciesDisplayName.ZRN=Zairisk ny zaire
-currenciesDisplayName.AOA=Angolansk kwanza
-currenciesDisplayName.CNY=Kinesisk yuan renminbi
-currenciesDisplayName.MAF=Marockansk franc
-currenciesDisplayName.GNF=Guineansk franc
-currenciesDisplayName.HTG=Haitisk gourde
-currenciesDisplayName.MAD=Marockansk dirham
-currenciesDisplayName.TRY=Ny turkisk lira
-currenciesDisplayName.MMK=Myanmarisk kyat
-currenciesDisplayName.MYR=Malaysisk ringgit
-currenciesDisplayName.LSL=Lesothisk loti
-currenciesDisplayName.BHD=Bahrainsk dinar
-currenciesDisplayName.SLL=Sierraleonsk leone
-currenciesDisplayName.BTN=Bhutanesisk ngultrum
-currenciesDisplayName.TRL=Turkisk lira
-currenciesDisplayName.KMF=Komorisk franc
-currenciesDisplayName.ANG=Nederl\u00e4ndsk antillisk gulden
-currenciesDisplayName.CZK=Tjeckisk koruna
-currenciesDisplayName.AZM=Azerbajdzjansk manat
+currenciesDisplayName.ECV=ecuadorianska unidad de valor constante
+currenciesDisplayName.LUL=luxemburgska franc (finansiella)
+currenciesDisplayName.ECS=ecuadorianska sucre
+currenciesDisplayName.THB=thail\u00e4ndska baht
+currenciesDisplayName.PHP=filippinska pesos
+currenciesDisplayName.LUF=luxemburgska franc
+currenciesDisplayName.RHD=rhodesiska dollar
+currenciesDisplayName.LUC=luxemburgska franc (konvertibla)
+currenciesDisplayName.FIM=finska mark
+currenciesDisplayName.TTD=Trinidad ochTobago-dollar
+currenciesDisplayName.SZL=swazil\u00e4ndska lilangeni
+currenciesDisplayName.MNT=mongoliska tugrik
+currenciesDisplayName.UAK=ukrainska karbovanetz
+currenciesDisplayName.SAR=saudiska riyal
+currenciesDisplayName.COU=colombianska unidad de valor real
+currenciesDisplayName.UAH=ukrainska hryvnia
+currenciesDisplayName.HUF=ungerska forinter
+currenciesDisplayName.QAR=qatariska rial
+currenciesDisplayName.COP=colombianska pesos
+currenciesDisplayName.LTT=lettiska talonas
+currenciesDisplayName.PTE=portugisiska escudos
+currenciesDisplayName.UYU=uruguayanska pesos
+currenciesDisplayName.AOR=angolanska kwanza reajustado (1995-1999)
+currenciesDisplayName.GBP=brittiska pund sterling
+currenciesDisplayName.ZRZ=za\u00efriska za\u00efre
+currenciesDisplayName.INR=indiska rupier
+currenciesDisplayName.BIF=burundiska franc
+currenciesDisplayName.XFU=internationella j\u00e4rnv\u00e4gsunionens franc
+currenciesDisplayName.MZN=mo\u00e7ambikiska metical
+currenciesDisplayName.LTL=litauisk lita
+currenciesDisplayName.AON=angolanska nya kwanza (1990-2000)
+currenciesDisplayName.UYP=uruguayanska pesos (1975-1993)
+currenciesDisplayName.MZM=gammla mo\u00e7ambikiska metical
+currenciesDisplayName.KZT=kazakiska tenger
+currenciesDisplayName.UYN=UYN
+currenciesDisplayName.AOK=angolanska kwanza (1977-1990)
+currenciesDisplayName.GNS=guineanska syli
+currenciesDisplayName.BUK=burmesiska kyat
+currenciesDisplayName.XFO=franska guldfranc
+currenciesDisplayName.PGK=papuanska kinor
+currenciesDisplayName.UYI=uruguayansk peso en unidades indexadas
+currenciesDisplayName.SYP=syriska pund
+currenciesDisplayName.OMR=omanska rial
+currenciesDisplayName.MZE=mo\u00e7ambikiska escudos
+currenciesDisplayName.ZRN=za\u00efriska nya za\u00efre
+currenciesDisplayName.NGN=nigerianska naira
+currenciesDisplayName.CNY=kinesiska yuan renminbi
+currenciesDisplayName.AOA=angolanska kwanza
+currenciesDisplayName.CNX=Kina-dollar
+currenciesDisplayName.MAF=marockanska franc
+currenciesDisplayName.RSD=serbisk dinar
+currenciesDisplayName.GNF=guineanska franc
+currenciesDisplayName.MAD=marockanska dirhamer
+currenciesDisplayName.HTG=haitiska gourder
+currenciesDisplayName.GNE=guineanska syli (1972-1986)
+currenciesDisplayName.TRY=turkisk lira
+currenciesDisplayName.MMK=myanmariska kyat
+currenciesDisplayName.XRE=RINET-fond
+currenciesDisplayName.MYR=malaysiska ringgiter
+currenciesDisplayName.LSM=lesothisk gammal loti
+currenciesDisplayName.XEU=europeiska valutaenheter
+currenciesDisplayName.LSL=lesothiska lotier
+currenciesDisplayName.SLL=sierraleonska leoner
+currenciesDisplayName.BHD=Bahrain-dinarer
+currenciesDisplayName.BTN=bhutanesiska ngultrum
+currenciesDisplayName.TRL=gammal turkisk lire
+currenciesDisplayName.KMF=komoriska franc
+currenciesDisplayName.CZK=tjeckiska koruna
+currenciesDisplayName.ANG=Nederl\u00e4ndska Antillernas gulden
+currenciesDisplayName.AZN=azerbajdzjanska manat
+currenciesDisplayName.AZM=azerbajdzjanska manat (1993-2006)
 currenciesDisplayName.KYD=Cayman-dollar
-currenciesDisplayName.GMD=Gambisk dalasi
-currenciesDisplayName.BGN=Bulgarisk ny lev
-currenciesDisplayName.CAD=Kanadensisk dollar
-currenciesDisplayName.MXV=Mexikansk Unidad de Inversion (UDI)
-currenciesDisplayName.BGL=Bulgarisk h\u00e5rd lev
-currenciesDisplayName.VEB=Venezuelansk bolivar
-currenciesDisplayName.MLF=Malisk franc
-currenciesDisplayName.ILS=Israelisk ny shekel
-currenciesDisplayName.MXP=Mexikansk silverpeso (1861-1992)
-currenciesDisplayName.PES=Peruansk sol
-currenciesDisplayName.GYD=Guyanansk dollar
-currenciesDisplayName.MXN=Mexikansk peso
-currenciesDisplayName.ILP=Israeliskt pund
-currenciesDisplayName.SKK=Slovakisk koruna
-currenciesDisplayName.CYP=Cypriotiskt pund
-currenciesDisplayName.PEN=Peruansk sol nuevo
-currenciesDisplayName.LRD=Liberisk dollar
-currenciesDisplayName.PEI=Peruansk inti
-currenciesDisplayName.AMD=Armenisk dram
-currenciesDisplayName.BSD=Bahamansk dollar
-currenciesDisplayName.HRK=Kroatisk kuna
-currenciesDisplayName.CLP=Chilensk peso
-currenciesDisplayName.HRD=Kroatisk dinar
-currenciesDisplayName.XPF=CFP-franc
-currenciesDisplayName.FRF=Fransk franc
-currenciesDisplayName.BRR=Brasiliansk cruzeiro
-currenciesDisplayName.MKD=Makedonisk denar
-currenciesDisplayName.CLF=Chilensk unidad de fomento
-currenciesDisplayName.ALL=Albansk lek
-currenciesDisplayName.BRN=Brasiliansk cruzado novo
-currenciesDisplayName.MWK=Malawisk kwacha
-currenciesDisplayName.BRL=Brasiliansk real
-currenciesDisplayName.TPE=Timoriansk escudo
-currenciesDisplayName.BRE=Brasiliansk cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brasiliansk cruzado
-currenciesDisplayName.BRB=Brasiliansk cruzeiro novo (1967-1986)
-currenciesDisplayName.DEM=Tysk mark
-currenciesDisplayName.KWD=Kuwaitisk dinar
-currenciesDisplayName.XCD=\u00d6stkaribisk dollar
-currenciesDisplayName.NPR=Nepalesisk rupie
-currenciesDisplayName.GWP=Guinea-Bissau-peso
-currenciesDisplayName.YUN=Jugoslavisk konvertibel dinar
-currenciesDisplayName.SVC=Salvadoransk col\u00f3n
-currenciesDisplayName.YUM=Dinar (Serbien och Montenegro)
-currenciesDisplayName.BEL=Belgisk franc (finansiell)
-currenciesDisplayName.SIT=Slovensk tolar
-currenciesDisplayName.JPY=Japansk yen
-currenciesDisplayName.XOF=CFA Franc BCEAO
-currenciesDisplayName.MVR=Maldivisk rufiyaa
-currenciesDisplayName.GWE=Portugisiska Guinea-escudo
-currenciesDisplayName.BEF=Belgisk franc
-currenciesDisplayName.TOP=Tongansk pa\u02bbanga
-currenciesDisplayName.YUD=Jugoslavisk h\u00e5rd dinar
-currenciesDisplayName.BEC=Belgisk franc (konvertibel)
-currenciesDisplayName.SUR=Sovjetisk rubel
-currenciesDisplayName.ROL=Rum\u00e4nsk leu
-currenciesDisplayName.DDM=\u00d6sttysk mark
-currenciesDisplayName.BDT=Bangladeshisk taka
-currenciesDisplayName.AWG=Aruba-florin
-currenciesDisplayName.NOK=Norsk krona
-currenciesDisplayName.MUR=Mauritisk rupie
-currenciesDisplayName.ZAR=Sydafrikansk rand
+currenciesDisplayName.GMD=gambiska dalasi
+currenciesDisplayName.VEF=venezuelanska bolivar fuerte
+currenciesDisplayName.BGN=bulgariska nya lev
+currenciesDisplayName.MXV=mexikanska unidad de inversion
+currenciesDisplayName.CAD=kanadensiska dollar
+currenciesDisplayName.BGM=bulgariska lev (1952\u20131962)
+currenciesDisplayName.BGL=bulgariska lev (1962\u20131999)
+currenciesDisplayName.VEB=venezuelanska bolivar
+currenciesDisplayName.MLF=maliska franc
+currenciesDisplayName.MXP=mexikanska silverpesos (1861-1992)
+currenciesDisplayName.ILS=israeliska nya shekel
+currenciesDisplayName.PES=peruanska sol
+currenciesDisplayName.ILR=israeliska gamla shekel
+currenciesDisplayName.MXN=mexikanska pesos
+currenciesDisplayName.GYD=guyansk dollar
+currenciesDisplayName.ILP=israeliska pund
+currenciesDisplayName.CYP=cypriotiskta pund
+currenciesDisplayName.SKK=slovakisa korunor
+currenciesDisplayName.XDR=IMF s\u00e4rskilda dragningsr\u00e4tter
+currenciesDisplayName.PEN=peruanska sol nuevo
+currenciesDisplayName.LRD=Liberia-dollar
+currenciesDisplayName.PEI=peruanska intier
+currenciesDisplayName.AMD=armeniska dram
+currenciesDisplayName.BSD=Bahamas-dollar
+currenciesDisplayName.XPT=uns platina
+currenciesDisplayName.HRK=kroatiska kunor
+currenciesDisplayName.CLP=chilenska pesos
+currenciesDisplayName.HRD=kroatiska dinarer
+currenciesDisplayName.XPF=Stilla Havet-franc
+currenciesDisplayName.FRF=franska franc
+currenciesDisplayName.XPD=uns palladium
+currenciesDisplayName.BRR=brasilianska cruzeiros
+currenciesDisplayName.MKD=makedoniska denarer
+currenciesDisplayName.CLF=chilenska unidad de fomento
+currenciesDisplayName.ALL=albanska lek
+currenciesDisplayName.BRN=brasilianska cruzado novo
+currenciesDisplayName.ALK=albanska gamla lek
+currenciesDisplayName.MWK=malawiska kwacha
+currenciesDisplayName.BRL=brasilianska real
+currenciesDisplayName.TPE=timorianska escudos
+currenciesDisplayName.BRE=brasilianska cruzeiro (1990-1993)
+currenciesDisplayName.BRC=brasilianska cruzado
+currenciesDisplayName.BRB=brasilianska cruzeiro novo (1967-1986)
+currenciesDisplayName.DEM=tyska mark
+currenciesDisplayName.KWD=kuwaitiska dinarer
+currenciesDisplayName.XCD=\u00f6stkaribiska dollar
+currenciesDisplayName.NPR=nepalesiska rupier
+currenciesDisplayName.GWP=Guinea-Bissau-pesos
+currenciesDisplayName.YUN=jugoslaviska dinarer (konvertibla)
+currenciesDisplayName.SVC=salvadoranska col\u00f3n
+currenciesDisplayName.YUM=jugoslaviska nya dinarer
+currenciesDisplayName.BEL=belgiska franc (finansiella)
+currenciesDisplayName.SIT=slovenska tolar
+currenciesDisplayName.JPY=japanska yen
+currenciesDisplayName.XOF=v\u00e4stafrikansk franc
+currenciesDisplayName.MVR=maldiviska rufiyer
+currenciesDisplayName.BEF=belgiska franc
+currenciesDisplayName.GWE=Portugisiska Guinea-escudos
+currenciesDisplayName.TOP=tonganska pa\u02bbanga
+currenciesDisplayName.YUD=jugoslaviska h\u00e5rda dinarer
+currenciesDisplayName.BEC=belgiska franc (konvertibla)
+currenciesDisplayName.SUR=sovjetiska rubler
+currenciesDisplayName.RON=rum\u00e4nska leu
+currenciesDisplayName.ROL=gamla rum\u00e4nska leu
+currenciesDisplayName.ROK=ROK
+currenciesDisplayName.BDT=bangladeshiska taka
+currenciesDisplayName.DDM=\u00f6sttyska mark
+currenciesDisplayName.XBD=europeiska kontoenheter (XBD)
+currenciesDisplayName.AWG=Aruba-gulden
+currenciesDisplayName.XBC=europeiska kontoenheter (XBC)
+currenciesDisplayName.XBB=europeisk gammal monet\u00e4r enhet
+currenciesDisplayName.XBA=europeisk gammal kompositenhet
+currenciesDisplayName.NOK=norska kronor
+currenciesDisplayName.MUR=mauritiska rupier
+currenciesDisplayName.ZAR=sydafrikanska rand
 currenciesDisplayName.SHP=S:t Helena-pund
-currenciesDisplayName.ZAL=Sydafrikansk rand (finansiell)
-currenciesDisplayName.VND=Vietnamesisk dong
-currenciesDisplayName.TZS=Tanzanisk shilling
-currenciesDisplayName.GIP=Gibraltiskt pund
-currenciesDisplayName.TND=Tunisisk dinar
-currenciesDisplayName.CVE=Kapverdisk escudo
-currenciesDisplayName.UGX=Ugandisk shilling
-currenciesDisplayName.ZMK=Zambisk kwacha
-currenciesDisplayName.JOD=Jordansk dinar
-currenciesDisplayName.XAF=CFA Franc BEAC
-currenciesDisplayName.LBP=Libanesiskt pund
-currenciesDisplayName.UGS=Ugandisk shilling (1966-1987)
-currenciesDisplayName.STD=S\u00e3o Tom\u00e9 och Pr\u00edncipe-dobra
-currenciesDisplayName.WST=V\u00e4stsamoansk tala
-currenciesDisplayName.KHR=Kambodjansk riel
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Dominikansk peso
-currenciesDisplayName.BOV=Boliviansk mvdol
-currenciesDisplayName.MTP=Maltesiskt pund
+currenciesDisplayName.XAU=uns guld
+currenciesDisplayName.ZAL=sydafrikanska rand (finansiella)
+currenciesDisplayName.VND=vietnamesiska dong
+currenciesDisplayName.VNC=vietnamesiska gamla dong
+currenciesDisplayName.TZS=tanzaniska shilling
+currenciesDisplayName.GIP=gibraltiska pund
+currenciesDisplayName.TND=tunisiska dinarer
+currenciesDisplayName.CVE=kapverdiska escudos
+currenciesDisplayName.UGX=ugandiska shilling
+currenciesDisplayName.UGW=UGW
+currenciesDisplayName.XAG=uns silver
+currenciesDisplayName.ZMK=zambiska kwacha
+currenciesDisplayName.JOD=jordanska dinarer
+currenciesDisplayName.XAF=centralafrikansk franc
+currenciesDisplayName.LBP=libanesiska pund
+currenciesDisplayName.UGS=ugandiska shilling (1966-1987)
+currenciesDisplayName.STD=S\u00e3o Tom\u00e9 och Pr\u00edncipe-dobror
+currenciesDisplayName.WST=v\u00e4stsamoanska tala
+currenciesDisplayName.KHR=kambodjanska riel
+currenciesDisplayName.DOP=dominikanska pesos
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BOV=bolivianska mvdol
+currenciesDisplayName.MTP=maltesiska pund
 currenciesDisplayName.USS=US-dollar (samma dag)
-currenciesDisplayName.BOP=Boliviansk peso
-currenciesDisplayName.MTL=Maltesisk lira
-currenciesDisplayName.CUP=Kubansk peso
-currenciesDisplayName.TMM=Turkmensk manat
+currenciesDisplayName.BOP=bolivianska pesos
+currenciesDisplayName.CUP=kubanska pesos
+currenciesDisplayName.MTL=maltesisk lire
+currenciesDisplayName.TMM=turkmenska manat
 currenciesDisplayName.USN=US-dollar (n\u00e4sta dag)
-currenciesDisplayName.SGD=Singaporiansk dollar
-currenciesDisplayName.NZD=Nyzeel\u00e4ndsk dollar
+currenciesDisplayName.GHS=ghananska cedi
+currenciesDisplayName.SGD=Singapore-dollar
+currenciesDisplayName.NZD=nyzeel\u00e4ndska dollar
 currenciesDisplayName.USD=US-dollar
-currenciesDisplayName.HNL=Hoduransk lempira
-currenciesDisplayName.ITL=Italiensk lira
-currenciesDisplayName.PAB=Panamansk balboa
-currenciesDisplayName.GTQ=Guatemalansk quetzal
-currenciesDisplayName.LAK=Laotisk kip
-currenciesDisplayName.GHC=Ghanansk cedi
-currenciesDisplayName.AUD=Australisk dollar
-currenciesDisplayName.NAD=Namibisk dollar
-currenciesDisplayName.KGS=Kirgizistansk som
-currenciesDisplayName.MGF=Madagaskisk franc
-currenciesDisplayName.CHF=Schweizisk franc
-currenciesDisplayName.BBD=Barbadisk dollar
-currenciesDisplayName.MGA=Madagaskisk ariary
-currenciesDisplayName.PYG=Paraguaysk guarani
-currenciesDisplayName.PLZ=Polsk zloty (1950-1995)
-currenciesDisplayName.YER=Jemenitisk rial
-currenciesDisplayName.ATS=\u00d6sterrikisk schilling
-currenciesDisplayName.ETB=Etiopisk birr
-currenciesDisplayName.BND=Bruneisk dollar
-currenciesDisplayName.JMD=Jamaicansk dollar
-currenciesDisplayName.EGP=Egyptiskt pund
-currenciesDisplayName.PLN=Polsk zloty
-currenciesDisplayName.DZD=Algerisk dinar
-currenciesDisplayName.ISK=Isl\u00e4ndsk krona
-currenciesDisplayName.SRG=Surinamesisk gulden
-currenciesDisplayName.LYD=Libysk dinar
-currenciesDisplayName.BZD=Belizisk dollar
-currenciesDisplayName.BAM=Konvertibel bosnisk-hercegovinsk mark
-currenciesDisplayName.ESP=Spansk peseta
-currenciesDisplayName.KRW=Sydkoreansk won
-currenciesDisplayName.NLG=Nederl\u00e4ndsk gulden
-currenciesDisplayName.MRO=Mauretansk ouguiya
-currenciesDisplayName.BAD=Bosnisk-hercegovinsk dinar
-currenciesDisplayName.ZWD=Zimbabwisk dollar
-currenciesDisplayName.SEK=Svensk krona
-currenciesDisplayName.CSK=Tjeckisk h\u00e5rd koruna
-currenciesDisplayName.BYR=Vitrysk rubel
-currenciesDisplayName.IRR=Iransk rial
-currenciesDisplayName.PKR=Pakistansk rupie
+currenciesDisplayName.BOB=bolivianos
+currenciesDisplayName.HNL=honduranska lempiror
+currenciesDisplayName.CHW=franc (konvertibelt konto, WIR Bank, Schweiz)
+currenciesDisplayName.ITL=italiensk lire
+currenciesDisplayName.PAB=panamanska balboa
+currenciesDisplayName.GTQ=guatemalanska quetzal
+currenciesDisplayName.XXX=(ok\u00e4nd eller ogiltig valuta)
+currenciesDisplayName.AUD=australiska dollar
+currenciesDisplayName.GHC=ghananska cedi (1979-2007)
+currenciesDisplayName.LAK=laotiska kiper
+currenciesDisplayName.NAD=Namibia-dollar
+currenciesDisplayName.KGS=kirgiziska somer
+currenciesDisplayName.MGF=madagaskiska franc
+currenciesDisplayName.BBD=Barbados-dollar
+currenciesDisplayName.CHF=schweiziska franc
+currenciesDisplayName.CHE=euro (konvertibelt konto, WIR Bank, Schweiz)
+currenciesDisplayName.MGA=madagaskiska ariary
+currenciesDisplayName.PYG=paraguayska guarani
+currenciesDisplayName.PLZ=polska zloty (1950-1995)
+currenciesDisplayName.YER=jemenitiska rial
+currenciesDisplayName.ATS=\u00f6sterrikiska schilling
+currenciesDisplayName.ETB=etiopiska birr
+currenciesDisplayName.BND=Brunei-dollar
+currenciesDisplayName.EGP=egyptiska pund
+currenciesDisplayName.JMD=Jamaica-dollar
+currenciesDisplayName.PLN=polska zloty
+currenciesDisplayName.DZD=algeriska dinarer
+currenciesDisplayName.ISK=isl\u00e4ndska kronor
+currenciesDisplayName.SRG=Surinam-gulden
+currenciesDisplayName.LYD=libyska dinarer
+currenciesDisplayName.SRD=Surinam-dollar
+currenciesDisplayName.BAM=bosnisk-hercegovinska mark (konvertibla)
+currenciesDisplayName.BZD=beliziska dollar
+currenciesDisplayName.ESP=spanska pesetas
+currenciesDisplayName.KRW=sydkoreanska won
+currenciesDisplayName.NLG=nederl\u00e4ndska gulden
+currenciesDisplayName.MRO=mauretanska ouguiya
+currenciesDisplayName.BAD=bosnisk-hercegovinska dinarer
+currenciesDisplayName.ZWD=Zimbabwe-dollar
+currenciesDisplayName.SEK=svenska kronor
+currenciesDisplayName.CSK=tjeckiska h\u00e5rda koruna
+currenciesDisplayName.CSJ=tjeckoslovakiska kronor
+currenciesDisplayName.BYR=vitryska rubel
+currenciesDisplayName.ESB=spanska pesetas (konvertibelt konto)
+currenciesDisplayName.IRR=iranska rial
+currenciesDisplayName.ESA=spanska pesetas (konto)
+currenciesDisplayName.PKR=pakistanska rupier
 currenciesDisplayName.BMD=Bermuda-dollar
-currenciesSymbol.BGL=lev
-currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
-currenciesSymbol.LKR=SL Re
+currenciesDisplayName.CSD=jugoslaviska dinarer
+currenciesSymbol.XCD=XCD
+currenciesSymbol.LKR=LKR
+currenciesSymbol.KES=KES
 currenciesSymbol.BAD=BAD
-currenciesSymbol.CYP=\u00a3C
-currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
-currenciesSymbol.VUV=VT
-currenciesSymbol.MWK=MK
-currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
-currenciesSymbol.IEP=IR\u00a3
-currenciesSymbol.AMD=dram
-currenciesSymbol.TOP=T$
-currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
-currenciesSymbol.CLP=Ch$
-currenciesSymbol.KWD=KD
-currenciesSymbol.GEL=lari
-currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
-currenciesSymbol.IQD=ID
-currenciesSymbol.HKD=HK$
-currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
-currenciesSymbol.ALL=lek
-currenciesSymbol.CRC=C
-currenciesSymbol.IDR=Rp
-currenciesSymbol.DKK=DKr
-currenciesSymbol.TZS=T Sh
-currenciesSymbol.SBD=SI$
-currenciesSymbol.NOK=NKr
-currenciesSymbol.UGX=U Sh
-currenciesSymbol.BEF=BF
-currenciesSymbol.TTD=TT$
-currenciesSymbol.SZL=E
-currenciesSymbol.STD=Db
-currenciesSymbol.SAR=SRl
-currenciesSymbol.FJD=F$
-currenciesSymbol.UYU=Ur$
-currenciesSymbol.BDT=Tk
-currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
-currenciesSymbol.MNT=Tug
-currenciesSymbol.DJF=DF
-currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.CYP=CYP
+currenciesSymbol.BYR=BYR
+currenciesSymbol.VUV=VUV
+currenciesSymbol.MKD=MKD
+currenciesSymbol.MWK=MWK
+currenciesSymbol.BMD=BMD
+currenciesSymbol.IEP=IEP
+currenciesSymbol.SCR=SCR
+currenciesSymbol.AMD=AMD
+currenciesSymbol.TOP=TOP
+currenciesSymbol.SOS=SOS
+currenciesSymbol.NPR=NPR
+currenciesSymbol.CLP=CLP
+currenciesSymbol.KWD=KWD
+currenciesSymbol.GEL=GEL
+currenciesSymbol.ZAR=ZAR
+currenciesSymbol.IQD=IQD
+currenciesSymbol.ROL=ROL
+currenciesSymbol.HKD=HKD
+currenciesSymbol.ARS=ARS
+currenciesSymbol.BRL=BRL
+currenciesSymbol.ALL=ALL
+currenciesSymbol.CRC=CRC
+currenciesSymbol.IDR=IDR
+currenciesSymbol.DKK=dkr
+currenciesSymbol.TZS=TZS
+currenciesSymbol.SBD=SBD
+currenciesSymbol.NOK=nkr
+currenciesSymbol.UGX=UGX
+currenciesSymbol.BEF=BEF
+currenciesSymbol.TTD=TTD
+currenciesSymbol.SZL=SZL
+currenciesSymbol.STD=STD
+currenciesSymbol.SAR=SAR
+currenciesSymbol.FJD=FJD
+currenciesSymbol.UYU=UYU
+currenciesSymbol.BDT=BDT
+currenciesSymbol.QAR=QAR
+currenciesSymbol.MNT=MNT
+currenciesSymbol.LBP=LBP
+currenciesSymbol.DJF=DJF
+currenciesSymbol.JOD=JOD
 currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
-currenciesSymbol.SYP=LS
-currenciesSymbol.MTL=Lm
-currenciesSymbol.MZM=Mt
-currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
-currenciesSymbol.HUF=Ft
-currenciesSymbol.NZD=$NZ
-currenciesSymbol.OMR=RO
-currenciesSymbol.KZT=T
-currenciesSymbol.DOP=RD$
-currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
-currenciesSymbol.COP=Col$
-currenciesSymbol.HNL=L
-currenciesSymbol.KGS=som
-currenciesSymbol.ZWD=Z$
-currenciesSymbol.MYR=RM
-currenciesSymbol.SRG=Sf
-currenciesSymbol.GTQ=Q
-currenciesSymbol.BIF=Fbu
-currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
-currenciesSymbol.VEB=Be
-currenciesSymbol.CNY=Y
-currenciesSymbol.KMF=CF
+currenciesSymbol.SYP=SYP
+currenciesSymbol.KHR=KHR
+currenciesSymbol.MTL=MTL
+currenciesSymbol.FIM=FIM
+currenciesSymbol.MZM=MZM
+currenciesSymbol.YER=YER
+currenciesSymbol.HUF=HUF
+currenciesSymbol.CVE=CVE
+currenciesSymbol.NZD=NZ$
+currenciesSymbol.OMR=OMR
+currenciesSymbol.KZT=KZT
+currenciesSymbol.INR=INR
+currenciesSymbol.DOP=DOP
+currenciesSymbol.NAD=NAD
+currenciesSymbol.COP=COP
+currenciesSymbol.TRL=TRL
+currenciesSymbol.HNL=HNL
+currenciesSymbol.KGS=KGS
+currenciesSymbol.ZWD=ZWD
+currenciesSymbol.MYR=MYR
+currenciesSymbol.SRG=SRG
+currenciesSymbol.GTQ=GTQ
+currenciesSymbol.BIF=BIF
+currenciesSymbol.PLN=PLN
+currenciesSymbol.LSL=LSL
+currenciesSymbol.GNF=GNF
+currenciesSymbol.VEB=VEB
+currenciesSymbol.CNY=CNY
+currenciesSymbol.KMF=KMF
 currenciesSymbol.SEK=kr
-currenciesSymbol.AUD=$A
-currenciesSymbol.LYD=LD
-currenciesSymbol.JMD=J$
-currenciesSymbol.SKK=Sk
-currenciesSymbol.CHF=SwF
+currenciesSymbol.AUD=AUD
+currenciesSymbol.LYD=LYD
+currenciesSymbol.JMD=JMD
+currenciesSymbol.SKK=SKK
+currenciesSymbol.CHF=CHF
 currenciesSymbol.KYD=KYD
-currenciesSymbol.ETB=Br
-currenciesSymbol.MRO=UM
-currenciesSymbol.BBD=BDS$
-currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
-currenciesSymbol.BTN=Nu
-currenciesSymbol.MXN=MEX$
-currenciesSymbol.DZD=DA
-currenciesSymbol.ANG=NA f.
-currenciesSymbol.BZD=BZ$
-currenciesSymbol.IRR=RI
-currenciesSymbol.GYD=G$
-currenciesSymbol.BAM=KM
-currenciesSymbol.CAD=Can$
-shortMonths=jan®feb®mar®apr®maj®jun®jul®aug®sep®okt®nov®dec®®
-months=januari®februari®mars®april®maj®juni®juli®augusti®september®oktober®november®december®®
-shortWeekdays=®s\u00f6n®m\u00e5n®tis®ons®tors®fre®l\u00f6r®
-weekdays=®s\u00f6ndag®m\u00e5ndag®tisdag®onsdag®torsdag®fredag®l\u00f6rdag®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=f.Kr.®e.Kr.®
-ampms=f.m.®e.m.®
+currenciesSymbol.ETB=ETB
+currenciesSymbol.MRO=MRO
+currenciesSymbol.BBD=BBD
+currenciesSymbol.PKR=PKR
+currenciesSymbol.BTN=BTN
+currenciesSymbol.BHD=BHD
+currenciesSymbol.TWD=TWD
+currenciesSymbol.XPF=XPF
+currenciesSymbol.MXN=MXN
+currenciesSymbol.DZD=DZD
+currenciesSymbol.ANG=ANG
+currenciesSymbol.BZD=BZD
+currenciesSymbol.IRR=IRR
+currenciesSymbol.GYD=GYD
+currenciesSymbol.BAM=BAM
+currenciesSymbol.CAD=CAD
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januari\u00aefebruari\u00aemars\u00aeapril\u00aemaj\u00aejuni\u00aejuli\u00aeaugusti\u00aeseptember\u00aeoktober\u00aenovember\u00aedecember\u00ae\u00ae
+shortWeekdays=\u00aes\u00f6n\u00aem\u00e5n\u00aetis\u00aeons\u00aetors\u00aefre\u00ael\u00f6r\u00ae
+weekdays=\u00aes\u00f6ndag\u00aem\u00e5ndag\u00aetisdag\u00aeonsdag\u00aetorsdag\u00aefredag\u00ael\u00f6rdag\u00ae
+eras=f.Kr.\u00aee.Kr.\u00ae
+ampms=fm\u00aeem\u00ae
 shortDateFormat=yyyy-MM-dd
 mediumDateFormat=d MMM yyyy
-longDateFormat=EEEE d MMM yyyy
-fullDateFormat=EEEE d MMMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE'en' 'den' d MMMM yyyy
 shortTimeFormat=HH.mm
 mediumTimeFormat=HH.mm.ss
 longTimeFormat=HH.mm.ss z
-fullTimeFormat='kl. 'HH.mm.ss z
-zoneStrings=Pacific/Honolulu®HST®Hawaii, normaltid®HST®Hawaii, normaltid®©Europe/Bucharest®EET®\u00d6steuropa, normaltid®EEST®\u00d6steuropa, sommartid®©America/Los_Angeles®PST®Pacific, normaltid®PDT®Pacific, sommartid®©America/Denver®MST®Mountain, normaltid®MDT®Mountain, sommartid®©Asia/Jerusalem®IST®Israel, normaltid®IDT®Israel, sommartid®©America/Phoenix®MST®Mountain, normaltid®MST®Mountain, sommartid®©America/Chicago®CST®Central, normaltid®CDT®Central, sommartid®©America/Indianapolis®EST®Eastern, normaltid®EST®Eastern, normaltid®©America/St_Johns®CNT®Newfoundland, normaltid®CDT®Newfoundland, sommartid®©America/Anchorage®AST®Alaska, normaltid®ADT®Alaska, sommartid®©Asia/Shanghai®CTT®Kina, normaltid®CDT®Kina, normaltid®©Asia/Tokyo®JST®Japan, normaltid®JST®Japan, normaltid®©Europe/Paris®CET®Centraleuropa, normaltid®CEST®Centraleuropa, sommartid®©America/New_York®EST®Eastern, normaltid®EDT®Eastern, sommartid®©America/Halifax®AST®Atlantic, normaltid®ADT®Atlantic, sommartid®©Africa/Casablanca®GMT®Greenwichtid®GMT®Greenwichtid®©
+fullTimeFormat='kl'. HH.mm.ss z
+zoneStrings=Marshall_Islands\u00aeMarshall\u00f6normaltid\u00ae\u00aeMarshall\u00f6sommartid\u00ae\u00ae\u00a9Shevchenko\u00aeAqtaunormaltid\u00ae\u00aeAqtausommartid\u00ae\u00ae\u00a9Bangladesh\u00aebangladeshisk normaltid\u00ae\u00aebangladeshisk sommartid\u00ae\u00ae\u00a9Marquesas\u00aeMarquesasnormaltid\u00ae\u00aeMarquesassommartid\u00ae\u00ae\u00a9Indonesia_Central\u00aecentralindonesisk normaltid\u00ae\u00aecentralindonesisk sommartid\u00ae\u00ae\u00a9America_Eastern\u00ae\u00f6stnordamerikansk normaltid\u00ae\u00ae\u00f6stnordamerikansk sommartid\u00ae\u00ae\u00a9China\u00aekinesisk normaltid\u00ae\u00aekinesisk sommartid\u00ae\u00ae\u00a9Omsk\u00aeOmsknormaltid\u00ae\u00aeOmsksommartid\u00ae\u00ae\u00a9Guyana\u00aeGuyananormaltid\u00ae\u00aeGuyanasommartid\u00ae\u00ae\u00a9Uzbekistan\u00aeuzbeskisk normaltid\u00ae\u00aeuzbeskisk sommartid\u00ae\u00ae\u00a9Uruguay\u00aeuruguayansk normaltid\u00ae\u00aeuruguayansk sommartid\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeAlma-Atanormaltid\u00ae\u00aeAlma-Atasommartid\u00ae\u00ae\u00a9Karachi\u00aeKarachisommartid\u00ae\u00ae\u00ae\u00ae\u00a9Goose_Bay\u00aeGoose Baynormaltid\u00ae\u00aeGoose Baysommartid\u00ae\u00ae\u00a9Tbilisi\u00aegeorgisk normaltid\u00ae\u00aegeorgisk sommartid\u00ae\u00ae\u00a9Irish\u00aeirl\u00e4ndsk normaltid\u00ae\u00aeirl\u00e4ndsk sommartid\u00ae\u00ae\u00a9Tashkent\u00aeuzbekisk normaltid\u00ae\u00aeuzbekisk sommartid\u00ae\u00ae\u00a9Changbai\u00aeChangbainormaltid\u00ae\u00aeChangbaisommartid\u00ae\u00ae\u00a9Chatham\u00aeChathamnormaltid\u00ae\u00aeChathamsommartid\u00ae\u00ae\u00a9South_Georgia\u00aesydgeorgisk normaltid\u00ae\u00aesydgeorgisk sommartid\u00ae\u00ae\u00a9French_Guiana\u00aeFranska Guiananormaltid\u00ae\u00aeFranska Guianasommartid\u00ae\u00ae\u00a9Frunze\u00aeBisjkeknormaltid\u00ae\u00aeBisjkeksommartid\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u00f6steuropeisk normaltid\u00ae\u00ae\u00f6steuropeisk sommatid\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u00f6stgr\u00f6nl\u00e4ndsk normaltid\u00ae\u00ae\u00f6stgr\u00f6nl\u00e4ndsk sommartid\u00ae\u00ae\u00a9Dushanbe\u00aeDushanbenormaltid\u00ae\u00aeDushanbesommartid\u00ae\u00ae\u00a9Dacca\u00aeDaccanormaltid\u00ae\u00aeDaccasommartid\u00ae\u00ae\u00a9Chile\u00aechilensk normaltid\u00ae\u00aechilensk sommartid\u00ae\u00ae\u00a9Europe_Central\u00aecentraleuropeisk normaltid\u00ae\u00aecentraleuropeisk sommartid\u00ae\u00ae\u00a9Acre\u00aev\u00e4stbrasiliansk normaltid\u00ae\u00aev\u00e4stbrasiliansk sommartid\u00ae\u00ae\u00a9Arabian\u00aesaudiarabisk normaltid\u00aeAST (saudiarabisk)\u00aesaudiarabisk sommartid\u00aeADT (saudiarabisk)\u00ae\u00a9East_Timor\u00ae\u00f6stimorisk normaltid\u00ae\u00ae\u00f6stimorisk sommartid\u00ae\u00ae\u00a9New_Zealand\u00aenyzeel\u00e4ndsk normaltid\u00ae\u00aenyzeel\u00e4ndsk sommartid\u00ae\u00ae\u00a9Indochina\u00aeindokinesisk normaltid\u00ae\u00aeindokinesisk sommartid\u00ae\u00ae\u00a9Kwajalein\u00aeMarshall\u00f6arnas normaltid\u00ae\u00aeMarshall\u00f6arnas sommartid\u00ae\u00ae\u00a9Africa_Southern\u00aesydafrikansk normaltid\u00ae\u00aesydafrikansk sommartid\u00ae\u00ae\u00a9America_Mountain\u00aeKlippiga Bergennormaltid\u00ae\u00aeKlippiga Bergensommartid\u00ae\u00ae\u00a9Tokelau\u00aeTokelaunormaltid\u00ae\u00aeTokelausommartid\u00ae\u00ae\u00a9Ecuador\u00aeequadoriansk normaltid\u00ae\u00aeequadoriansk sommartid\u00ae\u00ae\u00a9Hovd\u00aeHovdnormaltid\u00ae\u00aeHovdsommartid\u00ae\u00ae\u00a9Africa_Central\u00aecentralafrikansk normaltid\u00ae\u00aecentralafrikansk sommartid\u00ae\u00ae\u00a9Phoenix_Islands\u00aeEnderburynormaltid\u00ae\u00aeEnderburysommartid\u00ae\u00ae\u00a9Armenia\u00aearmenisk normaltid\u00ae\u00aearmenisk somartid\u00ae\u00ae\u00a9Tuvalu\u00aeTuvalunormaltid\u00ae\u00aeTuvalusommartid\u00ae\u00ae\u00a9Sakhalin\u00aeSachalinnormaltid\u00ae\u00aeSachalinsommartid\u00ae\u00ae\u00a9Samara\u00aeSamaranormaltid\u00ae\u00aeSamarasommartid\u00ae\u00ae\u00a9Palau\u00aePalaunormaltid\u00ae\u00aePalausommartid\u00ae\u00ae\u00a9Kosrae\u00aeKosraenormaltid\u00ae\u00aeKosraesommartid\u00ae\u00ae\u00a9Alaska_Hawaii\u00aehawaiisk normaltid\u00ae\u00aehawaiisk sommartid\u00ae\u00ae\u00a9Pitcairn\u00aePitcairnnormaltid\u00ae\u00aePitcairnsommartid\u00ae\u00ae\u00a9America_Central\u00aecentralnordamerikansk normaltid\u00ae\u00aecentralnordamerikansk sommartid\u00ae\u00ae\u00a9Malaysia\u00aemalaysisk normaltid\u00ae\u00aemalaysisk sommartid\u00ae\u00ae\u00a9Moscow\u00aeMoskvanormaltid\u00ae\u00aeMoskvasommartid\u00ae\u00ae\u00a9Vanuatu\u00aeVanuatunormaltid\u00ae\u00aeVanuatusommartid\u00ae\u00ae\u00a9Kamchatka\u00aeKamtjatkanormaltid\u00ae\u00aeKamtjatkasommartid\u00ae\u00ae\u00a9Cape_Verde\u00aeKap Verdenormaltid\u00ae\u00aeKap Verdesommartid\u00ae\u00ae\u00a9Aqtobe\u00aeAqt\u00f6benormaltid\u00ae\u00aeAqt\u00f6besommartid\u00ae\u00ae\u00a9Falkland\u00aefalklands\u00f6arnas normaltid\u00ae\u00aefalklands\u00f6arnas sommartid\u00ae\u00ae\u00a9Peru\u00aeperuansk normalid\u00ae\u00aeperuansk sommartid\u00ae\u00ae\u00a9Krasnoyarsk\u00aeKrasnojarsknormaltid\u00ae\u00aeKrasnojarsksommartid\u00ae\u00ae\u00a9Argentina\u00ae\u00f6stargentinsk normaltid\u00ae\u00ae\u00f6stargentinsk sommartid\u00ae\u00ae\u00a9Qyzylorda\u00aeQyzylordanormaltid\u00ae\u00aeQyzylordasommartid\u00ae\u00ae\u00a9Tahiti\u00aeTahitinormaltid\u00ae\u00aeTahitisommartid\u00ae\u00ae\u00a9Indian_Ocean\u00aeBrittiska Indiska ocean\u00f6arnas normaltdi\u00ae\u00aeBrittiska Indiska ocean\u00f6arnas sommartdi\u00ae\u00ae\u00a9GMT\u00aeGreenwichtid\u00ae\u00aeGreenwichtid har per definition ingen sommartid\u00ae\u00ae\u00a9Vladivostok\u00aeVladivostoknormaltid\u00ae\u00aeVladivostoksommartid\u00ae\u00ae\u00a9British\u00aebrittisk normaltid\u00ae\u00aebrittisk sommartid\u00ae\u00ae\u00a9Atlantic\u00aenordamerikansk atlantnormaltid\u00ae\u00aenordamerikansk atlantsommartid\u00ae\u00ae\u00a9Truk\u00aeTruknormaltid\u00ae\u00aeTruksommartid\u00ae\u00ae\u00a9Wallis\u00aeWallis- och Futuna\u00f6arnas normaltid\u00ae\u00aeWallis- och Futuna\u00f6arnas sommartid\u00ae\u00ae\u00a9Korea\u00aekoreansk normaltid\u00ae\u00aekoreansk sommartid\u00ae\u00ae\u00a9Ashkhabad\u00aeAshkhabadnormaltid\u00ae\u00aeAshkhabadsommartid\u00ae\u00ae\u00a9Australia_Western\u00aev\u00e4staustralisk normaltid\u00ae\u00aev\u00e4staustralisk sommartid\u00ae\u00ae\u00a9Gilbert_Islands\u00aeKiribatinormaltid\u00ae\u00aeKiribatisommartid\u00ae\u00ae\u00a9Seychelles\u00aeSeychellernas normaltid\u00ae\u00aeSeychellernas sommartid\u00ae\u00ae\u00a9Cocos\u00aeKeeling\u00f6arnas normaltid\u00ae\u00aeKeeling\u00f6arnas sommartid\u00ae\u00ae\u00a9Venezuela\u00aevenezulansk normaltid\u00ae\u00aevenezulansk sommartid\u00ae\u00ae\u00a9Solomon\u00aeSalomon\u00f6arnas normaltid\u00ae\u00aeSalomon\u00f6arnas sommartid\u00ae\u00ae\u00a9Paraguay\u00aeparaguyansk normalid\u00ae\u00aeparaguyansk sommartid\u00ae\u00ae\u00a9Yakutsk\u00aeJakutsknormaltid\u00ae\u00aeJakutsksommartid\u00ae\u00ae\u00a9Azerbaijan\u00aeazerbajdzjansk normaltid\u00ae\u00aeazerbajdzjansk sommartid\u00ae\u00ae\u00a9Kizilorda\u00aeQyzylordanormaltid\u00ae\u00aeQyzylordasommartid\u00ae\u00ae\u00a9Yukon\u00aeYukonnormaltid\u00ae\u00aeYukonsommartid\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHoll\u00e4ndska Guiananormaltid\u00ae\u00aeHoll\u00e4ndska Guianasommartid\u00ae\u00ae\u00a9Yerevan\u00aeYerevannormaltid\u00ae\u00aeYerevansommartid\u00ae\u00ae\u00a9Turkmenistan\u00aeturkmenisk normaltid\u00ae\u00aeturkmenisk sommartid\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundlandnormaltid\u00ae\u00aeNewfoundlandsommartid\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u00f6stafrikansk normaltid\u00ae\u00ae\u00f6stafrikansk sommartid\u00ae\u00ae\u00a9Wake\u00aeWakenormaltid\u00ae\u00aeWakesommartid\u00ae\u00ae\u00a9Pakistan\u00aepakistansk normaltid\u00ae\u00aepakistansk sommartid\u00ae\u00ae\u00a9Singapore\u00aeSingaporenormaltid\u00ae\u00aeSingaporesommartid\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybyshevnormaltid\u00ae\u00aeKuybyshevsommartid\u00ae\u00ae\u00a9Europe_Western\u00aev\u00e4steuropeisk normaltid\u00ae\u00aev\u00e4steuropeisk sommartid\u00ae\u00ae\u00a9India\u00aeindisk normaltid\u00ae\u00aeindisk sommartid\u00ae\u00ae\u00a9Chamorro\u00aeChamorronormaltid\u00ae\u00aeChamorrosommartid\u00ae\u00ae\u00a9Greenland_Western\u00aev\u00e4stgr\u00f6nl\u00e4ndsk normaltid\u00ae\u00aev\u00e4stgr\u00f6nl\u00e4ndsk sommartid\u00ae\u00ae\u00a9Bolivia\u00aeboliviansk normaltid\u00ae\u00aeboliviansk sommartid\u00ae\u00ae\u00a9Indonesia_Western\u00aev\u00e4stindonesisk normaltid\u00ae\u00aev\u00e4stindonesisk sommartid\u00ae\u00ae\u00a9Galapagos\u00aeGal\u00e1pagosnormaltid\u00ae\u00aeGal\u00e1pagossommartid\u00ae\u00ae\u00a9Iran\u00aeiransk normaltid\u00ae\u00aeiransk sommartid\u00ae\u00ae\u00a9Suriname\u00aeSurinamnormaltid\u00ae\u00aeSurinamsommartid\u00ae\u00ae\u00a9Papua_New_Guinea\u00aePapua Nya Guineas normaltid\u00ae\u00aePapua Nya Guineas sommartid\u00ae\u00ae\u00a9Malaya\u00aemalaysisk normaltid\u00ae\u00aemalaysisk sommartid\u00ae\u00ae\u00a9Bering\u00aealeutisk normaltid\u00ae\u00aealeutisk sommartid\u00ae\u00ae\u00a9Georgia\u00aegeorgisk normaltid\u00ae\u00aegeorgisk sommartid\u00ae\u00ae\u00a9Kyrgystan\u00aekirgizisk normaltid\u00ae\u00aekirgizisk sommartid\u00ae\u00ae\u00a9French_Southern\u00aeFranska Sydterritoriernas normaltid\u00ae\u00aeFranska Sydterritoriernassommartid\u00ae\u00ae\u00a9Ponape\u00aePonapenormaltid\u00ae\u00aePonapesommartid\u00ae\u00ae\u00a9Lanka\u00aeSri Lankanormaltid\u00ae\u00aeSri Lankasommartid\u00ae\u00ae\u00a9Christmas\u00aeJul\u00f6ns normaltid\u00ae\u00aeJul\u00f6ns sommartid\u00ae\u00ae\u00a9Philippines\u00aefilippinsk normaltid\u00ae\u00aefilippinsk sommartid\u00ae\u00ae\u00a9Argentina_Western\u00aev\u00e4stargentinsk normaltid\u00ae\u00aev\u00e4stargentinsk sommartid\u00ae\u00ae\u00a9Volgograd\u00aeVolvogradnormaltid\u00ae\u00aeVolvogradsommartid\u00ae\u00ae\u00a9Hong_Kong\u00aeHongkongnormaltid\u00ae\u00aeHongkongsommartid\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeAqt\u00f6benormaltid\u00ae\u00aeAqt\u00f6besommartid\u00ae\u00ae\u00a9Guam\u00aeGuamnormaltid\u00ae\u00aeGuamsommartid\u00ae\u00ae\u00a9Amazon\u00aeAmazonasnormaltid\u00ae\u00aeAmazonassommartid\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre och Miquelonnormalid\u00ae\u00aePierre och Miquelonsommartid\u00ae\u00ae\u00a9Niue\u00aeNiuenormaltid\u00ae\u00aeNiuesommartid\u00ae\u00ae\u00a9Turkey\u00aeturkisk normaltid\u00ae\u00aeturkisk sommartid\u00ae\u00ae\u00a9Nepal\u00aenepalesisk normaltid\u00ae\u00aenepalesisk sommartid\u00ae\u00ae\u00a9Cook\u00aeCook\u00f6arnas normaltid\u00ae\u00aeCook\u00f6arnas sommartid\u00ae\u00ae\u00a9Macau\u00aeMacaunormaltid\u00ae\u00aeMacausommartid\u00ae\u00ae\u00a9Mauritius\u00aeMauritiustid\u00ae\u00ae\u00ae\u00ae\u00a9Dominican\u00aedominikansk normaltid\u00ae\u00aedominikansk sommartid\u00ae\u00ae\u00a9Cuba\u00aekubansk normaltid\u00ae\u00aekubansk sommartid\u00ae\u00ae\u00a9Tonga\u00aeTongatid\u00ae\u00ae\u00ae\u00ae\u00a9Maldives\u00aeMaldivernas normaltid\u00ae\u00aeMaldivernas sommartid\u00ae\u00ae\u00a9Mongolia\u00aeUlan Batornormaltid\u00ae\u00aeUlan Batorsommartid\u00ae\u00ae\u00a9Norfolk\u00aeNorfolk\u00f6ns normaltid\u00ae\u00aeNorfolk\u00f6ns sommartid\u00ae\u00ae\u00a9Anadyr\u00aeAnadirnormaltid\u00ae\u00aeAnadirsommartid\u00ae\u00ae\u00a9Irkutsk\u00aeIrkutsknormaltid\u00ae\u00aeIrkutsksommartid\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u00f6stindonesisk normaltid\u00ae\u00ae\u00f6stindonesisk sommartid\u00ae\u00ae\u00a9Myanmar\u00aeburmesisk normaltid\u00ae\u00aeburmesisk sommartid\u00ae\u00ae\u00a9Reunion\u00aeR\u00e9unionnormaltid\u00ae\u00aeR\u00e9unionsommartid\u00ae\u00ae\u00a9Gulf\u00aePersiska Golfennormaltid\u00ae\u00aePersiska Golfensommartid\u00ae\u00ae\u00a9Afghanistan\u00aeafghanisk normalid\u00ae\u00aeafghanisk sommartid\u00ae\u00ae\u00a9Kashgar\u00aeKashgarnormaltid\u00ae\u00aeKashgarsommartid\u00ae\u00ae\u00a9Brunei\u00aeBruneinormaltid\u00ae\u00aeBruneisommartid\u00ae\u00ae\u00a9Africa_FarWestern\u00aev\u00e4stsaharisk normaltid\u00ae\u00aev\u00e4stsaharisk sommartid\u00ae\u00ae\u00a9Novosibirsk\u00aeNovosibirsknormaltid\u00ae\u00aeNovosibirsksommartid\u00ae\u00ae\u00a9Brasilia\u00aeBrasilianormaltid\u00ae\u00aeBrasiliasommartid\u00ae\u00ae\u00a9Liberia\u00aeliberiansk normaltid\u00ae\u00aeliberiansk sommartid\u00ae\u00ae\u00a9Line_Islands\u00aeLine\u00f6arnas normaltid\u00ae\u00aeLine\u00f6arnas sommartid\u00ae\u00ae\u00a9America_Pacific\u00aev\u00e4stnordamerikansk normaltid\u00ae\u00aev\u00e4stnordamerikansk sommartid\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHonolulunormaltid\u00ae\u00aeHonolulusommartid\u00ae\u00ae\u00a9Samarkand\u00aeSamarkandnormaltid\u00ae\u00aeSamarkandsommartid\u00ae\u00ae\u00a9Australia_Central\u00aecentralaustralisk normaltid\u00ae\u00aecentralaustralisk sommartid\u00ae\u00ae\u00a9Long_Shu\u00aeChongqingnormaltid\u00ae\u00aeChongqingsommartid\u00ae\u00ae\u00a9Fiji\u00aeFijis normaltid\u00ae\u00aeFijis sommartid\u00ae\u00ae\u00a9Israel\u00aeisraelisk normaltid\u00aeIST (Israel)\u00aeisraelisk sommartid\u00ae\u00ae\u00a9Yekaterinburg\u00aeJekaterinburgnormaltid\u00ae\u00aeJekaterinburgsommartid\u00ae\u00ae\u00a9Easter\u00aeP\u00e5sk\u00f6ns normaltid\u00ae\u00aeP\u00e5sk\u00f6ns sommartid\u00ae\u00ae\u00a9Almaty\u00aeAlma-Atanormaltid\u00ae\u00aeAlma-Atasommartid\u00ae\u00ae\u00a9Sverdlovsk\u00aeSverdlovsknormaltid\u00ae\u00aeSverdlovsksommartid\u00ae\u00ae\u00a9Africa_Western\u00aev\u00e4stafrikansk normaltid\u00ae\u00aev\u00e4stafrikansk sommartid\u00ae\u00ae\u00a9Samoa\u00aesamoansk normaltid\u00ae\u00aesamoansk sommartid\u00ae\u00ae\u00a9Bhutan\u00aebhutansk normaltid\u00ae\u00aebhutansk sommartid\u00ae\u00ae\u00a9Uralsk\u00aeOralnormaltid\u00ae\u00aeOralsommartid\u00ae\u00ae\u00a9Alaska\u00aeAlaskanormaltid\u00ae\u00aeAlaskasommartid\u00ae\u00ae\u00a9Urumqi\u00aeUrumqinormaltid\u00ae\u00aeUrumqisommartid\u00ae\u00ae\u00a9Colombia\u00aecolombiansk normaltid\u00ae\u00aecolombiansk sommartid\u00ae\u00ae\u00a9Aktyubinsk\u00aeAqtobenormaltid\u00ae\u00aeAqtobesommartid\u00ae\u00ae\u00a9North_Mariana\u00aeNordmarianernas normaltid\u00ae\u00aeNordmarianernas sommartid\u00ae\u00ae\u00a9Nauru\u00aeNaurunormaltid\u00ae\u00aeNaurusommartid\u00ae\u00ae\u00a9Magadan\u00aeMagadannormaltid\u00ae\u00aeMagadansommartid\u00ae\u00ae\u00a9Tajikistan\u00aeTadzjikistannormaltid\u00ae\u00aeTadzjikistansommartid\u00ae\u00ae\u00a9New_Caledonia\u00aeNya Kaledoniennormaltid\u00ae\u00aeNya Kaledoniensommartid\u00ae\u00ae\u00a9Choibalsan\u00aeChoibalsannormaltid\u00ae\u00aeChoibalsansommartid\u00ae\u00ae\u00a9Azores\u00aeazorisk normaltid\u00ae\u00aeazorisk sommartid\u00ae\u00ae\u00a9Aqtau\u00aeAqtaunormaltid\u00ae\u00aeAqtausommartid\u00ae\u00ae\u00a9Oral\u00aeOralnormaltid\u00ae\u00aeOralsommartid\u00ae\u00ae\u00a9Baku\u00aeBakunormaltid\u00ae\u00aeBakusommartid\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u00f6staustralisk normaltid\u00ae\u00ae\u00f6staustralisk sommartid\u00ae\u00ae\u00a9Gambier\u00aeGambiernormaltid\u00ae\u00aeGambiersommartid\u00ae\u00ae\u00a9Noronha\u00aeFernando de Noronhanormalid\u00ae\u00aeFernando de Noronhasommartid\u00ae\u00ae\u00a9Greenland_Central\u00aecentralgr\u00f6nl\u00e4ndsk normaltid\u00ae\u00aecentralgr\u00f6nl\u00e4ndsk sommartid\u00ae\u00ae\u00a9Japan\u00aejapansk normaltid\u00ae\u00aejapansk sommartid\u00ae\u00ae\u00a9Borneo\u00aeBorneonormaltid\u00ae\u00aeBorneosommartid\u00ae\u00ae\u00a9
 territories.TL=\u00d6sttimor
-territories.TK=Tokelau
+territories.TK=Tokelau\u00f6arna
 territories.TJ=Tadzjikistan
 territories.TH=Thailand
 territories.TG=Togo
-territories.TF=Franska s\u00f6dra territorierna
+territories.TF=Franska Sydterritorierna
 territories.GY=Guyana
 territories.TD=Tchad
 territories.TC=Turks- och Caicos\u00f6arna
@@ -380,12 +435,13 @@ territories.GN=Guinea
 territories.GM=Gambia
 territories.GL=Gr\u00f6nland
 territories.SV=El Salvador
-territories.062=S\u00f6dra Centralasien
+territories.062=S\u00f6dra centralasien
 territories.ST=S\u00e3o Tom\u00e9 och Pr\u00edncipe
-territories.061=Polynesien
 territories.GI=Gibraltar
+territories.061=Polynesien
 territories.GH=Ghana
 territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Franska Guyana
 territories.GE=Georgien
 territories.SO=Somalia
@@ -406,26 +462,27 @@ territories.SC=Seychellerna
 territories.SB=Salomon\u00f6arna
 territories.SA=Saudiarabien
 territories.FR=Frankrike
-territories.057=Mikronesien
 territories.FO=F\u00e4r\u00f6arna
+territories.057=Mikronesiska \u00f6arna
 territories.FM=Mikronesien
 territories.RW=Rwanda
 territories.054=Melanesien
-territories.053=Australien och Nya Zeeland
 territories.FK=Falklands\u00f6arna
+territories.053=Australien och Nya Zeeland
 territories.RU=Ryssland
 territories.FJ=Fiji
 territories.FI=Finland
+territories.RS=Serbien
 territories.RO=Rum\u00e4nien
 territories.RE=R\u00e9union
 territories.ET=Etiopien
 territories.ES=Spanien
 territories.ER=Eritrea
-territories.833=Isle of Man
-territories.EH=V\u00e4stra Sahara
+territories.QU=EU
+territories.EH=V\u00e4stsahara
 territories.EG=Egypten
-territories.830=Kanal\u00f6arna
 territories.EE=Estland
+territories.830=Kanal\u00f6arna
 territories.QO=Yttre \u00f6ar i Oceanien
 territories.EC=Ecuador
 territories.DZ=Algeriet
@@ -433,14 +490,15 @@ territories.QA=Qatar
 territories.039=Sydeuropa
 territories.DO=Dominikanska republiken
 territories.PY=Paraguay
-territories.035=Sydostasien
 territories.DM=Dominica
+territories.035=Sydostasien
 territories.PW=Palau
+territories.034=S\u00f6dra Asien
 territories.DK=Danmark
 territories.DJ=Djibouti
 territories.PT=Portugal
 territories.PS=Palestinska territoriet
-territories.030=Ostasien
+territories.030=\u00d6stasien
 territories.PR=Puerto Rico
 territories.DE=Tyskland
 territories.PN=Pitcairn
@@ -465,15 +523,16 @@ territories.CN=Kina
 territories.CM=Kamerun
 territories.CL=Chile
 territories.CK=Cook\u00f6arna
+territories.021=Norra Amerika
 territories.CI=Elfenbenskusten
-territories.021=Nordamerika
 territories.CH=Schweiz
-territories.CG=Kongo
+territories.CG=Kongo-Brazzaville
 territories.CF=Centralafrikanska republiken
-territories.CD=Demokratiska republiken Kongo
+territories.CD=Kongo-Kinshasa
 territories.CC=Kokos\u00f6arna (Keeling\u00f6arna)
 territories.OM=Oman
 territories.CA=Kanada
+territories.419=Latinamerika och Karibien
 territories.BZ=Belize
 territories.BY=Vitryssland
 territories.BW=Botswana
@@ -481,32 +540,35 @@ territories.BV=Bouvet\u00f6n
 territories.BT=Bhutan
 territories.BS=Bahamas
 territories.BR=Brasilien
-territories.019=Nord- och Sydamerika
+territories.019=Amerika
 territories.018=S\u00f6dra Afrika
 territories.NZ=Nya Zeeland
-territories.BO=Bolivia
 territories.017=Centralafrika
+territories.BO=Bolivia
 territories.BN=Brunei
-territories.BM=Bermuda
 territories.015=Nordafrika
+territories.BM=Bermuda
 territories.014=\u00d6stafrika
+territories.BL=Saint-Barth\u00e9lemy
 territories.013=Centralamerika
 territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=V\u00e4stafrika
+territories.BI=Burundi
+territories.172=Oberoende staters samv\u00e4lde
 territories.BH=Bahrain
 territories.NR=Nauru
 territories.BG=Bulgarien
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Belgien
+territories.ZZ=ok\u00e4nd eller ogiltig regionkod
 territories.NO=Norge
 territories.BD=Bangladesh
 territories.BB=Barbados
 territories.ZW=Zimbabwe
 territories.NL=Nederl\u00e4nderna
-territories.BA=Bosnien och Hercegovina
+territories.BA=Bosnien-Hercegovina
 territories.NI=Nicaragua
 territories.NG=Nigeria
 territories.NF=Norfolk\u00f6n
@@ -521,24 +583,25 @@ territories.AU=Australien
 territories.AT=\u00d6sterrike
 territories.AS=Amerikanska Samoa
 territories.AR=Argentina
-territories.009=Oceanien
 territories.AQ=Antarktis
+territories.009=Oceanien
 territories.MZ=Mo\u00e7ambique
 territories.AO=Angola
 territories.MY=Malaysia
 territories.AN=Nederl\u00e4ndska Antillerna
 territories.MX=Mexiko
-territories.005=Sydamerika
 territories.AM=Armenien
+territories.005=Sydamerika
 territories.MW=Malawi
 territories.AL=Albanien
 territories.MV=Maldiverna
+territories.003=Nordamerika
 territories.ZA=Sydafrika
 territories.MU=Mauritius
 territories.002=Afrika
 territories.MT=Malta
-territories.001=V\u00e4rlden
 territories.AI=Anguilla
+territories.001=V\u00e4rlden
 territories.MS=Montserrat
 territories.MR=Mauretanien
 territories.AG=Antigua och Barbuda
@@ -546,15 +609,17 @@ territories.MQ=Martinique
 territories.AF=Afghanistan
 territories.MP=Nordmarianerna
 territories.AE=F\u00f6renade Arabemiraten
-territories.MO=Macao (S.A.R. Kina)
+territories.MO=Macao
 territories.AD=Andorra
 territories.MN=Mongoliet
-territories.MM=Myanmar
+territories.MM=Burma
 territories.ML=Mali
 territories.MK=Makedonien
 territories.YT=Mayotte
 territories.MH=Marshall\u00f6arna
 territories.MG=Madagaskar
+territories.MF=S:t Martin
+territories.ME=Montenegro
 territories.MD=Moldavien
 territories.MC=Monaco
 territories.MA=Marocko
@@ -578,6 +643,7 @@ territories.KZ=Kazakstan
 territories.KY=Cayman\u00f6arna
 territories.KW=Kuwait
 territories.145=V\u00e4stasien
+territories.143=Centralasien
 territories.142=Asien
 territories.KR=Sydkorea
 territories.KP=Nordkorea
@@ -588,17 +654,18 @@ territories.WS=Samoa
 territories.KH=Kambodja
 territories.KG=Kirgizistan
 territories.KE=Kenya
-territories.WF=Wallis- och Futuna\u00f6arna
+territories.WF=Wallis och Futuna
 territories.JP=Japan
 territories.JO=Jordanien
 territories.JM=Jamaica
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=Amerikanska Jungfru\u00f6arna
 territories.VG=Brittiska Jungfru\u00f6arna
 territories.VE=Venezuela
 territories.VC=S:t Vincent och Grenadinerna
-territories.VA=Vatikanen
+territories.VA=Vatikanstaten
 territories.IT=Italien
 territories.IS=Island
 territories.IR=Iran
@@ -607,11 +674,12 @@ territories.UZ=Uzbekistan
 territories.IO=Brittiska Indiska ocean\u00f6arna
 territories.UY=Uruguay
 territories.IN=Indien
+territories.IM=Isle of Man
 territories.IL=Israel
 territories.US=USA
 territories.IE=Irland
 territories.ID=Indonesien
-territories.UM=USAs yttre \u00f6ar
+territories.UM=USA:s yttre \u00f6ar
 territories.UG=Uganda
 territories.UA=Ukraina
 territories.HU=Ungern
@@ -622,77 +690,86 @@ territories.HN=Honduras
 territories.HM=Heard- och McDonald\u00f6arna
 territories.TW=Taiwan
 territories.TV=Tuvalu
-territories.HK=Hongkong (S.A.R. Kina)
+territories.HK=Hongkong
 territories.TT=Trinidad och Tobago
 territories.TR=Turkiet
 territories.TO=Tonga
 territories.TN=Tunisien
 territories.TM=Turkmenistan
+languages.gwi=gwich-in
 languages.akk=akkadiska
-languages.gwi=gwich'in
 languages.eka=ekajuk
+languages.ijo=ijo
 languages.xh=xhosa
 languages.sux=sumeriska
 languages.sus=susu
-languages.mis=blandade spr\u00e5k
+languages.mis=annat spr\u00e5k
 languages.loz=lozi
-languages.tog=tonganska (Nyasa)
-languages.pon=ponape
+languages.tog=nyasatonganska
+languages.zbl=blissymboler
+languages.pon=pohnpeiska
 languages.min=minangkabau
 languages.suk=sukuma
 languages.wo=wolof
-languages.kut=kutenai
-languages.lol=lolo; mongo
+languages.lol=mongo
+languages.kut=kutenaj
 languages.mic=mic-mac
-languages.wa=walloon
-languages.kum=kumyk
+languages.wa=vallonska
+languages.kum=kumykiska
 languages.zap=zapotek
-languages.cus=kushitiska (annat)
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=kushitiskt spr\u00e5k
 languages.jbo=lojban
-languages.vo=volap\u00fck
-languages.oto=otomanguespr\u00e5k
+languages.doi=dogri
+languages.zza=zaza
+languages.vo=volapyk
+languages.oto=otomispr\u00e5k
 languages.vi=vietnamesiska
-languages.rar=rarotongan
+languages.vai=vaj
+languages.rar=rarotonganska
 languages.ve=venda
 languages.rap=rapanui
 languages.raj=rajasthani
-languages.ota=ottomanturkiska (1500-1928)
+languages.ota=ottomanska
 languages.nzi=nzima
 languages.nap=napolitanska
 languages.uz=uzbekiska
 languages.uga=ugaritiska
 languages.tmh=tamashek
-languages.nai=nordamerikanskt indianspr\u00e5k (annat)
-languages.nah=nahuatl; aztekiska
+languages.nai=nordamerikanskt indianspr\u00e5k
+languages.nah=aztekiska
 languages.ur=urdu
 languages.fat=fanti
 languages.uk=ukrainska
 languages.egy=fornegyptiska
+languages.zxx=inget spr\u00e5kligt inneh\u00e5ll
 languages.ug=uiguriska
 languages.fan=fang
-languages.ssa=nilosahariskt (annat)
-languages.bat=baltiskt (annat)
-languages.mga=medeliriska (900-1200)
+languages.ssa=nilosahariskt spr\u00e5k
+languages.mga=medeliriska
+languages.bat=baltiskt spr\u00e5k
 languages.nyo=nyoro
 languages.bas=basa
-languages.nyn=nyankole
+languages.nyn=runyankole
 languages.nym=nyamwezi
-languages.hmn=hmong
+languages.gsw=schweizertyska
+languages.hmn=hmongspr\u00e5k
 languages.ban=balinesiska
 languages.osa=osage
 languages.bal=baluchi
 languages.ty=tahitiska
-languages.bai=bamilekiska spr\u00e5k
+languages.bai=bamilekespr\u00e5k
 languages.tw=twi
 languages.srr=serer
 languages.tli=tlingit
+languages.tlh=klingon
 languages.tt=tatariska
 languages.ts=tsonga
+languages.srn=sranan tongo
 languages.bad=banda
 languages.tr=turkiska
 languages.to=tonganska
-languages.tn=tswana
+languages.tn=setswana
 languages.tl=tagalog
 languages.tk=turkmeniska
 languages.ti=tigrinja
@@ -700,148 +777,164 @@ languages.th=thail\u00e4ndska
 languages.kru=kurukh
 languages.tg=tadzjikiska
 languages.byn=blin
-languages.te=telugu
-languages.csb=kasjubiska
+languages.te=telugiska
 languages.kro=kru
+languages.csb=kasjubiska
 languages.ta=tamil
+languages.krl=karelska
 languages.tkl=tokelauiska
 languages.efi=efik
 languages.sw=swahili
 languages.sv=svenska
 languages.su=sundanesiska
 languages.krc=karachay-balkar
-languages.st=syd\u00adsotho
-languages.ss=swati
+languages.st=sydsotho
+languages.ss=siswati
 languages.sr=serbiska
 languages.sq=albanska
 languages.men=mende
-languages.crp=kreolska och pidgin (annat)
+languages.crp=kreol- eller pidginspr\u00e5k
 languages.so=somaliska
 languages.afh=afrihili
-languages.sn=shona; manshona
+languages.sn=shona
 languages.sm=samoanska
 languages.sl=slovenska
-languages.grc=forngrekiska (till 1453)
+languages.grc=forngrekiska
 languages.sk=slovakiska
 languages.grb=grebo
 languages.si=singalesiska
 languages.sh=serbokroatiska
-languages.afa=afro-asiatiskt (andra)
-languages.crh=krimturkiska; krimtatar
+languages.crh=krimturkiska
+languages.afa=afroasiatiskt spr\u00e5k
 languages.sg=sango
-languages.se=nord\u00adsamiska
+languages.se=nordsamiska
 languages.sd=sindhi
 languages.udm=udmurtiska
 languages.sc=sardiska
 languages.sa=sanskrit
-languages.rw=rwanda; kinjarwanda
+languages.rw=kinjarwanda
+languages.nwc=klassisk newariska
 languages.ru=ryska
 languages.mdr=mandar
 languages.ro=rum\u00e4nska
 languages.rn=rundi
-languages.rm=r\u00e4to\u00adromanska
-languages.mdf=moksja
+languages.rm=r\u00e4toromanska
+languages.fr_CH=schweizisk franska
+languages.mdf=moksha
 languages.tiv=tivi
+languages.fr_CA=kanadensisk franska
 languages.ady=adygeiska
 languages.zun=zu\u00f1i
 languages.kpe=kpelle
 languages.qu=quechua
 languages.tig=tigr\u00e9
 languages.son=songhai
-languages.cpp=kreolska och pidgin, portugisiskbaserade (\u00f6vriga)
+languages.cpp=portugisiskbaserat kreol- eller pidginspr\u00e5k
+languages.rup=arum\u00e4nska
 languages.sog=sogdiska
 languages.ada=adangme
-languages.cpf=kreolska och pidgin, franskbaserade (\u00f6vriga)
-languages.hit=hettitiska
 languages.kos=kosreanska
-languages.cpe=kreolska och pidgin, engelskbaserade (\u00f6vriga)
+languages.hit=hettitiska
+languages.cpf=franskbaserat kreol- eller pidginspr\u00e5k
+languages.cpe=engelskbaserat kreol- eller pidginspr\u00e5k
 languages.him=himachali
-languages.got=gotiska
-languages.hil=hiligaynon
 languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=gotiska
 languages.gor=gorontalo
 languages.gon=gondi
 languages.din=dinka
-languages.nub=nubiska spr\u00e5k
+languages.nub=nubiskt spr\u00e5k
 languages.pt=portugisiska
-languages.ps=pashto; afghanska
+languages.ps=afghanska
 languages.fur=friulianska
-languages.phn=kananeiska; feniciska
-languages.goh=fornh\u00f6gtyska (ca.750-1050)
+languages.phn=fenikiska
+languages.de_CH=schweizisk h\u00f6gtyska
+languages.goh=fornh\u00f6gtyska
 languages.snk=soninke
 languages.cop=koptiska
-languages.ach=acholi
-languages.phi=filippinskt spr\u00e5k (annat)
+languages.yap=yap
+languages.ach=acoli
+languages.yao=kiyao
+languages.phi=filippinskt spr\u00e5k
 languages.pl=polska
-languages.ace=achinese
+languages.ace=achinesiska
 languages.pi=pali
+languages.pt_PT=europeisk portugisiska
 languages.pa=punjabi
 languages.bug=buginesiska
-languages.iba=iban
+languages.iba=ibanska
 languages.sms=skoltsamiska
-languages.bua=buriat
+languages.bua=burj\u00e4tiska
 languages.mas=massajiska
 languages.smn=enaresamiska
 languages.os=ossetiska
-languages.map=austronesiska
+languages.map=austronesiskt spr\u00e5k
 languages.or=oriya
 languages.man=mande
 languages.smj=lulesamiska
-languages.smi=samiskt spr\u00e5k (annat)
+languages.smi=samiskt spr\u00e5k
 languages.mak=makasar
 languages.om=oromo
 languages.mai=maithili
-languages.oj=odjibwa; chippewa
+languages.oj=ojibwa
 languages.mag=magahi
-languages.mad=madurese
+languages.mad=maduresiska
 languages.sma=sydsamiska
-languages.oc=provensalska (efter 1500); occitanska
-languages.nso=sotho, nord
+languages.oc=occitanska
+languages.nso=nordsotho
 languages.btk=batak
-languages.myv=erjya
+languages.myv=ersjanska
+languages.es_ES=europeisk spanska
+languages.de_AT=\u00f6sterrikisk tyska
 languages.dgr=dogrib
 languages.ny=nyanja
-languages.myn=maya
+languages.myn=mayaspr\u00e5k
 languages.nv=navaho
-languages.kmb=kinbundu
-languages.nr=syd\u00adndebele
-languages.gmh=medelh\u00f6gtyska (ca.1050-1500)
+languages.kmb=kimbundu
+languages.nr=sydndebele
+languages.gmh=medelh\u00f6gtyska
 languages.no=norska
-languages.nn=ny\u00adnorsk
-languages.nl=nederl\u00e4ndska
+languages.nn=nynorska
+languages.nl=holl\u00e4ndska
+languages.root=(rot)
 languages.ng=ndonga
-languages.sla=slaviskt (annat)
-languages.ne=nepalesisika
-languages.nd=nord\u00adndebele
+languages.sla=slaviskt spr\u00e5k
+languages.ne=nepali
+languages.nd=nordndebele
 languages.cmc=chamispr\u00e5k
 languages.tet=tetum
 languages.nb=norskt bokm\u00e5l
-languages.na=nauru
+languages.na=nauriska
 languages.ter=tereno
 languages.tem=temne
-languages.my=burmanska
+languages.my=burmesiska
 languages.lez=lezghien
 languages.mt=maltesiska
-languages.peo=fornpersiska (ca 600-400 f.Kr.)
+languages.frs=\u00f6stfrisiska
+languages.peo=fornpersiska
 languages.ms=malajiska
+languages.frr=nordfrisiska
 languages.mr=marathi
-languages.fro=fornfranska (842- ca 1400)
+languages.fro=fornfranska
 languages.mo=moldaviska
 languages.mn=mongoliska
-languages.frm=medelfranska (ca 1400-1600)
+languages.frm=medelfranska
 languages.ml=malayalam
 languages.jrb=judisk arabiska
 languages.mk=makedonska
 languages.mi=maori
 languages.mh=marshalliska
 languages.mg=malagassiska
+languages.nqo=n-k\u00e5
 languages.mwr=marwari
 languages.bra=braj
+languages.mwl=mirandesiska
+languages.den=slavej
 languages.lv=lettiska
-languages.den=slave
-languages.lu=luba-katanga
-languages.lt=litauiska
+languages.lu=luba-Katanga
 languages.del=delaware
+languages.lt=litauiska
 languages.lo=laotiska
 languages.ln=lingala
 languages.li=limburgiska
@@ -849,22 +942,23 @@ languages.ewo=ewondo
 languages.lg=luganda
 languages.lb=luxemburgiska
 languages.la=latin
-languages.jpr=judisk farsi
+languages.jpr=judisk persiska
 languages.vot=votiska
-languages.sit=sinotibetanska spr\u00e5k
+languages.sit=sinotibetanskt spr\u00e5k
 languages.ky=kirgisiska
 languages.kw=korniska
-languages.kv=kome
+languages.kv=komi
 languages.ku=kurdiska
 languages.sio=siouxspr\u00e5k
 languages.ks=kashmiriska
 languages.kr=kanuri
 languages.awa=awadhi
 languages.ko=koreanska
-languages.kn=kanaresiska; kannada
-languages.km=kambodjanska; khmeriska
+languages.kn=kannada
+languages.km=kambodjanska
+languages.en_GB=brittisk engelska
 languages.kl=gr\u00f6nl\u00e4ndska
-languages.kk=kazakstanska
+languages.kk=kazakiska
 languages.rom=romani
 languages.kj=kuanyama
 languages.sid=sidamo
@@ -873,220 +967,264 @@ languages.kg=kikongo
 languages.non=fornnordiska
 languages.ka=georgiska
 languages.mus=muskogee
-languages.roa=romanskt (annat)
+languages.roa=romanskt spr\u00e5k
 languages.nog=nogai
 languages.mun=mundaspr\u00e5k
 languages.mul=flera spr\u00e5k
 languages.jv=javanesiska
-languages.gil=gilbertesiska; kiribati
+languages.gil=gilbertiska
 languages.znd=zand\u00e9
 languages.shn=shan
+languages.fon=fonspr\u00e5ket
 languages.xal=kalmuckiska
-languages.aus=australiska spr\u00e5k
+languages.aus=australiskt spr\u00e5k
 languages.kho=khotanesiska
 languages.ja=japanska
-languages.khi=khoisan (annat)
-languages.pau=palau
+languages.khi=khoisanspr\u00e5k
+languages.pau=palauanska
 languages.chy=cheyenne
-languages.tai=tai (annat)
+languages.tai=thaispr\u00e5k
 languages.iu=inuktitut
 languages.pap=papiamento
 languages.it=italienska
 languages.sgn=teckenspr\u00e5k
-languages.kha=khasi
 languages.is=isl\u00e4ndska
+languages.kha=khasi
 languages.chr=cherokesiska
 languages.pam=pampanga
-languages.pal=pahlavi
+languages.pal=medelpersiska
 languages.chp=chipewyan
-languages.cho=choctaw
 languages.io=ido
+languages.cho=choctaw
 languages.chn=chinook
 languages.chm=mari
 languages.tyv=tuviniska
 languages.bnt=bantuspr\u00e5k
-languages.pag=pangasinan
+languages.pag=pangasin\u00e1n
+languages.ik=inupiak
 languages.chk=chuukesiska
-languages.ik=inupiaq
+languages.ii=szezuan i
 languages.haw=hawaiiska
-languages.ii=sichuan yi
 languages.lam=lamba
-languages.chg=chagatai
 languages.ig=ibo
-languages.sga=forniriska (till 900)
-languages.paa=papuaspr\u00e5k (annat)
+languages.chg=chagatai
+languages.sga=forniriska
+languages.paa=papuanskt spr\u00e5k
 languages.ie=interlingue
 languages.id=indonesiska
 languages.lah=lahnda
+languages.day=dajakiska
 languages.chb=chibcha
-languages.day=dayak
 languages.ia=interlingua
 languages.lad=ladino
-languages.dar=dargwa
-languages.hai=haida
 languages.hz=herero
+languages.hai=haida
+languages.dar=darginska
 languages.hy=armeniska
-languages.ath=athapasiska spr\u00e5k
+languages.ath=athapaskiska
 languages.hu=ungerska
 languages.ht=haitiska
 languages.dak=dakota
 languages.hr=kroatiska
-languages.ho=hiri motu
+languages.ho=hirimotu
 languages.hi=hindi
 languages.dyu=dyula
 languages.he=hebreiska
 languages.ast=asturiska
-languages.ha=haussa
-languages.wen=sorbiska spr\u00e5k
-languages.gv=manx gaeliska
+languages.kfo=koro
+languages.ha=hausa
+languages.wen=sorbiskt spr\u00e5k
+languages.gv=manx
 languages.gu=gujarati
-languages.sem=semitiskt (annat)
-languages.sel=selkup
-languages.iro=irokesiska
+languages.sem=semitiskt spr\u00e5k
+languages.sel=selkupiska
+languages.iro=irokesiskt spr\u00e5k
 languages.gn=guaran\u00ed
 languages.gl=galiciska
+languages.en_CA=kanadensisk engelska
 languages.arw=arawakiska
-languages.gd=skotsk gaeliska
-languages.art=artificiellt (annat)
-languages.gez=geez
-languages.ira=iranska
-languages.ga=irl\u00e4ndsk gaeliska
+languages.gez=fornetiopiska
+languages.art=konstgjort spr\u00e5k
+languages.gd=h\u00f6glandsskotska
+languages.ira=iranskt spr\u00e5k
+languages.ga=iriska
 languages.arp=arapaho
 languages.arn=araukanska
-languages.fy=frisiska
+languages.fy=v\u00e4stfrisiska
 languages.bla=siksika
-languages.gem=germanskt (annat)
-languages.ypk=yupiska spr\u00e5k
-languages.fr=franska
+languages.gem=germanskt spr\u00e5k
+languages.ypk=yupiskt spr\u00e5k
 languages.arc=arameiska
+languages.fr=franska
 languages.fo=f\u00e4r\u00f6iska
-languages.cel=keltiskt (annat)
-languages.fj=fidjianska
+languages.cel=keltiskt spr\u00e5k
+languages.fj=fijianska
 languages.fi=finska
 languages.ff=fulani
 languages.tvl=tuvaluanska
 languages.ceb=cebuano
 languages.fa=persiska
+languages.en_AU=australisk engelska
+languages.zh_Hans=f\u00f6renklad kinesiska
+languages.zh_Hant=traditionell kinesiska
 languages.eu=baskiska
 languages.sco=skotska
 languages.et=estniska
+languages.scn=sicilianska
 languages.es=spanska
 languages.eo=esperanto
 languages.en=engelska
 languages.el=grekiska
-languages.tut=altaiskt (annat)
-languages.niu=niuean
-languages.tup=tupispr\u00e5k
+languages.tut=altaiskt spr\u00e5k
+languages.niu=niueanska
+languages.tup=tup\u00edspr\u00e5k
 languages.ee=ewe
-languages.tum=tumbuka
+languages.tum=tumbukiska
+languages.nl_BE=flaml\u00e4ndska
+languages.es_419=latinamerikansk spanska
 languages.mos=mossi
-languages.dz=dzongkha
-languages.nic=kordofanspr\u00e5k (annat)
-languages.dv=divehi
-languages.fiu=finskugriskt (annat)
+languages.dz=bhutanesiska
+languages.kcg=tyap
+languages.nic=Niger-Kongospr\u00e5k
 languages.lus=lushai
+languages.fiu=finskugriskt spr\u00e5k
+languages.dv=divehi
 languages.nia=nias
 languages.moh=mohawk
+languages.luo=luo
 languages.lun=lunda
 languages.apa=apachespr\u00e5k
+languages.fil=filippinska
 languages.lui=luise\u00f1o
 languages.hup=hupa
+languages.cch=atsam
 languages.bin=bini
 languages.de=tyska
-languages.lua=luba-lulua
+languages.lua=luba-Lulua
 languages.bik=bikol
 languages.was=washo
-languages.und=obest\u00e4mt
+languages.und=obest\u00e4mt spr\u00e5k
 languages.war=waray
 languages.da=danska
-languages.dum=medelnederl\u00e4ndska (ca 1050-1350)
+languages.dum=medelnederl\u00e4ndska
 languages.wal=walamo
 languages.mno=manobospr\u00e5k
-languages.wak=wakash
+languages.wak=wakusjiskt spr\u00e5k
 languages.sat=santali
 languages.cy=walesiska
 languages.sas=sasak
-languages.cv=tjuvasjiska
 languages.kbd=kabardinska
-languages.cu=kyrkoslaviska
+languages.cv=tjuvasjiska
+languages.cu=kyrkslaviska
 languages.mni=manipuri
 languages.cs=tjeckiska
-languages.sam=samariska
+languages.sam=samaritanska
 languages.cr=cree
-languages.sal=salishspr\u00e5k
+languages.sal=salikiskt spr\u00e5k
 languages.dua=duala
 languages.co=korsikanska
-languages.sai=nordamerikanskt indianskt (annat)
+languages.sai=sydamerikanskt indianspr\u00e5k
 languages.mnc=manchuriska
 languages.sah=jakutiska
-languages.gba=gbaya
-languages.inh=ingusjiska
 languages.kaw=kawi
+languages.inh=ingusjiska
+languages.gba=gbaya
 languages.sad=sandawe
 languages.ch=chamorro
+languages.ine=indoeuropeiskt spr\u00e5k
 languages.bho=bhojpuri
-languages.ine=indoeuropeiskt (annat)
-languages.enm=medelengelska (1100-1500)
+languages.enm=medelengelska
+languages.kar=karenska
+languages.inc=indiskt spr\u00e5k
 languages.ce=tjetjenska
-languages.inc=indiskt (annat)
-languages.kar=karen
 languages.gay=gayo
 languages.ca=katalanska
 languages.umb=umbundu
 languages.syr=syriska
 languages.kam=kamba
+languages.anp=angika
 languages.tsi=tsimshian
-languages.ang=fornengelska (ca 450-1100)
-languages.cau=kaukasiskt (annat)
+languages.kaj=jju
+languages.ang=fornengelska
 languages.kac=kachin
+languages.cau=kaukasiskt spr\u00e5k
 languages.kab=kabyliska
-languages.bs=bosniska
 languages.kaa=karakalpakiska
-languages.br=bretonska
+languages.bs=bosniska
 languages.car=karibiska
+languages.br=bretonska
+languages.syc=fornsyriska
 languages.bo=tibetanska
 languages.bn=bengali
 languages.bm=bambara
-languages.gaa=ga
+languages.gaa=g\u00e3
+languages.cai=centralamerikanskt indianspr\u00e5k
 languages.bi=bislama
-languages.cai=centralamerikanskt indianskt (annat)
 languages.bh=bihari
 languages.bg=bulgariska
 languages.be=vitryska
+languages.pt_BR=brasiliansk portugisiska
 languages.cad=caddo
 languages.ba=basjkiriska
 languages.zu=zulu
 languages.zen=zenaga
-languages.pro=fornprovensalska (till 1500)
+languages.pro=fornprovensalska
 languages.hsb=h\u00f6gsorbiska
 languages.az=azerbajdzjanska
 languages.ay=aymara
-languages.av=avariska
-languages.as=assami
-languages.ar=arabiska
+languages.av=avariskt spr\u00e5k
+languages.as=assamesiska
 languages.dsb=l\u00e5gsorbiska
-languages.elx=elamitiska
+languages.ar=arabiska
 languages.ilo=iloko
+languages.elx=elamitiska
 languages.zh=kinesiska
 languages.an=aragonesiska
-languages.pra=prakrit
+languages.pra=prakritspr\u00e5k
 languages.am=amhariska
-languages.new=newari
+languages.new=newariska
 languages.ak=akan
 languages.za=zhuang
+languages.en_US=amerikansk engelska
 languages.af=afrikaans
 languages.ae=avestiska
-languages.ab=abkhaziska
+languages.alt=sydaltaiska
+languages.ab=abchaziska
 languages.aa=afar
 languages.yo=yoruba
-languages.alg=algonquinspr\u00e5k
+languages.alg=algonkinskt spr\u00e5k
 languages.ale=aleutiska
-languages.mkh=mon-khmeriska (annat)
+languages.mkh=mon-khmeriskt spr\u00e5k
 languages.yi=jiddisch
-languages.dra=dravidiskt (annat)
-languages.ber=berber
-languages.nds=l\u00e5gtyska; l\u00e5gsaxiska
+languages.dra=dravidiskt spr\u00e5k
+languages.ber=berberspr\u00e5k
+languages.nds=l\u00e5gtyska
 languages.bem=bemba
 languages.bej=beyja
 languages.tpi=tok pisin
-variants.REVISED=reviderad
+variants.AREVMDA=v\u00e4starmeniska
+variants.1996=1996 \u00e5rs stavning
+variants.SOLBA=Solbica-dialekt
+variants.NEDIS=natisonsk dialekt
+variants.1994=1994 \u00e5rs stavning
+variants.1901=1901 \u00e5rs stavning
+variants.FONUPA=uralisk fonetisk notation (UPA)
+variants.OSOJS=Osojane-dialekt
+variants.1694ACAD=1694 \u00e5rs stavning
+variants.LIPAW=Lipovaz-dialekt
+variants.REVISED=reformerad stavning
+variants.NJIVA=Njiva-dialekt
+variants.TARASK=klassisk stavning
+variants.FONIPA=internationell fonetisk notation (IPA)
+variants.BISKE=Bila-dialekt
+variants.SCOUSE=Liverpool-dialekt
+variants.BAKU1926=1926 \u00e5rs stavning
+variants.SAAHO=saho-dialekt
+variants.ROZAJ=resisk dialekt
+variants.MONOTON=monotonisk stavning
+variants.POLYTON=polytonisk stavning
+variants.AREVELA=\u00f6starmeniska
+variants.SCOTLAND=skotsk engelska
+variants.VALENCIA=valencianska
+variants.BOONT=boontling
+variants.1606NICT=1606 \u00e5rs stavning
index d08acb597c870b61f092d6995d7c94ac17e6b4b3..6aca905cf3e980c61ac2a3d9dc0950b8b6d538a4 100644 (file)
@@ -5,4 +5,12 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
+territories.BA=Bosnien-Hercegovina
+territories.HK=Hongkong
+territories.019=Amerika
+territories.UM=USA:s yttre \u00f6ar
+territories.MO=Macao
+languages.phn=fenikiska
+variants.FONUPA=uralisk fonetisk notation (UPA)
+variants.1996=1996 \u00e5rs stavning
+variants.FONIPA=internationell fonetisk notation (IPA)
index 2213bcbfd15b2dc686628ffa8e2cf5dc08608998..85cff99f601fe5fd3cdf4e4be9ca079ca83c7794 100644 (file)
@@ -5,16 +5,25 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
 currenciesDisplayName.TZS=Shilingi ya Tanzania
 currenciesSymbol.TZS=TSh
 currenciesSymbol.KES=KSh
-shortMonths=Jan®Feb®Mac®Apr®Mei®Jun®Jul®Ago®Sep®Okt®Nov®Des®®
-months=Januari®Februari®Machi®Aprili®Mei®Juni®Julai®Agosti®Septemba®Oktoba®Novemba®Desemba®®
-shortWeekdays=®Jpl®Jtt®Jnn®Jtn®Alh®Ijm®Jms®
-weekdays=®Jumapili®Jumatatu®Jumanne®Jumatano®Alhamisi®Ijumaa®Jumamosi®
-firstDayOfWeek=sat
-eras=KK®BK®
-zoneStrings=Africa/Nairobi®EAT®Saa za Africa Mashariki®EAT®Saa za Africa Mashariki®©
+shortMonths=Jan\u00aeFeb\u00aeMac\u00aeApr\u00aeMei\u00aeJun\u00aeJul\u00aeAgo\u00aeSep\u00aeOkt\u00aeNov\u00aeDes\u00ae\u00ae
+months=Januari\u00aeFebruari\u00aeMachi\u00aeAprili\u00aeMei\u00aeJuni\u00aeJulai\u00aeAgosti\u00aeSeptemba\u00aeOktoba\u00aeNovemba\u00aeDesemba\u00ae\u00ae
+shortWeekdays=\u00aeJpi\u00aeJtt\u00aeJnn\u00aeJtn\u00aeAlh\u00aeIju\u00aeJmo\u00ae
+weekdays=\u00aeJumapili\u00aeJumatatu\u00aeJumanne\u00aeJumatano\u00aeAlhamisi\u00aeIjumaa\u00aeJumamosi\u00ae
+eras=KK\u00aeBK\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Africa_Eastern\u00aeSaa za Africa Mashariki\u00ae\u00ae\u00ae\u00ae\u00a9
 territories.TD=Chadi
 territories.AR=Ajentina
 territories.MZ=Msumbiji
@@ -23,8 +32,8 @@ territories.MX=Meksiko
 territories.ZA=Afrika ya Kusini
 territories.GQ=Guinea ya Ikweta
 territories.AG=Antigua na Barbuda
-territories.AE=Muugano wa Falme za Nchi za Kiarabu
 territories.ST=Sao Tome na Principe
+territories.AE=Muugano wa Falme za Nchi za Kiarabu
 territories.SO=Somali
 territories.MH=Visiwa vya Marshall
 territories.GB=Uingereza
@@ -45,16 +54,16 @@ territories.KP=Korea ya Kaskazini
 territories.KN=Saint Kitts na Nevis
 territories.KM=Visiwa vya Komoro
 territories.EG=Misri
-territories.EC=Ekvado
 territories.KH=Kampuchea
+territories.EC=Ekvado
 territories.KE=Kenya
-territories.DO=Jamhuri ya Dominikan
 territories.PY=Paragwai
+territories.DO=Jamhuri ya Dominikan
 territories.DM=Dominika
-territories.DK=Udenmarki
 territories.JP=Ujapani
-territories.DJ=Jibuti
+territories.DK=Udenmarki
 territories.PT=Ureno
+territories.DJ=Jibuti
 territories.JM=Jamaika
 territories.DE=Udachi
 territories.PH=Filipino
@@ -64,19 +73,19 @@ territories.CV=Rasi Verde
 territories.VC=Saint Vincent na Grenadines
 territories.CS=Serbiya da Montenegro
 territories.VA=Vatikano
-territories.CO=Kolombia
 territories.IT=Uitaliani
-territories.CN=Uchina
+territories.CO=Kolombia
 territories.IS=Barafu
-territories.CM=Kamerun
+territories.CN=Uchina
 territories.IR=Uajemi
+territories.CM=Kamerun
 territories.IQ=Iraki
 territories.UY=Urugwai
-territories.CI=Pwani ya Pembe
 territories.IN=Uhindi
+territories.CI=Pwani ya Pembe
 territories.CH=Uswisi
-territories.CG=Kongo
 territories.IL=Uyahudi
+territories.CG=Kongo
 territories.CF=Jamhuri ya Afrika ya Kati
 territories.US=Muungano wa Nchi za Amerika
 territories.CA=Kanada
@@ -87,11 +96,116 @@ territories.HR=Kroatia
 territories.TZ=Tanzania
 territories.NP=Nepali
 territories.TT=Trinidad na Tobago
-territories.BE=Ubelgiji
 territories.NO=Unorwe
+territories.BE=Ubelgiji
 territories.TR=Uturuki
 territories.NL=Uholanzi
 territories.BA=Bosnia na Herzegowina
+territories.TO=Kitonga
 territories.NI=Nikaragua
 territories.TL=Timor ya Mashariki
+languages.es=kihispania
+languages.ku=kikurdi
+languages.eo=kiesperanto
+languages.en=kiingereza
+languages.el=kigiriki
+languages.ko=kikorea
+languages.kn=kikannada
+languages.km=kicambodia
+languages.ka=kijiojia
+languages.jv=kijava
+languages.fil=kitagalog
+languages.pt=kireno
+languages.ps=kipashto
+languages.de=kijerumani
+languages.pl=kipolandi
+languages.da=kidenmarki
+languages.tlh=kiklingon
+languages.ja=kijapani
+languages.vi=kivietnam
+languages.cy=kiwelsh
+languages.pa=kipunjabi
+languages.cs=kicheki
+languages.it=kiitaliano
+languages.is=kiaislandi
+languages.uz=kiuzbeki
+languages.or=kioriya
+languages.ur=kiurdu
+languages.ca=kikatalan
+languages.ie=lugha ya kisayansi
+languages.id=kiindonesia
+languages.uk=kiukrania
+languages.ia=kiinterlingua
+languages.oc=kiositani
+languages.ug=ombwa
+languages.hy=muarmeni
+languages.bs=kibosnia
+languages.br=kibreton
+languages.hu=kihungari
+languages.pt_PT=kireno (ureno)
+languages.bn=kibengali; kibangla
+languages.hr=kikroeshia
+languages.tw=kitwii
+languages.bh=kibihari
+languages.bg=kibulgaria
+languages.no=kinorwei
+languages.be=kibelarusi
+languages.hi=kihindi
+languages.tr=kituruki
+languages.nl=kiholanzi
+languages.zu=kizulu
+languages.he=kiyahudi
+languages.tk=wataki weume
+languages.ne=kinepali
+languages.az=kiazabaijani
+languages.ti=kitigrinya
+languages.th=kithailand
+languages.te=kitelugu
+languages.zh=kichina
+languages.as=kubafu
+languages.ar=kiarabu
+languages.ta=kitamil
+languages.gu=kigujarati
+languages.am=kiamhariki
+languages.mt=kimalta
+languages.ms=kimalaysia
+languages.gn=guarani
 languages.sw=Kiswahili
+languages.mr=kimarathi
+languages.sv=kisweden
+languages.gl=kigalisia
+languages.su=kinubi
+languages.af=kiafrikans
+languages.st=sesotho
+languages.mn=kimongolia
+languages.sr=kiserbia
+languages.sq=kialbania
+languages.ml=kimalayalam
+languages.mk=kimasedonia
+languages.so=kisomali
+languages.gd=kiskotlandi
+languages.sl=kislovenia
+languages.sk=kislovakia
+languages.ga=kiairish
+languages.si=kisinhali
+languages.sh=kiserbia-kroeshia
+languages.pt_BR=kireno (brazil)
+languages.yi=kiyidish
+languages.sd=msindhi
+languages.fy=kifrisia
+languages.sa=kisanskriti
+languages.fr=kifaransa
+languages.lv=kilatvia
+languages.lt=kilithuania
+languages.fo=kifaroe
+languages.ru=kirusi
+languages.lo=kilaosi
+languages.ln=kilingala
+languages.fi=kifinlandi
+languages.ro=kiromania
+languages.fa=kiajemi
+languages.la=kirumi
+languages.xh=kikhosa
+languages.eu=kibaski
+languages.ky=kugizi
+languages.et=kiestonia
index 2caa330e8109e764681db1a8f1350765bdfb0268..f5c98344f4d630b49d2500f1f22db7f7b35269d4 100644 (file)
@@ -5,7 +5,21 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-
 currenciesSymbol.SYP=\u0644.\u0633.\u200f
-shortMonths=\u070f\u071f\u0722\u00a0\u070f\u0712®\u072b\u0712\u071b®\u0710\u0715\u072a®\u0722\u071d\u0723\u0722®\u0710\u071d\u072a®\u071a\u0719\u071d\u072a\u0722®\u072c\u0721\u0718\u0719®\u0710\u0712®\u0710\u071d\u0720\u0718\u0720®\u070f\u072c\u072b\u00a0\u070f\u0710®\u070f\u072c\u072b\u00a0\u070f\u0712®\u070f\u071f\u0722\u00a0\u070f\u0710®®
+shortMonths=\u070f\u071f\u0722\u00a0\u070f\u0712\u00ae\u072b\u0712\u071b\u00ae\u0710\u0715\u072a\u00ae\u0722\u071d\u0723\u0722\u00ae\u0710\u071d\u072a\u00ae\u071a\u0719\u071d\u072a\u0722\u00ae\u072c\u0721\u0718\u0719\u00ae\u0710\u0712\u00ae\u0710\u071d\u0720\u0718\u0720\u00ae\u070f\u072c\u072b\u00a0\u070f\u0710\u00ae\u070f\u072c\u072b\u00a0\u070f\u0712\u00ae\u070f\u071f\u0722\u00a0\u070f\u0710\u00ae\u00ae
+months=\u070f\u071f\u0722 \u070f\u0712\u00ae\u072b\u0712\u071b\u00ae\u0710\u0715\u072a\u00ae\u0722\u071d\u0723\u0722\u00ae\u0710\u071d\u072a\u00ae\u071a\u0719\u071d\u072a\u0722\u00ae\u072c\u0721\u0718\u0719\u00ae\u0710\u0712\u00ae\u0710\u071d\u0720\u0718\u0720\u00ae\u070f\u072c\u072b \u070f\u0710\u00ae\u070f\u072c\u072b \u070f\u0712\u00ae\u070f\u071f\u0722 \u070f\u0710\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=dd/MM/yyyy
+longDateFormat=dd MMMM, yyyy
+fullDateFormat=dd MMMM, yyyy
+shortTimeFormat=h:mm
+mediumTimeFormat=h:mm:ss
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.SY=\u0723\u0718\u072a\u071d\u071d\u0710
 languages.syr=\u0723\u0718\u072a\u071d\u071d\u0710
index 01bd7b9cc23390eff104c6b2d36fee9a71cecea9..0f154950bdfc5c4ce8b398eefd563c9cbd2ac3ec 100644 (file)
@@ -6,15 +6,24 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
 currenciesSymbol.INR=\u0bb0\u0bc2
-shortMonths=\u0b9c\u0ba9.®\u0baa\u0bbf\u0baa\u0bcd.®\u0bae\u0bbe\u0bb0\u0bcd.®\u0b8f\u0baa\u0bcd.®\u0bae\u0bc7®\u0b9c\u0bc2\u0ba9\u0bcd®\u0b9c\u0bc2\u0bb2\u0bc8®\u0b86\u0b95.®\u0b9a\u0bc6\u0baa\u0bcd.®\u0b85\u0b95\u0bcd.®\u0ba8\u0bb5.®\u0b9f\u0bbf\u0b9a.®®
-months=\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf®\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf®\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd®\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd®\u0bae\u0bc7®\u0b9c\u0bc2\u0ba9\u0bcd®\u0b9c\u0bc2\u0bb2\u0bc8®\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd®\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd®\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd®\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd®\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd®®
-shortWeekdays=®\u0b9e\u0bbe®\u0ba4\u0bbf®\u0b9a\u0bc6®\u0baa\u0bc1®\u0bb5\u0bbf®\u0bb5\u0bc6®\u0b9a®
-weekdays=®\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1®\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd®\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd®\u0baa\u0bc1\u0ba4\u0ba9\u0bcd®\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd®\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf®\u0b9a\u0ba9\u0bbf®
-eras=\u0b95\u0bbf\u0bae\u0bc1®\u0b95\u0bbf\u0baa\u0bbf®
-ampms=\u0b95\u0bbe\u0bb2\u0bc8®\u0bae\u0bbe\u0bb2\u0bc8®
-zoneStrings=Asia/Calcutta®IST®\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf \u0ba8\u0bc7\u0bb0\u0baa\u0bcd\u0baa\u0b9f\u0bbf®IST®\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf \u0ba8\u0bc7\u0bb0\u0baa\u0bcd\u0baa\u0b9f\u0bbf®©
+shortMonths=\u0b9c\u0ba9.\u00ae\u0baa\u0bbf\u0baa\u0bcd.\u00ae\u0bae\u0bbe\u0bb0\u0bcd.\u00ae\u0b8f\u0baa\u0bcd.\u00ae\u0bae\u0bc7\u00ae\u0b9c\u0bc2\u0ba9\u0bcd\u00ae\u0b9c\u0bc2\u0bb2\u0bc8\u00ae\u0b86\u0b95.\u00ae\u0b9a\u0bc6\u0baa\u0bcd.\u00ae\u0b85\u0b95\u0bcd.\u00ae\u0ba8\u0bb5.\u00ae\u0b9f\u0bbf\u0b9a.\u00ae\u00ae
+months=\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf\u00ae\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf\u00ae\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd\u00ae\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd\u00ae\u0bae\u0bc7\u00ae\u0b9c\u0bc2\u0ba9\u0bcd\u00ae\u0b9c\u0bc2\u0bb2\u0bc8\u00ae\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd\u00ae\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd\u00ae\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd\u00ae\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd\u00ae\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd\u00ae\u00ae
+shortWeekdays=\u00ae\u0b9e\u0bbe\u00ae\u0ba4\u0bbf\u00ae\u0b9a\u0bc6\u00ae\u0baa\u0bc1\u00ae\u0bb5\u0bbf\u00ae\u0bb5\u0bc6\u00ae\u0b9a\u00ae
+weekdays=\u00ae\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1\u00ae\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd\u00ae\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u00ae\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u00ae\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd\u00ae\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u00ae\u0b9a\u0ba9\u0bbf\u00ae
+eras=\u0b95\u0bbf\u0bae\u0bc1\u00ae\u0b95\u0bbf\u0baa\u0bbf\u00ae
+ampms=\u0b95\u0bbe\u0bb2\u0bc8\u00ae\u0bae\u0bbe\u0bb2\u0bc8\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=India\u00ae\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf \u0ba8\u0bc7\u0bb0\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u0b95\u0bbf\u0bb4\u0b95\u0bcd\u0b95\u0bc1 \u0ba4\u0bbf\u0bae\u0bcb\u0bb0\u0bcd
 territories.TJ=\u0ba4\u0bbe\u0b9c\u0bbf\u0b95\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd
 territories.TH=\u0ba4\u0bbe\u0baf\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
 territories.GY=\u0b95\u0baf\u0bbe\u0ba9\u0bbe
@@ -23,16 +32,16 @@ territories.GW=\u0b95\u0bbf\u0ba9\u0bbf-\u0baa\u0bbf\u0bb8\u0bcd\u0bb8\u0bbe\u0b
 territories.GT=\u0b95\u0bc1\u0bb5\u0bbe\u0ba4\u0bcd\u0ba4\u0bbe\u0bae\u0bbe\u0bb2\u0bbe
 territories.GR=\u0b95\u0bbf\u0bb0\u0bc0\u0bb8\u0bcd
 territories.GQ=\u0b88\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0bbf\u0b9f\u0bcb\u0bb0\u0bbf\u0baf\u0bb2\u0bcd \u0b95\u0bbf\u0ba9\u0bbf
-territories.GN=\u0b95\u0bbf\u0ba9\u0bbf
 territories.SY=\u0b9a\u0bbf\u0bb0\u0bbf\u0baf\u0bbe
+territories.GN=\u0b95\u0bbf\u0ba9\u0bbf
 territories.GM=\u0b95\u0bbe\u0bae\u0bcd\u0baa\u0bbf\u0baf\u0bbe
 territories.SV=\u0b8e\u0bb2\u0bcd \u0b9a\u0bbe\u0bb2\u0bcd\u0bb5\u0b9f\u0bbe\u0bb0\u0bcd
 territories.GH=\u0b95\u0bbe\u0ba9\u0bbe
 territories.SR=\u0b9a\u0bc2\u0bb0\u0bbf\u0ba9\u0bbe\u0bae\u0bcd
 territories.GE=\u0b9c\u0bbe\u0bb0\u0bcd\u0b9c\u0bbf\u0baf\u0bbe
 territories.GD=\u0b95\u0bbf\u0bb0\u0ba9\u0bc6\u0b9f\u0bbe
-territories.GB=\u0baa\u0bbf\u0bb0\u0bbf\u0b9f\u0bbf\u0bb7\u0bcd \u0b95\u0bc2\u0b9f\u0bcd\u0b9f\u0bb0\u0b9a\u0bc1
 territories.SM=\u0b9a\u0bbe\u0ba9\u0bcd\u0bae\u0bc6\u0bb0\u0bbf\u0ba9\u0bcb
+territories.GB=\u0baa\u0bbf\u0bb0\u0bbf\u0b9f\u0bbf\u0bb7\u0bcd \u0b95\u0bc2\u0b9f\u0bcd\u0b9f\u0bb0\u0b9a\u0bc1
 territories.GA=\u0b95\u0bbe\u0baa\u0bcb\u0ba9\u0bcd
 territories.SK=\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bbe\u0b95\u0bbf\u0baf\u0bbe
 territories.SI=\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bc7\u0ba9\u0bbf\u0baf\u0bbe
@@ -41,8 +50,9 @@ territories.SE=\u0bb8\u0bcd\u0bb5\u0bc0\u0b9f\u0ba9\u0bcd
 territories.SB=\u0b9a\u0bbe\u0bb2\u0bae\u0ba9\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd
 territories.SA=\u0b9a\u0bb5\u0bc2\u0ba4\u0bbf \u0b85\u0bb0\u0bc7\u0baa\u0bbf\u0baf\u0bbe
 territories.FR=\u0baa\u0bbf\u0bb0\u0bbe\u0ba9\u0bcd\u0bb8\u0bcd
-territories.FJ=\u0baa\u0bbf\u0b9c\u0bbf
+territories.053=\u0b86\u0bb8\u0bcd\u0ba4\u0bbf\u0bb0\u0bc7\u0bb2\u0bbf\u0baf\u0bbe \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd  \u0ba8\u0bbf\u0baf\u0bc2\u0b9a\u0bbf\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
 territories.RU=\u0bb0\u0bb7\u0bcd\u0baf\u0bbe
+territories.FJ=\u0baa\u0bbf\u0b9c\u0bbf
 territories.FI=\u0baa\u0bbf\u0ba9\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
 territories.RO=\u0bb0\u0bc1\u0bae\u0bc7\u0ba9\u0bbf\u0baf\u0bbe
 territories.ET=\u0b8e\u0ba4\u0bbf\u0baf\u0bcb\u0baa\u0bcd\u0baa\u0bbf\u0baf\u0bbe
@@ -58,26 +68,31 @@ territories.DM=\u0b9f\u0bca\u0bae\u0bbf\u0ba9\u0bbf\u0b95\u0bbe
 territories.DK=\u0b9f\u0bc6\u0ba9\u0bcd\u0bae\u0bbe\u0bb0\u0bcd\u0b95\u0bcd
 territories.DJ=\u0b9c\u0bbf\u0baa\u0bcc\u0b9f\u0bbf
 territories.PT=\u0baa\u0bcb\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bc1\u0b95\u0bcd\u0b95\u0bb2\u0bcd
+territories.030=\u0b95\u0bbf\u0bb4\u0b95\u0bcd\u0b95\u0bc1 \u0b86\u0b9a\u0bbf\u0baf\u0bbe
 territories.DE=\u0b9c\u0bc6\u0bb0\u0bcd\u0bae\u0ba9\u0bcd
 territories.PL=\u0baa\u0bcb\u0bb2\u0ba8\u0bcd\u0ba4\u0bc1
 territories.PK=\u0baa\u0bbe\u0b95\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd
 territories.PH=\u0baa\u0bbf\u0bb2\u0bbf\u0baa\u0bcd\u0baa\u0bc8\u0ba9\u0bcd\u0bb8\u0bcd
 territories.PG=\u0baa\u0bbe\u0baa\u0bcd\u0baa\u0bc1\u0bb5\u0bbe-\u0ba8\u0bbf\u0baf\u0bc2\u0b95\u0bbf\u0ba9\u0bbf
 territories.CZ=\u0b9a\u0bc6\u0b95\u0bcd \u0b95\u0bc1\u0b9f\u0bbf\u0baf\u0bb0\u0b9a\u0bc1
-territories.CY=\u0b9a\u0bc8\u0baa\u0bcd\u0bb0\u0bb8\u0bcd
 territories.PE=\u0baa\u0bc6\u0bb0\u0bc1
+territories.CY=\u0b9a\u0bc8\u0baa\u0bcd\u0bb0\u0bb8\u0bcd
+territories.CX=\u0b95\u0bbf\u0bb1\u0bbf\u0bb8\u0bcd\u0ba4\u0bc1\u0bae\u0bb8\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1
 territories.CV=\u0b95\u0bc7\u0baa\u0bcd \u0bb5\u0bc6\u0bb0\u0bcd\u0b9f\u0bc7
-territories.CU=\u0b95\u0bbf\u0baf\u0bc2\u0baa\u0bbe
 territories.PA=\u0baa\u0ba3\u0bbe\u0bae\u0bbe
+territories.CU=\u0b95\u0bbf\u0baf\u0bc2\u0baa\u0bbe
 territories.CR=\u0b95\u0bcb\u0bb8\u0bcd\u0b9f\u0bbe\u0bb0\u0bbf\u0b95\u0bbe
+territories.029=\u0b95\u0bb0\u0bc0\u0baa\u0bbf\u0baf\u0ba9\u0bcd
 territories.CO=\u0b95\u0bca\u0bb2\u0bae\u0bcd\u0baa\u0bbf\u0baf\u0bbe
-territories.CN=\u0b9a\u0bc0\u0ba9
+territories.CN=\u0b9a\u0bc0\u0ba9\u0bbe
 territories.CM=\u0b95\u0bc7\u0bae\u0bb0\u0bc2\u0ba9\u0bcd
 territories.CL=\u0b9a\u0bbf\u0bb2\u0bbf
+territories.CK=\u0b95\u0bc1\u0b95\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd
 territories.CI=\u0b90\u0bb5\u0bb0\u0bbf \u0b95\u0bcb\u0bb8\u0bcd\u0b9f\u0bcd
 territories.CH=\u0bb8\u0bcd\u0bb5\u0bbf\u0b9f\u0bcd\u0b9a\u0bb0\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
 territories.CG=\u0b95\u0bbe\u0b99\u0bcd\u0b95\u0bcb
 territories.CF=\u0bae\u0ba4\u0bcd\u0ba4\u0bbf\u0baf \u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0b95\u0bcd \u0b95\u0bc1\u0b9f\u0bbf\u0baf\u0bb0\u0b9a\u0bc1
+territories.CD=\u0b95\u0bbe\u0b99\u0bcd\u0b95\u0bcb - \u0b95\u0bbf\u0ba9\u0bcd\u0b9a\u0bbe\u0b9a\u0bbe
 territories.OM=\u0b93\u0bae\u0bbe\u0ba9\u0bcd
 territories.CA=\u0b95\u0ba9\u0b9f\u0bbe
 territories.BZ=\u0baa\u0bc6\u0bb2\u0bbf\u0bb8\u0bcd
@@ -86,37 +101,45 @@ territories.BW=\u0baa\u0bcb\u0b9f\u0bcd\u0bb8\u0bcd\u0bb5\u0bbe\u0ba9\u0bbe
 territories.BT=\u0baa\u0bc2\u0b9f\u0bbe\u0ba9\u0bcd
 territories.BS=\u0baa\u0bb9\u0bbe\u0bae\u0bbe\u0bb8\u0bcd
 territories.BR=\u0baa\u0bbf\u0bb0\u0bc7\u0bb8\u0bbf\u0bb2\u0bcd
-territories.BO=\u0baa\u0bca\u0bb2\u0bbf\u0bb5\u0bbf\u0baf\u0bbe
 territories.NZ=\u0ba8\u0bbf\u0baf\u0bc2\u0b9a\u0bbf\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
+territories.BO=\u0baa\u0bca\u0bb2\u0bbf\u0bb5\u0bbf\u0baf\u0bbe
 territories.BN=\u0baa\u0bc1\u0bb0\u0bc2\u0ba9\u0bc7\u0baf\u0bcd
+territories.BM=\u0baa\u0bc6\u0bb0\u0bcd\u0bae\u0bc1\u0b9f\u0bbe
+territories.014=\u0b95\u0bbf\u0bb4\u0b95\u0bcd\u0b95\u0bc1 \u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bbe
+territories.013=\u0bae\u0ba4\u0bcd\u0ba4\u0bbf\u0baf \u0b85\u0bae\u0bc6\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bbe
 territories.BJ=\u0baa\u0bc6\u0ba9\u0bbf\u0ba9\u0bcd
 territories.BI=\u0baa\u0bc1\u0bb0\u0bc1\u0ba3\u0bcd\u0b9f\u0bbf
 territories.BH=\u0baa\u0bb9\u0bcd\u0bb0\u0bc8\u0ba9\u0bcd
-territories.BG=\u0baa\u0bb2\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0bbe
 territories.NR=\u0ba8\u0bcc\u0bb0\u0bc1
+territories.BG=\u0baa\u0bb2\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0bbe
 territories.BF=\u0baa\u0bb0\u0bcd\u0b95\u0bbf\u0ba9\u0bcb \u0baa\u0bbe\u0bb8\u0bcb
-territories.BE=\u0baa\u0bc6\u0bb2\u0bcd\u0b9c\u0bbf\u0baf\u0bae\u0bcd
 territories.NP=\u0ba8\u0bc7\u0baa\u0bbe\u0bb3\u0bae\u0bcd
-territories.BD=\u0baa\u0b99\u0bcd\u0b95\u0bb3\u0bbe\u0ba4\u0bc7\u0bb7\u0bcd
+territories.BE=\u0baa\u0bc6\u0bb2\u0bcd\u0b9c\u0bbf\u0baf\u0bae\u0bcd
 territories.NO=\u0ba8\u0bbe\u0bb0\u0bcd\u0bb5\u0bc7
+territories.BD=\u0bb5\u0b99\u0bcd\u0b95\u0ba4\u0bc7\u0b9a\u0bae\u0bcd
 territories.BB=\u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0b9f\u0bcb\u0bb8\u0bcd
 territories.ZW=\u0b9c\u0bbf\u0bae\u0bcd\u0baa\u0bbe\u0baa\u0bcd\u0bb5\u0bc7
-territories.BA=\u0baa\u0bcb\u0bb8\u0bcd\u0ba9\u0bbf\u0baf\u0bbe \u0bb9\u0bc6\u0bb0\u0bcd\u0bb8\u0bbf\u0b95\u0bcb\u0bb5\u0bbf\u0ba9\u0bbe
 territories.NL=\u0ba8\u0bc6\u0ba4\u0bb0\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
+territories.BA=\u0baa\u0bcb\u0bb8\u0bcd\u0ba9\u0bbf\u0baf\u0bbe \u0bb9\u0bc6\u0bb0\u0bcd\u0bb8\u0bbf\u0b95\u0bcb\u0bb5\u0bbf\u0ba9\u0bbe
 territories.NI=\u0ba8\u0bbf\u0b95\u0bbe\u0bb0\u0bbe\u0b95\u0bc1\u0bb5\u0bbe
 territories.AZ=\u0b85\u0b9c\u0bb0\u0bcd\u0baa\u0bc8\u0b9c\u0bbe\u0ba9\u0bcd
-territories.NA=\u0ba9\u0bbe\u0bae\u0bc0\u0baa\u0bbf\u0baf\u0bbe
+territories.AX=\u0b86\u0bb2\u0ba8\u0bcd\u0ba4\u0bc1 \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd
 territories.AU=\u0b86\u0bb8\u0bcd\u0ba4\u0bbf\u0bb0\u0bc7\u0bb2\u0bbf\u0baf\u0bbe
+territories.NA=\u0ba9\u0bbe\u0bae\u0bc0\u0baa\u0bbf\u0baf\u0bbe
 territories.AT=\u0b86\u0bb8\u0bcd\u0ba4\u0bbf\u0bb0\u0bbf\u0baf\u0bbe
+territories.AS=\u0b85\u0bae\u0bc6\u0bb0\u0bbf\u0b95\u0bcd\u0b95 \u0b9a\u0bae\u0bcb\u0bb5\u0bbe
 territories.AR=\u0b85\u0bb0\u0bcd\u0b9c\u0bc6\u0ba3\u0bcd\u0b9f\u0bbf\u0ba9\u0bbe
+territories.AQ=\u0b85\u0ba3\u0bcd\u0b9f\u0bbe\u0bb0\u0bcd\u0b9f\u0bbf\u0b95\u0bbe
 territories.AO=\u0b85\u0b99\u0bcd\u0b95\u0bcb\u0bb2\u0bbe
 territories.MY=\u0bae\u0bb2\u0bc7\u0bb7\u0bbf\u0baf\u0bbe
-territories.AM=\u0b86\u0bb0\u0bcd\u0bae\u0bc0\u0ba9\u0bbf\u0baf\u0bbe
 territories.MX=\u0bae\u0bc6\u0b95\u0bcd\u0b9a\u0bbf\u0b95\u0bcb
-territories.AL=\u0b85\u0bb2\u0bcd\u0baa\u0bc7\u0ba9\u0bbf\u0baf\u0bbe
+territories.AM=\u0b86\u0bb0\u0bcd\u0bae\u0bc0\u0ba9\u0bbf\u0baf\u0bbe
 territories.MW=\u0bae\u0bb2\u0bbe\u0bb5\u0bc0
-territories.MV=\u0bae\u0bbe\u0bb2\u0ba4\u0bcd\u0ba4\u0bc0\u0bb5\u0bc1
+territories.AL=\u0b85\u0bb2\u0bcd\u0baa\u0bc7\u0ba9\u0bbf\u0baf\u0bbe
+territories.MV=\u0bae\u0bbe\u0bb2\u0ba4\u0bcd\u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd
 territories.ZA=\u0ba4\u0bc6\u0ba9\u0bcd \u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bbe
+territories.MU=\u0bae\u0bcb\u0bb0\u0bbf\u0b9a\u0bbf\u0baf\u0bb8\u0bcd
+territories.002=\u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bbe
 territories.MT=\u0bae\u0bbe\u0bb2\u0bcd\u0b9f\u0bbe
 territories.AG=\u0b86\u0ba9\u0bcd\u0b9f\u0bbf\u0b95\u0bc1\u0bb5\u0bbe \u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0bc1\u0b9f\u0bbe
 territories.AF=\u0b86\u0baa\u0bcd\u0b95\u0bbe\u0ba9\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd
@@ -136,12 +159,15 @@ territories.LU=\u0bb2\u0b95\u0bcd\u0bb8\u0bcd\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bc
 territories.LT=\u0bb2\u0bbf\u0ba4\u0bc1\u0bb5\u0bc7\u0ba9\u0bbf\u0baf\u0bbe
 territories.LS=\u0bb2\u0bc6\u0b9a\u0bcb\u0ba4\u0bcb
 territories.LR=\u0bb2\u0bc8\u0baa\u0bc0\u0bb0\u0bbf\u0baf\u0bbe
+territories.151=\u0b95\u0bbf\u0bb4\u0b95\u0bcd\u0b95\u0bc1 \u0b90\u0bb0\u0bcb\u0baa\u0bcd\u0baa\u0bbe
 territories.LK=\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8
 territories.LI=\u0bb2\u0bbf\u0b9a\u0bcd\u0b9f\u0bc6\u0ba3\u0bcd\u0bb8\u0bcd\u0b9f\u0bc0\u0ba9\u0bcd
 territories.LB=\u0bb2\u0bc6\u0baa\u0ba9\u0bbe\u0ba9\u0bcd
 territories.LA=\u0bb2\u0bbe\u0bb5\u0bcb\u0bb8\u0bcd
 territories.KZ=\u0b95\u0b9c\u0b95\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd
 territories.KW=\u0b95\u0bc1\u0bb5\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1
+territories.143=\u0bae\u0ba4\u0bcd\u0ba4\u0bbf\u0baf \u0b86\u0b9a\u0bbf\u0baf\u0bbe
+territories.142=\u0b86\u0b9a\u0bbf\u0baf\u0bbe
 territories.KR=\u0ba4\u0bc6\u0ba9\u0bcd \u0b95\u0bca\u0bb0\u0bbf\u0baf\u0bbe
 territories.KP=\u0bb5\u0b9f \u0b95\u0bca\u0bb0\u0bbf\u0baf\u0bbe
 territories.KM=\u0b95\u0bcb\u0bae\u0bb0\u0bcb\u0bb8\u0bcd
@@ -180,144 +206,151 @@ territories.TR=\u0ba4\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bbf
 territories.TO=\u0ba4\u0bca\u0b99\u0bcd\u0b95\u0bbe
 territories.TN=\u0ba4\u0bc1\u0ba9\u0bbf\u0b9a\u0bbf\u0baf\u0bbe
 territories.TM=\u0ba4\u0bc1\u0bb0\u0bcd\u0b95\u0bcd\u0bae\u0bc6\u0ba9\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd
-languages.es=\u0bb8\u0bcd\u0baa\u0bc7\u0ba9\u0bbf\u0bb7\u0bcd
+languages.la=\u0bb2\u0ba4\u0bcd\u0ba4\u0bc0\u0ba9\u0bcd
+languages.xh=\u0bb9\u0bcb\u0bb7\u0bbe
+languages.ky=\u0b95\u0bbf\u0bb0\u0bcd\u0b95\u0bbf\u0bb7\u0bcd
 languages.ku=\u0b95\u0bc1\u0bb0\u0bcd\u0ba4\u0bbf\u0bb7\u0bcd
-languages.eo=\u0b8e\u0bb8\u0bcd\u0baa\u0bb0\u0bc7\u0ba9\u0bcd\u0b9f\u0bcb
-languages.en=\u0b86\u0b99\u0bcd\u0b95\u0bbf\u0bb2\u0bae\u0bcd
 languages.ks=\u0b95\u0bbe\u0bb7\u0bcd\u0bae\u0bbf\u0bb0\u0bbf
-languages.el=\u0b95\u0bbf\u0bb0\u0bc7\u0b95\u0bcd\u0b95\u0bae\u0bcd
-languages.qu=\u0b95\u0bbf\u0baf\u0bc1\u0b9a\u0bbe
 languages.ko=\u0b95\u0bca\u0bb0\u0bbf\u0baf\u0ba9\u0bcd
-languages.kn=\u0b95\u0ba9\u0bcd\u0ba9\u0b9f\u0bbe
+languages.kn=\u0b95\u0ba9\u0bcd\u0ba9\u0b9f\u0bae\u0bcd
 languages.km=\u0b95\u0bae\u0bcd\u0baa\u0bcb\u0b9f\u0bbf\u0baf\u0ba9\u0bcd
-languages.kok=\u0b95\u0bca\u0b99\u0bcd\u0b95\u0ba9\u0bbf
 languages.kl=\u0b95\u0bbf\u0bb0\u0bbf\u0ba9\u0bcd\u0bb2\u0bc6\u0ba9\u0bcd\u0b9f\u0bbf\u0b95\u0bcd
 languages.kk=\u0b95\u0b9a\u0bbe\u0b95\u0bcd
 languages.wo=\u0b92\u0bb2\u0bcb\u0baa\u0bcd
-languages.ka=\u0b95\u0ba9\u0bcd\u0ba9\u0b9f\u0bae\u0bcd
-languages.dz=\u0baa\u0bc1\u0b9f\u0bbe\u0ba9\u0bbf
+languages.ka=\u0b9c\u0bbe\u0bb0\u0bcd\u0b9c\u0bbf\u0baf\u0ba9\u0bcd
 languages.jv=\u0b9c\u0bbe\u0bb5\u0bbe\u0ba9\u0bc0\u0bb8\u0bcd
-languages.pt=\u0baa\u0bcb\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bc0\u0bb8\u0bcd
-languages.ps=\u0baa\u0bc7\u0bb7\u0bcd\u0b9f\u0bcb (\u0baa\u0bc1\u0bb7\u0bcd\u0b9f\u0bcb)
-languages.de=\u0b9c\u0bc6\u0bb0\u0bcd\u0bae\u0ba9\u0bcd
-languages.pl=\u0baa\u0bcb\u0bb2\u0bbf\u0bb7\u0bcd
-languages.da=\u0b9f\u0bbe\u0ba9\u0bbf\u0bb7\u0bcd
 languages.vo=\u0b92\u0bb2\u0baa\u0bc1\u0b95\u0bcd
 languages.ja=\u0b9c\u0baa\u0bcd\u0baa\u0bbe\u0ba9\u0bc0\u0bb8\u0bcd
 languages.vi=\u0bb5\u0bbf\u0baf\u0b9f\u0bcd\u0ba8\u0bbe\u0bae\u0bbf\u0bb8\u0bcd
-languages.cy=\u0bb5\u0bc6\u0bb2\u0bcd\u0bb7\u0bcd
-languages.pa=\u0baa\u0b9e\u0bcd\u0b9a\u0bbe\u0baa\u0bbf
-languages.cs=\u0b9a\u0bc6\u0b95\u0bcd
 languages.iu=\u0b87\u0ba9\u0bc1\u0b95\u0bbf\u0b9f\u0b9f\u0bcd
-languages.co=\u0b95\u0bbe\u0bb0\u0bcd\u0b9a\u0bbf\u0baf\u0ba9\u0bcd
 languages.it=\u0b87\u0ba4\u0bcd\u0ba4\u0bbe\u0bb2\u0bbf\u0baf\u0ba9\u0bcd
 languages.is=\u0b90\u0bb8\u0bcd\u0bb2\u0bc6\u0ba9\u0bcd\u0b9f\u0bbf\u0b95\u0bcd
 languages.uz=\u0b89\u0bb8\u0bcd\u0baa\u0bc6\u0b95\u0bcd
-languages.or=\u0b92\u0bb0\u0bbf\u0baf\u0bbe
 languages.ik=\u0b87\u0ba9\u0bc1\u0baa\u0bc6\u0b95\u0bcd
 languages.ur=\u0b89\u0bb0\u0bc1\u0ba4\u0bc1
-languages.om=\u0b92\u0bb0\u0bcb\u0bae (\u0b85\u0baa\u0ba9\u0bcd)
-languages.ca=\u0b95\u0bbe\u0b9f\u0bb2\u0bbe\u0ba9\u0bcd
 languages.ie=\u0b87\u0ba9\u0bcd\u0b9f\u0bb0\u0bcd\u0bb2\u0bbf\u0b99\u0bcd\u0b95\u0bc1\u0bb5\u0bbe
 languages.id=\u0b87\u0ba8\u0bcd\u0ba4\u0bcb\u0ba9\u0bc7\u0bb7\u0bbf\u0baf\u0ba9\u0bcd
+languages.ia=\u0b87\u0ba9\u0bcd\u0b9f\u0bb0\u0bcd\u0bb2\u0bbf\u0b99\u0bcd\u0b95\u0bc1\u0bb5\u0bbe [ia]
 languages.uk=\u0b89\u0b95\u0bcd\u0bb0\u0bc7\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
-languages.ia=\u0b87\u0ba9\u0bcd\u0b9f\u0bb0\u0bcd\u0bb2\u0bbf\u0b99\u0bcd\u0b95\u0bc1\u0bb5\u0bbe
-languages.oc=\u0b86\u0b95\u0bbf\u0b9f\u0bbf\u0baf\u0ba9\u0bcd
+languages.kok=\u0b95\u0bca\u0b99\u0bcd\u0b95\u0ba9\u0bbf
 languages.ug=\u0baf\u0bc1\u0b95\u0bc1\u0bb0\u0bcd
 languages.hy=\u0b86\u0bb0\u0bcd\u0bae\u0bc7\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
-languages.br=\u0baa\u0bbf\u0bb0\u0bbf\u0b9f\u0ba9\u0bcd
 languages.hu=\u0bb9\u0b99\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0ba9\u0bcd
-languages.bo=\u0ba4\u0bbf\u0baa\u0bc6\u0ba4\u0bcd\u0ba4\u0bc1
-languages.bn=\u0bb5\u0b99\u0bcd\u0b95\u0bbe\u0bb3\u0bae\u0bcd
 languages.hr=\u0b95\u0bb0\u0bcb\u0bb7\u0bbf\u0baf\u0ba9\u0bcd
-languages.bi=\u0baa\u0bbf\u0bb8\u0bcd\u0bb2\u0bbe\u0bae\u0bbe
+languages.fil=\u0b83\u0baa\u0bbf\u0bb2\u0bbf\u0baa\u0bbf\u0ba9\u0bcb
 languages.tw=\u0ba4\u0bcd\u0ba4\u0bbf\u0bb5\u0bbf
-languages.bh=\u0baa\u0bbf\u0bb9\u0bbe\u0bb0\u0bbf
-languages.bg=\u0baa\u0bb2\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0ba9\u0bcd
 languages.tt=\u0b9f\u0bbe\u0b9f\u0bb0\u0bcd
-languages.no=\u0ba8\u0bbe\u0bb0\u0bcd\u0bb5\u0bc7\u0b95\u0bbf\u0baf\u0ba9\u0bcd
-languages.be=\u0baa\u0bc8\u0bb2\u0bcb\u0bb0\u0bc1\u0bb7\u0bcd\u0ba9\u0bcd
-languages.ts=\u0bb8\u0bcb\u0b99\u0bcd\u0b95\u0bbe
 languages.hi=\u0b87\u0ba8\u0bcd\u0ba4\u0bbf
+languages.ts=\u0bb8\u0bcb\u0b99\u0bcd\u0b95\u0bbe
 languages.tr=\u0b9f\u0bb0\u0bcd\u0b95\u0bbf\u0bb7\u0bcd
-languages.nl=\u0b9f\u0b9a\u0bcd\u0b9a\u0bc1
-languages.zu=\u0b9c\u0bc2\u0bb2\u0bc2
-languages.ba=\u0baa\u0bbe\u0bb7\u0bcd\u0b95\u0bbf\u0bb0\u0bcd0
-languages.to=\u0b9f\u0bcb\u0b99\u0bcd\u0b95\u0bbe
 languages.he=\u0bb9\u0bc1\u0baa\u0bcd\u0bb0\u0bc1
+languages.to=\u0b9f\u0bcb\u0b99\u0bcd\u0b95\u0bbe
 languages.tn=\u0bb8\u0bc6\u0b9f\u0bcd\u0bb8\u0bcd\u0bb5\u0bbe\u0ba9\u0bbe
 languages.tl=\u0b9f\u0bbe\u0b95\u0bbe\u0bb2\u0bcb\u0b95\u0bcd
-languages.tk=\u0b9f\u0bb0\u0bcd\u0b95\u0bcd\u0bae\u0bc6\u0ba9\u0bcd
 languages.ha=\u0bb9\u0bca\u0bb8\u0bbe
-languages.ne=\u0ba8\u0bc7\u0baa\u0bcd\u0baa\u0bbe\u0bb2\u0bbf
-languages.az=\u0b85\u0b9a\u0bb0\u0bcd\u0baa\u0bbe\u0baf\u0bcd\u0b9c\u0bbe\u0ba9\u0bbf
+languages.tk=\u0b9f\u0bb0\u0bcd\u0b95\u0bcd\u0bae\u0bc6\u0ba9\u0bcd
 languages.ti=\u0b9f\u0bbf\u0b95\u0bcd\u0bb0\u0bbf\u0ba9\u0bcd\u0baf\u0bbe
-languages.ay=\u0b85\u0baf\u0bae\u0bb0\u0bbe
 languages.th=\u0ba4\u0bbe\u0baf\u0bcd
 languages.tg=\u0ba4\u0bbe\u0b9c\u0bbf\u0b95\u0bcd
-languages.na=\u0ba8\u0bbe\u0bb0\u0bc2
 languages.te=\u0ba4\u0bc6\u0bb2\u0bc1\u0b99\u0bcd\u0b95\u0bc1
-languages.zh=\u0b9a\u0bc0\u0ba9\u0bae\u0bcd
-languages.as=\u0b85\u0bb8\u0bcd\u0bb8\u0bbe\u0bae\u0bbf
-languages.ar=\u0b85\u0bb0\u0baa\u0bc1
 languages.ta=\u0ba4\u0bae\u0bbf\u0bb4\u0bcd
 languages.gu=\u0b95\u0bc1\u0b9c\u0bb0\u0bbe\u0ba4\u0bcd\u0ba4\u0bbf
-languages.my=\u0baa\u0bb0\u0bcd\u0bae\u0bbf\u0bb8\u0bcd
-languages.am=\u0b85\u0bae\u0bcd\u0bb9\u0bbe\u0bb0\u0bbf\u0b95\u0bcd
-languages.za=\u0b9c\u0bc1\u0bb5\u0bbe\u0b99\u0bcd
-languages.mt=\u0bae\u0bbe\u0bb2\u0bcd\u0b9f\u0bbf\u0bb8\u0bcd
-languages.ms=\u0bae\u0bb2\u0bbe\u0baf\u0bcd
 languages.gn=\u0b95\u0bc1\u0bb0\u0bbe\u0ba9\u0bbf
 languages.sw=\u0b9a\u0bc1\u0bb5\u0bbe\u0bb9\u0bbf\u0bb2\u0bbf
-languages.mr=\u0bae\u0bb0\u0bbe\u0ba4\u0bcd\u0ba4\u0bbf
-languages.sv=\u0bb7\u0bc0\u0bb5\u0bbf\u0b9f\u0bbf\u0bb8\u0bcd
 languages.gl=\u0b95\u0bc6\u0bb2\u0bbf\u0bb8\u0bbf\u0baf\u0ba9\u0bcd
+languages.sv=\u0bb7\u0bc0\u0bb5\u0bbf\u0b9f\u0bbf\u0bb8\u0bcd
 languages.su=\u0b9a\u0bc1\u0b9f\u0bbe\u0ba9\u0bc0\u0bb8\u0bcd
-languages.af=\u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0ba9\u0bcd\u0bb8\u0bcd
 languages.st=\u0bb7\u0bc6\u0bb8\u0bcd\u0bb8\u0bcb\u0ba4\u0bcb
-languages.mo=\u0bae\u0bcb\u0bb2\u0bcd\u0b9f\u0bc7\u0bb5\u0bbf\u0baf\u0ba9\u0bcd
 languages.ss=\u0bb7\u0bbf\u0bb8\u0bcd\u0bb5\u0bbe\u0ba4\u0bbf
-languages.mn=\u0bae\u0b99\u0bcd\u0b95\u0bcb\u0bb2\u0bbf\u0baf\u0ba9\u0bcd
 languages.sr=\u0b9a\u0bb0\u0bcd\u0baa\u0bbf\u0baf\u0ba9\u0bcd
 languages.sq=\u0b85\u0bb2\u0bcd\u0baa\u0bc6\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
-languages.ml=\u0bae\u0bb2\u0bc8\u0baf\u0bbe\u0bb3\u0bae\u0bcd
-languages.ab=\u0b85\u0baa\u0bcd\u0b95\u0bbe\u0bb8\u0bbf\u0ba9\u0bcd
-languages.mk=\u0bae\u0bc6\u0b95\u0bcd\u0b95\u0b9f\u0bcb\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
-languages.aa=\u0b85\u0baa\u0bbe\u0bb0\u0bcd
 languages.so=\u0b9a\u0bcb\u0bae\u0bbe\u0bb2\u0bbf
-languages.sn=\u0bb7\u0bcb\u0ba9\u0bbe
-languages.mi=\u0bae\u0bcb\u0bb0\u0bbf
 languages.gd=\u0bb8\u0bcd\u0b95\u0bbe\u0b9f\u0bcd\u0bb8\u0bcd \u0b95\u0bbe\u0bb2\u0bc6\u0b95\u0bcd
+languages.sn=\u0bb7\u0bcb\u0ba9\u0bbe
 languages.sm=\u0bb8\u0bc6\u0bae\u0bcb\u0ba9\u0bcd
 languages.sl=\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bbf\u0ba9\u0bc7\u0baf\u0bbf\u0ba9\u0bcd
-languages.mg=\u0bae\u0bb2\u0b95\u0bc6\u0bb8\u0bbf
-languages.sk=\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bc6\u0b95\u0bcd
 languages.ga=\u0b90\u0bb0\u0bbf\u0bb7\u0bcd
-languages.yo=\u0baf\u0bcb\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bbe
+languages.sk=\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bc6\u0b95\u0bcd
 languages.si=\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bae\u0bcd
 languages.sh=\u0b9a\u0bc6\u0bb0\u0bcd\u0baa\u0bcb-\u0b95\u0bcd\u0bb0\u0bcb\u0bb7\u0bbf\u0baf\u0ba9\u0bcd
 languages.sg=\u0b9a\u0bc6\u0ba9\u0bcd\u0b95\u0bcd\u0bb0\u0bcb
-languages.yi=\u0b88\u0ba4\u0bcd\u0ba4\u0bbf\u0bb7
-languages.sd=\u0b9a\u0bbf\u0ba8\u0bcd\u0ba4\u0bbf
 languages.fy=\u0baa\u0bbf\u0bb0\u0bbf\u0bb7\u0bbf\u0baf\u0ba9\u0bcd
+languages.sd=\u0b9a\u0bbf\u0ba8\u0bcd\u0ba4\u0bbf
 languages.sa=\u0b9a\u0bae\u0bb8\u0bcd\u0b95\u0bbf\u0bb0\u0bc1\u0ba4\u0bae\u0bcd
 languages.fr=\u0baa\u0bbf\u0bb0\u0bc6\u0b9e\u0bcd\u0b9a\u0bc1
-languages.lv=\u0bb2\u0bc7\u0b9f\u0bcd\u0bb5\u0bbf\u0baf\u0ba9\u0bcd (\u0bb2\u0bc7\u0b9f\u0bcd\u0b9f\u0bbf\u0bb7\u0bcd)
 languages.fo=\u0baa\u0bc8\u0bb0\u0bcb\u0bb8\u0bbf
-languages.lt=\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bc7\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
 languages.rw=\u0b95\u0bbf\u0ba9\u0bcd\u0baf\u0bb0\u0bcd\u0bb5\u0bc6\u0ba9\u0bcd\u0b9f\u0bbe
-languages.root=\u0ba4\u0bae\u0bbf\u0bb4\u0bcd
 languages.ru=\u0bb0\u0bb7\u0bbf\u0baf\u0ba9\u0bcd
 languages.fj=\u0baa\u0bbf\u0b9c\u0bbf
-languages.lo=\u0bb2\u0bcb\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0ba9\u0bcd
 languages.fi=\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bbf\u0bb7\u0bcd
-languages.ln=\u0bb2\u0bbf\u0b99\u0bcd\u0b95\u0bbe\u0bb2\u0bbe
 languages.ro=\u0bb0\u0bcb\u0bae\u0bc7\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
 languages.rn=\u0b95\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bbf
 languages.rm=\u0bb0\u0bc8\u0b9f\u0bcd\u0b9f\u0bcb-\u0bb0\u0bcb\u0bae\u0bc6\u0ba9\u0bcd\u0bb8\u0bcd
 languages.fa=\u0baa\u0bb0\u0bcd\u0bb8\u0bbf\u0baf\u0ba9\u0bcd
-languages.la=\u0bb2\u0bbe\u0ba4\u0bbf\u0ba9\u0bcd
-languages.xh=\u0bb9\u0bcb\u0bb7\u0bbe
+languages.pt_PT=\u0baa\u0bcb\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bc0\u0b9a\u0bbf\u0baf\u0bae\u0bcd (\u0baa\u0bcb\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bc1\u0b95\u0bcd\u0b95\u0bb2\u0bcd)
 languages.eu=\u0baa\u0bb8\u0bcd\u0b95\u0bcd
 languages.et=\u0b8e\u0bb8\u0bcd\u0b9f\u0bcb\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
-languages.ky=\u0b95\u0bbf\u0bb0\u0bcd\u0b95\u0bbf\u0bb7\u0bcd
+languages.es=\u0bb8\u0bcd\u0baa\u0bc7\u0ba9\u0bbf\u0bb7\u0bcd
+languages.eo=\u0b8e\u0bb8\u0bcd\u0baa\u0bb0\u0bc7\u0ba9\u0bcd\u0b9f\u0bcb
+languages.en=\u0b86\u0b99\u0bcd\u0b95\u0bbf\u0bb2\u0bae\u0bcd
+languages.el=\u0b95\u0bbf\u0bb0\u0bc7\u0b95\u0bcd\u0b95\u0bae\u0bcd
+languages.qu=\u0b95\u0bbf\u0baf\u0bc1\u0b9a\u0bbe
+languages.dz=\u0baa\u0bc1\u0b9f\u0bbe\u0ba9\u0bbf
+languages.pt=\u0baa\u0bcb\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bc0\u0bb8\u0bcd
+languages.pt_BR=\u0baa\u0bcb\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bc0\u0b9a\u0bbf\u0baf\u0bae\u0bcd(\u0baa\u0bbf\u0bb0\u0bc7\u0b9a\u0bbf\u0bb2\u0bcd)
+languages.ps=\u0baa\u0bc7\u0bb7\u0bcd\u0b9f\u0bcb (\u0baa\u0bc1\u0bb7\u0bcd\u0b9f\u0bcb)
+languages.de=\u0b9c\u0bc6\u0bb0\u0bcd\u0bae\u0ba9\u0bcd
+languages.pl=\u0baa\u0bcb\u0bb2\u0bbf\u0bb7\u0bcd
+languages.da=\u0b9f\u0bbe\u0ba9\u0bbf\u0bb7\u0bcd
+languages.cy=\u0bb5\u0bc6\u0bb2\u0bcd\u0bb7\u0bcd
+languages.pa=\u0baa\u0b9e\u0bcd\u0b9a\u0bbe\u0baa\u0bbf
+languages.cs=\u0b9a\u0bc6\u0b95\u0bcd
+languages.co=\u0b95\u0bbe\u0bb0\u0bcd\u0b9a\u0bbf\u0baf\u0ba9\u0bcd
+languages.or=\u0b92\u0bb0\u0bbf\u0baf\u0bbe
+languages.om=\u0b92\u0bb0\u0bcb\u0bae (\u0b85\u0baa\u0ba9\u0bcd)
+languages.ca=\u0b95\u0bbe\u0b9f\u0bb2\u0bbe\u0ba9\u0bcd
+languages.oc=\u0b86\u0b95\u0bbf\u0b9f\u0bbf\u0baf\u0ba9\u0bcd
+languages.bs=\u0baa\u0bcb\u0bb8\u0bcd\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
+languages.br=\u0baa\u0bbf\u0bb0\u0bbf\u0b9f\u0ba9\u0bcd
+languages.bo=\u0ba4\u0bbf\u0baa\u0bc6\u0ba4\u0bcd\u0ba4\u0bc1
+languages.zh_Hans=\u0b8e\u0bb3\u0bbf\u0baf \u0b9a\u0bc0\u0ba9\u0bae\u0bcd
+languages.bn=\u0bb5\u0b99\u0bcd\u0b95\u0bbe\u0bb3\u0bae\u0bcd
+languages.zh_Hant=\u0bae\u0bb0\u0baa\u0bc1 \u0b9a\u0bc0\u0ba9\u0bae\u0bcd
+languages.bi=\u0baa\u0bbf\u0bb8\u0bcd\u0bb2\u0bbe\u0bae\u0bbe
+languages.bh=\u0baa\u0bbf\u0bb9\u0bbe\u0bb0\u0bbf
+languages.bg=\u0baa\u0bb2\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0ba9\u0bcd
+languages.be=\u0baa\u0bc8\u0bb2\u0bcb\u0bb0\u0bc1\u0bb7\u0bcd\u0ba9\u0bcd
+languages.no=\u0ba8\u0bbe\u0bb0\u0bcd\u0bb5\u0bc7\u0b95\u0bbf\u0baf\u0ba9\u0bcd
+languages.nn=\u0ba8\u0bbe\u0bb0\u0bcd\u0bb5\u0bc0\u0b9c\u0bbf\u0baf\u0ba9\u0bcd (\u0ba8\u0bc8\u0ba8\u0bcb\u0bb0\u0bcd\u0bb8\u0bcd\u0b95\u0bcd)
+languages.nl=\u0b9f\u0b9a\u0bcd\u0b9a\u0bc1
+languages.ba=\u0baa\u0bbe\u0bb7\u0bcd\u0b95\u0bbf\u0bb0\u0bcd
+languages.zu=\u0b9c\u0bc2\u0bb2\u0bc2
+languages.az=\u0b85\u0b9a\u0bb0\u0bcd\u0baa\u0bbe\u0baf\u0bcd\u0b9c\u0bbe\u0ba9\u0bbf
+languages.ne=\u0ba8\u0bc7\u0baa\u0bcd\u0baa\u0bbe\u0bb2\u0bbf
+languages.ay=\u0b85\u0baf\u0bae\u0bb0\u0bbe
+languages.na=\u0ba8\u0bbe\u0bb0\u0bc2
+languages.as=\u0b85\u0bb8\u0bcd\u0bb8\u0bbe\u0bae\u0bbf
+languages.ar=\u0b85\u0bb0\u0baa\u0bc1
+languages.zh=\u0b9a\u0bc0\u0ba9\u0bae\u0bcd
+languages.my=\u0baa\u0bb0\u0bcd\u0bae\u0bbf\u0bb8\u0bcd
+languages.am=\u0b85\u0bae\u0bcd\u0bb9\u0bbe\u0bb0\u0bbf\u0b95\u0bcd
+languages.za=\u0b9c\u0bc1\u0bb5\u0bbe\u0b99\u0bcd
+languages.mt=\u0bae\u0bbe\u0bb2\u0bcd\u0b9f\u0bbf\u0bb8\u0bcd
+languages.ms=\u0bae\u0bb2\u0bbe\u0baf\u0bcd
+languages.mr=\u0bae\u0bb0\u0bbe\u0ba4\u0bcd\u0ba4\u0bbf
+languages.af=\u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0ba9\u0bcd\u0bb8\u0bcd
+languages.mo=\u0bae\u0bcb\u0bb2\u0bcd\u0b9f\u0bc7\u0bb5\u0bbf\u0baf\u0ba9\u0bcd
+languages.mn=\u0bae\u0b99\u0bcd\u0b95\u0bcb\u0bb2\u0bbf\u0baf\u0ba9\u0bcd
+languages.ab=\u0b85\u0baa\u0bcd\u0b95\u0bbe\u0bb8\u0bbf\u0ba9\u0bcd
+languages.ml=\u0bae\u0bb2\u0bc8\u0baf\u0bbe\u0bb3\u0bae\u0bcd
+languages.aa=\u0b85\u0baa\u0bbe\u0bb0\u0bcd
+languages.mk=\u0bae\u0bc6\u0b95\u0bcd\u0b95\u0b9f\u0bcb\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
+languages.mi=\u0bae\u0bcb\u0bb0\u0bbf
+languages.mg=\u0bae\u0bb2\u0b95\u0bc6\u0bb8\u0bbf
+languages.yo=\u0baf\u0bcb\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bbe
+languages.tlh=\u0b95\u0bbf\u0bb3\u0bbf\u0b99\u0bcd\u0b95\u0ba9\u0bcd
+languages.yi=\u0b88\u0ba4\u0bcd\u0ba4\u0bbf\u0bb7
+languages.lv=\u0bb2\u0bc7\u0b9f\u0bcd\u0bb5\u0bbf\u0baf\u0ba9\u0bcd (\u0bb2\u0bc7\u0b9f\u0bcd\u0b9f\u0bbf\u0bb7\u0bcd)
+languages.lt=\u0bb2\u0bbf\u0ba4\u0bc1\u0bb5\u0bc7\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
+languages.lo=\u0bb2\u0bcb\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0ba9\u0bcd
+languages.ln=\u0bb2\u0bbf\u0b99\u0bcd\u0b95\u0bbe\u0bb2\u0bbe
index c4580f5203be3b1abaa11a4e57c8f5f59f46fc93..e8b78dd1849818e68b94b082b8df073201a441e0 100644 (file)
@@ -6,6 +6,8 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 zeroDigit=\u0c66
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
 currenciesDisplayName.INR=\u0c30\u0c42\u0c2a\u0c3e\u0c2f\u0c3f
 currenciesDisplayName.JPY=\u0c1c\u0c2a\u0c3e\u0c28\u0c41 \u0c26\u0c47\u0c36 \u0c2f\u0c46\u0c38\u0c4d
 currenciesDisplayName.RUB=\u0c30\u0c37\u0c4d\u0c2f \u0c26\u0c47\u0c36 \u0c30\u0c42\u0c2c\u0c32\u0c4d
@@ -18,14 +20,24 @@ currenciesSymbol.INR=\u0c30\u0c42.
 currenciesSymbol.RUB=\u0c30\u0c42\u0c2c\u0c32\u0c4d
 currenciesSymbol.CNY=\u0c2f\u0c41
 currenciesSymbol.BRL=\u0c30\u0c3f$
-shortMonths=\u0c1c\u0c28\u0c35\u0c30\u0c3f®\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f®\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f®\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d®\u0c2e\u0c47®\u0c1c\u0c42\u0c28\u0c4d®\u0c1c\u0c42\u0c32\u0c48®\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41®\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d®\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d®\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d®\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d®®
-months=\u0c1c\u0c28\u0c35\u0c30\u0c3f®\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f®\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f®\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d®\u0c2e\u0c47®\u0c1c\u0c42\u0c28\u0c4d®\u0c1c\u0c42\u0c32\u0c48®\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41®\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d®\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d®\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d®\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d®®
-shortWeekdays=®\u0c06\u0c26\u0c3f®\u0c38\u0c4b\u0c2e®\u0c2e\u0c02\u0c17\u0c33®\u0c2c\u0c41\u0c27®\u0c17\u0c41\u0c30\u0c41®\u0c36\u0c41\u0c15\u0c4d\u0c30®\u0c36\u0c28\u0c3f®
-weekdays=®\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02®\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02®\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02®\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02®\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02®\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02®\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02®
-ampms=\u0c2a\u0c42\u0c30\u0c4d\u0c35\u0c3e\u0c39\u0c4d\u0c28\u0c02®\u0c05\u0c2a\u0c30\u0c3e\u0c39\u0c4d\u0c28\u0c02®
+shortMonths=\u0c1c\u0c28\u0c35\u0c30\u0c3f\u00ae\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f\u00ae\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f\u00ae\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d\u00ae\u0c2e\u0c47\u00ae\u0c1c\u0c42\u0c28\u0c4d\u00ae\u0c1c\u0c42\u0c32\u0c48\u00ae\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41\u00ae\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d\u00ae\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d\u00ae\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d\u00ae\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d\u00ae\u00ae
+months=\u0c1c\u0c28\u0c35\u0c30\u0c3f\u00ae\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f\u00ae\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f\u00ae\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d\u00ae\u0c2e\u0c47\u00ae\u0c1c\u0c42\u0c28\u0c4d\u00ae\u0c1c\u0c42\u0c32\u0c48\u00ae\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41\u00ae\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d\u00ae\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d\u00ae\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d\u00ae\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d\u00ae\u00ae
+shortWeekdays=\u00ae\u0c06\u0c26\u0c3f\u00ae\u0c38\u0c4b\u0c2e\u00ae\u0c2e\u0c02\u0c17\u0c33\u00ae\u0c2c\u0c41\u0c27\u00ae\u0c17\u0c41\u0c30\u0c41\u00ae\u0c36\u0c41\u0c15\u0c4d\u0c30\u00ae\u0c36\u0c28\u0c3f\u00ae
+weekdays=\u00ae\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u0c2a\u0c42\u0c30\u0c4d\u0c35\u0c3e\u0c39\u0c4d\u0c28\u0c02\u00ae\u0c05\u0c2a\u0c30\u0c3e\u0c39\u0c4d\u0c28\u0c02\u00ae
+shortDateFormat=dd-MM-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.FR=\u0c2b\u0c4d\u0c30\u0c3e\u0c28\u0c4d\u0c38\u0c4d\u200c
 territories.IN=\u0c2d\u0c3e\u0c30\u0c24 \u0c26\u0c47\u0c33\u0c02
 territories.CN=\u0c1a\u0c48\u0c28\u0c3e
+territories.TO=\u0c20\u0c3e\u0c19\u0c4d\u0c17
 territories.DE=\u0c19\u0c30\u0c4d\u0c2e\u0c28\u0c3f
 territories.GB=\u0c2c\u0c4d\u0c30\u0c3f\u0c1f\u0c28\u0c4d
 territories.BR=\u0c2c\u0c4d\u0c30\u0c1c\u0c3f\u0c32\u0c4d
@@ -33,15 +45,53 @@ territories.RU=\u0c30\u0c37\u0c4d\u0c2f
 territories.JP=\u0c1c\u0c2a\u0c3e\u0c38\u0c41
 territories.US=\u0c10\u0c15\u0c4d\u0c2f \u0c30\u0c3e\u0c37\u0c4d\u0c1f\u0c4d\u0c30 \u0c05\u0c2e\u0c46\u0c30\u0c3f\u0c15
 territories.IT=\u0c07\u0c1f\u0c32\u0c3f
-languages.zh=\u0c1a\u0c48\u0c28\u0c3e \u0c2d\u0c3e\u0c37
-languages.en=\u0c06\u0c02\u0c17\u0c4d\u0c32\u0c02
+languages.ne=\u0c28\u0c47\u0c2a\u0c3e\u0c32\u0c3f
+languages.th=\u0c25\u0c3e\u0c2f\u0c3f
 languages.te=\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41
-languages.ru=\u0c30\u0c37\u0c4d\u0c2f\u0c28\u0c4d \u0c2d\u0c3e\u0c37
-languages.hi=\u0c39\u0c3f\u0c02\u0c26\u0c40
+languages.zh=\u0c1a\u0c48\u0c28\u0c3e \u0c2d\u0c3e\u0c37
+languages.ta=\u0c24\u0c2e\u0c3f\u0c33\u0c02
 languages.ar=\u0c05\u0c30\u0c2c\u0c3f\u0c15\u0c4d
+languages.gu=\u0c17\u0c41\u0c1c\u0c30\u0c3e\u0c24\u0c3f
+languages.sw=\u0c38\u0c4d\u0c35\u0c3e\u0c39\u0c3f\u0c32\u0c3f
+languages.sv=\u0c38\u0c4d\u0c35\u0c40\u0c21\u0c3f\u0c37\u0c4d
+languages.pt=\u0c2a\u0c4a\u0c30\u0c4d\u0c1a\u0c41\u0c17\u0c32\u0c4d \u0c2d\u0c3e\u0c37
+languages.mr=\u0c2e\u0c30\u0c3e\u0c20\u0c3f
+languages.mn=\u0c2e\u0c02\u0c17\u0c4b\u0c32\u0c3f\u0c2f\u0c28\u0c4d
+languages.ml=\u0c2e\u0c32\u0c2f\u0c3e\u0c33\u0c02
+languages.de=\u0c19\u0c30\u0c4d\u0c2e\u0c28\u0c4d
+languages.pl=\u0c2a\u0c4b\u0c32\u0c3f\u0c37\u0c4d
+languages.da=\u0c21\u0c3e\u0c28\u0c3f\u0c37\u0c4d
+languages.si=\u0c38\u0c3f\u0c02\u0c39\u0c33\u0c40
+languages.ga=\u0c10\u0c30\u0c3f\u0c37\u0c4d
+languages.ja=\u0c1c\u0c2a\u0c3e\u0c28\u0c41 \u0c2d\u0c3e\u0c37
+languages.pa=\u0c2a\u0c02\u0c1c\u0c3e\u0c2c\u0c3f
+languages.cs=\u0c1a\u0c46\u0c15\u0c4d
+languages.lv=\u0c32\u0c3e\u0c24\u0c4d\u0c35\u0c3f\u0c2f\u0c28\u0c41
 languages.it=\u0c07\u0c1f\u0c3e\u0c32\u0c3f\u0c2f\u0c28\u0c4d \u0c2d\u0c3e\u0c37
 languages.fr=\u0c2b\u0c4d\u0c30\u0c46\u0c02\u0c1a\u0c4d
-languages.de=\u0c19\u0c30\u0c4d\u0c2e\u0c28\u0c4d
+languages.is=\u0c10\u0c38\u0c4d \u0c32\u0c3e\u0c02\u0c21\u0c41
+languages.lt=\u0c32\u0c3f\u0c25\u0c41\u0c35\u0c47\u0c28\u0c3f\u0c2f\u0c28\u0c41
+languages.ru=\u0c30\u0c37\u0c4d\u0c2f\u0c28\u0c4d \u0c2d\u0c3e\u0c37
+languages.fi=\u0c2b\u0c3f\u0c28\u0c4d\u0c28\u0c3f\u0c37\u0c4d
+languages.ur=\u0c09\u0c30\u0c4d\u0c26\u0c41
+languages.ro=\u0c30\u0c4a\u0c2e\u0c47\u0c28\u0c3f\u0c2f\u0c28\u0c41
+languages.id=\u0c07\u0c02\u0c21\u0c4a\u0c28\u0c47\u0c38\u0c3f\u0c2f\u0c28\u0c4d
+languages.fa=\u0c2a\u0c3e\u0c30\u0c4d\u0c36\u0c40
+languages.la=\u0c32\u0c3e\u0c1f\u0c3f\u0c28\u0c4d
+languages.xh=\u0c16\u0c4b\u0c38
+languages.et=\u0c08\u0c38\u0c4d\u0c1f\u0c4b\u0c28\u0c3f\u0c2f\u0c28\u0c41
+languages.hu=\u0c39\u0c02\u0c17\u0c47\u0c30\u0c3f\u0c2f\u0c28\u0c41
 languages.es=\u0c38\u0c4d\u0c2a\u0c3e\u0c28\u0c3f\u0c37\u0c4d
-languages.ja=\u0c1c\u0c2a\u0c3e\u0c28\u0c41 \u0c2d\u0c3e\u0c37
-languages.pt=\u0c2a\u0c4a\u0c30\u0c4d\u0c1a\u0c41\u0c17\u0c32\u0c4d \u0c2d\u0c3e\u0c37
+languages.bn=\u0c2c\u0c46\u0c02\u0c17\u0c3e\u0c32\u0c3f
+languages.en=\u0c06\u0c02\u0c17\u0c4d\u0c32\u0c02
+languages.el=\u0c17\u0c4d\u0c30\u0c40\u0c15\u0c41
+languages.kn=\u0c15\u0c28\u0c4d\u0c28\u0c21
+languages.bh=\u0c2c\u0c40\u0c39\u0c3e\u0c30\u0c3f
+languages.no=\u0c28\u0c3e\u0c30\u0c4d\u0c35\u0c47\u0c1c\u0c3f\u0c2f\u0c28\u0c4d
+languages.zu=\u0c1c\u0c42\u0c32\u0c42
+languages.hi=\u0c39\u0c3f\u0c02\u0c26\u0c40
+languages.nl=\u0c21\u0c1a\u0c4d
+languages.he=\u0c39\u0c40\u0c2c\u0c4d\u0c30\u0c42
+variants.1901=\u0c2a\u0c4d\u0c30\u0c3e\u0c1a\u0c40\u0c28 \u0c19\u0c30\u0c4d\u0c2e\u0c28 \u0c35\u0c30\u0c4d\u0c23\u0c15\u0c4d\u0c30\u0c2e\u0c02
+variants.1996=1996 \u0c19\u0c30\u0c4d\u0c2e\u0c28 \u0c35\u0c30\u0c4d\u0c23\u0c15\u0c4d\u0c30\u0c2e\u0c02
+variants.REVISED=\u0c38\u0c35\u0c30\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c28 \u0c35\u0c30\u0c4d\u0c23\u0c15\u0c4d\u0c30\u0c2e\u0c02
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tg.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tg.properties
new file mode 100644 (file)
index 0000000..2d40d94
--- /dev/null
@@ -0,0 +1,82 @@
+# LocaleInformation_tg.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.TJS=\u0421\u043e\u043c\u043e\u043d\u04e3
+currenciesSymbol.TJS=\u0441\u043e\u043c
+shortMonths=\u042f\u043d\u0432\u00ae\u0424\u0435\u0432\u00ae\u041c\u0430\u0440\u00ae\u0410\u043f\u0440\u00ae\u041c\u0430\u0439\u00ae\u0418\u044e\u043d\u00ae\u0418\u044e\u043b\u00ae\u0410\u0432\u0433\u00ae\u0421\u0435\u043d\u00ae\u041e\u043a\u0442\u00ae\u041d\u043e\u044f\u00ae\u0414\u0435\u043a\u00ae\u00ae
+months=\u042f\u043d\u0432\u0430\u0440\u00ae\u0424\u0435\u0432\u0440\u0430\u043b\u00ae\u041c\u0430\u0440\u0442\u00ae\u0410\u043f\u0440\u0435\u043b\u00ae\u041c\u0430\u0439\u00ae\u0418\u044e\u043d\u00ae\u0418\u044e\u043b\u00ae\u0410\u0432\u0433\u0443\u0441\u0442\u00ae\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u00ae\u041e\u043a\u0442\u044f\u0431\u0440\u00ae\u041d\u043e\u044f\u0431\u0440\u00ae\u0414\u0435\u043a\u0430\u0431\u0440\u00ae\u00ae
+shortWeekdays=\u00ae\u042f\u0448\u0431\u00ae\u0414\u0448\u0431\u00ae\u0421\u0448\u0431\u00ae\u0427\u0448\u0431\u00ae\u041f\u0448\u0431\u00ae\u04b6\u043c\u044a\u00ae\u0428\u043d\u0431\u00ae
+weekdays=\u00ae\u042f\u043a\u0448\u0430\u043d\u0431\u0435\u00ae\u0414\u0443\u0448\u0430\u043d\u0431\u0435\u00ae\u0421\u0435\u0448\u0430\u043d\u0431\u0435\u00ae\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0435\u00ae\u041f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435\u00ae\u04b6\u0443\u043c\u044a\u0430\u00ae\u0428\u0430\u043d\u0431\u0435\u00ae
+eras=\u041f\u0435\u041c\u00ae\u041f\u0430\u041c\u00ae
+ampms=\u043f\u0435. \u0447\u043e.\u00ae\u043f\u0430. \u0447\u043e.\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=\u0422\u043e\u043d\u0433\u0430
+territories.AF=\u0410\u0444\u0493\u043e\u043d\u0438\u0441\u0442\u0430\u043d
+languages.ka=\u0413\u0443\u0440\u04b7\u04e3
+languages.zh=\u0427\u0438\u043d\u04e3
+languages.gu=\u0413\u0443\u04b7\u0430\u0440\u0430\u0442\u04e3
+languages.jv=\u04b6\u0430\u0432\u0430\u043d\u0438\u0437\u04e3
+languages.sv=\u0428\u0432\u0435\u0434\u04e3
+languages.pt=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u04e3
+languages.gn=\u0413\u043e\u0440\u0430\u043d\u04e3
+languages.gl=\u0413\u0430\u043b\u0438\u0441\u0438\u0430\u043d\u04e3
+languages.de=\u041d\u0435\u043c\u0438\u0441\u04e3
+languages.pl=\u041b\u0430\u04b3\u0438\u0441\u0442\u043e\u043d\u04e3
+languages.gd=\u0428\u043e\u0442\u043b\u0430\u043d\u0434\u04e3-\u0413\u0430\u043b\u0438\u043a\u04e3
+languages.da=\u0414\u0430\u043d\u0438\u044f\u0433\u04e3
+languages.ga=\u0418\u0440\u043b\u0430\u043d\u0434\u04e3
+languages.ja=\u04b6\u043e\u043f\u043e\u043d\u04e3
+languages.yi=\u042f\u04b3\u0443\u0434\u0438\u0438 \u0410\u0432\u0440\u0443\u043f\u043e\u0438 \u0448\u0430\u0440\u049b\u04e3
+languages.fy=\u0424\u0440\u0438\u0441\u0438\u0430\u043d\u04e3
+languages.cs=\u0427\u0435\u0445\u04e3
+languages.lv=\u041b\u0430\u0442\u0432\u0438\u044f\u0433\u04e3
+languages.fr=\u0424\u0430\u0440\u043e\u043d\u0441\u0430\u0432\u04e3
+languages.is=\u0418\u0441\u043b\u0430\u043d\u0434\u04e3
+languages.uz=\u04ee\u0437\u0431\u0435\u043a\u04e3
+languages.lt=\u041b\u0438\u0442\u0432\u043e\u043d\u04e3
+languages.fo=\u0424\u0430\u0440\u043e\u0437\u04e3
+languages.ru=\u0420\u0443\u0441\u04e3
+languages.pt_BR=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u04e3 (\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f)
+languages.or=\u0423\u0440\u0438\u0441\u043e\u04e3
+languages.lo=\u041b\u0430\u043e\u0441\u04e3
+languages.fi=\u0424\u0438\u043d\u043d\u04e3
+languages.ur=\u0423\u0440\u0434\u0443
+languages.ro=\u0420\u0443\u043c\u0438\u043d\u04e3
+languages.ca=\u041a\u0430\u0442\u0430\u043b\u0430\u043d\u04e3
+languages.id=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u04e3
+languages.uk=\u0423\u043a\u0440\u0430\u0438\u043d\u04e3
+languages.fa=\u0424\u043e\u0440\u0441\u04e3
+languages.ia=\u0411\u0430\u0439\u043d\u0438 \u0437\u0430\u0431\u043e\u043d\u04e3
+languages.ug=\u04ee\u0439\u0493\u0443\u0440\u04e3
+languages.la=\u041b\u043e\u0442\u0438\u043d\u04e3
+languages.fil=\u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u04e3
+languages.ky=\u049a\u0438\u0440\u0493\u0438\u0437\u04e3
+languages.eu=\u0411\u0430\u0441\u043a\u04e3
+languages.bs=\u0411\u043e\u0441\u043d\u0438\u044f\u0433\u04e3
+languages.et=\u042d\u0441\u0442\u043e\u043d\u04e3
+languages.br=\u0411\u0440\u0435\u0442\u043e\u043d\u04e3
+languages.hu=\u041c\u0430\u04b7\u043e\u0440\u04e3
+languages.es=\u0418\u0441\u043f\u0430\u043d\u04e3
+languages.bn=\u0411\u0435\u043d\u0433\u0430\u043b\u04e3
+languages.eo=\u042d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0410\u043d\u0433\u043b\u0438\u0441\u04e3
+languages.el=\u042e\u043d\u043e\u043d\u04e3
+languages.bh=\u0411\u0438\u04b3\u0430\u0440\u04e3
+languages.no=\u041d\u043e\u0440\u0432\u0435\u0433\u04e3
+languages.bg=\u0411\u0443\u043b\u0493\u043e\u0440\u04e3
+languages.zu=\u0417\u0443\u043b\u0443
+languages.hi=\u04b2\u0438\u043d\u0434\u04e3
+languages.be=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u04e3
+languages.nl=\u04b2\u043e\u043b\u043b\u0430\u043d\u0434\u04e3
+languages.he=\u042f\u04b3\u0443\u0434\u04e3
index e621f11b0835fa964c55683bbbb4292357a092b5..08fef6bbe8089f7271ee63a24398a70bc78d8784 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.GBP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2a\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29
-currenciesDisplayName.PKR=\u0e23\u0e39\u0e1b\u0e35\u0e1b\u0e32\u0e01\u0e35\u0e2a\u0e16\u0e32\u0e19
-currenciesDisplayName.PHP=\u0e40\u0e1b\u0e42\u0e0b\u0e1f\u0e34\u0e25\u0e34\u0e1b\u0e1b\u0e34\u0e19\u0e2a\u0e4c
-currenciesDisplayName.ARS=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e48\u0e32
-currenciesDisplayName.FRF=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
-currenciesDisplayName.MYR=\u0e23\u0e34\u0e07\u0e01\u0e34\u0e15\u0e21\u0e32\u0e40\u0e25\u0e40\u0e0b\u0e35\u0e22
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e40\u0e22\u0e40\u0e21\u0e19
+currenciesDisplayName.KES=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e40\u0e04\u0e19\u0e22\u0e32
+currenciesDisplayName.TWD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e44\u0e15\u0e49\u0e2b\u0e27\u0e31\u0e19\u0e43\u0e2b\u0e21\u0e48
+currenciesDisplayName.LKR=\u0e23\u0e39\u0e1b\u0e35\u0e28\u0e23\u0e35\u0e25\u0e31\u0e07\u0e01\u0e32
+currenciesDisplayName.BYB=\u0e19\u0e34\u0e27\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e40\u0e1a\u0e25\u0e32\u0e23\u0e38\u0e2a
+currenciesDisplayName.TJS=\u0e42\u0e0b\u0e42\u0e21\u0e19\u0e35\u0e17\u0e32\u0e08\u0e34\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.RWF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e23\u0e27\u0e31\u0e19\u0e14\u0e32
+currenciesDisplayName.ERN=\u0e41\u0e19\u0e01\u0e1f\u0e32\u0e40\u0e2d\u0e23\u0e34\u0e40\u0e17\u0e23\u0e35\u0e22
+currenciesDisplayName.TJR=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e17\u0e32\u0e08\u0e34\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.SDP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e0b\u0e39\u0e14\u0e32\u0e19
+currenciesDisplayName.GRD=\u0e14\u0e41\u0e23\u0e04\u0e21\u0e30 \u0e01\u0e23\u0e35\u0e01
+currenciesDisplayName.AFN=\u0e2d\u0e31\u0e1f\u0e01\u0e32\u0e19\u0e35
 currenciesDisplayName.IEP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e44\u0e2d\u0e23\u0e34\u0e0a
-currenciesDisplayName.ARP=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e48\u0e32 (1983-1985)
+currenciesDisplayName.ARS=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32
+currenciesDisplayName.ARP=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32 (1983-1985)
+currenciesDisplayName.SDD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e0b\u0e39\u0e14\u0e32\u0e19\u0e40\u0e01\u0e48\u0e32
+currenciesDisplayName.GEL=\u0e25\u0e32\u0e23\u0e35\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22
+currenciesDisplayName.GEK=\u0e04\u0e39\u0e1b\u0e2d\u0e19\u0e25\u0e32\u0e23\u0e34\u0e15\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22
+currenciesDisplayName.AFA=\u0e2d\u0e31\u0e1f\u0e01\u0e32\u0e19\u0e35 (1927-2002)
+currenciesDisplayName.CRC=\u0e42\u0e04\u0e42\u0e25\u0e19\u0e04\u0e2d\u0e2a\u0e15\u0e32\u0e23\u0e34\u0e01\u0e32
+currenciesDisplayName.FKP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e1f\u0e2d\u0e25\u0e4c\u0e01\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.EEK=\u0e42\u0e04\u0e23\u0e19\u0e40\u0e2d\u0e2a\u0e42\u0e15\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.MDL=\u0e25\u0e34\u0e27\u0e21\u0e2d\u0e25\u0e42\u0e14\u0e27\u0e32
+currenciesDisplayName.HKD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2e\u0e48\u0e2d\u0e07\u0e01\u0e07
+currenciesDisplayName.IQD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e2d\u0e34\u0e23\u0e31\u0e01
+currenciesDisplayName.ARA=\u0e2d\u0e2d\u0e2a\u0e15\u0e23\u0e31\u0e25\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32
+currenciesDisplayName.SCR=\u0e23\u0e39\u0e1b\u0e35\u0e40\u0e0b\u0e40\u0e0a\u0e25\u0e2a\u0e4c
+currenciesDisplayName.VUV=\u0e27\u0e32\u0e15\u0e39\u0e27\u0e32\u0e19\u0e39\u0e2d\u0e32\u0e15\u0e39
+currenciesDisplayName.KPW=\u0e27\u0e2d\u0e19\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35\u0e40\u0e2b\u0e19\u0e37\u0e2d
+currenciesDisplayName.DKK=\u0e42\u0e04\u0e23\u0e19\u0e40\u0e14\u0e19\u0e21\u0e32\u0e23\u0e4c\u0e01
+currenciesDisplayName.IDR=\u0e23\u0e39\u0e40\u0e1b\u0e35\u0e22\u0e2b\u0e4c\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
+currenciesDisplayName.GQE=\u0e40\u0e2d\u0e47\u0e01\u0e40\u0e27\u0e40\u0e25\u0e01\u0e34\u0e19\u0e35\u0e19\u0e32\u0e2d\u0e34\u0e40\u0e04\u0e27\u0e17\u0e2d\u0e40\u0e23\u0e35\u0e22\u0e25\u0e01\u0e34\u0e19\u0e35
+currenciesDisplayName.SOS=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e42\u0e0b\u0e21\u0e32\u0e40\u0e25\u0e35\u0e22
+currenciesDisplayName.LVR=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e25\u0e31\u0e15\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.EQE=\u0e40\u0e2d\u0e47\u0e01\u0e40\u0e27\u0e40\u0e25
+currenciesDisplayName.AED=\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e41\u0e2e\u0e21\u0e2a\u0e2b\u0e23\u0e31\u0e10\u0e2d\u0e32\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e2d\u0e21\u0e34\u0e40\u0e23\u0e15\u0e2a\u0e4c
+currenciesDisplayName.LVL=\u0e25\u0e31\u0e15\u0e25\u0e31\u0e15\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.BWP=\u0e1b\u0e39\u0e25\u0e32\u0e1a\u0e2d\u0e15\u0e2a\u0e27\u0e32\u0e19\u0e32
+currenciesDisplayName.RUR=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22 (1991-1998)
+currenciesDisplayName.NIO=\u0e01\u0e2d\u0e23\u0e4c\u0e42\u0e14\u0e1a\u0e32\u0e42\u0e2d\u0e42\u0e23\u0e19\u0e34\u0e01\u0e32\u0e23\u0e32\u0e01\u0e31\u0e27
+currenciesDisplayName.XTS=\u0e23\u0e2b\u0e31\u0e2a\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19
+currenciesDisplayName.MOP=\u0e1e\u0e32\u0e17\u0e32\u0e01\u0e32\u0e21\u0e32\u0e40\u0e01\u0e4a\u0e32
+currenciesDisplayName.FJD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e1f\u0e34\u0e08\u0e34
+currenciesDisplayName.ADP=\u0e40\u0e1b\u0e40\u0e0b\u0e15\u0e32\u0e2d\u0e31\u0e19\u0e14\u0e2d\u0e23\u0e4c\u0e23\u0e32
+currenciesDisplayName.RUB=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22
+currenciesDisplayName.CDF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e04\u0e2d\u0e07\u0e42\u0e01
+currenciesDisplayName.NIC=\u0e01\u0e2d\u0e23\u0e4c\u0e42\u0e14\u0e1a\u0e32\u0e19\u0e34\u0e01\u0e32\u0e23\u0e32\u0e01\u0e31\u0e27
+currenciesDisplayName.DJF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e08\u0e34\u0e1a\u0e39\u0e15\u0e35
+currenciesDisplayName.UZS=\u0e42\u0e0b\u0e21\u0e2d\u0e38\u0e0b\u0e40\u0e1a\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.SBD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e42\u0e0b\u0e42\u0e25\u0e21\u0e2d\u0e19
+currenciesDisplayName.ECV=\u0e27\u0e32\u0e40\u0e25\u0e2d\u0e23\u0e4c\u0e04\u0e2d\u0e19\u0e2a\u0e41\u0e15\u0e19\u0e15\u0e4c\u0e40\u0e2d\u0e01\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c
+currenciesDisplayName.LUL=\u0e44\u0e1f\u0e41\u0e19\u0e25\u0e40\u0e0a\u0e35\u0e22\u0e25\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e25\u0e31\u0e01\u0e40\u0e0b\u0e21\u0e40\u0e1a\u0e34\u0e23\u0e4c\u0e01
+currenciesDisplayName.ECS=\u0e0b\u0e39\u0e40\u0e04\u0e23\u0e40\u0e2d\u0e01\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c
+currenciesDisplayName.THB=\u0e1a\u0e32\u0e17\u0e44\u0e17\u0e22
+currenciesDisplayName.PHP=\u0e40\u0e1b\u0e42\u0e0b\u0e1f\u0e34\u0e25\u0e34\u0e1b\u0e1b\u0e34\u0e19\u0e2a\u0e4c
+currenciesDisplayName.LUF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e25\u0e31\u0e01\u0e40\u0e0b\u0e21\u0e40\u0e1a\u0e34\u0e23\u0e4c\u0e01
+currenciesDisplayName.RHD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e42\u0e23\u0e14\u0e35\u0e40\u0e0b\u0e35\u0e22
+currenciesDisplayName.LUC=\u0e04\u0e2d\u0e19\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e17\u0e34\u0e40\u0e1a\u0e34\u0e25\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e25\u0e31\u0e01\u0e40\u0e0b\u0e21\u0e40\u0e1a\u0e34\u0e23\u0e4c\u0e01
+currenciesDisplayName.FIM=\u0e21\u0e32\u0e23\u0e4c\u0e01\u0e01\u0e32\u0e1f\u0e34\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.TTD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e15\u0e23\u0e34\u0e19\u0e34\u0e41\u0e14\u0e14\u0e41\u0e25\u0e30\u0e42\u0e15\u0e40\u0e1a\u0e42\u0e01
+currenciesDisplayName.SZL=\u0e25\u0e34\u0e25\u0e31\u0e07\u0e40\u0e08\u0e19\u0e35\u0e2a\u0e27\u0e32\u0e0b\u0e34\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.MNT=\u0e17\u0e39\u0e01\u0e23\u0e34\u0e04 \u0e21\u0e2d\u0e07\u0e42\u0e01\u0e40\u0e25\u0e35\u0e22
+currenciesDisplayName.UAK=\u0e04\u0e32\u0e23\u0e4c\u0e42\u0e1a\u0e27\u0e32\u0e40\u0e19\u0e15\u0e0b\u0e4c\u0e22\u0e39\u0e40\u0e04\u0e23\u0e19
+currenciesDisplayName.SAR=\u0e23\u0e34\u0e22\u0e31\u0e25\u0e0b\u0e32\u0e2d\u0e38\u0e14\u0e35\u0e2d\u0e32\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.COU=\u0e27\u0e32\u0e40\u0e25\u0e2d\u0e23\u0e4c\u0e40\u0e23\u0e35\u0e22\u0e25\u0e42\u0e04\u0e25\u0e2d\u0e21\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.UAH=\u0e23\u0e35\u0e1f\u0e40\u0e19\u0e35\u0e22\u0e22\u0e39\u0e40\u0e04\u0e23\u0e19
+currenciesDisplayName.HUF=\u0e1f\u0e2d\u0e23\u0e34\u0e19\u0e17\u0e4c\u0e2e\u0e31\u0e07\u0e01\u0e32\u0e23\u0e35
+currenciesDisplayName.QAR=\u0e23\u0e34\u0e22\u0e31\u0e25\u0e01\u0e32\u0e15\u0e32\u0e23\u0e4c
+currenciesDisplayName.COP=\u0e40\u0e1b\u0e42\u0e0b\u0e42\u0e04\u0e25\u0e2d\u0e21\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.LTT=\u0e17\u0e32\u0e42\u0e25\u0e19\u0e31\u0e2a\u0e25\u0e34\u0e17\u0e31\u0e27\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.PTE=\u0e40\u0e2d\u0e2a\u0e04\u0e39\u0e42\u0e14\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
+currenciesDisplayName.UYU=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e38\u0e23\u0e38\u0e01\u0e27\u0e31\u0e22
+currenciesDisplayName.AOR=\u0e04\u0e27\u0e31\u0e19\u0e0b\u0e32\u0e23\u0e35\u0e08\u0e31\u0e2a\u0e17\u0e32\u0e42\u0e14\u0e41\u0e2d\u0e07\u0e42\u0e01\u0e25\u0e32 (1995-1999)
+currenciesDisplayName.GBP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2a\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07 (\u0e2a\u0e2b\u0e23\u0e32\u0e0a\u0e2d\u0e32\u0e13\u0e32\u0e08\u0e31\u0e01\u0e23)
+currenciesDisplayName.ZRZ=\u0e41\u0e0b\u0e23\u0e4c\u0e04\u0e2d\u0e07\u0e42\u0e01
 currenciesDisplayName.INR=\u0e23\u0e39\u0e1b\u0e35\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22
+currenciesDisplayName.BIF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e1a\u0e38\u0e23\u0e38\u0e19\u0e14\u0e35
+currenciesDisplayName.XFU=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e22\u0e39\u0e44\u0e2d\u0e0b\u0e35\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
+currenciesDisplayName.MZN=\u0e40\u0e21\u0e15\u0e34\u0e04\u0e31\u0e25\u0e42\u0e21\u0e0b\u0e31\u0e21\u0e1a\u0e34\u0e01
+currenciesDisplayName.LTL=\u0e25\u0e35\u0e15\u0e31\u0e2a\u0e25\u0e34\u0e17\u0e31\u0e27\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.AON=\u0e19\u0e34\u0e27\u0e04\u0e27\u0e31\u0e19\u0e0b\u0e32\u0e41\u0e2d\u0e07\u0e42\u0e01\u0e25\u0e32 (1990-2000)
+currenciesDisplayName.UYP=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e38\u0e23\u0e38\u0e01\u0e27\u0e31\u0e22 (1975-1993)
+currenciesDisplayName.MZM=\u0e40\u0e21\u0e15\u0e34\u0e04\u0e31\u0e25\u0e42\u0e21\u0e0b\u0e31\u0e21\u0e1a\u0e34\u0e01\u0e40\u0e01\u0e48\u0e32
+currenciesDisplayName.KZT=\u0e40\u0e17\u0e07\u0e40\u0e01\u0e04\u0e32\u0e0b\u0e31\u0e04\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.AOK=\u0e04\u0e27\u0e31\u0e19\u0e0b\u0e32\u0e41\u0e2d\u0e07\u0e42\u0e01\u0e25\u0e32 (1977-1990)
+currenciesDisplayName.GNS=\u0e44\u0e0b\u0e25\u0e35\u0e01\u0e34\u0e19\u0e35
+currenciesDisplayName.BUK=\u0e08\u0e4a\u0e32\u0e14\u0e1e\u0e21\u0e48\u0e32
+currenciesDisplayName.XFO=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e17\u0e2d\u0e07\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
+currenciesDisplayName.PGK=\u0e01\u0e35\u0e19\u0e32\u0e1b\u0e32\u0e1b\u0e31\u0e27\u0e19\u0e34\u0e27\u0e01\u0e34\u0e19\u0e35
+currenciesDisplayName.SYP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e0b\u0e35\u0e40\u0e23\u0e35\u0e22
+currenciesDisplayName.OMR=\u0e40\u0e23\u0e35\u0e22\u0e25\u0e42\u0e2d\u0e21\u0e32\u0e19
+currenciesDisplayName.MZE=\u0e40\u0e2d\u0e2a\u0e04\u0e39\u0e42\u0e14\u0e42\u0e21\u0e0b\u0e31\u0e21\u0e1a\u0e34\u0e01
+currenciesDisplayName.ZRN=\u0e19\u0e34\u0e27\u0e41\u0e0b\u0e23\u0e4c\u0e04\u0e2d\u0e07\u0e42\u0e01
+currenciesDisplayName.NGN=\u0e44\u0e19\u0e23\u0e32\u0e44\u0e19\u0e08\u0e35\u0e40\u0e23\u0e35\u0e22
+currenciesDisplayName.CNY=\u0e2b\u0e22\u0e27\u0e19\u0e40\u0e2b\u0e23\u0e34\u0e19\u0e2b\u0e21\u0e34\u0e19\u0e1b\u0e35\u0e49 (\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e1b\u0e23\u0e30\u0e0a\u0e32\u0e0a\u0e19\u0e08\u0e35\u0e19)
+currenciesDisplayName.AOA=\u0e04\u0e27\u0e31\u0e19\u0e0b\u0e32\u0e41\u0e2d\u0e07\u0e42\u0e01\u0e25\u0e32
+currenciesDisplayName.MAF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e42\u0e21\u0e23\u0e47\u0e2d\u0e01\u0e42\u0e01
+currenciesDisplayName.RSD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.GNF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e01\u0e34\u0e19\u0e35
+currenciesDisplayName.MAD=\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e41\u0e2e\u0e21\u0e42\u0e21\u0e23\u0e47\u0e2d\u0e01\u0e42\u0e01
+currenciesDisplayName.HTG=\u0e01\u0e39\u0e23\u0e4c\u0e14\u0e40\u0e2e\u0e15\u0e34
+currenciesDisplayName.TRY=\u0e25\u0e35\u0e23\u0e32\u0e15\u0e38\u0e23\u0e01\u0e35
+currenciesDisplayName.MMK=\u0e08\u0e4a\u0e32\u0e14\u0e1e\u0e21\u0e48\u0e32
+currenciesDisplayName.XRE=\u0e01\u0e2d\u0e07\u0e17\u0e38\u0e19\u0e44\u0e23\u0e40\u0e19\u0e47\u0e15
+currenciesDisplayName.MYR=\u0e23\u0e34\u0e07\u0e01\u0e34\u0e15\u0e21\u0e32\u0e40\u0e25\u0e40\u0e0b\u0e35\u0e22
+currenciesDisplayName.LSM=\u0e21\u0e32\u0e42\u0e25\u0e15\u0e35
+currenciesDisplayName.XEU=\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e22\u0e38\u0e42\u0e23\u0e1b
+currenciesDisplayName.LSL=\u0e42\u0e25\u0e15\u0e35\u0e40\u0e25\u0e42\u0e0b\u0e42\u0e17
+currenciesDisplayName.SLL=\u0e25\u0e35\u0e42\u0e2d\u0e19\u0e40\u0e0b\u0e35\u0e22\u0e23\u0e4c\u0e23\u0e32\u0e25\u0e35\u0e42\u0e2d\u0e19
+currenciesDisplayName.BHD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e1a\u0e32\u0e2b\u0e4c\u0e40\u0e23\u0e19
+currenciesDisplayName.BTN=\u0e40\u0e2d\u0e07\u0e01\u0e31\u0e25\u0e17\u0e23\u0e31\u0e21\u0e20\u0e39\u0e0f\u0e32\u0e19
+currenciesDisplayName.TRL=\u0e25\u0e35\u0e23\u0e32\u0e15\u0e38\u0e23\u0e01\u0e35\u0e40\u0e01\u0e48\u0e32
+currenciesDisplayName.KMF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e04\u0e2d\u0e42\u0e21\u0e42\u0e23\u0e2a
+currenciesDisplayName.CZK=\u0e42\u0e04\u0e23\u0e39\u0e19\u0e32\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e40\u0e0a\u0e47\u0e01
+currenciesDisplayName.ANG=\u0e01\u0e34\u0e25\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e40\u0e18\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e41\u0e2d\u0e19\u0e17\u0e34\u0e25\u0e25\u0e34\u0e2a
+currenciesDisplayName.AZN=\u0e21\u0e32\u0e19\u0e31\u0e15\u0e2d\u0e32\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e44\u0e1a\u0e08\u0e32\u0e19
+currenciesDisplayName.AZM=\u0e21\u0e32\u0e19\u0e31\u0e15\u0e2d\u0e32\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e44\u0e1a\u0e08\u0e32\u0e19 (1993-2006)
+currenciesDisplayName.KYD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e40\u0e04\u0e22\u0e4c\u0e41\u0e21\u0e19
+currenciesDisplayName.GMD=\u0e14\u0e32\u0e25\u0e32\u0e0b\u0e35\u0e41\u0e01\u0e21\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.VEF=\u0e1f\u0e39\u0e23\u0e4c\u0e40\u0e15\u0e42\u0e1a\u0e25\u0e35\u0e27\u0e32\u0e23\u0e4c\u0e40\u0e27\u0e40\u0e19\u0e0b\u0e38\u0e40\u0e2d\u0e25\u0e32
+currenciesDisplayName.BGN=\u0e19\u0e34\u0e27\u0e40\u0e25\u0e1f\u0e1a\u0e31\u0e25\u0e41\u0e01\u0e40\u0e23\u0e35\u0e22
+currenciesDisplayName.MXV=\u0e22\u0e39\u0e19\u0e34\u0e41\u0e14\u0e14 \u0e14\u0e35 \u0e2d\u0e34\u0e19\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e48\u0e19 \u0e40\u0e21\u0e47\u0e01\u0e0b\u0e34\u0e42\u0e01
+currenciesDisplayName.CAD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e41\u0e04\u0e19\u0e32\u0e14\u0e32
+currenciesDisplayName.BGL=\u0e2e\u0e32\u0e23\u0e4c\u0e14\u0e40\u0e25\u0e1f\u0e1a\u0e31\u0e25\u0e41\u0e01\u0e40\u0e23\u0e35\u0e22
+currenciesDisplayName.VEB=\u0e42\u0e1a\u0e25\u0e35\u0e27\u0e32\u0e23\u0e4c\u0e40\u0e27\u0e40\u0e19\u0e0b\u0e38\u0e40\u0e2d\u0e25\u0e32
+currenciesDisplayName.MLF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e21\u0e32\u0e25\u0e35
+currenciesDisplayName.MXP=\u0e0b\u0e34\u0e25\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e40\u0e21\u0e47\u0e01\u0e0b\u0e34\u0e42\u0e01 (1861-1992)
+currenciesDisplayName.ILS=\u0e19\u0e34\u0e27\u0e40\u0e0a\u0e40\u0e01\u0e25\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25
+currenciesDisplayName.PES=\u0e0b\u0e31\u0e25\u0e40\u0e1b\u0e23\u0e39
+currenciesDisplayName.MXN=\u0e40\u0e1b\u0e42\u0e0b\u0e40\u0e21\u0e47\u0e01\u0e0b\u0e34\u0e42\u0e01
+currenciesDisplayName.GYD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e01\u0e32\u0e22\u0e2d\u0e32\u0e19\u0e32
+currenciesDisplayName.ILP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25
+currenciesDisplayName.CYP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e44\u0e0b\u0e1b\u0e23\u0e31\u0e2a
+currenciesDisplayName.SKK=\u0e42\u0e04\u0e23\u0e39\u0e19\u0e32\u0e2a\u0e42\u0e25\u0e27\u0e31\u0e01
+currenciesDisplayName.PEN=\u0e19\u0e27\u0e22\u0e42\u0e1a\u0e0b\u0e2d\u0e25\u0e40\u0e1b\u0e23\u0e39
+currenciesDisplayName.LRD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e44\u0e25\u0e1a\u0e35\u0e40\u0e23\u0e35\u0e22
+currenciesDisplayName.PEI=\u0e2d\u0e34\u0e19\u0e15\u0e35\u0e40\u0e1b\u0e23\u0e39
+currenciesDisplayName.AMD=\u0e41\u0e14\u0e23\u0e21\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.BSD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e1a\u0e32\u0e2e\u0e32\u0e21\u0e32\u0e2a
+currenciesDisplayName.XPT=\u0e41\u0e1e\u0e25\u0e17\u0e34\u0e19\u0e31\u0e21
+currenciesDisplayName.HRK=\u0e04\u0e39\u0e19\u0e32\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
+currenciesDisplayName.HRD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
 currenciesDisplayName.CLP=\u0e40\u0e1b\u0e42\u0e0b\u0e0a\u0e34\u0e25\u0e35
-currenciesDisplayName.JPY=\u0e40\u0e22\u0e19
-currenciesDisplayName.NZD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e19\u0e34\u0e27\u0e0b\u0e35\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.XPF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e0b\u0e35\u0e40\u0e2d\u0e1f\u0e1e\u0e35
+currenciesDisplayName.FRF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
+currenciesDisplayName.XPD=\u0e1e\u0e31\u0e25\u0e40\u0e25\u0e40\u0e14\u0e35\u0e22\u0e21
+currenciesDisplayName.BRR=\u0e04\u0e23\u0e39\u0e40\u0e0b\u0e42\u0e23\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
+currenciesDisplayName.MKD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e21\u0e32\u0e0b\u0e34\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.CLF=\u0e1f\u0e39\u0e40\u0e21\u0e19\u0e42\u0e15\u0e0a\u0e34\u0e25\u0e35
+currenciesDisplayName.ALL=\u0e40\u0e25\u0e01\u0e41\u0e2d\u0e25\u0e40\u0e1a\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.BRN=\u0e04\u0e23\u0e39\u0e0b\u0e32\u0e42\u0e14\u0e42\u0e19\u0e42\u0e27\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
+currenciesDisplayName.MWK=\u0e04\u0e27\u0e32\u0e0a\u0e32\u0e21\u0e32\u0e25\u0e32\u0e27\u0e35
+currenciesDisplayName.BRL=\u0e23\u0e35\u0e25\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
+currenciesDisplayName.TPE=\u0e40\u0e2d\u0e2a\u0e04\u0e39\u0e42\u0e14\u0e15\u0e34\u0e21\u0e2d\u0e23\u0e4c
+currenciesDisplayName.BRE=\u0e04\u0e23\u0e39\u0e40\u0e0b\u0e42\u0e23\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25 (1990-1993)
+currenciesDisplayName.BRC=\u0e04\u0e23\u0e39\u0e0b\u0e32\u0e42\u0e14\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
+currenciesDisplayName.BRB=\u0e04\u0e23\u0e39\u0e40\u0e0b\u0e42\u0e23\u0e42\u0e19\u0e42\u0e27\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25 (1967-1986)
+currenciesDisplayName.DEM=\u0e21\u0e32\u0e23\u0e4c\u0e01\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e19\u0e35
+currenciesDisplayName.KWD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e04\u0e39\u0e40\u0e27\u0e15
+currenciesDisplayName.XCD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e41\u0e04\u0e23\u0e34\u0e1a\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
+currenciesDisplayName.NPR=\u0e23\u0e39\u0e1b\u0e35\u0e40\u0e19\u0e1b\u0e32\u0e25
+currenciesDisplayName.GWP=\u0e40\u0e1b\u0e42\u0e0b\u0e01\u0e34\u0e19\u0e35-\u0e1a\u0e34\u0e2a\u0e40\u0e0b\u0e32
+currenciesDisplayName.YUN=\u0e04\u0e2d\u0e19\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e17\u0e34\u0e40\u0e1a\u0e34\u0e25\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e22\u0e39\u0e42\u0e01\u0e2a\u0e25\u0e32\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.SVC=\u0e42\u0e04\u0e42\u0e25\u0e19\u0e40\u0e2d\u0e25\u0e0b\u0e31\u0e25\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c
+currenciesDisplayName.YUM=\u0e42\u0e19\u0e27\u0e34\u0e22\u0e4c\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e22\u0e39\u0e42\u0e01\u0e2a\u0e25\u0e32\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.BEL=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e40\u0e1a\u0e25\u0e40\u0e22\u0e35\u0e22\u0e21 (\u0e01\u0e32\u0e23\u0e40\u0e07\u0e34\u0e19)
+currenciesDisplayName.SIT=\u0e17\u0e2d\u0e25\u0e32\u0e23\u0e4c\u0e2a\u0e42\u0e25\u0e27\u0e35\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.JPY=\u0e40\u0e22\u0e19\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19
+currenciesDisplayName.XOF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e40\u0e0b\u0e1f\u0e32\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23\u0e01\u0e25\u0e32\u0e07\u0e23\u0e31\u0e10\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+currenciesDisplayName.MVR=\u0e23\u0e39\u0e1f\u0e35\u0e22\u0e32\u0e2b\u0e4c\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e21\u0e31\u0e25\u0e14\u0e35\u0e1f\u0e2a\u0e4c
+currenciesDisplayName.BEF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e40\u0e1a\u0e25\u0e40\u0e22\u0e35\u0e22\u0e21
+currenciesDisplayName.GWE=\u0e40\u0e2d\u0e2a\u0e04\u0e39\u0e42\u0e14\u0e01\u0e34\u0e19\u0e35\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
+currenciesDisplayName.TOP=\u0e1e\u0e32\u0e41\u0e2d\u0e07\u0e01\u0e32\u0e15\u0e2d\u0e07\u0e01\u0e32
+currenciesDisplayName.YUD=\u0e2e\u0e32\u0e23\u0e4c\u0e14\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e22\u0e39\u0e42\u0e01\u0e2a\u0e25\u0e32\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.BEC=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e40\u0e1a\u0e25\u0e40\u0e22\u0e35\u0e22\u0e21 (\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e44\u0e14\u0e49)
+currenciesDisplayName.SUR=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e42\u0e0b\u0e40\u0e27\u0e35\u0e22\u0e15
+currenciesDisplayName.RON=\u0e25\u0e34\u0e27\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.ROL=\u0e25\u0e34\u0e27\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22\u0e40\u0e01\u0e48\u0e32
+currenciesDisplayName.BDT=\u0e15\u0e32\u0e01\u0e32\u0e1a\u0e31\u0e07\u0e01\u0e25\u0e32\u0e40\u0e17\u0e28
+currenciesDisplayName.DDM=\u0e2d\u0e2d\u0e2a\u0e15\u0e4c\u0e21\u0e32\u0e23\u0e4c\u0e01\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
+currenciesDisplayName.XBD=\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e1a\u0e31\u0e0d\u0e0a\u0e35 17 \u0e22\u0e38\u0e42\u0e23\u0e1b
+currenciesDisplayName.AWG=\u0e01\u0e34\u0e25\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e2d\u0e32\u0e23\u0e39\u0e1a\u0e32
+currenciesDisplayName.XBC=\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e1a\u0e31\u0e0d\u0e0a\u0e35 9 \u0e22\u0e38\u0e42\u0e23\u0e1b
+currenciesDisplayName.XBB=\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e01\u0e32\u0e23\u0e40\u0e07\u0e34\u0e19\u0e22\u0e38\u0e42\u0e23\u0e1b
+currenciesDisplayName.XBA=\u0e2d\u0e35\u0e22\u0e39\u0e2d\u0e32\u0e23\u0e4c\u0e0b\u0e35\u0e42\u0e2d
+currenciesDisplayName.NOK=\u0e42\u0e04\u0e23\u0e19\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c
+currenciesDisplayName.MUR=\u0e23\u0e39\u0e1b\u0e35\u0e21\u0e2d\u0e23\u0e34\u0e40\u0e0a\u0e35\u0e22\u0e2a
+currenciesDisplayName.ZAR=\u0e41\u0e23\u0e19\u0e14\u0e4c\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49
+currenciesDisplayName.SHP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e40\u0e2e\u0e40\u0e25\u0e19\u0e32
+currenciesDisplayName.XAU=\u0e17\u0e2d\u0e07
+currenciesDisplayName.ZAL=\u0e41\u0e23\u0e19\u0e14\u0e4c\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49 (\u0e01\u0e32\u0e23\u0e40\u0e07\u0e34\u0e19)
+currenciesDisplayName.VND=\u0e14\u0e2d\u0e07\u0e40\u0e27\u0e35\u0e22\u0e14\u0e19\u0e32\u0e21
+currenciesDisplayName.TZS=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e41\u0e17\u0e19\u0e0b\u0e32\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.GIP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e22\u0e34\u0e1a\u0e23\u0e2d\u0e25\u0e15\u0e32\u0e23\u0e4c
+currenciesDisplayName.TND=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e15\u0e39\u0e19\u0e34\u0e40\u0e0b\u0e35\u0e22
+currenciesDisplayName.CVE=\u0e40\u0e2d\u0e2a\u0e04\u0e39\u0e42\u0e14\u0e40\u0e04\u0e1b\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e14
+currenciesDisplayName.UGX=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e22\u0e39\u0e01\u0e31\u0e19\u0e14\u0e32
+currenciesDisplayName.XAG=\u0e40\u0e07\u0e34\u0e19
+currenciesDisplayName.ZMK=\u0e04\u0e27\u0e32\u0e0a\u0e32\u0e41\u0e0b\u0e21\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.JOD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e08\u0e2d\u0e23\u0e4c\u0e41\u0e14\u0e19
+currenciesDisplayName.XAF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e40\u0e0b\u0e1f\u0e32\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23\u0e23\u0e31\u0e10\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e01\u0e25\u0e32\u0e07
+currenciesDisplayName.LBP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e40\u0e25\u0e1a\u0e32\u0e19\u0e2d\u0e19
+currenciesDisplayName.UGS=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e22\u0e39\u0e01\u0e31\u0e19\u0e14\u0e32 (1966-1987)
+currenciesDisplayName.STD=\u0e42\u0e14\u0e1a\u0e23\u0e32\u0e40\u0e0b\u0e32\u0e42\u0e2d\u0e42\u0e15\u0e40\u0e21\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e19\u0e0b\u0e34\u0e40\u0e1b
+currenciesDisplayName.WST=\u0e15\u0e32\u0e25\u0e32\u0e0b\u0e32\u0e21\u0e31\u0e27\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+currenciesDisplayName.KHR=\u0e40\u0e23\u0e35\u0e22\u0e25\u0e01\u0e31\u0e21\u0e1e\u0e39\u0e0a\u0e32
+currenciesDisplayName.DOP=\u0e40\u0e1b\u0e42\u0e0b\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e42\u0e14\u0e21\u0e34\u0e19\u0e34\u0e01\u0e31\u0e19
 currenciesDisplayName.EUR=\u0e22\u0e39\u0e42\u0e23
-currenciesDisplayName.AUD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22
-currenciesDisplayName.FJD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e1f\u0e34\u0e08\u0e34
-currenciesDisplayName.TRY=\u0e15\u0e38\u0e23\u0e01\u0e35 \u0e25\u0e35\u0e23\u0e48\u0e32 \u0e43\u0e2b\u0e21\u0e48
-currenciesDisplayName.USS=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e2a\u0e2b\u0e23\u0e31\u0e10 (\u0e27\u0e31\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19)
-currenciesDisplayName.ILP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25
-currenciesDisplayName.THB=\u0e1a\u0e32\u0e17
-currenciesDisplayName.USN=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e2a\u0e2b\u0e23\u0e31\u0e10 (\u0e27\u0e31\u0e19\u0e16\u0e31\u0e14\u0e44\u0e1b)
-currenciesDisplayName.SGD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e2a\u0e34\u0e07\u0e04\u0e42\u0e1b\u0e23\u0e4c
-currenciesDisplayName.CNY=\u0e2b\u0e22\u0e27\u0e19\u0e40\u0e2b\u0e23\u0e34\u0e19\u0e40\u0e2b\u0e21\u0e34\u0e19\u0e1a\u0e35\u0e49
-currenciesDisplayName.CAD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e04\u0e32\u0e19\u0e32\u0e14\u0e32
+currenciesDisplayName.BOV=\u0e21\u0e1f\u0e14\u0e2d\u0e25\u0e42\u0e1a\u0e25\u0e34\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.MTP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e21\u0e2d\u0e25\u0e15\u0e32
+currenciesDisplayName.USS=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2a\u0e2b\u0e23\u0e31\u0e10 (\u0e27\u0e31\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19)
+currenciesDisplayName.BOP=\u0e40\u0e1b\u0e42\u0e0b\u0e42\u0e1a\u0e25\u0e34\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.CUP=\u0e40\u0e1b\u0e42\u0e0b\u0e04\u0e34\u0e27\u0e1a\u0e32
+currenciesDisplayName.MTL=\u0e25\u0e35\u0e23\u0e32\u0e21\u0e2d\u0e25\u0e15\u0e32
+currenciesDisplayName.TMM=\u0e21\u0e32\u0e19\u0e32\u0e17\u0e40\u0e15\u0e34\u0e23\u0e4c\u0e01\u0e40\u0e21\u0e19\u0e34\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.USN=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2a\u0e2b\u0e23\u0e31\u0e10 (\u0e27\u0e31\u0e19\u0e16\u0e31\u0e14\u0e44\u0e1b)
+currenciesDisplayName.SGD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2a\u0e34\u0e07\u0e04\u0e42\u0e1b\u0e23\u0e4c
+currenciesDisplayName.NZD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e19\u0e34\u0e27\u0e0b\u0e35\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.USD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2a\u0e2b\u0e23\u0e31\u0e10
+currenciesDisplayName.BOB=\u0e42\u0e1a\u0e25\u0e34\u0e40\u0e27\u0e35\u0e22\u0e42\u0e19
+currenciesDisplayName.HNL=\u0e40\u0e25\u0e21\u0e1b\u0e35\u0e23\u0e32\u0e2e\u0e2d\u0e19\u0e14\u0e39\u0e23\u0e31\u0e2a
+currenciesDisplayName.CHW=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e14\u0e31\u0e1a\u0e40\u0e1a\u0e34\u0e25\u0e22\u0e39\u0e44\u0e2d\u0e2d\u0e32\u0e23\u0e4c
+currenciesDisplayName.ITL=\u0e25\u0e35\u0e23\u0e32\u0e2d\u0e34\u0e15\u0e32\u0e25\u0e35
+currenciesDisplayName.PAB=\u0e1a\u0e31\u0e25\u0e42\u0e1a\u0e2d\u0e32\u0e1b\u0e32\u0e19\u0e32\u0e21\u0e32
+currenciesDisplayName.GTQ=\u0e40\u0e01\u0e47\u0e15\u0e0b\u0e32\u0e25\u0e01\u0e31\u0e27\u0e40\u0e15\u0e21\u0e32\u0e25\u0e32
+currenciesDisplayName.XXX=\u0e44\u0e21\u0e48\u0e21\u0e35\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19
+currenciesDisplayName.AUD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22
+currenciesDisplayName.GHC=\u0e40\u0e0b\u0e14\u0e35\u0e01\u0e32\u0e19\u0e32
+currenciesDisplayName.LAK=\u0e01\u0e35\u0e1a\u0e25\u0e32\u0e27
+currenciesDisplayName.NAD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e19\u0e32\u0e21\u0e34\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.KGS=\u0e0b\u0e2d\u0e21\u0e04\u0e35\u0e23\u0e4c\u0e01\u0e35\u0e0b\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.MGF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e21\u0e32\u0e14\u0e32\u0e01\u0e31\u0e2a\u0e01\u0e32\u0e23\u0e4c
+currenciesDisplayName.BBD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e1a\u0e32\u0e23\u0e4c\u0e40\u0e1a\u0e42\u0e14\u0e2a
+currenciesDisplayName.CHF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e2a\u0e27\u0e34\u0e2a
+currenciesDisplayName.CHE=\u0e22\u0e39\u0e42\u0e23\u0e14\u0e31\u0e1a\u0e40\u0e1a\u0e34\u0e25\u0e22\u0e39\u0e44\u0e2d\u0e2d\u0e32\u0e23\u0e4c
+currenciesDisplayName.MGA=\u0e2d\u0e30\u0e40\u0e23\u0e35\u0e22\u0e23\u0e35\u0e21\u0e32\u0e14\u0e32\u0e01\u0e31\u0e2a\u0e01\u0e32\u0e23\u0e4c
+currenciesDisplayName.PYG=\u0e01\u0e27\u0e32\u0e23\u0e32\u0e19\u0e35\u0e1b\u0e32\u0e23\u0e32\u0e01\u0e27\u0e31\u0e22
+currenciesDisplayName.PLZ=\u0e0b\u0e27\u0e2d\u0e15\u0e35\u0e42\u0e1b\u0e41\u0e25\u0e19\u0e14\u0e4c (1950-1995)
+currenciesDisplayName.YER=\u0e40\u0e23\u0e35\u0e22\u0e25\u0e40\u0e22\u0e40\u0e21\u0e19
 currenciesDisplayName.ATS=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e35\u0e22
-currenciesDisplayName.IDR=\u0e23\u0e39\u0e40\u0e1b\u0e35\u0e22\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
-currenciesDisplayName.BRL=\u0e23\u0e35\u0e25
-currenciesDisplayName.USD=\u0e14\u0e2d\u0e23\u0e4c\u0e25\u0e48\u0e32\u0e23\u0e4c\u0e2a\u0e2b\u0e23\u0e31\u0e10
-currenciesDisplayName.MXN=\u0e40\u0e1b\u0e42\u0e0b\u0e41\u0e21\u0e47\u0e01\u0e0b\u0e34\u0e42\u0e01
-currenciesDisplayName.RUB=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22
-currenciesDisplayName.HKD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e2e\u0e48\u0e2d\u0e07\u0e01\u0e07
-currenciesDisplayName.XAU=\u0e17\u0e2d\u0e07
-currenciesSymbol.GBP=\\u00A3
+currenciesDisplayName.ETB=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e2d\u0e18\u0e34\u0e42\u0e2d\u0e40\u0e1b\u0e35\u0e22
+currenciesDisplayName.BND=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e1a\u0e23\u0e39\u0e44\u0e19
+currenciesDisplayName.EGP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2d\u0e35\u0e22\u0e34\u0e1b\u0e15\u0e4c
+currenciesDisplayName.JMD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e08\u0e32\u0e40\u0e21\u0e01\u0e32
+currenciesDisplayName.PLN=\u0e2a\u0e25\u0e47\u0e2d\u0e15\u0e15\u0e35\u0e42\u0e1b\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.DZD=\u0e41\u0e2d\u0e25\u0e08\u0e35\u0e40\u0e23\u0e35\u0e22 \u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c
+currenciesDisplayName.ISK=\u0e42\u0e04\u0e23\u0e19\u0e32\u0e44\u0e2d\u0e0b\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.SRG=\u0e01\u0e25\u0e34\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e0b\u0e39\u0e23\u0e34\u0e19\u0e32\u0e40\u0e21
+currenciesDisplayName.LYD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e25\u0e34\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.SRD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e0b\u0e39\u0e23\u0e34\u0e19\u0e32\u0e40\u0e21
+currenciesDisplayName.BAM=\u0e04\u0e2d\u0e19\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e17\u0e34\u0e40\u0e1a\u0e34\u0e25\u0e21\u0e32\u0e23\u0e4c\u0e01\u0e1a\u0e2d\u0e2a\u0e40\u0e19\u0e35\u0e22-\u0e40\u0e2e\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e42\u0e01\u0e27\u0e35\u0e19\u0e32
+currenciesDisplayName.BZD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e40\u0e1a\u0e25\u0e35\u0e0b
+currenciesDisplayName.ESP=\u0e40\u0e1b\u0e40\u0e0b\u0e15\u0e32\u0e2a\u0e40\u0e1b\u0e19
+currenciesDisplayName.KRW=\u0e27\u0e2d\u0e19\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35\u0e43\u0e15\u0e49
+currenciesDisplayName.NLG=\u0e01\u0e34\u0e25\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e40\u0e18\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.MRO=\u0e2d\u0e39\u0e01\u0e35\u0e22\u0e32\u0e21\u0e2d\u0e23\u0e34\u0e40\u0e15\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.BAD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e1a\u0e2d\u0e2a\u0e40\u0e19\u0e35\u0e22-\u0e40\u0e2e\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e42\u0e01\u0e27\u0e35\u0e19\u0e32
+currenciesDisplayName.ZWD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e0b\u0e34\u0e21\u0e1a\u0e31\u0e1a\u0e40\u0e27
+currenciesDisplayName.SEK=\u0e42\u0e04\u0e23\u0e19\u0e32\u0e2a\u0e27\u0e35\u0e40\u0e14\u0e19
+currenciesDisplayName.CSK=\u0e2e\u0e32\u0e23\u0e4c\u0e14\u0e42\u0e04\u0e23\u0e39\u0e19\u0e32\u0e40\u0e0a\u0e47\u0e01
+currenciesDisplayName.BYR=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e40\u0e1a\u0e25\u0e32\u0e23\u0e38\u0e2a
+currenciesDisplayName.ESB=\u0e40\u0e1b\u0e40\u0e0b\u0e15\u0e32\u0e2a\u0e40\u0e1b\u0e19 (\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e1a\u0e35)
+currenciesDisplayName.IRR=\u0e40\u0e23\u0e35\u0e22\u0e25\u0e2d\u0e34\u0e2b\u0e23\u0e48\u0e32\u0e19
+currenciesDisplayName.ESA=\u0e40\u0e1b\u0e40\u0e0b\u0e15\u0e32\u0e2a\u0e40\u0e1b\u0e19 (\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e40\u0e2d)
+currenciesDisplayName.PKR=\u0e23\u0e39\u0e1b\u0e35\u0e1b\u0e32\u0e01\u0e35\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.BMD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e40\u0e1a\u0e2d\u0e23\u0e4c\u0e21\u0e34\u0e27\u0e14\u0e32
+currenciesDisplayName.CSD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
 currenciesSymbol.PKR=Pra
+currenciesSymbol.GBP=UK\u00a3
 currenciesSymbol.ARS=Arg$
 currenciesSymbol.MYR=RM
 currenciesSymbol.IEP=IR\\u00A3
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.JPY=\\u00A5
 currenciesSymbol.NZD=$NZ
+currenciesSymbol.EUR=\u20ac
 currenciesSymbol.AUD=$A
 currenciesSymbol.FJD=F$
 currenciesSymbol.THB=\u0e3f
 currenciesSymbol.SGD=S$
 currenciesSymbol.CNY=\uffe5
 currenciesSymbol.CAD=Can$
+currenciesSymbol.XXX=XXX
 currenciesSymbol.IDR=Rp
+currenciesSymbol.BRL=R$
 currenciesSymbol.USD=US$
+currenciesSymbol.RUB=RUB
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.HKD=HK$
-shortMonths=\u0e21.\u0e04.®\u0e01.\u0e1e.®\u0e21\u0e35.\u0e04.®\u0e40\u0e21.\u0e22.®\u0e1e.\u0e04.®\u0e21\u0e34.\u0e22.®\u0e01.\u0e04.®\u0e2a.\u0e04.®\u0e01.\u0e22.®\u0e15.\u0e04.®\u0e1e.\u0e22.®\u0e18.\u0e04.®®
-months=\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21®\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c®\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21®\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19®\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21®\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19®\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21®\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21®\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19®\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21®\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19®\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21®®
-shortWeekdays=®\u0e2d\u0e32.®\u0e08.®\u0e2d.®\u0e1e.®\u0e1e\u0e24.®\u0e28.®\u0e2a.®
-weekdays=®\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c®\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c®\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23®\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18®\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35®\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c®\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c®
-eras=\u0e1b\u0e35\u0e01\u0e48\u0e2d\u0e19\u0e04\u0e23\u0e34\u0e2a\u0e15\u0e4c\u0e01\u0e32\u0e25\u0e17\u0e35\u0e48®\u0e04.\u0e28.®
-ampms=\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07®\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07®
+shortMonths=\u0e21.\u0e04.\u00ae\u0e01.\u0e1e.\u00ae\u0e21\u0e35.\u0e04.\u00ae\u0e40\u0e21.\u0e22.\u00ae\u0e1e.\u0e04.\u00ae\u0e21\u0e34.\u0e22.\u00ae\u0e01.\u0e04.\u00ae\u0e2a.\u0e04.\u00ae\u0e01.\u0e22.\u00ae\u0e15.\u0e04.\u00ae\u0e1e.\u0e22.\u00ae\u0e18.\u0e04.\u00ae\u00ae
+months=\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21\u00ae\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c\u00ae\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21\u00ae\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19\u00ae\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21\u00ae\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19\u00ae\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21\u00ae\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21\u00ae\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19\u00ae\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21\u00ae\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19\u00ae\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21\u00ae\u00ae
+shortWeekdays=\u00ae\u0e2d\u0e32.\u00ae\u0e08.\u00ae\u0e2d.\u00ae\u0e1e.\u00ae\u0e1e\u0e24.\u00ae\u0e28.\u00ae\u0e2a.\u00ae
+weekdays=\u00ae\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c\u00ae\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c\u00ae\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23\u00ae\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18\u00ae\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35\u00ae\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c\u00ae\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c\u00ae
+eras=\u0e1b\u0e35\u0e01\u0e48\u0e2d\u0e19 \u0e04.\u0e28.\u00ae\u0e04.\u0e28.\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=d/M/yyyy
 mediumDateFormat=d MMM yyyy
 longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE'\u0e17\u0e35\u0e48 'd MMMM G yyyy
+fullDateFormat=EEEE\u0e17\u0e35\u0e48 d MMMM G yyyy
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
-longTimeFormat=H' \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 'm' \u0e19\u0e32\u0e17\u0e35'
-fullTimeFormat=H' \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 'm' \u0e19\u0e32\u0e17\u0e35 'ss' \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35'
+longTimeFormat=H \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 m \u0e19\u0e32\u0e17\u0e35 ss \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 z
+fullTimeFormat=H \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 m \u0e19\u0e32\u0e17\u0e35 ss \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 z
+zoneStrings=Europe_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00a9Africa_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00a9Borneo\u00ae\u0e40\u0e27\u0e25\u0e32\u0e1a\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e35\u0e22\u0e27\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e1a\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e35\u0e22\u0e27\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Aqtau\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e31\u0e04\u0e15\u0e32\u0e2d\u0e39\u00aeAQTT (\u0e2d\u0e31\u0e04\u0e15\u0e32\u0e2d\u0e39)\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e31\u0e04\u0e15\u0e32\u0e2d\u0e39\u00aeAQTST (\u0e2d\u0e31\u0e04\u0e15\u0e32\u0e2d\u0e39)\u00ae\u00a9Kazakhstan_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e04\u0e32\u0e0b\u0e31\u0e04\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2a\u0e40\u0e27\u0e35\u0e22\u0e23\u0e4c\u0e14\u0e25\u0e2d\u0e1f\u0e2a\u0e04\u0e4c\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2a\u0e40\u0e27\u0e35\u0e22\u0e23\u0e4c\u0e14\u0e25\u0e2d\u0e1f\u0e2a\u0e04\u0e4c\u00ae\u00ae\u00a9Bangladesh\u00ae\u0e40\u0e27\u0e25\u0e32\u0e1a\u0e31\u0e07\u0e01\u0e25\u0e32\u0e40\u0e17\u0e28\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00ae\u0e40\u0e27\u0e25\u0e32\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e4c\u0e04\u0e31\u0e19\u0e14\u0e4c\u00aeSAMT (\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e4c\u0e04\u0e31\u0e19\u0e14\u0e4c)\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e4c\u0e04\u0e31\u0e19\u0e14\u0e4c\u00aeSAMST (\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e4c\u0e04\u0e31\u0e19\u0e14\u0e4c)\u00ae\u00a9Amazon\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e30\u0e40\u0e21\u0e0b\u0e2d\u0e19\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e30\u0e40\u0e21\u0e0b\u0e2d\u0e19\u00ae\u00ae\u00a9Arabian\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e32\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22\u00aeAST (\u0e2d\u0e32\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22)\u00ae\u00aeADT (\u0e2d\u0e32\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22)\u00ae\u00a9Yekaterinburg\u00ae\u0e40\u0e27\u0e25\u0e32\u0e40\u0e22\u0e04\u0e32\u0e40\u0e15\u0e23\u0e34\u0e19\u0e1a\u0e39\u0e23\u0e4c\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e40\u0e22\u0e04\u0e32\u0e40\u0e15\u0e23\u0e34\u0e19\u0e1a\u0e39\u0e23\u0e4c\u0e01\u00ae\u00ae\u00a9Alaska\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e30\u0e41\u0e25\u0e2a\u0e01\u0e32\u00ae\u00ae\u00ae\u00ae\u00a9Qyzylorda\u00ae\u0e40\u0e27\u0e25\u0e32\u0e04\u0e37\u0e22\u0e0b\u0e34\u0e25\u0e2d\u0e2d\u0e23\u0e4c\u0e14\u0e32\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e04\u0e37\u0e22\u0e0b\u0e34\u0e25\u0e2d\u0e2d\u0e23\u0e4c\u0e14\u0e32\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e0a\u0e32\u0e21\u0e2d\u0e23\u0e4c\u0e42\u0e23\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22\u00aeAMT (\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22)\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22\u00aeAMST (\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22)\u00ae\u00a9America_Pacific\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e41\u0e1b\u0e0b\u0e34\u0e1f\u0e34\u0e04\u00ae\u00ae\u00ae\u00ae\u00a9Tajikistan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e17\u0e32\u0e08\u0e34\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u0e40\u0e27\u0e25\u0e32\u0e14\u0e39\u0e0a\u0e32\u0e19\u0e40\u0e1a\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e14\u0e39\u0e0a\u0e32\u0e19\u0e40\u0e1a\u00ae\u00ae\u00a9Yerevan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e40\u0e22\u0e40\u0e23\u0e27\u0e32\u0e19\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e40\u0e22\u0e40\u0e23\u0e27\u0e32\u0e19\u00ae\u00ae\u00a9Israel\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25\u00aeIST (\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25)\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00a9North_Mariana\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e21\u0e32\u0e40\u0e23\u0e35\u0e22\u0e19\u0e32\u0e40\u0e2b\u0e19\u0e37\u0e2d\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e19\u0e34\u0e27\u0e1f\u0e31\u0e19\u0e14\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e25\u0e32\u0e22\u0e32\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35\u00ae\u00ae\u00ae\u00ae\u00a9Argentina_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e40\u0e15\u0e34\u0e23\u0e4c\u0e01\u0e40\u0e21\u0e19\u0e34\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e40\u0e15\u0e34\u0e23\u0e4c\u0e01\u0e40\u0e21\u0e19\u0e34\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u00a9Pierre_Miquelon\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e1b\u0e35\u0e41\u0e22\u0e23\u0e4c\u0e41\u0e25\u0e30\u0e21\u0e35\u0e40\u0e01\u0e2d\u0e25\u0e07\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e41\u0e2d\u0e15\u0e41\u0e25\u0e19\u0e15\u0e34\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e30\u0e41\u0e25\u0e2a\u0e01\u0e32-\u0e2e\u0e32\u0e27\u0e32\u0e22\u00ae\u00ae\u00ae\u00ae\u00a9Uzbekistan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e38\u0e0b\u0e40\u0e1a\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e38\u0e0b\u0e40\u0e1a\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u00a9Tbilisi\u00ae\u0e40\u0e27\u0e25\u0e32\u0e17\u0e1a\u0e34\u0e25\u0e34\u0e0b\u0e34\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e17\u0e1a\u0e34\u0e25\u0e34\u0e0b\u0e34\u00ae\u00ae\u00a9Malaysia\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e40\u0e25\u0e40\u0e0b\u0e35\u0e22\u00ae\u00ae\u00ae\u00ae\u00a9Baku\u00ae\u0e40\u0e27\u0e25\u0e32\u0e1a\u0e32\u0e01\u0e39\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e1a\u0e32\u0e01\u0e39\u00ae\u00ae\u00a9America_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Samoa\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e0b\u0e32\u0e21\u0e31\u0e27\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00ae\u0e40\u0e27\u0e25\u0e32\u0e40\u0e2d\u0e01\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e32\u0e40\u0e01\u0e23\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e32\u0e40\u0e01\u0e23\u00ae\u00ae\u00a9Europe_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00a9Africa_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u0e40\u0e27\u0e25\u0e32\u0e15\u0e38\u0e23\u0e01\u0e35\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e15\u0e38\u0e23\u0e01\u0e35\u00ae\u00ae\u00a9Africa_Southern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e40\u0e1a\u0e23\u0e34\u0e07\u00aeBST (\u0e40\u0e1a\u0e23\u0e34\u0e07)\u00ae\u00aeBDT (\u0e40\u0e1a\u0e23\u0e34\u0e07)\u00ae\u00a9Guam\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e01\u0e27\u0e21\u00aeGST (\u0e01\u0e27\u0e21)\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e21\u0e32\u0e23\u0e4c\u0e41\u0e0a\u0e25\u0e25\u0e4c\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e20\u0e39\u0e0f\u0e32\u0e19\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00ae\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e17\u0e32\u0e0a\u0e40\u0e04\u0e19\u0e15\u0e4c\u00ae\u00ae\u00a9East_Timor\u00ae\u0e40\u0e27\u0e25\u0e32\u0e15\u0e34\u0e21\u0e2d\u0e23\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Argentina\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32\u00ae\u00ae\u00a9Yukon\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e22\u0e39\u0e04\u0e2d\u0e19\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e19\u0e34\u0e27\u0e0b\u0e35\u0e41\u0e25\u0e19\u0e14\u0e4c\u00ae\u00ae\u00ae\u00ae\u00a9China\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e08\u0e35\u0e19\u00aeCST (\u0e08\u0e35\u0e19)\u00ae\u00aeCDT (\u0e08\u0e35\u0e19)\u00ae\u00a9Indonesia_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00ae\u00ae\u00a9India\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00ae\u0e40\u0e27\u0e25\u0e32\u0e0b\u0e39\u0e23\u0e34\u0e19\u0e32\u0e40\u0e21\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e01\u0e23\u0e35\u0e19\u0e34\u0e0a\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u0e40\u0e27\u0e25\u0e32\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e32\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e32\u00ae\u00ae\u00a9Chile\u00ae\u0e40\u0e27\u0e25\u0e32\u0e0a\u0e34\u0e25\u0e35\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e0a\u0e34\u0e25\u0e35\u00ae\u00ae\u00a9Brasilia\u00ae\u0e40\u0e27\u0e25\u0e32\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e40\u0e25\u0e35\u0e22\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e40\u0e25\u0e35\u0e22\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e04\u0e32\u0e0b\u0e31\u0e04\u0e2a\u0e16\u0e32\u0e19\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e39\u0e25\u0e32\u0e19\u0e1a\u0e32\u0e15\u0e2d\u0e23\u0e4c\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e39\u0e25\u0e32\u0e19\u0e1a\u0e32\u0e15\u0e2d\u0e23\u0e4c\u00ae\u00ae\u00a9America_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00a9Azores\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e32\u0e42\u0e0b\u0e40\u0e23\u0e0a\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e32\u0e42\u0e0b\u0e40\u0e23\u0e0a\u00ae\u00ae\u00a9Greenland_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00a9Kwajalein\u00ae\u0e40\u0e27\u0e25\u0e32\u0e04\u0e27\u0e32\u0e08\u0e32\u0e40\u0e25\u0e19\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e1b\u0e32\u0e01\u0e35\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e1b\u0e32\u0e01\u0e35\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u00a9Australia_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u0e40\u0e27\u0e25\u0e32\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22\u00ae\u00ae\u00a9Galapagos\u00ae\u0e40\u0e27\u0e25\u0e32\u0e01\u0e32\u0e25\u0e32\u0e1b\u0e32\u0e42\u0e01\u0e2a\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e40\u0e01\u0e4a\u0e32\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e21\u0e32\u0e40\u0e01\u0e4a\u0e32\u00ae\u00ae\u00a9
 territories.TL=\u0e15\u0e34\u0e21\u0e2d\u0e23\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
-territories.TK=\u0e42\u0e17\u0e01\u0e34\u0e42\u0e25
+territories.TK=\u0e42\u0e15\u0e40\u0e01\u0e40\u0e25\u0e32
 territories.TJ=\u0e17\u0e32\u0e08\u0e34\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19
-territories.TH=\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e44\u0e17\u0e22
+territories.TH=\u0e44\u0e17\u0e22
 territories.TG=\u0e42\u0e15\u0e42\u0e01
-territories.TF=\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15\u0e17\u0e32\u0e07\u0e43\u0e15\u0e49\u0e02\u0e2d\u0e07\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
-territories.GY=\u0e01\u0e32\u0e22\u0e32\u0e19\u0e32
+territories.TF=\u0e40\u0e1f\u0e23\u0e19\u0e0a\u0e4c\u0e40\u0e0b\u0e32\u0e40\u0e17\u0e34\u0e23\u0e4c\u0e19\u0e40\u0e17\u0e23\u0e4c\u0e23\u0e34\u0e17\u0e2d\u0e23\u0e35\u0e2a\u0e4c
+territories.GY=\u0e01\u0e32\u0e22\u0e2d\u0e32\u0e19\u0e32
 territories.TD=\u0e0a\u0e32\u0e14
 territories.TC=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e40\u0e15\u0e34\u0e01\u0e2a\u0e4c\u0e41\u0e25\u0e30\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e40\u0e04\u0e04\u0e2d\u0e2a
 territories.GW=\u0e01\u0e34\u0e19\u0e35-\u0e1a\u0e34\u0e2a\u0e40\u0e0b\u0e32
@@ -84,7 +338,7 @@ territories.GT=\u0e01\u0e31\u0e27\u0e40\u0e15\u0e21\u0e32\u0e25\u0e32
 territories.GS=\u0e40\u0e01\u0e32\u0e30\u0e40\u0e0b\u0e32\u0e17\u0e4c\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22\u0e41\u0e25\u0e30\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e40\u0e0b\u0e32\u0e17\u0e4c\u0e41\u0e0b\u0e19\u0e14\u0e4c\u0e27\u0e34\u0e0a
 territories.GR=\u0e01\u0e23\u0e35\u0e0b
 territories.GQ=\u0e2d\u0e34\u0e40\u0e04\u0e27\u0e17\u0e2d\u0e40\u0e23\u0e35\u0e22\u0e25\u0e01\u0e34\u0e19\u0e35
-territories.GP=\u0e01\u0e31\u0e27\u0e40\u0e14\u0e2d\u0e25\u0e39\u0e1b
+territories.GP=\u0e01\u0e27\u0e32\u0e40\u0e14\u0e2d\u0e25\u0e39\u0e1b
 territories.SZ=\u0e2a\u0e27\u0e32\u0e0b\u0e34\u0e41\u0e25\u0e19\u0e14\u0e4c
 territories.SY=\u0e0b\u0e35\u0e40\u0e23\u0e35\u0e22
 territories.GN=\u0e01\u0e34\u0e19\u0e35
@@ -92,22 +346,23 @@ territories.GM=\u0e41\u0e01\u0e21\u0e40\u0e1a\u0e35\u0e22
 territories.GL=\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c
 territories.SV=\u0e40\u0e2d\u0e25\u0e0b\u0e31\u0e25\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c
 territories.062=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e01\u0e25\u0e32\u0e07\u0e15\u0e2d\u0e19\u0e43\u0e15\u0e49
-territories.ST=\u0e40\u0e0b\u0e32\u0e42\u0e15\u0e40\u0e21\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e19\u0e0b\u0e34\u0e40\u0e1b
+territories.ST=\u0e40\u0e0b\u0e32\u0e15\u0e39\u0e40\u0e21\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e19\u0e0b\u0e34\u0e1b\u0e35
+territories.GI=\u0e22\u0e34\u0e1a\u0e23\u0e2d\u0e25\u0e15\u0e32
 territories.061=\u0e42\u0e1b\u0e25\u0e34\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
-territories.GI=\u0e22\u0e34\u0e1a\u0e23\u0e2d\u0e25\u0e15\u0e32\u0e23\u0e4c
-territories.GH=\u0e01\u0e32\u0e19\u0e48\u0e32
-territories.SR=\u0e2a\u0e38\u0e23\u0e34\u0e19\u0e31\u0e21
-territories.GF=\u0e40\u0e1f\u0e23\u0e19\u0e0a\u0e4c\u0e01\u0e35\u0e2d\u0e32\u0e19\u0e32
+territories.GH=\u0e01\u0e32\u0e19\u0e32
+territories.SR=\u0e0b\u0e39\u0e23\u0e34\u0e19\u0e32\u0e40\u0e21
+territories.GG=\u0e40\u0e01\u0e34\u0e23\u0e4c\u0e19\u0e0b\u0e35\u0e22\u0e4c
+territories.GF=\u0e40\u0e1f\u0e23\u0e19\u0e0a\u0e4c\u0e40\u0e01\u0e35\u0e22\u0e19\u0e32
 territories.GE=\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22
 territories.SO=\u0e42\u0e0b\u0e21\u0e32\u0e40\u0e25\u0e35\u0e22
-territories.GD=\u0e40\u0e01\u0e23\u0e19\u0e32\u0e14\u0e32
+territories.GD=\u0e40\u0e01\u0e23\u0e40\u0e19\u0e14\u0e32
 territories.SN=\u0e40\u0e0b\u0e40\u0e19\u0e01\u0e31\u0e25
 territories.SM=\u0e0b\u0e32\u0e19\u0e21\u0e32\u0e23\u0e35\u0e42\u0e19
 territories.GB=\u0e2a\u0e2b\u0e23\u0e32\u0e0a\u0e2d\u0e32\u0e13\u0e32\u0e08\u0e31\u0e01\u0e23
 territories.SL=\u0e40\u0e0b\u0e35\u0e22\u0e23\u0e4c\u0e23\u0e32\u0e25\u0e35\u0e42\u0e2d\u0e19
 territories.GA=\u0e01\u0e32\u0e1a\u0e2d\u0e07
-territories.SK=\u0e2a\u0e42\u0e25\u0e27\u0e32\u0e40\u0e01\u0e35\u0e22
-territories.SJ=\u0e2a\u0e1f\u0e32\u0e25\u0e1a\u0e32\u0e23\u0e4c\u0e41\u0e25\u0e30\u0e41\u0e08\u0e19\u0e21\u0e32\u0e40\u0e22\u0e19
+territories.SK=\u0e2a\u0e42\u0e25\u0e27\u0e30\u0e40\u0e01\u0e35\u0e22
+territories.SJ=\u0e2a\u0e1f\u0e32\u0e25\u0e1a\u0e32\u0e23\u0e4c\u0e41\u0e25\u0e30\u0e22\u0e32\u0e19\u0e44\u0e21\u0e40\u0e2d\u0e19
 territories.SI=\u0e2a\u0e42\u0e25\u0e27\u0e35\u0e40\u0e19\u0e35\u0e22
 territories.SH=\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e40\u0e2e\u0e40\u0e25\u0e19\u0e32
 territories.SG=\u0e2a\u0e34\u0e07\u0e04\u0e42\u0e1b\u0e23\u0e4c
@@ -117,40 +372,42 @@ territories.SC=\u0e40\u0e0b\u0e40\u0e0a\u0e25\u0e2a\u0e4c
 territories.SB=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e42\u0e0b\u0e42\u0e25\u0e21\u0e2d\u0e19
 territories.SA=\u0e0b\u0e32\u0e2d\u0e38\u0e14\u0e35\u0e2d\u0e32\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22
 territories.FR=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
-territories.057=\u0e44\u0e21\u0e42\u0e04\u0e23\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
-territories.FO=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e1f\u0e32\u0e42\u0e23
+territories.FO=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e41\u0e1f\u0e42\u0e23
+territories.057=\u0e40\u0e02\u0e15\u0e44\u0e21\u0e42\u0e04\u0e23\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
 territories.FM=\u0e44\u0e21\u0e42\u0e04\u0e23\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
 territories.RW=\u0e23\u0e27\u0e31\u0e19\u0e14\u0e32
 territories.054=\u0e40\u0e21\u0e25\u0e32\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
+territories.FK=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e1f\u0e2d\u0e25\u0e4c\u0e01\u0e41\u0e25\u0e19\u0e14\u0e4c
 territories.053=\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22\u0e41\u0e25\u0e30\u0e19\u0e34\u0e27\u0e0b\u0e35\u0e41\u0e25\u0e19\u0e14\u0e4c
-territories.FK=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e1f\u0e2d\u0e25\u0e4c\u0e04\u0e41\u0e25\u0e19\u0e14\u0e4c
 territories.RU=\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22
 territories.FJ=\u0e1f\u0e34\u0e08\u0e34
 territories.FI=\u0e1f\u0e34\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c
+territories.RS=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
 territories.RO=\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22
-territories.RE=\u0e40\u0e23\u0e2d\u0e39\u0e40\u0e19\u0e35\u0e22\u0e07
+territories.RE=\u0e40\u0e23\u0e2d\u0e39\u0e19\u0e35\u0e22\u0e07
 territories.ET=\u0e40\u0e2d\u0e18\u0e34\u0e42\u0e2d\u0e40\u0e1b\u0e35\u0e22
 territories.ES=\u0e2a\u0e40\u0e1b\u0e19
 territories.ER=\u0e40\u0e2d\u0e23\u0e34\u0e40\u0e17\u0e23\u0e35\u0e22
-territories.833=\u0e40\u0e01\u0e32\u0e30\u0e41\u0e21\u0e19
+territories.QU=\u0e2a\u0e2b\u0e20\u0e32\u0e1e\u0e22\u0e38\u0e42\u0e23\u0e1b
 territories.EH=\u0e0b\u0e32\u0e2e\u0e32\u0e23\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
 territories.EG=\u0e2d\u0e35\u0e22\u0e34\u0e1b\u0e15\u0e4c
-territories.830=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e41\u0e0a\u0e19\u0e40\u0e19\u0e25
 territories.EE=\u0e40\u0e2d\u0e2a\u0e42\u0e15\u0e40\u0e19\u0e35\u0e22
+territories.830=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e41\u0e0a\u0e19\u0e40\u0e19\u0e25
 territories.QO=\u0e40\u0e2d\u0e32\u0e15\u0e4c\u0e44\u0e25\u0e2d\u0e34\u0e07\u0e42\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e40\u0e19\u0e35\u0e22
 territories.EC=\u0e40\u0e2d\u0e01\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c
 territories.DZ=\u0e41\u0e2d\u0e25\u0e08\u0e35\u0e40\u0e23\u0e35\u0e22
 territories.QA=\u0e01\u0e32\u0e15\u0e32\u0e23\u0e4c
-territories.039=\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e43\u0e15\u0e49
+territories.039=\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e15\u0e2d\u0e19\u0e43\u0e15\u0e49
 territories.DO=\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e42\u0e14\u0e21\u0e34\u0e19\u0e34\u0e01\u0e31\u0e19
 territories.PY=\u0e1b\u0e32\u0e23\u0e32\u0e01\u0e27\u0e31\u0e22
-territories.035=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u0e40\u0e09\u0e35\u0e22\u0e07\u0e43\u0e15\u0e49
 territories.DM=\u0e42\u0e14\u0e21\u0e34\u0e19\u0e34\u0e01\u0e32
+territories.035=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u0e40\u0e09\u0e35\u0e22\u0e07\u0e43\u0e15\u0e49
 territories.PW=\u0e1b\u0e32\u0e40\u0e25\u0e32
+territories.034=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e2d\u0e19\u0e43\u0e15\u0e49
 territories.DK=\u0e40\u0e14\u0e19\u0e21\u0e32\u0e23\u0e4c\u0e01
 territories.DJ=\u0e08\u0e34\u0e1a\u0e39\u0e15\u0e35
 territories.PT=\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
-territories.PS=\u0e1b\u0e32\u0e40\u0e25\u0e0b\u0e15\u0e34\u0e40\u0e19\u0e35\u0e22\u0e19\u0e40\u0e17\u0e23\u0e4c\u0e23\u0e34\u0e17\u0e2d\u0e23\u0e35
+territories.PS=\u0e14\u0e34\u0e19\u0e41\u0e14\u0e19\u0e22\u0e36\u0e14\u0e04\u0e23\u0e2d\u0e07\u0e1b\u0e32\u0e40\u0e25\u0e2a\u0e44\u0e15\u0e19\u0e4c
 territories.030=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
 territories.PR=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e42\u0e15\u0e23\u0e34\u0e42\u0e01
 territories.DE=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e19\u0e35
@@ -160,71 +417,75 @@ territories.PL=\u0e42\u0e1b\u0e41\u0e25\u0e19\u0e14\u0e4c
 territories.PK=\u0e1b\u0e32\u0e01\u0e35\u0e2a\u0e16\u0e32\u0e19
 territories.PH=\u0e1f\u0e34\u0e25\u0e34\u0e1b\u0e1b\u0e34\u0e19\u0e2a\u0e4c
 territories.PG=\u0e1b\u0e32\u0e1b\u0e31\u0e27\u0e19\u0e34\u0e27\u0e01\u0e34\u0e19\u0e35
-territories.PF=\u0e40\u0e1f\u0e23\u0e19\u0e0a\u0e4c\u0e42\u0e1e\u0e25\u0e35\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
+territories.PF=\u0e40\u0e1f\u0e23\u0e19\u0e0a\u0e4c\u0e42\u0e1b\u0e25\u0e34\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
 territories.CZ=\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e40\u0e0a\u0e47\u0e01
 territories.PE=\u0e40\u0e1b\u0e23\u0e39
 territories.CY=\u0e44\u0e0b\u0e1b\u0e23\u0e31\u0e2a
-territories.CX=\u0e40\u0e01\u0e32\u0e30\u0e04\u0e23\u0e34\u0e2a\u0e21\u0e32\u0e2a\u0e15\u0e4c
+territories.CX=\u0e40\u0e01\u0e32\u0e30\u0e04\u0e23\u0e34\u0e2a\u0e15\u0e4c\u0e21\u0e32\u0e2a
 territories.CV=\u0e40\u0e04\u0e1b\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e14
 territories.PA=\u0e1b\u0e32\u0e19\u0e32\u0e21\u0e32
 territories.CU=\u0e04\u0e34\u0e27\u0e1a\u0e32
-territories.CS=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
+territories.CS=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22\u0e41\u0e25\u0e30\u0e21\u0e2d\u0e19\u0e40\u0e15\u0e40\u0e19\u0e42\u0e01\u0e23
 territories.CR=\u0e04\u0e2d\u0e2a\u0e15\u0e32\u0e23\u0e34\u0e01\u0e32
-territories.029=\u0e41\u0e04\u0e23\u0e34\u0e40\u0e1a\u0e35\u0e22\u0e19
-territories.CO=\u0e42\u0e04\u0e25\u0e31\u0e21\u0e40\u0e1a\u0e35\u0e22
+territories.029=\u0e41\u0e04\u0e23\u0e34\u0e1a\u0e40\u0e1a\u0e35\u0e22\u0e19
+territories.CO=\u0e42\u0e04\u0e25\u0e2d\u0e21\u0e40\u0e1a\u0e35\u0e22
 territories.CN=\u0e08\u0e35\u0e19
 territories.CM=\u0e41\u0e04\u0e40\u0e21\u0e2d\u0e23\u0e39\u0e19
 territories.CL=\u0e0a\u0e34\u0e25\u0e35
 territories.CK=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e04\u0e38\u0e01
-territories.CI=\u0e42\u0e01\u0e15\u0e14\u0e34\u0e27\u0e31\u0e27\u0e23\u0e4c
-territories.021=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e40\u0e2b\u0e19\u0e37\u0e2d
+territories.021=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e15\u0e2d\u0e19\u0e40\u0e2b\u0e19\u0e37\u0e2d
+territories.CI=\u0e44\u0e2d\u0e27\u0e2d\u0e23\u0e35\u0e48\u0e42\u0e04\u0e2a\u0e15\u0e4c
 territories.CH=\u0e2a\u0e27\u0e34\u0e15\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
 territories.CG=\u0e04\u0e2d\u0e07\u0e42\u0e01
 territories.CF=\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e01\u0e25\u0e32\u0e07
-territories.CD=\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e1b\u0e23\u0e30\u0e0a\u0e32\u0e18\u0e34\u0e1b\u0e44\u0e15\u0e22\u0e04\u0e2d\u0e07\u0e42\u0e01
-territories.CC=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e42\u0e04\u0e42\u0e04\u0e2a (\u0e04\u0e35\u0e25\u0e34\u0e07)
+territories.CD=\u0e04\u0e2d\u0e07\u0e42\u0e01-\u0e01\u0e34\u0e19\u0e0a\u0e32\u0e0b\u0e32
+territories.CC=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e42\u0e04\u0e42\u0e04\u0e2a
 territories.OM=\u0e42\u0e2d\u0e21\u0e32\u0e19
 territories.CA=\u0e41\u0e04\u0e19\u0e32\u0e14\u0e32
-territories.BZ=\u0e40\u0e1a\u0e25\u0e35\u0e0a
+territories.419=\u0e25\u0e30\u0e15\u0e34\u0e19\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e41\u0e25\u0e30\u0e41\u0e04\u0e23\u0e34\u0e1a\u0e40\u0e1a\u0e35\u0e22\u0e19
+territories.BZ=\u0e40\u0e1a\u0e25\u0e35\u0e0b
 territories.BY=\u0e40\u0e1a\u0e25\u0e32\u0e23\u0e38\u0e2a
 territories.BW=\u0e1a\u0e2d\u0e15\u0e2a\u0e27\u0e32\u0e19\u0e32
-territories.BV=\u0e40\u0e01\u0e32\u0e30\u0e1a\u0e39\u0e40\u0e27\u0e15\u0e4c
-territories.BT=\u0e20\u0e39\u0e10\u0e32\u0e19
+territories.BV=\u0e40\u0e01\u0e32\u0e30\u0e1a\u0e39\u0e40\u0e27\u0e15
+territories.BT=\u0e20\u0e39\u0e0f\u0e32\u0e19
 territories.BS=\u0e1a\u0e32\u0e2e\u0e32\u0e21\u0e32\u0e2a
 territories.BR=\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
 territories.019=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32
-territories.018=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49
+territories.018=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e2d\u0e19\u0e43\u0e15\u0e49
 territories.NZ=\u0e19\u0e34\u0e27\u0e0b\u0e35\u0e41\u0e25\u0e19\u0e14\u0e4c
-territories.BO=\u0e42\u0e1a\u0e25\u0e34\u0e40\u0e27\u0e35\u0e22
 territories.017=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e01\u0e25\u0e32\u0e07
+territories.BO=\u0e42\u0e1a\u0e25\u0e34\u0e40\u0e27\u0e35\u0e22
 territories.BN=\u0e1a\u0e23\u0e39\u0e44\u0e19
-territories.BM=\u0e40\u0e1a\u0e2d\u0e23\u0e4c\u0e21\u0e34\u0e27\u0e14\u0e49\u0e32
 territories.015=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e40\u0e2b\u0e19\u0e37\u0e2d
+territories.BM=\u0e40\u0e1a\u0e2d\u0e23\u0e4c\u0e21\u0e34\u0e27\u0e14\u0e32
 territories.014=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
+territories.BL=\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e1a\u0e32\u0e23\u0e4c\u0e40\u0e18\u0e40\u0e25\u0e21\u0e35
 territories.013=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e01\u0e25\u0e32\u0e07
-territories.NU=\u0e19\u0e35\u0e22\u0e39
+territories.NU=\u0e19\u0e35\u0e2d\u0e39\u0e40\u0e2d
 territories.BJ=\u0e40\u0e1a\u0e19\u0e34\u0e19
-territories.BI=\u0e1a\u0e38\u0e23\u0e38\u0e19\u0e14\u0e35
 territories.011=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+territories.BI=\u0e1a\u0e38\u0e23\u0e38\u0e19\u0e14\u0e35
+territories.172=\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e23\u0e31\u0e10\u0e2d\u0e34\u0e2a\u0e23\u0e30
 territories.BH=\u0e1a\u0e32\u0e2b\u0e4c\u0e40\u0e23\u0e19
 territories.NR=\u0e19\u0e32\u0e2d\u0e39\u0e23\u0e39
 territories.BG=\u0e1a\u0e31\u0e25\u0e41\u0e01\u0e40\u0e23\u0e35\u0e22
 territories.BF=\u0e1a\u0e39\u0e23\u0e4c\u0e01\u0e34\u0e19\u0e32\u0e1f\u0e32\u0e42\u0e0b
 territories.NP=\u0e40\u0e19\u0e1b\u0e32\u0e25
 territories.BE=\u0e40\u0e1a\u0e25\u0e40\u0e22\u0e35\u0e22\u0e21
+territories.ZZ=\u0e44\u0e21\u0e48\u0e17\u0e23\u0e32\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
 territories.NO=\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c
-territories.BD=\u0e1a\u0e31\u0e07\u0e04\u0e25\u0e32\u0e40\u0e17\u0e28
+territories.BD=\u0e1a\u0e31\u0e07\u0e01\u0e25\u0e32\u0e40\u0e17\u0e28
 territories.BB=\u0e1a\u0e32\u0e23\u0e4c\u0e40\u0e1a\u0e42\u0e14\u0e2a
-territories.ZW=\u0e0b\u0e34\u0e21\u0e1a\u0e32\u0e1a\u0e40\u0e27
+territories.ZW=\u0e0b\u0e34\u0e21\u0e1a\u0e31\u0e1a\u0e40\u0e27
 territories.NL=\u0e40\u0e19\u0e40\u0e18\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
 territories.BA=\u0e1a\u0e2d\u0e2a\u0e40\u0e19\u0e35\u0e22\u0e41\u0e25\u0e30\u0e40\u0e2e\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e42\u0e01\u0e27\u0e35\u0e19\u0e32
-territories.NI=\u0e19\u0e34\u0e04\u0e32\u0e23\u0e32\u0e01\u0e31\u0e27
+territories.NI=\u0e19\u0e34\u0e01\u0e32\u0e23\u0e32\u0e01\u0e31\u0e27
 territories.NG=\u0e44\u0e19\u0e08\u0e35\u0e40\u0e23\u0e35\u0e22
 territories.NF=\u0e40\u0e01\u0e32\u0e30\u0e19\u0e2d\u0e23\u0e4c\u0e1f\u0e2d\u0e25\u0e4c\u0e01
 territories.AZ=\u0e2d\u0e32\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e44\u0e1a\u0e08\u0e32\u0e19
 territories.NE=\u0e44\u0e19\u0e40\u0e08\u0e2d\u0e23\u0e4c
-territories.AX=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e2d\u0e41\u0e25\u0e19\u0e14\u0e4c
-territories.NC=\u0e19\u0e34\u0e27\u0e41\u0e04\u0e25\u0e35\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
+territories.AX=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e42\u0e2d\u0e25\u0e31\u0e19\u0e14\u0e4c
+territories.NC=\u0e19\u0e34\u0e27\u0e41\u0e04\u0e25\u0e34\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
 territories.AW=\u0e2d\u0e32\u0e23\u0e39\u0e1a\u0e32
 territories.ZM=\u0e41\u0e0b\u0e21\u0e40\u0e1a\u0e35\u0e22
 territories.NA=\u0e19\u0e32\u0e21\u0e34\u0e40\u0e1a\u0e35\u0e22
@@ -232,40 +493,43 @@ territories.AU=\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22
 territories.AT=\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e35\u0e22
 territories.AS=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e31\u0e19\u0e0b\u0e32\u0e21\u0e31\u0e27
 territories.AR=\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32
-territories.009=\u0e42\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e40\u0e19\u0e35\u0e22
 territories.AQ=\u0e41\u0e2d\u0e19\u0e15\u0e32\u0e23\u0e4c\u0e01\u0e15\u0e34\u0e01\u0e32
-territories.MZ=\u0e42\u0e21\u0e41\u0e0b\u0e21\u0e1a\u0e34\u0e04
+territories.009=\u0e42\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e40\u0e19\u0e35\u0e22
+territories.MZ=\u0e42\u0e21\u0e0b\u0e31\u0e21\u0e1a\u0e34\u0e01
 territories.AO=\u0e41\u0e2d\u0e07\u0e42\u0e01\u0e25\u0e32
 territories.MY=\u0e21\u0e32\u0e40\u0e25\u0e40\u0e0b\u0e35\u0e22
-territories.AN=\u0e40\u0e19\u0e40\u0e2e\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e41\u0e2d\u0e19\u0e17\u0e34\u0e25\u0e25\u0e34\u0e2a
+territories.AN=\u0e40\u0e19\u0e40\u0e18\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e41\u0e2d\u0e19\u0e17\u0e34\u0e25\u0e25\u0e34\u0e2a
 territories.MX=\u0e40\u0e21\u0e47\u0e01\u0e0b\u0e34\u0e42\u0e01
-territories.005=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49
 territories.AM=\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22
+territories.005=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49
 territories.MW=\u0e21\u0e32\u0e25\u0e32\u0e27\u0e35
 territories.AL=\u0e41\u0e2d\u0e25\u0e40\u0e1a\u0e40\u0e19\u0e35\u0e22
 territories.MV=\u0e21\u0e31\u0e25\u0e14\u0e35\u0e1f\u0e2a\u0e4c
+territories.003=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e40\u0e2b\u0e19\u0e37\u0e2d
 territories.ZA=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49
 territories.MU=\u0e21\u0e2d\u0e23\u0e34\u0e40\u0e0a\u0e35\u0e22\u0e2a
 territories.002=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32
 territories.MT=\u0e21\u0e2d\u0e25\u0e15\u0e32
+territories.AI=\u0e41\u0e2d\u0e07\u0e01\u0e27\u0e34\u0e25\u0e25\u0e32
 territories.001=\u0e42\u0e25\u0e01
-territories.AI=\u0e2d\u0e31\u0e19\u0e01\u0e34\u0e25\u0e48\u0e32
-territories.MS=\u0e21\u0e2d\u0e19\u0e15\u0e4c\u0e40\u0e0b\u0e23\u0e4c\u0e41\u0e23\u0e47\u0e15
+territories.MS=\u0e21\u0e2d\u0e19\u0e15\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e23\u0e31\u0e15
 territories.MR=\u0e21\u0e2d\u0e23\u0e34\u0e40\u0e15\u0e40\u0e19\u0e35\u0e22
 territories.AG=\u0e41\u0e2d\u0e19\u0e15\u0e34\u0e01\u0e32\u0e41\u0e25\u0e30\u0e1a\u0e32\u0e23\u0e4c\u0e1a\u0e39\u0e14\u0e32
 territories.MQ=\u0e21\u0e32\u0e23\u0e4c\u0e15\u0e34\u0e19\u0e35\u0e01
 territories.AF=\u0e2d\u0e31\u0e1f\u0e01\u0e32\u0e19\u0e34\u0e2a\u0e16\u0e32\u0e19
-territories.MP=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e19\u0e2d\u0e23\u0e4c\u0e17\u0e40\u0e17\u0e34\u0e23\u0e4c\u0e19\u0e21\u0e32\u0e40\u0e23\u0e35\u0e22\u0e19\u0e32
+territories.MP=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e17\u0e34\u0e23\u0e4c\u0e19\u0e21\u0e32\u0e40\u0e23\u0e35\u0e22\u0e19\u0e32
 territories.AE=\u0e2a\u0e2b\u0e23\u0e31\u0e10\u0e2d\u0e32\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e2d\u0e21\u0e34\u0e40\u0e23\u0e15\u0e2a\u0e4c
-territories.MO=\u0e21\u0e32\u0e40\u0e01\u0e4a\u0e32 \u0e40\u0e02\u0e15\u0e1b\u0e01\u0e04\u0e23\u0e2d\u0e07\u0e1e\u0e34\u0e40\u0e28\u0e29\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e08\u0e35\u0e19
+territories.MO=\u0e21\u0e32\u0e40\u0e01\u0e4a\u0e32
 territories.AD=\u0e2d\u0e31\u0e19\u0e14\u0e2d\u0e23\u0e4c\u0e23\u0e32
 territories.MN=\u0e21\u0e2d\u0e07\u0e42\u0e01\u0e40\u0e25\u0e35\u0e22
 territories.MM=\u0e1e\u0e21\u0e48\u0e32
 territories.ML=\u0e21\u0e32\u0e25\u0e35
 territories.MK=\u0e21\u0e32\u0e0b\u0e34\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
 territories.YT=\u0e21\u0e32\u0e22\u0e2d\u0e15
-territories.MH=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e21\u0e32\u0e23\u0e4c\u0e41\u0e0a\u0e25
+territories.MH=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e21\u0e32\u0e23\u0e4c\u0e41\u0e0a\u0e25\u0e25\u0e4c
 territories.MG=\u0e21\u0e32\u0e14\u0e32\u0e01\u0e31\u0e2a\u0e01\u0e32\u0e23\u0e4c
+territories.MF=\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e21\u0e32\u0e15\u0e34\u0e19
+territories.ME=\u0e21\u0e2d\u0e19\u0e40\u0e15\u0e40\u0e19\u0e42\u0e01\u0e23
 territories.MD=\u0e21\u0e2d\u0e25\u0e42\u0e14\u0e27\u0e32
 territories.MC=\u0e42\u0e21\u0e19\u0e32\u0e42\u0e01
 territories.MA=\u0e42\u0e21\u0e23\u0e47\u0e2d\u0e01\u0e42\u0e01
@@ -289,6 +553,7 @@ territories.KZ=\u0e04\u0e32\u0e0b\u0e31\u0e04\u0e2a\u0e16\u0e32\u0e19
 territories.KY=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e40\u0e04\u0e22\u0e4c\u0e41\u0e21\u0e19
 territories.KW=\u0e04\u0e39\u0e40\u0e27\u0e15
 territories.145=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+territories.143=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e01\u0e25\u0e32\u0e07
 territories.142=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
 territories.KR=\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35\u0e43\u0e15\u0e49
 territories.KP=\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35\u0e40\u0e2b\u0e19\u0e37\u0e2d
@@ -297,184 +562,556 @@ territories.KM=\u0e04\u0e2d\u0e42\u0e21\u0e42\u0e23\u0e2a
 territories.KI=\u0e04\u0e34\u0e23\u0e34\u0e1a\u0e32\u0e2a
 territories.WS=\u0e0b\u0e32\u0e21\u0e31\u0e27
 territories.KH=\u0e01\u0e31\u0e21\u0e1e\u0e39\u0e0a\u0e32
-territories.KG=\u0e04\u0e35\u0e23\u0e4c\u0e01\u0e34\u0e0b\u0e2a\u0e16\u0e32\u0e19
+territories.KG=\u0e04\u0e35\u0e23\u0e4c\u0e01\u0e35\u0e0b\u0e2a\u0e16\u0e32\u0e19
 territories.KE=\u0e40\u0e04\u0e19\u0e22\u0e32
 territories.WF=\u0e27\u0e32\u0e25\u0e25\u0e34\u0e2a\u0e41\u0e25\u0e30\u0e1f\u0e38\u0e15\u0e39\u0e19\u0e32
 territories.JP=\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19
 territories.JO=\u0e08\u0e2d\u0e23\u0e4c\u0e41\u0e14\u0e19
 territories.JM=\u0e08\u0e32\u0e40\u0e21\u0e01\u0e32
 territories.VU=\u0e27\u0e32\u0e19\u0e39\u0e2d\u0e32\u0e15\u0e39
+territories.JE=\u0e40\u0e08\u0e2d\u0e23\u0e4c\u0e0b\u0e35\u0e22\u0e4c
 territories.VN=\u0e40\u0e27\u0e35\u0e22\u0e14\u0e19\u0e32\u0e21
-territories.VI=\u0e22\u0e39\u0e40\u0e2d\u0e2a\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e08\u0e34\u0e19\u0e44\u0e2d\u0e2a\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
-territories.VG=\u0e1a\u0e23\u0e34\u0e17\u0e34\u0e0a\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e08\u0e34\u0e19\u0e44\u0e2d\u0e2a\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
+territories.VI=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e22\u0e39\u0e40\u0e2d\u0e2a\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e08\u0e34\u0e19
+territories.VG=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e1a\u0e23\u0e34\u0e15\u0e34\u0e0a\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e08\u0e34\u0e19
 territories.VE=\u0e40\u0e27\u0e40\u0e19\u0e0b\u0e38\u0e40\u0e2d\u0e25\u0e32
 territories.VC=\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e27\u0e34\u0e19\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e41\u0e25\u0e30\u0e40\u0e01\u0e23\u0e19\u0e32\u0e14\u0e35\u0e19\u0e2a\u0e4c
-territories.VA=\u0e27\u0e32\u0e15\u0e34\u0e01\u0e31\u0e19
+territories.VA=\u0e19\u0e04\u0e23\u0e23\u0e31\u0e10\u0e27\u0e32\u0e15\u0e34\u0e01\u0e31\u0e19
 territories.IT=\u0e2d\u0e34\u0e15\u0e32\u0e25\u0e35
 territories.IS=\u0e44\u0e2d\u0e0b\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
 territories.IR=\u0e2d\u0e34\u0e2b\u0e23\u0e48\u0e32\u0e19
 territories.IQ=\u0e2d\u0e34\u0e23\u0e31\u0e01
 territories.UZ=\u0e2d\u0e38\u0e0b\u0e40\u0e1a\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19
-territories.IO=\u0e1a\u0e23\u0e34\u0e15\u0e34\u0e2a\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u0e42\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e19\u0e40\u0e17\u0e23\u0e4c\u0e23\u0e34\u0e17\u0e2d\u0e23\u0e35
+territories.IO=\u0e1a\u0e23\u0e34\u0e15\u0e34\u0e0a\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u0e19\u0e42\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e19\u0e40\u0e17\u0e23\u0e4c\u0e23\u0e34\u0e17\u0e2d\u0e23\u0e35
 territories.UY=\u0e2d\u0e38\u0e23\u0e38\u0e01\u0e27\u0e31\u0e22
 territories.IN=\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22
+territories.IM=\u0e40\u0e01\u0e32\u0e30\u0e41\u0e21\u0e19
 territories.IL=\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25
 territories.US=\u0e2a\u0e2b\u0e23\u0e31\u0e10\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32
 territories.IE=\u0e44\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
 territories.ID=\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
 territories.UM=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e2a\u0e2b\u0e23\u0e31\u0e10\u0e44\u0e21\u0e40\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e2d\u0e32\u0e15\u0e4c\u0e44\u0e25\u0e2d\u0e34\u0e07
-territories.UG=\u0e2d\u0e39\u0e01\u0e32\u0e19\u0e14\u0e32
+territories.UG=\u0e22\u0e39\u0e01\u0e31\u0e19\u0e14\u0e32
 territories.UA=\u0e22\u0e39\u0e40\u0e04\u0e23\u0e19
 territories.HU=\u0e2e\u0e31\u0e07\u0e01\u0e32\u0e23\u0e35
 territories.HT=\u0e40\u0e2e\u0e15\u0e34
 territories.HR=\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
-territories.TZ=\u0e17\u0e32\u0e19\u0e0b\u0e32\u0e40\u0e19\u0e35\u0e22
+territories.TZ=\u0e41\u0e17\u0e19\u0e0b\u0e32\u0e40\u0e19\u0e35\u0e22
 territories.HN=\u0e2e\u0e2d\u0e19\u0e14\u0e39\u0e23\u0e31\u0e2a
-territories.HM=\u0e40\u0e01\u0e32\u0e30\u0e40\u0e2e\u0e34\u0e23\u0e4c\u0e14\u0e41\u0e25\u0e30\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e41\u0e21\u0e01\u0e14\u0e2d\u0e19\u0e31\u0e25\u0e14\u0e4c
+territories.HM=\u0e40\u0e01\u0e32\u0e30\u0e40\u0e2e\u0e34\u0e23\u0e4c\u0e14\u0e41\u0e25\u0e30\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e41\u0e21\u0e04\u0e42\u0e14\u0e19\u0e31\u0e25\u0e14\u0e4c
 territories.TW=\u0e44\u0e15\u0e49\u0e2b\u0e27\u0e31\u0e19
 territories.TV=\u0e15\u0e39\u0e27\u0e32\u0e25\u0e39
-territories.HK=\u0e2e\u0e48\u0e2d\u0e07\u0e01\u0e07 \u0e40\u0e02\u0e15\u0e1b\u0e01\u0e04\u0e23\u0e2d\u0e07\u0e1e\u0e34\u0e40\u0e28\u0e29\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e08\u0e35\u0e19
+territories.HK=\u0e2e\u0e48\u0e2d\u0e07\u0e01\u0e07
 territories.TT=\u0e15\u0e23\u0e34\u0e19\u0e34\u0e41\u0e14\u0e14\u0e41\u0e25\u0e30\u0e42\u0e15\u0e40\u0e1a\u0e42\u0e01
 territories.TR=\u0e15\u0e38\u0e23\u0e01\u0e35
 territories.TO=\u0e15\u0e2d\u0e07\u0e01\u0e32
 territories.TN=\u0e15\u0e39\u0e19\u0e34\u0e40\u0e0b\u0e35\u0e22
 territories.TM=\u0e40\u0e15\u0e34\u0e23\u0e4c\u0e01\u0e40\u0e21\u0e19\u0e34\u0e2a\u0e16\u0e32\u0e19
-languages.es=\u0e2a\u0e40\u0e1b\u0e19
-languages.ku=\u0e40\u0e04\u0e34\u0e14
-languages.eo=\u0e40\u0e2d\u0e2a\u0e40\u0e1b\u0e2d\u0e23\u0e31\u0e19\u0e42\u0e15
-languages.en=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29
-languages.ks=\u0e04\u0e31\u0e0a\u0e21\u0e35\u0e23\u0e35
-languages.el=\u0e01\u0e23\u0e35\u0e01
-languages.qu=\u0e04\u0e34\u0e27\u0e0a\u0e31\u0e27
-languages.ko=\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35
-languages.kn=\u0e01\u0e32\u0e19\u0e32\u0e14\u0e32
-languages.km=\u0e40\u0e02\u0e21\u0e23
-languages.kl=\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e14\u0e34\u0e04
-languages.kk=\u0e04\u0e32\u0e0b\u0e31\u0e04
-languages.wo=\u0e27\u0e39\u0e25\u0e2d\u0e1f
-languages.ka=\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22\u0e19
-languages.dz=\u0e20\u0e39\u0e10\u0e32\u0e19\u0e35
-languages.jv=\u0e0a\u0e27\u0e32
-languages.pt=\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
-languages.ps=\u0e1e\u0e32\u0e2a\u0e0a\u0e4c\u0e42\u0e15 (\u0e1e\u0e38\u0e2a\u0e0a\u0e4c\u0e42\u0e15)
-languages.de=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19
-languages.pl=\u0e42\u0e1b\u0e41\u0e25\u0e19\u0e14\u0e4c
-languages.da=\u0e40\u0e14\u0e19\u0e21\u0e32\u0e23\u0e4c\u0e01
-languages.vo=\u0e42\u0e27\u0e25\u0e32\u0e1e\u0e38\u0e01
-languages.ja=\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19
+languages.gwi=\u0e44\u0e01\u0e27\u0e0a\u0e34\u0e19
+languages.akk=\u0e2d\u0e31\u0e04\u0e04\u0e32\u0e40\u0e14\u0e35\u0e22
+languages.eka=\u0e2d\u0e35\u0e01\u0e32\u0e08\u0e31\u0e01
+languages.ijo=\u0e2d\u0e34\u0e42\u0e08
+languages.xh=\u0e42\u0e04\u0e0b\u0e32
+languages.sux=\u0e2a\u0e38\u0e40\u0e21\u0e40\u0e23\u0e35\u0e22
+languages.sus=\u0e0b\u0e39\u0e0b\u0e39
+languages.mis=\u0e20\u0e32\u0e29\u0e32\u0e40\u0e1a\u0e47\u0e14\u0e40\u0e15\u0e25\u0e47\u0e14
+languages.loz=\u0e42\u0e25\u0e0b\u0e34
+languages.tog=\u0e15\u0e2d\u0e07\u0e01\u0e32 - \u0e44\u0e19\u0e0b\u0e32
+languages.pon=\u0e42\u0e1e\u0e2e\u0e4c\u0e19\u0e40\u0e1e\u0e40\u0e2d\u0e35\u0e22\u0e19
+languages.min=\u0e21\u0e35\u0e19\u0e31\u0e07\u0e01\u0e32\u0e40\u0e1a\u0e32
+languages.suk=\u0e0b\u0e39\u0e04\u0e39\u0e21\u0e32
+languages.wo=\u0e42\u0e27\u0e25\u0e2d\u0e1f
+languages.lol=\u0e21\u0e2d\u0e07\u0e42\u0e01
+languages.kut=\u0e04\u0e39\u0e15\u0e19\u0e32
+languages.mic=\u0e21\u0e34\u0e01\u0e41\u0e21\u0e01
+languages.wa=\u0e27\u0e31\u0e25\u0e25\u0e39\u0e19
+languages.kum=\u0e04\u0e34\u0e21\u0e38\u0e01
+languages.zap=\u0e0b\u0e32\u0e42\u0e1b\u0e40\u0e17\u0e01
+languages.ain=\u0e44\u0e2d\u0e19\u0e38
+languages.cus=\u0e20\u0e32\u0e29\u0e32\u0e04\u0e39\u0e0a\u0e34\u0e17\u0e34\u0e01
+languages.jbo=\u0e42\u0e25\u0e0b\u0e1a\u0e31\u0e19
+languages.doi=\u0e42\u0e11\u0e04\u0e23\u0e35
+languages.vo=\u0e42\u0e27\u0e25\u0e32\u0e1b\u0e38\u0e01
+languages.oto=\u0e20\u0e32\u0e29\u0e32\u0e42\u0e2d\u0e42\u0e17\u0e40\u0e21\u0e35\u0e22\u0e19
 languages.vi=\u0e40\u0e27\u0e35\u0e22\u0e14\u0e19\u0e32\u0e21
-languages.cy=\u0e40\u0e27\u0e25\u0e2a\u0e4c
-languages.pa=\u0e1b\u0e31\u0e0d\u0e08\u0e32\u0e1b
-languages.cs=\u0e40\u0e0a\u0e47\u0e04
-languages.iu=\u0e44\u0e2d\u0e19\u0e38\u0e01\u0e15\u0e34\u0e15\u0e31\u0e17
-languages.co=\u0e04\u0e2d\u0e23\u0e4c\u0e0b\u0e34\u0e01\u0e32
-languages.it=\u0e2d\u0e34\u0e15\u0e32\u0e25\u0e35
-languages.is=\u0e44\u0e2d\u0e0b\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e14\u0e34\u0e04
-languages.uz=\u0e2d\u0e38\u0e2a\u0e40\u0e1a\u0e04
-languages.or=\u0e42\u0e2d\u0e23\u0e34\u0e22\u0e32
-languages.ik=\u0e44\u0e2d\u0e19\u0e39\u0e40\u0e1b\u0e35\u0e22\u0e01
-languages.ur=\u0e2d\u0e34\u0e23\u0e14\u0e39
-languages.om=\u0e42\u0e2d\u0e42\u0e23\u0e42\u0e21 (\u0e2d\u0e32\u0e1f\u0e32\u0e19)
-languages.ca=\u0e41\u0e04\u0e15\u0e32\u0e41\u0e25\u0e19
-languages.ie=\u0e2d\u0e34\u0e19\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07\u0e04\u0e4c
-languages.id=\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0a\u0e35\u0e22
+languages.vai=\u0e44\u0e27
+languages.rar=\u0e23\u0e32\u0e42\u0e23\u0e17\u0e47\u0e2d\u0e07\u0e01\u0e31\u0e19
+languages.ve=\u0e40\u0e27\u0e19\u0e14\u0e32
+languages.rap=\u0e23\u0e32\u0e1b\u0e32\u0e19\u0e38\u0e22
+languages.raj=\u0e23\u0e32\u0e0a\u0e2a\u0e16\u0e32\u0e19
+languages.ota=\u0e15\u0e38\u0e23\u0e01\u0e35\u0e2d\u0e2d\u0e15\u0e42\u0e14\u0e21\u0e31\u0e19
+languages.nzi=\u0e19\u0e0b\u0e34\u0e21\u0e32
+languages.nap=\u0e40\u0e19\u0e35\u0e22\u0e42\u0e1e\u0e25\u0e34\u0e41\u0e17\u0e19
+languages.uz=\u0e2d\u0e38\u0e0b\u0e40\u0e1a\u0e01
+languages.uga=\u0e22\u0e39\u0e01\u0e32\u0e23\u0e34\u0e15\u0e34\u0e01
+languages.tmh=\u0e17\u0e32\u0e21\u0e32\u0e40\u0e0a\u0e01
+languages.nai=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e31\u0e19\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u0e19\u0e40\u0e2b\u0e19\u0e37\u0e2d
+languages.nah=\u0e19\u0e32\u0e27\u0e32\u0e15\u0e25\u0e4c
+languages.ur=\u0e2d\u0e39\u0e23\u0e14\u0e39
+languages.fat=\u0e1f\u0e31\u0e19\u0e15\u0e34
 languages.uk=\u0e22\u0e39\u0e40\u0e04\u0e23\u0e19
-languages.ia=\u0e2d\u0e34\u0e19\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07\u0e01\u0e27\u0e32
-languages.oc=\u0e2d\u0e2d\u0e01\u0e0b\u0e34\u0e17\u0e31\u0e19
-languages.ug=\u0e2d\u0e38\u0e22\u0e01\u0e31\u0e27
-languages.hy=\u0e2d\u0e32\u0e23\u0e4c\u0e21\u0e35\u0e40\u0e19\u0e35\u0e22
-languages.br=\u0e1a\u0e23\u0e35\u0e17\u0e31\u0e19
-languages.hu=\u0e2e\u0e31\u0e07\u0e01\u0e32\u0e23\u0e35
-languages.bo=\u0e17\u0e34\u0e40\u0e1a\u0e15
-languages.bn=\u0e40\u0e1a\u0e19\u0e01\u0e32\u0e23\u0e35
-languages.hr=\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e17\u0e35\u0e22
-languages.bi=\u0e1a\u0e34\u0e2a\u0e25\u0e32\u0e21\u0e32
-languages.tw=\u0e17\u0e27\u0e35
-languages.bh=\u0e1a\u0e34\u0e2e\u0e32\u0e23\u0e35
-languages.bg=\u0e1a\u0e31\u0e25\u0e41\u0e01\u0e40\u0e23\u0e35\u0e22
-languages.tt=\u0e15\u0e32\u0e14
-languages.no=\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c
-languages.be=\u0e1a\u0e32\u0e22\u0e42\u0e25\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22
+languages.egy=\u0e2d\u0e35\u0e22\u0e34\u0e1b\u0e15\u0e4c\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.zxx=\u0e44\u0e21\u0e48\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e20\u0e32\u0e29\u0e32
+languages.ug=\u0e2d\u0e38\u0e22\u0e01\u0e39\u0e23\u0e4c
+languages.fan=\u0e1f\u0e2d\u0e07
+languages.ssa=\u0e20\u0e32\u0e29\u0e32\u0e19\u0e34\u0e42\u0e25-\u0e0b\u0e32\u0e2e\u0e32\u0e23\u0e31\u0e19
+languages.mga=\u0e44\u0e2d\u0e23\u0e34\u0e0a\u0e01\u0e25\u0e32\u0e07
+languages.bat=\u0e20\u0e32\u0e29\u0e32\u0e1a\u0e2d\u0e25\u0e15\u0e34\u0e01
+languages.nyo=\u0e44\u0e19\u0e42\u0e2d\u0e42\u0e23
+languages.bas=\u0e0a\u0e27\u0e32
+languages.nyn=\u0e44\u0e19\u0e2d\u0e31\u0e19\u0e42\u0e01\u0e25
+languages.nym=\u0e40\u0e19\u0e35\u0e22\u0e21\u0e40\u0e27\u0e0b\u0e35
+languages.gsw=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2a\u0e27\u0e34\u0e2a
+languages.hmn=\u0e21\u0e49\u0e07
+languages.ban=\u0e1a\u0e32\u0e2b\u0e25\u0e35
+languages.osa=\u0e42\u0e2d\u0e0b\u0e32\u0e40\u0e01
+languages.bal=\u0e1a\u0e32\u0e25\u0e39\u0e08\u0e34
+languages.ty=\u0e15\u0e32\u0e2e\u0e34\u0e15\u0e34
+languages.bai=\u0e20\u0e32\u0e29\u0e32\u0e40\u0e1a\u0e44\u0e21\u0e40\u0e25\u0e01
+languages.tw=\u0e17\u0e27\u0e34
+languages.srr=\u0e40\u0e0b\u0e2d\u0e40\u0e23\u0e2d\u0e23\u0e4c
+languages.tli=\u0e17\u0e25\u0e34\u0e07\u0e01\u0e34\u0e15
+languages.tlh=\u0e04\u0e25\u0e34\u0e07\u0e2d\u0e2d\u0e19
+languages.tt=\u0e15\u0e32\u0e15\u0e32\u0e23\u0e4c
 languages.ts=\u0e0b\u0e2d\u0e07\u0e01\u0e32
-languages.hi=\u0e2e\u0e34\u0e19\u0e14\u0e35
+languages.srn=\u0e0b\u0e23\u0e32\u0e19\u0e32\u0e19\u0e15\u0e2d\u0e07\u0e42\u0e01
+languages.bad=\u0e1a\u0e31\u0e19\u0e14\u0e32
 languages.tr=\u0e15\u0e38\u0e23\u0e01\u0e35
-languages.nl=\u0e2e\u0e2d\u0e25\u0e31\u0e19\u0e14\u0e32
-languages.zu=\u0e0b\u0e39\u0e25\u0e39
-languages.ba=\u0e1a\u0e32\u0e2a\u0e0a\u0e4c\u0e01\u0e35\u0e23\u0e4c
-languages.to=\u0e17\u0e2d\u0e07\u0e01\u0e49\u0e32
-languages.he=\u0e2e\u0e34\u0e1a\u0e23\u0e39
-languages.tn=\u0e40\u0e0b\u0e15\u0e2a\u0e27\u0e32\u0e19\u0e32
+languages.to=\u0e15\u0e2d\u0e07\u0e01\u0e32
+languages.tn=\u0e0b\u0e27\u0e32\u0e19\u0e32
 languages.tl=\u0e15\u0e32\u0e01\u0e32\u0e25\u0e47\u0e2d\u0e01
 languages.tk=\u0e40\u0e15\u0e34\u0e23\u0e4c\u0e01\u0e40\u0e21\u0e19
-languages.ha=\u0e42\u0e2e\u0e0b\u0e32
-languages.ne=\u0e40\u0e19\u0e1b\u0e32\u0e25
-languages.az=\u0e2d\u0e32\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e44\u0e1a\u0e08\u0e32\u0e19\u0e35
 languages.ti=\u0e17\u0e34\u0e01\u0e23\u0e34\u0e19\u0e22\u0e32
-languages.ay=\u0e44\u0e2d\u0e21\u0e32\u0e23\u0e32
 languages.th=\u0e44\u0e17\u0e22
-languages.tg=\u0e17\u0e32\u0e08\u0e34\u0e04
-languages.na=\u0e19\u0e2d\u0e23\u0e39
-languages.te=\u0e17\u0e34\u0e25\u0e39\u0e01\u0e39
-languages.zh=\u0e08\u0e35\u0e19
-languages.as=\u0e2d\u0e31\u0e2a\u0e2a\u0e31\u0e21\u0e21\u0e34\u0e2a
-languages.ar=\u0e2d\u0e32\u0e23\u0e32\u0e1a\u0e34\u0e04
+languages.kru=\u0e01\u0e39\u0e23\u0e31\u0e01\u0e2b\u0e4c
+languages.tg=\u0e17\u0e32\u0e08\u0e34\u0e01
+languages.byn=\u0e1a\u0e25\u0e34\u0e19
+languages.te=\u0e40\u0e15\u0e25\u0e39\u0e01\u0e39
+languages.kro=\u0e01\u0e23\u0e39
+languages.csb=\u0e04\u0e32\u0e0b\u0e39\u0e40\u0e1a\u0e35\u0e22\u0e19
 languages.ta=\u0e17\u0e21\u0e34\u0e2c
-languages.gu=\u0e01\u0e39\u0e08\u0e32\u0e23\u0e32\u0e15\u0e34
-languages.my=\u0e1e\u0e21\u0e48\u0e32
-languages.am=\u0e2d\u0e31\u0e21\u0e2e\u0e32\u0e23\u0e34\u0e04
-languages.za=\u0e08\u0e27\u0e07
-languages.mt=\u0e21\u0e2d\u0e25\u0e15\u0e32
-languages.ms=\u0e21\u0e25\u0e32\u0e22\u0e39
-languages.gn=\u0e01\u0e31\u0e27\u0e23\u0e32\u0e19\u0e35
-languages.sw=\u0e0b\u0e27\u0e32\u0e2e\u0e34\u0e23\u0e35
-languages.mr=\u0e21\u0e32\u0e23\u0e32\u0e17\u0e35
+languages.tkl=\u0e42\u0e15\u0e40\u0e01\u0e40\u0e25\u0e32
+languages.efi=\u0e40\u0e2d\u0e1f\u0e34\u0e01
+languages.sw=\u0e2a\u0e27\u0e32\u0e2e\u0e35\u0e25\u0e35
 languages.sv=\u0e2a\u0e27\u0e35\u0e40\u0e14\u0e19
-languages.gl=\u0e01\u0e30\u0e25\u0e35\u0e40\u0e0a\u0e35\u0e22
-languages.su=\u0e0b\u0e31\u0e19\u0e14\u0e32\u0e19\u0e35\u0e2a
-languages.af=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e31\u0e19
-languages.st=\u0e40\u0e0b\u0e42\u0e2a\u0e42\u0e17
-languages.mo=\u0e42\u0e21\u0e14\u0e32\u0e40\u0e27\u0e35\u0e22
-languages.ss=\u0e0b\u0e35\u0e2a\u0e27\u0e32\u0e15\u0e34
-languages.mn=\u0e21\u0e2d\u0e07\u0e42\u0e01\u0e25
+languages.su=\u0e0b\u0e38\u0e19\u0e14\u0e32
+languages.krc=\u0e04\u0e32\u0e23\u0e32\u0e40\u0e04-\u0e1a\u0e31\u0e25\u0e01\u0e32\u0e23\u0e4c
+languages.st=\u0e42\u0e0b\u0e42\u0e17\u0e43\u0e15\u0e49
+languages.ss=\u0e2a\u0e27\u0e32\u0e15\u0e34
 languages.sr=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
 languages.sq=\u0e41\u0e2d\u0e25\u0e40\u0e1a\u0e40\u0e19\u0e35\u0e22
-languages.ml=\u0e21\u0e32\u0e25\u0e32\u0e22\u0e32\u0e25\u0e31\u0e21
-languages.ab=\u0e41\u0e2d\u0e1a\u0e01\u0e32\u0e40\u0e0b\u0e35\u0e22
-languages.mk=\u0e41\u0e21\u0e0b\u0e35\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
-languages.aa=\u0e2d\u0e32\u0e1f\u0e32
+languages.men=\u0e40\u0e21\u0e19\u0e40\u0e14
+languages.crp=\u0e04\u0e23\u0e34\u0e42\u0e2d\u0e25\u0e2b\u0e23\u0e37\u0e2d\u0e1e\u0e34\u0e14\u0e08\u0e34\u0e19
 languages.so=\u0e42\u0e0b\u0e21\u0e32\u0e25\u0e35
-languages.sn=\u0e42\u0e0b\u0e19\u0e32
-languages.gd=\u0e2a\u0e01\u0e47\u0e2d\u0e15\u0e2a\u0e4c\u0e40\u0e01\u0e25\u0e34\u0e04
-languages.mi=\u0e40\u0e21\u0e32\u0e23\u0e35
+languages.afh=\u0e2d\u0e32\u0e1f\u0e23\u0e34\u0e2e\u0e34\u0e25\u0e34
+languages.sn=\u0e42\u0e0a\u0e19\u0e32
 languages.sm=\u0e0b\u0e32\u0e21\u0e31\u0e27
-languages.sl=\u0e2a\u0e42\u0e25\u0e40\u0e27\u0e40\u0e19\u0e35\u0e22
-languages.mg=\u0e21\u0e32\u0e25\u0e32\u0e01\u0e32\u0e0b\u0e35
-languages.sk=\u0e2a\u0e42\u0e25\u0e27\u0e31\u0e04
-languages.ga=\u0e44\u0e2d\u0e23\u0e34\u0e0a
-languages.yo=\u0e42\u0e22\u0e23\u0e39\u0e1a\u0e32
+languages.sl=\u0e2a\u0e42\u0e25\u0e27\u0e35\u0e40\u0e19\u0e35\u0e22
+languages.grc=\u0e01\u0e23\u0e35\u0e01\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.sk=\u0e2a\u0e42\u0e25\u0e27\u0e31\u0e01
+languages.grb=\u0e40\u0e01\u0e23\u0e42\u0e1a
 languages.si=\u0e2a\u0e34\u0e07\u0e2b\u0e25
-languages.sh=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e42\u0e1a-\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e17\u0e35\u0e22\u0e19
-languages.sg=\u0e2a\u0e31\u0e19\u0e42\u0e04
-languages.yi=\u0e22\u0e35\u0e14\u0e34\u0e0a
-languages.sd=\u0e0b\u0e34\u0e19\u0e14\u0e34
-languages.fy=\u0e1f\u0e23\u0e35\u0e2a\u0e41\u0e25\u0e19\u0e14\u0e4c
+languages.sh=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e42\u0e1a-\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
+languages.crh=\u0e15\u0e38\u0e23\u0e01\u0e35\u0e44\u0e04\u0e23\u0e40\u0e21\u0e35\u0e22
+languages.afa=\u0e20\u0e32\u0e29\u0e32\u0e41\u0e2d\u0e1f\u0e42\u0e23-\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e34\u0e01
+languages.sg=\u0e41\u0e0b\u0e07\u0e42\u0e01
+languages.se=\u0e0b\u0e32\u0e21\u0e34\u0e40\u0e2b\u0e19\u0e37\u0e2d
+languages.sd=\u0e2a\u0e34\u0e19\u0e18\u0e38
+languages.udm=\u0e2d\u0e38\u0e14\u0e21\u0e39\u0e23\u0e4c\u0e15
+languages.sc=\u0e0b\u0e32\u0e23\u0e4c\u0e14\u0e34\u0e40\u0e19\u0e35\u0e22
 languages.sa=\u0e2a\u0e31\u0e19\u0e2a\u0e01\u0e24\u0e15
-languages.fr=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
-languages.lv=\u0e41\u0e25\u0e15\u0e40\u0e27\u0e35\u0e22 (\u0e40\u0e25\u0e17\u0e17\u0e34\u0e2a\u0e0a\u0e4c)
-languages.fo=\u0e1f\u0e32\u0e42\u0e23\u0e2a
-languages.lt=\u0e25\u0e34\u0e18\u0e31\u0e27\u0e40\u0e19\u0e35\u0e22
-languages.rw=\u0e04\u0e34\u0e19\u0e22\u0e32\u0e27\u0e31\u0e19\u0e14\u0e32
+languages.rw=\u0e04\u0e34\u0e19\u0e22\u0e32\u0e23\u0e4c\u0e27\u0e31\u0e19\u0e14\u0e32
+languages.nwc=\u0e40\u0e19\u0e27\u0e32\u0e23\u0e34\u0e04\u0e25\u0e32\u0e2a\u0e2a\u0e34\u0e01
 languages.ru=\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22
-languages.fj=\u0e1f\u0e34\u0e08\u0e34
+languages.mdr=\u0e21\u0e32\u0e19\u0e14\u0e32\u0e23\u0e4c
+languages.ro=\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22
+languages.rn=\u0e23\u0e38\u0e19\u0e14\u0e35
+languages.rm=\u0e41\u0e23\u0e42\u0e15-\u0e23\u0e2d\u0e21 /\u0e20\u0e32\u0e29\u0e32\u0e42\u0e23\u0e21\u0e31\u0e19\u0e0b\u0e4c
+languages.fr_CH=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a\u0e2a\u0e27\u0e34\u0e2a
+languages.mdf=\u0e21\u0e2d\u0e04\u0e0a\u0e32
+languages.tiv=\u0e17\u0e34\u0e1f
+languages.ady=\u0e2d\u0e30\u0e14\u0e35\u0e40\u0e01
+languages.zun=\u0e0b\u0e39\u0e19\u0e34
+languages.kpe=\u0e01\u0e40\u0e1b\u0e25\u0e40\u0e25
+languages.qu=\u0e40\u0e01\u0e0a\u0e31\u0e27
+languages.tig=\u0e44\u0e17\u0e40\u0e01\u0e23
+languages.son=\u0e0b\u0e2d\u0e07\u0e44\u0e2e
+languages.cpp=\u0e40\u0e04\u0e23\u0e42\u0e2d\u0e40\u0e25\u0e2a\u0e41\u0e25\u0e30\u0e1e\u0e34\u0e14\u0e08\u0e34\u0e19\u0e17\u0e35\u0e48\u0e21\u0e32\u0e08\u0e32\u0e01\u0e20\u0e32\u0e29\u0e32\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
+languages.rup=\u0e2d\u0e30\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22\u0e19
+languages.sog=\u0e0b\u0e2d\u0e01\u0e40\u0e14\u0e35\u0e22
+languages.ada=\u0e2d\u0e32\u0e14\u0e32\u0e07\u0e21\u0e35
+languages.kos=\u0e01\u0e2d\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e35\u0e22\u0e19
+languages.hit=\u0e2e\u0e34\u0e15\u0e44\u0e15\u0e15\u0e4c
+languages.cpf=\u0e40\u0e04\u0e23\u0e42\u0e2d\u0e40\u0e25\u0e2a\u0e41\u0e25\u0e30\u0e1e\u0e34\u0e14\u0e08\u0e34\u0e19\u0e17\u0e35\u0e48\u0e21\u0e32\u0e08\u0e32\u0e01\u0e20\u0e32\u0e29\u0e32\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
+languages.cpe=\u0e04\u0e23\u0e34\u0e42\u0e2d\u0e25\u0e41\u0e25\u0e30\u0e1e\u0e34\u0e14\u0e08\u0e34\u0e19\u0e17\u0e35\u0e48\u0e21\u0e32\u0e08\u0e32\u0e01\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29\u0e2d\u0e37\u0e48\u0e19\u0e46
+languages.him=\u0e2b\u0e34\u0e21\u0e32\u0e08\u0e31\u0e25
+languages.kok=\u0e01\u0e2d\u0e19\u0e01\u0e32\u0e19\u0e35
+languages.hil=\u0e2e\u0e35\u0e25\u0e35\u0e44\u0e01\u0e19\u0e2d\u0e19
+languages.got=\u0e42\u0e01\u0e18\u0e34\u0e01
+languages.gor=\u0e01\u0e2d\u0e23\u0e2d\u0e19\u0e17\u0e32\u0e42\u0e25
+languages.gon=\u0e01\u0e2d\u0e19\u0e14\u0e4c
+languages.din=\u0e14\u0e34\u0e07\u0e01\u0e32
+languages.nub=\u0e20\u0e32\u0e29\u0e32\u0e19\u0e39\u0e40\u0e1a\u0e35\u0e22\u0e19
+languages.pt=\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
+languages.ps=\u0e1e\u0e32\u0e0a\u0e15\u0e39
+languages.fur=\u0e1f\u0e23\u0e39\u0e25\u0e32\u0e07
+languages.phn=\u0e1f\u0e34\u0e19\u0e34\u0e40\u0e0a\u0e35\u0e22\u0e19
+languages.de_CH=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2a\u0e39\u0e07\u0e2a\u0e27\u0e34\u0e2a
+languages.goh=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2a\u0e39\u0e07\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.snk=\u0e42\u0e0b\u0e19\u0e34\u0e07\u0e40\u0e01
+languages.cop=\u0e04\u0e2d\u0e1b\u0e15\u0e34\u0e01
+languages.yap=\u0e41\u0e22\u0e1b
+languages.ach=\u0e2d\u0e32\u0e42\u0e04\u0e25\u0e34
+languages.yao=\u0e22\u0e32\u0e42\u0e2d
+languages.phi=\u0e20\u0e32\u0e29\u0e32\u0e1f\u0e34\u0e25\u0e34\u0e1b\u0e1b\u0e34\u0e19
+languages.pl=\u0e42\u0e1b\u0e41\u0e25\u0e19\u0e14\u0e4c
+languages.ace=\u0e2d\u0e30\u0e40\u0e08\u0e30\u0e2b\u0e4c
+languages.pi=\u0e1a\u0e32\u0e25\u0e35
+languages.pt_PT=\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a\u0e44\u0e2d\u0e1a\u0e35\u0e40\u0e23\u0e35\u0e22
+languages.pa=\u0e1b\u0e31\u0e0d\u0e08\u0e32\u0e1a
+languages.bug=\u0e1a\u0e39\u0e01\u0e34\u0e2a
+languages.iba=\u0e2d\u0e34\u0e1a\u0e32\u0e19
+languages.sms=\u0e2a\u0e01\u0e2d\u0e25\u0e15\u0e0b\u0e32\u0e21\u0e34
+languages.bua=\u0e1a\u0e39\u0e23\u0e4c\u0e22\u0e31\u0e15
+languages.mas=\u0e21\u0e32\u0e44\u0e0b
+languages.smn=\u0e2d\u0e34\u0e19\u0e32\u0e23\u0e34\u0e0b\u0e32\u0e21\u0e34
+languages.os=\u0e2d\u0e2d\u0e2a\u0e40\u0e0b\u0e17\u0e34\u0e01
+languages.map=\u0e2d\u0e2d\u0e2a\u0e42\u0e15\u0e23\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e19
+languages.or=\u0e42\u0e2d\u0e23\u0e34\u0e22\u0e32
+languages.man=\u0e21\u0e31\u0e07\u0e14\u0e34\u0e07\u0e01\u0e32
+languages.smj=\u0e25\u0e39\u0e25\u0e0b\u0e32\u0e21\u0e34
+languages.smi=\u0e20\u0e32\u0e29\u0e32\u0e0b\u0e32\u0e21\u0e34
+languages.mak=\u0e21\u0e32\u0e01\u0e32\u0e0b\u0e32\u0e23\u0e4c
+languages.om=\u0e42\u0e2d\u0e23\u0e42\u0e23\u0e42\u0e21
+languages.mai=\u0e44\u0e21\u0e16\u0e34\u0e25\u0e35
+languages.oj=\u0e42\u0e2d\u0e08\u0e34\u0e1a\u0e27\u0e32
+languages.mag=\u0e21\u0e32\u0e01\u0e32\u0e2e\u0e34
+languages.mad=\u0e21\u0e32\u0e14\u0e39\u0e23\u0e32
+languages.sma=\u0e0b\u0e32\u0e21\u0e34\u0e43\u0e15\u0e49
+languages.oc=\u0e2d\u0e47\u0e2d\u0e01\u0e0b\u0e34\u0e15\u0e31\u0e19
+languages.nso=\u0e42\u0e0b\u0e42\u0e17\u0e40\u0e2b\u0e19\u0e37\u0e2d
+languages.btk=\u0e1a\u0e32\u0e15\u0e31\u0e01
+languages.myv=\u0e40\u0e2d\u0e34\u0e23\u0e4c\u0e2a\u0e22\u0e32
+languages.es_ES=\u0e2a\u0e40\u0e1b\u0e19\u0e44\u0e2d\u0e1a\u0e35\u0e40\u0e23\u0e35\u0e22
+languages.de_AT=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19 - \u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e35\u0e22
+languages.dgr=\u0e14\u0e2d\u0e08\u0e23\u0e34\u0e1a
+languages.ny=\u0e40\u0e19\u0e35\u0e22\u0e19\u0e08\u0e32
+languages.myn=\u0e20\u0e32\u0e29\u0e32\u0e21\u0e32\u0e22\u0e32
+languages.nv=\u0e19\u0e32\u0e27\u0e32\u0e42\u0e2e
+languages.kmb=\u0e04\u0e34\u0e21\u0e1a\u0e38\u0e19\u0e14\u0e39
+languages.nr=\u0e19\u0e40\u0e14\u0e40\u0e1a\u0e40\u0e25\u0e43\u0e15\u0e49
+languages.gmh=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2a\u0e39\u0e07\u0e01\u0e25\u0e32\u0e07
+languages.no=\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c
+languages.nn=\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c\u0e44\u0e19\u0e19\u0e2d\u0e23\u0e2a\u0e31\u0e01
+languages.nl=\u0e14\u0e31\u0e15\u0e0a\u0e4c
+languages.root=\u0e23\u0e39\u0e17
+languages.ng=\u0e14\u0e2d\u0e07\u0e01\u0e32
+languages.sla=\u0e20\u0e32\u0e29\u0e32\u0e2a\u0e25\u0e32\u0e27\u0e34\u0e01
+languages.ne=\u0e40\u0e19\u0e1b\u0e32\u0e25
+languages.nd=\u0e19\u0e40\u0e14\u0e40\u0e1a\u0e40\u0e25\u0e40\u0e2b\u0e19\u0e37\u0e2d
+languages.cmc=\u0e20\u0e32\u0e29\u0e32\u0e0a\u0e32\u0e21\u0e34\u0e01
+languages.tet=\u0e40\u0e15\u0e15\u0e38\u0e21
+languages.nb=\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c\u0e1a\u0e38\u0e4a\u0e01\u0e42\u0e21\u0e25
+languages.na=\u0e19\u0e32\u0e2d\u0e39\u0e23\u0e39
+languages.ter=\u0e40\u0e17\u0e40\u0e23\u0e42\u0e19
+languages.tem=\u0e17\u0e34\u0e21\u0e40\u0e19
+languages.my=\u0e1e\u0e21\u0e48\u0e32
+languages.lez=\u0e40\u0e25\u0e0b\u0e40\u0e01\u0e35\u0e22\u0e19
+languages.mt=\u0e21\u0e2d\u0e25\u0e15\u0e32
+languages.frs=\u0e1f\u0e23\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
+languages.peo=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e35\u0e22\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.ms=\u0e21\u0e32\u0e40\u0e25\u0e22\u0e4c
+languages.frr=\u0e1f\u0e23\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e40\u0e2b\u0e19\u0e37\u0e2d
+languages.mr=\u0e21\u0e23\u0e32\u0e10\u0e35
+languages.fro=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.mo=\u0e21\u0e2d\u0e25\u0e42\u0e14\u0e27\u0e32
+languages.mn=\u0e21\u0e2d\u0e07\u0e42\u0e01\u0e40\u0e25\u0e35\u0e22
+languages.frm=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a\u0e01\u0e25\u0e32\u0e07
+languages.ml=\u0e21\u0e32\u0e25\u0e32\u0e22\u0e32\u0e25\u0e31\u0e21
+languages.jrb=\u0e22\u0e34\u0e27-\u0e2d\u0e32\u0e2b\u0e23\u0e31\u0e1a
+languages.mk=\u0e21\u0e32\u0e0b\u0e34\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
+languages.mi=\u0e40\u0e21\u0e32\u0e23\u0e35
+languages.mh=\u0e21\u0e32\u0e23\u0e4c\u0e41\u0e0a\u0e25\u0e25\u0e34\u0e2a
+languages.mg=\u0e21\u0e32\u0e25\u0e32\u0e01\u0e32\u0e0b\u0e35
+languages.nqo=\u0e40\u0e2d\u0e47\u0e19\u0e42\u0e01
+languages.mwr=\u0e21\u0e32\u0e23\u0e4c\u0e27\u0e32\u0e23\u0e35
+languages.bra=\u0e1a\u0e23\u0e32\u0e08
+languages.mwl=\u0e21\u0e34\u0e23\u0e31\u0e19\u0e14\u0e35\u0e2a
+languages.den=\u0e2a\u0e25\u0e32\u0e1f
+languages.lv=\u0e25\u0e31\u0e15\u0e40\u0e27\u0e35\u0e22
+languages.lu=\u0e25\u0e39\u0e1a\u0e32-\u0e01\u0e32\u0e15\u0e2d\u0e07\u0e01\u0e32
+languages.del=\u0e40\u0e14\u0e25\u0e32\u0e41\u0e27\u0e23\u0e4c
+languages.lt=\u0e25\u0e34\u0e17\u0e31\u0e27\u0e40\u0e19\u0e35\u0e22
 languages.lo=\u0e25\u0e32\u0e27
-languages.fi=\u0e1f\u0e34\u0e19
 languages.ln=\u0e25\u0e34\u0e07\u0e01\u0e32\u0e25\u0e32
-languages.ro=\u0e42\u0e23\u0e21\u0e31\u0e19
-languages.rn=\u0e04\u0e34\u0e23\u0e31\u0e19\u0e14\u0e35
-languages.rm=\u0e40\u0e23\u0e42\u0e15-\u0e42\u0e23\u0e41\u0e21\u0e19\u0e0b\u0e4c
-languages.fa=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e35\u0e22
+languages.li=\u0e25\u0e34\u0e21\u0e40\u0e1a\u0e34\u0e23\u0e4c\u0e01
+languages.ewo=\u0e2d\u0e35\u0e27\u0e31\u0e19\u0e42\u0e14
+languages.lg=\u0e01\u0e31\u0e19\u0e14\u0e32
+languages.lb=\u0e25\u0e31\u0e01\u0e40\u0e0b\u0e21\u0e40\u0e1a\u0e34\u0e23\u0e4c\u0e01
 languages.la=\u0e25\u0e30\u0e15\u0e34\u0e19
-languages.xh=\u0e42\u0e0b\u0e2a\u0e32
-languages.eu=\u0e41\u0e1a\u0e2a\u0e01\u0e4c
+languages.jpr=\u0e22\u0e34\u0e27-\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e35\u0e22
+languages.vot=\u0e42\u0e27\u0e17\u0e34\u0e01
+languages.sit=\u0e20\u0e32\u0e29\u0e32\u0e0b\u0e34\u0e42\u0e19-\u0e17\u0e34\u0e40\u0e1a\u0e15\u0e31\u0e19
+languages.ky=\u0e04\u0e35\u0e23\u0e4c\u0e01\u0e35\u0e0b
+languages.kw=\u0e04\u0e2d\u0e23\u0e4c\u0e19\u0e34\u0e0a
+languages.kv=\u0e42\u0e01\u0e21\u0e34
+languages.ku=\u0e40\u0e04\u0e34\u0e23\u0e4c\u0e14
+languages.sio=\u0e20\u0e32\u0e29\u0e32\u0e0b\u0e34\u0e2d\u0e27\u0e19
+languages.ks=\u0e41\u0e04\u0e0a\u0e40\u0e21\u0e35\u0e22\u0e23\u0e4c
+languages.kr=\u0e04\u0e32\u0e19\u0e39\u0e23\u0e35
+languages.awa=\u0e2d\u0e27\u0e18\u0e35
+languages.ko=\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35
+languages.kn=\u0e01\u0e31\u0e19\u0e19\u0e32\u0e14\u0e32
+languages.km=\u0e40\u0e02\u0e21\u0e23
+languages.en_GB=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29 - \u0e2a\u0e2b\u0e23\u0e32\u0e0a\u0e2d\u0e32\u0e13\u0e32\u0e08\u0e31\u0e01\u0e23
+languages.kl=\u0e01\u0e30\u0e25\u0e32\u0e25\u0e25\u0e34\u0e0b\u0e38\u0e15
+languages.kk=\u0e04\u0e32\u0e0b\u0e31\u0e04
+languages.rom=\u0e42\u0e23\u0e21\u0e32\u0e19\u0e35
+languages.kj=\u0e01\u0e27\u0e19\u0e22\u0e32\u0e21\u0e32
+languages.sid=\u0e0b\u0e35\u0e14\u0e32\u0e42\u0e21
+languages.ki=\u0e01\u0e34\u0e04\u0e39\u0e22\u0e39
+languages.kg=\u0e04\u0e2d\u0e07\u0e42\u0e01
+languages.non=\u0e19\u0e2d\u0e23\u0e4c\u0e2a\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.ka=\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22
+languages.mus=\u0e04\u0e23\u0e35\u0e01
+languages.roa=\u0e20\u0e32\u0e29\u0e32\u0e42\u0e23\u0e21\u0e32\u0e19\u0e0b\u0e4c
+languages.nog=\u0e42\u0e19\u0e44\u0e01
+languages.mun=\u0e20\u0e32\u0e29\u0e32\u0e21\u0e31\u0e19\u0e14\u0e32
+languages.mul=\u0e2b\u0e25\u0e32\u0e22\u0e20\u0e32\u0e29\u0e32
+languages.jv=\u0e0a\u0e27\u0e32
+languages.gil=\u0e04\u0e34\u0e23\u0e34\u0e1a\u0e32\u0e15\u0e34
+languages.znd=\u0e0b\u0e31\u0e19\u0e40\u0e14
+languages.shn=\u0e44\u0e17\u0e43\u0e2b\u0e0d\u0e48
+languages.fon=\u0e1f\u0e2d\u0e19
+languages.xal=\u0e01\u0e32\u0e25\u0e21\u0e34\u0e01
+languages.aus=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22
+languages.kho=\u0e40\u0e04\u0e32\u0e40\u0e17\u0e19\u0e34\u0e2a
+languages.ja=\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19
+languages.khi=\u0e20\u0e32\u0e29\u0e32\u0e04\u0e2d\u0e22\u0e2a\u0e31\u0e19
+languages.pau=\u0e1e\u0e32\u0e25\u0e32\u0e2d\u0e27\u0e19
+languages.chy=\u0e40\u0e0a\u0e40\u0e22\u0e19
+languages.tai=\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17
+languages.iu=\u0e2d\u0e34\u0e19\u0e38\u0e01\u0e15\u0e34\u0e15\u0e38\u0e15
+languages.pap=\u0e1e\u0e32\u0e40\u0e1e\u0e35\u0e22\u0e40\u0e21\u0e19\u0e42\u0e17
+languages.it=\u0e2d\u0e34\u0e15\u0e32\u0e25\u0e35
+languages.sgn=\u0e20\u0e32\u0e29\u0e32\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c
+languages.is=\u0e44\u0e2d\u0e0b\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
+languages.kha=\u0e01\u0e32\u0e2a\u0e35
+languages.chr=\u0e40\u0e0a\u0e2d\u0e42\u0e23\u0e01\u0e35
+languages.pam=\u0e1b\u0e31\u0e21\u0e1b\u0e32\u0e07\u0e31\u0e19
+languages.pal=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e35\u0e22\u0e01\u0e25\u0e32\u0e07
+languages.chp=\u0e0a\u0e34\u0e40\u0e1e\u0e27\u0e22\u0e31\u0e19
+languages.io=\u0e2d\u0e34\u0e14\u0e2d
+languages.cho=\u0e0a\u0e2d\u0e01\u0e17\u0e32\u0e27
+languages.chn=\u0e0a\u0e34\u0e19\u0e38\u0e04\u0e08\u0e32\u0e23\u0e4c\u0e01\u0e2d\u0e19
+languages.chm=\u0e21\u0e32\u0e23\u0e34
+languages.tyv=\u0e15\u0e39\u0e27\u0e31\u0e19
+languages.bnt=\u0e1a\u0e31\u0e19\u0e15\u0e39
+languages.pag=\u0e1b\u0e31\u0e07\u0e01\u0e32\u0e0b\u0e35\u0e19\u0e31\u0e19
+languages.ik=\u0e2d\u0e35\u0e19\u0e39\u0e40\u0e1e\u0e35\u0e22\u0e01
+languages.chk=\u0e0a\u0e39\u0e01\u0e34\u0e2a
+languages.ii=\u0e22\u0e34\u0e40\u0e2a\u0e09\u0e27\u0e19
+languages.haw=\u0e2e\u0e32\u0e27\u0e32\u0e22
+languages.lam=\u0e41\u0e25\u0e21\u0e1a\u0e32
+languages.ig=\u0e2d\u0e34\u0e01\u0e42\u0e1a
+languages.chg=\u0e0c\u0e32\u0e06\u0e32\u0e44\u0e15\u0e22
+languages.sga=\u0e44\u0e2d\u0e23\u0e34\u0e0a\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.paa=\u0e20\u0e32\u0e29\u0e32\u0e1b\u0e32\u0e1b\u0e27\u0e19
+languages.ie=\u0e2d\u0e34\u0e19\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07\u0e01\u0e4c
+languages.id=\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0a\u0e35\u0e22
+languages.lah=\u0e25\u0e32\u0e2e\u0e4c\u0e19\u0e14\u0e32
+languages.day=\u0e14\u0e32\u0e22\u0e31\u0e01
+languages.chb=\u0e0a\u0e34\u0e1a\u0e0a\u0e32
+languages.ia=\u0e2d\u0e34\u0e19\u0e40\u0e17\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07\u0e01\u0e27\u0e32
+languages.lad=\u0e25\u0e32\u0e14\u0e34\u0e42\u0e19
+languages.hz=\u0e40\u0e2e\u0e40\u0e23\u0e42\u0e23
+languages.hai=\u0e44\u0e2e\u0e14\u0e32
+languages.dar=\u0e14\u0e32\u0e23\u0e4c\u0e08\u0e27\u0e32
+languages.hy=\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22
+languages.ath=\u0e20\u0e32\u0e29\u0e32\u0e41\u0e2d\u0e18\u0e32\u0e41\u0e1e\u0e2a\u0e01\u0e31\u0e19
+languages.hu=\u0e2e\u0e31\u0e07\u0e01\u0e32\u0e23\u0e35
+languages.ht=\u0e40\u0e2e\u0e15\u0e34
+languages.dak=\u0e14\u0e32\u0e42\u0e01\u0e17\u0e32
+languages.hr=\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
+languages.ho=\u0e2e\u0e34\u0e23\u0e34\u0e42\u0e21\u0e17\u0e38
+languages.hi=\u0e2e\u0e34\u0e19\u0e14\u0e35
+languages.dyu=\u0e14\u0e34\u0e27\u0e25\u0e32
+languages.he=\u0e2e\u0e34\u0e1a\u0e23\u0e39
+languages.ast=\u0e2d\u0e31\u0e2a\u0e15\u0e39\u0e40\u0e23\u0e35\u0e22\u0e2a
+languages.kfo=\u0e42\u0e04\u0e42\u0e23
+languages.ha=\u0e40\u0e2e\u0e32\u0e0b\u0e32
+languages.wen=\u0e20\u0e32\u0e29\u0e32\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
+languages.gv=\u0e21\u0e32\u0e19\u0e0b\u0e4c
+languages.gu=\u0e04\u0e38\u0e0a\u0e23\u0e32\u0e15
+languages.sem=\u0e20\u0e32\u0e29\u0e32\u0e40\u0e0b\u0e21\u0e34\u0e15\u0e34\u0e01
+languages.sel=\u0e40\u0e0b\u0e25\u0e01\u0e31\u0e1e
+languages.iro=\u0e20\u0e32\u0e29\u0e32\u0e44\u0e2d\u0e23\u0e32\u0e40\u0e01\u0e27\u0e35\u0e22\u0e19
+languages.gn=\u0e01\u0e27\u0e32\u0e23\u0e32\u0e19\u0e35
+languages.gl=\u0e01\u0e32\u0e25\u0e34\u0e40\u0e0b\u0e35\u0e22
+languages.en_CA=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29 - \u0e41\u0e04\u0e19\u0e32\u0e14\u0e32
+languages.arw=\u0e2d\u0e32\u0e23\u0e32\u0e27\u0e31\u0e01
+languages.gez=\u0e01\u0e35\u0e0b
+languages.art=\u0e20\u0e32\u0e29\u0e32\u0e1b\u0e23\u0e30\u0e14\u0e34\u0e29\u0e10\u0e4c
+languages.gd=\u0e40\u0e01\u0e25\u0e2d\u0e34\u0e01\u0e2a\u0e01\u0e2d\u0e15\u0e41\u0e25\u0e19\u0e14\u0e4c
+languages.ira=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e34\u0e2b\u0e23\u0e48\u0e32\u0e19
+languages.ga=\u0e44\u0e2d\u0e23\u0e34\u0e0a
+languages.arp=\u0e2d\u0e32\u0e23\u0e32\u0e1e\u0e32\u0e42\u0e2e
+languages.arn=\u0e2d\u0e32\u0e40\u0e23\u0e32\u0e01\u0e32\u0e40\u0e19\u0e35\u0e22
+languages.fy=\u0e1f\u0e23\u0e34\u0e40\u0e0b\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+languages.bla=\u0e2a\u0e34\u0e01\u0e2a\u0e34\u0e01\u0e32
+languages.gem=\u0e20\u0e32\u0e29\u0e32\u0e40\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e21\u0e19\u0e34\u0e01
+languages.ypk=\u0e20\u0e32\u0e29\u0e32\u0e22\u0e39\u0e1e\u0e34\u0e01
+languages.arc=\u0e2d\u0e23\u0e32\u0e40\u0e21\u0e2d\u0e34\u0e01
+languages.fr=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
+languages.fo=\u0e41\u0e1f\u0e42\u0e23
+languages.cel=\u0e40\u0e0b\u0e25\u0e15\u0e34\u0e01
+languages.fj=\u0e1f\u0e34\u0e08\u0e34
+languages.fi=\u0e1f\u0e34\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c
+languages.ff=\u0e1f\u0e39\u0e25\u0e32\u0e2e\u0e4c
+languages.tvl=\u0e15\u0e39\u0e27\u0e32\u0e25\u0e39
+languages.ceb=\u0e40\u0e0b\u0e1a\u0e39
+languages.fa=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e35\u0e22
+languages.en_AU=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29 - \u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22
+languages.zh_Hans=\u0e08\u0e35\u0e19\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c
+languages.zh_Hant=\u0e08\u0e35\u0e19\u0e14\u0e31\u0e49\u0e07\u0e40\u0e14\u0e34\u0e21
+languages.eu=\u0e1a\u0e32\u0e2a\u0e01\u0e4c
+languages.sco=\u0e2a\u0e01\u0e2d\u0e15\u0e2a\u0e4c
 languages.et=\u0e40\u0e2d\u0e2a\u0e42\u0e15\u0e40\u0e19\u0e35\u0e22
-languages.ky=\u0e40\u0e04\u0e2d\u0e23\u0e4c\u0e01\u0e34\u0e0b
+languages.scn=\u0e0b\u0e34\u0e0b\u0e34\u0e25\u0e35
+languages.es=\u0e2a\u0e40\u0e1b\u0e19
+languages.eo=\u0e40\u0e2d\u0e2a\u0e40\u0e1b\u0e2d\u0e23\u0e31\u0e19\u0e42\u0e15
+languages.en=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29
+languages.el=\u0e01\u0e23\u0e35\u0e01
+languages.tut=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e31\u0e25\u0e15\u0e32\u0e2d\u0e34\u0e01
+languages.niu=\u0e44\u0e19\u0e2d\u0e35\u0e19
+languages.tup=\u0e20\u0e32\u0e29\u0e32\u0e17\u0e38\u0e1e\u0e34
+languages.ee=\u0e40\u0e2d\u0e40\u0e27
+languages.tum=\u0e17\u0e39\u0e21\u0e1a\u0e39\u0e01\u0e32
+languages.nl_BE=\u0e40\u0e1f\u0e25\u0e21\u0e34\u0e0a
+languages.es_419=\u0e2a\u0e40\u0e1b\u0e19\u0e25\u0e30\u0e15\u0e34\u0e19\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32
+languages.mos=\u0e21\u0e2d\u0e2a\u0e2a\u0e34
+languages.dz=\u0e0b\u0e2d\u0e07\u0e04\u0e32
+languages.nic=\u0e20\u0e32\u0e29\u0e32\u0e44\u0e19\u0e40\u0e08\u0e2d\u0e23\u0e4c-\u0e01\u0e2d\u0e23\u0e4c\u0e42\u0e14\u0e1f\u0e32\u0e40\u0e19\u0e35\u0e22\u0e19
+languages.lus=\u0e25\u0e39\u0e44\u0e0a
+languages.fiu=\u0e20\u0e32\u0e29\u0e32\u0e1f\u0e34\u0e19\u0e42\u0e19-\u0e2d\u0e31\u0e01\u0e40\u0e23\u0e35\u0e22\u0e19
+languages.dv=\u0e14\u0e34\u0e40\u0e27\u0e2e\u0e34
+languages.nia=\u0e44\u0e19\u0e41\u0e2d\u0e2a
+languages.moh=\u0e42\u0e21\u0e2e\u0e2d\u0e27\u0e4c\u0e01
+languages.luo=\u0e25\u0e31\u0e27
+languages.lun=\u0e25\u0e31\u0e19\u0e14\u0e32
+languages.apa=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e32\u0e1b\u0e32\u0e40\u0e0a\u0e48
+languages.fil=\u0e1f\u0e34\u0e25\u0e34\u0e1b\u0e34\u0e42\u0e19
+languages.lui=\u0e25\u0e38\u0e22\u0e40\u0e0b\u0e42\u0e19
+languages.hup=\u0e2e\u0e39\u0e1e\u0e32
+languages.bin=\u0e1a\u0e34\u0e19\u0e35
+languages.de=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19
+languages.lua=\u0e25\u0e39\u0e1a\u0e32-\u0e25\u0e39\u0e25\u0e31\u0e27
+languages.bik=\u0e1a\u0e34\u0e42\u0e01\u0e25
+languages.was=\u0e27\u0e32\u0e42\u0e0a
+languages.und=\u0e44\u0e21\u0e48\u0e17\u0e23\u0e32\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
+languages.war=\u0e27\u0e32\u0e44\u0e23
+languages.da=\u0e40\u0e14\u0e19\u0e21\u0e32\u0e23\u0e4c\u0e01
+languages.dum=\u0e14\u0e31\u0e15\u0e0a\u0e4c\u0e01\u0e25\u0e32\u0e07
+languages.wal=\u0e27\u0e32\u0e25\u0e32\u0e42\u0e21
+languages.mno=\u0e20\u0e32\u0e29\u0e32\u0e21\u0e32\u0e42\u0e19\u0e42\u0e1a
+languages.wak=\u0e20\u0e32\u0e29\u0e32\u0e27\u0e32\u0e01\u0e32\u0e0a\u0e32\u0e19
+languages.sat=\u0e2a\u0e31\u0e19\u0e15\u0e32\u0e25\u0e35
+languages.cy=\u0e40\u0e27\u0e25\u0e2a\u0e4c
+languages.sas=\u0e0b\u0e32\u0e0b\u0e31\u0e01
+languages.kbd=\u0e04\u0e32\u0e23\u0e4c\u0e1a\u0e32\u0e40\u0e14\u0e35\u0e22
+languages.cv=\u0e0a\u0e39\u0e27\u0e31\u0e0a
+languages.cu=\u0e40\u0e0a\u0e2d\u0e23\u0e4c\u0e0a\u0e2a\u0e25\u0e32\u0e27\u0e34\u0e01
+languages.mni=\u0e21\u0e13\u0e35\u0e1b\u0e38\u0e23\u0e35
+languages.cs=\u0e40\u0e0a\u0e47\u0e01
+languages.sam=\u0e2d\u0e23\u0e32\u0e40\u0e21\u0e2d\u0e34\u0e01\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e34\u0e17\u0e31\u0e19
+languages.cr=\u0e04\u0e23\u0e35
+languages.sal=\u0e20\u0e32\u0e29\u0e32\u0e0b\u0e32\u0e25\u0e34\u0e2e\u0e32\u0e19
+languages.dua=\u0e14\u0e31\u0e27\u0e25\u0e32
+languages.co=\u0e04\u0e2d\u0e23\u0e4c\u0e0b\u0e34\u0e01\u0e32
+languages.sai=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e31\u0e19\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u0e19\u0e43\u0e15\u0e49
+languages.mnc=\u0e41\u0e21\u0e19\u0e08\u0e39
+languages.sah=\u0e22\u0e32\u0e04\u0e39\u0e15
+languages.kaw=\u0e01\u0e27\u0e34
+languages.inh=\u0e2d\u0e34\u0e19\u0e01\u0e38\u0e0a
+languages.gba=\u0e01\u0e1a\u0e32\u0e22\u0e32
+languages.sad=\u0e0b\u0e31\u0e19\u0e14\u0e32\u0e40\u0e27
+languages.ch=\u0e0a\u0e32\u0e21\u0e2d\u0e23\u0e4c\u0e42\u0e23
+languages.ine=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e34\u0e19\u0e42\u0e14-\u0e22\u0e39\u0e42\u0e23\u0e40\u0e1b\u0e35\u0e22\u0e19
+languages.bho=\u0e42\u0e20\u0e0a\u0e1b\u0e38\u0e23\u0e35
+languages.enm=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29\u0e01\u0e25\u0e32\u0e07
+languages.kar=\u0e01\u0e30\u0e40\u0e2b\u0e23\u0e35\u0e48\u0e22\u0e07
+languages.inc=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e34\u0e19\u0e14\u0e34\u0e01
+languages.ce=\u0e40\u0e0a\u0e40\u0e0a\u0e19
+languages.gay=\u0e01\u0e32\u0e42\u0e22
+languages.ca=\u0e01\u0e32\u0e15\u0e32\u0e25\u0e31\u0e19
+languages.umb=\u0e2d\u0e38\u0e21\u0e1a\u0e38\u0e19\u0e14\u0e39
+languages.syr=\u0e0b\u0e35\u0e40\u0e23\u0e35\u0e22
+languages.kam=\u0e04\u0e31\u0e21\u0e1a\u0e32
+languages.anp=\u0e2d\u0e31\u0e07\u0e04\u0e34\u0e01\u0e32
+languages.tsi=\u0e0b\u0e34\u0e21\u0e40\u0e0a\u0e35\u0e22\u0e19
+languages.ang=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.kac=\u0e01\u0e30\u0e09\u0e34\u0e48\u0e19
+languages.cau=\u0e04\u0e2d\u0e40\u0e04\u0e40\u0e0b\u0e35\u0e22\u0e19
+languages.kab=\u0e01\u0e32\u0e44\u0e1a\u0e25
+languages.kaa=\u0e01\u0e32\u0e23\u0e32-\u0e01\u0e32\u0e25\u0e1e\u0e32\u0e01
+languages.bs=\u0e1a\u0e2d\u0e2a\u0e40\u0e19\u0e35\u0e22
+languages.car=\u0e41\u0e04\u0e23\u0e34\u0e1a
+languages.br=\u0e40\u0e1a\u0e23\u0e15\u0e31\u0e19
+languages.bo=\u0e17\u0e34\u0e40\u0e1a\u0e15
+languages.bn=\u0e40\u0e1a\u0e07\u0e01\u0e32\u0e25\u0e35
+languages.bm=\u0e1a\u0e31\u0e21\u0e1a\u0e32\u0e23\u0e32
+languages.gaa=\u0e01\u0e32
+languages.cai=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e31\u0e19\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u0e19\u0e01\u0e25\u0e32\u0e07
+languages.bi=\u0e1a\u0e34\u0e2a\u0e25\u0e32\u0e21\u0e32
+languages.bh=\u0e1e\u0e34\u0e2b\u0e32\u0e23
+languages.bg=\u0e1a\u0e31\u0e25\u0e41\u0e01\u0e40\u0e23\u0e35\u0e22
+languages.be=\u0e40\u0e1a\u0e25\u0e32\u0e23\u0e38\u0e2a
+languages.pt_BR=\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a - \u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
+languages.cad=\u0e04\u0e31\u0e14\u0e42\u0e14
+languages.ba=\u0e1a\u0e31\u0e0a\u0e04\u0e35\u0e23\u0e4c
+languages.zu=\u0e0b\u0e39\u0e25\u0e39
+languages.zen=\u0e40\u0e0b\u0e19\u0e32\u0e01\u0e32
+languages.pro=\u0e42\u0e1e\u0e23\u0e40\u0e27\u0e19\u0e04\u0e2d\u0e25\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.hsb=\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e1a\u0e19
+languages.az=\u0e2d\u0e32\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e44\u0e1a\u0e08\u0e32\u0e19
+languages.ay=\u0e44\u0e2d\u0e22\u0e4c\u0e21\u0e32\u0e23\u0e32
+languages.av=\u0e2d\u0e32\u0e27\u0e32\u0e23\u0e34\u0e01
+languages.as=\u0e2d\u0e31\u0e2a\u0e2a\u0e31\u0e21
+languages.dsb=\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e15\u0e48\u0e33
+languages.ar=\u0e2d\u0e32\u0e2b\u0e23\u0e31\u0e1a
+languages.ilo=\u0e2d\u0e35\u0e42\u0e25\u0e01\u0e32\u0e42\u0e19
+languages.elx=\u0e2d\u0e35\u0e25\u0e32\u0e44\u0e21\u0e15\u0e4c
+languages.zh=\u0e08\u0e35\u0e19
+languages.an=\u0e2d\u0e32\u0e23\u0e32\u0e01\u0e2d\u0e19
+languages.pra=\u0e20\u0e32\u0e29\u0e32\u0e1b\u0e23\u0e32\u0e01\u0e24\u0e15
+languages.am=\u0e2d\u0e31\u0e21\u0e2e\u0e32\u0e23\u0e34\u0e01
+languages.new=\u0e40\u0e19\u0e27\u0e32\u0e23\u0e34
+languages.ak=\u0e2d\u0e32\u0e04\u0e32\u0e19
+languages.za=\u0e08\u0e49\u0e27\u0e07
+languages.en_US=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29 - \u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e31\u0e19
+languages.af=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32
+languages.ae=\u0e2d\u0e40\u0e27\u0e2a\u0e15\u0e31\u0e19
+languages.alt=\u0e2d\u0e31\u0e25\u0e44\u0e15\u0e43\u0e15\u0e49
+languages.ab=\u0e41\u0e2d\u0e1a\u0e01\u0e32\u0e40\u0e0b\u0e35\u0e22
+languages.aa=\u0e2d\u0e30\u0e1f\u0e32\u0e23\u0e4c
+languages.yo=\u0e42\u0e22\u0e23\u0e39\u0e1a\u0e32
+languages.alg=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e32\u0e25\u0e07\u0e40\u0e04\u0e27\u0e35\u0e22\u0e19
+languages.ale=\u0e2d\u0e25\u0e34\u0e2d\u0e38\u0e15
+languages.mkh=\u0e20\u0e32\u0e29\u0e32\u0e21\u0e2d\u0e0d-\u0e40\u0e02\u0e21\u0e23
+languages.yi=\u0e22\u0e34\u0e14\u0e14\u0e34\u0e0a
+languages.dra=\u0e20\u0e32\u0e29\u0e32\u0e14\u0e23\u0e32\u0e27\u0e34\u0e40\u0e14\u0e35\u0e22\u0e19
+languages.ber=\u0e40\u0e1a\u0e2d\u0e40\u0e1a\u0e2d\u0e30
+languages.nds=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e15\u0e48\u0e33
+languages.bem=\u0e40\u0e1a\u0e21\u0e1a\u0e32
+languages.bej=\u0e40\u0e1a\u0e08\u0e32
+languages.tpi=\u0e17\u0e2d\u0e04\u0e1e\u0e35\u0e0b\u0e34\u0e19
+variants.REVISED=\u0e2d\u0e2d\u0e23\u0e4c\u0e42\u0e18\u0e01\u0e23\u0e32\u0e1f\u0e35\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07
+variants.AREVELA=\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
+variants.POSIX=\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c
+variants.POLYTON=\u0e42\u0e1e\u0e25\u0e35\u0e42\u0e17\u0e19\u0e34\u0e01
+variants.FONIPA=\u0e2a\u0e31\u0e17\u0e2d\u0e31\u0e01\u0e29\u0e23\u0e2a\u0e32\u0e01\u0e25
+variants.1996=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2d\u0e2d\u0e23\u0e4c\u0e42\u0e18\u0e01\u0e23\u0e32\u0e1f\u0e35\u0e1b\u0e35 1996
+variants.SAAHO=\u0e42\u0e0b\u0e42\u0e2b
+variants.AREVMDA=\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+variants.1901=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2d\u0e2d\u0e23\u0e4c\u0e42\u0e18\u0e01\u0e23\u0e32\u0e1f\u0e35\u0e14\u0e31\u0e49\u0e07\u0e40\u0e14\u0e34\u0e21
+variants.ROZAJ=\u0e40\u0e23\u0e40\u0e0b\u0e35\u0e22\u0e19
+variants.NEDIS=\u0e20\u0e32\u0e29\u0e32\u0e1e\u0e37\u0e49\u0e19\u0e40\u0e21\u0e37\u0e2d\u0e07\u0e19\u0e32\u0e17\u0e34\u0e42\u0e0b\u0e40\u0e19
index 22dbc40178b49daa516b05bd8601d5fc7a66f1ca..6f81b932a97d0b2a5150927cb6ebde94cd67837d 100644 (file)
@@ -5,9 +5,10 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
 currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
 currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
@@ -17,11 +18,111 @@ currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u129
 currenciesSymbol.ETB=$
 currenciesSymbol.CNY=Y
 currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u1303\u1295\u12e9®\u134c\u1265\u1229®\u121b\u122d\u127d®\u12a4\u1355\u1228®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235®\u1234\u1355\u1274®\u12a6\u12ad\u1270®\u1296\u126c\u121d®\u12f2\u1234\u121d®®
-months=\u1303\u1295\u12e9\u12c8\u122a®\u134c\u1265\u1229\u12c8\u122a®\u121b\u122d\u127d®\u12a4\u1355\u1228\u120d®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235\u1275®\u1234\u1355\u1274\u121d\u1260\u122d®\u12a6\u12ad\u1270\u12cd\u1260\u122d®\u1296\u126c\u121d\u1260\u122d®\u12f2\u1234\u121d\u1260\u122d®®
-shortWeekdays=®\u1230\u1295\u1260®\u1230\u1291\u12ed®\u1220\u1209\u1235®\u1228\u1261\u12d5®\u1283\u1219\u1235®\u12d3\u122d\u1262®\u1240\u12f3\u121d®
-weekdays=®\u1230\u1295\u1260\u1275®\u1230\u1291\u12ed®\u1220\u1209\u1235®\u1228\u1261\u12d5®\u1283\u1219\u1235®\u12d3\u122d\u1262®\u1240\u12f3\u121d®
-firstDayOfWeek=sat
-eras=\u12d3/\u12d3®\u12d3/\u121d®
-ampms=\u1295\u1309\u1206 \u1230\u12d3\u1270®\u12f5\u1215\u122d \u1230\u12d3\u1275®
+shortMonths=\u1303\u1295\u12e9\u00ae\u134c\u1265\u1229\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u00ae\u1234\u1355\u1274\u00ae\u12a6\u12ad\u1270\u00ae\u1296\u126c\u121d\u00ae\u12f2\u1234\u121d\u00ae\u00ae
+months=\u1303\u1295\u12e9\u12c8\u122a\u00ae\u134c\u1265\u1229\u12c8\u122a\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u120d\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u1275\u00ae\u1234\u1355\u1274\u121d\u1260\u122d\u00ae\u12a6\u12ad\u1270\u12cd\u1260\u122d\u00ae\u1296\u126c\u121d\u1260\u122d\u00ae\u12f2\u1234\u121d\u1260\u122d\u00ae\u00ae
+shortWeekdays=\u00ae\u1230\u1295\u1260\u00ae\u1230\u1291\u12ed\u00ae\u1220\u1209\u1235\u00ae\u1228\u1261\u12d5\u00ae\u1283\u1219\u1235\u00ae\u12d3\u122d\u1262\u00ae\u1240\u12f3\u121d\u00ae
+weekdays=\u00ae\u1230\u1295\u1260\u1275\u00ae\u1230\u1291\u12ed\u00ae\u1220\u1209\u1235\u00ae\u1228\u1261\u12d5\u00ae\u1283\u1219\u1235\u00ae\u12d3\u122d\u1262\u00ae\u1240\u12f3\u121d\u00ae
+eras=\u12d3/\u12d3\u00ae\u12d3/\u121d\u00ae
+ampms=\u1295\u1309\u1206 \u1230\u12d3\u1270\u00ae\u12f5\u1215\u122d \u1230\u12d3\u1275\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1363 dd MMMM \u1218\u12d3\u120d\u1272 yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+languages.es=\u1235\u1353\u1292\u123d
+languages.ku=\u12a9\u122d\u12f5\u123d
+languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
+languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
+languages.el=\u130d\u122a\u12a8\u129b
+languages.ko=\u12ae\u122a\u12eb\u129b
+languages.kn=\u12ab\u121b\u12f0\u129b
+languages.ka=\u130a\u12ee\u122d\u130a\u12eb\u129b
+languages.jv=\u1303\u126b\u1295\u129b
+languages.fil=\u1273\u130b\u120e\u1308\u129b
+languages.pt=\u1356\u122d\u1271\u130b\u120a\u129b
+languages.ps=\u1353\u123d\u1276
+languages.de=\u1300\u122d\u1218\u1295
+languages.pl=\u1356\u120a\u123d
+languages.da=\u12f4\u1292\u123d
+languages.tlh=\u12ad\u120a\u1295\u130d\u12a6\u1295\u129b
+languages.ja=\u1303\u1353\u1295\u129b
+languages.vi=\u126a\u1275\u1293\u121d\u129b
+languages.cy=\u12c8\u120d\u123d
+languages.pa=\u1351\u1295\u1303\u1262\u129b
+languages.cs=\u127c\u12ad\u129b
+languages.it=\u1323\u120a\u12eb\u1295\u129b
+languages.is=\u12a0\u12ed\u1235\u120b\u1295\u12f0\u129b
+languages.uz=\u12a1\u12dd\u1260\u12ad\u129b
+languages.or=\u12a6\u122a\u12eb
+languages.ur=\u12a1\u122d\u12f1\u129b
+languages.ca=\u12ab\u1273\u120b\u1295
+languages.id=\u12a5\u1295\u12f6\u1291\u1232\u129b
+languages.uk=\u12e9\u12ad\u1228\u1292\u129b
+languages.ia=\u12a2\u1295\u1274\u122d \u124b\u1295\u124b
+languages.oc=\u12a6\u12aa\u1273\u1295\u129b
+languages.bs=\u1266\u1235\u1292\u12eb\u1295
+languages.br=\u1265\u122c\u1276\u1295
+languages.hu=\u1200\u1295\u130b\u122a\u129b
+languages.bn=\u1260\u1295\u130b\u120a\u129b
+languages.pt_PT=\u1356\u122d\u1271\u130b\u120d\u129b (\u1293\u12ed \u1356\u122d\u1271\u130b\u120d)
+languages.hr=\u12ad\u122e\u123d\u12eb\u1295\u129b
+languages.tw=\u1275\u12ca
+languages.bh=\u1262\u1203\u122a
+languages.bg=\u1261\u120d\u130b\u122a\u129b
+languages.no=\u1296\u122d\u12cc\u1302\u12eb\u1295
+languages.be=\u1264\u120b\u122b\u123b\u129b
+languages.nn=\u1296\u122d\u12cc\u12ed\u129b (\u1293\u12ed \u129d\u1296\u122d\u1235\u12ad)
+languages.hi=\u1215\u1295\u12f0\u129b
+languages.tr=\u1271\u122d\u12a8\u129b
+languages.nl=\u12f0\u127d
+languages.zu=\u12d9\u1209\u129b
+languages.he=\u12d5\u1265\u122b\u1235\u1325
+languages.tk=\u1293\u12ed \u1271\u122d\u12aa \u1230\u1265\u12d3\u12ed (\u1271\u122d\u12ab\u12ca)
+languages.ne=\u1294\u1356\u120a\u129b
+languages.az=\u12a0\u12dc\u122d\u1263\u12ed\u1303\u1295\u129b
+languages.ti=\u1275\u130d\u122d\u129b
+languages.th=\u1273\u12ed\u129b
+languages.te=\u1270\u1209\u1309\u129b
+languages.ar=\u12d3\u1228\u1260\u129b
+languages.ta=\u1273\u121a\u120d\u129b
+languages.gu=\u1309\u1303\u122b\u1272\u129b
+languages.am=\u12a0\u121d\u1210\u1228\u129b
+languages.mt=\u121b\u120d\u1272\u1235\u129b
+languages.ms=\u121b\u120b\u12ed\u129b
+languages.gn=\u1313\u122b\u1292
+languages.sw=\u1230\u12cb\u1202\u120a\u129b
+languages.mr=\u121b\u122b\u1272\u129b
+languages.sv=\u1235\u12ca\u12f5\u1295\u129b
+languages.gl=\u130b\u1208\u126a\u129b
+languages.su=\u1231\u12f3\u1295\u129b
+languages.af=\u12a0\u134d\u122a\u1243\u1295\u1230\u129b
+languages.st=\u1230\u1234\u1276
+languages.sr=\u1230\u122d\u1262\u129b
+languages.sq=\u12a0\u120d\u1264\u1292\u129b
+languages.ml=\u121b\u120b\u12eb\u120b\u121d\u129b
+languages.mk=\u121b\u12ad\u12f6\u1292\u129b
+languages.gd=\u12a5\u1235\u12ae\u1275\u1235 \u130c\u120d\u12ad\u129b
+languages.sl=\u1235\u1241\u126a\u129b
+languages.sk=\u1235\u120e\u1268\u12ad\u129b
+languages.ga=\u12a0\u12ed\u122a\u123d
+languages.si=\u1235\u1295\u1203\u120d\u129b
+languages.sh=\u1230\u122d\u1266- \u12ad\u122e\u12ca\u1273\u1295
+languages.pt_BR=\u1356\u122d\u1271\u130b\u120d\u129b (\u1293\u12ed \u1265\u122b\u12da\u120d)
+languages.yi=\u12ea\u12f2\u123d
+languages.fy=\u134d\u122a\u1230\u129b
+languages.fr=\u1348\u1228\u1295\u1233\u12ed\u129b
+languages.lv=\u120b\u1272\u126a\u12eb\u1295
+languages.lt=\u120a\u1271\u12a0\u1292\u12e8\u1295
+languages.fo=\u134b\u122e\u129b
+languages.ru=\u122b\u123d\u129b
+languages.fi=\u134a\u1292\u123d
+languages.ro=\u122e\u121b\u1292\u12eb\u1295
+languages.fa=\u1350\u122d\u1232\u12eb\u129b
+languages.la=\u120b\u1272\u1295\u129b
+languages.xh=\u12de\u1233\u129b
+languages.eu=\u1263\u1235\u12ad\u129b
+languages.ky=\u12aa\u1229\u130b\u12da
+languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
index 7b9882ce4abd519c06e20ce9d6627484cd926183..99411b67465d4e836e7aa8169f6a6fa76651d9a0 100644 (file)
@@ -5,18 +5,10 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ETB=ETB
 currenciesSymbol.ERN=$
-currenciesSymbol.USD=US$
-shortMonths=\u1325\u122a®\u1208\u12ab\u1272®\u1218\u130b\u1262®\u121a\u12eb\u12dd®\u130d\u1295\u1266®\u1230\u1290®\u1213\u121d\u1208®\u1290\u1213\u1230®\u1218\u1235\u12a8®\u1325\u1245\u121d®\u1215\u12f3\u122d®\u1273\u1215\u1233®®
-months=\u1325\u122a®\u1208\u12ab\u1272\u1275®\u1218\u130b\u1262\u1275®\u121a\u12eb\u12dd\u12eb®\u130d\u1295\u1266\u1275®\u1230\u1290®\u1213\u121d\u1208®\u1290\u1213\u1230®\u1218\u1235\u12a8\u1228\u121d®\u1325\u1245\u121d\u1272®\u1215\u12f3\u122d®\u1273\u1215\u1233\u1235®®
-shortWeekdays=®®®\u1230\u1209\u1235®®\u1213\u1219\u1235®®®
-weekdays=®®®\u1230\u1209\u1235®®\u1213\u1219\u1235®®®
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
-longDateFormat=dd MMMM yyyy
+shortMonths=\u1325\u122a\u00ae\u1208\u12ab\u1272\u00ae\u1218\u130b\u1262\u00ae\u121a\u12eb\u12dd\u00ae\u130d\u1295\u1266\u00ae\u1230\u1290\u00ae\u1213\u121d\u1208\u00ae\u1290\u1213\u1230\u00ae\u1218\u1235\u12a8\u00ae\u1325\u1245\u121d\u00ae\u1215\u12f3\u122d\u00ae\u1273\u1215\u1233\u00ae\u00ae
+months=\u1325\u122a\u00ae\u1208\u12ab\u1272\u1275\u00ae\u1218\u130b\u1262\u1275\u00ae\u121a\u12eb\u12dd\u12eb\u00ae\u130d\u1295\u1266\u1275\u00ae\u1230\u1290\u00ae\u1213\u121d\u1208\u00ae\u1290\u1213\u1230\u00ae\u1218\u1235\u12a8\u1228\u121d\u00ae\u1325\u1245\u121d\u1272\u00ae\u1215\u12f3\u122d\u00ae\u1273\u1215\u1233\u1235\u00ae\u00ae
+shortWeekdays=\u00ae\u00ae\u00ae\u1230\u1209\u1235\u00ae\u00ae\u1213\u1219\u1235\u00ae\u00ae\u00ae
+weekdays=\u00ae\u00ae\u00ae\u1230\u1209\u1235\u00ae\u00ae\u1213\u1219\u1235\u00ae\u00ae\u00ae
 fullDateFormat=EEEE\u1361 dd MMMM \u1218\u12d3\u120d\u1272 yyyy G
-shortTimeFormat=h:mm a
-mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
index 12e05b320b8ab469e1f604b186f0b0fe3f314e95..6c85f6b051db74538f3f7bcacaa78140608d1f79 100644 (file)
@@ -5,41 +5,46 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
 currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
 currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
 currenciesDisplayName.EUR=\u12a0\u12cd\u122e
 currenciesDisplayName.ETB=\u12e8\u12a2\u1275\u12ee\u1335\u12eb \u1265\u122d
 currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u1295\u12f5 \u1235\u1270\u122d\u120a\u1295\u130d
-currenciesSymbol.ETB=$
 currenciesSymbol.CNY=Y
 currenciesSymbol.ERN=$
-currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u1303\u1295\u12e9®\u134c\u1265\u1229®\u121b\u122d\u127d®\u12a4\u1355\u1228®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235®\u1234\u1355\u1274®\u12a6\u12ad\u1270®\u1296\u126c\u121d®\u12f2\u1234\u121d®®
-months=\u1303\u1295\u12e9\u12c8\u122a®\u134c\u1265\u1229\u12c8\u122a®\u121b\u122d\u127d®\u12a4\u1355\u1228\u120d®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235\u1275®\u1234\u1355\u1274\u121d\u1260\u122d®\u12a6\u12ad\u1270\u12cd\u1260\u122d®\u1296\u126c\u121d\u1260\u122d®\u12f2\u1234\u121d\u1260\u122d®®
-shortWeekdays=®\u1230/\u12d3®\u1230\u1296®\u1273\u120b\u1238®\u12a3\u1228\u122d®\u12a8\u121a\u123d®\u1305\u121d\u12d3®\u1230/\u1295®
-weekdays=®\u1230\u1295\u1260\u1275 \u12d3\u1263\u12ed®\u1230\u1296®\u1273\u120b\u1238\u1296®\u12a3\u1228\u122d\u1263\u12d3®\u12a8\u121a\u123d®\u1305\u121d\u12d3\u1275®\u1230\u1295\u1260\u1275 \u1295\u12a2\u123d®
-firstDayOfWeek=sat
-eras=\u12d3/\u12d3®\u12d3/\u121d®
-ampms=\u1240\u12f0\u121d \u1230\u122d\u121d\u12d5\u120d®\u1213\u1246 \u1235\u122d\u121d\u12d5\u120d®
+shortMonths=\u1303\u1295\u12e9\u00ae\u134c\u1265\u1229\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u00ae\u1234\u1355\u1274\u00ae\u12a6\u12ad\u1270\u00ae\u1296\u126c\u121d\u00ae\u12f2\u1234\u121d\u00ae\u00ae
+months=\u1303\u1295\u12e9\u12c8\u122a\u00ae\u134c\u1265\u1229\u12c8\u122a\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u120d\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u1275\u00ae\u1234\u1355\u1274\u121d\u1260\u122d\u00ae\u12a6\u12ad\u1270\u12cd\u1260\u122d\u00ae\u1296\u126c\u121d\u1260\u122d\u00ae\u12f2\u1234\u121d\u1260\u122d\u00ae\u00ae
+shortWeekdays=\u00ae\u1230/\u12d3\u00ae\u1230\u1296\u00ae\u1273\u120b\u1238\u00ae\u12a3\u1228\u122d\u00ae\u12a8\u121a\u123d\u00ae\u1305\u121d\u12d3\u00ae\u1230/\u1295\u00ae
+weekdays=\u00ae\u1230\u1295\u1260\u1275 \u12d3\u1263\u12ed\u00ae\u1230\u1296\u00ae\u1273\u120b\u1238\u1296\u00ae\u12a3\u1228\u122d\u1263\u12d3\u00ae\u12a8\u121a\u123d\u00ae\u1305\u121d\u12d3\u1275\u00ae\u1230\u1295\u1260\u1275 \u1295\u12a2\u123d\u00ae
+eras=\u12d3/\u12d3\u00ae\u12d3/\u121d\u00ae
+ampms=\u1240\u12f0\u121d \u1230\u122d\u121d\u12d5\u120d\u00ae\u1213\u1246 \u1235\u122d\u121d\u12d5\u120d\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1361 dd MMMM \u12ee\u121d yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.AU=\u12a0\u12cd\u1235\u1275\u122c\u120a\u12eb
 territories.TD=\u127b\u12f5
-territories.AT=\u12a6\u1235\u1275\u122a\u12eb
 territories.GY=\u1309\u12eb\u1293
-territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
+territories.AT=\u12a6\u1235\u1275\u122a\u12eb
 territories.GW=\u1262\u1233\u12ce
+territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
 territories.MY=\u121b\u120c\u12e2\u12eb
 territories.MX=\u121c\u12ad\u1232\u12ae
 territories.AN=\u1294\u12d8\u122d\u120b\u1295\u12f5\u1235 \u12a0\u1295\u1272\u120d\u1235
-territories.AM=\u12a0\u122d\u121c\u1292\u12eb
 territories.GR=\u130d\u122a\u12ad
+territories.AM=\u12a0\u122d\u121c\u1292\u12eb
 territories.ZA=\u12f0\u1261\u1265 \u12a0\u134d\u122a\u12ab
-territories.AL=\u12a0\u120d\u1263\u1292\u12eb
 territories.GQ=\u12a2\u12b3\u1276\u122a\u12eb\u120d \u130a\u1292
+territories.AL=\u12a0\u120d\u1263\u1292\u12eb
 territories.MU=\u121b\u1229\u1238\u1235
 territories.SY=\u1232\u122a\u12eb
 territories.MT=\u121b\u120d\u1273
@@ -85,13 +90,13 @@ territories.KM=\u12ae\u121e\u122e\u1235
 territories.EH=\u121d\u12d5\u122b\u1263\u12ca \u1233\u1205\u122b
 territories.EG=\u130d\u1265\u133d
 territories.EE=\u12a4\u1235\u1276\u1292\u12eb
-territories.EC=\u12a2\u12b3\u12f6\u122d
 territories.KH=\u12ab\u121d\u1266\u12f2\u12eb
+territories.EC=\u12a2\u12b3\u12f6\u122d
 territories.DZ=\u12a0\u120d\u1304\u122a\u12eb
 territories.DO=\u12f6\u121a\u1292\u12ad \u122a\u1351\u1265\u120a\u12ad
 territories.DM=\u12f6\u121a\u1292\u12ab
-territories.DK=\u12f4\u1295\u121b\u122d\u12ad
 territories.JP=\u1303\u1353\u1295
+territories.DK=\u12f4\u1295\u121b\u122d\u12ad
 territories.JO=\u1306\u122d\u12f3\u1295
 territories.PR=\u1356\u122d\u1273 \u122a\u12ae
 territories.JM=\u1303\u121b\u12ed\u12ab
@@ -107,13 +112,13 @@ territories.VG=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u12f5\u1295\u130d\u120d \u1
 territories.CV=\u12ac\u1355 \u126c\u122d\u12f4
 territories.VE=\u126c\u1295\u12d9\u12cc\u120b
 territories.CS=\u1230\u122d\u1262\u12eb
-territories.CO=\u12ae\u120e\u121d\u1262\u12eb
 territories.IT=\u1323\u120a\u12eb\u1295
-territories.CN=\u127b\u12ed\u1293
+territories.CO=\u12ae\u120e\u121d\u1262\u12eb
 territories.IS=\u12a0\u12ed\u1235\u120b\u1295\u12f5
+territories.CN=\u127b\u12ed\u1293
 territories.CM=\u12ab\u121c\u1229\u1295
-territories.CL=\u127a\u120a
 territories.IQ=\u12a2\u122b\u1245
+territories.CL=\u127a\u120a
 territories.UZ=\u12e9\u12dd\u1260\u12aa\u1235\u1273\u1295
 territories.IN=\u1205\u1295\u12f5
 territories.CH=\u1235\u12ca\u12d8\u122d\u120b\u1295\u12f5
@@ -130,10 +135,10 @@ territories.BT=\u1261\u1205\u1273\u1295
 territories.BR=\u1265\u122b\u12da\u120d
 territories.NZ=\u1292\u12cd \u12da\u120b\u1295\u12f5
 territories.HU=\u1200\u1295\u130b\u122a
-territories.BO=\u1266\u120a\u126a\u12eb
 territories.HT=\u1200\u12ed\u1272
-territories.BM=\u1264\u122d\u1219\u12f3
+territories.BO=\u1266\u120a\u126a\u12eb
 territories.HR=\u12ad\u122e\u12a4\u123d\u12eb
+territories.BM=\u1264\u122d\u1219\u12f3
 territories.TZ=\u1273\u1295\u12db\u1292\u12eb
 territories.BH=\u1263\u1205\u122c\u1295
 territories.BG=\u1261\u120d\u130c\u122a\u12eb
@@ -159,8 +164,8 @@ territories.NA=\u1293\u121a\u1262\u12eb
 languages.es=\u1235\u1353\u1292\u123d
 languages.ku=\u12a9\u122d\u12f5\u123d\u129b
 languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
-languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
 languages.ks=\u12ab\u123d\u121a\u122d\u129b
+languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
 languages.el=\u130d\u122a\u12ad\u129b
 languages.qu=\u12b5\u127f\u129b
 languages.ko=\u12ae\u122a\u12eb\u129b
@@ -184,8 +189,8 @@ languages.cy=\u12c8\u120d\u123d
 languages.pa=\u1353\u1295\u1303\u1262\u129b
 languages.cs=\u127c\u12ad\u129b
 languages.iu=\u12a5\u1291\u12ad\u1272\u1271\u1275\u129b
-languages.co=\u12ae\u122d\u1232\u12ab\u129b
 languages.it=\u1323\u120a\u12eb\u1295\u129b
+languages.co=\u12ae\u122d\u1232\u12ab\u129b
 languages.is=\u12a0\u12ed\u1235\u120b\u1295\u12f5\u129b
 languages.uz=\u12a1\u12dd\u1260\u12ad\u129b
 languages.or=\u12a6\u122a\u12eb\u129b
@@ -242,8 +247,8 @@ languages.am=\u12a0\u121d\u1210\u1228\u129b
 languages.za=\u12e1\u12cb\u1295\u130d\u129b
 languages.mt=\u121b\u120d\u1272\u1235\u129b
 languages.ms=\u121b\u120b\u12ed\u129b
-languages.gn=\u1313\u122b\u1292\u129b
 languages.byn=\u1265\u120a\u1295
+languages.gn=\u1313\u122b\u1292\u129b
 languages.sw=\u1235\u12cb\u1202\u120a\u129b
 languages.mr=\u121b\u122b\u12da\u129b
 languages.sv=\u1235\u12ca\u12f5\u1295\u129b
@@ -281,14 +286,14 @@ languages.sid=\u1232\u12f3\u121d\u129b
 languages.sa=\u1233\u1295\u1235\u12ad\u122a\u1275\u129b
 languages.fr=\u1348\u1228\u1295\u1233\u12ed\u129b
 languages.lv=\u120b\u1275\u126a\u12eb\u1295
-languages.fo=\u134b\u122e\u129b
 languages.lt=\u120a\u1271\u12a0\u1292\u12eb\u1295
+languages.fo=\u134b\u122e\u129b
 languages.rw=\u12aa\u1295\u12eb\u122d\u12cb\u1295\u12f5\u129b
 languages.ru=\u122b\u123d\u129b
-languages.fj=\u134a\u1302\u129b
 languages.lo=\u120b\u12cd\u1235\u129b
-languages.fi=\u134a\u1292\u123d
+languages.fj=\u134a\u1302\u129b
 languages.ln=\u120a\u1295\u130b\u120b\u129b
+languages.fi=\u134a\u1292\u123d
 languages.ro=\u122e\u121b\u1292\u12eb\u1295
 languages.rn=\u1229\u1295\u12f2\u129b
 languages.rm=\u122e\u121b\u1295\u1235
@@ -296,5 +301,5 @@ languages.fa=\u1350\u122d\u1232\u12eb\u129b
 languages.la=\u120b\u1272\u1295\u129b
 languages.xh=\u12de\u1233\u129b
 languages.eu=\u1263\u1235\u12ad\u129b
-languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
 languages.ky=\u12aa\u122d\u130a\u12dd\u129b
+languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tn.properties
new file mode 100644 (file)
index 0000000..0d8170f
--- /dev/null
@@ -0,0 +1,106 @@
+# LocaleInformation_tn.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Fer\u00aeTlh\u00aeMop\u00aeMor\u00aeMot\u00aeSee\u00aePhu\u00aePha\u00aeLwe\u00aeDip\u00aeNgw\u00aeSed\u00ae\u00ae
+months=Ferikgong\u00aeTlhakole\u00aeMopitlo\u00aeMoranang\u00aeMotsheganang\u00aeSeetebosigo\u00aePhukwi\u00aePhatwe\u00aeLwetse\u00aeDiphalane\u00aeNgwanatsele\u00aeSedimonthole\u00ae\u00ae
+shortWeekdays=\u00aeTsh\u00aeMos\u00aeBed\u00aeRar\u00aeNe\u00aeTla\u00aeMat\u00ae
+weekdays=\u00aeTshipi\u00aeMosopulogo\u00aeLabobedi\u00aeLaboraro\u00aeLabone\u00aeLabotlhano\u00aeMatlhatso\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.es=Spanish
+languages.eo=Esperanto
+languages.en=Sekgoa
+languages.el=SeGerika
+languages.ko=Se Korea
+languages.kn=Kannada
+languages.ka=Mo/SeJojia
+languages.jv=Javanese
+languages.fil=Tagalog
+languages.pt=Se  Potoketsi
+languages.de=German
+languages.pl=Se Poland
+languages.da=Danish
+languages.tlh=Klingon
+languages.ja=Se Japan
+languages.vi=Vietnamese
+languages.cy=Welsh
+languages.pa=Punjabi
+languages.cs=Se Czeck
+languages.it=Se Italiano
+languages.is=Icelandic
+languages.uz=Uzbek
+languages.ur=Urdu
+languages.ca=Catalan
+languages.id=Indonesian
+languages.uk=Ukrainian
+languages.ia=Interlingua
+languages.oc=Occitan
+languages.bs=SeBosnia
+languages.hu=Hungarian
+languages.bn=Bengali
+languages.hr=Croatian
+languages.bh=Bihari
+languages.bg=Bulgarian
+languages.no=Puo ya kwa Norway
+languages.be=Belarusian
+languages.hi=Hindi
+languages.tr=Turkish
+languages.nl=Se Dutch
+languages.zu=IsiZulu
+languages.he=Se heberu
+languages.tn=Setswana
+languages.ne=Nepali
+languages.az=Azerbaijani
+languages.ti=Tigrinya
+languages.th=Thai
+languages.te=Telugu
+languages.ar=Arabic
+languages.ta=Tamil
+languages.gu=Gujarati
+languages.am=Amhariki
+languages.mt=Maltese
+languages.ms=Malay
+languages.sw=Swahili
+languages.mr=Marathi
+languages.sv=Swedish
+languages.gl=Galician
+languages.su=Mo/SeSundane
+languages.af=Seburu
+languages.sr=Serbian
+languages.sq=Albanian
+languages.ml=Malayalam
+languages.mk=Macedonian
+languages.gd=Scots Gaelic
+languages.sl=Slovenian
+languages.sk=Slovak
+languages.ga=Irish
+languages.fy=Frisian
+languages.fr=Se Fora
+languages.lv=Latvian
+languages.lt=Lithuanian
+languages.fo=Faroese
+languages.ru=Russian
+languages.fi=Se-Finland
+languages.ro=Se Roma
+languages.fa=Mo/SePerishia
+languages.la=Latin
+languages.xh=IsiXhosa
+languages.eu=Basque
+languages.et=Estonian
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_to.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_to.properties
new file mode 100644 (file)
index 0000000..e36e83a
--- /dev/null
@@ -0,0 +1,212 @@
+# LocaleInformation_to.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+shortMonths=S\u0101n\u00aeF\u0113p\u00aeMa\u02bba\u00ae\u02bbEpe\u00aeM\u0113\u00aeSun\u00aeSiu\u00ae\u02bbAok\u00aeS\u0113p\u00ae\u02bbOka\u00aeN\u014dv\u00aeTis\u00ae\u00ae
+months=S\u0101nuali\u00aeF\u0113pueli\u00aeMa\u02bbasi\u00ae\u02bbEpeleli\u00aeM\u0113\u00aeSune\u00aeSiulai\u00ae\u02bbAokosi\u00aeS\u0113pitema\u00ae\u02bbOkatopa\u00aeN\u014dvema\u00aeTisema\u00ae\u00ae
+shortWeekdays=\u00aeS\u0101p\u00aeM\u014dn\u00aeTus\u00aePul\u00aeTu\u02bba\u00aeFal\u00aeTok\u00ae
+weekdays=\u00aeS\u0101pate\u00aeM\u014dnite\u00aeTusite\u00aePulelulu\u00aeTu\u02bbapulelulu\u00aeFalaite\u00aeTokonaki\u00ae
+eras=KM\u00aeTS\u00ae
+ampms=HH\u00aeEA\u00ae
+shortDateFormat=dd-MM-yyyy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Fiji\u00aehoua fakafisi\u00ae\u00aehoua fakafisi fakamaama\u00ae\u00ae\u00a9Samoa\u00aehoua fakaha\u02bbamoa\u00ae\u00ae\u00ae\u00ae\u00a9Niue\u00aehoua fakaniu\u0113\u00ae\u00ae\u00ae\u00ae\u00a9Tuvalu\u00aehoua fakat\u016bvalu\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aehoua fakanu\u02bbusila fakas\u012bpinga\u00ae\u00aehoua fakanu\u02bbusila fakamaama\u00ae\u00ae\u00a9Tahiti\u00aehoua fakatahisi\u00ae\u00ae\u00ae\u00ae\u00a9Tonga\u00aehoua fakatonga\u00ae\u00aehoua fakatonga lotoh\u0113\u00ae\u00ae\u00a9Wallis\u00aehoua faka\u02bbuvea mo futuna\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aehoua fakahaua\u02bbi\u00ae\u00ae\u00ae\u00ae\u00a9Tokelau\u00aehoua fakatokelau\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.AU=\u02bbAositel\u0113lia
+territories.GY=Kuiana
+territories.AS=Ha\u02bbamoa faka\u02bbamelika
+territories.AQ=\u02bbAnet\u0101tika
+territories.GU=Kuami
+territories.MX=Mekesik\u014d
+territories.GS=\u02bbOtumotu Siosia-tonga mo Saniuisi-tonga
+territories.MW=Malaui
+territories.GR=Kalisi
+territories.ZA=\u02bbAfelika tonga
+territories.MU=Maulitiusi
+territories.MT=Malita
+territories.MS=Mo\u02bbungaselati
+territories.AI=Anikuila
+territories.GM=Kamipia
+territories.AG=Anitikua mo Palaputa
+territories.029=Kalipea
+territories.MP=\u02bbOtumotu Maliana tokelau
+territories.GI=Sipal\u0101lit\u0101
+territories.GH=Kana
+territories.GG=Kuenis\u012b
+territories.419=\u02bbAmelika fakalatina mo Kalipea
+territories.GD=Kelenat\u0101
+territories.021=\u02bbAmelika tonga ange
+territories.MH=\u02bbOtumotu M\u0101solo
+territories.GB=Pilit\u0101nia
+territories.SG=Singapula
+territories.SE=Su\u0113teni
+territories.SC=\u02bbOtumotu Seiseli
+territories.SB=\u02bbOtumotu Solomone
+territories.FR=Falanis\u0113
+territories.LS=Lesoto
+territories.RW=Luanit\u0101
+territories.LR=Laipelia
+territories.FM=Mikolonisia
+territories.019=Ongo \u02bbAmelika
+territories.RU=L\u016bsia
+territories.018=\u02bbAfelika fakatonga
+territories.FJ=Fisi
+territories.017=\u02bbAfelika lotoloto
+territories.FI=Finilani
+territories.015=\u02bbAfelika tokelau
+territories.014=\u02bbAfelika hahake
+territories.LK=S\u012bloni
+territories.172=Komoniueli
+territories.013=\u02bbAmelika lotoloto
+territories.011=\u02bbAfelika hihifo
+territories.ES=Sepeni
+territories.KR=K\u014dlea tonga
+territories.009=\u02bbOseania
+territories.QU=\u02bbEulope fakataha
+territories.KP=K\u014dloa tokelau
+territories.005=\u02bbAmelika tonga
+territories.EG=\u02bbIsipite
+territories.003=\u02bbAmelika tokelau
+territories.002=\u02bbAfelika
+territories.WS=Ha\u02bbamoa
+territories.KI=Kilipasi
+territories.001=M\u0101mani
+territories.KE=Kenia
+territories.062=\u02bb\u0112sia tongalotoloto
+territories.061=Polinisia
+territories.WF=\u02bbUvea mo Futuna
+territories.PW=Palau
+territories.DM=Tominika
+territories.JP=Siapani
+territories.PT=Potukali
+territories.155=\u02bbEulope hihifo
+territories.154=\u02bbEulope tokelau
+territories.VU=Vanuatu
+territories.DE=Siamane
+territories.151=\u02bbEulope hahake
+territories.057=Potu fonua Mikolonisia
+territories.PN=Pitikeni
+territories.150=\u02bbEulope
+territories.054=Melanisia
+territories.PK=Pakisitani
+territories.053=\u02bbAositel\u0113lia mo Nu\u02bbusila
+territories.JE=Selus\u012b
+territories.PG=Papuaniukini
+territories.PF=Polinisia fakafalanis\u0113
+territories.VI=\u02bbOtumotu Vilikini faka\u02bbamelika
+territories.CX=Motu Kilisimasi
+territories.VG=\u02bbOtumotu Vilikini fakapilit\u0101nia
+territories.PA=Panam\u0101
+territories.VA=Vatikani
+territories.IT=\u02bb\u012atali
+territories.CN=Siaina
+territories.CK=\u02bbOtumotu Kuki
+territories.IO=Potu fonua moana \u02bbInitia fakapilit\u0101nia
+territories.IN=\u02bbInitia
+territories.145=\u02bb\u0112sia hihifo
+territories.IM=Motu Mani
+territories.CH=Suisilani
+territories.IL=\u02bbIsileli
+territories.143=\u02bb\u0112sia lotoloto
+territories.142=\u02bb\u0112sia
+territories.US=Pule\u02bbanga fakataha \u02bbAmelika
+territories.CA=K\u0101nata
+territories.IE=\u02bbAealani
+territories.UM=\u02bbOtumotu si\u02bbi \u02bbo \u02bbAmelika
+territories.BZ=Pelise
+territories.BW=Potisiuana
+territories.BV=Motu Puveti
+territories.BS=Pahama
+territories.BR=Pal\u0101sili
+territories.NZ=Nu\u02bbusila
+territories.NU=Niu\u0113
+territories.HN=Honitulasi
+territories.NR=Naulu
+territories.HM=\u02bbOtumotu Heati mo Makitonali
+territories.TV=T\u016bvalu
+territories.039=\u02bbEulope tonga
+territories.ZZ=Potu fonua ta\u02bbe\u02bbiloa pe hala
+territories.HK=Hongi Kongi
+territories.TT=Tilinitati mo Topako
+territories.NO=Noau\u0113
+territories.BE=Pelesiume
+territories.ZW=Simipapue
+territories.TR=Toake
+territories.035=\u02bb\u0112sia tongahahake
+territories.NL=Holani
+territories.034=\u02bb\u0112sia tonga
+territories.TO=Tonga
+territories.030=\u02bb\u0112sia hahake
+territories.NG=Naisilia
+territories.TK=Tokelau
+territories.NF=Motu N\u014dfoliki
+territories.NC=Niu Kaletonia
+territories.TF=Potu fonua tonga fakafalanis\u0113
+territories.NA=Namipia
+languages.haw=lea fakahauai\u02bbi
+languages.na=lea fakanaulu
+languages.zh=lea fakasiaina
+languages.ar=lea faka\u02bbalepea
+languages.my=lea fakapema
+languages.sco=lea fakasikotilani
+languages.ms=lea fakamalei
+languages.sv=lea fakasueteni
+languages.pt=lea fakapotukali
+languages.de=lea fakasiamane
+languages.sm=lea fakaha\u02bbamoa
+languages.mi=lea fakamauli
+languages.mh=lea fakam\u0101solo
+languages.art=lea fa\u02bbu p\u0113 kehe
+languages.ga=lea faka\u02bbaealani
+languages.ja=lea fakasiapani
+languages.zxx=\u02bbikai ha lea
+languages.und=lea ta\u02bbe\u02bbiloa
+languages.tkl=lea fakatokelau
+languages.it=lea faka\u02bb\u012btali
+languages.fr=lea fakafalanis\u0113
+languages.ru=lea fakalusia
+languages.pt_BR=lea fakapotukali-pal\u0101sili
+languages.fj=lea fakafisi
+languages.fi=lea fakafinilani
+languages.gil=lea fakakilipasi
+languages.fa=lea fakap\u0113sia
+languages.la=lea fakalatina
+languages.niu=lea fakaniu\u0113
+languages.zh_Hans=lea fakasiaina fakangofua
+languages.zh_Hant=lea fakasiaina tukufakaholo
+languages.grc=lea fakakalisimu\u02bba
+languages.es=lea fakasepeni
+languages.ty=lea fakatahisi
+languages.en=lea fakapilit\u0101nia
+languages.el=lea fakakalisi
+languages.mis=lea kehekehe
+languages.ko=lea fakak\u014dlea
+languages.sgn=lea faka\u02bbilonga
+languages.tvl=lea fakat\u016bvalu
+languages.no=lea fakanoau\u0113
+languages.tr=lea fakatoake
+languages.rar=lea fakalalotonga
+languages.nl=lea fakaholani
+languages.rap=lea fakalapanui
+languages.to=lea fakatonga
+languages.he=lea fakahepel\u016b
index a13d86ed1344dec3f489724332d4b0795d9be4c3..09c2069a6f2b7ec7772984c471d502ed6b58b9af 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+digit=#
+percentFormat=%\u00a0#,##0
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
 currenciesDisplayName.YDD=Yemen Dinar\u0131
-currenciesDisplayName.TWD=Yeni Tayvan Dolar\u0131
 currenciesDisplayName.KES=Kenya \u015eilini
-currenciesDisplayName.BYB=Yeni Beyaz Rusya Rublesi (1994-1999)
+currenciesDisplayName.TWD=Yeni Tayvan Dolar\u0131
 currenciesDisplayName.LKR=Sri Lanka Rupisi
-currenciesDisplayName.RWF=Ruanda Frang\u0131
+currenciesDisplayName.BYB=Yeni Beyaz Rusya Rublesi (1994-1999)
 currenciesDisplayName.TJS=Tacikistan Somonisi
-currenciesDisplayName.SDP=Sudan Liras\u0131
-currenciesDisplayName.TJR=Tacikistan Rublesi
+currenciesDisplayName.RWF=Ruanda Frang\u0131
 currenciesDisplayName.ERN=Eritre Nakfas\u0131
-currenciesDisplayName.AFN=Afganistan Afganisi
+currenciesDisplayName.TJR=Tacikistan Rublesi
+currenciesDisplayName.SDP=Eski Sudan Liras\u0131
 currenciesDisplayName.GRD=Yunan Drahmisi
+currenciesDisplayName.AFN=Afganistan Afganisi
 currenciesDisplayName.IEP=\u0130rlanda Liras\u0131
 currenciesDisplayName.ARS=Arjantin Pezosu
-currenciesDisplayName.SDD=Sudan Dinar\u0131
+currenciesDisplayName.SDG=Sudan Liras\u0131
 currenciesDisplayName.ARP=Arjantin Pezosu (1983-1985)
+currenciesDisplayName.SDD=Sudan Dinar\u0131
 currenciesDisplayName.GEL=G\u00fcrcistan Larisi
-currenciesDisplayName.AFA=Afganistan Afganisi (1927-2002)
 currenciesDisplayName.GEK=G\u00fcrcistan Kupon Larisi
+currenciesDisplayName.AFA=Afganistan Afganisi (1927-2002)
 currenciesDisplayName.CRC=Kosta Rika Kolonu
 currenciesDisplayName.FKP=Falkland Adalar\u0131 Liras\u0131
 currenciesDisplayName.EEK=Estonya Krunu
-currenciesDisplayName.HKD=Hong Kong Dolar\u0131
 currenciesDisplayName.MDL=Moldova Leyi
-currenciesDisplayName.ARA=Arjantin Australi
+currenciesDisplayName.HKD=Hong Kong Dolar\u0131
 currenciesDisplayName.IQD=Irak Dinar\u0131
+currenciesDisplayName.ARA=Arjantin Australi
 currenciesDisplayName.SCR=Sey\u015feller Rupisi
 currenciesDisplayName.VUV=Vanuatu Vatusu
-currenciesDisplayName.DKK=Danimarka Kronu
 currenciesDisplayName.KPW=Kuzey Kore Wonu
-currenciesDisplayName.GQE=Ekvator Ginesi Ekuelesi
+currenciesDisplayName.DKK=Danimarka Kronu
 currenciesDisplayName.IDR=Endonezya Rupiah\u0131
-currenciesDisplayName.LVR=Letonya Rublesi
+currenciesDisplayName.GQE=Ekvator Ginesi Ekuelesi
 currenciesDisplayName.SOS=Somali \u015eilini
+currenciesDisplayName.LVR=Letonya Rublesi
+currenciesDisplayName.EQE=Ekuele
 currenciesDisplayName.AED=Birle\u015fik Arap Emirlikleri Dirhemi
-currenciesDisplayName.BWP=Botsvana Pulas\u0131
 currenciesDisplayName.LVL=Letonya Lat\u0131
+currenciesDisplayName.BWP=Botsvana Pulas\u0131
 currenciesDisplayName.RUR=Rus Rublesi (1991-1998)
 currenciesDisplayName.NIO=Nikaragua Kordobas\u0131 (Oro)
-currenciesDisplayName.ADP=Andora Pezetas\u0131
-currenciesDisplayName.FJD=Fiji Dolar\u0131
+currenciesDisplayName.XTS=Test Para Birimi Kodu
 currenciesDisplayName.MOP=Makao Patacas\u0131
+currenciesDisplayName.FJD=Fiji Dolar\u0131
+currenciesDisplayName.ADP=Andora Pesetas\u0131
 currenciesDisplayName.RUB=Rus Rublesi
 currenciesDisplayName.CDF=Kongo Frang\u0131
 currenciesDisplayName.NIC=Nikaragua Kordobas\u0131
 currenciesDisplayName.DJF=Cibuti Frang\u0131
-currenciesDisplayName.ECV=Ekvator Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Solomon Adalar\u0131 Dolar\u0131
 currenciesDisplayName.UZS=\u00d6zbekistan Sumu
+currenciesDisplayName.SBD=Solomon Adalar\u0131 Dolar\u0131
+currenciesDisplayName.ECV=Ekvator Unidad de Valor Constante (UVC)
+currenciesDisplayName.LUL=Finansal L\u00fcksemburg Frang\u0131
 currenciesDisplayName.ECS=Ekvator Sukresi
-currenciesDisplayName.PHP=Filipinler Pezosu
 currenciesDisplayName.THB=Tayland Baht\u0131
+currenciesDisplayName.PHP=Filipinler Pezosu
 currenciesDisplayName.LUF=L\u00fcksemburg Frang\u0131
+currenciesDisplayName.RHD=Rodezya Dolar\u0131
+currenciesDisplayName.LUC=Konvertibl L\u00fcksemburg Frang\u0131
 currenciesDisplayName.FIM=Fin Markkas\u0131
 currenciesDisplayName.TTD=Trinidad ve Tobago Dolar\u0131
 currenciesDisplayName.SZL=Swaziland Lilangenisi
 currenciesDisplayName.MNT=Mo\u011fol Tugriki
-currenciesDisplayName.SAR=Suudi Arabistan Riyali
 currenciesDisplayName.UAK=Ukrayna Karbovanetz
+currenciesDisplayName.SAR=Suudi Arabistan Riyali
+currenciesDisplayName.COU=Unidad de Valor Real
 currenciesDisplayName.UAH=Ukrayna Grivnas\u0131
 currenciesDisplayName.HUF=Macar Forinti
-currenciesDisplayName.COP=Kolombiya Pezosu
 currenciesDisplayName.QAR=Katar Riyali
+currenciesDisplayName.COP=Kolombiya Pezosu
 currenciesDisplayName.LTT=Litvanya Talonu
 currenciesDisplayName.PTE=Portekiz Esk\u00fcdosu
-currenciesDisplayName.AOR=Angola Kvanzas\u0131 Reajustado (1995-1999)
 currenciesDisplayName.UYU=Uruguay Pezosu (Uruguayo)
+currenciesDisplayName.AOR=Angola Kvanzas\u0131 Reajustado (1995-1999)
 currenciesDisplayName.GBP=\u0130ngiliz Sterlini
-currenciesDisplayName.BIF=Burundi Frang\u0131
-currenciesDisplayName.INR=Hindistan Rupisi
 currenciesDisplayName.ZRZ=Zaire Zairesi
-currenciesDisplayName.AON=Yeni Angola Kvanzas\u0131 (1990-2000)
-currenciesDisplayName.LTL=Litvanya Litas\u0131
+currenciesDisplayName.INR=Hindistan Rupisi
+currenciesDisplayName.BIF=Burundi Frang\u0131
 currenciesDisplayName.XFU=Frans\u0131z UIC-Frang\u0131
-currenciesDisplayName.KZT=Kazakistan Tengesi
-currenciesDisplayName.MZM=Mozambik Metical\u0131
+currenciesDisplayName.MZN=Mozambik Metikali
+currenciesDisplayName.LTL=Litvanya Litas\u0131
+currenciesDisplayName.AON=Yeni Angola Kvanzas\u0131 (1990-2000)
 currenciesDisplayName.UYP=Uruguay Pezosu (1975-1993)
+currenciesDisplayName.MZM=Eski Mozambik Metikali
+currenciesDisplayName.KZT=Kazakistan Tengesi
 currenciesDisplayName.AOK=Angola Kvanzas\u0131 (1977-1990)
-currenciesDisplayName.BUK=Burma Kyat\u0131
 currenciesDisplayName.GNS=Gine Syli
+currenciesDisplayName.BUK=Burma Kyat\u0131
 currenciesDisplayName.XFO=Frans\u0131z Alt\u0131n Frang\u0131
 currenciesDisplayName.PGK=Papua Yeni Gine Kinas\u0131
+currenciesDisplayName.UYI=Uruguay Peso en Unidades Indexadas
 currenciesDisplayName.SYP=Suriye Liras\u0131
-currenciesDisplayName.MZE=Mozambik Esk\u00fcdosu
 currenciesDisplayName.OMR=Umman Riyali
-currenciesDisplayName.NGN=Nijerya Nairas\u0131
+currenciesDisplayName.MZE=Mozambik Esk\u00fcdosu
 currenciesDisplayName.ZRN=Yeni Zaire Zairesi
-currenciesDisplayName.AOA=Angola Kvanzas\u0131
+currenciesDisplayName.NGN=Nijerya Nairas\u0131
 currenciesDisplayName.CNY=\u00c7in Yuan\u0131 Renminbi
+currenciesDisplayName.AOA=Angola Kvanzas\u0131
 currenciesDisplayName.MAF=Fas Frang\u0131
+currenciesDisplayName.RSD=S\u0131rp Dinar\u0131
 currenciesDisplayName.GNF=Gine Frang\u0131
-currenciesDisplayName.HTG=Haiti Gurdu
 currenciesDisplayName.MAD=Fas Dirhemi
-currenciesDisplayName.TRY=Yeni T\u00fcrk Liras\u0131
+currenciesDisplayName.HTG=Haiti Gurdu
+currenciesDisplayName.TRY=T\u00fcrk Liras\u0131
 currenciesDisplayName.MMK=Myanmar Kyat\u0131
+currenciesDisplayName.XRE=RINET Fonlar\u0131
 currenciesDisplayName.MYR=Malezya Ringiti
-currenciesDisplayName.LSL=Lesotho Lotisi
+currenciesDisplayName.LSM=Maloti
 currenciesDisplayName.XEU=Avrupa Para Birimi
-currenciesDisplayName.BHD=Bahreyn Dinar\u0131
+currenciesDisplayName.LSL=Lesotho Lotisi
 currenciesDisplayName.SLL=Sierra Leone Leonesi
+currenciesDisplayName.BHD=Bahreyn Dinar\u0131
 currenciesDisplayName.BTN=Bhutan Ngultrumu
-currenciesDisplayName.TRL=T\u00fcrk Liras\u0131
+currenciesDisplayName.TRL=Eski T\u00fcrk Liras\u0131
 currenciesDisplayName.KMF=Komorlar Frang\u0131
-currenciesDisplayName.ANG=Hollanda Antilleri Guldeni
 currenciesDisplayName.CZK=\u00c7ek Cumhuriyeti Korunas\u0131
+currenciesDisplayName.ANG=Hollanda Antilleri Guldeni
+currenciesDisplayName.AZN=Azeri Manat\u0131
 currenciesDisplayName.AZM=Azerbaycan Manat\u0131
 currenciesDisplayName.KYD=Kayman Adalar\u0131 Dolar\u0131
 currenciesDisplayName.GMD=Gambiya Dalasisi
+currenciesDisplayName.VEF=G\u00fc\u00e7l\u00fc Venezuela Bolivar\u0131
 currenciesDisplayName.BGN=Yeni Bulgar Levas\u0131
-currenciesDisplayName.CAD=Kanada Dolar\u0131
 currenciesDisplayName.MXV=Meksika Unidad de Inversion (UDI)
+currenciesDisplayName.CAD=Kanada Dolar\u0131
 currenciesDisplayName.BGL=Bulgar Levas\u0131 (Hard)
 currenciesDisplayName.VEB=Venezuela Bolivar\u0131
 currenciesDisplayName.MLF=Mali Frang\u0131
-currenciesDisplayName.ILS=Yeni \u0130srail \u015eekeli
 currenciesDisplayName.MXP=G\u00fcm\u00fc\u015f Meksika Pezosu (1861-1992)
+currenciesDisplayName.ILS=Yeni \u0130srail \u015eekeli
 currenciesDisplayName.PES=Peru Solu
-currenciesDisplayName.GYD=Guyana Dolar\u0131
 currenciesDisplayName.MXN=Meksika Pezosu
+currenciesDisplayName.GYD=Guyana Dolar\u0131
 currenciesDisplayName.ILP=\u0130srail Liras\u0131
-currenciesDisplayName.SKK=Slovak Korunas\u0131
 currenciesDisplayName.CYP=G\u00fcney K\u0131br\u0131s Liras\u0131
+currenciesDisplayName.SKK=Slovak Korunas\u0131
 currenciesDisplayName.XDR=\u00d6zel \u00c7ekme Hakk\u0131 (SDR)
 currenciesDisplayName.PEN=Yeni Peru Solu
 currenciesDisplayName.LRD=Liberya Dolar\u0131
 currenciesDisplayName.PEI=Peru \u0130nti
 currenciesDisplayName.AMD=Ermenistan Dram\u0131
 currenciesDisplayName.BSD=Bahama Dolar\u0131
+currenciesDisplayName.XPT=Platin
 currenciesDisplayName.HRK=H\u0131rvat Kunas\u0131
 currenciesDisplayName.CLP=\u015eili Pezosu
 currenciesDisplayName.HRD=H\u0131rvat Dinar\u0131
 currenciesDisplayName.XPF=CFP Frang\u0131
 currenciesDisplayName.FRF=Frans\u0131z Frang\u0131
+currenciesDisplayName.XPD=Paladyum
 currenciesDisplayName.BRR=Brezilya Kruzeirosu
 currenciesDisplayName.MKD=Makedonya Dinar\u0131
 currenciesDisplayName.CLF=\u015eili Unidades de Fomento
@@ -165,19 +191,20 @@ currenciesDisplayName.SIT=Slovenya Tolar\u0131
 currenciesDisplayName.JPY=Japon Yeni
 currenciesDisplayName.XOF=CFA Frang\u0131 BCEAO
 currenciesDisplayName.MVR=Maldiv Adalar\u0131 Rufiyaa
-currenciesDisplayName.GWE=Portekiz Ginesi Esk\u00fcdosu
 currenciesDisplayName.BEF=Bel\u00e7ika Frang\u0131
+currenciesDisplayName.GWE=Portekiz Ginesi Esk\u00fcdosu
 currenciesDisplayName.TOP=Tonga Pa\u02bbangas\u0131
 currenciesDisplayName.YUD=Yugoslav Dinar\u0131 (Hard)
 currenciesDisplayName.BEC=Bel\u00e7ika Frang\u0131 (konvertibl)
 currenciesDisplayName.SUR=Sovyet Rublesi
-currenciesDisplayName.ROL=Romen Leyi
-currenciesDisplayName.DDM=Do\u011fu Alman Mark\u0131
+currenciesDisplayName.RON=Romen Leyi
+currenciesDisplayName.ROL=Eski Romen Leyi
 currenciesDisplayName.BDT=Banglade\u015f Takas\u0131
+currenciesDisplayName.DDM=Do\u011fu Alman Mark\u0131
 currenciesDisplayName.XBD=Avrupa Hesap Birimi (XBD)
 currenciesDisplayName.AWG=Aruba Florini
 currenciesDisplayName.XBC=Avrupa Hesap Birimi (XBC)
-currenciesDisplayName.XBB=Avrupa Para Birimi
+currenciesDisplayName.XBB=Avrupa Para Birimi (EMU)
 currenciesDisplayName.XBA=Birle\u015fik Avrupa Birimi
 currenciesDisplayName.NOK=Norve\u00e7 Kronu
 currenciesDisplayName.MUR=Mauritius Rupisi
@@ -191,6 +218,7 @@ currenciesDisplayName.GIP=Cebelitar\u0131k Liras\u0131
 currenciesDisplayName.TND=Tunus Dinar\u0131
 currenciesDisplayName.CVE=Cape Verde Esk\u00fcdosu
 currenciesDisplayName.UGX=Uganda \u015eilini
+currenciesDisplayName.XAG=G\u00fcm\u00fc\u015f
 currenciesDisplayName.ZMK=Zambiya Kva\u00e7as\u0131
 currenciesDisplayName.JOD=\u00dcrd\u00fcn Dinar\u0131
 currenciesDisplayName.XAF=CFA Frang\u0131 BEAC
@@ -199,32 +227,36 @@ currenciesDisplayName.UGS=Uganda \u015eilini (1966-1987)
 currenciesDisplayName.STD=Sao Tome ve Principe Dobras\u0131
 currenciesDisplayName.WST=Bat\u0131 Samoa Talas\u0131
 currenciesDisplayName.KHR=Kambo\u00e7ya Rieli
-currenciesDisplayName.EUR=Euro
 currenciesDisplayName.DOP=Dominik Pezosu
+currenciesDisplayName.EUR=Euro
 currenciesDisplayName.BOV=Bolivya Mvdol
-currenciesDisplayName.MTP=Malta Liras\u0131
+currenciesDisplayName.MTP=Malta Sterlini
 currenciesDisplayName.USS=ABD Dolar\u0131 (Ayn\u0131 g\u00fcn)
 currenciesDisplayName.BOP=Bolivya Pezosu
-currenciesDisplayName.MTL=Malta Liras\u0131
 currenciesDisplayName.CUP=K\u00fcba Pezosu
+currenciesDisplayName.MTL=Malta Liras\u0131
 currenciesDisplayName.TMM=T\u00fcrkmenistan Manat\u0131
 currenciesDisplayName.USN=ABD Dolar\u0131 (Ertesi g\u00fcn)
+currenciesDisplayName.GHS=Gana Sedisi
 currenciesDisplayName.SGD=Singapur Dolar\u0131
 currenciesDisplayName.NZD=Yeni Zelanda Dolar\u0131
 currenciesDisplayName.USD=ABD Dolar\u0131
-currenciesDisplayName.HNL=Honduras Lempiras\u0131
 currenciesDisplayName.BOB=Bolivya Bolivyanosu
+currenciesDisplayName.HNL=Honduras Lempiras\u0131
+currenciesDisplayName.CHW=WIR Frang\u0131
 currenciesDisplayName.ITL=\u0130talyan Lireti
 currenciesDisplayName.PAB=Panama Balboas\u0131
 currenciesDisplayName.GTQ=Guatemala Ketzali
-currenciesDisplayName.LAK=Laos Kipi
-currenciesDisplayName.GHC=Gana Sedisi
+currenciesDisplayName.XXX=Bilinmeyen veya Ge\u00e7ersiz Para Birimi
 currenciesDisplayName.AUD=Avustralya Dolar\u0131
+currenciesDisplayName.GHC=Gana Sedisi (1979-2007)
+currenciesDisplayName.LAK=Laos Kipi
 currenciesDisplayName.NAD=Namibya Dolar\u0131
 currenciesDisplayName.KGS=K\u0131rg\u0131z Somu
 currenciesDisplayName.MGF=Madagaskar Frang\u0131
-currenciesDisplayName.CHF=\u0130svi\u00e7re Frang\u0131
 currenciesDisplayName.BBD=Barbados Dolar\u0131
+currenciesDisplayName.CHF=\u0130svi\u00e7re Frang\u0131
+currenciesDisplayName.CHE=WIR Avrosu
 currenciesDisplayName.MGA=Madagaskar Ariary
 currenciesDisplayName.PYG=Paraguay Guaranisi
 currenciesDisplayName.PLZ=Polonya Zlotisi (1950-1995)
@@ -232,15 +264,16 @@ currenciesDisplayName.YER=Yemen Riyali
 currenciesDisplayName.ATS=Avusturya \u015eilini
 currenciesDisplayName.ETB=Etiyopya Birri
 currenciesDisplayName.BND=Brunei Dolar\u0131
-currenciesDisplayName.JMD=Jamaika Dolar\u0131
 currenciesDisplayName.EGP=M\u0131s\u0131r Liras\u0131
+currenciesDisplayName.JMD=Jamaika Dolar\u0131
 currenciesDisplayName.PLN=Polonya Zlotisi
 currenciesDisplayName.DZD=Cezayir Dinar\u0131
 currenciesDisplayName.ISK=\u0130zlanda Kronu
 currenciesDisplayName.SRG=Surinam Guldeni
 currenciesDisplayName.LYD=Libya Dinar\u0131
-currenciesDisplayName.BZD=Belize Dolar\u0131
+currenciesDisplayName.SRD=Surinam Dolar\u0131
 currenciesDisplayName.BAM=Konvertibl Bosna Hersek Mark\u0131
+currenciesDisplayName.BZD=Belize Dolar\u0131
 currenciesDisplayName.ESP=\u0130spanyol Pezetas\u0131
 currenciesDisplayName.KRW=G\u00fcney Kore Wonu
 currenciesDisplayName.NLG=Hollanda Florini
@@ -250,35 +283,38 @@ currenciesDisplayName.ZWD=Zimbabwe Dolar\u0131
 currenciesDisplayName.SEK=\u0130sve\u00e7 Kronu
 currenciesDisplayName.CSK=\u00c7ekoslavak Korunas\u0131 (Hard)
 currenciesDisplayName.BYR=Beyaz Rusya Rublesi
+currenciesDisplayName.ESB=\u0130spanyol Pesetas\u0131 (konvertibl hesap)
 currenciesDisplayName.IRR=\u0130ran Riyali
+currenciesDisplayName.ESA=\u0130spanyol Pesetas\u0131 (A hesab\u0131)
 currenciesDisplayName.PKR=Pakistan Rupisi
 currenciesDisplayName.BMD=Bermuda Dolar\u0131
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=Eski S\u0131rbistan Dinar\u0131
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.JPY=\u00a5
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
@@ -289,6 +325,7 @@ currenciesSymbol.NOK=NKr
 currenciesSymbol.UGX=U Sh
 currenciesSymbol.BEF=BF
 currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
 currenciesSymbol.SZL=E
 currenciesSymbol.STD=Db
 currenciesSymbol.SAR=SRl
@@ -300,23 +337,26 @@ currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
 currenciesSymbol.DJF=DF
 currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
 currenciesSymbol.SGD=S$
 currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
 currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
 currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -324,9 +364,10 @@ currenciesSymbol.MYR=RM
 currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
 currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.BOB=Bs
 currenciesSymbol.CNY=Y
@@ -341,29 +382,34 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
 currenciesSymbol.BZD=BZ$
 currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=Oca®\u015eub®Mar®Nis®May®Haz®Tem®A\u011fu®Eyl®Eki®Kas®Ara®®
-months=Ocak®\u015eubat®Mart®Nisan®May\u0131s®Haziran®Temmuz®A\u011fustos®Eyl\u00fcl®Ekim®Kas\u0131m®Aral\u0131k®®
-shortWeekdays=®Paz®Pzt®Sal®\u00c7ar®Per®Cum®Cmt®
-weekdays=®Pazar®Pazartesi®Sal\u0131®\u00c7ar\u015famba®Per\u015fembe®Cuma®Cumartesi®
-firstDayOfWeek=mon
-eras=M\u00d6®MS®
+shortMonths=Oca\u00ae\u015eub\u00aeMar\u00aeNis\u00aeMay\u00aeHaz\u00aeTem\u00aeA\u011fu\u00aeEyl\u00aeEki\u00aeKas\u00aeAra\u00ae\u00ae
+months=Ocak\u00ae\u015eubat\u00aeMart\u00aeNisan\u00aeMay\u0131s\u00aeHaziran\u00aeTemmuz\u00aeA\u011fustos\u00aeEyl\u00fcl\u00aeEkim\u00aeKas\u0131m\u00aeAral\u0131k\u00ae\u00ae
+shortWeekdays=\u00aePaz\u00aePzt\u00aeSal\u00ae\u00c7ar\u00aePer\u00aeCum\u00aeCmt\u00ae
+weekdays=\u00aePazar\u00aePazartesi\u00aeSal\u0131\u00ae\u00c7ar\u015famba\u00aePer\u015fembe\u00aeCuma\u00aeCumartesi\u00ae
+eras=M\u00d6\u00aeMS\u00ae
+ampms=AM\u00aePM\u00ae
 shortDateFormat=dd.MM.yyyy
 mediumDateFormat=dd.MMM.yyyy
-longDateFormat=dd MMMM yyyy EEEE
+longDateFormat=d MMMM yyyy
 fullDateFormat=dd MMMM yyyy EEEE
-zoneStrings=Pacific/Honolulu®Hawaii Standart Saati®Hawaii Standart Saati®©America/Los_Angeles®Pasifik Standart Saati®Pasifik Yaz Saati®©America/Denver®ABD S\u0131rada\u011flar Standart Saati®ABD S\u0131rada\u011flar Yaz Saati®©America/Phoenix®ABD S\u0131rada\u011flar Standart Saati®ABD S\u0131rada\u011flar Standart Saati®©America/Chicago®Merkezi Standart Saati®Merkezi Yaz Saati®©America/Indianapolis®Do\u011fu Standart Saati®Do\u011fu Standart Saati®©America/St_Johns®Newfoundland Standart Saati®Newfoundland Yaz Saati®©America/Anchorage®Alaska Standart Saati®Alaska Yaz Saati®©Asia/Shanghai®\u00c7in Standart Saati®\u00c7in Standart Saati®©America/New_York®Do\u011fu Standart Saati®Do\u011fu Yaz Saati®©America/Halifax®Atlantik Standart Saati®Atlantik Yaz Saati®©
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Marshall_Islands\u00aeMarshall Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00ae\u015eev\u00e7enko Saati\u00ae\u00ae\u015eev\u00e7enko Yaz Saati\u00ae\u00ae\u00a9Bangladesh\u00aeBanglade\u015f Saati\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeAvustralya Bat\u0131 Merkezi Standart Saati\u00ae\u00aeAvustralya Bat\u0131 Merkezi Yaz Saati\u00ae\u00ae\u00a9Marquesas\u00aeMarkiz Saati\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeOrta Endonezya Saati\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeDo\u011fu Standart Saati\u00ae\u00aeDo\u011fu Yaz Saati\u00ae\u00ae\u00a9China\u00ae\u00c7in Standart Saati\u00aeCST (\u00c7in)\u00ae\u00c7in Yaz Saati\u00aeCDT (\u00c7in)\u00ae\u00a9Omsk\u00aeOmsk Saati\u00ae\u00aeOmsk Yaz Saati\u00ae\u00ae\u00a9Guyana\u00aeGuyana Saati\u00ae\u00ae\u00ae\u00ae\u00a9Uzbekistan\u00ae\u00d6zbekistan Saati\u00ae\u00ae\u00d6zbekistan Yaz Saati\u00ae\u00ae\u00a9Uruguay\u00aeUruguay Saati\u00ae\u00aeUruguay Yaz Saati\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeDo\u011fu Kazakistan Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeKara\u00e7i Saati\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeTiflis Saati\u00ae\u00aeTiflis Yaz Saati\u00ae\u00ae\u00a9Tashkent\u00aeTa\u015fkent Saati\u00ae\u00aeTa\u015fkent Yaz Saati\u00ae\u00ae\u00a9Changbai\u00aeChangbai Saati\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeChatham Standart Saati\u00ae\u00aeChatham Yaz Saati\u00ae\u00ae\u00a9South_Georgia\u00aeG\u00fcney Georgia Saati\u00aeGST (G\u00fcney Georgia)\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeFrans\u0131z Guyanas\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeBi\u015fkek Saati\u00ae\u00aeBi\u015fkek Yaz Saati\u00ae\u00ae\u00a9Europe_Eastern\u00aeDo\u011fu Avrupa Saati\u00ae\u00aeDo\u011fu Avrupa Yaz Saati\u00ae\u00ae\u00a9Greenland_Eastern\u00aeDo\u011fu Gr\u00f6nland Saati\u00ae\u00aeDo\u011fu Gr\u00f6nland Yaz Saati\u00ae\u00ae\u00a9Dushanbe\u00aeDu\u015fanbe Saati\u00ae\u00aeDu\u015fanbe Yaz Saati\u00ae\u00ae\u00a9Dacca\u00aeDakka Saati\u00ae\u00ae\u00ae\u00ae\u00a9Chile\u00ae\u015eili Saati\u00ae\u00ae\u015eili Yaz Saati\u00ae\u00ae\u00a9Europe_Central\u00aeOrta Avrupa Saati\u00ae\u00aeOrta Avrupa Yaz Saati\u00ae\u00ae\u00a9Acre\u00aeAcre Saati\u00ae\u00aeAcre Yaz Saati\u00ae\u00ae\u00a9Arabian\u00aeArap Standart Saati\u00aeAST (Arap)\u00aeArap Yaz Saati\u00aeADT (Arap)\u00ae\u00a9East_Timor\u00aeDo\u011fu Timor Saati\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeYeni Zelanda Standart Saati\u00ae\u00aeYeni Zelanda Yaz Saati\u00ae\u00ae\u00a9Indochina\u00ae\u00c7inhindi Saati\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeKwajalein Saati\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00aeG\u00fcney Afrika Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9DumontDUrville\u00aeDumont-d'Urville Saati\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeABD S\u0131rada\u011flar Standart Saati\u00ae\u00aeABD S\u0131rada\u011flar Yaz Saati\u00ae\u00ae\u00a9Tokelau\u00aeTokelau Saati\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeEkvator Saati\u00ae\u00ae\u00ae\u00ae\u00a9Hovd\u00aeHovd Saati\u00ae\u00aeHovd Yaz Saati\u00ae\u00ae\u00a9Africa_Central\u00aeOrta Afrika Saati\u00ae\u00ae\u00ae\u00ae\u00a9Phoenix_Islands\u00aePhoenix Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00aeErmenistan Saati\u00aeAMT (Ermenistan)\u00aeErmenistan Yaz Saati\u00aeAMST (Ermenistan)\u00ae\u00a9Tuvalu\u00aeTuvalu Saati\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00aeSakhalin Saati\u00ae\u00aeSakhalin Yaz Saati\u00ae\u00ae\u00a9Samara\u00aeSamara Saati\u00ae\u00aeSamara Yaz Saati\u00ae\u00ae\u00a9Palau\u00aePalau Saati\u00ae\u00ae\u00ae\u00ae\u00a9Kosrae\u00aeKosrae Saati\u00ae\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii Standart Saati\u00ae\u00aeAlaska-Hawaii Yaz Saati\u00ae\u00ae\u00a9Pitcairn\u00aePitcairn Saati\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00aeMerkezi Standart Saati\u00ae\u00aeMerkezi Yaz Saati\u00ae\u00ae\u00a9Malaysia\u00aeMalezya Saati\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeMoskova Standart Saati\u00ae\u00aeMoskova Yaz Saati\u00ae\u00ae\u00a9Vanuatu\u00aeVanuatu Saati\u00ae\u00aeVanuatu Yaz Saati\u00ae\u00ae\u00a9Kamchatka\u00aePetropavlovsk-Kam\u00e7atski Saati\u00ae\u00aePetropavlovsk-Kam\u00e7atski Yaz Saati\u00ae\u00ae\u00a9Cape_Verde\u00aeCape Verde Saati\u00ae\u00aeCape Verde Yaz Saati\u00ae\u00ae\u00a9Aqtobe\u00aeAkt\u00f6be Saati\u00aeAQTT (Akt\u00f6be)\u00aeAkt\u00f6be Yaz Saati\u00aeAQTST (Akt\u00f6be)\u00ae\u00a9Falkland\u00aeFalkland Adalar\u0131 Saati\u00ae\u00aeFalkland Adalar\u0131 Yaz Saati\u00ae\u00ae\u00a9Peru\u00aePeru Saati\u00ae\u00aePeru Yaz Saati\u00ae\u00ae\u00a9Krasnoyarsk\u00aeKrasnoyarsk Saati\u00ae\u00aeKrasnoyarsk Yaz Saati\u00ae\u00ae\u00a9Argentina\u00aeArjantin Saati\u00ae\u00aeArjantin Yaz Saati\u00ae\u00ae\u00a9Qyzylorda\u00aeK\u0131z\u0131lorda Saati\u00ae\u00aeK\u0131z\u0131lorda Yaz Saati\u00ae\u00ae\u00a9Tahiti\u00aeTahiti Saati\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00aeHint Okyanusu Saati\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeGreenwich Merkez Saati\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00aeVladivostok Saati\u00ae\u00aeVladivostok Yaz Saati\u00ae\u00ae\u00a9Atlantic\u00aeAtlantik Standart Saati\u00ae\u00aeAtlantik Yaz Saati\u00ae\u00ae\u00a9Truk\u00aeTruk Saati\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aeRothera Saati\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeWallis ve Futuna Saati\u00ae\u00ae\u00ae\u00ae\u00a9Syowa\u00aeShowa Saati\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00aeKore Standart Saati\u00ae\u00aeKore Yaz Saati\u00ae\u00ae\u00a9Ashkhabad\u00aeA\u015fkabat Saati\u00ae\u00aeA\u015fkabat Yaz Saati\u00ae\u00ae\u00a9Australia_Western\u00aeBat\u0131 Avustralya Standart Saati\u00ae\u00aeBat\u0131 Avustralya Yaz Saati\u00ae\u00ae\u00a9Gilbert_Islands\u00aeGilbert Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Seychelles\u00aeSey\u015feller Saati\u00ae\u00ae\u00ae\u00ae\u00a9Cocos\u00aeCocos Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00aeVenezuela Saati\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00aeSolomon Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeParaguay Saati\u00ae\u00aeParaguay Yaz Saati\u00ae\u00ae\u00a9Yakutsk\u00aeYakutsk Saati\u00ae\u00aeYakutsk Yaz Saati\u00ae\u00ae\u00a9Azerbaijan\u00aeAzerbaycan Saati\u00ae\u00aeAzerbaycan Yaz Saati\u00ae\u00ae\u00a9Kizilorda\u00aeK\u0131z\u0131lorda Saati\u00ae\u00aeK\u0131z\u0131lorda Yaz Saati\u00ae\u00ae\u00a9Yukon\u00aeYukon Standart Saati\u00ae\u00aeYukon Yaz Saati\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHollanda Guyanas\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeErivan Saati\u00ae\u00aeErivan Yaz Saati\u00ae\u00ae\u00a9Turkmenistan\u00aeT\u00fcrkmenistan Saati\u00ae\u00aeT\u00fcrkmenistan Yaz Saati\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundland Standart Saati\u00ae\u00aeNewfoundland Yaz Saati\u00ae\u00ae\u00a9Africa_Eastern\u00aeDo\u011fu Afrika Saati\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00aeWake Adas\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aePakistan Saati\u00ae\u00aePakistan Yaz Saati\u00ae\u00ae\u00a9Singapore\u00aeSingapur Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybi\u015fev Saati\u00ae\u00aeKuybi\u015fev Yaz Saati\u00ae\u00ae\u00a9Europe_Western\u00aeBat\u0131 Avrupa Saati\u00ae\u00aeBat\u0131 Avrupa Yaz Saati\u00ae\u00ae\u00a9India\u00aeHindistan Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeChamorro Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00aeBat\u0131 Gr\u00f6nland Saati\u00ae\u00aeBat\u0131 Gr\u00f6nland Yaz Saati\u00ae\u00ae\u00a9Bolivia\u00aeBolivya Saati\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeBat\u0131 Endonezya Saati\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeGalapagos Saati\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00ae\u0130ran Standart Saati\u00ae\u00ae\u0130ran Yaz Saati\u00ae\u00ae\u00a9Suriname\u00aeSurinam Saati\u00ae\u00ae\u00ae\u00ae\u00a9Vostok\u00aeVostok Saati\u00ae\u00ae\u00ae\u00ae\u00a9Papua_New_Guinea\u00aePapua Yeni Gine Saati\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeMalaya Saati\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBering Standart Saati\u00ae\u00aeBering Yaz Saati\u00ae\u00ae\u00a9Mawson\u00aeMawson Saati\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeG\u00fcrcistan Saati\u00ae\u00aeG\u00fcrcistan Yaz Saati\u00ae\u00ae\u00a9Kyrgystan\u00aeK\u0131rg\u0131zistan Saati\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeFrans\u0131z G\u00fcney B\u00f6lgeleri Saati\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aePonape Saati\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeLanka Saati\u00ae\u00ae\u00ae\u00ae\u00a9Christmas\u00aeChristmas Adas\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeFilipinler Saati\u00ae\u00aeFilipinler Yaz Saati\u00ae\u00ae\u00a9Argentina_Western\u00aeBat\u0131 Arjantin Saati\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeVolgograd Saati\u00ae\u00aeVolgograd Yaz Saati\u00ae\u00ae\u00a9Hong_Kong\u00aeHong Kong Saati\u00ae\u00aeHong Kong Yaz Saati\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeBat\u0131 Kazakistan Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeGuam Standart Saati\u00aeGST (Guam)\u00ae\u00ae\u00ae\u00a9Amazon\u00aeAmazon Saati\u00ae\u00aeAmazon Yaz Saati\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre ve Miquelon Standart Saati\u00ae\u00aePierre ve Miquelon Yaz Saati\u00ae\u00ae\u00a9Niue\u00aeNiue Saati\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aeT\u00fcrkiye Saati\u00ae\u00aeT\u00fcrkiye Yaz Saati\u00ae\u00ae\u00a9Nepal\u00aeNepal Saati\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeCook Adalar\u0131 Saati\u00ae\u00aeCook Adalar\u0131 Yar\u0131 Yaz Saati\u00ae\u00ae\u00a9Macau\u00aeMakao Saati\u00ae\u00aeMakao Yaz Saati\u00ae\u00ae\u00a9Mauritius\u00aeMauritius Saati\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aeK\u00fcba Standart Saati\u00aeCST (K\u00fcba)\u00aeK\u00fcba Yaz Saati\u00aeCDT (K\u00fcba)\u00ae\u00a9Lord_Howe\u00aeLord Howe Standart Saati\u00ae\u00aeLord Howe Yaz Saati\u00ae\u00ae\u00a9Tonga\u00aeTonga Saati\u00ae\u00aeTonga Yaz Saati\u00ae\u00ae\u00a9Maldives\u00aeMaldivler Saati\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00aeUlan Batur Saati\u00ae\u00aeUlan Batur Yaz Saati\u00ae\u00ae\u00a9Norfolk\u00aeNorfolk Adas\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Anadyr\u00aeAnad\u0131r Saati\u00ae\u00aeAnad\u0131r Yaz Saati\u00ae\u00ae\u00a9Irkutsk\u00aeIrkutsk Saati\u00ae\u00aeIrkutsk Yaz Saati\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeDo\u011fu Endonezya Saati\u00ae\u00ae\u00ae\u00ae\u00a9Myanmar\u00aeMyanmar Saati\u00ae\u00ae\u00ae\u00ae\u00a9Reunion\u00aeReunion Saati\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeGulf Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeAfganistan Saati\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeKa\u015fgar Saati\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeBrunei Saati\u00ae\u00ae\u00ae\u00ae\u00a9Novosibirsk\u00aeNovosibirsk Saati\u00ae\u00aeNovosibirsk Yaz Saati\u00ae\u00ae\u00a9Brasilia\u00aeBrezilya Saati\u00ae\u00aeBrezilya Yaz Saati\u00ae\u00ae\u00a9Line_Islands\u00aeLine Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9America_Pacific\u00aePasifik Standart Saati\u00ae\u00aePasifik Yaz Saati\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHawaii-Aleutian Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeSemerkand Saati\u00aeSAMT (Semerkand)\u00aeSemerkand Yaz Saati\u00aeSAMST (Semerkand)\u00ae\u00a9Australia_Central\u00aeOrta Avustralya Standart Saati\u00ae\u00aeOrta Avustralya Yaz Saati\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu Saati\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeFiji Saati\u00ae\u00aeFiji Yaz Saati\u00ae\u00ae\u00a9Israel\u00ae\u0130srail Standart Saati\u00aeIST (\u0130srail)\u00ae\u0130srail Yaz Saati\u00ae\u00ae\u00a9Yekaterinburg\u00aeYekaterinburg Saati\u00ae\u00aeYekaterinburg Yaz Saati\u00ae\u00ae\u00a9Easter\u00aeEaster Adas\u0131 Saati\u00ae\u00aeEaster Adas\u0131 Yaz Saati\u00ae\u00ae\u00a9Almaty\u00aeAlmati Saati\u00ae\u00aeAlmati Yaz Saati\u00ae\u00ae\u00a9Sverdlovsk\u00aeSverdlovsk Saati\u00ae\u00aeSverdlovsk Yaz Saati\u00ae\u00ae\u00a9Africa_Western\u00aeBat\u0131 Afrika Saati\u00ae\u00aeBat\u0131 Afrika Yaz Saati\u00ae\u00ae\u00a9Samoa\u00aeSamoa Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeBhutan Saati\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeUral Saati\u00ae\u00aeUral Yaz Saati\u00ae\u00ae\u00a9Alaska\u00aeAlaska Standart Saati\u00ae\u00aeAlaska Yaz Saati\u00ae\u00ae\u00a9Urumqi\u00aeUrum\u00e7i Saati\u00ae\u00ae\u00ae\u00ae\u00a9Colombia\u00aeKolombiya Saati\u00ae\u00aeKolombiya Yaz Saati\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk Saati\u00ae\u00aeAktyubinsk Yaz Saati\u00ae\u00ae\u00a9North_Mariana\u00aeKuzey Mariana Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Nauru\u00aeNauru Saati\u00ae\u00ae\u00ae\u00ae\u00a9Magadan\u00aeMagadan Saati\u00ae\u00aeMagadan Yaz Saati\u00ae\u00ae\u00a9Tajikistan\u00aeTacikistan Saati\u00ae\u00ae\u00ae\u00ae\u00a9New_Caledonia\u00aeYeni Kaledonya Saati\u00ae\u00aeYeni Kaledonya Yaz Saati\u00ae\u00ae\u00a9Choibalsan\u00ae\u00c7oybalsan Saati\u00ae\u00ae\u00c7oybalsan Yaz Saati\u00ae\u00ae\u00a9Azores\u00aeAzor Saati\u00ae\u00aeAzor Yaz Saati\u00ae\u00ae\u00a9Aqtau\u00aeAktau Saati\u00aeAQTT (Aktau)\u00aeAktau Yaz Saati\u00aeAQTST (Aktau)\u00ae\u00a9Baku\u00aeBak\u00fc Saati\u00ae\u00aeBak\u00fc Yaz Saati\u00ae\u00ae\u00a9Australia_Eastern\u00aeDo\u011fu Avustralya Standart Saati\u00ae\u00aeDo\u011fu Avustralya Yaz Saati\u00ae\u00ae\u00a9Davis\u00aeDavis Saati\u00ae\u00ae\u00ae\u00ae\u00a9Gambier\u00aeGambier Saati\u00ae\u00ae\u00ae\u00ae\u00a9Noronha\u00aeFernando de Noronha Saati\u00ae\u00aeFernando de Noronha Yaz Saati\u00ae\u00ae\u00a9Greenland_Central\u00aeOrta Gr\u00f6nland Saati\u00ae\u00aeOrta Gr\u00f6nland Yaz Saati\u00ae\u00ae\u00a9Japan\u00aeJaponya Standart Saati\u00ae\u00aeJaponya Yaz Saati\u00ae\u00ae\u00a9Borneo\u00aeBorneo Saati\u00ae\u00aeBorneo Yaz Saati\u00ae\u00ae\u00a9
 territories.TL=Do\u011fu Timor
 territories.TK=Tokelau
 territories.TJ=Tacikistan
@@ -388,10 +434,11 @@ territories.GL=Gr\u00f6nland
 territories.SV=El Salvador
 territories.062=G\u00fcney Orta Asya
 territories.ST=Sao Tome ve Principe
-territories.061=Polinezya
 territories.GI=Cebelitar\u0131k
+territories.061=Polinezya
 territories.GH=Gana
 territories.SR=Surinam
+territories.GG=Guernsey
 territories.GF=Frans\u0131z Guyanas\u0131
 territories.GE=G\u00fcrcistan
 territories.SO=Somali
@@ -412,26 +459,27 @@ territories.SC=Sey\u015feller
 territories.SB=Solomon Adalar\u0131
 territories.SA=Suudi Arabistan
 territories.FR=Fransa
-territories.057=Mikronezya
 territories.FO=Faroe Adalar\u0131
+territories.057=Mikronezya
 territories.FM=Mikronezya Federal Eyaletleri
 territories.RW=Ruanda
 territories.054=Melanezya
-territories.053=Avustralya ve Yeni Zelanda
 territories.FK=Falkland Adalar\u0131 (Malvinalar)
+territories.053=Avustralya ve Yeni Zelanda
 territories.RU=Rusya Federasyonu
 territories.FJ=Fiji
 territories.FI=Finlandiya
+territories.RS=S\u0131rbistan
 territories.RO=Romanya
 territories.RE=Reunion
 territories.ET=Etiyopya
 territories.ES=\u0130spanya
 territories.ER=Eritre
-territories.833=Man Adas\u0131
+territories.QU=Avrupa Birli\u011fi
 territories.EH=Bat\u0131 Sahara
 territories.EG=M\u0131s\u0131r
-territories.830=Kanal Adalar\u0131
 territories.EE=Estonya
+territories.830=Kanal Adalar\u0131
 territories.QO=Uzak Okyanusya
 territories.EC=Ekvator
 territories.DZ=Cezayir
@@ -439,9 +487,10 @@ territories.QA=Katar
 territories.039=G\u00fcney Avrupa
 territories.DO=Dominik Cumhuriyeti
 territories.PY=Paraguay
-territories.035=G\u00fcney Do\u011fu Asya
 territories.DM=Dominik
+territories.035=G\u00fcney Do\u011fu Asya
 territories.PW=Palau
+territories.034=G\u00fcney Asya
 territories.DK=Danimarka
 territories.DJ=Cibuti
 territories.PT=Portekiz
@@ -458,7 +507,7 @@ territories.PG=Papua Yeni Gine
 territories.PF=Frans\u0131z Polinezyas\u0131
 territories.CZ=\u00c7ek Cumhuriyeti
 territories.PE=Peru
-territories.CY=K\u0131br\u0131s
+territories.CY=G\u00fcney K\u0131br\u0131s Rum Kesimi
 territories.CX=Christmas Adas\u0131
 territories.CV=Cape Verde
 territories.PA=Panama
@@ -471,15 +520,16 @@ territories.CN=\u00c7in
 territories.CM=Kamerun
 territories.CL=\u015eili
 territories.CK=Cook Adalar\u0131
-territories.CI=Fildi\u015fi Sahilleri
 territories.021=Kuzey Amerika
+territories.CI=Fildi\u015fi Sahilleri
 territories.CH=\u0130svi\u00e7re
 territories.CG=Kongo
 territories.CF=Orta Afrika Cumhuriyeti
 territories.CD=Kongo Demokratik Cumhuriyeti
-territories.CC=Cocos (Keeling) Adalar\u0131
+territories.CC=Cocos Adalar\u0131
 territories.OM=Umman
 territories.CA=Kanada
+territories.419=Latin Amerika ve Karayipler
 territories.BZ=Belize
 territories.BY=Beyaz Rusya
 territories.BW=Botsvana
@@ -488,29 +538,32 @@ territories.BT=Bhutan
 territories.BS=Bahamalar
 territories.BR=Brezilya
 territories.019=Amerika
-territories.018=G\u00fcney Afrika
+territories.018=G\u00fcney Afrika [018]
 territories.NZ=Yeni Zelanda
-territories.BO=Bolivya
 territories.017=Orta Afrika
+territories.BO=Bolivya
 territories.BN=Brunei
-territories.BM=Bermuda
 territories.015=Kuzey Afrika
+territories.BM=Bermuda
 territories.014=Do\u011fu Afrika
+territories.BL=Saint Barthelemy
 territories.013=Orta Amerika
-territories.NU=Niue Adalar\u0131
+territories.NU=Niue
 territories.BJ=Benin
-territories.BI=Burundi
 territories.011=Bat\u0131 Afrika
+territories.BI=Burundi
+territories.172=Ba\u011f\u0131ms\u0131z Devletler Toplulu\u011fu
 territories.BH=Bahreyn
-territories.NR=Nauru Adas\u0131
+territories.NR=Nauru
 territories.BG=Bulgaristan
 territories.BF=Burkina Faso
 territories.NP=Nepal
 territories.BE=Bel\u00e7ika
+territories.ZZ=Bilinmeyen veya Ge\u00e7ersiz B\u00f6lge
 territories.NO=Norve\u00e7
 territories.BD=Banglade\u015f
 territories.BB=Barbados
-territories.ZW=Zimbabwe
+territories.ZW=Zimbabve
 territories.NL=Hollanda
 territories.BA=Bosna Hersek
 territories.NI=Nikaragua
@@ -527,24 +580,25 @@ territories.AU=Avustralya
 territories.AT=Avusturya
 territories.AS=Amerikan Samoas\u0131
 territories.AR=Arjantin
-territories.009=Okyanusya
 territories.AQ=Antarktika
+territories.009=Okyanusya
 territories.MZ=Mozambik
 territories.AO=Angola
 territories.MY=Malezya
 territories.AN=Hollanda Antilleri
 territories.MX=Meksika
-territories.005=G\u00fcney Amerika
 territories.AM=Ermenistan
+territories.005=G\u00fcney Amerika
 territories.MW=Malavi
 territories.AL=Arnavutluk
 territories.MV=Maldivler
+territories.003=Kuzey Amerika
 territories.ZA=G\u00fcney Afrika
 territories.MU=Mauritius
 territories.002=Afrika
 territories.MT=Malta
-territories.001=D\u00fcnya
 territories.AI=Anguilla
+territories.001=D\u00fcnya
 territories.MS=Montserrat
 territories.MR=Moritanya
 territories.AG=Antigua ve Barbuda
@@ -552,15 +606,17 @@ territories.MQ=Martinik
 territories.AF=Afganistan
 territories.MP=Kuzey Mariana Adalar\u0131
 territories.AE=Birle\u015fik Arap Emirlikleri
-territories.MO=Makao S.A.R. \u00c7in
+territories.MO=Makao
 territories.AD=Andora
 territories.MN=Mo\u011folistan
 territories.MM=Myanmar
 territories.ML=Mali
-territories.MK=Makedonya Cumhuriyeti
+territories.MK=Makedonya
 territories.YT=Mayotte
 territories.MH=Marshall Adalar\u0131
 territories.MG=Madagaskar
+territories.MF=Saint Martin
+territories.ME=Karada\u011f
 territories.MD=Moldovya Cumhuriyeti
 territories.MC=Monako
 territories.MA=Fas
@@ -584,10 +640,11 @@ territories.KZ=Kazakistan
 territories.KY=Kayman Adalar\u0131
 territories.KW=Kuveyt
 territories.145=Bat\u0131 Asya
+territories.143=Orta Asya
 territories.142=Asya
 territories.KR=G\u00fcney Kore
 territories.KP=Kuzey Kore
-territories.KN=Saint Kittler ve Neviler
+territories.KN=Saint Kitts ve Nevis
 territories.KM=Komorlar
 territories.KI=Kiribati
 territories.WS=Samoa
@@ -599,12 +656,13 @@ territories.JP=Japonya
 territories.JO=\u00dcrd\u00fcn
 territories.JM=Jamaika
 territories.VU=Vanuatu
+territories.JE=Jersey
 territories.VN=Vietnam
 territories.VI=ABD Virgin Adalar\u0131
 territories.VG=\u0130ngiliz Virgin Adalar\u0131
 territories.VE=Venezuela
 territories.VC=Saint Vincent ve Grenadinler
-territories.VA=Kutsal Devlet (Vatikan \u015eehir Devleti)
+territories.VA=Vatikan
 territories.IT=\u0130talya
 territories.IS=\u0130zlanda
 territories.IR=\u0130ran
@@ -613,6 +671,7 @@ territories.UZ=\u00d6zbekistan
 territories.IO=Hint Okyanusu \u0130ngiliz B\u00f6lgesi
 territories.UY=Uruguay
 territories.IN=Hindistan
+territories.IM=Man Adas\u0131
 territories.IL=\u0130srail
 territories.US=Amerika Birle\u015fik Devletleri
 territories.IE=\u0130rlanda
@@ -628,266 +687,540 @@ territories.HN=Honduras
 territories.HM=Heard Adas\u0131 ve McDonald Adalar\u0131
 territories.TW=Tayvan
 territories.TV=Tuvalu
-territories.HK=Hong Kong SAR - \u00c7in
+territories.HK=Hong Kong
 territories.TT=Trinidad ve Tobago
 territories.TR=T\u00fcrkiye
 territories.TO=Tonga
 territories.TN=Tunus
 territories.TM=T\u00fcrkmenistan
-languages.lb=L\u00fcksemburg Dili
-languages.la=Latince
+languages.gwi=Gwich\u02bcin
+languages.akk=Akad Dili
+languages.eka=Ekajuk
+languages.ijo=Ijo
 languages.xh=Xhosa
-languages.ky=K\u0131rg\u0131zca
-languages.iro=Iroquoian Dilleri
-languages.ku=K\u00fcrt\u00e7e
-languages.krc=Kara\u00e7ay-Balkar
-languages.ks=Ke\u015fmirce
-languages.ypk=Yupik Dilleri
-languages.ko=Korece
-languages.kn=Kannada
-languages.km=Kambo\u00e7ya Dili
-languages.kl=Gr\u00f6nland Dili
-languages.ira=\u0130ran Dili
-languages.kk=Kazak Dili
-languages.grc=Antik Yunan (1453'e kadar)
-languages.crp=Creoles ve Pidgins (Di\u011fer)
+languages.sux=S\u00fcmerce
+languages.sus=Susu
+languages.mis=\u00c7e\u015fitli Diller
+languages.loz=Lozi
+languages.tog=Nyasa Tonga
+languages.zbl=Blis Sembolleri
+languages.pon=Pohnpeian
+languages.min=Minangkabau
+languages.suk=Sukuma
 languages.wo=Wolof
-languages.art=Yapay (Di\u011fer)
-languages.ka=G\u00fcrc\u00fcce
-languages.crh=K\u0131r\u0131m T\u00fcrk\u00e7esi; K\u0131r\u0131m Tatarcas\u0131
-languages.gem=Almanca tabanl\u0131 (Di\u011fer)
-languages.afa=Afro Asya Dilleri (Di\u011fer)
-languages.jv=Java Dili
-languages.arc=Aramice
-languages.cel=Kelt\u00e7e (Di\u011fer)
-languages.sco=\u0130sko\u00e7
-languages.vo=Volapuk
-languages.tut=Altay Dilleri (Di\u011fer)
-languages.ja=Japonca
-languages.vi=Vietnam Dili
-languages.tup=Tupi dilleri
-languages.iu=Inuktitut
-languages.it=\u0130talyanca
-languages.is=\u0130zlandaca
-languages.ady=Adige
+languages.lol=Mongo
+languages.kut=Kutenai
+languages.mic=Micmac
+languages.wa=Walloon
+languages.kum=Kumuk\u00e7a
+languages.zap=Zapotek Dili
+languages.ain=Ainu
+languages.cus=Di\u011fer Ku\u015fitik Diller
+languages.jbo=Lojban
+languages.doi=Dogri
+languages.zza=Zazaca
+languages.vo=Volap\u00fck
+languages.oto=Otomi Dilleri
+languages.vi=Vietnamca
+languages.vai=Vai
+languages.rar=Rarotongan
+languages.ve=Venda
+languages.rap=Rapanui
+languages.raj=Rajasthani
+languages.ota=Osmanl\u0131 T\u00fcrk\u00e7esi
+languages.nzi=Nzima
+languages.nap=Napolice
 languages.uz=\u00d6zbek\u00e7e
-languages.io=Ido
-languages.ik=Inupiak
+languages.uga=Ugarit Dili
+languages.tmh=Tama\u015fek
+languages.nai=Di\u011fer Kuzey Amerika Yerli Dilleri
+languages.nah=Nahuatl
 languages.ur=Urduca
-languages.nic=Nijer - Kordofanian (Di\u011fer)
-languages.ie=Interlingue
-languages.cpp=Creoles ve Pidgins, Portekizce tabanl\u0131 (Di\u011fer)
-languages.id=Endonezya Dili
-languages.ia=Interlingua
-languages.hit=Hitit\u00e7e
+languages.fat=Fanti
 languages.uk=Ukraynaca
+languages.egy=Eski M\u0131s\u0131r Dili
+languages.zxx=Dilbilim i\u00e7eri\u011fi yok
 languages.ug=Uygurca
-languages.cpf=Creoles ve Pidgins, Frans\u0131zca tabanl\u0131 (Di\u011fer)
-languages.fiu=Finno - Ugrian (Di\u011fer)
-languages.hy=Ermenice
-languages.cpe=Creoles ve Pidgins, \u0130ngilizce tabanl\u0131 (Di\u011fer)
-languages.nub=Nubian Dilleri
-languages.hu=Macarca
-languages.ht=Haiti Dili
-languages.wak=Wakashan Dilleri
-languages.phi=Filipinler Dili (Di\u011fer)
-languages.hr=H\u0131rvat\u00e7a
+languages.fan=Fang
+languages.ssa=Di\u011fer Nil-Sahara Dilleri
+languages.mga=Orta\u00e7a\u011f \u0130rlandacas\u0131
+languages.bat=Di\u011fer Balt\u0131k Dilleri
+languages.nyo=Nyoro
+languages.bas=Basa Dili
+languages.nyn=Nyankole
+languages.nym=Nyamwezi
+languages.gsw=\u0130svi\u00e7re Almancas\u0131
+languages.hmn=Hmong
+languages.ban=Bali Dili
+languages.osa=Osage
+languages.bal=Baluchi
 languages.ty=Tahiti Dili
-languages.apa=Apa\u00e7i Dilleri
+languages.bai=Bamileke Dilleri
 languages.tw=Twi
-languages.goh=Almanca (750-1050)
+languages.srr=Serer
+languages.tli=Tlingit
+languages.tlh=Klingon
 languages.tt=Tatarca
-languages.hi=Hint Dili
 languages.ts=Tsonga
-languages.mno=Manobo Dilleri
+languages.srn=Sranan Tongo
+languages.bad=Banda Dili
 languages.tr=T\u00fcrk\u00e7e
-languages.sal=Salishan Dilleri
-languages.he=\u0130branice
-languages.cop=Kiptice
-languages.to=Tonga (Tonga Adalar\u0131)
+languages.to=Tonga
 languages.tn=Setswana
-languages.sai=G\u00fcney Amerika Yerlileri Dili (Di\u011fer)
-languages.sms=Skolt Sami
 languages.tl=Tagalog
-languages.ha=Hausa
 languages.tk=T\u00fcrkmence
-languages.dum=Felemenk\u00e7e (1050-1350)
 languages.ti=Tigrinya
 languages.th=Tay Dili
-languages.smn=Inari Sami
+languages.kru=Kurukh
 languages.tg=Tacik Dili
-languages.mnc=Man\u00e7urya Dili
+languages.byn=Blin
 languages.te=Telugu
-languages.smj=Lule Sami
-languages.smi=Sami Dilleri (Di\u011fer)
+languages.kro=Kru
+languages.csb=Kashubian
 languages.ta=Tamil
-languages.syr=S\u00fcryanice
-languages.gu=Gujarati
-languages.inh=\u0130ngu\u015f Dili
-languages.sma=G\u00fcney Sami
-languages.ine=Hint-Avrupa (Di\u011fer)
-languages.gn=Guarani
-languages.inc=Hint\u00e7e (Di\u011fer)
+languages.krl=Karelian
+languages.tkl=Tokelau
+languages.efi=Efik
 languages.sw=Swahili
-languages.gl=Gali\u00e7ya Dili
 languages.sv=\u0130sve\u00e7\u00e7e
-languages.su=Sudan Dili
-languages.st=Sesotho
-languages.enm=\u0130ngilizce (1100-1500)
+languages.su=Sunda Dili
+languages.krc=Kara\u00e7ay-Balkar
+languages.st=G\u00fcney Sotho
 languages.ss=Siswati
-languages.mad=Madura Dili
 languages.sr=S\u0131rp\u00e7a
 languages.sq=Arnavut\u00e7a
+languages.men=Mende
+languages.crp=Di\u011fer Creole ve Pidgin Dilleri
 languages.so=Somali Dili
-languages.gd=\u0130sko\u00e7 Gal Dili
+languages.afh=Afrihili
 languages.sn=Shona
 languages.sm=Samoa Dili
 languages.sl=Slovence
-languages.ga=\u0130rlanda Dili
+languages.grc=Antik Yunanca
 languages.sk=Slovak\u00e7a
+languages.grb=Grebo
 languages.si=Sinhal Dili
 languages.sh=S\u0131rp-H\u0131rvat Dili
+languages.crh=K\u0131r\u0131m T\u00fcrk\u00e7esi
+languages.afa=Di\u011fer Afro-Asyatik Diller
 languages.sg=Sangho
 languages.se=Kuzey Sami
-languages.fy=Frizye Dili
 languages.sd=Sindhi
+languages.udm=Udmurt\u00e7a
 languages.sc=Sardunya Dili
 languages.sa=Sanskrit\u00e7e
-languages.cau=Kafkas\u00e7a (Di\u011fer)
-languages.ang=Eski \u0130ngilizce (450-1100)
-languages.fr=Frans\u0131zca
-languages.sla=Slav Dilleri (Di\u011fer)
-languages.fo=Faroe Dili
-languages.pro=Eski Proven\u00e7al (1500'e kadar)
 languages.rw=Kinyarwanda
-languages.gmh=Almanca (1050-1500)
+languages.nwc=Klasik Nevari
 languages.ru=Rus\u00e7a
-languages.fj=Fiji Dili
-languages.fi=Fince
-languages.cai=Orta Amerika Yerlileri (Di\u011fer)
+languages.mdr=Mandar
 languages.ro=Romence
-languages.cad=Caddo
 languages.rn=Kirundi
-languages.hsb=Yukar\u0131 Sorb\u00e7a
 languages.rm=Rhaeto-Roman Dili
-languages.fa=Fars\u00e7a
-languages.pra=Prakrit Dilleri
-languages.peo=Eski Fars\u00e7a (600-400 M.\u00d6.)
+languages.fr_CH=\u0130svi\u00e7re Frans\u0131zcas\u0131
+languages.mdf=Moksha
+languages.tiv=Tiv
+languages.fr_CA=Kanada Frans\u0131zcas\u0131
+languages.ady=\u00c7erkezce
+languages.zun=Zuni
+languages.kpe=Kpelle
+languages.qu=Quechua
+languages.tig=Tigre
+languages.son=Songhai
+languages.cpp=Di\u011fer Portekizce tabanl\u0131 Creole ve Pidgin Dilleri
+languages.rup=Aromanca
+languages.sog=Sogdiana\u00a0Dili
+languages.ada=Adangme
+languages.kos=Kosraean
+languages.hit=Hitit\u00e7e
+languages.cpf=Di\u011fer Frans\u0131zca tabanl\u0131 Creole ve Pidgin Dilleri
+languages.cpe=Di\u011fer \u0130ngilizce tabanl\u0131 Creole ve Pidgin Dilleri
+languages.him=Himachali
+languages.kok=Konkani
+languages.hil=Hiligaynon
+languages.got=Got\u00e7a
+languages.gor=Gorontalo
+languages.gon=Gondi
+languages.din=Dinka
+languages.nub=Nubian Dilleri
+languages.pt=Portekizce
+languages.ps=Pe\u015ftuca
+languages.fur=Friulian
+languages.phn=Fenike Dili
+languages.de_CH=\u0130svi\u00e7re Y\u00fcksek Almancas\u0131
+languages.goh=Eski Y\u00fcksek Almanca
+languages.snk=Soninke
+languages.cop=Kiptice
+languages.yap=Yap\u00e7a
+languages.ach=Acoli
+languages.yao=Yao
+languages.phi=Di\u011fer Filipinler Dilleri
+languages.pl=Leh\u00e7e
+languages.ace=Achinese
+languages.pi=Pali
+languages.pt_PT=\u0130ber Portekizcesi
+languages.pa=Pencap Dili
+languages.bug=Bugis
+languages.iba=Iban
+languages.sms=Skolt Sami
+languages.bua=Buryat
+languages.mas=Masai
+languages.smn=Inari Sami
+languages.os=Oset
+languages.map=Avustronezya Dili
+languages.or=Oriya
+languages.man=Mandingo
+languages.smj=Lule Sami
+languages.smi=Di\u011fer Sami Dilleri
+languages.mak=Makasar
+languages.om=Oromo
+languages.mai=Maithili
+languages.oj=Ojibwa
+languages.mag=Magahi
+languages.mad=Madura Dili
+languages.sma=G\u00fcney Sami
+languages.oc=Occitan
+languages.nso=Kuzey Sotho
+languages.btk=Batak
+languages.myv=Erzya
+languages.es_ES=\u0130ber \u0130spanyolcas\u0131
+languages.de_AT=Avusturya Almancas\u0131
+languages.dgr=Dogrib
+languages.ny=Nyanja
+languages.myn=Maya Dilleri
+languages.nv=Navaho Dili
+languages.kmb=Kimbundu
+languages.nr=G\u00fcney Ndebele
+languages.gmh=Orta\u00e7a\u011f Y\u00fcksek Almancas\u0131
+languages.no=Norve\u00e7\u00e7e
+languages.nn=Norve\u00e7\u00e7e Nynorsk
+languages.nl=Hollanda Dili
+languages.root=K\u00f6ken
+languages.ng=Ndonga
+languages.sla=Di\u011fer Slav Dilleri
+languages.ne=Nepalce
+languages.nd=Kuzey Ndebele
 languages.cmc=Chamic Dilleri
-languages.eu=Bask Dili
+languages.tet=Tetum
+languages.nb=Norve\u00e7\u00e7e Bokm\u00e5l
+languages.na=Nauru Dili
+languages.ter=Tereno
+languages.tem=Timne
+languages.my=Birmanya Dili
+languages.lez=Lezgice
+languages.mt=Malta Dili
+languages.frs=Do\u011fu Frizcesi
+languages.peo=Eski Fars\u00e7a
+languages.ms=Malay
+languages.frr=Kuzey Frizce
+languages.mr=Marathi
+languages.fro=Eski Frans\u0131zca
+languages.mo=Moldovaca
+languages.mn=Mo\u011folca
+languages.frm=Orta\u00e7a\u011f Frans\u0131zcas\u0131
+languages.ml=Malayalam
+languages.jrb=Yahudi Arap\u00e7as\u0131
+languages.mk=Makedonca
+languages.mi=Maori
+languages.mh=Marshall Adalar\u0131 Dili
+languages.mg=Malaga Dili
+languages.nqo=N\u2019Ko
+languages.mwr=Marwari
+languages.bra=Braj
+languages.mwl=Miranda Dili
+languages.den=Slavey
+languages.lv=Letonya Dili
+languages.lu=Luba-Katanga
+languages.del=Delaware
+languages.lt=Litvanya Dili
+languages.lo=Laos Dili
+languages.ln=Lingala
+languages.li=Limburgish
+languages.ewo=Ewondo
+languages.lg=Ganda
+languages.lb=L\u00fcksemburg Dili
+languages.la=Latince
+languages.jpr=Yahudi Fars\u00e7as\u0131
+languages.vot=Votic
+languages.sit=Di\u011fer Sino-Tibet Dilleri
+languages.ky=K\u0131rg\u0131zca
+languages.kw=Cornish
+languages.kv=Komi
+languages.ku=K\u00fcrt\u00e7e
+languages.sio=Siu Dilleri
+languages.ks=Ke\u015fmirce
+languages.kr=Kanuri
+languages.awa=Awadhi
+languages.ko=Korece
+languages.kn=Kannada
+languages.km=Kambo\u00e7ya Dili
+languages.en_GB=\u0130ngiliz \u0130ngilizcesi
+languages.kl=Gr\u00f6nland Dili
+languages.kk=Kazak Dili
+languages.rom=Romanca
+languages.kj=Kuanyama
+languages.sid=Sidamo
+languages.ki=Kikuyu
+languages.kg=Kongo
+languages.non=Old Norse
+languages.ka=G\u00fcrc\u00fcce
+languages.mus=Creek
+languages.roa=Di\u011fer Roman Dilleri
+languages.nog=Nogay Dili
+languages.mun=Munda Dilleri
+languages.mul=Birden Fazla Dil
+languages.jv=Java Dili
+languages.gil=Gilbertese
+languages.znd=Zande
+languages.shn=Shan Dili
+languages.fon=Fon
+languages.xal=Kalm\u0131k
+languages.aus=Avustralya Dilleri
+languages.kho=Hotanca
+languages.ja=Japonca
+languages.khi=Di\u011fer Hoisan Dilleri
+languages.pau=Palau Dili
+languages.chy=\u015eayen Dili
+languages.tai=Tay Dili (Di\u011fer)
+languages.iu=Inuktitut
+languages.pap=Papiamento
+languages.it=\u0130talyanca
+languages.sgn=\u0130\u015faret Dilleri
+languages.is=\u0130zlandaca
+languages.kha=Khasi
+languages.chr=\u00c7eroki
+languages.pam=Pampanga
+languages.pal=Pehlevi
+languages.chp=Chipewyan
+languages.io=Ido
+languages.cho=Choctaw
+languages.chn=Chinook Jargon
+languages.chm=Mari
+languages.tyv=Tuvaca
+languages.bnt=Bantu Dili
+languages.pag=Pangasinan
+languages.ik=Inupiak
+languages.chk=Chuukese
+languages.ii=Sichuan Yi
+languages.haw=Hawaii Dili
+languages.lam=Lamba
+languages.ig=Igbo
+languages.chg=\u00c7a\u011fatay Dili
+languages.sga=Eski \u0130rlandaca
+languages.paa=Di\u011fer Papua Dilleri
+languages.ie=Interlingue
+languages.id=Endonezya Dili
+languages.lah=Lahnda
+languages.day=Dayak
+languages.chb=Chibcha
+languages.ia=Interlingua
+languages.lad=Ladino
+languages.hz=Herero
+languages.hai=Haida
+languages.dar=Dargva
+languages.hy=Ermenice
+languages.ath=Ataba\u015fkan Dilleri
+languages.hu=Macarca
+languages.ht=Haiti Dili
+languages.dak=Dakota
+languages.hr=H\u0131rvat\u00e7a
+languages.ho=Hiri Motu
+languages.hi=Hint\u00e7e
+languages.dyu=Dyula
+languages.he=\u0130branice
+languages.ast=Asturyasca
+languages.kfo=Koro
+languages.ha=Hausa
+languages.wen=Sorb Dilleri
+languages.gv=Manks
+languages.gu=Gujarati
+languages.sem=Di\u011fer Semitik Diller
+languages.sel=Selkup
+languages.iro=Iroquoian Dilleri
+languages.gn=Guarani
+languages.gl=Gali\u00e7ya Dili
+languages.en_CA=Kanada \u0130ngilizcesi
+languages.arw=Arawak Dili
+languages.gez=Geez
+languages.art=Di\u011fer Yapay Diller
+languages.gd=\u0130sko\u00e7 Gal Dili
+languages.ira=Di\u011fer \u0130ran Dilleri
+languages.ga=\u0130rlanda Dili
+languages.arp=Arapaho Dili
+languages.arn=Araucanian Dili
+languages.fy=Bat\u0131 Frizcesi
+languages.bla=Siksika
+languages.gem=Di\u011fer Germen Dilleri
+languages.ypk=Yupik Dilleri
+languages.arc=Aramice
+languages.fr=Frans\u0131zca
+languages.fo=Faroe Dili
+languages.cel=Di\u011fer Kelt Dilleri
+languages.fj=Fiji Dili
+languages.fi=Fince
+languages.ff=Fulah
+languages.tvl=Tuvalu
+languages.ceb=Cebuano
+languages.fa=Fars\u00e7a
+languages.en_AU=Avustralya \u0130ngilizcesi
+languages.zh_Hans=Basitle\u015ftirilmi\u015f \u00c7ince
+languages.zh_Hant=Geleneksel \u00c7ince
+languages.eu=Bask\u00e7a
+languages.sco=\u0130sko\u00e7
 languages.et=Estonya Dili
-languages.dsb=A\u015fa\u011f\u0131 Sorb\u00e7a
-languages.elx=Elam
+languages.scn=Sicilya Dili
 languages.es=\u0130spanyolca
 languages.eo=Esperanto
 languages.en=\u0130ngilizce
 languages.el=Yunanca
-languages.qu=Quechua
-languages.fro=Frans\u0131zca (842-1400)
-languages.frm=Frans\u0131zca (1400-1600)
+languages.tut=Di\u011fer Altay Dilleri
+languages.niu=Niuean
+languages.tup=Tupi dilleri
 languages.ee=Ewe
-languages.mkh=Mon-Khmer (Di\u011fer)
-languages.dz=Bhutan Dili
-languages.nds=A\u015fa\u011f\u0131 Almanca; A\u015fa\u011f\u0131 Sakson
-languages.alg=Algonquian Dilleri
-languages.dra=Dravidian (Di\u011fer)
-languages.pt=Portekizce
-languages.ber=Berberi
-languages.ps=Pe\u015ftun Dili
+languages.tum=Tumbuka
+languages.nl_BE=Felemenk\u00e7e
+languages.es_419=Latin Amerika \u0130spanyolcas\u0131
+languages.mos=Mossi
+languages.dz=Butan Dili
+languages.kcg=Tyap
+languages.nic=Di\u011fer Nijer-Kordofan Dilleri
+languages.lus=Lushai
+languages.fiu=Di\u011fer Finno - Ugrik Dilleri
+languages.dv=Divehi
+languages.nia=Nias
+languages.moh=Mohawk
+languages.luo=Luo
+languages.lun=Lunda
+languages.apa=Apa\u00e7i Dilleri
+languages.fil=Filipino
+languages.lui=Luiseno
+languages.hup=Hupa
+languages.cch=Atsam
+languages.bin=Bini
 languages.de=Almanca
-languages.sit=\u00c7in-Tibet (Di\u011fer)
-languages.pl=Polonya Dili
+languages.lua=Luba-Lulua
+languages.bik=Bikol
+languages.was=Washo
+languages.und=Bilinmeyen veya Ge\u00e7ersiz Dil
+languages.war=Waray
 languages.da=Danca
-languages.sio=Siu Dilleri
-languages.sux=S\u00fcmer
-languages.cy=Gal Dili
-languages.akk=Akad Dili
+languages.dum=Orta\u00e7a\u011f Felemenk\u00e7esi
+languages.wal=Walamo
+languages.mno=Manobo Dilleri
+languages.wak=Wakashan Dilleri
+languages.sat=Santali
+languages.cy=Galce
+languages.sas=Sasak
+languages.kbd=Kabardeyce
 languages.cv=\u00c7uva\u015f
-languages.pa=Pencap Dili
 languages.cu=Kilise Slavcas\u0131
+languages.mni=Manipuri
 languages.cs=\u00c7ek\u00e7e
-languages.rom=Romanca
+languages.sam=Samarit Aramcas\u0131
+languages.cr=Cree
+languages.sal=Salishan Dilleri
+languages.dua=Duala
 languages.co=Korsika Dili
-languages.mis=\u00c7e\u015fitli Diller
-languages.os=Oset
-languages.or=Oriya
-languages.roa=Roman Dili (Di\u011fer)
+languages.sai=Di\u011fer G\u00fcney Amerika Yerli Dilleri
+languages.mnc=Man\u00e7urya Dili
+languages.sah=Yakut\u00e7a
+languages.kaw=Kawi
+languages.inh=\u0130ngu\u015f Dili
+languages.gba=Gbaya
+languages.sad=Sandawe
+languages.ch=Chamorro
+languages.ine=Di\u011fer Hint-Avrupa Dilleri
+languages.bho=Bhojpuri
+languages.enm=Orta\u00e7a\u011f \u0130ngilizcesi
+languages.kar=Karen
+languages.inc=Di\u011fer Hint Dilleri
 languages.ce=\u00c7e\u00e7ence
-languages.om=Oromo (Afan)
-languages.ca=Katalan Dili
-languages.oj=Ojibwa
-languages.mun=Munda Dilleri
-languages.mul=Birden Fazla Diller
-languages.oc=Occitan (1500 sonras\u0131); Proven\u00e7al
-languages.bs=Bosna Dili
-languages.kum=Kumuk\u00e7a
-languages.xal=Kalm\u0131k
+languages.gay=Gayo
+languages.ca=Katalanca
+languages.umb=Umbundu
+languages.syr=S\u00fcryanice
+languages.kam=Kamba
+languages.anp=Angika
+languages.tsi=Tsimshian
+languages.kaj=Jju
+languages.ang=Eski \u0130ngilizce
+languages.kac=Ka\u00e7in
+languages.cau=Di\u011fer Kafkas Dilleri
+languages.kab=Kabile
+languages.kaa=Karakalpak\u00e7a
+languages.bs=Bo\u015fnak\u00e7a
+languages.car=Carib
 languages.br=Breton Dili
+languages.syc=Klasik S\u00fcryanice
 languages.bo=Tibet\u00e7e
 languages.bn=Bengal Dili
+languages.bm=Bambara
+languages.gaa=Ga
+languages.cai=Di\u011fer Orta Amerika Yerli Dilleri
 languages.bi=Bislama
 languages.bh=Bihari
-languages.nr=G\u00fcney Ndebele
 languages.bg=Bulgarca
 languages.be=Beyaz Rus\u00e7a
-languages.oto=Osmanl\u0131 Dilleri
-languages.no=Norve\u00e7\u00e7e
-languages.nn=Norve\u00e7\u00e7e Nynorsk
-languages.tai=Tay Dili (Di\u011fer)
-languages.nl=Hollanda Dili
+languages.pt_BR=Brezilya Portekizcesi
+languages.cad=Caddo
 languages.ba=Ba\u015fk\u0131rt Dili
 languages.zu=Zulu
-languages.pau=Palau Dili
-languages.sgn=\u0130\u015faret Dilleri
-languages.cus=Cushitic (Di\u011fer)
+languages.zen=Zenaga
+languages.pro=Eski Provensal
+languages.hsb=Yukar\u0131 Sorb\u00e7a
 languages.az=Azerice
-languages.khi=Khoisan (Di\u011fer)
-languages.ne=Nepal Dili
 languages.ay=Aymara
-languages.nd=Kuzey Ndebele
-languages.nb=Norve\u00e7 Kitap Dili
 languages.av=Avar Dili
-languages.ota=Osmanl\u0131ca (1500-1928)
-languages.na=Nauru
-languages.aus=Avustralya Dilleri
+languages.as=Assamca
+languages.dsb=A\u015fa\u011f\u0131 Sorb\u00e7a
 languages.ar=Arap\u00e7a
+languages.ilo=Iloko
+languages.elx=Elam
 languages.zh=\u00c7ince
-languages.sga=Eski \u0130rlandaca (900'e kadar)
-languages.my=Birmanya Dili
-languages.chy=\u00c7eyen
+languages.an=Aragonca
+languages.pra=Prakrit Dilleri
 languages.am=Amharik
-languages.nai=Kuzey Amerika Yerlileri Dili (Di\u011fer)
+languages.new=Newari
+languages.ak=Akan
 languages.za=Zhuang
-languages.paa=Papua Dili (Di\u011fer)
-languages.mt=Malta Dili
-languages.ms=Malay
-languages.mr=Marathi
-languages.chr=\u00c7eroki
+languages.en_US=Amerikan \u0130ngilizcesi
 languages.af=Afrikaan Dili
-languages.ssa=Nil-Sahara (Di\u011fer)
-languages.mo=Moldavya Dili
-languages.haw=Hawaii Dili
-languages.mn=Mo\u011fol Dili
-languages.ab=Abazca
+languages.ae=Avest\u00e7e
+languages.alt=G\u00fcney Altayca
+languages.ab=Abazaca
 languages.aa=Afar
-languages.ml=Malayalam
-languages.mk=Makedonca
-languages.mi=Maori
-languages.mh=Marshall Adalar\u0131 Dili
-languages.mg=Malaga Dili
-languages.chg=\u00c7a\u011fatay Dili
-languages.mga=\u0130rlanda Dili (900-1200)
 languages.yo=Yoruba
-languages.osa=Osage
-languages.egy=M\u0131s\u0131r Dili (Eski)
+languages.alg=Algonquian Dilleri
+languages.ale=Aleut
+languages.mkh=Di\u011fer Mon-Khmer Dilleri
 languages.yi=Yiddi\u015f
-languages.wen=Sorb Dilleri
-languages.lv=Letonya Dili
-languages.bat=Balt\u0131k (Di\u011fer)
-languages.ath=Athapascan Dilleri
-languages.lt=Litvanya Dili
-languages.ban=Bali Dili
-languages.lo=Laos Dili
-languages.ln=Lingala
-languages.bai=Bamileke Dilleri
-languages.sem=Sami (Di\u011fer)
+languages.dra=Di\u011fer Dravid Dilleri
+languages.ber=Berberi
+languages.nds=A\u015fa\u011f\u0131 Almanca
+languages.bem=Bemba
+languages.bej=Beja Dili
+languages.tpi=Tok Pisin
+variants.POSIX=Bilgisayar
+variants.AREVMDA=Bat\u0131 Ermenicesi
+variants.1996=1996 Alman Yaz\u0131m Kurallar\u0131
+variants.SOLBA=Stolvizza/Solbica Leh\u00e7esi
+variants.NEDIS=Natisone Leh\u00e7esi
+variants.1994=Standart Resia Yaz\u0131m Kurallar\u0131
+variants.1901=Geleneksel Alman Yaz\u0131m Kurallar\u0131
+variants.FONUPA=UPA Fonetik
+variants.OSOJS=Oseacco/Osojane Leh\u00e7esi
+variants.LIPAW=Resia Lipovaz Leh\u00e7esi
+variants.REVISED=G\u00f6zden Ge\u00e7irilmi\u015f Yaz\u0131m Kurallar\u0131
+variants.NJIVA=Gniva/Njiva Leh\u00e7esi
+variants.TARASK=Taraskievica Yaz\u0131m Kurallar\u0131
+variants.FONIPA=IPA Fonetik
+variants.BISKE=San Giorgio/Bila Leh\u00e7esi
+variants.SCOUSE=Scouse
+variants.BAKU1926=Birle\u015ftirilmi\u015f Yeni T\u00fcrk Alfabesi
+variants.SAAHO=Saho
+variants.ROZAJ=Resia Leh\u00e7esi
+variants.MONOTON=Monotonik
+variants.POLYTON=Politonik
+variants.AREVELA=Do\u011fu Ermenicesi
+variants.SCOTLAND=\u0130sko\u00e7 Standart \u0130ngilizcesi
+variants.BOONT=Boontling
+variants.1606NICT=1606'ya Dek Ge\u00e7 Orta\u00e7a\u011f Frans\u0131zcas\u0131
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_trv.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_trv.properties
new file mode 100644 (file)
index 0000000..7774c65
--- /dev/null
@@ -0,0 +1,80 @@
+# LocaleInformation_trv.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.TWD=pila Taiwan
+currenciesDisplayName.INR=pila Intia
+currenciesDisplayName.NOK=pila Nowey
+currenciesDisplayName.JPY=pila Nihong
+currenciesDisplayName.RUB=pila Ruski
+currenciesDisplayName.BRL=pila Pajey
+currenciesDisplayName.CNY=pila Ipaw
+currenciesDisplayName.AUD=pila Autaria
+currenciesDisplayName.HKD=pila Hong Kong
+currenciesDisplayName.USD=pila America
+currenciesDisplayName.XXX=ini klayi pila ni
+currenciesDisplayName.MOP=pila Macao
+currenciesDisplayName.EUR=pila Irow
+currenciesDisplayName.GBP=pila Inglis
+shortMonths=Kii\u00aeDhi\u00aeTri\u00aeSpi\u00aeRii\u00aeMti\u00aeEmi\u00aeMai\u00aeMni\u00aeMxi\u00aeMxk\u00aeMxd\u00ae\u00ae
+months=Kingal idas\u00aeDha idas\u00aeTru idas\u00aeSpat idas\u00aeRima idas\u00aeMataru idas\u00aeEmpitu idas\u00aeMaspat idas\u00aeMngari idas\u00aeMaxal idas\u00aeMaxal kingal idas\u00aeMaxal dha idas\u00ae\u00ae
+shortWeekdays=\u00aeEmp\u00aeKin\u00aeDha\u00aeTru\u00aeSpa\u00aeRim\u00aeMat\u00ae
+weekdays=\u00aeJiyax sngayan\u00aetgKingal jiyax iyax sngayan\u00aetgDha jiyax iyax sngayan\u00aetgTru jiyax iyax sngayan\u00aetgSpac jiyax iyax sngayan\u00aetgRima jiyax iyax sngayan\u00aetgMataru jiyax iyax sngayan\u00ae
+eras=BRY\u00aeBUY\u00ae
+ampms=Brax kndaax\u00aeBaubau kndaax\u00ae
+shortDateFormat=yyyy-MM-dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Atlantic\u00aeSnegun Jikan Yayun Tasiyan\u00aeSJYT\u00aeJikan Yayun Tasiyan o Karat Rbagan\u00aeJYTKR\u00ae\u00a9America_Eastern\u00aeSnegun Jikan Ton-Amarika\u00aeSJTA\u00aeJikan Ton-Amarika o Karat Rbagan\u00aeJTAKR\u00ae\u00a9Europe_Eastern\u00aeJikan Tonow\u00aeJT\u00aeJikan Tonow o Karat Rbagan\u00aeJTKR\u00ae\u00a9Europe_Central\u00aeJikan Conow\u00aeJC\u00aeJikan Conow o Karat Rbagan\u00aeJCKR\u00ae\u00a9GMT\u00aeJikan Quri Grinweyji\u00aeJQG\u00ae\u00ae\u00ae\u00a9America_Central\u00aeSnegun Jikan Con-Amarika\u00aeSJCA\u00aeJikan Con-Amarika o Karat Rbagan\u00aeJCAKR\u00ae\u00a9America_Pacific\u00aeSnegun Jikan Amarika-Daybinyan\u00aeSJAD\u00aeJikan Amarika-Daybinyan o Karat Rbagan\u00aeJADKR\u00ae\u00a9America_Mountain\u00aeSnegun Jikan Yama-Amarika\u00aeSJYA\u00aeJikan Hidaw niq Yama-Amarika\u00aeJHYA\u00ae\u00a9Europe_Western\u00aeJikan Siow\u00aeJS\u00aeJikan Siow o Karat Rbagan\u00aeJSKR\u00ae\u00a9
+territories.IT=alang Itariya
+territories.FR=alang Posey
+territories.BA=alang Posniya
+territories.TF=alang Posey niq Nan
+territories.RU=alang Ruski
+territories.RS=alang Srbia
+territories.CN=alang Ipaw
+territories.US=alang Amarika
+territories.IO=alang Inglis niq Intu
+territories.IN=alang Intu
+territories.CH=alang Switjrrant
+territories.GS=alang Nanjiouya ni Nansanminji
+territories.AQ=alang Nanci
+territories.JP=alang Nihong
+territories.SM=alang Snmarinow
+territories.BV=alang Puwei
+territories.DE=alang Towjih
+territories.ZZ=ini klayi na alang ni
+territories.BR=alang Pajey
+territories.ME=alang Mondineygrw
+territories.HR=alang Krowtia
+territories.GB=alang Inglis
+territories.HM=alang Htee ni Mayktan
+languages.zh=patas Ipaw
+languages.sr=patas Srpian
+languages.en=patas Ingrisi
+languages.pt_BR=patas Pajey
+languages.bn=patas Monchiara
+languages.ru=patas Ruski
+languages.hi=patas Heyti
+languages.ur=patas Yurtu
+languages.it=patas Itariya
+languages.fr=patas Bosey
+languages.und=Ini klayna patas ni
+languages.de=patas Towjih
+languages.es=patas Espanniu
+languages.ja=patas Nihong
+languages.zh_Hans=Qantan Ipaw patas
+languages.zh_Hant=Baday Ipaw patas
+languages.pt=patas Bowdu
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ts.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ts.properties
new file mode 100644 (file)
index 0000000..d3540cd
--- /dev/null
@@ -0,0 +1,51 @@
+# LocaleInformation_ts.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Sun\u00aeYan\u00aeKul\u00aeDzi\u00aeMud\u00aeKho\u00aeMaw\u00aeMha\u00aeNdz\u00aeNhl\u00aeHuk\u00aeN'w\u00ae\u00ae
+months=Sunguti\u00aeNyenyenyani\u00aeNyenyankulu\u00aeDzivamisoko\u00aeMudyaxihi\u00aeKhotavuxika\u00aeMawuwani\u00aeMhawuri\u00aeNdzhati\u00aeNhlangula\u00aeHukuri\u00aeN'wendzamhala\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMus\u00aeBir\u00aeHar\u00aeNe\u00aeTlh\u00aeMug\u00ae
+weekdays=\u00aeSonto\u00aeMusumbhunuku\u00aeRavumbirhi\u00aeRavunharhu\u00aeRavumune\u00aeRavuntlhanu\u00aeMugqivela\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.ja=Xi Japani
+languages.ts=Xitsonga
+languages.en=Xi Nghezi
+languages.ko=Xikorea
+languages.no=Xi Norway
+languages.el=Xi Giriki
+languages.nl=Xi bunu
+languages.lv=hi xi Latvia
+languages.he=XiHeberu
+languages.cs=Xi Czech
+languages.it=Xi Ithali
+languages.lt=hi xi Lithuania
+languages.is=hi xi Iceland
+languages.fr=Xi Furwa
+languages.ru=Xi Rhaxiya
+languages.ro=hi xi Romania
+languages.fi=Xi Finnish
+languages.sv=Xi Swiden
+languages.pt=Putukezi
+languages.pl=Xi Polixi
+languages.de=Xi Jarimani
+languages.hu=hi xi Hungary
+languages.et=hi xi Estonia
+languages.es=Xi spain
+languages.da=Xi Danish
index fe92ef7adb29e258f9536c8ee424034a16f27096..d12ed617a5a43fde21301fa3b4dec97cc4f1af6f 100644 (file)
@@ -7,6 +7,21 @@
 
 decimalSeparator=,
 groupingSeparator=\u00a0
+currencyFormat=#,##0.00\u00a4;-#,##0.00\u00a4
 currenciesSymbol.RUR=\u0440.
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd.MM.yyyy
+mediumDateFormat=dd.MM.yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=d MMMM yyyy
+shortTimeFormat=H:mm
+mediumTimeFormat=H:mm:ss
+longTimeFormat=H:mm:ss z
+fullTimeFormat=h:mm:ss a z
 territories.RU=\u0420\u043e\u0441\u0441\u0438\u044f
 languages.tt=\u0422\u0430\u0442\u0430\u0440
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ug.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ug.properties
new file mode 100644 (file)
index 0000000..7dc07d9
--- /dev/null
@@ -0,0 +1,22 @@
+# LocaleInformation_ug.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+variants.REVISED=Uyghur
index 2716f7b95d04dae477fd29a68f1b21e7ef45ad25..26d5aeea5deb9bc3614bb2c9140daafe8b0c1d6d 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+infinity=\u221e
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
 currenciesDisplayName.YDD=\u0404\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.TWD=\u041d\u043e\u0432\u0438\u0439 \u0442\u0430\u0439\u0432\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.KES=\u041a\u0435\u043d\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0448\u0438\u043b\u0456\u043d\u0433
-currenciesDisplayName.BYB=\u0411\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1994-1999)
+currenciesDisplayName.TWD=\u041d\u043e\u0432\u0438\u0439 \u0442\u0430\u0439\u0432\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.LKR=\u0428\u0440\u0456-\u043b\u0430\u043d\u043a\u0456\u0439\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
-currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.BYB=\u0431\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1994-1999)
 currenciesDisplayName.TJS=\u0422\u0430\u0434\u0436\u0438\u0446\u044c\u043a\u0438\u0439 \u0441\u043e\u043c\u043e\u043d\u0456
-currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u0446\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.ERN=\u0415\u0440\u0438\u0442\u0440\u0435\u0439\u0441\u044c\u043a\u0430 \u043d\u0430\u043a\u0444\u0430
-currenciesDisplayName.AFN=\u0410\u0444\u0433\u0430\u043d\u0456
+currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u0446\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.SDP=\u0421\u0442\u0430\u0440\u0438\u0439 \u0441\u0443\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
 currenciesDisplayName.GRD=\u0413\u0440\u0435\u0446\u044c\u043a\u0430 \u0434\u0440\u0430\u0445\u043c\u0430
+currenciesDisplayName.AFN=\u0410\u0444\u0433\u0430\u043d\u0456
 currenciesDisplayName.IEP=\u0406\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
+currenciesDisplayName.SDG=\u0421\u0443\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.ARP=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e (1983-1985)
 currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.ARP=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e (1983-1985)
 currenciesDisplayName.GEL=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u043b\u0430\u0440\u0456
+currenciesDisplayName.GEK=\u0433\u0440\u0443\u0437\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u0443\u043f\u043e\u043d
 currenciesDisplayName.AFA=\u0410\u0444\u0433\u0430\u043d\u0456 (1927-2002)
-currenciesDisplayName.CRC=\u041a\u043e\u0441\u0442\u0430-\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
+currenciesDisplayName.CRC=\u041a\u043e\u0441\u0442\u0430\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
 currenciesDisplayName.FKP=\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
 currenciesDisplayName.EEK=\u0415\u0441\u0442\u043e\u043d\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.HKD=\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0456\u0432\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.MDL=\u041c\u043e\u043b\u0434\u043e\u0432\u0441\u044c\u043a\u0438\u0439 \u043b\u0435\u0439
-currenciesDisplayName.ARA=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u0430\u0432\u0441\u0442\u0440\u0430\u043b
+currenciesDisplayName.HKD=\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0456\u0432\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.IQD=\u0406\u0440\u0430\u043a\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.ARA=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u0430\u0432\u0441\u0442\u0440\u0430\u043b
 currenciesDisplayName.SCR=\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
 currenciesDisplayName.VUV=\u0412\u0430\u043d\u0443\u0430\u0442\u0441\u044c\u043a\u0430 \u0432\u0430\u0442\u0443
-currenciesDisplayName.DKK=\u0414\u0430\u0442\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.KPW=\u0412\u043e\u043d\u0430 \u041f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0457 \u041a\u043e\u0440\u0435\u0457
+currenciesDisplayName.DKK=\u0414\u0430\u0442\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.IDR=\u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u0439\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
-currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.GQE=\u0415\u043a\u0432\u0435\u043b\u0435 (\u0415\u043a\u0432\u0430\u0442\u043e\u0440\u0456\u0430\u043b\u044c\u043d\u0430 \u0490\u0432\u0456\u043d\u0435\u044f)
 currenciesDisplayName.SOS=\u0421\u043e\u043c\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0448\u0438\u043b\u0456\u043d\u0433
+currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.EQE=\u0415\u043a\u0432\u0435\u043b\u0435
 currenciesDisplayName.AED=\u0414\u0438\u0440\u0445\u0435\u043c \u041e\u0410\u0415
-currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0441\u044c\u043a\u0430 \u043f\u0443\u043b\u0430
 currenciesDisplayName.LVL=\u041b\u0430\u0442\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u043b\u0430\u0442
-currenciesDisplayName.RUR=\u0420\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1991-1998)
+currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0441\u044c\u043a\u0430 \u043f\u0443\u043b\u0430
+currenciesDisplayName.RUR=\u0440\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (RUR)
 currenciesDisplayName.NIO=\u041d\u0456\u043a\u0430\u0440\u0430\u0433\u0443\u0430\u043d\u0441\u044c\u043a\u0430 \u043a\u043e\u0440\u0434\u043e\u0431\u0430 \u043e\u0440\u043e
-currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0440\u0441\u044c\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
-currenciesDisplayName.FJD=\u0424\u0456\u0434\u0436\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.XTS=\u041a\u043e\u0434 \u0442\u0435\u0441\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0432\u0430\u043b\u044e\u0442\u0438
 currenciesDisplayName.MOP=\u041c\u0430\u043a\u0430\u043e \u043f\u0430\u0442\u0430\u043a\u0430
-currenciesDisplayName.RUB=\u0420\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.FJD=\u0414\u043e\u043b\u0430\u0440 \u0424\u0456\u0434\u0436\u0456
+currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0440\u0441\u044c\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
+currenciesDisplayName.RUB=\u0440\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
 currenciesDisplayName.CDF=\u041a\u043e\u043d\u0433\u043e\u043b\u0435\u0437\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.NIC=\u041d\u0456\u043a\u0430\u0440\u0430\u0433\u0443\u0430\u043d\u0441\u044c\u043a\u0430 \u043a\u043e\u0440\u0434\u043e\u0431\u0430
-currenciesDisplayName.DJF=\u0424\u0440\u0430\u043d\u043a \u0414\u0436\u0456\u0431\u0443\u0442\u0456
-currenciesDisplayName.ECV=\u0415\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0438\u0439 UV\u0421
-currenciesDisplayName.SBD=\u0414\u043e\u043b\u0430\u0440 \u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0438\u0445 \u041e\u0441\u0442\u0440\u043e\u0432\u0456\u0432
+currenciesDisplayName.DJF=\u0414\u0436\u0438\u0431\u0443\u0442\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.UZS=\u0423\u0437\u0431\u0435\u0446\u044c\u043a\u0438\u0439 \u0441\u0443\u043c
-currenciesDisplayName.ECS=\u0415\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0435 \u0441\u0443\u043a\u0440\u0435
-currenciesDisplayName.PHP=\u0424\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.SBD=\u0414\u043e\u043b\u0430\u0440 \u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0438\u0445 \u041e\u0441\u0442\u0440\u043e\u0432\u0456\u0432
+currenciesDisplayName.ECV=\u0415\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u044e\u043d\u0456\u0434\u0430\u0434 \u0434\u0435 \u0432\u0430\u043b\u043e\u0440 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0435
+currenciesDisplayName.LUL=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0491\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u0424\u0456\u043d\u0430\u043d\u0441\u043e\u0432\u0438\u0439)
+currenciesDisplayName.ECS=\u0415\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u0441\u0443\u043a\u0440\u0435
 currenciesDisplayName.THB=\u0422\u0430\u0457\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0439 \u0431\u0430\u0442
+currenciesDisplayName.PHP=\u0424\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
 currenciesDisplayName.LUF=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0437\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.RHD=\u0420\u043e\u0434\u0435\u0437\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.LUC=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0491\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432\u0430\u043d\u0438\u0439)
 currenciesDisplayName.FIM=\u0424\u0456\u043d\u043b\u044f\u043d\u0434\u0441\u044c\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
 currenciesDisplayName.TTD=\u0414\u043e\u043b\u0430\u0440 \u0422\u0440\u0438\u043d\u0456\u0434\u0430\u0434\u0443 \u0456 \u0422\u043e\u0431\u0430\u0433\u043e
 currenciesDisplayName.SZL=\u0421\u0432\u0430\u0437\u0456\u043b\u0435\u043d\u0434\u0441\u044c\u043a\u0456 \u043b\u0456\u043b\u0430\u043d\u0433\u0435\u043d\u0456
 currenciesDisplayName.MNT=\u041c\u043e\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0442\u0443\u0433\u0440\u0438\u043a
+currenciesDisplayName.UAK=\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u043e\u0433\u043e \u043a\u0430\u0440\u0431\u043e\u0432\u0430\u043d\u0446\u044f
 currenciesDisplayName.SAR=\u0421\u0430\u0443\u0434\u0456\u0432\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0430\u043b
-currenciesDisplayName.UAK=\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u0430\u0440\u0431\u043e\u0432\u0430\u043d\u0435\u0446\u044c
+currenciesDisplayName.COU=\u042e\u043d\u0456\u0434\u0430\u0434 \u0434\u0435 \u0432\u0430\u043b\u043e\u0440 \u0440\u0456\u0430\u043b
+currenciesDisplayName.UAH=\u0433\u0440\u0438\u0432\u043d\u0456
 currenciesDisplayName.HUF=\u0423\u0433\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u043e\u0440\u0438\u043d\u0442
-currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0456\u0439\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
 currenciesDisplayName.QAR=\u041a\u0430\u0442\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0430\u043b
+currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
 currenciesDisplayName.LTT=\u041b\u0438\u0442\u043e\u0432\u0441\u044c\u043a\u0438\u0439 \u0442\u0430\u043b\u043e\u043d
 currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0435\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.UYU=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.AOR=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u043d\u0437\u0430 \u0440\u0435\u0430\u0434\u0436\u0430\u0441\u0442\u0430\u0434\u043e (1995-1999)
 currenciesDisplayName.GBP=\u0410\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442 \u0441\u0442\u0435\u0440\u043b\u0456\u043d\u0433\u0456\u0432
-currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.INR=\u0406\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
 currenciesDisplayName.ZRZ=\u0417\u0430\u0457\u0440\u0441\u044c\u043a\u0438\u0439 \u0437\u0430\u0457\u0440
-currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0437\u0430 (1990-2000)
-currenciesDisplayName.LTL=\u041b\u0438\u0442\u043e\u0432\u0441\u044c\u043a\u0438\u0439 \u043b\u0456\u0442
+currenciesDisplayName.INR=\u0406\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
+currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.XFU=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a UIC
-currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0442\u0435\u043d\u0433\u0435
-currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u0446\u044c\u043a\u0438\u0439 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.MZN=\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u0446\u044c\u043a\u0438\u0439 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.LTL=\u041b\u0438\u0442\u043e\u0432\u0441\u044c\u043a\u0438\u0439 \u043b\u0456\u0442
+currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0437\u0430 (1990-2000)
 currenciesDisplayName.UYP=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e (1975-1993)
+currenciesDisplayName.MZM=\u0421\u0442\u0430\u0440\u0438\u0439 \u043c\u043e\u0437\u0430\u043c\u0431\u0456\u0446\u044c\u043a\u0438\u0439 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0442\u0435\u043d\u0433\u0435
 currenciesDisplayName.AOK=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u043d\u0437\u0430 (1977-1990)
-currenciesDisplayName.BUK=\u0411\u0456\u0440\u043c\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u0456\u0430\u0442
 currenciesDisplayName.GNS=\u0413\u0432\u0456\u043d\u0435\u0439\u0441\u044c\u043a\u0435 \u0441\u0456\u043b\u0456
+currenciesDisplayName.BUK=\u0411\u0456\u0440\u043c\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u0456\u0430\u0442
 currenciesDisplayName.XFO=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0438\u0439 \u0437\u043e\u043b\u043e\u0442\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.PGK=\u041a\u0456\u043d\u0430 \u041f\u0430\u043f\u0443\u0430 \u041d\u043e\u0432\u043e\u0457 \u0413\u0432\u0456\u043d\u0435\u0457
+currenciesDisplayName.UYI=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e \u0432 \u0456\u043d\u0434\u0435\u043a\u0441\u043e\u0432\u0430\u043d\u0438\u0445 \u043e\u0434\u0438\u043d\u0438\u0446\u044f\u0445
 currenciesDisplayName.SYP=\u0421\u0438\u0440\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u0446\u044c\u043a\u0438\u0439 \u0435\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.OMR=\u041e\u043c\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0430\u043b
-currenciesDisplayName.NGN=\u041d\u0456\u0433\u0435\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u043d\u0430\u0439\u0440\u0430
+currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u0446\u044c\u043a\u0438\u0439 \u0435\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.ZRN=\u0417\u0430\u0457\u0440\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0437\u0430\u0457\u0440
-currenciesDisplayName.AOA=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u043d\u0437\u0430
+currenciesDisplayName.NGN=\u041d\u0456\u0433\u0435\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u043d\u0430\u0439\u0440\u0430
 currenciesDisplayName.CNY=\u041a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u0438\u0439 \u044e\u0430\u043d\u044c
+currenciesDisplayName.AOA=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u043d\u0437\u0430
 currenciesDisplayName.MAF=\u041c\u0430\u0440\u043e\u043a\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.RSD=\u0421\u0435\u0440\u0431\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.GNF=\u0413\u0432\u0456\u0439\u043d\u0435\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.HTG=\u0413\u0430\u0457\u0442\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u0440\u0434
 currenciesDisplayName.MAD=\u041c\u0430\u0440\u043e\u043a\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u0440\u0445\u0435\u043c
-currenciesDisplayName.TRY=\u041d\u043e\u0432\u0430 \u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
+currenciesDisplayName.HTG=\u0413\u0430\u0457\u0442\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u0440\u0434
+currenciesDisplayName.TRY=\u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
 currenciesDisplayName.MMK=\u041a\u02bc\u044f\u0442 \u041c\u02bc\u044f\u043d\u043c\u0438
+currenciesDisplayName.XRE=\u0424\u043e\u043d\u0434\u0438 RINET
 currenciesDisplayName.MYR=\u041c\u0430\u043b\u0430\u0439\u0437\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0438\u043d\u0433\u0456\u0442
-currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u044c\u043a\u0438\u0439 \u043b\u043e\u0442\u0456
+currenciesDisplayName.LSM=\u041c\u0430\u043b\u043e\u0442\u0456
 currenciesDisplayName.XEU=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0432\u0430\u043b\u044e\u0442\u043d\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f
-currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u044c\u043a\u0438\u0439 \u043b\u043e\u0442\u0456
 currenciesDisplayName.SLL=\u041b\u0435\u043e\u043d\u0435 \u0421\u044c\u0454\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435
+currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.BTN=\u0411\u0443\u0442\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043d\u0433\u0443\u043b\u0442\u0440\u0443\u043c
-currenciesDisplayName.TRL=\u0422\u0443\u0440\u0435\u0446\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
+currenciesDisplayName.TRL=\u0441\u0442\u0430\u0440\u0430 \u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
 currenciesDisplayName.KMF=\u041a\u043e\u043c\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.ANG=\u0413\u0443\u043b\u044c\u0434\u0435\u043d \u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0445 \u0410\u043d\u0442\u0456\u043b
 currenciesDisplayName.CZK=\u0427\u0435\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.AZM=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.ANG=\u0413\u0443\u043b\u044c\u0434\u0435\u043d \u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0445 \u0410\u043d\u0442\u0456\u043b
+currenciesDisplayName.AZN=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.AZM=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442 (1993-2006)
 currenciesDisplayName.KYD=\u0414\u043e\u043b\u0430\u0440 \u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u0438\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u0456\u0432
 currenciesDisplayName.GMD=\u0413\u0430\u043c\u0431\u0456\u0439\u0441\u044c\u043a\u0430 \u0434\u0430\u043b\u0430\u0441\u0456
+currenciesDisplayName.VEF=\u0412\u0435\u043d\u0435\u0441\u0443\u0435\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0431\u043e\u043b\u0456\u0432\u0430\u0440 \u0444\u0443\u0435\u0440\u0442\u0435
 currenciesDisplayName.BGN=\u0411\u043e\u043b\u0433\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u043b\u0435\u0432
+currenciesDisplayName.MXV=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u044e\u043d\u0456\u0434\u0430\u0434 \u0434\u0435 \u0456\u043d\u0432\u0435\u0440\u0441\u0456\u043e\u043d
 currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.MXV=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 UDI
 currenciesDisplayName.BGL=\u0411\u043e\u043b\u0433\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0442\u0432\u0435\u0440\u0434\u0438\u0439 \u043b\u0435\u0432
 currenciesDisplayName.VEB=\u0412\u0435\u043d\u0435\u0441\u0443\u0435\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0431\u043e\u043b\u0456\u0432\u0430\u0440
 currenciesDisplayName.MLF=\u041c\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.ILS=\u0406\u0437\u0440\u0430\u0457\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0448\u0435\u043a\u0435\u043b\u044c
 currenciesDisplayName.MXP=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0435 \u0441\u0440\u0456\u0431\u043d\u0435 \u043f\u0435\u0441\u043e (1861-1992)
+currenciesDisplayName.ILS=\u0406\u0437\u0440\u0430\u0457\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0448\u0435\u043a\u0435\u043b\u044c
 currenciesDisplayName.PES=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0441\u043e\u043b
-currenciesDisplayName.GYD=\u0413\u0430\u0439\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.MXN=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.GYD=\u0413\u0430\u0439\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.ILP=\u0406\u0437\u0440\u0430\u0457\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0446\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.CYP=\u041a\u0456\u043f\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0446\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.XDR=\u0421\u043f\u0435\u0446\u0456\u0430\u043b\u044c\u043d\u0456 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430\u043f\u043e\u0437\u0438\u0447\u0435\u043d\u043d\u044f
 currenciesDisplayName.PEN=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0441\u043e\u043b
 currenciesDisplayName.LRD=\u041b\u0456\u0431\u0435\u0440\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.PEI=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0456\u043d\u0442\u0456
 currenciesDisplayName.AMD=\u0412\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0440\u0430\u043c
 currenciesDisplayName.BSD=\u0411\u0430\u0433\u0430\u043c\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.XPT=\u041f\u043b\u0430\u0442\u0438\u043d\u0430
 currenciesDisplayName.HRK=\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0430 \u043a\u0443\u043d\u0430
-currenciesDisplayName.CLP=\u0427\u0438\u043b\u0456\u0439\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.CLP=\u0427\u0456\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
 currenciesDisplayName.HRD=\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.XPF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0438\u0439 \u0442\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.FRF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.XPD=\u041f\u0430\u043b\u0430\u0434\u0456\u0439
 currenciesDisplayName.BRR=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0435 \u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e
 currenciesDisplayName.MKD=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.CLF=\u0427\u0438\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 UF
+currenciesDisplayName.CLF=\u0427\u0438\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u044e\u043d\u0456\u0434\u0430\u0434\u0435\u0441 \u0434\u0435 \u0444\u043e\u043c\u0435\u043d\u0442\u043e
 currenciesDisplayName.ALL=\u0410\u043b\u0431\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043b\u0435\u043a
 currenciesDisplayName.BRN=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0435 \u043d\u043e\u0432\u0435 \u043a\u0440\u0443\u0437\u0430\u0434\u043e
-currenciesDisplayName.MWK=\u041c\u0430\u043b\u0430\u0432\u0456\u0439\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u0447\u0430
+currenciesDisplayName.MWK=\u041a\u0432\u0430\u0447\u0430 (\u041c\u0430\u043b\u0430\u0432\u0456)
 currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0440\u0435\u0430\u043b
 currenciesDisplayName.TPE=\u0422\u0456\u043c\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u0435\u0441\u043a\u0443\u0434\u043e
 currenciesDisplayName.BRE=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0435 \u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e (1990-1993)
@@ -150,42 +178,46 @@ currenciesDisplayName.BRC=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c
 currenciesDisplayName.BRB=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0435 \u043d\u043e\u0432\u0435 \u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e (1967-1986)
 currenciesDisplayName.DEM=\u041d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
 currenciesDisplayName.KWD=\u041a\u0443\u0432\u0435\u0439\u0442\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.XCD=\u0414\u043e\u043b\u0430\u0440 \u0421\u0445\u0456\u0434\u043d\u0438\u0445 \u041a\u0438\u0440\u0438\u0431\u0456\u0432
+currenciesDisplayName.XCD=\u0421\u0445\u0456\u0434\u043d\u043e\u043a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.NPR=\u041d\u0435\u043f\u0430\u043b\u044c\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
 currenciesDisplayName.GWP=\u041f\u0435\u0441\u043e \u0413\u0432\u0456\u043d\u0435\u0457-\u0411\u0456\u0441\u0430\u0443
 currenciesDisplayName.YUN=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u044c\u043a\u0438\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432\u0430\u043d\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.SVC=\u0415\u043b\u044c-\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
+currenciesDisplayName.SVC=\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
 currenciesDisplayName.YUM=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.BEL=\u0411\u0435\u043b\u044c\u0433\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u0444\u0456\u043d\u0430\u043d\u0441\u043e\u0432\u0438\u0439)
 currenciesDisplayName.SIT=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u044c\u043a\u0438\u0439 \u0442\u043e\u043b\u0430\u0440
 currenciesDisplayName.JPY=\u042f\u043f\u043e\u043d\u0441\u044c\u043a\u0430 \u0454\u043d\u0430
 currenciesDisplayName.XOF=\u0424\u0440\u0430\u043d\u043a \u0417\u0430\u0445\u0456\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u043e\u0433\u043e \u0444\u0456\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0438\u0441\u0442\u0432\u0430
 currenciesDisplayName.MVR=\u041c\u0430\u043b\u044c\u0434\u0456\u0432\u0441\u044c\u043a\u0430 \u0440\u0443\u0444\u0456\u044f
-currenciesDisplayName.GWE=\u0415\u0441\u043a\u0443\u0434\u043e \u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u043e\u0457 \u0413\u0432\u0456\u043d\u0435\u0457
 currenciesDisplayName.BEF=\u0411\u0435\u043b\u044c\u0433\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.GWE=\u0415\u0441\u043a\u0443\u0434\u043e \u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u043e\u0457 \u0413\u0432\u0456\u043d\u0435\u0457
 currenciesDisplayName.TOP=\u041f\u0430\u0430\u043d\u0433\u0430 \u0422\u043e\u043d\u0433\u043e
 currenciesDisplayName.YUD=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u044c\u043a\u0438\u0439 \u0442\u0432\u0435\u0440\u0434\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.BEC=\u0411\u0435\u043b\u044c\u0433\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432\u0430\u043d\u0438\u0439)
-currenciesDisplayName.SUR=\u0420\u0430\u0434\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
-currenciesDisplayName.ROL=\u0420\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0438\u0439 \u043b\u0435\u0439
+currenciesDisplayName.SUR=\u0440\u0430\u0434\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.RON=\u0420\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0438\u0439 \u043b\u0435\u0439
+currenciesDisplayName.ROL=\u0421\u0442\u0430\u0440\u0438\u0439 \u0440\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0438\u0439 \u043b\u0435\u0439
 currenciesDisplayName.BDT=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0441\u044c\u043a\u0430 \u0442\u0430\u043a\u0430
-currenciesDisplayName.XBD=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f (XBD)
+currenciesDisplayName.DDM=\u041c\u0430\u0440\u043a\u0430 \u041d\u0414\u0420
+currenciesDisplayName.XBD=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f XBD
 currenciesDisplayName.AWG=\u0410\u0440\u0443\u0431\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
-currenciesDisplayName.XBC=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f (XBC)
-currenciesDisplayName.XBB=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0433\u0440\u043e\u0448\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f
+currenciesDisplayName.XBC=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f XBC
+currenciesDisplayName.XBB=\u041e\u0434\u0438\u043d\u0438\u0446\u044f \u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u043e\u0433\u043e \u0432\u0430\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0444\u043e\u043d\u0434\u0443
+currenciesDisplayName.XBA=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0441\u043a\u043b\u0430\u0434\u0435\u043d\u0430 \u0432\u0430\u043b\u044e\u0442\u043d\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f
 currenciesDisplayName.NOK=\u041d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.MUR=\u041c\u0430\u0432\u0440\u0438\u043a\u0456\u0439\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
 currenciesDisplayName.ZAR=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0430\u043d\u0434
 currenciesDisplayName.SHP=\u0424\u0443\u043d\u0442 \u0421\u0432\u044f\u0442\u043e\u0457 \u0404\u043b\u0435\u043d\u0438
 currenciesDisplayName.XAU=\u0417\u043e\u043b\u043e\u0442\u043e
-currenciesDisplayName.ZAL=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0430\u043d\u0434
+currenciesDisplayName.ZAL=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0456\u043d\u0430\u043d\u0441\u043e\u0432\u0438\u0439 \u0440\u0430\u043d\u0434
 currenciesDisplayName.VND=\u0412\u02bc\u0454\u0442\u043d\u0430\u043c\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043d\u0433
 currenciesDisplayName.TZS=\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0448\u0438\u043b\u0456\u043d\u0433
 currenciesDisplayName.GIP=\u0413\u0456\u0431\u0440\u0430\u043b\u0442\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
 currenciesDisplayName.TND=\u0422\u0443\u043d\u0456\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.CVE=\u0415\u0441\u043a\u0443\u0434\u043e \u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435
 currenciesDisplayName.UGX=\u0423\u0433\u0430\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0448\u0438\u043b\u0456\u043d\u0433
-currenciesDisplayName.ZMK=\u0417\u0430\u043c\u0431\u0456\u0439\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u0447\u0430
+currenciesDisplayName.XAG=\u0421\u0440\u0456\u0431\u043b\u043e
+currenciesDisplayName.ZMK=\u041a\u0432\u0430\u0447\u0430 (\u0417\u0430\u043c\u0431\u0456\u044f)
 currenciesDisplayName.JOD=\u0419\u043e\u0440\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.XAF=\u0424\u0440\u0430\u043d\u043a \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u043e\u0433\u043e \u0444\u0456\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0438\u0441\u0442\u0432\u0430
 currenciesDisplayName.LBP=\u041b\u0456\u0432\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
@@ -193,84 +225,94 @@ currenciesDisplayName.UGS=\u0423\u0433\u0430\u043d\u0434\u0456\u0439\u0441\u044c
 currenciesDisplayName.STD=\u0414\u043e\u0431\u0440\u0430 \u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0456 \u041f\u0440\u0456\u043d\u0441\u0456\u043f\u0456
 currenciesDisplayName.WST=\u0422\u0430\u043b\u0430 \u0417\u0430\u0445\u0456\u0434\u043d\u043e\u0433\u043e \u0421\u0430\u043c\u043e\u0430
 currenciesDisplayName.KHR=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0454\u043b\u044c
-currenciesDisplayName.EUR=\u0404\u0432\u0440\u043e
-currenciesDisplayName.DOP=\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.DOP=\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
+currenciesDisplayName.EUR=\u0454\u0432\u0440\u043e
 currenciesDisplayName.BOV=\u0411\u043e\u043b\u0456\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u043c\u0432\u0434\u043e\u043b
 currenciesDisplayName.MTP=\u041c\u0430\u043b\u044c\u0442\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.USS=\u0414\u043e\u043b\u0430\u0440 \u0421\u0428\u0410 (\u0446\u044c\u043e\u0433\u043e \u0434\u043d\u044f)
 currenciesDisplayName.BOP=\u0411\u043e\u043b\u0456\u0432\u0456\u0439\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.CUP=\u041a\u0443\u0431\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
 currenciesDisplayName.MTL=\u041c\u0430\u043b\u044c\u0442\u0456\u0439\u0441\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
-currenciesDisplayName.CUP=\u041a\u0443\u0431\u0438\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
 currenciesDisplayName.TMM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.USN=\u0414\u043e\u043b\u0430\u0440 \u0421\u0428\u0410 (\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u0434\u043d\u044f)
+currenciesDisplayName.GHS=\u0413\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0441\u0435\u0434\u0456
 currenciesDisplayName.SGD=\u0421\u0456\u043d\u0433\u0430\u043f\u0443\u0440\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.NZD=\u041d\u043e\u0432\u043e\u0437\u0435\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.USD=\u0414\u043e\u043b\u0430\u0440 \u0421\u0428\u0410
-currenciesDisplayName.HNL=\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441\u044c\u043a\u0430 \u043b\u0435\u043c\u043f\u0456\u0440\u0430
 currenciesDisplayName.BOB=\u0411\u043e\u043b\u0456\u0432\u0456\u0430\u043d\u043e
+currenciesDisplayName.HNL=\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441\u044c\u043a\u0430 \u043b\u0435\u043c\u043f\u0456\u0440\u0430
+currenciesDisplayName.CHW=\u0424\u0440\u0430\u043d\u043a WIR
 currenciesDisplayName.ITL=\u0406\u0442\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
 currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u044c\u043a\u0430 \u0431\u0430\u043b\u044c\u0431\u043e\u0430
 currenciesDisplayName.GTQ=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u043a\u0435\u0442\u0441\u0430\u043b\u044c
-currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u044c\u043a\u0438\u0439 \u043a\u0456\u043f
-currenciesDisplayName.GHC=\u0413\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0441\u0435\u0434\u0456
+currenciesDisplayName.XXX=\u043d\u0435\u0432\u0456\u0434\u043e\u043c\u0430 \u0430\u0431\u043e \u043d\u0435\u0434\u0456\u0439\u0441\u043d\u0430 \u0433\u0440\u043e\u0448\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f
 currenciesDisplayName.AUD=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.GHC=\u0413\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0441\u0435\u0434\u0456 (1979-2007)
+currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u044c\u043a\u0438\u0439 \u043a\u0456\u043f
 currenciesDisplayName.NAD=\u041d\u0430\u043c\u0456\u0431\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.KGS=\u041a\u0438\u0440\u0433\u0438\u0437\u044c\u043a\u0438\u0439 \u0441\u043e\u043c
 currenciesDisplayName.MGF=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
 currenciesDisplayName.BBD=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.CHE=\u0404\u0432\u0440\u043e WIR
 currenciesDisplayName.MGA=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0430\u0440\u0456\u0430\u0440\u0456
 currenciesDisplayName.PYG=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u0430\u0440\u0430\u043d\u0456
 currenciesDisplayName.PLZ=\u041f\u043e\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0437\u043b\u043e\u0442\u0438\u0439 (1950-1995)
 currenciesDisplayName.YER=\u0404\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0430\u043b
 currenciesDisplayName.ATS=\u0410\u0432\u0441\u0442\u0440\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0448\u0438\u043b\u0456\u043d\u0433
-currenciesDisplayName.ETB=\u0415\u0444\u0456\u043e\u043f\u0441\u044c\u043a\u0438\u0439 \u0431\u0438\u0440
+currenciesDisplayName.ETB=\u0415\u0444\u0456\u043e\u043f\u0441\u044c\u043a\u0438\u0439 \u0431\u0456\u0440
 currenciesDisplayName.BND=\u0411\u0440\u0443\u043d\u0435\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.EGP=\u0404\u0433\u0438\u043f\u0435\u0442\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.PLN=\u041f\u043e\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0437\u043b\u043e\u0442\u0438\u0439
 currenciesDisplayName.DZD=\u0410\u043b\u0436\u0438\u0440\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesDisplayName.ISK=\u0406\u0441\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.SRG=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
 currenciesDisplayName.LYD=\u041b\u0456\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.BZD=\u0411\u0435\u043b\u0456\u0437\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.SRD=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.BAM=\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432\u0430\u043d\u0430 \u043c\u0430\u0440\u043a\u0430 \u0411\u043e\u0441\u043d\u0456\u0457 \u0456 \u0413\u0435\u0440\u0446\u043e\u0433\u043e\u0432\u0438\u043d\u0438
+currenciesDisplayName.BZD=\u0411\u0435\u043b\u0456\u0437\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.ESP=\u0406\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
 currenciesDisplayName.KRW=\u0412\u043e\u043d\u0430 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0457 \u041a\u043e\u0440\u0435\u0457
 currenciesDisplayName.NLG=\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
 currenciesDisplayName.MRO=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0430 \u0443\u0433\u0456\u044f
-currenciesDisplayName.BAD=\u0414\u0438\u043d\u0430\u0440 \u0411\u043e\u0441\u043d\u0456\u0457 \u0456 \u0413\u0435\u0446\u043e\u0433\u043e\u0432\u0438\u043d\u0438
+currenciesDisplayName.BAD=\u0414\u0438\u043d\u0430\u0440 (\u0411\u043e\u0441\u043d\u0456\u044f \u0456 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u0430)
 currenciesDisplayName.ZWD=\u0417\u0456\u043c\u0431\u0430\u0431\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
 currenciesDisplayName.SEK=\u0428\u0432\u0435\u0434\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
 currenciesDisplayName.CSK=\u0427\u0435\u0445\u043e\u0441\u043b\u043e\u0432\u0430\u0446\u044c\u043a\u0430 \u0442\u0432\u0435\u0440\u0434\u0430 \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.BYR=\u0411\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.BYR=\u0431\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.ESB=\u0406\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430 (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432\u0430\u043d\u0456 \u0440\u0430\u0445\u0443\u043d\u043a\u0438)
 currenciesDisplayName.IRR=\u0406\u0440\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0430\u043b
+currenciesDisplayName.ESA=\u0406\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430 (\"\u0410\" \u0440\u0430\u0445\u0443\u043d\u043e\u043a)
 currenciesDisplayName.PKR=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
 currenciesDisplayName.BMD=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=\u0421\u0442\u0430\u0440\u0438\u0439 \u0441\u0435\u0440\u0431\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
 currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
 currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
 currenciesSymbol.CYP=\u00a3C
 currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
 currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
 currenciesSymbol.MWK=MK
 currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
 currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
 currenciesSymbol.AMD=dram
 currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
 currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
 currenciesSymbol.CLP=Ch$
 currenciesSymbol.KWD=KD
 currenciesSymbol.GEL=lari
 currenciesSymbol.AFN=Af
 currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
 currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
 currenciesSymbol.HKD=HK$
 currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.JPY=\u00a5
 currenciesSymbol.ALL=lek
 currenciesSymbol.CRC=C
 currenciesSymbol.IDR=Rp
@@ -282,9 +324,10 @@ currenciesSymbol.NOK=NKr
 currenciesSymbol.UGX=U Sh
 currenciesSymbol.BEF=BF
 currenciesSymbol.TTD=TT$
+currenciesSymbol.UAK=\u043a\u0440\u0431.
 currenciesSymbol.SZL=E
 currenciesSymbol.STD=Db
-currenciesSymbol.UAH=UAH
+currenciesSymbol.UAH=\u0433\u0440\u043d.
 currenciesSymbol.SAR=SRl
 currenciesSymbol.FJD=F$
 currenciesSymbol.UYU=Ur$
@@ -294,22 +337,25 @@ currenciesSymbol.LBP=LL
 currenciesSymbol.MNT=Tug
 currenciesSymbol.DJF=DF
 currenciesSymbol.JOD=JD
+currenciesSymbol.USD=$
 currenciesSymbol.SGD=S$
 currenciesSymbol.KHR=CR
 currenciesSymbol.SYP=LS
 currenciesSymbol.MTL=Lm
 currenciesSymbol.MZM=Mt
 currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
 currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
 currenciesSymbol.OMR=RO
 currenciesSymbol.KZT=T
 currenciesSymbol.INR=INR
 currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
 currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
 currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
 currenciesSymbol.HNL=L
 currenciesSymbol.KGS=som
 currenciesSymbol.ZWD=Z$
@@ -318,8 +364,8 @@ currenciesSymbol.SRG=Sf
 currenciesSymbol.GTQ=Q
 currenciesSymbol.BIF=Fbu
 currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
 currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
 currenciesSymbol.VEB=Be
 currenciesSymbol.BOB=Bs
 currenciesSymbol.CNY=Y
@@ -334,10 +380,10 @@ currenciesSymbol.ETB=Br
 currenciesSymbol.MRO=UM
 currenciesSymbol.BBD=BDS$
 currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
 currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
 currenciesSymbol.MXN=MEX$
 currenciesSymbol.DZD=DA
 currenciesSymbol.ANG=NA f.
@@ -346,107 +392,115 @@ currenciesSymbol.IRR=RI
 currenciesSymbol.GYD=G$
 currenciesSymbol.BAM=KM
 currenciesSymbol.CAD=Can$
-shortMonths=\u0421\u0456\u0447®\u041b\u044e\u0442®\u0411\u0435\u0440®\u041a\u0432\u0456®\u0422\u0440\u0430®\u0427\u0435\u0440®\u041b\u0438\u043f®\u0421\u0435\u0440®\u0412\u0435\u0440®\u0416\u043e\u0432®\u041b\u0438\u0441®\u0413\u0440\u0443®®
-months=\u0421\u0456\u0447\u0435\u043d\u044c®\u041b\u044e\u0442\u0438\u0439®\u0411\u0435\u0440\u0435\u0437\u0435\u043d\u044c®\u041a\u0432\u0456\u0442\u0435\u043d\u044c®\u0422\u0440\u0430\u0432\u0435\u043d\u044c®\u0427\u0435\u0440\u0432\u0435\u043d\u044c®\u041b\u0438\u043f\u0435\u043d\u044c®\u0421\u0435\u0440\u043f\u0435\u043d\u044c®\u0412\u0435\u0440\u0435\u0441\u0435\u043d\u044c®\u0416\u043e\u0432\u0442\u0435\u043d\u044c®\u041b\u0438\u0441\u0442\u043e\u043f\u0430\u0434®\u0413\u0440\u0443\u0434\u0435\u043d\u044c®®
-shortWeekdays=®\u041d\u0434®\u041f\u043d®\u0412\u0442®\u0421\u0440®\u0427\u0442®\u041f\u0442®\u0421\u0431®
-weekdays=®\u041d\u0435\u0434\u0456\u043b\u044f®\u041f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a®\u0412\u0456\u0432\u0442\u043e\u0440\u043e\u043a®\u0421\u0435\u0440\u0435\u0434\u0430®\u0427\u0435\u0442\u0432\u0435\u0440®\u041f\u02bc\u044f\u0442\u043d\u0438\u0446\u044f®\u0421\u0443\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u0434\u043e \u043d.\u0435.®\u043d.\u0435.®
-shortDateFormat=dd.MM.yy
+shortMonths=\u0421\u0456\u0447\u00ae\u041b\u044e\u0442\u00ae\u0411\u0435\u0440\u00ae\u043a\u0432\u0456\u0442\u00ae\u0422\u0440\u0430\u00ae\u0427\u0435\u0440\u00ae\u041b\u0438\u043f\u00ae\u0421\u0435\u0440\u00ae\u0412\u0435\u0440\u00ae\u0416\u043e\u0432\u00ae\u041b\u0438\u0441\u00ae\u0413\u0440\u0443\u00ae\u00ae
+months=\u0421\u0456\u0447\u0435\u043d\u044c\u00ae\u041b\u044e\u0442\u0438\u0439\u00ae\u0411\u0435\u0440\u0435\u0437\u0435\u043d\u044c\u00ae\u041a\u0432\u0456\u0442\u0435\u043d\u044c\u00ae\u0422\u0440\u0430\u0432\u0435\u043d\u044c\u00ae\u0427\u0435\u0440\u0432\u0435\u043d\u044c\u00ae\u041b\u0438\u043f\u0435\u043d\u044c\u00ae\u0421\u0435\u0440\u043f\u0435\u043d\u044c\u00ae\u0412\u0435\u0440\u0435\u0441\u0435\u043d\u044c\u00ae\u0416\u043e\u0432\u0442\u0435\u043d\u044c\u00ae\u041b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u00ae\u0413\u0440\u0443\u0434\u0435\u043d\u044c\u00ae\u00ae
+shortWeekdays=\u00ae\u041d\u0434\u00ae\u041f\u043d\u00ae\u0412\u0442\u00ae\u0421\u0440\u00ae\u0427\u0442\u00ae\u041f\u0442\u00ae\u0421\u0431\u00ae
+weekdays=\u00ae\u041d\u0435\u0434\u0456\u043b\u044f\u00ae\u041f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a\u00ae\u0412\u0456\u0432\u0442\u043e\u0440\u043e\u043a\u00ae\u0421\u0435\u0440\u0435\u0434\u0430\u00ae\u0427\u0435\u0442\u0432\u0435\u0440\u00ae\u041f\u02bc\u044f\u0442\u043d\u0438\u0446\u044f\u00ae\u0421\u0443\u0431\u043e\u0442\u0430\u00ae
+eras=\u0434\u043e\u00a0\u043d.\u00a0\u0435.\u00ae\u043d.\u00a0\u0435.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd.MM.yyyy
 mediumDateFormat=d MMM yyyy
-longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE, d MMMM yyyy '\u0440.'
+longDateFormat=d MMMM yyyy '\u0440'.
+fullDateFormat=EEEE, d MMMM yyyy '\u0440'.
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Central\u00ae\u0437\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Africa_Western\u00ae\u0437\u0430 \u0437\u0430\u0445\u0456\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0437\u0430\u0445\u0456\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Kamchatka\u00ae\u0437\u0430 \u043a\u0430\u043c\u0447\u0430\u0442\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043a\u0430\u043c\u0447\u0430\u0442\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Novosibirsk\u00ae\u0437\u0430 \u043d\u043e\u0432\u043e\u0441\u0438\u0431\u0456\u0440\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043d\u043e\u0432\u043e\u0441\u0438\u0431\u0456\u0440\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Irkutsk\u00ae\u0437\u0430 \u0456\u0440\u043a\u0443\u0442\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0456\u0440\u043a\u0443\u0442\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Yekaterinburg\u00ae\u0437\u0430 \u0454\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0431\u0443\u0440\u0437\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0454\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0431\u0443\u0440\u0437\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Krasnoyarsk\u00ae\u0437\u0430 \u043a\u0440\u0430\u0441\u043d\u043e\u044f\u0440\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043a\u0440\u0430\u0441\u043d\u043e\u044f\u0440\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Omsk\u00ae\u0437\u0430 \u043e\u043c\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043e\u043c\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Vladivostok\u00ae\u0437\u0430 \u0432\u043b\u0430\u0434\u0438\u0432\u043e\u0441\u0442\u043e\u0446\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0432\u043b\u0430\u0434\u0438\u0432\u043e\u0441\u0442\u043e\u0446\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Armenia\u00ae\u0437\u0430 \u0432\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0432\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9America_Pacific\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0442\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0442\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Volgograd\u00ae\u0437\u0430 \u0432\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0432\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0437\u0430 \u0441\u0445\u0456\u0434\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0441\u0445\u0456\u0434\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Moscow\u00ae\u0437\u0430 \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u044c\u043a\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u0437\u0430 \u0441\u0445\u0456\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00ae\u0437\u0430 \u0430\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u043d\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0430\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u043d\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9America_Eastern\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0441\u0445\u0456\u0434\u043d\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0441\u0445\u0456\u0434\u043d\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Europe_Western\u00ae\u0437\u0430 \u0437\u0430\u0445\u0456\u0434\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0437\u0430\u0445\u0456\u0434\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Africa_Central\u00ae\u0437\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u0437\u0430 \u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Africa_Southern\u00ae\u0437\u0430 \u043f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00ae\u0437\u0430 \u044f\u043a\u0443\u0442\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u044f\u043a\u0443\u0442\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Iran\u00ae\u0437\u0430 \u0456\u0440\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0456\u0440\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Magadan\u00ae\u0437\u0430 \u043c\u0430\u0433\u0430\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043c\u0430\u0433\u0430\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9America_Mountain\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0433\u0456\u0440\u043d\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0433\u0456\u0440\u043d\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9GMT\u00ae\u0437\u0430 \u0413\u0440\u0456\u043d\u0432\u0456\u0447\u0435\u043c\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u0437\u0430 \u0441\u0430\u043c\u0430\u0440\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0441\u0430\u043c\u0430\u0440\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9America_Central\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Kuybyshev\u00ae\u0437\u0430 \u043a\u0443\u0439\u0431\u0438\u0448\u0435\u0432\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043a\u0443\u0439\u0431\u0438\u0448\u0435\u0432\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Japan\u00ae\u00ae\u00ae\u0437\u0430 \u044f\u043f\u043e\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9
 territories.TL=\u0421\u0445\u0456\u0434\u043d\u0438\u0439 \u0422\u0438\u043c\u043e\u0440
 territories.TK=\u0422\u043e\u043a\u0435\u043b\u0430\u0443
-territories.TJ=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d
+territories.TJ=\u0422\u0430\u0434\u0436\u0438\u043a\u0456\u0441\u0442\u0430\u043d
 territories.TH=\u0422\u0430\u0457\u043b\u0430\u043d\u0434
-territories.TG=\u0422\u043e\u0433\u043e
+territories.TG=\u0422\u043e\u0491\u043e
 territories.TF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0456 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0422\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457
-territories.GY=\u0413\u0430\u0439\u0430\u043d\u0430
+territories.GY=\u0490\u0430\u0439\u0430\u043d\u0430
 territories.TD=\u0427\u0430\u0434
 territories.TC=\u0422\u0435\u0440\u043a\u0441 \u0456 \u041a\u0430\u0439\u043a\u043e\u0441
-territories.GW=\u0413\u0432\u0456\u043d\u0435\u044f-\u0411\u0456\u0441\u0441\u0430\u0443
-territories.GU=\u0413\u0443\u0430\u043c
-territories.GT=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430
+territories.GW=\u0490\u0432\u0456\u043d\u0435\u044f-\u0411\u0456\u0441\u0430\u0443
+territories.GU=\u0490\u0443\u0430\u043c
+territories.GT=\u0490\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430
 territories.GS=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0414\u0436\u043e\u0440\u0434\u0436\u0456\u044f \u0442\u0430 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0421\u0430\u043d\u0434\u0432\u0456\u0447\u0435\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.GR=\u0413\u0440\u0435\u0446\u0456\u044f
-territories.GQ=\u0415\u043a\u0432\u0430\u0442\u043e\u0440\u0456\u0430\u043b\u044c\u043d\u0430 \u0413\u0432\u0456\u043d\u0435\u044f
-territories.GP=\u0413\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430
+territories.GQ=\u0415\u043a\u0432\u0430\u0442\u043e\u0440\u0456\u0430\u043b\u044c\u043d\u0430 \u0490\u0432\u0456\u043d\u0435\u044f
+territories.GP=\u0490\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430
 territories.SZ=\u0421\u0432\u0430\u0437\u0456\u043b\u0435\u043d\u0434
-territories.SY=\u0421\u0438\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
-territories.GN=\u0413\u0432\u0456\u043d\u0435\u044f
-territories.GM=\u0413\u0430\u043c\u0431\u0456\u044f
-territories.GL=\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0456\u044f
+territories.SY=\u0421\u0438\u0440\u0456\u044f
+territories.GN=\u0490\u0432\u0456\u043d\u0435\u044f
+territories.GM=\u0490\u0430\u043c\u0431\u0456\u044f
+territories.GL=\u0490\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0456\u044f
 territories.SV=\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440
 territories.062=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e-\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430 \u0410\u0437\u0456\u044f
 territories.ST=\u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0456 \u041f\u0440\u0456\u043d\u0441\u0456\u043f\u0456
+territories.GI=\u0490\u0456\u0431\u0440\u0430\u043b\u0442\u0430\u0440
 territories.061=\u041f\u043e\u043b\u0456\u043d\u0435\u0437\u0456\u044f
-territories.GI=\u0413\u0456\u0431\u0440\u0430\u043b\u0442\u0430\u0440
 territories.GH=\u0413\u0430\u043d\u0430
-territories.SR=\u0421\u0443\u0440\u0438\u043d\u0430\u043c
+territories.SR=\u0421\u0443\u0440\u0456\u043d\u0430\u043c
+territories.GG=\u0490\u0435\u0440\u043d\u0441\u0456
 territories.GF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u0413\u0432\u0456\u0430\u043d\u0430
 territories.GE=\u0413\u0440\u0443\u0437\u0456\u044f
 territories.SO=\u0421\u043e\u043c\u0430\u043b\u0456
-territories.GD=\u0413\u0440\u0435\u043d\u0430\u0434\u0430
-territories.SN=\u0421\u0435\u043d\u0435\u0433\u0430\u043b
-territories.SM=\u0421\u0430\u043d-\u041c\u0430\u0440\u0456\u043d\u043e
+territories.GD=\u0490\u0440\u0435\u043d\u0430\u0434\u0430
+territories.SN=\u0421\u0435\u043d\u0435\u0491\u0430\u043b
+territories.SM=\u0421\u0430\u043d-\u041c\u0430\u0440\u0438\u043d\u043e
 territories.GB=\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0456\u044f
-territories.SL=\u0421\u044c\u0454\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435
+territories.SL=\u0421'\u0454\u0440\u0430 \u041b\u0435\u043e\u043d\u0435
 territories.GA=\u0413\u0430\u0431\u043e\u043d
-territories.SK=\u0421\u043b\u043e\u0432\u0430\u043a\u0456\u044f
-territories.SJ=\u0421\u0432\u0430\u043b\u0431\u0430\u0440\u0434 \u0456 \u042f\u043d \u041c\u0430\u0439\u0454\u043d, \u043e\u0441\u0442\u0440\u043e\u0432\u0438
+territories.SK=\u0421\u043b\u043e\u0432\u0430\u0447\u0447\u0438\u043d\u0430
+territories.SJ=\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0421\u0432\u0430\u043b\u044c\u0431\u0430\u0440\u0434 \u0442\u0430 \u042f\u043d-\u041c\u0430\u0454\u043d
 territories.SI=\u0421\u043b\u043e\u0432\u0435\u043d\u0456\u044f
-territories.SH=\u0421\u0432. \u0404\u043b\u0435\u043d\u0430
-territories.SG=\u0421\u0456\u043d\u0433\u0430\u043f\u0443\u0440
+territories.SH=\u041e\u0441\u0442\u0440\u0456\u0432 \u0421\u0432\u044f\u0442\u043e\u0457 \u0404\u043b\u0435\u043d\u0438
+territories.SG=\u0421\u0456\u043d\u0491\u0430\u043f\u0443\u0440
 territories.SE=\u0428\u0432\u0435\u0446\u0456\u044f
 territories.SD=\u0421\u0443\u0434\u0430\u043d
 territories.SC=\u0421\u0435\u0439\u0448\u0435\u043b\u0438
 territories.SB=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.SA=\u0421\u0430\u0443\u0434\u0456\u0432\u0441\u044c\u043a\u0430 \u0410\u0440\u0430\u0432\u0456\u044f
 territories.FR=\u0424\u0440\u0430\u043d\u0446\u0456\u044f
-territories.057=\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f
 territories.FO=\u0424\u0430\u0440\u0435\u0440\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
-territories.FM=\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f
+territories.057=\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f
+territories.FM=\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f, \u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0456 \u0428\u0442\u0430\u0442\u0438
 territories.RW=\u0420\u0443\u0430\u043d\u0434\u0430
 territories.054=\u041c\u0435\u043b\u0430\u043d\u0435\u0437\u0456\u044f
+territories.FK=\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.053=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u044f \u0442\u0430 \u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0456\u044f
-territories.FK=\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438 (\u041c\u0430\u043b\u044c\u0432\u0456\u043d\u0438)
 territories.RU=\u0420\u043e\u0441\u0456\u044f
 territories.FJ=\u0424\u0456\u0434\u0436\u0456
 territories.FI=\u0424\u0456\u043d\u043b\u044f\u043d\u0434\u0456\u044f
+territories.RS=\u0421\u0435\u0440\u0431\u0456\u044f
 territories.RO=\u0420\u0443\u043c\u0443\u043d\u0456\u044f
 territories.RE=\u0420\u0435\u044e\u043d\u044c\u0439\u043e\u043d
 territories.ET=\u0415\u0444\u0456\u043e\u043f\u0456\u044f
 territories.ES=\u0406\u0441\u043f\u0430\u043d\u0456\u044f
 territories.ER=\u0415\u0440\u0438\u0442\u0440\u0435\u044f
-territories.833=\u041e\u0441\u0442\u0440\u0456\u0432 \u041c\u0435\u043d
+territories.QU=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u0439 \u0421\u043e\u044e\u0437
 territories.EH=\u0417\u0430\u0445\u0456\u0434\u043d\u0430 \u0421\u0430\u0445\u0430\u0440\u0430
 territories.EG=\u0404\u0433\u0438\u043f\u0435\u0442
-territories.830=\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041b\u0430-\u041c\u0430\u043d\u0448\u0443
 territories.EE=\u0415\u0441\u0442\u043e\u043d\u0456\u044f
+territories.830=\u041d\u043e\u0440\u043c\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.QO=\u0406\u043d\u0448\u0430 \u041e\u043a\u0435\u0430\u043d\u0456\u044f
 territories.EC=\u0415\u043a\u0432\u0430\u0434\u043e\u0440
 territories.DZ=\u0410\u043b\u0436\u0438\u0440
 territories.QA=\u041a\u0430\u0442\u0430\u0440
 territories.039=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0404\u0432\u0440\u043e\u043f\u0430
 territories.DO=\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
-territories.PY=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439
+territories.PY=\u041f\u0430\u0440\u0430\u0491\u0432\u0430\u0439
+territories.DM=\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430
 territories.035=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e-\u0421\u0445\u0456\u0434\u043d\u0430 \u0410\u0437\u0456\u044f
-territories.DM=\u0414\u043e\u043c\u0456\u043d\u0456\u043a
 territories.PW=\u041f\u0430\u043b\u0430\u0443
+territories.034=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0410\u0437\u0456\u044f
 territories.DK=\u0414\u0430\u043d\u0456\u044f
-territories.DJ=\u0414\u0436\u0456\u0431\u0443\u0442\u0456
+territories.DJ=\u0414\u0436\u0438\u0431\u0443\u0442\u0456
 territories.PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0456\u044f
 territories.PS=\u041f\u0430\u043b\u0435\u0441\u0442\u0438\u043d\u0430
 territories.030=\u0421\u0445\u0456\u0434\u043d\u0430 \u0410\u0437\u0456\u044f
 territories.PR=\u041f\u0443\u0435\u0440\u0442\u043e-\u0420\u0456\u043a\u043e
 territories.DE=\u041d\u0456\u043c\u0435\u0447\u0447\u0438\u043d\u0430
 territories.PN=\u041f\u0456\u0442\u043a\u0435\u0440\u043d
-territories.PM=\u0421\u0435\u043d-\u041f\u02bc\u0454\u0440 \u0456 \u041c\u0456\u043a\u0435\u043b\u043e\u043d
+territories.PM=\u0421\u0435\u043d-\u041f'\u0454\u0440 \u0442\u0430 \u041c\u0456\u043a\u0435\u043b\u043e\u043d
 territories.PL=\u041f\u043e\u043b\u044c\u0449\u0430
 territories.PK=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d
 territories.PH=\u0424\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0438
-territories.PG=\u041f\u0430\u043f\u0443\u0430 \u041d\u043e\u0432\u0430 \u0413\u0432\u0456\u043d\u0435\u044f
+territories.PG=\u041f\u0430\u043f\u0443\u0430-\u041d\u043e\u0432\u0430 \u0490\u0432\u0456\u043d\u0435\u044f
 territories.PF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u041f\u043e\u043b\u0456\u043d\u0435\u0437\u0456\u044f
 territories.CZ=\u0427\u0435\u0441\u044c\u043a\u0430 \u0440\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
 territories.PE=\u041f\u0435\u0440\u0443
@@ -455,49 +509,54 @@ territories.CX=\u041e\u0441\u0442\u0440\u0456\u0432 \u0420\u0456\u0437\u0434\u04
 territories.CV=\u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435
 territories.PA=\u041f\u0430\u043d\u0430\u043c\u0430
 territories.CU=\u041a\u0443\u0431\u0430
+territories.CS=\u0421\u0435\u0440\u0431\u0456\u044f \u0442\u0430 \u0427\u043e\u0440\u043d\u043e\u0433\u043e\u0440\u0456\u044f
 territories.CR=\u041a\u043e\u0441\u0442\u0430-\u0420\u0438\u043a\u0430
-territories.029=\u041a\u0430\u0440\u0438\u0431\u0438
+territories.029=\u041a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0438\u0439 \u0431\u0430\u0441\u0435\u0439\u043d
 territories.CO=\u041a\u043e\u043b\u0443\u043c\u0431\u0456\u044f
 territories.CN=\u041a\u0438\u0442\u0430\u0439
 territories.CM=\u041a\u0430\u043c\u0435\u0440\u0443\u043d
 territories.CL=\u0427\u0438\u043b\u0456
 territories.CK=\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041a\u0443\u043a\u0430
-territories.CI=\u041a\u043e\u0442-\u0434\u2019\u0406\u0432\u0443\u0430\u0440
 territories.021=\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
+territories.CI=\u041a\u043e\u0442-\u0434\u2019\u0406\u0432\u0443\u0430\u0440
 territories.CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0456\u044f
-territories.CG=\u041a\u043e\u043d\u0433\u043e
-territories.CF=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
-territories.CD=\u041a\u043e\u043d\u0433\u043e, \u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.CG=\u041a\u043e\u043d\u0491\u043e - \u0411\u0440\u0430\u0437\u0437\u0430\u0432\u0456\u043b\u044c
+territories.CF=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.CD=\u041a\u043e\u043d\u0491\u043e - \u041a\u0456\u043d\u0448\u0430\u0441\u0430
 territories.CC=\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.OM=\u041e\u043c\u0430\u043d
 territories.CA=\u041a\u0430\u043d\u0430\u0434\u0430
+territories.419=\u041b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0456 \u041a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0438\u0439 \u0431\u0430\u0441\u0435\u0439\u043d
 territories.BZ=\u0411\u0435\u043b\u0456\u0437
 territories.BY=\u0411\u0456\u043b\u043e\u0440\u0443\u0441\u044c
 territories.BW=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0430
-territories.BV=\u0411\u0443\u0432\u0435, \u043e\u0441\u0442\u0440\u0456\u0432
+territories.BV=\u041e\u0441\u0442\u0440\u0456\u0432 \u0411\u0443\u0432\u0435
 territories.BT=\u0411\u0443\u0442\u0430\u043d
 territories.BS=\u0411\u0430\u0433\u0430\u043c\u0438
 territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0456\u044f
 territories.019=\u0410\u043c\u0435\u0440\u0438\u043a\u0438
 territories.018=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
 territories.NZ=\u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0456\u044f
-territories.BO=\u0411\u043e\u043b\u0456\u0432\u0456\u044f
 territories.017=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BO=\u0411\u043e\u043b\u0456\u0432\u0456\u044f
 territories.BN=\u0411\u0440\u0443\u043d\u0435\u0439
-territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0438
 territories.015=\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0438
 territories.014=\u0421\u0445\u0456\u0434\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BL=\u041e\u0441\u0442\u0440\u0456\u0432 \u0421\u0432\u044f\u0442\u043e\u0433\u043e \u0411\u0430\u0440\u0442\u043e\u043b\u043e\u043c\u0435\u044f
 territories.013=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.NU=\u041d\u0456\u044f
 territories.BJ=\u0411\u0435\u043d\u0456\u043d
-territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0456
 territories.011=\u0417\u0430\u0445\u0456\u0434\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0456
+territories.172=\u0421\u043f\u0456\u0432\u0434\u0440\u0443\u0436\u043d\u0456\u0441\u0442\u044c \u041d\u0435\u0437\u0430\u043b\u0435\u0436\u043d\u0438\u0445 \u0414\u0435\u0440\u0436\u0430\u0432
 territories.BH=\u0411\u0430\u0445\u0440\u0435\u0439\u043d
 territories.NR=\u041d\u0430\u0443\u0440\u0443
 territories.BG=\u0411\u043e\u043b\u0433\u0430\u0440\u0456\u044f
 territories.BF=\u0411\u0443\u0440\u043a\u0456\u043d\u0430-\u0424\u0430\u0441\u043e
 territories.NP=\u041d\u0435\u043f\u0430\u043b
 territories.BE=\u0411\u0435\u043b\u044c\u0433\u0456\u044f
+territories.ZZ=\u041d\u0435\u0432\u0456\u0434\u043e\u043c\u0438\u0439 \u0430\u0431\u043e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0438\u0439 \u0440\u0435\u0433\u0456\u043e\u043d
 territories.NO=\u041d\u043e\u0440\u0432\u0435\u0433\u0456\u044f
 territories.BD=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448
 territories.BB=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441
@@ -505,10 +564,10 @@ territories.ZW=\u0417\u0456\u043c\u0431\u0430\u0431\u0432\u0435
 territories.NL=\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0438
 territories.BA=\u0411\u043e\u0441\u043d\u0456\u044f \u0456 \u0413\u0435\u0440\u0446\u043e\u0433\u043e\u0432\u0438\u043d\u0430
 territories.NI=\u041d\u0456\u043a\u0430\u0440\u0430\u0433\u0443\u0430
-territories.NG=\u041d\u0456\u0433\u0435\u0440\u0456\u044f
+territories.NG=\u041d\u0456\u0491\u0435\u0440\u0456\u044f
 territories.NF=\u041e\u0441\u0442\u0440\u0456\u0432 \u041d\u043e\u0440\u0444\u043e\u043b\u043a
 territories.AZ=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d
-territories.NE=\u041d\u0456\u0433\u0435\u0440
+territories.NE=\u041d\u0456\u0491\u0435\u0440
 territories.AX=\u0410\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.NC=\u041d\u043e\u0432\u0430 \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0456\u044f
 territories.AW=\u0410\u0440\u0443\u0431\u0430
@@ -518,40 +577,43 @@ territories.AU=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u044f
 territories.AT=\u0410\u0432\u0441\u0442\u0440\u0456\u044f
 territories.AS=\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0435 \u0421\u0430\u043c\u043e\u0430
 territories.AR=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430
+territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u0434\u0430
 territories.009=\u041e\u043a\u0435\u0430\u043d\u0456\u044f
-territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u043a\u0430
 territories.MZ=\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u043a
 territories.AO=\u0410\u043d\u0433\u043e\u043b\u0430
 territories.MY=\u041c\u0430\u043b\u0430\u0439\u0437\u0456\u044f
-territories.AN=\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u0410\u043d\u0442\u0456\u043b\u044c\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
+territories.AN=\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u0410\u043d\u0442\u0438\u043b\u044c\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.MX=\u041c\u0435\u043a\u0441\u0438\u043a\u0430
-territories.005=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.AM=\u0412\u0456\u0440\u043c\u0435\u043d\u0456\u044f
+territories.005=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
 territories.MW=\u041c\u0430\u043b\u0430\u0432\u0456
 territories.AL=\u0410\u043b\u0431\u0430\u043d\u0456\u044f
 territories.MV=\u041c\u0430\u043b\u044c\u0434\u0456\u0432\u0438
-territories.ZA=\u041f\u0410\u0420
+territories.003=\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
+territories.ZA=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
 territories.MU=\u041c\u0430\u0432\u0440\u0438\u043a\u0456\u0439
 territories.002=\u0410\u0444\u0440\u0438\u043a\u0430
 territories.MT=\u041c\u0430\u043b\u044c\u0442\u0430
-territories.001=\u0421\u0432\u0456\u0442
 territories.AI=\u0410\u043d\u0433\u0456\u043b\u044c\u044f
+territories.001=\u0421\u0432\u0456\u0442
 territories.MS=\u041c\u043e\u043d\u0441\u0435\u0440\u0440\u0430\u0442
 territories.MR=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0456\u044f
-territories.AG=\u0410\u043d\u0442\u0438\u0433\u0443\u0430 \u0456 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
+territories.AG=\u0410\u043d\u0442\u0438\u0491\u0443\u0430 \u0456 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
 territories.MQ=\u041c\u0430\u0440\u0442\u0438\u043d\u0456\u043a\u0430
 territories.AF=\u0410\u0444\u0433\u0430\u043d\u0456\u0441\u0442\u0430\u043d
 territories.MP=\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0456 \u041c\u0430\u0440\u0456\u0430\u043d\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
-territories.AE=\u041e\u0431\u02bc\u0454\u0434\u043d\u0430\u043d\u0456 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0456 \u0415\u043c\u0456\u0440\u0430\u0442\u0438
-territories.MO=\u041c\u0430\u043a\u0430\u043e, \u0421.\u0410.\u0420. \u041a\u0438\u0442\u0430\u044e
+territories.AE=\u041e\u0431'\u0454\u0434\u043d\u0430\u043d\u0456 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0456 \u0415\u043c\u0456\u0440\u0430\u0442\u0438
+territories.MO=\u041c\u0430\u043a\u0430\u043e
 territories.AD=\u0410\u043d\u0434\u043e\u0440\u0440\u0430
 territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b\u0456\u044f
-territories.MM=\u041c\u02bc\u044f\u043d\u043c\u0430
+territories.MM=\u041c'\u044f\u043d\u043c\u0430
 territories.ML=\u041c\u0430\u043b\u0456
 territories.MK=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f
 territories.YT=\u041c\u0430\u0439\u043e\u0442
 territories.MH=\u041c\u0430\u0440\u0448\u0430\u043b\u043b\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
-territories.MG=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
+territories.MG=\u041c\u0430\u0434\u0430\u0491\u0430\u0441\u043a\u0430\u0440
+territories.MF=\u041e\u0441\u0442\u0440\u0456\u0432 \u0421\u0432\u044f\u0442\u043e\u0433\u043e \u041c\u0430\u0440\u0442\u0456\u043d\u0430
+territories.ME=\u0427\u043e\u0440\u043d\u043e\u0433\u043e\u0440\u0456\u044f
 territories.MD=\u041c\u043e\u043b\u0434\u043e\u0432\u0430
 territories.MC=\u041c\u043e\u043d\u0430\u043a\u043e
 territories.MA=\u041c\u0430\u0440\u043e\u043a\u043a\u043e
@@ -575,22 +637,24 @@ territories.KZ=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d
 territories.KY=\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
 territories.KW=\u041a\u0443\u0432\u0435\u0439\u0442
 territories.145=\u0417\u0430\u0445\u0456\u0434\u043d\u0430 \u0410\u0437\u0456\u044f
+territories.143=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430 \u0410\u0437\u0456\u044f
 territories.142=\u0410\u0437\u0456\u044f
 territories.KR=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u041a\u043e\u0440\u0435\u044f
 territories.KP=\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u041a\u043e\u0440\u0435\u044f
 territories.KN=\u0421\u0435\u043d\u0442-\u041a\u0456\u0442\u0441 \u0456 \u041d\u0435\u0432\u0456\u0441
 territories.KM=\u041a\u043e\u043c\u043e\u0440\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
-territories.KI=\u041a\u0456\u0440\u0438\u0431\u0430\u0442\u0456
+territories.KI=\u041a\u0456\u0440\u0456\u0431\u0430\u0442\u0456
 territories.WS=\u0421\u0430\u043c\u043e\u0430
 territories.KH=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430
 territories.KG=\u041a\u0438\u0440\u0433\u0438\u0437\u0441\u0442\u0430\u043d
 territories.KE=\u041a\u0435\u043d\u0456\u044f
-territories.WF=\u0412\u0430\u043b\u043b\u0456\u0441 \u0456 \u0424\u0443\u0442\u0443\u043d\u0430, \u043e\u0441\u0442\u0440\u043e\u0432\u0438
+territories.WF=\u0423\u043e\u043b\u043b\u0456\u0441 \u0456 \u0424\u0443\u0442\u0443\u043d\u0430
 territories.JP=\u042f\u043f\u043e\u043d\u0456\u044f
 territories.JO=\u0419\u043e\u0440\u0434\u0430\u043d\u0456\u044f
 territories.JM=\u042f\u043c\u0430\u0439\u043a\u0430
 territories.VU=\u0412\u0430\u043d\u0443\u0430\u0442\u0443
-territories.VN=\u0412\u02bc\u0454\u0442\u043d\u0430\u043c
+territories.JE=\u0414\u0436\u0435\u0440\u0441\u0456
+territories.VN=\u0412'\u0454\u0442\u043d\u0430\u043c
 territories.VI=\u0412\u0456\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 (\u0421\u0428\u0410)
 territories.VG=\u0412\u0456\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 (\u0411\u0440\u0438\u0442\u0430\u043d\u0456\u044f)
 territories.VE=\u0412\u0435\u043d\u0435\u0441\u0443\u0435\u043b\u0430
@@ -602,164 +666,558 @@ territories.IR=\u0406\u0440\u0430\u043d
 territories.IQ=\u0406\u0440\u0430\u043a
 territories.UZ=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d
 territories.IO=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0456 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457 \u0406\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u043e\u0433\u043e \u043e\u043a\u0435\u0430\u043d\u0443
-territories.UY=\u0423\u0440\u0443\u0433\u0432\u0430\u0439
+territories.UY=\u0423\u0440\u0443\u0491\u0432\u0430\u0439
 territories.IN=\u0406\u043d\u0434\u0456\u044f
+territories.IM=\u041e\u0441\u0442\u0440\u0456\u0432 \u041c\u0435\u043d
 territories.IL=\u0406\u0437\u0440\u0430\u0457\u043b\u044c
-territories.US=\u0421\u0428\u0410
+territories.US=\u0421\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0456 \u0428\u0442\u0430\u0442\u0438 \u0410\u043c\u0435\u0440\u0438\u043a\u0438
 territories.IE=\u0406\u0440\u043b\u0430\u043d\u0434\u0456\u044f
 territories.ID=\u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u044f
 territories.UM=\u0412\u0456\u0434\u0434\u0430\u043b\u0435\u043d\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0421\u0428\u0410
-territories.UG=\u0423\u0433\u0430\u043d\u0434\u0430
+territories.UG=\u0423\u0491\u0430\u043d\u0434\u0430
 territories.UA=\u0423\u043a\u0440\u0430\u0457\u043d\u0430
 territories.HU=\u0423\u0433\u043e\u0440\u0449\u0438\u043d\u0430
 territories.HT=\u0413\u0430\u0457\u0442\u0456
 territories.HR=\u0425\u043e\u0440\u0432\u0430\u0442\u0456\u044f
-territories.TZ=\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f, \u041e\u0431\u02bc\u0454\u0434\u043d\u0430\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.TZ=\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f
 territories.HN=\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441
 territories.HM=\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0425\u0435\u0440\u0434 \u0456 \u041c\u0430\u043a-\u0414\u043e\u043d\u0430\u043b\u044c\u0434
 territories.TW=\u0422\u0430\u0439\u0432\u0430\u043d\u044c
 territories.TV=\u0422\u0443\u0432\u0430\u043b\u0443
-territories.HK=\u0413\u043e\u043d\u043a\u043e\u043d\u0433, \u0421.\u0410.\u0420. \u041a\u0438\u0442\u0430\u044e
-territories.TT=\u0422\u0440\u0438\u043d\u0456\u0434\u0430\u0434 \u0456 \u0422\u043e\u0431\u0430\u0433\u043e
+territories.HK=\u0413\u043e\u043d\u043a\u043e\u043d\u0491
+territories.TT=\u0422\u0440\u0438\u043d\u0456\u0434\u0430\u0434 \u0456 \u0422\u043e\u0431\u0430\u0491\u043e
 territories.TR=\u0422\u0443\u0440\u0435\u0447\u0447\u0438\u043d\u0430
-territories.TO=\u0422\u043e\u043d\u0433\u0430
+territories.TO=\u0422\u043e\u043d\u0491\u0430
 territories.TN=\u0422\u0443\u043d\u0456\u0441
-territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d
-languages.es=\u0406\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430
-languages.ku=\u041a\u0443\u0440\u0434\u0441\u044c\u043a\u0430
-languages.eo=\u0415\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
-languages.en=\u0410\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
-languages.ks=\u041a\u0430\u0448\u043c\u0456\u0440\u0441\u044c\u043a\u0430
-languages.el=\u0413\u0440\u0435\u0446\u044c\u043a\u0430
-languages.qu=\u041a\u0435\u0447\u0443\u0430
-languages.ko=\u041a\u043e\u0440\u0435\u0439\u0441\u044c\u043a\u0430
-languages.kn=\u041a\u0430\u043d\u043d\u0430\u0434\u0430
-languages.km=\u041a\u0445\u043c\u0435\u0440\u0441\u044c\u043a\u0430
-languages.kl=\u041a\u0430\u043b\u0430\u0430\u043b\u043b\u0456\u0441\u0443\u0442
-languages.kk=\u041a\u0430\u0437\u0430\u0445\u0441\u044c\u043a\u0430
-languages.wo=\u0412\u043e\u043b\u043e\u0444
-languages.ka=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u044c\u043a\u0430
-languages.dz=\u0414\u0437\u043e\u043d\u0433-\u043a\u0435
-languages.jv=\u042f\u0432\u0430\u043d\u0441\u044c\u043a\u0430
-languages.pt=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
-languages.ps=\u041f\u0430\u0448\u0442\u043e
-languages.de=\u041d\u0456\u043c\u0435\u0446\u044c\u043a\u0430
-languages.pl=\u041f\u043e\u043b\u044c\u0441\u044c\u043a\u0430
-languages.da=\u0414\u0430\u0442\u0441\u044c\u043a\u0430
-languages.vo=\u0412\u043e\u043b\u0430\u043f\u0430\u043a
-languages.ja=\u042f\u043f\u043e\u043d\u0441\u044c\u043a\u0430
-languages.vi=\u0412\u02bc\u0454\u0442\u043d\u0430\u043c\u0441\u044c\u043a\u0430
-languages.cy=\u0412\u0430\u043b\u043b\u0456\u0439\u0441\u044c\u043a\u0430
-languages.pa=\u041f\u0430\u043d\u0434\u0436\u0430\u0431\u0456
-languages.cs=\u0427\u0435\u0441\u044c\u043a\u0430
-languages.co=\u041a\u043e\u0440\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430
-languages.it=\u0406\u0442\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430
-languages.is=\u0406\u0441\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
-languages.uz=\u0423\u0437\u0431\u0435\u0446\u044c\u043a\u0430
-languages.or=\u041e\u0440\u0456\u044f
-languages.ik=\u0406\u043d\u0443\u043f\u0456\u0430\u043a
-languages.ur=\u0423\u0440\u0434\u0443
-languages.om=\u041e\u0440\u043e\u043c\u043e
-languages.ca=\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u044c\u043a\u0430
-languages.ie=\u0406\u043d\u0442\u0435\u0440\u043b\u0456\u043d\u0433\u0432\u0430
-languages.id=\u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u0439\u0441\u044c\u043a\u0430
-languages.uk=\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430
-languages.ia=\u0406\u043d\u0442\u0435\u0440\u043b\u0456\u043d\u0433\u0432\u0430
-languages.oc=\u041e\u043a\u0438\u0442\u0430\u043d
-languages.ug=\u0423\u0439\u0433\u0443\u0440\u0441\u044c\u043a\u0430
-languages.hy=\u0412\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0430
-languages.br=\u0411\u0440\u0435\u0442\u043e\u043d\u0441\u044c\u043a\u0430
-languages.hu=\u0423\u0433\u043e\u0440\u0441\u044c\u043a\u0430
-languages.bo=\u0422\u0438\u0431\u0435\u0442\u0441\u044c\u043a\u0430
-languages.bn=\u0411\u0435\u043d\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
-languages.hr=\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0430
-languages.bi=\u0411\u0456\u0441\u043b\u0430\u043c\u0456\u0439\u0441\u044c\u043a\u0430
-languages.tw=\u0422\u0432\u0456
-languages.bh=\u0411\u0456\u0445\u0430\u0440\u0456\u0439\u0441\u044c\u043a\u0430
-languages.bg=\u0411\u043e\u043b\u0433\u0430\u0440\u0441\u044c\u043a\u0430
-languages.tt=\u0422\u0430\u0442\u0430\u0440\u0441\u044c\u043a\u0430
-languages.no=\u041d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430
-languages.be=\u0411\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0430
-languages.ts=\u0422\u0441\u043e\u043d\u0433\u043e
-languages.hi=\u0413\u0456\u043d\u0434\u0456
-languages.tr=\u0422\u0443\u0440\u0435\u0446\u044c\u043a\u0430
-languages.nl=\u0413\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
-languages.zu=\u0417\u0443\u043b\u0443\u0441\u044c\u043a\u0430
-languages.ba=\u0411\u0430\u0448\u043a\u0438\u0440\u0441\u044c\u043a\u0430
-languages.to=\u0422\u043e\u043d\u0433\u0430 (\u043e\u0441\u0442\u0440\u043e\u0432\u0438 \u0422\u043e\u043d\u0433\u0430)
-languages.he=\u0406\u0432\u0440\u0438\u0442
-languages.tn=\u0421\u0435\u0442\u0441\u0432\u0430\u043d\u0441\u044c\u043a\u0430
-languages.tl=\u0422\u0430\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
-languages.tk=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u044c\u043a\u0430
-languages.ha=\u0425\u0430\u0443\u0441\u0430
-languages.ne=\u041d\u0435\u043f\u0430\u043b\u044c\u0441\u044c\u043a\u0430
-languages.az=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u044c\u043a\u0430
-languages.ti=\u0422\u0438\u0433\u0440\u0456\u043d\u0456
-languages.ay=\u0410\u0439\u043c\u0430\u0440\u0430
-languages.th=\u0422\u0430\u0439\u0441\u044c\u043a\u0430
-languages.tg=\u0422\u0430\u0434\u0436\u0438\u0446\u044c\u043a\u0430
-languages.na=\u041d\u0430\u0443\u0440\u0443
-languages.te=\u0422\u0435\u043b\u0443\u0433\u0443
-languages.zh=\u041a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u0430
-languages.as=\u0410\u0441\u0441\u0430\u043c\u0441\u044c\u043a\u0430
-languages.ar=\u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0430
-languages.ta=\u0422\u0430\u043c\u0456\u043b\u044c\u0441\u044c\u043a\u0430
-languages.gu=\u0413\u0443\u044f\u0440\u0430\u0442\u0456
-languages.my=\u0411\u0456\u0440\u043c\u0430\u043d\u0441\u044c\u043a\u0430
-languages.am=\u0410\u043c\u0445\u0430\u0440\u0456\u043a
-languages.za=\u0417\u0443\u0430\u043d\u0433
-languages.mt=\u041c\u0430\u043b\u044c\u0442\u0456\u0439\u0441\u044c\u043a\u0430
-languages.ms=\u041c\u0430\u043b\u0430\u0439\u0441\u044c\u043a\u0430
-languages.gn=\u0413\u0443\u0430\u0440\u0430\u043d\u0456
-languages.sw=\u0421\u0443\u0430\u0445\u0456\u043b\u0456
-languages.mr=\u041c\u0430\u0440\u0430\u0442\u0445\u0456
-languages.sv=\u0428\u0432\u0435\u0434\u0441\u044c\u043a\u0430
-languages.gl=\u0413\u0430\u043b\u0456\u0441\u0456\u0439\u0441\u044c\u043a\u0430
-languages.su=\u0421\u0443\u0434\u0430\u043d\u0441\u044c\u043a\u0430
-languages.af=\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441
-languages.st=\u0421\u043e\u0442\u043e, \u043f\u0456\u0432\u0434\u0435\u043d\u043d\u0438\u0439 \u0434\u0456\u0430\u043b\u0435\u043a\u0442
-languages.mo=\u041c\u043e\u043b\u0434\u0430\u0432\u0441\u044c\u043a\u0430
-languages.ss=\u0421\u0456\u0441\u0432\u0430\u0442\u0456
-languages.mn=\u041c\u043e\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430
-languages.sr=\u0421\u0435\u0440\u0431\u0441\u044c\u043a\u0430
-languages.sq=\u0410\u043b\u0431\u0430\u043d\u0441\u044c\u043a\u0430
-languages.ml=\u041c\u0430\u043b\u0430\u0439\u044f\u043b\u0430\u043c
-languages.ab=\u0410\u0431\u0445\u0430\u0437\u044c\u043a\u0430
-languages.aa=\u0410\u0444\u0430\u0440\u0441\u044c\u043a\u0430
-languages.mk=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u044c\u043a\u0430
-languages.so=\u0421\u043e\u043c\u0430\u043b\u0456
-languages.sn=\u0428\u043e\u043d\u0430
-languages.gd=\u0413\u0430\u0435\u043b\u044c\u0441\u044c\u043a\u0430
-languages.mi=\u041c\u0430\u043e\u0440\u0456
-languages.sm=\u0421\u0430\u043c\u043e\u0430\u043d\u0441\u044c\u043a\u0430
-languages.sl=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u044c\u043a\u0430
-languages.mg=\u041c\u0430\u043b\u0430\u0433\u0430\u0441\u0456\u0439\u0441\u044c\u043a\u0430
-languages.sk=\u0421\u043b\u043e\u0432\u0430\u0446\u044c\u043a\u0430
-languages.ga=\u0406\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
-languages.yo=\u0419\u043e\u0440\u0443\u0431\u0430
-languages.si=\u0421\u0438\u043d\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
-languages.sh=\u0421\u0435\u0440\u0431\u0441\u044c\u043a\u043e-\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0430
-languages.sg=\u0421\u0430\u043d\u0433\u0440\u043e
-languages.yi=\u0406\u0434\u0438\u0448
-languages.sd=\u0421\u0456\u043d\u0434\u0442\u0445\u0456
-languages.fy=\u0424\u0440\u0438\u0437\u044c\u043a\u0430
-languages.sa=\u0421\u0430\u043d\u0441\u043a\u0440\u0438\u0442
-languages.fr=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430
-languages.lv=\u041b\u0430\u0442\u0432\u0456\u0439\u0441\u044c\u043a\u0430
-languages.fo=\u0424\u0430\u0440\u0435\u0440\u0441\u044c\u043a\u0430
-languages.lt=\u041b\u0438\u0442\u043e\u0432\u0441\u044c\u043a\u0430
-languages.rw=\u041a\u0456\u043d\u0430\u0440\u0443\u0430\u043d\u0434\u0430
-languages.ru=\u0420\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0430
-languages.fj=\u0424\u0456\u0434\u0436\u0456
-languages.lo=\u041b\u0430\u043e\u0441\u044c\u043a\u0430
-languages.fi=\u0424\u0456\u043d\u0441\u044c\u043a\u0430
-languages.ln=\u041b\u0456\u043d\u0433\u0430\u043b\u0430
-languages.ro=\u0420\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0430
-languages.rn=\u041a\u0456\u0440\u0443\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0430
-languages.rm=\u0420\u0435\u0442\u0440\u043e\u0440\u043e\u043c\u0430\u043d\u0441\u044c\u043a\u0456 \u0434\u0456\u0430\u043b\u0435\u043a\u0442\u0438
-languages.fa=\u041f\u0435\u0440\u0441\u044c\u043a\u0430
-languages.la=\u041b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0430
-languages.xh=\u041a\u0445\u043e\u0441\u0430
-languages.eu=\u0411\u0430\u0441\u043a\u0456\u0432
-languages.et=\u0415\u0441\u0442\u043e\u043d\u0441\u044c\u043a\u0430
-languages.ky=\u041a\u0438\u0440\u0433\u0438\u0437\u044c\u043a\u0430
+territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0456\u0441\u0442\u0430\u043d
+languages.gwi=\u043a\u0443\u0447\u0456\u043d
+languages.akk=\u0430\u043a\u043a\u0430\u0434\u0441\u044c\u043a\u0430
+languages.eka=\u0435\u043a\u0430\u0434\u0436\u0443\u043a
+languages.ijo=\u0456\u0434\u0436\u043e
+languages.xh=\u043a\u0445\u043e\u0441\u0430
+languages.sux=\u0448\u0443\u043c\u0435\u0440\u0441\u044c\u043a\u0430
+languages.sus=\u0441\u0443\u0441\u0443
+languages.mis=\u0456\u043d\u0448\u0456 \u043c\u043e\u0432\u0438
+languages.loz=\u043b\u043e\u0437\u0456
+languages.tog=\u043d\u044c\u044f\u0441\u0430 \u0442\u043e\u043d\u0433\u0430
+languages.zbl=\u0431\u043b\u0456\u0441\u0441\u0430 \u043c\u043e\u0432\u0430
+languages.pon=\u043f\u043e\u043d\u0430\u043f\u0435
+languages.min=\u043c\u0456\u043d\u0430\u043d\u0433\u043a\u0430\u0431\u0430\u0443
+languages.suk=\u0441\u0443\u043a\u0443\u043c\u0430
+languages.wo=\u0432\u043e\u043b\u043e\u0444
+languages.lol=\u043c\u043e\u043d\u0433\u043e
+languages.kut=\u043a\u0443\u0442\u0435\u043d\u0430\u0457
+languages.mic=\u043c\u0456\u043a\u043c\u0430\u043a
+languages.wa=\u0432\u0430\u043b\u043b\u043e\u043d\u0441\u044c\u043a\u0430
+languages.kum=\u043a\u0443\u043c\u0438\u0446\u044c\u043a\u0430
+languages.zap=\u0441\u0430\u043f\u043e\u0442\u0435\u043a\u0441\u044c\u043a\u0430
+languages.ain=\u0430\u0439\u043d\u0441\u044c\u043a\u0430
+languages.cus=\u043a\u0443\u0448\u0456\u0442\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.jbo=\u043b\u043e\u0436\u0431\u0430\u043d
+languages.doi=\u0434\u043e\u0433\u0440\u0456
+languages.zza=\u0437\u0430\u0437\u0430
+languages.vo=\u0432\u043e\u043b\u0430\u043f\u2019\u044e\u043a
+languages.oto=\u043e\u0442\u043e\u043c\u0456 \u043c\u043e\u0432\u0438
+languages.vi=\u0432'\u0454\u0442\u043d\u0430\u043c\u0441\u044c\u043a\u0430
+languages.vai=\u0432\u0430\u0457
+languages.rar=\u0440\u0430\u0440\u043e\u0442\u043e\u043d\u0433\u0430
+languages.ve=\u0432\u0435\u043d\u0434\u0430
+languages.rap=\u0440\u0430\u043f\u0430\u043d\u0443\u0457
+languages.raj=\u0440\u0430\u0434\u0436\u0430\u0441\u0442\u0445\u0430\u043d\u0456
+languages.ota=\u043e\u0441\u043c\u0430\u043d\u0441\u044c\u043a\u0430
+languages.nzi=\u043d\u0437\u0456\u043c\u0430
+languages.nap=\u043d\u0435\u0430\u043f\u043e\u043b\u0456\u0442\u0430\u043d\u0441\u044c\u043a\u0430
+languages.uz=\u0443\u0437\u0431\u0435\u0446\u044c\u043a\u0430
+languages.uga=\u0443\u0433\u0430\u0440\u0438\u0442\u0441\u044c\u043a\u0430
+languages.tmh=\u0442\u0430\u043c\u0430\u0448\u0435\u043a
+languages.nai=\u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0445 \u0456\u043d\u0434\u0456\u0430\u043d\u0446\u0456\u0432 \u043c\u043e\u0432\u0438
+languages.nah=\u043d\u0430\u0445\u0443\u0430\u0442\u043b\u044c
+languages.ur=\u0443\u0440\u0434\u0443
+languages.fat=\u0444\u0430\u043d\u0442\u0456
+languages.uk=\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430
+languages.egy=\u0434\u0430\u0432\u043d\u044c\u043e\u0454\u0433\u0438\u043f\u0435\u0442\u0441\u044c\u043a\u0430
+languages.zxx=\u043d\u0435\u043c\u0430\u0454 \u043c\u043e\u0432\u043d\u043e\u0433\u043e \u0432\u043c\u0456\u0441\u0442\u0443
+languages.ug=\u0443\u0439\u0433\u0443\u0440\u0441\u044c\u043a\u0430
+languages.fan=\u0444\u0430\u043d\u0433
+languages.ssa=\u043d\u0456\u043b\u043e-\u0441\u0430\u0445\u0430\u0440\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.mga=\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0456\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.bat=\u0431\u0430\u043b\u0442\u0456\u0439\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.nyo=\u043d\u044c\u043e\u0440\u043e
+languages.bas=\u0431\u0430\u0441\u0430
+languages.nyn=\u043d\u044c\u044f\u043d\u043a\u043e\u043b\u0435
+languages.nym=\u043d\u044c\u044f\u043c\u0432\u0435\u0437\u0456
+languages.gsw=\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 (\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0456\u044f)
+languages.hmn=\u0445\u043c\u043e\u043d\u0433
+languages.ban=\u0431\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.osa=\u043e\u0441\u0435\u0439\u0434\u0436
+languages.bal=\u0431\u0430\u043b\u0443\u0447\u0456
+languages.ty=\u0442\u0430\u0457\u0442\u044f\u043d\u0441\u044c\u043a\u0430
+languages.bai=\u0431\u0430\u043c\u0456\u043b\u0435\u043a\u0435 \u043c\u043e\u0432\u0438
+languages.tw=\u0442\u0432\u0456
+languages.srr=\u0441\u0435\u0440\u0435\u0440
+languages.tli=\u0442\u043b\u0456\u043d\u0433\u0456\u0442
+languages.tlh=\u043a\u043b\u0456\u043d\u0433\u043e\u043d
+languages.tt=\u0442\u0430\u0442\u0430\u0440\u0441\u044c\u043a\u0430
+languages.ts=\u0442\u0441\u043e\u043d\u0433\u0430
+languages.srn=\u0441\u0440\u0430\u043d\u0430\u043d \u0442\u043e\u043d\u0433\u043e
+languages.bad=\u0431\u0430\u043d\u0434\u0430
+languages.tr=\u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0430
+languages.to=\u0422\u043e\u043d\u0433\u0430
+languages.tn=\u0442\u0441\u0432\u0430\u043d\u0430
+languages.tl=\u0442\u0430\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.tk=\u0442\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u044c\u043a\u0430
+languages.ti=\u0442\u0438\u0433\u0440\u0456\u043d\u0456
+languages.th=\u0442\u0430\u0439\u0441\u044c\u043a\u0430
+languages.kru=\u043a\u0443\u0440\u0443\u043a\u0445
+languages.tg=\u0442\u0430\u0434\u0436\u0438\u0446\u044c\u043a\u0430
+languages.byn=\u0431\u043b\u0456\u043d
+languages.te=\u0442\u0435\u043b\u0443\u0433\u0443
+languages.kro=\u043a\u0440\u0443
+languages.csb=\u043a\u0430\u0448\u0443\u0431\u0441\u044c\u043a\u0430
+languages.ta=\u0442\u0430\u043c\u0456\u043b\u044c\u0441\u044c\u043a\u0430
+languages.krl=\u043a\u0430\u0440\u0435\u043b\u044c\u0441\u044c\u043a\u0430
+languages.tkl=\u0442\u043e\u043a\u0435\u043b\u0430\u0443
+languages.efi=\u0435\u0444\u0456\u043a
+languages.sw=\u0441\u0443\u0430\u0445\u0456\u043b\u0456
+languages.sv=\u0448\u0432\u0435\u0434\u0441\u044c\u043a\u0430
+languages.su=\u0441\u0443\u043d\u0434\u0430\u043d\u0441\u044c\u043a\u0430
+languages.krc=\u043a\u0430\u0440\u0430\u0447\u0430\u0454\u0432\u043e-\u0431\u0430\u043b\u043a\u0430\u0440\u0441\u044c\u043a\u0430
+languages.st=\u0441\u043e\u0442\u043e \u043f\u0456\u0432\u0434\u0435\u043d\u043d\u0430
+languages.ss=\u0441\u0456\u0441\u0432\u0430\u0442\u0456
+languages.sr=\u0441\u0435\u0440\u0431\u0441\u044c\u043a\u0430
+languages.sq=\u0430\u043b\u0431\u0430\u043d\u0441\u044c\u043a\u0430
+languages.men=\u043c\u0435\u043d\u0434\u0435
+languages.crp=\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u044c\u043a\u0456 \u0442\u0430 \u043f\u0456\u0434\u0436\u0456\u043d\u0456\u0437\u043e\u0432\u0430\u043d\u0456 \u043c\u043e\u0432\u0438
+languages.so=\u0441\u043e\u043c\u0430\u043b\u0456
+languages.afh=\u0430\u0444\u0440\u0438\u0445\u0456\u043b\u0456
+languages.sn=\u0448\u043e\u043d\u0430
+languages.sm=\u0441\u0430\u043c\u043e\u0430\u043d\u0441\u044c\u043a\u0430
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u044c\u043a\u0430
+languages.grc=\u0434\u0430\u0432\u043d\u044c\u043e\u0433\u0440\u0435\u0446\u044c\u043a\u0430
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u0446\u044c\u043a\u0430
+languages.grb=\u0433\u0440\u0435\u0431\u043e
+languages.si=\u0441\u0438\u043d\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.sh=\u0441\u0435\u0440\u0431\u0441\u044c\u043a\u043e-\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0430
+languages.crh=\u043a\u0440\u0438\u043c\u0441\u044c\u043a\u043e\u0442\u0430\u0442\u0430\u0440\u0441\u044c\u043a\u0430
+languages.afa=\u0430\u0444\u0440\u043e-\u0430\u0437\u0456\u0439\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.sg=\u0441\u0430\u043d\u0433\u043e
+languages.se=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u0430
+languages.sd=\u0441\u0456\u043d\u0434\u0445\u0456
+languages.udm=\u0443\u0434\u043c\u0443\u0440\u0442\u0441\u044c\u043a\u0430
+languages.sc=\u0441\u0430\u0440\u0434\u0438\u043d\u0441\u044c\u043a\u0430
+languages.sa=\u0441\u0430\u043d\u0441\u043a\u0440\u0438\u0442
+languages.rw=\u043a\u0456\u043d\u044c\u044f\u0440\u0443\u0430\u043d\u0434\u0430
+languages.nwc=\u043d\u0435\u0432\u0430\u0440\u0456 \u043a\u043b\u0430\u0441\u0438\u0447\u043d\u0430
+languages.ru=\u0440\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0430
+languages.mdr=\u043c\u0430\u043d\u0434\u0430\u0440\u0441\u044c\u043a\u0430
+languages.ro=\u0440\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0430
+languages.rn=\u0440\u0443\u043d\u0434\u0456
+languages.rm=\u0440\u0435\u0442\u043e\u0440\u043e\u043c\u0430\u043d\u0441\u044c\u043a\u0430
+languages.fr_CH=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u0448\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u044c\u043a\u0430
+languages.mdf=\u043c\u043e\u043a\u0448\u0430
+languages.tiv=\u0442\u0456\u0432
+languages.fr_CA=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u043a\u0430\u043d\u0430\u0434\u0441\u044c\u043a\u0430
+languages.ady=\u0430\u0434\u0438\u0433\u0435\u0439\u0441\u044c\u043a\u0430
+languages.zun=\u0437\u0443\u043d\u044c\u0457
+languages.kpe=\u043a\u043f\u0435\u043b\u043b\u0454
+languages.qu=\u043a\u0435\u0447\u0443\u0430
+languages.tig=\u0442\u0438\u0433\u0440\u0435
+languages.son=\u0441\u043e\u043d\u0433\u0430\u0439
+languages.cpp=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u044c\u043a\u0456 \u0442\u0430 \u043f\u0456\u0434\u0436\u0456\u043d\u0456\u0437\u043e\u0432\u0430\u043d\u0456 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.rup=\u0430\u0440\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0430
+languages.sog=\u0441\u043e\u0433\u0434\u0456\u0439\u0441\u044c\u043a\u0430
+languages.ada=\u0430\u0434\u0430\u043d\u0433\u043c\u0435
+languages.kos=\u043a\u043e\u0441\u0440\u0430\u0435
+languages.hit=\u0445\u0456\u0442\u0456\u0442\u0456
+languages.cpf=\u0440\u0430\u043d\u043a\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u044c\u043a\u0456 \u0442\u0430 \u043f\u0456\u0434\u0436\u0456\u043d\u0456\u0437\u043e\u0432\u0430\u043d\u0456 \u0444\u0440\u0430\u043d\u043a\u043e\u0444\u043e\u043d\u043d\u0456 \u043c\u043e\u0432\u0438
+languages.cpe=\u043d\u0433\u043b\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u044c\u043a\u0456 \u0442\u0430 \u043f\u0456\u0434\u0436\u0456\u043d\u0456\u0437\u043e\u0432\u0430\u043d\u0456 \u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.him=\u0445\u0456\u043c\u0430\u0447\u0430\u043b\u0456
+languages.kok=\u043a\u043e\u043d\u043a\u0430\u043d\u0456
+languages.hil=\u0445\u0456\u043b\u0456\u0433\u0430\u0439\u043d\u043e\u043d
+languages.got=\u0433\u043e\u0442\u0441\u044c\u043a\u0430
+languages.gor=\u0433\u043e\u0440\u043e\u043d\u0442\u0430\u043b\u043e
+languages.gon=\u0433\u043e\u043d\u0434\u0456
+languages.din=\u0434\u0456\u043d\u043a\u0430
+languages.nub=\u043d\u0443\u0431\u0456\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.ps=\u043f\u0443\u0448\u0442\u0443
+languages.fur=\u0444\u0440\u0456\u0443\u043b\u044c\u0441\u044c\u043a\u0430
+languages.phn=\u0444\u0456\u043d\u0456\u043a\u0456\u0439\u0441\u044c\u043a\u043e-\u043f\u0443\u043d\u0456\u0447\u043d\u0430
+languages.de_CH=\u0432\u0435\u0440\u0445\u044c\u043e\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 (\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0456\u044f)
+languages.goh=\u0434\u0430\u0432\u043d\u044c\u043e\u0432\u0435\u0440\u0445\u043d\u044c\u043e\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430
+languages.snk=\u0441\u043e\u043d\u0456\u043d\u043a\u0435
+languages.cop=\u043a\u043e\u043f\u0442\u0441\u044c\u043a\u0430
+languages.yap=\u044f\u043f
+languages.ach=\u0430\u0447\u043e\u043b\u0456
+languages.yao=\u044f\u043e
+languages.phi=\u0444\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.pl=\u043f\u043e\u043b\u044c\u0441\u044c\u043a\u0430
+languages.ace=\u0430\u0447\u0435\u0445\u0441\u044c\u043a\u0430
+languages.pi=\u043f\u0430\u043b\u0456
+languages.pt_PT=\u0456\u0431\u0435\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.pa=\u043f\u0430\u043d\u0434\u0436\u0430\u0431\u0456
+languages.bug=\u0431\u0443\u0433\u0456\u0439\u0441\u044c\u043a\u0430
+languages.iba=\u0456\u0431\u0430\u043d\u0441\u044c\u043a\u0430
+languages.sms=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0430 \u0441\u043a\u043e\u043b\u044c\u0442
+languages.bua=\u0431\u0443\u0440\u044f\u0442\u0441\u044c\u043a\u0430
+languages.mas=\u043c\u0430\u0441\u0430\u0457
+languages.smn=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0430 \u0456\u043d\u0430\u0440\u0456
+languages.os=\u043e\u0441\u0435\u0442\u0438\u043d\u0441\u044c\u043a\u0430
+languages.map=\u0430\u0432\u0441\u0442\u0440\u043e\u043d\u0435\u0437\u0456\u0439\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.or=\u043e\u0440\u0456\u044f
+languages.man=\u043c\u0430\u043d\u0434\u0456\u043d\u0433\u043e
+languages.smj=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0430 \u043b\u0443\u043b\u0435
+languages.smi=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.mak=\u043c\u0430\u043a\u0430\u0441\u0430\u0440\u0441\u044c\u043a\u0430
+languages.om=\u043e\u0440\u043e\u043c\u043e
+languages.mai=\u043c\u0430\u0439\u0442\u0445\u0456\u043b\u0456
+languages.oj=\u043e\u0434\u0436\u0456\u0431\u0432\u0430
+languages.mag=\u043c\u0430\u0433\u0430\u0434\u0445\u0456
+languages.mad=\u043c\u0430\u0434\u0443\u0440\u0441\u044c\u043a\u0430
+languages.sma=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0430 \u043f\u0456\u0432\u0434\u0435\u043d\u043d\u0430
+languages.oc=\u043e\u043a\u0438\u0442\u0430\u043d
+languages.nso=\u0441\u043e\u0442\u043e \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u0430
+languages.btk=\u0431\u0430\u0442\u0430\u043a
+languages.myv=\u0435\u0440\u0437\u044f
+languages.es_ES=\u0456\u0431\u0435\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u0456\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430
+languages.de_AT=\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 \u0430\u0432\u0441\u0442\u0440\u0456\u0439\u0441\u044c\u043a\u0430
+languages.dgr=\u0434\u043e\u0433\u0440\u0438\u0431\u0441\u044c\u043a\u0430
+languages.ny=\u043d\u044c\u044f\u043d\u0434\u0436\u0430
+languages.myn=\u043c\u0430\u0439\u044f \u043c\u043e\u0432\u0438
+languages.nv=\u043d\u0430\u0432\u0430\u0445\u043e
+languages.kmb=\u043a\u0456\u043c\u0431\u0443\u043d\u0434\u0443
+languages.nr=\u043d\u0434\u0435\u0431\u0435\u043b\u0454 \u043f\u0456\u0432\u0434\u0435\u043d\u043d\u0430
+languages.gmh=\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0432\u0435\u0440\u0445\u043d\u044c\u043e\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430
+languages.nn=\u043d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430 \u043d\u044e\u043d\u043e\u0440\u0441\u044c\u043a
+languages.nl=\u0433\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.root=\u043a\u043e\u0440\u0456\u043d\u044c
+languages.ng=\u043d\u0434\u043e\u043d\u0433\u0430
+languages.sla=\u0441\u043b\u043e\u0432\u2019\u044f\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.ne=\u043d\u0435\u043f\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.nd=\u043d\u0434\u0435\u0431\u0435\u043b\u0454 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u0430
+languages.cmc=\u0445\u0430\u043c\u0456\u0442\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.tet=\u0442\u0435\u0442\u0443\u043c
+languages.nb=\u043d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430 \u0431\u0443\u043a\u043c\u043e\u043b
+languages.na=\u043d\u0430\u0443\u0440\u0443
+languages.ter=\u0442\u0435\u0440\u0435\u043d\u043e
+languages.tem=\u0442\u0435\u043c\u043d\u0435
+languages.my=\u0431\u0456\u0440\u043c\u0430\u043d\u0441\u044c\u043a\u0430
+languages.lez=\u043b\u0435\u0437\u0433\u0456\u043d\u0441\u044c\u043a\u0430
+languages.mt=\u043c\u0430\u043b\u044c\u0442\u0456\u0439\u0441\u044c\u043a\u0430
+languages.frs=\u0444\u0440\u0438\u0437\u044c\u043a\u0430 \u0441\u0445\u0456\u0434\u043d\u0430
+languages.peo=\u0434\u0430\u0432\u043d\u044c\u043e\u043f\u0435\u0440\u0441\u044c\u043a\u0430
+languages.ms=\u043c\u0430\u043b\u0430\u0439\u0441\u044c\u043a\u0430
+languages.frr=\u0444\u0440\u0438\u0437\u044c\u043a\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u0430
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0445\u0456
+languages.fro=\u0434\u0430\u0432\u043d\u044c\u043e\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430
+languages.mo=\u043c\u043e\u043b\u0434\u0430\u0432\u0441\u044c\u043a\u0430
+languages.mn=\u043c\u043e\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430
+languages.frm=\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430
+languages.ml=\u043c\u0430\u043b\u0430\u0439\u044f\u043b\u0430\u043c
+languages.jrb=\u0456\u0443\u0434\u0435\u043e-\u0430\u0440\u0430\u0431\u0441\u044c\u043a\u0430
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u044c\u043a\u0430
+languages.mi=\u043c\u0430\u043e\u0440\u0456
+languages.mh=\u043c\u0430\u0440\u0448\u0430\u043b\u043b\u044c\u0441\u044c\u043a\u0430
+languages.mg=\u043c\u0430\u043b\u0430\u0433\u0430\u0441\u0456\u0439\u0441\u044c\u043a\u0430
+languages.nqo=\u043d\u043a\u043e
+languages.mwr=\u043c\u0430\u0440\u0432\u0430\u0440\u0456
+languages.bra=\u0431\u0440\u0430\u0434\u0436
+languages.mwl=\u043c\u0456\u0440\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.den=\u0441\u043b\u0435\u0439\u0432
+languages.lv=\u043b\u0430\u0442\u0432\u0456\u0439\u0441\u044c\u043a\u0430
+languages.lu=\u043b\u0443\u0431\u0430-\u043a\u0430\u0442\u0430\u043d\u0433\u0430
+languages.del=\u0434\u0435\u043b\u0430\u0432\u0430\u0440\u0441\u044c\u043a\u0430
+languages.lt=\u043b\u0438\u0442\u043e\u0432\u0441\u044c\u043a\u0430
+languages.lo=\u043b\u0430\u043e\u0441\u044c\u043a\u0430
+languages.ln=\u043b\u0456\u043d\u0433\u0430\u043b\u0430
+languages.li=\u043b\u0456\u043c\u0431\u0443\u0440\u0433\u0456\u0439\u0441\u044c\u043a\u0430
+languages.ewo=\u0435\u0432\u043e\u043d\u0434\u043e
+languages.lg=\u0433\u0430\u043d\u0434\u0430
+languages.lb=\u043b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0437\u044c\u043a\u0430
+languages.la=\u043b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0430
+languages.jpr=\u0456\u0443\u0434\u0435\u043e-\u043f\u0435\u0440\u0441\u044c\u043a\u0430
+languages.vot=\u0432\u043e\u0434\u0441\u044c\u043a\u0430
+languages.sit=\u043a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u043e-\u0442\u0438\u0431\u0435\u0442\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.ky=\u043a\u0438\u0440\u0433\u0438\u0437\u044c\u043a\u0430
+languages.kw=\u043a\u043e\u0440\u043d\u0456\u0439\u0441\u044c\u043a\u0430
+languages.kv=\u043a\u043e\u043c\u0456
+languages.ku=\u043a\u0443\u0440\u0434\u0441\u044c\u043a\u0430
+languages.sio=\u0441\u0456\u0443 \u043c\u043e\u0432\u0438
+languages.ks=\u043a\u0430\u0448\u043c\u0456\u0440\u0441\u044c\u043a\u0430
+languages.kr=\u043a\u0430\u043d\u0443\u0440\u0456
+languages.awa=\u0430\u0432\u0430\u0434\u0445\u0456
+languages.ko=\u043a\u043e\u0440\u0435\u0439\u0441\u044c\u043a\u0430
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.km=\u043a\u0445\u043c\u0435\u0440\u0441\u044c\u043a\u0430
+languages.en_GB=\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0430 \u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.kl=\u043a\u0430\u043b\u0430\u0430\u043b\u043b\u0456\u0441\u0443\u0442
+languages.kk=\u043a\u0430\u0437\u0430\u0445\u0441\u044c\u043a\u0430
+languages.rom=\u0446\u0438\u0433\u0430\u043d\u0441\u044c\u043a\u0430
+languages.kj=\u043a\u0443\u043d\u0430\u043c\u0430
+languages.sid=\u0441\u0456\u0434\u0430\u043c\u043e
+languages.ki=\u043a\u0456\u043a\u0443\u0439\u044e
+languages.kg=\u043a\u043e\u043d\u0491\u043e\u043b\u0435\u0437\u044c\u043a\u0430
+languages.non=\u0434\u0430\u0432\u043d\u044c\u043e\u043d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430
+languages.ka=\u0433\u0440\u0443\u0437\u0438\u043d\u0441\u044c\u043a\u0430
+languages.mus=\u043a\u0440\u0456\u043a
+languages.roa=\u0440\u043e\u043c\u0430\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.nog=\u043d\u043e\u0433\u0430\u0439\u0441\u044c\u043a\u0430
+languages.mun=\u043c\u0443\u043d\u0434\u0430 \u043c\u043e\u0432\u0438
+languages.mul=\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u043c\u043e\u0432
+languages.jv=\u044f\u0432\u0430\u043d\u0441\u044c\u043a\u0430
+languages.gil=\u0433\u0456\u043b\u044c\u0431\u0435\u0440\u0442\u0441\u044c\u043a\u0430
+languages.znd=\u0437\u0430\u043d\u0434\u0435
+languages.shn=\u0448\u0430\u043d\u0441\u044c\u043a\u0430
+languages.fon=\u0444\u043e\u043d
+languages.xal=\u043a\u0430\u043b\u043c\u0438\u0446\u044c\u043a\u0430
+languages.aus=\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.kho=\u0445\u043e\u0442\u0430\u043d\u043e\u0441\u0430\u043a\u0441\u044c\u043a\u0430
+languages.ja=\u044f\u043f\u043e\u043d\u0441\u044c\u043a\u0430
+languages.khi=\u043a\u043e\u0439\u0441\u0430\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.pau=\u043f\u0430\u043b\u0430\u0443\u0430\u043d\u0441\u044c\u043a\u0430
+languages.chy=\u0447\u0435\u0439\u0454\u043d\u043d
+languages.tai=\u0442\u0430\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.iu=\u0456\u043d\u0443\u043a\u0442\u0456\u0442\u0443\u0442
+languages.pap=\u043f\u0430\u043f\u2019\u044f\u043c\u0435\u043d\u0442\u043e
+languages.it=\u0456\u0442\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.sgn=\u0437\u043d\u0430\u043a\u043e\u0432\u0456 \u043c\u043e\u0432\u0438
+languages.is=\u0456\u0441\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.kha=\u043a\u0445\u0430\u0441\u0456
+languages.chr=\u0447\u0435\u0440\u043e\u043a\u0456
+languages.pam=\u043f\u0430\u043c\u043f\u0430\u043d\u0433\u0430
+languages.pal=\u043f\u0435\u0445\u043b\u0435\u0432\u0456
+languages.chp=\u0447\u0456\u043f\u0435\u0432\u2019\u044f\u043d
+languages.io=\u0456\u0434\u043e
+languages.cho=\u0447\u043e\u043a\u0442\u043e
+languages.chn=\u0447\u0438\u043d\u0443\u043a \u0436\u0430\u0440\u0433\u043e\u043d
+languages.chm=\u043c\u0430\u0440\u0456\u0439\u0441\u044c\u043a\u0430
+languages.tyv=\u0442\u0443\u0432\u0438\u043d\u0441\u044c\u043a\u0430
+languages.bnt=\u0431\u0430\u043d\u0442\u0443
+languages.pag=\u043f\u0430\u043d\u0433\u0430\u0441\u0456\u043d\u0430\u043d\u0441\u044c\u043a\u0430
+languages.ik=\u0456\u043d\u0443\u043f\u0456\u0430\u043a
+languages.chk=\u0447\u0443\u0443\u043a\u0441\u044c\u043a\u0430
+languages.ii=\u0441\u0438\u0447\u0443\u0430\u043d\u044c
+languages.haw=\u0433\u0430\u0432\u0430\u0439\u0441\u044c\u043a\u0430
+languages.lam=\u043b\u0430\u043c\u0431\u0430
+languages.ig=\u0456\u0433\u0431\u043e
+languages.chg=\u0447\u0430\u0433\u0430\u0442\u0430\u0439\u0441\u044c\u043a\u0430
+languages.sga=\u0434\u0430\u0432\u043d\u044c\u043e\u0456\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.paa=\u043f\u0430\u043f\u0443\u0430\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.ie=\u0456\u043d\u0442\u0435\u0440\u043b\u0456\u043d\u0433\u0432\u0435
+languages.id=\u0456\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u0439\u0441\u044c\u043a\u0430
+languages.lah=\u043b\u0430\u043d\u0434\u0430
+languages.day=\u0434\u0430\u044f\u043a
+languages.chb=\u0447\u0456\u0431\u0447\u0430
+languages.ia=\u0456\u043d\u0442\u0435\u0440\u043b\u0456\u043d\u0433\u0432\u0430
+languages.lad=\u043b\u0430\u0434\u0456\u043d\u043e
+languages.hz=\u0433\u0435\u0440\u0435\u0440\u043e
+languages.hai=\u0445\u0430\u0439\u0434\u0430
+languages.dar=\u0434\u0430\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0430
+languages.hy=\u0432\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0430
+languages.ath=\u0430\u0442\u0430\u043f\u0430\u0441\u043a\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.hu=\u0443\u0433\u043e\u0440\u0441\u044c\u043a\u0430
+languages.ht=\u0433\u0430\u0457\u0442\u044f\u043d\u0441\u044c\u043a\u0430
+languages.dak=\u0434\u0430\u043a\u043e\u0442\u0430
+languages.hr=\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0430
+languages.ho=\u0445\u0456\u0440\u0456-\u043c\u043e\u0442\u0443
+languages.hi=\u0433\u0456\u043d\u0434\u0456
+languages.dyu=\u0434\u0456\u0443\u043b\u0430
+languages.he=\u0456\u0432\u0440\u0438\u0442
+languages.ast=\u0430\u0441\u0442\u0443\u0440\u0441\u044c\u043a\u0430
+languages.kfo=\u043a\u043e\u0440\u043e
+languages.ha=\u0445\u0430\u0443\u0441\u0430
+languages.wen=\u043b\u0443\u0436\u0438\u0446\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.gv=\u043c\u0435\u043d\u043a\u0441\u044c\u043a\u0430
+languages.gu=\u0433\u0443\u0434\u0436\u0430\u0440\u0430\u0442\u0456
+languages.sem=\u0441\u0435\u043c\u0456\u0442\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.sel=\u0441\u0435\u043b\u044c\u043a\u0443\u043f\u0441\u044c\u043a\u0430
+languages.iro=\u0456\u0440\u043e\u043a\u0435\u0437\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0456
+languages.gl=\u0433\u0430\u043b\u0456\u0441\u0456\u0439\u0441\u044c\u043a\u0430
+languages.en_CA=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430 \u043a\u0430\u043d\u0430\u0434\u0441\u044c\u043a\u0430
+languages.arw=\u0430\u0440\u0430\u0432\u0430\u043a\u0441\u044c\u043a\u0430
+languages.gez=\u0433\u0454\u0435\u0437
+languages.art=\u0448\u0442\u0443\u0447\u043d\u0430 \u043c\u043e\u0432\u0430
+languages.gd=\u0433\u0430\u0435\u043b\u044c\u0441\u044c\u043a\u0430
+languages.ira=\u0456\u0440\u0430\u043d\u0441\u044c\u043a\u0430
+languages.ga=\u0456\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.arp=\u0430\u0440\u0430\u043f\u0430\u0445\u043e
+languages.arn=\u0430\u0440\u0430\u0443\u043a\u0430\u043d\u0441\u044c\u043a\u0430
+languages.fy=\u0444\u0440\u0438\u0437\u044c\u043a\u0430
+languages.bla=\u0441\u0456\u043a\u0441\u0456\u043a\u0430
+languages.gem=\u0433\u0435\u0440\u043c\u0430\u043d\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.ypk=\u044e\u043f\u0456\u043a \u043c\u043e\u0432\u0438
+languages.arc=\u0430\u0440\u0430\u043c\u0435\u0439\u0441\u044c\u043a\u0430
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430
+languages.fo=\u0444\u0430\u0440\u0435\u0440\u0441\u044c\u043a\u0430
+languages.cel=\u043a\u0435\u043b\u044c\u0442\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.fj=\u0444\u0456\u0434\u0436\u0456
+languages.fi=\u0444\u0456\u043d\u0441\u044c\u043a\u0430
+languages.ff=\u0444\u0443\u043b\u0430
+languages.tvl=\u0442\u0443\u0432\u0430\u043b\u0443
+languages.ceb=\u0441\u0435\u0431\u0443\u0430\u043d\u0441\u044c\u043a\u0430
+languages.fa=\u043f\u0435\u0440\u0441\u044c\u043a\u0430
+languages.en_AU=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430 \u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.zh_Hans=\u043a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u0430 (\u0441\u043f\u0440\u043e\u0449\u0435\u043d\u0430)
+languages.zh_Hant=\u043a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u0430 (\u0442\u0440\u0430\u0434\u0438\u0446\u0456\u0439\u043d\u0430)
+languages.eu=\u0431\u0430\u0441\u043a\u0456\u0432
+languages.sco=\u0448\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.et=\u0435\u0441\u0442\u043e\u043d\u0441\u044c\u043a\u0430
+languages.scn=\u0441\u0438\u0446\u0438\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.es=\u0456\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430
+languages.eo=\u0435\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.el=\u0433\u0440\u0435\u0446\u044c\u043a\u0430
+languages.tut=\u0430\u043b\u0442\u0430\u0439\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.niu=\u043d\u0456\u0443\u0435
+languages.tup=\u0442\u0443\u043f\u0456
+languages.ee=\u0435\u0432\u0435
+languages.tum=\u0442\u0443\u043c\u0431\u0443\u043a\u0430
+languages.nl_BE=\u0444\u043b\u0430\u043c\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.es_419=\u043b\u0430\u0442\u0438\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0456\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430
+languages.mos=\u043c\u043e\u0441\u0441\u0456
+languages.dz=\u0434\u0437\u043e\u043d\u0433-\u043a\u0435
+languages.kcg=\u0442\u0456\u0430\u043f
+languages.nic=\u043d\u0456\u0491\u0435\u0440\u043e-\u043a\u043e\u0440\u0434\u043e\u0444\u0430\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.lus=\u043b\u0443\u0448\u0435\u0439
+languages.fiu=\u0444\u0456\u043d\u043d\u043e-\u0443\u0433\u043e\u0440\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.dv=\u0434\u0456\u0432\u0435\u0445\u0456
+languages.nia=\u043d\u0456\u0430\u0441\u044c\u043a\u0430
+languages.moh=\u043c\u0430\u0433\u0430\u0432\u043a
+languages.luo=\u043b\u0443\u043e
+languages.lun=\u043b\u0443\u043d\u0434\u0430
+languages.apa=\u0430\u043f\u0430\u0447\u0456 \u043c\u043e\u0432\u0438
+languages.fil=\u0444\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0441\u044c\u043a\u0430
+languages.lui=\u043b\u0443\u0457\u0441\u0435\u043d\u044c\u043e
+languages.hup=\u0445\u0443\u043f\u0430
+languages.cch=\u0430\u0442\u0441\u0430\u043c
+languages.bin=\u0431\u0456\u043d\u0456
+languages.de=\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430
+languages.lua=\u043b\u0443\u0431\u0430-\u043b\u0443\u043b\u0443\u0430
+languages.bik=\u0431\u0456\u043a\u043e\u043b\u044c\u0441\u044c\u043a\u0430
+languages.was=\u0432\u0430\u0448\u043e
+languages.und=\u043d\u0435\u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u0430
+languages.war=\u0432\u0430\u0440\u0430\u0439
+languages.da=\u0434\u0430\u0442\u0441\u044c\u043a\u0430
+languages.dum=\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u043d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.wal=\u0432\u0430\u043b\u0430\u043c\u043e
+languages.mno=\u043c\u0430\u043d\u043e\u0431\u043e \u043c\u043e\u0432\u0438
+languages.wak=\u0432\u0430\u043a\u0430\u0448\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.sat=\u0441\u0430\u043d\u0442\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.cy=\u0432\u0430\u043b\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.sas=\u0441\u0430\u0441\u0430\u043a\u0441\u044c\u043a\u0430
+languages.kbd=\u043a\u0430\u0431\u0430\u0440\u0434\u0438\u043d\u0441\u044c\u043a\u0430
+languages.cv=\u0447\u0443\u0432\u0430\u0441\u044c\u043a\u0430
+languages.cu=\u0446\u0435\u0440\u043a\u043e\u0432\u043d\u043e\u0441\u043b\u043e\u0432\u2019\u044f\u043d\u0441\u044c\u043a\u0430
+languages.mni=\u043c\u0430\u043d\u0456\u043f\u0443\u0440\u0456
+languages.cs=\u0447\u0435\u0441\u044c\u043a\u0430
+languages.sam=\u0441\u0430\u043c\u0430\u0440\u0438\u0442\u044f\u043d\u0441\u044c\u043a\u0430 \u0430\u0440\u0430\u043c\u0435\u0439\u0441\u044c\u043a\u0430
+languages.cr=\u043a\u0440\u0456
+languages.sal=\u0441\u0430\u043b\u0456\u0448\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.dua=\u0434\u0443\u0430\u043b\u0430
+languages.co=\u043a\u043e\u0440\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430
+languages.sai=\u043f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0445 \u0456\u043d\u0434\u0456\u0430\u043d\u0446\u0456\u0432 \u043c\u043e\u0432\u0438
+languages.mnc=\u043c\u0430\u043d\u0447\u0436\u0443\u0440\u0441\u044c\u043a\u0430
+languages.sah=\u044f\u043a\u0443\u0442\u0441\u044c\u043a\u0430
+languages.kaw=\u043a\u0430\u0432\u0456
+languages.inh=\u0456\u043d\u0433\u0443\u0441\u044c\u043a\u0430
+languages.gba=\u0433\u0431\u0430\u0439\u044f
+languages.sad=\u0441\u0430\u043d\u0434\u0430\u0432\u0435
+languages.ch=\u0447\u0430\u043c\u043e\u0440\u0440\u043e
+languages.ine=\u0456\u043d\u0434\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.bho=\u0431\u0445\u043e\u0434\u0436\u043f\u0443\u0440\u0456
+languages.enm=\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.kar=\u043a\u0430\u0440\u0435\u043d\u0441\u044c\u043a\u0430
+languages.inc=\u0456\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.ce=\u0447\u0435\u0447\u0435\u043d\u0441\u044c\u043a\u0430
+languages.gay=\u0433\u0430\u0439\u043e
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u044c\u043a\u0430
+languages.umb=\u0443\u043c\u0431\u0443\u043d\u0434\u0443
+languages.syr=\u0441\u0438\u0440\u0456\u0439\u0441\u044c\u043a\u0430
+languages.kam=\u043a\u0430\u043c\u0431\u0430
+languages.anp=\u0430\u043d\u0433\u0456\u043a\u0430
+languages.tsi=\u0446\u0438\u043c\u0448\u0438\u0430\u043d
+languages.kaj=\u0439\u044e
+languages.ang=\u0434\u0430\u0432\u043d\u044c\u043e\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.kac=\u043a\u0430\u0447\u0456\u043d
+languages.cau=\u043a\u0430\u0432\u043a\u0430\u0437\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.kab=\u043a\u0430\u0431\u0438\u043b\u044c\u0441\u044c\u043a\u0430
+languages.kaa=\u043a\u0430\u0440\u0430\u043a\u0430\u043b\u043f\u0430\u0446\u044c\u043a\u0430
+languages.bs=\u0431\u043e\u0441\u043d\u0456\u0439\u0441\u044c\u043a\u0430
+languages.car=\u043a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0430
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d\u0441\u044c\u043a\u0430
+languages.syc=\u0441\u0438\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u043a\u043b\u0430\u0441\u0438\u0447\u043d\u0430
+languages.bo=\u0442\u0438\u0431\u0435\u0442\u0441\u044c\u043a\u0430
+languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.bm=\u0431\u0430\u043c\u0431\u0430\u0440\u0430
+languages.gaa=\u0433\u0430
+languages.cai=\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u044c\u0441\u043a\u0438\u0445 \u0456\u043d\u0434\u0456\u0430\u043d\u0446\u0456\u0432 \u043c\u043e\u0432\u0430
+languages.bi=\u0431\u0456\u0441\u043b\u0430\u043c\u0430
+languages.bh=\u0431\u0456\u0445\u0430\u0440\u0456
+languages.bg=\u0431\u043e\u043b\u0433\u0430\u0440\u0441\u044c\u043a\u0430
+languages.be=\u0431\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0430
+languages.pt_BR=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430 \u0431\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0430
+languages.cad=\u043a\u0430\u0434\u0434\u043e
+languages.ba=\u0431\u0430\u0448\u043a\u0438\u0440\u0441\u044c\u043a\u0430
+languages.zu=\u0437\u0443\u043b\u0443\u0441\u044c\u043a\u0430
+languages.zen=\u0437\u0435\u043d\u0430\u0433\u0430
+languages.pro=\u0434\u0430\u0432\u043d\u044c\u043e\u043f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.hsb=\u0432\u0435\u0440\u0445\u043d\u044c\u043e\u043b\u0443\u0436\u0438\u0446\u044c\u043a\u0430
+languages.az=\u0430\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u044c\u043a\u0430
+languages.ay=\u0430\u0439\u043c\u0430\u0440\u0430
+languages.av=\u0430\u0432\u0430\u0440\u0441\u044c\u043a\u0430
+languages.as=\u0430\u0441\u0441\u0430\u043c\u0441\u044c\u043a\u0430
+languages.dsb=\u043d\u0438\u0436\u043d\u044c\u043e\u043b\u0443\u0436\u0438\u0446\u044c\u043a\u0430
+languages.ar=\u0430\u0440\u0430\u0431\u0441\u044c\u043a\u0430
+languages.ilo=\u0456\u043b\u043e\u043a\u0430\u043d\u0441\u044c\u043a\u0430
+languages.elx=\u0435\u043b\u0430\u043c\u0441\u044c\u043a\u0430
+languages.zh=\u043a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u0430
+languages.an=\u0430\u0440\u0430\u0433\u043e\u043d\u0441\u044c\u043a\u0430
+languages.pra=\u043f\u0440\u0430\u043a\u0440\u0456\u0442\u0456 \u043c\u043e\u0432\u0438
+languages.am=\u0430\u043c\u0445\u0430\u0440\u0441\u044c\u043a\u0430
+languages.new=\u043d\u0435\u0432\u0430\u0440\u0456
+languages.ak=\u0430\u043a\u0430\u043d
+languages.za=\u0447\u0436\u0443\u0430\u043d
+languages.en_US=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430 \u0421\u0428\u0410
+languages.af=\u0430\u0444\u0440\u0438\u043a\u0430\u0430\u043d\u0441
+languages.ae=\u0430\u0432\u0435\u0441\u0442\u0456\u0439\u0441\u044c\u043a\u0430
+languages.alt=\u043f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u043b\u0442\u0430\u0439\u0441\u044c\u043a\u0430
+languages.ab=\u0430\u0431\u0445\u0430\u0437\u044c\u043a\u0430
+languages.aa=\u0430\u0444\u0430\u0440\u0441\u044c\u043a\u0430
+languages.yo=\u0439\u043e\u0440\u0443\u0431\u0430
+languages.alg=\u0430\u043b\u0433\u043e\u043d\u043a\u0456\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.ale=\u0430\u043b\u0435\u0443\u0442\u0441\u044c\u043a\u0430
+languages.mkh=\u043c\u043e\u043d-\u043a\u0445\u043c\u0435\u0440\u0441\u044c\u043a\u0456 \u0456\u043d\u0448\u0456
+languages.yi=\u0456\u0434\u0438\u0448
+languages.dra=\u0434\u0440\u0430\u0432\u0456\u0434\u0456\u0439\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.ber=\u0431\u0435\u0440\u0431\u0435\u0440\u0441\u044c\u043a\u0430
+languages.nds=\u043d\u0438\u0436\u043d\u044c\u043e\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430
+languages.bem=\u0431\u0435\u043c\u0431\u0430
+languages.bej=\u0431\u0435\u0434\u0436\u0430
+languages.tpi=\u0442\u043e\u043a-\u043f\u0456\u0441\u0456\u043d
+variants.POSIX=\u041a\u043e\u043c\u043f'\u044e\u0442\u0435\u0440\u043d\u0438\u0439
+variants.AREVMDA=\u0417\u0430\u0445\u0456\u0434\u043d\u043e\u0432\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439
+variants.1996=\u041d\u043e\u0432\u0430 \u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u044f (\u0437 1996 \u0440.)
+variants.SOLBA=\u0414\u0456\u0430\u043b\u0435\u043a\u0442 \u0421\u0442\u043e\u043b\u0432\u0456\u0446\u0430/\u0421\u043e\u043b\u0431\u0456\u043a\u0430
+variants.NEDIS=\u041d\u0430\u0442\u0456\u0441\u043e\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0456\u0430\u043b\u0435\u043a\u0442
+variants.1994=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0440\u0435\u0437\u044c\u044f\u043d\u0441\u044c\u043a\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u044f
+variants.1901=\u0422\u0440\u0430\u0434\u0438\u0446\u0456\u0439\u043d\u0430 \u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u044f
+variants.FONUPA=\u0423\u0440\u0430\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0444\u043e\u043d\u0435\u0442\u0438\u0447\u043d\u0438\u0439 \u0430\u043b\u0444\u0430\u0432\u0456\u0442
+variants.OSOJS=\u041e\u0441\u043e\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0456\u0430\u043b\u0435\u043a\u0442
+variants.LIPAW=\u041b\u0456\u043f\u043e\u0432\u0430\u0437\u0441\u044c\u043a\u0438\u0439 \u0434\u0456\u0430\u043b\u0435\u043a\u0442 \u0440\u0435\u0437\u044c\u044f\u043d\u0441\u044c\u043a\u043e\u0457 \u043c\u043e\u0432\u0438
+variants.REVISED=\u041d\u043e\u0432\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u044f
+variants.NJIVA=\u0414\u0456\u0430\u043b\u0435\u043a\u0442 \u041d\u0434\u0436\u0456\u0432\u0430
+variants.TARASK=\u041e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u044f \u0422\u0430\u0440\u0430\u0441\u043a\u0435\u0432\u0438\u0447\u0430
+variants.FONIPA=\u041c\u0456\u0436\u043d\u0430\u0440\u043e\u0434\u043d\u0438\u0439 \u0444\u043e\u043d\u0435\u0442\u0438\u0447\u043d\u0438\u0439 \u0430\u043b\u0444\u0430\u0432\u0456\u0442
+variants.BISKE=\u0414\u0456\u0430\u043b\u0435\u043a\u0442 \u0421\u0430\u043d-\u0414\u0436\u043e\u0440\u0434\u0436\u0456\u043e/\u0411\u0456\u043b\u0430
+variants.SCOUSE=\u041b\u0456\u0432\u0435\u0440\u043f\u0443\u043b\u044c\u0441\u044c\u043a\u0438\u0439
+variants.BAKU1926=\u0423\u043d\u0456\u0444\u0456\u043a\u043e\u0432\u0430\u043d\u0438\u0439 \u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0438\u0439 \u043b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u0430\u043b\u0444\u0430\u0432\u0456\u0442
+variants.SAAHO=\u0421\u0430\u0445\u043e
+variants.ROZAJ=\u0420\u0435\u0437\u044c\u044f\u043d\u0441\u044c\u043a\u0438\u0439
+variants.MONOTON=\u041c\u043e\u043d\u043e\u0442\u043e\u043d\u0456\u0447\u043d\u0438\u0439
+variants.POLYTON=\u041f\u043e\u043b\u0456\u0442\u043e\u043d\u0456\u0447\u043d\u0438\u0439
+variants.AREVELA=\u0421\u0445\u0456\u0434\u043d\u043e\u0432\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439
+variants.SCOTLAND=\u0428\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430 \u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+variants.BOONT=\u0411\u0443\u043d\u0442\u043b\u0456\u043d\u0433
+variants.1606NICT=\u041f\u0456\u0437\u043d\u044c\u043e\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u044c\u043a\u0430 \u0434\u043e 1606
index a8bb439ac8176a757beac085e94456f29dfc769b..56ae7f951c4f6da1303a6c9270505b6304dffa80 100644 (file)
@@ -5,6 +5,389 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currenciesSymbol.PKR=Rs
+percent=%
+perMill=\u2030
+exponential=\u0642
+infinity=\u221e
+NaN=\u06cc\u06c1 \u0639\u062f\u062f \u0646\u06c1\u06cc\u06ba
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.CHF=\u0633\u0648\u0626\u0633 \u0641\u0631\u0627\u0646\u06a9\u0633
+currenciesDisplayName.AUD=\u0622\u0633\u0679\u0631\u06cc\u0644\u06cc\u0646 \u0688\u0627\u0644\u0631
+currenciesDisplayName.RUB=\u0631\u0648\u0633\u06cc \u0631\u0648\u0628\u0644
+currenciesDisplayName.CZK=\u0686\u06cc\u06a9 \u06a9\u0631\u0648\u0646\u0627
+currenciesDisplayName.THB=\u062a\u06be\u0627\u0626\u06cc \u0628\u0627\u06c1\u062a
+currenciesDisplayName.SEK=\u0633\u0648\u06cc\u0688\u0646 \u06a9\u0631\u0648\u0646\u0631
+currenciesDisplayName.HRK=\u06a9\u0631\u0648\u0634\u06cc\u0646 \u06a9\u0648\u0646\u0627
+currenciesDisplayName.PLN=\u067e\u0648\u0644\u0634 \u0646\u06cc\u0648 \u0632\u0644\u0648\u0679\u06cc
+currenciesDisplayName.SKK=\u0633\u0644\u0648\u0648\u06a9 \u06a9\u0631\u0648\u0646\u0627
+currenciesDisplayName.MAD=\u0645\u0631\u0627\u06a9\u0634\u06cc \u062f\u0631\u06c1\u0645
+currenciesDisplayName.TWD=\u0646\u06cc\u0648 \u062a\u0627\u0626\u06cc\u0648\u0627\u0646 \u0688\u0627\u0644\u0631
+currenciesDisplayName.MYR=\u0645\u0644\u0627\u0626\u06cc\u0634\u06cc\u0646 \u0631\u0646\u06af\u0679
+currenciesDisplayName.HUF=\u06c1\u0646\u06af\u0631\u06cc\u0646 \u0641\u0648\u0631\u0646\u0679
+currenciesDisplayName.INR=\u0627\u0646\u0688\u06cc\u0646 \u0631\u0648\u067e\u06cc\u06c1
+currenciesDisplayName.AED=\u0645\u062a\u062d\u062f\u06c1 \u0639\u0631\u0628 \u0627\u0645\u0627\u0631\u0627\u062a\u06cc \u062f\u0631\u06c1\u0645
+currenciesDisplayName.SAR=\u0633\u0639\u0648\u062f\u06cc \u0631\u06cc\u0627\u0644
+currenciesDisplayName.CAD=\u06a9\u0646\u06cc\u0688\u06cc\u0646 \u0688\u0627\u0644\u0631
+currenciesDisplayName.USD=\u0627\u0645\u0631\u06cc\u06a9\u06cc \u0688\u0627\u0644\u0631
+currenciesDisplayName.BGN=\u0628\u0644\u063a\u0627\u0631\u06cc\u0646 \u0644\u06cc\u0648
+currenciesDisplayName.JPY=\u062c\u0627\u067e\u0627\u0646\u06cc \u06cc\u0646
+currenciesDisplayName.GBP=\u0627\u0646\u06af\u0644\u0633\u062a\u0627\u0646\u06cc \u067e\u0627\u0648\u0646\u0688 \u0633\u0679\u0631\u0644\u0646\u06af
+currenciesDisplayName.PKR=\u067e\u0627\u06a9\u0633\u062a\u0627\u0646\u06cc \u0631\u0648\u067e\u06cc\u06c1
+currenciesDisplayName.PHP=\u0641\u0644\u067e\u0627\u0626\u06cc\u0646\u06cc \u067e\u06cc\u0633\u06c1
+currenciesDisplayName.PEN=\u067e\u06cc\u0631\u0648\u06cc\u0646 \u0646\u06cc\u0648\u0648\u0633\u0648\u0644
+currenciesDisplayName.FRF=\u0641\u0631\u0627\u0646\u0633\u06cc\u0633\u06cc \u0641\u0631\u0627\u0646\u06a9
+currenciesDisplayName.NOK=\u0646\u0627\u0631\u0648\u06d2 \u06a9\u0631\u0648\u0646\u0631
+currenciesDisplayName.EUR=\u06cc\u0648\u0631\u0648
+currenciesDisplayName.HKD=\u06be\u0627\u0646\u06af \u06a9\u0627\u0646\u06af \u0688\u0627\u0644\u0631
+currenciesDisplayName.IDR=\u0627\u0646\u0688\u0648\u0646\u06cc\u0634\u06cc\u0646 \u0631\u0648\u067e\u06cc\u06c1
+currenciesDisplayName.ZAR=\u062c\u0646\u0648\u0628\u06cc \u0627\u0641\u0631\u06cc\u0642\u06cc \u0631\u0627\u0646\u0688
+currenciesDisplayName.SGD=\u0633\u0646\u06af\u0627 \u067e\u0648\u0631 \u0688\u0627\u0644\u0631
+currenciesDisplayName.MXN=\u0645\u06cc\u06a9\u0633\u06cc\u06a9\u06cc \u067e\u06cc\u0633\u06c1
+currenciesDisplayName.TRY=\u0646\u06cc\u0627 \u062a\u0631\u06a9\u06cc \u0644\u06cc\u0631\u0627
+currenciesDisplayName.CLP=\u0686\u0644\u0651\u06cc\u0646 \u067e\u06cc\u0633\u06c1
+currenciesDisplayName.COP=\u06a9\u0648\u0644\u0645\u0628\u06cc\u0646 \u067e\u06cc\u0633\u06c1
+currenciesDisplayName.KRW=\u062c\u0646\u0648\u0628\u06cc \u06a9\u0648\u0631\u06cc\u0627\u0626\u06cc \u062c\u06cc\u062a\u0627\u06d4
+currenciesDisplayName.SIT=\u0633\u0644\u0648\u0627\u0646\u06cc\u0646 \u0679\u0648\u0644\u0631
+currenciesDisplayName.EEK=\u0627\u06cc\u0633\u0679\u0648\u0646\u06cc\u0646 \u06a9\u0631\u0648\u0646
+currenciesDisplayName.RSD=\u0633\u0631\u0628\u06cc\u0646 \u062f\u06cc\u0646\u0627\u0631
+currenciesDisplayName.TRL=\u062a\u0631\u06a9\u06cc \u0644\u06cc\u0631\u0627
+currenciesDisplayName.BRL=\u0628\u0631\u0627\u0632\u06cc\u0644\u06cc \u0631\u06cc\u0626\u0644
+currenciesDisplayName.DEM=\u0688\u0686 \u0645\u0627\u0631\u06a9\u0633
+currenciesDisplayName.VEB=\u0648\u06cc\u0646\u0632\u0648\u06cc\u0644\u0627 \u0628\u0648\u0644\u06cc\u0648\u0631
+currenciesDisplayName.ARS=\u0627\u0631\u062c\u0646\u0679\u0627\u0626\u0646 \u067e\u06cc\u0633\u06c1
+currenciesDisplayName.CNY=\u06cc\u0648\u0622\u0646 \u0631\u06cc\u0646\u0645\u0646\u0628\u06cc
+currenciesDisplayName.DKK=\u0688\u0646\u0645\u0627\u0631\u06a9 \u06a9\u0631\u0648\u0646\u0631
+currenciesDisplayName.ILS=\u0627\u0633\u0631\u0627\u0626\u06cc\u0644\u06cc \u0634\u06cc\u06a9\u0644
+currenciesDisplayName.BOB=\u0628\u0648\u0644\u06cc\u0648\u06cc\u0646 \u0628\u0648\u0644\u06cc\u0648\u06cc\u0627\u0646\u0648
+currenciesDisplayName.NZD=\u0646\u06cc\u0648\u0632\u06cc \u0644\u06cc\u0646\u0688 \u0688\u0627\u0644\u0631
+currenciesDisplayName.RON=\u0646\u06cc\u0627 \u0631\u0648\u0645\u0627\u0646\u06cc\u0627\u0626\u06cc \u0644\u06cc\u0648
+currenciesDisplayName.LTL=\u0644\u06cc\u062a\u06be\u0648\u0627\u0646\u06cc \u0644\u06cc\u0679\u0627\u0633
+currenciesDisplayName.EGP=\u0645\u0635\u0631\u06cc \u067e\u0627\u0626\u0648\u0646\u0688
+currenciesSymbol.PKR=\u0631\u0648\u067e\u06d2
+currenciesSymbol.USD=\u0688\u0627\u0644\u0631
+months=\u062c\u0646\u0648\u0631\u06cc\u00ae\u0641\u0631\u0648\u0631\u06cc\u00ae\u0645\u0627\u0631 \u0686\u00ae\u0627\u067e\u0631\u064a\u0644\u00ae\u0645\u0626\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u0627\u0626\u00ae\u0627\u06af\u0633\u062a\u00ae\u0633\u062a\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0645\u0628\u0631\u00ae\u062f\u0633\u0645\u0628\u0631\u00ae\u00ae
+weekdays=\u00ae\u0627\u062a\u0648\u0627\u0631\u00ae\u067e\u064a\u0631\u00ae\u0645\u0646\u06af\u0644\u00ae\u0628\u062f\u0647\u00ae\u062c\u0645\u0639\u0631\u0627\u062a\u00ae\u062c\u0645\u0639\u06c1\u00ae\u06c1\u0641\u062a\u06c1\u00ae
+eras=\u0642 \u0645\u00ae\u0639\u064a\u0633\u0648\u06cc \u0633\u0646\u00ae
+ampms=\u0642\u0628\u0644 \u062f\u0648\u067e\u06c1\u0631\u00ae\u0628\u0639\u062f \u062f\u0648\u067e\u06c1\u0631\u00ae
+shortDateFormat=d/M/yy
+mediumDateFormat=d, MMM yyyy
+longDateFormat=d, MMMM yyyy
+fullDateFormat=EEEE, d, MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+territories.TL=\u0645\u0634\u0631\u0642\u06cc \u062a\u06cc\u0645\u0648\u0631
+territories.TK=\u0679\u0648\u06a9\u06cc\u0644\u0627\u0624
+territories.TJ=\u062a\u0627\u062c\u06a9\u0633\u062a\u0627\u0646
+territories.TH=\u062a\u06be\u0627\u0626\u06cc \u0644\u06cc\u0646\u0688
+territories.TG=\u0679\u0648\u06af\u0648
+territories.TF=\u062c\u0646\u0648\u0628\u06cc \u0641\u0631\u0627\u0646\u0633\u06cc\u0633\u06cc \u0639\u0644\u0627\u0642\u06c1 \u062c\u0627\u062a
+territories.TD=\u0686\u0627\u0688
+territories.TC=\u062c\u0632\u0627\u0626\u0631 \u06a9\u06cc\u06a9\u0633 \u0627\u0648\u0631 \u062a\u0631\u06a9\u06cc\u0651\u06c1
+territories.GW=\u06af\u0646\u06cc \u0628\u0633\u0627\u0626\u0648
+territories.GS=\u062c\u0646\u0648\u0628\u06cc \u062c\u0627\u0631\u062c\u06cc\u0627 \u0627\u0648\u0631 \u062c\u0632\u0627\u0626\u0631 \u062c\u0646\u0648\u0628\u06cc \u0633\u06cc\u0646\u0688\u0648\u0686
+territories.GR=\u06cc\u0648\u0646\u0627\u0646
+territories.GQ=\u0627\u0633\u062a\u0648\u0627\u0626\u06cc \u06af\u0646\u06cc
+territories.SZ=\u0633\u0648\u0627\u0632\u06cc \u0644\u06cc\u0646\u0688
+territories.SY=\u0633\u06cc\u0631\u06cc\u0627
+territories.GN=\u06af\u0646\u06cc
+territories.GM=\u06af\u06cc\u0645\u0628\u06cc\u0627
+territories.GL=\u06af\u0631\u06cc\u0646 \u0644\u06cc\u0646\u0688
+territories.GH=\u06af\u06be\u0627\u0646\u0627
+territories.SR=\u0633\u0648\u0631\u06cc\u0646\u0627\u0645
+territories.GG=\u06af\u0631\u0646\u0632\u06cc
+territories.GF=\u0641\u0631\u0627\u0646\u0633\u06cc\u0633\u06cc \u06af\u06cc \u0622\u0646\u0627
+territories.GE=\u062c\u0627\u0631\u062c\u06cc\u0627
+territories.SO=\u0635\u0648\u067e\u0627\u0644\u06cc\u06c1
+territories.SN=\u0633\u06cc\u0646\u06cc\u06af\u0627\u0644
+territories.SM=\u0633\u0627\u0646 \u0645\u06cc\u0631\u06cc\u0646\u0648
+territories.GB=\u0628\u0631\u0637\u0627\u0646\u06cc\u06c1
+territories.SL=\u0633\u06cc\u0631\u0627\u0644\u06cc\u0648\u0646
+territories.GA=\u063a\u06cc\u0628\u0648\u0646
+territories.SK=\u0633\u0644\u0648\u0648\u0627\u06a9\u06cc\u06c1
+territories.SI=\u0633\u0644\u0648\u0627\u0646\u06cc\u06c1
+territories.SH=\u0633\u06cc\u0646\u0679 \u06be\u06cc\u0644\u06cc\u0646\u0627
+territories.SE=\u0633\u0648\u06cc\u0688\u0646
+territories.SD=\u0633\u0648\u0688\u0627\u0646
+territories.SC=\u0633\u06d2 \u0634\u0644\u0632
+territories.SB=\u062c\u0632\u0627\u0626\u0631\u0633\u0648\u0644\u0645\u0648\u0646
+territories.SA=\u0633\u0639\u0648\u062f\u06cc \u0639\u0631\u0628
+territories.FR=\u0641\u0631\u0627\u0646\u0633
+territories.FO=\u062c\u0632\u0627\u0626\u0631\u0641\u0627\u0631\u0648
+territories.FM=\u0645\u0627\u0626\u06a9\u0631\u0648\u0646\u06cc\u0632\u06cc\u0627
+territories.RW=\u0631\u0648\u0627\u0646\u0688\u0627
+territories.FK=\u062c\u0632\u0627\u0626\u0631 \u0641\u0627\u06a9 \u0644\u06cc\u0646\u0688
+territories.RU=\u0631\u0648\u0633
+territories.FI=\u0641\u0646 \u0644\u06cc\u0646\u0688
+territories.RO=\u0631\u0648\u0645\u0627\u0646\u06cc\u06c1
+territories.ET=\u0627\u06cc\u062a\u06be\u0648\u067e\u06cc\u0627
+territories.ES=\u0633\u067e\u06cc\u0646
+territories.ER=\u0627\u0631\u06cc\u0679\u06cc\u0631\u06cc\u0627
+territories.EH=\u0645\u063a\u0631\u0628\u06cc \u0635\u062d\u0627\u0631\u0627
+territories.EG=\u0645\u0635\u0631
+territories.EE=\u0627\u06cc\u0633\u0679\u0648\u0646\u06cc\u0627
+territories.EC=\u0627\u06cc\u06a9\u0648\u0627\u0688\u0648\u0631
+territories.DZ=\u0627\u0644\u062c\u06cc\u0631\u06cc\u0627
+territories.DO=\u0688\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0646 \u0631\u06cc\u067e\u0628\u0644\u06a9
+territories.PY=\u067e\u06cc\u0631\u0627\u06af\u0648\u0626\u06d2
+territories.DK=\u0688\u0646\u0645\u0627\u0631\u06a9
+territories.PT=\u067e\u0631\u062a\u06af\u0627\u0644
+territories.PS=\u0641\u0644\u0633\u0637\u06cc\u0646
+territories.DE=\u062c\u0631\u0645\u0646\u06cc
+territories.PM=\u0633\u06cc\u0646\u0679 \u067e\u0627\u0626\u0631\u06d2 \u0627\u0648\u0631 \u0645\u06cc\u06a9\u0648\u06cc\u0644\u0648\u0646
+territories.PL=\u067e\u0648\u0644\u06cc\u0646\u0688
 territories.PK=\u067e\u0627\u06a9\u0633\u062a\u0627\u0646
+territories.PH=\u0641\u0644\u067e\u0627\u0626\u0646
+territories.PG=\u067e\u0627\u067e\u0648\u0627 \u0646\u06cc\u0648 \u06af\u0646\u06cc
+territories.PF=\u0641\u0631\u0627\u0646\u0633\u06cc\u0633\u06cc \u067e\u0648\u0644\u06cc\u0646\u06cc\u0633\u06cc\u0627
+territories.CZ=\u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u0686\u06cc\u06a9
+territories.PE=\u067e\u06cc\u0631\u0648
+territories.CY=\u0642\u0628\u0631\u0635
+territories.CX=\u062c\u0632\u06cc\u0631\u06c1 \u06a9\u0631\u0633\u0645\u0633
+territories.CU=\u06a9\u06cc\u0648\u0628\u0627
+territories.CS=\u0633\u0631\u0628\u06cc\u0627 \u0627\u0648\u0631 \u0645\u0627\u0646\u0679\u06cc\u0646\u06cc\u06af\u0631\u0648
+territories.CO=\u06a9\u0648\u0644\u0645\u0628\u06cc\u0627
+territories.CN=\u0686\u06cc\u0646
+territories.CM=\u06a9\u06cc\u0645\u0631\u0648\u0646
+territories.CL=\u0686\u0644\u06cc
+territories.CK=\u062c\u0632\u0627\u0626\u0631 \u06a9\u064f\u06a9
+territories.CH=\u0633\u0648\u0626\u0632\u0631 \u0644\u06cc\u0646\u0688
+territories.CG=\u06a9\u0627\u0646\u06af\u0648
+territories.CF=\u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u0648\u0633\u0637\u06cc \u0627\u0641\u0631\u06cc\u0642\u06c1
+territories.CD=\u06a9\u0627\u0646\u06af\u0648\u060c \u062c\u0645\u06c1\u0648\u0631\u06cc \u0631\u06cc\u0627\u0633\u062a
+territories.CC=\u062c\u0632\u0627\u0626\u0631 \u06a9\u0648\u06a9\u0648\u0632
+territories.OM=\u0639\u0645\u0627\u0646
+territories.CA=\u06a9\u06cc\u0646\u06cc\u0688\u0627
+territories.BY=\u0628\u06cc\u0644\u0627 \u0631\u0633
+territories.BW=\u0628\u0648\u0679\u0633\u0648\u0627\u0646\u0627
+territories.BV=\u062c\u0632\u06cc\u0631\u06c1 \u0628\u0648\u0648\u0679
+territories.BT=\u0628\u06be\u0648\u0679\u0627\u0646
+territories.BS=\u0628\u0627\u06be\u0627 \u0645\u0627\u0633
+territories.BR=\u0628\u0631\u0627\u0632\u06cc\u0644
+territories.NZ=\u0646\u06cc\u0648\u0632\u06cc \u0644\u06cc\u0646\u0688
+territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc\u0627
+territories.BJ=\u0628\u06cc\u0646\u0646
+territories.BI=\u0628\u0631\u0646\u0688\u06cc
+territories.BG=\u0628\u0644\u063a\u0627\u0631\u06cc\u06c1
+territories.BF=\u0628\u0631\u06a9\u06cc\u0646\u0627 \u0641\u0627\u0633\u0648
+territories.NP=\u0646\u06cc\u067e\u0627\u0644
+territories.BE=\u0628\u06cc\u0644\u062c\u0626\u06cc\u0645
+territories.ZZ=Unknown or Invalid Region
+territories.NO=\u0646\u0627\u0631\u0648\u06d2
+territories.BD=\u0628\u0646\u06af\u0644\u0627 \u062f\u06cc\u0634
+territories.ZW=\u0632\u0645\u0628\u0627\u0628\u0648\u06d2
+territories.NL=\u0646\u06cc\u062f\u0631\u0644\u06cc\u0646\u0688
+territories.BA=\u0628\u0648\u0633\u0646\u06cc\u0627 \u06c1\u0631\u0632\u06af\u0648\u06cc\u0646\u0627
+territories.NI=\u0646\u06a9\u0627\u0631\u0627\u06af\u0648\u0627
+territories.NG=\u0646\u0627\u0626\u06cc\u062c\u06cc\u0631\u06cc\u0627
+territories.NF=\u062c\u0632\u06cc\u0631\u06c1 \u0646\u0627\u0631\u0641\u0648\u0644\u06a9
+territories.AZ=\u0622\u0630\u0631 \u0628\u0627\u0626\u062c\u0627\u0646
+territories.NE=\u0646\u0627\u0626\u06cc\u062c\u0631
+territories.NC=\u0646\u06cc\u0648 \u06a9\u06cc\u0644\u06cc\u0688\u0648\u0646\u06cc\u0627
+territories.ZM=\u0632\u06cc\u0645\u0628\u06cc\u0627
+territories.AU=\u0622\u0633\u0679\u0631\u06cc\u0644\u06cc\u0627
+territories.NA=\u0646\u0645\u06cc\u0628\u06cc\u0627
+territories.AT=\u0622\u0633\u0679\u0631\u06cc\u0627
+territories.AS=\u0627\u0645\u0631\u06cc\u06a9\u06cc \u0633\u0627\u0645\u0648\u0627
+territories.AR=\u0627\u0631\u062c\u0646\u0679\u06cc\u0646\u0627
+territories.AQ=\u0627\u0646\u0679\u0627\u0631 \u0679\u06a9\u0627
+territories.MZ=\u0645\u0648\u0632\u0646\u0628\u06cc\u0642
+territories.AO=\u0627\u0646\u06af\u0648\u0644\u0627
+territories.MY=\u0645\u0644\u0627\u0626\u06cc\u0634\u06cc\u0627
+territories.AN=\u0646\u06cc\u062f\u0631\u0644\u06cc\u0646\u0688\u0632 \u0627\u0646\u0679\u06cc\u0644\u06cc\u0632
+territories.MX=\u0645\u06cc\u06a9\u0633\u06cc\u06a9\u0648
+territories.AM=\u0622\u0631 \u0645\u06cc\u0646\u06cc\u0627
+territories.MW=\u0645\u0644\u0627\u0648\u06cc
+territories.AL=\u0627\u0644\u0628\u0627\u0646\u06cc\u0627
+territories.ZA=\u062c\u0646\u0648\u0628\u06cc \u0627\u0641\u0631\u06cc\u0642\u06c1
+territories.MR=\u0645\u0648\u0631\u06cc\u0637\u0627\u0646\u06cc\u06c1
+territories.AG=\u0627\u0646\u0679\u06cc\u06af\u0648\u0627 \u0627\u0648\u0631 \u0628\u0627\u0631\u0628\u0648\u062f\u0627
+territories.AF=\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646
+territories.MP=\u0634\u0645\u0627\u0644\u06cc \u0645\u0627\u0631\u06cc\u0627\u0646\u0627\u062c\u0632\u0627\u0626\u0631
+territories.AE=\u0645\u062a\u062d\u062f\u06c1 \u0639\u0631\u0628 \u0627\u0645\u0627\u0631\u0627\u062a
+territories.MO=\u0645\u0627\u06a9\u0627\u0624
+territories.MN=\u0645\u0646\u06af\u0648\u0644\u06cc\u0627
+territories.MM=\u0645\u06cc\u0627\u0646\u0645\u0631
+territories.ML=\u0645\u0627\u0644\u06cc
+territories.MK=\u0645\u0642\u062f\u0648\u0646\u06cc\u06c1
+territories.MH=\u062c\u0632\u0627\u0626\u0631 \u0645\u0627\u0631\u0634\u0644
+territories.MG=\u0645\u0688\u063a\u0627\u0633\u06a9\u0631
+territories.MD=\u0645\u0627\u0644\u062f\u0648\u0648\u0627
+territories.MA=\u0645\u0631\u0627\u06a9\u0634
+territories.YE=\u06cc\u0645\u0646
+territories.LY=\u0644\u06cc\u0628\u06cc\u0627
+territories.LV=\u0644\u0679\u0648\u0650\u06cc\u0627
+territories.LT=\u0644\u062a\u06be\u0648\u0627\u0646\u06cc\u0627
+territories.LS=\u0644\u06cc\u0633\u0648\u062a\u06be\u0648
+territories.LR=\u0644\u0627\u0626\u0628\u06cc\u0631\u06cc\u0627
+territories.LK=\u0633\u0631\u06cc \u0644\u0646\u06a9\u0627
+territories.LI=\u0644\u06a9\u0679\u0646\u0633\u0679\u0627\u0626\u0646
+territories.LC=\u0633\u06cc\u0646\u0679 \u0644\u0648\u0633\u06cc\u0627
+territories.LB=\u0644\u0628\u0646\u0627\u0646
+territories.LA=\u0644\u0627\u0624\u0633
+territories.KZ=\u0642\u0632\u0627\u0642\u0633\u062a\u0627\u0646
+territories.KY=\u062c\u0632\u0627\u0626\u0631 \u06a9\u06cc\u0645\u0646
+territories.KR=\u062c\u0646\u0648\u0628\u06cc \u06a9\u0648\u0631\u06cc\u0627
+territories.KP=\u0634\u0645\u0627\u0644\u06cc \u06a9\u0648\u0631\u06cc\u0627
+territories.KN=\u0633\u06cc\u0646\u0679 \u06a9\u0679\u0633 \u0627\u0648\u0631 \u0646\u06cc\u0648\u0633
+territories.KM=\u06a9\u0648\u0645\u0648\u0631\u0648\u0633
+territories.KI=\u06a9\u0650\u0631\u0628\u0627\u062a\u06cc
+territories.WS=\u0633\u0627\u0645\u0648\u0627
+territories.KH=\u06a9\u0645\u0628\u0648\u0688\u06cc\u0627
+territories.KG=\u06a9\u0631\u063a\u0633\u062a\u0627\u0646
+territories.KE=\u06a9\u06cc\u0646\u06cc\u0627
+territories.WF=\u0648\u0627\u0644\u0633 \u0627\u0648\u0631 \u0641\u062a\u0648\u0646\u06c1
+territories.JP=\u062c\u0627\u067e\u0627\u0646
+territories.JO=\u0627\u0631\u062f\u0646
+territories.VU=\u0648\u0627\u0646\u0648\u0627\u0679\u0648
+territories.JE=\u062c\u0631\u0633\u06cc
+territories.VN=\u0648\u06cc\u062a \u0646\u0627\u0645
+territories.VI=\u062c\u0632\u0627\u0626\u0631 \u0648\u0631\u062c\u0646\u060c \u0627\u0645\u0631\u06cc\u06a9\u06c1
+territories.VG=\u062c\u0632\u0627\u0626\u0631 \u0648\u0631\u062c\u0646\u060c \u0628\u0631\u0679\u0634
+territories.VE=\u0648\u06cc\u0646\u0632\u0648\u0644\u0627
+territories.VC=\u0633\u06cc\u0646\u0679 \u06a9\u06cc\u0631\u0646 \u0627\u0648\u0631 \u06af\u0631\u06cc\u0646\u0627\u0688\u0627\u0626\u0646\u0632
+territories.VA=\u0648\u06cc\u0679\u06cc\u06a9\u0646 \u0633\u0679\u06cc
+territories.IT=\u0627\u0679\u0644\u06cc
+territories.IS=\u0622\u0626\u0633 \u0644\u06cc\u0646\u0688
+territories.IR=\u0627\u06cc\u0631\u0627\u0646
+territories.IQ=\u0639\u0631\u0627\u0642
+territories.UZ=\u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646
+territories.IO=\u0628\u062d\u0631\u06be\u0646\u062f \u06a9\u0627 \u0628\u0631\u0679\u0634 \u0639\u0644\u0627\u0642\u06c1
+territories.UY=\u06c1\u0648\u0631\u0627\u06af\u0648\u0626\u06d2
+territories.IN=\u0628\u06be\u0627\u0631\u062a
+territories.IL=\u0627\u0633\u0631\u0627\u0626\u06cc\u0644
+territories.US=\u0631\u06cc\u0627\u0633\u062a \u06c1\u0627\u0626\u06d2 \u0645\u062a\u062d\u062f\u06c1 \u0627\u0645\u0631\u06cc\u06a9\u0627
+territories.IE=\u0622\u0626\u0631 \u0644\u06cc\u0646\u0688
+territories.ID=\u0627\u0646\u0688\u0648\u0646\u06cc\u0634\u06cc\u0627
+territories.UM=\u0631\u06cc\u0627\u0633\u062a \u06c1\u0627\u0626\u06d2 \u0645\u062a\u062d\u062f\u06c1 \u0627\u0648\u0631 \u0628\u06cc\u0631\u0648\u0646\u06cc \u062c\u0632\u0627\u0626\u0631
+territories.UG=\u06cc\u0648\u06af\u0646\u0688\u0627
+territories.UA=\u06cc\u0648\u06a9\u0631\u0627\u0626\u0646
+territories.HU=\u06c1\u0646\u06af\u0631\u06cc
+territories.HT=\u06c1\u0627\u0626\u0679\u06cc
+territories.HR=\u06a9\u0631\u0648\u0634\u06cc\u0627
+territories.TZ=\u062a\u0646\u0632\u0627\u0646\u06cc\u06c1
+territories.HN=\u06c1\u0648\u0646\u0688\u0648\u0631\u0627\u0633
+territories.HM=\u062c\u0632\u06cc\u0631\u06c1 \u06c1\u0631\u0688 \u0627\u0648\u0631 \u062c\u0632\u0627\u0626\u0631 \u0645\u06a9\u0688\u0648\u0646\u0644\u0688
+territories.TW=\u062a\u0627\u0626\u06cc\u0648\u0627\u0646
+territories.TV=\u0679\u0648\u0627\u0644\u0648
+territories.TT=\u0679\u0631\u06cc\u0646\u06cc\u0688\u0627\u0688 \u0627\u0648\u0631 \u0679\u0648\u0628\u0627\u06af\u0648
+territories.TR=\u062a\u0631\u06a9\u06cc
+territories.TO=\u062a\u0648\u0646\u06af\u0627
+territories.TN=\u062a\u06cc\u0648\u0646\u0633
+territories.TM=\u062a\u0631\u06a9\u0645\u0627\u0646\u0633\u062a\u0627\u0646
+languages.es=\u06c1\u0633\u067e\u0627\u0646\u0648\u06cc
+languages.ku=\u0643\u0631\u062f\u0634
+languages.eo=\u0627\u064a\u0633\u067e\u0631\u0627\u0646\u0679\u0648
+languages.en=\u0627\u0646\u06af\u0631\u064a\u0632\u06cc
+languages.el=\u064a\u0648\u0646\u0627\u0646\u06cc
+languages.ko=\u06a9\u0648\u0631\u064a\u0646
+languages.kn=\u06a9\u0646\u0651\u0627\u0688\u0627
+languages.km=\u06a9\u0645\u0628\u0648\u0688\u06cc\u064e\u0646
+languages.ka=\u062c\u0627\u0631\u062c\u06cc
+languages.zh_Hans=\u0686\u06cc\u0646\u06cc (\u0622\u0633\u0627\u0646 \u06a9\u0631\u062f\u06c1)
+languages.zh_Hant=\u0686\u06cc\u0646\u06cc (\u0631\u0648\u0627\u06cc\u062a\u06cc)
+languages.jv=\u062c\u0627\u0648\u06cc
+languages.fil=\u0679\u064a\u06af\u0627\u0644\u0627\u06af\u06cc
+languages.pt=\u067e\u064f\u0631\u062a\u06af\u0627\u0644\u06cc
+languages.ps=\u067e\u0634\u062a\u0648
+languages.de=\u062c\u0631\u0645\u0646
+languages.pl=\u067e\u0648\u0644\u0633\u062a\u0627\u0646\u06cc
+languages.da=\u0688\u064a\u0646\u0634
+languages.tlh=\u06a9\u0644\u0646\u06af\u0627\u0646
+languages.ja=\u062c\u0627\u067e\u0627\u0646\u06cc
+languages.vi=\u0648\u064a\u062a\u0646\u0627\u0645\u06cc
+languages.cy=\u0648\u064a\u0644\u0634
+languages.pa=\u067e\u0646\u062c\u0627\u0628\u06cc
+languages.cs=\u0686\u064a\u06a9
+languages.it=\u0627\u0637\u0627\u0644\u0648\u06cc
+languages.is=\u0628\u0631\u0641\u0633\u062a\u0627\u0646\u06cc
+languages.uz=\u0627\u0632\u0628\u06a9
+languages.or=\u0627\u0648\u0631\u0650\u06cc\u0627
 languages.ur=\u0627\u0631\u062f\u0648
+languages.ca=\u06a9\u0627\u0679\u0627\u0644\u0627\u0646\u064a\u0646
+languages.id=\u0627\u0646\u0688\u0648\u0646\u064a\u062b\u064a\u0627\u0626\u06cc
+languages.uk=\u064a\u064f\u0648\u06a9\u0631\u064a\u0646\u06cc
+languages.ia=\u0627\u0646\u0679\u0631\u0644\u0646\u06af\u0648\u06cc
+languages.oc=\u0622\u06a9\u064a\u0679\u0627\u0646\u06cc
+languages.ug=\u0627\u064f\u0626\u0650\u06cc\u06af\u064f\u0648\u0631
+languages.hy=\u0627\u0631\u0645\u06cc\u0646\u06cc
+languages.bs=\u0628\u0648\u0633\u0646\u06cc
+languages.br=\u0628\u0631\u0650\u06cc\u0679\u0646
+languages.hu=\u06c1\u0646\u06af\u06cc\u0631\u06cc\u0646
+languages.pt_PT=\u067e\u0631\u062a\u06af\u0627\u0644\u06cc (\u067e\u0631\u062a\u06af\u0627\u0644)
+languages.bn=\u0628\u0646\u06af\u0627\u0644\u06cc
+languages.hr=\u06a9\u0631\u0627\u062a\u06cc
+languages.tw=\u062a\u0648\u06cc
+languages.bh=\u0628\u0650\u06c1\u0627\u0631\u06cc
+languages.bg=\u0628\u0644\u063a\u0627\u0631\u06cc
+languages.no=\u0646\u0627\u0631\u0648\u064a\u062c\u064a\u0646
+languages.be=\u0628\u064a\u0644\u0627\u0631\u0648\u0633\u06cc
+languages.nn=\u0646\u0648\u0631\u0648\u06cc\u062c\u06cc\u0646\u06cc (\u0646\u06cc\u0646\u0648\u0631\u0633\u06a9)
+languages.hi=\u06c1\u0646\u062f\u06cc
+languages.tr=\u062a\u0631\u06a9\u06cc
+languages.nl=\u0688\u0686
+languages.zu=\u0632\u064f\u0648\u0644\u064f\u0648
+languages.he=\u0639\u0628\u0631\u0627\u0646\u06cc
+languages.tl=\u0679\u06cc\u06af\u0627 \u0644\u0648\u06af
+languages.tk=\u062a\u0631\u06a9\u0645\u0627\u0646\u06cc
+languages.ne=\u0646\u064a\u067e\u0627\u0644\u06cc
+languages.az=\u0622\u0632\u0631\u0628\u0627\u0626\u06cc\u062c\u0627\u0646\u06cc
+languages.ti=\u062a\u06af\u0631\u06cc\u0646\u06cc
+languages.th=\u062a\u0647\u0627\u0626\u06cc
+languages.en_US=\u0627\u0645\u0631\u06cc\u06a9\u06c1 \u06a9\u06cc \u0627\u0646\u06af\u0631\u06cc\u0632\u06cc
+languages.te=\u062a\u064a\u0644\u0648\u06af\u0648
+languages.as=\u0622\u0633\u0627\u0645\u06cc
+languages.ar=\u0639\u0631\u0628\u06cc
+languages.ta=\u062a\u0627\u0645\u0650\u0644
+languages.gu=\u06af\u062c\u0631\u0627\u062a\u06cc
+languages.am=\u0627\u0645\u06c1\u0627\u0631\u06cc
+languages.mt=\u0645\u0627\u0644\u0679\u06cc
+languages.ms=\u0645\u0627\u0644\u0627\u0626\u06cc
+languages.gn=\u06af\u064f\u0627\u0631\u0627\u0646\u06cc
+languages.sw=\u0633\u0648\u0627\u06c1\u06cc\u0644\u06cc
+languages.mr=\u0645\u0631\u0627\u0679\u0647\u06cc
+languages.sv=\u0633\u0648\u064a\u0688\u0634
+languages.gl=\u06af\u0627\u0644\u064a\u0634\u064a\u0627\u0626\u06cc
+languages.su=\u0633\u064f\u0648\u0688\u0627\u0646\u06cc
+languages.af=\u0627\u064a\u0641\u0631\u064a\u06a9\u0627\u0646\u0632
+languages.st=\u0633\u06cc\u0633\u0648\u062a\u06be\u0648
+languages.mn=\u0645\u0646\u06af\u0624\u0644\u06cc
+languages.sr=\u0635\u0631\u0628\u06cc
+languages.sq=\u0627\u0644\u0628\u0627\u0646\u06cc
+languages.ml=\u0645\u0627\u0644\u0627\u064a\u0627\u0644\u0645
+languages.mk=\u0645\u0642\u062f\u0648\u0646\u064a\u0627\u0626\u06cc
+languages.so=\u0633\u0648\u0645\u0627\u0644\u06cc
+languages.gd=\u0633\u06a9\u0627\u0679 \u06af\u064a\u0644\u0650\u06a9
+languages.sl=\u0633\u0644\u0648\u064a\u0646\u06cc
+languages.sk=\u0633\u0644\u0627\u0648\u0627\u06a9\u06cc
+languages.ga=\u0622\u0626\u064a\u0631\u0650\u0634
+languages.si=\u0633\u0646\u06c1\u0627\u0644\u06cc
+languages.sh=\u0633\u0631\u0628\u0648-\u06a9\u0631\u0648\u0626\u06cc\u0634\u06cc\u0646
+languages.pt_BR=\u067e\u0631\u062a\u06af\u0627\u0644\u06cc (\ufe91\ufeae\ufe8d\ufeaf\ufef3\ufede)
+languages.yi=\u064a\u0627\u062f\u0634
+languages.sd=\u0633\u0646\u062f\u06be\u06cc
+languages.fy=\u0641\u0631\u064a\u0698\u064a\u0646
+languages.sa=\u0633\u064e\u0646\u0633\u06a9\u0631\u0650\u062a
+languages.fr=\u0641\u0631\u0627\u0646\u0633\u064a\u0633\u06cc
+languages.lv=\u0644\u064a\u0679\u0648\u064a\u0646
+languages.lt=\u0644\u062a\u06be\u064f\u0648\u0627\u06cc\u0646\u06cc\u0646
+languages.fo=\u0641\u06cc\u0631\u0648\u0626\u06cc\u0632
+languages.ru=\u0631\u0648\u0633\u06cc
+languages.lo=\u0644\u0627\u0624\u0634\u0650\u06cc\u064e\u0646
+languages.ln=\u0644\u0650\u0646\u06af\u064e\u0644\u0627
+languages.fi=\u0641\u0646\u0651\u0646\u0650\u0634
+languages.ro=\u0631\u0648\u0645\u0646\u06cc
+languages.fa=\u0641\u0627\u0631\u0633\u06cc
+languages.la=\u0644\u0627\u0637\u064a\u0646\u06cc
+languages.xh=\u062e\u0648\u0633\u06c1
+languages.en_GB=\u0628\u0631\u0637\u0627\u0646\u0648\u06cc \u0627\u0646\u06af\u0631\u06cc\u0632\u06cc
+languages.eu=\u0628\u0627\u0633\u06a9\u06cc
+languages.ky=\u06a9\u0631\u063a\u06cc\u0632\u06cc
+languages.et=\u0627\u0633\u0679\u0648\u0646\u064a\u0646
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur_IN.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur_IN.properties
new file mode 100644 (file)
index 0000000..13716ab
--- /dev/null
@@ -0,0 +1,9 @@
+# LocaleInformation_ur_IN.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
index 3ffc7a82450eb5f81a4fb42e9d03bba08eb471bd..e82e1c19144a3024f1723433eb929408fadfb642 100644 (file)
@@ -8,24 +8,35 @@
 decimalSeparator=,
 groupingSeparator=\u00a0
 currenciesDisplayName.INR=\u04b2\u0438\u043d\u0434 \u0440\u0443\u043f\u0438\u044f\u0441\u0438
-currenciesDisplayName.RUB=\u0420\u0443\u0441 \u0440\u0443\u0431\u043b\u0438
 currenciesDisplayName.JPY=\u042f\u043f\u043e\u043d \u0439\u0435\u043d\u0430\u0441\u0438
+currenciesDisplayName.RUB=\u0420\u0443\u0441 \u0440\u0443\u0431\u043b\u0438
 currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b \u0440\u0435\u0430\u043b\u0438
-currenciesDisplayName.UZS=\u040e\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u043e\u043d \u0441\u045e\u043c
 currenciesDisplayName.CNY=\u0425\u0438\u0442\u043e\u0439 \u044e\u0430\u043d\u0438
+currenciesDisplayName.UZS=\u040e\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u043e\u043d \u0441\u045e\u043c
 currenciesDisplayName.USD=\u0410\u049a\u0428 \u0434\u043e\u043b\u043b\u0430\u0440\u0438
 currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
 currenciesDisplayName.GBP=\u0418\u043d\u0433\u043b\u0438\u0437 \u0444\u0443\u043d\u0442 \u0441\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0438
 currenciesSymbol.UZS=\u0441\u045e\u043c
-shortMonths=\u042f\u043d\u0432®\u0424\u0435\u0432®\u041c\u0430\u0440®\u0410\u043f\u0440®\u041c\u0430\u0439®\u0418\u044e\u043d®\u0418\u044e\u043b®\u0410\u0432\u0433®\u0421\u0435\u043d®\u041e\u043a\u0442®\u041d\u043e\u044f®\u0414\u0435\u043a®®
-months=\u042f\u043d\u0432\u0430\u0440\u044c®\u0424\u0435\u0432\u0440\u0430\u043b\u044c®\u041c\u0430\u0440\u0442®\u0410\u043f\u0440\u0435\u043b\u044c®\u041c\u0430\u0439®\u0418\u044e\u043d\u044c®\u0418\u044e\u043b\u044c®\u0410\u0432\u0433\u0443\u0441\u0442®\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c®\u041e\u043a\u0442\u044f\u0431\u0440\u044c®\u041d\u043e\u044f\u0431\u0440\u044c®\u0414\u0435\u043a\u0430\u0431\u0440\u044c®®
-shortWeekdays=®\u042f\u043a\u0448®\u0414\u0443\u0448®\u0421\u0435\u0448®\u0427\u043e\u0440®\u041f\u0430\u0439®\u0416\u0443\u043c®\u0428\u0430\u043d®
-weekdays=®\u042f\u043a\u0448\u0430\u043d\u0431\u0430®\u0414\u0443\u0448\u0430\u043d\u0431\u0430®\u0421\u0435\u0448\u0430\u043d\u0431\u0430®\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430®\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430®\u0416\u0443\u043c\u0430®\u0428\u0430\u043d\u0431\u0430®
+shortMonths=\u042f\u043d\u0432\u00ae\u0424\u0435\u0432\u00ae\u041c\u0430\u0440\u00ae\u0410\u043f\u0440\u00ae\u041c\u0430\u0439\u00ae\u0418\u044e\u043d\u00ae\u0418\u044e\u043b\u00ae\u0410\u0432\u0433\u00ae\u0421\u0435\u043d\u00ae\u041e\u043a\u0442\u00ae\u041d\u043e\u044f\u00ae\u0414\u0435\u043a\u00ae\u00ae
+months=\u041c\u0443\u04b3\u0430\u0440\u0440\u0430\u043c\u00ae\u0421\u0430\u0444\u0430\u0440\u00ae\u0420\u0430\u0431\u0438\u0443\u043b-\u0430\u0432\u0432\u0430\u043b\u00ae\u0420\u0430\u0431\u0438\u0443\u043b-\u043e\u0445\u0438\u0440\u00ae\u0416\u0443\u043c\u043e\u0434\u0438\u0443\u043b-\u0443\u043b\u043e\u00ae\u0416\u0443\u043c\u043e\u0434\u0438\u0443\u043b-\u0443\u0445\u0440\u043e\u00ae\u0420\u0430\u0436\u0430\u0431\u00ae\u0428\u0430\u044a\u0431\u043e\u043d\u00ae\u0420\u0430\u043c\u0430\u0437\u043e\u043d\u00ae\u0428\u0430\u0432\u0432\u043e\u043b\u00ae\u0417\u0438\u043b-\u049b\u0430\u044a\u0434\u0430\u00ae\u0417\u0438\u043b-\u04b3\u0438\u0436\u0436\u0430\u00ae\u00ae
+shortWeekdays=\u00ae\u042f\u043a\u0448\u00ae\u0414\u0443\u0448\u00ae\u0421\u0435\u0448\u00ae\u0427\u043e\u0440\u00ae\u041f\u0430\u0439\u00ae\u0416\u0443\u043c\u00ae\u0428\u0430\u043d\u00ae
+weekdays=\u00ae\u044f\u043a\u0448\u0430\u043d\u0431\u0430\u00ae\u0434\u0443\u0448\u0430\u043d\u0431\u0430\u00ae\u0441\u0435\u0448\u0430\u043d\u0431\u0430\u00ae\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0430\u00ae\u043f\u0430\u0439\u0448\u0430\u043d\u0431\u0430\u00ae\u0436\u0443\u043c\u0430\u00ae\u0448\u0430\u043d\u0431\u0430\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Afghanistan\u00ae\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646 \u0648\u0642\u062a\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9
 territories.FR=\u0424\u0440\u0430\u043d\u0446\u0438\u044f
 territories.IN=\u04b2\u0438\u043d\u0434\u0438\u0441\u0442\u043e\u043d
 territories.CN=\u0425\u0438\u0442\u043e\u0439
-territories.AF=\u0410\u0444\u0493\u043e\u043d\u0438\u0441\u0442\u043e\u043d
 territories.DE=\u041e\u043b\u043c\u043e\u043d\u0438\u044f
+territories.AF=\u0410\u0444\u0493\u043e\u043d\u0438\u0441\u0442\u043e\u043d
 territories.GB=\u0411\u0438\u0440\u043b\u0430\u0448\u0433\u0430\u043d \u049a\u0438\u0440\u043e\u043b\u043b\u0438\u043a
 territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f
 territories.UZ=\u040e\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u043e\u043d
index 5a66a0fadea71890e8bd73f098aef72071763cdb..f657804cbc2f85e4d86f6ee211f6d090e225226e 100644 (file)
@@ -11,24 +11,21 @@ minusSign=\u2212
 zeroDigit=\u06f0
 decimalSeparator=\u066b
 groupingSeparator=\u066c
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-currenciesDisplayName.AFA=\u0627\u0641\u063a\u0627\u0646\u06cc
-currenciesSymbol.AFA=\u0627\u0641\u063a\u0627\u0646\u06cc
-shortMonths=\u062c\u0646\u0648®\u0641\u0628\u0631®\u0645\u0627\u0631®\u0627\u067e\u0631®\u0645\u0640\u06cc®\u062c\u0648\u0646®\u062c\u0648\u0644®\u0627\u06af\u0633®\u0633\u067e\u062a®\u0627\u06a9\u062a®\u0646\u0648\u0645®\u062f\u0633\u0645®®
-months=\u062c\u0646\u0648\u0631\u06cc®\u0641\u0628\u0631\u0648\u0631\u06cc®\u0645\u0627\u0631\u0686®\u0627\u067e\u0631\u06cc\u0644®\u0645\u06cc®\u062c\u0648\u0646®\u062c\u0648\u0644\u0627\u06cc®\u0627\u06af\u0633\u062a®\u0633\u067e\u062a\u0645\u0628\u0631®\u0627\u06a9\u062a\u0648\u0628\u0631®\u0646\u0648\u0645\u0628\u0631®\u062f\u0633\u0645\u0628\u0631®®
-shortWeekdays=®\u06cc.®\u062f.®\u0633.®\u0686.®\u067e.®\u062c.®\u0634.®
-weekdays=®\u06cc\u06a9\u0634\u0646\u0628\u0647®\u062f\u0648\u0634\u0646\u0628\u0647®\u0633\u0647\u200c\u0634\u0646\u0628\u0647®\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647®\u067e\u0646\u062c\u0634\u0646\u0628\u0647®\u062c\u0645\u0639\u0647®\u0634\u0646\u0628\u0647®
-firstDayOfWeek=sat
-eras=\u0642.\u0645.®\u0645.®
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.AFN=\u0627\u0641\u063a\u0627\u0646\u06cc
+shortMonths=\u062c\u0646\u0648\u00ae\u0641\u0628\u0631\u00ae\u0645\u0627\u0631\u00ae\u0627\u067e\u0631\u00ae\u0645\u0640\u06cc\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u00ae\u0627\u06af\u0633\u00ae\u0633\u067e\u062a\u00ae\u0627\u06a9\u062a\u00ae\u0646\u0648\u0645\u00ae\u062f\u0633\u0645\u00ae\u00ae
+months=\u062c\u0646\u0648\u0631\u06cc\u00ae\u0641\u0628\u0631\u0648\u0631\u06cc\u00ae\u0645\u0627\u0631\u0686\u00ae\u0627\u067e\u0631\u06cc\u0644\u00ae\u0645\u06cc\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u0627\u06cc\u00ae\u0627\u06af\u0633\u062a\u00ae\u0633\u067e\u062a\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0645\u0628\u0631\u00ae\u062f\u0633\u0645\u0628\u0631\u00ae\u00ae
+shortWeekdays=\u00ae\u06cc.\u00ae\u062f.\u00ae\u0633.\u00ae\u0686.\u00ae\u067e.\u00ae\u062c.\u00ae\u0634.\u00ae
+weekdays=\u00ae\u06cc\u06a9\u0634\u0646\u0628\u0647\u00ae\u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u0633\u0647\u200c\u0634\u0646\u0628\u0647\u00ae\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647\u00ae\u067e\u0646\u062c\u0634\u0646\u0628\u0647\u00ae\u062c\u0645\u0639\u0647\u00ae\u0634\u0646\u0628\u0647\u00ae
+eras=\u0642.\u0645.\u00ae\u0645.\u00ae
 shortDateFormat=yyyy/M/d
-mediumDateFormat=d MMMM yyyy
+mediumDateFormat=d MMM yyyy
 longDateFormat=d \u0646\u0686\u06cc MMMM yyyy
 fullDateFormat=yyyy \u0646\u0686\u06cc \u06cc\u06cc\u0644 d \u0646\u0686\u06cc MMMM EEEE \u06a9\u0648\u0646\u06cc
 shortTimeFormat=H:mm
 mediumTimeFormat=H:mm:ss
 longTimeFormat=H:mm:ss (z)
 fullTimeFormat=H:mm:ss (z)
-zoneStrings=Asia/Kabul®AFT®\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646 \u0648\u0642\u062a\u06cc®AFT®\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646 \u0648\u0642\u062a\u06cc®©
 territories.AF=\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646
 languages.uz=\u0627\u06c9\u0632\u0628\u06d0\u06a9
 languages.fa=\u062f\u0631\u06cc
index 8d0c8c70d802d852a67317105fc76b5d1adcc640..87131e03e8ad9ea551e4490021946d642f27f10e 100644 (file)
@@ -6,24 +6,24 @@
 # This file was automatically generated by gnu.localegen from CLDR.
 
 currenciesDisplayName.INR=Hind rupiyasi
-currenciesDisplayName.RUB=Rus rubli
 currenciesDisplayName.JPY=Yapon yenasi
+currenciesDisplayName.RUB=Rus rubli
 currenciesDisplayName.BRL=Brazil reali
-currenciesDisplayName.UZS=O\u02bfzbekiston so\u02bfm
 currenciesDisplayName.CNY=Xitoy yuani
+currenciesDisplayName.UZS=O\u02bfzbekiston so\u02bfm
 currenciesDisplayName.USD=AQSH dollari
 currenciesDisplayName.EUR=Evro
 currenciesDisplayName.GBP=Ingliz funt sterlingi
 currenciesSymbol.UZS=so\u02bfm
-shortMonths=Yanv®Fev®Mar®Apr®May®Iyun®Iyul®Avg®Sen®Okt®Noya®Dek®®
-months=Yanvar®Fevral®Mart®Aprel®May®Iyun®Iyul®Avgust®Sentyabr®Oktyabr®Noyabr®Dekabr®®
-shortWeekdays=®Yaksh®Dush®Sesh®Chor®Pay®Jum®Shan®
-weekdays=®Yakshanba®Dushanba®Seshanba®Chorshanba®Payshanba®Juma®Shanba®
-territories.FR=Frantsiya
+shortMonths=Yanv\u00aeFev\u00aeMar\u00aeApr\u00aeMay\u00aeIyun\u00aeIyul\u00aeAvg\u00aeSen\u00aeOkt\u00aeNoya\u00aeDek\u00ae\u00ae
+months=Yanvar\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00aeYaksh\u00aeDush\u00aeSesh\u00aeChor\u00aePay\u00aeJum\u00aeShan\u00ae
+weekdays=\u00aeyakshanba\u00aedushanba\u00aeseshanba\u00aechorshanba\u00aepayshanba\u00aejuma\u00aeshanba\u00ae
+territories.FR=Fransiya
 territories.IN=Hindiston
 territories.CN=Xitoy
-territories.AF=Afg\u02bfoniston
 territories.DE=Olmoniya
+territories.AF=Afg\u02bfoniston
 territories.GB=Birlashgan Qirollik
 territories.BR=Braziliya
 territories.UZ=O\u02bfzbekiston
@@ -31,15 +31,15 @@ territories.RU=Rossiya
 territories.JP=Yaponiya
 territories.US=Qo'shma Shtatlar
 territories.IT=Italiya
-languages.zh=Xitoycha
-languages.en=Inglizcha
-languages.ru=Ruscha
-languages.hi=Hindcha
-languages.ar=Arabcha
-languages.it=Italyancha
-languages.fr=Frantsuzcha
-languages.de=Olmoncha
-languages.es=Ispancha
-languages.ja=Yaponcha
-languages.uz=o\u02bfzbek
-languages.pt=Portugalcha
+languages.zh=xitoycha
+languages.en=inglizcha
+languages.ru=ruscha
+languages.hi=hindcha
+languages.ar=arabcha
+languages.it=italyancha
+languages.fr=fransuzcha
+languages.de=olmoncha
+languages.es=ispancha
+languages.ja=yaponcha
+languages.uz=o'zbekcha
+languages.pt=portugalcha
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ve.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ve.properties
new file mode 100644 (file)
index 0000000..7084f62
--- /dev/null
@@ -0,0 +1,27 @@
+# LocaleInformation_ve.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Pha\u00aeLuh\u00ae\u1e70ha\u00aeLam\u00aeShu\u00aeLwi\u00aeLwa\u00ae\u1e70ha\u00aeKhu\u00aeTsh\u00ae\u1e3car\u00aeNye\u00ae\u00ae
+months=Phando\u00aeLuhuhi\u00ae\u1e70hafamuhwe\u00aeLambamai\u00aeShundunthule\u00aeFulwi\u00aeFulwana\u00ae\u1e70hangule\u00aeKhubvumedzi\u00aeTshimedzi\u00ae\u1e3cara\u00aeNyendavhusiku\u00ae\u00ae
+shortWeekdays=\u00aeSwo\u00aeMus\u00aeVhi\u00aeRar\u00ae\u1e4aa\u00ae\u1e70an\u00aeMug\u00ae
+weekdays=\u00aeSwondaha\u00aeMusumbuluwo\u00ae\u1e3cavhuvhili\u00ae\u1e3cavhuraru\u00ae\u1e3cavhu\u1e4ba\u00ae\u1e3cavhu\u1e71anu\u00aeMugivhela\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.ve=Tshiven\u1e13a
index e8482ca70c1ed4c6d9ccc396a88be416a6473aa0..8b054138ad0b581109b9b544f2ef4a160a6e31c0 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
 decimalSeparator=,
 groupingSeparator=.
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.CHF=Franc Th\u1ee5y s\u0129
+currenciesDisplayName.GYD=\u0110\u00f4-la Guyana
+currenciesDisplayName.FJD=\u0110\u00f4-la Fi-ji
+currenciesDisplayName.KZT=Kazakhstan Tenge
+currenciesDisplayName.RUB=R\u00fap Nga
+currenciesDisplayName.THB=B\u1ea1t Th\u00e1i Lan
+currenciesDisplayName.SEK=Cua-ron Thu\u1ef5 \u0110i\u1ec3n
+currenciesDisplayName.GIP=Pao Gibraltar
+currenciesDisplayName.PLN=Zloty Ba Lan
+currenciesDisplayName.SKK=Cuaron Xl\u00f4v\u00e1c
+currenciesDisplayName.MAD=\u0110iaham Mar\u1ed1c
+currenciesDisplayName.TWD=\u0110\u00f4-la \u0110\u00e0i Loan
+currenciesDisplayName.XXX=Ti\u1ec1n t\u1ec7 ch\u01b0a bi\u1ebft ho\u1eb7c kh\u00f4ng h\u1ee3p l\u1ec7
+currenciesDisplayName.MYR=Rinhgit Malaixia
+currenciesDisplayName.IEP=Pao Ai-len
+currenciesDisplayName.HUF=Ph\u00f4rin Hungari
+currenciesDisplayName.UAH=R\u00fap U-crai-na
+currenciesDisplayName.INR=Rupi \u1ea4n \u0110\u1ed9
+currenciesDisplayName.AED=\u0110iram UAE
+currenciesDisplayName.GRD=Drachma Hy L\u1ea1p
+currenciesDisplayName.SAR=Rian \u1ea2 r\u1eadp X\u00ea\u00fat
+currenciesDisplayName.ITL=Lia \u00dd
+currenciesDisplayName.USD=\u0110\u00f4-la M\u1ef9
+currenciesDisplayName.BGN=L\u00e9p Bungari
+currenciesDisplayName.JPY=Y\u00ean Nh\u1eadt
+currenciesDisplayName.GBP=B\u1ea3ng Anh
+currenciesDisplayName.PKR=Rupi Pakistan
+currenciesDisplayName.PHP=Peso Phil\u00edppin
+currenciesDisplayName.PEN=Nuevo Sol P\u00earu
+currenciesDisplayName.FRF=Franc Ph\u00e1p
+currenciesDisplayName.NOK=Curon Na Uy
+currenciesDisplayName.IQD=Dinar I-r\u1eafc
+currenciesDisplayName.GHS=Cedi Ghana
+currenciesDisplayName.EUR=Euro
+currenciesDisplayName.HNL=Honduras Lempira
+currenciesDisplayName.GNS=Syli Guinea
+currenciesDisplayName.GEL=Lari Georgia
+currenciesDisplayName.HKD=\u0110\u00f4-la H\u1ed3ng K\u00f4ng
+currenciesDisplayName.IDR=Rupia In\u0111\u00f4n\u00eaxia
+currenciesDisplayName.HTG=Gourde Haiti
+currenciesDisplayName.SGD=\u0110\u00f4-la Singapore
+currenciesDisplayName.ZAR=Ran Nam Phi
+currenciesDisplayName.GTQ=Quetzal Guatemala
+currenciesDisplayName.GWP=Peso Guinea-Bissau
+currenciesDisplayName.MXN=Peso M\u00eahic\u00f4
+currenciesDisplayName.GHC=Cedi Ghana (1979-2007)
+currenciesDisplayName.TRY=Lia Th\u1ed5 Nh\u0129 K\u1ef3 M\u1edbi
+currenciesDisplayName.JMD=\u0110\u00f4 la Jamaica
+currenciesDisplayName.GNF=Franc Guinea
+currenciesDisplayName.KRW=Won H\u00e0n Qu\u1ed1c
+currenciesDisplayName.SIT=T\u00f4la Xl\u00f4v\u00eania
+currenciesDisplayName.EEK=Crun Ext\u00f4nia
+currenciesDisplayName.RSD=\u0110ina X\u00e9c-bi
+currenciesDisplayName.XAU=V\u00e0ng
+currenciesDisplayName.TRL=Lia Th\u1ed5 Nh\u0129 K\u1ef3
+currenciesDisplayName.BRL=BRL
+currenciesDisplayName.VEB=B\u00f4liva V\u00ean\u00eadu\u00eala
+currenciesDisplayName.CNY=CNY
+currenciesDisplayName.ILS=S\u00eaken Ixraen
+currenciesDisplayName.MTL=Lia x\u1ee9 Man-t\u01a1
 currenciesDisplayName.VND=\u0111\u1ed3ng
+currenciesDisplayName.NZD=\u0110\u00f4-la New Zealand
+currenciesDisplayName.ILP=Pao Ixraen
+currenciesDisplayName.RON=L\u00e2y Rumani
+currenciesDisplayName.IRR=Rial I-ran
+currenciesDisplayName.KES=Si-ling K\u00ea-ny-a
+currenciesDisplayName.JOD=Dinar Jordan
+currenciesDisplayName.LTL=Litat Lituani
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
 currenciesSymbol.VND=\u0111
-shortMonths=thg 1®thg 2®thg 3®thg 4®thg 5®thg 6®thg 7®thg 8®thg 9®thg 10®thg 11®thg 12®®
-months=th\u00e1ng m\u1ed9t®th\u00e1ng hai®th\u00e1ng ba®th\u00e1ng t\u01b0®th\u00e1ng n\u0103m®th\u00e1ng s\u00e1u®th\u00e1ng b\u1ea3y®th\u00e1ng t\u00e1m®th\u00e1ng ch\u00edn®th\u00e1ng m\u01b0\u1eddi®th\u00e1ng m\u01b0\u1eddi m\u1ed9t®th\u00e1ng m\u01b0\u1eddi hai®®
-shortWeekdays=®CN®Th 2®Th 3®Th 4®Th 5®Th 6®Th 7®
-weekdays=®Ch\u1ee7 nh\u1eadt®Th\u1ee9 hai®Th\u1ee9 ba®Th\u1ee9 t\u01b0®Th\u1ee9 n\u0103m®Th\u1ee9 s\u00e1u®Th\u1ee9 b\u1ea3y®
-firstDayOfWeek=mon
-eras=tr. CN®sau CN®
-ampms=SA®CH®
+shortMonths=thg 1\u00aethg 2\u00aethg 3\u00aethg 4\u00aethg 5\u00aethg 6\u00aethg 7\u00aethg 8\u00aethg 9\u00aethg 10\u00aethg 11\u00aethg 12\u00ae\u00ae
+months=th\u00e1ng m\u1ed9t\u00aeth\u00e1ng hai\u00aeth\u00e1ng ba\u00aeth\u00e1ng t\u01b0\u00aeth\u00e1ng n\u0103m\u00aeth\u00e1ng s\u00e1u\u00aeth\u00e1ng b\u1ea3y\u00aeth\u00e1ng t\u00e1m\u00aeth\u00e1ng ch\u00edn\u00aeth\u00e1ng m\u01b0\u1eddi\u00aeth\u00e1ng m\u01b0\u1eddi m\u1ed9t\u00aeth\u00e1ng m\u01b0\u1eddi hai\u00ae\u00ae
+shortWeekdays=\u00aeCN\u00aeTh 2\u00aeTh 3\u00aeTh 4\u00aeTh 5\u00aeTh 6\u00aeTh 7\u00ae
+weekdays=\u00aeCh\u1ee7 nh\u1eadt\u00aeTh\u1ee9 hai\u00aeTh\u1ee9 ba\u00aeTh\u1ee9 t\u01b0\u00aeTh\u1ee9 n\u0103m\u00aeTh\u1ee9 s\u00e1u\u00aeTh\u1ee9 b\u1ea3y\u00ae
+eras=tr. CN\u00aesau CN\u00ae
+ampms=SA\u00aeCH\u00ae
 shortDateFormat=dd/MM/yyyy
 mediumDateFormat=dd-MM-yyyy
 longDateFormat='Ng\u00e0y' dd 'th\u00e1ng' M 'n\u0103m' yyyy
 fullDateFormat=EEEE, 'ng\u00e0y' dd MMMM 'n\u0103m' yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=\u00d0\u00f4ng Ti-mo
+territories.TK=Tokelau
 territories.TJ=T\u00e1t-gi-ki-xtan
 territories.TH=Th\u00e1i Lan
 territories.TG=T\u00f4-g\u00f4
+territories.TF=Thu\u1ed9c \u0110\u1ecba Nam c\u1ee7a Ph\u00e1p
 territories.GY=Guy-a-na
-territories.TD=S\u00e1t
+territories.TD=S\u00e1t (Chad)
+territories.TC=Qu\u1ea7n \u0110\u1ea3o Turk v\u00e0 Caicos
 territories.GW=Ghi-n\u00ea B\u00edt-xao
+territories.GU=\u0110\u1ea3o Gu-am
 territories.GT=Goa-t\u00ea-ma-la
+territories.GS=Qu\u1ea7n \u0111\u1ea3o Nam Georgia v\u00e0 Nam Sandwich
 territories.GR=Hy L\u1ea1p
 territories.GQ=Ghi-n\u00ea X\u00edch-\u0111\u1ea1o
 territories.SZ=Xoa-di-len
 territories.SY=Xi-ri
 territories.GN=Ghi-n\u00ea
 territories.GM=G\u0103m-bi-a
+territories.GL=B\u0103ng \u0110\u1ea3o
 territories.SV=En-san-va-\u0111o
+territories.062=Trung Nam \u00c1
 territories.ST=Xao T\u00f4-m\u00ea v\u00e0 Prin-xi-p\u00ea
+territories.061=Polynesia
 territories.GH=Gha-na
 territories.SR=Xu-ri-nam
+territories.GG=Guernsey
+territories.GF=Quiana thu\u1ed9c Ph\u00e1p
 territories.GE=Gru-di-a
 territories.SO=X\u00f4-ma-li
 territories.GD=Gr\u00ea-na-\u0111a
@@ -47,7 +138,9 @@ territories.GB=V\u01b0\u01a1ng qu\u1ed1c Anh
 territories.SL=Xi-\u00ea-ra L\u00ea-\u00f4n
 territories.GA=Ga-b\u00f4ng
 territories.SK=Xl\u00f4-va-ki-a
+territories.SJ=Svalbard v\u00e0 Jan Mayen
 territories.SI=Xl\u00f4-ven-ni-a
+territories.SH=Saint Helena
 territories.SG=Xin-ga-po
 territories.SE=Th\u1ee5y \u0110i\u1ec3n
 territories.SD=Xu-\u0111\u0103ng
@@ -55,116 +148,177 @@ territories.SC=X\u00e2y-sen
 territories.SB=Qu\u1ea7n \u0111\u1ea3o X\u00f4-l\u00f4-m\u00f4ng
 territories.SA=A-r\u1eadp X\u00ea-\u00fat
 territories.FR=Ph\u00e1p
+territories.FO=Qu\u1ea7n \u0110\u1ea3o Faroe
+territories.057=V\u00f9ng Micronesian
 territories.FM=Mi-cr\u00f4-n\u00ea-xi-a
 territories.RW=Ru-an-\u0111a
-territories.FJ=Phi-gi
+territories.054=Melanesia
+territories.FK=Qu\u1ea7n \u0110\u1ea3o Falkland
+territories.053=\u00dac v\u00e0 New Zealand
 territories.RU=Nga
+territories.FJ=Phi-gi
 territories.FI=Ph\u1ea7n Lan
+territories.RS=X\u00e9c-bi
 territories.RO=Ru-ma-ni
+territories.RE=RE
 territories.ET=\u00ca-ti-\u00f4-pi-a
 territories.ES=T\u00e2y Ban Nha
 territories.ER=\u00ca-ri-t\u01a1-r\u00ea-a
+territories.QU=Li\u00ean Minh Ch\u00e2u \u00c2u
 territories.EH=T\u00e2y Sahara
 territories.EG=Ai C\u1eadp
 territories.EE=E-xt\u00f4-ni-a
+territories.QO=V\u00f9ng xa x\u00f4i thu\u1ed9c Ch\u00e2u \u0110\u1ea1i D\u01b0\u01a1ng
 territories.EC=\u00ca-cu-a-\u0111o
 territories.DZ=An-gi\u00ea-ri
 territories.QA=Ca-ta
+territories.039=Nam \u00c2u
+territories.DO=C\u1ed9ng ho\u00e0 \u0110\u00f4-mi-ni-ca
 territories.PY=Pa-ra-goay
+territories.035=\u0110\u00f4ng Nam \u00c1
+territories.034=Nam \u00c1
 territories.DK=\u0110an M\u1ea1ch
 territories.DJ=Gi-bu-ti
 territories.PT=B\u1ed3 \u0110\u00e0o Nha
+territories.PS=Palestine
+territories.030=\u0110\u00f4ng \u00c1
 territories.DE=\u0110\u1ee9c
+territories.PM=Saint Pierre v\u00e0 Miquelon
 territories.PL=Ba Lan
 territories.PK=Pa-ki-xtan
 territories.PH=Phi-lip-pin
 territories.PG=Pa-pu-a Niu Ghi-n\u00ea
+territories.PF=Polynesia thu\u1ed9c Ph\u00e1p
 territories.CZ=C\u1ed9ng h\u00f2a S\u00e9c
-territories.CY=S\u00edp
 territories.PE=P\u00ea-ru
+territories.CY=S\u00edp
+territories.CX=\u0110\u1ea3o Gi\u00e1ng Sinh
 territories.CV=C\u00e1p-ve
-territories.CU=Cu Ba
 territories.PA=Pa-na-ma
+territories.CU=Cu Ba
 territories.CS=S\u00e9c-bia
 territories.CR=C\u1ed1t-xta Ri-ca
+territories.029=Ca-ri-b\u00ea
 territories.CO=C\u00f4-l\u00f4m-bi-a
 territories.CN=Trung Qu\u1ed1c
 territories.CM=Ca-m\u01a1-run
 territories.CL=Chi-l\u00ea
+territories.CK=Qu\u1ea7n \u0110\u1ea3o Cook
+territories.021=Mi\u1ec1n B\u1eafc Ch\u00e2u M\u1ef9
 territories.CI=B\u1edd Bi\u1ec3n Ng\u00e0
 territories.CH=Th\u1ee5y S\u0129
 territories.CG=C\u00f4ng-g\u00f4
 territories.CF=C\u1ed9ng h\u00f2a Trung Phi
+territories.CD=C\u1ed9ng ho\u00e0 d\u00e2n ch\u1ee7 C\u00f4ng\u00f4
+territories.CC=Qu\u1ea7n \u0111\u1ea3o Cocos
 territories.OM=\u00d4-man
 territories.CA=Ca-na-\u0111a
+territories.419=Ch\u00e2u M\u1ef9 La-tinh v\u00e0 Ca-ri-be
 territories.BZ=B\u00ea-li-x\u00ea
 territories.BY=B\u00ea-la-r\u00fat
 territories.BW=B\u1ed1t-xoa-na
+territories.BV=\u0110\u1ea3o Bouvet (Na Uy)
+territories.BT=Bu-tan (Bhutan)
 territories.BS=Ba-ha-ma
 territories.BR=Bra-xin
-territories.BO=B\u00f4-li-vi-a
+territories.019=Ch\u00e2u M\u1ef9
+territories.018=Nam Phi
 territories.NZ=Niu Di-l\u00e2n
+territories.017=Trung Phi
+territories.BO=B\u00f4-li-vi-a
 territories.BN=Bru-n\u00e2y
-territories.BJ=B\u00ea-nanh
+territories.015=B\u1eafc Phi
+territories.014=\u0110\u00f4ng Ph\u00ed
+territories.BL=BL
+territories.013=Trung M\u1ef9
+territories.BJ=Benin
+territories.011=T\u00e2y Phi
 territories.BI=Bu-run-\u0111i
 territories.BH=Ba-ren
 territories.BG=Bun-ga-ri
 territories.BF=Bu\u1ed1c-ki-na Pha-x\u00f4
-territories.BE=B\u1ec9
 territories.NP=N\u00ea-pan
-territories.BD=B\u0103ng-la-\u0111\u00e9t
+territories.BE=B\u1ec9
+territories.ZZ=V\u00f9ng Ch\u01b0a bi\u1ebft ho\u1eb7c kh\u00f4ng H\u1ee3p l\u1ec7
 territories.NO=Na Uy
+territories.BD=B\u0103ng-la-\u0111\u00e9t
 territories.BB=B\u00e1c-ba-\u0111\u1ed1t
 territories.ZW=Dim-ba-bu-\u00ea
-territories.BA=B\u00f4-xni-a H\u00e9c-x\u00ea-g\u00f4-vi-na
 territories.NL=H\u00e0 Lan
+territories.BA=B\u00f4-xni-a H\u00e9c-x\u00ea-g\u00f4-vi-na
 territories.NI=Ni-ca-ra-goa
 territories.NG=Ni-gi\u00ea-ri-a
+territories.NF=\u0110\u1ea3o Norfolk
 territories.AZ=Ai-d\u00e9c-bai-gian
 territories.NE=Ni-gi\u00ea
+territories.AX=Qu\u1ea7n \u0111\u1ea3o Aland
+territories.NC=New Caledonia
 territories.ZM=D\u0103m-bi-a
 territories.NA=Nam-mi-bi-a
 territories.AU=\u00dac
 territories.AT=\u00c1o
+territories.AS=\u0110\u1ea3o Xa-m\u00f4-a c\u1ee7a M\u1ef9 (Samoa)
 territories.AR=\u00c1c-hen-ti-na
-territories.AO=\u0102ng-g\u00f4-la
+territories.AQ=Nam C\u1ef1c
+territories.009=Ch\u00e2u \u0110\u1ea1i D\u01b0\u01a1ng
 territories.MZ=M\u00f4-d\u0103m-b\u00edch
+territories.AO=\u0102ng-g\u00f4-la
 territories.MY=Ma-lay-xi-a
-territories.AM=\u00c1c-m\u00ea-ni-a
+territories.AN=T\u00e2y \u1ea4n H\u00e0 Lan
 territories.MX=M\u00ea-hi-c\u00f4
-territories.AL=An-ba-ni
+territories.AM=\u00c1c-m\u00ea-ni-a
+territories.005=Nam M\u1ef9
 territories.MW=Ma-la-uy
+territories.AL=An-ba-ni
 territories.MV=Man-\u0111i-v\u01a1
+territories.003=B\u1eafc M\u1ef9
 territories.ZA=Nam Phi
 territories.MU=M\u00f4-ri-x\u01a1
+territories.002=Phi Ch\u00e2u
 territories.MT=Man-ta
-territories.AG=An-ti-gu-a v\u00e0 Ba-bu-\u0111a
+territories.001=Th\u1ebf gi\u1edbi
 territories.MR=M\u00f4-ri-ta-ni
+territories.AG=An-ti-gu-a v\u00e0 Ba-bu-\u0111a
+territories.MQ=MQ
 territories.AF=\u00c1p-ga-ni-xtan
+territories.MP=Qu\u1ea7n \u0110\u1ea3o B\u1eafc Mariana
 territories.AE=C\u00e1c Ti\u1ec3u V\u01b0\u01a1ng qu\u1ed1c A-r\u1eadp Th\u1ed1ng nh\u1ea5t
+territories.MO=Macao
+territories.AD=Andorra
 territories.MN=M\u00f4ng C\u1ed5
-territories.MM=Mi-an-ma
+territories.MM=Mi\u1ebfn \u0110i\u1ec7n
 territories.ML=Ma-li
 territories.MK=Ma-x\u00ea-\u0111\u00f4-ni-a
+territories.YT=YT
 territories.MH=Qu\u1ea7n \u0111\u1ea3o M\u00e1c-san
 territories.MG=Ma-\u0111a-g\u00e1t-xca
+territories.MF=MF
+territories.ME=Montenegro
 territories.MD=M\u00f4n-\u0111\u00f4-va
 territories.MC=M\u00f4-na-c\u00f4
 territories.MA=Ma-r\u1ed1c
 territories.YE=Y-\u00ea-men
 territories.LY=Li-bi
 territories.LV=L\u00e1t-vi-a
+territories.155=T\u00e2y \u00c2u
 territories.LU=L\u00fac-x\u0103m-bua
+territories.154=Mi\u1ec1n B\u1eafc Ch\u00e2u \u00c2u
 territories.LT=Li-tu-a-ni-a
 territories.LS=L\u00ea-x\u00f4-th\u00f4
 territories.LR=Li-b\u00ea-ri-a
+territories.151=\u0110\u00f4ng \u00c2u
+territories.150=\u00c2u Ch\u00e2u
 territories.LK=Xri Lan-ca
 territories.LI=Lich-ten-xt\u00ean
 territories.LC=Xan Lu-xi
 territories.LB=Li-b\u0103ng
 territories.LA=L\u00e0o
 territories.KZ=Ka-d\u1eafc-xtan
+territories.KY=Qu\u1ea7n \u0110\u1ea3o Cayman
 territories.KW=C\u00f4-o\u00e9t
+territories.145=T\u00e2y \u00c1
+territories.143=Trung \u00c1
+territories.142=Ch\u00e2u \u00c1
 territories.KR=H\u00e0n Qu\u1ed1c
 territories.KP=B\u1eafc Tri\u1ec1u Ti\u00ean
 territories.KN=Xan-k\u00edt v\u00e0 N\u00ea-vi
@@ -174,11 +328,15 @@ territories.WS=Xa-moa
 territories.KH=Campuchia
 territories.KG=C\u01b0-r\u01a1-g\u01b0-xtan
 territories.KE=K\u00ea-ni-a
+territories.WF=Wallis v\u00e0 Futuna
 territories.JP=Nh\u1eadt B\u1ea3n
 territories.JO=Gi\u00f3c-\u0111a-ni
 territories.JM=Ha-mai-ca
 territories.VU=Va-nu-a-tu
+territories.JE=Jersey
 territories.VN=Vi\u1ec7t Nam
+territories.VI=Qu\u1ea7n \u0111\u1ea3o Virgin, M\u1ef9
+territories.VG=\u0110\u1ea3o Virgin, thu\u1ed9c Anh
 territories.VE=V\u00ea-n\u00ea-zu-\u00ea-la
 territories.VC=Xan Vin-xen v\u00e0 Gr\u00ea-na-din
 territories.VA=Va-ti-c\u0103ng
@@ -187,12 +345,15 @@ territories.IS=Ai-x\u01a1-len
 territories.IR=I-ran
 territories.IQ=I-r\u1eafc
 territories.UZ=U-d\u01a1-b\u00ea-ki-xtan
+territories.IO=Thu\u1ed9c \u0111\u1ecba Anh t\u1ea1i \u1ea4n \u0110\u1ed9 D\u01b0\u01a1ng
 territories.UY=U-ru-goay
 territories.IN=\u1ea4n \u0110\u1ed9
+territories.IM=\u0110\u1ea3o Man
 territories.IL=I-xra-en
 territories.US=Hoa K\u1ef3
 territories.IE=Ai-len
 territories.ID=Nam D\u01b0\u01a1ng
+territories.UM=C\u00e1c \u0111\u1ea3o nh\u1ecf xa trung t\u00e2m thu\u1ed9c M\u1ef9
 territories.UG=U-gan-\u0111a
 territories.UA=U-crai-na
 territories.HU=Hung-ga-ri
@@ -200,70 +361,129 @@ territories.HT=Ha-i-ti
 territories.HR=Cr\u00f4-a-ti-a
 territories.TZ=Tan-da-ni-a
 territories.HN=H\u00f4n-\u0111u-r\u00e1t
+territories.HM=\u0110\u1ea3o Heard v\u00e0 Qu\u1ea7n \u0111\u1ea3o McDonald
 territories.TW=\u0110\u00e0i Loan
 territories.TV=Tu-va-lu
+territories.HK=H\u1ed3ng K\u00f4ng
 territories.TT=Tri-ni-\u0111\u00e1t v\u00e0 T\u00f4-ba-g\u00f4
 territories.TR=Th\u1ed5 Nh\u0129 K\u1ef3
 territories.TO=T\u00f4ng-ga
 territories.TN=Tuy-ni-di
 territories.TM=Tu\u1ed1c-m\u00ea-ni-xtan
-languages.ne=Ti\u1ebfng N\u00ea-pan
-languages.th=Ti\u1ebfng Th\u00e1i
-languages.az=Ti\u1ebfng Ai-d\u00e9c-bai-gian
-languages.zh=Ti\u1ebfng Trung Qu\u1ed1c
-languages.ar=Ti\u1ebfng A-r\u1eadp
+languages.es=Ti\u1ebfng T\u00e2y Ban Nha
+languages.ku=Ti\u1ebfng Kurd (Iran)
+languages.eo=Ti\u1ebfng Qu\u1ed1c T\u1ebf Ng\u1eef
+languages.ks=Ti\u1ebfng Kashmiri
+languages.en=Ti\u1ebfng Anh
+languages.el=Ti\u1ebfng Hy L\u1ea1p
+languages.ko=Ti\u1ebfng H\u00e0n Qu\u1ed1c
+languages.kn=Ti\u1ebfng Kan-na-\u0111a
+languages.km=Ti\u1ebfng Campuchia
+languages.wo=Ti\u1ebfng Wolof
+languages.ka=Ti\u1ebfng Georgian
+languages.zh_Hans=Ti\u1ebfng Trung Qu\u1ed1c (Gi\u1ea3n th\u1ec3)
+languages.zh_Hant=Ti\u1ebfng Trung Qu\u1ed1c (Ph\u1ed3n th\u1ec3)
 languages.jv=Ti\u1ebfng Gia-va
-languages.ms=Ti\u1ebfng Ma-lay-xi-a
-languages.sv=Ti\u1ebfng Th\u1ee5y \u0110i\u1ec3n
+languages.fil=Ti\u1ebfng Philipin
 languages.pt=Ti\u1ebfng B\u1ed3 \u0110\u00e0o Nha
-languages.sr=Ti\u1ebfng S\u00e9c-bi
-languages.mn=Ti\u1ebfng M\u00f4ng C\u1ed5
-languages.sq=Ti\u1ebfng An-ba-ni
-languages.so=Ti\u1ebfng X\u00f4-ma-li
-languages.mk=Ti\u1ebfng Ma-x\u00ea-\u0111\u00f4-ni-a
+languages.ps=Ti\u1ebfng Pa-t\u00f4
 languages.de=Ti\u1ebfng \u0110\u1ee9c
 languages.pl=Ti\u1ebfng Ba Lan
-languages.sl=Ti\u1ebfng Xl\u00f4-ven
-languages.sk=Ti\u1ebfng Xl\u00f4-v\u00e1c
 languages.da=Ti\u1ebfng \u0110an M\u1ea1ch
-languages.ga=Ti\u1ebfng Ai-len
-languages.vi=Ti\u1ebfng Vi\u1ec7t
+languages.tlh=Ti\u1ebfng Klingon
 languages.ja=Ti\u1ebfng Nh\u1eadt
-languages.yi=Ti\u1ebfng Y-\u0111it
-languages.sa=Ti\u1ebfng Ph\u1ea1n
-languages.cs=Ti\u1ebfng S\u00e9c
-languages.lv=Ti\u1ebfng L\u00e1t-vi-a
-languages.fr=Ti\u1ebfng Ph\u00e1p
+languages.vi=Ti\u1ebfng Vi\u1ec7t
+languages.cy=Ti\u1ebfng Xent\u01a1
+languages.pa=Ti\u1ebfng Punjabi
+languages.cs=Ti\u1ebfng Ti\u1ec7p Kh\u1eafc
 languages.it=Ti\u1ebfng \u00dd
 languages.is=Ti\u1ebfng Ai-x\u01a1-len
 languages.uz=Ti\u1ebfng U-d\u01a1-b\u1ebfch
-languages.lt=Ti\u1ebfng L\u00edt-va
-languages.ru=Ti\u1ebfng Nga
-languages.lo=Ti\u1ebfng L\u00e0o
-languages.fi=Ti\u1ebfng Ph\u1ea7n Lan
-languages.ro=Ti\u1ebfng Ru-ma-ni
+languages.or=Ti\u1ebfng \u00d4-ri-a
+languages.ur=Ti\u1ebfng U\u0111u
 languages.ca=Ti\u1ebfng Ca-ta-l\u0103ng
+languages.ie=Ti\u1ebfng Khoa h\u1ecdc qu\u1ed1c t\u1ebf
 languages.id=Ti\u1ebfng In-\u0111\u00f4-n\u00ea-xia
 languages.uk=Ti\u1ebfng U-crai-na
-languages.fa=Ti\u1ebfng Ba T\u01b0
 languages.ia=Ti\u1ebfng Khoa H\u1ecdc Qu\u1ed1c T\u1ebf
-languages.la=Ti\u1ebfng La-tinh
+languages.oc=Ti\u1ebfng Occitan
+languages.ug=Ti\u1ebfng Uighur
 languages.hy=Ti\u1ebfng \u00c1c-m\u00ea-ni
-languages.et=Ti\u1ebfng E-xt\u00f4-ni-a
-languages.es=Ti\u1ebfng T\u00e2y Ban Nha
+languages.bs=Ti\u1ebfng Nam T\u01b0
+languages.br=Ti\u1ebfng Breton
 languages.hu=Ti\u1ebfng Hung-ga-ri
 languages.bo=Ti\u1ebfng T\u00e2y T\u1ea1ng
+languages.pt_PT=Ti\u1ebfng B\u1ed3 \u0110\u00e0o Nha (I-b\u00ea-ri)
+languages.bn=Ti\u1ebfng Bengali (\u1ea4n \u0110\u1ed9)
 languages.hr=Ti\u1ebfng Cr\u00f4-a-ti-a
-languages.eo=Ti\u1ebfng Qu\u1ed1c T\u1ebf Ng\u1eef
-languages.en=Ti\u1ebfng Anh
-languages.el=Ti\u1ebfng Hy L\u1ea1p
-languages.ko=Ti\u1ebfng H\u00e0n Qu\u1ed1c
-languages.kn=Ti\u1ebfng Kan-na-\u0111a
-languages.no=Ti\u1ebfng Na Uy
+languages.tw=Ti\u1ebfng Twi
+languages.bh=Ti\u1ebfng Bihari
 languages.bg=Ti\u1ebfng Bun-ga-ri
-languages.km=Ti\u1ebfng Campuchia
-languages.tr=Ti\u1ebfng Th\u1ed5 Nh\u0129 K\u1ef3
+languages.no=Ti\u1ebfng Na Uy
 languages.be=Ti\u1ebfng B\u00ea-la-r\u00fat
+languages.nn=Ti\u1ebfng Na Uy (Nynorsk)
 languages.hi=Ti\u1ebfng Hin-\u0111i
+languages.tr=Ti\u1ebfng Th\u1ed5 Nh\u0129 K\u1ef3
 languages.nl=Ti\u1ebfng H\u00e0 Lan
+languages.zu=Ti\u1ebfng Zulu
 languages.he=Ti\u1ebfng H\u00ea-br\u01a1
+languages.tl=Ti\u1ebfng Tagalog
+languages.tk=Ti\u1ebfng Tu\u00f4c-men
+languages.ne=Ti\u1ebfng N\u00ea-pan
+languages.az=Ti\u1ebfng Ai-d\u00e9c-bai-gian
+languages.ti=Ti\u1ebfng Tigrigya
+languages.ay=Ti\u1ebfng Aymara
+languages.th=Ti\u1ebfng Th\u00e1i
+languages.en_US=Ti\u1ebfng Anh (M\u1ef9)
+languages.te=Ti\u1ebfng Telugu
+languages.zh=Ti\u1ebfng Trung Qu\u1ed1c
+languages.as=Ti\u1ebfng Assam
+languages.ar=Ti\u1ebfng A-r\u1eadp
+languages.ta=Ti\u1ebfng Tamil
+languages.gu=Ti\u1ebfng  Gujarati
+languages.am=Ti\u1ebfng Amharic
+languages.mt=Ti\u1ebfng Mant\u01a1
+languages.ms=Ti\u1ebfng M\u00e3 Lai
+languages.gn=Ti\u1ebfng Guarani
+languages.sw=Ti\u1ebfng Bantu (\u0110\u00f4ng Phi)
+languages.mr=Ti\u1ebfng Marathi
+languages.sv=Ti\u1ebfng Th\u1ee5y \u0110i\u1ec3n
+languages.gl=Ti\u1ebfng Galician
+languages.su=Ti\u1ebfng Xu \u0111\u0103ng
+languages.af=Ti\u1ebfng Nam Phi
+languages.st=Ti\u1ebfng Sesotho
+languages.mn=Ti\u1ebfng M\u00f4ng C\u1ed5
+languages.sr=Ti\u1ebfng X\u00e9c-bi
+languages.sq=Ti\u1ebfng An-ba-ni
+languages.ml=Ti\u1ebfng Malayalam
+languages.mk=Ti\u1ebfng Ma-x\u00ea-\u0111\u00f4-ni-a
+languages.so=Ti\u1ebfng X\u00f4-ma-li
+languages.gd=Ti\u1ebfng Xent\u01a1 (Xc\u1ed1t len)
+languages.sl=Ti\u1ebfng Xl\u00f4-ven
+languages.sk=Ti\u1ebfng Xl\u00f4-v\u00e1c
+languages.ga=Ti\u1ebfng Ai-len
+languages.si=Ti\u1ebfng Sinhala
+languages.sh=Ti\u1ebfng X\u00e9c bi - Croatia
+languages.pt_BR=Ti\u1ebfng B\u1ed3 \u0110\u00e0o Nha (Braxin)
+languages.yi=Ti\u1ebfng Y-\u0111it
+languages.sd=Ti\u1ebfng Sin-hi
+languages.fy=Ti\u1ebfng Frisian
+languages.sa=Ti\u1ebfng Ph\u1ea1n
+languages.fr=Ti\u1ebfng Ph\u00e1p
+languages.lv=Ti\u1ebfng L\u00e1t-vi-a
+languages.lt=Ti\u1ebfng L\u00edt-va
+languages.fo=Ti\u1ebfng Faore
+languages.ru=Ti\u1ebfng Nga
+languages.lo=Ti\u1ebfng L\u00e0o
+languages.ln=Ti\u1ebfng Lingala
+languages.fi=Ti\u1ebfng Ph\u1ea7n Lan
+languages.ro=Ti\u1ebfng Ru-ma-ni
+languages.rm=Ti\u1ebfng Rhaeto-Romance
+languages.fa=Ti\u1ebfng Ba T\u01b0
+languages.und=und
+languages.la=Ti\u1ebfng La-tinh
+languages.xh=Ti\u1ebfng Bantu
+languages.en_GB=Ti\u1ebfng Anh (Anh)
+languages.eu=Ti\u1ebfng Basque
+languages.ky=Ti\u1ebfng Kyrgyz
+languages.et=Ti\u1ebfng E-xt\u00f4-ni-a
index f0485c2b120744ea65c4149de7d394a26a23b50a..7b62a31f571839382926af3a4a4aa2141f07d9c4 100644 (file)
@@ -5,9 +5,11 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+groupingSeparator=\u12c8
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
 currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
 currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
 currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
@@ -16,29 +18,34 @@ currenciesDisplayName.ETB=\u12e8\u12a2\u1275\u12ee\u1335\u12eb \u1265\u122d
 currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u1295\u12f5 \u1235\u1270\u122d\u120a\u1295\u130d
 currenciesSymbol.ETB=$
 currenciesSymbol.CNY=Y
-currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u1303\u1295\u12e9®\u134c\u1265\u1229®\u121b\u122d\u127d®\u12a4\u1355\u1228®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235®\u1234\u1355\u1274®\u12a6\u12ad\u1270®\u1296\u126c\u121d®\u12f2\u1234\u121d®®
-months=\u1303\u1295\u12e9\u12c8\u122a®\u134c\u1265\u1229\u12c8\u122a®\u121b\u122d\u127d®\u12a4\u1355\u1228\u120d®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235\u1275®\u1234\u1355\u1274\u121d\u1260\u122d®\u12a6\u12ad\u1270\u12cd\u1260\u122d®\u1296\u126c\u121d\u1260\u122d®\u12f2\u1234\u121d\u1260\u122d®®
-shortWeekdays=®\u12c8\u130b®\u1233\u12ed\u1296®\u121b\u1246\u1233®\u12a0\u1229\u12cb®\u1203\u1219\u1233®\u12a0\u122d\u1263®\u1244\u122b®
-weekdays=®\u12c8\u130b®\u1233\u12ed\u1296®\u121b\u1246\u1233\u129b®\u12a0\u1229\u12cb®\u1203\u1219\u1233®\u12a0\u122d\u1263®\u1244\u122b®
-firstDayOfWeek=sat
-eras=\u12a0\u12f3 \u12ce\u12f4®\u130d\u122e\u1270\u1273 \u120b\u12ed\u1273®
-ampms=\u121b\u1208\u12f6®\u1243\u121b®
+shortMonths=\u1303\u1295\u12e9\u00ae\u134c\u1265\u1229\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u00ae\u1234\u1355\u1274\u00ae\u12a6\u12ad\u1270\u00ae\u1296\u126c\u121d\u00ae\u12f2\u1234\u121d\u00ae\u00ae
+months=\u1303\u1295\u12e9\u12c8\u122a\u00ae\u134c\u1265\u1229\u12c8\u122a\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u120d\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u1275\u00ae\u1234\u1355\u1274\u121d\u1260\u122d\u00ae\u12a6\u12ad\u1270\u12cd\u1260\u122d\u00ae\u1296\u126c\u121d\u1260\u122d\u00ae\u12f2\u1234\u121d\u1260\u122d\u00ae\u00ae
+shortWeekdays=\u00ae\u12c8\u130b\u00ae\u1233\u12ed\u1296\u00ae\u121b\u1246\u1233\u00ae\u12a0\u1229\u12cb\u00ae\u1203\u1219\u1233\u00ae\u12a0\u122d\u1263\u00ae\u1244\u122b\u00ae
+weekdays=\u00ae\u12c8\u130b\u00ae\u1233\u12ed\u1296\u00ae\u121b\u1246\u1233\u129b\u00ae\u12a0\u1229\u12cb\u00ae\u1203\u1219\u1233\u00ae\u12a0\u122d\u1263\u00ae\u1244\u122b\u00ae
+eras=\u12a0\u12f3 \u12ce\u12f4\u00ae\u130d\u122e\u1270\u1273 \u120b\u12ed\u1273\u00ae
+ampms=\u121b\u1208\u12f6\u00ae\u1243\u121b\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1365 dd MMMM \u130b\u120b\u1233 yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
 territories.AU=\u12a0\u12cd\u1235\u1275\u122c\u120a\u12eb
 territories.TD=\u127b\u12f5
-territories.AT=\u12a6\u1235\u1275\u122a\u12eb
 territories.GY=\u1309\u12eb\u1293
-territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
+territories.AT=\u12a6\u1235\u1275\u122a\u12eb
 territories.GW=\u1262\u1233\u12ce
+territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
 territories.MY=\u121b\u120c\u12e2\u12eb
 territories.MX=\u121c\u12ad\u1232\u12ae
 territories.AN=\u1294\u12d8\u122d\u120b\u1295\u12f5\u1235 \u12a0\u1295\u1272\u120d\u1235
-territories.AM=\u12a0\u122d\u121c\u1292\u12eb
 territories.GR=\u130d\u122a\u12ad
+territories.AM=\u12a0\u122d\u121c\u1292\u12eb
 territories.ZA=\u12f0\u1261\u1265 \u12a0\u134d\u122a\u12ab
-territories.AL=\u12a0\u120d\u1263\u1292\u12eb
 territories.GQ=\u12a2\u12b3\u1276\u122a\u12eb\u120d \u130a\u1292
+territories.AL=\u12a0\u120d\u1263\u1292\u12eb
 territories.MU=\u121b\u1229\u1238\u1235
 territories.SY=\u1232\u122a\u12eb
 territories.MT=\u121b\u120d\u1273
@@ -84,13 +91,13 @@ territories.KM=\u12ae\u121e\u122e\u1235
 territories.EH=\u121d\u12d5\u122b\u1263\u12ca \u1233\u1205\u122b
 territories.EG=\u130d\u1265\u133d
 territories.EE=\u12a4\u1235\u1276\u1292\u12eb
-territories.EC=\u12a2\u12b3\u12f6\u122d
 territories.KH=\u12ab\u121d\u1266\u12f2\u12eb
+territories.EC=\u12a2\u12b3\u12f6\u122d
 territories.DZ=\u12a0\u120d\u1304\u122a\u12eb
 territories.DO=\u12f6\u121a\u1292\u12ad \u122a\u1351\u1265\u120a\u12ad
 territories.DM=\u12f6\u121a\u1292\u12ab
-territories.DK=\u12f4\u1295\u121b\u122d\u12ad
 territories.JP=\u1303\u1353\u1295
+territories.DK=\u12f4\u1295\u121b\u122d\u12ad
 territories.JO=\u1306\u122d\u12f3\u1295
 territories.PR=\u1356\u122d\u1273 \u122a\u12ae
 territories.JM=\u1303\u121b\u12ed\u12ab
@@ -106,13 +113,13 @@ territories.VG=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u12f5\u1295\u130d\u120d \u1
 territories.CV=\u12ac\u1355 \u126c\u122d\u12f4
 territories.VE=\u126c\u1295\u12d9\u12cc\u120b
 territories.CS=\u1230\u122d\u1262\u12eb
-territories.CO=\u12ae\u120e\u121d\u1262\u12eb
 territories.IT=\u1323\u120a\u12eb\u1295
-territories.CN=\u127b\u12ed\u1293
+territories.CO=\u12ae\u120e\u121d\u1262\u12eb
 territories.IS=\u12a0\u12ed\u1235\u120b\u1295\u12f5
+territories.CN=\u127b\u12ed\u1293
 territories.CM=\u12ab\u121c\u1229\u1295
-territories.CL=\u127a\u120a
 territories.IQ=\u12a2\u122b\u1245
+territories.CL=\u127a\u120a
 territories.UZ=\u12e9\u12dd\u1260\u12aa\u1235\u1273\u1295
 territories.IN=\u1205\u1295\u12f5
 territories.CH=\u1235\u12ca\u12d8\u122d\u120b\u1295\u12f5
@@ -129,10 +136,10 @@ territories.BT=\u1261\u1205\u1273\u1295
 territories.BR=\u1265\u122b\u12da\u120d
 territories.NZ=\u1292\u12cd \u12da\u120b\u1295\u12f5
 territories.HU=\u1200\u1295\u130b\u122a
-territories.BO=\u1266\u120a\u126a\u12eb
 territories.HT=\u1200\u12ed\u1272
-territories.BM=\u1264\u122d\u1219\u12f3
+territories.BO=\u1266\u120a\u126a\u12eb
 territories.HR=\u12ad\u122e\u12a4\u123d\u12eb
+territories.BM=\u1264\u122d\u1219\u12f3
 territories.TZ=\u1273\u1295\u12db\u1292\u12eb
 territories.BH=\u1263\u1205\u122c\u1295
 territories.BG=\u1261\u120d\u130c\u122a\u12eb
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_wo.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_wo.properties
new file mode 100644 (file)
index 0000000..bf7c375
--- /dev/null
@@ -0,0 +1,33 @@
+# LocaleInformation_wo.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.nl=Olaande
+languages.en=Angale
+languages.it=Itaaliee
+languages.fr=Fraa\u00f1se
+languages.de=Almaa
+languages.sv=Suweedwaa
+languages.es=Espa\u00f1ool
+languages.no=Norweejiee
+languages.ja=Jappone
+languages.fi=Finlaande
+languages.pt=Portugees
+languages.da=Danwaa
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_xh.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_xh.properties
new file mode 100644 (file)
index 0000000..f4a45d9
--- /dev/null
@@ -0,0 +1,131 @@
+# LocaleInformation_xh.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Jan\u00aeFeb\u00aeMat\u00aeEpr\u00aeMey\u00aeJun\u00aeJul\u00aeAga\u00aeSep\u00aeOkt\u00aeNov\u00aeDis\u00ae\u00ae
+months=Janyuwari\u00aeFebruwari\u00aeMatshi\u00aeEpreli\u00aeMeyi\u00aeJuni\u00aeJulayi\u00aeAgasti\u00aeSeptemba\u00aeOkthoba\u00aeNovemba\u00aeDisemba\u00ae\u00ae
+shortWeekdays=\u00aeCaw\u00aeMvu\u00aeBin\u00aeTha\u00aeSin\u00aeHla\u00aeMgq\u00ae
+weekdays=\u00aeCawe\u00aeMvulo\u00aeLwesibini\u00aeLwesithathu\u00aeLwesine\u00aeLwesihlanu\u00aeMgqibelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.es=Isi-Spanish
+languages.ku=Kurdish
+languages.eo=Isi-Esperanto
+languages.en=isiNgesi
+languages.el=Isi-Greek
+languages.ko=Isi-Korean
+languages.kn=Isi-Kannada
+languages.km=isiCambodia
+languages.ka=Isi-Georgia
+languages.jv=Isi-Javanese
+languages.fil=Isi-Taglog
+languages.pt=Isi-Portuguese
+languages.ps=Pashto
+languages.de=Isi-German
+languages.pl=Isi-Polish
+languages.da=Isi-Danish
+languages.tlh=Klingon
+languages.ja=Isi-Japanese
+languages.vi=Isi-Vietnamese
+languages.cy=Isi-Welsh
+languages.pa=Isi-Punjabi
+languages.cs=Isi-Czech
+languages.it=Isi-Italian
+languages.is=Isi-Icelandic
+languages.uz=Isi-Uzbek
+languages.or=Oriya
+languages.ur=Urdu
+languages.ca=Isi-Calatan
+languages.ie=isiInterlingue
+languages.id=Isi-Indonesian
+languages.uk=Isi-Ukranian
+languages.ia=Interlingua
+languages.oc=Iso-Occitan
+languages.ug=Isi Uighur
+languages.hy=isiArmenian
+languages.bs=Isi-Bosnia
+languages.br=Breton
+languages.hu=Isi-Hungarian
+languages.pt_PT=Isi-Portuguese (Portugal)
+languages.bn=Isi-Bengali
+languages.hr=Isi-Croatia
+languages.tw=Twi
+languages.bh=Isi-Bihari
+languages.bg=Isi-Bulgaria
+languages.no=Isi-Norwegian
+languages.be=Isi-Belarusian
+languages.nn=Isi-Norwegia (Nynorsk)
+languages.hi=Isi-Hindi
+languages.tr=Isi-Turkish
+languages.nl=Isi-Dutch
+languages.zu=isiZulu
+languages.he=Isi-Hebrew
+languages.tk=Turkmen
+languages.ne=Isi-Nepali
+languages.az=Isi-Azerbaijani
+languages.ti=Isi-Tigrinya
+languages.th=Isi-Thai
+languages.te=Isi-Telegu
+languages.as=isiAssamese
+languages.ar=Isi-Arabic
+languages.ta=Isi-Tamil
+languages.gu=Isi-Gujarati
+languages.am=Isi-Amharic
+languages.mt=Isi-Maltese
+languages.ms=Isi-Malay
+languages.gn=Guarani
+languages.sw=Isi-Swahili
+languages.mr=Isi-Marathi
+languages.sv=Isi-Swedish
+languages.gl=Isi-Galician
+languages.su=Isi-Sudanese
+languages.af=isiBhulu
+languages.st=Sesotho
+languages.mn=IsiMongolian
+languages.sr=Isi-Serbia
+languages.sq=Isi-Albania
+languages.ml=Isi-Malayalam
+languages.mk=Isi-Macedonian
+languages.so=IsiSomaliya
+languages.gd=Scots Gaelic
+languages.sl=Isi-Slovenian
+languages.sk=Isi-Slovak
+languages.ga=Isi-Irish
+languages.si=Isi-Sinhalese
+languages.sh=Serbo-Croatian
+languages.pt_BR=portokugusseee
+languages.yi=Yiddish
+languages.sd=isiSindhi
+languages.fy=Isi-Frisian
+languages.sa=iSanskrit
+languages.fr=Isi-French
+languages.lv=Isi-Latvian
+languages.lt=Isi-Lithuanian
+languages.fo=Isi-Faroese
+languages.ru=Isi-Russian
+languages.lo=IsiLoathian
+languages.ln=Iilwimi
+languages.fi=Isi-Finnish
+languages.ro=Isi-Romanian
+languages.fa=Isi-Persia
+languages.la=Isi-Latin
+languages.xh=isiXhosa
+languages.eu=Isi-Basque
+languages.ky=Kyrgyz
+languages.et=Isi-Estonian
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_yo.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_yo.properties
new file mode 100644 (file)
index 0000000..802756f
--- /dev/null
@@ -0,0 +1,130 @@
+# LocaleInformation_yo.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=Naira
+currenciesSymbol.NGN=\u20a6
+shortMonths=\u1e62\u1eb9\u0301r\u1eb9\u0301\u00ae\u00c8r\u00e8l\u00e8\u00ae\u1eb8r\u1eb9\u0300n\u00e0\u00ae\u00ccgb\u00e9\u00ae\u1eb8\u0300bibi\u00ae\u00d2k\u00fadu\u00aeAg\u1eb9m\u1ecd\u00ae\u00d2g\u00fan\u00aeOwewe\u00ae\u1ecc\u0300w\u00e0r\u00e0\u00aeB\u00e9l\u00fa\u00ae\u1ecc\u0300p\u1eb9\u0300\u00ae\u00ae
+months=O\u1e63\u00f9 \u1e62\u1eb9\u0301r\u1eb9\u0301\u00aeO\u1e63\u00f9 \u00c8r\u00e8l\u00e8\u00aeO\u1e63\u00f9 \u1eb8r\u1eb9\u0300n\u00e0\u00aeO\u1e63\u00f9 \u00ccgb\u00e9\u00aeO\u1e63\u00f9 \u1eb8\u0300bibi\u00aeO\u1e63\u00f9 \u00d2k\u00fadu\u00aeO\u1e63\u00f9 Ag\u1eb9m\u1ecd\u00aeO\u1e63\u00f9 \u00d2g\u00fan\u00aeO\u1e63\u00f9 Owewe\u00aeO\u1e63\u00f9 \u1ecc\u0300w\u00e0r\u00e0\u00aeO\u1e63\u00f9 B\u00e9l\u00fa\u00aeO\u1e63\u00f9 \u1ecc\u0300p\u1eb9\u0300\u00ae\u00ae
+shortWeekdays=\u00ae\u00c0\u00eck\u00fa\u00aeAj\u00e9\u00ae\u00ccs\u1eb9\u0301gun\u00ae\u1eccj\u1ecd\u0301r\u00fa\u00ae\u00c0\u1e63\u1eb9\u0300\u1e63\u1eb9\u0300d\u00e1iy\u00e9\u00ae\u1eb8t\u00ec\u00ae\u00c0b\u00e1m\u1eb9\u0301ta\u00ae
+weekdays=\u00ae\u1eccj\u1ecd\u0301 \u00c0\u00eck\u00fa\u00ae\u1eccj\u1ecd\u0301 Aj\u00e9\u00ae\u1eccj\u1ecd\u0301 \u00ccs\u1eb9\u0301gun\u00ae\u1eccj\u1ecd\u0301r\u00fa\u00ae\u1eccj\u1ecd\u0301 \u00c0\u1e63\u1eb9\u0300\u1e63\u1eb9\u0300d\u00e1iy\u00e9\u00ae\u1eccj\u1ecd\u0301 \u1eb8t\u00ec\u00ae\u1eccj\u1ecd\u0301 \u00c0b\u00e1m\u1eb9\u0301ta\u00ae
+eras=SK\u00aeLK\u00ae
+ampms=\u00e0\u00e1r\u1ecd\u0300\u00ae\u1ecd\u0300s\u00e1n\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=Tonga
+territories.BW=BW
+territories.NG=NG
+languages.es=Panyan
+languages.ku=Kurdish
+languages.eo=Ede Esperanto
+languages.en=\u00c8d\u00e8 G\u1eb9\u0300\u1eb9\u0301s\u00ec
+languages.el=giriki
+languages.ko=Korean
+languages.kn=Ede Kannada
+languages.km=Cambodian
+languages.ka=Ede Georgia
+languages.jv=Ede Javana
+languages.fil=Ede Tagalogi
+languages.pt=Ede Portugi
+languages.ps=Pashto
+languages.de=\u00c8d\u00e8 Il\u1eb9\u0300 Germany
+languages.pl=\u00c8d\u00e8 Il\u1eb9\u0300 Polandi
+languages.da=\u00c8d\u00e8 Il\u1eb9\u0300 Denmark
+languages.tlh=Ede Klingoni
+languages.ja=Japanisi
+languages.vi=Ede Vietnamu
+languages.cy=Ede Welshi
+languages.pa=Ede Punjabi
+languages.cs=Orile-ede Tseki
+languages.it=Italiani
+languages.is=Ede Icelandic
+languages.uz=Ede Uzbek
+languages.or=Oriya
+languages.ur=Ede Urdu
+languages.ca=Ede Catala
+languages.ie=Iru Ede
+languages.id=Ede Indonesia
+languages.uk=Ede Ukrani
+languages.ia=Ede pipo
+languages.oc=Ede Occitani
+languages.ug=Uighur
+languages.hy=Ile Armenia
+languages.bs=Ede Bosnia
+languages.br=Bretoni
+languages.hu=Ede Hungaria
+languages.pt_PT=Ede Portugal
+languages.bn=Ede Bengali
+languages.hr=Ede Kroatia
+languages.tw=Twi
+languages.bh=Ede Bihari
+languages.bg=Ede Bulgaria
+languages.no=Ede Norway
+languages.be=Ede Belarusi
+languages.hi=Ede Hindi
+languages.tr=Ede Turkey
+languages.nl=Ede Dutch
+languages.zu=Ede Zulu
+languages.he=Heberu
+languages.tk=Turkmen
+languages.ne=Ede Nepali
+languages.az=Ede Azerbaijani
+languages.ti=Ede Tigrinya
+languages.th=Ede Thai
+languages.te=Ede Telugu
+languages.as=Ti Assam
+languages.ar=Ede Arabia
+languages.ta=Ede Tamili
+languages.gu=Ede Gujarati
+languages.am=Ede Amharic
+languages.mt=Ede Malta
+languages.ms=Ede Malaya
+languages.gn=Guarani
+languages.sw=Ede Swahili
+languages.mr=Ede marathi
+languages.sv=suwidiisi
+languages.gl=Ede Galicia
+languages.su=Ede Sudani
+languages.af=Ede Afrikani
+languages.st=Sesoto
+languages.mn=ara Mangoli
+languages.sr=Ede Serbia
+languages.sq=Ede Albania
+languages.ml=Ede Malayalami
+languages.mk=Ede Macedonia
+languages.so=ara Somalia
+languages.gd=Ede Gaelik ti Ilu Scotland
+languages.sl=Ede Slovenia
+languages.sk=Ede Slovaki
+languages.ga=Ede Ireland
+languages.yo=Yor\u00f9b\u00e1
+languages.si=Ede Sinhalese
+languages.sh=Serbo-Croatiani
+languages.yi=Yiddishi
+languages.sd=Sindhi
+languages.fy=Ede Frisia
+languages.sa=ede awon ara Indo
+languages.fr=\u00c8d\u00e8 Farans\u00e9
+languages.lv=Ede Latvianu
+languages.lt=Ede Lithuania
+languages.fo=Ede Faroesi
+languages.ru=Ede Roosia
+languages.lo=ara Laos
+languages.ln=Ta
+languages.fi=Finisi
+languages.ro=Ede Romania
+languages.fa=Ede Persia
+languages.la=Ede Latini
+languages.xh=Ede Xhosa
+languages.eu=Ede Baski
+languages.ky=Kyrgyz
+languages.et=Ede Estonia
index 1924cee31b6578c0fdf2daf0cdcb9001f2f5c7b0..c761a602e31dd087699fc29f8fb43772c1c81b86 100644 (file)
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.YDD=\u4e5f\u95e8\u7b2c\u7eb3\u5c14\u5143
-currenciesDisplayName.TWD=\u65b0\u53f0\u5e01
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u4e5f\u95e8\u7b2c\u7eb3\u5c14
 currenciesDisplayName.KES=\u80af\u5c3c\u4e9a\u5148\u4ee4
-currenciesDisplayName.BYB=\u767d\u4fc4\u7f57\u65af\u65b0\u5362\u5e03 (1994-1999)
+currenciesDisplayName.TWD=\u65b0\u53f0\u5e01\u5143
 currenciesDisplayName.LKR=\u65af\u91cc\u5170\u5361\u5362\u6bd4
-currenciesDisplayName.RWF=\u5362\u65fa\u8fbe\u6cd5\u90ce
+currenciesDisplayName.BYB=\u767d\u4fc4\u7f57\u65af\u65b0\u5362\u5e03 (1994-1999)
 currenciesDisplayName.TJS=\u5854\u5409\u514b\u65af\u5766\u7d22\u83ab\u5c3c
-currenciesDisplayName.SDP=\u82cf\u4e39\u78c5
+currenciesDisplayName.RWF=\u5362\u65fa\u8fbe\u6cd5\u90ce
+currenciesDisplayName.ERN=\u5384\u7acb\u7279\u91cc\u4e9a\u7eb3\u514b\u6cd5
 currenciesDisplayName.TJR=\u5854\u5409\u514b\u65af\u5766\u5362\u5e03
-currenciesDisplayName.ERN=\u5384\u7acb\u7279\u91cc\u4e9a\u7eb3\u798f\u5361
-currenciesDisplayName.AFN=\u963f\u5bcc\u6c57\u5c3c
+currenciesDisplayName.SDP=SDP
 currenciesDisplayName.GRD=\u5e0c\u814a\u5fb7\u62c9\u514b\u9a6c
-currenciesDisplayName.IEP=\u7231\u5c14\u5170\u78c5
+currenciesDisplayName.AFN=\u963f\u5bcc\u6c57\u5c3c
+currenciesDisplayName.IEP=\u7231\u5c14\u5170\u9551
 currenciesDisplayName.ARS=\u963f\u6839\u5ef7\u6bd4\u7d22
-currenciesDisplayName.SDD=\u82cf\u4e39\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.SDG=\u82cf\u4e39\u9551
 currenciesDisplayName.ARP=\u963f\u6839\u5ef7\u6bd4\u7d22 (1983-1985)
-currenciesDisplayName.GEL=\u4e54\u6cbb\u4e9a\u5e93\u84ec\u62c9\u745e
-currenciesDisplayName.AFA=\u963f\u5bcc\u6c57\u5c3c (1927-2002)
+currenciesDisplayName.SDD=\u82cf\u4e39\u7b2c\u7eb3\u5c14
+currenciesDisplayName.GEL=\u4e54\u6cbb\u4e9a\u62c9\u745e
 currenciesDisplayName.GEK=\u4e54\u6cbb\u4e9a\u5e93\u84ec\u62c9\u745e\u7279
-currenciesDisplayName.CRC=\u54e5\u65af\u8fbe\u9ece\u52a0\u79d1\u9686
-currenciesDisplayName.FKP=\u798f\u514b\u5170\u7fa4\u5c9b\u78c5
+currenciesDisplayName.AFA=\u963f\u5bcc\u6c57\u5c3c (1927-2002)
+currenciesDisplayName.CRC=\u54e5\u65af\u8fbe\u9ece\u52a0\u79d1\u6717
+currenciesDisplayName.FKP=\u798f\u514b\u5170\u9551
 currenciesDisplayName.EEK=\u7231\u6c99\u5c3c\u4e9a\u514b\u6717
+currenciesDisplayName.MDL=\u6469\u5c14\u591a\u74e6\u5217\u4f0a
 currenciesDisplayName.HKD=\u6e2f\u5143
-currenciesDisplayName.MDL=\u5357\u7279\u5e02\u5217\u4f0a
+currenciesDisplayName.IQD=\u4f0a\u62c9\u514b\u7b2c\u7eb3\u5c14
 currenciesDisplayName.ARA=\u963f\u6839\u5ef7\u5965\u65af\u7279
-currenciesDisplayName.IQD=\u4f0a\u62c9\u514b\u7b2c\u7eb3\u5c14\u5143
 currenciesDisplayName.SCR=\u585e\u820c\u5c14\u5362\u6bd4
-currenciesDisplayName.VUV=\u74e6\u52aa\u963f\u56fe
+currenciesDisplayName.VUV=\u74e6\u52aa\u963f\u56fe\u74e6\u56fe
+currenciesDisplayName.KPW=\u671d\u9c9c\u5706
 currenciesDisplayName.DKK=\u4e39\u9ea6\u514b\u6717
-currenciesDisplayName.KPW=\u5317\u671d\u9c9c\u5e01
-currenciesDisplayName.GQE=\u8d64\u9053\u51e0\u5185\u4e9a\u7231\u514b\u5a01\u4e50
 currenciesDisplayName.IDR=\u5370\u5ea6\u5c3c\u897f\u4e9a\u76fe
-currenciesDisplayName.LVR=\u62c9\u8131\u7ef4\u4e9a\u5362\u5e03
+currenciesDisplayName.GQE=\u8d64\u9053\u51e0\u5185\u4e9a\u57c3\u594e\u52d2
 currenciesDisplayName.SOS=\u7d22\u9a6c\u91cc\u5148\u4ee4
+currenciesDisplayName.LVR=\u62c9\u8131\u7ef4\u4e9a\u5362\u5e03
+currenciesDisplayName.EQE=\u57c3\u594e\u52d2
 currenciesDisplayName.AED=\u963f\u8054\u914b\u8fea\u62c9\u59c6
-currenciesDisplayName.BWP=\u6ce2\u6e23\u90a3\u6251\u62c9
 currenciesDisplayName.LVL=\u62c9\u8131\u7ef4\u4e9a\u62c9\u7279
+currenciesDisplayName.BWP=\u535a\u8328\u74e6\u7eb3\u666e\u62c9
 currenciesDisplayName.RUR=\u4fc4\u56fd\u5362\u5e03 (1991-1998)
-currenciesDisplayName.NIO=\u5c3c\u52a0\u62c9\u74dc\u91d1\u54e5\u591a\u534e
-currenciesDisplayName.ADP=\u5b89\u9053\u5c14\u6bd4\u585e\u5854\u5143
-currenciesDisplayName.FJD=\u6590\u6d4e\u5143
+currenciesDisplayName.NIO=\u5c3c\u52a0\u62c9\u74dc\u91d1\u79d1\u591a\u5df4
+currenciesDisplayName.XTS=\u4e3a\u6d4b\u8bd5\u4fdd\u7559\u7684\u4ee3\u7801
 currenciesDisplayName.MOP=\u6fb3\u95e8\u5143
+currenciesDisplayName.FJD=\u6590\u6d4e\u5143
+currenciesDisplayName.ADP=\u5b89\u9053\u5c14\u6bd4\u585e\u5854
 currenciesDisplayName.RUB=\u4fc4\u56fd\u5362\u5e03
 currenciesDisplayName.CDF=\u521a\u679c\u6cd5\u90ce
 currenciesDisplayName.NIC=\u5c3c\u52a0\u62c9\u74dc\u79d1\u591a\u5df4
 currenciesDisplayName.DJF=\u5409\u5e03\u63d0\u6cd5\u90ce
+currenciesDisplayName.UZS=\u4e4c\u5179\u522b\u514b\u65af\u82cf\u59c6
 currenciesDisplayName.SBD=\u6240\u7f57\u95e8\u7fa4\u5c9b\u5143
-currenciesDisplayName.UZS=\u4e4c\u5179\u522b\u514b\u65af\u5766\u5e01
+currenciesDisplayName.ECV=\u5384\u74dc\u591a\u5c14 Unidad de Valor Constante (UVC)
+currenciesDisplayName.LUL=\u5362\u68ee\u5821\u91d1\u878d\u6cd5\u90ce
 currenciesDisplayName.ECS=\u5384\u74dc\u591a\u5c14\u82cf\u514b\u96f7
-currenciesDisplayName.PHP=\u83f2\u5f8b\u5bbe\u6bd4\u7d22
 currenciesDisplayName.THB=\u6cf0\u94e2
+currenciesDisplayName.PHP=\u83f2\u5f8b\u5bbe\u6bd4\u7d22
 currenciesDisplayName.LUF=\u5362\u68ee\u5821\u6cd5\u90ce
-currenciesDisplayName.FIM=\u82ac\u5170\u739b\u5361
+currenciesDisplayName.RHD=\u7f57\u5f97\u897f\u4e9a\u5143
+currenciesDisplayName.LUC=\u5362\u68ee\u5821\u53ef\u5151\u6362\u6cd5\u90ce
+currenciesDisplayName.FIM=\u82ac\u5170\u9a6c\u514b
 currenciesDisplayName.TTD=\u7279\u7acb\u5c3c\u8fbe\u548c\u591a\u5df4\u54e5\u5143
-currenciesDisplayName.SZL=\u65af\u5a01\u58eb\u5170\u5e01
+currenciesDisplayName.SZL=\u65af\u5a01\u58eb\u5170\u91cc\u5170\u5409\u5c3c
 currenciesDisplayName.MNT=\u8499\u53e4\u56fe\u683c\u91cc\u514b
-currenciesDisplayName.SAR=\u6c99\u7279\u91cc\u4e9a\u5c14
 currenciesDisplayName.UAK=\u4e4c\u514b\u5170\u5e01
-currenciesDisplayName.UAH=\u4e4c\u514b\u5170\u8d6b\u91cc\u7eb3
-currenciesDisplayName.HUF=\u5308\u7259\u5229\u7f36\u745e\u7279
-currenciesDisplayName.COP=\u54e5\u4f26\u6bd4\u4e9a\u6bd4\u7d22
+currenciesDisplayName.SAR=\u6c99\u7279\u91cc\u4e9a\u5c14
+currenciesDisplayName.UAH=\u4e4c\u514b\u5170\u683c\u91cc\u592b\u5c3c\u4e9a
+currenciesDisplayName.HUF=\u5308\u7259\u5229\u798f\u6797
 currenciesDisplayName.QAR=\u5361\u5854\u5c14\u91cc\u4e9a\u5c14
+currenciesDisplayName.COP=\u54e5\u4f26\u6bd4\u4e9a\u6bd4\u7d22
 currenciesDisplayName.LTT=\u7acb\u9676\u5b9b\u5854\u54af\u5450\u53f8
-currenciesDisplayName.PTE=\u8461\u8404\u7259\u94c3\u6728
-currenciesDisplayName.AOR=\u5b89\u6208\u62c9\u5bbd\u624e Reajustado (1995-1999)
+currenciesDisplayName.PTE=\u8461\u8404\u7259\u57c3\u65af\u5e93\u591a
 currenciesDisplayName.UYU=\u4e4c\u62c9\u572d\u6bd4\u7d22
-currenciesDisplayName.GBP=\u82f1\u78c5
-currenciesDisplayName.BIF=\u5e03\u9686\u8fea\u6cd5\u90ce
+currenciesDisplayName.AOR=\u5b89\u54e5\u62c9\u5bbd\u624e Reajustado (1995-1999)
+currenciesDisplayName.GBP=\u82f1\u9551
+currenciesDisplayName.ZRZ=\u624e\u4f0a\u5c14
 currenciesDisplayName.INR=\u5370\u5ea6\u5362\u6bd4
-currenciesDisplayName.ZRZ=\u624e\u4f0a\u5c14\u5143
-currenciesDisplayName.AON=\u5b89\u6208\u62c9\u65b0\u5bbd\u624e (1990-2000)
-currenciesDisplayName.LTL=\u7acb\u9676\u5b9b\u5229\u5854
-currenciesDisplayName.KZT=\u54c8\u8428\u514b\u817e\u989d
-currenciesDisplayName.MZM=\u83ab\u6851\u6bd4\u514b\u5e01
-currenciesDisplayName.UYP=\u4e4c\u62c9\u572d\u6bd4\u7d22 (1975-1993)
-currenciesDisplayName.AOK=\u5b89\u6208\u62c9\u5bbd\u624e (1977-1990)
+currenciesDisplayName.BIF=\u5e03\u9686\u8fea\u6cd5\u90ce
+currenciesDisplayName.XFU=\u6cd5\u56fd UIC \u6cd5\u90ce
+currenciesDisplayName.MZN=\u83ab\u6851\u6bd4\u514b\u7f8e\u63d0\u5361
+currenciesDisplayName.LTL=\u7acb\u9676\u5b9b\u7acb\u7279
+currenciesDisplayName.AON=\u5b89\u54e5\u62c9\u65b0\u5bbd\u624e (1990-2000)
+currenciesDisplayName.UYP=\u4e4c\u62c9\u572d\u65b0\u6bd4\u7d22 (1975-1993)
+currenciesDisplayName.MZM=\u83ab\u6851\u6bd4\u514b\u6885\u8482\u5361\u5c14
+currenciesDisplayName.KZT=\u54c8\u8428\u514b\u65af\u5766\u575a\u6208
+currenciesDisplayName.AOK=\u5b89\u54e5\u62c9\u5bbd\u624e (1977-1990)
+currenciesDisplayName.GNS=\u51e0\u5185\u4e9a\u897f\u91cc
 currenciesDisplayName.BUK=\u7f05\u5143
-currenciesDisplayName.GNS=\u51e0\u5185\u4e9aSyli
 currenciesDisplayName.XFO=\u6cd5\u56fd\u91d1\u6cd5\u90ce
 currenciesDisplayName.PGK=\u5df4\u5e03\u4e9a\u65b0\u51e0\u5185\u4e9a\u57fa\u90a3
-currenciesDisplayName.SYP=\u53d9\u5229\u4e9a\u78c5
+currenciesDisplayName.SYP=\u53d9\u5229\u4e9a\u9551
+currenciesDisplayName.OMR=\u963f\u66fc\u91cc\u4e9a\u5c14
 currenciesDisplayName.MZE=\u83ab\u6851\u6bd4\u514b\u57c3\u65af\u5e93\u591a
-currenciesDisplayName.OMR=\u963f\u66fc\u91cc\u5c14
-currenciesDisplayName.NGN=\u5c3c\u65e5\u5229\u4e9a\u5948\u62c9.
-currenciesDisplayName.ZRN=\u65b0\u624e\u4f0a\u5c14\u5143
-currenciesDisplayName.AOA=\u5b89\u6208\u62c9\u5bbd\u624e
+currenciesDisplayName.ZRN=\u65b0\u624e\u4f0a\u5c14
+currenciesDisplayName.NGN=\u5c3c\u65e5\u5229\u4e9a\u5948\u62c9
 currenciesDisplayName.CNY=\u4eba\u6c11\u5e01
+currenciesDisplayName.AOA=\u5b89\u54e5\u62c9\u5bbd\u624e
 currenciesDisplayName.MAF=\u6469\u6d1b\u54e5\u6cd5\u90ce
+currenciesDisplayName.RSD=\u585e\u5c14\u7ef4\u4e9a\u7b2c\u7eb3\u5c14
 currenciesDisplayName.GNF=\u51e0\u5185\u4e9a\u6cd5\u90ce
-currenciesDisplayName.HTG=\u6d77\u5730\u53e4\u5fb7
 currenciesDisplayName.MAD=\u6469\u6d1b\u54e5\u8fea\u62c9\u59c6
+currenciesDisplayName.HTG=\u6d77\u5730\u53e4\u5fb7
 currenciesDisplayName.TRY=\u65b0\u571f\u8033\u5176\u91cc\u62c9
 currenciesDisplayName.MMK=\u7f05\u7538\u5f00\u4e9a\u7279
-currenciesDisplayName.MYR=\u9a6c\u6765\u897f\u4e9a\u5e01
-currenciesDisplayName.LSL=\u83b1\u7d22\u6258
+currenciesDisplayName.XRE=RINET \u57fa\u91d1
+currenciesDisplayName.MYR=\u9a6c\u6765\u897f\u4e9a\u6797\u5409\u7279
+currenciesDisplayName.LSM=\u9a6c\u6d1b\u8482
 currenciesDisplayName.XEU=\u6b27\u6d32\u8d27\u5e01\u5355\u4f4d
-currenciesDisplayName.BHD=\u5df4\u6797\u7b2c\u7eb3\u5c14\u5143
-currenciesDisplayName.SLL=\u8d5b\u62c9\u91cc\u6602\u5e01
+currenciesDisplayName.LSL=\u83b1\u7d22\u6258\u6d1b\u8482
+currenciesDisplayName.SLL=\u585e\u62c9\u5229\u6602\u5229\u6602
+currenciesDisplayName.BHD=\u5df4\u6797\u7b2c\u7eb3\u5c14
 currenciesDisplayName.BTN=\u4e0d\u4e39\u52aa\u624e\u59c6
 currenciesDisplayName.TRL=\u571f\u8033\u5176\u91cc\u62c9
 currenciesDisplayName.KMF=\u79d1\u6469\u7f57\u6cd5\u90ce
-currenciesDisplayName.ANG=\u8377\u5170\u5b89\u66ff\u5170\u76fe
 currenciesDisplayName.CZK=\u6377\u514b\u514b\u90ce
-currenciesDisplayName.KYD=\u5f00\u66fc\u5c9b\u5143
+currenciesDisplayName.ANG=\u8377\u5170\u5b89\u66ff\u5170\u76fe
+currenciesDisplayName.AZN=\u963f\u585e\u62dc\u7586\u9a6c\u7eb3\u7279
+currenciesDisplayName.AZM=\u963f\u585e\u62dc\u7586\u9a6c\u7eb3\u7279 (1993-2006)
+currenciesDisplayName.KYD=\u5f00\u66fc\u5143
 currenciesDisplayName.GMD=\u5188\u6bd4\u4e9a\u8fbe\u62c9\u897f
-currenciesDisplayName.BGN=\u4fdd\u52a0\u5229\u4e9a\u65b0\u5217\u514b
+currenciesDisplayName.VEF=Venezuelan Bolivar Fuerte
+currenciesDisplayName.BGN=\u4fdd\u52a0\u5229\u4e9a\u65b0\u5217\u5f17
+currenciesDisplayName.MXV=\u58a8\u897f\u54e5 Unidad de Inversion (UDI)\uff08\u8d44\u91d1\uff09
 currenciesDisplayName.CAD=\u52a0\u62ff\u5927\u5143
-currenciesDisplayName.BGL=\u4fdd\u52a0\u5229\u4e9a\u786c\u5217\u514b
-currenciesDisplayName.VEB=\u5185\u745e\u62c9\u535a\u5229\u74e6
+currenciesDisplayName.BGL=\u4fdd\u52a0\u5229\u4e9a\u786c\u5217\u5f17
+currenciesDisplayName.VEB=\u59d4\u5185\u745e\u62c9\u535a\u5229\u74e6
 currenciesDisplayName.MLF=\u9a6c\u91cc\u6cd5\u90ce
-currenciesDisplayName.ILS=\u4ee5\u8272\u5217\u65b0\u8c22\u5ba2\u5c14
 currenciesDisplayName.MXP=\u58a8\u897f\u54e5\u94f6\u6bd4\u7d22 (1861-1992)
-currenciesDisplayName.PES=\u79d8\u9c81\u7d22\u989d
-currenciesDisplayName.GYD=\u572d\u4e9a\u90a3\u5143
+currenciesDisplayName.ILS=\u4ee5\u8272\u5217\u65b0\u8c22\u514b\u5c14
+currenciesDisplayName.PES=\u79d8\u9c81\u7d22\u5c14
 currenciesDisplayName.MXN=\u58a8\u897f\u54e5\u6bd4\u7d22
-currenciesDisplayName.ILP=\u4ee5\u8272\u5217\u78c5
-currenciesDisplayName.SKK=\u65af\u6d1b\u4f10\u514b\u79d1\u8def\u90a3
-currenciesDisplayName.CYP=\u585e\u6d66\u8def\u65af\u78c5
+currenciesDisplayName.GYD=\u572d\u4e9a\u90a3\u5143
+currenciesDisplayName.ILP=\u4ee5\u8272\u5217\u9551
+currenciesDisplayName.CYP=\u585e\u6d66\u8def\u65af\u9551
+currenciesDisplayName.SKK=\u65af\u6d1b\u4f10\u514b\u514b\u6717
 currenciesDisplayName.XDR=\u7279\u522b\u63d0\u6b3e\u6743
-currenciesDisplayName.PEN=\u79d8\u9c81\u7d22\u989d\u5974\u827e\u631d
+currenciesDisplayName.PEN=\u79d8\u9c81\u65b0\u7d22\u5c14
 currenciesDisplayName.LRD=\u5229\u6bd4\u4e9a\u5143
-currenciesDisplayName.PEI=\u79d8\u9c81\u56e0\u8482
+currenciesDisplayName.PEI=\u79d8\u9c81\u5370\u7b2c
 currenciesDisplayName.AMD=\u4e9a\u7f8e\u5c3c\u4e9a\u5fb7\u62c9\u59c6
 currenciesDisplayName.BSD=\u5df4\u54c8\u9a6c\u5143
-currenciesDisplayName.HRK=\u514b\u7f57\u5730\u4e9a\u5e93\u5a1c\u5143
-currenciesDisplayName.CLP=\u667a\u5229 \u6bd4\u7d22
-currenciesDisplayName.HRD=\u514b\u7f57\u5730\u4e9a\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.XPT=\u94c2
+currenciesDisplayName.HRK=\u514b\u7f57\u5730\u4e9a\u5e93\u7eb3
+currenciesDisplayName.CLP=\u667a\u5229\u6bd4\u7d22
+currenciesDisplayName.HRD=\u514b\u7f57\u5730\u4e9a\u7b2c\u7eb3\u5c14
+currenciesDisplayName.XPF=\u592a\u5e73\u6d0b\u6cd5\u90ce
 currenciesDisplayName.FRF=\u6cd5\u56fd\u6cd5\u90ce
+currenciesDisplayName.XPD=\u94af
 currenciesDisplayName.BRR=\u5df4\u897f\u514b\u9c81\u585e\u7f57
-currenciesDisplayName.MKD=\u9a6c\u5176\u987f\u6234\u7eb3
-currenciesDisplayName.CLF=\u667a\u5229 Unidades de Fomento
+currenciesDisplayName.MKD=\u9a6c\u5176\u987f\u6234\u4ee3\u7eb3\u5c14
+currenciesDisplayName.CLF=\u667a\u5229 Unidades de Fomento\uff08\u8d44\u91d1\uff09
 currenciesDisplayName.ALL=\u963f\u5c14\u5df4\u5c3c\u4e9a\u5217\u514b
-currenciesDisplayName.BRN=\u5df4\u897f\u514b\u9c81\u585e\u7f57 Cruzado Novo
-currenciesDisplayName.MWK=\u9a6c\u62c9\u7ef4\u5938\u6070
-currenciesDisplayName.BRL=\u5df4\u897f\u91cc\u5c14
+currenciesDisplayName.BRN=\u5df4\u897f\u514b\u9c81\u624e\u591a Novo
+currenciesDisplayName.MWK=\u9a6c\u62c9\u7ef4\u514b\u74e6\u67e5
+currenciesDisplayName.BRL=\u5df4\u897f\u96f7\u4e9a\u5c14
 currenciesDisplayName.TPE=\u5e1d\u6c76\u57c3\u65af\u5e93\u591a
 currenciesDisplayName.BRE=\u5df4\u897f\u514b\u9c81\u585e\u7f57 (1990-1993)
-currenciesDisplayName.BRC=\u5df4\u897f\u514b\u9c81\u585e\u7f57
-currenciesDisplayName.BRB=\u5df4\u897f\u514b\u9c81\u8d5b\u7f57 (1967-1986)
+currenciesDisplayName.BRC=\u5df4\u897f\u514b\u9c81\u624e\u591a
+currenciesDisplayName.BRB=\u5df4\u897f\u514b\u9c81\u8d5b\u7f57 Novo (1967-1986)
 currenciesDisplayName.DEM=\u5fb7\u56fd\u9a6c\u514b
-currenciesDisplayName.KWD=\u79d1\u5a01\u7279\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.KWD=\u79d1\u5a01\u7279\u7b2c\u7eb3\u5c14
 currenciesDisplayName.XCD=\u4e1c\u52a0\u52d2\u6bd4\u5143
 currenciesDisplayName.NPR=\u5c3c\u6cca\u5c14\u5362\u6bd4
-currenciesDisplayName.GWP=\u51e0\u5185\u4e9a\u6bd4\u7d22
-currenciesDisplayName.YUN=\u5357\u65af\u62c9\u592b\u5151\u6362\u7b2c\u7eb3\u5c14\u5143
-currenciesDisplayName.SVC=\u8428\u5c14\u74e6\u591a\u79d1\u6d1b\u6d85
-currenciesDisplayName.YUM=\u5357\u65af\u62c9\u592b\u504c\u5a01\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.GWP=\u51e0\u5185\u4e9a\u6bd4\u7ecd\u6bd4\u7d22
+currenciesDisplayName.YUN=\u5357\u65af\u62c9\u592b\u53ef\u5151\u6362\u7b2c\u7eb3\u5c14
+currenciesDisplayName.SVC=\u8428\u5c14\u74e6\u591a\u79d1\u6717
+currenciesDisplayName.YUM=\u5357\u65af\u62c9\u592b\u504c\u5a01\u7b2c\u7eb3\u5c14
 currenciesDisplayName.BEL=\u6bd4\u5229\u65f6\u6cd5\u90ce\uff08\u91d1\u878d\uff09
-currenciesDisplayName.SIT=\u65af\u6d1b\u6587\u5c3c\u4e9a\u6dd8\u62c9
+currenciesDisplayName.SIT=\u65af\u6d1b\u6587\u5c3c\u4e9a\u6258\u62c9\u5c14
 currenciesDisplayName.JPY=\u65e5\u5143
-currenciesDisplayName.MVR=\u9a6c\u5c14\u4ee3\u592b\u7fa4\u5c9b\u82a6\u83f2\u4e9a
-currenciesDisplayName.GWE=\u8461\u8404\u7259\u51e0\u5185\u4e9a\u57c3\u65af\u5e93\u591a
+currenciesDisplayName.XOF=\u975e\u6d32\u91d1\u878d\u5171\u540c\u4f53\u6cd5\u90ce
+currenciesDisplayName.MVR=\u9a6c\u5c14\u4ee3\u592b\u62c9\u83f2\u4e9a
 currenciesDisplayName.BEF=\u6bd4\u5229\u65f6\u6cd5\u90ce
-currenciesDisplayName.TOP=\u6c64\u52a0\u5e01
-currenciesDisplayName.YUD=\u5357\u65af\u62c9\u592b\u786c\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.GWE=\u8461\u8404\u7259\u51e0\u5185\u4e9a\u57c3\u65af\u5e93\u591a
+currenciesDisplayName.TOP=\u6c64\u52a0\u6f58\u52a0
+currenciesDisplayName.YUD=\u5357\u65af\u62c9\u592b\u786c\u7b2c\u7eb3\u5c14
 currenciesDisplayName.BEC=\u6bd4\u5229\u65f6\u6cd5\u90ce\u5151\u6362\u5238
 currenciesDisplayName.SUR=\u82cf\u8054\u5362\u5e03
-currenciesDisplayName.ROL=\u7f57\u9a6c\u5c3c\u4e9a\u956d
+currenciesDisplayName.RON=\u7f57\u9a6c\u5c3c\u4e9a\u5217\u4f0a
+currenciesDisplayName.ROL=\u65e7\u7f57\u9a6c\u5c3c\u4e9a\u5217\u4f0a
+currenciesDisplayName.BDT=\u5b5f\u52a0\u62c9\u5854\u5361
 currenciesDisplayName.DDM=\u4e1c\u5fb7\u5965\u65af\u7279\u9a6c\u514b
-currenciesDisplayName.BDT=\u5b5f\u52a0\u62c9\u8fbe\u5361
+currenciesDisplayName.XBD=\u6b27\u6d32\u8ba1\u7b97\u5355\u4f4d (XBD)
 currenciesDisplayName.AWG=\u963f\u9c81\u5df4\u57fa\u5c14\u5fb7\u5143
-currenciesDisplayName.XBB=\u6b27\u6d32\u91d1\u878d\u5355\u4f4d
+currenciesDisplayName.XBC=\u6b27\u6d32\u8ba1\u7b97\u5355\u4f4d (XBC)
+currenciesDisplayName.XBB=\u6b27\u6d32\u8d27\u5e01\u8054\u76df
 currenciesDisplayName.XBA=\u6b27\u6d32\u590d\u5408\u5355\u4f4d
 currenciesDisplayName.NOK=\u632a\u5a01\u514b\u6717
 currenciesDisplayName.MUR=\u6bdb\u91cc\u6c42\u65af\u5362\u6bd4
 currenciesDisplayName.ZAR=\u5357\u975e\u5170\u7279
-currenciesDisplayName.SHP=\u5723\u8d6b\u52d2\u62ff\u78c5
+currenciesDisplayName.SHP=\u5723\u8d6b\u52d2\u62ff\u7fa4\u5c9b\u78c5
 currenciesDisplayName.XAU=\u9ec4\u91d1
 currenciesDisplayName.ZAL=\u5357\u975e\u5170\u7279 (\u91d1\u878d)
 currenciesDisplayName.VND=\u8d8a\u5357\u76fe
 currenciesDisplayName.TZS=\u5766\u6851\u5c3c\u4e9a\u5148\u4ee4
-currenciesDisplayName.GIP=\u76f4\u5e03\u7f57\u9640\u78c5
-currenciesDisplayName.TND=\u7a81\u5c3c\u65af\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.GIP=\u76f4\u5e03\u7f57\u9640\u9551
+currenciesDisplayName.TND=\u7a81\u5c3c\u65af\u7b2c\u7eb3\u5c14
 currenciesDisplayName.CVE=\u4f5b\u5f97\u89d2\u57c3\u65af\u5e93\u591a
 currenciesDisplayName.UGX=\u4e4c\u5e72\u8fbe\u5148\u4ee4
-currenciesDisplayName.ZMK=\u8d5e\u6bd4\u4e9a\u9a6c\u62c9\u7ef4
-currenciesDisplayName.JOD=\u7ea6\u65e6\u7b2c\u7eb3\u5c14\u5143
-currenciesDisplayName.LBP=\u9ece\u5df4\u5ae9\u78c5
+currenciesDisplayName.XAG=\u94f6
+currenciesDisplayName.ZMK=\u8d5e\u6bd4\u4e9a\u514b\u74e6\u67e5
+currenciesDisplayName.JOD=\u7ea6\u65e6\u7b2c\u7eb3\u5c14
+currenciesDisplayName.XAF=\u4e2d\u975e\u91d1\u878d\u5408\u4f5c\u6cd5\u90ce
+currenciesDisplayName.LBP=\u9ece\u5df4\u5ae9\u9551
 currenciesDisplayName.UGS=\u4e4c\u5e72\u8fbe\u5148\u4ee4 (1966-1987)
-currenciesDisplayName.STD=\u5723\u591a\u7f8e\u666e\u6797\u897f\u6bd4\u90fd\u6bd4\u62c9
+currenciesDisplayName.STD=\u5723\u591a\u7f8e\u548c\u666e\u6797\u897f\u6bd4\u591a\u5e03\u62c9
 currenciesDisplayName.WST=\u897f\u8428\u6469\u4e9a\u5854\u62c9
-currenciesDisplayName.KHR=\u67ec\u57d4\u5be8\u91cc\u5c14
-currenciesDisplayName.EUR=\u6b27\u5143
+currenciesDisplayName.KHR=\u67ec\u57d4\u5be8\u745e\u5c14
 currenciesDisplayName.DOP=\u591a\u7c73\u5c3c\u52a0\u6bd4\u7d22
-currenciesDisplayName.MTP=\u9a6c\u5c14\u4ed6\u78c5
-currenciesDisplayName.USS=\u7f8e\u5143 (\u540c\u4e00\u5929)
+currenciesDisplayName.EUR=\u6b27\u5143
+currenciesDisplayName.BOV=\u73bb\u5229\u7ef4\u4e9a Mvdol\uff08\u8d44\u91d1\uff09
+currenciesDisplayName.MTP=\u9a6c\u8033\u4ed6\u9551
+currenciesDisplayName.USS=\u7f8e\u5143\uff08\u5f53\u65e5\uff09
 currenciesDisplayName.BOP=\u73bb\u5229\u7ef4\u4e9a\u6bd4\u7d22
-currenciesDisplayName.MTL=\u9a6c\u5c14\u4ed6\u91cc\u62c9
 currenciesDisplayName.CUP=\u53e4\u5df4\u6bd4\u7d22
-currenciesDisplayName.TMM=\u571f\u5e93\u66fc\u65af\u5766\u5e01
-currenciesDisplayName.USN=\u7f8e\u5143 (\u4e0b\u4e00\u5929)
+currenciesDisplayName.MTL=\u9a6c\u8033\u4ed6\u91cc\u62c9
+currenciesDisplayName.TMM=\u571f\u5e93\u66fc\u65af\u5766\u9a6c\u7eb3\u7279
+currenciesDisplayName.USN=\u7f8e\u5143\uff08\u6b21\u65e5\uff09
+currenciesDisplayName.GHS=\u52a0\u7eb3\u585e\u8fea
 currenciesDisplayName.SGD=\u65b0\u52a0\u5761\u5143
 currenciesDisplayName.NZD=\u65b0\u897f\u5170\u5143
 currenciesDisplayName.USD=\u7f8e\u5143
-currenciesDisplayName.HNL=\u6d2a\u90fd\u62c9\u65af\u52d2\u76ae\u62c9
-currenciesDisplayName.BOB=\u73bb\u5229\u7ef4\u4e9a
+currenciesDisplayName.BOB=\u73bb\u5229\u7ef4\u4e9a\u8bfa
+currenciesDisplayName.HNL=\u6d2a\u90fd\u62c9\u65af\u62c9\u4f26\u76ae\u62c9
 currenciesDisplayName.ITL=\u610f\u5927\u5229\u91cc\u62c9
 currenciesDisplayName.PAB=\u5df4\u62ff\u9a6c\u5df4\u6ce2\u4e9a
-currenciesDisplayName.GTQ=\u5371\u5730\u9a6c\u62c9
-currenciesDisplayName.LAK=\u8001\u631d\u57fa\u666e
-currenciesDisplayName.GHC=\u52a0\u7eb3\u585e\u7b2c
+currenciesDisplayName.GTQ=\u5371\u5730\u9a6c\u62c9\u683c\u67e5\u5c14
+currenciesDisplayName.XXX=\u8d27\u5e01\u672a\u77e5\u6216\u65e0\u6548
 currenciesDisplayName.AUD=\u6fb3\u5927\u5229\u4e9a\u5143
+currenciesDisplayName.GHC=\u52a0\u7eb3\u585e\u7b2c
+currenciesDisplayName.LAK=\u8001\u631d\u57fa\u666e
 currenciesDisplayName.NAD=\u7eb3\u7c73\u6bd4\u4e9a\u5143
-currenciesDisplayName.KGS=\u5409\u5c14\u5409\u65af\u5766\u8428\u59c6
+currenciesDisplayName.KGS=\u5409\u5c14\u5409\u65af\u65af\u5766\u7d22\u59c6
 currenciesDisplayName.MGF=\u9a6c\u8fbe\u52a0\u65af\u52a0\u6cd5\u90ce
-currenciesDisplayName.CHF=\u745e\u58eb\u6cd5\u90ce
 currenciesDisplayName.BBD=\u5df4\u5df4\u591a\u65af\u5143
-currenciesDisplayName.MGA=\u9a6c\u8fbe\u52a0\u65af\u52a0\u963f\u65e5\u745e
-currenciesDisplayName.PYG=\u5df4\u62c9\u572d\u5e01
+currenciesDisplayName.CHF=\u745e\u58eb\u6cd5\u90ce
+currenciesDisplayName.MGA=\u9a6c\u8fbe\u52a0\u65af\u52a0\u963f\u91cc\u4e9a\u91cc
+currenciesDisplayName.PYG=\u5df4\u62c9\u572d\u74dc\u62c9\u5c3c
 currenciesDisplayName.PLZ=\u6ce2\u5170\u5179\u7f57\u63d0 (1950-1995)
-currenciesDisplayName.YER=\u4e5f\u95e8\u91cc\u5c14
-currenciesDisplayName.ATS=\u5965\u5730\u5229\u897f\u4ee4
+currenciesDisplayName.YER=\u4e5f\u95e8\u91cc\u4e9a\u5c14
+currenciesDisplayName.ATS=\u5965\u5730\u5229\u5148\u4ee4
 currenciesDisplayName.ETB=\u57c3\u585e\u4fc4\u6bd4\u4e9a\u6bd4\u5c14
-currenciesDisplayName.BND=\u6c76\u83b1\u5143
+currenciesDisplayName.BND=\u6587\u83b1\u5143
+currenciesDisplayName.EGP=\u57c3\u53ca\u9551
 currenciesDisplayName.JMD=\u7259\u4e70\u52a0\u5143
-currenciesDisplayName.EGP=\u57c3\u53ca\u78c5
 currenciesDisplayName.PLN=\u6ce2\u5170\u5179\u7f57\u63d0
-currenciesDisplayName.DZD=\u963f\u5c14\u53ca\u5229\u4e9a\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.DZD=\u963f\u5c14\u53ca\u5229\u4e9a\u7b2c\u7eb3\u5c14
 currenciesDisplayName.ISK=\u51b0\u5c9b\u514b\u6717
-currenciesDisplayName.SRG=\u82cf\u91cc\u5357\u57fa\u5c14
-currenciesDisplayName.LYD=\u5229\u6bd4\u4e9a\u7b2c\u7eb3\u5c14\u5143
-currenciesDisplayName.BZD=\u4f2f\u5229\u5179\u5143
+currenciesDisplayName.SRG=\u82cf\u91cc\u5357\u76fe
+currenciesDisplayName.LYD=\u5229\u6bd4\u4e9a\u7b2c\u7eb3\u5c14
+currenciesDisplayName.SRD=\u82cf\u91cc\u5357\u5143
 currenciesDisplayName.BAM=\u6ce2\u58eb\u5c3c\u4e9a-\u8d6b\u585e\u54e5\u7ef4\u7eb3\u5151\u6362\u5238
-currenciesDisplayName.ESP=\u897f\u73ed\u7259\u9a6c\u8d5b\u5854
-currenciesDisplayName.KRW=\u97e9\u56fd\u5e01
+currenciesDisplayName.BZD=\u4f2f\u5229\u5179\u5143
+currenciesDisplayName.ESP=\u897f\u73ed\u7259\u6bd4\u585e\u5854
+currenciesDisplayName.KRW=\u97e9\u5706
 currenciesDisplayName.NLG=\u8377\u5170\u76fe
-currenciesDisplayName.MRO=\u91cc\u5854\u5c3c\u4e9a\u4e4c\u5409\u4e9a
-currenciesDisplayName.BAD=\u6ce2\u58eb\u5c3c\u4e9a-\u8d6b\u585e\u54e5\u7ef4\u7eb3\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.MRO=\u6bdb\u91cc\u5854\u5c3c\u4e9a\u4e4c\u5409\u4e9a
+currenciesDisplayName.BAD=\u6ce2\u58eb\u5c3c\u4e9a-\u8d6b\u585e\u54e5\u7ef4\u7eb3\u7b2c\u7eb3\u5c14
 currenciesDisplayName.ZWD=\u6d25\u5df4\u5e03\u97e6\u5143
-currenciesDisplayName.SEK=\u745e\u58eb\u514b\u6717
+currenciesDisplayName.SEK=\u745e\u5178\u514b\u6717
 currenciesDisplayName.CSK=\u6377\u514b\u786c\u514b\u90ce
 currenciesDisplayName.BYR=\u767d\u4fc4\u7f57\u65af\u5362\u5e03
-currenciesDisplayName.IRR=\u4f0a\u6717\u91cc\u4e9a \u5c14
+currenciesDisplayName.ESB=\u897f\u73ed\u7259\u6bd4\u585e\u5854\uff08\u5151\u6362\u5e10\u6237\uff09
+currenciesDisplayName.IRR=\u4f0a\u6717\u91cc\u4e9a\u5c14
+currenciesDisplayName.ESA=\u897f\u73ed\u7259\u6bd4\u585e\u5854\uff08\u5e10\u6237 A\uff09
 currenciesDisplayName.PKR=\u5df4\u57fa\u65af\u5766\u5362\u6bd4
 currenciesDisplayName.BMD=\u767e\u6155\u5927\u5143
-currenciesSymbol.TWD=NT$
-currenciesSymbol.ITL=ITL
-currenciesSymbol.JPY=JP\u00a5
-currenciesSymbol.SGD=S$
-currenciesSymbol.CNY=\uffe5
-currenciesSymbol.HKD=HK$
-currenciesSymbol.USD=US$
+currenciesDisplayName.CSD=\u65e7\u585e\u5c14\u7ef4\u4e9a\u7b2c\u7eb3\u5c14
 currenciesSymbol.MOP=P
+currenciesSymbol.TWD=NT$
 currenciesSymbol.SAR=SRl
+currenciesSymbol.HKD=HK$
+currenciesSymbol.SGD=S$
 currenciesSymbol.KRW=\uffe6
-shortMonths=\u4e00\u6708®\u4e8c\u6708®\u4e09\u6708®\u56db\u6708®\u4e94\u6708®\u516d\u6708®\u4e03\u6708®\u516b\u6708®\u4e5d\u6708®\u5341\u6708®\u5341\u4e00\u6708®\u5341\u4e8c\u6708®®
-months=\u4e00\u6708®\u4e8c\u6708®\u4e09\u6708®\u56db\u6708®\u4e94\u6708®\u516d\u6708®\u4e03\u6708®\u516b\u6708®\u4e5d\u6708®\u5341\u6708®\u5341\u4e00\u6708®\u5341\u4e8c\u6708®®
-shortWeekdays=®\u5468\u65e5®\u5468\u4e00®\u5468\u4e8c®\u5468\u4e09®\u5468\u56db®\u5468\u4e94®\u5468\u516d®
-weekdays=®\u661f\u671f\u65e5®\u661f\u671f\u4e00®\u661f\u671f\u4e8c®\u661f\u671f\u4e09®\u661f\u671f\u56db®\u661f\u671f\u4e94®\u661f\u671f\u516d®
-eras=\u516c\u5143\u524d®\u516c\u5143®
-ampms=\u4e0a\u5348®\u4e0b\u5348®
-zoneStrings=America/Halifax®AST®\u5927\u897f\u6d0b\u6807\u51c6\u65f6\u95f4®ADT®\u5927\u897f\u6d0b\u590f\u4ee4\u65f6\u95f4®©America/Indianapolis®EST®\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4®EST®\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4®©Europe/Paris®CET®\u4e2d\u6b27\u6807\u51c6\u65f6\u95f4®CEST®\u4e2d\u6b27\u590f\u4ee4\u65f6\u95f4®©America/Phoenix®MST®\u5c71\u533a\u6807\u51c6\u65f6\u95f4®MST®\u5c71\u533a\u6807\u51c6\u65f6\u95f4®©America/Los_Angeles®PST®\u592a\u5e73\u6d0b\u6807\u51c6\u65f6\u95f4®PDT®\u592a\u5e73\u6d0b\u590f\u4ee4\u65f6\u95f4®©Pacific/Honolulu®HST®\u590f\u5a01\u5937\u6807\u51c6\u65f6\u95f4®HST®\u590f\u5a01\u5937\u6807\u51c6\u65f6\u95f4®©America/Denver®MST®\u5c71\u533a\u6807\u51c6\u65f6\u95f4®MDT®\u5c71\u533a\u590f\u4ee4\u65f6\u95f4®©Europe/Bucharest®EET®\u4e1c\u6b27\u6807\u51c6\u65f6\u95f4®EEST®\u4e1c\u6b27\u590f\u4ee4\u65f6\u95f4®©America/New_York®EST®\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4®EDT®\u4e1c\u90e8\u590f\u4ee4\u65f6\u95f4®©Asia/Tokyo®JST®\u65e5\u672c\u6807\u51c6\u65f6\u95f4®JST®\u65e5\u672c\u6807\u51c6\u65f6\u95f4®©America/Anchorage®AST®\u963f\u62c9\u65af\u52a0\u6807\u51c6\u65f6\u95f4®ADT®\u963f\u62c9\u65af\u52a0\u590f\u4ee4\u65f6\u95f4®©Asia/Shanghai®CTT®\u4e2d\u56fd\u6807\u51c6\u65f6\u95f4®CDT®\u4e2d\u56fd\u6807\u51c6\u65f6\u95f4®©America/Chicago®CST®\u4e2d\u592e\u6807\u51c6\u65f6\u95f4®CDT®\u4e2d\u592e\u590f\u4ee4\u65f6\u95f4®©Africa/Casablanca®GMT®\u683c\u6797\u5a01\u6cbb\u6807\u51c6\u65f6\u95f4®GMT®\u683c\u6797\u5a01\u6cbb\u6807\u51c6\u65f6\u95f4®©America/St_Johns®CNT®\u7ebd\u82ac\u5170\u6807\u51c6\u65f6\u95f4®CDT®\u7ebd\u82ac\u5170\u590f\u4ee4\u65f6\u95f4®©Asia/Jerusalem®IST®\u4ee5\u8272\u5217\u6807\u51c6\u65f6\u95f4®IDT®\u4ee5\u8272\u5217\u590f\u4ee4\u65f6\u95f4®©
+currenciesSymbol.CNY=\uffe5
+currenciesSymbol.ITL=ITL
+shortMonths=\u4e00\u6708\u00ae\u4e8c\u6708\u00ae\u4e09\u6708\u00ae\u56db\u6708\u00ae\u4e94\u6708\u00ae\u516d\u6708\u00ae\u4e03\u6708\u00ae\u516b\u6708\u00ae\u4e5d\u6708\u00ae\u5341\u6708\u00ae\u5341\u4e00\u6708\u00ae\u5341\u4e8c\u6708\u00ae\u00ae
+months=\u4e00\u6708\u00ae\u4e8c\u6708\u00ae\u4e09\u6708\u00ae\u56db\u6708\u00ae\u4e94\u6708\u00ae\u516d\u6708\u00ae\u4e03\u6708\u00ae\u516b\u6708\u00ae\u4e5d\u6708\u00ae\u5341\u6708\u00ae\u5341\u4e00\u6708\u00ae\u5341\u4e8c\u6708\u00ae\u00ae
+shortWeekdays=\u00ae\u5468\u65e5\u00ae\u5468\u4e00\u00ae\u5468\u4e8c\u00ae\u5468\u4e09\u00ae\u5468\u56db\u00ae\u5468\u4e94\u00ae\u5468\u516d\u00ae
+weekdays=\u00ae\u661f\u671f\u65e5\u00ae\u661f\u671f\u4e00\u00ae\u661f\u671f\u4e8c\u00ae\u661f\u671f\u4e09\u00ae\u661f\u671f\u56db\u00ae\u661f\u671f\u4e94\u00ae\u661f\u671f\u516d\u00ae
+eras=\u516c\u5143\u524d\u00ae\u516c\u5143\u00ae
+ampms=\u4e0a\u5348\u00ae\u4e0b\u5348\u00ae
+shortDateFormat=yy-M-d
+mediumDateFormat=yyyy-M-d
+longDateFormat=yyyy\u5e74M\u6708d\u65e5
+fullDateFormat=yyyy\u5e74M\u6708d\u65e5EEEE
+shortTimeFormat=ah:mm
+mediumTimeFormat=ah:mm:ss
+longTimeFormat=zah\u65f6mm\u5206ss\u79d2
+fullTimeFormat=zah\u65f6mm\u5206ss\u79d2
+zoneStrings=Europe_Central\u00ae\u4e2d\u6b27\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e2d\u6b27\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Africa_Western\u00ae\u897f\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u5357\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u897f\u90e8\u975e\u6d32\u590f\u4ee4\u65f6\u95f4\u00ae\u897f\u90e8\u975e\u6d32\u6807\u51c6\u65f6\u95f4\u00ae\u00a9Urumqi\u00ae\u4e4c\u9c81\u6728\u9f50\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e4c\u9c81\u6728\u9f50\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Uralsk\u00ae\u4e4c\u62c9\u5c14\u65af\u514b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e4c\u62c9\u5c14\u65af\u514b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Novosibirsk\u00ae\u65b0\u897f\u4f2f\u5229\u4e9e\u6642\u9593\u00ae\u00ae\u65b0\u897f\u4f2f\u5229\u4e9e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Irkutsk\u00ae\u4f0a\u723e\u5eab\u8328\u514b\u6642\u9593\u00ae\u00ae\u4f0a\u723e\u5eab\u8328\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Borneo\u00ae\u5a46\u7f57\u6d32\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5a46\u7f57\u6d32\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u6fb3\u5927\u5229\u4e9a\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e1c\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e1c\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Aqtau\u00ae\u963f\u514b\u56fe\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u514b\u56fe\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Kazakhstan_Western\u00ae\u54c8\u8428\u514b\u65af\u5766\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00ae\u65af\u7ef4\u5c14\u5fb7\u6d1b\u592b\u65af\u514b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u65af\u7ef4\u5c14\u5fb7\u6d1b\u592b\u65af\u514b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Bangladesh\u00ae\u5b5f\u52a0\u62c9\u6807\u51c6\u65f6\u95f4\u00ae\u5b5f\u52a0\u62c9\u590f\u4ee4\u65f6\u95f4\u00ae\u5b5f\u52a0\u62c9\u590f\u4ee4\u65f6\u95f4\u00aeBDT\u00ae\u00a9Samarkand\u00ae\u6492\u9a6c\u5c14\u7f55\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u6492\u9a6c\u5c14\u7f55\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu \u6807\u51c6\u65f6\u95f4\u00ae\u00aeLong-Shu \u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Singapore\u00ae\u65b0\u52a0\u5761\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00ae\u963f\u585e\u62dc\u7586\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u585e\u62dc\u7586\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Amazon\u00ae\u4e9a\u9a6c\u900a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e9a\u9a6c\u900a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Arabian\u00ae\u963f\u62c9\u4f2f\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u62c9\u4f2f\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Yekaterinburg\u00ae\u53f6\u5361\u6377\u7433\u5821\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u53f6\u5361\u6377\u7433\u5821\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Alaska\u00ae\u963f\u62c9\u65af\u52a0\u6807\u51c6\u65f6\u95f4\u00ae\u963f\u62c9\u65af\u52a0\u6807\u51c6\u65f6\u95f4\u00ae\u963f\u62c9\u65af\u52a0\u590f\u4ee4\u65f6\u95f4\u00ae\u963f\u62c9\u65af\u52a0\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Qyzylorda\u00ae\u514b\u5b5c\u52d2\u5965\u5c14\u8fbe\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u514b\u5b5c\u52d2\u5965\u5c14\u8fbe\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Gulf\u00ae\u6d77\u6e7e\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Dutch_Guiana\u00ae\u8377\u5c5e\u572d\u4e9a\u90a3\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u8377\u5c5e\u572d\u4e9a\u90a3\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Omsk\u00ae\u9102\u6728\u65af\u514b\u6642\u9593\u00ae\u00ae\u9102\u6728\u65af\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Hong_Kong\u00ae\u9999\u6e2f\u6642\u9593\u00ae\u00ae\u9999\u6e2f\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u5370\u5ea6\u5c3c\u897f\u4e9a\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u5370\u5ea6\u5c3c\u897f\u4e9a\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00ae\u6d77\u53c3\u5d34\u6642\u9593\u00ae\u00ae\u6d77\u53c3\u5d34\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Aqtobe\u00ae\u963f\u514b\u6258\u522b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u514b\u6258\u522b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Chamorro\u00ae\u67e5\u83ab\u7f57\u6807\u51c6\u65f6\u533a\u00ae\u67e5\u83ab\u7f57\u6807\u51c6\u65f6\u533a\u00ae\u00ae\u00ae\u00a9Kizilorda\u00aeKizilorda \u6807\u51c6\u65f6\u95f4\u00ae\u00aeKizilorda \u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Armenia\u00ae\u4e9a\u7f8e\u5c3c\u4e9a\u6807\u51c6\u65f6\u95f4\u00aeAMST (Armenia)\u00ae\u4e9a\u7f8e\u5c3c\u4e9a\u590f\u4ee4\u65f6\u95f4\u00aeAMDT (Armenia)\u00ae\u00a9America_Pacific\u00ae\u592a\u5e73\u6d0b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u592a\u5e73\u6d0b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Almaty\u00aeAlmaty \u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u62c9\u6728\u56fe\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Tajikistan\u00ae\u5854\u5409\u514b\u65af\u5766\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5854\u5409\u514b\u65af\u5766\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Anadyr\u00ae\u963f\u7d0d\u5fb7\u723e\u6642\u9593\u00ae\u00ae\u963f\u7d0d\u5fb7\u723e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9French_Guiana\u00ae\u6cd5\u5c6c\u572d\u4e9e\u90a3\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00ae\u590f\u5a01\u5937\u2014\u963f\u7559\u7533\u6807\u51c6\u65f6\u95f4\u00ae\u590f\u5a01\u5937\u2014\u963f\u7559\u7533\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00a9Nepal\u00ae\u5c3c\u6cca\u723e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00ae\u6c76\u840a\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u675c\u5c1a\u522b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u675c\u5c1a\u522b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Yerevan\u00ae\u57c3\u91cc\u6e29\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u57c3\u91cc\u6e29\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Paraguay\u00ae\u5df4\u62c9\u572d\u6642\u9593\u00ae\u00ae\u5df4\u62c9\u572d\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Israel\u00ae\u4ee5\u8272\u5217\u6807\u51c6\u65f6\u95f4\u00aeIST (Israel)\u00ae\u4ee5\u8272\u5217\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Greenland_Western\u00ae\u683c\u6797\u5170\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u683c\u6797\u5170\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u4e1c\u6b27\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e1c\u6b27\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9North_Mariana\u00ae\u5317\u9a6c\u91cc\u4e9a\u7eb3\u7fa4\u5c9b\u65f6\u95f4\u00ae\u00ae\u5317\u9a6c\u91cc\u4e9a\u7eb3\u7fa4\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Newfoundland\u00ae\u7ebd\u82ac\u5170\u6807\u51c6\u65f6\u95f4\u00ae\u7ebd\u82ac\u5170\u6807\u51c6\u65f6\u95f4\u00ae\u7ebd\u82ac\u5170\u590f\u4ee4\u65f6\u95f4\u00ae\u7ebd\u82ac\u5170\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Australia_Western\u00ae\u6fb3\u5927\u5229\u4e9a\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Moscow\u00ae\u83ab\u65af\u79d1\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u83ab\u65af\u79d1\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Kyrgystan\u00aeKyrgystan \u6807\u51c6\u65f6\u95f4\u00ae\u00aeKyrgystan \u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Venezuela\u00ae\u59d4\u5167\u745e\u62c9\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00ae\u9a6c\u6765\u4e9a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u9a6c\u6765\u4e9a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Peru\u00ae\u79d8\u9b6f\u6642\u9593\u00ae\u00ae\u79d8\u9b6f\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Korea\u00ae\u97e9\u56fd\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u97e9\u56fd\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Argentina_Western\u00ae\u963f\u6839\u5ef7\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u6839\u5ef7\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u4e1c\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u4e1c\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00ae\u571f\u5e93\u66fc\u65af\u5766\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u571f\u5e93\u66fc\u65af\u5766\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Pierre_Miquelon\u00ae\u5f7c\u5f97\u5c9b\u548c\u7c73\u514b\u9686\u5c9b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5f7c\u5f97\u5c9b\u548c\u7c73\u514b\u9686\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Atlantic\u00ae\u5927\u897f\u6d0b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5927\u897f\u6d0b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u963f\u62c9\u65af\u52a0\uff0d\u590f\u5a01\u5937\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u62c9\u65af\u52a0\uff0d\u590f\u5a01\u5937\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Uzbekistan\u00ae\u4e4c\u5179\u522b\u514b\u65af\u5766\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e4c\u5179\u522b\u514b\u65af\u5766\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Lord_Howe\u00ae\u7f57\u5fb7\u6beb\u5c9b\u6807\u51c6\u65f6\u95f4\u00ae\u7f57\u5fb7\u6beb\u5c9b\u6807\u51c6\u65f6\u95f4\u00ae\u7f57\u5fb7\u6beb\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Hovd\u00ae\u79d1\u5e03\u591a\u6642\u9593\u00ae\u00ae\u79d1\u5e03\u591a\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Tbilisi\u00ae\u7b2c\u6bd4\u5229\u65af\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u7b2c\u6bd4\u5229\u65af\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Malaysia\u00ae\u9a6c\u6765\u897f\u4e9a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u9a6c\u6765\u897f\u4e9a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Baku\u00ae\u5df4\u5e93\u6807\u51c6\u65f6\u95f4\u00ae\u5df4\u5e93\u65f6\u95f4\u00ae\u5df4\u5e93\u590f\u4ee4\u65f6\u95f4\u00ae\u5df4\u5e93\u6807\u51c6\u65f6\u95f4\u00ae\u00a9America_Eastern\u00ae\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e1c\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Noronha\u00ae\u723e\u5357\u591a-\u8fea\u8afe\u7f85\u5c3c\u4e9e\u5cf6\u6642\u9593\u00ae\u00ae\u723e\u5357\u591a-\u8fea\u8afe\u7f85\u5c3c\u4e9e\u5cf6\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Afghanistan\u00ae\u963f\u5bcc\u6c57\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Samoa\u00ae\u8428\u6469\u4e9a\u6807\u51c6\u65f6\u95f4\u00ae\u745e\u5178\u590f\u4ee4\u65f6\u95f4\u00ae\u8428\u6469\u4e9a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Europe/London\u00ae\u00ae\u00ae\u00aeBST\u00ae\u00a9Ecuador\u00ae\u5384\u74dc\u591a\u5c14\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00ae\u963f\u514b\u91cc\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u514b\u91cc\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Dacca\u00ae\u8fbe\u5361\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u8fbe\u5361\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Choibalsan\u00ae\u4e54\u5df4\u5c71\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e54\u5df4\u5c71\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Europe_Western\u00ae\u6b27\u6d32\u897f\u90e8\u65f6\u95f4\u00ae\u6b27\u6d32\u897f\u90e8\u65f6\u95f4\u00ae\u6b27\u6d32\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u6b27\u6d32\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Africa_Central\u00ae\u4e2d\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u4e2d\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u571f\u8033\u5176\u65f6\u95f4\u00ae\u571f\u8033\u5176\u65f6\u95f4\u00ae\u571f\u8033\u5176\u590f\u4ee4\u65f6\u95f4\u00ae\u571f\u8033\u5176\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Africa_Southern\u00ae\u5357\u90e8\u975e\u6d32\u6807\u51c6\u65f6\u95f4\u00ae\u5357\u90e8\u975e\u6d32\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00ae\u963f\u4ec0\u54c8\u5df4\u5fb7\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u4ec0\u54c8\u5df4\u5fb7\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Bering\u00ae\u767d\u4ee4\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u767d\u4ee4\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Guam\u00ae\u5173\u5c9b\u6807\u51c6\u65f6\u95f4\u00ae\u5173\u5c9b\u6807\u51c6\u65f6\u95f4\u00ae\u5173\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u5173\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Marshall_Islands\u00ae\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u65f6\u95f4\u00ae\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u65f6\u95f4\u00ae\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Bhutan\u00ae\u4e0d\u4e39\u6807\u51c6\u65f6\u95f4\u00ae\u5b5f\u52a0\u62c9\u6807\u51c6\u65f6\u95f4\u00ae\u4e0d\u4e39\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Changbai\u00ae\u957f\u767d\u5c71\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00ae\u5eab\u9801\u5cf6\u6642\u9593\u00ae\u00ae\u5eab\u9801\u5cf6\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Karachi\u00ae\u5361\u62c9\u5947\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5361\u62c9\u5947\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Tashkent\u00ae\u5854\u4ec0\u5e72\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5854\u4ec0\u5e72\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Philippines\u00ae\u83f2\u5f8b\u8cd3\u6642\u9593\u00ae\u00ae\u83f2\u5f8b\u8cd3\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9East_Timor\u00ae\u4e1c\u5e1d\u6c76\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e1c\u5e1d\u6c76\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Yakutsk\u00ae\u96c5\u5eab\u8328\u514b\u6642\u9593\u00ae\u00ae\u96c5\u5eab\u8328\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Iran\u00ae\u4f0a\u6717\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u4f0a\u6717\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Argentina\u00ae\u963f\u6839\u5ef7\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u6839\u5ef7\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Yukon\u00ae\u80b2\u7a7a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u80b2\u7a7a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9New_Zealand\u00ae\u65b0\u897f\u5170\u6807\u51c6\u65f6\u95f4\u00ae\u65b0\u897f\u5170\u6807\u51c6\u65f6\u95f4\u00ae\u65b0\u897f\u5170\u590f\u4ee4\u65f6\u95f4\u00ae\u65b0\u897f\u5170\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Magadan\u00ae\u99ac\u52a0\u4e39\u6642\u9593\u00ae\u00ae\u99ac\u52a0\u4e39\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9China\u00ae\u4e2d\u56fd\u6807\u51c6\u65f6\u95f4\u00aeCST\uff08\u4e2d\u56fd\uff09\u00ae\u4e2d\u56fd\u590f\u4ee4\u65f6\u95f4\u00aeCDT\uff08\u4e2d\u56fd\uff09\u00ae\u00a9Indonesia_Central\u00ae\u5370\u5ea6\u5c3c\u897f\u4e9a\u4e2d\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u5c71\u533a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5c71\u533a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9India\u00ae\u5370\u5ea6\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00ae\u82cf\u91cc\u5357\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u8607\u5229\u5357\u590f\u4ee4\u6642\u9593\u00ae\u00a9GMT\u00ae\u683c\u6797\u5c3c\u6cbb\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u8428\u9a6c\u62c9\u65f6\u95f4\u00ae\u8428\u9a6c\u62c9\u65f6\u95f4\u00ae\u8428\u9a6c\u62c9\u590f\u4ee4\u65f6\u95f4\u00ae\u8428\u9a6c\u62c9\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Uruguay\u00ae\u70cf\u62c9\u572d\u6642\u9593\u00ae\u00ae\u70cf\u62c9\u572d\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Chile\u00ae\u667a\u5229\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u667a\u5229\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Brasilia\u00ae\u5df4\u897f\u5229\u4e9a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5df4\u897f\u5229\u4e9a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Australia_CentralWestern\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Kazakhstan_Eastern\u00ae\u54c8\u8428\u514b\u65af\u5766\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00ae\u4e4c\u5170\u5df4\u6258\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e4c\u5170\u5df4\u6258\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9America_Central\u00ae\u4e2d\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e2d\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Frunze\u00ae\u4f0f\u9f99\u829d\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4f0f\u9f99\u829d\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Lanka\u00aeLanka \u6807\u51c6\u65f6\u95f4\u00ae\u00aeLanka \u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Kuybyshev\u00ae\u53e4\u6bd4\u96ea\u592b\u65f6\u95f4\u00ae\u53e4\u6bd4\u96ea\u592b\u65f6\u95f4\u00ae\u53e4\u6bd4\u96ea\u592b\u590f\u4ee4\u65f6\u95f4\u00ae\u53e4\u6bd4\u96ea\u592b\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Greenland_Eastern\u00ae\u683c\u6797\u5170\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u683c\u6797\u5170\u4e1c\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Azores\u00ae\u4e9a\u8ff0\u5c14\u7fa4\u5c9b\u65f6\u95f4\u00ae\u4e9a\u8ff0\u5c14\u7fa4\u5c9b\u65f6\u95f4\u00ae\u4e9a\u8ff0\u5c14\u7fa4\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u4e9a\u8ff0\u5c14\u7fa4\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Japan\u00ae\u65e5\u672c\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u65e5\u672c\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Greenland_Central\u00ae\u683c\u6797\u5170\u4e2d\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u683c\u6797\u5170\u4e2d\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Kwajalein\u00ae\u5938\u8d3e\u6797\u65f6\u95f4\u00ae\u5938\u8d3e\u6797\u65f6\u95f4\u00ae\u5938\u8d3e\u6797\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Shevchenko\u00ae\u820d\u752b\u7434\u79d1\u65f6\u95f4\u00ae\u00ae\u820d\u752b\u7434\u79d1\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Pakistan\u00ae\u5df4\u57fa\u65af\u5766\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5df4\u57fa\u65af\u5766\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Bolivia\u00ae\u73bb\u5229\u7dad\u4e9e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00ae\u5580\u4ec0\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Guyana\u00ae\u84cb\u4e9e\u90a3\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u683c\u9c81\u5409\u4e9a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u683c\u9c81\u5409\u4e9a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Colombia\u00ae\u54e5\u502b\u6bd4\u4e9e\u6642\u9593\u00ae\u00ae\u54e5\u502b\u6bd4\u4e9e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Galapagos\u00ae\u52a0\u62c9\u5e15\u6208\u65af\u65f6\u95f4\u00ae\u52a0\u62c9\u5e15\u6208\u65af\u65f6\u95f4\u00ae\u52a0\u62c9\u5e15\u6208\u65af\u590f\u4ee4\u65f6\u95f4\u00ae\u52a0\u62c9\u5e15\u54e5\u65af\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Cuba\u00ae\u53e4\u5df4\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u53e4\u5df4\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Myanmar\u00ae\u7dec\u7538\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00ae\u6fb3\u95e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u6fb3\u95e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Aktyubinsk\u00ae\u963f\u514b\u7ea6\u5bbe\u65af\u514b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u514b\u7ea6\u5bbe\u65af\u514b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9
 territories.TL=\u4e1c\u5e1d\u6c76
 territories.TK=\u6258\u514b\u52b3
 territories.TJ=\u5854\u5409\u514b\u65af\u5766
 territories.TH=\u6cf0\u56fd
 territories.TG=\u591a\u54e5
-territories.TF=\u6cd5\u5c5e\u5357\u534a\u7403\u9886\u5730
+territories.TF=\u6cd5\u5c5e\u5357\u90e8\u9886\u571f
 territories.GY=\u572d\u4e9a\u90a3
 territories.TD=\u4e4d\u5f97
 territories.TC=\u7279\u514b\u65af\u548c\u51ef\u79d1\u65af\u7fa4\u5c9b
@@ -282,10 +324,11 @@ territories.GL=\u683c\u9675\u5170
 territories.SV=\u8428\u5c14\u74e6\u591a
 territories.062=\u4e2d\u5357\u4e9a
 territories.ST=\u5723\u591a\u7f8e\u548c\u666e\u6797\u897f\u6bd4
-territories.061=\u73bb\u91cc\u5c3c\u897f\u4e9a
 territories.GI=\u76f4\u5e03\u7f57\u9640
+territories.061=\u73bb\u5229\u5c3c\u897f\u4e9a
 territories.GH=\u52a0\u7eb3
 territories.SR=\u82cf\u91cc\u5357
+territories.GG=\u683c\u6069\u897f\u5c9b
 territories.GF=\u6cd5\u5c5e\u572d\u4e9a\u90a3
 territories.GE=\u683c\u9c81\u5409\u4e9a
 territories.SO=\u7d22\u9a6c\u91cc
@@ -302,30 +345,31 @@ territories.SH=\u5723\u8d6b\u52d2\u62ff
 territories.SG=\u65b0\u52a0\u5761
 territories.SE=\u745e\u5178
 territories.SD=\u82cf\u4e39
-territories.SC=\u585e\u820c\u5c14
+territories.SC=\u585e\u820c\u5c14\u7fa4\u5c9b
 territories.SB=\u6240\u7f57\u95e8\u7fa4\u5c9b
 territories.SA=\u6c99\u7279\u963f\u62c9\u4f2f
 territories.FR=\u6cd5\u56fd
-territories.057=\u5bc6\u514b\u7f57\u5c3c\u897f\u4e9a
 territories.FO=\u6cd5\u7f57\u7fa4\u5c9b
+territories.057=\u5bc6\u514b\u7f57\u5c3c\u897f\u4e9a
 territories.FM=\u5bc6\u514b\u7f57\u5c3c\u897f\u4e9a\u8054\u90a6
 territories.RW=\u5362\u65fa\u8fbe
 territories.054=\u7f8e\u62c9\u5c3c\u897f\u4e9a
-territories.053=\u6fb3\u5927\u5229\u4e9a\u548c\u65b0\u897f\u5170
 territories.FK=\u798f\u514b\u5170\u7fa4\u5c9b
-territories.RU=\u4fc4\u7f57\u65af\u8054\u90a6
+territories.053=\u6fb3\u5927\u5229\u4e9a\u548c\u65b0\u897f\u5170
+territories.RU=\u4fc4\u7f57\u65af
 territories.FJ=\u6590\u6d4e
 territories.FI=\u82ac\u5170
+territories.RS=\u585e\u5c14\u7ef4\u4e9a
 territories.RO=\u7f57\u9a6c\u5c3c\u4e9a
 territories.RE=\u7559\u5c3c\u6c6a
 territories.ET=\u57c3\u585e\u4fc4\u6bd4\u4e9a
 territories.ES=\u897f\u73ed\u7259
 territories.ER=\u5384\u7acb\u7279\u91cc\u4e9a
-territories.833=\u66fc\u5c9b
+territories.QU=\u6b27\u76df
 territories.EH=\u897f\u6492\u54c8\u62c9
 territories.EG=\u57c3\u53ca
-territories.830=\u6d77\u5ce1\u7fa4\u5c9b
 territories.EE=\u7231\u6c99\u5c3c\u4e9a
+territories.830=\u6d77\u5ce1\u7fa4\u5c9b
 territories.QO=\u5927\u6d0b\u6d32\u8fb9\u8fdc\u7fa4\u5c9b
 territories.EC=\u5384\u74dc\u591a\u5c14
 territories.DZ=\u963f\u5c14\u53ca\u5229\u4e9a
@@ -333,9 +377,10 @@ territories.QA=\u5361\u5854\u5c14
 territories.039=\u5357\u6b27
 territories.DO=\u591a\u7c73\u5c3c\u52a0\u5171\u548c\u56fd
 territories.PY=\u5df4\u62c9\u572d
+territories.DM=\u591a\u7c73\u5c3c\u52a0
 territories.035=\u4e1c\u5357\u4e9a
-territories.DM=\u591a\u7c73\u5c3c\u52a0\u5c98
 territories.PW=\u5e15\u52b3
+territories.034=\u5357\u4e9a
 territories.DK=\u4e39\u9ea6
 territories.DJ=\u5409\u5e03\u63d0
 territories.PT=\u8461\u8404\u7259
@@ -365,15 +410,16 @@ territories.CN=\u4e2d\u56fd
 territories.CM=\u5580\u9ea6\u9686
 territories.CL=\u667a\u5229
 territories.CK=\u5e93\u514b\u7fa4\u5c9b
+territories.021=\u7f8e\u6d32\u5317\u90e8
 territories.CI=\u8c61\u7259\u6d77\u5cb8
-territories.021=\u5317\u7f8e\u6d32
 territories.CH=\u745e\u58eb
-territories.CG=\u521a\u679c
+territories.CG=\u521a\u679c\uff08\u5e03\uff09
 territories.CF=\u4e2d\u975e\u5171\u548c\u56fd
-territories.CD=\u521a\u679c\u6c11\u4e3b\u5171\u548c\u56fd
+territories.CD=\u521a\u679c\uff08\u91d1\uff09
 territories.CC=\u79d1\u79d1\u65af\u7fa4\u5c9b
 territories.OM=\u963f\u66fc
 territories.CA=\u52a0\u62ff\u5927
+territories.419=\u62c9\u4e01\u7f8e\u6d32\u548c\u52a0\u52d2\u6bd4\u6d77
 territories.BZ=\u4f2f\u5229\u5179
 territories.BY=\u767d\u4fc4\u7f57\u65af
 territories.BW=\u535a\u8328\u74e6\u7eb3
@@ -382,31 +428,34 @@ territories.BT=\u4e0d\u4e39
 territories.BS=\u5df4\u54c8\u9a6c
 territories.BR=\u5df4\u897f
 territories.019=\u7f8e\u6d32
-territories.018=\u5357\u975e
+territories.018=\u975e\u6d32\u5357\u90e8
 territories.NZ=\u65b0\u897f\u5170
-territories.BO=\u73bb\u5229\u7ef4\u4e9a
 territories.017=\u4e2d\u975e
+territories.BO=\u73bb\u5229\u7ef4\u4e9a
 territories.BN=\u6587\u83b1
-territories.BM=\u767e\u6155\u5927
 territories.015=\u5317\u975e
+territories.BM=\u767e\u6155\u5927
 territories.014=\u4e1c\u975e
+territories.BL=\u5723\u5df4\u6cf0\u52d2\u7c73
 territories.013=\u4e2d\u7f8e\u6d32
 territories.NU=\u7ebd\u57c3
 territories.BJ=\u8d1d\u5b81
-territories.BI=\u5e03\u9686\u8fea
 territories.011=\u897f\u975e
+territories.BI=\u5e03\u9686\u8fea
+territories.172=\u72ec\u8054\u4f53
 territories.BH=\u5df4\u6797
 territories.NR=\u7459\u9c81
 territories.BG=\u4fdd\u52a0\u5229\u4e9a
 territories.BF=\u5e03\u57fa\u7eb3\u6cd5\u7d22
 territories.NP=\u5c3c\u6cca\u5c14
 territories.BE=\u6bd4\u5229\u65f6
+territories.ZZ=\u672a\u77e5\u6216\u65e0\u6548\u5730\u533a
 territories.NO=\u632a\u5a01
 territories.BD=\u5b5f\u52a0\u62c9\u56fd
 territories.BB=\u5df4\u5df4\u591a\u65af
 territories.ZW=\u6d25\u5df4\u5e03\u97e6
 territories.NL=\u8377\u5170
-territories.BA=\u6ce2\u65af\u5c3c\u4e9a\u548c\u9ed1\u5c71\u5171\u548c\u56fd
+territories.BA=\u6ce2\u65af\u5c3c\u4e9a\u548c\u9ed1\u585e\u54e5\u7ef4\u90a3
 territories.NI=\u5c3c\u52a0\u62c9\u74dc
 territories.NG=\u5c3c\u65e5\u5229\u4e9a
 territories.NF=\u8bfa\u798f\u514b\u5c9b
@@ -421,41 +470,44 @@ territories.AU=\u6fb3\u5927\u5229\u4e9a
 territories.AT=\u5965\u5730\u5229
 territories.AS=\u7f8e\u5c5e\u8428\u6469\u4e9a
 territories.AR=\u963f\u6839\u5ef7
-territories.009=\u5927\u6d0b\u6d32
 territories.AQ=\u5357\u6781\u6d32
+territories.009=\u5927\u6d0b\u6d32
 territories.MZ=\u83ab\u6851\u6bd4\u514b
 territories.AO=\u5b89\u54e5\u62c9
 territories.MY=\u9a6c\u6765\u897f\u4e9a
 territories.AN=\u8377\u5c5e\u5b89\u7684\u5217\u65af\u7fa4\u5c9b
 territories.MX=\u58a8\u897f\u54e5
-territories.005=\u5357\u7f8e\u6d32
 territories.AM=\u4e9a\u7f8e\u5c3c\u4e9a
+territories.005=\u5357\u7f8e\u6d32
 territories.MW=\u9a6c\u62c9\u7ef4
 territories.AL=\u963f\u5c14\u5df4\u5c3c\u4e9a
 territories.MV=\u9a6c\u5c14\u4ee3\u592b
+territories.003=\u5317\u7f8e\u6d32
 territories.ZA=\u5357\u975e
 territories.MU=\u6bdb\u91cc\u6c42\u65af
 territories.002=\u975e\u6d32
 territories.MT=\u9a6c\u8033\u4ed6
-territories.001=\u4e16\u754c
 territories.AI=\u5b89\u572d\u62c9
-territories.MS=\u8499\u7279\u585e\u62c9\u7fa4\u5c9b
+territories.001=\u4e16\u754c
+territories.MS=\u8499\u585e\u62c9\u7279\u7fa4\u5c9b
 territories.MR=\u6bdb\u91cc\u5854\u5c3c\u4e9a
 territories.AG=\u5b89\u63d0\u74dc\u548c\u5df4\u5e03\u8fbe
-territories.MQ=\u9a6c\u63d0\u5c3c\u514b\u5c9b
+territories.MQ=\u9a6c\u63d0\u5c3c\u514b\u7fa4\u5c9b
 territories.AF=\u963f\u5bcc\u6c57
 territories.MP=\u5317\u9a6c\u91cc\u4e9a\u7eb3\u7fa4\u5c9b
 territories.AE=\u963f\u62c9\u4f2f\u8054\u5408\u914b\u957f\u56fd
-territories.MO=\u4e2d\u56fd\u6fb3\u95e8\u7279\u522b\u884c\u653f\u533a
+territories.MO=\u6fb3\u95e8\u5730\u533a
 territories.AD=\u5b89\u9053\u5c14
 territories.MN=\u8499\u53e4
 territories.MM=\u7f05\u7538
 territories.ML=\u9a6c\u91cc
-territories.MK=\u9a6c\u5176\u987f\u738b\u56fd
+territories.MK=\u9a6c\u5176\u987f
 territories.YT=\u9a6c\u7ea6\u7279
 territories.MH=\u9a6c\u7ecd\u5c14\u7fa4\u5c9b
 territories.MG=\u9a6c\u8fbe\u52a0\u65af\u52a0
-territories.MD=\u6469\u5c14\u591a\u74e6\u5171\u548c\u56fd
+territories.MF=\u5723\u9a6c\u4e01
+territories.ME=\u9ed1\u5c71\u5171\u548c\u56fd
+territories.MD=\u6469\u5c14\u591a\u74e6
 territories.MC=\u6469\u7eb3\u54e5
 territories.MA=\u6469\u6d1b\u54e5
 territories.YE=\u4e5f\u95e8
@@ -478,21 +530,23 @@ territories.KZ=\u54c8\u8428\u514b\u65af\u5766
 territories.KY=\u5f00\u66fc\u7fa4\u5c9b
 territories.KW=\u79d1\u5a01\u7279
 territories.145=\u897f\u4e9a
+territories.143=\u4e2d\u4e9a
 territories.142=\u4e9a\u6d32
 territories.KR=\u97e9\u56fd
-territories.KP=\u5317\u671d\u9c9c
+territories.KP=\u671d\u9c9c
 territories.KN=\u5723\u57fa\u8328\u548c\u5c3c\u7ef4\u65af
 territories.KM=\u79d1\u6469\u7f57
 territories.KI=\u57fa\u91cc\u5df4\u65af
 territories.WS=\u8428\u6469\u4e9a
 territories.KH=\u67ec\u57d4\u5be8
-territories.KG=\u5409\u5c14\u5409\u514b\u65af\u5766
+territories.KG=\u5409\u5c14\u5409\u65af\u65af\u5766
 territories.KE=\u80af\u5c3c\u4e9a
 territories.WF=\u74e6\u5229\u65af\u548c\u5bcc\u56fe\u7eb3
 territories.JP=\u65e5\u672c
 territories.JO=\u7ea6\u65e6
 territories.JM=\u7259\u4e70\u52a0
 territories.VU=\u74e6\u52aa\u963f\u56fe
+territories.JE=\u6cfd\u897f\u5c9b
 territories.VN=\u8d8a\u5357
 territories.VI=\u7f8e\u5c5e\u7ef4\u4eac\u7fa4\u5c9b
 territories.VG=\u82f1\u5c5e\u7ef4\u4eac\u7fa4\u5c9b
@@ -507,6 +561,7 @@ territories.UZ=\u4e4c\u5179\u522b\u514b\u65af\u5766
 territories.IO=\u82f1\u5c5e\u5370\u5ea6\u6d0b\u9886\u5730
 territories.UY=\u4e4c\u62c9\u572d
 territories.IN=\u5370\u5ea6
+territories.IM=\u66fc\u5c9b
 territories.IL=\u4ee5\u8272\u5217
 territories.US=\u7f8e\u56fd
 territories.IE=\u7231\u5c14\u5170
@@ -522,78 +577,86 @@ territories.HN=\u6d2a\u90fd\u62c9\u65af
 territories.HM=\u8d6b\u5fb7\u4e0e\u9ea6\u514b\u5510\u7eb3\u7fa4\u5c9b
 territories.TW=\u53f0\u6e7e
 territories.TV=\u56fe\u74e6\u5362
-territories.HK=\u4e2d\u56fd\u9999\u6e2f\u7279\u522b\u884c\u653f\u533a
+territories.HK=\u9999\u6e2f\u5730\u533a
 territories.TT=\u7279\u7acb\u5c3c\u8fbe\u548c\u591a\u5df4\u54e5
 territories.TR=\u571f\u8033\u5176
 territories.TO=\u6c64\u52a0
 territories.TN=\u7a81\u5c3c\u65af
 territories.TM=\u571f\u5e93\u66fc\u65af\u5766
-languages.akk=\u963f\u5361\u5fb7\u6587
 languages.gwi=\u5409\u7ef4\u514b\u7434\u6587
+languages.akk=\u963f\u5361\u5fb7\u6587
+languages.eka=\u57c3\u514b\u4e18\u514b\u6587
 languages.ijo=\u4f0a\u4e54\u6587
-languages.xh=\u73ed\u56fe\u6587
+languages.xh=\u79d1\u8428\u6587
 languages.sux=\u82cf\u9a6c\u6587
 languages.sus=\u82cf\u82cf\u6587
-languages.mis=\u5404\u79cd\u4e0d\u540c\u8bed\u8a00
+languages.mis=\u5404\u79cd\u4e0d\u540c\u8bed\u7cfb
 languages.loz=\u6d1b\u5179\u6587
 languages.tog=\u6c64\u52a0\u6587\uff08\u5c3c\u4e9a\u8428\u5730\u533a\uff09
-languages.pon=\u6ce2\u90a3\u8d1d\u6587
+languages.pon=\u6ce2\u7eb3\u4f69\u6587
 languages.min=\u7c73\u5357\u5361\u4fdd\u6587
 languages.suk=\u82cf\u5e93\u9a6c\u6587
-languages.wo=\u6c83\u5c14\u592b\u6587
+languages.wo=\u6c83\u6d1b\u592b\u6587
+languages.lol=\u8292\u6208\u6587
 languages.kut=\u5e93\u7279\u5185\u6587
-languages.lol=\u8499\u53e4\u6587
 languages.mic=\u7c73\u514b\u9a6c\u514b\u6587
-languages.wa=\u83ef\u9686\u6587
+languages.wa=\u74e6\u9686\u6587
 languages.kum=\u5e93\u6885\u514b\u6587
 languages.zap=\u8428\u6ce2\u8482\u514b\u6587
+languages.ain=\u963f\u4f0a\u52aa\u6587
 languages.cus=\u5176\u4ed6\u5e93\u65bd\u7279\u8bed\u7cfb
-languages.doi=\u591a\u683c\u6765\u6587
-languages.jbo=\u6d1b\u5409\u822c\uff08\u4eba\u5de5\u8bed\u8a00\uff09
+languages.jbo=\u903b\u8f91\u6587
+languages.doi=\u591a\u683c\u62c9\u6587
+languages.zza=\u624e\u624e\u6587
 languages.vo=\u6c83\u62c9\u666e\u514b\u6587
 languages.oto=\u5965\u6258\u7c73\u8bed\u7cfb
 languages.vi=\u8d8a\u5357\u6587
 languages.vai=\u74e6\u4f0a\u6587
 languages.rar=\u62c9\u7f57\u6c64\u52a0\u6587
 languages.ve=\u6587\u8fbe\u6587
-languages.rap=\u62c9\u5e15\u52aa\u6587
+languages.rap=\u62c9\u5e15\u52aa\u4f0a\u6587
 languages.raj=\u62c9\u8d3e\u65af\u5766\u6587
 languages.ota=\u5965\u6258\u66fc\u571f\u8033\u5176\u6587
-languages.nzi=\u5c3c\u5179\u739b\u6587
+languages.nzi=\u6069\u6d4e\u9a6c\u6587
 languages.nap=\u62ff\u6ce2\u91cc\u6587
 languages.uz=\u4e4c\u5179\u522b\u514b\u6587
 languages.uga=\u4e4c\u52a0\u91cc\u7279\u6587
-languages.tmh=\u5854\u739b\u538d\u514b\u6587
+languages.tmh=\u5854\u9a6c\u5947\u514b\u6587
 languages.nai=\u5176\u4ed6\u5317\u7f8e\u5370\u7b2c\u5b89\u8bed\u7cfb
 languages.nah=\u7eb3\u74e6\u7279\u5c14\u6587
 languages.ur=\u4e4c\u5c14\u90fd\u6587
 languages.fat=\u82b3\u8482\u6587
 languages.uk=\u4e4c\u514b\u5170\u6587
+languages.egy=\u53e4\u57c3\u53ca\u6587
+languages.zxx=\u65e0\u8bed\u8a00\u5185\u5bb9
 languages.ug=\u7ef4\u543e\u5c14\u6587
 languages.fan=\u82b3\u683c\u6587
-languages.ssa=\u5176\u4ed6\u5c3c\u7f57\u8428\u54c8\u5170\u6587
-languages.bat=\u6ce2\u7f57\u7684\u6d77\u5730\u533a\u4e4b\u8bed\u8a00
+languages.ssa=\u975e\u6d32\u6492\u54c8\u62c9\u6c99\u6f20\u8fb9\u7f18\u5730\u5e26\u8bed\u8a00
 languages.mga=\u4e2d\u53e4\u7231\u5c14\u5170\u6587
-languages.nyo=\u5c3c\u7ea6\u7f57\u8bed\u65cf
+languages.bat=\u5176\u4ed6\u6ce2\u7f57\u7684\u8bed\u7cfb
+languages.nyo=\u5c3c\u7ea6\u7f57\u6587
 languages.bas=\u5df4\u8428\u6587
 languages.nyn=\u5c3c\u6602\u79d1\u52d2\u6587
 languages.nym=\u5c3c\u4e9a\u59c6\u97e6\u9f50\u6587
+languages.gsw=\u745e\u58eb\u5fb7\u6587
 languages.hmn=\u8d6b\u8499\u6587
 languages.ban=\u5df4\u91cc\u6587
-languages.osa=\u5965\u8428\u54f2\u6587
+languages.osa=\u5965\u8428\u683c\u6587
 languages.bal=\u4ffe\u8def\u652f\u6587
 languages.ty=\u5854\u897f\u63d0\u6587
-languages.bai=\u5df4\u7c73\u7d2f\u514b\u6587
-languages.tw=\u53f0\u6e7e\u6587
+languages.bai=\u5df4\u7c73\u7d2f\u514b\u8bed\u7cfb
+languages.tw=\u7279\u5a01\u6587
 languages.srr=\u8c22\u5217\u5c14\u6587
 languages.tli=\u7279\u6797\u5409\u7279\u6587
-languages.tt=\u9791\u977c\u6587
-languages.ts=\u7279\u677e\u52a0\u6587
+languages.tlh=\u514b\u6797\u8d21\u6587
+languages.tt=\u5854\u5854\u5c14\u6587
+languages.ts=\u5b97\u52a0\u6587
+languages.srn=Sranan Tongo\uff08\u6e90\u4e8e\u514b\u91cc\u5965\u5c14\u8bed\uff09
 languages.bad=\u73ed\u8fbe\u6587
 languages.tr=\u571f\u8033\u5176\u6587
 languages.to=\u6c64\u52a0\u6587
-languages.tn=\u7a81\u5c3c\u65af\u6587
-languages.tl=\u5854\u52a0\u8def\u65cf\u6587
+languages.tn=\u585e\u8328\u74e6\u7eb3\u6587
+languages.tl=\u5854\u52a0\u6d1b\u8bed
 languages.tk=\u571f\u5e93\u66fc\u6587
 languages.ti=\u63d0\u683c\u91cc\u5c3c\u4e9a\u6587
 languages.th=\u6cf0\u6587
@@ -601,72 +664,79 @@ languages.kru=\u5e93\u9c81\u514b\u6587
 languages.tg=\u5854\u5409\u514b\u6587
 languages.byn=\u5e03\u6797\u6587
 languages.te=\u6cf0\u5362\u56fa\u6587
-languages.csb=\u5361\u8212\u6587
 languages.kro=\u514b\u9c81\u6587
+languages.csb=\u5361\u8212\u6587
 languages.ta=\u6cf0\u7c73\u5c14\u6587
-languages.tkl=\u9640\u514b\u5a04\u6587
+languages.krl=\u5361\u7d2f\u5229\u4e9a\u8bed
+languages.tkl=\u6258\u514b\u52b3\u6587
+languages.efi=\u57c3\u83f2\u514b\u6587
 languages.sw=\u65af\u74e6\u5e0c\u91cc\u6587
 languages.sv=\u745e\u5178\u6587
-languages.su=\u82cf\u4e39\u6587
-languages.krc=\u5361\u62c9\u5361\u5c14\u5e15\u514b\u6587
+languages.su=\u5dfd\u4ed6\u8bed
+languages.krc=\u5361\u62c9\u6070\u4f0a\u5df4\u5c14\u5361\u5c14\u6587
 languages.st=\u585e\u7d22\u6258\u6587
-languages.ss=\u8f9b\u8f9b\u90a3\u63d0\u6587
+languages.ss=\u65af\u74e6\u7279\u6587
 languages.sr=\u585e\u5c14\u7ef4\u4e9a\u6587
 languages.sq=\u963f\u5c14\u5df4\u5c3c\u4e9a\u6587
 languages.men=\u95e8\u8fea\u6587
-languages.crp=\u514b\u91cc\u5965\u5c14\u8bed\u548c\u76ae\u94a6\u6587
+languages.crp=\u5176\u4ed6\u514b\u91cc\u5965\u5c14\u6df7\u5408\u8bed\u7cfb
 languages.so=\u7d22\u9a6c\u91cc\u6587
 languages.afh=\u963f\u5f17\u91cc\u5e0c\u5229\u6587
-languages.sn=\u585e\u5185\u52a0\u5c14\u6587
+languages.sn=\u7ecd\u7eb3\u6587
 languages.sm=\u8428\u6469\u4e9a\u6587
 languages.sl=\u65af\u6d1b\u6587\u5c3c\u4e9a\u6587
 languages.grc=\u53e4\u5e0c\u814a\u6587
 languages.sk=\u65af\u6d1b\u4f10\u514b\u6587
 languages.grb=\u683c\u5217\u535a\u6587
 languages.si=\u50e7\u4f3d\u7f57\u6587
-languages.sh=\u585e\u6ce2\u5c3c\u65af-\u514b\u7f57\u5730\u4e9a\u6587
-languages.afa=\u5176\u4ed6\u4e9a\u975e\u8bed\u7cfb
+languages.sh=\u585e\u5c14\u7ef4\u4e9a-\u514b\u7f57\u5730\u4e9a\u6587
 languages.crh=\u514b\u91cc\u7c73\u4e9a\u571f\u8033\u5176\u6587\uff1b\u514b\u91cc\u7c73\u4e9a\u5854\u5854\u6587
+languages.afa=\u5176\u4ed6\u4e9a\u975e\u8bed\u7cfb
 languages.sg=\u6851\u6208\u6587
-languages.se=\u5317\u8428\u8ff7\u6587
-languages.sd=\u82cf\u4e39\u6587
+languages.se=\u5317\u8428\u7c73\u6587
+languages.sd=\u4fe1\u5fb7\u6587
 languages.udm=\u4e4c\u5fb7\u7a46\u5c14\u7279\u6587
 languages.sc=\u8428\u4e01\u6587
 languages.sa=\u68b5\u6587
 languages.rw=\u5362\u65fa\u8fbe\u6587
+languages.nwc=\u5c3c\u74e6\u5c14\u6587 Classical Newari
 languages.ru=\u4fc4\u6587
 languages.mdr=\u66fc\u8fbe\u5c14
 languages.ro=\u7f57\u9a6c\u5c3c\u4e9a\u6587
 languages.rn=\u57fa\u9686\u8fea\u6587
-languages.rm=\u91cc\u6258\u7f57\u66fc\u65af\u6587
+languages.rm=\u5217\u6258\uff0d\u7f57\u66fc\u6587
+languages.fr_CH=\u745e\u58eb\u6cd5\u8bed
 languages.mdf=\u83ab\u514b\u6c99\u6587
 languages.tiv=\u8482\u592b\u6587
+languages.fr_CA=\u52a0\u62ff\u5927\u6cd5\u8bed
 languages.ady=\u963f\u8fea\u4f55\u6587
 languages.zun=\u7956\u5c3c\u8bed
 languages.kpe=\u514b\u4f69\u5217\u6587
 languages.qu=\u76d6\u4e18\u4e9a\u6587
 languages.tig=\u63d0\u683c\u96f7\u6587
 languages.son=\u6851\u6d77\u6587
-languages.cpp=\u4e0d\u7eaf\u7cb9\u4e4b\u8461\u56fd\u65b9\u8a00
-languages.sog=\u7d22\u683c\u8fea\u4e9a\u6587
+languages.cpp=\u5176\u4ed6\u4ee5\u8461\u8404\u7259\u6587\u4e3a\u57fa\u7840\u7684\u514b\u91cc\u5965\u5c14\u6df7\u5408\u8bed\u7cfb
+languages.rup=\u4e9a\u7f8e\u5c3c\u4e9a\u8bed
+languages.sog=\u53e4\u7c9f\u7279\u6587
 languages.ada=\u963f\u5f53\u6885\u6587
-languages.cpf=\u4e0d\u7eaf\u7cb9\u4e4b\u6cd5\u56fd\u65b9\u8a00
-languages.hit=\u897f\u53f0\u6587
-languages.kos=\u67ef\u53f8\u745e\u6069\u6587
-languages.cpe=\u4e0d\u7eaf\u7cb9\u4e4b\u82f1\u56fd\u65b9\u8a00
+languages.kos=\u79d1\u65af\u62c9\u4f0a\u6587
+languages.hit=\u8d6b\u68af\u6587
+languages.cpf=\u5176\u4ed6\u4ee5\u6cd5\u6587\u4e3a\u57fa\u7840\u7684\u514b\u91cc\u5965\u5c14\u6df7\u5408\u8bed\u7cfb
+languages.cpe=\u5176\u4ed6\u4ee5\u82f1\u6587\u4e3a\u57fa\u7840\u7684\u514b\u91cc\u5965\u5c14\u6df7\u5408\u8bed\u7cfb
 languages.him=\u8d6b\u9a6c\u67e5\u5229\u6587
-languages.got=\u54e5\u8fbe\u6587
-languages.hil=\u5e0c\u5229\u76d6\u519c\u6587
 languages.kok=\u521a\u5361\u5c3c\u6587
+languages.hil=\u5e0c\u5229\u76d6\u519c\u6587
+languages.got=\u54e5\u7279\u6587
 languages.gor=\u79d1\u6d1b\u6d85\u8fbe\u7f57\u6587
 languages.gon=\u5c97\u5fb7\u6587
 languages.din=\u4e01\u5361\u6587
-languages.nub=\u52aa\u6bd4\u4e9a\u6587
+languages.nub=\u52aa\u6bd4\u4e9a\u8bed\u7cfb
 languages.pt=\u8461\u8404\u7259\u6587
 languages.ps=\u666e\u4ec0\u56fe\u6587
 languages.fur=\u5f17\u7559\u5229\u6587
-languages.phn=\u8153\u5229\u57fa\u6587
-languages.goh=\u53e4\u4ee3\u9ad8\u5730\u5fb7\u6587
+languages.phn=\u8153\u5c3c\u57fa\u6587
+languages.de_CH=\u9ad8\u5730\u5fb7\u6587 (\u745e\u58eb)
+languages.goh=\u53e4\u9ad8\u5730\u5fb7\u6587
 languages.snk=\u7d22\u5c3c\u57fa\u6587
 languages.cop=\u79d1\u666e\u7279\u6587
 languages.yap=\u96c5\u6d66\u6587
@@ -675,34 +745,37 @@ languages.yao=\u7476\u65cf\u6587
 languages.phi=\u5176\u4ed6\u83f2\u5f8b\u5bbe\u8bed\u7cfb
 languages.pl=\u6ce2\u5170\u6587
 languages.ace=\u4e9a\u9f50\u6587
-languages.pi=\u5e15\u5229\u6587
+languages.pi=\u5df4\u5229\u6587
+languages.pt_PT=\u4f9d\u4f2f\u5229\u4e9a\u8461\u8404\u7259\u6587
 languages.pa=\u65c1\u906e\u666e\u6587
 languages.bug=\u5e03\u5409\u6587
 languages.iba=\u4f0a\u73ed\u6587
-languages.sms=\u53f8\u5bc7\u7279\u8428\u8ff7\u6587
+languages.sms=\u65af\u79d1\u7279\u8428\u7c73\u6587
 languages.bua=\u5e03\u91cc\u4e9a\u7279\u6587
 languages.mas=\u8428\u4f0a\u8bed
-languages.smn=\u4f9d\u7eb3\u65e5\u8428\u8ff7\u6587
-languages.os=\u5965\u585e\u63d0\u6587
-languages.map=\u9a6c\u6765\u4e9a\u73bb\u91cc\u5c3c\u897f\u4e9a\u8bed\u7cfb
+languages.smn=\u4f0a\u7eb3\u91cc\u8428\u7c73\u8bed
+languages.os=\u5965\u585e\u68af\u6587
+languages.map=\u6fb3\u65af\u7279\u7f57\u5c3c\u897f\u4e9a\u8bed\u7cfb
 languages.or=\u6b27\u91cc\u4e9a\u6587
 languages.man=\u66fc\u4e01\u54e5\u6587
-languages.smj=\u5362\u4e50\u8428\u8ff7\u6587
-languages.smi=\u5176\u4ed6\u8428\u8ff7\u6587
+languages.smj=Lule \u8428\u7c73\u8bed
+languages.smi=\u5176\u4ed6\u8428\u7c73\u6587
 languages.mak=\u671b\u52a0\u9521\u6587
-languages.om=\u963f\u66fc\u6587
+languages.om=\u5965\u6d1b\u83ab\u6587
 languages.mai=\u8fc8\u8482\u5229\u6587
-languages.oj=\u5965\u5b63\u5e03\u74e6\u6587
+languages.oj=\u5965\u5409\u5e03\u74e6\u6587
 languages.mag=\u9a6c\u52a0\u4f0a\u6587
 languages.mad=\u9a6c\u90fd\u62c9\u6587
-languages.sma=\u5357\u8428\u8ff7\u6587
-languages.oc=\u5965\u897f\u5766\u6587
+languages.sma=\u5357\u8428\u7c73\u6587
+languages.oc=\u5965\u514b\u897f\u5510\u6587(1500\u4ee5\u540e)
 languages.nso=\u5317\u7d22\u6258\u6587
 languages.btk=\u5df4\u5854\u514b\u6587
 languages.myv=\u4fc4\u65e5\u4e9a\u6587
-languages.dgr=\u591a\u683c\u6765\u6587
-languages.ny=\u5c3c\u6602\u52a0\u6587\uff1b\u5207\u74e6\u6587\uff1b\u5207\u74e6\u6587
-languages.myn=\u739b\u96c5\u6587
+languages.es_ES=\u897f\u73ed\u7259\u8bed\uff08\u4f0a\u6bd4\u5229\u4e9a\uff09
+languages.de_AT=\u5965\u5730\u5229\u5fb7\u8bed
+languages.dgr=\u591a\u683c\u91cc\u5e03\u6587
+languages.ny=\u5c3c\u626c\u8d3e\u6587\uff1b\u9f50\u5207\u74e6\u6587\uff1b\u5207\u74e6\u6587
+languages.myn=\u739b\u96c5\u8bed\u7cfb
 languages.nv=\u7eb3\u74e6\u970d\u6587
 languages.kmb=\u91d1\u90a6\u675c\u6587
 languages.nr=\u5357\u90e8\u6069\u5fb7\u8d1d\u52d2\u6587
@@ -710,39 +783,44 @@ languages.gmh=\u4e2d\u53e4\u9ad8\u5730\u5fb7\u6587
 languages.no=\u632a\u5a01\u6587
 languages.nn=\u632a\u5a01\u5c3c\u8bfa\u65af\u514b\u6587
 languages.nl=\u8377\u5170\u6587
+languages.root=root
 languages.ng=\u6069\u4e1c\u52a0\u6587
 languages.sla=\u5176\u4ed6\u65af\u62c9\u592b\u8bed\u7cfb
 languages.ne=\u5c3c\u6cca\u5c14\u6587
 languages.nd=\u5317\u6069\u5fb7\u8d1d\u52d2\u6587
 languages.cmc=\u67e5\u7c73\u514b\u6587
-languages.tet=\u7279\u56fe\u4eec\u6587
+languages.tet=\u7279\u5854\u59c6\u6587
 languages.nb=\u632a\u5a01\u535a\u514b\u9a6c\u5c14\u6587
 languages.na=\u7459\u9c81\u6587
-languages.ter=\u7279\u558f\u8bfa\u6587
-languages.tem=\u4f53\u59c6\u5450\u6587
+languages.ter=\u7279\u5217\u7eb3\u6587
+languages.tem=\u6ed5\u5185\u8bed
 languages.my=\u7f05\u7538\u6587
 languages.lez=\u83b1\u5179\u4f9d\u6602\u6587
 languages.mt=\u9a6c\u8033\u4ed6\u6587
+languages.frs=\u4e1c\u5f17\u91cc\u897f\u4e9a\u6587
 languages.peo=\u53e4\u8001\u6ce2\u65af\u8bed
 languages.ms=\u9a6c\u6765\u6587
+languages.frr=\u5317\u5f17\u91cc\u897f\u4e9a\u8bed
 languages.mr=\u9a6c\u62c9\u5730\u6587
 languages.fro=\u53e4\u6cd5\u6587
 languages.mo=\u6469\u5c14\u591a\u74e6\u6587
 languages.mn=\u8499\u53e4\u6587
 languages.frm=\u4e2d\u53e4\u6cd5\u6587
 languages.ml=\u9a6c\u6765\u4e9a\u62c9\u59c6\u6587
-languages.jrb=\u72b9\u592a\u963f\u62c9\u4f2f\u8bed\u7cfb
+languages.jrb=\u72b9\u592a\u963f\u62c9\u4f2f\u6587
 languages.mk=\u9a6c\u5176\u987f\u6587
 languages.mi=\u6bdb\u5229\u6587
 languages.mh=\u9a6c\u7ecd\u5c14\u6587
 languages.mg=\u9a6c\u5c14\u52a0\u4ec0\u6587
-languages.mwr=\u9a6c\u5c14\u5c3c\u91cc\u6587
+languages.nqo=\u897f\u975e\u4e66\u9762\u8bed\u8a00
+languages.mwr=\u9a6c\u5c14\u74e6\u5229\u6587
 languages.bra=\u5e03\u62c9\u6770\u6587
-languages.lv=\u62c9\u812b\u7dad\u4e9e\u6587
+languages.mwl=\u7c73\u5170\u5fb7\u65af\u6587
 languages.den=\u53f8\u96f7\u592b\u6587
+languages.lv=\u62c9\u8131\u7ef4\u4e9a\u6587
 languages.lu=\u9c81\u5df4\u52a0\u4e39\u52a0\u6587
+languages.del=\u7279\u62c9\u534e\u6587
 languages.lt=\u7acb\u9676\u5b9b\u6587
-languages.del=\u7279\u62c9\u74e6\u5370\u7b2c\u5b89\u4eba\u6587
 languages.lo=\u8001\u631d\u6587
 languages.ln=\u6797\u52a0\u62c9\u6587
 languages.li=\u6dcb\u5e03\u5c14\u5409\u6587
@@ -750,7 +828,7 @@ languages.ewo=\u65fa\u675c\u6587
 languages.lg=\u5362\u5e72\u8fbe\u6587
 languages.lb=\u5362\u68ee\u5821\u6587
 languages.la=\u62c9\u4e01\u6587
-languages.jpr=\u72b9\u592a\u6ce2\u65af\u8bed\u7cfb
+languages.jpr=\u72b9\u592a\u6ce2\u65af\u6587
 languages.vot=\u6c83\u63d0\u514b\u6587
 languages.sit=\u5176\u4ed6\u6c49\u85cf\u8bed\u7cfb
 languages.ky=\u5409\u5c14\u5409\u65af\u6587
@@ -762,103 +840,108 @@ languages.ks=\u514b\u4ec0\u7c73\u5c14\u6587
 languages.kr=\u5361\u52aa\u91cc\u6587
 languages.awa=\u963f\u74e6\u4e54\u6587
 languages.ko=\u97e9\u6587
-languages.kn=\u57c3\u7eb3\u5fb7\u6587
+languages.kn=\u574e\u7eb3\u8fbe\u6587
 languages.km=\u67ec\u57d4\u5be8\u6587
+languages.en_GB=\u82f1\u8bed\uff08\u82f1\u56fd\uff09
 languages.kl=\u683c\u9675\u5170\u6587
 languages.kk=\u54c8\u8428\u514b\u6587
 languages.rom=\u5409\u666e\u8d5b\u6587
-languages.kj=\u5173\u740a\u739b\u6587
+languages.kj=\u5bbd\u4e9a\u739b\u6587
 languages.sid=\u6089\u8fbe\u6469\u6587
 languages.ki=\u5409\u5e93\u5c24\u6587
 languages.kg=\u521a\u679c\u6587
 languages.non=\u53e4\u8bfa\u5c14\u65af\u6587
 languages.ka=\u683c\u9c81\u5409\u4e9a\u6587
-languages.mus=\u6469\u65af\u79d1\u683c\u6587
+languages.mus=\u514b\u91cc\u514b\u6587
 languages.roa=\u5176\u4ed6\u62c9\u4e01\u8bed\u7cfb
 languages.nog=\u8bfa\u76d6\u6587
-languages.mun=\u8499\u8fbe\u6587
-languages.mul=\u591a\u79cd\u8bed\u8a00
+languages.mun=\u8499\u8fbe\u8bed\u7cfb
+languages.mul=\u591a\u79cd\u8bed\u7cfb
 languages.jv=\u722a\u54c7\u6587
 languages.gil=\u5409\u5c14\u4f2f\u7279\u65af\u6587
 languages.znd=\u8d5e\u5fb7\u6587
 languages.shn=\u63b8\u6587
 languages.fon=\u4e30\u6587
-languages.xal=\u5361\u5566\u8ff7\u514b\u6587
+languages.xal=\u5361\u5c14\u6885\u514b\u6587
 languages.aus=\u6fb3\u5927\u5229\u4e9a\u8bed\u7cfb
 languages.kho=\u548c\u7530\u6587
 languages.ja=\u65e5\u6587
-languages.khi=\u5176\u4ed6\u79d1\u4f0a\u6851\u6587
+languages.khi=\u5176\u4ed6\u79d1\u4f0a\u6851\u8bed\u7cfb
 languages.pau=\u5e15\u52b3\u6587
 languages.chy=\u590f\u5ef6\u6587
-languages.tai=\u5176\u4ed6\u6cf0\u6587
-languages.iu=\u7231\u65af\u57fa\u6469\u6587
-languages.pap=\u5e15\u76ae\u4e9a\u5185\u6258\u6587
+languages.tai=\u50a3\u8bed\u8bf8\u8bed\u8a00\uff08\u5176\u4ed6\uff09
+languages.iu=\u4f0a\u52aa\u4f0a\u7279\u6587
+languages.pap=\u5e15\u76ae\u4e9a\u95e8\u6258\u6587
 languages.it=\u610f\u5927\u5229\u6587
 languages.sgn=\u624b\u8bed
-languages.kha=\u5361\u897f\u6587
 languages.is=\u51b0\u5c9b\u6587
+languages.kha=\u5361\u897f\u6587
 languages.chr=\u5f7b\u7f57\u57fa\u6587
 languages.pam=\u90a6\u677f\u7259\u6587
 languages.pal=\u5e15\u62c9\u7ef4\u6587
 languages.chp=\u4f69\u74e6\u626c\u6587
+languages.io=\u4f0a\u591a\u6587
 languages.cho=\u4e54\u514b\u6258\u6587
-languages.io=\u7231\u5fb7\u83aa\u6587\uff08\u4eba\u5de5\u8bed\u8a00\uff09
 languages.chn=\u5951\u52aa\u514b\u6587
 languages.chm=\u9a6c\u91cc\u6587
 languages.tyv=\u56fe\u74e6\u6587
 languages.bnt=\u73ed\u56fe\u6587
-languages.pag=\u90a6\u963f\u897f\u5357\u6587
-languages.chk=\u695a\u543e\u514b\u6587
+languages.pag=\u90a6\u963f\u897f\u6960\u6587
 languages.ik=\u4f9d\u5974\u76ae\u7ef4\u514b\u6587
-languages.haw=\u590f\u5a01\u5937\u6587
+languages.chk=\u695a\u543e\u514b\u6587
 languages.ii=\u56db\u5ddd\u8bdd
+languages.haw=\u590f\u5a01\u5937\u6587
 languages.lam=\u5170\u5df4\u6587
-languages.chg=\u67e5\u52a0\u6587
 languages.ig=\u4f0a\u683c\u535a\u6587
+languages.chg=\u67e5\u52a0\u6587
 languages.sga=\u53e4\u7231\u5c14\u5170\u6587
 languages.paa=\u5176\u4ed6\u5df4\u5e03\u4e9a\u6587
-languages.ie=\u62c9\u4e01\u56fd\u9645\u6587
+languages.ie=\u56fd\u9645\u8bedE
 languages.id=\u5370\u5ea6\u5c3c\u897f\u4e9a\u6587
 languages.lah=\u62c9\u4ea8\u8fbe\u6587
-languages.chb=\u5951\u5e03\u5361\u6587
 languages.day=\u8fbe\u96c5\u514b\u6587
-languages.ia=\u62c9\u4e01\u56fd\u9645\u6587
+languages.chb=\u5951\u5e03\u5361\u6587
+languages.ia=\u56fd\u9645\u8bed
 languages.lad=\u62c9\u8fea\u8bfa\u6587
-languages.dar=\u8fbe\u5c14\u683c\u74e6\u6587
-languages.hai=\u6d77\u8fbe\u6587
 languages.hz=\u8d6b\u96f7\u7f57\u6587
+languages.hai=\u6d77\u8fbe\u6587
+languages.dar=\u8fbe\u5c14\u683c\u74e6\u6587
 languages.hy=\u4e9a\u7f8e\u5c3c\u4e9a\u6587
-languages.ath=\u5176\u4ed6\u963f\u6492\u5df4\u65af\u5361\u8bed\u7cfb
+languages.ath=\u963f\u8428\u5e15\u65af\u574e\u8bed\u7cfb
 languages.hu=\u5308\u7259\u5229\u6587
+languages.ht=\u6d77\u5730\u6587
 languages.dak=\u8fbe\u79d1\u4ed6\u6587
 languages.hr=\u514b\u7f57\u5730\u4e9a\u6587
-languages.ho=\u65b0\u91cc\u6728\u6258\u6587
+languages.ho=\u5e0c\u91cc\u83ab\u56fe\u6587
 languages.hi=\u5370\u5730\u6587
 languages.dyu=\u8fea\u5c24\u62c9\u6587
 languages.he=\u5e0c\u4f2f\u6765\u6587
-languages.ast=\u963f\u65af\u56fe\u91cc\u4e9a\u601d\u7279\u8bed
+languages.ast=\u963f\u65af\u56fe\u91cc\u4e9a\u601d\u7279\u6587
+languages.kfo=\u79d1\u7f57\u8bed
 languages.ha=\u8c6a\u6492\u6587
 languages.wen=\u7d22\u5e03\u8bf8\u8bed\u8a00
 languages.gv=\u9a6c\u6069\u5c9b\u6587
 languages.gu=\u53e4\u52a0\u62c9\u63d0\u6587
 languages.sem=\u5176\u4ed6\u95ea\u65cf\u8bed\u7cfb
 languages.sel=\u585e\u5c14\u5e93\u666e\u6587
-languages.iro=\u4f0a\u6d1b\u90ed\u4f0a\u8d39\u6587
+languages.iro=\u6613\u6d1b\u9b41\u8bed
 languages.gn=\u74dc\u62c9\u5c3c\u6587
 languages.gl=\u52a0\u5229\u897f\u4e9a\u6587
+languages.en_CA=\u52a0\u62ff\u5927\u82f1\u8bed
 languages.arw=\u963f\u62c9\u74e6\u514b\u6587
-languages.gd=\u82cf\u683c\u5170- \u76d6\u5c14\u6587
-languages.art=\u5176\u4ed6\u4eba\u5de5\u8bed\u8a00
 languages.gez=\u5409\u5179\u6587
+languages.art=\u5176\u4ed6\u4eba\u5de5\u8bed\u7cfb
+languages.gd=\u82cf\u683c\u5170\u76d6\u5c14\u6587
 languages.ira=\u4f0a\u6717\u6587
 languages.ga=\u7231\u5c14\u5170\u6587
 languages.arp=\u963f\u62c9\u5e15\u970d\u6587
 languages.arn=\u963f\u52b3\u574e\u6587
 languages.fy=\u5f17\u91cc\u65af\u5170\u6587
 languages.bla=\u53f8\u514b\u53f8\u5361\u6587
-languages.ypk=\u55bb\u76ae\u514b\u6587
-languages.fr=\u6cd5\u6587
+languages.gem=\u5176\u4ed6\u65e5\u5c14\u66fc\u8bed\u7cfb
+languages.ypk=\u5c24\u76ae\u514b\u8bf8\u8bed\u8a00
 languages.arc=\u963f\u62c9\u7c73\u6587
+languages.fr=\u6cd5\u6587
 languages.fo=\u6cd5\u7f57\u6587
 languages.cel=\u5176\u4ed6\u51ef\u5c14\u7279\u8bed\u7cfb
 languages.fj=\u6590\u6d4e\u6587
@@ -867,48 +950,57 @@ languages.ff=\u592b\u62c9\u6587
 languages.tvl=\u56fe\u74e6\u5362\u6587
 languages.ceb=\u5bbf\u52a1\u6587
 languages.fa=\u6ce2\u65af\u6587
+languages.en_AU=\u82f1\u8bed\uff08\u6fb3\u5927\u5229\u4e9a\uff09
+languages.zh_Hans=\u4e2d\u6587\uff08\u7b80\u4f53\uff09
+languages.zh_Hant=\u4e2d\u6587\uff08\u7e41\u4f53\uff09
 languages.eu=\u5df4\u65af\u514b\u6587
 languages.sco=\u82cf\u683c\u5170\u6587
 languages.et=\u7231\u6c99\u5c3c\u4e9a\u6587
+languages.scn=\u897f\u897f\u91cc\u6587
 languages.es=\u897f\u73ed\u7259\u6587
 languages.eo=\u4e16\u754c\u6587
 languages.en=\u82f1\u6587
 languages.el=\u5e0c\u814a\u6587
-languages.tut=\u5176\u4ed6\u963f\u5c14\u6cf0\u8bed\u7cfb
+languages.tut=\u963f\u5c14\u6cf0\u8bf8\u8bed\u8a00\uff08\u5176\u4ed6\uff09
 languages.niu=\u7ebd\u57c3\u6587
-languages.tup=\u56fe\u5339\u6587
-languages.ee=\u5e7d\u6587
+languages.tup=\u56fe\u76ae\u8bed\u7cfb
+languages.ee=\u57c3\u7ef4\u6587
 languages.tum=\u901a\u5e03\u5361\u6587
+languages.nl_BE=\u5f17\u62c9\u8292\u6587
+languages.es_419=\u62c9\u4e01\u7f8e\u6d32\u897f\u73ed\u7259\u8bed
 languages.mos=\u83ab\u897f\u6587
 languages.dz=\u4e0d\u4e39\u6587
-languages.nic=\u5176\u4ed6\u5c3c\u65e5\u5c14\u521a\u679c\u8bed\u7cfb
-languages.dv=\u8fea\u7ef4\u5e0c\u6587
-languages.fiu=\u82ac\u5308\u6587\uff08\u5176\u4ed6\uff09
+languages.kcg=kcg
+languages.nic=\u5176\u4ed6\u5c3c\u65e5\u5c14\u79d1\u5c14\u591a\u51e1\u8bed\u7cfb
 languages.lus=\u5362\u6652\u6587
-languages.nia=\u5c3c\u5c14\u53f8\u6587
+languages.fiu=\u5176\u4ed6\u82ac\u5170\u4e4c\u6208\u5c14\u8bed\u7cfb
+languages.dv=\u8fea\u7ef4\u5e0c\u6587
+languages.nia=\u5c3c\u4e9a\u65af\u6587
 languages.moh=\u6469\u970d\u514b\u6587
 languages.luo=\u5362\u5965\u6587
 languages.lun=\u9686\u8fbe\u6587
 languages.apa=\u963f\u5e15\u5207\u6587
+languages.fil=\u83f2\u5f8b\u5bbe\u6587
 languages.lui=\u8def\u6613\u585e\u8bfa\u6587
 languages.hup=\u80e1\u5e15\u6587
+languages.cch=cch
 languages.bin=\u6bd4\u5c3c\u6587
 languages.de=\u5fb7\u6587
 languages.lua=\u9c81\u5df4\u9c81\u74e6\u6587
 languages.bik=\u6bd5\u5e93\u5c14\u6587
 languages.was=\u74e6\u7ecd\u6587
 languages.und=\u672a\u5b9a\u8bed\u79cd
-languages.war=\u4f64\u745e\u6587
+languages.war=\u74e6\u8d56\u6587
 languages.da=\u4e39\u9ea6\u6587
 languages.dum=\u4e2d\u53e4\u8377\u5170\u6587
 languages.wal=\u74e6\u62c9\u83ab\u6587
-languages.mno=\u9a6c\u8bfa\u535a\u6c61\u6587
-languages.wak=\u74e6\u5580\u5c71\u6587
-languages.sat=\u6851\u55d2\u5229\u6587
+languages.mno=\u9a6c\u8bfa\u535a\u8bed\u7cfb
+languages.wak=\u74e6\u5361\u4ec0\u8bf8\u8bed\u8a00
+languages.sat=\u6851\u5854\u5229\u6587
 languages.cy=\u5a01\u5c14\u58eb\u6587
-languages.sas=\u585e\u585e\u5361\u6587
-languages.cv=\u695a\u74e6\u4ec0\u6587
+languages.sas=\u8428\u8428\u514b\u6587
 languages.kbd=\u5361\u5df4\u5c14\u8fbe\u6587
+languages.cv=\u695a\u74e6\u4ec0\u6587
 languages.cu=\u5b97\u6559\u65af\u62c9\u592b\u6587
 languages.mni=\u66fc\u5c3c\u666e\u91cc\u6587
 languages.cs=\u6377\u514b\u6587
@@ -920,40 +1012,43 @@ languages.co=\u79d1\u897f\u5609\u6587
 languages.sai=\u5176\u4ed6\u5357\u7f8e\u5370\u7b2c\u5b89\u6587
 languages.mnc=\u6ee1\u6587
 languages.sah=\u96c5\u5e93\u7279\u6587
-languages.gba=\u845b\u5df4\u4e9a\u6587
-languages.inh=\u5370\u53e4\u4ec0\u6587
 languages.kaw=\u5361\u5a01\u6587
+languages.inh=\u5370\u53e4\u4ec0\u6587
+languages.gba=\u845b\u5df4\u4e9a\u6587
 languages.sad=\u6563\u8fbe\u7ef4\u6587
 languages.ch=\u67e5\u83ab\u7f57\u6587
-languages.bho=\u535a\u6770\u666e\u5c14\u6587
 languages.ine=\u5176\u4ed6\u5370\u6b27\u8bed\u7cfb
+languages.bho=\u535a\u6770\u666e\u5c14\u6587
 languages.enm=\u4e2d\u53e4\u82f1\u6587
-languages.ce=\u8f66\u81e3\u6587
-languages.inc=\u5370\u5ea6\u6587\uff08\u5176\u4ed6\uff09
 languages.kar=\u5580\u4f26\u6587
+languages.inc=\u5176\u4ed6\u5370\u5ea6\u8bed\u7cfb
+languages.ce=\u8f66\u81e3\u6587
 languages.gay=\u8fe6\u7ea6\u6587
 languages.ca=\u52a0\u6cf0\u7f57\u5c3c\u4e9a\u6587
-languages.umb=\u59c6\u5d29\u675c\u6587
+languages.umb=\u7fc1\u672c\u675c\u6587
 languages.syr=\u53d9\u5229\u4e9a\u6587
 languages.kam=\u5361\u59c6\u5df4\u6587
+languages.anp=\u6602\u52a0\u8bed
 languages.tsi=\u8482\u59c6\u897f\u4e9a\u6587
-languages.ang=\u4e2d\u53e4\u82f1\u8bed
-languages.cau=\u5176\u4ed6\u9ad8\u52a0\u7d22\u8bed\u7cfb
+languages.kaj=kaj
+languages.ang=\u53e4\u82f1\u6587
 languages.kac=\u5361\u7434\u6587
+languages.cau=\u5176\u4ed6\u9ad8\u52a0\u7d22\u8bed\u7cfb
 languages.kab=\u5361\u6bd4\u5c14\u6587
-languages.bs=\u6ce2\u65af\u5c3c\u4e9a\u6587
 languages.kaa=\u5361\u62c9\u5361\u5c14\u5e15\u514b\u6587
-languages.br=\u5e03\u91cc\u591a\u5c3c\u6587
+languages.bs=\u6ce2\u65af\u5c3c\u4e9a\u6587
 languages.car=\u5df4\u52d2\u6bd4\u6587
-languages.bo=\u897f\u85cf\u6587
+languages.br=\u5e03\u91cc\u591a\u5c3c\u6587
+languages.bo=\u85cf\u6587
 languages.bn=\u5b5f\u52a0\u62c9\u6587
 languages.bm=\u73ed\u5df4\u62c9\u6587
 languages.gaa=\u52a0\u6587
-languages.bi=\u6bd4\u65af\u62c9\u9a6c\u6587
 languages.cai=\u5176\u4ed6\u4e2d\u7f8e\u5370\u7b2c\u5b89\u8bed\u7cfb
+languages.bi=\u6bd4\u65af\u62c9\u9a6c\u6587
 languages.bh=\u6bd4\u54c8\u5c14\u6587
 languages.bg=\u4fdd\u52a0\u5229\u4e9a\u6587
 languages.be=\u767d\u4fc4\u7f57\u65af\u6587
+languages.pt_BR=\u8461\u8404\u7259\u8bed\uff08\u5df4\u897f\uff09
 languages.cad=\u5361\u591a\u6587
 languages.ba=\u5df4\u4ec0\u5ba2\u5c14\u6587
 languages.zu=\u7956\u9c81\u6587
@@ -964,29 +1059,39 @@ languages.az=\u963f\u585e\u62dc\u7586\u6587
 languages.ay=\u827e\u9a6c\u62c9\u6587
 languages.av=\u963f\u74e6\u5c14\u6587
 languages.as=\u963f\u8428\u59c6\u6587
+languages.dsb=\u4e0b\u7d22\u5e03\u6587
 languages.ar=\u963f\u62c9\u4f2f\u6587
-languages.dsb=\u4e0b\u585e\u5c14\u7ef4\u4e9a\u6587
-languages.elx=\u827e\u62c9\u7c73\u7279\u6587
 languages.ilo=\u4f0a\u6d1b\u5e72\u8bfa\u6587
+languages.elx=\u827e\u62c9\u7c73\u7279\u6587
 languages.zh=\u4e2d\u6587
-languages.pra=\u5370\u5ea6\u53e4\u4ee3\u53ca\u4e2d\u4e16\u7eaa\u4e4b\u4e2d\u90e8\u53ca\u5317\u90e8\u65b9\u8a00
+languages.an=\u963f\u62c9\u8d21\u6587
+languages.pra=\u666e\u62c9\u514b\u91cc\u7279\u8bf8\u8bed\u8a00
 languages.am=\u963f\u59c6\u54c8\u62c9\u6587
 languages.new=\u5c3c\u74e6\u5c14\u6587
 languages.ak=\u963f\u80af\u6587
-languages.za=\u85cf\u6587
+languages.za=\u58ee\u8bed
+languages.en_US=\u82f1\u8bed\uff08\u7f8e\u56fd\uff09
 languages.af=\u5357\u975e\u8377\u5170\u6587
 languages.ae=\u963f\u7ef4\u65af\u5854\u6587
+languages.alt=\u5357\u963f\u5c14\u6cf0\u6587
 languages.ab=\u963f\u5e03\u54c8\u897f\u4e9a\u6587
 languages.aa=\u963f\u6cd5\u6587
 languages.yo=\u7ea6\u9c81\u5df4\u6587
 languages.alg=\u5176\u4ed6\u963f\u5c14\u8d21\u8bed\u7cfb
-languages.ale=\u963f\u7559\u7533\u7fa4\u5c9b\u4e4b\u571f\u8bed
-languages.mkh=\u5176\u4ed6\u8499\u5409\u8511\u6587
+languages.ale=\u963f\u7559\u7533\u6587
+languages.mkh=\u5176\u4ed6\u5b5f\u9ad8\u68c9\u8bed\u7cfb
 languages.yi=\u4f9d\u5730\u6587
 languages.dra=\u5176\u4ed6\u5fb7\u62c9\u7ef4\u8bed\u7cfb
-languages.ber=\u5317\u975e\u56de\u6559\u571f\u65cf\u4e4b\u8bed\u8a00
-languages.nds=\u5fb7\u56fd\u5317\u90e8\u7684\u5fb7\u6587\uff1b\u4f4e\u5730\u8428\u514b\u900a\u6587
+languages.ber=\u67cf\u67cf\u5c14\u6587
+languages.nds=\u4f4e\u5730\u5fb7\u6587\uff1b\u4f4e\u5730\u6492\u514b\u900a\u6587
 languages.bem=\u522b\u59c6\u5df4\u6587
 languages.bej=\u522b\u672d\u6587
 languages.tpi=\u6258\u514b\u76ae\u8f9b\u6587
+variants.1901=\u4f20\u7edf\u5fb7\u8bed\u62fc\u5b57\u5b66
+variants.1996=1996 \u5e74\u7684\u5fb7\u8bed\u62fc\u5b57\u5b66
+variants.POLYTON=\u591a(\u58f0)\u8c03\u8bed\u8a00
+variants.FONIPA=\u56fd\u9645\u97f3\u6807
+variants.AREVELA=\u4e1c\u4e9a\u7f8e\u5c3c\u4e9a\u8bed
+variants.SAAHO=\u8428\u970d
+variants.AREVMDA=\u897f\u4e9a\u7f8e\u5c3c\u4e9a\u8bed
 variants.REVISED=\u5df2\u4fee\u8ba2
index 01c043d07d4d6cf55d0fd984dd6047e7c4d7479b..e48836f786300afccff6450fc926de7811c447ac 100644 (file)
@@ -5,12 +5,32 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
+groupingSeparator=\uff0c
 currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
-shortMonths=1\u6708®2\u6708®3\u6708®4\u6708®5\u6708®6\u6708®7\u6708®8\u6708®9\u6708®10\u6708®11\u6708®12\u6708®®
-shortDateFormat=yy'\u5e74'M'\u6708'd'\u65e5'
-mediumDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'
-longDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'
-fullDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5' EEEE
-shortTimeFormat=ah:mm
+currenciesDisplayName.TWD=\u65b0\u53f0\u5e63
+currenciesDisplayName.ITL=\u610f\u5927\u5229\u91cc\u62c9
+currenciesDisplayName.SGD=\u65b0\u52a0\u5761\u5143
+currenciesDisplayName.BAM=\u6ce2\u65af\u5c3c\u4e9e-\u9ed1\u585e\u54e5\u7dad\u90a3\u53ef\u8f49\u63db\u99ac\u514b
+currenciesDisplayName.HKD=\u6e2f\u5143
+currenciesDisplayName.AUD=\u6fb3\u5143
+currenciesDisplayName.NZD=\u7d10\u897f\u862d\u5143
+currenciesDisplayName.BAD=\u6ce2\u65af\u5c3c\u4e9e-\u9ed1\u585e\u54e5\u7dad\u90a3\u7b2c\u7d0d\u723e
+currenciesDisplayName.CAD=\u52a0\u5143
+currenciesDisplayName.RSD=\u585e\u723e\u7dad\u4e9e\u7b2c\u7d0d\u723e
+shortDateFormat=yy\u5e74M\u6708d\u65e5
+mediumDateFormat=yyyy\u5e74M\u6708d\u65e5
+longDateFormat=yyyy\u5e74M\u6708d\u65e5
+fullDateFormat=yyyy\u5e74M\u6708d\u65e5EEEE
 mediumTimeFormat=ahh:mm:ss
-territories.MO=\u6fb3\u9580\u7279\u5225\u884c\u653f\u5340
+territories.TW=\u53f0\u7063
+territories.IT=\u610f\u5927\u5229
+languages.lol=\u8499\u53e4\u8a9e
+languages.it=\u610f\u5927\u5229\u6587
+variants.SOLBA=Stolvizza/Solbica \u65b9\u8a00
+variants.1901=\u50b3\u7d71\u5fb7\u570b\u62fc\u5b57\u6cd5
+variants.BISKE=San Giorgio/Bila \u65b9\u8a00
+variants.1996=1996 \u5fb7\u570b\u62fc\u5b57\u6cd5
+variants.NJIVA=Gniva/Njiva \u65b9\u8a00
+variants.OSOJS=Oseacco/Osojane \u65b9\u8a00
+variants.SCOTLAND=\u8607\u683c\u862d\u6a19\u6e96\u82f1\u8a9e
+variants.REVISED=\u5df2\u4fee\u8a02\u62fc\u5b57\u6cd5
index 505cf5f10d2348f37dbc0595c05a3a348854c549..8c5cf7c2d4248ba1f5d3fffb7b44621b0ce1ba9f 100644 (file)
 # This file was automatically generated by gnu.localegen from CLDR.
 
 currenciesDisplayName.YDD=\u8449\u9580\u7b2c\u7d0d\u723e
-currenciesDisplayName.TWD=\u65b0\u81fa\u5e63
 currenciesDisplayName.KES=\u80af\u5c3c\u4e9e\u5148\u4ee4
-currenciesDisplayName.BYB=\u767d\u4fc4\u7f85\u65af\u65b0\u76e7\u5e03 (1994-1999)
+currenciesDisplayName.TWD=\u65b0\u81fa\u5e63
 currenciesDisplayName.LKR=\u65af\u91cc\u862d\u5361\u76e7\u5e03
+currenciesDisplayName.BYB=\u767d\u4fc4\u7f85\u65af\u65b0\u76e7\u5e03 (1994-1999)
+currenciesDisplayName.TJS=\u5854\u5409\u514b\u7d22\u83ab\u5c3c
 currenciesDisplayName.RWF=\u76e7\u5b89\u9054\u6cd5\u90ce
-currenciesDisplayName.TJS=\u5854\u5409\u514b\u65af\u5766 \u7d22\u83ab\u5c3c
-currenciesDisplayName.SDP=\u8607\u4e39\u938a
-currenciesDisplayName.TJR=\u5854\u5409\u514b\u65af\u5766\u76e7\u5e03
 currenciesDisplayName.ERN=\u5384\u7acb\u7279\u91cc\u4e9e\u7d0d\u514b\u6cd5
+currenciesDisplayName.TJR=\u5854\u5409\u514b\u65af\u5766\u76e7\u5e03
+currenciesDisplayName.SDP=\u8607\u4e39\u938a
 currenciesDisplayName.GRD=\u5e0c\u81d8\u5fb7\u62c9\u514b\u99ac
 currenciesDisplayName.IEP=\u611b\u723e\u862d\u938a
 currenciesDisplayName.ARS=\u963f\u6839\u5ef7\u62ab\u7d22
+currenciesDisplayName.ARP=\u963f\u6839\u5ef7\u62ab\u7d22 (1983-1985)
 currenciesDisplayName.SDD=\u8607\u4e39\u7b2c\u7d0d\u723e
-currenciesDisplayName.ARP=\u963f\u6839\u5ef7\u62ab\u7d22(1983-1985)
 currenciesDisplayName.GEL=\u55ac\u6cbb\u62c9\u91cc
-currenciesDisplayName.GEK=\u55ac\u6cbb \u5eab\u65c1 \u62c9\u91cc
+currenciesDisplayName.GEK=\u55ac\u6cbb\u5eab\u65c1\u62c9\u91cc
 currenciesDisplayName.CRC=\u54e5\u65af\u5927\u9ece\u52a0\u79d1\u90ce
 currenciesDisplayName.FKP=\u798f\u514b\u862d\u7fa4\u5cf6\u938a
 currenciesDisplayName.EEK=\u611b\u6c99\u5c3c\u4e9e\u514b\u6717
 currenciesDisplayName.MDL=\u6469\u675c\u96f2\u5217\u4f0a
-currenciesDisplayName.ARA=\u963f\u6839\u5ef7\u5967\u65af\u7279\u7d0d\u723e
+currenciesDisplayName.HKD=\u6e2f\u5e63
 currenciesDisplayName.IQD=\u4f0a\u62c9\u514b\u7b2c\u7d0d\u723e
-currenciesDisplayName.SCR=\u585e\u820c\u723e\u7fa4\u5cf6\u76e7\u5e03
+currenciesDisplayName.ARA=\u963f\u6839\u5ef7\u5967\u65af\u7279\u7d0d\u723e
+currenciesDisplayName.SCR=\u585e\u5e2d\u723e\u76e7\u6bd4
 currenciesDisplayName.VUV=\u842c\u90a3\u675c\u842c\u675c
+currenciesDisplayName.KPW=\u5317\u97d3\u5713
 currenciesDisplayName.DKK=\u4e39\u9ea5\u514b\u7f85\u7d0d
-currenciesDisplayName.KPW=\u5317\u671d\u9bae\u5e63
+currenciesDisplayName.IDR=\u5370\u5c3c\u76fe
 currenciesDisplayName.GQE=\u8d64\u9053\u5e7e\u5167\u4e9e\u57c3\u594e\u52d2
-currenciesDisplayName.IDR=\u5370\u5c3c - \u76e7\u5e03
-currenciesDisplayName.LVR=\u62c9\u812b\u7dad\u4e9e\u76e7\u5e03
 currenciesDisplayName.SOS=\u7d22\u99ac\u5229\u4e9e\u5148\u4ee4
+currenciesDisplayName.LVR=\u62c9\u812b\u7dad\u4e9e\u76e7\u5e03
+currenciesDisplayName.EQE=\u57c3\u594e\u7dad\u52d2
 currenciesDisplayName.AED=\u963f\u62c9\u4f2f\u806f\u5408\u5927\u516c\u570b\u8fea\u723e\u6c57
-currenciesDisplayName.BWP=\u6ce2\u672d\u90a3 - \u666e\u62c9
 currenciesDisplayName.LVL=\u62c9\u812b\u7dad\u4e9e\u62c9\u7279\u9280\u5e63
+currenciesDisplayName.BWP=\u6ce2\u672d\u90a3\u666e\u62c9
 currenciesDisplayName.RUR=\u4fc4\u7f85\u65af\u76e7\u5e03 (1991-1998)
-currenciesDisplayName.NIO=\u5c3c\u52a0\u62c9\u74dc \u91d1\u54e5\u591a\u83ef
-currenciesDisplayName.ADP=\u5b89\u9053\u723e\u966a\u58eb\u7279
-currenciesDisplayName.FJD=\u6590\u6fdf\u5143
+currenciesDisplayName.NIO=\u5c3c\u52a0\u62c9\u74dc\u91d1\u79d1\u591a\u5df4
+currenciesDisplayName.XTS=XTS
 currenciesDisplayName.MOP=\u6fb3\u9580\u5143
+currenciesDisplayName.FJD=\u6590\u6fdf\u5143
+currenciesDisplayName.ADP=\u5b89\u9053\u723e\u966a\u58eb\u7279
 currenciesDisplayName.RUB=\u4fc4\u7f85\u65af\u76e7\u5e03
 currenciesDisplayName.CDF=\u525b\u679c\u6cd5\u90ce
 currenciesDisplayName.DJF=\u5409\u5e03\u5730\u6cd5\u90ce
-currenciesDisplayName.ECV=\u5384\u74dc\u591a\u723e\u7531\u91cc\u9054\u74e6\u5eb7\u65af\u5766 (UVC)
+currenciesDisplayName.UZS=\u70cf\u8332\u5225\u514b\u65af\u5766\u85a9\u6728
 currenciesDisplayName.SBD=\u7d22\u7f85\u9580\u7fa4\u5cf6\u5143
-currenciesDisplayName.UZS=\u70cf\u8332\u5225\u514b\u65af\u5766 \u85a9\u6728
+currenciesDisplayName.ECV=\u5384\u74dc\u591a UVC
+currenciesDisplayName.LUL=\u76e7\u68ee\u5821\u91d1\u878d\u6cd5\u90ce
 currenciesDisplayName.ECS=\u5384\u74dc\u591a\u8607\u514b\u96f7
-currenciesDisplayName.PHP=\u83f2\u5f8b\u8cd3\u62ab\u7d22
 currenciesDisplayName.THB=\u6cf0\u9296
+currenciesDisplayName.PHP=\u83f2\u5f8b\u8cd3\u62ab\u7d22
 currenciesDisplayName.LUF=\u76e7\u68ee\u5821\u6cd5\u90ce
+currenciesDisplayName.RHD=\u7f85\u5fb7\u897f\u4e9e\u5143
+currenciesDisplayName.LUC=\u76e7\u68ee\u5821\u53ef\u514c\u63db\u6cd5\u90ce
 currenciesDisplayName.FIM=\u82ac\u862d\u99ac\u514b
-currenciesDisplayName.TTD=\u5343\u91cc\u9054\u53ca\u6258\u5df4\u54e5r
-currenciesDisplayName.SZL=\u65af\u5a01\u58eb\u862d \u91cc\u90ce
+currenciesDisplayName.TTD=\u5343\u91cc\u9054\u53ca\u6258\u5df4\u54e5\u5143
+currenciesDisplayName.SZL=\u53f2\u74e6\u6fdf\u862d\u91cc\u6717\u5409\u5c3c
 currenciesDisplayName.MNT=\u8499\u53e4\u5716\u683c\u91cc\u514b
+currenciesDisplayName.UAK=\u70cf\u514b\u862d\u5361\u672c\u74e6\u90a3\u8332
 currenciesDisplayName.SAR=\u6c99\u70cf\u5730\u91cc\u96c5
-currenciesDisplayName.UAK=\u70cf\u514b\u862d \u5361\u672c\u74e6\u90a3\u8332
 currenciesDisplayName.UAH=\u70cf\u514b\u862d\u683c\u91cc\u592b\u90a3
-currenciesDisplayName.HUF=\u5308\u7259\u5229 - \u798f\u6797
-currenciesDisplayName.COP=\u54e5\u502b\u6bd4\u4e9e\u62ab\u7d22
+currenciesDisplayName.HUF=\u5308\u7259\u5229\u798f\u6797
 currenciesDisplayName.QAR=\u5361\u9054\u723e\u91cc\u4e9e\u723e
+currenciesDisplayName.COP=\u54e5\u502b\u6bd4\u4e9e\u62ab\u7d22
 currenciesDisplayName.LTT=\u7acb\u9676\u5b9b\u7279\u7f85
 currenciesDisplayName.PTE=\u8461\u8404\u7259\u57c3\u65af\u5eab\u591a
-currenciesDisplayName.AOR=\u5b89\u54e5\u62c9\u65b0\u5bec\u624e Reajustado (1995-1999)
 currenciesDisplayName.UYU=\u70cf\u62c9\u572d\u62ab\u7d22
+currenciesDisplayName.AOR=\u5b89\u54e5\u62c9\u65b0\u5bec\u624e Reajustado (1995-1999)
 currenciesDisplayName.GBP=\u82f1\u938a
+currenciesDisplayName.ZRZ=\u85a9\u4f0a\u624e\u4f0a\u723e
+currenciesDisplayName.INR=\u5370\u5ea6\u76e7\u6bd4
 currenciesDisplayName.BIF=\u84b2\u9686\u5730\u6cd5\u90ce
-currenciesDisplayName.INR=\u5370\u5ea6\u76e7\u5e03
-currenciesDisplayName.ZRZ=\u624e\u4f0a\u723e\u624e\u4f0a\u723e
-currenciesDisplayName.AON=\u5b89\u54e5\u62c9\u65b0\u5bec\u624e (1990-2000)
-currenciesDisplayName.LTL=\u7acb\u9676\u5b9b\u91cc\u5854
 currenciesDisplayName.XFU=\u6cd5\u570b UIC \u6cd5\u90ce
-currenciesDisplayName.KZT=\u5361\u624e\u514b\u65af\u5766\u5766\u5409
-currenciesDisplayName.MZM=\u83ab\u4e09\u6bd4\u514b\u6885\u8482\u5361\u723e
+currenciesDisplayName.LTL=\u7acb\u9676\u5b9b\u91cc\u5854
+currenciesDisplayName.AON=\u5b89\u54e5\u62c9\u65b0\u5bec\u624e (1990-2000)
 currenciesDisplayName.UYP=\u70cf\u62c9\u572d\u62ab\u7d22 (1975-1993)
-currenciesDisplayName.AOK=\u5b89\u54e5\u62c9\u5bec\u624e(1977-1990)
-currenciesDisplayName.BUK=\u7dec\u7538\u5143
+currenciesDisplayName.MZM=\u83ab\u4e09\u6bd4\u514b\u6885\u8482\u5361\u723e
+currenciesDisplayName.KZT=\u5361\u624e\u514b\u65af\u5766\u5766\u5409
+currenciesDisplayName.AOK=\u5b89\u54e5\u62c9\u5bec\u624e (1977-1990)
 currenciesDisplayName.GNS=\u5e7e\u5167\u4e9e\u897f\u91cc
+currenciesDisplayName.BUK=\u7dec\u7538\u57fa\u96c5\u7279
 currenciesDisplayName.XFO=\u6cd5\u570b\u91d1\u6cd5\u90ce
 currenciesDisplayName.PGK=\u5df4\u5e03\u4e9e\u7d10\u5e7e\u5167\u4e9e\u57fa\u90a3
 currenciesDisplayName.SYP=\u6558\u5229\u4e9e\u938a
-currenciesDisplayName.MZE=\u83ab\u6851\u6bd4\u514b\u57c3\u65af\u5eab\u591a
 currenciesDisplayName.OMR=\u963f\u66fc\u91cc\u5967
+currenciesDisplayName.MZE=\u83ab\u6851\u6bd4\u514b\u57c3\u65af\u5eab\u591a
+currenciesDisplayName.ZRN=\u85a9\u4f0a\u65b0\u624e\u4f0a\u723e
 currenciesDisplayName.NGN=\u5948\u53ca\u5229\u4e9e\u5948\u62c9
-currenciesDisplayName.ZRN=\u85a9\u4f0a\u624e\u65b0\u4f0a\u723e
-currenciesDisplayName.AOA=\u5b89\u54e5\u62c9\u5bec\u624e
 currenciesDisplayName.CNY=\u4eba\u6c11\u5e63
+currenciesDisplayName.AOA=\u5b89\u54e5\u62c9\u5bec\u624e
 currenciesDisplayName.GNF=\u5e7e\u5167\u4e9e\u6cd5\u90ce
 currenciesDisplayName.MMK=\u7dec\u7538\u5143
-currenciesDisplayName.MYR=\u99ac\u4f86\u897f\u4e9e - \u6797\u5409\u7279
+currenciesDisplayName.MYR=\u99ac\u4f86\u897f\u4e9e\u4ee4\u5409
+currenciesDisplayName.LSM=\u99ac\u6d1b\u8482
+currenciesDisplayName.XEU=\u6b50\u6d32\u8ca8\u5e63\u55ae\u4f4d XEU
 currenciesDisplayName.LSL=\u8cf4\u7d22\u6258\u7f85\u8482
-currenciesDisplayName.XEU=\u6b50\u6d32\u8ca8\u5e63\u55ae\u4f4d
-currenciesDisplayName.BHD=\u5df4\u6797\u7b2c\u7d0d\u723e
 currenciesDisplayName.SLL=\u7345\u5b50\u5c71\u5229\u6602
+currenciesDisplayName.BHD=\u5df4\u6797\u7b2c\u7d0d\u723e
+currenciesDisplayName.BTN=\u4e0d\u4e39\u90a3\u7279\u502b
 currenciesDisplayName.KMF=\u79d1\u6469\u7f85\u6cd5\u90ce
-currenciesDisplayName.ANG=\u8377\u862d \u5b89\u68af\u862d \u76fe
 currenciesDisplayName.CZK=\u6377\u514b\u514b\u6717
+currenciesDisplayName.ANG=\u8377\u5c6c\u5b89\u5730\u5217\u65af\u76fe
+currenciesDisplayName.AZN=\u4e9e\u585e\u62dc\u7136\u8499\u7d0d\u7279
 currenciesDisplayName.AZM=\u963f\u585e\u62dc\u5f4a\u99ac\u7279\u7d0d
 currenciesDisplayName.KYD=\u958b\u66fc\u7fa4\u5cf6\u7f8e\u5143
 currenciesDisplayName.GMD=\u7518\u6bd4\u4e9e\u9054\u62c9\u897f
 currenciesDisplayName.BGN=\u4fdd\u52a0\u5229\u4e9e\u65b0\u5217\u5f17
+currenciesDisplayName.MXV=\u58a8\u897f\u54e5\u8f49\u63db\u55ae\u4f4d\uff08UDI\uff09
 currenciesDisplayName.CAD=\u52a0\u5e63
-currenciesDisplayName.MXV=\u58a8\u897f\u54e5\u6cd5\u5f8b\u53cd\u8f49(UDI)
 currenciesDisplayName.BGL=\u4fdd\u52a0\u5229\u4e9e\u786c\u5217\u5f17
 currenciesDisplayName.VEB=\u59d4\u5167\u745e\u62c9\u535a\u5229\u74e6
 currenciesDisplayName.MLF=\u99ac\u91cc\u6cd5\u90ce
-currenciesDisplayName.ILS=\u4ee5\u8272\u5217\u65b0\u8b1d\u514b\u723e
 currenciesDisplayName.MXP=\u58a8\u897f\u54e5\u9280\u62ab\u7d22 (1861-1992)
+currenciesDisplayName.ILS=\u4ee5\u8272\u5217\u65b0\u8b1d\u514b\u723e
 currenciesDisplayName.PES=\u79d8\u9b6f\u592a\u967d\u5e63
+currenciesDisplayName.MXN=\u58a8\u897f\u54e5\u62ab\u7d22
 currenciesDisplayName.GYD=\u572d\u4e9e\u90a3\u5143
-currenciesDisplayName.MXN=\u58a8\u897f\u54e5 - \u62ab\u7d22
 currenciesDisplayName.ILP=\u4ee5\u8272\u5217\u938a
+currenciesDisplayName.CYP=\u8cfd\u666e\u52d2\u65af\u938a
 currenciesDisplayName.SKK=\u65af\u6d1b\u4f10\u514b\u514b\u6717
-currenciesDisplayName.CYP=\u8cfd\u6d66\u8def\u65af\u938a
 currenciesDisplayName.XDR=\u7279\u6b8a\u63d0\u6b3e\u6b0a
 currenciesDisplayName.PEN=\u79d8\u9b6f\u65b0\u592a\u967d\u5e63
 currenciesDisplayName.LRD=\u8cf4\u6bd4\u745e\u4e9e\u5143
 currenciesDisplayName.PEI=\u7955\u9b6f\u56e0\u8482
 currenciesDisplayName.AMD=\u4e9e\u7f8e\u5c3c\u4e9e\u5fb7\u62c9\u59c6
 currenciesDisplayName.BSD=\u5df4\u54c8\u99ac\u5143
+currenciesDisplayName.XPT=\u767d\u91d1
 currenciesDisplayName.HRK=\u514b\u7f85\u5730\u4e9e\u5eab\u7d0d
-currenciesDisplayName.CLP=\u667a\u5229\u62ab\u7d22
 currenciesDisplayName.HRD=\u514b\u7f85\u5730\u4e9e\u7b2c\u7d0d\u723e
+currenciesDisplayName.CLP=\u667a\u5229\u62ab\u7d22
 currenciesDisplayName.XPF=CFP \u6cd5\u90ce
 currenciesDisplayName.FRF=\u6cd5\u570b\u6cd5\u90ce
+currenciesDisplayName.XPD=\u5e15\u62c9\u72c4\u6602
 currenciesDisplayName.BRR=\u5df4\u897f\u514b\u9b6f\u8cfd\u7f85
 currenciesDisplayName.MKD=\u99ac\u5176\u9813\u7b2c\u7d0d\u723e
-currenciesDisplayName.CLF=\u5361\u6797\u6cb9\u9054\u4f5b\u66fc\u8dce
+currenciesDisplayName.CLF=\u667a\u5229 UF
+currenciesDisplayName.BRN=\u5df4\u897f\u514b\u5982\u723e\u9054\u8fb2\u74e6
 currenciesDisplayName.ALL=\u963f\u723e\u5df4\u5c3c\u4e9e\u5217\u514b
-currenciesDisplayName.BRN=\u5df4\u897f \u514b\u5982\u723e\u9054 \u8fb2\u74e6
 currenciesDisplayName.MWK=\u99ac\u62c9\u7dad\u514b\u74e6\u67e5
 currenciesDisplayName.BRL=\u5df4\u897f\u91cc\u62c9
-currenciesDisplayName.TPE=\u5e1d\u6c76 \u57c3\u65af\u5eab\u591a
+currenciesDisplayName.TPE=\u5e1d\u6c76\u57c3\u65af\u5eab\u591a
 currenciesDisplayName.BRE=\u5df4\u897f\u514b\u9b6f\u8cfd\u7f85 (1990-1993)
 currenciesDisplayName.BRC=\u5df4\u897f\u514b\u9b6f\u8cfd\u7f85 (1986-1989)
-currenciesDisplayName.BRB=\u5df4\u897f\u514b\u9b6f\u85a9\u591a \u8fb2\u74e6 (1967-1986)
+currenciesDisplayName.BRB=\u5df4\u897f\u514b\u9b6f\u85a9\u591a\u8fb2\u74e6\uff081967-1986\uff09
 currenciesDisplayName.DEM=\u5fb7\u570b\u99ac\u514b
 currenciesDisplayName.KWD=\u79d1\u5a01\u7279\u7b2c\u7d0d\u723e
 currenciesDisplayName.XCD=\u683c\u745e\u90a3\u9054\u5143
 currenciesDisplayName.NPR=\u5c3c\u6cca\u723e\u76e7\u5e03
 currenciesDisplayName.GWP=\u5e7e\u5167\u4e9e\u62ab\u7d22\u62ab\u7d22
 currenciesDisplayName.YUN=\u5357\u65af\u62c9\u592b \u53ef\u8f49\u63db\u7b2c\u7d0d\u723e
-currenciesDisplayName.SVC=\u611b\u723e \u85a9\u723e\u74e6\u591a\u79d1\u90ce
+currenciesDisplayName.SVC=\u85a9\u723e\u74e6\u591a\u79d1\u90ce
 currenciesDisplayName.YUM=\u5357\u65af\u62c9\u592b\u632a\u5a01\u4e9e\u7b2c\u7d0d\u723e
 currenciesDisplayName.BEL=\u6bd4\u5229\u6642\u6cd5\u90ce \uff08\u91d1\u878d\uff09
 currenciesDisplayName.SIT=\u65af\u6d1b\u7dad\u5c3c\u4e9e\u6258\u52d2
 currenciesDisplayName.JPY=\u65e5\u5713
-currenciesDisplayName.XOF=\u897f\u975e \u6cd5\u90ce BCEAO
+currenciesDisplayName.XOF=\u897f\u975e\u6cd5\u90ce BCEAO
 currenciesDisplayName.MVR=\u99ac\u723e\u5730\u592b\u6d77\u5cf6\u76e7\u975e\u4e9e
-currenciesDisplayName.GWE=\u8461\u5c6c\u5e7e\u5167\u4e9e\u57c3\u65af\u5eab\u591a
 currenciesDisplayName.BEF=\u6bd4\u5229\u6642\u6cd5\u90ce
+currenciesDisplayName.GWE=\u8461\u5c6c\u5e7e\u5167\u4e9e\u57c3\u65af\u5eab\u591a
 currenciesDisplayName.TOP=\u6771\u52a0\u6f58\u52a0
 currenciesDisplayName.YUD=\u5357\u65af\u62c9\u592b\u7b2c\u7d0d\u723e\u786c\u5e63
 currenciesDisplayName.BEC=\u6bd4\u5229\u6642\u6cd5\u90ce \uff08\u53ef\u8f49\u63db\uff09
 currenciesDisplayName.SUR=\u8607\u806f\u76e7\u5e03
-currenciesDisplayName.ROL=\u7f85\u99ac\u5c3c\u4e9e\u5217\u4f0a
-currenciesDisplayName.DDM=\u6771\u5fb7\u6771\u5fb7\u99ac\u514b
+currenciesDisplayName.RON=\u7f85\u99ac\u5c3c\u4e9e\u5217\u4f0a
+currenciesDisplayName.ROL=\u820a\u7f85\u99ac\u5c3c\u4e9e\u5217\u4f0a
 currenciesDisplayName.BDT=\u5b5f\u52a0\u62c9\u5854\u5361
+currenciesDisplayName.DDM=\u6771\u5fb7\u5967\u65af\u7279\u99ac\u514b
 currenciesDisplayName.XBD=\u6b50\u6d32\u6703\u8a08\u55ae\u4f4d(XBD)
 currenciesDisplayName.AWG=\u963f\u9b6f\u5df4\u76fe
 currenciesDisplayName.XBC=\u6b50\u6d32\u6703\u8a08\u55ae\u4f4d(XBC)
-currenciesDisplayName.XBB=\u6b50\u6d32\u8ca8\u5e63\u55ae\u4f4d
+currenciesDisplayName.XBB=\u6b50\u6d32\u8ca8\u5e63\u55ae\u4f4d XBB
 currenciesDisplayName.XBA=\u6b50\u6d32\u7d9c\u5408\u55ae\u4f4d
 currenciesDisplayName.NOK=\u632a\u5a01\u514b\u7f85\u7d0d
 currenciesDisplayName.MUR=\u6a21\u91cc\u897f\u65af\u76e7\u5e03
 currenciesDisplayName.ZAR=\u5357\u975e\u862d\u7279
-currenciesDisplayName.SHP=\u8056\u8d6b\u52d2\u62ff \u938a
+currenciesDisplayName.SHP=\u8056\u8d6b\u52d2\u62ff\u938a
 currenciesDisplayName.XAU=\u9ec3\u91d1
 currenciesDisplayName.ZAL=\u5357\u975e - \u862d\u7279 (\u91d1\u878d)
-currenciesDisplayName.TZS=\u5766\u6851\u5c3c\u4e9e \u5148\u4ee4
+currenciesDisplayName.TZS=\u5766\u5c1a\u5c3c\u4e9e\u5148\u4ee4
 currenciesDisplayName.GIP=\u76f4\u5e03\u7f85\u9640\u938a
 currenciesDisplayName.TND=\u7a81\u5c3c\u897f\u4e9e\u7b2c\u7d0d\u723e
-currenciesDisplayName.CVE=\u7dad\u5fb7\u89d2\u57c3\u65af\u5eab\u591a
+currenciesDisplayName.CVE=\u7dad\u5fb7\u89d2\u76fe
 currenciesDisplayName.UGX=\u70cf\u5e72\u9054\u5148\u4ee4
+currenciesDisplayName.XAG=XAG
 currenciesDisplayName.ZMK=\u5c1a\u6bd4\u4e9e\u514b\u74e6\u67e5
 currenciesDisplayName.JOD=\u7d04\u65e6\u7b2c\u7d0d\u723e
-currenciesDisplayName.XAF=\u897f\u975e \u6cd5\u90ce BEAC
+currenciesDisplayName.XAF=\u897f\u975e\u6cd5\u90ce BEAC
 currenciesDisplayName.LBP=\u9ece\u5df4\u5ae9\u938a
 currenciesDisplayName.UGS=\u70cf\u5e72\u9054\u5148\u4ee4 (1966-1987)
 currenciesDisplayName.STD=\u8056\u591a\u7f8e\u5cf6\u548c\u666e\u6797\u897f\u6bd4\u5cf6\u591a\u5e03\u62c9
 currenciesDisplayName.WST=\u897f\u85a9\u6469\u4e9e\u5854\u62c9
 currenciesDisplayName.KHR=\u67ec\u57d4\u5be8\u745e\u723e
-currenciesDisplayName.EUR=\u6b50\u5143
 currenciesDisplayName.DOP=\u591a\u660e\u5c3c\u52a0\u62ab\u7d22
-currenciesDisplayName.BOV=\u73bb\u5229\u7dad\u4e9e \u5e55\u591a
+currenciesDisplayName.EUR=\u6b50\u5143
+currenciesDisplayName.BOV=\u73bb\u5229\u7dad\u4e9e\u5e55\u591a
 currenciesDisplayName.MTP=\u99ac\u723e\u4ed6\u938a
+currenciesDisplayName.USS=\u7f8e\u5143 (\u7576\u65e5)
 currenciesDisplayName.BOP=\u73bb\u5229\u7dad\u4e9e\u62ab\u7d22
-currenciesDisplayName.MTL=\u99ac\u723e\u4ed6\u91cc\u62c9
 currenciesDisplayName.CUP=\u53e4\u5df4\u62ab\u7d22
+currenciesDisplayName.MTL=\u99ac\u723e\u4ed6\u91cc\u62c9
 currenciesDisplayName.TMM=\u571f\u5eab\u66fc\u99ac\u7d0d\u7279
-currenciesDisplayName.USN=\u7f8e\u5143 (\u7b2c\u4e8c\u5929)
+currenciesDisplayName.USN=\u7f8e\u5143 (\u6b21\u65e5)
 currenciesDisplayName.SGD=\u65b0\u52a0\u5761\u5e63
 currenciesDisplayName.NZD=\u7d10\u897f\u862d\u5e63
-currenciesDisplayName.HNL=\u6d2a\u90fd\u62c9\u65af\u502b\u76ae\u62c9
 currenciesDisplayName.BOB=\u73bb\u5229\u7dad\u4e9e\u8ca8\u5e63\u55ae\u4f4d
+currenciesDisplayName.HNL=\u6d2a\u90fd\u62c9\u65af\u502b\u76ae\u62c9
+currenciesDisplayName.CHW=WIR \u6cd5\u90ce
 currenciesDisplayName.ITL=\u7fa9\u5927\u5229\u91cc\u62c9
 currenciesDisplayName.PAB=\u5df4\u62ff\u99ac\u5df4\u6ce2\u4e9e
 currenciesDisplayName.GTQ=\u74dc\u5730\u99ac\u62c9\u683c\u67e5\u723e
-currenciesDisplayName.LAK=\u8001\u64be \u958b\u666e
-currenciesDisplayName.GHC=\u8fe6\u7d0d\u4ed9\u8515
+currenciesDisplayName.XXX=XXX
 currenciesDisplayName.AUD=\u6fb3\u5e63
+currenciesDisplayName.GHC=\u8fe6\u7d0d\u585e\u5730
+currenciesDisplayName.LAK=\u5bee\u570b\u57fa\u666e
 currenciesDisplayName.NAD=\u7d0d\u7c73\u6bd4\u4e9e\u5143
 currenciesDisplayName.KGS=\u5409\u723e\u5409\u65af\u7d22\u99ac
 currenciesDisplayName.MGF=\u99ac\u9054\u52a0\u65af\u52a0\u6cd5\u90ce
 currenciesDisplayName.BBD=\u5df4\u8c9d\u591a\u5143
+currenciesDisplayName.CHE=WIR \u6b50\u5143
 currenciesDisplayName.MGA=\u99ac\u9054\u52a0\u65af\u52a0\u827e\u745e\u723e
 currenciesDisplayName.PYG=\u5df4\u62c9\u572d\u74dc\u62c9\u5c3c
 currenciesDisplayName.PLZ=\u6ce2\u862d\u8332\u7f85\u63d0 (1950-1995)
-currenciesDisplayName.YER=\u4e5f\u9580\u91cc\u4e9e\u723e
+currenciesDisplayName.YER=\u8449\u9580\u91cc\u96c5
 currenciesDisplayName.ATS=\u5967\u5730\u5229\u5148\u4ee4
 currenciesDisplayName.ETB=\u8863\u7d22\u6bd4\u4e9e\u6bd4\u723e
 currenciesDisplayName.BND=\u6c76\u840a\u5143
-currenciesDisplayName.JMD=\u7259\u8cb7\u52a0\u5143
 currenciesDisplayName.EGP=\u57c3\u53ca\u938a
+currenciesDisplayName.JMD=\u7259\u8cb7\u52a0\u5143
 currenciesDisplayName.PLN=\u6ce2\u862d\u8332\u7f85\u63d0
 currenciesDisplayName.DZD=\u963f\u723e\u53ca\u5229\u4e9e\u7b2c\u7d0d\u723e
 currenciesDisplayName.ISK=\u51b0\u5cf6\u514b\u6717
 currenciesDisplayName.SRG=\u8607\u91cc\u5357\u76fe
 currenciesDisplayName.LYD=\u5229\u6bd4\u4e9e\u7b2c\u7d0d\u723e
-currenciesDisplayName.BZD=\u4f2f\u5229\u8332\u5143
+currenciesDisplayName.SRD=\u8607\u5229\u5357\u5143
 currenciesDisplayName.BAM=\u6ce2\u58eb\u5c3c\u4e9e-\u9ed1\u585e\u54e5\u7dad\u90a3\u53ef\u8f49\u63db\u99ac\u514b
+currenciesDisplayName.BZD=\u8c9d\u91cc\u65af\u5143
 currenciesDisplayName.ESP=\u897f\u73ed\u7259\u966a\u58eb\u7279
-currenciesDisplayName.KRW=\u97d3\u570b\u571c
+currenciesDisplayName.KRW=\u97d3\u5713
 currenciesDisplayName.NLG=\u8377\u862d\u76fe
 currenciesDisplayName.MRO=\u8305\u5229\u5854\u5c3c\u4e9e\u70cf\u5409\u4e9e
 currenciesDisplayName.BAD=\u6ce2\u58eb\u5c3c\u4e9e-\u9ed1\u585e\u54e5\u7dad\u90a3\u7b2c\u7d0d\u723e
@@ -233,31 +251,134 @@ currenciesDisplayName.ZWD=\u8f9b\u5df4\u5a01\u5143
 currenciesDisplayName.SEK=\u745e\u5178\u514b\u7f85\u7d0d
 currenciesDisplayName.CSK=\u6377\u514b\u65af\u6d1b\u4f10\u514b\u786c\u514b\u6717
 currenciesDisplayName.BYR=\u767d\u4fc4\u7f85\u65af\u76e7\u5e03
+currenciesDisplayName.ESB=\u897f\u73ed\u7259\u6bd4\u585e\u5854\uff08\u53ef\u8f49\u63db\u6703\u8a08\u55ae\u4f4d\uff09
 currenciesDisplayName.IRR=\u4f0a\u6717\u91cc\u4e9e\u723e
+currenciesDisplayName.ESA=\u897f\u73ed\u7259\u6bd4\u585e\u5854\uff08\u6703\u8a08\u55ae\u4f4d\uff09
 currenciesDisplayName.PKR=\u5df4\u57fa\u65af\u5766\u76e7\u5e03
 currenciesDisplayName.BMD=\u767e\u6155\u9054\u5e63
+currenciesDisplayName.CSD=\u820a\u585e\u723e\u7dad\u4e9e\u7b2c\u7d0d\u723e
+currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=lev
+currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
+currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
+currenciesSymbol.MWK=MK
+currenciesSymbol.BMD=Ber$
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
+currenciesSymbol.AMD=dram
+currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
+currenciesSymbol.NPR=Nrs
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.KWD=KD
+currenciesSymbol.GEL=lari
+currenciesSymbol.AFN=Af
+currenciesSymbol.ZAR=R
+currenciesSymbol.RON=0\u2264lei|1\u2264leu|1
+currenciesSymbol.IQD=ID
+currenciesSymbol.ARS=Arg$
+currenciesSymbol.JPY=\uffe5
+currenciesSymbol.ALL=lek
+currenciesSymbol.CRC=C
+currenciesSymbol.IDR=Rp
+currenciesSymbol.DKK=DKr
+currenciesSymbol.TZS=T Sh
+currenciesSymbol.SBD=SI$
+currenciesSymbol.NOK=NKr
 currenciesSymbol.MOP=MOP
-currenciesSymbol.SGD=SGD
-currenciesSymbol.KRW=KRW
+currenciesSymbol.UGX=U Sh
+currenciesSymbol.BEF=BF
+currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
+currenciesSymbol.SZL=E
+currenciesSymbol.STD=Db
+currenciesSymbol.FJD=F$
+currenciesSymbol.UYU=Ur$
+currenciesSymbol.BDT=Tk
+currenciesSymbol.QAR=QR
+currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
+currenciesSymbol.DJF=DF
+currenciesSymbol.JOD=JD
+currenciesSymbol.USD=$
+currenciesSymbol.SGD=S$
+currenciesSymbol.KHR=CR
+currenciesSymbol.SYP=LS
+currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
+currenciesSymbol.MZM=Mt
+currenciesSymbol.YER=YRl
+currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
 currenciesSymbol.NZD=$NZ
-currenciesSymbol.EUR=EUR
-currenciesSymbol.GBP=GBP
+currenciesSymbol.OMR=RO
+currenciesSymbol.KZT=T
+currenciesSymbol.EUR=\u20ac
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.NAD=N$
+currenciesSymbol.GHS=GH\u00a2
+currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
+currenciesSymbol.HNL=L
+currenciesSymbol.KGS=som
+currenciesSymbol.ZWD=Z$
+currenciesSymbol.MYR=RM
+currenciesSymbol.SRG=Sf
+currenciesSymbol.GTQ=Q
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
+currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
+currenciesSymbol.VEB=Be
+currenciesSymbol.BOB=Bs
+currenciesSymbol.KMF=CF
+currenciesSymbol.SEK=SKr
+currenciesSymbol.AUD=$A
+currenciesSymbol.LYD=LD
+currenciesSymbol.JMD=J$
+currenciesSymbol.SKK=Sk
+currenciesSymbol.CHF=SwF
+currenciesSymbol.ETB=Br
+currenciesSymbol.MRO=UM
+currenciesSymbol.BBD=BDS$
+currenciesSymbol.KRW=\uffe6
+currenciesSymbol.PKR=Pra
+currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.XPF=CFPF
+currenciesSymbol.MXN=MEX$
+currenciesSymbol.DZD=DA
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.IRR=RI
+currenciesSymbol.GYD=G$
+currenciesSymbol.BAM=KM
+currenciesSymbol.CAD=Can$
+shortMonths=1\u6708\u00ae2\u6708\u00ae3\u6708\u00ae4\u6708\u00ae5\u6708\u00ae6\u6708\u00ae7\u6708\u00ae8\u6708\u00ae9\u6708\u00ae10\u6708\u00ae11\u6708\u00ae12\u6708\u00ae\u00ae
+months=1\u6708\u00ae2\u6708\u00ae3\u6708\u00ae4\u6708\u00ae5\u6708\u00ae6\u6708\u00ae7\u6708\u00ae8\u6708\u00ae9\u6708\u00ae10\u6708\u00ae11\u6708\u00ae12\u6708\u00ae\u00ae
+shortWeekdays=\u00ae\u9031\u65e5\u00ae\u9031\u4e00\u00ae\u9031\u4e8c\u00ae\u9031\u4e09\u00ae\u9031\u56db\u00ae\u9031\u4e94\u00ae\u9031\u516d\u00ae
 shortDateFormat=yyyy/M/d
 mediumDateFormat=yyyy/M/d
-longDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'
-fullDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'EEEE
-shortTimeFormat=a h:mm
-mediumTimeFormat=a h:mm:ss
-longTimeFormat=ahh'\u6642'mm'\u5206'ss'\u79d2'
-fullTimeFormat=ahh'\u6642'mm'\u5206'ss'\u79d2' z
-zoneStrings=America/Halifax®\u5927\u897f\u6d0b\u6a19\u6e96\u6642\u9593®\u5927\u897f\u6d0b\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©America/Indianapolis®\u6771\u90e8\u6a19\u6e96\u6642\u9593®\u6771\u90e8\u6a19\u6e96\u6642\u9593®©Europe/Paris®\u4e2d\u6b50\u6a19\u6e96\u6642\u9593®\u4e2d\u6b50\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©America/Phoenix®\u5c71\u5340\u6a19\u6e96\u6642\u9593®\u5c71\u5340\u6a19\u6e96\u6642\u9593®©America/Los_Angeles®\u592a\u5e73\u6d0b\u6a19\u6e96\u6642\u9593®\u592a\u5e73\u6d0b\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Pacific/Honolulu®\u590f\u5a01\u5937\u6a19\u6e96\u6642\u9593®\u590f\u5a01\u5937\u6a19\u6e96\u6642\u9593®©America/Denver®\u5c71\u5340\u6a19\u6e96\u6642\u9593®\u5c71\u5340\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Europe/Bucharest®\u6771\u6b50\u6a19\u6e96\u6642\u9593®\u6771\u6b50\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©America/New_York®\u6771\u90e8\u6a19\u6e96\u6642\u9593®\u6771\u90e8\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Asia/Tokyo®\u65e5\u672c\u6a19\u6e96\u6642\u9593®\u65e5\u672c\u6a19\u6e96\u6642\u9593®©America/Anchorage®\u963f\u62c9\u65af\u52a0\u6a19\u6e96\u6642\u9593®\u963f\u62c9\u65af\u52a0\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Asia/Shanghai®\u4e2d\u570b\u6a19\u6e96\u6642\u9593®\u4e2d\u570b\u6a19\u6e96\u6642\u9593®©America/Chicago®\u4e2d\u90e8\u6a19\u6e96\u6642\u9593®\u4e2d\u90e8\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Africa/Casablanca®\u683c\u6797\u5a01\u6cbb\u6a19\u6e96\u6642\u9593®\u683c\u6797\u5a01\u6cbb\u6a19\u6e96\u6642\u9593®©America/St_Johns®\u7d10\u82ac\u862d\u6a19\u6e96\u6642\u9593®\u7d10\u82ac\u862d\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Asia/Jerusalem®\u4ee5\u8272\u5217\u6a19\u6e96\u6642\u9593®\u4ee5\u8272\u5217\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©
-territories.TL=\u6771\u5e1d\u6587
+mediumTimeFormat=ah:mm:ss
+longTimeFormat=zahh\u6642mm\u5206ss\u79d2
+fullTimeFormat=zah\u6642mm\u5206ss\u79d2
+zoneStrings=Europe_Central\u00ae\u4e2d\u6b50\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u4e2d\u6b50\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Africa_Western\u00ae\u897f\u975e\u6642\u9593\u00ae\u00ae\u897f\u975e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Urumqi\u00ae\u70cf\u9b6f\u6728\u9f4a\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00ae\u70cf\u62c9\u65af\u514b\u6642\u9593\u00ae\u00ae\u70cf\u62c9\u65af\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Borneo\u00ae\u5a46\u7f85\u6d32\u6642\u9593\u00ae\u00ae\u5a46\u7f85\u6d32\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u6fb3\u6d32\u6771\u90e8\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u6fb3\u6d32\u6771\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Aqtau\u00ae\u963f\u514b\u9676\u6642\u9593\u00aeAQTT\uff08\u963f\u514b\u9676\uff09\u00ae\u963f\u514b\u9676\u590f\u4ee4\u6642\u9593\u00aeAQTST\uff08\u963f\u514b\u9676\uff09\u00ae\u00a9Kazakhstan_Western\u00ae\u897f\u54c8\u85a9\u514b\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00ae\u65af\u7dad\u723e\u5fb7\u6d1b\u592b\u65af\u514b\u6642\u9593\u00ae\u00ae\u65af\u7dad\u723e\u5fb7\u6d1b\u592b\u65af\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Bangladesh\u00ae\u5b5f\u52a0\u62c9\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00ae\u6492\u99ac\u723e\u7f55\u6642\u9593\u00aeSAMT\uff08\u6492\u99ac\u723e\u7f55\uff09\u00ae\u6492\u99ac\u723e\u7f55\u590f\u4ee4\u6642\u9593\u00aeSAMST\uff08\u6492\u99ac\u723e\u7f55\uff09\u00ae\u00a9Long_Shu\u00ae\u96b4\u8700\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00ae\u4e9e\u585e\u62dc\u7136\u6642\u9593\u00ae\u00ae\u4e9e\u585e\u62dc\u7136\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Amazon\u00ae\u4e9e\u99ac\u905c\u6642\u9593\u00ae\u00ae\u4e9e\u99ac\u905c\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Arabian\u00ae\u963f\u62c9\u4f2f\u6a19\u6e96\u6642\u9593\u00aeAST\uff08\u963f\u62c9\u4f2f\uff09\u00ae\u963f\u62c9\u4f2f\u590f\u4ee4\u6642\u9593\u00aeADT\uff08\u963f\u62c9\u4f2f\uff09\u00ae\u00a9Yekaterinburg\u00ae\u51f1\u85a9\u7433\u5821\u6642\u9593\u00ae\u00ae\u51f1\u85a9\u7433\u5821\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Alaska\u00ae\u963f\u62c9\u65af\u52a0\u6a19\u6e96\u6642\u9593\u00ae\u963f\u62c9\u65af\u52a0\u6a19\u6e96\u6642\u9593\u00ae\u963f\u62c9\u65af\u52a0\u590f\u4ee4\u6642\u9593\u00ae\u963f\u62c9\u65af\u52a0\u6642\u9593\u00ae\u00a9Qyzylorda\u00ae\u514b\u5b5c\u52d2\u5967\u723e\u9054\u6642\u9593\u00ae\u00ae\u514b\u5b5c\u52d2\u5967\u723e\u9054\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Dutch_Guiana\u00ae\u8377\u5c6c\u572d\u4e9e\u90a3\u6642\u9593\u00ae\u00ae\u8377\u5c6c\u572d\u4e9e\u90a3\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u5370\u5c3c\u897f\u90e8\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u5370\u5c3c\u6771\u90e8\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Aqtobe\u00ae\u963f\u514b\u6258\u6bd4\u6642\u9593\u00aeAQTT\uff08\u963f\u514b\u6258\u6bd4\uff09\u00ae\u963f\u514b\u6258\u6bd4\u590f\u4ee4\u6642\u9593\u00aeAQTST\uff08\u963f\u514b\u6258\u6bd4\uff09\u00ae\u00a9Kizilorda\u00ae\u5409\u529b\u7f85\u9054\u6642\u9593\u00ae\u00ae\u5409\u529b\u7f85\u9054\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Armenia\u00ae\u4e9e\u7f8e\u5c3c\u4e9e\u6642\u9593\u00aeAMT\uff08\u4e9e\u7f8e\u5c3c\u4e9e\uff09\u00ae\u4e9e\u7f8e\u5c3c\u4e9e\u590f\u4ee4\u6642\u9593\u00aeAMST\uff08\u4e9e\u7f8e\u5c3c\u4e9e\uff09\u00ae\u00a9America_Pacific\u00ae\u592a\u5e73\u6d0b\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u592a\u5e73\u6d0b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Almaty\u00ae\u963f\u62c9\u6728\u5716\u6642\u9593\u00ae\u00ae\u963f\u62c9\u6728\u5716\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Tajikistan\u00ae\u5854\u5409\u514b\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00ae\u590f\u5a01\u5937-\u963f\u7559\u7533\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u675c\u5c1a\u5225\u6642\u9593\u00ae\u00ae\u675c\u5c1a\u5225\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Yerevan\u00ae\u8449\u91cc\u6eab\u6642\u9593\u00ae\u00ae\u8449\u91cc\u6eab\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Israel\u00ae\u4ee5\u8272\u5217\u6a19\u6e96\u6642\u9593\u00aeIST\uff08\u4ee5\u8272\u5217\uff09\u00ae\u4ee5\u8272\u5217\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Greenland_Western\u00ae\u683c\u9675\u862d\u897f\u90e8\u6642\u9593\u00ae\u00ae\u683c\u9675\u862d\u897f\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u6771\u6b50\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u6771\u6b50\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9North_Mariana\u00ae\u5317\u99ac\u91cc\u4e9e\u7d0d\u7fa4\u5cf6\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00ae\u7d10\u82ac\u862d\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u7d10\u82ac\u862d\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Australia_Western\u00ae\u6fb3\u6d32\u897f\u90e8\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u6fb3\u6d32\u897f\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Kyrgystan\u00ae\u5409\u723e\u5409\u65af\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00ae\u99ac\u4f86\u4e9e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00ae\u97d3\u570b\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u97d3\u570b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Argentina_Western\u00ae\u963f\u6839\u5ef7\u897f\u90e8\u6642\u9593\u00ae\u00ae\u963f\u6839\u5ef7\u897f\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u6771\u975e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00ae\u571f\u5eab\u66fc\u6642\u9593\u00ae\u00ae\u571f\u5eab\u66fc\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Pierre_Miquelon\u00ae\u8056\u5f7c\u5fb7\u8207\u5bc6\u555f\u5d19\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u8056\u5f7c\u5fb7\u8207\u5bc6\u555f\u5d19\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Atlantic\u00ae\u5927\u897f\u6d0b\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u5927\u897f\u6d0b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u963f\u62c9\u65af\u52a0-\u590f\u5a01\u5937\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u963f\u62c9\u65af\u52a0-\u590f\u5a01\u5937\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Uzbekistan\u00ae\u70cf\u8332\u5225\u514b\u6642\u9593\u00ae\u00ae\u70cf\u8332\u5225\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Lord_Howe\u00ae\u8c6a\u52f3\u7235\u5cf6\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u8c6a\u52f3\u7235\u5cf6\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Tbilisi\u00ae\u7b2c\u6bd4\u5229\u65af\u6642\u9593\u00ae\u00ae\u7b2c\u6bd4\u5229\u65af\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Malaysia\u00ae\u99ac\u4f86\u897f\u4e9e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Baku\u00ae\u5df4\u5eab\u6642\u9593\u00ae\u00ae\u5df4\u5eab\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9America_Eastern\u00ae\u6771\u90e8\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u6771\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Samoa\u00ae\u85a9\u6469\u4e9e\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00ae\u5384\u74dc\u591a\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00ae\u827e\u514b\u6642\u9593\u00aeACT\uff08\u827e\u514b\uff09\u00ae\u827e\u514b\u590f\u4ee4\u6642\u9593\u00aeACST\uff08\u827e\u514b\uff09\u00ae\u00a9Dacca\u00ae\u9054\u5361\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00ae\u55ac\u5df4\u5c71\u6642\u9593\u00ae\u00ae\u55ac\u5df4\u5c71\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Europe_Western\u00ae\u897f\u6b50\u6642\u9593\u00ae\u00ae\u897f\u6b50\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Africa_Central\u00ae\u4e2d\u975e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u571f\u8033\u5176\u6642\u9593\u00ae\u00ae\u571f\u8033\u5176\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Africa_Southern\u00ae\u5357\u975e\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00ae\u963f\u4ec0\u54c8\u5df4\u5fb7\u6642\u9593\u00ae\u00ae\u963f\u4ec0\u54c8\u5df4\u5fb7\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Bering\u00ae\u767d\u4ee4\u6a19\u6e96\u6642\u9593\u00aeBST\uff08\u767d\u4ee4\uff09\u00ae\u767d\u4ee4\u590f\u4ee4\u6642\u9593\u00aeBDT\uff08\u767d\u4ee4\uff09\u00ae\u00a9Guam\u00ae\u95dc\u5cf6\u6a19\u6e96\u6642\u9593\u00aeGST (\u95dc\u5cf6)\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00ae\u99ac\u7d39\u723e\u7fa4\u5cf6\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00ae\u4e0d\u4e39\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Changbai\u00ae\u9577\u767d\u5c71\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00ae\u5580\u62c9\u86a9\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00ae\u5854\u4ec0\u5e72\u6642\u9593\u00ae\u00ae\u5854\u4ec0\u5e72\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9East_Timor\u00ae\u6771\u5e1d\u6c76\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Argentina\u00ae\u963f\u6839\u5ef7\u6642\u9593\u00ae\u00ae\u963f\u6839\u5ef7\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Yukon\u00ae\u80b2\u7a7a\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u80b2\u7a7a\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9New_Zealand\u00ae\u7d10\u897f\u862d\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u7d10\u897f\u862d\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9China\u00ae\u4e2d\u570b\u6a19\u6e96\u6642\u9593\u00aeCST\uff08\u4e2d\u570b\uff09\u00ae\u4e2d\u570b\u590f\u4ee4\u6642\u9593\u00aeCDT\uff08\u4e2d\u570b\uff09\u00ae\u00a9Indonesia_Central\u00ae\u5370\u5c3c\u4e2d\u90e8\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u5c71\u5340\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u5c71\u5340\u65e5\u5149\u7bc0\u7d04\u6642\u9593\u00ae\u00ae\u00a9India\u00ae\u5370\u5ea6\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00ae\u8607\u5229\u5357\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00ae\u683c\u6797\u5a01\u6cbb\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u85a9\u99ac\u62c9\u6642\u9593\u00ae\u00ae\u85a9\u99ac\u62c9\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Chile\u00ae\u667a\u5229\u6642\u9593\u00ae\u00ae\u667a\u5229\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Brasilia\u00ae\u5df4\u897f\u5229\u4e9e\u6642\u9593\u00ae\u00ae\u5df4\u897f\u5229\u4e9e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00ae\u6771\u54c8\u85a9\u514b\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00ae\u70cf\u862d\u5df4\u6258\u6642\u9593\u00ae\u00ae\u70cf\u862d\u5df4\u6258\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9America_Central\u00ae\u4e2d\u90e8\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u4e2d\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Frunze\u00ae\u4f0f\u9f8d\u829d\u6642\u9593\u00ae\u00ae\u4f0f\u9f8d\u829d\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Lanka\u00ae\u862d\u5361\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00ae\u53e4\u6bd4\u96ea\u592b\u6642\u9593\u00ae\u00ae\u53e4\u6bd4\u96ea\u592b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u683c\u9675\u862d\u6771\u90e8\u6642\u9593\u00ae\u00ae\u683c\u9675\u862d\u6771\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Azores\u00ae\u4e9e\u901f\u723e\u7fa4\u5cf6\u6642\u9593\u00ae\u00ae\u4e9e\u901f\u723e\u7fa4\u5cf6\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Japan\u00ae\u65e5\u672c\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u65e5\u672c\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Greenland_Central\u00ae\u683c\u9675\u862d\u4e2d\u90e8\u6642\u9593\u00ae\u00ae\u683c\u9675\u862d\u4e2d\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Kwajalein\u00ae\u74dc\u52a0\u6797\u74b0\u7901\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00ae\u00ae\u00ae\u820d\u752b\u7434\u79d1\u6642\u9593\u00ae\u00ae\u00a9Pakistan\u00ae\u5df4\u57fa\u65af\u5766\u6642\u9593\u00ae\u00ae\u5df4\u57fa\u65af\u5766\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Kashgar\u00ae\u5580\u4ec0\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00ae\u6fb3\u6d32\u4e2d\u90e8\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u6fb3\u6d32\u4e2d\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Georgia\u00ae\u55ac\u6cbb\u4e9e\u6642\u9593\u00ae\u00ae\u55ac\u6cbb\u4e9e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Galapagos\u00ae\u52a0\u62c9\u5e15\u6208\u7fa4\u5cf6\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00ae\u00aeCST\uff08\u53e4\u5df4\uff09\u00ae\u00aeCDT\uff08\u53e4\u5df4\uff09\u00ae\u00a9Macau\u00ae\u6fb3\u9580\u6642\u9593\u00ae\u00ae\u6fb3\u9580\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Aktyubinsk\u00ae\u963f\u514b\u79cb\u8cd3\u65af\u514b\u6642\u9593\u00ae\u00ae\u963f\u514b\u79cb\u8cd3\u65af\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9
+territories.TL=\u6771\u5e1d\u6c76
 territories.TK=\u6258\u514b\u52de\u7fa4\u5cf6
 territories.TJ=\u5854\u5409\u514b
 territories.TH=\u6cf0\u570b
 territories.TG=\u591a\u54e5\u5171\u548c\u570b
-territories.TF=\u6cd5\u570b\u5357\u5c6c\u5730
-territories.GY=\u84cb\u4e9e\u7d0d
+territories.TF=\u6cd5\u5c6c\u5357\u65b9\u5c6c\u5730
+territories.GY=\u84cb\u4e9e\u90a3
 territories.TD=\u67e5\u5fb7
 territories.TC=\u571f\u514b\u65af\u53ca\u958b\u79d1\u65af\u7fa4\u5cf6
 territories.GW=\u5e7e\u5167\u4e9e\u6bd4\u7d22
@@ -275,10 +396,11 @@ territories.GL=\u683c\u9675\u862d
 territories.SV=\u85a9\u723e\u74e6\u591a
 territories.062=\u4e2d\u5357\u4e9e
 territories.ST=\u8056\u591a\u7f8e\u53ca\u666e\u6797\u897f\u6bd4
-territories.061=\u73bb\u91cc\u5c3c\u897f\u4e9e
 territories.GI=\u76f4\u5e03\u7f85\u9640
+territories.061=\u73bb\u91cc\u5c3c\u897f\u4e9e
 territories.GH=\u8fe6\u7d0d
 territories.SR=\u8607\u5229\u5357
+territories.GG=\u6839\u897f\u5cf6
 territories.GF=\u6cd5\u5c6c\u572d\u4e9e\u90a3
 territories.GE=\u55ac\u6cbb\u4e9e\u5171\u548c\u570b
 territories.SO=\u7d22\u99ac\u5229\u4e9e
@@ -296,37 +418,38 @@ territories.SC=\u585e\u5e2d\u723e
 territories.SB=\u7d22\u7f85\u9580\u7fa4\u5cf6
 territories.SA=\u6c99\u70cf\u5730\u963f\u62c9\u4f2f
 territories.FR=\u6cd5\u570b
-territories.057=\u5bc6\u514b\u7f85\u5c3c\u897f\u4e9e
 territories.FO=\u6cd5\u7f85\u7fa4\u5cf6
+territories.057=\u5bc6\u514b\u7f85\u5c3c\u897f\u4e9e
 territories.FM=\u5bc6\u514b\u7f85\u5c3c\u897f\u4e9e\u7fa4\u5cf6
 territories.RW=\u76e7\u5b89\u9054
 territories.054=\u7f8e\u62c9\u5c3c\u897f\u4e9e
-territories.053=\u6fb3\u6d32\u8207\u7d10\u897f\u862d
 territories.FK=\u798f\u514b\u862d\u7fa4\u5cf6
+territories.053=\u6fb3\u6d32\u8207\u7d10\u897f\u862d
 territories.RU=\u4fc4\u7f85\u65af
 territories.FJ=\u6590\u6fdf
 territories.FI=\u82ac\u862d
+territories.RS=\u585e\u723e\u7dad\u4e9e
 territories.RO=\u7f85\u99ac\u5c3c\u4e9e
 territories.RE=\u7559\u5c3c\u65fa
 territories.ET=\u8863\u7d22\u6bd4\u4e9e
 territories.ER=\u5384\u5229\u5782\u4e9e
-territories.833=\u66fc\u5cf6
-territories.830=\u6d77\u5cfd\u7fa4\u5cf6
+territories.QU=\u6b50\u76df
 territories.EE=\u611b\u6c99\u5c3c\u4e9e
+territories.830=\u6d77\u5cfd\u7fa4\u5cf6
 territories.QO=\u5927\u6d0b\u6d32\u908a\u7586\u7fa4\u5cf6
-territories.EC=\u5384\u74dc\u591a\u723e
+territories.EC=\u5384\u74dc\u591a
 territories.DZ=\u963f\u723e\u53ca\u5229\u4e9e
 territories.QA=\u5361\u9054
 territories.039=\u5357\u6b50
 territories.DO=\u591a\u660e\u5c3c\u52a0\u5171\u548c\u570b
-territories.035=\u6771\u5357\u4e9e
 territories.DM=\u591a\u660e\u5c3c\u52a0
+territories.035=\u6771\u5357\u4e9e
 territories.PW=\u5e1b\u7409
+territories.034=\u5357\u4e9e
 territories.DK=\u4e39\u9ea5
 territories.DJ=\u5409\u5e03\u5730
 territories.PS=\u5df4\u52d2\u65af\u5766
 territories.030=\u6771\u4e9e
-territories.PR=\u73bb\u591a\u9ece\u514b
 territories.DE=\u5fb7\u570b
 territories.PN=\u76ae\u7279\u5eb7
 territories.PM=\u8056\u5f7c\u5fb7\u8207\u5bc6\u555f\u5d19
@@ -357,19 +480,23 @@ territories.BY=\u767d\u4fc4\u7f85\u65af
 territories.BW=\u6ce2\u672d\u90a3
 territories.BV=\u5e03\u5a01\u5cf6
 territories.BS=\u5df4\u54c8\u99ac
+territories.018=\u975e\u6d32\u5357\u90e8
 territories.NZ=\u7d10\u897f\u862d
 territories.BO=\u73bb\u5229\u7dad\u4e9e
 territories.BN=\u6c76\u840a
 territories.BM=\u767e\u6155\u9054
 territories.014=\u6771\u975e
+territories.BL=\u8056\u5df4\u745f\u7c73
 territories.NU=\u7d10\u5a01\u5cf6
 territories.BJ=\u8c9d\u5357
-territories.BI=\u6d66\u9686\u5730
+territories.BI=\u84b2\u9686\u5730
+territories.172=\u7368\u7acb\u570b\u5354
 territories.NR=\u8afe\u9b6f
 territories.BG=\u4fdd\u52a0\u5229\u4e9e
-territories.BF=\u5e03\u57fa\u7d0d\u6cd5\u7d22
+territories.BF=\u5e03\u5409\u7d0d\u6cd5\u7d22
 territories.NP=\u5c3c\u6cca\u723e
 territories.BE=\u6bd4\u5229\u6642
+territories.ZZ=\u672a\u78ba\u5b9a\u7684\u5340\u57df
 territories.BD=\u5b5f\u52a0\u62c9
 territories.BB=\u5df4\u8c9d\u591a
 territories.ZW=\u8f9b\u5df4\u5a01
@@ -379,7 +506,7 @@ territories.NG=\u5948\u53ca\u5229\u4e9e
 territories.NF=\u8afe\u798f\u514b\u5cf6
 territories.AZ=\u4e9e\u585e\u62dc\u7136
 territories.NE=\u5c3c\u65e5
-territories.AX=\u4e9e\u862d\u7fa4\u5cf6
+territories.AX=\u5967\u862d\u7fa4\u5cf6
 territories.NC=\u65b0\u5580\u91cc\u591a\u5c3c\u4e9e\u7fa4\u5cf6
 territories.AW=\u963f\u8def\u5df4
 territories.ZM=\u5c1a\u6bd4\u4e9e
@@ -389,40 +516,42 @@ territories.AT=\u5967\u5730\u5229
 territories.AS=\u7f8e\u5c6c\u85a9\u6469\u4e9e\u7fa4\u5cf6
 territories.AQ=\u5357\u6975\u6d32
 territories.MZ=\u83ab\u4e09\u6bd4\u514b
-territories.AN=\u8377\u5c6c\u5b89\u5730\u5217\u65af
 territories.MY=\u99ac\u4f86\u897f\u4e9e
+territories.AN=\u8377\u5c6c\u5b89\u5730\u5217\u65af
 territories.AM=\u4e9e\u7f8e\u5c3c\u4e9e
-territories.AL=\u963f\u723e\u5df4\u5c3c\u4e9e
 territories.MW=\u99ac\u62c9\u5a01
+territories.AL=\u963f\u723e\u5df4\u5c3c\u4e9e
 territories.MV=\u99ac\u723e\u5730\u592b
 territories.MU=\u6a21\u91cc\u897f\u65af
-territories.AI=\u5b89\u572d\u62c9\u5cf6
 territories.MT=\u99ac\u723e\u4ed6
+territories.AI=\u5b89\u572d\u62c9\u5cf6
 territories.MS=\u8499\u7279\u8272\u62c9\u7279\u5cf6
-territories.AG=\u5b89\u5730\u5361\u53ca\u5df4\u5e03\u9054
 territories.MR=\u8305\u5229\u5854\u5c3c\u4e9e
+territories.AG=\u5b89\u5730\u5361\u53ca\u5df4\u5e03\u9054
 territories.MQ=\u99ac\u4e01\u5c3c\u514b\u5cf6
+territories.MP=\u5317\u99ac\u91cc\u4e9e\u7d0d\u7fa4\u5cf6
 territories.AE=\u963f\u62c9\u4f2f\u806f\u5408\u5927\u516c\u570b
-territories.MP=\u5317\u99ac\u91cc\u5b89\u7d0d
+territories.MO=\u6fb3\u9580
 territories.AD=\u5b89\u9053\u723e
-territories.MO=\u4e2d\u83ef\u4eba\u6c11\u5171\u548c\u570b\u6fb3\u9580\u7279\u5225\u884c\u653f\u5340
 territories.MM=\u7dec\u7538
 territories.ML=\u99ac\u5229
 territories.MK=\u99ac\u5176\u9813
 territories.YT=\u99ac\u7d04\u7279
 territories.MH=\u99ac\u7d39\u723e\u7fa4\u5cf6
 territories.MG=\u99ac\u9054\u52a0\u65af\u52a0
+territories.MF=\u8056\u99ac\u4e01
+territories.ME=\u8499\u7279\u5167\u54e5\u7f85
 territories.MD=\u6469\u723e\u591a\u74e6
 territories.MC=\u6469\u7d0d\u54e5
 territories.YE=\u8449\u9580
 territories.LY=\u5229\u6bd4\u4e9e
-territories.155=\u897f\u6b50
 territories.LV=\u62c9\u812b\u7dad\u4e9e
-territories.154=\u5317\u6b50
+territories.155=\u897f\u6b50
 territories.LU=\u76e7\u68ee\u5821
+territories.154=\u5317\u6b50
 territories.LS=\u8cf4\u7d22\u6265
-territories.151=\u6771\u6b50
 territories.LR=\u8cf4\u6bd4\u745e\u4e9e
+territories.151=\u6771\u6b50
 territories.150=\u6b50\u6d32
 territories.LK=\u65af\u91cc\u862d\u5361
 territories.LI=\u5217\u652f\u6566\u65af\u767b
@@ -431,6 +560,7 @@ territories.LA=\u5bee\u570b
 territories.KZ=\u54c8\u85a9\u514b
 territories.KY=\u958b\u66fc\u7fa4\u5cf6
 territories.145=\u897f\u4e9e
+territories.143=\u4e2d\u4e9e
 territories.142=\u4e9e\u6d32
 territories.KR=\u5357\u97d3
 territories.KP=\u5317\u97d3
@@ -438,23 +568,24 @@ territories.KN=\u8056\u514b\u91cc\u65af\u591a\u798f\u53ca\u5c3c\u7dad\u65af
 territories.KM=\u79d1\u6469\u7f85\u7fa4\u5cf6
 territories.KI=\u5409\u91cc\u5df4\u65af
 territories.WS=\u85a9\u6469\u4e9e\u7fa4\u5cf6
-territories.KH=\u9ad8\u68c9
 territories.KG=\u5409\u723e\u5409\u65af
 territories.KE=\u80af\u4e9e
 territories.WF=\u74e6\u5229\u65af\u548c\u798f\u675c\u7d0d\u7fa4\u5cf6
 territories.JO=\u7d04\u65e6
 territories.JM=\u7259\u8cb7\u52a0
 territories.VU=\u842c\u90a3\u675c
-territories.VI=\u7f8e\u5c6c\u7dad\u723e\u4eac\u7fa4\u5cf6
-territories.VG=\u82f1\u5c6c\u7dad\u723e\u4eac\u7fa4\u5cf6
+territories.JE=\u6fa4\u897f\u5cf6
+territories.VI=\u7f8e\u5c6c\u7dad\u4eac\u7fa4\u5cf6
+territories.VG=\u82f1\u5c6c\u7dad\u4eac\u7fa4\u5cf6
 territories.VE=\u59d4\u5167\u745e\u62c9
 territories.VC=\u8056\u6587\u68ee\u53ca\u683c\u745e\u90a3\u4e01
-territories.VA=\u68b5\u5e1d\u5ca1
+territories.VA=\u68b5\u8482\u5ca1
 territories.IT=\u7fa9\u5927\u5229
 territories.IS=\u51b0\u5cf6
 territories.UZ=\u70cf\u8332\u5225\u514b
 territories.IO=\u82f1\u5c6c\u5370\u5ea6\u6d0b\u9818\u571f
 territories.UY=\u70cf\u62c9\u572d
+territories.IM=\u66fc\u5cf6
 territories.US=\u7f8e\u570b
 territories.IE=\u611b\u723e\u862d
 territories.ID=\u5370\u5c3c
@@ -475,72 +606,82 @@ territories.TM=\u571f\u5eab\u66fc
 languages.gwi=\u572d\u5951\u6587
 languages.eka=\u827e\u5361\u6731\u514b\u6587
 languages.ijo=\u4f0a\u55ac\u6587
-languages.xh=\u73ed\u5716\u6587
+languages.xh=\u79d1\u85a9\u6587
 languages.sux=\u8607\u7f8e\u6587
 languages.sus=\u8607\u8607\u6587
-languages.mis=\u5176\u4ed6\u8a9e\u8a00
+languages.mis=\u6df7\u96dc\u8a9e\u8af8\u8a9e\u8a00
 languages.loz=\u6d1b\u9f4a\u6587
 languages.tog=\u6e6f\u52a0\u6587(\u5c3c\u4e9e\u85a9\u6587)
+languages.zbl=\u5e03\u5217\u65af\u7b26\u865f
 languages.pon=\u6ce2\u90a3\u8c9d\u6587
 languages.min=\u7c73\u5357\u5361\u5821\u6587
 languages.suk=\u8607\u5eab\u99ac\u6587
 languages.wo=\u6c83\u723e\u592b\u6587
+languages.lol=\u8292\u6208\u6587
 languages.kut=\u5eab\u7279\u5948\u6587
 languages.mic=\u7c73\u514b\u99ac\u514b\u6587
-languages.wa=\u74e6\u9686\u6587
 languages.kum=\u5eab\u5bc6\u514b\u6587
 languages.zap=\u85a9\u6ce2\u7279\u514b\u6587
-languages.cus=\u5eab\u65bd\u7279\u8a9e\u7cfb\uff08\u5176\u4ed6\uff09
-languages.doi=\u591a\u683c\u4f86\u6587
+languages.ain=\u611b\u52aa\u6587
+languages.cus=\u5eab\u65bd\u7279\u8af8\u8a9e\u8a00
 languages.jbo=\u908f\u8f2f\u6587
-languages.oto=\u5967\u6258\u7c73\u6587
-languages.vai=\u8d8a\u5357\u6587
+languages.doi=\u591a\u683c\u4f86\u6587
+languages.oto=\u5967\u6258\u7c73\u8af8\u8a9e\u8a00
+languages.vi=\u8d8a\u5357\u6587
+languages.vai=\u74e6\u4f0a\u6587
 languages.rar=\u62c9\u7f85\u901a\u52a0\u6587
-languages.ve=\u6eab\u9054\u6587
+languages.ve=\u6587\u9054\u6587
 languages.rap=\u5fa9\u6d3b\u5cf6\u6587
 languages.raj=\u62c9\u8cc8\u65af\u5766\u8af8\u6587
+languages.ota=\u5967\u65af\u66fc\u571f\u8033\u5176\u6587
 languages.nzi=\u5c3c\u8332\u99ac\u6587
-languages.ota=\u9102\u5716\u66fc\u571f\u8033\u5176\u6587 (1500-1928)
 languages.uz=\u70cf\u8332\u5225\u514b\u6587
 languages.uga=\u70cf\u52a0\u5217\u6587
 languages.tmh=\u5854\u99ac\u5947\u514b\u6587
-languages.nai=\u5176\u4ed6\u5317\u7f8e\u5370\u5730\u5b89\u6587
+languages.nai=\u5317\u7f8e\u5370\u7b2c\u5b89\u8af8\u8a9e\u8a00
 languages.nah=\u7d0d\u74e6\u7279\u6587
 languages.ur=\u70cf\u723e\u90fd\u6587
 languages.uk=\u70cf\u514b\u862d\u6587
-languages.egy=\u53e4\u57c3\u53ca\u6587)
+languages.egy=\u53e4\u57c3\u53ca\u6587
+languages.zxx=\u7121\u8a9e\u8a00\u5167\u5bb9
 languages.ug=\u7dad\u543e\u723e\u6587
 languages.fan=\u82b3\u65cf\u6587
-languages.ssa=\u975e\u6d32\u6492\u54c8\u62c9\u6c99\u6f20\u908a\u7de3\u5730\u5e36\u6587
-languages.bat=\u6ce2\u7f85\u7684\u6587\uff08\u5176\u4ed6\uff09
-languages.mga=\u611b\u723e\u862d\u6587\uff0c\u4e2d\u53e4 (900-1200)
-languages.bas=\u5df4\u85a9\u6587
+languages.ssa=\u5c3c\u7f85\u6492\u54c8\u62c9\u8af8\u8a9e\u8a00
+languages.mga=\u4e2d\u53e4\u611b\u723e\u862d\u6587
+languages.bat=\u6ce2\u7f85\u7684\u6d77\u8af8\u8a9e\u8a00
 languages.nyo=\u5c3c\u5967\u56c9\u6587
+languages.bas=\u5df4\u85a9\u6587
 languages.nyn=\u5c3c\u63da\u79d1\u840a\u6587
 languages.nym=\u5c3c\u63da\u97cb\u9f4a\u6587
-languages.hmn=\u5b5f\u6587
-languages.ban=\u5df4\u5398\u6587
+languages.hmn=\u8d6b\u8499\u6587
+languages.ban=\u5cc7\u91cc\u6587
 languages.osa=\u6b50\u585e\u5947\u6587
 languages.ty=\u5927\u6eaa\u5730\u6587
-languages.tw=\u7e41\u9ad4\u4e2d\u6587
+languages.bai=\u5df4\u7c73\u7d2f\u514b\u8af8\u8a9e\u8a00
 languages.srr=\u585e\u96f7\u723e\u6587
 languages.tli=\u7279\u6797\u57fa\u7279\u6587
+languages.tlh=\u514b\u6797\u8ca2\u6587
 languages.tt=\u97c3\u977c\u6587
+languages.ts=\u7279\u677e\u52a0\u6587
+languages.srn=\u8607\u62c9\u5357\u6771\u588e\u6587
 languages.bad=\u73ed\u9054\u6587
 languages.to=\u6771\u52a0\u6587
 languages.tn=\u7a81\u5c3c\u897f\u4e9e\u6587
+languages.tl=\u5854\u52a0\u8def\u65cf\u6587
 languages.tk=\u571f\u5eab\u66fc\u6587
 languages.ti=\u63d0\u683c\u5229\u5c3c\u4e9e\u6587
 languages.kru=\u5eab\u9b6f\u79d1\u6587
+languages.byn=\u6bd4\u6797\u6587
 languages.te=\u6cf0\u76e7\u56fa\u6587
-languages.csb=\u5361\u8212\u5e03\u6587
 languages.kro=\u514b\u9b6f\u6587
+languages.csb=\u5361\u8212\u5e03\u6587
 languages.ta=\u5766\u7c73\u723e\u6587
 languages.tkl=\u6258\u514b\u52de\u6587
 languages.efi=\u57c3\u83f2\u514b\u6587
 languages.sw=\u53f2\u74e6\u5e0c\u91cc\u6587
-languages.su=\u8607\u4e39\u6587
+languages.su=\u5dfd\u4ed6\u8a9e
 languages.krc=\u5361\u62c9\u67f4-\u5305\u723e\u5361\u723e\u6587
+languages.ss=\u65af\u74e6\u7279\u6587
 languages.sr=\u585e\u723e\u7dad\u4e9e\u6587
 languages.sq=\u963f\u723e\u5df4\u5c3c\u4e9e\u6587
 languages.men=\u9580\u5fb7\u6587
@@ -549,115 +690,130 @@ languages.so=\u7d22\u99ac\u5229\u6587
 languages.sn=\u585e\u5167\u52a0\u723e\u6587
 languages.sm=\u85a9\u6469\u4e9e\u6587
 languages.sl=\u65af\u6d1b\u7dad\u5c3c\u4e9e\u6587
-languages.grc=\u53e4\u5e0c\u81d8\u6587 (\u81f3 1453)
-languages.grb=\u54e5\u535a\u8a9e
+languages.grc=\u53e4\u5e0c\u81d8\u6587
 languages.si=\u50e7\u4f3d\u7f85\u6587
 languages.sh=\u585e\u723e\u7dad\u4e9e\u514b\u7f85\u57c3\u897f\u4e9e\u6587
-languages.afa=\u975e\u9583\u65cf\u53ca\u975e\u4e9e\u8a9e\u8a00
-languages.crh=\u514b\u91cc\u7c73\u4e9e\u534a\u5cf6\u7684\u571f\u8033\u5176\u6587\uff1b\u514b\u91cc\u7c73\u4e9e\u534a\u5cf6\u7684\u5854\u5854\u723e\u6587
+languages.crh=\u514b\u91cc\u7c73\u4e9e\u571f\u8033\u5176\u6587
+languages.afa=\u4e9e\u975e\u8af8\u8a9e\u8a00
 languages.se=\u5317\u65b9\u85a9\u7c73\u6587
-languages.sd=\u8607\u4e39\u6587
+languages.sd=\u5370\u5ea6\u8a9e
 languages.udm=\u6c83\u8482\u827e\u514b\u6587
 languages.sc=\u6492\u4e01\u6587
 languages.rw=\u76e7\u5b89\u9054\u6587
+languages.nwc=\u53e4\u5c3c\u74e6\u723e\u6587
 languages.mdr=\u66fc\u9054\u6587
 languages.ro=\u7f85\u99ac\u5c3c\u4e9e\u6587
+languages.rn=\u9686\u8fea\u6587
 languages.rm=\u91cc\u6258\u7f85\u66fc\u65af\u6587
+languages.fr_CH=\u6cd5\u6587 (\u745e\u58eb)
 languages.tiv=\u63d0\u592b\u6587
 languages.ady=\u963f\u8fea\u5404\u6587
 languages.zun=\u7956\u5c3c\u6587
 languages.qu=\u84cb\u4e18\u4e9e\u6587
 languages.tig=\u8482\u683c\u96f7\u6587
-languages.cpp=\u6b50\u6d32\u8154\u8abf\u548c\u6d0b\u6d87\u6ff1\uff0c\u6e90\u81ea\u8461\u8404\u7259\u6587\u7684(\u5176\u4ed6)
+languages.cpp=\u57fa\u65bc\u8461\u8404\u7259\u6587\u7684\u514b\u91cc\u5967\u723e\u6587\u548c\u76ae\u6b3d\u6587
+languages.rup=\u7f85\u99ac\u5c3c\u4e9e\u8a9e\u7cfb
 languages.sog=\u7d22\u683c\u5e95\u4e9e\u7d0d\u6587
 languages.ada=\u963f\u7576\u83ab\u6587
-languages.cpf=\u6b50\u6d32\u8154\u8abf\u548c\u6d0b\u6d87\u6ff1\uff0c\u6e90\u81ea\u6cd5\u6587\u7684(\u5176\u4ed6)
-languages.hit=\u8d6b\u68af\u6587
 languages.kos=\u79d1\u65af\u96f7\u6069\u6587
-languages.cpe=\u6b50\u6d32\u8154\u8abf\u548c\u6d0b\u6d87\u6ff1\uff0c\u6e90\u81ea\u82f1\u6587\u7684(\u5176\u4ed6)
+languages.hit=\u8d6b\u68af\u6587
+languages.cpf=\u57fa\u65bc\u6cd5\u6587\u7684\u514b\u91cc\u5967\u723e\u6587\u548c\u76ae\u6b3d\u6587
+languages.cpe=\u4ee5\u82f1\u6587\u70ba\u57fa\u790e\u7684\u6df7\u8a9e\u65b9\u8a00\u548c\u6d0b\u6d87\u6ff1
 languages.him=\u8d6b\u99ac\u67e5\u5229\u6587
-languages.got=\u54e5\u7279\u6587
-languages.hil=\u5e0c\u5229\u84cb\u8fb2\u6587
 languages.kok=\u8ca2\u6839\u6587
+languages.hil=\u5e0c\u5229\u84cb\u8fb2\u6587
+languages.got=\u54e5\u5fb7\u6587
 languages.gor=\u79d1\u9686\u9054\u7f85\u6587
 languages.gon=\u5ca1\u5fb7\u6587
-languages.nub=\u52aa\u6bd4\u4e9e\u6587
+languages.nub=\u52aa\u6bd4\u4e9e\u8af8\u8a9e\u8a00
 languages.ps=\u666e\u4ec0\u5716\u6587
-languages.phn=\u8153\u5c3c\u57fa\u6587
-languages.goh=\u5fb7\u6587,\u4e0a\u53e4\u5168\u76db\u6642\u671f (ca.750-1050)
+languages.goh=\u53e4\u9ad8\u5730\u65e5\u8033\u66fc\u6587
 languages.ach=\u963f\u50d1\u5229\u6587
 languages.yao=\u7464\u6587
-languages.phi=\u5176\u4ed6\u83f2\u5f8b\u8cd3\u6587
-languages.pl=\u6ce2\u862d\u6587
+languages.phi=\u83f2\u5f8b\u8cd3\u8af8\u8a9e\u8a00
 languages.ace=\u4e9e\u9f4a\u6587
-languages.pi=\u5df4\u5229\u6587
+languages.pl=\u6ce2\u862d\u6587
+languages.pt_PT=\u8461\u8404\u7259\u6587 (\u8461\u8404\u7259)
 languages.bug=\u5e03\u5409\u65af\u6587
 languages.sms=\u65af\u79d1\u7279\u85a9\u7c73\u6587
 languages.bua=\u5e03\u91cc\u963f\u7279\u6587
 languages.mas=\u99ac\u8cfd\u6587
 languages.smn=\u4f0a\u7d0d\u88e1\u85a9\u7c73\u6587
+languages.map=\u5357\u5cf6\u8af8\u8a9e\u8a00
 languages.os=\u5967\u585e\u63d0\u6587
-languages.map=\u5357\u5cf6\u6587
 languages.or=\u6b50\u91cc\u4e9e\u6587
 languages.smj=\u9b6f\u52d2\u85a9\u7c73\u6587
-languages.smi=\u5176\u4ed6\u85a9\u7c73\u6587
+languages.smi=\u85a9\u7c73\u8af8\u8a9e\u8a00
 languages.mak=\u671b\u52a0\u932b\u6587
+languages.om=\u963f\u66fc\u6587
 languages.mai=\u9081\u8482\u5229\u6587
-languages.oj=\u5967\u6770\u5e03\u74e6\u6587
 languages.mag=\u99ac\u52a0\u4f0a\u6587
+languages.oj=\u5967\u6770\u5e03\u74e6\u6587
 languages.mad=\u99ac\u90fd\u62c9\u6587
 languages.sma=\u5357\u85a9\u7c73\u6587
-languages.oc=\u5967\u897f\u5766\u6587
+languages.oc=\u5967\u514b\u897f\u5766\u6587
 languages.myv=\u5384\u723e\u8332\u4e9e\u6587
+languages.es_ES=\u897f\u73ed\u7259\u6587 (\u897f\u73ed\u7259)
+languages.de_AT=\u5fb7\u6587 (\u5967\u5730\u5229)
 languages.dgr=\u591a\u683c\u91cc\u5e03\u6587
+languages.myn=\u99ac\u96c5\u8af8\u8a9e\u8a00
 languages.ny=\u5c3c\u63da\u8cc8\u6587
-languages.myn=\u99ac\u96c5\u6587
 languages.nv=\u7d0d\u74e6\u7d04\u6587
 languages.nr=\u5357\u5730\u7562\u5217\u6587
-languages.gmh=\u5fb7\u6587, \u4e2d\u53e4\u5168\u76db\u6642\u671f (ca.1050-1500)
+languages.gmh=\u4e2d\u53e4\u9ad8\u5730\u65e5\u8033\u66fc\u6587
 languages.nn=\u65b0\u632a\u5a01\u6587
 languages.nl=\u8377\u862d\u6587
+languages.root=\u6839\u8a9e\u8a00
 languages.ng=\u6069\u6771\u52a0\u6587
-languages.sla=\u5176\u4ed6\u65af\u62c9\u592b\u6587
+languages.sla=\u65af\u62c9\u592b\u8af8\u8a9e
 languages.ne=\u5c3c\u6cca\u723e\u6587
 languages.nd=\u5317\u5730\u7562\u5217\u6587
+languages.cmc=\u4f54\u8a9e\u8af8\u8a9e\u8a00
 languages.tet=\u6cf0\u9813\u6587
 languages.nb=\u632a\u5a01\u6ce2\u514b\u9ed8\u723e\u6587
 languages.na=\u8afe\u9b6f\u6587
 languages.ter=\u6cf0\u96f7\u8afe\u6587
 languages.tem=\u63d0\u59c6\u6587
 languages.my=\u7dec\u7538\u6587
-languages.lez=\u7acb\u9676\u5b9b\u6587
+languages.lez=\u5217\u8332\u5e72\u6587
+languages.frs=\u6771\u5f17\u91cc\u897f\u4e9e\u6587
 languages.mt=\u99ac\u723e\u4ed6\u6587
+languages.peo=\u53e4\u6ce2\u65af\u6587
+languages.frr=\u5317\u5f17\u91cc\u897f\u4e9e\u6587
 languages.ms=\u99ac\u4f86\u6587
-languages.peo=\u53e4\u6ce2\u65af\u6587 (ca.600-400 B.C.)
 languages.mr=\u99ac\u62c9\u5730\u6587
 languages.mo=\u6469\u723e\u591a\u74e6\u6587
+languages.jrb=\u7336\u592a\u963f\u62c9\u4f2f\u6587
 languages.ml=\u99ac\u4f86\u4e9e\u62c9\u59c6\u6587
-languages.jrb=\u7336\u592a\u6559-\u963f\u62c9\u4f2f\u6587
 languages.mk=\u99ac\u5176\u9813\u6587
 languages.mh=\u99ac\u7d39\u723e\u6587
 languages.mg=\u99ac\u723e\u52a0\u4ec0\u6587
+languages.nqo=\u897f\u975e\u66f8\u9762\u8a9e\u8a00\uff08N'ko\uff09
 languages.mwr=\u99ac\u723e\u5c3c\u88e1\u6587
+languages.mwl=\u7c73\u862d\u5fb7\u65af\u6587
 languages.den=\u65af\u62c9\u592b
+languages.lv=\u62c9\u812b\u7dad\u4e9e\u6587
 languages.lu=\u9b6f\u5df4\u52a0\u4e39\u52a0\u6587
-languages.del=\u5fb7\u62c9\u74e6
+languages.del=\u5fb7\u62c9\u74e6\u6587
+languages.lt=\u7acb\u9676\u5b9b\u8a9e
 languages.lo=\u5bee\u570b\u6587
 languages.li=\u6797\u5821\u6587
 languages.ewo=\u4f9d\u6c6a\u90fd\u6587
 languages.lg=\u5e72\u9054\u6587
 languages.lb=\u76e7\u68ee\u5821\u6587
 languages.jpr=\u7336\u592a\u6559-\u6ce2\u65af\u6587
-languages.sit=\u5176\u4ed6\u6f22\u85cf\u6587
+languages.sit=\u6f22\u85cf\u8af8\u8a9e\u8a00
 languages.ky=\u5409\u723e\u5409\u65af\u6587
 languages.kw=\u5eb7\u74e6\u8033\u6587
 languages.ku=\u5eab\u723e\u5fb7\u6587
-languages.sio=\u5927\u8607\u6587
+languages.sio=\u8607\u8a9e\u8af8\u8a9e\u8a00
 languages.ks=\u514b\u4ec0\u7c73\u723e\u6587
 languages.kr=\u5361\u52aa\u88e1\u6587
+languages.awa=\u963f\u74e6\u5fb7\u6587
 languages.ko=\u97d3\u6587
 languages.kn=\u574e\u90a3\u9054\u6587
 languages.km=\u9ad8\u68c9\u6587
+languages.en_GB=\u82f1\u6587 (\u82f1\u570b)
 languages.kl=\u683c\u9675\u862d\u6587
 languages.kk=\u54c8\u85a9\u514b\u6587
 languages.rom=\u5409\u666e\u8cfd\u6587
@@ -668,54 +824,56 @@ languages.kg=\u525b\u679c\u6587
 languages.non=\u53e4\u8afe\u723e\u65af\u6587
 languages.ka=\u55ac\u6cbb\u4e9e\u6587
 languages.mus=\u514b\u91cc\u514b\u6587
-languages.roa=\u5176\u4ed6\u7f85\u66fc\u6587
+languages.roa=\u7f85\u66fc\u8af8\u8a9e\u8a00
 languages.nog=\u8afe\u84cb\u6587
-languages.mun=\u8499\u9054\u6587
+languages.mun=\u8499\u9054\u8af8\u8a9e\u8a00
 languages.mul=\u591a\u7a2e\u8a9e\u8a00
 languages.gil=\u5409\u723e\u4f2f\u7279\u7fa4\u5cf6\u6587
 languages.znd=\u8d0a\u5fb7\u6587
 languages.shn=\u64a3\u6587
 languages.fon=\u8c50\u6587
 languages.xal=\u5361\u723e\u6885\u514b\u6587
-languages.aus=\u6fb3\u6d32\u82f1\u6587
-languages.kho=\u548c\u95d0[\u8207\u95d0]\u6587
-languages.chy=\u6c99\u4f0a\u5b89\u6587
+languages.aus=\u6fb3\u6d32\u8af8\u8a9e\u8a00
+languages.kho=\u548c\u95d0\u6587
+languages.khi=\u79d1\u4f9d\u6851\u8af8\u8a9e\u8a00
 languages.pau=\u5e1b\u7409\u6587
+languages.chy=\u6c99\u4f0a\u5b89\u6587
+languages.tai=\u50a3\u8a9e\u8af8\u8a9e\u8a00
 languages.iu=\u56e0\u7d10\u7279\u6587
-languages.pap=\u5e15\u76ae\u963f\u9580\u6258\u6587
 languages.it=\u7fa9\u5927\u5229\u6587
+languages.pap=\u5e15\u76ae\u963f\u9580\u6258\u6587
 languages.sgn=\u624b\u8a9e
 languages.is=\u51b0\u5cf6\u6587
 languages.chr=\u67f4\u7f85\u57fa\u6587
 languages.pam=\u6f58\u5e15\u5609\u6587
-languages.chp=\u5947\u4f69\u74e6\u63da\u6587
 languages.pal=\u5df4\u5217\u7dad\u6587
-languages.cho=\u55ac\u514b\u6258\u6587
+languages.chp=\u5947\u4f69\u7dad\u5b89\u6587
 languages.io=\u4f0a\u6717\u6587
+languages.cho=\u55ac\u514b\u6258\u6587
 languages.chn=\u5951\u5974\u514b\u6587
 languages.chm=\u99ac\u91cc\u6587
 languages.tyv=\u571f\u51e1\u6587
-languages.bnt=\u73ed\u5716\u6587
-languages.chk=\u8655\u5947\u65af\u6587
-languages.pag=\u6f58\u52a0\u8f9b\u6587
+languages.bnt=\u73ed\u5716\u8af8\u8a9e\u8a00
 languages.ik=\u4f9d\u5974\u76ae\u7dad\u514b\u6587
-languages.ii=\u56db\u5ddd\u8a71
+languages.pag=\u6f58\u52a0\u8f9b\u6587
+languages.chk=\u8655\u5947\u65af\u6587
+languages.ii=\u56db\u5ddd\u5f5d\u6587
 languages.lam=\u862d\u5df4\u6587
 languages.ig=\u4f0a\u5e03\u6587
 languages.sga=\u53e4\u611b\u723e\u862d\u6587\uff08\u81f3 900\uff09
-languages.paa=\u5176\u4ed6\u5df4\u5e03\u4e9e\u8af8\u8a9e\u8a00
-languages.ie=\u62c9\u4e01\u570b\u969b\u6587
+languages.ie=\u570b\u969b\u8a9e E
+languages.paa=\u5df4\u5e03\u4e9e\u8af8\u8a9e\u8a00
 languages.id=\u5370\u5c3c\u6587
 languages.lah=\u62c9\u4ea8\u9054\u6587
-languages.chb=\u5947\u5e03\u67e5\u6587
 languages.day=\u8fea\u96c5\u514b\u6587
-languages.ia=\u62c9\u4e01\u570b\u969b\u6587
+languages.chb=\u5947\u5e03\u67e5\u6587
+languages.ia=\u570b\u969b\u8a9e A
 languages.lad=\u62c9\u8fea\u8afe\u6587
-languages.dar=\u9054\u723e\u683c\u74e6\u6587
-languages.hai=\u6d77\u9054\u6587
 languages.hz=\u8d6b\u96f7\u7f85\u6587
+languages.hai=\u6d77\u9054\u6587
+languages.dar=\u9054\u723e\u683c\u74e6\u6587
 languages.hy=\u4e9e\u7f8e\u5c3c\u4e9e\u6587
-languages.ath=\u963f\u85a9\u5df4\u65af\u5361\u6587
+languages.ath=\u963f\u85a9\u5e15\u65af\u574e\u8af8\u8a9e\u8a00
 languages.ht=\u6d77\u5730\u6587
 languages.dak=\u9054\u79d1\u4ed6\u6587
 languages.hr=\u514b\u7f85\u57c3\u897f\u4e9e\u6587
@@ -723,123 +881,145 @@ languages.ho=\u897f\u91cc\u83ab\u5716\u571f\u6587
 languages.hi=\u5317\u5370\u5ea6\u6587
 languages.he=\u5e0c\u4f2f\u4f86\u6587
 languages.ast=\u963f\u65af\u5716\u91cc\u4e9e\u6587
-languages.wen=\u6587\u5fb7\u6587
+languages.kfo=\u79d1\u7f85\u6587
+languages.wen=\u7d22\u5e03\u8af8\u8a9e\u8a00
 languages.gv=\u66fc\u5cf6\u6587
 languages.gu=\u5409\u4e9e\u62c9\u5854\u6587
-languages.sem=\u5176\u4ed6\u9583\u65cf\u8a9e\u8a00
+languages.sem=\u9583\u8a9e\u8af8\u8a9e\u8a00
 languages.sel=\u745f\u723e\u5361\u666e\u6587
-languages.iro=\u6613\u6d1b\u9b41\u6587
-languages.gl=\u52a0\u91cc\u897f\u4e9e\u6587
-languages.gd=\u8607\u683c\u862d - \u84cb\u723e\u6587
-languages.art=\u5176\u4ed6\u4eba\u5de5\u8a9e\u8a00
+languages.iro=\u6613\u6d1b\u9b41\u8af8\u8a9e\u8a00
+languages.gl=\u52a0\u5229\u897f\u4e9e\u6587
 languages.gez=\u5409\u8332\u6587
-languages.ira=\u4f0a\u82b3\u6717\u6587
+languages.art=\u5176\u4ed6\u4eba\u5de5\u8a9e\u8a00
+languages.gd=\u8607\u683c\u862d - \u84cb\u723e\u6587
+languages.ira=\u4f0a\u6717\u8af8\u8a9e\u8a00
 languages.ga=\u611b\u723e\u862d\u6587
 languages.arn=\u963f\u52de\u574e\u6587
-languages.fy=\u5f17\u91cc\u65af\u862d\u6587
+languages.fy=\u897f\u5f17\u91cc\u897f\u4e9e\u6587
 languages.bla=\u932b\u514b\u932b\u5361\u6587
-languages.gem=\u5fb7\u570b\u6587(\u5176\u4ed6)
-languages.ypk=\u611b\u65af\u57fa\u6469\u6587
+languages.gem=\u65e5\u8033\u66fc\u8af8\u8a9e\u8a00
+languages.ypk=\u5c24\u76ae\u514b\u8af8\u8a9e\u8a00
 languages.fo=\u6cd5\u7f85\u6587
-languages.cel=\u514b\u723e\u7279\u6587\uff08\u5176\u4ed6\uff09
+languages.cel=\u51f1\u723e\u7279\u8af8\u8a9e\u8a00
 languages.fj=\u6590\u6fdf\u6587
 languages.fi=\u82ac\u862d\u6587
 languages.ff=\u5bcc\u62c9\u6587
 languages.tvl=\u5410\u74e6\u9b6f\u6587
-languages.ceb=\u5bbf\u52d9\u65cf\u6587
+languages.ceb=\u5bbf\u9727\u6587
+languages.en_AU=\u82f1\u6587 (\u6fb3\u6d32)
+languages.zh_Hans=\u7c21\u9ad4\u4e2d\u6587
+languages.zh_Hant=\u7e41\u9ad4\u4e2d\u6587
+languages.sco=\u8607\u683c\u862d\u6587
 languages.et=\u611b\u6c99\u5c3c\u4e9e\u6587
 languages.eo=\u4e16\u754c\u8a9e
 languages.el=\u5e0c\u81d8\u6587
-languages.tut=\u5176\u4ed6\u963f\u723e\u6cf0\u8af8\u6587
+languages.tut=\u963f\u723e\u6cf0\u8af8\u8a9e\u8a00\uff08\u5176\u4ed6\uff09
 languages.niu=\u7d10\u57c3\u6587
-languages.tup=\u5716\u76ae\u6587
-languages.ee=\u57c3\u7def\u6587
+languages.tup=\u5716\u76ae\u8af8\u8a9e\u8a00
+languages.ee=\u57c3\u7dad\u6587
 languages.tum=\u5716\u59c6\u5e03\u5361\u6587
-languages.dv=\u8fea\u7dad\u897f\u6587
-languages.fiu=\u82ac\u862d-\u70cf\u6208\u723e\u65cf\u6587(\u5176\u4ed6)
+languages.nl_BE=\u6cd5\u862d\u5fb7\u65af\u6587
+languages.es_419=\u897f\u73ed\u7259\u6587 (\u62c9\u4e01\u7f8e\u6d32)
+languages.nic=\u5c3c\u65e5\u723e\u79d1\u723e\u591a\u51e1\u8af8\u8a9e\u8a00
 languages.lus=\u76e7\u6652\u6587
-languages.nic=\u5176\u4ed6\u5c3c\u65e5\u525b\u679c\u8a9e\u7cfb
+languages.fiu=\u82ac\u70cf\u8af8\u8a9e\u8a00
+languages.dv=\u8fea\u7dad\u897f\u6587
 languages.nia=\u5c3c\u4e9e\u65af\u6587
 languages.moh=\u83ab\u970d\u514b\u6587
 languages.luo=\u76e7\u5967\u6587
 languages.lun=\u76e7\u6069\u9054\u6587
-languages.apa=\u963f\u5e15\u5947\u8a9e\u8a00
+languages.apa=\u963f\u5e15\u5207\u8af8\u8a9e\u8a00
+languages.fil=\u83f2\u5f8b\u8cd3\u6587
 languages.lui=\u8def\u6613\u585e\u8afe\u6587
+languages.cch=\u963f\u71e6\u6587
 languages.lua=\u9b6f\u5df4\u9b6f\u9b6f\u4e9e\u6587
 languages.bik=\u6bd4\u79d1\u723e\u6587
 languages.was=\u74e6\u7d39\u6587
 languages.und=\u672a\u78ba\u5b9a\u7684
 languages.war=\u74e6\u745e\u6587
 languages.da=\u4e39\u9ea5\u6587
-languages.dum=\u8377\u862d\uff0c\u4e2d\u53e4 (ca. 1050-1350)
-languages.mno=\u99ac\u8afe\u6ce2\u6587
-languages.wak=\u5938\u57fa\u6b66\u7279\u6587
-languages.cy=\u5a01\u723e\u58eb\u6587
+languages.dum=\u4e2d\u53e4\u8377\u862d\u6587
+languages.mno=\u99ac\u8afe\u535a\u8af8\u8a9e\u8a00
+languages.wak=\u74e6\u5361\u4ec0\u8af8\u8a9e\u8a00
 languages.sat=\u6563\u5854\u5229\u6587
+languages.cy=\u5a01\u723e\u65af\u6587
 languages.sas=\u6492\u6492\u514b\u6587
-languages.cv=\u695a\u74e6\u751a\u6587
 languages.kbd=\u5361\u5df4\u723e\u9054\u6587
 languages.mni=\u66fc\u5c3c\u666e\u88e1\u6587
-languages.cr=\u514b\u88e1\u6587
 languages.sam=\u85a9\u746a\u5229\u4e9e\u963f\u62c9\u59c6\u6587
+languages.cr=\u514b\u88e1\u6587
+languages.sal=\u85a9\u5229\u4ec0\u8af8\u8a9e\u8a00
 languages.dua=\u675c\u4e9e\u62c9\u6587
-languages.sal=\u85a9\u5229\u751a\u6587
-languages.mnc=\u6eff\u65cf\u6587
+languages.sai=\u5357\u7f8e\u5370\u7b2c\u5b89\u8af8\u8a9e\u8a00
+languages.mnc=\u6eff\u6587
 languages.sah=\u96c5\u5eab\u7279\u6587
 languages.gba=\u845b\u5df4\u4e9e\u6587
 languages.sad=\u6851\u9054\u97cb\u6587
 languages.ch=\u67e5\u83ab\u6d1b\u6587
+languages.ine=\u5370\u6b50\u8af8\u8a9e\u8a00
 languages.bho=\u535a\u5091\u666e\u723e\u6587
-languages.ine=\u5370\u6b50\u8a9e\u7cfb\uff08\u5176\u4ed6\uff09
-languages.enm=\u82f1\u6587\uff0c\u4e2d\u4e16\u7d00 (1100-1500)
-languages.ce=\u8eca\u81e3\u6587
-languages.inc=\u5370\u5ea6\u8a9e\u7cfb\uff08\u5176\u4ed6\uff09
 languages.kar=\u514b\u502b\u6587
+languages.inc=\u5370\u5ea6\u8af8\u8a9e\u8a00
+languages.ce=\u8eca\u81e3\u6587
 languages.gay=\u52a0\u7d04\u6587
 languages.ca=\u52a0\u6cf0\u7f85\u5c3c\u4e9e\u6587
 languages.umb=\u59c6\u672c\u675c\u6587
-languages.syr=\u53e4\u6558\u5229\u4e9e\u6587
+languages.syr=\u6558\u5229\u4e9e\u6587
 languages.tsi=\u6b3d\u897f\u5b89\u6587
-languages.ang=\u53e4\u82f1\u6587 (ca.450-1100)
-languages.cau=\u9ad8\u52a0\u7d22\u6587\uff08\u5176\u4ed6\uff09
+languages.ang=\u53e4\u82f1\u6587
+languages.cau=\u9ad8\u52a0\u7d22\u8af8\u8a9e\u8a00
 languages.kab=\u5361\u6bd4\u723e\u6587
-languages.bs=\u6ce2\u58eb\u5c3c\u4e9e\u6587
 languages.kaa=\u5361\u62c9\u5361\u723e\u5e15\u514b\u6587
+languages.bs=\u6ce2\u58eb\u5c3c\u4e9e\u6587
+languages.car=\u52a0\u52d2\u6bd4\u6587
+languages.syc=\u53e4\u6558\u5229\u4e9e\u6587
 languages.bo=\u85cf\u6587
 languages.gaa=\u52a0\u65cf\u6587
+languages.cai=\u4e2d\u7f8e\u5370\u7b2c\u5b89\u8af8\u8a9e\u8a00
 languages.bi=\u6bd4\u65af\u62c9\u99ac\u6587
-languages.cai=\u4e2d\u7f8e\u5370\u7b2c\u5b89\u6587\uff08\u5176\u4ed6\uff09
 languages.bh=\u6bd4\u54c8\u723e\u6587
 languages.bg=\u4fdd\u52a0\u5229\u4e9e\u6587
 languages.be=\u767d\u4fc4\u7f85\u65af\u6587
 languages.ba=\u5df4\u4ec0\u5ba2\u723e\u6587
 languages.zu=\u7956\u9b6f\u6587
 languages.zen=\u6fa4\u7d0d\u52a0\u6587
-languages.pro=\u666e\u7f85\u6587\u65af\u6587 (to 1500)
+languages.pro=\u53e4\u666e\u7f85\u65fa\u65af\u6587
 languages.az=\u4e9e\u585e\u62dc\u7136\u6587
 languages.ay=\u827e\u99ac\u62c9\u6587
-languages.av=\u963f\u6cd5\u6587
+languages.av=\u963f\u74e6\u723e\u6587
 languages.as=\u963f\u85a9\u59c6\u6587
 languages.dsb=\u4e0b\u7d22\u5e03\u6587
-languages.elx=\u57c3\u862d\u6587
 languages.ilo=\u4f0a\u6d1b\u95ca\u6587
+languages.elx=\u57c3\u862d\u6587
 languages.an=\u963f\u62c9\u8ca2\u6587
-languages.pra=\u5370\u5ea6\u53e4\u4ee3\u53ca\u4e2d\u4e16\u7d00\u4e4b\u4e2d\u90e8\u53ca\u5317\u90e8\u65b9\u8a00
-languages.ak=\u963f\u574e\u6587
+languages.pra=\u666e\u62c9\u514b\u91cc\u7279\u8af8\u8a9e\u8a00
 languages.new=\u5c3c\u74e6\u723e\u6587
+languages.ak=\u963f\u574e\u6587
 languages.za=\u58ef\u6587
+languages.en_US=\u82f1\u6587 (\u7f8e\u570b)
 languages.af=\u5357\u975e\u8377\u862d\u6587
-languages.ae=\u963f\u7def\u65af\u9640\u6587
-languages.ab=\u963f\u5e03\u54c8\u897f\u4e9e\u6587
+languages.ae=\u963f\u7dad\u65af\u9640\u6587
+languages.alt=\u5357\u963f\u723e\u6cf0\u6587
+languages.ab=\u963f\u5e03\u54c8\u8332\u6587
 languages.yo=\u7d04\u9b6f\u5df4\u6587
-languages.alg=\u963f\u723e\u5ca1\u6606\u6587
+languages.alg=\u963f\u723e\u5ca1\u6606\u8af8\u8a9e\u8a00
 languages.ale=\u963f\u7559\u7533\u6587
-languages.mkh=\u5176\u4ed6\u9ad8\u68c9\u8a9e\u7cfb
+languages.mkh=\u5b5f\u9ad8\u68c9\u8af8\u8a9e\u8a00
 languages.yi=\u610f\u7b2c\u7dd2\u6587
-languages.dra=\u5fb7\u62c9\u5a01\u6587\uff08\u5176\u4ed6\uff09
+languages.dra=\u9054\u7f85\u6bd7\u837c\u8af8\u8a9e\u8a00
 languages.ber=\u67cf\u67cf\u723e\u6587
-languages.nds=\u5fb7\u570b\u5317\u90e8\u7684\u5fb7\u6587; \u85a9\u514b\u905c\u6587
+languages.nds=\u4f4e\u5730\u65e5\u8033\u66fc\u6587\uff1b\u4f4e\u5730\u85a9\u514b\u905c\u6587
 languages.bem=\u5225\u59c6\u5df4\u6587
 languages.bej=\u8c9d\u624e\u6587
 languages.tpi=\u6258\u6bd4\u8f9b\u6587
-variants.REVISED=\u5df2\u4fee\u8a02
+variants.REVISED=\u5df2\u4fee\u8a02\u7684\u62fc\u5b57\u5b78
+variants.AREVELA=\u4e9e\u7f8e\u5c3c\u4e9e\u6771\u90e8
+variants.POSIX=\u96fb\u8166
+variants.FONIPA=IPA \u62fc\u97f3
+variants.1996=1996 \u5e74\u7684\u5fb7\u8a9e\u62fc\u5b57\u5b78
+variants.SAAHO=\u85a9\u970d
+variants.AREVMDA=\u4e9e\u7f8e\u5c3c\u4e9e\u897f\u90e8
+variants.1901=\u50b3\u7d71\u5fb7\u8a9e\u62fc\u5b57\u5b78
+variants.MONOTON=\u55ae\u97f3
+variants.FONUPA=UPA \u62fc\u97f3
+variants.NEDIS=Natisone \u65b9\u8a00
index ca7e33fa5bea2047df768b67c53b7f9cc943e9d1..82334ac2dc2ffad26913fc45e12d783c79040abd 100644 (file)
@@ -5,12 +5,8 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
-shortMonths=1\u6708®2\u6708®3\u6708®4\u6708®5\u6708®6\u6708®7\u6708®8\u6708®9\u6708®10\u6708®11\u6708®12\u6708®®
-shortDateFormat=yy'\u5e74'M'\u6708'd'\u65e5'
-mediumDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'
-longDateFormat=yyyy'\u5e74'MM'\u6708'dd'\u65e5'
-fullDateFormat=yyyy'\u5e74'MM'\u6708'dd'\u65e5' EEEE
-shortTimeFormat=ah:mm
+shortDateFormat=yy\u5e74M\u6708d\u65e5
+mediumDateFormat=yyyy\u5e74M\u6708d\u65e5
+longDateFormat=yyyy\u5e74MM\u6708dd\u65e5
+fullDateFormat=yyyy\u5e74MM\u6708dd\u65e5EEEE
 mediumTimeFormat=ahh:mm:ss
-territories.MO=\u6fb3\u9580\u7279\u5225\u884c\u653f\u5340
index 3d101b46e8833d4a22f70ac6df3f17e227af6c8d..2caabd1a598510ead6afe2f001e8d27a875197e8 100644 (file)
@@ -5,21 +5,6 @@
 #
 # This file was automatically generated by gnu.localegen from CLDR.
 
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
 shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
-longDateFormat=dd MMM yyyy
-fullDateFormat=dd MMMM yyyy
-shortTimeFormat=a hh:mm
-mediumTimeFormat=a hh:mm
-longTimeFormat=a hh:mm:ss
-fullTimeFormat=a hh:mm:ss
-territories.ID=\u5370\u5c3c
-territories.AU=\u6fb3\u6d32
-territories.SA=\u6c99\u5730\u963f\u62c9\u4f2f
-territories.MK=\u9a6c\u5176\u987f
-territories.KR=\u5357\u97e9
-territories.NZ=\u7ebd\u897f\u5170
-territories.CZ=\u6377\u514b
-languages.root=\u6839 \u6e90
-languages.sh=\u585e\u5c14\u7ef4\u4e9a\u514b\u7f57\u5730\u4e9a\u6587
+shortTimeFormat=ahh:mm
+longTimeFormat=ahh:mm:ssz
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zu.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zu.properties
new file mode 100644 (file)
index 0000000..ca2e500
--- /dev/null
@@ -0,0 +1,131 @@
+# LocaleInformation_zu.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Jan\u00aeFeb\u00aeMas\u00aeApr\u00aeMey\u00aeJun\u00aeJul\u00aeAga\u00aeSep\u00aeOkt\u00aeNov\u00aeDis\u00ae\u00ae
+months=uJanuwari\u00aeuFebruwari\u00aeuMashi\u00aeu-Apreli\u00aeuMeyi\u00aeuJuni\u00aeuJulayi\u00aeuAgasti\u00aeuSepthemba\u00aeu-Okthoba\u00aeuNovemba\u00aeuDisemba\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMso\u00aeBil\u00aeTha\u00aeSin\u00aeHla\u00aeMgq\u00ae
+weekdays=\u00aeSonto\u00aeMsombuluko\u00aeLwesibili\u00aeLwesithathu\u00aeuLwesine\u00aeLwesihlanu\u00aeMgqibelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yyyy-MM-dd
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+languages.es=isiSpeyini
+languages.ku=ulimu lwama Kudishi
+languages.eo=Isi-Esperanto
+languages.en=isiNgisi
+languages.el=IsiGreki
+languages.ko=IsiKoriya
+languages.kn=Ikhanada
+languages.km=Cambodian
+languages.ka=IsiJojiyani
+languages.jv=IsiJavanisi
+languages.fil=IsiThagalogi
+languages.pt=IsiPotukezi
+languages.ps=Pashto
+languages.de=isiJalimani
+languages.pl=IsiPholisi
+languages.da=IsiDenishi
+languages.tlh=IsiKlingoni
+languages.ja=IsiJaphani
+languages.vi=IsiVietnamise
+languages.cy=IsiWelshi
+languages.pa=IsiPhunjabi
+languages.cs=Isi-Czech
+languages.it=isItalian
+languages.is=Isi-Icelandic
+languages.uz=Isi-Uzibheki
+languages.or=Oriya
+languages.ur=Isi-Udu
+languages.ca=IsiKhathalani
+languages.ie=Izilimu
+languages.id=Isi-Indonesia
+languages.uk=Isi-Ukrain
+languages.ia=Izilimi ezihlangene
+languages.oc=Isi-Osithani
+languages.ug=Uighur
+languages.hy=Armenian
+languages.bs=IsiBhosiniyani
+languages.br=isihlobo sase Britain
+languages.hu=IsiHangari
+languages.pt_PT=IsiPotukezi (Ephothugali)
+languages.bn=IsiBhengali
+languages.hr=Isi-Croatia
+languages.tw=Twi
+languages.bh=IsiBhihari
+languages.bg=Isi-Bulgaria
+languages.no=IsiNoweyi
+languages.be=IsiBhelarashiyani
+languages.nn=IsiNowejiyani (Nynorsk)
+languages.hi=isiHindi
+languages.tr=IsiThekishi
+languages.nl=Isi-Dutch
+languages.zu=isiZulu
+languages.he=IsiHebheru
+languages.tk=umuntu wase Turkmenistan.
+languages.ne=IsiNepali
+languages.az=Isi-Azebhayijani
+languages.ti=IsiTigrinya
+languages.th=IsiThayi
+languages.te=IsiThelugu
+languages.as=Assamese
+languages.ar=isi-Alabhu
+languages.ta=IsiThamil
+languages.gu=IsiGujarati
+languages.am=Isi-Amaharikhi
+languages.mt=IsiMalithize
+languages.ms=IsiMalayi
+languages.gn=Gurani
+languages.sw=isiSwahili
+languages.mr=IsiMarathi
+languages.sv=IsiSwidishi
+languages.gl=Isi-Galashiya
+languages.su=IsiSundanizi
+languages.af=isiBhunu
+languages.st=isiSuthu
+languages.mn=Mongolian
+languages.sr=Isi-Sebhiya
+languages.sq=Isi-Albania
+languages.ml=IsiMalayami
+languages.mk=IsiMakhedoniya
+languages.so=Somali
+languages.gd=I-Scots Gaelic
+languages.sl=IsiSlovakiyani
+languages.sk=IsiSlovaki
+languages.ga=Isi-Irishi
+languages.si=IsiSinhalese
+languages.sh=Serbo-Croatian
+languages.pt_BR=Isiputukezi (Brazil)
+languages.yi=ulimu olwi Yidish
+languages.sd=Sindhi
+languages.fy=IsiFriziyani
+languages.sa=Sanskrit
+languages.fr=isiFulentshi
+languages.lv=Isi-Latvian
+languages.lt=Isi-Lithuanian
+languages.fo=Isifaro
+languages.ru=IsiRashiya
+languages.lo=Laothian
+languages.ln=Lingala
+languages.fi=isiFinnish
+languages.ro=IsiRomani
+languages.fa=IsiPheshiyani
+languages.la=IsiLathini
+languages.xh=isiXhosa
+languages.eu=Isi-Basque
+languages.ky=Kyrgyz
+languages.et=Isi-Esistoniya
diff --git a/libjava/classpath/resource/java/text/metazones.properties b/libjava/classpath/resource/java/text/metazones.properties
new file mode 100644 (file)
index 0000000..2535eaa
--- /dev/null
@@ -0,0 +1,323 @@
+# This document is automatically generated by gnu.supplementgen
+
+Acre.DEFAULT=America/Rio_Branco
+Afghanistan.DEFAULT=Asia/Kabul
+Africa_Central.BI=Africa/Bujumbura
+Africa_Central.BW=Africa/Gaborone
+Africa_Central.CD=Africa/Lubumbashi
+Africa_Central.DEFAULT=Africa/Maputo
+Africa_Central.MW=Africa/Blantyre
+Africa_Central.RW=Africa/Kigali
+Africa_Central.ZM=Africa/Lusaka
+Africa_Central.ZW=Africa/Harare
+Africa_Eastern.DEFAULT=Africa/Nairobi
+Africa_Eastern.DJ=Africa/Djibouti
+Africa_Eastern.ER=Africa/Asmera
+Africa_Eastern.ET=Africa/Addis_Ababa
+Africa_Eastern.KM=Indian/Comoro
+Africa_Eastern.MG=Indian/Antananarivo
+Africa_Eastern.SO=Africa/Mogadishu
+Africa_Eastern.TZ=Africa/Dar_es_Salaam
+Africa_Eastern.UG=Africa/Kampala
+Africa_Eastern.YT=Indian/Mayotte
+Africa_FarWestern.DEFAULT=Africa/El_Aaiun
+Africa_FarWestern.GW=Africa/Bissau
+Africa_Southern.DEFAULT=Africa/Johannesburg
+Africa_Southern.LS=Africa/Maseru
+Africa_Southern.SZ=Africa/Mbabane
+Africa_Western.AO=Africa/Luanda
+Africa_Western.BJ=Africa/Porto-Novo
+Africa_Western.CD=Africa/Kinshasa
+Africa_Western.CF=Africa/Bangui
+Africa_Western.CG=Africa/Brazzaville
+Africa_Western.CM=Africa/Douala
+Africa_Western.DEFAULT=Africa/Lagos
+Africa_Western.GA=Africa/Libreville
+Africa_Western.GQ=Africa/Malabo
+Africa_Western.NE=Africa/Niamey
+Africa_Western.TD=Africa/Ndjamena
+Aktyubinsk.DEFAULT=Asia/Aqtobe
+Alaska.DEFAULT=America/Juneau
+Alaska_Hawaii.DEFAULT=America/Anchorage
+Almaty.DEFAULT=Asia/Almaty
+Amazon.DEFAULT=America/Manaus
+America_Central.BZ=America/Belize
+America_Central.CA=America/Winnipeg
+America_Central.CR=America/Costa_Rica
+America_Central.DEFAULT=America/Chicago
+America_Central.GT=America/Guatemala
+America_Central.HN=America/Tegucigalpa
+America_Central.MX=America/Mexico_City
+America_Central.SV=America/El_Salvador
+America_Eastern.BS=America/Nassau
+America_Eastern.CA=America/Toronto
+America_Eastern.DEFAULT=America/New_York
+America_Eastern.HT=America/Port-au-Prince
+America_Eastern.JM=America/Jamaica
+America_Eastern.KY=America/Cayman
+America_Eastern.PA=America/Panama
+America_Eastern.TC=America/Grand_Turk
+America_Mountain.CA=America/Edmonton
+America_Mountain.DEFAULT=America/Denver
+America_Mountain.MX=America/Hermosillo
+America_Pacific.CA=America/Vancouver
+America_Pacific.DEFAULT=America/Los_Angeles
+America_Pacific.MX=America/Tijuana
+Anadyr.DEFAULT=Asia/Anadyr
+Aqtau.DEFAULT=Asia/Aqtau
+Aqtobe.DEFAULT=Asia/Aqtobe
+Arabian.BH=Asia/Bahrain
+Arabian.DEFAULT=Asia/Riyadh
+Arabian.IQ=Asia/Baghdad
+Arabian.KW=Asia/Kuwait
+Arabian.QA=Asia/Qatar
+Arabian.YE=Asia/Aden
+Argentina.DEFAULT=America/Buenos_Aires
+Argentina_Western.DEFAULT=America/Mendoza
+Armenia.DEFAULT=Asia/Yerevan
+Ashkhabad.DEFAULT=Asia/Ashgabat
+Atlantic.AG=America/Antigua
+Atlantic.AI=America/Anguilla
+Atlantic.AN=America/Curacao
+Atlantic.AW=America/Aruba
+Atlantic.BB=America/Barbados
+Atlantic.BM=America/Bermuda
+Atlantic.DEFAULT=America/Halifax
+Atlantic.DM=America/Dominica
+Atlantic.GD=America/Grenada
+Atlantic.GL=America/Thule
+Atlantic.GP=America/Guadaloupe
+Atlantic.KN=America/St_Kitts
+Atlantic.LC=America/St_Lucia
+Atlantic.MQ=America/Martinique
+Atlantic.MS=America/Montserrat
+Atlantic.PR=America/Puerto_Rico
+Atlantic.TT=America/Port_of_Spain
+Atlantic.VC=America/St_Vincent
+Atlantic.VG=America/Tortola
+Atlantic.VI=America/St_Thomas
+Australia_Central.DEFAULT=Australia/Adelaide
+Australia_CentralWestern.DEFAULT=Australia/Eucla
+Australia_Eastern.DEFAULT=Australia/Sydney
+Australia_Western.DEFAULT=Australia/Perth
+Azerbaijan.DEFAULT=Asia/Baku
+Azores.DEFAULT=Atlantic/Azores
+Baku.DEFAULT=Asia/Baku
+Bangladesh.DEFAULT=Asia/Dhaka
+Bering.DEFAULT=America/Adak
+Bhutan.DEFAULT=Asia/Thimphu
+Bolivia.DEFAULT=America/La_Paz
+Borneo.DEFAULT=Asia/Kuching
+Brasilia.DEFAULT=America/Sao_Paulo
+British.DEFAULT=Europe/London
+Brunei.DEFAULT=Asia/Brunei
+Cape_Verde.DEFAULT=Atlantic/Cape_Verde
+Chamorro.DEFAULT=Pacific/Saipan
+Chamorro.GU=Pacific/Guam
+Changbai.DEFAULT=Asia/Harbin
+Chatham.DEFAULT=Pacific/Chatham
+Chile.AQ=Antarctica/Palmer
+Chile.DEFAULT=America/Santiago
+China.DEFAULT=Asia/Shanghai
+China.MO=Asia/Macau
+China.TW=Asia/Taipei
+Choibalsan.DEFAULT=Asia/Choibalsan
+Christmas.DEFAULT=Indian/Christmas
+Cocos.DEFAULT=Indian/Cocos
+Colombia.DEFAULT=America/Bogota
+Cook.DEFAULT=Pacific/Rarotonga
+Cuba.DEFAULT=America/Havana
+Dacca.DEFAULT=Asia/Dhaka
+Davis.DEFAULT=Antarctica/Davis
+Dominican.DEFAULT=America/Santo_Domingo
+DumontDUrville.DEFAULT=Antarctica/DumontDUrville
+Dushanbe.DEFAULT=Asia/Dushanbe
+Dutch_Guiana.DEFAULT=America/Paramaribo
+East_Timor.DEFAULT=Asia/Dili
+Easter.DEFAULT=Pacific/Easter
+Ecuador.DEFAULT=America/Guayaquil
+Europe_Central.AD=Europe/Andorra
+Europe_Central.AL=Europe/Tirane
+Europe_Central.AT=Europe/Vienna
+Europe_Central.BA=Europe/Sarajevo
+Europe_Central.BE=Europe/Brussels
+Europe_Central.CH=Europe/Zurich
+Europe_Central.CZ=Europe/Prague
+Europe_Central.DE=Europe/Berlin
+Europe_Central.DEFAULT=Europe/Paris
+Europe_Central.DK=Europe/Copenhagen
+Europe_Central.ES=Europe/Madrid
+Europe_Central.GI=Europe/Gibraltar
+Europe_Central.HR=Europe/Zagreb
+Europe_Central.HU=Europe/Budapest
+Europe_Central.IT=Europe/Rome
+Europe_Central.LI=Europe/Vaduz
+Europe_Central.LU=Europe/Luxembourg
+Europe_Central.MC=Europe/Monaco
+Europe_Central.ME=Europe/Podgorica
+Europe_Central.MK=Europe/Skopje
+Europe_Central.MT=Europe/Malta
+Europe_Central.NL=Europe/Amsterdam
+Europe_Central.NO=Europe/Oslo
+Europe_Central.PL=Europe/Warsaw
+Europe_Central.RS=Europe/Belgrade
+Europe_Central.SE=Europe/Stockholm
+Europe_Central.SI=Europe/Ljubljana
+Europe_Central.SK=Europe/Bratislava
+Europe_Central.TN=Africa/Tunis
+Europe_Eastern.BG=Europe/Sofia
+Europe_Eastern.CY=Asia/Nicosia
+Europe_Eastern.DEFAULT=Europe/Bucharest
+Europe_Eastern.EG=Africa/Cairo
+Europe_Eastern.FI=Europe/Helsinki
+Europe_Eastern.GR=Europe/Athens
+Europe_Eastern.JO=Asia/Amman
+Europe_Eastern.LB=Asia/Beirut
+Europe_Eastern.SY=Asia/Damascus
+Europe_Western.DEFAULT=Atlantic/Canary
+Europe_Western.FO=Atlantic/Faeroe
+Falkland.DEFAULT=Atlantic/Stanley
+Fiji.DEFAULT=Pacific/Fiji
+French_Guiana.DEFAULT=America/Cayenne
+French_Southern.DEFAULT=Indian/Kerguelen
+Frunze.DEFAULT=Asia/Bishkek
+GMT.BF=Africa/Ouagadougou
+GMT.CI=Africa/Abidjan
+GMT.DEFAULT=Atlantic/Reykjavik
+GMT.GB=Europe/London
+GMT.GH=Africa/Accra
+GMT.GM=Africa/Banjul
+GMT.GN=Africa/Conakry
+GMT.GW=Africa/Bissau
+GMT.IE=Europe/Dublin
+GMT.LR=Africa/Monrovia
+GMT.ML=Africa/Bamako
+GMT.MR=Africa/Nouakchott
+GMT.SH=Atlantic/St_Helena
+GMT.SL=Africa/Freetown
+GMT.SN=Africa/Dakar
+GMT.ST=Africa/Sao_Tome
+GMT.TG=Africa/Lome
+Galapagos.DEFAULT=Pacific/Galapagos
+Gambier.DEFAULT=Pacific/Gambier
+Georgia.DEFAULT=Asia/Tbilisi
+Gilbert_Islands.DEFAULT=Pacific/Tarawa
+Goose_Bay.DEFAULT=America/Goose_Bay
+Greenland_Central.DEFAULT=America/Scoresbysund
+Greenland_Eastern.DEFAULT=America/Scoresbysund
+Greenland_Western.DEFAULT=America/Godthab
+Guam.DEFAULT=Pacific/Guam
+Gulf.DEFAULT=Asia/Dubai
+Gulf.OM=Asia/Muscat
+Guyana.DEFAULT=America/Guyana
+Hawaii_Aleutian.DEFAULT=Pacific/Honolulu
+Hong_Kong.DEFAULT=Asia/Hong_Kong
+Hovd.DEFAULT=Asia/Hovd
+India.DEFAULT=Asia/Calcutta
+India.LK=Asia/Colombo
+Indian_Ocean.DEFAULT=Indian/Chagos
+Indochina.DEFAULT=Asia/Saigon
+Indochina.KH=Asia/Phnom_Penh
+Indochina.LA=Asia/Vientiane
+Indochina.TH=Asia/Bangkok
+Indonesia_Central.DEFAULT=Asia/Makassar
+Indonesia_Eastern.DEFAULT=Asia/Jayapura
+Indonesia_Western.DEFAULT=Asia/Jakarta
+Iran.DEFAULT=Asia/Tehran
+Irish.DEFAULT=Europe/Dublin
+Irkutsk.DEFAULT=Asia/Irkutsk
+Israel.DEFAULT=Asia/Jerusalem
+Japan.DEFAULT=Asia/Tokyo
+Kamchatka.DEFAULT=Asia/Kamchatka
+Karachi.DEFAULT=Asia/Karachi
+Kashgar.DEFAULT=Asia/Kashgar
+Kazakhstan_Eastern.DEFAULT=Asia/Almaty
+Kazakhstan_Western.DEFAULT=Asia/Aqtobe
+Kizilorda.DEFAULT=Asia/Qyzylorda
+Korea.DEFAULT=Asia/Seoul
+Korea.KP=Asia/Pyongyang
+Kosrae.DEFAULT=Pacific/Kosrae
+Krasnoyarsk.DEFAULT=Asia/Krasnoyarsk
+Kuybyshev.DEFAULT=Europe/Samara
+Kwajalein.DEFAULT=Pacific/Kwajalein
+Kyrgystan.DEFAULT=Asia/Bishkek
+Lanka.DEFAULT=Asia/Colombo
+Liberia.DEFAULT=Africa/Monrovia
+Line_Islands.DEFAULT=Pacific/Kiritimati
+Long_Shu.DEFAULT=Asia/Chongqing
+Lord_Howe.DEFAULT=Australia/Lord_Howe
+Macau.DEFAULT=Asia/Macau
+Magadan.DEFAULT=Asia/Magadan
+Malaya.DEFAULT=Asia/Kuala_Lumpur
+Malaysia.DEFAULT=Asia/Kuching
+Maldives.DEFAULT=Indian/Maldives
+Marquesas.DEFAULT=Pacific/Marquesas
+Marshall_Islands.DEFAULT=Pacific/Majuro
+Mauritius.DEFAULT=Indian/Mauritius
+Mawson.DEFAULT=Antarctica/Mawson
+Mongolia.DEFAULT=Asia/Ulaanbaatar
+Moscow.DEFAULT=Europe/Moscow
+Myanmar.DEFAULT=Asia/Rangoon
+Nauru.DEFAULT=Pacific/Nauru
+Nepal.DEFAULT=Asia/Katmandu
+New_Caledonia.DEFAULT=Pacific/Noumea
+New_Zealand.AQ=Antarctica/McMurdo
+New_Zealand.DEFAULT=Pacific/Auckland
+Newfoundland.DEFAULT=America/St_Johns
+Niue.DEFAULT=Pacific/Niue
+Norfolk.DEFAULT=Pacific/Norfolk
+Noronha.DEFAULT=America/Noronha
+North_Mariana.DEFAULT=Pacific/Saipan
+Novosibirsk.DEFAULT=Asia/Novosibirsk
+Omsk.DEFAULT=Asia/Omsk
+Oral.DEFAULT=Asia/Oral
+Pakistan.DEFAULT=Asia/Karachi
+Palau.DEFAULT=Pacific/Palau
+Papua_New_Guinea.DEFAULT=Pacific/Port_Moresby
+Paraguay.DEFAULT=America/Asuncion
+Peru.DEFAULT=America/Lima
+Philippines.DEFAULT=Asia/Manila
+Phoenix_Islands.DEFAULT=Pacific/Enderbury
+Pierre_Miquelon.DEFAULT=America/Miquelon
+Pitcairn.DEFAULT=Pacific/Pitcairn
+Ponape.DEFAULT=Pacific/Ponape
+Qyzylorda.DEFAULT=Asia/Qyzylorda
+Reunion.DEFAULT=Indian/Reunion
+Rothera.DEFAULT=Antarctica/Rothera
+Sakhalin.DEFAULT=Asia/Sakhalin
+Samara.DEFAULT=Europe/Samara
+Samarkand.DEFAULT=Asia/Samarkand
+Samoa.DEFAULT=Pacific/Apia
+Seychelles.DEFAULT=Indian/Mahe
+Shevchenko.DEFAULT=Asia/Aqtau
+Singapore.DEFAULT=Asia/Singapore
+Solomon.DEFAULT=Pacific/Guadalcanal
+South_Georgia.DEFAULT=Atlantic/South_Georgia
+Suriname.DEFAULT=America/Paramaribo
+Sverdlovsk.DEFAULT=Asia/Yekaterinburg
+Syowa.DEFAULT=Antarctica/Syowa
+Tahiti.DEFAULT=Pacific/Tahiti
+Tajikistan.DEFAULT=Asia/Dushanbe
+Tashkent.DEFAULT=Asia/Tashkent
+Tbilisi.DEFAULT=Asia/Tbilisi
+Tokelau.DEFAULT=Pacific/Fakaofo
+Tonga.DEFAULT=Pacific/Tongatapu
+Truk.DEFAULT=Pacific/Truk
+Turkey.DEFAULT=Europe/Istanbul
+Turkmenistan.DEFAULT=Asia/Ashgabat
+Tuvalu.DEFAULT=Pacific/Funafuti
+Uralsk.DEFAULT=Asia/Oral
+Uruguay.DEFAULT=America/Montevideo
+Urumqi.DEFAULT=Asia/Urumqi
+Uzbekistan.DEFAULT=Asia/Tashkent
+Vanuatu.DEFAULT=Pacific/Efate
+Venezuela.DEFAULT=America/Caracas
+Vladivostok.DEFAULT=Asia/Vladivostok
+Volgograd.DEFAULT=Europe/Volgograd
+Vostok.DEFAULT=Antarctica/Vostok
+Wake.DEFAULT=Pacific/Wake
+Wallis.DEFAULT=Pacific/Wallis
+Yakutsk.DEFAULT=Asia/Yakutsk
+Yekaterinburg.DEFAULT=Asia/Yekaterinburg
+Yerevan.DEFAULT=Asia/Yerevan
+Yukon.DEFAULT=America/Yakutat
index 316b2d61bccb7e215e246df45a96f12591ce2b5c..bc1c7582d1975094ab8f61c5e5df9b79be604054 100644 (file)
@@ -1,26 +1,26 @@
-# This document is automatically generated by gnu.currencygen
+# This document is automatically generated by gnu.supplementgen
 
 AD.currency=EUR,ESP,FRF,ADP
-AD.fractionDigits=2
+AD.fractionDigits=0
 AE.currency=AED
 AE.fractionDigits=2
-AF.currency=AFN
+AF.currency=AFN,AFA
 AF.fractionDigits=2
 AG.currency=XCD
 AG.fractionDigits=2
 AI.currency=XCD
 AI.fractionDigits=2
-AL.currency=ALL
+AL.currency=ALL,ALK
 AL.fractionDigits=2
-AM.currency=AMD
+AM.currency=AMD,RUR,SUR
 AM.fractionDigits=2
 AN.currency=ANG
 AN.fractionDigits=2
-AO.currency=AOA
+AO.currency=AOA,AOR,AON,AOK
 AO.fractionDigits=2
-AQ.currency=
+AQ.currency=XXX
 AQ.fractionDigits=2
-AR.currency=ARS
+AR.currency=ARS,ARA,ARP
 AR.fractionDigits=2
 AS.currency=USD
 AS.fractionDigits=2
@@ -28,21 +28,23 @@ AT.currency=EUR,ATS
 AT.fractionDigits=2
 AU.currency=AUD
 AU.fractionDigits=2
-AW.currency=AWG
+AW.currency=AWG,ANG
 AW.fractionDigits=2
-AZ.currency=AZM
+AX.currency=EUR
+AX.fractionDigits=2
+AZ.currency=AZN,AZM,RUR,SUR
 AZ.fractionDigits=2
-BA.currency=BAM
+BA.currency=BAM,BAD,YUN,YUD
 BA.fractionDigits=2
-BB.currency=BBD
+BB.currency=BBD,XCD
 BB.fractionDigits=2
-BD.currency=BDT
+BD.currency=BDT,PKR,INR
 BD.fractionDigits=2
-BE.currency=EUR,BEF
+BE.currency=EUR,BEF,NLG
 BE.fractionDigits=2
 BF.currency=XOF
 BF.fractionDigits=0
-BG.currency=BGN
+BG.currency=BGN,BGL,BGM
 BG.fractionDigits=2
 BH.currency=BHD
 BH.fractionDigits=3
@@ -50,29 +52,35 @@ BI.currency=BIF
 BI.fractionDigits=0
 BJ.currency=XOF
 BJ.fractionDigits=0
+BL.currency=EUR,FRF
+BL.fractionDigits=2
 BM.currency=BMD
 BM.fractionDigits=2
-BN.currency=BND
+BN.currency=BND,MYR
 BN.fractionDigits=2
-BO.currency=BOB
+BO.currency=BOB,BOP
 BO.fractionDigits=2
-BR.currency=BRL
+BR.currency=BRL,BRR,BRE,BRN,BRC,BRB
 BR.fractionDigits=2
 BS.currency=BSD
 BS.fractionDigits=2
+BT.currency=INR,BTN
+BT.fractionDigits=2
+BU.currency=BUK
+BU.fractionDigits=2
 BV.currency=NOK
 BV.fractionDigits=2
-BW.currency=BWP
+BW.currency=BWP,ZAR
 BW.fractionDigits=2
-BY.currency=BYR
-BY.fractionDigits=0
+BY.currency=BYR,BYB,RUR,SUR
+BY.fractionDigits=2
 BZ.currency=BZD
 BZ.fractionDigits=2
 CA.currency=CAD
 CA.fractionDigits=2
 CC.currency=AUD
 CC.fractionDigits=2
-CD.currency=CDF
+CD.currency=CDF,ZRN,ZRZ
 CD.fractionDigits=2
 CF.currency=XAF
 CF.fractionDigits=0
@@ -91,19 +99,23 @@ CM.fractionDigits=0
 CN.currency=CNY
 CN.fractionDigits=2
 CO.currency=COP
-CO.fractionDigits=2
+CO.fractionDigits=0
 CR.currency=CRC
-CR.fractionDigits=2
-CU.currency=CUP
+CR.fractionDigits=0
+CS.currency=CSD,EUR,YUM
+CS.fractionDigits=2
+CU.currency=CUP,USD
 CU.fractionDigits=2
-CV.currency=CVE
+CV.currency=CVE,PTE
 CV.fractionDigits=2
 CX.currency=AUD
 CX.fractionDigits=2
-CY.currency=CYP
+CY.currency=EUR,CYP
 CY.fractionDigits=2
-CZ.currency=CZK
+CZ.currency=CZK,CSK
 CZ.fractionDigits=2
+DD.currency=DDM
+DD.fractionDigits=2
 DE.currency=EUR,DEM
 DE.fractionDigits=2
 DJ.currency=DJF
@@ -112,13 +124,13 @@ DK.currency=DKK
 DK.fractionDigits=2
 DM.currency=XCD
 DM.fractionDigits=2
-DO.currency=DOP
+DO.currency=DOP,USD
 DO.fractionDigits=2
 DZ.currency=DZD
 DZ.fractionDigits=2
-EC.currency=USD
+EC.currency=USD,ECS
 EC.fractionDigits=2
-EE.currency=EEK
+EE.currency=EEK,SUR
 EE.fractionDigits=2
 EG.currency=EGP
 EG.fractionDigits=2
@@ -127,7 +139,7 @@ EH.fractionDigits=2
 ER.currency=ERN
 ER.fractionDigits=2
 ES.currency=EUR,ESP
-ES.fractionDigits=2
+ES.fractionDigits=0
 ET.currency=ETB
 ET.fractionDigits=2
 FI.currency=EUR,FIM
@@ -136,8 +148,8 @@ FJ.currency=FJD
 FJ.fractionDigits=2
 FK.currency=FKP
 FK.fractionDigits=2
-FM.currency=USD
-FM.fractionDigits=2
+FM.currency=USD,JPY
+FM.fractionDigits=0
 FO.currency=DKK
 FO.fractionDigits=2
 FR.currency=EUR,FRF
@@ -148,11 +160,13 @@ GB.currency=GBP
 GB.fractionDigits=2
 GD.currency=XCD
 GD.fractionDigits=2
-GE.currency=GEL
+GE.currency=GEL,GEK,RUR,SUR
 GE.fractionDigits=2
-GF.currency=EUR
+GF.currency=EUR,FRF
 GF.fractionDigits=2
-GH.currency=GHC
+GG.currency=GBP
+GG.fractionDigits=2
+GH.currency=GHS,GHC
 GH.fractionDigits=2
 GI.currency=GIP
 GI.fractionDigits=2
@@ -160,48 +174,58 @@ GL.currency=DKK
 GL.fractionDigits=2
 GM.currency=GMD
 GM.fractionDigits=2
-GN.currency=GNF
-GN.fractionDigits=0
-GP.currency=EUR
+GN.currency=GNF,GNS
+GN.fractionDigits=2
+GP.currency=EUR,FRF
 GP.fractionDigits=2
-GQ.currency=XAF
-GQ.fractionDigits=0
+GQ.currency=XAF,GQE
+GQ.fractionDigits=2
 GR.currency=EUR,GRD
 GR.fractionDigits=2
+GS.currency=GBP
+GS.fractionDigits=2
 GT.currency=GTQ
 GT.fractionDigits=2
 GU.currency=USD
 GU.fractionDigits=2
+GW.currency=GWP,XOF,GWE
+GW.fractionDigits=2
 GY.currency=GYD
-GY.fractionDigits=2
+GY.fractionDigits=0
 HK.currency=HKD
 HK.fractionDigits=2
 HM.currency=AUD
 HM.fractionDigits=2
 HN.currency=HNL
 HN.fractionDigits=2
-HR.currency=HRK
+HR.currency=HRK,HRD,YUN,YUD
 HR.fractionDigits=2
+HT.currency=HTG,USD
+HT.fractionDigits=2
 HU.currency=HUF
-HU.fractionDigits=2
+HU.fractionDigits=0
 ID.currency=IDR
-ID.fractionDigits=2
-IE.currency=EUR,IEP
+ID.fractionDigits=0
+IE.currency=EUR,IEP,GBP
 IE.fractionDigits=2
-IL.currency=ILS
+IL.currency=ILS,ILP
 IL.fractionDigits=2
+IM.currency=GBP
+IM.fractionDigits=2
 IN.currency=INR
 IN.fractionDigits=2
-IO.currency=USD
+IO.currency=USD,GBP
 IO.fractionDigits=2
-IQ.currency=IQD
-IQ.fractionDigits=3
+IQ.currency=IQD,EGP,INR
+IQ.fractionDigits=2
 IR.currency=IRR
-IR.fractionDigits=2
-IS.currency=ISK
+IR.fractionDigits=0
+IS.currency=ISK,DKK
 IS.fractionDigits=2
 IT.currency=EUR,ITL
-IT.fractionDigits=2
+IT.fractionDigits=0
+JE.currency=GBP
+JE.fractionDigits=2
 JM.currency=JMD
 JM.fractionDigits=2
 JO.currency=JOD
@@ -210,7 +234,7 @@ JP.currency=JPY
 JP.fractionDigits=0
 KE.currency=KES
 KE.fractionDigits=2
-KG.currency=KGS
+KG.currency=KGS,RUR,SUR
 KG.fractionDigits=2
 KH.currency=KHR
 KH.fractionDigits=2
@@ -221,19 +245,19 @@ KM.fractionDigits=0
 KN.currency=XCD
 KN.fractionDigits=2
 KP.currency=KPW
-KP.fractionDigits=2
+KP.fractionDigits=0
 KR.currency=KRW
 KR.fractionDigits=0
 KW.currency=KWD
 KW.fractionDigits=3
-KY.currency=KYD
+KY.currency=KYD,JMD
 KY.fractionDigits=2
 KZ.currency=KZT
 KZ.fractionDigits=2
 LA.currency=LAK
-LA.fractionDigits=2
+LA.fractionDigits=0
 LB.currency=LBP
-LB.fractionDigits=2
+LB.fractionDigits=0
 LC.currency=XCD
 LC.fractionDigits=2
 LI.currency=CHF
@@ -242,56 +266,64 @@ LK.currency=LKR
 LK.fractionDigits=2
 LR.currency=LRD
 LR.fractionDigits=2
-LT.currency=LTL
+LS.currency=ZAR,LSL
+LS.fractionDigits=2
+LT.currency=LTL,LTT,SUR
 LT.fractionDigits=2
 LU.currency=EUR,LUF
-LU.fractionDigits=2
-LV.currency=LVL
+LU.fractionDigits=0
+LV.currency=LVL,LVR,SUR
 LV.fractionDigits=2
 LY.currency=LYD
 LY.fractionDigits=3
 MA.currency=MAD
 MA.fractionDigits=2
-MC.currency=EUR
+MC.currency=EUR,FRF
 MC.fractionDigits=2
 MD.currency=MDL
 MD.fractionDigits=2
-MG.currency=MGF
+ME.currency=EUR,DEM,YUM
+ME.fractionDigits=2
+MF.currency=EUR,FRF
+MF.fractionDigits=2
+MG.currency=MGA,MGF
 MG.fractionDigits=0
 MH.currency=USD
 MH.fractionDigits=2
 MK.currency=MKD
 MK.fractionDigits=2
-ML.currency=XOF
+ML.currency=XOF,MLF,XOF
 ML.fractionDigits=0
-MM.currency=MMK
+MM.currency=MMK,BUK
 MM.fractionDigits=2
 MN.currency=MNT
-MN.fractionDigits=2
+MN.fractionDigits=0
 MO.currency=MOP
 MO.fractionDigits=2
 MP.currency=USD
 MP.fractionDigits=2
-MQ.currency=EUR
+MQ.currency=EUR,FRF
 MQ.fractionDigits=2
-MR.currency=MRO
-MR.fractionDigits=2
+MR.currency=MRO,XOF
+MR.fractionDigits=0
 MS.currency=XCD
 MS.fractionDigits=2
-MT.currency=MTL
+MT.currency=EUR,MTL,MTP
 MT.fractionDigits=2
 MU.currency=MUR
-MU.fractionDigits=2
+MU.fractionDigits=0
 MV.currency=MVR
 MV.fractionDigits=2
 MW.currency=MWK
 MW.fractionDigits=2
-MX.currency=MXN
+MX.currency=MXN,MXP
 MX.fractionDigits=2
 MY.currency=MYR
 MY.fractionDigits=2
-MZ.currency=MZM
+MZ.currency=MZN,MZM,MZE
 MZ.fractionDigits=2
+NA.currency=ZAR,NAD
+NA.fractionDigits=2
 NC.currency=XPF
 NC.fractionDigits=0
 NE.currency=XOF
@@ -300,13 +332,13 @@ NF.currency=AUD
 NF.fractionDigits=2
 NG.currency=NGN
 NG.fractionDigits=2
-NI.currency=NIO
+NI.currency=NIO,NIC
 NI.fractionDigits=2
 NL.currency=EUR,NLG
 NL.fractionDigits=2
-NO.currency=NOK
+NO.currency=NOK,SEK
 NO.fractionDigits=2
-NP.currency=NPR
+NP.currency=NPR,INR
 NP.fractionDigits=2
 NR.currency=AUD
 NR.fractionDigits=2
@@ -316,26 +348,28 @@ NZ.currency=NZD
 NZ.fractionDigits=2
 OM.currency=OMR
 OM.fractionDigits=3
-PA.currency=PAB
+PA.currency=PAB,USD
 PA.fractionDigits=2
-PE.currency=PEN
+PE.currency=PEN,PEI,PES
 PE.fractionDigits=2
 PF.currency=XPF
 PF.fractionDigits=0
-PG.currency=PGK
+PG.currency=PGK,AUD
 PG.fractionDigits=2
 PH.currency=PHP
 PH.fractionDigits=2
-PK.currency=PKR
+PK.currency=PKR,INR
 PK.fractionDigits=2
-PL.currency=PLN
+PL.currency=PLN,PLZ
 PL.fractionDigits=2
-PM.currency=EUR
+PM.currency=EUR,FRF
 PM.fractionDigits=2
 PN.currency=NZD
 PN.fractionDigits=2
-PR.currency=USD
-PR.fractionDigits=2
+PR.currency=USD,ESP
+PR.fractionDigits=0
+PS.currency=JOD,ILS,ILP,JOD
+PS.fractionDigits=3
 PT.currency=EUR,PTE
 PT.fractionDigits=2
 PW.currency=USD
@@ -344,108 +378,116 @@ PY.currency=PYG
 PY.fractionDigits=0
 QA.currency=QAR
 QA.fractionDigits=2
-RE.currency=EUR
+QU.currency=EUR
+QU.fractionDigits=2
+RE.currency=EUR,FRF
 RE.fractionDigits=2
-RO.currency=ROL
+RO.currency=RON,ROL
 RO.fractionDigits=2
-RU.currency=RUB
+RS.currency=RSD,CSD,YUM
+RS.fractionDigits=2
+RU.currency=RUB,RUR
 RU.fractionDigits=2
 RW.currency=RWF
 RW.fractionDigits=0
 SA.currency=SAR
 SA.fractionDigits=2
-SB.currency=SBD
+SB.currency=SBD,AUD
 SB.fractionDigits=2
 SC.currency=SCR
 SC.fractionDigits=2
-SD.currency=SDD
+SD.currency=SDG,SDD,SDP,EGP,GBP
 SD.fractionDigits=2
 SE.currency=SEK
 SE.fractionDigits=2
-SG.currency=SGD
+SG.currency=SGD,MYR
 SG.fractionDigits=2
 SH.currency=SHP
 SH.fractionDigits=2
-SI.currency=SIT
+SI.currency=EUR,SIT
 SI.fractionDigits=2
 SJ.currency=NOK
 SJ.fractionDigits=2
-SK.currency=SKK
+SK.currency=SKK,CSK
 SK.fractionDigits=2
-SL.currency=SLL
+SL.currency=SLL,GBP
 SL.fractionDigits=2
-SM.currency=EUR
-SM.fractionDigits=2
+SM.currency=EUR,ITL
+SM.fractionDigits=0
 SN.currency=XOF
 SN.fractionDigits=0
 SO.currency=SOS
-SO.fractionDigits=2
-SR.currency=SRG
+SO.fractionDigits=0
+SR.currency=SRD,SRG,NLG
 SR.fractionDigits=2
 ST.currency=STD
-ST.fractionDigits=2
-SV.currency=SVC
+ST.fractionDigits=0
+SU.currency=SUR
+SU.fractionDigits=2
+SV.currency=SVC,USD
 SV.fractionDigits=2
 SY.currency=SYP
-SY.fractionDigits=2
+SY.fractionDigits=0
 SZ.currency=SZL
 SZ.fractionDigits=2
 TC.currency=USD
 TC.fractionDigits=2
 TD.currency=XAF
 TD.fractionDigits=0
-TF.currency=EUR
+TF.currency=EUR,FRF
 TF.fractionDigits=2
 TG.currency=XOF
 TG.fractionDigits=0
 TH.currency=THB
 TH.fractionDigits=2
-TJ.currency=TJS
+TJ.currency=TJS,TJR
 TJ.fractionDigits=2
 TK.currency=NZD
 TK.fractionDigits=2
-TL.currency=USD
-TL.fractionDigits=2
-TM.currency=TMM
+TL.currency=USD,TPE,IDR
+TL.fractionDigits=0
+TM.currency=TMM,RUR,SUR
 TM.fractionDigits=2
 TN.currency=TND
 TN.fractionDigits=3
 TO.currency=TOP
 TO.fractionDigits=2
-TR.currency=TRL
+TP.currency=TPE,IDR
+TP.fractionDigits=0
+TR.currency=TRY,TRL
 TR.fractionDigits=0
 TT.currency=TTD
 TT.fractionDigits=2
 TV.currency=AUD
 TV.fractionDigits=2
 TW.currency=TWD
-TW.fractionDigits=2
+TW.fractionDigits=0
 TZ.currency=TZS
-TZ.fractionDigits=2
-UA.currency=UAH
+TZ.fractionDigits=0
+UA.currency=UAH,UAK,RUR,SUR
 UA.fractionDigits=2
-UG.currency=UGX
+UG.currency=UGX,UGS
 UG.fractionDigits=2
 UM.currency=USD
 UM.fractionDigits=2
 US.currency=USD
 US.fractionDigits=2
-UY.currency=UYU
+UY.currency=UYU,UYP
 UY.fractionDigits=2
 UZ.currency=UZS
-UZ.fractionDigits=2
-VA.currency=EUR
-VA.fractionDigits=2
+UZ.fractionDigits=0
+VA.currency=EUR,ITL
+VA.fractionDigits=0
 VC.currency=XCD
 VC.fractionDigits=2
-VE.currency=VEB
+VE.currency=VEF,VEB
 VE.fractionDigits=2
-VG.currency=USD
+VG.currency=USD,GBP
 VG.fractionDigits=2
 VI.currency=USD
 VI.fractionDigits=2
 VN.currency=VND
-VN.fractionDigits=2
+VN.fractionDigits=0
 VU.currency=VUV
 VU.fractionDigits=0
 WF.currency=XPF
@@ -453,14 +495,16 @@ WF.fractionDigits=0
 WS.currency=WST
 WS.fractionDigits=2
 YE.currency=YER
-YE.fractionDigits=2
-YT.currency=EUR
-YT.fractionDigits=2
-YU.currency=YUM
+YE.fractionDigits=0
+YT.currency=EUR,FRF,KMF
+YT.fractionDigits=0
+YU.currency=YUM,YUN,YUD
 YU.fractionDigits=2
 ZA.currency=ZAR
 ZA.fractionDigits=2
 ZM.currency=ZMK
-ZM.fractionDigits=2
+ZM.fractionDigits=0
+ZR.currency=ZRN,ZRZ
+ZR.fractionDigits=2
 ZW.currency=ZWD
-ZW.fractionDigits=2
+ZW.fractionDigits=0
diff --git a/libjava/classpath/resource/java/util/weeks.properties b/libjava/classpath/resource/java/util/weeks.properties
new file mode 100644 (file)
index 0000000..a2547f4
--- /dev/null
@@ -0,0 +1,80 @@
+# This document is automatically generated by gnu.supplementgen
+
+firstDay.AF=sat
+firstDay.AS=sun
+firstDay.AZ=sun
+firstDay.BH=sat
+firstDay.BW=sun
+firstDay.CA=sun
+firstDay.CN=sun
+firstDay.DEFAULT=mon
+firstDay.DJ=sat
+firstDay.DZ=sat
+firstDay.EG=sat
+firstDay.ER=sat
+firstDay.ET=sat
+firstDay.FO=sun
+firstDay.GE=sun
+firstDay.GL=sun
+firstDay.GU=sun
+firstDay.HK=sun
+firstDay.IE=sun
+firstDay.IL=sun
+firstDay.IQ=sat
+firstDay.IR=sat
+firstDay.IS=sun
+firstDay.JM=sun
+firstDay.JO=sat
+firstDay.JP=sun
+firstDay.KE=sat
+firstDay.KG=sun
+firstDay.KR=sun
+firstDay.KW=sat
+firstDay.LA=sun
+firstDay.LY=sat
+firstDay.MA=sat
+firstDay.MH=sun
+firstDay.MN=sun
+firstDay.MO=sun
+firstDay.MP=sun
+firstDay.MT=sun
+firstDay.MV=fri
+firstDay.NZ=sun
+firstDay.OM=sat
+firstDay.PH=sun
+firstDay.PK=sun
+firstDay.QA=sat
+firstDay.SA=sat
+firstDay.SD=sat
+firstDay.SG=sun
+firstDay.SO=sat
+firstDay.SY=sun
+firstDay.TH=sun
+firstDay.TN=sat
+firstDay.TT=sun
+firstDay.TW=sun
+firstDay.UM=sun
+firstDay.US=sun
+firstDay.UZ=sun
+firstDay.VI=sun
+firstDay.YE=sat
+firstDay.ZW=sun
+minDays.AT=4
+minDays.BE=4
+minDays.CA=4
+minDays.CH=4
+minDays.DE=4
+minDays.DEFAULT=1
+minDays.DK=4
+minDays.FI=4
+minDays.FR=4
+minDays.IT=4
+minDays.LI=4
+minDays.LT=4
+minDays.LU=4
+minDays.MC=4
+minDays.MT=4
+minDays.NL=4
+minDays.NO=4
+minDays.SE=4
+minDays.SK=4
index fec57befa57c26058a098ec79faae26bf5a0c8ec..dd934679512c8f7dd85af1e1b5c1bd749d2fd7ae 100644 (file)
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -73,6 +76,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -104,6 +109,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -142,11 +153,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -156,6 +168,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -177,7 +191,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -243,8 +260,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -255,6 +274,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -314,6 +334,7 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 EXTRA_DIST = generate-locale-list.sh import-cacerts.sh
 all: all-am
index 2a114d340b793c749548262306c9cad0d980a2d3..cf30094187606b8289bc4b603f5ad27a261b02e1 100644 (file)
@@ -6,12 +6,16 @@ set -e
 TMPFILE=/tmp/check-jni-methods.$$.1
 TMPFILE2=/tmp/check-jni-methods.$$.2
 TMPFILE3=/tmp/check-jni-methods.$$.3
+TMPFILE4=/tmp/check-jni-methods.$$.4
 
 # Find all methods defined in the header files generated
 # from the java source files.
-grep -h '^JNIEXPORT .* Java_' @abs_top_builddir@/include/*.h @abs_top_srcdir@/include/*.h | \
-        LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' | \
-       sort -u > $TMPFILE
+grep -h '^JNIEXPORT .* Java_' @abs_top_srcdir@/include/*.h | \
+        LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' > $TMPFILE
+grep -h '^JNIEXPORT .* Java_' @abs_top_builddir@/include/*.h | \
+        LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE
+sort -u $TMPFILE > $TMPFILE4
+mv $TMPFILE4 $TMPFILE
 
 # Find all methods in the JNI C source files.
 find @abs_top_srcdir@/native/jni -name \*.c | \
index 81953bc66ee99d90915bd08f60992f35d30ee2dd..01c07ee9646739e57a0a6732e5e91ea3151057ae 100755 (executable)
@@ -2,19 +2,35 @@
 
 ## GCJ LOCAL: use srcdir to find core classes.
 GLIBJ_BOOTCLASSPATH='$(top_srcdir)/lib'
-GLIBJ_CLASSPATH=.:$(srcdir)/asm
+GLIBJ_CLASSPATH=.:$(srcdir)/asm:$(ANTLR_CLASSPATH)
 ## END GCJ LOCAL
 
-# Setup the compiler to use the GNU Classpath library we just build
-## GCJ LOCAL: don't pass $(JAVACFLAGS) -source 1.5 -target 1.5
-JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
+# Setup the compiler to use the GNU Classpath library we just built.
+if GCJ_JAVAC
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_BOOTCLASSPATH) --classpath=$(GLIBJ_CLASSPATH)
+else
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
+endif
+
+if CREATE_GJDOC
+## GCJ LOCAL: always put source files in srcdir
+## if CREATE_GJDOC_PARSER
+## gjdoc_gendir = ${top_builddir}/tools/generated
+## else
+gjdoc_gendir = ${top_srcdir}/tools/generated
+## endif
+## END GCJ LOCAL
+ANTLR_CLASSPATH = $(ANTLR_JAR):$(gjdoc_gendir)
+endif
 
 if CREATE_WRAPPERS
 bin_SCRIPTS =
 bin_PROGRAMS = gappletviewer gjarsigner gkeytool \
        gjar gnative2ascii gserialver gjavah grmiregistry \
        gtnameserv gorbd grmid grmic
-
+if CREATE_GJDOC
+bin_PROGRAMS += gjdoc
+endif
 
 AM_CPPFLAGS = -Wall \
        -I$(top_srcdir)/include \
@@ -83,11 +99,19 @@ grmic_CFLAGS = \
        -DTOOLPACKAGE="\"rmic\"" \
        -DTOOLNAME="\"grmic\""
 
+gjdoc_SOURCES = toolwrapper.c
+gjdoc_CFLAGS = \
+       -DTOOLPACKAGE="\"gjdoc\"" \
+       -DTOOLNAME="\"gjdoc\""
+
 else
 ## GCJ LOCAL: do not install these.
 noinst_SCRIPTS = gappletviewer gjarsigner gkeytool \
        gjar gnative2ascii gserialver gjavah grmiregistry \
        gtnameserv gorbd grmid grmic
+if CREATE_GJDOC
+noinst_SCRIPTS += gjdoc
+endif
 bin_PROGRAMS =
 ## FIXME: remove these unneeded dependency lines once we can
 ## require Automake 1.11.
@@ -103,17 +127,25 @@ gtnameserv: gtnameserv.in
 gorbd: gorbd.in
 grmid: grmid.in
 grmic: grmic.in
+if CREATE_GJDOC
+gjdoc: gjdoc.in
+endif
 endif
 EXTRA_DIST = toolwrapper.c gappletviewer.in gjarsigner.in gkeytool.in \
        gjar.in gnative2ascii.in gserialver.in gjavah.in grmiregistry.in \
-       gtnameserv.in gorbd.in grmid.in grmic.in
+       gtnameserv.in gorbd.in grmid.in grmic.in gjdoc.in
 
 # All our example java source files
 TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
+       $(srcdir)/gnu/classpath/tools/*.java \
+       $(srcdir)/gnu/classpath/tools/*/*.java \
+       $(srcdir)/gnu/classpath/tools/*/*/*.java \
+       $(srcdir)/gnu/classpath/tools/*/*/*/*.java \
        $(srcdir)/com/sun/javadoc/*.java \
        $(srcdir)/com/sun/tools/doclets/*.java \
        $(srcdir)/com/sun/tools/javac/*.java \
        $(srcdir)/com/sun/tools/javah/*.java \
+       $(srcdir)/com/sun/tools/javadoc/*.java \
        $(srcdir)/sun/rmi/rmic/*.java \
        $(srcdir)/external/asm/org/objectweb/asm/*.java \
        $(srcdir)/external/asm/org/objectweb/asm/attrs/*.java \
@@ -147,6 +179,107 @@ PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.prope
 # RMIC templates that must be included in the generated zip file.
 RMIC_TEMPLATES = $(srcdir)/resource/gnu/classpath/tools/rmic/templates/*.jav
 
+# gjdoc resource files.
+gnu_classpath_tools_gjdoc_jar_CSS = \
+       doctranslets/html/res/gjdochtml-clean.css \
+       doctranslets/html/res/gjdochtml-fixed.css \
+       doctranslets/html/res/gjdochtml-sclara.css \
+       doctranslets/html/res/gjdochtml.css \
+       htmldoclet/gjdochtml-vanilla.css \
+       htmldoclet/gjdochtml-clean-layout.css \
+       htmldoclet/gjdochtml-clean-color1.css
+
+gnu_classpath_tools_gjdoc_jar_DTDS = \
+       htmldoclet/xhtml11-target10.dtd \
+       dtd/gjdoc-alphaindex.dtd \
+       dtd/gjdoc.dtd
+
+gnu_classpath_tools_gjdoc_jar_ENTS = \
+       dtd/ent/iso-amsa.ent \
+       dtd/ent/iso-amsb.ent \
+       dtd/ent/iso-amsc.ent \
+       dtd/ent/iso-amsn.ent \
+       dtd/ent/iso-amso.ent \
+       dtd/ent/iso-amsr.ent \
+       dtd/ent/iso-box.ent \
+       dtd/ent/iso-cyr1.ent \
+       dtd/ent/iso-cyr2.ent \
+       dtd/ent/iso-dia.ent \
+       dtd/ent/iso-grk1.ent \
+       dtd/ent/iso-grk2.ent \
+       dtd/ent/iso-grk3.ent \
+       dtd/ent/iso-grk4.ent \
+       dtd/ent/iso-lat1.ent \
+       dtd/ent/iso-lat2.ent \
+       dtd/ent/iso-num.ent \
+       dtd/ent/iso-pub.ent \
+       dtd/ent/iso-tech.ent
+
+gnu_classpath_tools_gjdoc_jar_HTML = doctranslets/html/res/default_help_en.html
+
+gnu_classpath_tools_gjdoc_jar_JS = \
+       doctranslets/html/res/gjdoc.js \
+       htmldoclet/gjdoc.js
+
+gnu_classpath_tools_gjdoc_jar_PNG = \
+       htmldoclet/inherit.png
+
+gnu_classpath_tools_gjdoc_jar_MODS = dtd/dbcentx.mod
+
+gnu_classpath_tools_gjdoc_jar_PROPERTIES = htmldoclet/HtmlDoclet.properties
+
+gnu_classpath_tools_gjdoc_jar_RNGS = \
+       rng/gjdoc-classdoc.rng \
+       rng/gjdoc-common.rng \
+       rng/gjdoc-index.rng
+
+gnu_classpath_tools_gjdoc_jar_TXTS = \
+       java.lang-classes-1.2.txt \
+       java.lang-classes-1.3.txt \
+       java.lang-classes-1.4.txt \
+       java.lang-classes-1.5.txt
+
+gnu_classpath_tools_gjdoc_jar_XHTML = htmldoclet/help.xhtml
+
+gnu_classpath_tools_gjdoc_jar_XSLS = \
+       doctranslets/gjdoc_common.xsl \
+       doctranslets/html/about.xsl \
+       doctranslets/html/allclasses.xsl \
+       doctranslets/html/allpackages.xsl \
+       doctranslets/html/alphaindex.xsl \
+       doctranslets/html/alphaindex_chunked.xsl \
+       doctranslets/html/classdoc-source.xsl \
+       doctranslets/html/classdoc-uses.xsl \
+       doctranslets/html/classdoc.xsl \
+       doctranslets/html/deprecated.xsl \
+       doctranslets/html/descriptor.xsl \
+       doctranslets/html/doctranslet.xsl \
+       doctranslets/html/fulltree.xsl \
+       doctranslets/html/gjdoc.xsl \
+       doctranslets/html/help.xsl \
+       doctranslets/html/html_common.xsl \
+       doctranslets/html/index_noframes.xsl \
+       doctranslets/html/index.xsl \
+       doctranslets/html/packageclasses.xsl \
+       doctranslets/html/packagedoc.xsl
+
+# All our resources.
+gjdoc_resources = $(gnu_classpath_tools_gjdoc_jar_CSS) $(gnu_classpath_tools_gjdoc_jar_DTDS) \
+       $(gnu_classpath_tools_gjdoc_jar_ENTS) $(gnu_classpath_tools_gjdoc_jar_HTML) \
+       $(gnu_classpath_tools_gjdoc_jar_JS) $(gnu_classpath_tools_gjdoc_jar_MODS) \
+       $(gnu_classpath_tools_gjdoc_jar_PNG) $(gnu_classpath_tools_gjdoc_jar_PROPERTIES) \
+       $(gnu_classpath_tools_gjdoc_jar_RNGS) $(gnu_classpath_tools_gjdoc_jar_TXTS) \
+       $(gnu_classpath_tools_gjdoc_jar_XHTML) $(gnu_classpath_tools_gjdoc_jar_XSLS)
+
+if !CREATE_GJDOC
+GJDOC_EX = -path '*gnu/classpath/tools/gjdoc' -prune -o \
+       -path '*gnu/classpath/tools/doclets' -prune -o \
+       -path '*gnu/classpath/tools/taglets' -prune -o \
+       -path '*com/sun/javadoc' -prune -o \
+       -path '*com/sun/tools/doclets' -prune -o \
+       -path '*com/sun/tools/javadoc' -prune -o
+endif
+
 # The zip files with classes we want to produce.
 TOOLS_ZIP = tools.zip
 
@@ -154,7 +287,9 @@ TOOLS_ZIP = tools.zip
 BUILT_SOURCES = $(TOOLS_ZIP)
 
 # All the files we find "interesting"
-ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES)
+ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES) \
+  $(addprefix $(srcdir)/resource/gnu/classpath/tools/gjdoc/,$(gjdoc_resources))\
+  $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
 
 # Some architecture independent data to be installed.
 # GCJ LOCAL: do not install this.
@@ -184,14 +319,17 @@ dist-hook:
 $(TOOLS_ZIP): $(ALL_TOOLS_FILES)
 ## GCJ LOCAL: put classes in srcdir
 ##     @rm -rf classes asm
-##     mkdir classes asm
+##     @mkdir_p@ classes asm
+## Compile ASM separately as it is latin-1 encoded.
        find $(srcdir)/external/asm -name '*.java' -print > asm.lst
        find $(srcdir)/gnu/classpath/tools \
             $(srcdir)/com/sun/javadoc \
             $(srcdir)/com/sun/tools/doclets \
+            $(srcdir)/com/sun/tools/javadoc \
             $(srcdir)/com/sun/tools/javac \
             $(srcdir)/com/sun/tools/javah \
             $(srcdir)/sun/rmi/rmic \
+            $(GJDOC_EX) \
             -name '*.java' -print > classes.lst
        if [ -f $(top_builddir)/../vm-tools-packages ]; then \
            : > vm-tools.lst; \
@@ -203,46 +341,65 @@ $(TOOLS_ZIP): $(ALL_TOOLS_FILES)
        fi
        cat classes.lst asm.lst vm-tools.lst > all-classes.lst
 if JAVA_MAINTAINER_MODE
+if CREATE_GJDOC
+if CREATE_GJDOC_PARSER
+## Generate antlr sources.
+       @mkdir_p@ $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr
+       $(ANTLR) -o $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr \
+         $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
+endif
+endif
 ## Compile ASM separately as it is latin-1 encoded.
        AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \
          $$AC -g -w -d $(srcdir)/asm @asm.lst
-       $(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst @vm-tools.lst
+       $(JCOMPILER) $(USE_JAVAC_FLAGS) -g -d $(srcdir)/classes @classes.lst @vm-tools.lst
+endif
+## END GCJ LOCAL
 ## Copy over tools resource files.
        @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
-              sun/rmi/rmic -name \*.properties -print -o -name \*.jav -print`; \
+              sun/rmi/rmic $(GJDOC_EX) -name \*.properties -print -o -name \*.jav -print`; \
        for p in $$list; do \
          dirname=classes/`dirname $$p`; \
-         if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
-         echo "  cp $(srcdir)resource/$$p classes/$$p"; \
+         if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
+         echo "  cp $(srcdir)/resource/$$p classes/$$p"; \
          cp $(srcdir)/resource/$$p classes/$$p; \
        done
-endif
-## Copy over rmic template files.
-       @list=`cd $(srcdir) && find gnu/classpath/tools -name \*.jav -print`; \
-       for p in $$list; do \
-         dirname=classes/`dirname $$p`; \
-         if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
-         echo "  cp $(srcdir)/$$p classes/$$p"; \
-         cp $(srcdir)/$$p classes/$$p; \
-       done
        cp -pR $(srcdir)/asm .
        cp -pR $(srcdir)/classes .
-## END GCJ LOCAL
+if CREATE_GJDOC
+## Copy over gjdoc resource files.
+       for res in $(gjdoc_resources); do \
+         dir=classes/`dirname $$res`; \
+         if ! test -d "$$dir"; then @mkdir_p@ "$$dir"; fi; \
+         echo "  cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res"; \
+         cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res; \
+       done 
+endif
+
+if WITH_JAR
+CREATE_TOOLS_ZIP=$(JAR) cf ../$(TOOLS_ZIP) .
+UPDATE_TOOLS_ZIP=$(JAR) uf ../$(TOOLS_ZIP) .
+else
+CREATE_TOOLS_ZIP=$(ZIP) -r ../$(TOOLS_ZIP) .
+UPDATE_TOOLS_ZIP=$(ZIP) -u -r ../$(TOOLS_ZIP) .
+endif
+
 ## First add classpath tools stuff.
        (cd classes; \
-       if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \
-       if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf ../$(TOOLS_ZIP) .; fi; \
+       $(CREATE_TOOLS_ZIP); \
        cd ..)
 ## Now add ASM classes.
        (cd asm; \
-       if test "$(ZIP)" != ""; then $(ZIP) -u -r ../$(TOOLS_ZIP) .; fi; \
-       if test "$(FASTJAR)" != ""; then "$(FASTJAR)" uf ../$(TOOLS_ZIP) .; fi; \
+       $(UPDATE_TOOLS_ZIP); \
        cd ..)
        rm -rf asm classes classes.lst asm.lst
 
 # Zip file be gone! (and make sure the classes are gone too)
 clean-local:
        rm -rf $(TOOLS_ZIP) classes classes.lst asm asm.lst all-classes.lst
+if CREATE_GJDOC_PARSER
+       rm -rf $(gjdoc_gendir)
+endif
 
 # FIXME: remove this when GNU Classpath includes a bootstrap VM.
 installcheck-binSCRIPTS:
index 4204dd0438da1548764f9449410ddae7cfbe5af2..cf52853cc3281743d939c82c46e645ffb114ba64 100644 (file)
@@ -45,11 +45,14 @@ target_triplet = @target@
 @CREATE_WRAPPERS_TRUE@ gserialver$(EXEEXT) gjavah$(EXEEXT) \
 @CREATE_WRAPPERS_TRUE@ grmiregistry$(EXEEXT) \
 @CREATE_WRAPPERS_TRUE@ gtnameserv$(EXEEXT) gorbd$(EXEEXT) \
-@CREATE_WRAPPERS_TRUE@ grmid$(EXEEXT) grmic$(EXEEXT)
+@CREATE_WRAPPERS_TRUE@ grmid$(EXEEXT) grmic$(EXEEXT) \
+@CREATE_WRAPPERS_TRUE@ $(am__EXEEXT_1)
+@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_TRUE@am__append_1 = gjdoc
+@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_FALSE@am__append_2 = gjdoc
 subdir = tools
 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
        $(srcdir)/gappletviewer.in $(srcdir)/gjar.in \
-       $(srcdir)/gjarsigner.in $(srcdir)/gjavah.in \
+       $(srcdir)/gjarsigner.in $(srcdir)/gjavah.in $(srcdir)/gjdoc.in \
        $(srcdir)/gkeytool.in $(srcdir)/gnative2ascii.in \
        $(srcdir)/gorbd.in $(srcdir)/grmic.in $(srcdir)/grmid.in \
        $(srcdir)/grmiregistry.in $(srcdir)/gserialver.in \
@@ -66,6 +69,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
        $(top_srcdir)/../../lt~obsolete.m4 \
+       $(top_srcdir)/m4/ac_prog_antlr.m4 \
+       $(top_srcdir)/m4/ac_prog_java.m4 \
+       $(top_srcdir)/m4/ac_prog_java_works.m4 \
        $(top_srcdir)/m4/ac_prog_javac.m4 \
        $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -82,7 +88,9 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/include/config.h
 CONFIG_CLEAN_FILES = gappletviewer gjarsigner gkeytool gjar \
        gnative2ascii gserialver grmiregistry gtnameserv gorbd grmid \
-       grmic gjavah
+       grmic gjavah gjdoc
+@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_TRUE@am__EXEEXT_1 =  \
+@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_TRUE@      gjdoc$(EXEEXT)
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"
 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
@@ -105,6 +113,10 @@ am__gjavah_SOURCES_DIST = toolwrapper.c
 @CREATE_WRAPPERS_TRUE@ gjavah-toolwrapper.$(OBJEXT)
 gjavah_OBJECTS = $(am_gjavah_OBJECTS)
 gjavah_LDADD = $(LDADD)
+am__gjdoc_SOURCES_DIST = toolwrapper.c
+@CREATE_WRAPPERS_TRUE@am_gjdoc_OBJECTS = gjdoc-toolwrapper.$(OBJEXT)
+gjdoc_OBJECTS = $(am_gjdoc_OBJECTS)
+gjdoc_LDADD = $(LDADD)
 am__gkeytool_SOURCES_DIST = toolwrapper.c
 @CREATE_WRAPPERS_TRUE@am_gkeytool_OBJECTS =  \
 @CREATE_WRAPPERS_TRUE@ gkeytool-toolwrapper.$(OBJEXT)
@@ -156,16 +168,16 @@ CCLD = $(CC)
 LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(gappletviewer_SOURCES) $(gjar_SOURCES) \
-       $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gkeytool_SOURCES) \
-       $(gnative2ascii_SOURCES) $(gorbd_SOURCES) $(grmic_SOURCES) \
-       $(grmid_SOURCES) $(grmiregistry_SOURCES) $(gserialver_SOURCES) \
-       $(gtnameserv_SOURCES)
+       $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gjdoc_SOURCES) \
+       $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \
+       $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \
+       $(gserialver_SOURCES) $(gtnameserv_SOURCES)
 DIST_SOURCES = $(am__gappletviewer_SOURCES_DIST) \
        $(am__gjar_SOURCES_DIST) $(am__gjarsigner_SOURCES_DIST) \
-       $(am__gjavah_SOURCES_DIST) $(am__gkeytool_SOURCES_DIST) \
-       $(am__gnative2ascii_SOURCES_DIST) $(am__gorbd_SOURCES_DIST) \
-       $(am__grmic_SOURCES_DIST) $(am__grmid_SOURCES_DIST) \
-       $(am__grmiregistry_SOURCES_DIST) \
+       $(am__gjavah_SOURCES_DIST) $(am__gjdoc_SOURCES_DIST) \
+       $(am__gkeytool_SOURCES_DIST) $(am__gnative2ascii_SOURCES_DIST) \
+       $(am__gorbd_SOURCES_DIST) $(am__grmic_SOURCES_DIST) \
+       $(am__grmid_SOURCES_DIST) $(am__grmiregistry_SOURCES_DIST) \
        $(am__gserialver_SOURCES_DIST) $(am__gtnameserv_SOURCES_DIST)
 DATA = $(noinst_DATA)
 ETAGS = etags
@@ -175,6 +187,8 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -206,6 +220,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
 CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
 CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -244,11 +264,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
 EXAMPLESDIR = @EXAMPLESDIR@
 EXEEXT = @EXEEXT@
 EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -258,6 +279,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
 GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
 GREP = @GREP@
 GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
 GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -279,7 +302,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
 JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
 JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -345,8 +371,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
 USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
 VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
 WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
 XML_CFLAGS = @XML_CFLAGS@
 XML_LIBS = @XML_LIBS@
 XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -357,6 +385,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
 X_LIBS = @X_LIBS@
 X_PRE_LIBS = @X_PRE_LIBS@
 ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
 ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
@@ -416,12 +445,16 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
 vm_classes = @vm_classes@
 GLIBJ_BOOTCLASSPATH = '$(top_srcdir)/lib'
-GLIBJ_CLASSPATH = .:$(srcdir)/asm
+GLIBJ_CLASSPATH = .:$(srcdir)/asm:$(ANTLR_CLASSPATH)
+@GCJ_JAVAC_FALSE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
 
-# Setup the compiler to use the GNU Classpath library we just build
-JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
+# Setup the compiler to use the GNU Classpath library we just built.
+@GCJ_JAVAC_TRUE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_BOOTCLASSPATH) --classpath=$(GLIBJ_CLASSPATH)
+@CREATE_GJDOC_TRUE@gjdoc_gendir = ${top_srcdir}/tools/generated
+@CREATE_GJDOC_TRUE@ANTLR_CLASSPATH = $(ANTLR_JAR):$(gjdoc_gendir)
 @CREATE_WRAPPERS_TRUE@bin_SCRIPTS = 
 @CREATE_WRAPPERS_TRUE@AM_CPPFLAGS = -Wall \
 @CREATE_WRAPPERS_TRUE@ -I$(top_srcdir)/include \
@@ -490,21 +523,31 @@ JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH
 @CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"rmic\"" \
 @CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"grmic\""
 
-@CREATE_WRAPPERS_FALSE@noinst_SCRIPTS = gappletviewer gjarsigner gkeytool \
-@CREATE_WRAPPERS_FALSE@        gjar gnative2ascii gserialver gjavah grmiregistry \
-@CREATE_WRAPPERS_FALSE@        gtnameserv gorbd grmid grmic
+@CREATE_WRAPPERS_TRUE@gjdoc_SOURCES = toolwrapper.c
+@CREATE_WRAPPERS_TRUE@gjdoc_CFLAGS = \
+@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"gjdoc\"" \
+@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gjdoc\""
 
+@CREATE_WRAPPERS_FALSE@noinst_SCRIPTS = gappletviewer gjarsigner \
+@CREATE_WRAPPERS_FALSE@        gkeytool gjar gnative2ascii gserialver \
+@CREATE_WRAPPERS_FALSE@        gjavah grmiregistry gtnameserv gorbd \
+@CREATE_WRAPPERS_FALSE@        grmid grmic $(am__append_2)
 EXTRA_DIST = toolwrapper.c gappletviewer.in gjarsigner.in gkeytool.in \
        gjar.in gnative2ascii.in gserialver.in gjavah.in grmiregistry.in \
-       gtnameserv.in gorbd.in grmid.in grmic.in
+       gtnameserv.in gorbd.in grmid.in grmic.in gjdoc.in
 
 
 # All our example java source files
 TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
+       $(srcdir)/gnu/classpath/tools/*.java \
+       $(srcdir)/gnu/classpath/tools/*/*.java \
+       $(srcdir)/gnu/classpath/tools/*/*/*.java \
+       $(srcdir)/gnu/classpath/tools/*/*/*/*.java \
        $(srcdir)/com/sun/javadoc/*.java \
        $(srcdir)/com/sun/tools/doclets/*.java \
        $(srcdir)/com/sun/tools/javac/*.java \
        $(srcdir)/com/sun/tools/javah/*.java \
+       $(srcdir)/com/sun/tools/javadoc/*.java \
        $(srcdir)/sun/rmi/rmic/*.java \
        $(srcdir)/external/asm/org/objectweb/asm/*.java \
        $(srcdir)/external/asm/org/objectweb/asm/attrs/*.java \
@@ -540,6 +583,103 @@ PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.prope
 # RMIC templates that must be included in the generated zip file.
 RMIC_TEMPLATES = $(srcdir)/resource/gnu/classpath/tools/rmic/templates/*.jav
 
+# gjdoc resource files.
+gnu_classpath_tools_gjdoc_jar_CSS = \
+       doctranslets/html/res/gjdochtml-clean.css \
+       doctranslets/html/res/gjdochtml-fixed.css \
+       doctranslets/html/res/gjdochtml-sclara.css \
+       doctranslets/html/res/gjdochtml.css \
+       htmldoclet/gjdochtml-vanilla.css \
+       htmldoclet/gjdochtml-clean-layout.css \
+       htmldoclet/gjdochtml-clean-color1.css
+
+gnu_classpath_tools_gjdoc_jar_DTDS = \
+       htmldoclet/xhtml11-target10.dtd \
+       dtd/gjdoc-alphaindex.dtd \
+       dtd/gjdoc.dtd
+
+gnu_classpath_tools_gjdoc_jar_ENTS = \
+       dtd/ent/iso-amsa.ent \
+       dtd/ent/iso-amsb.ent \
+       dtd/ent/iso-amsc.ent \
+       dtd/ent/iso-amsn.ent \
+       dtd/ent/iso-amso.ent \
+       dtd/ent/iso-amsr.ent \
+       dtd/ent/iso-box.ent \
+       dtd/ent/iso-cyr1.ent \
+       dtd/ent/iso-cyr2.ent \
+       dtd/ent/iso-dia.ent \
+       dtd/ent/iso-grk1.ent \
+       dtd/ent/iso-grk2.ent \
+       dtd/ent/iso-grk3.ent \
+       dtd/ent/iso-grk4.ent \
+       dtd/ent/iso-lat1.ent \
+       dtd/ent/iso-lat2.ent \
+       dtd/ent/iso-num.ent \
+       dtd/ent/iso-pub.ent \
+       dtd/ent/iso-tech.ent
+
+gnu_classpath_tools_gjdoc_jar_HTML = doctranslets/html/res/default_help_en.html
+gnu_classpath_tools_gjdoc_jar_JS = \
+       doctranslets/html/res/gjdoc.js \
+       htmldoclet/gjdoc.js
+
+gnu_classpath_tools_gjdoc_jar_PNG = \
+       htmldoclet/inherit.png
+
+gnu_classpath_tools_gjdoc_jar_MODS = dtd/dbcentx.mod
+gnu_classpath_tools_gjdoc_jar_PROPERTIES = htmldoclet/HtmlDoclet.properties
+gnu_classpath_tools_gjdoc_jar_RNGS = \
+       rng/gjdoc-classdoc.rng \
+       rng/gjdoc-common.rng \
+       rng/gjdoc-index.rng
+
+gnu_classpath_tools_gjdoc_jar_TXTS = \
+       java.lang-classes-1.2.txt \
+       java.lang-classes-1.3.txt \
+       java.lang-classes-1.4.txt \
+       java.lang-classes-1.5.txt
+
+gnu_classpath_tools_gjdoc_jar_XHTML = htmldoclet/help.xhtml
+gnu_classpath_tools_gjdoc_jar_XSLS = \
+       doctranslets/gjdoc_common.xsl \
+       doctranslets/html/about.xsl \
+       doctranslets/html/allclasses.xsl \
+       doctranslets/html/allpackages.xsl \
+       doctranslets/html/alphaindex.xsl \
+       doctranslets/html/alphaindex_chunked.xsl \
+       doctranslets/html/classdoc-source.xsl \
+       doctranslets/html/classdoc-uses.xsl \
+       doctranslets/html/classdoc.xsl \
+       doctranslets/html/deprecated.xsl \
+       doctranslets/html/descriptor.xsl \
+       doctranslets/html/doctranslet.xsl \
+       doctranslets/html/fulltree.xsl \
+       doctranslets/html/gjdoc.xsl \
+       doctranslets/html/help.xsl \
+       doctranslets/html/html_common.xsl \
+       doctranslets/html/index_noframes.xsl \
+       doctranslets/html/index.xsl \
+       doctranslets/html/packageclasses.xsl \
+       doctranslets/html/packagedoc.xsl
+
+
+# All our resources.
+gjdoc_resources = $(gnu_classpath_tools_gjdoc_jar_CSS) $(gnu_classpath_tools_gjdoc_jar_DTDS) \
+       $(gnu_classpath_tools_gjdoc_jar_ENTS) $(gnu_classpath_tools_gjdoc_jar_HTML) \
+       $(gnu_classpath_tools_gjdoc_jar_JS) $(gnu_classpath_tools_gjdoc_jar_MODS) \
+       $(gnu_classpath_tools_gjdoc_jar_PNG) $(gnu_classpath_tools_gjdoc_jar_PROPERTIES) \
+       $(gnu_classpath_tools_gjdoc_jar_RNGS) $(gnu_classpath_tools_gjdoc_jar_TXTS) \
+       $(gnu_classpath_tools_gjdoc_jar_XHTML) $(gnu_classpath_tools_gjdoc_jar_XSLS)
+
+@CREATE_GJDOC_FALSE@GJDOC_EX = -path '*gnu/classpath/tools/gjdoc' -prune -o \
+@CREATE_GJDOC_FALSE@   -path '*gnu/classpath/tools/doclets' -prune -o \
+@CREATE_GJDOC_FALSE@   -path '*gnu/classpath/tools/taglets' -prune -o \
+@CREATE_GJDOC_FALSE@   -path '*com/sun/javadoc' -prune -o \
+@CREATE_GJDOC_FALSE@   -path '*com/sun/tools/doclets' -prune -o \
+@CREATE_GJDOC_FALSE@   -path '*com/sun/tools/javadoc' -prune -o
+
+
 # The zip files with classes we want to produce.
 TOOLS_ZIP = tools.zip
 
@@ -547,7 +687,10 @@ TOOLS_ZIP = tools.zip
 BUILT_SOURCES = $(TOOLS_ZIP)
 
 # All the files we find "interesting"
-ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES)
+ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES) \
+  $(addprefix $(srcdir)/resource/gnu/classpath/tools/gjdoc/,$(gjdoc_resources))\
+  $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
+
 
 # Some architecture independent data to be installed.
 # GCJ LOCAL: do not install this.
@@ -555,6 +698,10 @@ noinst_DATA = $(TOOLS_ZIP)
 
 # Where we want these data files installed.
 TOOLSdir = $(pkgdatadir)
+@WITH_JAR_FALSE@CREATE_TOOLS_ZIP = $(ZIP) -r ../$(TOOLS_ZIP) .
+@WITH_JAR_TRUE@CREATE_TOOLS_ZIP = $(JAR) cf ../$(TOOLS_ZIP) .
+@WITH_JAR_FALSE@UPDATE_TOOLS_ZIP = $(ZIP) -u -r ../$(TOOLS_ZIP) .
+@WITH_JAR_TRUE@UPDATE_TOOLS_ZIP = $(JAR) uf ../$(TOOLS_ZIP) .
 all: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) all-am
 
@@ -613,6 +760,8 @@ grmic: $(top_builddir)/config.status $(srcdir)/grmic.in
        cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 gjavah: $(top_builddir)/config.status $(srcdir)/gjavah.in
        cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+gjdoc: $(top_builddir)/config.status $(srcdir)/gjdoc.in
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
        test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
@@ -669,6 +818,12 @@ installcheck-binPROGRAMS: $(bin_PROGRAMS)
 @CREATE_WRAPPERS_TRUE@gjavah$(EXEEXT): $(gjavah_OBJECTS) $(gjavah_DEPENDENCIES) 
 @CREATE_WRAPPERS_TRUE@ @rm -f gjavah$(EXEEXT)
 @CREATE_WRAPPERS_TRUE@ $(LINK) $(gjavah_LDFLAGS) $(gjavah_OBJECTS) $(gjavah_LDADD) $(LIBS)
+@CREATE_GJDOC_FALSE@gjdoc$(EXEEXT): $(gjdoc_OBJECTS) $(gjdoc_DEPENDENCIES) 
+@CREATE_GJDOC_FALSE@   @rm -f gjdoc$(EXEEXT)
+@CREATE_GJDOC_FALSE@   $(LINK) $(gjdoc_LDFLAGS) $(gjdoc_OBJECTS) $(gjdoc_LDADD) $(LIBS)
+@CREATE_WRAPPERS_TRUE@gjdoc$(EXEEXT): $(gjdoc_OBJECTS) $(gjdoc_DEPENDENCIES) 
+@CREATE_WRAPPERS_TRUE@ @rm -f gjdoc$(EXEEXT)
+@CREATE_WRAPPERS_TRUE@ $(LINK) $(gjdoc_LDFLAGS) $(gjdoc_OBJECTS) $(gjdoc_LDADD) $(LIBS)
 @CREATE_WRAPPERS_TRUE@gkeytool$(EXEEXT): $(gkeytool_OBJECTS) $(gkeytool_DEPENDENCIES) 
 @CREATE_WRAPPERS_TRUE@ @rm -f gkeytool$(EXEEXT)
 @CREATE_WRAPPERS_TRUE@ $(LINK) $(gkeytool_LDFLAGS) $(gkeytool_OBJECTS) $(gkeytool_LDADD) $(LIBS)
@@ -723,6 +878,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjar-toolwrapper.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjarsigner-toolwrapper.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjavah-toolwrapper.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjdoc-toolwrapper.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gkeytool-toolwrapper.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnative2ascii-toolwrapper.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gorbd-toolwrapper.Po@am__quote@
@@ -809,6 +965,20 @@ gjavah-toolwrapper.obj: toolwrapper.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjavah_CFLAGS) $(CFLAGS) -c -o gjavah-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`
 
+gjdoc-toolwrapper.o: toolwrapper.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjdoc_CFLAGS) $(CFLAGS) -MT gjdoc-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gjdoc-toolwrapper.Tpo" -c -o gjdoc-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \
+@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/gjdoc-toolwrapper.Tpo" "$(DEPDIR)/gjdoc-toolwrapper.Po"; else rm -f "$(DEPDIR)/gjdoc-toolwrapper.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='toolwrapper.c' object='gjdoc-toolwrapper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjdoc_CFLAGS) $(CFLAGS) -c -o gjdoc-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c
+
+gjdoc-toolwrapper.obj: toolwrapper.c
+@am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjdoc_CFLAGS) $(CFLAGS) -MT gjdoc-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/gjdoc-toolwrapper.Tpo" -c -o gjdoc-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \
+@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/gjdoc-toolwrapper.Tpo" "$(DEPDIR)/gjdoc-toolwrapper.Po"; else rm -f "$(DEPDIR)/gjdoc-toolwrapper.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='toolwrapper.c' object='gjdoc-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjdoc_CFLAGS) $(CFLAGS) -c -o gjdoc-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`
+
 gkeytool-toolwrapper.o: toolwrapper.c
 @am__fastdepCC_TRUE@   if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkeytool_CFLAGS) $(CFLAGS) -MT gkeytool-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gkeytool-toolwrapper.Tpo" -c -o gkeytool-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \
 @am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/gkeytool-toolwrapper.Tpo" "$(DEPDIR)/gkeytool-toolwrapper.Po"; else rm -f "$(DEPDIR)/gkeytool-toolwrapper.Tpo"; exit 1; fi
@@ -1121,6 +1291,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
 @CREATE_WRAPPERS_FALSE@gorbd: gorbd.in
 @CREATE_WRAPPERS_FALSE@grmid: grmid.in
 @CREATE_WRAPPERS_FALSE@grmic: grmic.in
+@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_FALSE@gjdoc: gjdoc.in
 
 # Make sure everything is included in the distribution.
 dist-hook:
@@ -1145,9 +1316,11 @@ $(TOOLS_ZIP): $(ALL_TOOLS_FILES)
        find $(srcdir)/gnu/classpath/tools \
             $(srcdir)/com/sun/javadoc \
             $(srcdir)/com/sun/tools/doclets \
+            $(srcdir)/com/sun/tools/javadoc \
             $(srcdir)/com/sun/tools/javac \
             $(srcdir)/com/sun/tools/javah \
             $(srcdir)/sun/rmi/rmic \
+            $(GJDOC_EX) \
             -name '*.java' -print > classes.lst
        if [ -f $(top_builddir)/../vm-tools-packages ]; then \
            : > vm-tools.lst; \
@@ -1158,39 +1331,41 @@ $(TOOLS_ZIP): $(ALL_TOOLS_FILES)
            echo -n > vm-tools.lst; \
        fi
        cat classes.lst asm.lst vm-tools.lst > all-classes.lst
+@CREATE_GJDOC_PARSER_TRUE@@CREATE_GJDOC_TRUE@@JAVA_MAINTAINER_MODE_TRUE@       @mkdir_p@ $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr
+@CREATE_GJDOC_PARSER_TRUE@@CREATE_GJDOC_TRUE@@JAVA_MAINTAINER_MODE_TRUE@       $(ANTLR) -o $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr \
+@CREATE_GJDOC_PARSER_TRUE@@CREATE_GJDOC_TRUE@@JAVA_MAINTAINER_MODE_TRUE@         $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
 @JAVA_MAINTAINER_MODE_TRUE@    AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \
 @JAVA_MAINTAINER_MODE_TRUE@      $$AC -g -w -d $(srcdir)/asm @asm.lst
-@JAVA_MAINTAINER_MODE_TRUE@    $(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst @vm-tools.lst
-@JAVA_MAINTAINER_MODE_TRUE@    @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
-@JAVA_MAINTAINER_MODE_TRUE@           sun/rmi/rmic -name \*.properties -print -o -name \*.jav -print`; \
-@JAVA_MAINTAINER_MODE_TRUE@    for p in $$list; do \
-@JAVA_MAINTAINER_MODE_TRUE@      dirname=classes/`dirname $$p`; \
-@JAVA_MAINTAINER_MODE_TRUE@      if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
-@JAVA_MAINTAINER_MODE_TRUE@      echo "  cp $(srcdir)resource/$$p classes/$$p"; \
-@JAVA_MAINTAINER_MODE_TRUE@      cp $(srcdir)/resource/$$p classes/$$p; \
-@JAVA_MAINTAINER_MODE_TRUE@    done
-       @list=`cd $(srcdir) && find gnu/classpath/tools -name \*.jav -print`; \
+@JAVA_MAINTAINER_MODE_TRUE@    $(JCOMPILER) $(USE_JAVAC_FLAGS) -g -d $(srcdir)/classes @classes.lst @vm-tools.lst
+       @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
+              sun/rmi/rmic $(GJDOC_EX) -name \*.properties -print -o -name \*.jav -print`; \
        for p in $$list; do \
          dirname=classes/`dirname $$p`; \
-         if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
-         echo "  cp $(srcdir)/$$p classes/$$p"; \
-         cp $(srcdir)/$$p classes/$$p; \
+         if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
+         echo "  cp $(srcdir)/resource/$$p classes/$$p"; \
+         cp $(srcdir)/resource/$$p classes/$$p; \
        done
        cp -pR $(srcdir)/asm .
        cp -pR $(srcdir)/classes .
+@CREATE_GJDOC_TRUE@    for res in $(gjdoc_resources); do \
+@CREATE_GJDOC_TRUE@      dir=classes/`dirname $$res`; \
+@CREATE_GJDOC_TRUE@      if ! test -d "$$dir"; then @mkdir_p@ "$$dir"; fi; \
+@CREATE_GJDOC_TRUE@      echo "  cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res"; \
+@CREATE_GJDOC_TRUE@      cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res; \
+@CREATE_GJDOC_TRUE@    done 
+
        (cd classes; \
-       if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \
-       if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf ../$(TOOLS_ZIP) .; fi; \
+       $(CREATE_TOOLS_ZIP); \
        cd ..)
        (cd asm; \
-       if test "$(ZIP)" != ""; then $(ZIP) -u -r ../$(TOOLS_ZIP) .; fi; \
-       if test "$(FASTJAR)" != ""; then "$(FASTJAR)" uf ../$(TOOLS_ZIP) .; fi; \
+       $(UPDATE_TOOLS_ZIP); \
        cd ..)
        rm -rf asm classes classes.lst asm.lst
 
 # Zip file be gone! (and make sure the classes are gone too)
 clean-local:
        rm -rf $(TOOLS_ZIP) classes classes.lst asm asm.lst all-classes.lst
+@CREATE_GJDOC_PARSER_TRUE@     rm -rf $(gjdoc_gendir)
 
 # FIXME: remove this when GNU Classpath includes a bootstrap VM.
 installcheck-binSCRIPTS:
diff --git a/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class b/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class
new file mode 100644 (file)
index 0000000..f2822a6
Binary files /dev/null and b/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class
new file mode 100644 (file)
index 0000000..83a757f
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class
new file mode 100644 (file)
index 0000000..4e4d392
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.class
new file mode 100644 (file)
index 0000000..85f53ae
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class
new file mode 100644 (file)
index 0000000..7b65b82
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class b/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class
new file mode 100644 (file)
index 0000000..d5f72fb
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class
new file mode 100644 (file)
index 0000000..445a1f3
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.class b/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.class
new file mode 100644 (file)
index 0000000..6a90af5
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class b/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class
new file mode 100644 (file)
index 0000000..fc7d134
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class b/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class
new file mode 100644 (file)
index 0000000..bef494c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class differ
index 36bc25fb198cd352379c6e4d758c89e89cc5cf23..2c8a74dc3b51b97abd5fdea80af55cd0aa90e6ee 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class
new file mode 100644 (file)
index 0000000..5b3b3d9
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class
new file mode 100644 (file)
index 0000000..2aee2cf
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class
new file mode 100644 (file)
index 0000000..b88206b
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class
new file mode 100644 (file)
index 0000000..c16cb5a
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class
new file mode 100644 (file)
index 0000000..7247ed8
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class
new file mode 100644 (file)
index 0000000..28d360b
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class
new file mode 100644 (file)
index 0000000..e06dc5f
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class
new file mode 100644 (file)
index 0000000..268778d
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class
new file mode 100644 (file)
index 0000000..f8f4287
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class
new file mode 100644 (file)
index 0000000..2b2bf91
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class
new file mode 100644 (file)
index 0000000..b51e167
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class
new file mode 100644 (file)
index 0000000..ff961e9
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class
new file mode 100644 (file)
index 0000000..da98b73
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class
new file mode 100644 (file)
index 0000000..72b2822
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class
new file mode 100644 (file)
index 0000000..39529c2
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.class
new file mode 100644 (file)
index 0000000..d938d61
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class
new file mode 100644 (file)
index 0000000..c2cfa70
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class
new file mode 100644 (file)
index 0000000..a046a58
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class
new file mode 100644 (file)
index 0000000..6370bc4
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class
new file mode 100644 (file)
index 0000000..711c57e
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.class
new file mode 100644 (file)
index 0000000..ac908c9
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class
new file mode 100644 (file)
index 0000000..70bd890
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class
new file mode 100644 (file)
index 0000000..9fe2194
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class
new file mode 100644 (file)
index 0000000..125649f
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class
new file mode 100644 (file)
index 0000000..5bcba7c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class
new file mode 100644 (file)
index 0000000..cfecc2e
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class
new file mode 100644 (file)
index 0000000..620bb15
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class
new file mode 100644 (file)
index 0000000..f0d1ad7
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class
new file mode 100644 (file)
index 0000000..6e9981b
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class
new file mode 100644 (file)
index 0000000..c8fef27
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class
new file mode 100644 (file)
index 0000000..9c422ca
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class
new file mode 100644 (file)
index 0000000..29ff940
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class
new file mode 100644 (file)
index 0000000..fdaf194
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class
new file mode 100644 (file)
index 0000000..bc7fc36
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class
new file mode 100644 (file)
index 0000000..e4c9da6
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class
new file mode 100644 (file)
index 0000000..7c022b4
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class
new file mode 100644 (file)
index 0000000..0afc368
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class
new file mode 100644 (file)
index 0000000..32d5568
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class
new file mode 100644 (file)
index 0000000..de769e9
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class
new file mode 100644 (file)
index 0000000..949aaf4
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class
new file mode 100644 (file)
index 0000000..9f45994
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class
new file mode 100644 (file)
index 0000000..9cfc10e
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class
new file mode 100644 (file)
index 0000000..7c2a5bc
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class
new file mode 100644 (file)
index 0000000..b0dc3a6
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class
new file mode 100644 (file)
index 0000000..7fcd83c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class
new file mode 100644 (file)
index 0000000..a5491d4
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class differ
index bfc4834cd134da3ac128f09ecaad9229ac9abbd5..76076443610d395e26b51fb5162c0abf3b1bc619 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class differ
index ffdb2ec3daf876cbb5fb1d24d06a04e748ff2f68..f2ecf979f1b8bf932c2f180ce8e4ec6e100d4d9e 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class differ
index 7167f6c6d84671c1dd77cdcacaed9bb007e61c70..56fd358a6b77897482ef7174bcbeac5a4b154bc8 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class differ
index 7725dd8ed82d961e72aee09b556cd9c40608a468..1e0586d28cc92c3eae8abab188ad9f03d73b0540 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class
new file mode 100644 (file)
index 0000000..15810fa
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class
new file mode 100644 (file)
index 0000000..66c1f8a
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class
new file mode 100644 (file)
index 0000000..164d5f3
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class
new file mode 100644 (file)
index 0000000..4a6a517
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class
new file mode 100644 (file)
index 0000000..aa31f74
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class
new file mode 100644 (file)
index 0000000..ce8fb48
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class
new file mode 100644 (file)
index 0000000..62185a0
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class
new file mode 100644 (file)
index 0000000..a9b7f63
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class
new file mode 100644 (file)
index 0000000..0637151
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class
new file mode 100644 (file)
index 0000000..774e33c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class
new file mode 100644 (file)
index 0000000..849e687
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class
new file mode 100644 (file)
index 0000000..c1c373f
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class
new file mode 100644 (file)
index 0000000..1c1abd5
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class
new file mode 100644 (file)
index 0000000..1b09a31
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class
new file mode 100644 (file)
index 0000000..e25d162
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class
new file mode 100644 (file)
index 0000000..3fda481
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class
new file mode 100644 (file)
index 0000000..3450312
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class
new file mode 100644 (file)
index 0000000..32fb32e
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class
new file mode 100644 (file)
index 0000000..4479e84
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class
new file mode 100644 (file)
index 0000000..4a8a340
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.class
new file mode 100644 (file)
index 0000000..0932db2
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.class
new file mode 100644 (file)
index 0000000..7ad3e40
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class
new file mode 100644 (file)
index 0000000..f0cf14d
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class
new file mode 100644 (file)
index 0000000..7f30dac
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class
new file mode 100644 (file)
index 0000000..5d56604
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class
new file mode 100644 (file)
index 0000000..df1abf1
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class
new file mode 100644 (file)
index 0000000..5f1ca92
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class
new file mode 100644 (file)
index 0000000..93de99a
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class
new file mode 100644 (file)
index 0000000..691c53c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class
new file mode 100644 (file)
index 0000000..e8bb15f
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class
new file mode 100644 (file)
index 0000000..1479d58
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class
new file mode 100644 (file)
index 0000000..c47a836
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class
new file mode 100644 (file)
index 0000000..5bb6c72
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class
new file mode 100644 (file)
index 0000000..13f7e77
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class
new file mode 100644 (file)
index 0000000..bee8820
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class
new file mode 100644 (file)
index 0000000..da2e873
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class
new file mode 100644 (file)
index 0000000..9402410
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class
new file mode 100644 (file)
index 0000000..c2bfa2d
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class
new file mode 100644 (file)
index 0000000..d294d3c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class
new file mode 100644 (file)
index 0000000..390bd1b
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class
new file mode 100644 (file)
index 0000000..5977dc8
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class
new file mode 100644 (file)
index 0000000..46f194b
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class
new file mode 100644 (file)
index 0000000..1b14a41
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class
new file mode 100644 (file)
index 0000000..d38eff9
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class
new file mode 100644 (file)
index 0000000..a812e14
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class
new file mode 100644 (file)
index 0000000..00817da
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class
new file mode 100644 (file)
index 0000000..a789799
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class
new file mode 100644 (file)
index 0000000..09dfcbb
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class
new file mode 100644 (file)
index 0000000..634155f
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class
new file mode 100644 (file)
index 0000000..91e10b2
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class
new file mode 100644 (file)
index 0000000..f1118b6
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class
new file mode 100644 (file)
index 0000000..2c84fff
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class
new file mode 100644 (file)
index 0000000..15840c0
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class
new file mode 100644 (file)
index 0000000..48b5bc8
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class
new file mode 100644 (file)
index 0000000..7b55575
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class
new file mode 100644 (file)
index 0000000..743f0be
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class
new file mode 100644 (file)
index 0000000..60e378f
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class
new file mode 100644 (file)
index 0000000..4542752
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class
new file mode 100644 (file)
index 0000000..25ea587
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class
new file mode 100644 (file)
index 0000000..2940fc0
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class
new file mode 100644 (file)
index 0000000..716b568
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class
new file mode 100644 (file)
index 0000000..9c05a90
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class
new file mode 100644 (file)
index 0000000..1836050
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class
new file mode 100644 (file)
index 0000000..149bd7e
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class
new file mode 100644 (file)
index 0000000..27aaa1a
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.class
new file mode 100644 (file)
index 0000000..803eb60
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class
new file mode 100644 (file)
index 0000000..75ef96c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class
new file mode 100644 (file)
index 0000000..6f6faf5
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class
new file mode 100644 (file)
index 0000000..e6f0bde
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class
new file mode 100644 (file)
index 0000000..4a29649
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class
new file mode 100644 (file)
index 0000000..e956768
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class
new file mode 100644 (file)
index 0000000..92ddaf8
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class
new file mode 100644 (file)
index 0000000..f06d76f
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class
new file mode 100644 (file)
index 0000000..9fa4c15
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class
new file mode 100644 (file)
index 0000000..e833966
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class
new file mode 100644 (file)
index 0000000..751f5b6
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class
new file mode 100644 (file)
index 0000000..ec9e789
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class
new file mode 100644 (file)
index 0000000..da0e63f
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class
new file mode 100644 (file)
index 0000000..75640c8
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.class
new file mode 100644 (file)
index 0000000..6ff3032
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class
new file mode 100644 (file)
index 0000000..e51bbf4
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class
new file mode 100644 (file)
index 0000000..661f493
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class
new file mode 100644 (file)
index 0000000..494a09e
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class
new file mode 100644 (file)
index 0000000..d86084c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class
new file mode 100644 (file)
index 0000000..1d448e3
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class
new file mode 100644 (file)
index 0000000..41b7e2c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class
new file mode 100644 (file)
index 0000000..ea6cb55
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class
new file mode 100644 (file)
index 0000000..e2e630a
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class
new file mode 100644 (file)
index 0000000..24ba68d
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class
new file mode 100644 (file)
index 0000000..94302c2
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class
new file mode 100644 (file)
index 0000000..d705151
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.class
new file mode 100644 (file)
index 0000000..8c61a4a
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class
new file mode 100644 (file)
index 0000000..fe0b482
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class
new file mode 100644 (file)
index 0000000..fe47334
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class
new file mode 100644 (file)
index 0000000..ea024cf
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class
new file mode 100644 (file)
index 0000000..7aa1b43
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class
new file mode 100644 (file)
index 0000000..5c4aa30
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class
new file mode 100644 (file)
index 0000000..fc81485
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class
new file mode 100644 (file)
index 0000000..96a1dee
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class
new file mode 100644 (file)
index 0000000..06e07c2
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class
new file mode 100644 (file)
index 0000000..090c9d9
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class
new file mode 100644 (file)
index 0000000..d0abe9d
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class
new file mode 100644 (file)
index 0000000..26c14ed
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class
new file mode 100644 (file)
index 0000000..56050b9
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class
new file mode 100644 (file)
index 0000000..ebba4c8
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class
new file mode 100644 (file)
index 0000000..07a85b1
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class
new file mode 100644 (file)
index 0000000..6d44b80
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class
new file mode 100644 (file)
index 0000000..e5b4f83
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class
new file mode 100644 (file)
index 0000000..791aae0
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class
new file mode 100644 (file)
index 0000000..0fe33bd
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class
new file mode 100644 (file)
index 0000000..1fc0bf3
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class
new file mode 100644 (file)
index 0000000..32af351
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class
new file mode 100644 (file)
index 0000000..aabd3f5
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class
new file mode 100644 (file)
index 0000000..082f9f0
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class
new file mode 100644 (file)
index 0000000..605278d
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class
new file mode 100644 (file)
index 0000000..3afc146
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class
new file mode 100644 (file)
index 0000000..3543f00
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class
new file mode 100644 (file)
index 0000000..222c6e4
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class
new file mode 100644 (file)
index 0000000..4cf131a
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class
new file mode 100644 (file)
index 0000000..5ff7b19
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class
new file mode 100644 (file)
index 0000000..9b36557
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.class
new file mode 100644 (file)
index 0000000..52b5f93
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class
new file mode 100644 (file)
index 0000000..eef127e
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class
new file mode 100644 (file)
index 0000000..5a8dcc2
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class
new file mode 100644 (file)
index 0000000..10ab574
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class
new file mode 100644 (file)
index 0000000..7c9b52e
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class
new file mode 100644 (file)
index 0000000..b54b51b
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.class
new file mode 100644 (file)
index 0000000..a61433c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.class
new file mode 100644 (file)
index 0000000..91e156a
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.class
new file mode 100644 (file)
index 0000000..39e584d
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class
new file mode 100644 (file)
index 0000000..08f71e4
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class
new file mode 100644 (file)
index 0000000..97e19b3
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class
new file mode 100644 (file)
index 0000000..d031ae3
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class
new file mode 100644 (file)
index 0000000..0fec9ca
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class
new file mode 100644 (file)
index 0000000..c9a6dbf
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class
new file mode 100644 (file)
index 0000000..e005b63
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class
new file mode 100644 (file)
index 0000000..f5c4efe
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class
new file mode 100644 (file)
index 0000000..d136821
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class
new file mode 100644 (file)
index 0000000..57c8943
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class
new file mode 100644 (file)
index 0000000..85b5aa5
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class
new file mode 100644 (file)
index 0000000..07e417c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class
new file mode 100644 (file)
index 0000000..92a2cde
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class
new file mode 100644 (file)
index 0000000..7d53d1e
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class
new file mode 100644 (file)
index 0000000..c0ec607
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class
new file mode 100644 (file)
index 0000000..018024d
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class
new file mode 100644 (file)
index 0000000..b4a86d1
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class
new file mode 100644 (file)
index 0000000..97557e0
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class differ
index 0460b3f4dfbeee194af28cf14d92e6602d194593..cd3602b366fe066407f34b43869776e18b23967d 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class differ
index 6b8d25876ab476a7ac5dc2ba4039eb34046fd3e0..cc51ad435f5f5fad7f0cbdb7a7617efb363c16e0 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class differ
index 8fbd26661ad924a4692b2efe3b525bc86aead685..e9f19b75b240d58174f99116a9d1463a84261489 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class b/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class
new file mode 100644 (file)
index 0000000..71875ab
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class b/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class
new file mode 100644 (file)
index 0000000..e3db499
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class differ
index da5ddebe53b5f934ec91da996219c0beba6c7b48..5c20124acbb5fdf9e5d05b9c9bf36c687c3ab694 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class differ
index 938789b9556353cf4686392eacc2581a208a024c..8f09f16e2fac473217ff2e9c0e03e154ccb53f99 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class differ
index fdfa2fb5f17b5dcf6c07ff273dfba09282809444..3a2bd54afa5efef5bd260c98a58c309fd8f6aa83 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class differ
index c37eee13d182b550984162f70db8e682f0cf81e6..843d741274f9f80746b6fe7b3f312acde0a8759c 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class differ
index 8d1e58f5acc2f8036ca0992bfc74622a22225e6a..b4ffcaedec20e972c7ee6346f63ad6a60873b491 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class differ
index 5a5fec49ca53882f6e08cf8a3ac463719ff8e53e..95f7c77598e09e68cc7f3cb1937ec7efd77a62ee 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class differ
index 272018323c84441bfdae510dd66c174f021d35e8..ab9c27ea79a53e527095db20d01b8ff5e168d159 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class differ
index 731f27a5da7a590b63109636dc55635191bf118c..d914461f7238090d52194d9c1c641d6c6d4db55e 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class differ
index 810ce356a038f9d64520ac398c23034a3a161214..955983bf135fa61e3eaa56f6f74cb5ff71dd7a3a 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class differ
index 1c267c9ae5e8d64abb91198ff3e956f2be4a36c0..b0e41604be11eff3e53740dc071464d5c0533c64 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class
new file mode 100644 (file)
index 0000000..22248a2
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class
new file mode 100644 (file)
index 0000000..53a734a
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class
new file mode 100644 (file)
index 0000000..7fc603c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class
new file mode 100644 (file)
index 0000000..84f9343
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class
new file mode 100644 (file)
index 0000000..3c9e77c
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class
new file mode 100644 (file)
index 0000000..50ab7c0
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.class
new file mode 100644 (file)
index 0000000..b05eabb
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class
new file mode 100644 (file)
index 0000000..2b99746
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class
new file mode 100644 (file)
index 0000000..2e6377b
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class
new file mode 100644 (file)
index 0000000..aae85fb
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class
new file mode 100644 (file)
index 0000000..28bb7c9
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class differ
diff --git a/libjava/classpath/tools/com/sun/tools/javadoc/Main.java b/libjava/classpath/tools/com/sun/tools/javadoc/Main.java
new file mode 100644 (file)
index 0000000..2893030
--- /dev/null
@@ -0,0 +1,9 @@
+package com.sun.tools.javadoc;
+
+public class Main
+{
+        public static void main(String[] args)
+        {
+               gnu.classpath.tools.gjdoc.Main.main(args);
+        }
+}
index 721078bb79c65cfe56f9de3f9792e7c9fdfcde52..d957e45648af236c5f7e4a2ced84dd659d0bb894 100644 (file)
@@ -44,4 +44,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.appletviewer.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.appletviewer.Main "$@"
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java
new file mode 100644 (file)
index 0000000..053f122
--- /dev/null
@@ -0,0 +1,1962 @@
+// $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaLexer.java"$
+   package gnu.classpath.tools.gjdoc.expr; 
+
+import java.io.InputStream;
+import antlr.TokenStreamException;
+import antlr.TokenStreamIOException;
+import antlr.TokenStreamRecognitionException;
+import antlr.CharStreamException;
+import antlr.CharStreamIOException;
+import antlr.ANTLRException;
+import java.io.Reader;
+import java.util.Hashtable;
+import antlr.CharScanner;
+import antlr.InputBuffer;
+import antlr.ByteBuffer;
+import antlr.CharBuffer;
+import antlr.Token;
+import antlr.CommonToken;
+import antlr.RecognitionException;
+import antlr.NoViableAltForCharException;
+import antlr.MismatchedCharException;
+import antlr.TokenStream;
+import antlr.ANTLRHashString;
+import antlr.LexerSharedInputState;
+import antlr.collections.impl.BitSet;
+import antlr.SemanticException;
+
+public class JavaLexer extends antlr.CharScanner implements JavaTokenTypes, TokenStream
+ {
+public JavaLexer(InputStream in) {
+       this(new ByteBuffer(in));
+}
+public JavaLexer(Reader in) {
+       this(new CharBuffer(in));
+}
+public JavaLexer(InputBuffer ib) {
+       this(new LexerSharedInputState(ib));
+}
+public JavaLexer(LexerSharedInputState state) {
+       super(state);
+       caseSensitiveLiterals = true;
+       setCaseSensitive(true);
+       literals = new Hashtable();
+       literals.put(new ANTLRHashString("String", this), new Integer(55));
+       literals.put(new ANTLRHashString("final", this), new Integer(39));
+       literals.put(new ANTLRHashString("false", this), new Integer(84));
+       literals.put(new ANTLRHashString("true", this), new Integer(83));
+       literals.put(new ANTLRHashString("void", this), new Integer(46));
+       literals.put(new ANTLRHashString("float", this), new Integer(52));
+       literals.put(new ANTLRHashString("boolean", this), new Integer(47));
+       literals.put(new ANTLRHashString("long", this), new Integer(53));
+       literals.put(new ANTLRHashString("null", this), new Integer(85));
+       literals.put(new ANTLRHashString("short", this), new Integer(50));
+       literals.put(new ANTLRHashString("char", this), new Integer(49));
+       literals.put(new ANTLRHashString("abstract", this), new Integer(40));
+       literals.put(new ANTLRHashString("byte", this), new Integer(48));
+       literals.put(new ANTLRHashString("int", this), new Integer(51));
+       literals.put(new ANTLRHashString("double", this), new Integer(54));
+       literals.put(new ANTLRHashString("strictfp", this), new Integer(41));
+}
+
+public Token nextToken() throws TokenStreamException {
+       Token theRetToken=null;
+tryAgain:
+       for (;;) {
+               Token _token = null;
+               int _ttype = Token.INVALID_TYPE;
+               resetText();
+               try {   // for char stream error handling
+                       try {   // for lexical error handling
+                               switch ( LA(1)) {
+                               case '?':
+                               {
+                                       mQUESTION(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case '(':
+                               {
+                                       mLPAREN(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case ')':
+                               {
+                                       mRPAREN(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case '[':
+                               {
+                                       mLBRACK(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case ']':
+                               {
+                                       mRBRACK(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case '{':
+                               {
+                                       mLCURLY(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case '}':
+                               {
+                                       mRCURLY(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case ':':
+                               {
+                                       mCOLON(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case ',':
+                               {
+                                       mCOMMA(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case '~':
+                               {
+                                       mBNOT(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case ';':
+                               {
+                                       mSEMI(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case '\t':  case '\n':  case '\u000c':  case '\r':
+                               case ' ':
+                               {
+                                       mWS(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case '\'':
+                               {
+                                       mCHAR_LITERAL(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case '"':
+                               {
+                                       mSTRING_LITERAL(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case '$':  case 'A':  case 'B':  case 'C':
+                               case 'D':  case 'E':  case 'F':  case 'G':
+                               case 'H':  case 'I':  case 'J':  case 'K':
+                               case 'L':  case 'M':  case 'N':  case 'O':
+                               case 'P':  case 'Q':  case 'R':  case 'S':
+                               case 'T':  case 'U':  case 'V':  case 'W':
+                               case 'X':  case 'Y':  case 'Z':  case '_':
+                               case 'a':  case 'b':  case 'c':  case 'd':
+                               case 'e':  case 'f':  case 'g':  case 'h':
+                               case 'i':  case 'j':  case 'k':  case 'l':
+                               case 'm':  case 'n':  case 'o':  case 'p':
+                               case 'q':  case 'r':  case 's':  case 't':
+                               case 'u':  case 'v':  case 'w':  case 'x':
+                               case 'y':  case 'z':
+                               {
+                                       mIDENT(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               case '.':  case '0':  case '1':  case '2':
+                               case '3':  case '4':  case '5':  case '6':
+                               case '7':  case '8':  case '9':
+                               {
+                                       mNUM_INT(true);
+                                       theRetToken=_returnToken;
+                                       break;
+                               }
+                               default:
+                                       if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='>') && (LA(4)=='=')) {
+                                               mBSR_ASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='=')) {
+                                               mSR_ASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='>') && (true)) {
+                                               mBSR(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='<') && (LA(2)=='<') && (LA(3)=='=')) {
+                                               mSL_ASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='=') && (LA(2)=='=')) {
+                                               mEQUAL(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='!') && (LA(2)=='=')) {
+                                               mNOT_EQUAL(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='/') && (LA(2)=='=')) {
+                                               mDIV_ASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='+') && (LA(2)=='=')) {
+                                               mPLUS_ASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='+') && (LA(2)=='+')) {
+                                               mINC(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='-') && (LA(2)=='=')) {
+                                               mMINUS_ASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='-') && (LA(2)=='-')) {
+                                               mDEC(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='*') && (LA(2)=='=')) {
+                                               mSTAR_ASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='%') && (LA(2)=='=')) {
+                                               mMOD_ASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='>') && (LA(2)=='>') && (true)) {
+                                               mSR(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='>') && (LA(2)=='=')) {
+                                               mGE(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='<') && (LA(2)=='<') && (true)) {
+                                               mSL(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='<') && (LA(2)=='=')) {
+                                               mLE(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='^') && (LA(2)=='=')) {
+                                               mBXOR_ASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='|') && (LA(2)=='=')) {
+                                               mBOR_ASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='|') && (LA(2)=='|')) {
+                                               mLOR(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='&') && (LA(2)=='=')) {
+                                               mBAND_ASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='&') && (LA(2)=='&')) {
+                                               mLAND(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='/') && (LA(2)=='/')) {
+                                               mSL_COMMIT(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='/') && (LA(2)=='*')) {
+                                               mML_COMMENT(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='=') && (true)) {
+                                               mASSIGN(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='!') && (true)) {
+                                               mLNOT(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='/') && (true)) {
+                                               mDIV(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='+') && (true)) {
+                                               mPLUS(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='-') && (true)) {
+                                               mMINUS(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='*') && (true)) {
+                                               mSTAR(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='%') && (true)) {
+                                               mMOD(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='>') && (true)) {
+                                               mGT(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='<') && (true)) {
+                                               mLT(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='^') && (true)) {
+                                               mBXOR(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='|') && (true)) {
+                                               mBOR(true);
+                                               theRetToken=_returnToken;
+                                       }
+                                       else if ((LA(1)=='&') && (true)) {
+                                               mBAND(true);
+                                               theRetToken=_returnToken;
+                                       }
+                               else {
+                                       if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);}
+                               else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+                               }
+                               }
+                               if ( _returnToken==null ) continue tryAgain; // found SKIP token
+                               _ttype = _returnToken.getType();
+                               _returnToken.setType(_ttype);
+                               return _returnToken;
+                       }
+                       catch (RecognitionException e) {
+                               throw new TokenStreamRecognitionException(e);
+                       }
+               }
+               catch (CharStreamException cse) {
+                       if ( cse instanceof CharStreamIOException ) {
+                               throw new TokenStreamIOException(((CharStreamIOException)cse).io);
+                       }
+                       else {
+                               throw new TokenStreamException(cse.getMessage());
+                       }
+               }
+       }
+}
+
+       public final void mQUESTION(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = QUESTION;
+               int _saveIndex;
+               
+               match('?');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mLPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = LPAREN;
+               int _saveIndex;
+               
+               match('(');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mRPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = RPAREN;
+               int _saveIndex;
+               
+               match(')');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mLBRACK(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = LBRACK;
+               int _saveIndex;
+               
+               match('[');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mRBRACK(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = RBRACK;
+               int _saveIndex;
+               
+               match(']');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mLCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = LCURLY;
+               int _saveIndex;
+               
+               match('{');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mRCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = RCURLY;
+               int _saveIndex;
+               
+               match('}');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mCOLON(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = COLON;
+               int _saveIndex;
+               
+               match(':');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mCOMMA(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = COMMA;
+               int _saveIndex;
+               
+               match(',');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = ASSIGN;
+               int _saveIndex;
+               
+               match('=');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mEQUAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = EQUAL;
+               int _saveIndex;
+               
+               match("==");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mLNOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = LNOT;
+               int _saveIndex;
+               
+               match('!');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mBNOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = BNOT;
+               int _saveIndex;
+               
+               match('~');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mNOT_EQUAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = NOT_EQUAL;
+               int _saveIndex;
+               
+               match("!=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mDIV(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = DIV;
+               int _saveIndex;
+               
+               match('/');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mDIV_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = DIV_ASSIGN;
+               int _saveIndex;
+               
+               match("/=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mPLUS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = PLUS;
+               int _saveIndex;
+               
+               match('+');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mPLUS_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = PLUS_ASSIGN;
+               int _saveIndex;
+               
+               match("+=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mINC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = INC;
+               int _saveIndex;
+               
+               match("++");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mMINUS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = MINUS;
+               int _saveIndex;
+               
+               match('-');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mMINUS_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = MINUS_ASSIGN;
+               int _saveIndex;
+               
+               match("-=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mDEC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = DEC;
+               int _saveIndex;
+               
+               match("--");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mSTAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = STAR;
+               int _saveIndex;
+               
+               match('*');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mSTAR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = STAR_ASSIGN;
+               int _saveIndex;
+               
+               match("*=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mMOD(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = MOD;
+               int _saveIndex;
+               
+               match('%');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mMOD_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = MOD_ASSIGN;
+               int _saveIndex;
+               
+               match("%=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mSR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = SR;
+               int _saveIndex;
+               
+               match(">>");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mSR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = SR_ASSIGN;
+               int _saveIndex;
+               
+               match(">>=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mBSR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = BSR;
+               int _saveIndex;
+               
+               match(">>>");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mBSR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = BSR_ASSIGN;
+               int _saveIndex;
+               
+               match(">>>=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mGE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = GE;
+               int _saveIndex;
+               
+               match(">=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mGT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = GT;
+               int _saveIndex;
+               
+               match(">");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mSL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = SL;
+               int _saveIndex;
+               
+               match("<<");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mSL_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = SL_ASSIGN;
+               int _saveIndex;
+               
+               match("<<=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mLE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = LE;
+               int _saveIndex;
+               
+               match("<=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mLT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = LT;
+               int _saveIndex;
+               
+               match('<');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mBXOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = BXOR;
+               int _saveIndex;
+               
+               match('^');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mBXOR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = BXOR_ASSIGN;
+               int _saveIndex;
+               
+               match("^=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mBOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = BOR;
+               int _saveIndex;
+               
+               match('|');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mBOR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = BOR_ASSIGN;
+               int _saveIndex;
+               
+               match("|=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mLOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = LOR;
+               int _saveIndex;
+               
+               match("||");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mBAND(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = BAND;
+               int _saveIndex;
+               
+               match('&');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mBAND_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = BAND_ASSIGN;
+               int _saveIndex;
+               
+               match("&=");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mLAND(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = LAND;
+               int _saveIndex;
+               
+               match("&&");
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mSEMI(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = SEMI;
+               int _saveIndex;
+               
+               match(';');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mWS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = WS;
+               int _saveIndex;
+               
+               {
+               int _cnt105=0;
+               _loop105:
+               do {
+                       switch ( LA(1)) {
+                       case ' ':
+                       {
+                               match(' ');
+                               break;
+                       }
+                       case '\t':
+                       {
+                               match('\t');
+                               break;
+                       }
+                       case '\u000c':
+                       {
+                               match('\f');
+                               break;
+                       }
+                       case '\n':  case '\r':
+                       {
+                               {
+                               if ((LA(1)=='\r') && (LA(2)=='\n') && (true) && (true)) {
+                                       match("\r\n");
+                               }
+                               else if ((LA(1)=='\r') && (true) && (true) && (true)) {
+                                       match('\r');
+                               }
+                               else if ((LA(1)=='\n')) {
+                                       match('\n');
+                               }
+                               else {
+                                       throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+                               }
+                               
+                               }
+                               if ( inputState.guessing==0 ) {
+                                       newline();
+                               }
+                               break;
+                       }
+                       default:
+                       {
+                               if ( _cnt105>=1 ) { break _loop105; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+                       }
+                       }
+                       _cnt105++;
+               } while (true);
+               }
+               if ( inputState.guessing==0 ) {
+                       _ttype = Token.SKIP;
+               }
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mSL_COMMIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = SL_COMMIT;
+               int _saveIndex;
+               
+               match("//");
+               {
+               _loop109:
+               do {
+                       if ((_tokenSet_0.member(LA(1)))) {
+                               {
+                               match(_tokenSet_0);
+                               }
+                       }
+                       else {
+                               break _loop109;
+                       }
+                       
+               } while (true);
+               }
+               {
+               switch ( LA(1)) {
+               case '\n':
+               {
+                       match('\n');
+                       break;
+               }
+               case '\r':
+               {
+                       match('\r');
+                       {
+                       if ((LA(1)=='\n')) {
+                               match('\n');
+                       }
+                       else {
+                       }
+                       
+                       }
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+               }
+               }
+               }
+               if ( inputState.guessing==0 ) {
+                       _ttype = Token.SKIP; newline();
+               }
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mML_COMMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = ML_COMMENT;
+               int _saveIndex;
+               
+               match("/*");
+               {
+               _loop115:
+               do {
+                       if ((LA(1)=='\r') && (LA(2)=='\n') && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')) && ((LA(4) >= '\u0003' && LA(4) <= '\uffff'))) {
+                               match('\r');
+                               match('\n');
+                               if ( inputState.guessing==0 ) {
+                                       newline();
+                               }
+                       }
+                       else if (((LA(1)=='*') && ((LA(2) >= '\u0003' && LA(2) <= '\uffff')) && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')))&&( LA(2)!='/' )) {
+                               match('*');
+                       }
+                       else if ((LA(1)=='\r') && ((LA(2) >= '\u0003' && LA(2) <= '\uffff')) && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')) && (true)) {
+                               match('\r');
+                               if ( inputState.guessing==0 ) {
+                                       newline();
+                               }
+                       }
+                       else if ((LA(1)=='\n')) {
+                               match('\n');
+                               if ( inputState.guessing==0 ) {
+                                       newline();
+                               }
+                       }
+                       else if ((_tokenSet_1.member(LA(1)))) {
+                               {
+                               match(_tokenSet_1);
+                               }
+                       }
+                       else {
+                               break _loop115;
+                       }
+                       
+               } while (true);
+               }
+               match("*/");
+               if ( inputState.guessing==0 ) {
+                       _ttype = Token.SKIP;
+               }
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mCHAR_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = CHAR_LITERAL;
+               int _saveIndex;
+               
+               match('\'');
+               {
+               if ((LA(1)=='\\')) {
+                       mESC(false);
+               }
+               else if ((_tokenSet_2.member(LA(1)))) {
+                       {
+                       match(_tokenSet_2);
+                       }
+               }
+               else {
+                       throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+               }
+               
+               }
+               match('\'');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       protected final void mESC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = ESC;
+               int _saveIndex;
+               
+               match('\\');
+               {
+               switch ( LA(1)) {
+               case 'n':
+               {
+                       match('n');
+                       break;
+               }
+               case 'r':
+               {
+                       match('r');
+                       break;
+               }
+               case 't':
+               {
+                       match('t');
+                       break;
+               }
+               case 'b':
+               {
+                       match('b');
+                       break;
+               }
+               case 'f':
+               {
+                       match('f');
+                       break;
+               }
+               case '"':
+               {
+                       match('"');
+                       break;
+               }
+               case '\'':
+               {
+                       match('\'');
+                       break;
+               }
+               case '\\':
+               {
+                       match('\\');
+                       break;
+               }
+               case 'u':
+               {
+                       {
+                       int _cnt126=0;
+                       _loop126:
+                       do {
+                               if ((LA(1)=='u')) {
+                                       match('u');
+                               }
+                               else {
+                                       if ( _cnt126>=1 ) { break _loop126; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+                               }
+                               
+                               _cnt126++;
+                       } while (true);
+                       }
+                       mHEX_DIGIT(false);
+                       mHEX_DIGIT(false);
+                       mHEX_DIGIT(false);
+                       mHEX_DIGIT(false);
+                       break;
+               }
+               case '0':  case '1':  case '2':  case '3':
+               {
+                       matchRange('0','3');
+                       {
+                       if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
+                               matchRange('0','7');
+                               {
+                               if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
+                                       matchRange('0','7');
+                               }
+                               else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
+                               }
+                               else {
+                                       throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+                               }
+                               
+                               }
+                       }
+                       else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
+                       }
+                       else {
+                               throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+                       }
+                       
+                       }
+                       break;
+               }
+               case '4':  case '5':  case '6':  case '7':
+               {
+                       matchRange('4','7');
+                       {
+                       if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
+                               matchRange('0','7');
+                       }
+                       else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
+                       }
+                       else {
+                               throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+                       }
+                       
+                       }
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+               }
+               }
+               }
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mSTRING_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = STRING_LITERAL;
+               int _saveIndex;
+               
+               match('"');
+               {
+               _loop122:
+               do {
+                       if ((LA(1)=='\\')) {
+                               mESC(false);
+                       }
+                       else if ((_tokenSet_3.member(LA(1)))) {
+                               {
+                               match(_tokenSet_3);
+                               }
+                       }
+                       else {
+                               break _loop122;
+                       }
+                       
+               } while (true);
+               }
+               match('"');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       protected final void mHEX_DIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = HEX_DIGIT;
+               int _saveIndex;
+               
+               {
+               switch ( LA(1)) {
+               case '0':  case '1':  case '2':  case '3':
+               case '4':  case '5':  case '6':  case '7':
+               case '8':  case '9':
+               {
+                       matchRange('0','9');
+                       break;
+               }
+               case 'A':  case 'B':  case 'C':  case 'D':
+               case 'E':  case 'F':
+               {
+                       matchRange('A','F');
+                       break;
+               }
+               case 'a':  case 'b':  case 'c':  case 'd':
+               case 'e':  case 'f':
+               {
+                       matchRange('a','f');
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+               }
+               }
+               }
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       protected final void mVOCAB(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = VOCAB;
+               int _saveIndex;
+               
+               matchRange('\3','\377');
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mIDENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = IDENT;
+               int _saveIndex;
+               
+               {
+               switch ( LA(1)) {
+               case 'a':  case 'b':  case 'c':  case 'd':
+               case 'e':  case 'f':  case 'g':  case 'h':
+               case 'i':  case 'j':  case 'k':  case 'l':
+               case 'm':  case 'n':  case 'o':  case 'p':
+               case 'q':  case 'r':  case 's':  case 't':
+               case 'u':  case 'v':  case 'w':  case 'x':
+               case 'y':  case 'z':
+               {
+                       matchRange('a','z');
+                       break;
+               }
+               case 'A':  case 'B':  case 'C':  case 'D':
+               case 'E':  case 'F':  case 'G':  case 'H':
+               case 'I':  case 'J':  case 'K':  case 'L':
+               case 'M':  case 'N':  case 'O':  case 'P':
+               case 'Q':  case 'R':  case 'S':  case 'T':
+               case 'U':  case 'V':  case 'W':  case 'X':
+               case 'Y':  case 'Z':
+               {
+                       matchRange('A','Z');
+                       break;
+               }
+               case '_':
+               {
+                       match('_');
+                       break;
+               }
+               case '$':
+               {
+                       match('$');
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+               }
+               }
+               }
+               {
+               _loop136:
+               do {
+                       switch ( LA(1)) {
+                       case 'a':  case 'b':  case 'c':  case 'd':
+                       case 'e':  case 'f':  case 'g':  case 'h':
+                       case 'i':  case 'j':  case 'k':  case 'l':
+                       case 'm':  case 'n':  case 'o':  case 'p':
+                       case 'q':  case 'r':  case 's':  case 't':
+                       case 'u':  case 'v':  case 'w':  case 'x':
+                       case 'y':  case 'z':
+                       {
+                               matchRange('a','z');
+                               break;
+                       }
+                       case 'A':  case 'B':  case 'C':  case 'D':
+                       case 'E':  case 'F':  case 'G':  case 'H':
+                       case 'I':  case 'J':  case 'K':  case 'L':
+                       case 'M':  case 'N':  case 'O':  case 'P':
+                       case 'Q':  case 'R':  case 'S':  case 'T':
+                       case 'U':  case 'V':  case 'W':  case 'X':
+                       case 'Y':  case 'Z':
+                       {
+                               matchRange('A','Z');
+                               break;
+                       }
+                       case '_':
+                       {
+                               match('_');
+                               break;
+                       }
+                       case '0':  case '1':  case '2':  case '3':
+                       case '4':  case '5':  case '6':  case '7':
+                       case '8':  case '9':
+                       {
+                               matchRange('0','9');
+                               break;
+                       }
+                       case '$':
+                       {
+                               match('$');
+                               break;
+                       }
+                       default:
+                       {
+                               break _loop136;
+                       }
+                       }
+               } while (true);
+               }
+               _ttype = testLiteralsTable(_ttype);
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       public final void mNUM_INT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = NUM_INT;
+               int _saveIndex;
+               Token f1=null;
+               Token f2=null;
+               Token f3=null;
+               Token f4=null;
+               boolean isDecimal=false; Token t=null;
+               
+               switch ( LA(1)) {
+               case '.':
+               {
+                       match('.');
+                       if ( inputState.guessing==0 ) {
+                               _ttype = DOT;
+                       }
+                       {
+                       if (((LA(1) >= '0' && LA(1) <= '9'))) {
+                               {
+                               int _cnt140=0;
+                               _loop140:
+                               do {
+                                       if (((LA(1) >= '0' && LA(1) <= '9'))) {
+                                               matchRange('0','9');
+                                       }
+                                       else {
+                                               if ( _cnt140>=1 ) { break _loop140; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+                                       }
+                                       
+                                       _cnt140++;
+                               } while (true);
+                               }
+                               {
+                               if ((LA(1)=='E'||LA(1)=='e')) {
+                                       mEXPONENT(false);
+                               }
+                               else {
+                               }
+                               
+                               }
+                               {
+                               if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
+                                       mFLOAT_SUFFIX(true);
+                                       f1=_returnToken;
+                                       if ( inputState.guessing==0 ) {
+                                               t=f1;
+                                       }
+                               }
+                               else {
+                               }
+                               
+                               }
+                               if ( inputState.guessing==0 ) {
+                                       
+                                                                       if (t != null && t.getText().toUpperCase().indexOf('F')>=0) {
+                                               _ttype = NUM_FLOAT;
+                                                                       }
+                                                                       else {
+                                               _ttype = NUM_DOUBLE; // assume double
+                                                                       }
+                                                                       
+                               }
+                       }
+                       else {
+                       }
+                       
+                       }
+                       break;
+               }
+               case '0':  case '1':  case '2':  case '3':
+               case '4':  case '5':  case '6':  case '7':
+               case '8':  case '9':
+               {
+                       {
+                       switch ( LA(1)) {
+                       case '0':
+                       {
+                               match('0');
+                               if ( inputState.guessing==0 ) {
+                                       isDecimal = true;
+                               }
+                               {
+                               if ((LA(1)=='X'||LA(1)=='x')) {
+                                       {
+                                       switch ( LA(1)) {
+                                       case 'x':
+                                       {
+                                               match('x');
+                                               break;
+                                       }
+                                       case 'X':
+                                       {
+                                               match('X');
+                                               break;
+                                       }
+                                       default:
+                                       {
+                                               throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+                                       }
+                                       }
+                                       }
+                                       {
+                                       int _cnt147=0;
+                                       _loop147:
+                                       do {
+                                               if ((_tokenSet_4.member(LA(1))) && (true) && (true) && (true)) {
+                                                       mHEX_DIGIT(false);
+                                               }
+                                               else {
+                                                       if ( _cnt147>=1 ) { break _loop147; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+                                               }
+                                               
+                                               _cnt147++;
+                                       } while (true);
+                                       }
+                               }
+                               else {
+                                       boolean synPredMatched152 = false;
+                                       if ((((LA(1) >= '0' && LA(1) <= '9')) && (true) && (true) && (true))) {
+                                               int _m152 = mark();
+                                               synPredMatched152 = true;
+                                               inputState.guessing++;
+                                               try {
+                                                       {
+                                                       {
+                                                       int _cnt150=0;
+                                                       _loop150:
+                                                       do {
+                                                               if (((LA(1) >= '0' && LA(1) <= '9'))) {
+                                                                       matchRange('0','9');
+                                                               }
+                                                               else {
+                                                                       if ( _cnt150>=1 ) { break _loop150; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+                                                               }
+                                                               
+                                                               _cnt150++;
+                                                       } while (true);
+                                                       }
+                                                       {
+                                                       switch ( LA(1)) {
+                                                       case '.':
+                                                       {
+                                                               match('.');
+                                                               break;
+                                                       }
+                                                       case 'E':  case 'e':
+                                                       {
+                                                               mEXPONENT(false);
+                                                               break;
+                                                       }
+                                                       case 'D':  case 'F':  case 'd':  case 'f':
+                                                       {
+                                                               mFLOAT_SUFFIX(false);
+                                                               break;
+                                                       }
+                                                       default:
+                                                       {
+                                                               throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+                                                       }
+                                                       }
+                                                       }
+                                                       }
+                                               }
+                                               catch (RecognitionException pe) {
+                                                       synPredMatched152 = false;
+                                               }
+                                               rewind(_m152);
+inputState.guessing--;
+                                       }
+                                       if ( synPredMatched152 ) {
+                                               {
+                                               int _cnt154=0;
+                                               _loop154:
+                                               do {
+                                                       if (((LA(1) >= '0' && LA(1) <= '9'))) {
+                                                               matchRange('0','9');
+                                                       }
+                                                       else {
+                                                               if ( _cnt154>=1 ) { break _loop154; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+                                                       }
+                                                       
+                                                       _cnt154++;
+                                               } while (true);
+                                               }
+                                       }
+                                       else if (((LA(1) >= '0' && LA(1) <= '7')) && (true) && (true) && (true)) {
+                                               {
+                                               int _cnt156=0;
+                                               _loop156:
+                                               do {
+                                                       if (((LA(1) >= '0' && LA(1) <= '7'))) {
+                                                               matchRange('0','7');
+                                                       }
+                                                       else {
+                                                               if ( _cnt156>=1 ) { break _loop156; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+                                                       }
+                                                       
+                                                       _cnt156++;
+                                               } while (true);
+                                               }
+                                       }
+                                       else {
+                                       }
+                                       }
+                                       }
+                                       break;
+                               }
+                               case '1':  case '2':  case '3':  case '4':
+                               case '5':  case '6':  case '7':  case '8':
+                               case '9':
+                               {
+                                       {
+                                       matchRange('1','9');
+                                       }
+                                       {
+                                       _loop159:
+                                       do {
+                                               if (((LA(1) >= '0' && LA(1) <= '9'))) {
+                                                       matchRange('0','9');
+                                               }
+                                               else {
+                                                       break _loop159;
+                                               }
+                                               
+                                       } while (true);
+                                       }
+                                       if ( inputState.guessing==0 ) {
+                                               isDecimal=true;
+                                       }
+                                       break;
+                               }
+                               default:
+                               {
+                                       throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+                               }
+                               }
+                               }
+                               {
+                               if ((LA(1)=='L'||LA(1)=='l')) {
+                                       {
+                                       switch ( LA(1)) {
+                                       case 'l':
+                                       {
+                                               match('l');
+                                               break;
+                                       }
+                                       case 'L':
+                                       {
+                                               match('L');
+                                               break;
+                                       }
+                                       default:
+                                       {
+                                               throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+                                       }
+                                       }
+                                       }
+                                       if ( inputState.guessing==0 ) {
+                                               _ttype = NUM_LONG;
+                                       }
+                               }
+                               else if (((LA(1)=='.'||LA(1)=='D'||LA(1)=='E'||LA(1)=='F'||LA(1)=='d'||LA(1)=='e'||LA(1)=='f'))&&(isDecimal)) {
+                                       {
+                                       switch ( LA(1)) {
+                                       case '.':
+                                       {
+                                               match('.');
+                                               {
+                                               _loop164:
+                                               do {
+                                                       if (((LA(1) >= '0' && LA(1) <= '9'))) {
+                                                               matchRange('0','9');
+                                                       }
+                                                       else {
+                                                               break _loop164;
+                                                       }
+                                                       
+                                               } while (true);
+                                               }
+                                               {
+                                               if ((LA(1)=='E'||LA(1)=='e')) {
+                                                       mEXPONENT(false);
+                                               }
+                                               else {
+                                               }
+                                               
+                                               }
+                                               {
+                                               if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
+                                                       mFLOAT_SUFFIX(true);
+                                                       f2=_returnToken;
+                                                       if ( inputState.guessing==0 ) {
+                                                               t=f2;
+                                                       }
+                                               }
+                                               else {
+                                               }
+                                               
+                                               }
+                                               break;
+                                       }
+                                       case 'E':  case 'e':
+                                       {
+                                               mEXPONENT(false);
+                                               {
+                                               if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
+                                                       mFLOAT_SUFFIX(true);
+                                                       f3=_returnToken;
+                                                       if ( inputState.guessing==0 ) {
+                                                               t=f3;
+                                                       }
+                                               }
+                                               else {
+                                               }
+                                               
+                                               }
+                                               break;
+                                       }
+                                       case 'D':  case 'F':  case 'd':  case 'f':
+                                       {
+                                               mFLOAT_SUFFIX(true);
+                                               f4=_returnToken;
+                                               if ( inputState.guessing==0 ) {
+                                                       t=f4;
+                                               }
+                                               break;
+                                       }
+                                       default:
+                                       {
+                                               throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+                                       }
+                                       }
+                                       }
+                                       if ( inputState.guessing==0 ) {
+                                               
+                                                                       if (t != null && t.getText().toUpperCase() .indexOf('F') >= 0) {
+                                               _ttype = NUM_FLOAT;
+                                                                       }
+                                               else {
+                                                                       _ttype = NUM_DOUBLE; // assume double
+                                                                       }
+                                                                       
+                                       }
+                               }
+                               else {
+                               }
+                               
+                               }
+                               break;
+                       }
+                       default:
+                       {
+                               throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+                       }
+                       }
+                       if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                               _token = makeToken(_ttype);
+                               _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+                       }
+                       _returnToken = _token;
+               }
+               
+       protected final void mEXPONENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = EXPONENT;
+               int _saveIndex;
+               
+               {
+               switch ( LA(1)) {
+               case 'e':
+               {
+                       match('e');
+                       break;
+               }
+               case 'E':
+               {
+                       match('E');
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+               }
+               }
+               }
+               {
+               switch ( LA(1)) {
+               case '+':
+               {
+                       match('+');
+                       break;
+               }
+               case '-':
+               {
+                       match('-');
+                       break;
+               }
+               case '0':  case '1':  case '2':  case '3':
+               case '4':  case '5':  case '6':  case '7':
+               case '8':  case '9':
+               {
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+               }
+               }
+               }
+               {
+               int _cnt172=0;
+               _loop172:
+               do {
+                       if (((LA(1) >= '0' && LA(1) <= '9'))) {
+                               matchRange('0','9');
+                       }
+                       else {
+                               if ( _cnt172>=1 ) { break _loop172; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+                       }
+                       
+                       _cnt172++;
+               } while (true);
+               }
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       protected final void mFLOAT_SUFFIX(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+               int _ttype; Token _token=null; int _begin=text.length();
+               _ttype = FLOAT_SUFFIX;
+               int _saveIndex;
+               
+               switch ( LA(1)) {
+               case 'f':
+               {
+                       match('f');
+                       break;
+               }
+               case 'F':
+               {
+                       match('F');
+                       break;
+               }
+               case 'd':
+               {
+                       match('d');
+                       break;
+               }
+               case 'D':
+               {
+                       match('D');
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+               }
+               }
+               if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+                       _token = makeToken(_ttype);
+                       _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+               }
+               _returnToken = _token;
+       }
+       
+       
+       private static final long[] mk_tokenSet_0() {
+               long[] data = new long[2048];
+               data[0]=-9224L;
+               for (int i = 1; i<=1023; i++) { data[i]=-1L; }
+               return data;
+       }
+       public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
+       private static final long[] mk_tokenSet_1() {
+               long[] data = new long[2048];
+               data[0]=-4398046520328L;
+               for (int i = 1; i<=1023; i++) { data[i]=-1L; }
+               return data;
+       }
+       public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
+       private static final long[] mk_tokenSet_2() {
+               long[] data = new long[2048];
+               data[0]=-549755823112L;
+               data[1]=-268435457L;
+               for (int i = 2; i<=1023; i++) { data[i]=-1L; }
+               return data;
+       }
+       public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
+       private static final long[] mk_tokenSet_3() {
+               long[] data = new long[2048];
+               data[0]=-17179878408L;
+               data[1]=-268435457L;
+               for (int i = 2; i<=1023; i++) { data[i]=-1L; }
+               return data;
+       }
+       public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3());
+       private static final long[] mk_tokenSet_4() {
+               long[] data = new long[1025];
+               data[0]=287948901175001088L;
+               data[1]=541165879422L;
+               return data;
+       }
+       public static final BitSet _tokenSet_4 = new BitSet(mk_tokenSet_4());
+       
+       }
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap
new file mode 100644 (file)
index 0000000..045e3e3
--- /dev/null
@@ -0,0 +1,1280 @@
+SMAP
+JavaLexer.java
+G
+*S G
+*F
++ 0 java-expression.g
+java-expression.g
+*L
+0:75
+0:81
+0:87
+0:93
+0:99
+0:105
+0:111
+0:117
+0:123
+0:129
+0:135
+0:142
+0:148
+0:154
+0:173
+0:181
+0:187
+0:191
+0:195
+0:199
+0:203
+0:207
+0:211
+0:215
+0:219
+0:223
+0:227
+0:231
+0:235
+0:239
+0:243
+0:247
+0:251
+0:255
+0:259
+0:263
+0:267
+0:271
+0:275
+0:279
+0:283
+0:287
+0:291
+0:295
+0:299
+0:303
+0:307
+0:311
+0:315
+0:319
+0:323
+0:327
+19:3
+231:355
+231:356
+231:357
+231:358
+231:360
+231:361
+231:362
+231:363
+231:364
+231:365
+231:366
+232:368
+232:369
+232:370
+232:371
+232:373
+232:374
+232:375
+232:376
+232:377
+232:378
+232:379
+233:381
+233:382
+233:383
+233:384
+233:386
+233:387
+233:388
+233:389
+233:390
+233:391
+233:392
+234:394
+234:395
+234:396
+234:397
+234:399
+234:400
+234:401
+234:402
+234:403
+234:404
+234:405
+235:407
+235:408
+235:409
+235:410
+235:412
+235:413
+235:414
+235:415
+235:416
+235:417
+235:418
+236:420
+236:421
+236:422
+236:423
+236:425
+236:426
+236:427
+236:428
+236:429
+236:430
+236:431
+237:433
+237:434
+237:435
+237:436
+237:438
+237:439
+237:440
+237:441
+237:442
+237:443
+237:444
+238:446
+238:447
+238:448
+238:449
+238:451
+238:452
+238:453
+238:454
+238:455
+238:456
+238:457
+239:459
+239:460
+239:461
+239:462
+239:464
+239:465
+239:466
+239:467
+239:468
+239:469
+239:470
+241:472
+241:473
+241:474
+241:475
+241:477
+241:478
+241:479
+241:480
+241:481
+241:482
+241:483
+242:485
+242:486
+242:487
+242:488
+242:490
+242:491
+242:492
+242:493
+242:494
+242:495
+242:496
+243:498
+243:499
+243:500
+243:501
+243:503
+243:504
+243:505
+243:506
+243:507
+243:508
+243:509
+244:511
+244:512
+244:513
+244:514
+244:516
+244:517
+244:518
+244:519
+244:520
+244:521
+244:522
+245:524
+245:525
+245:526
+245:527
+245:529
+245:530
+245:531
+245:532
+245:533
+245:534
+245:535
+246:537
+246:538
+246:539
+246:540
+246:542
+246:543
+246:544
+246:545
+246:546
+246:547
+246:548
+247:550
+247:551
+247:552
+247:553
+247:555
+247:556
+247:557
+247:558
+247:559
+247:560
+247:561
+248:563
+248:564
+248:565
+248:566
+248:568
+248:569
+248:570
+248:571
+248:572
+248:573
+248:574
+249:576
+249:577
+249:578
+249:579
+249:581
+249:582
+249:583
+249:584
+249:585
+249:586
+249:587
+250:589
+250:590
+250:591
+250:592
+250:594
+250:595
+250:596
+250:597
+250:598
+250:599
+250:600
+251:602
+251:603
+251:604
+251:605
+251:607
+251:608
+251:609
+251:610
+251:611
+251:612
+251:613
+252:615
+252:616
+252:617
+252:618
+252:620
+252:621
+252:622
+252:623
+252:624
+252:625
+252:626
+253:628
+253:629
+253:630
+253:631
+253:633
+253:634
+253:635
+253:636
+253:637
+253:638
+253:639
+254:641
+254:642
+254:643
+254:644
+254:646
+254:647
+254:648
+254:649
+254:650
+254:651
+254:652
+255:654
+255:655
+255:656
+255:657
+255:659
+255:660
+255:661
+255:662
+255:663
+255:664
+255:665
+256:667
+256:668
+256:669
+256:670
+256:672
+256:673
+256:674
+256:675
+256:676
+256:677
+256:678
+257:680
+257:681
+257:682
+257:683
+257:685
+257:686
+257:687
+257:688
+257:689
+257:690
+257:691
+258:693
+258:694
+258:695
+258:696
+258:698
+258:699
+258:700
+258:701
+258:702
+258:703
+258:704
+259:706
+259:707
+259:708
+259:709
+259:711
+259:712
+259:713
+259:714
+259:715
+259:716
+259:717
+260:719
+260:720
+260:721
+260:722
+260:724
+260:725
+260:726
+260:727
+260:728
+260:729
+260:730
+261:732
+261:733
+261:734
+261:735
+261:737
+261:738
+261:739
+261:740
+261:741
+261:742
+261:743
+262:745
+262:746
+262:747
+262:748
+262:750
+262:751
+262:752
+262:753
+262:754
+262:755
+262:756
+263:758
+263:759
+263:760
+263:761
+263:763
+263:764
+263:765
+263:766
+263:767
+263:768
+263:769
+264:771
+264:772
+264:773
+264:774
+264:776
+264:777
+264:778
+264:779
+264:780
+264:781
+264:782
+265:784
+265:785
+265:786
+265:787
+265:789
+265:790
+265:791
+265:792
+265:793
+265:794
+265:795
+266:797
+266:798
+266:799
+266:800
+266:802
+266:803
+266:804
+266:805
+266:806
+266:807
+266:808
+267:810
+267:811
+267:812
+267:813
+267:815
+267:816
+267:817
+267:818
+267:819
+267:820
+267:821
+268:823
+268:824
+268:825
+268:826
+268:828
+268:829
+268:830
+268:831
+268:832
+268:833
+268:834
+269:836
+269:837
+269:838
+269:839
+269:841
+269:842
+269:843
+269:844
+269:845
+269:846
+269:847
+270:849
+270:850
+270:851
+270:852
+270:854
+270:855
+270:856
+270:857
+270:858
+270:859
+270:860
+271:862
+271:863
+271:864
+271:865
+271:867
+271:868
+271:869
+271:870
+271:871
+271:872
+271:873
+272:875
+272:876
+272:877
+272:878
+272:880
+272:881
+272:882
+272:883
+272:884
+272:885
+272:886
+273:888
+273:889
+273:890
+273:891
+273:893
+273:894
+273:895
+273:896
+273:897
+273:898
+273:899
+274:901
+274:902
+274:903
+274:904
+274:906
+274:907
+274:908
+274:909
+274:910
+274:911
+274:912
+275:914
+275:915
+275:916
+275:917
+275:919
+275:920
+275:921
+275:922
+275:923
+275:924
+275:925
+276:927
+276:928
+276:929
+276:930
+276:932
+276:933
+276:934
+276:935
+276:936
+276:937
+276:938
+280:940
+280:941
+280:942
+280:943
+280:946
+280:947
+280:948
+280:949
+280:950
+280:951
+280:952
+280:987
+280:988
+280:989
+280:990
+280:991
+280:992
+280:993
+280:994
+280:998
+280:999
+280:1000
+280:1001
+280:1002
+280:1003
+281:955
+281:956
+281:957
+282:960
+282:961
+282:962
+284:965
+284:966
+284:970
+284:973
+284:976
+284:977
+284:978
+284:979
+285:968
+285:969
+286:971
+286:972
+287:974
+287:975
+289:982
+289:983
+291:995
+291:996
+295:1005
+295:1006
+295:1007
+295:1008
+295:1054
+295:1055
+295:1056
+295:1057
+295:1058
+295:1059
+296:1010
+297:1011
+297:1012
+297:1013
+297:1014
+297:1016
+297:1018
+297:1019
+297:1020
+297:1021
+297:1023
+297:1024
+297:1026
+297:1027
+297:1028
+297:1029
+297:1032
+297:1033
+297:1034
+297:1036
+297:1037
+297:1038
+297:1040
+297:1045
+297:1046
+297:1047
+297:1048
+297:1049
+298:1051
+298:1052
+302:1061
+302:1062
+302:1063
+302:1064
+302:1107
+302:1108
+302:1109
+302:1110
+302:1111
+302:1112
+303:1066
+304:1067
+304:1068
+304:1069
+304:1076
+304:1079
+304:1085
+304:1091
+304:1096
+304:1097
+304:1098
+304:1099
+304:1101
+304:1102
+315:1077
+315:1078
+316:1070
+316:1071
+316:1072
+316:1073
+316:1074
+317:1080
+317:1081
+317:1082
+317:1083
+318:1086
+318:1087
+318:1088
+318:1089
+319:1092
+319:1094
+321:1103
+322:1104
+322:1105
+327:1114
+327:1115
+327:1116
+327:1117
+327:1135
+327:1136
+327:1137
+327:1138
+327:1139
+327:1140
+328:1119
+328:1121
+328:1122
+328:1123
+328:1124
+328:1126
+328:1128
+328:1129
+328:1130
+328:1131
+328:1134
+332:1268
+332:1269
+332:1270
+332:1271
+332:1292
+332:1293
+332:1294
+332:1295
+332:1296
+332:1297
+333:1273
+333:1274
+333:1275
+333:1276
+333:1277
+333:1278
+333:1279
+333:1280
+333:1282
+333:1284
+333:1285
+333:1286
+333:1287
+333:1289
+333:1290
+333:1291
+346:1142
+346:1143
+346:1144
+346:1145
+346:1261
+346:1262
+346:1263
+346:1264
+346:1265
+346:1266
+347:1147
+348:1149
+348:1150
+348:1151
+348:1152
+348:1255
+348:1256
+348:1257
+348:1258
+348:1259
+349:1155
+349:1156
+349:1157
+350:1160
+350:1161
+350:1162
+351:1165
+351:1166
+351:1167
+352:1170
+352:1171
+352:1172
+353:1175
+353:1176
+353:1177
+354:1180
+354:1181
+354:1182
+355:1185
+355:1186
+355:1187
+356:1190
+356:1191
+356:1193
+356:1194
+356:1195
+356:1196
+356:1197
+356:1198
+356:1199
+356:1200
+356:1201
+356:1203
+356:1204
+356:1205
+356:1206
+356:1207
+356:1208
+356:1209
+357:1212
+357:1213
+357:1214
+358:1229
+358:1231
+358:1232
+358:1233
+358:1234
+362:1216
+362:1217
+363:1221
+363:1223
+363:1224
+363:1225
+363:1226
+367:1219
+367:1220
+370:1239
+370:1240
+370:1241
+371:1245
+371:1247
+371:1248
+371:1249
+371:1250
+375:1243
+375:1244
+383:1299
+383:1300
+383:1301
+383:1302
+383:1331
+383:1332
+383:1333
+383:1334
+383:1335
+383:1336
+384:1305
+384:1306
+384:1307
+384:1308
+384:1309
+384:1310
+384:1313
+384:1314
+384:1315
+384:1316
+384:1319
+384:1320
+384:1321
+384:1322
+384:1325
+384:1326
+384:1327
+384:1328
+384:1329
+391:1338
+391:1339
+391:1340
+391:1341
+391:1344
+391:1345
+391:1346
+391:1347
+391:1348
+391:1349
+392:1343
+399:1351
+399:1352
+399:1353
+399:1354
+399:1446
+399:1447
+399:1448
+399:1449
+399:1450
+399:1451
+399:1452
+401:1357
+401:1358
+401:1359
+401:1360
+401:1361
+401:1362
+401:1363
+401:1364
+401:1365
+401:1366
+401:1369
+401:1370
+401:1371
+401:1372
+401:1373
+401:1374
+401:1375
+401:1376
+401:1377
+401:1380
+401:1381
+401:1382
+401:1385
+401:1386
+401:1387
+401:1390
+401:1391
+401:1392
+401:1393
+401:1394
+401:1396
+401:1397
+401:1398
+401:1399
+401:1400
+401:1401
+401:1402
+401:1403
+401:1404
+401:1405
+401:1406
+401:1407
+401:1408
+401:1411
+401:1412
+401:1413
+401:1414
+401:1415
+401:1416
+401:1417
+401:1418
+401:1419
+401:1422
+401:1423
+401:1424
+401:1427
+401:1428
+401:1429
+401:1430
+401:1431
+401:1434
+401:1435
+401:1436
+401:1439
+401:1440
+401:1441
+401:1442
+401:1443
+401:1444
+401:1445
+406:1454
+406:1455
+406:1456
+406:1457
+406:1462
+406:1464
+406:1805
+406:1806
+406:1807
+406:1808
+406:1809
+406:1810
+406:1811
+406:1812
+406:1813
+406:1814
+406:1815
+408:1465
+408:1466
+408:1467
+408:1468
+408:1469
+409:1458
+409:1472
+409:1474
+409:1475
+409:1476
+409:1477
+409:1478
+409:1479
+409:1480
+409:1481
+409:1482
+409:1484
+409:1485
+409:1486
+409:1488
+409:1489
+409:1490
+409:1492
+409:1496
+409:1497
+409:1498
+409:1499
+409:1500
+409:1502
+409:1504
+409:1517
+409:1519
+410:1507
+411:1509
+412:1510
+413:1511
+414:1512
+415:1513
+416:1514
+420:1524
+420:1525
+420:1526
+420:1527
+420:1529
+420:1530
+420:1531
+420:1532
+420:1533
+420:1534
+420:1686
+420:1687
+420:1688
+420:1689
+420:1690
+421:1537
+421:1539
+421:1540
+421:1541
+421:1542
+421:1545
+421:1546
+421:1547
+421:1550
+421:1551
+421:1552
+421:1553
+421:1554
+421:1570
+421:1639
+421:1655
+421:1657
+421:1658
+422:1557
+422:1558
+422:1559
+422:1562
+422:1563
+422:1564
+422:1565
+422:1567
+422:1568
+422:1569
+431:1560
+431:1561
+435:1571
+435:1572
+435:1573
+435:1574
+435:1575
+435:1576
+435:1577
+435:1580
+435:1581
+435:1582
+435:1583
+435:1584
+435:1585
+435:1586
+435:1587
+435:1588
+435:1590
+435:1591
+435:1592
+435:1594
+435:1595
+435:1596
+435:1597
+435:1600
+435:1601
+435:1602
+435:1605
+435:1606
+435:1607
+435:1610
+435:1611
+435:1612
+435:1613
+435:1614
+435:1617
+435:1618
+435:1619
+435:1620
+435:1621
+435:1622
+435:1623
+435:1624
+435:1626
+435:1627
+435:1628
+435:1629
+435:1630
+435:1631
+435:1632
+435:1633
+435:1634
+435:1636
+435:1637
+435:1638
+437:1640
+437:1642
+437:1643
+437:1644
+437:1645
+437:1646
+437:1647
+437:1648
+437:1649
+437:1650
+437:1652
+437:1653
+437:1654
+439:1662
+439:1663
+439:1664
+439:1665
+439:1667
+439:1669
+439:1670
+439:1671
+439:1672
+439:1673
+439:1674
+439:1675
+439:1676
+439:1677
+439:1679
+439:1680
+439:1681
+439:1682
+441:1693
+441:1695
+441:1696
+441:1697
+441:1698
+441:1701
+441:1702
+441:1703
+441:1706
+441:1707
+441:1708
+441:1709
+441:1710
+441:1712
+441:1713
+441:1715
+441:1798
+441:1800
+445:1459
+445:1716
+445:1718
+445:1719
+445:1720
+445:1721
+445:1722
+445:1723
+445:1724
+445:1725
+445:1726
+445:1727
+445:1728
+445:1729
+445:1730
+445:1732
+445:1733
+445:1735
+445:1736
+445:1737
+445:1739
+445:1743
+445:1744
+445:1745
+445:1746
+445:1747
+445:1749
+445:1751
+445:1782
+445:1783
+445:1784
+445:1785
+445:1786
+446:1460
+446:1756
+446:1757
+446:1758
+446:1760
+446:1761
+446:1762
+446:1763
+446:1764
+446:1766
+446:1768
+447:1461
+447:1773
+447:1774
+447:1775
+447:1776
+447:1777
+447:1778
+449:1788
+450:1790
+451:1791
+452:1792
+453:1793
+454:1794
+455:1795
+463:1817
+463:1818
+463:1819
+463:1820
+463:1878
+463:1879
+463:1880
+463:1881
+463:1882
+463:1883
+464:1823
+464:1824
+464:1825
+464:1826
+464:1829
+464:1830
+464:1831
+464:1834
+464:1835
+464:1836
+464:1837
+464:1838
+464:1841
+464:1842
+464:1843
+464:1844
+464:1847
+464:1848
+464:1849
+464:1858
+464:1859
+464:1860
+464:1861
+464:1862
+464:1865
+464:1866
+464:1867
+464:1868
+464:1869
+464:1870
+464:1871
+464:1872
+464:1873
+464:1875
+464:1876
+464:1877
+469:1885
+469:1886
+469:1887
+469:1888
+469:1890
+469:1911
+469:1912
+469:1913
+469:1914
+469:1915
+469:1916
+469:1917
+469:1918
+469:1919
+469:1920
+469:1921
+470:1891
+470:1892
+470:1893
+470:1896
+470:1897
+470:1898
+470:1901
+470:1902
+470:1903
+470:1906
+470:1907
+470:1908
+*E
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java
new file mode 100644 (file)
index 0000000..9dfc9db
--- /dev/null
@@ -0,0 +1,1406 @@
+// $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaRecognizer.java"$
+   package gnu.classpath.tools.gjdoc.expr; 
+
+import antlr.TokenBuffer;
+import antlr.TokenStreamException;
+import antlr.TokenStreamIOException;
+import antlr.ANTLRException;
+import antlr.LLkParser;
+import antlr.Token;
+import antlr.TokenStream;
+import antlr.RecognitionException;
+import antlr.NoViableAltException;
+import antlr.MismatchedTokenException;
+import antlr.SemanticException;
+import antlr.ParserSharedInputState;
+import antlr.collections.impl.BitSet;
+import antlr.collections.AST;
+import java.util.Hashtable;
+import antlr.ASTFactory;
+import antlr.ASTPair;
+import antlr.collections.impl.ASTArray;
+
+public class JavaRecognizer extends antlr.LLkParser       implements JavaTokenTypes
+ {
+
+protected JavaRecognizer(TokenBuffer tokenBuf, int k) {
+  super(tokenBuf,k);
+  tokenNames = _tokenNames;
+  buildTokenTypeASTClassMap();
+  astFactory = new ASTFactory(getTokenTypeToASTClassMap());
+}
+
+public JavaRecognizer(TokenBuffer tokenBuf) {
+  this(tokenBuf,2);
+}
+
+protected JavaRecognizer(TokenStream lexer, int k) {
+  super(lexer,k);
+  tokenNames = _tokenNames;
+  buildTokenTypeASTClassMap();
+  astFactory = new ASTFactory(getTokenTypeToASTClassMap());
+}
+
+public JavaRecognizer(TokenStream lexer) {
+  this(lexer,2);
+}
+
+public JavaRecognizer(ParserSharedInputState state) {
+  super(state,2);
+  tokenNames = _tokenNames;
+  buildTokenTypeASTClassMap();
+  astFactory = new ASTFactory(getTokenTypeToASTClassMap());
+}
+
+       public final Type  builtInTypeSpec(
+               boolean addImagNode
+       ) throws RecognitionException, TokenStreamException {
+               Type t = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST builtInTypeSpec_AST = null;
+               Token  lb = null;
+               AST lb_AST = null;
+               
+               t=builtInType();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               _loop3:
+               do {
+                       if ((LA(1)==LBRACK)) {
+                               lb = LT(1);
+                               lb_AST = astFactory.create(lb);
+                               astFactory.makeASTRoot(currentAST, lb_AST);
+                               match(LBRACK);
+                               if ( inputState.guessing==0 ) {
+                                       lb_AST.setType(ARRAY_DECLARATOR);
+                               }
+                               match(RBRACK);
+                       }
+                       else {
+                               break _loop3;
+                       }
+                       
+               } while (true);
+               }
+               if ( inputState.guessing==0 ) {
+                       builtInTypeSpec_AST = (AST)currentAST.root;
+                       
+                                               if ( addImagNode ) {
+                                                       builtInTypeSpec_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(builtInTypeSpec_AST));
+                                               }
+                                       
+                       currentAST.root = builtInTypeSpec_AST;
+                       currentAST.child = builtInTypeSpec_AST!=null &&builtInTypeSpec_AST.getFirstChild()!=null ?
+                               builtInTypeSpec_AST.getFirstChild() : builtInTypeSpec_AST;
+                       currentAST.advanceChildToEnd();
+               }
+               builtInTypeSpec_AST = (AST)currentAST.root;
+               returnAST = builtInTypeSpec_AST;
+               return t;
+       }
+       
+       public final Type  builtInType() throws RecognitionException, TokenStreamException {
+               Type t = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST builtInType_AST = null;
+               
+               switch ( LA(1)) {
+               case LITERAL_void:
+               {
+                       AST tmp2_AST = null;
+                       tmp2_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp2_AST);
+                       match(LITERAL_void);
+                       if ( inputState.guessing==0 ) {
+                               t=Type.VOID;
+                       }
+                       builtInType_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_boolean:
+               {
+                       AST tmp3_AST = null;
+                       tmp3_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp3_AST);
+                       match(LITERAL_boolean);
+                       if ( inputState.guessing==0 ) {
+                               t=Type.BOOLEAN;
+                       }
+                       builtInType_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_byte:
+               {
+                       AST tmp4_AST = null;
+                       tmp4_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp4_AST);
+                       match(LITERAL_byte);
+                       if ( inputState.guessing==0 ) {
+                               t=Type.BYTE;
+                       }
+                       builtInType_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_char:
+               {
+                       AST tmp5_AST = null;
+                       tmp5_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp5_AST);
+                       match(LITERAL_char);
+                       if ( inputState.guessing==0 ) {
+                               t=Type.CHAR;
+                       }
+                       builtInType_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_short:
+               {
+                       AST tmp6_AST = null;
+                       tmp6_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp6_AST);
+                       match(LITERAL_short);
+                       if ( inputState.guessing==0 ) {
+                               t=Type.SHORT;
+                       }
+                       builtInType_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_int:
+               {
+                       AST tmp7_AST = null;
+                       tmp7_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp7_AST);
+                       match(LITERAL_int);
+                       if ( inputState.guessing==0 ) {
+                               t=Type.INTEGER;
+                       }
+                       builtInType_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_float:
+               {
+                       AST tmp8_AST = null;
+                       tmp8_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp8_AST);
+                       match(LITERAL_float);
+                       if ( inputState.guessing==0 ) {
+                               t=Type.FLOAT;
+                       }
+                       builtInType_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_long:
+               {
+                       AST tmp9_AST = null;
+                       tmp9_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp9_AST);
+                       match(LITERAL_long);
+                       if ( inputState.guessing==0 ) {
+                               t=Type.LONG;
+                       }
+                       builtInType_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_double:
+               {
+                       AST tmp10_AST = null;
+                       tmp10_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp10_AST);
+                       match(LITERAL_double);
+                       if ( inputState.guessing==0 ) {
+                               t=Type.DOUBLE;
+                       }
+                       builtInType_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_String:
+               {
+                       AST tmp11_AST = null;
+                       tmp11_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp11_AST);
+                       match(LITERAL_String);
+                       if ( inputState.guessing==0 ) {
+                               t=Type.STRING;
+                       }
+                       builtInType_AST = (AST)currentAST.root;
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltException(LT(1), getFilename());
+               }
+               }
+               returnAST = builtInType_AST;
+               return t;
+       }
+       
+       public final Type  type() throws RecognitionException, TokenStreamException {
+               Type t;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST type_AST = null;
+               
+               t=builtInType();
+               astFactory.addASTChild(currentAST, returnAST);
+               type_AST = (AST)currentAST.root;
+               returnAST = type_AST;
+               return t;
+       }
+       
+       public final String  identifier() throws RecognitionException, TokenStreamException {
+               String s = null;;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST identifier_AST = null;
+               Token  i = null;
+               AST i_AST = null;
+               Token  i2 = null;
+               AST i2_AST = null;
+               
+               i = LT(1);
+               i_AST = astFactory.create(i);
+               astFactory.addASTChild(currentAST, i_AST);
+               match(IDENT);
+               if ( inputState.guessing==0 ) {
+                       s=i.getText();
+               }
+               {
+               _loop8:
+               do {
+                       if ((LA(1)==DOT)) {
+                               AST tmp12_AST = null;
+                               tmp12_AST = astFactory.create(LT(1));
+                               astFactory.makeASTRoot(currentAST, tmp12_AST);
+                               match(DOT);
+                               i2 = LT(1);
+                               i2_AST = astFactory.create(i2);
+                               astFactory.addASTChild(currentAST, i2_AST);
+                               match(IDENT);
+                               if ( inputState.guessing==0 ) {
+                                       s+="."+i2.getText();
+                               }
+                       }
+                       else {
+                               break _loop8;
+                       }
+                       
+               } while (true);
+               }
+               identifier_AST = (AST)currentAST.root;
+               returnAST = identifier_AST;
+               return s;
+       }
+       
+       public final Expression  expression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST expression_AST = null;
+               
+               e=conditionalExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               match(Token.EOF_TYPE);
+               expression_AST = (AST)currentAST.root;
+               returnAST = expression_AST;
+               return e;
+       }
+       
+       public final Expression  conditionalExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST conditionalExpression_AST = null;
+               Expression a,b,c;
+               
+               e=logicalOrExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               switch ( LA(1)) {
+               case QUESTION:
+               {
+                       AST tmp14_AST = null;
+                       tmp14_AST = astFactory.create(LT(1));
+                       astFactory.makeASTRoot(currentAST, tmp14_AST);
+                       match(QUESTION);
+                       b=conditionalExpression();
+                       astFactory.addASTChild(currentAST, returnAST);
+                       match(COLON);
+                       c=conditionalExpression();
+                       astFactory.addASTChild(currentAST, returnAST);
+                       if ( inputState.guessing==0 ) {
+                               e=new ConditionalExpression(e,b,c);
+                       }
+                       break;
+               }
+               case EOF:
+               case COLON:
+               case RPAREN:
+               {
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltException(LT(1), getFilename());
+               }
+               }
+               }
+               conditionalExpression_AST = (AST)currentAST.root;
+               returnAST = conditionalExpression_AST;
+               return e;
+       }
+       
+       public final Expression  logicalOrExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST logicalOrExpression_AST = null;
+               Expression a,b;
+               
+               e=logicalAndExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               _loop14:
+               do {
+                       if ((LA(1)==LOR)) {
+                               AST tmp16_AST = null;
+                               tmp16_AST = astFactory.create(LT(1));
+                               astFactory.makeASTRoot(currentAST, tmp16_AST);
+                               match(LOR);
+                               b=logicalAndExpression();
+                               astFactory.addASTChild(currentAST, returnAST);
+                               if ( inputState.guessing==0 ) {
+                                       e=new LogicalOrExpression(e,b);
+                               }
+                       }
+                       else {
+                               break _loop14;
+                       }
+                       
+               } while (true);
+               }
+               logicalOrExpression_AST = (AST)currentAST.root;
+               returnAST = logicalOrExpression_AST;
+               return e;
+       }
+       
+       public final Expression  logicalAndExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST logicalAndExpression_AST = null;
+               Expression a,b;
+               
+               e=inclusiveOrExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               _loop17:
+               do {
+                       if ((LA(1)==LAND)) {
+                               AST tmp17_AST = null;
+                               tmp17_AST = astFactory.create(LT(1));
+                               astFactory.makeASTRoot(currentAST, tmp17_AST);
+                               match(LAND);
+                               b=inclusiveOrExpression();
+                               astFactory.addASTChild(currentAST, returnAST);
+                               if ( inputState.guessing==0 ) {
+                                       e=new LogicalAndExpression(e,b);
+                               }
+                       }
+                       else {
+                               break _loop17;
+                       }
+                       
+               } while (true);
+               }
+               logicalAndExpression_AST = (AST)currentAST.root;
+               returnAST = logicalAndExpression_AST;
+               return e;
+       }
+       
+       public final Expression  inclusiveOrExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST inclusiveOrExpression_AST = null;
+               Expression a,b;
+               
+               e=exclusiveOrExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               _loop20:
+               do {
+                       if ((LA(1)==BOR)) {
+                               AST tmp18_AST = null;
+                               tmp18_AST = astFactory.create(LT(1));
+                               astFactory.makeASTRoot(currentAST, tmp18_AST);
+                               match(BOR);
+                               b=exclusiveOrExpression();
+                               astFactory.addASTChild(currentAST, returnAST);
+                               if ( inputState.guessing==0 ) {
+                                       e=new InclusiveOrExpression(e,b);
+                               }
+                       }
+                       else {
+                               break _loop20;
+                       }
+                       
+               } while (true);
+               }
+               inclusiveOrExpression_AST = (AST)currentAST.root;
+               returnAST = inclusiveOrExpression_AST;
+               return e;
+       }
+       
+       public final Expression  exclusiveOrExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST exclusiveOrExpression_AST = null;
+               Expression a,b;
+               
+               e=andExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               _loop23:
+               do {
+                       if ((LA(1)==BXOR)) {
+                               AST tmp19_AST = null;
+                               tmp19_AST = astFactory.create(LT(1));
+                               astFactory.makeASTRoot(currentAST, tmp19_AST);
+                               match(BXOR);
+                               b=andExpression();
+                               astFactory.addASTChild(currentAST, returnAST);
+                               if ( inputState.guessing==0 ) {
+                                       e=new ExclusiveOrExpression(e,b);
+                               }
+                       }
+                       else {
+                               break _loop23;
+                       }
+                       
+               } while (true);
+               }
+               exclusiveOrExpression_AST = (AST)currentAST.root;
+               returnAST = exclusiveOrExpression_AST;
+               return e;
+       }
+       
+       public final Expression  andExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST andExpression_AST = null;
+               Expression a,b;
+               
+               e=equalityExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               _loop26:
+               do {
+                       if ((LA(1)==BAND)) {
+                               AST tmp20_AST = null;
+                               tmp20_AST = astFactory.create(LT(1));
+                               astFactory.makeASTRoot(currentAST, tmp20_AST);
+                               match(BAND);
+                               b=equalityExpression();
+                               astFactory.addASTChild(currentAST, returnAST);
+                               if ( inputState.guessing==0 ) {
+                                       e=new AndExpression(e,b);
+                               }
+                       }
+                       else {
+                               break _loop26;
+                       }
+                       
+               } while (true);
+               }
+               andExpression_AST = (AST)currentAST.root;
+               returnAST = andExpression_AST;
+               return e;
+       }
+       
+       public final Expression  equalityExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST equalityExpression_AST = null;
+               Expression a,b;
+               
+               e=relationalExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               _loop30:
+               do {
+                       if ((LA(1)==NOT_EQUAL||LA(1)==EQUAL)) {
+                               {
+                               switch ( LA(1)) {
+                               case NOT_EQUAL:
+                               {
+                                       AST tmp21_AST = null;
+                                       tmp21_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp21_AST);
+                                       match(NOT_EQUAL);
+                                       a=relationalExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new NotEqualExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               case EQUAL:
+                               {
+                                       AST tmp22_AST = null;
+                                       tmp22_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp22_AST);
+                                       match(EQUAL);
+                                       a=relationalExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new EqualExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               default:
+                               {
+                                       throw new NoViableAltException(LT(1), getFilename());
+                               }
+                               }
+                               }
+                       }
+                       else {
+                               break _loop30;
+                       }
+                       
+               } while (true);
+               }
+               equalityExpression_AST = (AST)currentAST.root;
+               returnAST = equalityExpression_AST;
+               return e;
+       }
+       
+       public final Expression  relationalExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST relationalExpression_AST = null;
+               Expression a,b;
+               
+               e=shiftExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               {
+               _loop35:
+               do {
+                       if (((LA(1) >= LT && LA(1) <= GE))) {
+                               {
+                               switch ( LA(1)) {
+                               case LT:
+                               {
+                                       AST tmp23_AST = null;
+                                       tmp23_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp23_AST);
+                                       match(LT);
+                                       a=shiftExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new LessThanExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               case GT:
+                               {
+                                       AST tmp24_AST = null;
+                                       tmp24_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp24_AST);
+                                       match(GT);
+                                       a=shiftExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new GreaterThanExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               case LE:
+                               {
+                                       AST tmp25_AST = null;
+                                       tmp25_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp25_AST);
+                                       match(LE);
+                                       a=shiftExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new LessThanOrEqualExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               case GE:
+                               {
+                                       AST tmp26_AST = null;
+                                       tmp26_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp26_AST);
+                                       match(GE);
+                                       a=shiftExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new GreaterThanOrEqualExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               default:
+                               {
+                                       throw new NoViableAltException(LT(1), getFilename());
+                               }
+                               }
+                               }
+                       }
+                       else {
+                               break _loop35;
+                       }
+                       
+               } while (true);
+               }
+               }
+               relationalExpression_AST = (AST)currentAST.root;
+               returnAST = relationalExpression_AST;
+               return e;
+       }
+       
+       public final Expression  shiftExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST shiftExpression_AST = null;
+               Expression a,b;
+               
+               e=additiveExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               _loop39:
+               do {
+                       if (((LA(1) >= SL && LA(1) <= BSR))) {
+                               {
+                               switch ( LA(1)) {
+                               case SL:
+                               {
+                                       AST tmp27_AST = null;
+                                       tmp27_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp27_AST);
+                                       match(SL);
+                                       a=additiveExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new ShiftLeftExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               case SR:
+                               {
+                                       AST tmp28_AST = null;
+                                       tmp28_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp28_AST);
+                                       match(SR);
+                                       a=additiveExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new ShiftRightExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               case BSR:
+                               {
+                                       AST tmp29_AST = null;
+                                       tmp29_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp29_AST);
+                                       match(BSR);
+                                       a=additiveExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new BitShiftRightExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               default:
+                               {
+                                       throw new NoViableAltException(LT(1), getFilename());
+                               }
+                               }
+                               }
+                       }
+                       else {
+                               break _loop39;
+                       }
+                       
+               } while (true);
+               }
+               shiftExpression_AST = (AST)currentAST.root;
+               returnAST = shiftExpression_AST;
+               return e;
+       }
+       
+       public final Expression  additiveExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST additiveExpression_AST = null;
+               Expression a,b;
+               
+               e=multiplicativeExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               _loop43:
+               do {
+                       if ((LA(1)==PLUS||LA(1)==MINUS)) {
+                               {
+                               switch ( LA(1)) {
+                               case PLUS:
+                               {
+                                       AST tmp30_AST = null;
+                                       tmp30_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp30_AST);
+                                       match(PLUS);
+                                       a=multiplicativeExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new AdditionExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               case MINUS:
+                               {
+                                       AST tmp31_AST = null;
+                                       tmp31_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp31_AST);
+                                       match(MINUS);
+                                       a=multiplicativeExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new SubtractionExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               default:
+                               {
+                                       throw new NoViableAltException(LT(1), getFilename());
+                               }
+                               }
+                               }
+                       }
+                       else {
+                               break _loop43;
+                       }
+                       
+               } while (true);
+               }
+               additiveExpression_AST = (AST)currentAST.root;
+               returnAST = additiveExpression_AST;
+               return e;
+       }
+       
+       public final Expression  multiplicativeExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST multiplicativeExpression_AST = null;
+               Expression a,b;
+               
+               e=unaryExpression();
+               astFactory.addASTChild(currentAST, returnAST);
+               {
+               _loop47:
+               do {
+                       if (((LA(1) >= STAR && LA(1) <= MOD))) {
+                               {
+                               switch ( LA(1)) {
+                               case STAR:
+                               {
+                                       AST tmp32_AST = null;
+                                       tmp32_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp32_AST);
+                                       match(STAR);
+                                       a=unaryExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new MultiplicationExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               case DIV:
+                               {
+                                       AST tmp33_AST = null;
+                                       tmp33_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp33_AST);
+                                       match(DIV);
+                                       a=unaryExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new DivisionExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               case MOD:
+                               {
+                                       AST tmp34_AST = null;
+                                       tmp34_AST = astFactory.create(LT(1));
+                                       astFactory.makeASTRoot(currentAST, tmp34_AST);
+                                       match(MOD);
+                                       a=unaryExpression();
+                                       astFactory.addASTChild(currentAST, returnAST);
+                                       if ( inputState.guessing==0 ) {
+                                               e=new ModuloExpression(e,a);
+                                       }
+                                       break;
+                               }
+                               default:
+                               {
+                                       throw new NoViableAltException(LT(1), getFilename());
+                               }
+                               }
+                               }
+                       }
+                       else {
+                               break _loop47;
+                       }
+                       
+               } while (true);
+               }
+               multiplicativeExpression_AST = (AST)currentAST.root;
+               returnAST = multiplicativeExpression_AST;
+               return e;
+       }
+       
+       public final Expression  unaryExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST unaryExpression_AST = null;
+               Expression a,b;
+               
+               switch ( LA(1)) {
+               case MINUS:
+               {
+                       AST tmp35_AST = null;
+                       tmp35_AST = astFactory.create(LT(1));
+                       astFactory.makeASTRoot(currentAST, tmp35_AST);
+                       match(MINUS);
+                       if ( inputState.guessing==0 ) {
+                               tmp35_AST.setType(UNARY_MINUS);
+                       }
+                       a=unaryExpression();
+                       astFactory.addASTChild(currentAST, returnAST);
+                       if ( inputState.guessing==0 ) {
+                               e=new NegateExpression(a);
+                       }
+                       unaryExpression_AST = (AST)currentAST.root;
+                       break;
+               }
+               case PLUS:
+               {
+                       AST tmp36_AST = null;
+                       tmp36_AST = astFactory.create(LT(1));
+                       astFactory.makeASTRoot(currentAST, tmp36_AST);
+                       match(PLUS);
+                       if ( inputState.guessing==0 ) {
+                               tmp36_AST.setType(UNARY_PLUS);
+                       }
+                       e=unaryExpression();
+                       astFactory.addASTChild(currentAST, returnAST);
+                       unaryExpression_AST = (AST)currentAST.root;
+                       break;
+               }
+               case IDENT:
+               case BNOT:
+               case LNOT:
+               case LPAREN:
+               case LITERAL_true:
+               case LITERAL_false:
+               case LITERAL_null:
+               case NUM_INT:
+               case CHAR_LITERAL:
+               case STRING_LITERAL:
+               case NUM_FLOAT:
+               case NUM_LONG:
+               case NUM_DOUBLE:
+               {
+                       e=unaryExpressionNotPlusMinus();
+                       astFactory.addASTChild(currentAST, returnAST);
+                       unaryExpression_AST = (AST)currentAST.root;
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltException(LT(1), getFilename());
+               }
+               }
+               returnAST = unaryExpression_AST;
+               return e;
+       }
+       
+       public final Expression  unaryExpressionNotPlusMinus() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST unaryExpressionNotPlusMinus_AST = null;
+               Token  lpb = null;
+               AST lpb_AST = null;
+               Expression a; Type t;
+               
+               switch ( LA(1)) {
+               case BNOT:
+               {
+                       AST tmp37_AST = null;
+                       tmp37_AST = astFactory.create(LT(1));
+                       astFactory.makeASTRoot(currentAST, tmp37_AST);
+                       match(BNOT);
+                       a=unaryExpression();
+                       astFactory.addASTChild(currentAST, returnAST);
+                       if ( inputState.guessing==0 ) {
+                               e=new NotExpression(a);
+                       }
+                       unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LNOT:
+               {
+                       AST tmp38_AST = null;
+                       tmp38_AST = astFactory.create(LT(1));
+                       astFactory.makeASTRoot(currentAST, tmp38_AST);
+                       match(LNOT);
+                       a=unaryExpression();
+                       astFactory.addASTChild(currentAST, returnAST);
+                       if ( inputState.guessing==0 ) {
+                               e=new LogicalNotExpression(a);
+                       }
+                       unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
+                       break;
+               }
+               default:
+                       boolean synPredMatched51 = false;
+                       if (((LA(1)==LPAREN) && ((LA(2) >= LITERAL_void && LA(2) <= LITERAL_String)))) {
+                               int _m51 = mark();
+                               synPredMatched51 = true;
+                               inputState.guessing++;
+                               try {
+                                       {
+                                       match(LPAREN);
+                                       builtInTypeSpec(true);
+                                       match(RPAREN);
+                                       }
+                               }
+                               catch (RecognitionException pe) {
+                                       synPredMatched51 = false;
+                               }
+                               rewind(_m51);
+inputState.guessing--;
+                       }
+                       if ( synPredMatched51 ) {
+                               lpb = LT(1);
+                               lpb_AST = astFactory.create(lpb);
+                               astFactory.makeASTRoot(currentAST, lpb_AST);
+                               match(LPAREN);
+                               if ( inputState.guessing==0 ) {
+                                       lpb_AST.setType(TYPECAST);
+                               }
+                               t=builtInTypeSpec(true);
+                               astFactory.addASTChild(currentAST, returnAST);
+                               match(RPAREN);
+                               a=unaryExpression();
+                               astFactory.addASTChild(currentAST, returnAST);
+                               if ( inputState.guessing==0 ) {
+                                       e=new TypeCastExpression(t,a);
+                               }
+                               unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
+                       }
+                       else if ((_tokenSet_0.member(LA(1))) && (_tokenSet_1.member(LA(2)))) {
+                               e=primaryExpression();
+                               astFactory.addASTChild(currentAST, returnAST);
+                               unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
+                       }
+               else {
+                       throw new NoViableAltException(LT(1), getFilename());
+               }
+               }
+               returnAST = unaryExpressionNotPlusMinus_AST;
+               return e;
+       }
+       
+       public final Expression  primaryExpression() throws RecognitionException, TokenStreamException {
+               Expression e = null; String i = null;;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST primaryExpression_AST = null;
+               
+               switch ( LA(1)) {
+               case NUM_INT:
+               case CHAR_LITERAL:
+               case STRING_LITERAL:
+               case NUM_FLOAT:
+               case NUM_LONG:
+               case NUM_DOUBLE:
+               {
+                       e=constant();
+                       astFactory.addASTChild(currentAST, returnAST);
+                       primaryExpression_AST = (AST)currentAST.root;
+                       break;
+               }
+               case IDENT:
+               {
+                       i=identifier();
+                       astFactory.addASTChild(currentAST, returnAST);
+                       if ( inputState.guessing==0 ) {
+                               e=new IdentifierExpression(i);
+                       }
+                       primaryExpression_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_true:
+               {
+                       AST tmp40_AST = null;
+                       tmp40_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp40_AST);
+                       match(LITERAL_true);
+                       if ( inputState.guessing==0 ) {
+                               e=new ConstantBoolean(true);
+                       }
+                       primaryExpression_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_false:
+               {
+                       AST tmp41_AST = null;
+                       tmp41_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp41_AST);
+                       match(LITERAL_false);
+                       if ( inputState.guessing==0 ) {
+                               e=new ConstantBoolean(false);
+                       }
+                       primaryExpression_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LITERAL_null:
+               {
+                       AST tmp42_AST = null;
+                       tmp42_AST = astFactory.create(LT(1));
+                       astFactory.addASTChild(currentAST, tmp42_AST);
+                       match(LITERAL_null);
+                       if ( inputState.guessing==0 ) {
+                               e=new ConstantNull();
+                       }
+                       primaryExpression_AST = (AST)currentAST.root;
+                       break;
+               }
+               case LPAREN:
+               {
+                       match(LPAREN);
+                       e=conditionalExpression();
+                       astFactory.addASTChild(currentAST, returnAST);
+                       match(RPAREN);
+                       primaryExpression_AST = (AST)currentAST.root;
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltException(LT(1), getFilename());
+               }
+               }
+               returnAST = primaryExpression_AST;
+               return e;
+       }
+       
+       public final Expression  constant() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST constant_AST = null;
+               Token  l1 = null;
+               AST l1_AST = null;
+               Token  l2 = null;
+               AST l2_AST = null;
+               Token  l3 = null;
+               AST l3_AST = null;
+               Token  l4 = null;
+               AST l4_AST = null;
+               Token  l5 = null;
+               AST l5_AST = null;
+               Token  l6 = null;
+               AST l6_AST = null;
+               
+               switch ( LA(1)) {
+               case NUM_INT:
+               {
+                       l1 = LT(1);
+                       l1_AST = astFactory.create(l1);
+                       astFactory.addASTChild(currentAST, l1_AST);
+                       match(NUM_INT);
+                       if ( inputState.guessing==0 ) {
+                               e=new ConstantInteger(l1.getText());
+                       }
+                       constant_AST = (AST)currentAST.root;
+                       break;
+               }
+               case CHAR_LITERAL:
+               {
+                       l2 = LT(1);
+                       l2_AST = astFactory.create(l2);
+                       astFactory.addASTChild(currentAST, l2_AST);
+                       match(CHAR_LITERAL);
+                       if ( inputState.guessing==0 ) {
+                               e=new ConstantChar(l2.getText());
+                       }
+                       constant_AST = (AST)currentAST.root;
+                       break;
+               }
+               case STRING_LITERAL:
+               {
+                       l3 = LT(1);
+                       l3_AST = astFactory.create(l3);
+                       astFactory.addASTChild(currentAST, l3_AST);
+                       match(STRING_LITERAL);
+                       if ( inputState.guessing==0 ) {
+                               e=new ConstantString(l3.getText().substring(1, l3.getText().length()-1));
+                       }
+                       constant_AST = (AST)currentAST.root;
+                       break;
+               }
+               case NUM_FLOAT:
+               {
+                       l4 = LT(1);
+                       l4_AST = astFactory.create(l4);
+                       astFactory.addASTChild(currentAST, l4_AST);
+                       match(NUM_FLOAT);
+                       if ( inputState.guessing==0 ) {
+                               e=new ConstantFloat(l4.getText());
+                       }
+                       constant_AST = (AST)currentAST.root;
+                       break;
+               }
+               case NUM_LONG:
+               {
+                       l5 = LT(1);
+                       l5_AST = astFactory.create(l5);
+                       astFactory.addASTChild(currentAST, l5_AST);
+                       match(NUM_LONG);
+                       if ( inputState.guessing==0 ) {
+                               e=new ConstantLong(l5.getText());
+                       }
+                       constant_AST = (AST)currentAST.root;
+                       break;
+               }
+               case NUM_DOUBLE:
+               {
+                       l6 = LT(1);
+                       l6_AST = astFactory.create(l6);
+                       astFactory.addASTChild(currentAST, l6_AST);
+                       match(NUM_DOUBLE);
+                       if ( inputState.guessing==0 ) {
+                               e=new ConstantDouble(l6.getText());
+                       }
+                       constant_AST = (AST)currentAST.root;
+                       break;
+               }
+               default:
+               {
+                       throw new NoViableAltException(LT(1), getFilename());
+               }
+               }
+               returnAST = constant_AST;
+               return e;
+       }
+       
+/** Match a, a.b.c refs
+ */
+       public final Expression  identPrimary() throws RecognitionException, TokenStreamException {
+               Expression e = null;
+               
+               returnAST = null;
+               ASTPair currentAST = new ASTPair();
+               AST identPrimary_AST = null;
+               
+               AST tmp45_AST = null;
+               tmp45_AST = astFactory.create(LT(1));
+               astFactory.addASTChild(currentAST, tmp45_AST);
+               match(IDENT);
+               {
+               _loop55:
+               do {
+                       if ((LA(1)==DOT)) {
+                               AST tmp46_AST = null;
+                               tmp46_AST = astFactory.create(LT(1));
+                               astFactory.makeASTRoot(currentAST, tmp46_AST);
+                               match(DOT);
+                               AST tmp47_AST = null;
+                               tmp47_AST = astFactory.create(LT(1));
+                               astFactory.addASTChild(currentAST, tmp47_AST);
+                               match(IDENT);
+                       }
+                       else {
+                               break _loop55;
+                       }
+                       
+               } while (true);
+               }
+               identPrimary_AST = (AST)currentAST.root;
+               returnAST = identPrimary_AST;
+               return e;
+       }
+       
+       
+       public static final String[] _tokenNames = {
+               "<0>",
+               "EOF",
+               "<2>",
+               "NULL_TREE_LOOKAHEAD",
+               "BLOCK",
+               "MODIFIERS",
+               "OBJBLOCK",
+               "SLIST",
+               "CTOR_DEF",
+               "METHOD_DEF",
+               "VARIABLE_DEF",
+               "INSTANCE_INIT",
+               "STATIC_INIT",
+               "TYPE",
+               "CLASS_DEF",
+               "INTERFACE_DEF",
+               "PACKAGE_DEF",
+               "ARRAY_DECLARATOR",
+               "EXTENDS_CLAUSE",
+               "IMPLEMENTS_CLAUSE",
+               "PARAMETERS",
+               "PARAMETER_DEF",
+               "LABELED_STAT",
+               "TYPECAST",
+               "INDEX_OP",
+               "POST_INC",
+               "POST_DEC",
+               "METHOD_CALL",
+               "EXPR",
+               "ARRAY_INIT",
+               "IMPORT",
+               "UNARY_MINUS",
+               "UNARY_PLUS",
+               "CASE_GROUP",
+               "ELIST",
+               "FOR_INIT",
+               "FOR_CONDITION",
+               "FOR_ITERATOR",
+               "EMPTY_STAT",
+               "\"final\"",
+               "\"abstract\"",
+               "\"strictfp\"",
+               "SUPER_CTOR_CALL",
+               "CTOR_CALL",
+               "LBRACK",
+               "RBRACK",
+               "\"void\"",
+               "\"boolean\"",
+               "\"byte\"",
+               "\"char\"",
+               "\"short\"",
+               "\"int\"",
+               "\"float\"",
+               "\"long\"",
+               "\"double\"",
+               "\"String\"",
+               "IDENT",
+               "DOT",
+               "QUESTION",
+               "COLON",
+               "LOR",
+               "LAND",
+               "BOR",
+               "BXOR",
+               "BAND",
+               "NOT_EQUAL",
+               "EQUAL",
+               "LT",
+               "GT",
+               "LE",
+               "GE",
+               "SL",
+               "SR",
+               "BSR",
+               "PLUS",
+               "MINUS",
+               "STAR",
+               "DIV",
+               "MOD",
+               "BNOT",
+               "LNOT",
+               "LPAREN",
+               "RPAREN",
+               "\"true\"",
+               "\"false\"",
+               "\"null\"",
+               "NUM_INT",
+               "CHAR_LITERAL",
+               "STRING_LITERAL",
+               "NUM_FLOAT",
+               "NUM_LONG",
+               "NUM_DOUBLE",
+               "LCURLY",
+               "RCURLY",
+               "COMMA",
+               "ASSIGN",
+               "DIV_ASSIGN",
+               "PLUS_ASSIGN",
+               "INC",
+               "MINUS_ASSIGN",
+               "DEC",
+               "STAR_ASSIGN",
+               "MOD_ASSIGN",
+               "SR_ASSIGN",
+               "BSR_ASSIGN",
+               "SL_ASSIGN",
+               "BXOR_ASSIGN",
+               "BOR_ASSIGN",
+               "BAND_ASSIGN",
+               "SEMI",
+               "WS",
+               "SL_COMMIT",
+               "ML_COMMENT",
+               "ESC",
+               "HEX_DIGIT",
+               "VOCAB",
+               "EXPONENT",
+               "FLOAT_SUFFIX"
+       };
+       
+       protected void buildTokenTypeASTClassMap() {
+               tokenTypeToASTClassMap=null;
+       };
+       
+       private static final long[] mk_tokenSet_0() {
+               long[] data = { 72057594037927936L, 268042240L, 0L, 0L};
+               return data;
+       }
+       public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
+       private static final long[] mk_tokenSet_1() {
+               long[] data = { -72057594037927934L, 268435455L, 0L, 0L};
+               return data;
+       }
+       public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
+       
+       }
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap
new file mode 100644 (file)
index 0000000..667caad
--- /dev/null
@@ -0,0 +1,987 @@
+SMAP
+JavaRecognizer.java
+G
+*S G
+*F
++ 0 java-expression.g
+java-expression.g
+*L
+19:3
+46:56
+46:57
+46:58
+46:59
+46:61
+46:62
+46:63
+46:101
+46:102
+46:103
+47:64
+47:65
+47:67
+47:68
+47:69
+47:70
+47:71
+47:72
+47:73
+47:74
+47:75
+47:76
+47:77
+47:78
+47:80
+47:81
+47:82
+47:83
+47:84
+47:86
+47:87
+48:88
+48:89
+48:95
+48:97
+48:98
+49:91
+49:100
+50:92
+51:93
+57:242
+57:243
+57:245
+57:246
+57:247
+57:252
+57:253
+57:254
+58:249
+58:250
+58:251
+62:105
+62:106
+62:108
+62:109
+62:110
+62:112
+62:233
+62:234
+62:235
+62:236
+62:237
+62:238
+62:239
+62:240
+63:113
+63:114
+63:115
+63:116
+63:117
+63:118
+63:119
+63:120
+64:125
+64:126
+64:127
+64:128
+64:129
+64:130
+64:131
+64:132
+65:137
+65:138
+65:139
+65:140
+65:141
+65:142
+65:143
+65:144
+66:122
+66:149
+66:150
+66:151
+66:152
+66:153
+66:154
+66:155
+66:156
+67:134
+67:161
+67:162
+67:163
+67:164
+67:165
+67:166
+67:167
+67:168
+68:146
+68:173
+68:174
+68:175
+68:176
+68:177
+68:178
+68:179
+68:180
+69:158
+69:185
+69:186
+69:187
+69:188
+69:189
+69:190
+69:191
+69:192
+70:170
+70:197
+70:198
+70:199
+70:200
+70:201
+70:202
+70:203
+70:204
+71:182
+71:209
+71:210
+71:211
+71:212
+71:213
+71:214
+71:215
+71:216
+72:194
+72:221
+72:222
+72:223
+72:224
+72:225
+72:226
+72:227
+72:228
+73:206
+74:218
+75:230
+77:256
+77:257
+77:259
+77:260
+77:261
+77:297
+77:298
+77:299
+78:262
+78:263
+78:264
+78:265
+78:267
+78:268
+78:269
+78:270
+78:271
+78:272
+78:274
+78:275
+78:276
+78:277
+78:278
+78:279
+78:280
+78:281
+78:282
+78:283
+78:284
+78:285
+78:286
+78:287
+78:289
+78:290
+78:291
+78:292
+78:294
+78:295
+78:296
+81:301
+81:302
+81:304
+81:305
+81:306
+81:312
+81:313
+81:314
+82:308
+82:309
+82:310
+84:311
+86:316
+86:317
+86:319
+86:320
+86:321
+86:322
+86:357
+86:358
+86:359
+87:324
+87:325
+88:327
+88:328
+88:329
+88:330
+88:331
+88:332
+88:333
+88:334
+88:335
+88:336
+88:337
+88:338
+88:339
+88:340
+88:350
+88:351
+88:352
+88:353
+88:354
+89:356
+93:361
+93:362
+93:364
+93:365
+93:366
+93:367
+93:392
+93:393
+93:394
+94:369
+94:370
+94:371
+94:372
+94:373
+94:374
+94:375
+94:376
+94:377
+94:378
+94:379
+94:380
+94:381
+94:382
+94:384
+94:385
+94:386
+94:387
+94:389
+94:390
+94:391
+99:396
+99:397
+99:399
+99:400
+99:401
+99:402
+99:427
+99:428
+99:429
+100:404
+100:405
+100:406
+100:407
+100:408
+100:409
+100:410
+100:411
+100:412
+100:413
+100:414
+100:415
+100:416
+100:417
+100:419
+100:420
+100:421
+100:422
+100:424
+100:425
+100:426
+105:431
+105:432
+105:434
+105:435
+105:436
+105:437
+105:462
+105:463
+105:464
+106:439
+106:440
+106:441
+106:442
+106:443
+106:444
+106:445
+106:446
+106:447
+106:448
+106:449
+106:450
+106:451
+106:452
+106:454
+106:455
+106:456
+106:457
+106:459
+106:460
+106:461
+111:466
+111:467
+111:469
+111:470
+111:471
+111:472
+111:497
+111:498
+111:499
+112:474
+112:475
+112:476
+112:477
+112:478
+112:479
+112:480
+112:481
+112:482
+112:483
+112:484
+112:485
+112:486
+112:487
+112:489
+112:490
+112:491
+112:492
+112:494
+112:495
+112:496
+117:501
+117:502
+117:504
+117:505
+117:506
+117:507
+117:532
+117:533
+117:534
+118:509
+118:510
+118:511
+118:512
+118:513
+118:514
+118:515
+118:516
+118:517
+118:518
+118:519
+118:520
+118:521
+118:522
+118:524
+118:525
+118:526
+118:527
+118:529
+118:530
+118:531
+123:536
+123:537
+123:539
+123:540
+123:541
+123:542
+123:592
+123:593
+123:594
+124:544
+124:545
+124:546
+124:547
+124:548
+124:549
+124:551
+124:552
+124:553
+124:554
+124:555
+124:556
+124:557
+124:558
+124:559
+124:560
+124:561
+124:565
+124:566
+124:567
+124:568
+124:569
+124:570
+124:571
+124:572
+124:573
+124:574
+124:578
+124:579
+124:580
+124:581
+124:582
+124:584
+124:585
+124:586
+124:587
+124:589
+124:590
+124:591
+129:596
+129:597
+129:599
+129:600
+129:601
+129:602
+129:680
+129:681
+129:682
+130:604
+130:605
+131:607
+131:608
+131:609
+131:610
+131:612
+131:613
+131:614
+131:615
+131:616
+131:617
+131:618
+131:619
+131:620
+131:621
+131:622
+131:665
+131:666
+131:667
+131:668
+131:669
+131:671
+131:672
+131:673
+131:674
+131:676
+131:677
+132:626
+132:627
+132:628
+132:629
+132:630
+132:631
+132:632
+132:633
+132:634
+132:635
+132:679
+133:639
+133:640
+133:641
+133:642
+133:643
+133:644
+133:645
+133:646
+133:647
+133:648
+134:652
+134:653
+134:654
+134:655
+134:656
+134:657
+134:658
+134:659
+134:660
+134:661
+143:684
+143:685
+143:687
+143:688
+143:689
+143:690
+143:753
+143:754
+143:755
+144:692
+144:693
+144:694
+144:695
+144:696
+144:697
+144:699
+144:700
+144:701
+144:702
+144:703
+144:704
+144:705
+144:706
+144:707
+144:708
+144:709
+144:713
+144:714
+144:715
+144:716
+144:717
+144:718
+144:719
+144:720
+144:721
+144:722
+144:726
+144:727
+144:728
+144:729
+144:730
+144:731
+144:732
+144:733
+144:734
+144:735
+144:739
+144:740
+144:741
+144:742
+144:743
+144:745
+144:746
+144:747
+144:748
+144:750
+144:751
+144:752
+149:757
+149:758
+149:760
+149:761
+149:762
+149:763
+149:813
+149:814
+149:815
+150:765
+150:766
+150:767
+150:768
+150:769
+150:770
+150:772
+150:773
+150:774
+150:775
+150:776
+150:777
+150:778
+150:779
+150:780
+150:781
+150:782
+150:786
+150:787
+150:788
+150:789
+150:790
+150:791
+150:792
+150:793
+150:794
+150:795
+150:799
+150:800
+150:801
+150:802
+150:803
+150:805
+150:806
+150:807
+150:808
+150:810
+150:811
+150:812
+155:817
+155:818
+155:820
+155:821
+155:822
+155:823
+155:886
+155:887
+155:888
+156:825
+156:826
+156:827
+156:828
+156:829
+156:830
+156:832
+156:833
+156:834
+156:835
+156:836
+156:837
+156:838
+156:839
+156:840
+156:841
+156:842
+156:846
+156:847
+156:848
+156:849
+156:850
+156:851
+156:852
+156:853
+156:854
+156:855
+156:859
+156:860
+156:861
+156:862
+156:863
+156:864
+156:865
+156:866
+156:867
+156:868
+156:872
+156:873
+156:874
+156:875
+156:876
+156:878
+156:879
+156:880
+156:881
+156:883
+156:884
+156:885
+160:890
+160:891
+160:893
+160:894
+160:895
+160:896
+160:898
+160:949
+160:950
+160:951
+160:952
+160:953
+160:954
+160:955
+160:956
+161:899
+161:900
+161:901
+161:902
+161:903
+161:904
+161:905
+161:906
+161:908
+161:909
+161:910
+161:911
+162:916
+162:917
+162:918
+162:919
+162:920
+162:921
+162:922
+162:923
+162:925
+162:926
+162:927
+163:930
+163:931
+163:932
+163:933
+163:934
+163:935
+163:936
+163:937
+163:938
+163:939
+163:940
+163:941
+163:942
+163:943
+163:944
+163:945
+163:946
+164:913
+166:958
+166:959
+166:961
+166:962
+166:963
+166:966
+166:968
+166:997
+166:1033
+166:1038
+166:1039
+166:1040
+166:1041
+166:1042
+166:1043
+166:1044
+166:1045
+167:969
+167:970
+167:971
+167:972
+167:973
+167:974
+167:975
+167:976
+167:977
+167:978
+168:983
+168:984
+168:985
+168:986
+168:987
+168:988
+168:989
+168:990
+168:991
+168:992
+170:980
+171:994
+171:998
+171:999
+171:1000
+171:1001
+171:1002
+171:1003
+171:1005
+171:1006
+171:1007
+171:1009
+171:1010
+171:1011
+171:1012
+171:1013
+171:1014
+171:1015
+171:1016
+172:964
+172:965
+172:1017
+172:1018
+172:1019
+172:1020
+172:1021
+172:1022
+172:1024
+172:1025
+172:1026
+173:1027
+173:1028
+173:1029
+173:1030
+175:1034
+175:1035
+175:1036
+175:1037
+176:1032
+179:1047
+179:1048
+179:1050
+179:1051
+179:1052
+179:1054
+179:1122
+179:1123
+179:1124
+179:1125
+179:1126
+179:1127
+179:1128
+179:1129
+180:1055
+180:1056
+180:1057
+180:1058
+180:1059
+180:1060
+180:1061
+180:1062
+180:1063
+180:1064
+181:1067
+181:1068
+181:1069
+181:1070
+181:1071
+181:1072
+182:1077
+182:1078
+182:1079
+182:1080
+182:1081
+182:1082
+182:1083
+182:1084
+183:1089
+183:1090
+183:1091
+183:1092
+183:1093
+183:1094
+183:1095
+183:1096
+184:1074
+184:1101
+184:1102
+184:1103
+184:1104
+184:1105
+184:1106
+184:1107
+184:1108
+185:1086
+185:1113
+185:1114
+185:1115
+185:1116
+185:1117
+185:1118
+186:1098
+187:1110
+187:1119
+190:1232
+190:1234
+190:1235
+190:1237
+190:1238
+190:1239
+190:1265
+190:1266
+190:1267
+191:1233
+191:1241
+191:1242
+191:1243
+191:1244
+192:1245
+192:1246
+192:1247
+192:1257
+192:1258
+192:1259
+192:1260
+192:1262
+192:1263
+192:1264
+198:1248
+198:1249
+198:1250
+198:1251
+198:1252
+198:1253
+198:1254
+198:1255
+198:1256
+202:1131
+202:1132
+202:1134
+202:1135
+202:1136
+202:1150
+202:1223
+202:1224
+202:1225
+202:1226
+202:1227
+202:1228
+202:1229
+202:1230
+203:1137
+203:1138
+203:1151
+203:1152
+203:1153
+203:1154
+203:1155
+203:1156
+203:1157
+203:1158
+204:1139
+204:1140
+204:1163
+204:1164
+204:1165
+204:1166
+204:1167
+204:1168
+204:1169
+204:1170
+205:1141
+205:1142
+205:1175
+205:1176
+205:1177
+205:1178
+205:1179
+205:1180
+205:1181
+205:1182
+206:1143
+206:1144
+206:1160
+206:1187
+206:1188
+206:1189
+206:1190
+206:1191
+206:1192
+206:1193
+206:1194
+207:1145
+207:1146
+207:1172
+207:1199
+207:1200
+207:1201
+207:1202
+207:1203
+207:1204
+207:1205
+207:1206
+208:1147
+208:1148
+208:1184
+208:1211
+208:1212
+208:1213
+208:1214
+208:1215
+208:1216
+208:1217
+208:1218
+209:1196
+210:1208
+211:1220
+*E
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java
new file mode 100644 (file)
index 0000000..2962388
--- /dev/null
@@ -0,0 +1,122 @@
+// $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaLexer.java"$
+   package gnu.classpath.tools.gjdoc.expr; 
+
+public interface JavaTokenTypes {
+       int EOF = 1;
+       int NULL_TREE_LOOKAHEAD = 3;
+       int BLOCK = 4;
+       int MODIFIERS = 5;
+       int OBJBLOCK = 6;
+       int SLIST = 7;
+       int CTOR_DEF = 8;
+       int METHOD_DEF = 9;
+       int VARIABLE_DEF = 10;
+       int INSTANCE_INIT = 11;
+       int STATIC_INIT = 12;
+       int TYPE = 13;
+       int CLASS_DEF = 14;
+       int INTERFACE_DEF = 15;
+       int PACKAGE_DEF = 16;
+       int ARRAY_DECLARATOR = 17;
+       int EXTENDS_CLAUSE = 18;
+       int IMPLEMENTS_CLAUSE = 19;
+       int PARAMETERS = 20;
+       int PARAMETER_DEF = 21;
+       int LABELED_STAT = 22;
+       int TYPECAST = 23;
+       int INDEX_OP = 24;
+       int POST_INC = 25;
+       int POST_DEC = 26;
+       int METHOD_CALL = 27;
+       int EXPR = 28;
+       int ARRAY_INIT = 29;
+       int IMPORT = 30;
+       int UNARY_MINUS = 31;
+       int UNARY_PLUS = 32;
+       int CASE_GROUP = 33;
+       int ELIST = 34;
+       int FOR_INIT = 35;
+       int FOR_CONDITION = 36;
+       int FOR_ITERATOR = 37;
+       int EMPTY_STAT = 38;
+       int FINAL = 39;
+       int ABSTRACT = 40;
+       int STRICTFP = 41;
+       int SUPER_CTOR_CALL = 42;
+       int CTOR_CALL = 43;
+       int LBRACK = 44;
+       int RBRACK = 45;
+       int LITERAL_void = 46;
+       int LITERAL_boolean = 47;
+       int LITERAL_byte = 48;
+       int LITERAL_char = 49;
+       int LITERAL_short = 50;
+       int LITERAL_int = 51;
+       int LITERAL_float = 52;
+       int LITERAL_long = 53;
+       int LITERAL_double = 54;
+       int LITERAL_String = 55;
+       int IDENT = 56;
+       int DOT = 57;
+       int QUESTION = 58;
+       int COLON = 59;
+       int LOR = 60;
+       int LAND = 61;
+       int BOR = 62;
+       int BXOR = 63;
+       int BAND = 64;
+       int NOT_EQUAL = 65;
+       int EQUAL = 66;
+       int LT = 67;
+       int GT = 68;
+       int LE = 69;
+       int GE = 70;
+       int SL = 71;
+       int SR = 72;
+       int BSR = 73;
+       int PLUS = 74;
+       int MINUS = 75;
+       int STAR = 76;
+       int DIV = 77;
+       int MOD = 78;
+       int BNOT = 79;
+       int LNOT = 80;
+       int LPAREN = 81;
+       int RPAREN = 82;
+       int LITERAL_true = 83;
+       int LITERAL_false = 84;
+       int LITERAL_null = 85;
+       int NUM_INT = 86;
+       int CHAR_LITERAL = 87;
+       int STRING_LITERAL = 88;
+       int NUM_FLOAT = 89;
+       int NUM_LONG = 90;
+       int NUM_DOUBLE = 91;
+       int LCURLY = 92;
+       int RCURLY = 93;
+       int COMMA = 94;
+       int ASSIGN = 95;
+       int DIV_ASSIGN = 96;
+       int PLUS_ASSIGN = 97;
+       int INC = 98;
+       int MINUS_ASSIGN = 99;
+       int DEC = 100;
+       int STAR_ASSIGN = 101;
+       int MOD_ASSIGN = 102;
+       int SR_ASSIGN = 103;
+       int BSR_ASSIGN = 104;
+       int SL_ASSIGN = 105;
+       int BXOR_ASSIGN = 106;
+       int BOR_ASSIGN = 107;
+       int BAND_ASSIGN = 108;
+       int SEMI = 109;
+       int WS = 110;
+       int SL_COMMIT = 111;
+       int ML_COMMENT = 112;
+       int ESC = 113;
+       int HEX_DIGIT = 114;
+       int VOCAB = 115;
+       int EXPONENT = 116;
+       int FLOAT_SUFFIX = 117;
+}
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt
new file mode 100644 (file)
index 0000000..b9983e2
--- /dev/null
@@ -0,0 +1,116 @@
+// $ANTLR 2.7.7 (20080530): java-expression.g -> JavaTokenTypes.txt$
+Java    // output token vocab name
+BLOCK=4
+MODIFIERS=5
+OBJBLOCK=6
+SLIST=7
+CTOR_DEF=8
+METHOD_DEF=9
+VARIABLE_DEF=10
+INSTANCE_INIT=11
+STATIC_INIT=12
+TYPE=13
+CLASS_DEF=14
+INTERFACE_DEF=15
+PACKAGE_DEF=16
+ARRAY_DECLARATOR=17
+EXTENDS_CLAUSE=18
+IMPLEMENTS_CLAUSE=19
+PARAMETERS=20
+PARAMETER_DEF=21
+LABELED_STAT=22
+TYPECAST=23
+INDEX_OP=24
+POST_INC=25
+POST_DEC=26
+METHOD_CALL=27
+EXPR=28
+ARRAY_INIT=29
+IMPORT=30
+UNARY_MINUS=31
+UNARY_PLUS=32
+CASE_GROUP=33
+ELIST=34
+FOR_INIT=35
+FOR_CONDITION=36
+FOR_ITERATOR=37
+EMPTY_STAT=38
+FINAL="final"=39
+ABSTRACT="abstract"=40
+STRICTFP="strictfp"=41
+SUPER_CTOR_CALL=42
+CTOR_CALL=43
+LBRACK=44
+RBRACK=45
+LITERAL_void="void"=46
+LITERAL_boolean="boolean"=47
+LITERAL_byte="byte"=48
+LITERAL_char="char"=49
+LITERAL_short="short"=50
+LITERAL_int="int"=51
+LITERAL_float="float"=52
+LITERAL_long="long"=53
+LITERAL_double="double"=54
+LITERAL_String="String"=55
+IDENT=56
+DOT=57
+QUESTION=58
+COLON=59
+LOR=60
+LAND=61
+BOR=62
+BXOR=63
+BAND=64
+NOT_EQUAL=65
+EQUAL=66
+LT=67
+GT=68
+LE=69
+GE=70
+SL=71
+SR=72
+BSR=73
+PLUS=74
+MINUS=75
+STAR=76
+DIV=77
+MOD=78
+BNOT=79
+LNOT=80
+LPAREN=81
+RPAREN=82
+LITERAL_true="true"=83
+LITERAL_false="false"=84
+LITERAL_null="null"=85
+NUM_INT=86
+CHAR_LITERAL=87
+STRING_LITERAL=88
+NUM_FLOAT=89
+NUM_LONG=90
+NUM_DOUBLE=91
+LCURLY=92
+RCURLY=93
+COMMA=94
+ASSIGN=95
+DIV_ASSIGN=96
+PLUS_ASSIGN=97
+INC=98
+MINUS_ASSIGN=99
+DEC=100
+STAR_ASSIGN=101
+MOD_ASSIGN=102
+SR_ASSIGN=103
+BSR_ASSIGN=104
+SL_ASSIGN=105
+BXOR_ASSIGN=106
+BOR_ASSIGN=107
+BAND_ASSIGN=108
+SEMI=109
+WS=110
+SL_COMMIT=111
+ML_COMMENT=112
+ESC=113
+HEX_DIGIT=114
+VOCAB=115
+EXPONENT=116
+FLOAT_SUFFIX=117
index da7581167e0ec2fb82562f4a8a5c957fe8c4707f..e3dcea21b64fb2b3093ffdcfcf8be4c5b294a38a 100644 (file)
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.jar.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.jar.Main "$@"
index e3abc6ce6743fb6cffeef77e1ca68983738f9926..d515418159e16ea65dbc368d166ed29f93e9f34b 100644 (file)
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.jarsigner.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.jarsigner.Main "$@"
index 797721b955091a3a259d1cc0a464fa499175f93a..d6f3ab1e3b33122ca7c233c46fc6a34b9e30c16c 100644 (file)
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.javah.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.javah.Main "$@"
diff --git a/libjava/classpath/tools/gjdoc.in b/libjava/classpath/tools/gjdoc.in
new file mode 100644 (file)
index 0000000..1fb6ca6
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+## Copyright (C) 2006 Free Software Foundation, Inc.
+##
+## This file is a part of GNU Classpath.
+##
+## GNU Classpath is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or (at
+## your option) any later version.
+##
+## GNU Classpath is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with GNU Classpath; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
+## USA.
+##
+## Linking this library statically or dynamically with other modules is
+## making a combined work based on this library.  Thus, the terms and
+## conditions of the GNU General Public License cover the whole
+## combination.
+##
+## As a special exception, the copyright holders of this library give you
+## permission to link this library with independent modules to produce an
+## executable, regardless of the license terms of these independent
+## modules, and to copy and distribute the resulting executable under
+## terms of your choice, provided that you also meet, for each linked
+## independent module, the terms and conditions of the license of that
+## module.  An independent module is a module which is not derived from
+## or based on this library.  If you modify this library, you may extend
+## this exception to your version of the library, but you are not
+## obligated to do so.  If you do not wish to do so, delete this
+## exception statement from your version.
+##
+##
+## A simple shell script to launch the GNU Classpath javadoc tool.
+##
+
+prefix=@prefix@
+datarootdir=@datarootdir@
+tools_dir=@datadir@/@PACKAGE@
+tools_cp=${tools_dir}/tools.zip
+antlr_jar=@ANTLR_JAR@
+
+exec @JAVA@ -classpath "${tools_cp}:${antlr_jar}" gnu.classpath.tools.gjdoc.Main "$@"
index 59516efe8037ec513c9cb5a3d1107a11b910f871..3c886f89c5b36bc8526251ef7acafb626301a375 100644 (file)
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.keytool.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.keytool.Main "$@"
index 17d7cd7e006d3b89e31f2cab96730b1c2762f798..52d8f6926139997fde64c6d33a65d43806089c9c 100644 (file)
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.native2ascii.Native2ASCII "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.native2ascii.Native2ASCII "$@"
diff --git a/libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java b/libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java
new file mode 100644 (file)
index 0000000..0ec243d
--- /dev/null
@@ -0,0 +1,296 @@
+/* gnu.classpath.tools.FileSystemClassLoader\r
+   Copyright (C) 2004 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools;\r
+\r
+import java.io.File;\r
+import java.io.FileInputStream;\r
+import java.io.FileNotFoundException;\r
+import java.io.InputStream;\r
+import java.io.IOException;\r
+import java.io.StreamTokenizer;\r
+import java.io.StringReader;\r
+\r
+import java.net.MalformedURLException;\r
+import java.net.URL;\r
+\r
+import java.util.LinkedList;\r
+import java.util.List;\r
+import java.util.ArrayList;\r
+import java.util.StringTokenizer;\r
+\r
+import java.util.jar.JarEntry;\r
+import java.util.jar.JarFile;\r
+import java.util.jar.Manifest;\r
+import java.util.jar.Attributes;\r
+\r
+/**\r
+ *  A <code>ClassLoader</code> implementation which looks for classes\r
+ *  on the local filesystem given a standard search path.\r
+ */\r
+public class FileSystemClassLoader extends ClassLoader {\r
+\r
+   private File[] pathComponents;\r
+\r
+   /**\r
+    *  Initialize the class loader with a normal path string. The path\r
+    *  string should contain path components separated by {@link\r
+    *  File.pathSeparator}. Each path component should either denote a\r
+    *  directory or a .jar or .zip file.\r
+    */\r
+   public FileSystemClassLoader(String path)\r
+   {\r
+      List components = new ArrayList();\r
+      for (StringTokenizer st = new StringTokenizer(path, File.pathSeparator); st.hasMoreTokens(); ) {\r
+         File pathComponent = new File(st.nextToken());\r
+         components.add(pathComponent);\r
+         if (pathComponent.exists() && !pathComponent.isDirectory()) {\r
+            List subComponents = tryGetJarFileClassPathComponents(pathComponent);\r
+            if (null != subComponents) {\r
+               components.addAll(subComponents);\r
+            }\r
+         }\r
+      }\r
+      File[] componentArray = new File[components.size()];\r
+      this.pathComponents = (File[])components.toArray(componentArray);\r
+   }\r
+\r
+   /**\r
+    *  Initialize the class loader with an array of path\r
+    *  components. Each path component should either denote a\r
+    *  directory or a .jar or .zip file.\r
+    */\r
+   public FileSystemClassLoader(File[] pathComponents)\r
+   {\r
+      this.pathComponents = pathComponents;\r
+      for (int i = 0; i < pathComponents.length; ++i) {\r
+         if (!pathComponents[i].exists()) {\r
+            System.err.println("WARNING: Path component '" + pathComponents[i] + "' not found.");\r
+         }\r
+      }\r
+   }\r
+\r
+   public Class loadClass(String name)\r
+      throws ClassNotFoundException {\r
+\r
+      return super.loadClass(name);\r
+   }\r
+\r
+   public Class findClass(String name)\r
+      throws ClassNotFoundException {\r
+\r
+      byte[] b = loadClassData(name);\r
+      return defineClass(name, b, 0, b.length);\r
+   }\r
+\r
+   public URL findResource(String name)\r
+   {\r
+      StreamInfo streamInfo = getResourceStream(name);\r
+      if (null == streamInfo) {\r
+         return super.findResource(name);\r
+      }\r
+      else {\r
+         try {\r
+            return streamInfo.getURL();\r
+         }\r
+         catch (MalformedURLException e) {\r
+            System.err.println("WARNING: In FileSystemClassLoader: could not derive URL from file or jar entry: " + e.toString());\r
+            return null;\r
+         }\r
+      }\r
+   }\r
+\r
+   private byte[] readFromStream(InputStream in, long size) \r
+      throws IOException\r
+   {\r
+      byte[] result = new byte[(int)size];\r
+      int nread = 0;\r
+      int offset = 0;\r
+      while (offset < size && (nread = in.read(result, offset, (int)(size - offset))) >= 0) {\r
+         offset += nread;\r
+      }\r
+      in.close();\r
+      return result;\r
+   }\r
+\r
+   private byte[] readFromStream(StreamInfo streamInfo)\r
+      throws IOException\r
+   {\r
+      InputStream in = streamInfo.openStream();\r
+      long size = streamInfo.getSize();\r
+\r
+      byte[] result = new byte[(int)size];\r
+      int nread = 0;\r
+      int offset = 0;\r
+      while (offset < size && (nread = in.read(result, offset, (int)(size - offset))) >= 0) {\r
+         offset += nread;\r
+      }\r
+      in.close();\r
+      return result;\r
+   }\r
+\r
+   private static interface StreamInfo\r
+   {\r
+      public InputStream openStream()\r
+         throws IOException;\r
+      public long getSize();\r
+      public URL getURL()\r
+         throws MalformedURLException;\r
+   }\r
+\r
+   private static class FileStreamInfo\r
+      implements StreamInfo\r
+   {\r
+      File file;\r
+\r
+      FileStreamInfo(File file)\r
+      {\r
+         this.file = file;\r
+      }\r
+\r
+      public InputStream openStream()\r
+         throws IOException\r
+      {\r
+         return new FileInputStream(file);\r
+      }\r
+\r
+      public long getSize()\r
+      {\r
+         return file.length();\r
+      }\r
+\r
+      public URL getURL()\r
+         throws MalformedURLException\r
+      {\r
+         return file.toURL();\r
+      }\r
+   }\r
+\r
+   private static class JarStreamInfo\r
+      implements StreamInfo\r
+   {\r
+      private File file;\r
+      private JarFile jarFile;\r
+      private JarEntry jarEntry;\r
+\r
+      JarStreamInfo(File file, JarFile jarFile, JarEntry jarEntry)\r
+      {\r
+         this.file = file;\r
+         this.jarFile = jarFile;\r
+         this.jarEntry = jarEntry;\r
+      }\r
+\r
+      public InputStream openStream()\r
+         throws IOException\r
+      {\r
+         return jarFile.getInputStream(jarEntry);\r
+      }\r
+\r
+      public long getSize()\r
+      {\r
+         return jarEntry.getSize();\r
+      }\r
+\r
+      public URL getURL()\r
+         throws MalformedURLException\r
+      {\r
+         String urlString = "jar:" + file.toURL() + "!/" + jarEntry.getName();\r
+         return new URL(urlString);\r
+      }\r
+   }\r
+   \r
+   private StreamInfo getResourceStream(String path)\r
+   {\r
+      for (int i = 0; i < pathComponents.length; ++i) {\r
+         try {\r
+            File parent = pathComponents[i];\r
+            if (parent.isDirectory()) {\r
+               File file = new File(parent, path);\r
+               if (file.exists()) {\r
+                  return new FileStreamInfo(file);\r
+               }\r
+            }\r
+            else {\r
+               JarFile jarFile = new JarFile(parent, false, JarFile.OPEN_READ);\r
+               JarEntry jarEntry = jarFile.getJarEntry(path);\r
+               if (null != jarEntry) {\r
+                  return new JarStreamInfo(parent, jarFile, jarEntry);\r
+               }\r
+            }\r
+         }\r
+         catch (IOException ignore) {\r
+         }\r
+      }\r
+      return null;\r
+   }\r
+\r
+   private byte[] loadClassData(String className) \r
+      throws ClassNotFoundException \r
+   {\r
+      String classFileName = className.replace('.', File.separatorChar) + ".class";\r
+      StreamInfo streamInfo = getResourceStream(classFileName);\r
+\r
+      try {\r
+         if (null != streamInfo) {\r
+            return readFromStream(streamInfo);\r
+         }\r
+      }\r
+      catch (IOException ignore) {\r
+      }\r
+\r
+      throw new ClassNotFoundException(className);\r
+   }\r
+\r
+   private static List tryGetJarFileClassPathComponents(File file)\r
+   {\r
+      try {\r
+         JarFile jarFile = new JarFile(file, false, JarFile.OPEN_READ);\r
+         Manifest manifest = jarFile.getManifest();\r
+         if (null != manifest) {\r
+            Attributes mainAttributes = manifest.getMainAttributes();\r
+            if (null != mainAttributes) {\r
+               String classPath = mainAttributes.getValue(Attributes.Name.CLASS_PATH);\r
+               if (null != classPath) {\r
+                  List result = new LinkedList();\r
+                  StreamTokenizer tokenizer = new StreamTokenizer(new StringReader(classPath));\r
+                  tokenizer.resetSyntax();\r
+                  tokenizer.wordChars(0, Integer.MAX_VALUE);\r
+                  tokenizer.whitespaceChars(9, 9);   // tab\r
+                  tokenizer.whitespaceChars(10, 10); // lf\r
+                  tokenizer.whitespaceChars(13, 13); // cr\r
+                  tokenizer.whitespaceChars(32, 32); // space\r
+                  tokenizer.quoteChar('"');\r
+                  int token;\r
+                  while ((token = tokenizer.nextToken()) != StreamTokenizer.TT_EOF) {\r
+                     if (StreamTokenizer.TT_WORD == token) {\r
+                        result.add(new File(file.getParentFile(), tokenizer.sval));\r
+                     }\r
+                  }\r
+                  return result;\r
+               }\r
+            }\r
+         }\r
+      }\r
+      catch (IOException ignore) {\r
+      }\r
+      return null;\r
+   }\r
+}\r
+\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java b/libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java
new file mode 100644 (file)
index 0000000..4e222d2
--- /dev/null
@@ -0,0 +1,199 @@
+/* gnu.classpath.tools.IOToolkit
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.StringWriter;
+import java.io.Writer;
+
+import java.util.Set;
+
+/**
+ *  Provides various I/O-related helper methods.
+ *
+ *  @author Julian Scheid
+ */
+public class IOToolkit
+{
+   /**
+    *  Prevents instantiation.
+    */
+   private IOToolkit() {}
+
+   /**
+    *  Read all binary data from the given InputStream and write it to
+    *  the given OutputStream. This method doesn't close either
+    *  stream.
+    *
+    *  @param in  the stream from which to read data
+    *  @param out the stream to which to write data
+    */
+   public static void copyStream(InputStream in, OutputStream out)
+      throws IOException
+   {
+      byte[] buf = new byte[256];
+      int nread;
+
+      while ((nread = in.read(buf)) >= 0) {
+         out.write(buf, 0, nread);
+      }
+   }
+
+   /**
+    *  Read all character data from the given Reader and write it to
+    *  the given Writer. This method doesn't close either stream.
+    *
+    *  @param in  the Reader from which to read character data
+    *  @param out the Writer to which to write character data
+    */
+   public static void copyStream(Reader in, Writer out)
+      throws IOException 
+   {
+      char[] buf = new char[256];
+      int nread;
+
+      while ((nread = in.read(buf)) >= 0) {
+         out.write(buf, 0, nread);
+      }
+   }
+
+   /**
+    *  Recursively copy the contents of the input directory to the
+    *  output directory. The output directory is created if it doesn't
+    *  exist. If the output directory doesn't exist and can't be
+    *  created, an IOException is thrown.
+    *
+    *  @param sourceDir source directory from which to copy files
+    *  @param targetDir target directory to which to copy files
+    *  @param recursive if true, recursively copy subdirectoryies
+    *  @param excludeDirs if non null, must be a Set of String. Each
+    *  element from the set specifies the name of a direct
+    *  subdirectory of the source directory which should be excluded
+    *  from recursive copying.
+    */
+   public static void copyDirectory(File sourceDir, File targetDir, 
+                                    boolean recursive,
+                                    Set excludeDirs) 
+      throws IOException 
+   {
+      if (!targetDir.exists() && !targetDir.mkdirs()) {
+         throw new IOException("Cannot create directory " + targetDir);
+      }
+
+      File[] sourceFiles = sourceDir.listFiles();
+      for (int i=0; i<sourceFiles.length; ++i) {
+         if (sourceFiles[i].isDirectory()) {
+            if (recursive && (null == excludeDirs 
+                              || !excludeDirs.contains(sourceFiles[i].getName()))) {
+               File targetSubDir = new File(targetDir, 
+                                            sourceFiles[i].getName());
+               if (targetSubDir.exists() || targetSubDir.mkdir()) {
+                  copyDirectory(sourceFiles[i], targetSubDir, recursive, null);
+               }
+               else {
+                  throw new IOException("Cannot create directory " + targetSubDir);
+               }
+            }
+         }
+         else {
+            copyFile(sourceFiles[i], new File(targetDir, sourceFiles[i].getName()));
+         }
+      }
+   }
+
+   /**
+    *  Copy the contents of the input file to the output file. The
+    *  output file's parent directory must exist.
+    *
+    *  @param sourceFile  specifies the file to copy
+    *  @param targetFile  specifies the file to create
+    */
+   public static void copyFile(File sourceFile, File targetFile) 
+      throws IOException 
+   {
+      InputStream in = new FileInputStream(sourceFile);
+      OutputStream out = new FileOutputStream(targetFile);
+      int nread;
+      byte[] buf = new byte[512];
+      while ((nread = in.read(buf)) >= 0) {
+         out.write(buf, 0, nread);
+      }
+      in.close();
+      out.close();
+   }
+
+   /**
+    *  Read the (remaining) contents of the given reader into a char
+    *  array. This method doesn't close the reader when it is done.
+    *
+    *  @param reader the Reader to read characters from
+    *  @return an array with the contents of the Reader
+    */
+   public static char[] readFully(Reader reader)
+      throws IOException
+   {
+      StringWriter writer = new StringWriter();
+      final int readBufferSize = 256;
+      char[] chunk = new char[readBufferSize];
+      int nread;
+      while ((nread=reader.read(chunk))>=0) {
+        writer.write(chunk,0,nread);
+      }
+      StringBuffer buffer = writer.getBuffer();
+      char[] result = new char[buffer.length()];
+      buffer.getChars(0, buffer.length(), result, 0);
+      return result;
+   }
+
+   public static String getLineFromFile(File file, int line)
+      throws IOException
+   {
+      FileReader reader = new FileReader(file);
+      BufferedReader bufferedReader = new BufferedReader(reader);
+      while (line > 1) {
+         bufferedReader.readLine();
+         -- line;
+      }
+      String result = bufferedReader.readLine();
+      reader.close();
+      return result;
+   }
+
+   public static String getColumnDisplayLine(int column)
+   {
+      StringBuffer result = new StringBuffer();
+      while (column > 0) {
+         result.append(' ');
+         --column;
+      }
+      result.append('^');
+      return result.toString();
+   }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java b/libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java
new file mode 100644 (file)
index 0000000..b2ac3ce
--- /dev/null
@@ -0,0 +1,93 @@
+/* gnu.classpath.tools.MalformedInputEvent
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools;
+
+import java.util.EventObject;
+
+/**
+ *  Encapsulates information about malformed input encountered by a
+ *  {@link NotifyingInputStreamReader}.
+ *
+ *  You can use {@link getSource()} to fetch a reference to the
+ *  <code>NotifyingInputStreamReader</code> which encountered the
+ *  malformed input.
+ *
+ *  @author Julian Scheid
+ */
+public class MalformedInputEvent
+   extends EventObject
+{
+   private int lineNumber;
+   private int columnNumber;
+   private int length;
+
+   MalformedInputEvent(NotifyingInputStreamReader source,
+                       int lineNumber,
+                       int columnNumber,
+                       int length)
+   {
+      super(source);
+      this.columnNumber = columnNumber;
+      this.lineNumber = lineNumber;
+      this.length = length;
+   }
+
+   /**
+    *  Return the 1-based line number where the malformed input begins
+    *  in the stream read by the
+    *  <code>NotifyingInputStreamReader</code>.
+    */
+   public int getLineNumber()
+   {
+      return lineNumber;
+   }
+
+   /**
+    *  Return the 0-based column number where the malformed input
+    *  begins in the stream read by the
+    *  <code>NotifyingInputStreamReader</code>.
+    */
+   public int getColumnNumber()
+   {
+      return columnNumber;
+   }
+
+   /**
+    *  Return the length (in bytes) of the malformed input encountered
+    *  by the <code>NotifyingInputStreamReader</code>. Note that a
+    *  consecutive run of malformed input isn't necessarily reported
+    *  as a whole; depending on the <code>Charset</code> and
+    *  implementation details of <code>CharsetDecoder</code>, the run
+    *  could be reported in chunks down to individual bytes.
+    */
+   public int getLength()
+   {
+      return length;
+   }
+
+   public String toString()
+   {
+      return "MalformedInputEvent{line=" + lineNumber
+         + ",column=" + columnNumber
+         + ",length=" + length
+         + "}";
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java b/libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java
new file mode 100644 (file)
index 0000000..66ab128
--- /dev/null
@@ -0,0 +1,39 @@
+/* gnu.classpath.tools.MalformedInputListener
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools;
+
+/**
+ *  Classes implementing this interface can be notified when a {@link
+ *  NotifyingInputStreamReader} encounters malformed input.
+ *
+ *  @author Julian Scheid
+ */
+public interface MalformedInputListener
+{
+   /**
+    *  Invoked when a <code>NotifyingInputStreamReader</code> this
+    *  listener is registered with encounters malformed input.
+    *
+    *  @param MalformedInputEvent contains detailed information about
+    *  the event.
+    */
+   public void malformedInputEncountered(MalformedInputEvent event);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java b/libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java
new file mode 100644 (file)
index 0000000..8c35c25
--- /dev/null
@@ -0,0 +1,406 @@
+/* gnu.classpath.tools.NotifyingInputStreamReader
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CoderResult;
+import java.nio.charset.IllegalCharsetNameException;
+import java.nio.charset.UnsupportedCharsetException;
+
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+/**
+ *  Similar to {@link java.io.InputStreamReader}, but can give
+ *  notification when malformed input is encountered.
+ *
+ *  <p> Users of this class can register interest in the event of
+ *  malformed input by calling {@link
+ *  #addMalformedInputListener}. Each time a run of malformed input
+ *  data is encountered, all listener objects are notified. For
+ *  instance, this allows the calling code to inform the user about
+ *  problems in the input stream. </p>
+ *
+ *  <p> <strong>Background:</strong> The default
+ *  <code>InputStreamReader</code> implementation will ignore
+ *  malformed input, silently replacing it with the default
+ *  replacement string (usually the question mark). Alternatively, you
+ *  can configure a <code>CharsetDecoder</code> for the default
+ *  <char>InputStreamReader</code> implementation, instructing it to
+ *  ignore malformed input without replacing it; to replace it with a
+ *  different string; or to throw an exception when malformed input is
+ *  encountered. However, you cannot configure an
+ *  <code>InputStreamReader</code> to gracefully handle malformed data
+ *  but notify the client code about such
+ *  problems. <code>NotifyingInputStreamReader</code> fills this
+ *  gap. </p>
+ *
+ *  @author Julian Scheid
+ */
+public class NotifyingInputStreamReader 
+   extends Reader
+{
+   /**
+    *  The default size (in bytes) for byteBuf, i.e. the size of data
+    *  chunks read from the underlying input stream.
+    */
+   private static final int DEFAULT_INPUT_BUFFER_SIZE = 64;
+
+   /**
+    *  The default size (in chars) for charBuf. This should be large
+    *  enough to hold a decoded chunk of input data for the Charset
+    *  with the minimum number of bytes per character. Since the
+    *  minimum number of bytes per character for usual Charsets is
+    *  one, this number should be identical to
+    *  DEFAULT_INPUT_BUFFER_SIZE.
+    */
+   private static final int DEFAULT_OUTPUT_BUFFER_SIZE = 64;
+
+   /**
+    *  The underlying InputStream.
+    */
+   private InputStream in;
+
+   /**
+    *  The CharsetDecoder used to decode the underlying stream.
+    */
+   private CharsetDecoder decoder;
+
+   /**
+    *  Holds bytes already read from the underlying stream, but not
+    *  yet decoded.
+    */
+   private ByteBuffer byteBuffer;
+
+   /**
+    *  Holds characters already decoded, but not yet fetched via
+    *  read().
+    */
+   private CharBuffer charBuffer;
+   
+   /**
+    *  This is the primitive byte array wrapped in byteBuffer for
+    *  passing to to InputStream.read().
+    */
+   private byte[] readBuffer;
+
+   /**
+    *  Keeps track of the current line number (1-based).
+    */
+   private int lineNumber = 1;
+
+   /**
+    *  Keeps track of the current column number (0-based).
+    */
+   private int columnNumber = 0;
+
+   /**
+    *  Becomes true as soon as EOF has been reached in the underlying
+    *  InputStream. At this point, byteBuffer contains the last chunk
+    *  of data from the underlying InputStream.
+    */
+   private boolean allInputConsumed = false;
+
+   /**
+    *  Becomes true as soon as the decoder has been supplied with the
+    *  last chunk of data from the InputStream after EOF has been
+    *  reached. At this point, the last chunk of data has been drained
+    *  from the byteBuffer.
+    */
+   private boolean decodingFinished = false;
+
+   /**
+    *  Becomes true as soon as the decoder has been flushed. At this
+    *  point, the last chunk of character data has been written to the
+    *  charBuffer.
+    */
+   private boolean flushed = false;
+
+   /**
+    *  Stores all registered MalformedInputListeners.
+    */
+   private Set listeners = new LinkedHashSet();
+
+   /**
+    *  Initializes a new instance for reading from the given
+    *  InputStream using the default encoding. The default encoding is
+    *  currently determined by looking at the system property
+    *  <code>file.encoding</code>. If this property isn't set,
+    *  <code>ISO-8859-1</code> is used as a fallback.
+    *
+    *  <p>This method should use {@link Charset.defaultCharset()}
+    *  instead, but this isn't implemented in Classpath at the
+    *  moment.</p>
+    *
+    *  @param in the <code>InputStream</code> to read from.
+    */
+   public NotifyingInputStreamReader(InputStream in)
+   {
+      this(in, System.getProperty("file.encoding", "ISO-8859-1"));
+   }
+
+   /**
+    *  Initializes a new instance for reading from the given
+    *  InputStream using the specified charset.
+    *
+    *  @param in the <code>InputStream</code> to read from.
+    *  @param charsetName the canonical name or an alias of a
+    *  <code>Charset</code>.
+    *
+    *  @throws IllegalCharsetNameException if there is no
+    *  <code>Charset</code> with the given canonical name or alias.
+    *
+    *  @throws UnsupportedCharsetException if there is no support for
+    *  the specified <code>Charset</code> in the runtime environment.
+    */
+   public NotifyingInputStreamReader(InputStream in, String charsetName)
+      throws IllegalCharsetNameException, UnsupportedCharsetException
+   {
+      this(in, Charset.forName(charsetName));
+   }
+
+   /**
+    *  Initializes a new instance for reading from the given
+    *  InputStream using the specified charset.
+    *
+    *  @param in the <code>InputStream</code> to read from.
+    *  @param charset the <code>Charset</code> to use for decoding
+    *  characters.
+    */
+   public NotifyingInputStreamReader(InputStream in, Charset charset)
+   {
+      this(in, charset.newDecoder());
+   }
+
+   /**
+    *  Initializes a new instance for reading from the given
+    *  InputStream using the specified charset decoder.
+    *
+    *  <strong>Note:</strong> the
+    *  <code>NotifyingInputStreamReader</code> will not exhibit the
+    *  advertised behaviour if you changed the action to take on
+    *  malformed input in the specified
+    *  <code>CharsetDecoder</code>. In other words, you should not
+    *  call {@link CharsetDecoder.onMalformedInput(CodingErrorAction)}
+    *  on the specified decoder before or while this reader is being
+    *  used unless you know what you're doing.
+    *
+    *  @param in the <code>InputStream</code> to read from.
+    *  @param charset the <code>CharsetDecoder</code> to use for
+    *  decoding characters.
+    */
+   public NotifyingInputStreamReader(InputStream in, CharsetDecoder decoder)
+   {
+      this.in = in;
+      this.decoder = decoder;
+      this.charBuffer = CharBuffer.wrap(new char[DEFAULT_INPUT_BUFFER_SIZE]);
+      this.charBuffer.position(charBuffer.limit());
+      this.readBuffer = new byte[DEFAULT_OUTPUT_BUFFER_SIZE];
+      this.byteBuffer = ByteBuffer.wrap(readBuffer);
+      this.byteBuffer.position(byteBuffer.limit());
+   }
+
+   public void close()
+      throws IOException
+   {
+      in.close();
+   }
+
+   /**
+    *  Fill charBuffer with new character data. This method returns if
+    *  either the charBuffer has been filled completely with decoded
+    *  character data, or if EOF is reached in the underlying
+    *  InputStream. When this method returns, charBuffer is flipped
+    *  and ready to be read from.
+    */
+   private void fillCharBuf()
+      throws IOException
+   {
+      charBuffer.clear();
+   outer:
+      while (!flushed) {
+         CoderResult coderResult;
+         int charBufferPositionBefore = charBuffer.position();
+         if (!decodingFinished) {
+            coderResult = decoder.decode(byteBuffer, charBuffer, allInputConsumed);
+            if (allInputConsumed) {
+               decodingFinished = true;
+            }
+         }
+         else {
+            coderResult = decoder.flush(charBuffer);
+            flushed = coderResult.isUnderflow();
+         }
+
+         int charBufferPositionAfter = charBuffer.position();
+         for (int i=charBufferPositionBefore; i<charBufferPositionAfter; ++i) {
+            if (10 == charBuffer.get(i)) {
+               ++ lineNumber;
+               columnNumber = 0;
+            }
+            else {
+               ++ columnNumber;
+            }
+         }
+         if (coderResult.isOverflow()) {
+            break;
+         }
+         else if (coderResult.isUnderflow()) {
+            if (!allInputConsumed) {
+               int nRemainingBytes = 0;
+               if (byteBuffer.position() > 0) {
+                  nRemainingBytes = Math.max(0, byteBuffer.limit() - byteBuffer.position());
+               }
+               if (nRemainingBytes > 0) {
+                  byteBuffer.get(readBuffer, 0, nRemainingBytes);
+               }
+               byteBuffer.rewind();
+               int nread = in.read(readBuffer, nRemainingBytes, 
+                                   readBuffer.length - nRemainingBytes);
+               if (nread < 0) {
+                  allInputConsumed = true;
+               }
+               byteBuffer.limit(nRemainingBytes + Math.max(0, nread));
+            }
+            else {
+               break;
+            }
+         }
+         else if (coderResult.isMalformed()) {
+            fireMalformedInputEncountered(coderResult.length());
+            String replacement = decoder.replacement();
+            for (int i=0; i<coderResult.length(); ++i) {
+               if (charBuffer.remaining() > replacement.length()) {
+                  charBuffer.put(replacement);
+                  byteBuffer.position(byteBuffer.position() + 1);
+                  columnNumber ++;
+               }
+               else {
+                  break outer;
+               }
+            }
+         }
+         else if (coderResult.isUnmappable()) {
+            // This should not happen, since unmappable input bytes
+            // trigger a "malformed" event instead.
+            coderResult.throwException();
+         }
+         else {
+            // This should only happen if run in a future environment
+            // where additional events apart from underflow, overflow,
+            // malformed and unmappable can be generated.
+            coderResult.throwException();
+         }
+      }
+      charBuffer.flip();
+   }
+
+   /**
+    *  Fire a MalformedInputEvent, notifying all registered listeners.
+    */
+   private void fireMalformedInputEncountered(int length)
+   {
+      MalformedInputEvent event
+         = new MalformedInputEvent(this, lineNumber, columnNumber, length);
+      Iterator it = listeners.iterator();
+      while (it.hasNext()) {
+         MalformedInputListener listener
+            = (MalformedInputListener)it.next();
+         listener.malformedInputEncountered(event);
+      }
+   }
+   
+   public int read(char[] cbuf, int offset, int length)
+      throws IOException
+   {
+      if (flushed) {
+         return -1;
+      }
+      else {
+         int nread = 0;
+         while (nread < length && !flushed) {
+            while (charBuffer.hasRemaining() && nread < length) {
+               int copyLen = Math.min(length - nread, 
+                                      charBuffer.remaining());
+               charBuffer.get(cbuf, offset + nread, copyLen);
+               nread += copyLen;
+            }
+            if (nread < length) {
+               fillCharBuf();
+            }
+         }
+         return nread;
+      }
+   }
+
+   public int read()
+      throws IOException
+   {
+      while (!flushed) {
+         if (charBuffer.hasRemaining()) {
+            return charBuffer.get();
+         }
+         else {
+            fillCharBuf();
+         }
+      }
+      return -1;
+   }
+
+   /**
+    *  Returns whether this reader is ready. The reader is ready if
+    *  there is data in the internal buffer, or if additional data can
+    *  be read from the underlying InputStream.
+    */
+   public boolean ready()
+   {
+      return charBuffer.hasRemaining() || !flushed;
+   }
+
+   /**
+    *  Register a <code>MalformedInputListener</code> which should be
+    *  notified when malformed input is encountered.
+    */
+   public void addMalformedInputListener(MalformedInputListener listener)
+   {
+      this.listeners.add(listener);
+   }
+
+   /**
+    *  Unregister a previously registered
+    *  <code>MalformedInputListener</code> if it should no longer be
+    *  notified when malformed input is encountered.
+    */
+   public void removeMalformedInputListener(MalformedInputListener listener)
+   {
+      this.listeners.remove(listener);
+   }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java b/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java
new file mode 100644 (file)
index 0000000..214dc1b
--- /dev/null
@@ -0,0 +1,67 @@
+/* gnu.classpath.tools.StringToolkit
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools;
+
+/**
+ *  Provides various String-related helper methods.
+ *
+ *  @author Julian Scheid
+ */
+public class StringToolkit
+{
+   /**
+    *  Prevents instantiation.
+    */
+   private StringToolkit() {}
+
+   /**
+    *  Return <code>haystack</code> with all occurrences of
+    *  <code>needle</code> replaced by </code>replacement</code>.
+    *
+    *  @param haystack the string to replace occurrences of <code>needle</code> in
+    *  @param needle the substring to replace
+    *  @param replacement the substring to replace <code>needle</code> with
+    *
+    *  @return <code>haystack</code> with all occurrences of
+    *  <code>needle</code> replaced by </code>replacement</code>.
+    */
+   public static String replace(String haystack, String needle, String replacement)
+   {
+      int ndx = haystack.indexOf(needle);
+      if (ndx < 0) {
+         return haystack;
+      }
+      else {
+         StringBuffer result = new StringBuffer();
+         result.append(haystack.substring(0, ndx));
+         result.append(replacement);
+         ndx += needle.length();
+         int ndx2;
+         while ((ndx2 = haystack.indexOf(needle, ndx)) >= 0) {
+            result.append(haystack.substring(ndx, ndx2));
+            result.append(replacement);
+            ndx = ndx2 + needle.length();
+         }
+         result.append(haystack.substring(ndx));
+         return result.toString();
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java
new file mode 100644 (file)
index 0000000..8777207
--- /dev/null
@@ -0,0 +1,1369 @@
+/* gnu.classpath.tools.doclets.AbstractDoclet
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import com.sun.javadoc.ClassDoc;
+import com.sun.javadoc.ConstructorDoc;
+import com.sun.javadoc.Doc;
+import com.sun.javadoc.Doclet;
+import com.sun.javadoc.ExecutableMemberDoc;
+import com.sun.javadoc.FieldDoc;
+import com.sun.javadoc.MethodDoc;
+import com.sun.javadoc.PackageDoc;
+import com.sun.javadoc.Parameter;
+import com.sun.javadoc.RootDoc;
+import com.sun.javadoc.Tag;
+import com.sun.javadoc.Type;
+
+import com.sun.tools.doclets.Taglet;
+
+import gnu.classpath.tools.taglets.GnuExtendedTaglet;
+import gnu.classpath.tools.taglets.AuthorTaglet;
+import gnu.classpath.tools.taglets.CodeTaglet;
+import gnu.classpath.tools.taglets.DeprecatedTaglet;
+import gnu.classpath.tools.taglets.GenericTaglet;
+import gnu.classpath.tools.taglets.SinceTaglet;
+import gnu.classpath.tools.taglets.ValueTaglet;
+import gnu.classpath.tools.taglets.VersionTaglet;
+import gnu.classpath.tools.taglets.TagletContext;
+
+import gnu.classpath.tools.IOToolkit;
+import gnu.classpath.tools.FileSystemClassLoader;
+
+import java.io.File;
+import java.io.IOException;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.InvocationTargetException;
+
+import java.text.MessageFormat;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.ResourceBundle;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+/**
+ *  An abstract Doclet implementation with helpers for common tasks
+ *  performed by Doclets.
+ */
+public abstract class AbstractDoclet
+{
+   /**
+    *  Mapping from tag type to Taglet for user Taglets specified on
+    *  the command line.
+    */
+   protected Map tagletMap = new LinkedHashMap();
+
+   /**
+    *  Stores the package groups specified in the user
+    *  options. Contains objects of type PackageGroup.
+    */
+   private List packageGroups = new LinkedList();
+
+   /**
+    *  The current classpath for loading taglet classes.
+    */
+   private String tagletPath;
+
+   /**
+    *  Keeps track of the tags mentioned by the user during option
+    *  processiong so that an error can be emitted if a tag is
+    *  mentioned more than once.
+    */
+   private List mentionedTags = new LinkedList();
+
+   public static int optionLength(String option) {
+      return instance.getOptionLength(option);
+   }
+
+   public static boolean validOptions(String[][] options) {
+      return true;
+   }
+
+   private static AbstractDoclet instance;
+
+   protected static void setInstance(AbstractDoclet instance)
+   {
+      AbstractDoclet.instance = instance;
+   }
+
+   protected abstract void run()
+      throws DocletConfigurationException, IOException;
+
+   public static boolean start(RootDoc rootDoc) 
+   {
+      try {
+
+         instance.startInstance(rootDoc);
+         return true;
+      }
+      catch (DocletConfigurationException e) {
+         instance.printError(e.getMessage());
+         return false;
+      }
+      catch (Exception e) {
+         e.printStackTrace();
+         return false;
+      }
+   }
+
+   protected RootDoc getRootDoc()
+   {
+      return this.rootDoc;
+   }
+
+   private RootDoc rootDoc;
+
+   protected abstract InlineTagRenderer getInlineTagRenderer();
+
+   private void startInstance(RootDoc rootDoc)
+      throws DocletConfigurationException, IOException
+   {
+      this.rootDoc = rootDoc;
+
+      // Set the default Taglet order
+
+      registerTaglet(new VersionTaglet());
+      registerTaglet(new AuthorTaglet());
+      registerTaglet(new SinceTaglet(getInlineTagRenderer()));
+      registerTaglet(new StandardTaglet("serial"));
+      registerTaglet(new StandardTaglet("deprecated"));
+      registerTaglet(new StandardTaglet("see"));
+      registerTaglet(new StandardTaglet("param"));
+      registerTaglet(new StandardTaglet("return"));
+
+      registerTaglet(new ValueTaglet());
+      registerTaglet(new CodeTaglet());
+
+      // Process command line options
+
+      for (int i=0, ilim=rootDoc.options().length; i<ilim; ++i) {
+            
+         String[] optionArr = rootDoc.options()[i];
+         String _optionTag = optionArr[0];
+
+         DocletOption option = (DocletOption)nameToOptionMap.get(_optionTag.toLowerCase());
+
+         if (null != option) {
+            option.set(optionArr);
+         }
+      }
+
+      // Enable/disable standard taglets based on user input
+
+      AuthorTaglet.setTagletEnabled(optionAuthor.getValue());
+      VersionTaglet.setTagletEnabled(optionVersion.getValue());
+      SinceTaglet.setTagletEnabled(!optionNoSince.getValue());
+      DeprecatedTaglet.setTagletEnabled(!optionNoDeprecated.getValue());
+
+      if (!getTargetDirectory().exists()) {
+         if (!getTargetDirectory().mkdirs()) {
+            throw new DocletConfigurationException("Cannot create target directory " 
+                                                   + getTargetDirectory());
+         }
+      }
+
+      run();
+   }
+
+   public File getTargetDirectory()
+   {
+      return optionTargetDirectory.getValue();
+   }
+
+   private DocletOptionFile optionTargetDirectory = 
+     new DocletOptionFile("-d", 
+                          new File(System.getProperty("user.dir")));
+
+   private DocletOptionFlag optionNoEmailWarn = 
+     new DocletOptionFlag("-noemailwarn");
+
+   private DocletOptionFlag optionAuthor = 
+     new DocletOptionFlag("-author");
+
+   private DocletOptionFlag optionVersion = 
+     new DocletOptionFlag("-version");
+
+   private DocletOptionFlag optionNoSince = 
+     new DocletOptionFlag("-nosince");
+
+   private DocletOptionFlag optionNoDeprecated = 
+     new DocletOptionFlag("-nodeprecated");
+
+   private DocletOptionGroup optionGroup = 
+     new DocletOptionGroup("-group");
+
+   private DocletOptionPackageWildcard optionNoQualifier = 
+     new DocletOptionPackageWildcard("-noqualifier", true);
+
+   private DocletOptionFlag optionDocFilesSubDirs = 
+     new DocletOptionFlag("-docfilessubdirs");
+
+   private DocletOptionColonSeparated optionExcludeDocFilesSubDir = 
+     new DocletOptionColonSeparated("-excludedocfilessubdir");
+
+   private DocletOptionTagletPath optionTagletPath = 
+     new DocletOptionTagletPath("-tagletpath");
+
+   private DocletOptionTag optionTaglet = 
+     new DocletOptionTag("-taglet");
+
+   private DocletOptionTag optionTag = 
+     new DocletOptionTag("-tag");
+
+   private class DocletOptionTaglet
+      extends DocletOption
+   {
+      DocletOptionTaglet(String optionName)
+      {
+         super(optionName);
+      }
+      
+      public int getLength()
+      {
+         return 2;
+      }
+
+      public boolean set(String[] optionArr)
+      {
+
+         boolean tagletLoaded = false;
+
+         String useTagletPath = AbstractDoclet.this.tagletPath;
+         if (null == useTagletPath) {
+            useTagletPath = System.getProperty("java.class.path");
+         }
+
+         try {
+            Class tagletClass;
+            try {
+               tagletClass
+                  = new FileSystemClassLoader(useTagletPath).loadClass(optionArr[1]);
+            }
+            catch (ClassNotFoundException e) {
+               // If not found on specified tagletpath, try default classloader
+               tagletClass
+                  = Class.forName(optionArr[1]);
+            }
+            Method registerTagletMethod
+               = tagletClass.getDeclaredMethod("register", new Class[] { java.util.Map.class });
+
+            if (!registerTagletMethod.getReturnType().equals(Void.TYPE)) {
+               printError("Taglet class '" + optionArr[1] + "' found, but register method doesn't return void.");
+            }
+            else if (registerTagletMethod.getExceptionTypes().length > 0) {
+               printError("Taglet class '" + optionArr[1] + "' found, but register method contains throws clause.");
+            }
+            else if ((registerTagletMethod.getModifiers() & (Modifier.STATIC | Modifier.PUBLIC | Modifier.ABSTRACT)) != (Modifier.STATIC | Modifier.PUBLIC)) {
+               printError("Taglet class '" + optionArr[1] + "' found, but register method isn't public static, or is abstract..");
+            }
+            else {
+               Map tempMap = new HashMap();
+               registerTagletMethod.invoke(null, new Object[] { tempMap });
+               tagletLoaded = true;
+               String name = (String)tempMap.keySet().iterator().next();
+               Taglet taglet = (Taglet)tempMap.get(name);
+               tagletMap.put(name, taglet);
+               mentionedTags.add(taglet);
+            }
+         }
+         catch (NoSuchMethodException e) {
+            printError("Taglet class '" + optionArr[1] + "' found, but doesn't contain the register method.");
+         }
+         catch (SecurityException e) {
+            printError("Taglet class '" + optionArr[1] + "' cannot be loaded: " + e.getMessage());
+         }
+         catch (InvocationTargetException e) {
+            printError("Taglet class '" + optionArr[1] + "' found, but register method throws exception: " + e.toString());
+         }
+         catch (IllegalAccessException e) {
+            printError("Taglet class '" + optionArr[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
+         }
+         catch (IllegalArgumentException e) {
+            printError("Taglet class '" + optionArr[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
+         }
+         catch (ClassNotFoundException e) {
+            printError("Taglet class '" + optionArr[1] + "' cannot be found.");
+         }
+         return tagletLoaded;
+      }
+   }
+
+   private class DocletOptionGroup 
+      extends DocletOption
+   {
+      DocletOptionGroup(String optionName)
+      {
+         super(optionName);
+      }
+      
+      public int getLength()
+      {
+         return 3;
+      }
+
+      public boolean set(String[] optionArr)
+      {
+         try {
+            PackageMatcher packageMatcher = new PackageMatcher();
+
+            StringTokenizer tokenizer = new StringTokenizer(optionArr[2], ":");
+            while (tokenizer.hasMoreTokens()) {
+               String packageWildcard = tokenizer.nextToken();
+               packageMatcher.addWildcard(packageWildcard);
+            }
+            
+            SortedSet groupPackages = packageMatcher.filter(rootDoc.specifiedPackages());
+
+            packageGroups.add(new PackageGroup(optionArr[1], groupPackages));
+
+            return true;
+         }
+         catch (InvalidPackageWildcardException e) {
+            return false;
+         }
+      }
+   }
+
+
+   private class DocletOptionTagletPath
+      extends DocletOption
+   {
+      DocletOptionTagletPath(String optionName)
+      {
+         super(optionName);
+      }
+      
+      public int getLength()
+      {
+         return 2;
+      }
+
+      public boolean set(String[] optionArr)
+      {
+         AbstractDoclet.this.tagletPath = optionArr[1];
+         return true;
+      }
+   }
+
+   private class DocletOptionTag
+      extends DocletOption
+   {
+      DocletOptionTag(String optionName)
+      {
+         super(optionName);
+      }
+      
+      public int getLength()
+      {
+         return 2;
+      }
+
+      public boolean set(String[] optionArr)
+      {
+         String tagSpec = optionArr[1];
+         boolean validTagSpec = false;
+         int ndx1 = tagSpec.indexOf(':');
+         if (ndx1 < 0) {
+            Taglet taglet = (Taglet)tagletMap.get(tagSpec);
+            if (null == taglet) {
+               printError("There is no standard tag '" + tagSpec + "'.");
+            }
+            else {
+               if (mentionedTags.contains(taglet)) {
+                  printError("Tag '" + tagSpec + "' has been added or moved before.");
+               }
+               else {
+                  mentionedTags.add(taglet);
+                           
+                  // re-append taglet
+                  tagletMap.remove(tagSpec);
+                  tagletMap.put(tagSpec, taglet);
+               }
+            }
+         }
+         else {
+            int ndx2 = tagSpec.indexOf(':', ndx1 + 1);
+            if (ndx2 > ndx1 && ndx2 < tagSpec.length() - 1) {
+               String tagName = tagSpec.substring(0, ndx1);
+               String tagHead = null;
+               if (tagSpec.charAt(ndx2 + 1) == '\"') {
+                  if (tagSpec.charAt(tagSpec.length() - 1) == '\"') {
+                     tagHead = tagSpec.substring(ndx2 + 2, tagSpec.length() - 1);
+                     validTagSpec = true;
+                  }
+               }
+               else {
+                  tagHead = tagSpec.substring(ndx2 + 1);
+                  validTagSpec = true;
+               }
+
+               boolean tagScopeOverview = false;
+               boolean tagScopePackages = false;
+               boolean tagScopeTypes = false;
+               boolean tagScopeConstructors = false;
+               boolean tagScopeMethods = false;
+               boolean tagScopeFields = false;
+               boolean tagDisabled = false;
+                        
+            tag_option_loop:
+               for (int n=ndx1+1; n<ndx2; ++n) {
+                  switch (tagSpec.charAt(n)) {
+                  case 'X': 
+                     tagDisabled = true;
+                     break;
+                  case 'a':
+                     tagScopeOverview = true;
+                     tagScopePackages = true;
+                     tagScopeTypes = true;
+                     tagScopeConstructors = true;
+                     tagScopeMethods = true;
+                     tagScopeFields = true;
+                     break;
+                  case 'o':
+                     tagScopeOverview = true;
+                     break;
+                  case 'p':
+                     tagScopePackages = true;
+                     break;
+                  case 't':
+                     tagScopeTypes = true;
+                     break;
+                  case 'c':
+                     tagScopeConstructors = true;
+                     break;
+                  case 'm':
+                     tagScopeMethods = true;
+                     break;
+                  case 'f':
+                     tagScopeFields = true;
+                     break;
+                  default:
+                     validTagSpec = false;
+                     break tag_option_loop;
+                  }
+               }
+                        
+               if (validTagSpec) {
+                  GenericTaglet taglet
+                     = new GenericTaglet(tagName,
+                                         tagHead,
+                                         tagScopeOverview,
+                                         tagScopePackages,
+                                         tagScopeTypes,
+                                         tagScopeConstructors,
+                                         tagScopeMethods,
+                                         tagScopeFields);
+                  taglet.setTagletEnabled(!tagDisabled);
+                  taglet.register(tagletMap);
+                  mentionedTags.add(taglet);
+               }
+            }
+         }
+         if (!validTagSpec) {
+            printError("Value for option -tag must be in format \"<tagname>:Xaoptcmf:<taghead>\".");
+         }
+         return validTagSpec;
+      }
+   }
+
+   private DocletOption[] commonOptions = 
+      {
+         optionTargetDirectory,
+         optionAuthor,
+         optionVersion,
+         optionNoSince,
+         optionNoDeprecated,
+         optionGroup,
+         optionDocFilesSubDirs,
+         optionExcludeDocFilesSubDir,
+         optionTagletPath,
+         optionTaglet,
+         optionTag,
+      };
+
+   private void registerOptions()
+   {
+      if (!optionsRegistered) {
+         for (int i=0; i<commonOptions.length; ++i) {
+            DocletOption option = commonOptions[i];
+            registerOption(option);
+         }
+         DocletOption[] docletOptions = getOptions();
+         for (int i=0; i<docletOptions.length; ++i) {
+            DocletOption option = docletOptions[i];
+            registerOption(option);
+         }
+         optionsRegistered = true;
+      }
+   }
+
+   protected abstract DocletOption[] getOptions();
+
+   private boolean optionsRegistered = false;
+
+   private void registerOption(DocletOption option) 
+   {
+      nameToOptionMap.put(option.getName(), option);
+   }
+
+   private Map nameToOptionMap = new HashMap();
+
+   private int getOptionLength(String optionName)
+   {
+      registerOptions();
+      DocletOption option = (DocletOption)nameToOptionMap.get(optionName.toLowerCase());
+      if (null != option) {
+         return option.getLength();
+      }
+      else {
+         return -1;
+      }
+   }
+
+   protected List getKnownDirectSubclasses(ClassDoc classDoc)
+   {
+      List result = new LinkedList();
+      if (!"java.lang.Object".equals(classDoc.qualifiedName())) {
+         ClassDoc[] classes = rootDoc.classes();
+         for (int i=0; i<classes.length; ++i) {
+            if (classDoc == classes[i].superclass()) {
+               result.add(classes[i]);
+            }
+         }
+      }
+      return result;
+   }
+
+   protected static class IndexKey
+      implements Comparable
+   {
+      private String name;
+      private String lowerName;
+
+      public IndexKey(String name)
+      {
+         this.name = name;
+         this.lowerName = name.toLowerCase();
+      }
+
+      public boolean equals(Object other)
+      {
+         return this.lowerName.equals(((IndexKey)other).lowerName);
+      }
+
+      public int hashCode()
+      {
+         return lowerName.hashCode();
+      }
+
+      public int compareTo(Object other)
+      {
+         return lowerName.compareTo(((IndexKey)other).lowerName);
+      }
+
+      public String getName()
+      {
+         return name;
+      }
+   }
+   
+   private Map categorizedIndex;
+
+   protected Map getCategorizedIndex()
+   {
+      if (null == categorizedIndex) {
+         categorizedIndex = new LinkedHashMap();
+         
+         Map indexMap = getIndexByName();
+         LinkedList keys = new LinkedList(); //indexMap.keySet().size());
+         keys.addAll(indexMap.keySet());
+         Collections.sort(keys);
+         Iterator it = keys.iterator(); //indexMap.keySet().iterator();
+         char previousCategoryLetter = '\0';
+         Character keyLetter = null;
+         while (it.hasNext()) {
+            IndexKey key = (IndexKey)it.next();
+            char firstChar = Character.toUpperCase(key.getName().charAt(0));
+            if (firstChar != previousCategoryLetter) {
+               keyLetter = new Character(firstChar);
+               previousCategoryLetter = firstChar;
+               categorizedIndex.put(keyLetter, new LinkedList());
+            }
+            List letterList = (List)categorizedIndex.get(keyLetter);
+            letterList.add(indexMap.get(key));
+         }
+      }
+
+      return categorizedIndex;
+   }
+
+
+   private Map indexByName;
+
+   protected Map getIndexByName()
+   {
+      if (null == indexByName) {
+         // Create index
+
+         // Collect index
+            
+         indexByName = new HashMap(); //TreeMap();
+
+         // Add packages to index
+
+         PackageDoc[] packages = rootDoc.specifiedPackages();
+         for (int i=0, ilim=packages.length; i<ilim; ++i) {
+            PackageDoc c = packages[i];
+            if (c.name().length() > 0) {
+               indexByName.put(new IndexKey(c.name()), c);
+            }
+         }
+
+         // Add classes, fields and methods to index
+
+         ClassDoc[] sumclasses = rootDoc.classes();
+         for (int i=0, ilim=sumclasses.length; i<ilim; ++i) {
+            ClassDoc c = sumclasses[i];
+            if (null == c.containingClass()) {
+               indexByName.put(new IndexKey(c.name() + " " + c.containingPackage().name()), c);
+            }
+            else {
+               indexByName.put(new IndexKey(c.name().substring(c.containingClass().name().length() + 1)
+                                            + " " + c.containingClass().name() + " " + c.containingPackage().name()), c);
+            }
+            FieldDoc[] fields = c.fields();
+            for (int j=0, jlim=fields.length; j<jlim; ++j) {
+               indexByName.put(new IndexKey(fields[j].name() + " " + fields[j].containingClass().name() + " " + fields[j].containingPackage().name()), fields[j]);
+            }
+            MethodDoc[] methods = c.methods();
+            for (int j=0, jlim=methods.length; j<jlim; ++j) {
+               MethodDoc method = methods[j];
+               indexByName.put(new IndexKey(method.name() + method.signature() + " " + method.containingClass().name() + " " + method.containingPackage().name()), method);
+            }
+            ConstructorDoc[] constructors = c.constructors();
+            for (int j=0, jlim=constructors.length; j<jlim; ++j) {
+               ConstructorDoc constructor = constructors[j];
+               indexByName.put(new IndexKey(constructor.name() + constructor.signature() + " " + constructor.containingClass().name() + " " + constructor.containingPackage().name()), constructor);
+            }
+         }
+      }
+      return indexByName;
+   }
+
+   private void registerTaglet(Taglet taglet)
+   {
+      tagletMap.put(taglet.getName(), taglet);
+   }
+
+   protected void printTaglets(Tag[] tags, TagletContext context, TagletPrinter output, boolean inline) 
+   {
+      for (Iterator it = tagletMap.keySet().iterator(); it.hasNext(); ) {
+         String tagName = (String)it.next();
+         Object o = tagletMap.get(tagName);
+         Taglet taglet = (Taglet)o;
+         Doc doc = context.getDoc();
+         if (inline == taglet.isInlineTag()
+             && ((doc == null 
+                  && taglet.inOverview())
+                 || (doc != null 
+                     && ((doc.isConstructor() && taglet.inConstructor())
+                         || (doc.isField() && taglet.inField())
+                         || (doc.isMethod() && taglet.inMethod())
+                         || (doc instanceof PackageDoc && taglet.inPackage())
+                         || ((doc.isClass() || doc.isInterface()) && taglet.inType()))))) {
+
+            List tagsOfThisType = new LinkedList();
+            for (int i=0; i<tags.length; ++i) {
+               if (tags[i].name().substring(1).equals(tagName)) {
+                  tagsOfThisType.add(tags[i]);
+               }
+            }
+
+            Tag[] tagletTags = (Tag[])tagsOfThisType.toArray(new Tag[tagsOfThisType.size()]);
+
+            String tagletString;
+            if (taglet instanceof StandardTaglet) {
+               tagletString = renderTag(tagName, tagletTags, context);
+            }
+            else if (taglet instanceof GnuExtendedTaglet) {
+               tagletString = ((GnuExtendedTaglet)taglet).toString(tagletTags, context);
+            }
+            else {
+               tagletString = taglet.toString(tagletTags);
+            }
+            if (null != tagletString) {
+               output.printTagletString(tagletString);
+            }
+         }
+      }
+   }
+
+   protected void printInlineTaglet(Tag tag, TagletContext context, TagletPrinter output) 
+   {
+      Taglet taglet = (Taglet)tagletMap.get(tag.name().substring(1));
+      if (null != taglet) {
+         String tagletString;
+         if (taglet instanceof GnuExtendedTaglet) {
+            tagletString = ((GnuExtendedTaglet)taglet).toString(tag, context);
+         }
+         else {
+            tagletString = taglet.toString(tag);
+         }
+         if (null != tagletString) {
+            output.printTagletString(tagletString);
+         }
+      }
+      else {
+         printWarning("Unknown tag: " + tag.name());
+      }
+   }
+
+   protected void printMainTaglets(Tag[] tags, TagletContext context, TagletPrinter output) 
+   {
+      printTaglets(tags, context, output, false);
+   }
+
+   /**
+    *  @param usedClassToPackagesMap  ClassDoc to (PackageDoc to (UsageType to (Set of Doc)))
+    */
+   private void addUsedBy(Map usedClassToPackagesMap,
+                          ClassDoc usedClass, UsageType usageType, Doc user, PackageDoc userPackage)
+   {
+      Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(usedClass);
+      if (null == packageToUsageTypeMap) {
+         packageToUsageTypeMap = new HashMap();
+         usedClassToPackagesMap.put(usedClass, packageToUsageTypeMap);
+      }
+
+      Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(userPackage);
+      if (null == usageTypeToUsersMap) {
+         usageTypeToUsersMap = new TreeMap();
+         packageToUsageTypeMap.put(userPackage, usageTypeToUsersMap);
+      }
+
+      Set userSet = (Set)usageTypeToUsersMap.get(usageType);
+      if (null == userSet) {
+         userSet = new TreeSet(); // FIXME: we need the collator from Main here
+         usageTypeToUsersMap.put(usageType, userSet);
+      }
+      userSet.add(user);
+   }
+
+   /**
+    *  Create the cross reference database.
+    */
+   private Map collectUsage() {
+
+      Map _usedClassToPackagesMap = new HashMap();
+
+      ClassDoc[] classes = rootDoc.classes();
+      for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
+         ClassDoc clazz = classes[i];
+         
+         if (clazz.isInterface()) {
+            // classes implementing
+            InterfaceRelation relation
+               = (InterfaceRelation)getInterfaceRelations().get(clazz);
+            Iterator it = relation.implementingClasses.iterator();
+            while (it.hasNext()) {
+               ClassDoc implementor = (ClassDoc)it.next();
+               addUsedBy(_usedClassToPackagesMap,
+                         clazz, UsageType.CLASS_IMPLEMENTING, implementor, implementor.containingPackage());
+            }
+         }
+         else {
+            // classes derived from
+            for (ClassDoc superclass = clazz.superclass(); superclass != null; 
+                 superclass = superclass.superclass()) {
+               addUsedBy(_usedClassToPackagesMap,
+                         superclass, UsageType.CLASS_DERIVED_FROM, clazz, clazz.containingPackage());
+            }
+         }
+
+         FieldDoc[] fields = clazz.fields();
+         for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
+            FieldDoc field = fields[j];
+
+            // fields of type                  
+            ClassDoc fieldType = field.type().asClassDoc();
+            if (null != fieldType) {
+               addUsedBy(_usedClassToPackagesMap,
+                         fieldType, UsageType.FIELD_OF_TYPE, 
+                         field, clazz.containingPackage());
+            }
+         }
+
+         MethodDoc[] methods = clazz.methods();
+         for (int j = 0, jlim = methods.length; j < jlim; ++ j) {
+            MethodDoc method = methods[j];
+
+            // methods with return type
+
+            ClassDoc returnType = method.returnType().asClassDoc();
+            if (null != returnType) {
+               addUsedBy(_usedClassToPackagesMap,
+                         returnType, UsageType.METHOD_WITH_RETURN_TYPE, 
+                         method, clazz.containingPackage());
+            }
+            Parameter[] parameters = method.parameters();
+            for (int k=0; k<parameters.length; ++k) {
+
+               // methods with parameter type
+
+               Parameter parameter = parameters[k];
+               ClassDoc parameterType = parameter.type().asClassDoc();
+               if (null != parameterType) {
+                  addUsedBy(_usedClassToPackagesMap,
+                            parameterType, UsageType.METHOD_WITH_PARAMETER_TYPE, 
+                            method, clazz.containingPackage());
+               }
+            }
+
+            // methods which throw
+
+            ClassDoc[] thrownExceptions = method.thrownExceptions();
+            for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
+               ClassDoc thrownException = thrownExceptions[k];
+               addUsedBy(_usedClassToPackagesMap,
+                         thrownException, UsageType.METHOD_WITH_THROWN_TYPE, 
+                         method, clazz.containingPackage());
+            }
+         }
+                  
+         ConstructorDoc[] constructors = clazz.constructors();
+         for (int j = 0, jlim = constructors.length; j < jlim; ++ j) {
+
+            ConstructorDoc constructor = constructors[j];
+
+            Parameter[] parameters = constructor.parameters();
+            for (int k = 0, klim = parameters.length; k < klim; ++ k) {
+
+               // constructors with parameter type
+                     
+               Parameter parameter = parameters[k];
+               ClassDoc parameterType = parameter.type().asClassDoc();
+               if (null != parameterType) {
+                  addUsedBy(_usedClassToPackagesMap,
+                            parameterType, UsageType.CONSTRUCTOR_WITH_PARAMETER_TYPE, 
+                            constructor, clazz.containingPackage());
+               }
+            }
+
+            // constructors which throw
+
+            ClassDoc[] thrownExceptions = constructor.thrownExceptions();
+            for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
+               ClassDoc thrownException = thrownExceptions[k];
+               addUsedBy(_usedClassToPackagesMap,
+                         thrownException, UsageType.CONSTRUCTOR_WITH_THROWN_TYPE, 
+                         constructor, clazz.containingPackage());
+            }
+         }
+      }
+      return _usedClassToPackagesMap;
+   }
+
+   private Map usedClassToPackagesMap = null;
+
+   protected Map getUsageOfClass(ClassDoc classDoc)
+   {
+      if (null == this.usedClassToPackagesMap) {
+         this.usedClassToPackagesMap = collectUsage();
+      }
+      return (Map)this.usedClassToPackagesMap.get(classDoc);
+   }
+
+   protected static class UsageType
+      implements Comparable
+   {
+      public static final UsageType CLASS_DERIVED_FROM = new UsageType("class-derived-from");
+      public static final UsageType CLASS_IMPLEMENTING = new UsageType("class-implementing");
+      public static final UsageType FIELD_OF_TYPE = new UsageType("field-of-type");
+      public static final UsageType METHOD_WITH_RETURN_TYPE = new UsageType("method-with-return-type");
+      public static final UsageType METHOD_WITH_PARAMETER_TYPE = new UsageType("method-with-parameter-type");
+      public static final UsageType METHOD_WITH_THROWN_TYPE = new UsageType("method-with-thrown-type");
+      public static final UsageType CONSTRUCTOR_WITH_PARAMETER_TYPE = new UsageType("constructor-with-parameter-type");
+      public static final UsageType CONSTRUCTOR_WITH_THROWN_TYPE = new UsageType("constructor-with-thrown-type");
+      private String id;
+
+      private UsageType(String id)
+      {
+         this.id = id;
+      }
+
+      public int compareTo(Object other)
+      {
+         return this.id.compareTo(((UsageType)other).id);
+      }
+
+      public String toString() { 
+         return "UsageType{id=" + id + "}"; 
+      }
+
+      public String getId() {
+         return id;
+      }
+   }
+
+   private ResourceBundle resources;
+
+   protected String getString(String key)
+   {
+      if (null == resources) {
+         Locale currentLocale = Locale.getDefault();
+
+         resources
+            = ResourceBundle.getBundle("htmldoclet.HtmlDoclet", currentLocale);
+      }
+
+      return resources.getString(key);
+   }
+
+   protected String format(String key, String value1)
+   {
+      return MessageFormat.format(getString(key), new Object[] { value1 });
+   }
+
+   protected List getPackageGroups()
+   {
+      return packageGroups;
+   }
+
+   protected void copyDocFiles(File sourceDir, File targetDir)
+      throws IOException
+   {
+      File sourceDocFiles = new File(sourceDir, "doc-files");
+      File targetDocFiles = new File(targetDir, "doc-files");
+
+      if (sourceDocFiles.exists()) {
+         IOToolkit.copyDirectory(sourceDocFiles,
+                                 targetDocFiles,
+                                 optionDocFilesSubDirs.getValue(),
+                                 optionExcludeDocFilesSubDir.getComponents());
+      }
+   }
+
+   private Set sourcePaths;
+
+   /**
+    *  Try to determine the source directory for the given package by
+    *  looking at the path specified by -sourcepath, or the current
+    *  directory if -sourcepath hasn't been specified.
+    *
+    *  @throws IOException if the source directory couldn't be
+    *  located.
+    *
+    *  @return List of File
+    */
+   protected List getPackageSourceDirs(PackageDoc packageDoc)
+      throws IOException
+   {
+      if (null == sourcePaths) {
+         for (int i=0; i<rootDoc.options().length; ++i) {
+            if ("-sourcepath".equals(rootDoc.options()[i][0])
+                || "-s".equals(rootDoc.options()[i][0])) {
+               sourcePaths = new LinkedHashSet();
+               String sourcepathString = rootDoc.options()[i][1];
+               StringTokenizer st = new StringTokenizer(sourcepathString, File.pathSeparator);
+               while (st.hasMoreTokens()) {
+                  sourcePaths.add(new File(st.nextToken()));
+               }
+            }
+         }
+         if (null == sourcePaths) {
+            sourcePaths = new LinkedHashSet();
+            sourcePaths.add(new File(System.getProperty("user.dir")));
+         }
+      }
+
+      String packageSubDir = packageDoc.name().replace('.', File.separatorChar);
+      Iterator it = sourcePaths.iterator();
+      List result = new LinkedList();
+      while (it.hasNext()) {
+         File pathComponent = (File)it.next();
+         File packageDir = new File(pathComponent, packageSubDir);
+         if (packageDir.exists()) {
+            result.add(packageDir);
+         }
+      }
+      if (result.isEmpty()) {
+         throw new IOException("Couldn't locate source directory for package " + packageDoc.name());
+      }
+      else {
+         return result;
+      }
+   }
+
+   protected File getSourceFile(ClassDoc classDoc)
+      throws IOException
+   {
+      List packageDirs = getPackageSourceDirs(classDoc.containingPackage());
+      Iterator it = packageDirs.iterator();
+      while (it.hasNext()) {
+         File packageDir = (File)it.next();
+         File sourceFile = new File(packageDir, getOuterClassDoc(classDoc).name() + ".java");
+         if (sourceFile.exists()) {
+            return sourceFile;
+         }
+      }
+
+      throw new IOException("Couldn't locate source file for class " + classDoc.qualifiedTypeName());
+   }
+
+   protected void printError(String error) 
+   {
+      if (null != rootDoc) {
+        rootDoc.printError(error);
+      }
+      else {
+        System.err.println("ERROR: "+error);
+      }
+   }
+
+   protected void printWarning(String warning) 
+   {
+      if (null != rootDoc) {
+        rootDoc.printWarning(warning);
+      }
+      else {
+        System.err.println("WARNING: "+warning);
+      }
+   }
+
+   protected void printNotice(String notice) 
+   {
+      if (null != rootDoc) {
+        rootDoc.printNotice(notice);
+      }
+      else {
+        System.err.println(notice);
+      }
+   }
+
+   protected static ClassDoc getOuterClassDoc(ClassDoc classDoc)
+   {
+      while (null != classDoc.containingClass()) {
+         classDoc = classDoc.containingClass();
+      }
+      return classDoc;
+   }
+
+   private SortedSet allPackages;
+
+   protected Set getAllPackages()
+   {
+      if (null == this.allPackages) {
+         allPackages = new TreeSet();
+         PackageDoc[] specifiedPackages = rootDoc.specifiedPackages();
+         for (int i=0; i<specifiedPackages.length; ++i) {
+            allPackages.add(specifiedPackages[i]);
+         }
+         ClassDoc[] specifiedClasses = rootDoc.specifiedClasses();
+         for (int i=0; i<specifiedClasses.length; ++i) {
+            allPackages.add(specifiedClasses[i].containingPackage());
+         }
+      }
+      return this.allPackages;
+   }
+
+   protected boolean omitPackageQualifier(PackageDoc packageDoc)
+   {
+      if (!optionNoQualifier.isSpecified()) {
+         return false;
+      }
+      else {
+         return optionNoQualifier.match(packageDoc);
+      }
+   }
+
+   protected String possiblyQualifiedName(Type type)
+   {
+      if (null == type.asClassDoc() 
+          || !omitPackageQualifier(type.asClassDoc().containingPackage())) {
+         return type.qualifiedTypeName();
+      }
+      else {
+         return type.typeName();
+      }
+   }
+
+   protected static class InterfaceRelation
+   {
+      public Set superInterfaces;
+      public Set subInterfaces;
+      public Set implementingClasses;
+
+      public InterfaceRelation()
+      {
+         superInterfaces = new TreeSet();
+         subInterfaces = new TreeSet();
+         implementingClasses = new TreeSet();
+      }
+   }
+
+   private void addAllInterfaces(ClassDoc classDoc, Set allInterfaces)
+   {
+      ClassDoc[] interfaces = classDoc.interfaces();
+      for (int i=0; i<interfaces.length; ++i) {
+         allInterfaces.add(interfaces[i]);
+         addAllInterfaces(interfaces[i], allInterfaces);
+      }
+   }
+
+   private Map allSubClasses;
+
+   protected Map getAllSubClasses()
+   {
+      if (null == allSubClasses) {
+         allSubClasses = new HashMap();
+
+         ClassDoc[] classDocs = getRootDoc().classes();
+         for (int i=0; i<classDocs.length; ++i) {
+            if (!classDocs[i].isInterface()) {
+               for (ClassDoc cd = classDocs[i].superclass();
+                    null != cd;
+                    cd = cd.superclass()) {
+
+                  if (!cd.qualifiedTypeName().equals("java.lang.Object")) {
+                     List subClasses = (List)allSubClasses.get(cd);
+                     if (null == subClasses) {
+                        subClasses = new LinkedList();
+                        allSubClasses.put(cd, subClasses);
+                     }
+                     subClasses.add(classDocs[i]);
+                  }
+               }
+            }
+         }
+      }
+      return allSubClasses;
+   }
+
+   private Map interfaceRelations;
+
+   private void addToInterfaces(ClassDoc classDoc, ClassDoc[] interfaces)
+   {
+      for (int i=0; i<interfaces.length; ++i) {
+         InterfaceRelation interfaceRelation
+            = (InterfaceRelation)interfaceRelations.get(interfaces[i]);
+         if (null == interfaceRelation) {
+            interfaceRelation = new InterfaceRelation();
+            interfaceRelations.put(interfaces[i], interfaceRelation);
+         }
+         interfaceRelation.implementingClasses.add(classDoc);
+         addToInterfaces(classDoc, interfaces[i].interfaces());
+      }
+   }
+
+   protected Map getInterfaceRelations()
+   {
+      if (null == interfaceRelations) {
+         interfaceRelations = new HashMap();
+
+         ClassDoc[] classDocs = getRootDoc().classes();
+         for (int i=0; i<classDocs.length; ++i) {
+            if (classDocs[i].isInterface()) {
+               InterfaceRelation relation = new InterfaceRelation();
+               addAllInterfaces(classDocs[i], relation.superInterfaces);
+               interfaceRelations.put(classDocs[i], relation);
+            }
+         }
+
+         Iterator it = interfaceRelations.keySet().iterator();
+         while (it.hasNext()) {
+            ClassDoc interfaceDoc = (ClassDoc)it.next();
+            InterfaceRelation relation 
+               = (InterfaceRelation)interfaceRelations.get(interfaceDoc);
+            Iterator superIt = relation.superInterfaces.iterator();
+            while (superIt.hasNext()) {
+               ClassDoc superInterfaceDoc = (ClassDoc)superIt.next();
+               InterfaceRelation superRelation
+                  = (InterfaceRelation)interfaceRelations.get(superInterfaceDoc);
+               if (null != superRelation) {
+                  superRelation.subInterfaces.add(interfaceDoc);
+               }
+            }
+         }
+
+         for (int i=0; i<classDocs.length; ++i) {
+            if (!classDocs[i].isInterface()) {
+               for (ClassDoc cd = classDocs[i]; null != cd; cd = cd.superclass()) {
+                  addToInterfaces(classDocs[i], cd.interfaces());
+               }
+            }
+         }
+      }
+
+      return interfaceRelations;
+   }
+
+   private Map sortedMethodMap = new HashMap();
+
+   protected MethodDoc[] getSortedMethods(ClassDoc classDoc)
+   {
+      MethodDoc[] result = (MethodDoc[])sortedMethodMap.get(classDoc);
+      if (null == result) {
+         MethodDoc[] methods = classDoc.methods();
+         result = (MethodDoc[])methods.clone();
+         Arrays.sort(result);
+         return result;
+      }
+      return result;
+   }
+
+   private Map sortedConstructorMap = new HashMap();
+
+   protected ConstructorDoc[] getSortedConstructors(ClassDoc classDoc)
+   {
+      ConstructorDoc[] result = (ConstructorDoc[])sortedConstructorMap.get(classDoc);
+      if (null == result) {
+         ConstructorDoc[] constructors = classDoc.constructors();
+         result = (ConstructorDoc[])constructors.clone();
+         Arrays.sort(result);
+         return result;
+      }
+      return result;
+   }
+
+   private Map sortedFieldMap = new HashMap();
+
+   protected FieldDoc[] getSortedFields(ClassDoc classDoc)
+   {
+      FieldDoc[] result = (FieldDoc[])sortedFieldMap.get(classDoc);
+      if (null == result) {
+         FieldDoc[] fields = classDoc.fields();
+         result = (FieldDoc[])fields.clone();
+         Arrays.sort(result);
+         return result;
+      }
+      return result;
+   }
+
+   private Map sortedInnerClassMap = new HashMap();
+
+   protected ClassDoc[] getSortedInnerClasses(ClassDoc classDoc)
+   {
+      ClassDoc[] result = (ClassDoc[])sortedInnerClassMap.get(classDoc);
+      if (null == result) {
+         ClassDoc[] innerClasses = classDoc.innerClasses();
+         result = (ClassDoc[])innerClasses.clone();
+         Arrays.sort(result);
+         return result;
+      }
+      return result;
+   }
+
+   protected abstract String renderTag(String tagName, Tag[] tags, TagletContext context);
+   
+   protected abstract String getDocletVersion();
+
+   protected SortedSet getThrownExceptions(ExecutableMemberDoc execMemberDoc)
+   {
+      SortedSet result = new TreeSet();
+      ClassDoc[] thrownExceptions = execMemberDoc.thrownExceptions();
+      for (int j=0; j<thrownExceptions.length; ++j) {
+         result.add(thrownExceptions[j]);
+      }
+      return result;
+   }
+
+   protected boolean isUncheckedException(ClassDoc classDoc) 
+   {
+      if (classDoc.isException()) {
+         while (null != classDoc) {
+            if (classDoc.qualifiedTypeName().equals("java.lang.RuntimeException")) {
+               return true;
+            }
+            classDoc = classDoc.superclass();
+         }
+         return false;
+      }
+      else {
+         return false;
+      }
+   }
+
+   protected FieldDoc findField(ClassDoc classDoc, String fieldName)
+   {
+      for (ClassDoc cd = classDoc; cd != null; cd = cd.superclass()) {
+         FieldDoc[] fields = cd.fields(false);
+         for (int i=0; i<fields.length; ++i) {
+            if (fields[i].name().equals(fieldName)) {
+               return fields[i];
+            }
+         }
+      }
+      return null;
+   }
+
+   private Map implementedInterfacesCache = new HashMap();
+
+   protected Set getImplementedInterfaces(ClassDoc classDoc)
+   {
+      Set result = (Set)implementedInterfacesCache.get(classDoc);
+      if (null == result) {
+         result = new TreeSet();
+
+         for (ClassDoc cd = classDoc; cd != null; cd = cd.superclass()) {
+            ClassDoc[] interfaces = cd.interfaces();
+            for (int i=0; i<interfaces.length; ++i) {
+               result.add(interfaces[i]);
+               InterfaceRelation relation 
+                  = (InterfaceRelation)getInterfaceRelations().get(interfaces[i]);
+               if (null != relation) {
+                  result.addAll(relation.superInterfaces);
+               }
+            }
+         }
+
+         implementedInterfacesCache.put(classDoc, result);
+      }
+
+      return result;
+   }
+
+   protected boolean isSinglePackage()
+   {
+      return getAllPackages().size() <= 1;
+   }
+
+   protected PackageDoc getSinglePackage()
+   {
+      return (PackageDoc)getAllPackages().iterator().next();
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java
new file mode 100644 (file)
index 0000000..f75c6cd
--- /dev/null
@@ -0,0 +1,37 @@
+/* gnu.classpath.tools.doclets.DocletConfigurationException
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+/**
+ *  Thrown by <code>AbstractDoclet</code> members or members of
+ *  <code>AbstractDoclet</code> subclasses when a problem caused by
+ *  user-specified options is detected.
+ *
+ *  @see AbstractDoclet
+ */
+public class DocletConfigurationException 
+   extends Exception
+{
+   public DocletConfigurationException(String message)
+   {
+      super(message);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java
new file mode 100644 (file)
index 0000000..fec2c7a
--- /dev/null
@@ -0,0 +1,39 @@
+/* gnu.classpath.tools.doclets.DocletOption
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+public abstract class DocletOption
+{
+   private String optionName;
+
+   protected DocletOption(String optionName)
+   {
+      this.optionName = optionName;
+   }
+
+   public String getName()
+   {
+      return this.optionName;
+   }
+
+   public abstract int getLength();
+   public abstract boolean set(String[] optionArr);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java
new file mode 100644 (file)
index 0000000..b33519f
--- /dev/null
@@ -0,0 +1,60 @@
+/* gnu.classpath.tools.doclets.DocletOptionColonSeparated
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+/**
+ *  Processes a doclet option whose value consists of a
+ *  colon-separated list of strings.
+ */
+public class DocletOptionColonSeparated
+   extends DocletOption
+{
+   private Set components = new LinkedHashSet();
+
+   DocletOptionColonSeparated(String optionName)
+   {
+      super(optionName);
+   }
+      
+   public int getLength()
+   {
+      return 2;
+   }
+
+   public boolean set(String[] optionArr)
+   {
+      StringTokenizer st = new StringTokenizer(":");
+      while (st.hasMoreTokens()) {
+         components.add(st.nextToken());
+      }
+      return true;
+   }
+
+   public Set getComponents()
+   {
+      return components;
+   }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java
new file mode 100644 (file)
index 0000000..c1f1c3c
--- /dev/null
@@ -0,0 +1,60 @@
+/* gnu.classpath.tools.doclets.DocletOptionFile
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import java.io.File;
+
+/**
+ *  Processes a doclet option whose value denotes an existing or
+ *  non-existing file in the local file system.
+ */
+public class DocletOptionFile
+   extends DocletOption
+{
+   private File value;
+
+   public DocletOptionFile(String optionName)
+   {
+      this(optionName, null);
+   }
+
+   public DocletOptionFile(String optionName, File defaultFile)
+   {
+      super(optionName);
+      this.value = defaultFile;
+   }
+
+   public File getValue()
+   {
+      return this.value;
+   }
+
+   public int getLength()
+   {
+      return 2;
+   }
+
+   public boolean set(String[] optionArr)
+   {
+      this.value = new File(optionArr[1]);
+      return true;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java
new file mode 100644 (file)
index 0000000..0909a86
--- /dev/null
@@ -0,0 +1,52 @@
+/* gnu.classpath.tools.doclets.DocletOptionFlag
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+/**
+ *  Processes a doclet option without a value whose existance denotes
+ *  that a specific feature should be enabled or disabled.
+ */
+public class DocletOptionFlag
+   extends DocletOption
+{
+   private boolean value = false;
+
+   public DocletOptionFlag(String optionName)
+   {
+      super(optionName);
+   }
+
+   public boolean getValue()
+   {
+      return this.value;
+   }
+
+   public int getLength()
+   {
+      return 1;
+   }
+
+   public boolean set(String[] optionArr)
+   {
+      value = true;
+      return true;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java
new file mode 100644 (file)
index 0000000..261c676
--- /dev/null
@@ -0,0 +1,108 @@
+/* gnu.classpath.tools.doclets.DocletOptionPackageWildcard
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.StringTokenizer;
+import java.util.TreeSet;
+
+import com.sun.javadoc.PackageDoc;
+
+/**
+ *  Processes a doclet option whose value consists of a
+ *  colon-separated list of package wildcards, or - optionally -
+ *  equals the string "all", denoting that all packages should match.
+ */
+public class DocletOptionPackageWildcard
+   extends DocletOption
+{
+   private PackageMatcher packageMatcher;
+   private boolean allowAll;
+   private boolean specified;
+
+   DocletOptionPackageWildcard(String optionName, boolean allowAll)
+   {
+      super(optionName);
+      this.allowAll = allowAll;
+   }
+      
+   public int getLength()
+   {
+      return 2;
+   }
+
+   public boolean isSpecified()
+   {
+      return specified;
+   }
+
+   public boolean set(String[] optionArr)
+   {
+      this.specified = true;
+      try {
+         if (allowAll && "all".equals(optionArr[2])) {
+            packageMatcher = null;
+         }
+         else {
+            packageMatcher = new PackageMatcher();
+            
+            StringTokenizer tokenizer = new StringTokenizer(optionArr[2], ":");
+            while (tokenizer.hasMoreTokens()) {
+               String packageWildcard = tokenizer.nextToken();
+               packageMatcher.addWildcard(packageWildcard);
+            }
+         }
+         return true;
+      }
+      catch (InvalidPackageWildcardException e) {
+         // FIXME: output problem description here, better throw
+         // DocletConfigurationException
+         return false;
+      }
+   }
+
+   public SortedSet filter(PackageDoc[] packages)
+   {
+      if (null != packageMatcher) {
+         return packageMatcher.filter(packages);
+      }
+      else {
+         SortedSet result = new TreeSet();
+         for (int i=0; i<packages.length; ++i) {
+            result.add(packages[i]);
+         }
+         return result;
+      }
+   }
+
+   public boolean match(PackageDoc packageDoc)
+   {
+      if (null != packageMatcher) {
+         return packageMatcher.match(packageDoc);
+      }
+      else {
+         return true;
+      }
+   }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java
new file mode 100644 (file)
index 0000000..b9b9566
--- /dev/null
@@ -0,0 +1,51 @@
+/* gnu.classpath.tools.doclets.DocletOptionString
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+/**
+ *  Processes a doclet option whose value is an arbitrary string.
+ */
+public class DocletOptionString
+   extends DocletOption
+{
+   private String value = null;
+
+   public DocletOptionString(String optionName)
+   {
+      super(optionName);
+   }
+
+   public String getValue()
+   {
+      return this.value;
+   }
+
+   public int getLength()
+   {
+      return 2;
+   }
+
+   public boolean set(String[] optionArr)
+   {
+      value = optionArr[1];
+      return true;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java
new file mode 100644 (file)
index 0000000..fa5cf84
--- /dev/null
@@ -0,0 +1,29 @@
+/* gnu.classpath.tools.doclets.InlineTagRenderer
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import com.sun.javadoc.Tag;
+import gnu.classpath.tools.taglets.TagletContext;
+
+public interface InlineTagRenderer
+{
+   public String renderInlineTags(Tag[] tags, TagletContext context);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java
new file mode 100644 (file)
index 0000000..f8806c5
--- /dev/null
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.doclets.InvalidPackageWildcardException
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+/**
+ *  Thrown when an invalid wildcard pattern is passed to {@link
+ *  PackageMatcher.addWildcard(String)}.
+ */
+public class InvalidPackageWildcardException
+   extends Exception
+{
+   public InvalidPackageWildcardException(String msg)
+   {
+      super(msg);
+   }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java
new file mode 100644 (file)
index 0000000..a005b16
--- /dev/null
@@ -0,0 +1,41 @@
+/* gnu.classpath.tools.doclets.PackageGroup
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import java.util.SortedSet;
+
+/**
+ *  Stores a package group given on the command line.
+ */
+public class PackageGroup
+{
+   private String name;
+   private SortedSet packages; // contains PackageDoc
+
+   public PackageGroup(String name, SortedSet packages)
+   {
+      this.name = name;
+      this.packages = packages;
+   }
+
+   public String getName() { return name; }
+   public SortedSet getPackages() { return packages; }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java
new file mode 100644 (file)
index 0000000..23da79c
--- /dev/null
@@ -0,0 +1,135 @@
+/* gnu.classpath.tools.doclets.PackageMatcher
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import java.util.Iterator;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import com.sun.javadoc.PackageDoc;
+
+/**
+ *  Filters a set of packages according to a set of wildcards.
+ */
+public class PackageMatcher
+{
+   private Set patterns = new HashSet();
+   
+   /**
+    *  Add a wildcard to be matched. Wildcards can contain asterisk
+    *  characters which match zero or more characters.
+    *
+    *  @throw InvalidPackageWildcardException if the wildcard cannot
+    *  match any valid package name.
+    */
+   public void addWildcard(String wildcard) 
+      throws InvalidPackageWildcardException
+   {
+      final int STATE_ID_START = 0;
+      final int STATE_ID = 1;
+
+      int state = STATE_ID_START;
+
+      char[] wildcardChars = wildcard.toCharArray();
+      StringBuffer regexString = new StringBuffer();
+
+      for (int i=0; i<wildcardChars.length; ++i) {
+         char c = wildcardChars[i];
+         switch (state) {
+         case STATE_ID_START:
+            if ('*' == c) {
+               regexString.append(".*");
+            }
+            else if (Character.isJavaIdentifierStart(c)) {
+               regexString.append(c);
+            }
+            else {
+               throw new InvalidPackageWildcardException(wildcard);
+            }
+            state = STATE_ID;
+            break;
+
+         case STATE_ID:
+            if ('.' == c) {
+               regexString.append("\\.");
+               state = STATE_ID_START;
+            }
+            else if ('*' == c) {
+               regexString.append(".*");
+            }
+            else if (Character.isJavaIdentifierPart(c)) {
+               regexString.append(c);
+            }
+            else {
+               throw new InvalidPackageWildcardException(wildcard);
+            }
+         }
+      }
+      if (STATE_ID_START == state) {
+         throw new InvalidPackageWildcardException(wildcard);
+      }
+
+      patterns.add(Pattern.compile(regexString.toString()));
+   }
+
+   /**
+    *  Return a sorted, filtered set of packages. A package from the
+    *  array given will be put into the output list if it matches one
+    *  or more of the wildcards added to this PackageMatcher before.
+    */
+   public SortedSet filter(PackageDoc[] packageDocs)
+   {
+      SortedSet result = new TreeSet();
+      for (int i=0; i<packageDocs.length; ++i) {
+         if (match(packageDocs[i])) {
+            result.add(packageDocs[i]);
+         }
+      }
+      return result;
+   }
+
+   /**
+    *  Return true when the given PackageDoc matches one or more of
+    *  the wildcard added to this PackageMatcher before.
+    */
+   public boolean match(PackageDoc packageDoc)
+   {
+      Iterator it = patterns.iterator();
+      while (it.hasNext()) {
+         Pattern pattern = (Pattern)it.next();
+         Matcher matcher = pattern.matcher(packageDoc.name());
+         if (matcher.matches()) {
+            return true;
+         }
+      }
+      return false;
+   }
+
+   public String toString()
+   {
+      return "PackageMatcher{patterns=" + patterns + "}";
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java
new file mode 100644 (file)
index 0000000..86a6a4e
--- /dev/null
@@ -0,0 +1,83 @@
+/* gnu.classpath.tools.doclets.StandardTaglet
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import com.sun.javadoc.Tag;
+import com.sun.tools.doclets.Taglet;
+
+/**
+ *  Represents one of the built-in taglets. Used for specifying taglet
+ *  order.
+ */
+public class StandardTaglet
+   implements Taglet
+{
+   private String name;
+
+   /**
+    *  Initialize with one of the built-in taglet names.
+    */
+   public StandardTaglet(String name) {
+      this.name = name;
+   }
+
+   public boolean inField() {
+      return true;
+   }
+
+   public boolean inConstructor() {
+      return true;
+   }
+    
+   public boolean inMethod() {
+      return true;
+   }
+   
+   public boolean inOverview() {
+      return true;
+   }
+
+   public boolean inPackage() {
+      return true;
+   }
+
+   public boolean inType() {
+      return true;
+   }
+   
+   public boolean isInlineTag() {
+      return false;
+   }
+
+   public String getName() {
+      return this.name;
+   }   
+
+   public String toString(Tag tag) {
+      //assert(false);
+      return null;
+   }
+
+   public String toString(Tag[] tags) {
+      //assert(false);
+      return null;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java
new file mode 100644 (file)
index 0000000..e626369
--- /dev/null
@@ -0,0 +1,30 @@
+/* gnu.classpath.tools.doclets.TagletPrinter
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+/**
+ *  Call-back interface for taglet string output.
+ */
+public interface TagletPrinter
+{
+   public void printTagletString(String s);
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java
new file mode 100644 (file)
index 0000000..63026de
--- /dev/null
@@ -0,0 +1,137 @@
+package gnu.classpath.tools.doclets.debugdoclet;
+
+import com.sun.javadoc.ClassDoc;
+import com.sun.javadoc.FieldDoc;
+import com.sun.javadoc.MethodDoc;
+import com.sun.javadoc.PackageDoc;
+import com.sun.javadoc.RootDoc;
+import com.sun.javadoc.Tag;
+
+import java.io.PrintStream;
+
+import java.util.Arrays;
+
+public class DebugDoclet
+{
+   public static boolean start(RootDoc rootDoc)
+   {
+      new DebugDoclet().run(rootDoc);
+      return true;
+   }
+   
+   private PrintStream out;
+
+   public DebugDoclet()
+   {
+      out = System.out;
+   }
+
+   private void printHeader(String header)
+   {
+      out.println();
+      out.println("******** " + header + " ********");
+      out.println();
+   }
+
+   private void printSubHeader(String header)
+   {
+      out.println();
+      out.println("======== " + header + " ========");
+      out.println();
+   }
+
+   private void printSub2Header(String header)
+   {
+      out.println();
+      out.println("-------- " + header + " --------");
+      out.println();
+   }
+
+   private void run(RootDoc rootDoc) 
+   {
+      printHeader("Overview");
+
+      printSubHeader("Specified Packages");
+
+      PackageDoc[] specifiedPackages = rootDoc.specifiedPackages();
+      Arrays.sort(specifiedPackages);
+      for (int i=0; i<specifiedPackages.length; ++i) {
+         out.println(specifiedPackages[i].name());
+      }
+
+      printSubHeader("Specified Classes");
+
+      ClassDoc[] specifiedClasses = rootDoc.specifiedClasses();
+      Arrays.sort(specifiedClasses);
+      for (int i=0; i<specifiedClasses.length; ++i) {
+         out.println(specifiedClasses[i].qualifiedTypeName());
+      }
+      printSubHeader("Classes");
+
+      ClassDoc[] classes = rootDoc.classes();
+      Arrays.sort(classes);
+      for (int i=0; i<classes.length; ++i) {
+         out.println(classes[i].qualifiedTypeName());
+      }
+
+      printHeader("Class Detail");
+
+      for (int i=0; i<classes.length; ++i) {
+         printSubHeader(classes[i].qualifiedTypeName());
+
+         printTags(classes[i].firstSentenceTags());
+
+         printSub2Header("Methods");
+
+         MethodDoc[] methods = classes[i].methods();
+
+         for (int j=0; j<methods.length; ++j) {
+            out.println("name: \"" + methods[j].name() + "\"");
+            out.println("signature: \"" + methods[j].signature() + "\"");
+            out.println("modifiers: \"" + methods[j].modifiers() + "\"");
+            out.print("throws: ");
+            ClassDoc[] thrownExceptions = methods[j].thrownExceptions();
+            for (int k=0; k<thrownExceptions.length; ++k) {
+               if (k>0) { out.print(", "); }
+               out.print(thrownExceptions[k].qualifiedTypeName());
+            }
+            out.println();
+         }
+
+         printSub2Header("Fields");
+
+         FieldDoc[] fields = classes[i].fields();
+
+         for (int j=0; j<fields.length; ++j) {
+            out.println("name: \"" + fields[j].name() + "\"");
+            out.println("modifiers: \"" + fields[j].modifiers() + "\"");
+            out.println();
+         }
+
+         printSub2Header("Serializable Fields");
+
+         FieldDoc[] sfields = classes[i].serializableFields();
+
+         for (int j=0; j<sfields.length; ++j) {
+            out.println("name: \"" + sfields[j].name() + "\"");
+            out.println("modifiers: \"" + sfields[j].modifiers() + "\"");
+            out.println();
+         }
+      }
+   }
+
+   private void printTag(Tag tag)
+   {
+      if (null != tag.text()) { 
+         System.out.println(tag.text());
+      }
+   }
+
+   private void printTags(Tag[] tags)
+   {
+      for (int i=0; i<tags.length; ++i) {
+         out.println("Tag #" + (i+1) + ":");
+         printTag(tags[i]);
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java
new file mode 100644 (file)
index 0000000..5086759
--- /dev/null
@@ -0,0 +1,283 @@
+/* gnu.classpath.tools.doclets.htmldoclet.CssClass
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.htmldoclet;
+
+/**
+ *  Represents a CSS (Cascading Stylesheet) class. Supports
+ *  substituting <code>div</code> and <code>span</code> tags by more
+ *  specialized HTML tags.
+ */
+public class CssClass
+{
+   public static final CssClass BODY_MENU_PACKAGES        = new CssClass("menu packages");
+   public static final CssClass BODY_MENU_CLASSES         = new CssClass("menu classes");
+   public static final CssClass BODY_CONTENT_CLASS        = new CssClass("content class");
+   public static final CssClass BODY_CONTENT_DEPRECATED   = new CssClass("content deprecated");
+   public static final CssClass BODY_CONTENT_PACKAGE      = new CssClass("content package");
+   public static final CssClass BODY_CONTENT_OVERVIEW     = new CssClass("content overview");
+   public static final CssClass BODY_CONTENT_ABOUT        = new CssClass("content about");
+   public static final CssClass BODY_CONTENT_HELP         = new CssClass("content help");
+   public static final CssClass BODY_CONTENT_PACKAGE_TREE = new CssClass("content packagetree");
+   public static final CssClass BODY_CONTENT_FULL_TREE    = new CssClass("content fulltree");
+   public static final CssClass BODY_CONTENT_INDEX        = new CssClass("content index");
+   public static final CssClass BODY_CONTENT_USES         = new CssClass("content uses");
+   public static final CssClass BODY_CONTENT_SOURCE       = new CssClass("content source");
+
+   public static final CssClass OVERVIEW_TITLE = new CssClass("overview title", "h1");
+   public static final CssClass OVERVIEW_SUMMARY = new CssClass("overview summary");
+   public static final CssClass OVERVIEW_SUMMARY_LEFT = new CssClass("left");
+   public static final CssClass OVERVIEW_SUMMARY_RIGHT = new CssClass("right");
+   public static final CssClass OVERVIEW_DESCRIPTION_TOP = new CssClass("overview description top");
+   public static final CssClass OVERVIEW_DESCRIPTION_FULL = new CssClass("overview description full");
+
+   public static final CssClass DEPRECATION_TITLE = new CssClass("deprecation title", "h1");
+   public static final CssClass DEPRECATION_SUMMARY = new CssClass("summary");
+   public static final CssClass DEPRECATION_SUMMARY_LEFT = new CssClass("left");
+   public static final CssClass DEPRECATION_SUMMARY_DESCRIPTION = new CssClass("description");
+   public static final CssClass DEPRECATION_TOC = new CssClass("dep-toc");
+   public static final CssClass DEPRECATION_TOC_HEADER = new CssClass("header", "h3");
+   public static final CssClass DEPRECATION_TOC_LIST = new CssClass("list", "ul");
+   public static final CssClass DEPRECATION_TOC_ENTRY = new CssClass("entry", "li");
+   public static final CssClass DEPRECATION_EMPTY = new CssClass("dep-empty", "p");
+   public static final CssClass DEPRECATION_LIST = new CssClass("dep-list", "div");
+
+   public static final CssClass SERIALIZED_TITLE = new CssClass("serialized title", "h1");
+   public static final CssClass SERIALIZED_PACKAGE_HEADER = new CssClass("serialized package header", "h2");
+   public static final CssClass SERIALIZED_CLASS_HEADER = new CssClass("serialized class header", "h3");
+   public static final CssClass SERIALIZED_SVUID_OUTER = new CssClass("serialized svuid outer", "p");
+   public static final CssClass SERIALIZED_SVUID_HEADER = new CssClass("serialized svuid header", "b");
+   public static final CssClass SERIALIZED_SVUID_VALUE = new CssClass("serialized svuid header");
+   public static final CssClass SERIALIZED_SECTION = new CssClass("serialized section");
+   public static final CssClass SERIALIZED_SECTION_HEADER = new CssClass("serialized section header", "h4");
+
+   public static final CssClass PACKAGE_TITLE = new CssClass("package title", "h1");
+   public static final CssClass PACKAGE_SUMMARY = new CssClass("package summary");
+   public static final CssClass PACKAGE_SUMMARY_LEFT = new CssClass("left");
+   public static final CssClass PACKAGE_SUMMARY_RIGHT = new CssClass("right");
+   public static final CssClass PACKAGE_DESCRIPTION_TOP = new CssClass("package description top");
+   public static final CssClass PACKAGE_DESCRIPTION_FULL = new CssClass("package description full");
+   public static final CssClass PACKAGE_TREE_TITLE = new CssClass("package tree title", "h1");
+   public static final CssClass PACKAGE_TREE_SECTION_TITLE = new CssClass("package tree section title", "h2");
+   public static final CssClass PACKAGE_TREE = new CssClass("tree", "ul");
+
+   public static final CssClass TREE_LINK = new CssClass("tree link", "b");
+
+   public static final CssClass FULL_TREE_PACKAGELIST = new CssClass("fulltree package list", "dl");
+   public static final CssClass FULL_TREE_PACKAGELIST_HEADER = new CssClass("fulltree package header", "dt", "b");
+   public static final CssClass FULL_TREE_PACKAGELIST_ITEM = new CssClass("fulltree package item", "dd");
+
+   public static final CssClass PACKAGE_MENU_LIST = new CssClass("package menu-list", "div");
+   public static final CssClass PACKAGE_MENU_ENTRY = new CssClass("package menu-entry");
+   public static final CssClass PACKAGE_MENU_TITLE = new CssClass("package menu-title", "h4");
+
+   public static final CssClass CLASS_MENU_LIST = new CssClass("classes menu-list", "div");
+   public static final CssClass CLASS_MENU_TITLE = new CssClass("classes menu-title", "h4");
+   public static final CssClass CLASS_MENU_SUBTITLE = new CssClass("classes menu-subtitle", "p");
+   public static final CssClass CLASS_MENU_ENTRY_CLASS = new CssClass("classes menu-entry class");
+   public static final CssClass CLASS_MENU_ENTRY_INTERFACE = new CssClass("classes menu-entry interface", "i");
+
+   public static final CssClass INDEX_TITLE = new CssClass("index title", "h1");
+   public static final CssClass INDEX_CATEGORY = new CssClass("index category");
+   public static final CssClass INDEX_CATEGORY_HEADER = new CssClass("index category header", "h2");
+   public static final CssClass INDEX_ENTRY = new CssClass("index entry");
+   public static final CssClass INDEX_ENTRY_DESCRIPTION = new CssClass("description");
+   public static final CssClass INDEX_ENTRY_KEY = new CssClass("key");
+   public static final CssClass INDEX_LETTERS = new CssClass("index letters");
+   public static final CssClass INDEX_LETTER = new CssClass("index letter");
+   public static final CssClass INDEX_LETTER_SPACER = new CssClass("index letter spacer");
+
+   public static final CssClass CLASS_TITLE = new CssClass("class title outer");
+   public static final CssClass CLASS_TITLE_PACKAGE = new CssClass("class title-package", "h3");
+   public static final CssClass CLASS_TITLE_CLASS = new CssClass("class title-class", "h1");
+   public static final CssClass CLASS_SUBCLASSES = new CssClass("class subclasses", "dl");
+   public static final CssClass CLASS_SUBCLASSES_HEADER = new CssClass("class subclasses header", "dt", "b");
+   public static final CssClass CLASS_SUBCLASSES_ITEM = new CssClass("class subclasses header", "dd");
+   public static final CssClass CLASS_ENCLOSINGCLASS = new CssClass("class enclosing", "dl");
+   public static final CssClass CLASS_ENCLOSINGCLASS_HEADER = new CssClass("class enclosing header", "dt", "b");
+   public static final CssClass CLASS_ENCLOSINGCLASS_ITEM = new CssClass("class enclosing item", "dd");
+   public static final CssClass CLASS_KNOWNIMPLEMENTING = new CssClass("class knownimplementing", "dl");
+   public static final CssClass CLASS_KNOWNIMPLEMENTING_HEADER = new CssClass("header", "dt", "b");
+   public static final CssClass CLASS_KNOWNIMPLEMENTING_ITEM = new CssClass("item", "dd");
+   public static final CssClass CLASS_INHERITANCETREE = new CssClass("class inheritance-tree");
+   public static final CssClass CLASS_SYNOPSIS = new CssClass("class synopsis outer");
+   public static final CssClass CLASS_SYNOPSIS_NAME = new CssClass("class synopsis name", "b");
+   public static final CssClass CLASS_SYNOPSIS_DECLARATION = new CssClass("class synopsis declaration", "div", "code");
+   public static final CssClass CLASS_SYNOPSIS_SUPERCLASS = new CssClass("class synopsis superclass", "div", "code");
+   public static final CssClass CLASS_SYNOPSIS_IMPLEMENTS = new CssClass("class synopsis implements", "div", "code");
+   public static final CssClass CLASS_DESCRIPTION = new CssClass("class description");
+   public static final CssClass CLASS_SUMMARY = new CssClass("class summary");
+   public static final CssClass CLASS_SUMMARY_LEFT = new CssClass("left", new String[] { "valign" }, new String[] { "top" });
+   public static final CssClass CLASS_SUMMARY_LEFT_SYNOPSIS = new CssClass("synopsis", "code");
+   public static final CssClass CLASS_SUMMARY_RIGHT = new CssClass("right");
+   public static final CssClass CLASS_SUMMARY_RIGHT_LIST = new CssClass("list", "dl");
+   public static final CssClass CLASS_SUMMARY_RIGHT_SYNOPSIS = new CssClass("synopsis", "dt", "code");
+   public static final CssClass CLASS_SUMMARY_RIGHT_DESCRIPTION = new CssClass("description", "dd");
+   public static final CssClass CLASS_SUMMARY_INHERITED = new CssClass("inherited");
+   public static final CssClass CLASS_SUMMARY_INHERITED_MEMBER = new CssClass("member", "code");
+   public static final CssClass CLASS_BOILERPLATE = new CssClass("boilerplate", "pre", new String[] { "style" }, new String[] { "font-size: x-small;" });
+
+   public static final CssClass USAGE_TITLE = new CssClass("usage title", "h1");
+   public static final CssClass USAGE_PACKAGE_TITLE = new CssClass("usage package title", "h2");
+   public static final CssClass USAGE_USAGE_TITLE = new CssClass("usage usage title", "h3");
+   public static final CssClass USAGE_SUMMARY = new CssClass("usage summary");
+   public static final CssClass USAGE_SUMMARY_LEFT = new CssClass("left");
+   public static final CssClass USAGE_SUMMARY_RIGHT = new CssClass("right");
+   public static final CssClass USAGE_SUMMARY_SYNOPSIS = new CssClass("synopsis");
+   public static final CssClass USAGE_SUMMARY_DESCRIPTION = new CssClass("description");
+   public static final CssClass USAGE_TABLE_HEADER = new CssClass("table header", "h3");
+   public static final CssClass USAGE_EMPTY = new CssClass("usage empty", "p");
+
+   public static final CssClass MEMBER_DETAIL = new CssClass("member detail outer");
+   public static final CssClass MEMBER_DETAIL_NAME = new CssClass("member detail name", "h3");
+   public static final CssClass MEMBER_DETAIL_BODY = new CssClass("member detail name", "blockquote");
+   public static final CssClass MEMBER_DETAIL_SYNOPSIS = new CssClass("member detail synopsis", "pre");
+   public static final CssClass MEMBER_DETAIL_DESCRIPTION = new CssClass("member detail description");
+   public static final CssClass MEMBER_DETAIL_SPECIFIED_BY_LIST = new CssClass("member detail specified by list", "dl");
+   public static final CssClass MEMBER_DETAIL_SPECIFIED_BY_HEADER = new CssClass("member detail specified by header", "dt", "b");
+   public static final CssClass MEMBER_DETAIL_SPECIFIED_BY_ITEM = new CssClass("member detail specified by item", "dd");
+   public static final CssClass MEMBER_DETAIL_OVERRIDDEN_LIST = new CssClass("member detail overridden list", "dl");
+   public static final CssClass MEMBER_DETAIL_OVERRIDDEN_HEADER = new CssClass("member detail overridden header", "dt", "b");
+   public static final CssClass MEMBER_DETAIL_OVERRIDDEN_ITEM = new CssClass("member detail overridden item", "dd");
+   public static final CssClass MEMBER_DETAIL_PARAMETER_LIST = new CssClass("parameter", "div", "dl");
+   public static final CssClass MEMBER_DETAIL_PARAMETER_HEADER = new CssClass("header", "dt", "b");
+   public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM = new CssClass("item", "dd");
+   public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM_NAME = new CssClass("name", "code");
+   public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM_SEPARATOR = new CssClass("separator");
+   public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM_DESCRIPTION = new CssClass("description");
+   public static final CssClass MEMBER_DETAIL_RETURN_LIST = new CssClass("member detail return list", "div", "dl");
+   public static final CssClass MEMBER_DETAIL_RETURN_HEADER = new CssClass("member detail return header", "dt", "b");
+   public static final CssClass MEMBER_DETAIL_RETURN_ITEM = new CssClass("member detail return item", "dd");
+   public static final CssClass MEMBER_DETAIL_THROWN_LIST = new CssClass("member detail thrown list", "div", "dl");
+   public static final CssClass MEMBER_DETAIL_THROWN_HEADER = new CssClass("member detail thrown header", "dt", "b");
+   public static final CssClass MEMBER_DETAIL_THROWN_ITEM = new CssClass("member detail thrown item", "dd");
+   public static final CssClass MEMBER_DETAIL_THROWN_ITEM_NAME = new CssClass("name", "code");
+   public static final CssClass MEMBER_DETAIL_THROWN_ITEM_SEPARATOR = new CssClass("separator");
+   public static final CssClass MEMBER_DETAIL_THROWN_ITEM_DESCRIPTION = new CssClass("description");
+
+   public static final CssClass TABLE_HEADER = new CssClass("table header", "h2");
+   public static final CssClass TABLE_SUB_HEADER = new CssClass("table sub header", "h3");
+   public static final CssClass TABLE_CONTAINER = new CssClass("table container", "dl", "dd");
+
+   public static final CssClass SECTION = new CssClass("section", "div");
+   public static final CssClass SECTION_HEADER = new CssClass("section header", "h2");
+
+   public static final CssClass NAVBAR_TOP = new CssClass("navbar div top");
+   public static final CssClass NAVBAR_TOP_NAVI = new CssClass("navi");
+   public static final CssClass NAVBAR_TOP_HEADER = new CssClass("header", new String[] { "rowspan" }, new String[] { "2" });
+   public static final CssClass NAVBAR_BOTTOM = new CssClass("navbar div bottom");
+   public static final CssClass NAVBAR_BOTTOM_SPACER = new CssClass("navbar bottom spacer", "p");
+   public static final CssClass NAVBAR_ITEM_ENABLED = new CssClass("navbar item enabled");
+   public static final CssClass NAVBAR_ITEM_DISABLED = new CssClass("navbar item disabled");
+   public static final CssClass NAVBAR_ITEM_ACTIVE = new CssClass("navbar item active");
+
+   public static final CssClass TAGLET = new CssClass("taglet", "div");
+
+   public static final CssClass ABOUT_TITLE = new CssClass("about title", "h1");
+   public static final CssClass ABOUT_GENERATOR = new CssClass("about generator", "p");
+
+   public static final CssClass SOURCE = new CssClass("source body");
+   public static final CssClass SOURCE_TITLE = new CssClass("source title", "h1");
+
+   public static final CssClass DEPRECATED = new CssClass("deprecated", "span");
+   public static final CssClass DEPRECATED_INLINE = new CssClass("deprecated", "p");
+   public static final CssClass DEPRECATED_HEADER = new CssClass("deprecated header", "b");
+   public static final CssClass DEPRECATED_BODY = new CssClass("deprecated", "i");
+
+   private String name;
+   private String elementName;
+   private String innerElementName;
+   private String[] attributeNames;
+   private String[] attributeValues;
+
+   private CssClass(String name)
+   {
+      this(name, null);
+   }
+
+   private CssClass(String name, String elementName)
+   {
+      this(name, elementName, null);
+   }
+
+   private CssClass(String name, String elementName, String innerElementName)
+   {
+      this(name, elementName, innerElementName, null, null);
+   }
+
+   private CssClass(String name, String elementName, String[] attributeNames, String[] attributeValues)
+   {
+      this(name, null, null, attributeNames, attributeValues);
+   }
+
+   private CssClass(String name, String[] attributeNames, String[] attributeValues)
+   {
+      this(name, null, null, attributeNames, attributeValues);
+   }
+
+   private CssClass(String name, String elementName, String innerElementName, String[] attributeNames, String[] attributeValues)
+   {
+      this.name = name;
+      this.elementName = elementName;
+      this.innerElementName = innerElementName;
+      this.attributeNames = attributeNames;
+      this.attributeValues = attributeValues;
+   }
+
+   public String getSpanElementName()
+   {
+      if (null != this.elementName) {
+         return this.elementName;
+      }
+      else {
+         return "span";
+      }
+   }
+
+   public String getDivElementName()
+   {
+      if (null != this.elementName) {
+         return this.elementName;
+      }
+      else {
+         return "div";
+      }
+   }
+
+   public String getInnerElementName()
+   {
+      return this.innerElementName;
+   }
+
+   public String[] getAttributeNames()
+   {
+      return this.attributeNames;
+   }
+
+   public String[] getAttributeValues()
+   {
+      return this.attributeValues;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java
new file mode 100644 (file)
index 0000000..7fd2fa0
--- /dev/null
@@ -0,0 +1,170 @@
+/* gnu.classpath.tools.doclets.htmldoclet.ExternalDocSet
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.htmldoclet;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import java.util.HashSet;
+import java.util.Properties;
+import java.util.Set;
+
+import com.sun.javadoc.ClassDoc;
+
+public class ExternalDocSet
+{
+   private String url;
+   private String packageListDir;
+   private URL docSetDirectoryURL;
+
+   public String getPackageListDir()
+   {
+      return packageListDir;
+   }
+
+   public ExternalDocSet(String url,
+                         String packageListDir)
+   {
+      this.url = url;
+      this.packageListDir = packageListDir;
+   }
+
+   private Set packageNames = new HashSet();
+   private boolean javadocCompatible;
+
+   public void load(File targetDirectory)
+      throws IOException, MalformedURLException
+   {
+      if (!url.endsWith("/")) {
+         url += "/";
+      }
+
+      this.docSetDirectoryURL = new URL(targetDirectory.toURL(),
+                                        url);
+
+      URL packageListDirURL;
+      if (null != packageListDir) {
+         if (!packageListDir.endsWith("/")) {
+           packageListDir += "/";
+         }
+         packageListDirURL = new URL(new File(System.getProperty("user.dir")).toURL(),
+                                     packageListDir);
+      }
+      else {
+         packageListDirURL = docSetDirectoryURL;
+      }
+
+      URL packageListURL = new URL(packageListDirURL,
+                                    "package-list");
+      InputStream in = packageListURL.openStream();
+      if (null != in) {
+         readPackages(in);
+         in.close();
+      }
+      else {
+         throw new FileNotFoundException(packageListURL.toString());
+      }
+
+      URL gjdocPropertiesURL = new URL(packageListDirURL,
+                                       "gjdoc.properties");
+      try {
+          InputStream propertiesIn = gjdocPropertiesURL.openStream();
+          if (null != in) {
+              Properties properties = new Properties();
+              properties.load(propertiesIn);
+              propertiesIn.close();
+         
+              String gjdocCompatProperty = properties.getProperty("gjdoc.compat");
+              if (null != gjdocCompatProperty) {
+                  javadocCompatible = "true".equals(properties.getProperty("gjdoc.compat"));
+              }
+              else {
+                  javadocCompatible = true;
+              }
+          }
+          else {
+              javadocCompatible = true;
+          }
+      } 
+      catch (FileNotFoundException e) {
+          javadocCompatible = true;
+      }
+   }
+
+   public String getPackageDocURL(String packageName)
+   {
+      try {
+         URL packageURL = new URL(docSetDirectoryURL,
+                                  packageName.replace('.', '/'));
+         return packageURL.toString();
+      }
+      catch (MalformedURLException e) {
+         // This should not happen since we know that packageName is a
+         // proper Java identifiers, so the resulting URL can't be
+         // invalid
+         throw new RuntimeException(e);
+      }
+   }
+
+   public String getClassDocURL(String packageName, String typeName)
+   {
+      try {
+         URL fileURL = new URL(docSetDirectoryURL,
+                               packageName.replace('.', '/') + "/" + typeName + ".html");
+         return fileURL.toString();
+      }
+      catch (MalformedURLException e) {
+         // This should not happen since we know that packageName and
+         // typeName are proper Java identifiers, so the resulting URL
+         // can't be invalid
+         throw new RuntimeException(e);
+      }
+   }
+
+   protected void readPackages(InputStream in)
+      throws IOException
+   {
+      BufferedReader reader
+         = new BufferedReader(new InputStreamReader(in, "UTF-8"));
+      String line;
+      while ((line = reader.readLine()) != null) {
+         line = line.trim();
+         packageNames.add(line);
+      }
+   }
+
+   public Set getPackageNames()
+   {
+      return packageNames;
+   }
+
+   public boolean isJavadocCompatible()
+   {
+      return javadocCompatible;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java
new file mode 100644 (file)
index 0000000..837333d
--- /dev/null
@@ -0,0 +1,3883 @@
+/* gnu.classpath.tools.doclets.htmldoclet.HtmlDoclet
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.htmldoclet;
+
+import gnu.classpath.tools.IOToolkit;
+
+import gnu.classpath.tools.doclets.AbstractDoclet;
+import gnu.classpath.tools.doclets.DocletConfigurationException;
+import gnu.classpath.tools.doclets.DocletOption;
+import gnu.classpath.tools.doclets.DocletOptionFile;
+import gnu.classpath.tools.doclets.DocletOptionFlag;
+import gnu.classpath.tools.doclets.DocletOptionString;
+import gnu.classpath.tools.doclets.PackageGroup;
+import gnu.classpath.tools.doclets.TagletPrinter;
+import gnu.classpath.tools.doclets.InlineTagRenderer;
+
+import gnu.classpath.tools.doclets.xmldoclet.HtmlRepairer;
+
+import gnu.classpath.tools.taglets.GnuExtendedTaglet;
+import gnu.classpath.tools.taglets.TagletContext;
+
+import gnu.classpath.tools.java2xhtml.Java2xhtml;
+
+import gnu.classpath.tools.StringToolkit;
+
+import com.sun.javadoc.*;
+import com.sun.tools.doclets.Taglet;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import java.net.MalformedURLException;
+
+import java.nio.charset.Charset;
+
+import java.text.DateFormat;
+import java.text.MessageFormat;
+
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TimeZone;
+import java.util.TreeSet;
+
+public class HtmlDoclet
+   extends AbstractDoclet
+   implements InlineTagRenderer
+{
+   private static String filenameExtension = ".html";
+
+   /**
+    *  Contains ExternalDocSet.
+    */
+   private List externalDocSets = new LinkedList();
+
+   /**
+    *  Contains String->ExternalDocSet.
+    */
+   private Map packageNameToDocSet = new HashMap();
+
+   /**
+    *  Cache for version string from resource /version.properties
+    */
+   private String docletVersion;
+
+   /**
+    *  For now, do not output a help page.
+    */
+   private static final boolean outputHelpPage = false;
+
+   /**
+    *  Stores the output encoding (either the one specified using
+    *  -charset, or the platform default encoding).
+    */
+   private String outputCharset;
+
+   private void printNavBar(HtmlPage output, String currentPage, ClassDoc currentClass)
+   {
+         output.beginDiv(CssClass.NAVBAR_TOP);
+
+         boolean overviewLevel
+            = ("overview".equals(currentPage)
+               || "full-tree".equals(currentPage)
+               || "index".equals(currentPage)
+               || "split-index".equals(currentPage)
+               || "serialized".equals(currentPage)
+               || "deprecated".equals(currentPage)
+               || "about".equals(currentPage)
+               );
+
+         if (!isSinglePackage()) {
+            if ("overview".equals(currentPage)) {
+               output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+               output.print("Overview");
+               output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+            }
+            else {
+               output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+               output.beginAnchor(output.getPathToRoot() + "/overview-summary" + filenameExtension);
+               output.print("Overview");
+               output.endAnchor();
+               output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+            }
+            
+            output.print(" ");
+         }
+
+         if (!overviewLevel || isSinglePackage()) {
+            if ("package".equals(currentPage)) {
+               output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+               output.print("Package");
+               output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+            }
+            else {
+               output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+               String packageHref;
+               if (isSinglePackage()) {
+                  packageHref = output.getPathToRoot() + "/" + getPackageURL(getSinglePackage()) + "package-summary" + filenameExtension;
+               }
+               else {
+                  packageHref = "package-summary" + filenameExtension;
+               }
+               output.beginAnchor(packageHref);
+               output.print("Package");
+               output.endAnchor();
+               output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+            }
+         }
+         else {
+            output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
+            output.print("Package");
+            output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
+         }
+
+         if (optionUse.getValue() || optionLinkSource.getValue()) {
+            output.print(" ");
+
+            if (null != currentClass) {
+               if ("class".equals(currentPage)) {
+                  output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+                  output.print("Class");
+                  output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+               }
+               else {
+                  output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+                  output.beginAnchor(currentClass.name() + filenameExtension);
+                  output.print("Class");
+                  output.endAnchor();
+                  output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+               }
+            }
+            else {
+               output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
+               output.print("Class");
+               output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
+            }
+
+            if (optionUse.getValue()) {
+               output.print(" ");
+
+               if (null != currentClass) {
+                  if ("uses".equals(currentPage)) {
+                     output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+                     output.print("Use");
+                     output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+                  }
+                  else {
+                     output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+                     output.beginAnchor(currentClass.name() + "-uses" + filenameExtension);
+                     output.print("Use");
+                     output.endAnchor();
+                     output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+                  }
+               }
+               else {
+                  output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
+                  output.print("Use");
+                  output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
+               }
+            }
+
+            if (optionLinkSource.getValue()) {
+               output.print(" ");
+
+               
+               if ("source".equals(currentPage)) {
+                  output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+                  output.print("Source");
+                  output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+               }
+               else {
+
+                  if (null != currentClass) {
+                     
+                     output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+                     String targetClassName = currentClass.name();
+                     String targetAnchor = "";
+                     if (null != currentClass.containingClass()) {
+                        targetClassName = getOuterClassDoc(currentClass).name();
+                        targetAnchor = "#line." + currentClass.position().line();
+                     }
+                     output.beginAnchor(targetClassName + "-source" + filenameExtension + targetAnchor);
+                     output.print("Source");
+                     output.endAnchor();
+                     output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+                  }
+                  else {
+                     output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
+                     output.print("Source");
+                     output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
+                  }
+               }
+            }
+         }
+
+
+         if (!optionNoTree.getValue()) {
+            output.print(" ");
+
+            if ("full-tree".equals(currentPage) 
+                || "package-tree".equals(currentPage)) {
+               output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+               output.print("Tree");
+               output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+            }
+            else {
+               output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+               String treeHref;
+               if (isSinglePackage() && overviewLevel) {
+                  treeHref = getPackageURL(getSinglePackage()) + "tree" + filenameExtension;
+               }
+               else {
+                  treeHref = "tree" + filenameExtension;
+               }
+
+               output.beginAnchor(treeHref);
+               output.print("Tree");
+               output.endAnchor();
+               output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+            }
+         }
+
+         output.print(" ");
+
+         String indexName;
+         if (optionSplitIndex.getValue()) {
+            indexName = "alphaindex-1";
+         }
+         else {
+            indexName = "alphaindex";
+         }
+
+         if ("index".equals(currentPage) || "split-index".equals(currentPage)) {
+            output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+            output.print("Index");
+            output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+         }
+         else {
+            output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+            output.beginAnchor(output.getPathToRoot() + "/" + indexName + filenameExtension);
+            output.print("Index");
+            output.endAnchor();
+            output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+         }
+
+         if (!optionNoDeprecatedList.getValue()) {
+            output.print(" ");
+
+            if ("deprecated".equals(currentPage)) {
+               output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+               output.print("Deprecated");
+               output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+            }
+            else {
+               output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+               output.beginAnchor(output.getPathToRoot() + "/deprecated" + filenameExtension);
+               output.print("Deprecated");
+               output.endAnchor();
+               output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+            }
+         }
+
+         if (outputHelpPage) {
+            if (!optionNoHelp.getValue()) {
+               output.print(" ");
+               
+               if ("help".equals(currentPage)) {
+                  output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+                  output.print("Help");
+                  output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+               }
+               else {
+                  output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+                  output.beginAnchor(output.getPathToRoot() + "/help" + filenameExtension);
+                  output.print("Help");
+                  output.endAnchor();
+                  output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+               }
+            }
+         }
+
+         output.print(" ");
+
+         if ("about".equals(currentPage)) {
+            output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+            output.print("About");
+            output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+         }
+         else {
+            output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+            output.beginAnchor(output.getPathToRoot() + "/about" + filenameExtension);
+            output.print("About");
+            output.endAnchor();
+            output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+         }
+
+         output.endDiv(CssClass.NAVBAR_TOP);
+   }
+
+   private void printNavBarTopRow(HtmlPage output, String currentPage, ClassDoc currentClass)
+   {
+      output.beginRow();
+      output.beginCell(CssClass.NAVBAR_TOP);
+      printNavBar(output, currentPage, currentClass);
+      output.endCell();
+      if (null != optionHeader.getValue()) {
+         output.beginCell(CssClass.NAVBAR_TOP_HEADER);
+         output.print(replaceDocRoot(output, optionHeader.getValue()));
+         output.endCell();
+      }
+      output.endRow();
+   }
+
+   private void printNavBarTopNaviCell(HtmlPage output)
+   {
+      output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+      output.beginAnchor(output.getPathToRoot() + "/index" + filenameExtension, "Show in a frameset", "_top");
+      output.print("Frames");
+      output.endAnchor();
+      output.print(" | ");
+
+      output.beginAnchor(output.getFile().getName(), "Show without frames", "_top");
+      output.print("No Frames");
+      output.endAnchor();
+      output.print(" ");
+
+      output.endCell();
+   }
+
+   private void printNavBarTop(HtmlPage output, String currentPage)
+   {
+      printNavBarTop(output, currentPage, null, null, null);
+   }
+
+   private void printNavBarTop(HtmlPage output, String currentPage, 
+                               ClassDoc currentClass, Object prev, Object next)
+   {
+      if (!optionNoNavBar.getValue()) {
+         output.beginTable(CssClass.NAVBAR_TOP);
+         printNavBarTopRow(output, currentPage, currentClass);
+         output.beginRow();
+         if ("class".equals(currentPage)) {
+            output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+            ClassDoc prevClass = (ClassDoc)prev;
+            ClassDoc nextClass = (ClassDoc)next;
+            if (null != prevClass) {
+               output.anchor(getClassDocURL(output, prevClass), "Prev Class");
+            }
+            else {
+               output.print("Prev Class");
+            }
+            output.print(" | ");
+            if (null != nextClass) {
+               output.anchor(getClassDocURL(output, nextClass), "Next Class");
+            }
+            else {
+               output.print("Next Class");
+            }
+            output.endCell();
+         }
+         else if ("split-index".equals(currentPage)) {
+            output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+            Integer prevLetter = (Integer)prev;
+            Integer nextLetter = (Integer)next;
+            if (null != prevLetter) {
+               output.anchor("alphaindex-" + prevLetter + filenameExtension, "Prev Letter");
+            }
+            else {
+               output.print("Prev Letter");
+            }
+            output.print(" | ");
+            if (null != nextLetter) {
+               output.anchor("alphaindex-" + nextLetter + filenameExtension, "Next Letter");
+            }
+            else {
+               output.print("Next Letter");
+            }
+            output.endCell();
+         }
+         else {
+            output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+            output.endCell();
+         }
+
+         printNavBarTopNaviCell(output);
+         output.endRow();
+
+         if ("class".equals(currentPage)) {
+            output.beginRow();
+
+            output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+            output.print("Summary: ");
+            
+            if (currentClass.innerClasses().length > 0) {
+               output.anchor("#summary-inner", "Nested");               
+            }
+            else {
+               output.print("Nested");
+            }
+
+            output.print(" | ");
+            
+            if (currentClass.fields().length > 0) {
+               output.anchor("#summary-fields", "Field");
+            }
+            else {
+               output.print("Field");
+            }
+
+            output.print(" | ");
+            
+            if (currentClass.methods().length > 0) {
+               output.anchor("#summary-methods", "Method");
+            }
+            else {
+               output.print("Method");
+            }
+
+            output.print(" | ");
+            
+            if (currentClass.constructors().length > 0) {
+               output.anchor("#summary-constructors", "Constr");
+            }
+            else {
+               output.print("Constr");
+            }
+
+            output.endCell();
+
+            output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+            output.print("Detail: ");
+            
+            if (currentClass.innerClasses().length > 0) {
+               output.anchor("#detail-inner", "Nested");               
+            }
+            else {
+               output.print("Nested");
+            }
+
+            output.print(" | ");
+            
+            if (currentClass.fields().length > 0) {
+               output.anchor("#detail-fields", "Field");
+            }
+            else {
+               output.print("Field");
+            }
+
+            output.print(" | ");
+            
+            if (currentClass.methods().length > 0) {
+               output.anchor("#detail-methods", "Method");
+            }
+            else {
+               output.print("Method");
+            }
+
+            output.print(" | ");
+            
+            if (currentClass.constructors().length > 0) {
+               output.anchor("#detail-constructors", "Constr");
+            }
+            else {
+               output.print("Constr");
+            }
+
+            output.endCell();
+            output.endRow();
+         }
+         output.endTable();
+      }
+   }
+
+   private void printNavBarTopPackage(HtmlPage output, String currentPage, 
+                                      PackageDoc prevPackage, PackageDoc nextPackage)
+   {
+      if (!optionNoNavBar.getValue()) {
+         output.beginTable(CssClass.NAVBAR_TOP);
+         printNavBarTopRow(output, currentPage, null);
+
+         output.beginRow();
+         output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+         if (null != prevPackage) {
+            output.anchor(output.getPathToRoot() + "/" + getPackageURL(prevPackage) + "package-summary" + filenameExtension, "Prev Package");
+         }
+         else {
+            output.print("Prev Package");
+         }
+         output.print(" | ");
+         if (null != nextPackage) {
+            output.anchor(output.getPathToRoot() + "/" + getPackageURL(nextPackage) + "package-summary" + filenameExtension, "Next Package");
+         }
+         else {
+            output.print("Next Package");
+         }
+         output.endCell();
+
+         printNavBarTopNaviCell(output);
+         output.endRow();
+
+         output.endTable();
+      }
+   }
+
+   private void printNavBarBottom(HtmlPage output, String currentPage)
+   {
+      printNavBarBottom(output, currentPage, null);
+   }
+
+   private void printNavBarBottom(HtmlPage output, String currentPage, ClassDoc currentClass)
+   {
+      if ("class".equals(currentPage)) {
+         String boilerplate = null;
+         Tag[] boilerplateTags = getOuterClassDoc(currentClass).tags("@boilerplate");
+         if (boilerplateTags.length > 0) {
+            boilerplate = boilerplateTags[0].text();
+         }
+         if (null != boilerplate) {
+            output.hr();
+            output.beginDiv(CssClass.CLASS_BOILERPLATE);
+            output.print(boilerplate);
+            output.endDiv(CssClass.CLASS_BOILERPLATE);
+            output.hr();
+         }
+      }
+
+      if (!optionNoNavBar.getValue()) {
+         output.beginDiv(CssClass.NAVBAR_BOTTOM_SPACER);
+         output.print(" ");
+         output.endDiv(CssClass.NAVBAR_BOTTOM_SPACER);
+         output.beginTable(CssClass.NAVBAR_BOTTOM);
+         output.beginRow();
+         output.beginCell();
+         printNavBar(output, currentPage, currentClass);
+         output.endCell();
+         if (null != optionFooter.getValue()) {
+            output.beginCell();
+            output.print(replaceDocRoot(output, optionFooter.getValue()));
+            output.endCell();
+         }
+         output.endRow();
+         output.endTable();
+      }
+
+      if (null != optionBottom.getValue()) {
+         output.hr();
+         output.print(replaceDocRoot(output, optionBottom.getValue()));
+      }
+   }
+
+   private void printPackagePageClasses(HtmlPage output, ClassDoc[] classDocs, String header)
+   {
+      if (classDocs.length > 0) {
+         output.beginDiv(CssClass.TABLE_CONTAINER);
+         output.beginTable(CssClass.PACKAGE_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+         output.rowDiv(CssClass.TABLE_HEADER, header);
+
+         for (int i=0; i<classDocs.length; ++i) {
+            ClassDoc classDoc = classDocs[i];
+            if (classDoc.isIncluded()) {
+               output.beginRow();
+            
+               output.beginCell(CssClass.PACKAGE_SUMMARY_LEFT);
+               printType(output, classDoc);
+               output.endCell();
+
+               output.beginCell(CssClass.PACKAGE_SUMMARY_RIGHT);
+               printTags(output, classDoc, classDoc.firstSentenceTags(), true);
+               output.endCell();
+               output.endRow();
+            }
+         }
+         output.endTable();
+         output.endDiv(CssClass.TABLE_CONTAINER);
+         output.print("\n");
+      }
+   }
+
+   private void printPackagesListFile()
+      throws IOException
+   {
+      PrintWriter out
+         = new PrintWriter(new OutputStreamWriter(new FileOutputStream(new File(getTargetDirectory(),
+                                                                                "package-list")),
+                                                  "UTF-8"));
+
+      PackageDoc[] packages = getRootDoc().specifiedPackages();
+      for (int i=0; i<packages.length; ++i) {
+         String packageName = packages[i].name();
+         if (packageName.length() > 0) {
+            out.println(packageName);
+         }
+      }
+
+      out.close();
+   }
+
+   private void printPackagePage(File packageDir, String pathToRoot, 
+                                 PackageDoc packageDoc, 
+                                 PackageDoc prevPackageDoc, 
+                                 PackageDoc nextPackageDoc)
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(packageDir, "package-summary" + filenameExtension),
+                                    pathToRoot);
+
+      Set keywords = new LinkedHashSet();
+      keywords.add(packageDoc.name() + " packages");
+
+      output.beginPage(getPageTitle(packageDoc.name()), getOutputCharset(),
+                       keywords, getStylesheets());
+      output.beginBody(CssClass.BODY_CONTENT_PACKAGE);
+      printNavBarTopPackage(output, "package", prevPackageDoc, nextPackageDoc);
+
+      output.beginDiv(CssClass.PACKAGE_TITLE);
+      output.print("Package ");
+      if (packageDoc.name().length() > 0) {
+         output.print(packageDoc.name());
+      }
+      else {
+         output.print("&lt;Unnamed&gt;");
+      }
+      output.endDiv(CssClass.PACKAGE_TITLE);
+
+      output.beginDiv(CssClass.PACKAGE_DESCRIPTION_TOP);
+      printTags(output, packageDoc, packageDoc.firstSentenceTags(), true);
+      output.endDiv(CssClass.PACKAGE_DESCRIPTION_TOP);
+      
+      printPackagePageClasses(output, packageDoc.interfaces(), 
+                              "Interface Summary");
+      printPackagePageClasses(output, packageDoc.ordinaryClasses(), 
+                              "Class Summary");
+      printPackagePageClasses(output, packageDoc.exceptions(), 
+                              "Exception Summary");
+      printPackagePageClasses(output, packageDoc.errors(), 
+                              "Error Summary");
+
+      output.anchorName("description");
+      output.beginDiv(CssClass.PACKAGE_DESCRIPTION_FULL);
+      printTags(output, packageDoc, packageDoc.inlineTags(), false);
+      output.endDiv(CssClass.PACKAGE_DESCRIPTION_FULL);
+
+      printNavBarBottom(output, "package");
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   static class TreeNode
+      implements Comparable
+   {
+      ClassDoc classDoc;
+      SortedSet children = new TreeSet();
+
+      TreeNode(ClassDoc classDoc) {
+         TreeNode.this.classDoc = classDoc;
+      }
+      
+      public boolean equals(Object other)
+      {
+         return classDoc.equals(((TreeNode)other).classDoc);
+      }
+
+      public int compareTo(Object other)
+      {
+         return classDoc.compareTo(((TreeNode)other).classDoc);
+      }
+
+      public int hashCode()
+      {
+         return classDoc.hashCode();
+      }
+   }
+
+   private TreeNode addClassTreeNode(Map treeMap, ClassDoc classDoc)
+   {
+      TreeNode node = (TreeNode)treeMap.get(classDoc.qualifiedName());
+      if (null == node) {
+         node = new TreeNode(classDoc);
+         treeMap.put(classDoc.qualifiedName(), node);
+
+         ClassDoc superClassDoc = (ClassDoc)classDoc.superclass();
+         if (null != superClassDoc) {
+            TreeNode parentNode = addClassTreeNode(treeMap, superClassDoc);
+            parentNode.children.add(node);
+         }
+      }
+      return node;
+   }
+
+   private TreeNode addInterfaceTreeNode(Map treeMap, ClassDoc classDoc)
+   {
+      TreeNode node = (TreeNode)treeMap.get(classDoc.qualifiedName());
+      if (null == node) {
+         node = new TreeNode(classDoc);
+         treeMap.put(classDoc.qualifiedName(), node);
+
+         ClassDoc[] superInterfaces = classDoc.interfaces();
+         if (null != superInterfaces && superInterfaces.length > 0) {
+            for (int i=0; i<superInterfaces.length; ++i) {
+               TreeNode parentNode = addInterfaceTreeNode(treeMap, superInterfaces[i]);
+               parentNode.children.add(node);
+            }
+         }
+         else {
+            TreeNode rootNode = (TreeNode)treeMap.get("<root>");
+            if (null == rootNode) {
+               rootNode = new TreeNode(null);
+               treeMap.put("<root>", rootNode);
+            }
+            rootNode.children.add(node);
+         }
+      }
+      return node;
+   }
+
+   private void printPackageTreeRec(HtmlPage output, TreeNode node, TreeNode parentNode)
+   {
+      output.beginElement("li", "class", "node");
+      output.beginElement("div");
+      if (node.classDoc.isIncluded()) {
+         String packageName = node.classDoc.containingPackage().name();
+         if (packageName.length() > 0) {
+            output.print(packageName);
+            output.print(".");
+         }
+         output.beginSpan(CssClass.TREE_LINK);
+         printType(output, node.classDoc);
+         output.endSpan(CssClass.TREE_LINK);
+      }
+      else {
+         output.print(possiblyQualifiedName(node.classDoc));
+      }
+      ClassDoc[] interfaces = node.classDoc.interfaces();
+      ClassDoc parentClassDoc = null;
+      if (null != parentNode) {
+         parentClassDoc = parentNode.classDoc;
+      }
+      if (interfaces.length > 0 
+          && !(interfaces.length == 1 && interfaces[0].equals(parentClassDoc))) {
+         if (node.classDoc.isInterface()) {
+            output.print(" (also implements ");
+         }
+         else {
+            output.print(" (implements ");
+         }
+
+         boolean firstItem = true;
+         for (int i=0; i<interfaces.length; ++i) {
+            ClassDoc implemented = interfaces[i];
+            if (!implemented.equals(parentClassDoc)) {
+               if (!firstItem) {
+                  output.print(", ");
+               }
+               firstItem = false;
+               if (implemented.isIncluded()) {
+                  output.print(implemented.containingPackage().name());
+                  output.print(".");
+                  printType(output, implemented);
+               }
+               else {
+                  output.print(possiblyQualifiedName(implemented));
+               }
+            }
+         }
+         output.print(")");
+      }
+
+      output.endElement("div");
+      output.endElement("li");
+      if (!node.children.isEmpty()) {
+         output.beginElement("li", "class", "level");
+         output.beginElement("ul");
+         Iterator it = node.children.iterator();
+         while (it.hasNext()) {
+            TreeNode child = (TreeNode)it.next();
+            printPackageTreeRec(output, child, node);
+         }
+         output.endElement("ul");
+         output.endElement("li");
+      }
+   }
+
+   private void printClassTree(HtmlPage output, ClassDoc[] classDocs)
+   {      
+      Map classTreeMap = new HashMap();
+
+      for (int i=0; i<classDocs.length; ++i) {
+         ClassDoc classDoc = classDocs[i];
+         if (!classDoc.isInterface()) {
+            addClassTreeNode(classTreeMap, classDoc);
+         }
+      }
+
+      TreeNode root = (TreeNode)classTreeMap.get("java.lang.Object");
+      if (null != root) {
+         output.div(CssClass.PACKAGE_TREE_SECTION_TITLE, "Class Hierarchy");
+         output.beginDiv(CssClass.PACKAGE_TREE);
+         printPackageTreeRec(output, root, null);
+         output.endDiv(CssClass.PACKAGE_TREE);
+      }
+   }
+
+   private void printInterfaceTree(HtmlPage output, ClassDoc[] classDocs)
+   {
+      Map interfaceTreeMap = new HashMap();
+
+      for (int i=0; i<classDocs.length; ++i) {
+         ClassDoc classDoc = classDocs[i];
+         if (classDoc.isInterface()) {
+            addInterfaceTreeNode(interfaceTreeMap, classDoc);
+         }
+      }
+
+      TreeNode interfaceRoot = (TreeNode)interfaceTreeMap.get("<root>");
+      if (null != interfaceRoot) {
+         Iterator it = interfaceRoot.children.iterator();
+         if (it.hasNext()) {
+            output.div(CssClass.PACKAGE_TREE_SECTION_TITLE, "Interface Hierarchy");
+            output.beginDiv(CssClass.PACKAGE_TREE);
+            while (it.hasNext()) {
+               TreeNode node = (TreeNode)it.next();
+               printPackageTreeRec(output, node, null);
+            }
+            output.endDiv(CssClass.PACKAGE_TREE);
+         }
+      }
+
+   }
+
+   private void printPackageTreePage(File packageDir, String pathToRoot, PackageDoc packageDoc)
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(packageDir,
+                                             "tree" + filenameExtension),
+                                    pathToRoot);
+      output.beginPage(getPageTitle(packageDoc.name() + " Hierarchy"), 
+                       getOutputCharset(),
+                       getStylesheets());
+      output.beginBody(CssClass.BODY_CONTENT_PACKAGE_TREE);
+      printNavBarTop(output, "package-tree");
+
+      output.div(CssClass.PACKAGE_TREE_TITLE, "Hierarchy for Package " + packageDoc.name());
+
+      ClassDoc[] classDocs = packageDoc.allClasses();
+      printClassTree(output, classDocs);
+      printInterfaceTree(output, classDocs);
+
+      printNavBarBottom(output, "package-tree");
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printFullTreePage()
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+                                             "tree" + filenameExtension),
+                                    ".");
+      output.beginPage(getPageTitle("Hierarchy"), 
+                       getOutputCharset(),
+                       getStylesheets());
+      output.beginBody(CssClass.BODY_CONTENT_FULL_TREE);
+      printNavBarTop(output, "full-tree");
+
+      output.div(CssClass.PACKAGE_TREE_TITLE, "Hierarchy for All Packages");
+
+      output.beginDiv(CssClass.FULL_TREE_PACKAGELIST);
+      output.div(CssClass.FULL_TREE_PACKAGELIST_HEADER, "Package Hierarchies:");
+      output.beginDiv(CssClass.FULL_TREE_PACKAGELIST_ITEM);
+      Set allPackages = getAllPackages();
+      Iterator it = allPackages.iterator();
+      while (it.hasNext()) {
+         PackageDoc packageDoc = (PackageDoc)it.next();
+         output.beginAnchor(getPackageURL(packageDoc) + "tree" + filenameExtension);
+         output.print(packageDoc.name());
+         output.endAnchor();
+         if (it.hasNext()) {
+            output.print(", ");
+         }
+      }
+      output.endDiv(CssClass.FULL_TREE_PACKAGELIST_ITEM);
+      output.endDiv(CssClass.FULL_TREE_PACKAGELIST);
+
+      ClassDoc[] classDocs = getRootDoc().classes();
+      printClassTree(output, classDocs);
+      printInterfaceTree(output, classDocs);
+
+      printNavBarBottom(output, "full-tree");
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printIndexEntry(HtmlPage output, Doc entry)
+   {
+      output.beginDiv(CssClass.INDEX_ENTRY);
+      output.beginDiv(CssClass.INDEX_ENTRY_KEY);
+      String anchor = null;
+      String description = null;
+      if (entry instanceof PackageDoc) {
+         output.beginAnchor(getPackageURL((PackageDoc)entry) + "package-summary" + filenameExtension);
+         output.print(entry.name());
+         output.endAnchor();
+         output.print(" - package");
+      }
+      else if (entry instanceof ClassDoc) {
+         ClassDoc classDoc = (ClassDoc)entry;
+         output.beginAnchor(getClassURL(classDoc));
+         output.print(entry.name() + getTypeParameters(classDoc));
+         output.endAnchor();
+         output.print(" - ");
+         if (entry.isInterface()) {
+            output.print("interface ");
+         }
+         else if (entry.isException()) {
+            output.print("exception ");
+         }
+         else if (entry.isError()) {
+            output.print("error ");
+         }
+         else {
+            output.print("class ");
+         }
+         String packageName = classDoc.containingPackage().name();
+         if (packageName.length() > 0) {
+            output.print(packageName);
+            output.print(".");
+         }
+         printType(output, classDoc);
+      }
+      else {
+         ProgramElementDoc memberDoc = (ProgramElementDoc)entry;
+         output.beginAnchor(getMemberDocURL(output, memberDoc));
+         output.print(entry.name());
+         if (memberDoc instanceof ExecutableMemberDoc) {
+            output.print(((ExecutableMemberDoc)memberDoc).signature());
+         }
+         output.endAnchor();
+         output.print(" - ");
+
+         if (memberDoc.isStatic()) {
+            output.print("static ");
+         }
+
+         if (entry.isConstructor()) {
+            output.print("constructor for class ");
+         }
+         else if (entry.isMethod()) {
+            output.print("method in class ");
+         }
+         else if (entry.isField()) {
+            output.print("field in class ");
+         }
+         ClassDoc containingClass = memberDoc.containingClass();
+         String packageName = containingClass.containingPackage().name();
+         if (packageName.length() > 0) {
+            output.print(packageName);
+            output.print(".");
+         }
+         printType(output, containingClass);
+      }
+      output.endDiv(CssClass.INDEX_ENTRY_KEY);
+      output.beginDiv(CssClass.INDEX_ENTRY_DESCRIPTION);
+      printTags(output, entry, entry.firstSentenceTags(), true);
+      output.endDiv(CssClass.INDEX_ENTRY_DESCRIPTION);
+      output.endDiv(CssClass.INDEX_ENTRY);
+   }
+
+   private void printFrameSetPage()
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+                                             "index" + filenameExtension),
+                                    ".",
+                                    HtmlPage.DOCTYPE_FRAMESET);
+      
+      String title = getWindowTitle();
+      output.beginPage(title, getOutputCharset(), getStylesheets());
+      output.beginElement("frameset", "cols", "20%,80%");
+
+      String contentURL;
+      if (isSinglePackage()) {
+         output.atomicElement("frame", 
+                              new String[] { "src", "name" }, 
+                              new String[] { getPackageURL(getSinglePackage()) + "classes" + filenameExtension, "classes" });
+         contentURL = getPackageURL(getSinglePackage()) + "package-summary.html";
+      }
+      else {
+         output.beginElement("frameset", "rows", "25%,75%");
+         output.atomicElement("frame", 
+                              new String[] { "src", "name" }, 
+                              new String[] { "all-packages" + filenameExtension, "packages" });
+         output.atomicElement("frame", 
+                              new String[] { "src", "name" }, 
+                              new String[] { "all-classes" + filenameExtension, "classes" });
+         output.endElement("frameset");
+         contentURL = "overview-summary" + filenameExtension;
+      }
+      output.atomicElement("frame", 
+                           new String[] { "src", "name" }, 
+                           new String[] { contentURL, "content" });
+      output.endElement("frameset");
+      output.endPage();
+      output.close();
+   }
+
+   private void printPackagesMenuPage()
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+                                             "all-packages" + filenameExtension),
+                                    ".");
+      output.beginPage(getPageTitle("Package Menu"), getOutputCharset(), getStylesheets());
+      output.beginBody(CssClass.BODY_MENU_PACKAGES, false);
+
+      output.beginSpan(CssClass.PACKAGE_MENU_ENTRY);
+      output.beginAnchor("all-classes" + filenameExtension,
+                         null,
+                         "classes");
+      output.print("All Classes");
+      output.endAnchor();
+      output.endSpan(CssClass.PACKAGE_MENU_ENTRY);
+
+      output.div(CssClass.PACKAGE_MENU_TITLE, "Packages");
+
+      output.beginDiv(CssClass.PACKAGE_MENU_LIST);
+
+      Set packageDocs = getAllPackages();
+      Iterator it = packageDocs.iterator();
+      while (it.hasNext()) {
+         PackageDoc packageDoc = (PackageDoc)it.next();
+         output.beginSpan(CssClass.PACKAGE_MENU_ENTRY);
+         output.beginAnchor(getPackageURL(packageDoc) + "classes" + filenameExtension,
+                            null,
+                            "classes");
+         if (packageDoc.name().length() > 0) {
+            output.print(packageDoc.name());
+         }
+         else {
+            output.print("&lt;unnamed package&gt;");
+         }
+         output.endAnchor();
+         output.endSpan(CssClass.PACKAGE_MENU_ENTRY);
+         output.br();
+      }
+
+      output.endDiv(CssClass.PACKAGE_MENU_LIST);
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printClassMenuEntry(HtmlPage output, ClassDoc classDoc)
+   {
+      CssClass entryClass;
+      if (classDoc.isInterface()) {
+         entryClass = CssClass.CLASS_MENU_ENTRY_INTERFACE;        
+      }
+      else {
+         entryClass = CssClass.CLASS_MENU_ENTRY_CLASS;
+      }
+      output.beginSpan(entryClass);
+      output.beginAnchor(getClassDocURL(output, classDoc),
+                         classDoc.qualifiedTypeName(),
+                         "content");
+      output.print(classDoc.name());
+      output.endAnchor();
+      output.endSpan(entryClass);
+      output.br();
+   }
+
+   private void printClassMenuSection(HtmlPage output, Collection classDocs, String header)
+   {
+      if (!classDocs.isEmpty()) {
+         output.div(CssClass.CLASS_MENU_SUBTITLE, header);
+         Iterator it = classDocs.iterator();
+         while (it.hasNext()) {
+            ClassDoc classDoc = (ClassDoc)it.next();
+            printClassMenuEntry(output, classDoc);
+         }
+      }
+   }
+
+   private void printClassMenuList(HtmlPage output, ClassDoc[] classDocs, boolean categorized)
+   {
+      output.beginDiv(CssClass.CLASS_MENU_LIST);
+
+      if (categorized) {
+         Set classes = new TreeSet();
+         Set interfaces = new TreeSet();
+         Set exceptions = new TreeSet();
+         Set errors = new TreeSet();
+
+         for (int i=0; i<classDocs.length; ++i) {
+            ClassDoc classDoc = classDocs[i];
+            if (classDoc.isInterface()) {
+               interfaces.add(classDoc);
+            }
+            else if (classDoc.isException()) {
+               exceptions.add(classDoc);
+            }
+            else if (classDoc.isError()) {
+               errors.add(classDoc);
+            }
+            else {
+               classes.add(classDoc);
+            }
+         }
+         printClassMenuSection(output, interfaces, "Interfaces");
+         printClassMenuSection(output, classes, "Classes");
+         printClassMenuSection(output, exceptions, "Exceptions");
+         printClassMenuSection(output, errors, "Errors");
+      }
+      else {
+         for (int i=0; i<classDocs.length; ++i) {
+            ClassDoc classDoc = classDocs[i];
+            if (classDoc.isIncluded()) {
+               printClassMenuEntry(output, classDoc);
+            }
+         }
+      }
+
+      output.endDiv(CssClass.CLASS_MENU_LIST);
+   }
+
+   private void printAllClassesMenuPage()
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+                                             "all-classes" + filenameExtension),
+                                    ".");
+      output.beginPage(getPageTitle("Class Menu"), getOutputCharset(), getStylesheets());
+      output.beginBody(CssClass.BODY_MENU_CLASSES, false);
+
+      output.div(CssClass.CLASS_MENU_TITLE, "All Classes");
+
+      printClassMenuList(output, getRootDoc().classes(), false);
+
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printPackageClassesMenuPage(File packageDir, String pathToRoot, PackageDoc packageDoc)
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(packageDir,
+                                             "classes" + filenameExtension),
+                                    pathToRoot);
+
+      output.beginPage(getPageTitle(packageDoc.name() + " Class Menu"), 
+                       getOutputCharset(), getStylesheets());
+      output.beginBody(CssClass.BODY_MENU_CLASSES, false);
+
+      output.beginDiv(CssClass.CLASS_MENU_TITLE);
+      output.beginAnchor("package-summary" + filenameExtension, "", "content");
+      if (packageDoc.name().length() > 0) {
+         output.print(packageDoc.name());
+      }
+      else {
+         output.print("&lt;Unnamed&gt;");
+      }
+      output.endAnchor();
+      output.endDiv(CssClass.CLASS_MENU_TITLE);
+
+      printClassMenuList(output, packageDoc.allClasses(), true);
+
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printSplitIndex()
+      throws IOException
+   {
+      Map categorizedIndex = getCategorizedIndex();
+      Iterator it = categorizedIndex.keySet().iterator();
+      int n = 1;
+      int count = categorizedIndex.size();
+      while (it.hasNext()) {
+         Character c = (Character)it.next();
+         List classList = (List)categorizedIndex.get(c);
+         printIndexPage(n++, count, c, classList);
+      }
+   }
+
+   private void printIndexPage()
+      throws IOException
+   {
+      printIndexPage(0, 0, null, null);
+   }
+
+   private void printIndexPage(int index, int maxIndex, Character letter, List classList)
+      throws IOException
+   {
+      String pageName = "alphaindex";
+      if (null != letter) {
+         pageName += "-" + index;
+      }
+      HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+                                             pageName + filenameExtension),
+                                    ".");
+      output.beginPage(getPageTitle("Alphabetical Index"), 
+                       getOutputCharset(),
+                       getStylesheets());
+      output.beginBody(CssClass.BODY_CONTENT_INDEX);
+      if (null == letter) {
+         printNavBarTop(output, "index");
+      }
+      else {
+         printNavBarTop(output, "split-index", null,
+                        (index > 1) ? new Integer(index - 1) : null, 
+                        (index < maxIndex) ? new Integer(index + 1) : null);
+      }
+
+      {
+         String title;
+         if (null == letter) {
+            title = "Alphabetical Index";
+         }
+         else {
+            title = "Alphabetical Index: " + letter;
+         }
+         output.div(CssClass.INDEX_TITLE, title);
+
+         if (null != letter || getCategorizedIndex().keySet().size() > 1) {
+            output.beginDiv(CssClass.INDEX_LETTERS);
+
+            Iterator it = getCategorizedIndex().keySet().iterator();
+            int n = 1;
+            while (it.hasNext()) {
+               Character c = (Character)it.next();
+               output.beginSpan(CssClass.INDEX_LETTER);
+               if (letter != null) {
+                  output.beginAnchor("alphaindex-" + n + filenameExtension);
+               }
+               else {
+                  output.beginAnchor("#" + c);
+               }
+               output.print(c.toString());
+               output.endAnchor();
+               output.endSpan(CssClass.INDEX_LETTER);     
+               output.beginSpan(CssClass.INDEX_LETTER_SPACER);
+               output.print(" ");
+               output.endSpan(CssClass.INDEX_LETTER_SPACER);
+               ++n;
+            }
+         }
+
+         output.endDiv(CssClass.INDEX_LETTERS);
+      }
+
+      if (null != letter) {
+         printIndexCategory(output, letter, classList);
+      }
+      else {
+         Map categorizedIndex = getCategorizedIndex();
+         Iterator categoryIt = categorizedIndex.keySet().iterator();
+
+         while (categoryIt.hasNext()) {
+            letter = (Character)categoryIt.next();
+            classList = (List)categorizedIndex.get(letter);
+            output.anchorName(letter.toString());
+            printIndexCategory(output, letter, classList);
+         }
+      }
+
+      printNavBarBottom(output, "index");
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printIndexCategory(HtmlPage output, Character letter, List classList)
+   {
+      Iterator it = classList.iterator();
+
+      output.div(CssClass.INDEX_CATEGORY_HEADER, letter.toString());
+      output.beginDiv(CssClass.INDEX_CATEGORY);
+      while (it.hasNext()) {
+         Doc entry = (Doc)it.next();
+         printIndexEntry(output, entry);
+      }
+      output.endDiv(CssClass.INDEX_CATEGORY);
+   }
+
+   private void printDeprecationSummary(HtmlPage output, List docs, String header)
+   {
+      if (!docs.isEmpty()) {
+         output.beginDiv(CssClass.TABLE_CONTAINER);
+         output.beginTable(CssClass.DEPRECATION_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+         output.rowDiv(CssClass.TABLE_HEADER, header);
+
+         Iterator it = docs.iterator();
+         while (it.hasNext()) {
+            Doc doc = (Doc)it.next();
+            output.beginRow();
+            
+            output.beginCell(CssClass.DEPRECATION_SUMMARY_LEFT);
+            if (doc instanceof Type) {
+               printType(output, (Type)doc);
+            }
+            else {
+               ProgramElementDoc memberDoc = (ProgramElementDoc)doc;
+               output.beginAnchor(getMemberDocURL(output, memberDoc));
+               output.print(memberDoc.containingClass().qualifiedName());
+               output.print(".");
+               output.print(memberDoc.name());
+               if (memberDoc instanceof ExecutableMemberDoc) {
+                  output.print(((ExecutableMemberDoc)memberDoc).flatSignature());
+               }
+               output.endAnchor();
+            }
+            output.beginDiv(CssClass.DEPRECATION_SUMMARY_DESCRIPTION);
+            printTags(output, doc, doc.tags("deprecated")[0].firstSentenceTags(), true);
+            output.endDiv(CssClass.DEPRECATION_SUMMARY_DESCRIPTION);
+
+            output.endCell();
+
+            output.endRow();
+         }
+         output.endTable();
+         output.endDiv(CssClass.TABLE_CONTAINER);
+         output.print("\n");
+      }
+   }
+
+
+   private void printSerializationPage()
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+                                             "serialized-form" + filenameExtension),
+                                    ".");
+      output.beginPage(getPageTitle("Serialized Form"), 
+                       getOutputCharset(),
+                       getStylesheets());
+      output.beginBody(CssClass.BODY_CONTENT_DEPRECATED);
+      printNavBarTop(output, "serialized");
+
+      output.div(CssClass.SERIALIZED_TITLE, "Serialized Form");
+
+      Iterator it = getAllPackages().iterator();
+
+      while (it.hasNext()) {
+
+         PackageDoc packageDoc = (PackageDoc)it.next();
+
+         List serializableClasses = new LinkedList();
+         ClassDoc[] classes = packageDoc.allClasses();
+         for (int i=0; i<classes.length; ++i) {
+            ClassDoc classDoc = classes[i];
+            if (classDoc.isSerializable() || classDoc.isExternalizable()) {
+               serializableClasses.add(classDoc);
+            }
+         }
+
+         if (!serializableClasses.isEmpty()) {
+            output.div(CssClass.SERIALIZED_PACKAGE_HEADER, "Package " + packageDoc.name());
+
+            Iterator cit = serializableClasses.iterator();
+            while (cit.hasNext()) {
+               ClassDoc classDoc = (ClassDoc)cit.next();
+
+               output.anchorName(classDoc.qualifiedTypeName());
+
+               output.beginDiv(CssClass.SERIALIZED_CLASS_HEADER);
+               output.print("Class ");
+               printType(output, classDoc, true);
+               output.print(" extends ");
+               printType(output, classDoc.superclass());
+               output.print(" implements Serializable");
+               output.endDiv(CssClass.SERIALIZED_CLASS_HEADER);
+
+               FieldDoc serialVersionUidField = findField(classDoc, "serialVersionUID");
+               if (null != serialVersionUidField
+                   && serialVersionUidField.isFinal()
+                   && serialVersionUidField.isStatic()
+                   && serialVersionUidField.type().typeName().equals("long")) {
+
+                  String fieldValue = serialVersionUidField.constantValueExpression();
+                  if (null != fieldValue) {
+                     output.beginDiv(CssClass.SERIALIZED_SVUID_OUTER);
+                     output.span(CssClass.SERIALIZED_SVUID_HEADER, "serialVersionUID: ");
+                     output.span(CssClass.SERIALIZED_SVUID_VALUE, fieldValue);
+                     output.endDiv(CssClass.SERIALIZED_SVUID_OUTER);
+                  }
+               }
+               printMemberDetails(output, 
+                                  classDoc.serializationMethods(), 
+                                  "Serialization Methods",
+                                  true, null);
+               printMemberDetails(output, 
+                                  classDoc.serializableFields(), 
+                                  "Serialized Fields",
+                                  true, null);
+            }
+         }
+      }
+
+      printNavBarBottom(output, "serialized");
+
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+
+   private void printDeprecationPage()
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+                                             "deprecated" + filenameExtension),
+                                    ".");
+      output.beginPage(getPageTitle("Deprecated API"), 
+                       getOutputCharset(),
+                       getStylesheets());
+      output.beginBody(CssClass.BODY_CONTENT_DEPRECATED);
+      printNavBarTop(output, "deprecated");
+
+      output.div(CssClass.DEPRECATION_TITLE, "Deprecated API");
+
+      List deprecatedInterfaces = new LinkedList();
+      List deprecatedExceptions = new LinkedList();
+      List deprecatedErrors = new LinkedList();
+      List deprecatedClasses = new LinkedList();
+      List deprecatedFields = new LinkedList();
+      List deprecatedMethods = new LinkedList();
+      List deprecatedConstructors = new LinkedList();
+
+      ClassDoc[] classDocs = getRootDoc().classes();
+      for (int i=0; i<classDocs.length; ++i) {
+         ClassDoc classDoc = classDocs[i];
+         {
+            Tag[] deprecatedTags = classDoc.tags("deprecated");
+            if (null != deprecatedTags && deprecatedTags.length > 0) {
+               if (classDoc.isInterface()) {
+                  deprecatedInterfaces.add(classDoc);
+               }
+               else if (classDoc.isException()) {
+                  deprecatedExceptions.add(classDoc);
+               }
+               else if (classDoc.isError()) {
+                  deprecatedErrors.add(classDoc);
+               }
+               else {
+                  deprecatedClasses.add(classDoc);
+               }
+            }
+         }
+         ConstructorDoc[] constructors = classDoc.constructors();
+         for (int j=0; j<constructors.length; ++j) {
+            Tag[] deprecatedTags = constructors[j].tags("deprecated");
+            if (null != deprecatedTags && deprecatedTags.length > 0) {
+               deprecatedConstructors.add(constructors[j]);
+            }
+         }
+         MethodDoc[] methods = classDoc.methods();
+         for (int j=0; j<methods.length; ++j) {
+            Tag[] deprecatedTags = methods[j].tags("deprecated");
+            if (null != deprecatedTags && deprecatedTags.length > 0) {
+               deprecatedMethods.add(methods[j]);
+            }
+         }
+         FieldDoc[] fields = classDoc.fields();
+         for (int j=0; j<fields.length; ++j) {
+            Tag[] deprecatedTags = fields[j].tags("deprecated");
+            if (null != deprecatedTags && deprecatedTags.length > 0) {
+               deprecatedFields.add(fields[j]);
+            }
+         }
+      }
+
+      if (!deprecatedInterfaces.isEmpty()
+          || !deprecatedClasses.isEmpty()
+          || !deprecatedExceptions.isEmpty()
+          || !deprecatedErrors.isEmpty()
+          || !deprecatedFields.isEmpty()
+          || !deprecatedMethods.isEmpty()
+          || !deprecatedConstructors.isEmpty()) {
+
+         output.beginDiv(CssClass.DEPRECATION_TOC);
+         output.div(CssClass.DEPRECATION_TOC_HEADER, "Contents");
+         output.beginDiv(CssClass.DEPRECATION_TOC_LIST);
+         if (!deprecatedInterfaces.isEmpty()) {
+            output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+            output.anchor("#interfaces", "Deprecated Interfaces");
+            output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+         }
+         if (!deprecatedClasses.isEmpty()) {
+            output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+            output.anchor("#classes", "Deprecated Classes");
+            output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+         }
+         if (!deprecatedExceptions.isEmpty()) {
+            output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+            output.anchor("#exceptions", "Deprecated Exceptions");
+            output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+         }
+         if (!deprecatedErrors.isEmpty()) {
+            output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+            output.anchor("#errors", "Deprecated Errors");
+            output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+         }
+         if (!deprecatedFields.isEmpty()) {
+            output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+            output.anchor("#fields", "Deprecated Fields");
+            output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+         }
+         if (!deprecatedMethods.isEmpty()) {
+            output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+            output.anchor("#methods", "Deprecated Methods");
+            output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+         }
+         if (!deprecatedConstructors.isEmpty()) {
+            output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+            output.anchor("#constructors", "Deprecated Constructors");
+            output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+         }
+         output.endDiv(CssClass.DEPRECATION_TOC_LIST);
+         output.endDiv(CssClass.DEPRECATION_TOC);
+         output.beginDiv(CssClass.DEPRECATION_LIST);
+
+         output.anchorName("interfaces");
+         printDeprecationSummary(output, deprecatedInterfaces, "Deprecated Interfaces");
+
+         output.anchorName("classes");
+         printDeprecationSummary(output, deprecatedClasses, "Deprecated Classes");
+
+         output.anchorName("exceptions");
+         printDeprecationSummary(output, deprecatedExceptions, "Deprecated Exceptions");
+
+         output.anchorName("errors");
+         printDeprecationSummary(output, deprecatedErrors, "Deprecated Errors");
+
+         output.anchorName("fields");
+         printDeprecationSummary(output, deprecatedFields, "Deprecated Fields");
+
+         output.anchorName("methods");
+         printDeprecationSummary(output, deprecatedMethods, "Deprecated Methods");
+
+         output.anchorName("constructors");
+         printDeprecationSummary(output, deprecatedConstructors, "Deprecated Constructors");
+
+         output.endDiv(CssClass.DEPRECATION_LIST);
+      }
+      else {
+         output.beginDiv(CssClass.DEPRECATION_EMPTY);
+         output.print("No deprecated classes or class members in this API.");
+         output.endDiv(CssClass.DEPRECATION_EMPTY);
+         
+      }
+
+      printNavBarBottom(output, "deprecated");
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printAboutPage()
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+                                             "about" + filenameExtension),
+                                    ".");
+      output.beginPage(getPageTitle("About"), 
+                       getOutputCharset(),
+                       getStylesheets());
+      output.beginBody(CssClass.BODY_CONTENT_ABOUT);
+
+      printNavBarTop(output, "about");
+
+      output.div(CssClass.ABOUT_TITLE, "About");
+
+      output.beginDiv(CssClass.ABOUT_GENERATOR);
+      output.print("Generated by ");
+      output.print("Gjdoc");
+      output.print(" HtmlDoclet ");
+      output.print(getDocletVersion());
+      output.print(", part of ");
+      output.beginAnchor("http://www.gnu.org/software/classpath/cp-tools/", "", "_top");
+      output.print("GNU Classpath Tools");
+      output.endAnchor();
+      output.print(", on ");
+      DateFormat format = DateFormat.getDateTimeInstance(DateFormat.LONG,
+                                                        DateFormat.LONG,
+                                                        Locale.US);
+      Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"),
+                                         Locale.US);
+      format.setCalendar(cal);
+      output.print(format.format(new Date()));
+      output.print(".");
+      output.endDiv(CssClass.ABOUT_GENERATOR);
+
+      printNavBarBottom(output, "about");
+
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printSourcePage(File packageDir, ClassDoc classDoc, String sourceXhtml)
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(packageDir, 
+                                             classDoc.name() + "-source" + filenameExtension),
+                                    getPathToRoot(packageDir, getTargetDirectory()));
+      output.beginPage(getPageTitle("Source for " + classDoc.qualifiedTypeName()), 
+                       getOutputCharset(),
+                       getStylesheets());
+
+      output.beginBody(CssClass.BODY_CONTENT_SOURCE);
+
+      printNavBarTop(output, "source", classDoc, null, null);
+
+      output.div(CssClass.SOURCE_TITLE, "Source for " + classDoc.qualifiedTypeName());
+      output.beginDiv(CssClass.SOURCE);
+      output.print(sourceXhtml);
+      output.endDiv(CssClass.SOURCE);
+
+      printNavBarBottom(output, "source", classDoc);
+
+      output.endBody();
+      output.endPage();
+
+      output.close();
+   }
+
+   private void printHelpPage()
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+                                             "help" + filenameExtension),
+                                    ".");
+      output.beginPage(getPageTitle("Help"), 
+                       getOutputCharset(),
+                       getStylesheets());
+      output.beginBody(CssClass.BODY_CONTENT_HELP);
+
+      printNavBarTop(output, "help");
+
+      InputStream helpIn;
+      if (null != optionHelpFile.getValue()){ 
+         helpIn = new FileInputStream(optionHelpFile.getValue());
+      }
+      else {
+         helpIn = getClass().getResourceAsStream("/htmldoclet/help.xhtml");
+      }
+      output.insert(new InputStreamReader(helpIn, "utf-8"));
+      helpIn.close();
+
+      printNavBarBottom(output, "help");
+
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printOverviewPage()
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+                                             "overview-summary" + filenameExtension),
+                                    ".");
+      output.beginPage(getWindowTitle(), 
+                       getOutputCharset(),
+                       getStylesheets());
+      output.beginBody(CssClass.BODY_CONTENT_OVERVIEW);
+
+      printNavBarTop(output, "overview");
+
+      String overviewHeader;
+      if (null != optionDocTitle.getValue()) {
+         overviewHeader = optionDocTitle.getValue();
+      }
+      else if (null != optionTitle.getValue()) {
+         overviewHeader = optionTitle.getValue();
+      }
+      else {
+         overviewHeader = null;
+      }
+
+      if (null != overviewHeader) {
+         output.div(CssClass.OVERVIEW_TITLE, overviewHeader);
+      }
+
+      output.beginDiv(CssClass.OVERVIEW_DESCRIPTION_TOP);
+      printTags(output, getRootDoc(), getRootDoc().firstSentenceTags(), true);
+      output.endDiv(CssClass.OVERVIEW_DESCRIPTION_TOP);
+
+      List packageGroups = getPackageGroups();
+
+      if (packageGroups.isEmpty()) {
+      
+         printOverviewPackages(output, getAllPackages(),
+                               "All Packages");
+      }
+      else {
+         Set otherPackages = new LinkedHashSet();
+         otherPackages.addAll(getAllPackages());
+
+         Iterator it = packageGroups.iterator();
+         while (it.hasNext()) {
+            PackageGroup packageGroup = (PackageGroup)it.next();
+            printOverviewPackages(output, 
+                                  packageGroup.getPackages(),
+                                  packageGroup.getName());
+            otherPackages.removeAll(packageGroup.getPackages());
+         }
+
+         if (!otherPackages.isEmpty()) {
+            printOverviewPackages(output, 
+                                  otherPackages,
+                                  "Other Packages");
+         }
+      }
+
+      output.anchorName("description");
+      output.beginDiv(CssClass.OVERVIEW_DESCRIPTION_FULL);
+      printTags(output, getRootDoc(), getRootDoc().inlineTags(), false);
+      output.endDiv(CssClass.OVERVIEW_DESCRIPTION_FULL);
+
+      printNavBarBottom(output, "overview");
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printOverviewPackages(HtmlPage output, Collection packageDocs, String header)
+   {
+      output.beginDiv(CssClass.TABLE_CONTAINER);
+      output.beginTable(CssClass.OVERVIEW_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+      output.rowDiv(CssClass.TABLE_HEADER, header);
+
+      Iterator it = packageDocs.iterator();
+      while (it.hasNext()) {
+         PackageDoc packageDoc = (PackageDoc)it.next();
+         output.beginRow();
+         
+         output.beginCell(CssClass.OVERVIEW_SUMMARY_LEFT);
+         output.beginAnchor(getPackageURL(packageDoc) + "package-summary" + filenameExtension);
+         output.print(packageDoc.name());
+         output.endAnchor();
+         output.endCell();
+
+         output.beginCell(CssClass.OVERVIEW_SUMMARY_RIGHT);
+         printTags(output, packageDoc, packageDoc.firstSentenceTags(), true);
+         output.endCell();
+         output.endRow();
+      }
+      output.endTable();
+      output.endDiv(CssClass.TABLE_CONTAINER);
+   }
+
+   private void printClassUsagePage(File packageDir, String pathToRoot, ClassDoc classDoc)
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(packageDir,
+                                             classDoc.name() + "-uses" + filenameExtension),
+                                    pathToRoot);
+      output.beginPage(getPageTitle(classDoc.name()), getOutputCharset(), getStylesheets());
+      output.beginBody(CssClass.BODY_CONTENT_USES);
+      printNavBarTop(output, "uses", classDoc, null, null);
+
+      output.div(CssClass.USAGE_TITLE, 
+                 "Uses of " + getClassTypeName(classDoc) 
+                 + " " + classDoc.qualifiedName());
+
+      Map packageToUsageTypeMap = getUsageOfClass(classDoc);
+      if (null != packageToUsageTypeMap && !packageToUsageTypeMap.isEmpty()) {
+
+         Iterator packagesIterator = packageToUsageTypeMap.keySet().iterator();
+         while (packagesIterator.hasNext()) {
+            PackageDoc packageDoc = (PackageDoc)packagesIterator.next();
+
+            output.div(CssClass.USAGE_PACKAGE_TITLE, "Uses in package " + packageDoc.name());
+
+            Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(packageDoc);
+            Iterator usageTypeIterator = usageTypeToUsersMap.keySet().iterator();
+            while (usageTypeIterator.hasNext()) {
+               UsageType usageType = (UsageType)usageTypeIterator.next();
+               
+               output.beginTable(CssClass.USAGE_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+               output.rowDiv(CssClass.USAGE_TABLE_HEADER, format("usagetype." + usageType.getId(), 
+                                                                 classDoc.qualifiedName()));
+
+               Set users = (Set)usageTypeToUsersMap.get(usageType);
+               Iterator userIterator = users.iterator();
+               while (userIterator.hasNext()) {
+                  Doc user = (Doc)userIterator.next();
+
+                  output.beginRow();
+
+                  if (user instanceof ClassDoc) {
+                     output.beginCell(CssClass.USAGE_SUMMARY_LEFT);
+                     output.print("class");
+                     output.endCell();
+
+                     output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
+                     output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+                     printType(output, ((ClassDoc)user));
+                     output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+                     output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+                     printTags(output, ((ClassDoc)user), ((ClassDoc)user).firstSentenceTags(), true);
+                     output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+                     output.endCell();
+                  }
+                  else if (user instanceof FieldDoc) {
+                     FieldDoc fieldDoc = (FieldDoc)user;
+
+                     output.beginCell(CssClass.USAGE_SUMMARY_LEFT);
+                     printType(output, ((FieldDoc)user).type());
+                     output.endCell();
+
+                     output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
+                     output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+                     printType(output, ((FieldDoc)user).containingClass());
+                     output.print(".");
+                     output.beginAnchor(getMemberDocURL(output, (FieldDoc)user));
+                     output.print(((FieldDoc)user).name());
+                     output.endAnchor();
+                     output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+                     output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+                     printTags(output, ((FieldDoc)user), ((FieldDoc)user).firstSentenceTags(), true);
+                     output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+                     output.endCell();
+                  }
+                  else if (user instanceof MethodDoc) {
+                     MethodDoc methodDoc = (MethodDoc)user;
+
+                     output.beginCell(CssClass.USAGE_SUMMARY_LEFT);
+                     printType(output, ((MethodDoc)user).returnType());
+                     output.endCell();
+
+                     output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
+                     output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+                     printType(output, ((MethodDoc)user).containingClass());
+                     output.print(".");
+                     output.beginAnchor(getMemberDocURL(output, (MethodDoc)user));
+                     output.print(((MethodDoc)user).name());
+                     output.endAnchor();
+                     printParameters(output, (ExecutableMemberDoc)user);
+                     output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+                     output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+                     printTags(output, ((MethodDoc)user), ((MethodDoc)user).firstSentenceTags(), true);
+                     output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+                     output.endCell();
+                  }
+                  else if (user instanceof ConstructorDoc) {
+                     ConstructorDoc constructorDoc = (ConstructorDoc)user;
+
+                     output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
+                     output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+                     printType(output, ((ConstructorDoc)user).containingClass());
+                     output.print(".");
+                     output.beginAnchor(getMemberDocURL(output, (ConstructorDoc)user));
+                     output.print(((ConstructorDoc)user).name());
+                     output.endAnchor();
+                     printParameters(output, (ExecutableMemberDoc)user);
+                     output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+                     output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+                     printTags(output, ((ConstructorDoc)user), 
+                               ((ConstructorDoc)user).firstSentenceTags(), true);
+                     output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+                     output.endCell();
+                  }
+
+                  output.endRow();
+               }
+               output.endTable();
+            }
+         }
+      }
+      else {
+         output.div(CssClass.USAGE_EMPTY,
+                    getClassTypeName(classDoc) 
+                    + " " + classDoc.qualifiedName() + " is not used by any class in this documentation set.");
+      }
+      printNavBarBottom(output, "uses", classDoc);
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printSuperTreeRec(HtmlPage output, ListIterator it, int level)
+   {
+      if (it.hasPrevious()) {
+         ClassDoc cd = (ClassDoc)it.previous();
+         output.beginElement("li", new String[] { "class" }, new String[] { "inheritance " + level });
+         output.beginElement("code");
+         if (it.hasPrevious()) {
+            printType(output, cd, true);
+         }
+         else {
+            output.print(cd.qualifiedName() + getTypeParameters(cd));
+         }
+         output.endElement("code");
+         output.endElement("li");
+
+         output.beginElement("li");
+
+         if (it.hasPrevious()) {
+            output.beginElement("ul", new String[] { "class" }, new String[] { "inheritance " + (level + 1) });
+            printSuperTreeRec(output, it, level + 1);
+            output.endElement("ul");
+         }
+
+         output.endElement("li");
+      }
+   }
+
+   private static boolean isSubInterface(ClassDoc classDoc, ClassDoc otherClassDoc) 
+   {
+      ClassDoc[] interfaces = otherClassDoc.interfaces();
+      for (int i=0; i<interfaces.length; ++i) {
+         if (classDoc == interfaces[i]) {
+            return true;
+         }
+         else if (isSubInterface(classDoc, interfaces[i])) {
+            return true;
+         }
+      }
+      return false;
+   }
+
+   private void printCommaSeparatedTypes(HtmlPage output,
+                                         Collection list, 
+                                         String header, 
+                                         CssClass cssClass)
+   {
+      if (!list.isEmpty()) {
+         output.beginDiv(cssClass);
+         output.div(CssClass.CLASS_KNOWNIMPLEMENTING_HEADER, header);
+         output.beginDiv(CssClass.CLASS_KNOWNIMPLEMENTING_ITEM);
+         Iterator it = list.iterator();
+         while (it.hasNext()) {
+            Type type = (Type)it.next();
+            printType(output, type);
+            if (it.hasNext()) {
+               output.print(", ");
+            }
+         }
+         output.endDiv(CssClass.CLASS_KNOWNIMPLEMENTING_ITEM);
+         output.endDiv(cssClass);
+      }
+   }
+
+   private void printClassPage(File packageDir, String pathToRoot, 
+                               ClassDoc classDoc, ClassDoc prevClassDoc, ClassDoc nextClassDoc)
+      throws IOException
+   {
+      HtmlPage output = newHtmlPage(new File(packageDir,
+                                             classDoc.name() + filenameExtension),
+                                    pathToRoot);
+      Set keywords = new LinkedHashSet();
+      {
+         keywords.add(classDoc.qualifiedName() + " class");
+         FieldDoc[] fieldDocs = classDoc.fields();
+         for (int i=0; i<fieldDocs.length; ++i) {
+            FieldDoc fieldDoc = fieldDocs[i];
+            keywords.add(fieldDoc.name());
+         }
+
+         MethodDoc[] methodDocs = classDoc.methods();
+         for (int i=0; i<methodDocs.length; ++i) {
+            MethodDoc methodDoc = methodDocs[i];
+            keywords.add(methodDoc.name() + "()");
+         }
+      }
+      String parameters = getTypeParameters(classDoc);
+      
+      output.beginPage(getPageTitle(classDoc.name()), getOutputCharset(),
+                       keywords, getStylesheets());
+      output.beginBody(CssClass.BODY_CONTENT_CLASS);
+      printNavBarTop(output, "class", classDoc, prevClassDoc, nextClassDoc);
+      
+      output.beginDiv(CssClass.CLASS_TITLE);
+      output.div(CssClass.CLASS_TITLE_PACKAGE, 
+                 classDoc.containingPackage().name());
+      output.div(CssClass.CLASS_TITLE_CLASS, 
+                 getClassTypeName(classDoc) 
+                 + " " + classDoc.name()
+                + parameters);
+      output.endDiv(CssClass.CLASS_TITLE);
+
+      boolean needSep = false;
+
+      if (classDoc.isInterface()) {
+
+         InterfaceRelation relation
+            = (InterfaceRelation)getInterfaceRelations().get(classDoc);
+
+         printCommaSeparatedTypes(output,
+                                  relation.superInterfaces, 
+                                  "All Superinterfaces:",
+                                  CssClass.CLASS_KNOWNIMPLEMENTING);
+
+         printCommaSeparatedTypes(output,
+                                  relation.subInterfaces, 
+                                  "Known Subinterfaces:",
+                                  CssClass.CLASS_KNOWNIMPLEMENTING);
+
+         printCommaSeparatedTypes(output,
+                                  relation.implementingClasses, 
+                                  "Known Implementing Classes:",
+                                  CssClass.CLASS_KNOWNIMPLEMENTING);
+
+         needSep = !relation.superInterfaces.isEmpty()
+            || !relation.subInterfaces.isEmpty()
+            || !relation.implementingClasses.isEmpty();
+      }
+      else {   
+         needSep = true;
+
+         if (!"java.lang.Object".equals(classDoc.qualifiedName())) {
+            LinkedList superClasses = new LinkedList();
+            for (ClassDoc cd = classDoc; cd != null; cd = cd.superclass()) {
+               superClasses.add(cd);
+            }
+            output.beginDiv(CssClass.CLASS_INHERITANCETREE);
+            output.beginElement("ul", new String[] { "class" }, new String[] { "inheritance 0" });
+            printSuperTreeRec(output, superClasses.listIterator(superClasses.size()), 0);
+            output.endElement("ul");
+            output.endDiv(CssClass.CLASS_INHERITANCETREE);
+            
+            if (null != classDoc.containingClass()) {
+               output.beginDiv(CssClass.CLASS_ENCLOSINGCLASS);
+               output.div(CssClass.CLASS_ENCLOSINGCLASS_HEADER, "Enclosing Class:");
+               output.beginDiv(CssClass.CLASS_ENCLOSINGCLASS_ITEM);
+               printType(output, classDoc.containingClass());
+               output.endDiv(CssClass.CLASS_ENCLOSINGCLASS_ITEM);
+               output.endDiv(CssClass.CLASS_ENCLOSINGCLASS);
+            }
+
+            Set implementedInterfaces = getImplementedInterfaces(classDoc);
+
+            printCommaSeparatedTypes(output,
+                                     implementedInterfaces, 
+                                     "Implemented Interfaces:",
+                                     CssClass.CLASS_KNOWNIMPLEMENTING);
+
+            List knownDirectSubclasses = getKnownDirectSubclasses(classDoc);
+            if (!knownDirectSubclasses.isEmpty()) {
+               output.beginDiv(CssClass.CLASS_SUBCLASSES);
+               output.div(CssClass.CLASS_SUBCLASSES_HEADER, "Known Direct Subclasses:");
+               output.beginDiv(CssClass.CLASS_SUBCLASSES_ITEM);
+               Iterator it = knownDirectSubclasses.iterator();
+               while (it.hasNext()) {
+                  printType(output, (ClassDoc)it.next());
+                  if (it.hasNext()) {
+                     output.print(", ");
+                  }
+               }
+
+               output.endDiv(CssClass.CLASS_SUBCLASSES_ITEM);
+               output.endDiv(CssClass.CLASS_SUBCLASSES_HEADER);
+               output.endDiv(CssClass.CLASS_SUBCLASSES);
+            }
+         }
+      }
+
+      if (needSep) {
+         output.hr();
+      }
+
+      output.beginDiv(CssClass.CLASS_SYNOPSIS);
+      output.beginDiv(CssClass.CLASS_SYNOPSIS_DECLARATION);
+      output.print(getFullModifiers(classDoc) + ' ' + getClassTypeKeyword(classDoc) 
+                   + ' ');
+      output.beginSpan(CssClass.CLASS_SYNOPSIS_NAME);
+      if (optionLinkSource.getValue() && null != classDoc.position()) {
+         output.beginAnchor(getOuterClassDoc(classDoc).name() + "-source" + filenameExtension + "#line." + classDoc.position());
+         output.print(classDoc.name() + parameters);
+         output.endAnchor();
+      }
+      else {
+         output.print(classDoc.name() + parameters);
+      }
+      output.endSpan(CssClass.CLASS_SYNOPSIS_NAME);
+      output.endDiv(CssClass.CLASS_SYNOPSIS_DECLARATION);
+
+      if (!classDoc.isInterface()) {
+         if (null != classDoc.superclass()) {
+            output.beginDiv(CssClass.CLASS_SYNOPSIS_SUPERCLASS);
+            output.print("extends ");
+            printType(output, classDoc.superclass());
+            output.endDiv(CssClass.CLASS_SYNOPSIS_SUPERCLASS);
+         }
+      }
+
+      ClassDoc[] interfaces = classDoc.interfaces();
+      if (interfaces.length > 0) {
+         output.beginDiv(CssClass.CLASS_SYNOPSIS_IMPLEMENTS);
+         if (!classDoc.isInterface()) {
+            output.print("implements ");
+         }
+         else {
+            output.print("extends ");
+         }
+         for (int i=0; i<interfaces.length; ++i) {
+            if (i>0) {
+               output.print(", ");
+            }
+            printType(output, interfaces[i]);
+         }
+         output.endDiv(CssClass.CLASS_SYNOPSIS_IMPLEMENTS);
+      }
+      output.endDiv(CssClass.CLASS_SYNOPSIS);
+
+      output.hr();
+
+      if (!optionNoComment.getValue()) {
+         output.beginDiv(CssClass.CLASS_DESCRIPTION);
+         printTags(output, classDoc, classDoc.inlineTags(), false);
+         output.endDiv(CssClass.CLASS_DESCRIPTION);
+
+         printTaglets(output, classDoc.tags(), new HtmlTagletContext(classDoc, output, false));
+      }
+
+
+      Set implementedInterfaces = getImplementedInterfaces(classDoc);
+
+      boolean haveInheritedFields = false;
+      boolean haveInheritedMethods = false;
+      boolean haveInheritedClasses = false;
+      {
+         if (!classDoc.isInterface()) {
+            ClassDoc superClassDoc = classDoc.superclass();
+            while (null != superClassDoc
+                   && (!haveInheritedFields 
+                       || !haveInheritedMethods
+                       || !haveInheritedClasses)) {
+               if (superClassDoc.fields().length > 0) {
+                  haveInheritedFields = true;
+               }
+               if (superClassDoc.methods().length > 0) {
+                  haveInheritedMethods = true;
+               }
+               if (superClassDoc.innerClasses().length > 0) {
+                  haveInheritedClasses = true;
+               }
+               superClassDoc = superClassDoc.superclass();
+            }
+         }
+      }
+      
+      printProgramElementDocs(output, getSortedInnerClasses(classDoc), 
+                              "Nested Class Summary", haveInheritedClasses,
+                              "summary-inner");
+
+      {
+         ClassDoc superClassDoc = classDoc.superclass();
+         while (null != superClassDoc) {
+            printInheritedMembers(output, getSortedInnerClasses(superClassDoc),
+                                  "Nested classes/interfaces inherited from class {0}",
+                                  superClassDoc);
+            superClassDoc = superClassDoc.superclass();
+         }
+      }
+
+      printProgramElementDocs(output, getSortedFields(classDoc), 
+                              "Field Summary", haveInheritedFields,
+                              "summary-fields");
+
+      {
+         ClassDoc superClassDoc = classDoc.superclass();
+         while (null != superClassDoc) {
+            printInheritedMembers(output, getSortedFields(superClassDoc),
+                                  "Fields inherited from class {0}",
+                                  superClassDoc);
+            superClassDoc = superClassDoc.superclass();
+         }
+      }
+
+      {
+         Iterator it = implementedInterfaces.iterator();
+         while (it.hasNext()) {
+            ClassDoc implementedInterface 
+               = (ClassDoc)it.next();
+            if (!"java.io.Serializable".equals(implementedInterface.qualifiedName())
+                && !"java.io.Externalizable".equals(implementedInterface.qualifiedName())) {
+               printInheritedMembers(output, getSortedFields(implementedInterface),
+                                     "Fields inherited from interface {0}",
+                                     implementedInterface);
+            }
+         } 
+      }
+
+      printProgramElementDocs(output, getSortedConstructors(classDoc), 
+                              "Constructor Summary", false,
+                              "summary-constructors");
+      printProgramElementDocs(output, getSortedMethods(classDoc),
+                              "Method Summary", haveInheritedMethods,
+                              "summary-methods");
+
+      if (classDoc.isInterface()) {
+         InterfaceRelation relation 
+            = (InterfaceRelation)getInterfaceRelations().get(classDoc);
+         Iterator it = relation.superInterfaces.iterator();
+         while (it.hasNext()) {
+            ClassDoc superClassDoc = (ClassDoc)it.next();
+            printInheritedMembers(output, getSortedMethods(superClassDoc),
+                                  "Methods inherited from interface {0}",
+                                  superClassDoc);
+         }
+      }
+      else {
+         ClassDoc superClassDoc = classDoc.superclass();
+         while (null != superClassDoc) {
+            printInheritedMembers(output, getSortedMethods(superClassDoc),
+                                  "Methods inherited from class {0}",
+                                  superClassDoc);
+            superClassDoc = superClassDoc.superclass();
+         }
+      }
+
+      printMemberDetails(output, getSortedFields(classDoc), 
+                         "Field Details", false, "detail-fields");
+      printMemberDetails(output, getSortedConstructors(classDoc), 
+                         "Constructor Details", false, "detail-constructors");
+      printMemberDetails(output, getSortedMethods(classDoc),
+                         "Method Details", false, "detail-methods");
+
+      printNavBarBottom(output, "class", classDoc);
+
+      output.endBody();
+      output.endPage();
+      output.close();
+   }
+
+   private void printInheritedMembers(HtmlPage output,
+                                      ProgramElementDoc[] memberDocs, 
+                                      String headerFormat,
+                                      ClassDoc superclass)
+   {
+      if (memberDocs.length > 0) {
+
+         output.beginDiv(CssClass.TABLE_CONTAINER);
+         output.beginTable(CssClass.CLASS_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+         String superclassLink;
+         if (superclass.isIncluded()) {
+            superclassLink = superclass.containingPackage().name()
+               + "." + createTypeHref(output, superclass, false);
+         }
+         else {
+            superclassLink = createTypeHref(output, superclass, true);
+         }
+         output.rowDiv(CssClass.TABLE_SUB_HEADER, 
+                       new MessageFormat(headerFormat).format(new Object[] { 
+                          superclassLink 
+                       }));
+
+         output.beginRow();
+         output.beginCell(CssClass.CLASS_SUMMARY_INHERITED);
+         for (int i=0; i<memberDocs.length; ++i) {
+            ProgramElementDoc memberDoc = memberDocs[i];
+            if (i > 0) {
+               output.print(", ");
+            }
+            String title = null;
+            if (memberDoc.isMethod()) {
+               title = memberDoc.name() + ((MethodDoc)memberDoc).flatSignature();
+            }
+            else if (memberDoc.isInterface()) {
+               title = "interface " + ((ClassDoc)memberDoc).qualifiedName();
+            } 
+            else if (memberDoc.isClass()) {
+               title = "class " + ((ClassDoc)memberDoc).qualifiedName();
+            }
+            output.beginAnchor(getMemberDocURL(output, memberDoc), title);
+            output.beginSpan(CssClass.CLASS_SUMMARY_INHERITED_MEMBER);
+            output.print(memberDoc.name());
+            output.endSpan(CssClass.CLASS_SUMMARY_INHERITED_MEMBER);
+            output.endAnchor();
+         }
+         output.endCell();
+         output.endRow();
+         output.endTable();
+         output.endDiv(CssClass.TABLE_CONTAINER);
+      }
+   }
+
+   private void collectSpecifiedByRecursive(Set specifyingInterfaces, 
+                                            ClassDoc classDoc,
+                                            MethodDoc methodDoc)
+   {
+      ClassDoc[] interfaces = classDoc.interfaces();
+      for (int i=0; i<interfaces.length; ++i) {
+         MethodDoc[] methods = interfaces[i].methods();
+         for (int j=0; j<methods.length; ++j) {
+            if (methods[j].name().equals(methodDoc.name())
+                && methods[j].signature().equals(methodDoc.signature())) {
+               specifyingInterfaces.add(methods[j]);
+               break;
+            }
+         }
+         collectSpecifiedByRecursive(specifyingInterfaces,
+                                     interfaces[i],
+                                     methodDoc);
+      }
+   }
+
+   private void printMemberDetails(HtmlPage output,
+                                   ProgramElementDoc[] memberDocs, String header,
+                                   boolean isOnSerializedPage,
+                                   String anchor)
+   {
+      if (memberDocs.length > 0) {
+
+         if (null != anchor) {
+            output.anchorName(anchor);
+         }
+
+         CssClass sectionClass;
+         CssClass headerClass;
+         if (isOnSerializedPage) {
+            sectionClass = CssClass.SERIALIZED_SECTION;
+            headerClass = CssClass.SERIALIZED_SECTION_HEADER;
+         }
+         else {
+            sectionClass = CssClass.SECTION;
+            headerClass = CssClass.SECTION_HEADER;
+         }
+         output.div(headerClass, header);
+         output.beginDiv(sectionClass);
+
+         for (int i=0; i<memberDocs.length; ++i) {
+            if (i>0) {
+               output.hr();
+            }
+
+            ProgramElementDoc memberDoc = memberDocs[i];
+
+            output.anchorName(getMemberAnchor(memberDoc));
+
+            output.beginDiv(CssClass.MEMBER_DETAIL);
+            output.div(CssClass.MEMBER_DETAIL_NAME, memberDoc.name());
+
+            StringBuffer synopsis = new StringBuffer();
+            int synopsisLength = 0;
+
+            if (!isOnSerializedPage || !memberDoc.isField()) {
+               String fullModifiers = getFullModifiers(memberDoc);
+               synopsis.append(fullModifiers);
+               synopsisLength += fullModifiers.length();
+
+            }
+            if (memberDoc.isMethod() || memberDoc.isField()) {
+               Type type;
+               if (memberDoc.isMethod()) {
+                  type = ((MethodDoc)memberDoc).returnType();
+               }
+               else {
+                  type = ((FieldDoc)memberDoc).type();
+               }
+               
+               synopsis.append(" ");
+               synopsisLength ++;
+               synopsis.append(createTypeHref(output, type, false));
+               if (null != type.asClassDoc() && type.asClassDoc().isIncluded()) {
+                  synopsisLength += type.asClassDoc().name().length();
+               }
+               else {
+                  synopsisLength += type.qualifiedTypeName().length();
+               }
+               synopsisLength += type.dimension().length();
+            }
+
+            synopsis.append(" ");
+            synopsisLength ++;
+
+            if (optionLinkSource.getValue() && null != memberDoc.position()) {
+               ClassDoc containingClass = memberDoc.containingClass();
+               while (null != containingClass.containingClass()) {
+                  containingClass = containingClass.containingClass();
+               }
+               String href = containingClass.name() + "-source" + filenameExtension + "#line." + memberDoc.position().line();
+               synopsis.append(output.createHrefString(href, memberDoc.name()));
+            }
+            else {
+               synopsis.append(memberDoc.name());
+            }
+            synopsisLength += memberDoc.name().length();
+
+            if (memberDoc.isConstructor() || memberDoc.isMethod()) {
+               //printParameters(output, (ExecutableMemberDoc)memberDoc);
+               synopsis.append("(");
+               ++ synopsisLength;
+               StringBuffer paddingLeft = new StringBuffer();
+               for (int j=0; j<synopsisLength; ++j) {
+                  paddingLeft.append(' ');
+               }
+               Parameter[] parameters = ((ExecutableMemberDoc)memberDoc).parameters();
+               for (int j=0; j<parameters.length; ++j) {
+                  Parameter parameter = parameters[j];
+                  synopsis.append(createTypeHref(output, parameter.type(), false));
+                  synopsis.append(" ");
+                  synopsis.append(parameter.name());
+                  if (j < parameters.length - 1) {
+                     synopsis.append(",\n");
+                     synopsis.append(paddingLeft);
+                  }
+               }
+               synopsis.append(")");
+               ClassDoc[] exceptions = ((ExecutableMemberDoc)memberDoc).thrownExceptions();
+               if (exceptions.length > 0) {
+                  synopsis.append("\n            throws ");
+                  for (int j=0; j<exceptions.length; ++j) {
+                     ClassDoc exception = exceptions[j];
+                     synopsis.append(createTypeHref(output, exception, false));
+                     if (j < exceptions.length - 1) {
+                        synopsis.append(",\n                   ");
+                     }
+                  }
+               }
+            }
+
+            output.beginDiv(CssClass.MEMBER_DETAIL_SYNOPSIS);
+            output.print(synopsis.toString());
+            output.endDiv(CssClass.MEMBER_DETAIL_SYNOPSIS);
+
+            output.beginDiv(CssClass.MEMBER_DETAIL_BODY);
+
+            Tag[] deprecatedTags = memberDoc.tags("deprecated");
+            if (deprecatedTags.length > 0) {
+               output.beginDiv(CssClass.DEPRECATED_INLINE);
+               output.beginSpan(CssClass.DEPRECATED_HEADER);
+               output.print("Deprecated. ");
+               output.endSpan(CssClass.DEPRECATED_HEADER);
+               output.beginSpan(CssClass.DEPRECATED_BODY);
+            }
+            for (int j=0; j<deprecatedTags.length; ++j) {
+               printTags(output, memberDoc, deprecatedTags[j].inlineTags(), true);
+            }
+            if (deprecatedTags.length > 0) {
+               output.endSpan(CssClass.DEPRECATED_BODY);
+               output.beginDiv(CssClass.DEPRECATED_INLINE);
+            }
+
+            output.beginDiv(CssClass.MEMBER_DETAIL_DESCRIPTION);
+            printTags(output, memberDoc, memberDoc.inlineTags(), false);
+            output.endDiv(CssClass.MEMBER_DETAIL_DESCRIPTION);
+
+            if (memberDoc.isConstructor() || memberDoc.isMethod()) {
+
+               if (memberDoc.isMethod()) {
+                  Set specifyingInterfaces = new LinkedHashSet();
+                  if (memberDoc.containingClass().isInterface()) {
+                     collectSpecifiedByRecursive(specifyingInterfaces,
+                                                 memberDoc.containingClass(), 
+                                                 (MethodDoc)memberDoc);
+                  }
+                  else {
+                     for (ClassDoc cd = memberDoc.containingClass();
+                          null != cd; cd = cd.superclass()) {
+                        collectSpecifiedByRecursive(specifyingInterfaces,
+                                                    cd, 
+                                                    (MethodDoc)memberDoc);
+                     }
+                  }
+
+                  if (!specifyingInterfaces.isEmpty()
+                      && !isOnSerializedPage) {
+                     output.beginDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_LIST);
+                     output.div(CssClass.MEMBER_DETAIL_SPECIFIED_BY_HEADER, "Specified by:");
+                     Iterator it = specifyingInterfaces.iterator();
+                     while (it.hasNext()) {
+                        MethodDoc specifyingInterfaceMethod = (MethodDoc)it.next();
+                        output.beginDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_ITEM);
+                        output.beginAnchor(getMemberDocURL(output, 
+                                                           specifyingInterfaceMethod));
+                        output.print(memberDoc.name());
+                        output.endAnchor();
+                        output.print(" in interface ");
+                        printType(output, specifyingInterfaceMethod.containingClass());
+                        output.endDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_ITEM);
+                     }
+                     output.endDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_LIST);
+                  }
+                  
+                  ClassDoc overriddenClassDoc = null;
+                  MemberDoc specifyingSuperMethod = null;
+
+                  for (ClassDoc superclassDoc = memberDoc.containingClass().superclass();
+                       null != superclassDoc && null == overriddenClassDoc;
+                       superclassDoc = superclassDoc.superclass()) {
+                     
+                     MethodDoc[] methods = superclassDoc.methods();
+                     for (int j=0; j<methods.length; ++j) {
+                        if (methods[j].name().equals(memberDoc.name())
+                            && methods[j].signature().equals(((MethodDoc)memberDoc).signature())) {
+                           overriddenClassDoc = superclassDoc;
+                           specifyingSuperMethod = methods[j];
+                           break;
+                        }
+                     }
+                  }
+
+                  if (null != overriddenClassDoc) {
+                     output.beginDiv(CssClass.MEMBER_DETAIL_OVERRIDDEN_LIST);
+                     output.div(CssClass.MEMBER_DETAIL_OVERRIDDEN_HEADER, "Overrides:");
+                     output.beginDiv(CssClass.MEMBER_DETAIL_OVERRIDDEN_ITEM);
+
+                     output.beginAnchor(getMemberDocURL(output, 
+                                                        specifyingSuperMethod));
+                     output.print(memberDoc.name());
+                     output.endAnchor();
+                     output.print(" in interface ");
+                     printType(output, overriddenClassDoc);
+
+                     output.endDiv(CssClass.MEMBER_DETAIL_OVERRIDDEN_ITEM);
+                     output.endDiv(CssClass.MEMBER_DETAIL_OVERRIDDEN_LIST);
+                  }
+               }
+
+               if (!optionNoComment.getValue()) {
+
+                  ExecutableMemberDoc execMemberDoc
+                     = (ExecutableMemberDoc)memberDoc;
+
+                  if (execMemberDoc.paramTags().length > 0) {
+                     output.beginDiv(CssClass.MEMBER_DETAIL_PARAMETER_LIST);
+                     output.div(CssClass.MEMBER_DETAIL_PARAMETER_HEADER, "Parameters:");
+                     Parameter[] parameters = execMemberDoc.parameters();
+                     for (int j=0; j<parameters.length; ++j) {
+                        Parameter parameter = parameters[j];
+                        ParamTag[] paramTags = execMemberDoc.paramTags();
+                        ParamTag paramTag = null;
+                        for (int k=0; k<paramTags.length; ++k) {
+                           if (paramTags[k].parameterName().equals(parameter.name())) {
+                              paramTag = paramTags[k];
+                              break;
+                           }
+                        }
+                     
+                        if (null != paramTag) {
+                           output.beginDiv(CssClass.MEMBER_DETAIL_PARAMETER_ITEM);
+                           output.beginSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_NAME);
+                           output.print(parameter.name());
+                           output.endSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_NAME);
+                           output.beginSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_SEPARATOR);
+                           output.print(" - ");
+                           output.endSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_SEPARATOR);
+                           output.beginSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_DESCRIPTION);
+                           printTags(output, execMemberDoc, paramTag.inlineTags(), false);
+                           output.endSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_DESCRIPTION);
+                           output.endDiv(CssClass.MEMBER_DETAIL_PARAMETER_ITEM);
+                        }
+                     }
+                     output.endDiv(CssClass.MEMBER_DETAIL_PARAMETER_LIST);
+                  }
+
+                  if (execMemberDoc.isMethod() 
+                      && !"void".equals(((MethodDoc)execMemberDoc).returnType().typeName())) {
+
+                     Tag[] returnTags = execMemberDoc.tags("return");
+                     if (returnTags.length > 0) {
+                        Tag returnTag = returnTags[0];
+
+                        output.beginDiv(CssClass.MEMBER_DETAIL_RETURN_LIST);
+                        output.div(CssClass.MEMBER_DETAIL_RETURN_HEADER, "Returns:");
+                        output.beginDiv(CssClass.MEMBER_DETAIL_RETURN_ITEM);
+
+                        printTags(output, execMemberDoc, returnTag.inlineTags(), false);
+
+                        output.endDiv(CssClass.MEMBER_DETAIL_RETURN_ITEM);
+                        output.endDiv(CssClass.MEMBER_DETAIL_RETURN_LIST);
+                     }
+                  }
+
+                  Set thrownExceptions = getThrownExceptions(execMemberDoc);
+                  boolean haveThrowsInfo = false;
+                  ThrowsTag[] throwsTags = execMemberDoc.throwsTags();
+                  for (int k=0; k<throwsTags.length; ++k) {
+                     ThrowsTag throwsTag = throwsTags[k];
+                     if (null != throwsTags[k].exception()
+                         && (isUncheckedException(throwsTags[k].exception())
+                             || thrownExceptions.contains(throwsTag.exception()))) {
+                        haveThrowsInfo = true;
+                        break;
+                     }
+                  }
+
+                  if (haveThrowsInfo) {
+                     output.beginDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
+                     output.div(CssClass.MEMBER_DETAIL_THROWN_HEADER, "Throws:");
+
+                     for (int k=0; k<throwsTags.length; ++k) {
+                        ThrowsTag throwsTag = throwsTags[k];
+                        if (null != throwsTag.exception()
+                            && (isUncheckedException(throwsTag.exception())
+                                || thrownExceptions.contains(throwsTag.exception()))) {
+                           output.beginDiv(CssClass.MEMBER_DETAIL_THROWN_ITEM);
+                           output.beginSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_NAME);
+                           printType(output, throwsTags[k].exception());
+                           output.endSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_NAME);
+                           if (null != throwsTag) {
+                              output.beginSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_SEPARATOR);
+                              output.print(" - ");
+                              output.endSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_SEPARATOR);
+                              output.beginSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_DESCRIPTION);
+                              printTags(output, execMemberDoc, throwsTag.inlineTags(), false);
+                              output.endSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_DESCRIPTION);
+                           }
+                           output.endDiv(CssClass.MEMBER_DETAIL_THROWN_ITEM);
+                        }
+                     }
+                     output.endDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
+                  }
+               }
+            }
+
+            if (!optionNoComment.getValue()) {
+
+               if (memberDoc.isField()) {
+                  FieldDoc fieldDoc = ((FieldDoc)memberDoc);
+                  if (null != fieldDoc.constantValue()) {
+                     output.beginDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
+                     output.div(CssClass.MEMBER_DETAIL_THROWN_HEADER, "Field Value:");
+                     output.div(CssClass.MEMBER_DETAIL_THROWN_ITEM, 
+                                fieldDoc.constantValueExpression().toString());
+                     output.endDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
+                  }
+               }
+
+               TagletContext context = new HtmlTagletContext(memberDoc, output, isOnSerializedPage);
+               printTaglets(output, memberDoc.tags(), context);
+            }
+
+            output.endDiv(CssClass.MEMBER_DETAIL_BODY);
+            output.endDiv(CssClass.MEMBER_DETAIL);
+         }
+         output.endDiv(sectionClass);
+      }
+   }
+
+
+   private void printParameters(HtmlPage output, ExecutableMemberDoc memberDoc)
+   {
+      Parameter[] parameters = memberDoc.parameters();
+      output.print("(");
+      for (int j=0; j<parameters.length; ++j) {
+         if (j > 0) {
+            output.print(", ");
+         }
+         printType(output, parameters[j].type());
+         output.print("&nbsp;");
+         output.print(parameters[j].name());
+      }
+      output.print(")");
+   }
+
+   private void printProgramElementDocs(HtmlPage output,
+                                        ProgramElementDoc[] memberDocs, 
+                                        String header,
+                                        boolean forceOutputHeader,
+                                        String anchor)
+   {
+      if (memberDocs.length > 0 || forceOutputHeader) {
+         output.anchorName(anchor);
+         output.beginDiv(CssClass.TABLE_CONTAINER);
+         output.beginTable(CssClass.CLASS_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+         output.rowDiv(CssClass.TABLE_HEADER, header);
+
+         for (int i=0; i<memberDocs.length; ++i) {
+            ProgramElementDoc memberDoc = memberDocs[i];
+            output.beginRow();
+
+            if (!memberDoc.isConstructor()) {
+               output.beginCell(CssClass.CLASS_SUMMARY_LEFT);
+               output.beginDiv(CssClass.CLASS_SUMMARY_LEFT_SYNOPSIS);
+               output.print(getSummaryModifiers(memberDoc) + " ");
+               if (memberDoc.isMethod()) {
+                  printType(output, ((MethodDoc)memberDoc).returnType());
+               }
+               else if (memberDoc.isField()) {
+                  printType(output, ((FieldDoc)memberDoc).type());
+               }
+               else if (memberDoc.isInterface()) {
+                  output.print(" interface");
+               }
+               else if (memberDoc.isClass()) {
+                  output.print(" class");
+               }
+               output.endDiv(CssClass.CLASS_SUMMARY_LEFT_SYNOPSIS);
+               output.endCell();
+            }
+
+            output.beginCell(CssClass.CLASS_SUMMARY_RIGHT);
+            output.beginDiv(CssClass.CLASS_SUMMARY_RIGHT_LIST);
+            output.beginDiv(CssClass.CLASS_SUMMARY_RIGHT_SYNOPSIS);
+            if (memberDoc.isClass() || memberDoc.isInterface()) {
+               output.beginAnchor(getClassDocURL(output, (ClassDoc)memberDoc));
+            }
+            else {
+               output.beginAnchor("#" + getMemberAnchor(memberDoc));
+            }
+            output.print(memberDoc.name());
+            output.endAnchor();
+            if (memberDoc.isConstructor() || memberDoc.isMethod()) {
+               printParameters(output, (ExecutableMemberDoc)memberDoc);
+            }
+            output.endDiv(CssClass.CLASS_SUMMARY_RIGHT_SYNOPSIS);
+            Tag[] firstSentenceTags;
+            Tag[] deprecatedTags = memberDoc.tags("deprecated");
+            if (deprecatedTags.length > 0) {
+               firstSentenceTags = deprecatedTags[0].firstSentenceTags();
+            }
+            else {
+               firstSentenceTags = memberDoc.firstSentenceTags();
+            }
+
+            if (null != firstSentenceTags && firstSentenceTags.length > 0) {
+               output.beginDiv(CssClass.CLASS_SUMMARY_RIGHT_DESCRIPTION);
+               if (deprecatedTags.length > 0) {
+                  output.beginDiv(CssClass.DEPRECATED);
+                  output.beginSpan(CssClass.DEPRECATED_HEADER);
+                  output.print("Deprecated. ");
+                  output.endSpan(CssClass.DEPRECATED_HEADER);
+                  output.beginSpan(CssClass.DEPRECATED_BODY);
+               }
+               printTags(output, memberDoc, firstSentenceTags, true);
+               if (deprecatedTags.length > 0) {
+                  output.endSpan(CssClass.DEPRECATED_BODY);
+                  output.beginDiv(CssClass.DEPRECATED);
+               }
+               output.endDiv(CssClass.CLASS_SUMMARY_RIGHT_DESCRIPTION);
+            }
+            output.endDiv(CssClass.CLASS_SUMMARY_RIGHT_LIST);
+            output.endCell();
+            output.endRow();
+         }
+         output.endTable();
+         output.endDiv(CssClass.TABLE_CONTAINER);
+      }
+   }
+
+   private void printTag(final HtmlPage output, 
+                         HtmlRepairer repairer,
+                         Tag tag, boolean firstSentence,
+                         boolean inline,
+                         Doc contextDoc)
+   {
+      TagletContext context = new HtmlTagletContext(contextDoc, output, false);
+      if (firstSentence) {
+         output.print(renderInlineTags(tag.firstSentenceTags(), context));
+      }
+      else {
+         output.print(renderInlineTags(tag.inlineTags(), context));
+      }
+   }
+
+   private void printTags(HtmlPage output, Doc contextDoc, Tag[] tags, boolean firstSentence)
+   {
+      printTags(output, contextDoc, tags, firstSentence, false);
+   }
+
+   private void printTags(HtmlPage output, Doc contextDoc, Tag[] tags, boolean firstSentence, boolean inline)
+   {
+      if (!optionNoComment.getValue()) {
+         output.print(renderInlineTags(tags, new HtmlTagletContext(contextDoc, output, false)));
+      }
+
+      /*
+      if (!optionNoComment.getValue()) {
+         output.print(renderInlineTags(tag.firstSentenceTags(), output));
+         HtmlRepairer repairer = new HtmlRepairer(getRootDoc(), 
+                                                  true, false,
+                                                  null, null,
+                                                  true);
+         for (int i=0; i<tags.length; ++i) {
+            printTag(output, repairer, tags[i], firstSentence, inline);
+         }
+         output.print(repairer.terminateText());
+      }
+      */
+   }
+
+   private String getClassDocURL(HtmlPage output, ClassDoc classDoc)
+   {
+      return output.getPathToRoot() 
+         + "/"
+         + getPackageURL(classDoc.containingPackage()) 
+         + classDoc.name() + filenameExtension;
+   }
+
+   private String getMemberDocURL(HtmlPage output, ProgramElementDoc memberDoc)
+   {
+      ClassDoc classDoc = memberDoc.containingClass();
+      PackageDoc packageDoc = classDoc.containingPackage();
+      ExternalDocSet externalDocSet = null;
+      if (classDoc.containingPackage().name().length() > 0) {
+         externalDocSet = (ExternalDocSet)packageNameToDocSet.get(packageDoc.name());
+      }
+      StringBuffer result = new StringBuffer();
+      result.append(getClassDocURL(output, classDoc));
+      result.append('#');
+      if (null == externalDocSet) {
+         result.append(getMemberAnchor(memberDoc));
+      }
+      else {
+         result.append(getMemberAnchor(memberDoc, externalDocSet.isJavadocCompatible()));
+      }
+      return result.toString();
+   }
+
+   private void printType(HtmlPage output, Type type)
+   {
+      printType(output, type, false);
+   }
+
+   private void printType(HtmlPage output, Type type, boolean fullyQualified)
+   {
+      output.print(createTypeHref(output, type, fullyQualified));
+   }
+
+   private String createTypeHref(HtmlPage output, Type type, boolean fullyQualified)
+   {
+      ClassDoc asClassDoc = type.asClassDoc();
+      String url = null;
+      if (null != asClassDoc && asClassDoc.isIncluded()) {
+         url = getClassDocURL(output, asClassDoc);
+      }
+      else if (!type.isPrimitive()) {
+         if (type.qualifiedTypeName().length() > type.typeName().length()) {
+            String packageName = type.qualifiedTypeName();
+            packageName = packageName.substring(0, packageName.length() - type.typeName().length() - 1);
+            
+            ExternalDocSet externalDocSet
+               = (ExternalDocSet)packageNameToDocSet.get(packageName);
+            if (null != externalDocSet) {
+               url = externalDocSet.getClassDocURL(packageName, type.typeName());
+            }
+         }
+      }
+
+      StringBuffer result = new StringBuffer();
+      
+      if (null != url && null != asClassDoc) {
+       String parameters = getTypeParameters(asClassDoc);
+         if (fullyQualified) {
+            result.append(output.createHrefString(url,possiblyQualifiedName(asClassDoc) + parameters));
+         }
+         else {
+            StringBuffer title = new StringBuffer();
+            title.append(getClassTypeName(asClassDoc));
+            title.append(" in ");
+            title.append(asClassDoc.containingPackage().name());
+            result.append(output.createHrefString(url, asClassDoc.name() + parameters, title.toString()));
+         }
+      }
+      else {
+         result.append(possiblyQualifiedName(type));
+      }
+      result.append(type.dimension());
+      return result.toString();
+   }
+
+   private void printTaglets(final HtmlPage output, Tag[] tags, TagletContext context) 
+   {
+      super.printMainTaglets(tags, context, new TagletPrinter() {
+            public void printTagletString(String tagletString) {
+               output.beginDiv(CssClass.TAGLET);
+               output.print(tagletString);
+               output.endDiv(CssClass.TAGLET);
+            }
+         });
+   }
+
+   private String getPackageURL(PackageDoc packageDoc)
+   {
+      if (packageDoc.name().length() > 0) {
+         ExternalDocSet externalDocSet = (ExternalDocSet)packageNameToDocSet.get(packageDoc.name());
+         String url;
+         if (null != externalDocSet) {
+            url = externalDocSet.getPackageDocURL(packageDoc.name());
+         }
+         else {
+            url = packageDoc.name().replace('.', '/');
+         }
+         if (!url.endsWith("/")) {
+            return url + '/';
+         }
+         else {
+            return url;
+         }
+     }
+      else {
+         return "";
+      }
+   }
+
+   private String getClassURL(ClassDoc classDoc)
+   {
+      ExternalDocSet externalDocSet = null;
+      if (classDoc.containingPackage().name().length() > 0) {
+         externalDocSet = (ExternalDocSet)packageNameToDocSet.get(classDoc.containingPackage().name());
+      }
+      if (null != externalDocSet) {
+         return externalDocSet.getClassDocURL(classDoc.containingPackage().name(), 
+                                              classDoc.name());
+      }
+      else {
+         return getPackageURL(classDoc.containingPackage()) + classDoc.name() + filenameExtension;
+      }
+   }
+
+   protected void run()
+      throws DocletConfigurationException, IOException
+   {
+      if (optionSerialWarn.getValue()) {
+         printWarning("Option -serialwarn is currently ignored.");
+      }
+
+      if (null != optionTitle.getValue()) {
+         printWarning("Option -title is deprecated.");
+      }
+
+      if (!optionValidHtml.getValue()) {
+         printWarning("Option -validhtml hasn't been specified. Generated HTML will not validate.");
+      }
+
+
+      {
+         boolean warningEmitted = false;
+         Iterator it = externalDocSets.iterator();
+         while (it.hasNext()) {
+            ExternalDocSet externalDocSet = (ExternalDocSet)it.next();
+            printNotice("Fetching package list for external documentation set.");     
+            try {
+               externalDocSet.load(getTargetDirectory());
+               if (!isJavadocCompatibleNames() && externalDocSet.isJavadocCompatible()
+                   && !warningEmitted) {
+                  printWarning("Linking to javadoc-compatible documentation. Generated HTML will not validate ");
+                  warningEmitted = true;
+               }
+            }
+            catch (FileNotFoundException e) {
+               printWarning("Cannot fetch package list from " + externalDocSet.getPackageListDir());
+            }
+            Iterator pit = externalDocSet.getPackageNames().iterator();
+            while (pit.hasNext()) {
+               String packageName = (String)pit.next();
+               packageNameToDocSet.put(packageName, externalDocSet);
+            }
+         }
+      }
+      printNotice("Building cross-reference information...");
+      getInterfaceRelations();
+      getAllSubClasses();
+
+      printNotice("Writing overview files...");
+      printFrameSetPage();
+      if (!isSinglePackage()) {
+         printPackagesMenuPage();
+         printAllClassesMenuPage();
+         printOverviewPage();
+         if (!optionNoTree.getValue()) {
+            printNotice("Writing full tree...");
+            printFullTreePage();
+         }
+      }
+      printPackagesListFile();
+      printAboutPage();
+      if (!optionNoIndex.getValue()) {
+         printNotice("Writing index...");
+         if (!optionSplitIndex.getValue()) {
+            printIndexPage();
+         }
+         else {
+            printSplitIndex();
+         }
+      }
+      if (outputHelpPage && !optionNoHelp.getValue()) {
+         printHelpPage();
+      }
+
+      // Copy resources
+
+      File resourcesDir = new File(getTargetDirectory(),
+                                   "resources");
+
+      if ((resourcesDir.exists() && !resourcesDir.isDirectory())
+          || (!resourcesDir.exists() && !resourcesDir.mkdirs())) {
+         throw new IOException("Cannot create directory " + resourcesDir);
+      }
+
+      // Copy resources
+
+      String[] resourceNames = {
+         "gjdoc.js",
+         "gjdochtml-clean-layout.css",
+         "gjdochtml-clean-color1.css",
+         "inherit.png",
+         "xhtml11-target10.dtd",
+      };
+
+      for (int i=0; i<resourceNames.length; ++i) {
+         String resourceName = resourceNames[i];
+         File targetFile = new File(resourcesDir,
+                                    resourceName);
+         InputStream in = getClass().getResourceAsStream("/htmldoclet/" + resourceName);
+         if (in == null) {
+               in = new FileInputStream("src/resources/htmldoclet/" + resourceName);
+         }
+         FileOutputStream out = new FileOutputStream(targetFile);
+         IOToolkit.copyStream(in, out);
+         in.close();
+         out.close();
+      }
+
+      // Copy stylesheets
+
+      if (null != optionAddStylesheet.getValue()) { 
+         File addStylesheetTargetFile = new File(resourcesDir,
+                                                 "user.css");
+
+         IOToolkit.copyFile(optionAddStylesheet.getValue(),
+                            addStylesheetTargetFile);
+      }
+
+      if (null != optionStylesheetFile.getValue()) { 
+         File stylesheetTargetFile = new File(resourcesDir,
+                                              "user.css");
+
+         IOToolkit.copyFile(optionStylesheetFile.getValue(),
+                            stylesheetTargetFile);
+      }
+
+      // Write gjdoc.properties
+
+      File gjdocPropertiesTargetFile = new File(getTargetDirectory(),
+                                                "gjdoc.properties");
+      writeGjdocProperties(gjdocPropertiesTargetFile);
+
+      /*
+      else {
+         InputStream cssIn = getClass().getResourceAsStream("/htmldoclet/gjdochtml-vanilla.css");
+         FileOutputStream cssOut = new FileOutputStream(stylesheetTargetFile);
+         IOToolkit.copyStream(cssIn, cssOut);
+         cssIn.close();
+         cssOut.close();
+      }
+      */
+
+      if (!optionNoDeprecatedList.getValue()) {
+         printDeprecationPage();
+      }
+
+      printSerializationPage();
+
+      Collection packageDocsCollection = getAllPackages();
+      PackageDoc[] packageDocs
+         = (PackageDoc[])packageDocsCollection.toArray(new PackageDoc[0]);
+
+      for (int i=0; i<packageDocs.length; ++i) {
+         PackageDoc packageDoc = packageDocs[i];
+         File packageDir = new File(getTargetDirectory(),
+                                    packageDoc.name().replace('.', File.separatorChar));
+         if (!packageDir.exists() && !packageDir.mkdirs()) {
+            throw new IOException("Couldn't create directory " + packageDir);
+         }
+         try {
+            List packageSourceDirs = getPackageSourceDirs(packageDoc);
+            Iterator pdIt = packageSourceDirs.iterator();
+            while (pdIt.hasNext()) {
+               File sourcePackageDir = (File)pdIt.next();
+               copyDocFiles(sourcePackageDir, packageDir);
+            }
+         }
+         catch (IOException ignore) {
+         }
+         String pathToRoot = getPathToRoot(packageDir, getTargetDirectory());
+         String packageName = packageDoc.name();
+         if (0 == packageName.length()) {
+            packageName = "<unnamed>";
+         }
+         printNotice("Writing HTML files for package " + packageName);
+         printPackagePage(packageDir, pathToRoot, packageDoc,
+                          (i > 0) ? packageDocs[i - 1] : null,
+                          (i < packageDocs.length - 1) ? packageDocs[i + 1] : null);
+         if (!optionNoTree.getValue()) {
+            printPackageTreePage(packageDir, pathToRoot, packageDoc);
+         }
+         printPackageClassesMenuPage(packageDir, pathToRoot, packageDoc);
+         ClassDoc[] classDocs = packageDoc.allClasses();
+         for (int j=0; j<classDocs.length; ++j) {
+            ClassDoc classDoc = classDocs[j];
+            if (classDoc.isIncluded()) {
+               printClassPage(packageDir, pathToRoot, 
+                              classDocs[j],
+                              (j > 0) ? classDocs[j - 1] : null,
+                              (j < classDocs.length - 1) ? classDocs[j + 1] : null
+                              );
+               if (optionUse.getValue()) {
+                  printClassUsagePage(packageDir, pathToRoot, classDocs[j]);
+               }
+               if (optionLinkSource.getValue() && null == classDoc.containingClass()) {
+                  try {
+                     File sourceFile = getSourceFile(classDoc);
+
+                     Java2xhtml java2xhtml = new Java2xhtml();
+                     Properties properties = new Properties();
+                     properties.setProperty("isCodeSnippet", "true");
+                     properties.setProperty("hasLineNumbers", "true");
+                     java2xhtml.setProperties(properties);
+                     
+                     StringWriter sourceBuffer = new StringWriter();
+                     FileReader sourceReader = new FileReader(sourceFile);
+                     IOToolkit.copyStream(sourceReader, sourceBuffer);
+                     sourceReader.close();
+                     String result = java2xhtml.makeHTML(sourceBuffer.getBuffer(), sourceFile.getName());
+                     
+                     printSourcePage(packageDir,
+                                     classDoc,
+                                     result);
+                  }
+                  catch (IOException e) {
+                     printWarning("Cannot locate source file for class " + classDoc.qualifiedTypeName());
+                  }
+               }
+            }
+         }
+      }
+   }
+
+   private String getPathToRoot(File subDir, File rootDir)
+   {
+      StringBuffer result = new StringBuffer();
+      while (!subDir.equals(rootDir)) {
+         if (result.length() > 0) {
+            result.append("/");
+         }
+         subDir = subDir.getParentFile();
+         result.append("..");
+      }
+      if (0 == result.length()) {
+         result.append(".");
+      }
+      return result.toString();
+   }
+
+   private String getClassTypeName(ClassDoc classDoc) 
+   {
+      if (classDoc.isInterface()) {
+         return "Interface";
+      }
+      else {
+         return "Class";
+      }
+   }
+
+   private String getClassTypeKeyword(ClassDoc classDoc) 
+   {
+      if (classDoc.isInterface()) {
+         return "interface";
+      }
+      else {
+         return "class";
+      }
+   }
+
+   private String getMemberAnchor(ProgramElementDoc memberDoc)
+   {
+      return getMemberAnchor(memberDoc, isJavadocCompatibleNames());
+   }
+
+   private String getMemberAnchor(ProgramElementDoc memberDoc, boolean javadocCompatibility)
+   {
+      StringBuffer anchor = new StringBuffer();
+      anchor.append(memberDoc.name());
+      if (memberDoc.isConstructor() || memberDoc.isMethod()) {
+         if (javadocCompatibility) {
+            anchor.append(((ExecutableMemberDoc)memberDoc).signature());
+         }
+         else {
+            anchor.append(':');
+            Parameter[] parameters = ((ExecutableMemberDoc)memberDoc).parameters();
+            for (int i=0; i<parameters.length; ++i) {
+               anchor.append(parameters[i].type().typeName());
+               for (int j=0; j<parameters[i].type().dimension().length()/2; ++j) {
+                  anchor.append('-');
+               }
+               if (i < parameters.length - 1) {
+                  anchor.append(':');
+               }
+            }
+         }
+      }
+      return anchor.toString();
+   }
+
+   private String getFullModifiers(ProgramElementDoc memberDoc)
+   {
+      StringBuffer result = new StringBuffer();
+      if (memberDoc.isPackagePrivate()) {
+         result.append("(package private) ");
+      }
+      result.append(memberDoc.modifiers());
+      if ((memberDoc.isClass() && ((ClassDoc)memberDoc).isAbstract())
+          || (memberDoc.isMethod() && ((MethodDoc)memberDoc).isAbstract())) {
+         result.append(" abstract");
+      }
+      return result.toString();
+   }
+
+   private String getSummaryModifiers(ProgramElementDoc memberDoc)
+   {
+      StringBuffer result = new StringBuffer();
+      if (memberDoc.isPackagePrivate()) {
+         result.append("(package private) ");
+      }
+      else if (memberDoc.isPrivate()) {
+         result.append("private ");
+      }
+      else if (memberDoc.isProtected()) {
+         result.append("protected ");
+      }
+      if (memberDoc.isStatic()) {
+         result.append("static");
+      }
+      else if ((memberDoc.isClass() && ((ClassDoc)memberDoc).isAbstract())
+          || (memberDoc.isMethod() && ((MethodDoc)memberDoc).isAbstract())) {
+         result.append("abstract");
+      }
+      return result.toString();
+   }
+
+   protected DocletOption[] getOptions()
+   {
+      return options;
+   }
+
+   private DocletOptionFlag optionNoNavBar = 
+     new DocletOptionFlag("-nonavbar");
+
+   private DocletOptionFlag optionNoTree = 
+     new DocletOptionFlag("-notree");
+
+   private DocletOptionFlag optionNoDeprecatedList = 
+     new DocletOptionFlag("-nodeprecatedlist");
+
+   private DocletOptionFlag optionNoIndex = 
+     new DocletOptionFlag("-noindex");
+
+   private DocletOptionFlag optionUse = 
+     new DocletOptionFlag("-use");
+
+   private DocletOptionFlag optionNoHelp = 
+     new DocletOptionFlag("-nohelp");
+
+   private DocletOptionFlag optionNoComment = 
+     new DocletOptionFlag("-nocomment");
+
+   private DocletOptionFlag optionSerialWarn = 
+     new DocletOptionFlag("-serialwarn");
+
+   private DocletOptionFlag optionSplitIndex = 
+     new DocletOptionFlag("-splitindex");
+
+   private DocletOptionString optionHeader = 
+     new DocletOptionString("-header");
+
+   private DocletOptionString optionFooter = 
+     new DocletOptionString("-footer");
+
+   private DocletOptionString optionBottom = 
+     new DocletOptionString("-bottom");
+
+   private DocletOptionString optionWindowTitle = 
+     new DocletOptionString("-windowtitle");
+
+   private DocletOptionString optionDocTitle = 
+     new DocletOptionString("-doctitle");
+
+   private DocletOptionString optionTitle = 
+     new DocletOptionString("-title");
+
+   private DocletOptionFile optionHelpFile = 
+     new DocletOptionFile("-helpfile");
+
+   private DocletOptionFile optionStylesheetFile = 
+     new DocletOptionFile("-stylesheetfile");
+
+   private DocletOptionFlag optionLinkSource = 
+     new DocletOptionFlag("-linksource");
+
+   private DocletOption optionLink = 
+     new DocletOption("-link") {
+        
+        public int getLength()
+        {
+           return 2;
+        }
+
+        public boolean set(String[] optionArr)
+        {
+           externalDocSets.add(new ExternalDocSet(optionArr[1], null));
+           return true;
+        }
+     };
+
+   private DocletOption optionLinkOffline = 
+     new DocletOption("-linkoffline") {
+        
+        public int getLength()
+        {
+           return 3;
+        }
+
+        public boolean set(String[] optionArr)
+        {
+           externalDocSets.add(new ExternalDocSet(optionArr[1], optionArr[2]));
+           return true;
+        }
+     };
+
+   private DocletOptionString optionDocEncoding =
+     new DocletOptionString("-docencoding");
+
+   private DocletOptionString optionEncoding =
+     new DocletOptionString("-encoding");
+
+   private DocletOptionString optionCharset =
+     new DocletOptionString("-charset");
+
+   private DocletOptionFile optionAddStylesheet = 
+     new DocletOptionFile("-addstylesheet");
+
+   private DocletOptionFlag optionValidHtml = 
+     new DocletOptionFlag("-validhtml");
+
+   private DocletOptionString optionBaseUrl = 
+     new DocletOptionString("-baseurl");
+
+   private DocletOption[] options = 
+      {
+         optionNoNavBar,
+         optionNoTree,
+         optionNoDeprecatedList,
+         optionNoIndex,
+         optionNoHelp,
+         optionNoComment,
+         optionUse,
+         optionSplitIndex,
+         optionHeader,
+         optionFooter,
+         optionBottom,
+         optionHelpFile,
+         optionStylesheetFile,
+         optionWindowTitle,
+         optionDocTitle,
+         optionTitle,
+         optionLinkSource,
+         optionLink,
+         optionLinkOffline,
+         optionDocEncoding,
+         optionEncoding,
+         optionCharset,
+         optionAddStylesheet,
+         optionValidHtml,
+         optionBaseUrl,
+      };
+
+   static {
+      setInstance(new HtmlDoclet());
+   }
+
+   private static String replaceDocRoot(HtmlPage output, String str)
+   {
+      return StringToolkit.replace(str, "{@docRoot}", output.getPathToRoot());
+   }
+
+   private String getOutputDocEncoding()
+   {
+      String encoding = optionDocEncoding.getValue();
+
+      if (null == encoding) {
+         encoding = optionEncoding.getValue();
+      }
+
+      return encoding;
+   }
+
+   private String getOutputCharset()
+   {
+      if (null == outputCharset) {
+
+         if (null != optionCharset.getValue()) {
+            outputCharset = optionCharset.getValue();
+         }
+         else {
+            String fileEncoding = System.getProperty("file.encoding");
+            if (null != fileEncoding) {
+               try {
+                  outputCharset = Charset.forName(fileEncoding).name();
+               }
+               catch (Exception ignore) {
+               }
+            }
+
+            if (null == outputCharset) {
+               printWarning("Cannot determine platform default charset, falling back to ISO-8859-1.");
+               outputCharset = "ISO-8859-1";
+            }
+         }
+      }
+      return outputCharset;
+   }
+
+   public InlineTagRenderer getInlineTagRenderer()
+   {
+      return this;
+   }
+
+   public String renderInlineTags(Tag[] tags, TagletContext context)
+   {
+      StringBuffer result = new StringBuffer();
+
+      HtmlRepairer repairer = new HtmlRepairer(getRootDoc(), 
+                                               true, false,
+                                               null, null,
+                                               true);
+
+      for (int i=0; i<tags.length; ++i) {
+
+         Tag tag = tags[i];
+
+         if ("Text".equals(tag.name())) {
+            result.append(repairer.getWellformedHTML(tag.text()));
+         }
+         else if ("@link".equals(tag.name())) {
+            result.append(renderSeeTag((SeeTag)tag, context, false));
+         }
+         else if ("@linkplain".equals(tag.name())) {
+            result.append(renderSeeTag((SeeTag)tag, context, true));
+         }
+         else if ("@docRoot".equals(tag.name())) {         
+            result.append(((HtmlTagletContext)context).getOutput().getPathToRoot());
+         }
+         else {
+            //TagletContext context = TagletContext.OVERVIEW; // FIXME
+            Taglet taglet = (Taglet)tagletMap.get(tag.name().substring(1));
+            if (null != taglet) {
+               if (taglet instanceof GnuExtendedTaglet) {
+                  result.append(((GnuExtendedTaglet)taglet).toString(tag, context));
+               }
+               else {
+                  result.append(taglet.toString(tag));
+               }
+            }
+         }
+      }
+      result.append(repairer.terminateText());
+      return result.toString();
+   }
+
+   public String renderSeeTag(SeeTag seeTag, TagletContext context, boolean plainFont)
+   {
+      StringBuffer result = new StringBuffer();
+
+      String href = null;
+      String label = null;
+      MemberDoc referencedMember = seeTag.referencedMember();
+      if (null != seeTag.referencedClass()) {
+
+         href = getClassDocURL(((HtmlTagletContext)context).getOutput(), seeTag.referencedClass());
+
+         Doc doc = context.getDoc();
+         ClassDoc classDoc = null;
+         if (doc.isClass() || doc.isInterface()) {
+            classDoc = (ClassDoc)doc;
+         }
+         else if (doc.isField() || doc.isMethod() || doc.isConstructor()) {
+            classDoc = ((MemberDoc)doc).containingClass();
+         }
+
+         if (null == referencedMember
+             || seeTag.referencedClass() != classDoc
+             || ((HtmlTagletContext)context).isOnSerializedPage()) {
+
+            if (!seeTag.referencedClass().isIncluded()) {
+               label = possiblyQualifiedName(seeTag.referencedClass());
+            }
+            else {
+               label = seeTag.referencedClass().typeName();
+            }
+            if (null != referencedMember) {
+               label += '.';
+            }
+         }
+         else {
+            label = "";
+         }
+
+         if (null != referencedMember) {
+            label += referencedMember.name();
+            if (referencedMember.isMethod() || referencedMember.isConstructor()) {
+               label += ((ExecutableMemberDoc)referencedMember).flatSignature();
+            }
+            href  += '#' + getMemberAnchor(referencedMember);
+         }
+         else if (null != seeTag.referencedMemberName()) {
+            href = null;
+         }
+      }
+      else {
+         String referencedClassName = seeTag.referencedClassName();
+
+         if (null != referencedClassName) {
+
+            String referencedPackageName = null;
+
+            Iterator it = packageNameToDocSet.keySet().iterator();
+            while (it.hasNext()) {
+               String packageName = (String)it.next();
+               if ((null == referencedPackageName
+                    || packageName.length() > referencedPackageName.length())
+                   && referencedClassName.startsWith(packageName + '.')) {
+                  referencedPackageName = packageName;
+               }
+            }
+
+            if (null != referencedPackageName) {
+               ExternalDocSet externalDocSet
+                  = (ExternalDocSet)packageNameToDocSet.get(referencedPackageName);
+
+               String className = referencedClassName.substring(referencedPackageName.length() + 1);
+               href = externalDocSet.getClassDocURL(referencedPackageName,
+                                                    className);
+               label = className;
+
+               String referencedMemberName = seeTag.referencedMemberName();
+
+               if (null != referencedMemberName) {
+                  label += '.';
+                  label += referencedMemberName;
+                  href  += '#' + transformReferencedMemberName(referencedMemberName, 
+                                                               externalDocSet.isJavadocCompatible());
+               }
+               else if (null != seeTag.referencedMemberName()) {
+                  href = null;
+               }
+            }
+         }
+      }
+      
+      if (null != seeTag.label()
+          && seeTag.label().length() > 0) {
+         label = seeTag.label();
+      }
+
+      if (null == label) {
+         label = seeTag.text();
+         if (label.startsWith("#")) {
+            label = label.substring(1);
+         }
+         else {
+            label = label.replace('#', '.');
+         }
+         label.trim();
+      }
+         
+      if (null != href) {
+         result.append("<a href=\"");
+         result.append(href);
+         result.append("\">");
+         if (!plainFont) {
+            result.append("<code>");
+         }
+         result.append(label);
+         if (!plainFont) {
+            result.append("</code>");
+         }
+         result.append("</a>");
+      }
+      else {
+         if (!plainFont) {
+            result.append("<code>");
+         }
+         result.append(label);
+         if (!plainFont) {
+            result.append("</code>");
+         }
+      }
+
+      return result.toString();
+   }
+
+   protected String renderTag(String tagName, Tag[] tags, TagletContext context)
+   {
+      Doc doc = context.getDoc();
+
+      if ("see".equals(tagName)
+          && ((tags.length > 0)
+              || (doc.isClass()
+                  && (((ClassDoc)doc).isSerializable()
+                      || ((ClassDoc)doc).isExternalizable())))) {
+         
+         StringBuffer result = new StringBuffer();
+         result.append("<dl class=\"tag list\">");
+         result.append("<dt class=\"tag section header\"><b>");
+         result.append("See Also:");
+         result.append("</b></dt>");
+
+         boolean oneLine = true;
+
+         if (oneLine) {
+            result.append("<dd>");
+         }
+
+         for (int i = 0; i < tags.length; ++i) {
+            if (oneLine) {
+               if (i > 0) {
+                  result.append(", ");
+               }
+            }
+            else {
+               result.append("<dd>");
+            }
+            result.append(renderSeeTag((SeeTag)tags[i], context, false));
+            if (!oneLine) {
+               result.append("</dd>");
+            }
+         }
+
+         if ((doc instanceof ClassDoc)
+             && (((ClassDoc)doc).isSerializable() || ((ClassDoc)doc).isExternalizable())) {
+            if (tags.length > 0) {
+               result.append(", ");
+            }
+            HtmlPage output = ((HtmlTagletContext)context).getOutput();
+            result.append("<a href=\"" + output.getPathToRoot() + "/serialized-form" + filenameExtension + "#" + ((ClassDoc)doc).qualifiedName() + "\">Serialized Form</a>");
+         }
+
+         if (oneLine) {
+            result.append("</dd>");
+         }
+         result.append("</dl>");
+         return result.toString();
+      }
+      else if (tags.length > 0 
+               && "serial".equals(tagName)
+               && ((HtmlTagletContext)context).isOnSerializedPage()) {
+
+         return renderInlineTags(tags[0].inlineTags(), context);
+      }
+      else {
+         return "";
+      }
+   }
+
+   private String getWindowTitle()
+   {
+      if (null == optionWindowTitle.getValue()) {
+         return "Generated API Documentation";
+      }
+      else {
+         return optionWindowTitle.getValue();
+      }
+   }
+
+   private String getPageTitle(String title)
+   {
+      if (null == optionWindowTitle.getValue()) {
+         return title;
+      }
+      else {
+         return title + " (" + optionWindowTitle.getValue() + ")";
+      }
+   }
+
+   protected String getDocletVersion()
+   {
+      if (null == docletVersion) {
+         try {
+            Properties versionProperties = new Properties();
+            InputStream in = getClass().getResourceAsStream("/version.properties");
+            if (in == null) {
+               in = new FileInputStream("src/resources/version.properties");
+            }
+            versionProperties.load(in);
+            docletVersion = versionProperties.getProperty("gjdoc.version");
+         }
+         catch (IOException ignore) {
+         }
+         if (null == docletVersion) {
+            docletVersion = "unknown";
+         }
+      }
+      return docletVersion;
+   }
+
+   private Map getStylesheets()
+   {
+      Map sheets = new HashMap();
+      if (null != optionStylesheetFile.getValue()) {
+         sheets.put("User-specified", new String[] { 
+            "resources/user.css" 
+         });
+      }
+      else {
+         List cleanSheets = new LinkedList();
+         cleanSheets.add("resources/gjdochtml-clean-layout.css");
+         cleanSheets.add("resources/gjdochtml-clean-color1.css");
+         if (null != optionAddStylesheet.getValue()) {
+            cleanSheets.add("resources/user.css");
+         }
+         sheets.put("GNU Clean", cleanSheets.toArray(new String[0]));
+      }
+      return sheets;
+   }
+
+   protected boolean isSinglePackage()
+   {
+      if (getRootDoc().firstSentenceTags().length > 0) {
+         return false;
+      }
+      else if (null != optionDocTitle.getValue() 
+               || null != optionTitle.getValue()) {
+         return false;
+      }
+      else {
+         return super.isSinglePackage();
+      }
+   }
+
+  private String getTypeParameters(ClassDoc classDoc)
+  {
+    String parameters = "";
+    TypeVariable[] params = classDoc.typeParameters();
+    if (params != null && params.length > 0)
+      {
+       parameters = "&lt;";
+       for (int a = 0; a < params.length; ++a)
+         {
+           parameters += params[a].typeName();
+           Type[] bounds = params[a].bounds();
+           if (bounds != null)
+             {
+               parameters += " extends ";
+               for (int b = 0; a < bounds.length; ++b)
+                 {
+                   parameters += bounds[a];
+                   if (b != bounds.length - 1)
+                     parameters += " & ";
+                 }
+             }
+           if (a != params.length - 1)
+             parameters += ",";
+         }
+       parameters += "&gt;";
+      }
+    return parameters;
+  }
+
+   private String transformReferencedMemberName(String referencedMemberName,
+                                                boolean javadocCompatibility)
+   {
+      if (!javadocCompatibility) {
+         StringBuffer result = new StringBuffer();
+         for (int i=0; i<referencedMemberName.length(); ++i) {
+            char c = referencedMemberName.charAt(i);
+            switch (c) {
+            case '(': result.append(':'); break;
+            case ')': break;
+            case ',': result.append(':'); break;
+            case '[': result.append('-'); break;
+            case ']': break;
+            default:  result.append(c); break;
+            }
+         }
+         return result.toString();
+      }
+      else {
+         return referencedMemberName;
+      }
+   }
+
+   public void writeGjdocProperties(File outputFile)
+      throws IOException
+   {
+      Properties properties = new Properties();
+      properties.setProperty("gjdoc.version", getDocletVersion());
+      properties.setProperty("gjdoc.compat", Boolean.toString(isJavadocCompatibleNames()));
+
+      FileOutputStream out = new FileOutputStream(outputFile);
+      properties.store(out, "GNU Gjdoc API Documentation Set Descriptor");
+      out.close();
+   }
+
+   public boolean isJavadocCompatibleNames()
+   {
+      return !optionValidHtml.getValue();
+   }
+
+   private HtmlPage newHtmlPage(File file,
+                                String pathToRoot)
+      throws IOException
+   {
+      return new HtmlPage(file,
+                          pathToRoot,
+                          getOutputDocEncoding(),
+                          optionBaseUrl.getValue(),
+                          getTargetDirectory());
+   }
+
+   private HtmlPage newHtmlPage(File file,
+                                String pathToRoot,
+                                String docType)
+      throws IOException
+   {
+      return new HtmlPage(file,
+                          pathToRoot,
+                          getOutputDocEncoding(),
+                          optionBaseUrl.getValue(),
+                          getTargetDirectory(),
+                          docType);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java
new file mode 100644 (file)
index 0000000..0026e0b
--- /dev/null
@@ -0,0 +1,518 @@
+/* gnu.classpath.tools.doclets.htmldoclet.HtmlPage
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.htmldoclet;
+
+import gnu.classpath.tools.IOToolkit;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.io.Writer;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import com.sun.javadoc.Tag;
+
+/**
+ *  Allows outputting an HTML document without having to build the
+ *  document tree in-memory.
+ */
+public class HtmlPage 
+{
+   private File file;
+   private PrintWriter out;
+   private String pathToRoot;
+   private String docType;
+   private String baseUrl;
+   private File rootDir;
+
+   public static final String DOCTYPE_FRAMESET = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">";
+
+   public HtmlPage(File file, String pathToRoot, String encoding, String baseUrl, File rootDir)
+      throws IOException
+   {
+      this(file, pathToRoot, encoding, baseUrl, rootDir, "<!DOCTYPE html PUBLIC \"-//gnu.org///DTD XHTML 1.1 plus Target 1.0//EN\" \"" + pathToRoot + "/resources/xhtml11-target10.dtd\">");
+   }
+
+   public HtmlPage(File file, String pathToRoot, String encoding, String baseUrl, File rootDir, String docType)
+      throws IOException
+   {
+      this.file = file;
+      OutputStream fileOut = new FileOutputStream(file);
+      Writer writer;
+      if (null != encoding) {
+         writer = new OutputStreamWriter(fileOut,
+                                         encoding);
+      }
+      else {
+         writer = new OutputStreamWriter(fileOut);
+      }
+      this.out = new PrintWriter(new BufferedWriter(writer));
+      this.pathToRoot = pathToRoot;
+      this.docType = docType;
+      this.baseUrl = baseUrl;
+      this.rootDir = rootDir;
+   }
+
+   public void beginElement(String elementName)
+   {
+      print('<');
+      print(elementName);
+      print('>');
+   }
+
+   public void beginElement(String elementName, String attributeName, String attributeValue)
+   {
+      print('<');
+      print(elementName);
+      print(' ');
+      print(attributeName);
+      print('=');
+      print('\"');
+      print(attributeValue);
+      print('\"');
+      print('>');
+   }
+
+   public void beginElement(String elementName, String[] attributeNames, String[] attributeValues)
+   {
+      print('<');
+      print(elementName);
+      for (int i=0; i<attributeNames.length; ++i) {
+         if (null != attributeValues[i]) {
+            print(' ');
+            print(attributeNames[i]);
+            print('=');
+            print('\"');
+            print(attributeValues[i]);
+            print('\"');
+         }
+      }
+      print('>');
+   }
+
+   public void beginElement(String elementName, String attributeName, String attributeValue, String[] attributeNames, String[] attributeValues)
+   {
+      print('<');
+      print(elementName);
+      print(' ');
+      print(attributeName);
+      print('=');
+      print('\"');
+      print(attributeValue);
+      print('\"');
+      if (null != attributeNames) {
+         for (int i=0; i<attributeNames.length; ++i) {
+            if (null != attributeValues[i]) {
+               print(' ');
+               print(attributeNames[i]);
+               print('=');
+               print('\"');
+               print(attributeValues[i]);
+               print('\"');
+            }
+         }
+      }
+      print('>');
+   }
+
+   public void atomicElement(String elementName)
+   {
+      print('<');
+      print(elementName);
+      print("/>");
+   }
+
+   public void atomicElement(String elementName, String attributeName, String attributeValue)
+   {
+      print('<');
+      print(elementName);
+      print(' ');
+      print(attributeName);
+      print('=');
+      print('\"');
+      print(attributeValue);
+      print('\"');
+      print("/>");
+   }
+
+   public void atomicElement(String elementName, String[] attributeNames, String[] attributeValues)
+   {
+      print('<');
+      print(elementName);
+      for (int i=0; i<attributeNames.length; ++i) {
+         if (null != attributeValues[i]) {
+            print(' ');
+            print(attributeNames[i]);
+            print('=');
+            print('\"');
+            print(attributeValues[i]);
+            print('\"');
+         }
+      }
+      print("/>");
+   }
+
+
+   public void endElement(String elementName)
+   {
+      print("</");
+      print(elementName);
+      print('>');
+   }
+
+   
+   public void beginDiv(CssClass cssClass)
+   {
+      String[] divAttributeNames = cssClass.getAttributeNames();
+      String[] divAttributeValues = cssClass.getAttributeValues();
+      if (null == divAttributeNames) {
+         divAttributeNames = new String[0];
+      }
+      if (null == divAttributeValues) {
+         divAttributeValues = new String[0];
+      }
+
+      String[] attributeNames = new String[1 + divAttributeNames.length];
+      String[] attributeValues = new String[1 + divAttributeValues.length];
+      
+      System.arraycopy(divAttributeNames, 0, attributeNames, 1, divAttributeNames.length);
+      System.arraycopy(divAttributeValues, 0, attributeValues, 1, divAttributeNames.length);
+
+      attributeNames[0] = "class";
+      attributeValues[0] = cssClass.getName();
+
+      beginElement(cssClass.getDivElementName(), attributeNames, attributeValues);
+      if (null != cssClass.getInnerElementName()) {
+         beginElement(cssClass.getInnerElementName());
+      }
+   }
+
+   public void endDiv(CssClass cssClass)
+   {
+      if (null != cssClass.getInnerElementName()) {
+         endElement(cssClass.getInnerElementName());
+      }
+      endElement(cssClass.getDivElementName());
+   }
+
+   public void beginSpan(CssClass cssClass)
+   {
+      beginElement(cssClass.getSpanElementName(), "class", cssClass.getName());
+   }
+
+   public void endSpan(CssClass cssClass)
+   {
+      endElement(cssClass.getSpanElementName());
+   }
+
+   public void hr()
+   {
+      atomicElement("hr");
+   }
+
+   public void br()
+   {
+      atomicElement("br");
+   }
+   
+   public void print(String text)
+   {
+      out.print(text);
+   }
+
+   public void print(char c)
+   {
+      out.print(c);
+   }
+
+   public void div(CssClass cssClass, String contents)
+   {
+      beginDiv(cssClass);
+      print(contents);
+      endDiv(cssClass);
+   }
+
+   public void span(CssClass cssClass, String contents)
+   {
+      beginSpan(cssClass);
+      print(contents);
+      endSpan(cssClass);
+   }
+
+   public void beginPage(String title, String charset, Map stylesheets)
+      throws IOException
+   {
+      beginPage(title, charset, Collections.EMPTY_SET, stylesheets);
+   }
+
+   public void beginPage(String title, String charset, 
+                         Collection keywords, Map stylesheets)
+      throws IOException
+   {
+      print("<?xml version=\"1.0\" encoding=\"" + charset + "\"?>\n");
+      print(docType);
+      print("<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\">");
+      beginElement("head");
+      beginElement("title");
+      print(title);
+      endElement("title");
+      if (null != baseUrl && baseUrl.length() > 0) {
+         StringBuffer url = new StringBuffer();
+         url.append(baseUrl);
+         if ('/' == url.charAt(url.length() - 1)) {
+            url.delete(url.length() - 1, url.length());
+         }
+         url.append(file.getCanonicalPath().substring(rootDir.getCanonicalPath().length()));
+         atomicElement("base", 
+                       new String[] { "href" },
+                       new String[] { url.toString() });
+      }
+      beginElement("script", 
+                    new String[] { "src", "type" },
+                    new String[] { pathToRoot + "/resources/gjdoc.js", "text/javascript" });
+      print("<!-- this comment required for konqueror 3.2.2 -->");
+      endElement("script");
+      atomicElement("meta", 
+                    new String[] { "http-equiv", "content" },
+                    new String[] { "Content-Type", "text/html; charset=" + charset });
+      atomicElement("meta", 
+                    new String[] { "name", "content" },
+                    new String[] { "generator", "GNU Gjdoc Standard Doclet" });
+      Iterator keywordIt = keywords.iterator();
+      while (keywordIt.hasNext()) {
+         String keyword = (String)keywordIt.next();
+         atomicElement("meta", 
+                       new String[] { "name", "content" },
+                       new String[] { "keywords", keyword });
+      }
+
+      Iterator cssIt = stylesheets.keySet().iterator();
+      while (cssIt.hasNext()) {
+         String sheetName = (String)cssIt.next();
+         String[] sheetFiles = (String[])stylesheets.get(sheetName);
+
+         for (int i=0; i<sheetFiles.length; ++i) {
+            String sheetFile = sheetFiles[i];
+            atomicElement("link", 
+                          new String[] { "rel", "type", "href", "title" },
+                          new String[] { "stylesheet", "text/css", 
+                                         pathToRoot + "/" + sheetFile, sheetName });
+         }
+      }
+
+      endElement("head");
+   }
+
+   public void endPage()
+   {
+      endElement("html");
+   }
+
+   public void close()
+   {
+      out.close();
+   }
+
+   public void beginTable(CssClass cssClass)
+   {
+      beginElement("table", "class", cssClass.getName());
+   }
+
+   public void beginTable(CssClass cssClass, String[] attributeNames, String[] attributeValues)
+   {
+      beginElement("table", "class", cssClass.getName(), attributeNames, attributeValues);
+   }
+
+   public void beginRow()
+   {
+      beginElement("tr");
+   }
+
+   public void beginRow(CssClass cssClass)
+   {
+      beginElement("tr", "class", cssClass.getName(), cssClass.getAttributeNames(), cssClass.getAttributeValues());
+   }
+
+   public void beginRow(String attribute, String value)
+   {
+      beginElement("tr", attribute, value);
+   }
+
+   public void beginCell()
+   {
+      beginElement("td");
+   }
+
+   public void beginCell(String attribute, String value)
+   {
+      beginElement("td", attribute, value);
+   }
+
+   public void beginCell(CssClass cssClass)
+   {
+      beginElement("td", "class", cssClass.getName(), cssClass.getAttributeNames(), cssClass.getAttributeValues());
+   }
+
+   public void endCell()
+   {
+      endElement("td");
+   }
+
+   public void cell(CssClass cssClass, String contents)
+   {
+      beginCell(cssClass);
+      print(contents);
+      endCell();
+   }
+
+   public void endRow()
+   {
+      endElement("tr");
+   }
+
+   public void rowDiv(CssClass cssClass, String contents)
+   {
+      beginRow(cssClass);
+      beginCell("colspan", "2");
+      beginDiv(cssClass);
+      print(contents);
+      endDiv(cssClass);
+      endCell();
+      endRow();
+   }
+
+   public void endTable()
+   {
+      endElement("table");
+   }
+
+   public void beginAnchor(String href)
+   {
+      beginElement("a", "href", href);
+   }
+
+   public void beginAnchor(String href, String title)
+   {
+      beginElement("a", 
+                   new String[] { "href", "title" },
+                   new String[] { href, title });
+   }
+
+   public void beginAnchor(String href, String title, String target)
+   {
+      beginElement("a", 
+                   new String[] { "href", "title", "target" },
+                   new String[] { href, title, target });
+   }
+
+   public void endAnchor()
+   {
+      endElement("a");
+   }
+
+   public void anchor(String href, String label)
+   {
+      beginAnchor(href);
+      print(label);
+      endAnchor();
+   }
+
+   public void anchorName(String name)
+   {
+      atomicElement("a", new String[] { "name", "id" }, new String[] { name, name });
+   }
+
+   public String getPathToRoot()
+   {
+      return pathToRoot;
+   }
+
+   public void beginBody(CssClass cssClass)
+   {
+      beginBody(cssClass, true);
+   }
+
+   public void beginBody(CssClass cssClass, boolean setTitle)
+   {
+      if (setTitle) {
+         beginElement("body", 
+                      new String[] { "class", "onload" },
+                      new String[] { cssClass.getName(), "if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)" }
+                      );
+      }
+      else {
+         beginElement("body",
+                      new String[] { "class", "onload" },
+                      new String[] { cssClass.getName(), "if(parent.contentPageLoaded)parent.contentPageLoaded()" }
+                      );
+      }
+   }
+
+   public void endBody()
+   {
+      endElement("body");
+   }
+
+   public void insert(Reader in)
+      throws IOException
+   {
+      IOToolkit.copyStream(in, out);
+   }
+
+   public String createHrefString(String url, String content)
+   {
+      return createHrefString(url, content, null);
+   }
+
+   public String createHrefString(String url, String content, String title)
+   {
+      StringBuffer result = new StringBuffer();
+      result.append("<a href=\"");
+      result.append(url);
+      result.append("\"");
+      if (null != title) {
+         result.append(" title=\"");
+         result.append(title);
+         result.append("\"");
+      }
+      result.append(">");
+      result.append(content);
+      result.append("</a>");
+      return result.toString();
+   }
+
+   public File getFile()
+   {
+      return this.file;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java
new file mode 100644 (file)
index 0000000..5c6e849
--- /dev/null
@@ -0,0 +1,48 @@
+/* gnu.classpath.tools.doclets.htmldoclet.HtmlTagletContext
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.htmldoclet;
+
+import com.sun.javadoc.Doc;
+import gnu.classpath.tools.taglets.TagletContext;
+
+public class HtmlTagletContext 
+   extends TagletContext
+{
+   private HtmlPage output;
+   private boolean isOnSerializedPage;
+
+   public HtmlTagletContext(Doc doc, HtmlPage output, boolean isOnSerializedPage)
+   {
+      super(doc);
+      this.output = output;
+      this.isOnSerializedPage = isOnSerializedPage;
+   }
+
+   public HtmlPage getOutput()
+   {
+      return output;
+   }
+
+   public boolean isOnSerializedPage()
+   {
+      return isOnSerializedPage;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java
new file mode 100644 (file)
index 0000000..6f90338
--- /dev/null
@@ -0,0 +1,2434 @@
+/* gnu.classpath.tools.doclets.xmldoclet.Driver\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.doclets.xmldoclet;\r
+\r
+import com.sun.javadoc.*;\r
+import java.io.*;\r
+\r
+import com.sun.tools.doclets.Taglet;\r
+\r
+import java.lang.reflect.InvocationTargetException;\r
+import java.lang.reflect.Method;\r
+import java.lang.reflect.Modifier;\r
+\r
+import java.text.DateFormat;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Arrays;\r
+import java.util.Comparator;\r
+import java.util.HashSet;\r
+import java.util.TreeSet;\r
+import java.util.Iterator;\r
+import java.util.LinkedHashMap;\r
+import java.util.LinkedList;\r
+import java.util.List;\r
+import java.util.Locale;\r
+import java.util.Map;\r
+import java.util.HashMap;\r
+import java.util.Properties;\r
+import java.util.Set;\r
+import java.util.SortedSet;\r
+import java.util.StringTokenizer;\r
+import java.util.TreeMap;\r
+\r
+import gnu.classpath.tools.gjdoc.TemporaryStore;\r
+import gnu.classpath.tools.gjdoc.GjdocPackageDoc;\r
+\r
+import gnu.classpath.tools.doclets.PackageGroup;\r
+import gnu.classpath.tools.doclets.PackageMatcher;\r
+import gnu.classpath.tools.doclets.InvalidPackageWildcardException;\r
+\r
+import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet;\r
+import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletOptions;\r
+\r
+import gnu.classpath.tools.taglets.AuthorTaglet;\r
+import gnu.classpath.tools.taglets.VersionTaglet;\r
+import gnu.classpath.tools.taglets.SinceTaglet;\r
+import gnu.classpath.tools.taglets.DeprecatedTaglet;\r
+import gnu.classpath.tools.taglets.GenericTaglet;\r
+import gnu.classpath.tools.doclets.StandardTaglet;\r
+\r
+import gnu.classpath.tools.java2xhtml.Java2xhtml;\r
+\r
+import gnu.classpath.tools.IOToolkit;\r
+import gnu.classpath.tools.FileSystemClassLoader;\r
+\r
+/**\r
+ *  A Doclet which retrieves all information presented by the Doclet\r
+ *  API, dumping it to stdout in XML format.\r
+ *\r
+ *  @author Julian Scheid\r
+ */\r
+public class Driver {\r
+\r
+   public static final String XMLDOCLET_VERSION = "0.6.1";\r
+\r
+   /**\r
+    *  Used for redirecting error messages to <code>/dev/null</code>.\r
+    */\r
+   private static class NullErrorReporter implements DocErrorReporter {\r
+      public void printError(String ignore) {}\r
+      public void printWarning(String ignore) {}\r
+      public void printNotice(String ignore) {}\r
+   }\r
+\r
+   /*\r
+    *  Taglet context constants.\r
+    */\r
+   private static final int CONTEXT_CONSTRUCTOR  = 1;\r
+   private static final int CONTEXT_FIELD        = 2;\r
+   private static final int CONTEXT_METHOD       = 3;\r
+   private static final int CONTEXT_OVERVIEW     = 4;\r
+   private static final int CONTEXT_PACKAGE      = 5;\r
+   private static final int CONTEXT_TYPE         = 6;\r
+\r
+   /**\r
+    *  All XML output will go to this stream.\r
+    */\r
+   private PrintWriter out;\r
+\r
+   /**\r
+    *  How many spaces to indent each XML node level,\r
+    *  i.e. Tab size for output.\r
+    */\r
+   private static int indentStep = 1;\r
+\r
+   /**\r
+    *  Won't output superfluous spaces if set to true.\r
+    *  If set to false, output will be more legible.\r
+    */\r
+   private boolean compress = false;\r
+\r
+   /**\r
+    *  Won't output warning messages while fixing\r
+    *  HTML code if set to true.\r
+    */\r
+   private boolean noHTMLWarn = false;\r
+\r
+   /**\r
+    *  Won't output warning messages when encountering tags\r
+    *  that look like an email address if set to true.\r
+    */\r
+   private boolean noEmailWarn = false;\r
+\r
+   /**\r
+    *  Will fix HTML if necessary so that each comment\r
+    *  contains valid XML code if set to true. If set\r
+    *  to false, HTML code will not be modified and\r
+    *  instead encapsulated in a CDATA section.\r
+    */\r
+   private boolean fixHTML = true;\r
+\r
+   /**\r
+    *  User-specified name of the directory where the final version of\r
+    *  the generated files will be written to.\r
+    *\r
+    *  If no XSLT sheet is given, the XML output will go directly into\r
+    *  this directory. Otherwise, XML output will go to a temporary\r
+    *  directory and XSLT output will go to this directory.\r
+    */\r
+   private File targetDirectory = null;\r
+\r
+   /**\r
+    *  Directory where XML output will be written to. If no XSLT\r
+    *  sheet was given, this is the target directory specified\r
+    *  by the user. Otherwise, this is a temporary directory.\r
+    */\r
+   private File xmlTargetDirectory;\r
+\r
+   /**\r
+    *  Contains a number of TargetContexts which describe which XSLT\r
+    *  sheet to apply to the output of this doclet, to what directory\r
+    *  the XSLT output is written, and which postprocess driver to use\r
+    *  to process XSLT output.\r
+    */\r
+   private List targets = new ArrayList();\r
+\r
+   /**\r
+    *  XML text to include at the end of every generated page. Read\r
+    *  from the file specified on the command line using -bottomnote.\r
+    *  If present, this will be written to the main output file\r
+    *  (index.xml) in node /gjdoc:rootDoc/gjdoc:bottomnote.\r
+    */\r
+   private String bottomNote;\r
+\r
+   /**\r
+    *  Brief description of the package set. Can be specified on the\r
+    *  command line using -title.  This will be written to the main\r
+    *  output file (index.xml) in node\r
+    *  /gjdoc:rootDoc/gjdoc:title. The HTML generating XSLT sheet\r
+    *  uses this for example in window titles.\r
+    */\r
+   private String title;\r
+\r
+   /**\r
+    *  Path to the directory where temporary files should be stored.\r
+    *  Defaults to system tempdir, but can be overridden by user \r
+    *  with -workpath.\r
+    */\r
+   private String workingPath = System.getProperty("java.io.tmpdir");\r
+\r
+   /**\r
+    *  Temporary directory created by this doclet where all \r
+    *  temporary files will be stored in. If no temporary\r
+    *  files are needed (i.e. no XSLT postprocessing stage\r
+    *  specified by user), this is <code>null</code>.\r
+    */\r
+    private File workingDirectory;\r
+\r
+   /**\r
+    *  Whether to deep-copy the doc-files subdirectory.\r
+    */\r
+    private boolean docFilesSubdirsEnabled = false;\r
+\r
+   /**\r
+    *  Which direct subdirectories of the doc-files directories to exclude.\r
+    *  Set of String.\r
+    */\r
+    private Set excludeDocFilesSubDirs = new HashSet();\r
+\r
+   /**\r
+    *  Stores the Doclet API RootDoc we are operating on.\r
+    */\r
+   private RootDoc rootDoc;\r
+\r
+   /**\r
+    *  XML namespace prefix used for all tags, except for HTML\r
+    *  tags copied from Javadoc comments. Excluding colon.\r
+    */\r
+   public static final String tagPrefix = "gjdoc";\r
+\r
+   /**\r
+    *  Classpath for loading Taglet classes.\r
+    */\r
+   private String tagletPath = null;\r
+\r
+   /**\r
+    *  The current class that is being processed.\r
+    *  Set in outputClassDoc().\r
+    */\r
+   private ClassDoc currentClass;\r
+\r
+   /**\r
+    *  The current member that is being processed.\r
+    *  Set in outputMemberDoc().\r
+    */\r
+   private MemberDoc currentMember;\r
+\r
+   /**\r
+    *  The current constructor/method that is being processed.\r
+    *  Set in outputExecutableMemberDoc().\r
+    */\r
+   private ExecutableMemberDoc currentExecMember;\r
+\r
+   /**\r
+    *  Mapping from tag type to Taglet for user Taglets specified on\r
+    *  the command line.\r
+    */\r
+   private Map tagletMap = new LinkedHashMap();\r
+\r
+   /**\r
+    *  Keeps track of the tags mentioned by the user during option\r
+    *  processiong so that an error can be emitted if a tag is\r
+    *  mentioned more than once.\r
+    */\r
+   private List mentionedTags = new LinkedList();\r
+\r
+   /**\r
+    *  Stores options to be passed to the DocTranslet.\r
+    */\r
+   private DocTransletOptions docTransletOptions = new DocTransletOptions();   \r
+\r
+   /**\r
+    *  Stores the package groups specified in the user\r
+    *  options. Contains objects of type PackageGroup.\r
+    */\r
+   private List packageGroups = new LinkedList();\r
+\r
+   private HtmlRepairer htmlRepairer;\r
+\r
+   public static boolean start(TemporaryStore _rootDocWrapper) {\r
+      return new Driver().instanceStart((RootDoc)_rootDocWrapper.getAndClear());\r
+   }\r
+\r
+   /**\r
+    *  Official Doclet entry point.\r
+    */\r
+   public static boolean start(RootDoc _rootDoc) {\r
+\r
+      // Create a new XmlDoclet instance and delegate control.\r
+      TemporaryStore tstore = new TemporaryStore(_rootDoc);\r
+      _rootDoc = null;\r
+      return new Driver().instanceStart((RootDoc)tstore.getAndClear());\r
+   }\r
+\r
+   /**\r
+    *  Output an XML tag describing a com.sun.javadoc.Type object.\r
+    *  Assumes that the tag does not have subtags.\r
+    *\r
+    *  @param level  Level of indentation. Will be multiplied by \r
+    *                <code>indentStep</code> to yield actual amount\r
+    *                of whitespace inserted at start of line.\r
+    *  @param tag    Identifier for the XML tag being output.\r
+    *  @param type   The Javadoc Type to be output.\r
+    */\r
+   protected void outputType(int level, String tag, Type type) {\r
+      outputType(level, tag, type, true);\r
+   }\r
+\r
+   protected void outputType(int level, String tag, Type type, boolean atomic) {\r
+\r
+      boolean isIncluded = false;\r
+      ClassDoc typeAsClassDoc = type.asClassDoc();\r
+      String packageName = null;\r
+      if (null != typeAsClassDoc) {\r
+         isIncluded = typeAsClassDoc.isIncluded();\r
+         packageName = typeAsClassDoc.containingPackage().name();\r
+      }\r
+      println(level, "<"+tagPrefix+":"+tag + " typename=\""+type.typeName()+"\""+\r
+             " qualifiedtypename=\""+type.qualifiedTypeName()+"\""\r
+             +(type.dimension().length()==0?"":" dimension=\""+type.dimension()+"\"")\r
+              +(isIncluded?" isIncluded=\"true\"" : "")\r
+              +((null != packageName)?" package=\"" + packageName + "\"" : "")\r
+             +(atomic?"/":"")+">");\r
+   }\r
+\r
+   protected void outputExecutableMemberDocBody(int level, ExecutableMemberDoc memberDoc) {\r
+\r
+      currentExecMember = memberDoc;\r
+\r
+      outputMemberDocBody(level, memberDoc);\r
+\r
+      Parameter[] parameters = memberDoc.parameters();\r
+      for (int i=0, ilim=parameters.length; i<ilim; ++i) {\r
+        Parameter parameter = parameters[i];\r
+        outputType(level, "parameter name=\""+parameter.name()+"\"", parameter.type());\r
+      }\r
+\r
+      ClassDoc[] exceptions = memberDoc.thrownExceptions();\r
+      for (int i=0, ilim=exceptions.length; i<ilim; ++i) {\r
+        ClassDoc exception = exceptions[i];\r
+        outputType(level, "thrownException", exception);\r
+       }\r
+\r
+      printAtomTag(level, "signature full=\""+memberDoc.signature()+"\" flat=\""+memberDoc.flatSignature()+"\"");\r
+\r
+      if (memberDoc.isNative()) {\r
+        printAtomTag(level, "isNative");\r
+      }\r
+\r
+      if (memberDoc.isSynchronized()) {\r
+        printAtomTag(level, "isSynchronized");\r
+      }\r
+   }\r
+\r
+   protected void outputMethodDoc(int level, MethodDoc methodDoc) {\r
+      println();\r
+      printOpenTag(level, "methoddoc name=\""+methodDoc.name()+"\"");\r
+      outputExecutableMemberDocBody(level+1, methodDoc);\r
+      outputType(level+1, "returns", methodDoc.returnType());\r
+      printCloseTag(level, "methoddoc");\r
+   }\r
+\r
+   protected void outputMemberDocBody(int level, MemberDoc memberDoc) {\r
+      currentMember = memberDoc;\r
+      outputProgramElementDocBody(level, memberDoc);\r
+   }\r
+\r
+   protected void outputFieldDocBody(int level, FieldDoc fieldDoc) {\r
+      outputType(level, "type", fieldDoc.type());\r
+      if (fieldDoc.isTransient()) {\r
+        printAtomTag(level, "isTransient");\r
+      }\r
+      if (fieldDoc.isVolatile()) {\r
+        printAtomTag(level, "isVolatile");\r
+      }\r
+   }\r
+\r
+   private void outputFieldDoc(int level, FieldDoc fieldDoc) {\r
+      println();\r
+      printOpenTag(level, "fielddoc name=\""+fieldDoc.name()+"\"");\r
+      outputMemberDocBody(level+1, fieldDoc);\r
+      outputFieldDocBody(level+1, fieldDoc);\r
+      printCloseTag(level, "fielddoc");\r
+   }\r
+\r
+   protected void outputConstructorDoc(int level, ConstructorDoc constructorDoc) {\r
+      println();\r
+      printOpenTag(level, "constructordoc name=\""+constructorDoc.name()+"\"");\r
+      outputExecutableMemberDocBody(level+1, constructorDoc);\r
+      printCloseTag(level, "constructordoc");\r
+   }\r
+\r
+   protected void outputSuperInterfacesRec(int level, ClassDoc classDoc) {\r
+      if (null!=classDoc) {\r
+        ClassDoc[] interfaces = classDoc.interfaces();\r
+         if (null != interfaces) {\r
+            for (int i=0, ilim=interfaces.length; i<ilim; ++i) {\r
+               outputType(level, "superimplements", interfaces[i]);\r
+            }\r
+         }\r
+        outputSuperInterfacesRec(level, classDoc.superclass());\r
+      }\r
+   }\r
+\r
+   protected void outputClassDocSummary(ClassDoc classDoc) {\r
+      println();\r
+      printOpenTag(1, "classdoc name=\""+classDoc.name()+"\" qualifiedtypename=\""+classDoc.qualifiedName()+"\" isIncluded=\"true\"");\r
+      if (null!=classDoc.superclass()) {\r
+        outputType(2, "superclass", classDoc.superclass());\r
+      }\r
+\r
+      ClassDoc[] interfaces = classDoc.interfaces();\r
+      for (int i=0, ilim=interfaces.length; i<ilim; ++i) {\r
+        outputType(2, "implements", interfaces[i]);\r
+      }\r
+      outputSuperInterfacesRec(2, classDoc.superclass());\r
+\r
+      printAtomTag(2, "containingPackage name=\""+classDoc.containingPackage().name()+"\"");\r
+      if (classDoc.isError()) {\r
+         printAtomTag(2, "isError");\r
+      }\r
+      if (classDoc.isException()) {\r
+         printAtomTag(2, "isException");\r
+      }\r
+      if (classDoc.isInterface()) {\r
+         printAtomTag(2, "isInterface");\r
+      }\r
+      if (classDoc.isOrdinaryClass()) {\r
+         printAtomTag(2, "isOrdinaryClass");\r
+      }\r
+\r
+      printCloseTag(1, "classdoc");\r
+   }\r
+\r
+   protected void outputPackageDoc(PackageDoc packageDoc) {\r
+      println();\r
+      printOpenTag(1, "packagedoc name=\""+packageDoc.name()+"\"");\r
+      if (packageDoc.firstSentenceTags().length > 0) {\r
+        printOpenTag(2, "firstSentenceTags", false);\r
+        outputTags(3, packageDoc.firstSentenceTags(), true, CONTEXT_PACKAGE);\r
+        printCloseTag(0, "firstSentenceTags");\r
+        printOpenTag(2, "inlineTags", false);\r
+        outputTags(3, packageDoc.inlineTags(), true, CONTEXT_PACKAGE);\r
+        printCloseTag(0, "inlineTags");\r
+      }\r
+\r
+      if (packageDoc.tags().length > 0) {\r
+        printOpenTag(2, "tags");\r
+        outputTags(3, packageDoc.tags(), true, CONTEXT_PACKAGE);\r
+        printCloseTag(2, "tags");\r
+      }\r
+\r
+      if (packageDoc.seeTags().length > 0) {\r
+        printOpenTag(2, "seeTags");\r
+        outputTags(3, packageDoc.seeTags(), true, CONTEXT_PACKAGE);\r
+        printCloseTag(2, "seeTags");\r
+      }\r
+\r
+      ClassDoc[] allClasses = (ClassDoc[]) packageDoc.allClasses().clone();\r
+      Arrays.sort(allClasses);\r
+\r
+      if (false) {\r
+        for (int i = 0, ilim = allClasses.length; i < ilim; ++ i) {\r
+           printAtomTag(2, "containsClass qualifiedtypename=\""+allClasses[i].qualifiedTypeName()+"\"");\r
+        }\r
+      }\r
+\r
+      printCloseTag(1, "packagedoc");\r
+   }\r
+\r
+   protected void outputClassDoc(ClassDoc classDoc) throws IOException {\r
+\r
+      currentClass = classDoc;\r
+\r
+      println();\r
+      printOpenTag(1, "classdoc xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:"+tagPrefix+"=\"http://www.gnu.org/software/cp-tools/gjdocxml\" name=\""+classDoc.name()+"\" qualifiedtypename=\""+classDoc.qualifiedName()+"\"");\r
+\r
+      ClassDoc[] interfaces = classDoc.interfaces();\r
+      for (int i=0, ilim=interfaces.length; i<ilim; ++i) {\r
+        outputType(2, "implements", interfaces[i]);\r
+      }\r
+      outputSuperInterfacesRec(2, classDoc.superclass());\r
+\r
+      outputProgramElementDocBody(2, classDoc);\r
+      if (classDoc.isAbstract())\r
+        printAtomTag(2, "isAbstract");\r
+      if (classDoc.isSerializable())\r
+        printAtomTag(2, "isSerializable");\r
+      if (classDoc.isExternalizable())\r
+        printAtomTag(2, "isExternalizable");\r
+      if (classDoc.definesSerializableFields()) {\r
+        printAtomTag(2, "definesSerializableFields");\r
+      }\r
+\r
+      ConstructorDoc[] constructors = classDoc.constructors();\r
+      for (int i=0, ilim=constructors.length; i<ilim; ++i) {\r
+        outputConstructorDoc(2, constructors[i]);\r
+      }\r
+\r
+      MethodDoc[] methods = classDoc.methods();\r
+      for (int i=0, ilim=methods.length; i<ilim; ++i) {\r
+        outputMethodDoc(2, methods[i]);\r
+      }\r
+\r
+      FieldDoc[] fields = classDoc.fields();\r
+      for (int i=0, ilim=fields.length; i<ilim; ++i) {\r
+        outputFieldDoc(2, fields[i]);\r
+      }\r
+\r
+      if (classDoc.serializableFields().length > 0) {\r
+        printOpenTag(2, "serializableFields");\r
+\r
+         FieldDoc[] sfields = classDoc.serializableFields();\r
+         for (int i=0, ilim=sfields.length; i<ilim; ++i) {\r
+            outputFieldDoc(2, sfields[i]);\r
+         }\r
+        printCloseTag(2, "serializableFields");\r
+      }\r
+\r
+      Java2xhtml java2xhtml = new Java2xhtml();\r
+      Properties properties = new Properties();\r
+      properties.setProperty("isCodeSnippet", "true");\r
+      properties.setProperty("hasLineNumbers", "true");\r
+      java2xhtml.setProperties(properties);\r
+\r
+      if (null == classDoc.containingClass() && docTransletOptions.linksource) {\r
+         printOpenTag(2, "source");\r
+         StringWriter sourceBuffer = new StringWriter();\r
+         File sourceFile = new File(((GjdocPackageDoc)classDoc.containingPackage()).packageDirectory(),\r
+                                    classDoc.name() + ".java");\r
+         FileReader sourceReader = new FileReader(sourceFile);\r
+         IOToolkit.copyStream(sourceReader, sourceBuffer);\r
+         print(java2xhtml.makeHTML(sourceBuffer.getBuffer(), sourceFile.getName()));\r
+         printCloseTag(2, "source");      \r
+      }\r
+\r
+      ClassDoc superclassDoc = classDoc.superclass();\r
+      while (superclassDoc != null) {\r
+        outputType(2, "superclass", superclassDoc, false);\r
+\r
+         // FIXME: remove the following after adjusting the XSLT sheets:\r
+         printAtomTag(3, "containingPackage name=\"" + superclassDoc.containingPackage().name() + "\"");\r
+\r
+         MethodDoc[] superMethods = superclassDoc.methods();\r
+         if (null != superMethods) {\r
+            for (int i=0, ilim=superMethods.length; i<ilim; ++i) {\r
+               printAtomTag(3, "methoddoc name=\"" + superMethods[i].name() + "\" signature=\"" + superMethods[i].signature() + "\"");\r
+            }\r
+         }\r
+         \r
+         FieldDoc[] superFields = superclassDoc.fields();\r
+         if (null != superFields) {\r
+            for (int i=0, ilim=superFields.length; i<ilim; ++i) {\r
+               printAtomTag(3, "fielddoc name=\"" + superFields[i].name() + "\"");\r
+            }\r
+         }\r
+         printCloseTag(2, "superclass");\r
+         \r
+         superclassDoc = superclassDoc.superclass();\r
+      }\r
+\r
+      outputUsage(classDoc, 2);\r
+\r
+      printCloseTag(1, "classdoc");\r
+\r
+      currentClass = null;\r
+      currentMember = null;\r
+      currentExecMember = null;\r
+   }\r
+\r
+   protected int outputHeritageOpen(int level, ClassDoc classDoc) {\r
+\r
+      ClassDoc superClassDoc = classDoc.superclass();\r
+      if (null != superClassDoc) {\r
+         level = outputHeritageOpen(level, superClassDoc);\r
+         ++ level;\r
+      }\r
+      outputType(level, "heritage", classDoc, false);\r
+      return level;\r
+   }\r
+\r
+   protected void outputHeritageClose(int level, ClassDoc classDoc) {\r
+\r
+      ClassDoc superClassDoc = classDoc.superclass();\r
+      if (null != superClassDoc) {\r
+         outputHeritageClose(level + 1, superClassDoc);\r
+      }\r
+      printCloseTag(level, "heritage");\r
+   }\r
+\r
+   protected void outputDocBody(int level, Doc doc) {\r
+\r
+      int context = CONTEXT_TYPE;\r
+\r
+      if (doc.isClass()) {\r
+        printAtomTag(level, "isClass");\r
+\r
+         ClassDoc classDoc = (ClassDoc)doc;\r
+         ClassDoc[] classes = rootDoc.classes();\r
+         for (int i=0, ilim=classes.length; i<ilim; ++i) {\r
+            if (classes[i].superclass() == classDoc) {\r
+               outputType(level, "extended-by", classes[i]);\r
+            }\r
+         }\r
+\r
+         outputHeritageOpen(level, classDoc);\r
+         outputHeritageClose(level, classDoc);\r
+      }\r
+      if (doc.isConstructor()) {\r
+        printAtomTag(level, "isConstructor");\r
+         context = CONTEXT_CONSTRUCTOR;\r
+      }\r
+      if (doc.isError()) {\r
+        printAtomTag(level, "isError");\r
+      }\r
+      if (doc.isException()) {\r
+        printAtomTag(level, "isException");\r
+      }\r
+      if (doc.isField()) {\r
+        printAtomTag(level, "isField");\r
+         context = CONTEXT_FIELD;\r
+      }\r
+      if (doc.isIncluded()) {\r
+        printAtomTag(level, "isIncluded");\r
+      }\r
+      if (doc.isInterface()) {\r
+        printAtomTag(level, "isInterface");\r
+\r
+         ClassDoc classDoc = (ClassDoc)doc;\r
+         ClassDoc[] classes = rootDoc.classes();\r
+         for (int i=0, ilim=classes.length; i<ilim; ++i) {\r
+            ClassDoc[] implementedInterfaces = classes[i].interfaces();\r
+            for (int j=0; j<implementedInterfaces.length; ++j) {\r
+               if (implementedInterfaces[j] == classDoc) {\r
+                  if (classDoc.isInterface()) {\r
+                        outputType(level, "subinterface", classes[i]);\r
+                  }\r
+                  else {\r
+                     outputType(level, "implemented-by", classes[i]);\r
+                  }\r
+                  break;\r
+               }\r
+            }\r
+         }\r
+      }\r
+      if (doc.isMethod()) {\r
+        printAtomTag(level, "isMethod");\r
+         context = CONTEXT_METHOD;\r
+      }\r
+      if (doc.isOrdinaryClass()) {\r
+        printAtomTag(level, "isOrdinaryClass");\r
+      }\r
+\r
+      if (doc.inlineTags().length > 0) {\r
+        printOpenTag(level, "inlineTags", false);\r
+        outputTags(level+1, doc.inlineTags(), true, context);\r
+        printCloseTag(0, "inlineTags");\r
+      }\r
+\r
+      if (doc.firstSentenceTags().length > 0) {\r
+        printOpenTag(level, "firstSentenceTags", false);\r
+        outputTags(level+1, doc.firstSentenceTags(), true, context);\r
+        printCloseTag(0, "firstSentenceTags");\r
+      }\r
+\r
+      if (doc.tags().length > 0) {\r
+        printOpenTag(level, "tags");\r
+         outputTaglets(level+1, doc.tags(), true, context);\r
+        printCloseTag(level, "tags");\r
+      }\r
+\r
+      if (doc.seeTags().length > 0) {\r
+        printOpenTag(level, "seeTags");\r
+        outputTags(level+1, doc.seeTags(), true, context);\r
+        printCloseTag(level, "seeTags");\r
+      }\r
+\r
+      SourcePosition position = doc.position();\r
+      if (null != position) {\r
+        printAtomTag(level, "position file=\"" + position.file().getAbsolutePath() + "\" line=\"" + position.line() + "\" column=\"" + position.column() + "\"");\r
+      }\r
+   }\r
+\r
+   protected void outputProgramElementDocBody(int level, ProgramElementDoc programElementDoc) {\r
+      outputDocBody(level, programElementDoc);\r
+      printAtomTag(level, "containingPackage name=\""+programElementDoc.containingPackage().name()+"\"");\r
+      if (null!=programElementDoc.containingClass()) {\r
+        outputType(level, "containingClass", programElementDoc.containingClass());\r
+      }\r
+      String access;\r
+      if (programElementDoc.isPublic()) \r
+        access="public";\r
+      else if (programElementDoc.isProtected()) \r
+        access="protected";\r
+      else if (programElementDoc.isPrivate()) \r
+        access="private";\r
+      else if (programElementDoc.isPackagePrivate()) \r
+        access="package";\r
+      else\r
+        throw new RuntimeException("Huh? "+programElementDoc+" is neither public, protected, private nor package protected.");\r
+      printAtomTag(level, "access scope=\""+access+"\"");\r
+      if (programElementDoc.isFinal())\r
+        printAtomTag(level, "isFinal");\r
+      if (programElementDoc.isStatic())\r
+        printAtomTag(level, "isStatic");\r
+   }\r
+\r
+   protected void outputTags(int level, Tag[] tags, boolean descend, int context) {\r
+\r
+      for (int i=0; i<tags.length; ++i) {\r
+         outputTag(tags[i], level, descend, context, i == tags.length-1);\r
+      }\r
+   }\r
+\r
+   protected void outputTag(Tag tag, int level, boolean descend, int context, boolean lastTag) {\r
+\r
+      if (!"Text".equals(tag.name())) {\r
+         printOpenTag(0 /* don't introduce additional whitespace */, \r
+                      "tag kind=\""+tag.kind()+"\" name=\""+tag.name()+"\"", false);\r
+      }\r
+      if (tag instanceof ThrowsTag) {\r
+         ThrowsTag throwsTag = (ThrowsTag)tag;\r
+         if (null!=throwsTag.exception()) {\r
+            outputType(level+1, "exception", throwsTag.exception());\r
+         }\r
+         else {\r
+            StringBuffer sb = new StringBuffer("Exception ");\r
+            sb.append(throwsTag.exceptionName());\r
+            sb.append(" not found in ");\r
+            if (currentExecMember instanceof MethodDoc) {\r
+               MethodDoc m = (MethodDoc)currentExecMember;\r
+               sb.append(m.returnType().typeName());\r
+               sb.append(m.returnType().dimension());\r
+               sb.append(' ');\r
+            }\r
+            sb.append(currentClass.qualifiedName());\r
+            sb.append('.');\r
+            sb.append(currentExecMember.name());\r
+            sb.append('(');\r
+            Parameter[] params = currentExecMember.parameters();\r
+            for (int j=0; j < params.length; j++) {\r
+               sb.append(params[j].type().typeName());\r
+               sb.append(params[j].type().dimension());\r
+               sb.append(' ');\r
+               sb.append(params[j].name());\r
+               if (j != params.length-1)\r
+                  sb.append(", ");\r
+            }\r
+            sb.append(')');\r
+            printWarning(sb.toString());\r
+\r
+            printAtomTag(level+1, "exception typename=\""+throwsTag.exceptionName()+"\"");\r
+         }\r
+      }\r
+      else if (tag instanceof ParamTag) {\r
+         ParamTag paramTag = (ParamTag)tag;\r
+         printAtomTag(level+1, "parameter name=\""+paramTag.parameterName()+"\"");\r
+      }\r
+\r
+      if (null != tag.text()) {\r
+         //printOpenTag(level+1, "text", false);\r
+         if (fixHTML) {\r
+            print(htmlRepairer.getWellformedHTML(tag.text()));\r
+         }\r
+         else {\r
+            print("<![CDATA["+cdata(tag.text())+"]]>");\r
+         }\r
+         //printCloseTag(0 /* don't introduce additional whitespace */, "text");\r
+      }\r
+      else {\r
+         printWarning("Tag got null text: "+tag);\r
+      }\r
+\r
+      if ((descend && ("@throws".equals(tag.name()) || "@param".equals(tag.name()))) || "@deprecated".equals(tag.name())) {\r
+         if (tag.firstSentenceTags().length>0) {\r
+            printOpenTag(level+1, "firstSentenceTags", false);\r
+            outputTags(level+2, tag.firstSentenceTags(), false, context);\r
+            printCloseTag(0, "firstSentenceTags");\r
+         }\r
+           \r
+         if (tag.inlineTags().length>0) {\r
+            printOpenTag(level+1, "inlineTags", false);\r
+            outputTags(level+2, tag.firstSentenceTags(), false, context);\r
+            printCloseTag(0, "inlineTags");\r
+         }\r
+      }\r
+\r
+      if (fixHTML && lastTag) {\r
+         String terminateText = htmlRepairer.terminateText();\r
+         if (null != terminateText && terminateText.length() > 0) {\r
+            print(terminateText);\r
+         }\r
+      }\r
+\r
+      if (!"Text".equals(tag.name())) {\r
+\r
+         Taglet inlineTaglet = (Taglet)tagletMap.get(tag.name().substring(1));\r
+         if (null != inlineTaglet && inlineTaglet.isInlineTag()) {\r
+            printOpenTag(0, "inlineTagletText", false);\r
+            print(inlineTaglet.toString(tag));\r
+            printCloseTag(0, "inlineTagletText");\r
+         }\r
+\r
+         printCloseTag(0, "tag", false);\r
+      }\r
+   }\r
+\r
+   void outputTaglets(int level, Tag[] tags, boolean descend, int context) \r
+   {\r
+      for (Iterator it = tagletMap.keySet().iterator(); it.hasNext(); ) {\r
+         String tagName = (String)it.next();\r
+         Object o = tagletMap.get(tagName);\r
+         Taglet taglet = (Taglet)o;\r
+\r
+         if (!taglet.isInlineTag()\r
+             && ((context != CONTEXT_CONSTRUCTOR || taglet.inConstructor())\r
+                 || (context != CONTEXT_FIELD || taglet.inField())\r
+                 || (context != CONTEXT_METHOD || taglet.inMethod())\r
+                 || (context != CONTEXT_OVERVIEW || taglet.inOverview())\r
+                 || (context != CONTEXT_PACKAGE || taglet.inPackage())\r
+                 || (context != CONTEXT_TYPE || taglet.inType()))) {\r
+            \r
+            List tagsOfThisType = new ArrayList();\r
+            for (int i=0, ilim=tags.length; i<ilim; ++i) {\r
+               if (tags[i].name().substring(1).equals(tagName)) {\r
+                  tagsOfThisType.add(tags[i]);\r
+               }\r
+            }\r
+\r
+            if (!tagsOfThisType.isEmpty()) {\r
+               Tag[] tagletTags = (Tag[])tagsOfThisType.toArray(new Tag[tagsOfThisType.size()]);\r
+               if (taglet instanceof StandardTaglet) {\r
+                  Iterator tagIterator = tagsOfThisType.iterator();\r
+                  while (tagIterator.hasNext()) {\r
+                     Tag tag = (Tag)tagIterator.next();\r
+                     outputTag(tag, level, descend, context, !tagIterator.hasNext());\r
+                  }\r
+               }\r
+               else {\r
+                  String tagletString = taglet.toString(tagletTags);\r
+                  if (null != tagletString) {\r
+                     printOpenTag(0, "tag name=\"" + tagName + "\" taglet-generated=\"true\"");\r
+                     if (fixHTML) {\r
+                        print(htmlRepairer.getWellformedHTML(tagletString));\r
+                        print(htmlRepairer.terminateText());\r
+                     }\r
+                     else {\r
+                        print("<![CDATA["+cdata(tagletString)+"]]>");\r
+                     }\r
+                     printCloseTag(0, "tag", false);\r
+                  }\r
+               }\r
+            }\r
+         }\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  Inofficial entry point. We got an instance here.\r
+    */\r
+   protected boolean instanceStart(RootDoc _rootDoc) {\r
+\r
+      this.rootDoc = _rootDoc;\r
+      _rootDoc = null;\r
+\r
+      boolean xmlOnly = true;\r
+\r
+      // Set the default Taglet order\r
+\r
+      registerTaglet(new VersionTaglet());\r
+      registerTaglet(new AuthorTaglet());\r
+      //registerTaglet(new SinceTaglet());\r
+      registerTaglet(new StandardTaglet("deprecated"));\r
+      registerTaglet(new StandardTaglet("see"));\r
+      registerTaglet(new StandardTaglet("param"));\r
+\r
+      // Set the built-in Taglet filter\r
+\r
+      AuthorTaglet.setTagletEnabled(false);\r
+      VersionTaglet.setTagletEnabled(false);\r
+      SinceTaglet.setTagletEnabled(true);\r
+      DeprecatedTaglet.setTagletEnabled(true);\r
+\r
+      try {\r
+        {\r
+\r
+           // Process command line options passed through to this doclet\r
+           \r
+           TargetContext targetContext = null;\r
+           \r
+           TargetContext htmlTargetContext\r
+               = new TargetContext(DocTranslet.fromClasspath("/doctranslets/html/gjdoc.xsl"), \r
+                                   targetDirectory);\r
+\r
+           for (int i=0, ilim=rootDoc.options().length; i<ilim; ++i) {\r
+\r
+              String[] option = rootDoc.options()[i];\r
+              String optionTag = option[0];\r
+\r
+              if ("-d".equals(optionTag)) {\r
+                 if (null == targetDirectory) {\r
+                    targetDirectory = new File(option[1]);\r
+                 }\r
+                 if (null != targetContext) {\r
+                    targetContext.setTargetDirectory(targetDirectory);\r
+                 }\r
+              }\r
+\r
+              else if ("-nofixhtml".equals(optionTag)) {\r
+                 fixHTML = false;\r
+                  printError("-nofixhtml currently not supported.");\r
+                  return false;\r
+              }\r
+              else if ("-compress".equals(optionTag)) {\r
+                 compress = true;\r
+              }\r
+              else if ("-nohtmlwarn".equals(optionTag)) {\r
+                 noHTMLWarn = true;\r
+              }\r
+              else if ("-noemailwarn".equals(optionTag)) {\r
+                 noEmailWarn = true;\r
+              }\r
+              else if ("-indentstep".equals(optionTag)) {\r
+                 indentStep = Integer.parseInt(option[1]);\r
+              }\r
+              else if ("-doctranslet".equals(optionTag)) {\r
+                 targets.add(targetContext = new TargetContext(DocTranslet.fromJarFile(new File(option[1])), \r
+                                                                targetDirectory));\r
+              }\r
+              else if ("-genhtml".equals(optionTag)) {\r
+                 htmlTargetContext.setTargetDirectory(targetDirectory);\r
+                 targets.add(targetContext = htmlTargetContext);\r
+                  xmlOnly = false;\r
+              } \r
+              else if ("-geninfo".equals(optionTag)) {\r
+                  targetContext\r
+                              = new TargetContext(DocTranslet.fromClasspath("/doctranslets/info/gengj.xsl"), \r
+                                                  targetDirectory);\r
+                 targets.add(targetContext);\r
+                 if (!fixHTML) {\r
+                    printNotice("NOTE: -geninfo implies -fixhtml.");\r
+                    fixHTML = true;\r
+                 }\r
+                  xmlOnly = false;\r
+              }\r
+              else if ("-gendocbook".equals(optionTag)) {\r
+                  targetContext = new TargetContext(DocTranslet.fromClasspath("/doctranslets/docbook/gengj.xsl"), \r
+                                                    targetDirectory);\r
+                 targets.add(targetContext);\r
+                 if (!fixHTML) {\r
+                    printNotice("NOTE: -gendocbook implies -fixhtml.");\r
+                    fixHTML = true;\r
+                 }\r
+              }\r
+              else if ("-genpdf".equals(optionTag)) {\r
+                  targetContext\r
+                     = new TargetContext(DocTranslet.fromClasspath("/doctranslets/docbook/gengj.xsl"), \r
+                                         targetDirectory);\r
+                                         /** "gnu.classpath.tools.doclets.xmldoclet.DocBookPostprocessor") **/\r
+                 targets.add(targetContext);\r
+                 if (!fixHTML) {\r
+                    printNotice("NOTE: -genpdf implies -fixhtml.");\r
+                    fixHTML = true;\r
+                 }\r
+              }\r
+              else if ("-xmlonly".equals(optionTag)) {\r
+                 xmlOnly = true;\r
+              }\r
+              else if ("-bottomnote".equals(optionTag)) {\r
+\r
+                 FileReader reader = new FileReader(option[1]);\r
+                 StringWriter writer = new StringWriter();\r
+                 char[] buf = new char[256];\r
+                 int nread;\r
+                 while ((nread = reader.read(buf)) >= 0) {\r
+                    writer.write(buf, 0, nread);\r
+                 }\r
+                 writer.flush();\r
+                 bottomNote = writer.toString();\r
+                 writer.close();\r
+                 reader.close();\r
+              }\r
+              else if ("-title".equals(optionTag)) {\r
+\r
+                 title = option[1];\r
+              }\r
+              else if ("-workpath".equals(optionTag)) {\r
+\r
+                 workingPath = option[1];\r
+              }\r
+              else if ("-tagletpath".equals(optionTag)) {\r
+\r
+                  if (null == tagletPath) {\r
+                     tagletPath = option[1];\r
+                  }\r
+                  else {\r
+                     tagletPath = tagletPath + File.pathSeparator + option[1];\r
+                  }\r
+              }\r
+               else if ("-taglet".equals(optionTag)) {\r
+\r
+                  boolean tagletLoaded = false;\r
+\r
+                  String useTagletPath = this.tagletPath;\r
+                  if (null == useTagletPath) {\r
+                     useTagletPath = System.getProperty("java.class.path");\r
+                  }\r
+\r
+                  try {\r
+                     Class tagletClass;\r
+                     try {\r
+                        tagletClass\r
+                           = new FileSystemClassLoader(useTagletPath).loadClass(option[1]);\r
+                     }\r
+                     catch (ClassNotFoundException e) {\r
+                        // If not found on specified tagletpath, try default classloader\r
+                        tagletClass\r
+                           = Class.forName(option[1]);\r
+                     }\r
+                     Method registerTagletMethod\r
+                        = tagletClass.getDeclaredMethod("register", new Class[] { java.util.Map.class });\r
+\r
+                     if (!registerTagletMethod.getReturnType().equals(Void.TYPE)) {\r
+                        printError("Taglet class '" + option[1] + "' found, but register method doesn't return void.");\r
+                     }\r
+                     else if (registerTagletMethod.getExceptionTypes().length > 0) {\r
+                        printError("Taglet class '" + option[1] + "' found, but register method contains throws clause.");\r
+                     }\r
+                     else if ((registerTagletMethod.getModifiers() & (Modifier.STATIC | Modifier.PUBLIC | Modifier.ABSTRACT)) != (Modifier.STATIC | Modifier.PUBLIC)) {\r
+                        printError("Taglet class '" + option[1] + "' found, but register method isn't public static, or is abstract..");\r
+                     }\r
+                     else {\r
+                        Map tempMap = new HashMap();\r
+                        registerTagletMethod.invoke(null, new Object[] { tempMap });\r
+                        tagletLoaded = true;\r
+                        String name = (String)tempMap.keySet().iterator().next();\r
+                        Taglet taglet = (Taglet)tempMap.get(name);\r
+                        tagletMap.put(name, taglet);\r
+                        mentionedTags.add(taglet);\r
+                     }\r
+                  }\r
+                  catch (NoSuchMethodException e) {\r
+                     printError("Taglet class '" + option[1] + "' found, but doesn't contain the register method.");\r
+                  }\r
+                  catch (SecurityException e) {\r
+                     printError("Taglet class '" + option[1] + "' cannot be loaded: " + e.getMessage());\r
+                  }\r
+                  catch (InvocationTargetException e) {\r
+                     printError("Taglet class '" + option[1] + "' found, but register method throws exception: " + e.toString());\r
+                  }\r
+                  catch (IllegalAccessException e) {\r
+                     printError("Taglet class '" + option[1] + "' found, but there was a problem when accessing the register method: " + e.toString());\r
+                  }\r
+                  catch (IllegalArgumentException e) {\r
+                     printError("Taglet class '" + option[1] + "' found, but there was a problem when accessing the register method: " + e.toString());\r
+                  }\r
+                  catch (ClassNotFoundException e) {\r
+                     printError("Taglet class '" + option[1] + "' cannot be found.");\r
+                  }\r
+                  if (!tagletLoaded) {\r
+                     return false;\r
+                  }\r
+               }\r
+              else if ("-author".equals(optionTag)) {\r
+                  AuthorTaglet.setTagletEnabled(true);\r
+               }\r
+              else if ("-version".equals(optionTag)) {\r
+                  VersionTaglet.setTagletEnabled(true);\r
+               }\r
+              else if ("-nosince".equals(optionTag)) {\r
+                  SinceTaglet.setTagletEnabled(false);\r
+               }\r
+              else if ("-nodeprecated".equals(optionTag)) {\r
+                  DeprecatedTaglet.setTagletEnabled(false);\r
+               }\r
+              else if ("-authormail".equals(optionTag)) {\r
+                  \r
+                 if ("no-replace".equalsIgnoreCase(option[1])) {\r
+                     AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NO_REPLACEMENT);\r
+                  }\r
+                 else if ("mailto-name".equalsIgnoreCase(option[1])) {\r
+                     AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.MAILTO_NAME);\r
+                  }\r
+                 else if ("name-mailto-address".equalsIgnoreCase(option[1])) {\r
+                     AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NAME_MAILTO_ADDRESS);\r
+                  }\r
+                 else if ("name-mangled-address".equalsIgnoreCase(option[1])) {\r
+                     AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NAME_MANGLED_ADDRESS);\r
+                  }\r
+                  else {\r
+                     printError("Invalid value for option '-authortag-email'. Allowed values are:"\r
+                                + " no-replace, mailto-name, name-mailto-address, name-mangled-address.");\r
+                     return false;\r
+                  }\r
+              }\r
+              else if ("-mailmangledot".equals(optionTag)) {\r
+                  AuthorTaglet.setDotReplacement(option[1]);\r
+               }\r
+              else if ("-mailmangleat".equals(optionTag)) {\r
+                  AuthorTaglet.setAtReplacement(option[1]);\r
+               }\r
+              else if ("-docfilessubdirs".equals(optionTag)) {\r
+                  docFilesSubdirsEnabled = true;\r
+               }\r
+              else if ("-excludedocfilessubdir".equals(optionTag)) {\r
+                  StringTokenizer st = new StringTokenizer(option[1]);\r
+                  while (st.hasMoreTokens()) {\r
+                     excludeDocFilesSubDirs.add(st.nextToken());\r
+                  }\r
+               }\r
+              else if ("-nonavbar".equals(optionTag)) {\r
+                  docTransletOptions.nonavbar = true;\r
+               }\r
+              else if ("-noindex".equals(optionTag)) {\r
+                  docTransletOptions.noindex = true;\r
+               }\r
+              else if ("-notree".equals(optionTag)) {\r
+                  docTransletOptions.notree = true;\r
+               }\r
+              else if ("-nocomment".equals(optionTag)) {\r
+                  docTransletOptions.nocomment = true;\r
+               }\r
+              else if ("-nohelp".equals(optionTag)) {\r
+                  docTransletOptions.nohelp = true;\r
+               }\r
+              else if ("-splitindex".equals(optionTag)) {\r
+                  docTransletOptions.splitindex = true;\r
+               }\r
+              else if ("-linksource".equals(optionTag)) {\r
+                  docTransletOptions.linksource = true;\r
+               }\r
+              else if ("-windowtitle".equals(optionTag)) {\r
+                  docTransletOptions.windowtitle = option[1];\r
+               }\r
+              else if ("-helpfile".equals(optionTag)) {\r
+                  docTransletOptions.helpfile = new File(option[1]).toURL().toString();\r
+               }\r
+              else if ("-stylesheetfile".equals(optionTag)) {\r
+                  docTransletOptions.stylesheetfile = new File(option[1]).toURL().toString();\r
+               }\r
+              else if ("-header".equals(optionTag)) {\r
+                  docTransletOptions.header = option[1];\r
+               }\r
+              else if ("-footer".equals(optionTag)) {\r
+                  docTransletOptions.footer = option[1];\r
+               }\r
+              else if ("-bottom".equals(optionTag)) {\r
+                  docTransletOptions.bottom = option[1];\r
+               }\r
+              else if ("-doctitle".equals(optionTag)) {\r
+                  docTransletOptions.doctitle = option[1];\r
+               }\r
+              else if ("-nodeprecatedlist".equals(optionTag)) {\r
+                  docTransletOptions.nodeprecatedlist = true;\r
+               }\r
+              else if ("-uses".equals(optionTag)) {\r
+                  docTransletOptions.uses = true;\r
+               }\r
+              else if ("-group".equals(optionTag)) {\r
+                  if (!processGroupOption(option[1], option[2])) {\r
+                     printError("Invalid package wildcard list in -group option \"" + option[1] + "\" " + option[2]);\r
+                     return false;\r
+                  }\r
+               }\r
+              else if ("-tag".equals(optionTag)) {\r
+                  String tagSpec = option[1];\r
+                  boolean validTagSpec = false;\r
+                  int ndx1 = tagSpec.indexOf(':');\r
+                  if (ndx1 < 0) {\r
+                     Taglet taglet = (Taglet)tagletMap.get(tagSpec);\r
+                     if (null == taglet) {\r
+                        printError("There is no standard tag '" + tagSpec + "'.");\r
+                     }\r
+                     else {\r
+                        if (mentionedTags.contains(taglet)) {\r
+                           printError("Tag '" + tagSpec + "' has been added or moved before.");\r
+                        }\r
+                        else {\r
+                           mentionedTags.add(taglet);\r
+                           \r
+                           // re-append taglet\r
+                           tagletMap.remove(tagSpec);\r
+                           tagletMap.put(tagSpec, taglet);\r
+                        }\r
+                     }\r
+                  }\r
+                  else {\r
+                     int ndx2 = tagSpec.indexOf(':', ndx1 + 1);\r
+                     if (ndx2 > ndx1 && ndx2 < tagSpec.length() - 1) {\r
+                        String tagName = tagSpec.substring(0, ndx1);\r
+                        String tagHead = null;\r
+                        if (tagSpec.charAt(ndx2 + 1) == '\"') {\r
+                           if (tagSpec.charAt(tagSpec.length() - 1) == '\"') {\r
+                              tagHead = tagSpec.substring(ndx2 + 2, tagSpec.length() - 1);\r
+                              validTagSpec = true;\r
+                           }\r
+                        }\r
+                        else {\r
+                           tagHead = tagSpec.substring(ndx2 + 1);\r
+                           validTagSpec = true;\r
+                        }\r
+\r
+                        boolean tagScopeOverview = false;\r
+                        boolean tagScopePackages = false;\r
+                        boolean tagScopeTypes = false;\r
+                        boolean tagScopeConstructors = false;\r
+                        boolean tagScopeMethods = false;\r
+                        boolean tagScopeFields = false;\r
+                        boolean tagDisabled = false;\r
+                        \r
+                     tag_option_loop:\r
+                        for (int n=ndx1+1; n<ndx2; ++n) {\r
+                           switch (tagSpec.charAt(n)) {\r
+                           case 'X': \r
+                              tagDisabled = true;\r
+                              break;\r
+                           case 'a':\r
+                              tagScopeOverview = true;\r
+                              tagScopePackages = true;\r
+                              tagScopeTypes = true;\r
+                              tagScopeConstructors = true;\r
+                              tagScopeMethods = true;\r
+                              tagScopeFields = true;\r
+                              break;\r
+                           case 'o':\r
+                              tagScopeOverview = true;\r
+                              break;\r
+                           case 'p':\r
+                              tagScopePackages = true;\r
+                              break;\r
+                           case 't':\r
+                              tagScopeTypes = true;\r
+                              break;\r
+                           case 'c':\r
+                              tagScopeConstructors = true;\r
+                              break;\r
+                           case 'm':\r
+                              tagScopeMethods = true;\r
+                              break;\r
+                           case 'f':\r
+                              tagScopeFields = true;\r
+                              break;\r
+                           default:\r
+                              validTagSpec = false;\r
+                              break tag_option_loop;\r
+                           }\r
+                        }\r
+                        \r
+                        if (validTagSpec) {\r
+                           GenericTaglet taglet\r
+                              = new GenericTaglet(tagName,\r
+                                                  tagHead,\r
+                                                  tagScopeOverview,\r
+                                                  tagScopePackages,\r
+                                                  tagScopeTypes,\r
+                                                  tagScopeConstructors,\r
+                                                  tagScopeMethods,\r
+                                                  tagScopeFields);\r
+                           taglet.setTagletEnabled(!tagDisabled);\r
+                           taglet.register(tagletMap);\r
+                           mentionedTags.add(taglet);\r
+                        }\r
+                     }\r
+                  }\r
+                  if (!validTagSpec) {\r
+                     printError("Value for option -tag must be in format \"<tagname>:Xaoptcmf:<taghead>\".");\r
+                  }\r
+               }\r
+           }\r
+\r
+            // Use current directory if target directory hasn't been set.\r
+            if (null == targetDirectory) {\r
+               targetDirectory = new File(System.getProperty("user.dir"));\r
+            }\r
+            if (null != targetContext) {\r
+               targetContext.setTargetDirectory(targetDirectory);\r
+            }\r
+\r
+           // It is illegal to specify targets AND -xmlonly.\r
+\r
+           if (xmlOnly && targets.size() > 0) {\r
+\r
+              printError("You can only specify one of -xmlonly and a target format.");\r
+              return false;\r
+           }\r
+\r
+           // If no target was specified and XML only was not\r
+           // requested, use HTML as default target.\r
+\r
+           if (!xmlOnly && targets.size() == 0) {\r
+              targets.add(targetContext = htmlTargetContext);\r
+           }\r
+\r
+           // Set the same target directory for all output.\r
+\r
+           // FIXME: Allow separate target directories for different\r
+           // output formats.\r
+\r
+           for (Iterator it = targets.iterator(); it.hasNext(); ) {\r
+              TargetContext t = (TargetContext)it.next();\r
+              t.setTargetDirectory(targetDirectory);\r
+           }\r
+\r
+           // Create temporary directory if necessary\r
+\r
+           if (xmlOnly) {\r
+\r
+              xmlTargetDirectory = targetDirectory;\r
+           }\r
+           else {\r
+\r
+              File workingTopDirectory = new File(workingPath);\r
+\r
+              workingDirectory = new File(workingTopDirectory, "gjdoc.tmp."+System.currentTimeMillis());\r
+           \r
+              if (!workingDirectory.mkdir()) {\r
+                 printError("Cannot create temporary directory at "+System.getProperty("java.io.tmpdir"));\r
+                 return false;\r
+              }\r
+\r
+              File xmlTempDirectory = new File(workingDirectory, "xmloutput");\r
+\r
+              if (!xmlTempDirectory.mkdir()) {\r
+                 printError("Cannot create temporary directory for XML output at "+System.getProperty("java.io.tmpdir"));\r
+                 return false;\r
+              }\r
+\r
+              xmlTargetDirectory = xmlTempDirectory;\r
+           }\r
+\r
+            // Create target directory if necessary\r
+\r
+            if (!targetDirectory.exists()) {\r
+               printNotice("Creating destination directory: \""\r
+                           + targetDirectory + "\"");\r
+               if (!targetDirectory.mkdirs()) {\r
+                  printError("Failed to create destination directory \""\r
+                             + targetDirectory + "\"");\r
+                  return false;\r
+               }\r
+            }\r
+\r
+            // Check for deprecation\r
+\r
+            boolean hasDeprecatedClasses = false;\r
+            boolean hasDeprecatedInterfaces = false;\r
+            boolean hasDeprecatedExceptions = false;\r
+            boolean hasDeprecatedErrors = false;\r
+            boolean hasDeprecatedMethods = false;\r
+            boolean hasDeprecatedFields = false;\r
+\r
+            {\r
+               ClassDoc[] classes = rootDoc.classes();\r
+               for (int i = 0, ilim = classes.length; i < ilim; ++ i) {\r
+                  ClassDoc c = classes[i];\r
+                  Tag[] deprecatedTags = c.tags("deprecated");\r
+                  if (null != deprecatedTags && 0 != deprecatedTags.length) {\r
+                     if (c.isInterface()) {\r
+                        hasDeprecatedInterfaces = true;\r
+                     }\r
+                     else if (c.isException()) {\r
+                        hasDeprecatedExceptions = true;\r
+                     }\r
+                     else if (c.isError()) {\r
+                        hasDeprecatedErrors = true;\r
+                     }\r
+                     else /*if (c.isOrdinaryClass())*/ {\r
+                        hasDeprecatedClasses = true;\r
+                     }\r
+                  }\r
+                  \r
+                  MethodDoc[] methods = c.methods();\r
+                  for (int j = 0, jlim = methods.length; j < jlim; ++ j) {\r
+                     MethodDoc m = methods[j];\r
+                     deprecatedTags = m.tags("deprecated");\r
+                     if (null != deprecatedTags && 0 != deprecatedTags.length) {\r
+                        hasDeprecatedMethods = true;\r
+                     }\r
+                  }\r
+                  \r
+                  FieldDoc[] fields = c.fields();\r
+                  for (int j = 0, jlim = fields.length; j < jlim; ++ j) {\r
+                     FieldDoc f = fields[j];\r
+                     deprecatedTags = f.tags("deprecated");\r
+                     if (null != deprecatedTags && 0 != deprecatedTags.length) {\r
+                        hasDeprecatedFields = true;\r
+                     }\r
+                  }\r
+               }\r
+            }\r
+\r
+            htmlRepairer = new HtmlRepairer(rootDoc, noHTMLWarn, noEmailWarn,\r
+                                            currentClass, currentMember,\r
+                                            false);\r
+\r
+            collectUsage();\r
+\r
+            // Begin XML generation\r
+\r
+           printNotice("Writing XML Index file...");\r
+\r
+           // Assign output stream\r
+\r
+           setTargetFile("index.xml");\r
+\r
+           // Output XML document header\r
+\r
+           println(0, "<?xml version=\"1.0\"?>");\r
+           println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc.dtd\">");\r
+           println();\r
+           printOpenTag(0, "rootdoc xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:gjdoc=\"http://www.gnu.org/software/cp-tools/gjdocxml\"");\r
+\r
+           println();\r
+           println(1, "<!-- Tags from overview page, if available -->");\r
+\r
+            if (rootDoc.firstSentenceTags().length > 0) {\r
+               printOpenTag(2, "firstSentenceTags", false);\r
+               outputTags(3, rootDoc.firstSentenceTags(), true, CONTEXT_PACKAGE);\r
+               printCloseTag(0, "firstSentenceTags");\r
+            }\r
+\r
+            if (rootDoc.inlineTags().length > 0) {\r
+               printOpenTag(2, "inlineTags");\r
+               outputTags(3, rootDoc.inlineTags(), true, CONTEXT_PACKAGE);\r
+               printCloseTag(2, "inlineTags");\r
+            }\r
+        \r
+           if (null != bottomNote) {\r
+              printOpenTag(1, "bottomnote");\r
+              print(bottomNote);\r
+              printCloseTag(1, "bottomnote");\r
+           }\r
+\r
+           if (null != title) {\r
+              printOpenTag(1, "title");\r
+              println(2, title);\r
+              printCloseTag(1, "title");\r
+           }\r
+        \r
+           printOpenTag(1, "created");\r
+           println(2, DateFormat.getDateInstance(DateFormat.LONG, Locale.US).format(new java.util.Date()));\r
+           printCloseTag(1, "created");\r
+\r
+            if (hasDeprecatedClasses) printAtomTag(1, "hasDeprecatedClasses");\r
+            if (hasDeprecatedInterfaces) printAtomTag(1, "hasDeprecatedInterfaces");\r
+            if (hasDeprecatedExceptions) printAtomTag(1, "hasDeprecatedExceptions");\r
+            if (hasDeprecatedErrors) printAtomTag(1, "hasDeprecatedErrors");\r
+            if (hasDeprecatedMethods) printAtomTag(1, "hasDeprecatedMethods");\r
+            if (hasDeprecatedFields) printAtomTag(1, "hasDeprecatedFields");\r
+\r
+           // Output summary of all classes specified on command line\r
+\r
+           println();\r
+           println(1, "<!-- Classes specified by user on command line -->");\r
+           ClassDoc[] specifiedClasses = rootDoc.specifiedClasses();\r
+           for (int i=0, ilim=specifiedClasses.length; i<ilim; ++i) {\r
+              ClassDoc sc = specifiedClasses[i];\r
+              printAtomTag(1, "specifiedclass fqname=\""+sc.qualifiedName()+"\" name=\""+sc.name()+"\"");\r
+           }\r
+           specifiedClasses = null;\r
+\r
+           // Output summary of all packages specified on command line\r
+\r
+           println();\r
+           println(1, "<!-- Packages specified by user on command line -->");\r
+           PackageDoc[] specifiedPackages = rootDoc.specifiedPackages();\r
+           for (int i=0, ilim=specifiedPackages.length; i<ilim; ++i) {\r
+              PackageDoc sp = specifiedPackages[i];\r
+              printAtomTag(1, "specifiedpackage name=\""+sp.name()+"\"");\r
+           }\r
+           specifiedPackages = null;\r
+\r
+           // Output package group information specified on the\r
+           // command line\r
+\r
+           println();\r
+           println(1, "<!-- Package groups specified by user on command line -->");\r
+            {\r
+               Iterator packageGroupIt = packageGroups.iterator();\r
+               while (packageGroupIt.hasNext()) {\r
+                  PackageGroup packageGroup = (PackageGroup)packageGroupIt.next();\r
+                  SortedSet groupedPackages = packageGroup.getPackages();\r
+                  if (groupedPackages.isEmpty()) {\r
+                     printWarning("Package group named '" \r
+                                  + packageGroup.getName() + "' didn't match any packages.");\r
+                  }\r
+                  else {\r
+                     printOpenTag(1, "packagegroup name=\"" + packageGroup.getName() + "\"");\r
+                     Iterator groupedPackageIt = groupedPackages.iterator();\r
+                     while (groupedPackageIt.hasNext()) {\r
+                        PackageDoc groupedPackageDoc = (PackageDoc)groupedPackageIt.next();\r
+                        printAtomTag(2, "package name=\"" + groupedPackageDoc.name() + "\"");\r
+                     }\r
+                     printCloseTag(1, "packagegroup");\r
+                  }\r
+               }\r
+               packageGroups = null;\r
+            }\r
+\r
+           // Output information on all packages for which documentation\r
+           // has been made available via the Doclet API\r
+\r
+           println();\r
+           println(1, "<!-- Documentation for all packages -->");\r
+           PackageDoc[] packages = rootDoc.specifiedPackages();\r
+           for (int i=0, ilim=packages.length; i<ilim; ++i) {\r
+              PackageDoc c = packages[i];\r
+              outputPackageDoc(c);\r
+           }\r
+           packages = null;\r
+\r
+           // Output brief summary on all classes for which documentation\r
+           // has been made available via the Doclet API.\r
+           //\r
+           // While this is redundant, it can speed up XSLT\r
+           // processing by orders of magnitude\r
+\r
+           println();\r
+           println(1, "<!-- Brief summary for all classes -->");\r
+           ClassDoc[] sumclasses = rootDoc.classes();\r
+           for (int i=0, ilim=sumclasses.length; i<ilim; ++i) {\r
+              ClassDoc c = sumclasses[i];\r
+              outputClassDocSummary(c);\r
+           }\r
+           sumclasses = null;\r
+           \r
+           // Output closing tag, finish output stream\r
+\r
+           println();\r
+           printCloseTag(0, "rootdoc");\r
+\r
+           closeTargetFile();\r
+\r
+            createIndexByName();\r
+\r
+\r
+\r
+           // Output information on all classes for which documentation\r
+           // has been made available via the Doclet API\r
+           \r
+           println();\r
+           println(1, "<!-- Documentation for all classes -->");\r
+           ClassDoc[] classes = rootDoc.classes();\r
+            String prevPackageName = null;\r
+           for (int i = 0, ilim = classes.length; i < ilim; ++ i) {\r
+              ClassDoc c = classes[i];\r
+\r
+               if (isVerbose()) {\r
+                  printNotice("Writing XML information for "+c.qualifiedName()+"...");\r
+               }\r
+               else {\r
+                  String packageName = c.containingPackage().name();\r
+                  if (null == prevPackageName || !packageName.equals(prevPackageName)) {\r
+                     printNotice("Writing XML information for "+packageName+"...");\r
+                     prevPackageName = packageName;\r
+                  }\r
+               }\r
+              \r
+              setTargetFile(c.qualifiedName().replace('/','.')+".xml");\r
+              \r
+              println("<?xml version=\"1.0\"?>");\r
+               println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc.dtd\">");\r
+              \r
+              outputClassDoc(c);\r
+              \r
+              closeTargetFile();\r
+           }\r
+           classes = null;\r
+        }\r
+        \r
+         // Copy DTD files to temporary directory\r
+         \r
+         // FIXME: try to solve this via jar: URLs. but this will\r
+         // probably break libxmlj compatibility (?)\r
+         \r
+         String[] resources = new String[] {\r
+            "gjdoc.dtd",\r
+            "gjdoc-alphaindex.dtd",\r
+            "dbcentx.mod",\r
+            "ent/iso-amsa.ent",\r
+            "ent/iso-amsb.ent",\r
+            "ent/iso-amsc.ent",\r
+            "ent/iso-amsn.ent",\r
+            "ent/iso-amso.ent",\r
+            "ent/iso-amsr.ent",\r
+            "ent/iso-box.ent",\r
+            "ent/iso-cyr1.ent",\r
+            "ent/iso-cyr2.ent",\r
+            "ent/iso-dia.ent",\r
+            "ent/iso-grk1.ent",\r
+            "ent/iso-grk2.ent",\r
+            "ent/iso-grk3.ent",\r
+            "ent/iso-grk4.ent",\r
+            "ent/iso-lat1.ent",\r
+            "ent/iso-lat2.ent",\r
+            "ent/iso-num.ent",\r
+            "ent/iso-pub.ent",\r
+            "ent/iso-tech.ent",\r
+         };\r
+\r
+         File tempDtdDirectory = new File(xmlTargetDirectory, "dtd");\r
+         File tempDtdEntDirectory = new File(tempDtdDirectory, "ent");\r
+\r
+         if ((tempDtdDirectory.exists() || tempDtdDirectory.mkdir())\r
+             && (tempDtdEntDirectory.exists() || tempDtdEntDirectory.mkdir())) {\r
+            for (int i = 0; i < resources.length; ++ i) {\r
+               copyResourceToFile("/dtd/" + resources[i], \r
+                                  new File(tempDtdDirectory, resources[i]));\r
+            }\r
+         }\r
+         else {\r
+            printError("Cannot create temporary directories for DTD data at " + tempDtdDirectory);\r
+            return false;\r
+         }\r
+\r
+         // Copy package data-dir directory\r
+\r
+         {\r
+            PackageDoc[] packages = rootDoc.specifiedPackages();\r
+            for (int i=0, ilim=packages.length; i<ilim; ++i) {\r
+               PackageDoc c = packages[i];\r
+               if (c instanceof GjdocPackageDoc) {\r
+                  copyPackageDataDir((GjdocPackageDoc)c);\r
+               }\r
+            }\r
+         }\r
+\r
+        // All information has been output. Apply stylesheet if given.\r
+\r
+        gnu.classpath.tools.gjdoc.Main.releaseRootDoc();\r
+         \r
+        this.currentClass = null;\r
+        this.currentMember = null;\r
+        this.currentExecMember = null;\r
+        \r
+        System.gc();    \r
+\r
+        // From this point we are only operating on files, so we don't\r
+        // need this anymore and can free up some memory\r
+\r
+         for (Iterator it = targets.iterator(); it.hasNext(); ) {\r
+\r
+            TargetContext target = (TargetContext)it.next();\r
+\r
+           // We have XSLT postprocessing, run DocTranslet.\r
+\r
+            //DocTranslet docTranslet = DocTranslet.fromClasspath("/doctranslets/html/gjdoc.xsl");\r
+            \r
+            //docTranslet.setOptions(docTransletOptions);\r
+\r
+            target.getDocTranslet().setOptions(docTransletOptions);\r
+\r
+            target.getDocTranslet().apply(xmlTargetDirectory, \r
+                                          target.getTargetDirectory(), \r
+                                          rootDoc);\r
+        }\r
+\r
+        // Done\r
+\r
+        targets = null;\r
+\r
+        System.gc();\r
+         Runtime.getRuntime().runFinalization();\r
+\r
+        return true;\r
+      }\r
+      catch (Exception e) {\r
+\r
+        // Something went wrong. Report to stderr and pass error to\r
+        // Javadoc Reporter\r
+\r
+        e.printStackTrace();\r
+        printError(e.toString());\r
+\r
+         Throwable rootCause = e.getCause();\r
+         if (null != rootCause) {\r
+            while (null != rootCause.getCause()) {\r
+               rootCause = rootCause.getCause();\r
+            }\r
+            System.err.println("Root cause:");\r
+            rootCause.printStackTrace();\r
+         }\r
+\r
+        return false;\r
+      }\r
+      finally {\r
+\r
+        // In any case, delete the working directory if we created one\r
+\r
+        if (null != workingDirectory) {\r
+\r
+           if (!deleteRecursive(workingDirectory)) {\r
+              printWarning("Could not delete temporary directory at "+workingDirectory);\r
+           }\r
+        }\r
+\r
+        printNotice("Done.");\r
+      }\r
+   }\r
+\r
+   /**\r
+    * Recursively delete the specified directory and its contents,\r
+    * like <code>rm -Rf directory</code>\r
+    *\r
+    * @return <code>true</code> on success\r
+    */\r
+   private static boolean deleteRecursive(File directory) {\r
+\r
+      boolean success = true;\r
+\r
+      File[] files = directory.listFiles();\r
+\r
+      for (int i=0, ilim=files.length; i<ilim; ++i) {\r
+\r
+        File file = files[i];\r
+\r
+        if (file.isDirectory()) {\r
+\r
+           success = deleteRecursive(file) && success;\r
+        }\r
+        else {\r
+\r
+           success = file.delete() && success;\r
+        }\r
+      }\r
+\r
+      return directory.delete() && success;\r
+   }\r
+\r
+   /**\r
+    *  Prints a string to stdout and appends a newline.  Convenience\r
+    *  method.  \r
+    */\r
+   protected void println(String str) {\r
+      out.println(str);\r
+   }\r
+\r
+   /**\r
+    *  Prints a string to stdout without appending a newline.\r
+    *  Convenience method.  \r
+    */\r
+   protected void print(String str) {\r
+      out.print(str);\r
+   }\r
+\r
+   /**\r
+    *  In standard mode, prints an empty line to stdout.\r
+    *  In thight mode, nothing happens.\r
+    *  Convenience method.  \r
+    */\r
+   protected void println() {\r
+      if (!compress) {\r
+        out.println();\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  In standard mode, prints the given text indented to stdout and appends newline. \r
+    *  In tight mode, doesn't print indentation or newlines.\r
+    */\r
+   protected void print(int indentLevel, String msg) {\r
+      if (compress) {\r
+        out.print(msg);\r
+      }\r
+      else {\r
+        StringBuffer indentation = new StringBuffer();\r
+        for (int i=0; i<indentLevel*indentStep; ++i) {\r
+           indentation.append(' ');\r
+        }\r
+        out.print(indentation+msg);\r
+      }\r
+   }\r
+   \r
+   /**\r
+    *  In tight mode, prints a message at a given indentation level.\r
+    *  In standard mode, appends a newline in addition.\r
+    */\r
+   protected void println(int indentLevel, String msg) {\r
+      print(indentLevel, msg);\r
+      if (!compress) out.println();\r
+   }\r
+\r
+   /**\r
+    *  Prints an atom tag at the given indentation level.\r
+    */\r
+   protected void printAtomTag(int level, String tag) {\r
+      println(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+"/>");\r
+   }\r
+\r
+   /**\r
+    *  Prints an open tag at the given indentation level.\r
+    */\r
+   protected void printOpenTag(int level, String tag) {\r
+      printOpenTag(level, replaceCharsInTag(tag), true);\r
+   }\r
+\r
+   /**\r
+    *  Prints an open tag at the given indentation level and\r
+    *  conditionally appends a newline (if not in tight mode).\r
+    */\r
+   protected void printOpenTag(int level, String tag, boolean appendNewline) {\r
+      if (appendNewline && !compress) {\r
+        println(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+">");\r
+      }\r
+      else {\r
+        print(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+">");\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  Prints a close tag at the given indentation level.\r
+    */\r
+   protected void printCloseTag(int level, String tag) {\r
+      printCloseTag(level, tag, true);\r
+   }\r
+\r
+   /**\r
+    *  Prints a close tag at the given indentation level and\r
+    *  conditionally appends a newline (if not in tight mode).\r
+    */\r
+   protected void printCloseTag(int level, String tag, boolean appendNewline) {\r
+      if (appendNewline && !compress) {\r
+        println(level, "</"+tagPrefix+":"+replaceCharsInTag(tag)+">");\r
+      }\r
+      else {\r
+        print(level, "</"+tagPrefix+":"+replaceCharsInTag(tag)+">");\r
+      }\r
+   }\r
+\r
+   public static int optionLength(String option) {\r
+      if ("-d".equals(option)) return 2;\r
+      else if ("-fixhtml".equals(option)) return 1;\r
+      else if ("-compress".equals(option)) return 1;\r
+      else if ("-nohtmlwarn".equals(option)) return 1;\r
+      else if ("-noemailwarn".equals(option)) return 1;\r
+      else if ("-indentstep".equals(option)) return 2;\r
+      else if ("-xslsheet".equals(option)) return 2;\r
+      else if ("-xsltdriver".equals(option)) return 2;\r
+      else if ("-postprocess".equals(option)) return 2;\r
+      else if ("-genhtml".equals(option)) return 1;\r
+      else if ("-geninfo".equals(option)) return 1;\r
+      else if ("-gendocbook".equals(option)) return 1;\r
+      else if ("-xmlonly".equals(option)) return 1;\r
+      else if ("-bottomnote".equals(option)) return 2;\r
+      else if ("-workpath".equals(option)) return 2;\r
+      else if ("-title".equals(option)) return 2;\r
+      else if ("-tagletpath".equals(option)) return 2;\r
+      else if ("-taglet".equals(option)) return 2;\r
+      else if ("-authormail".equals(option)) return 2;\r
+      else if ("-mailmangledot".equals(option)) return 2;\r
+      else if ("-mailmangleat".equals(option)) return 2;\r
+      else if ("-noindex".equals(option)) return 1;\r
+      else if ("-nocomment".equals(option)) return 1;\r
+      else if ("-notree".equals(option)) return 1;\r
+      else if ("-nohelp".equals(option)) return 1;\r
+      else if ("-nonavbar".equals(option)) return 1;\r
+      else if ("-splitindex".equals(option)) return 1;\r
+      else if ("-author".equals(option)) return 1;\r
+      else if ("-version".equals(option)) return 1;\r
+      else if ("-nosince".equals(option)) return 1;\r
+      else if ("-nodeprecated".equals(option)) return 1;\r
+      else if ("-linksource".equals(option)) return 1;\r
+      else if ("-windowtitle".equals(option)) return 2;\r
+      else if ("-helpfile".equals(option)) return 2;\r
+      else if ("-stylesheetfile".equals(option)) return 2;\r
+      else if ("-tag".equals(option)) return 2;\r
+      else if ("-header".equals(option)) return 2;\r
+      else if ("-footer".equals(option)) return 2;\r
+      else if ("-bottom".equals(option)) return 2;\r
+      else if ("-doctitle".equals(option)) return 2;\r
+      else if ("-nodeprecatedlist".equals(option)) return 1;\r
+      else if ("-uses".equals(option)) return 1;\r
+      else if ("-group".equals(option)) return 3;\r
+\r
+      else return -1;\r
+   }\r
+\r
+   public static boolean validOptions(String[][] options) {\r
+      return true;\r
+   }\r
+\r
+\r
+   /**\r
+    *  Workaround for non well-formed comments: fix tag contents\r
+    *  by replacing <code>&lt;</code> with <code>&amp;lt;</code>,\r
+    *  <code>&gt;</code> with <code>&amp;gt;</code> and\r
+    *  <code>&amp;</code> with <code>&amp;amp;</code>.\r
+    *\r
+    *  @param tagContent  String to process\r
+    *\r
+    *  @return given String with all special characters replaced by \r
+    *          HTML entities.\r
+    */\r
+   private static String replaceCharsInTag(String tagContent) {\r
+      return \r
+        replaceString(\r
+           replaceString(\r
+              replaceString(\r
+                 tagContent, \r
+                 "<", "&lt;"\r
+                 ), \r
+              ">", "&gt;"\r
+              ),\r
+           "&", "&amp;"\r
+           );\r
+   }\r
+\r
+   /**\r
+    *  Replaces all occurences of string <code>needle</code> within string\r
+    *  <code>haystack</code> by string <code>replacement</code>.\r
+    *\r
+    *  @param haystack    The string to search and replace in.\r
+    *  @param needle      The string which is searched for.\r
+    *  @param replacement The string by which every occurence of <code>needle</code> is replaced.\r
+    */\r
+   private static String replaceString(String haystack, String needle, String replacement) {\r
+      int ndx = haystack.indexOf(needle);\r
+      if (ndx<0)\r
+        return haystack;\r
+      else\r
+        return haystack.substring(0, ndx) + replacement \r
+           + replaceString(haystack.substring(ndx+needle.length()), needle, replacement);\r
+   }\r
+\r
+   protected void setTargetFile(String filename) throws IOException {\r
+\r
+      OutputStream fileOut = new FileOutputStream(new File(xmlTargetDirectory, filename));\r
+      out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fileOut, "UTF8")));;\r
+   }\r
+\r
+   protected void closeTargetFile() {\r
+\r
+      out.flush();\r
+      out.close();\r
+   }\r
+\r
+   private String cdata(String str) {\r
+\r
+      if (null==str) {\r
+        return str;\r
+      } // end of if ((null==str)\r
+\r
+      StringBuffer rc = new StringBuffer();\r
+      for (int i=0; i<str.length(); ++i) {\r
+        char c = str.charAt(i);\r
+        if (c==0x09 || c==0x0a || c==0x0d || (c>=0x20 && c<=0xd7ff) || (c>=0xe000 && c<=0xfffd) || (c>=0x10000 && c<=0x10ffff)) {\r
+           rc.append(c);\r
+        }\r
+        else {\r
+           printWarning("Invalid Unicode character 0x"+Integer.toString(c, 16)+" in javadoc markup has been stripped.");\r
+        } // end of else\r
+        \r
+      }\r
+      return rc.toString();\r
+   }\r
+\r
+   static void copyResourceToFile(String resourceName, File target) throws IOException {\r
+      \r
+      InputStream in = Driver.class.getResourceAsStream(resourceName);\r
+\r
+      if (null != in) {\r
+\r
+        FileOutputStream out = new FileOutputStream(target);\r
+        int size;\r
+        byte[] buffer = new byte[512];\r
+        while ((size = in.read(buffer)) >= 0) {\r
+           out.write(buffer, 0, size);\r
+        }\r
+        out.close();\r
+      }\r
+      else {\r
+\r
+        throw new IOException("Can't find resource named "+resourceName);\r
+      }\r
+   }\r
+\r
+   private void printError(String error) {\r
+      if (null != rootDoc) {\r
+        rootDoc.printError(error);\r
+      }\r
+      else {\r
+        System.err.println("ERROR: "+error);\r
+      }\r
+   }\r
+\r
+   private void printWarning(String warning) {\r
+      if (null != rootDoc) {\r
+        rootDoc.printWarning(warning);\r
+      }\r
+      else {\r
+        System.err.println("WARNING: "+warning);\r
+      }\r
+   }\r
+\r
+   private void printNotice(String notice) {\r
+      if (null != rootDoc) {\r
+        rootDoc.printNotice(notice);\r
+      }\r
+      else {\r
+        System.err.println(notice);\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  Copy the contents of the input directory to the output\r
+    *  directory. The output directory must exist.\r
+    */\r
+   private void copyPackageDataDir(GjdocPackageDoc packageDoc) throws IOException {\r
+      File docFilesSourceDirectory\r
+         = new File(packageDoc.packageDirectory(), "doc-files");\r
+      File docFilesTargetDirectory\r
+         = new File(this.targetDirectory, \r
+                    packageDoc.name().replace('.', File.separatorChar));\r
+      if (docFilesSourceDirectory.exists()) {\r
+         printNotice("Copying files from " + docFilesSourceDirectory);\r
+         copyDirectory(docFilesSourceDirectory, docFilesTargetDirectory,\r
+                       docFilesSubdirsEnabled,\r
+                       excludeDocFilesSubDirs);\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  Recursively copy the contents of the input directory to the\r
+    *  output directory. The output directory must exist.\r
+    */\r
+   private static void copyDirectory(File sourceDir, File targetDir, \r
+                                     boolean recursive,\r
+                                     Set excludeDirs) throws IOException {\r
+      if (!targetDir.exists() && !targetDir.mkdirs()) {\r
+         throw new IOException("Cannot create directory " + targetDir);\r
+      }\r
+\r
+      File[] sourceFiles = sourceDir.listFiles();\r
+      for (int i=0; i<sourceFiles.length; ++i) {\r
+         if (sourceFiles[i].isDirectory()) {\r
+            if (recursive && (null == excludeDirs \r
+                              || !excludeDirs.contains(sourceFiles[i].getName()))) {\r
+               File targetSubDir = new File(targetDir, \r
+                                            sourceFiles[i].getName());\r
+               if (targetSubDir.exists() || targetSubDir.mkdir()) {\r
+                  copyDirectory(sourceFiles[i], targetSubDir, recursive, null);\r
+               }\r
+               else {\r
+                  throw new IOException("Cannot create directory " + targetSubDir);\r
+               }\r
+            }\r
+         }\r
+         else {\r
+            copyFile(sourceFiles[i], new File(targetDir, sourceFiles[i].getName()));\r
+         }\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  Copy the contents of the input file to the output file. The\r
+    *  output file's parent directory must exist.\r
+    */\r
+   private static void copyFile(File sourceFile, File targetFile) throws IOException {\r
+\r
+      InputStream in = new FileInputStream(sourceFile);\r
+      OutputStream out = new FileOutputStream(targetFile);\r
+      int nread;\r
+      byte[] buf = new byte[512];\r
+      while ((nread = in.read(buf)) >= 0) {\r
+         out.write(buf, 0, nread);\r
+      }\r
+      in.close();\r
+      out.close();\r
+   }\r
+\r
+   private void createIndexByName() throws IOException {\r
+      // Create index\r
+\r
+      // Collect index\r
+            \r
+      Map indexMap = new TreeMap(new Comparator() {\r
+            public int compare(Object o1, Object o2) {\r
+               return o1.toString().toLowerCase().compareTo(o2.toString().toLowerCase());\r
+            }\r
+         });\r
+\r
+      // Add packages to index\r
+\r
+      PackageDoc[] packages = rootDoc.specifiedPackages();\r
+      for (int i=0, ilim=packages.length; i<ilim; ++i) {\r
+         PackageDoc c = packages[i];\r
+         indexMap.put(c.name(), c);\r
+      }\r
+\r
+      // Add classes, fields and methods to index\r
+\r
+      ClassDoc[] sumclasses = rootDoc.classes();\r
+      for (int i=0, ilim=sumclasses.length; i<ilim; ++i) {\r
+         ClassDoc c = sumclasses[i];\r
+         if (null == c.containingClass()) {\r
+            indexMap.put(c.name(), c);\r
+         }\r
+         else {\r
+            indexMap.put(c.name().substring(c.containingClass().name().length() + 1), c);\r
+         }\r
+         FieldDoc[] fields = c.fields();\r
+         for (int j=0, jlim=fields.length; j<jlim; ++j) {\r
+            indexMap.put(fields[j].name(), fields[j]);\r
+         }\r
+         MethodDoc[] methods = c.methods();\r
+         for (int j=0, jlim=methods.length; j<jlim; ++j) {\r
+            MethodDoc method = methods[j];\r
+            StringBuffer signature = new StringBuffer();\r
+            signature.append(method.name());\r
+            signature.append('(');\r
+            Parameter[] parameters = method.parameters();\r
+            for (int k=0, klim=parameters.length; k<klim; ++k) {\r
+               if (k > 0) {\r
+                  signature.append(", ");\r
+               }\r
+               signature.append(parameters[k].typeName());\r
+            }\r
+            signature.append(')');\r
+            indexMap.put(signature.toString(), method);\r
+         }\r
+      }\r
+\r
+      // Assign output stream\r
+\r
+      setTargetFile("alphaindex.xml");\r
+\r
+      // Output XML document header\r
+\r
+      println(0, "<?xml version=\"1.0\"?>");\r
+      println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc-alphaindex.dtd\">");\r
+      println();\r
+      printOpenTag(0, "alphaindex xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:gjdoc=\"http://www.gnu.org/software/cp-tools/gjdocxml\"");\r
+      \r
+      Iterator it = indexMap.keySet().iterator();\r
+\r
+      char previousCategoryLetter = '\0';\r
+      boolean categoryOpen = false;\r
+\r
+      while (it.hasNext()) {\r
+         String key = (String)it.next();\r
+         Doc entry = (Doc)indexMap.get(key);\r
+\r
+         char firstChar = Character.toUpperCase(key.charAt(0));\r
+         if (firstChar != previousCategoryLetter) {\r
+            if (categoryOpen) {\r
+               printCloseTag(1, "category");\r
+            }\r
+            printOpenTag(1, "category letter=\"" + firstChar + "\"");\r
+            categoryOpen = true;\r
+            previousCategoryLetter = firstChar;\r
+         }\r
+\r
+         printOpenTag(2, "entry name=\"" + key + "\"");\r
+         if (entry instanceof PackageDoc) {\r
+            printAtomTag(3, "isPackage");\r
+         }\r
+         else if (entry instanceof ClassDoc) {\r
+            printAtomTag(3, "isClass");\r
+            ClassDoc centry = (ClassDoc)entry;\r
+            currentClass = centry;\r
+            printAtomTag(3, "containingPackage name=\"" + centry.containingPackage().name() + "\"");\r
+            if (null != centry.containingClass()) {\r
+               printAtomTag(3, "containingClass name=\"" + centry.containingClass().name() + "\"");\r
+            }\r
+            if (centry.isInterface()) {\r
+               printAtomTag(3, "isInterface");\r
+            }\r
+            if (centry.isException()) {\r
+               printAtomTag(3, "isException");\r
+            }\r
+            if (centry.isError()) {\r
+               printAtomTag(3, "isError");\r
+            }\r
+            if (centry.isOrdinaryClass()) {\r
+               printAtomTag(3, "isOrdinaryClass");\r
+            }\r
+         }\r
+         else if (entry instanceof ProgramElementDoc) {\r
+            ProgramElementDoc pentry = (ProgramElementDoc)entry;\r
+            currentClass = pentry.containingClass();\r
+            printAtomTag(3, "containingPackage name=\"" + pentry.containingPackage().name() + "\"");\r
+            printAtomTag(3, "containingClass name=\"" + pentry.containingClass().name() + "\"");\r
+            if (pentry.isMethod()) {\r
+               printAtomTag(3, "isMethod");\r
+               ExecutableMemberDoc mentry = (ExecutableMemberDoc)pentry;\r
+               printAtomTag(3, "signature full=\""+mentry.signature()+"\" flat=\""+mentry.flatSignature()+"\"");\r
+               printAtomTag(3, "method name=\"" + mentry.name() + "\"");\r
+            }\r
+            if (pentry.isField()) {\r
+               printAtomTag(3, "isField");\r
+            }\r
+         }\r
+\r
+         Tag[] tags = entry.firstSentenceTags();\r
+         for (int i=0, ilim=tags.length; i<ilim; ++i) {\r
+            Tag tag = tags[i];\r
+            if (tag.firstSentenceTags().length>0) {\r
+               printOpenTag(3, "firstSentenceTags", false);\r
+               outputTags(4, tag.firstSentenceTags(), false, CONTEXT_TYPE);\r
+               printCloseTag(3, "firstSentenceTags");\r
+            }\r
+         }\r
+\r
+\r
+         printCloseTag(2, "entry");\r
+      }\r
+\r
+      if (categoryOpen) {\r
+         printCloseTag(1, "category");\r
+      }\r
+\r
+      printCloseTag(0, "alphaindex");\r
+\r
+      closeTargetFile();\r
+   }\r
+\r
+   private static class UsageType\r
+   {\r
+      public static final UsageType CLASS_DERIVED_FROM = new UsageType("class-derived-from");\r
+      public static final UsageType FIELD_OF_TYPE = new UsageType("field-of-type");\r
+      public static final UsageType METHOD_WITH_RETURN_TYPE = new UsageType("method-with-return-type");\r
+      public static final UsageType METHOD_WITH_PARAMETER_TYPE = new UsageType("method-with-parameter-type");\r
+      public static final UsageType METHOD_WITH_THROWN_TYPE = new UsageType("method-with-thrown-type");\r
+      public static final UsageType CONSTRUCTOR_WITH_PARAMETER_TYPE = new UsageType("constructor-with-parameter-type");\r
+      public static final UsageType CONSTRUCTOR_WITH_THROWN_TYPE = new UsageType("constructor-with-thrown-type");\r
+      private String id;\r
+\r
+      private UsageType(String id)\r
+      {\r
+         this.id = id;\r
+      }\r
+\r
+      public String toString() { \r
+         return "UsageType{id=" + id + "}"; \r
+      }\r
+\r
+      public String getId() {\r
+         return id;\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  ClassDoc -> (PackageDoc -> (UsageType -> (Set of Doc)))\r
+    */\r
+   private Map usedClassToPackagesMap = new HashMap();\r
+\r
+   private void addUsedBy(ClassDoc usedClass, UsageType usageType, Doc user, PackageDoc userPackage)\r
+   {\r
+      Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(usedClass);\r
+      if (null == packageToUsageTypeMap) {\r
+         packageToUsageTypeMap = new HashMap();\r
+         usedClassToPackagesMap.put(usedClass, packageToUsageTypeMap);\r
+      }\r
+\r
+      Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(userPackage);\r
+      if (null == usageTypeToUsersMap) {\r
+         usageTypeToUsersMap = new HashMap();\r
+         packageToUsageTypeMap.put(userPackage, usageTypeToUsersMap);\r
+      }\r
+\r
+      Set userSet = (Set)usageTypeToUsersMap.get(usageType);\r
+      if (null == userSet) {\r
+         userSet = new TreeSet(); // FIXME: we need the collator from Main here\r
+         usageTypeToUsersMap.put(usageType, userSet);\r
+      }\r
+      userSet.add(user);\r
+   }\r
+\r
+   /**\r
+    *  Create the cross reference database.\r
+    */\r
+   private void collectUsage() {\r
+\r
+      ClassDoc[] classes = rootDoc.classes();\r
+      for (int i = 0, ilim = classes.length; i < ilim; ++ i) {\r
+         ClassDoc clazz = classes[i];\r
+\r
+         // classes derived from\r
+         for (ClassDoc superclass = clazz.superclass(); superclass != null; \r
+              superclass = superclass.superclass()) {\r
+            addUsedBy(superclass, UsageType.CLASS_DERIVED_FROM, clazz, clazz.containingPackage());\r
+         }\r
+\r
+         FieldDoc[] fields = clazz.fields();\r
+         for (int j = 0, jlim = fields.length; j < jlim; ++ j) {\r
+            FieldDoc field = fields[j];\r
+\r
+            // fields of type                  \r
+            ClassDoc fieldType = field.type().asClassDoc();\r
+            if (null != fieldType) {\r
+               addUsedBy(fieldType, UsageType.FIELD_OF_TYPE, \r
+                         field, clazz.containingPackage());\r
+            }\r
+         }\r
+\r
+         MethodDoc[] methods = clazz.methods();\r
+         for (int j = 0, jlim = methods.length; j < jlim; ++ j) {\r
+            MethodDoc method = methods[j];\r
+\r
+            // methods with return type\r
+\r
+            ClassDoc returnType = method.returnType().asClassDoc();\r
+            if (null != returnType) {\r
+               addUsedBy(returnType, UsageType.METHOD_WITH_RETURN_TYPE, \r
+                         method, clazz.containingPackage());\r
+            }\r
+            Parameter[] parameters = method.parameters();\r
+            for (int k=0; k<parameters.length; ++k) {\r
+\r
+               // methods with parameter type\r
+\r
+               Parameter parameter = parameters[k];\r
+               ClassDoc parameterType = parameter.type().asClassDoc();\r
+               if (null != parameterType) {\r
+                  addUsedBy(parameterType, UsageType.METHOD_WITH_PARAMETER_TYPE, \r
+                            method, clazz.containingPackage());\r
+               }\r
+            }\r
+\r
+            // methods which throw\r
+\r
+            ClassDoc[] thrownExceptions = method.thrownExceptions();\r
+            for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {\r
+               ClassDoc thrownException = thrownExceptions[k];\r
+               addUsedBy(thrownException, UsageType.METHOD_WITH_THROWN_TYPE, \r
+                         method, clazz.containingPackage());\r
+            }\r
+         }\r
+                  \r
+         ConstructorDoc[] constructors = clazz.constructors();\r
+         for (int j = 0, jlim = constructors.length; j < jlim; ++ j) {\r
+\r
+            ConstructorDoc constructor = constructors[j];\r
+\r
+            Parameter[] parameters = constructor.parameters();\r
+            for (int k = 0, klim = parameters.length; k < klim; ++ k) {\r
+\r
+               // constructors with parameter type\r
+                     \r
+               Parameter parameter = parameters[k];\r
+               ClassDoc parameterType = parameter.type().asClassDoc();\r
+               if (null != parameterType) {\r
+                  addUsedBy(parameterType, UsageType.CONSTRUCTOR_WITH_PARAMETER_TYPE, \r
+                            constructor, clazz.containingPackage());\r
+               }\r
+            }\r
+\r
+            // constructors which throw\r
+\r
+            ClassDoc[] thrownExceptions = constructor.thrownExceptions();\r
+            for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {\r
+               ClassDoc thrownException = thrownExceptions[k];\r
+               addUsedBy(thrownException, UsageType.CONSTRUCTOR_WITH_THROWN_TYPE, \r
+                         constructor, clazz.containingPackage());\r
+            }\r
+         }\r
+      }\r
+   }\r
+\r
+   private void outputUsage(ClassDoc clazz, int level) {\r
+\r
+      Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(clazz);\r
+      if (null != packageToUsageTypeMap) {\r
+         printOpenTag(level, "references");\r
+\r
+         Iterator packagesIterator = packageToUsageTypeMap.keySet().iterator();\r
+\r
+         while (packagesIterator.hasNext()) {\r
+            PackageDoc packageDoc = (PackageDoc)packagesIterator.next();\r
+            printOpenTag(level + 1, "referencing-package name=\"" + packageDoc.name() + "\"");\r
+            Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(packageDoc);\r
+            Iterator usageTypeIterator = usageTypeToUsersMap.keySet().iterator();\r
+            while (usageTypeIterator.hasNext()) {\r
+               UsageType usageType = (UsageType)usageTypeIterator.next();\r
+               printOpenTag(level + 2, "usage-type id=\"" + usageType.getId() + "\"");\r
+               Set users = (Set)usageTypeToUsersMap.get(usageType);\r
+               Iterator userIterator = users.iterator();\r
+               while (userIterator.hasNext()) {\r
+                  Doc user = (Doc)userIterator.next();\r
+                  if (user instanceof ClassDoc) {\r
+                     printAtomTag(level + 3, "user"\r
+                                  + " class=\"" + ((ClassDoc)user).name() + "\"");\r
+                  }\r
+                  else if (user instanceof FieldDoc) {\r
+                     FieldDoc fieldDoc = (FieldDoc)user;\r
+                     printAtomTag(level + 3, "user"\r
+                                  + " class=\"" + fieldDoc.containingClass().name() + "\""\r
+                                  + " field=\"" + fieldDoc.name() + "\"");\r
+                  }\r
+                  else if (user instanceof MethodDoc) {\r
+                     MethodDoc methodDoc = (MethodDoc)user;\r
+                     printAtomTag(level + 3, "user"\r
+                                  + " class=\"" + methodDoc.containingClass().name() + "\""\r
+                                  + " method=\"" + methodDoc.name() + "\""\r
+                                  + " signature=\"" + methodDoc.signature() + "\""\r
+                                  + " flatSignature=\"" + methodDoc.flatSignature() + "\"");\r
+                  }\r
+                  else if (user instanceof ConstructorDoc) {\r
+                     ConstructorDoc constructorDoc = (ConstructorDoc)user;\r
+                     printAtomTag(level + 3, "user"\r
+                                  + " class=\"" + constructorDoc.containingClass().name() + "\""\r
+                                  + " signature=\"" + constructorDoc.signature() + "\""\r
+                                  + " flatSignature=\"" + constructorDoc.flatSignature() + "\"");\r
+                  }\r
+               }\r
+               printCloseTag(level +2, "usage-type");\r
+            }\r
+            printCloseTag(level + 1, "referencing-package");\r
+         }\r
+\r
+         printCloseTag(level, "references");\r
+      }\r
+   }\r
+\r
+   private boolean processGroupOption(String groupName, String colonSeparatedPackageList)\r
+   {\r
+      try {\r
+         PackageMatcher packageMatcher = new PackageMatcher();\r
+\r
+         StringTokenizer tokenizer = new StringTokenizer(colonSeparatedPackageList, ":");\r
+         while (tokenizer.hasMoreTokens()) {\r
+            String packageWildcard = tokenizer.nextToken();\r
+            packageMatcher.addWildcard(packageWildcard);\r
+         }\r
+\r
+         SortedSet groupPackages = packageMatcher.filter(rootDoc.specifiedPackages());\r
+\r
+         packageGroups.add(new PackageGroup(groupName, groupPackages));\r
+\r
+         return true;\r
+      }\r
+      catch (InvalidPackageWildcardException e) {\r
+         return false;\r
+      }\r
+   }\r
+\r
+   private void registerTaglet(Taglet taglet)\r
+   {\r
+      tagletMap.put(taglet.getName(), taglet);\r
+   }\r
+\r
+   private boolean isVerbose()\r
+   {\r
+      return false;\r
+   }\r
+}\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java
new file mode 100644 (file)
index 0000000..bbb57ac
--- /dev/null
@@ -0,0 +1,67 @@
+/* gnu.classpath.tools.doclets.xmldoclet.Driver1_4\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.doclets.xmldoclet;\r
+\r
+import com.sun.javadoc.*;\r
+import java.io.IOException;\r
+\r
+/**\r
+ *  A Doclet which retrieves all information presented by the Doclet\r
+ *  API, dumping it to stdout in XML format.\r
+ *\r
+ *  Supports Doclet API Version 1.4.\r
+ *\r
+ *  @author Julian Scheid\r
+ */\r
+public class Driver1_4 extends Driver {\r
+\r
+   /**\r
+    *  Official Doclet entry point.\r
+    */\r
+   public static boolean start(RootDoc root) {\r
+\r
+      // Create a new XmlDoclet instance and delegate control.\r
+      return new Driver1_4().instanceStart(root);\r
+   }\r
+\r
+   /* since 1.4\r
+   private void outputSourcePosition(int level, SourcePosition sourcePosition) {\r
+      println(level, "<sourceposition"\r
+             + " file=\""+sourcePosition.file().toString()+"\""\r
+             + " line=\""+sourcePosition.line()+"\""\r
+             + " column=\""+sourceposition.column()+"\""\r
+             + "/>");\r
+   }\r
+   */\r
+\r
+   protected void outputClassDoc(ClassDoc classDoc) \r
+      throws IOException \r
+   {\r
+      super.outputClassDoc(classDoc);\r
+      //outputSourcePosition(level, doc.position());\r
+   }\r
+\r
+   protected void outputFieldDocBody(int level, FieldDoc fieldDoc) {\r
+      super.outputFieldDocBody(level, fieldDoc);\r
+      //println(level, "<constantValueExpression>"+fieldDoc.constantValueExpression()+"</constantValueExpression>");\r
+   }\r
+\r
+}\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java
new file mode 100644 (file)
index 0000000..df9be0a
--- /dev/null
@@ -0,0 +1,674 @@
+/* gnu.classpath.tools.doclets.xmldoclet.HtmlRepairer.java\r
+   Copyright (C) 2003 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.doclets.xmldoclet;\r
+\r
+import java.io.*;\r
+import java.util.*;\r
+import com.sun.javadoc.DocErrorReporter;\r
+import com.sun.javadoc.ClassDoc;\r
+import com.sun.javadoc.MemberDoc;\r
+\r
+/**\r
+ *  Provides methods for tidying up HTML source.\r
+ *\r
+ *  @author Julian Scheid\r
+ */\r
+public final class HtmlRepairer {\r
+\r
+   private static class TagInfo {\r
+\r
+      private Set parentTags = new HashSet();\r
+\r
+      public TagInfo(String parentTag) {\r
+        this.parentTags.add(parentTag);\r
+      }\r
+\r
+      public TagInfo(String[] parentTagArr) {\r
+        for (int i=0; i<parentTagArr.length; ++i) {\r
+           this.parentTags.add(parentTagArr[i]);\r
+        }\r
+      }\r
+\r
+      public boolean isLegalParentTag(String tag) {\r
+        return this.parentTags.contains(tag);\r
+      }\r
+   }\r
+\r
+   private DocErrorReporter warningReporter;\r
+   private boolean noWarn;\r
+   private boolean noEmailWarn;\r
+   private ClassDoc contextClass;\r
+   private MemberDoc contextMember;\r
+   private StringBuffer output = new StringBuffer();\r
+   private Stack tagStack = new Stack();\r
+   private boolean isLeadingTag = true;\r
+   private boolean throwAwayLeadingPara = false;\r
+\r
+   private static Map tagInfoMap;\r
+\r
+   private static Set noTextParentTags;\r
+\r
+   static {\r
+      tagInfoMap = new HashMap();\r
+      tagInfoMap.put("li", new TagInfo(new String[] { "ul", "ol", "nl", "menu", "dir" }));\r
+      tagInfoMap.put("td", new TagInfo(new String[] { "tr" }));\r
+      tagInfoMap.put("th", new TagInfo(new String[] { "tr" }));\r
+      tagInfoMap.put("tr", new TagInfo(new String[] { "table" }));\r
+      tagInfoMap.put("dt", new TagInfo(new String[] { "dl" }));\r
+      tagInfoMap.put("dd", new TagInfo(new String[] { "dl" }));\r
+      tagInfoMap.put("param", new TagInfo(new String[] { "applet" }));\r
+\r
+      String[] noTextParentTagArr = {\r
+         "area", "base", "body", "br", "dd", "dt", "head", "hr", "html", \r
+         "img", "input", "link", "map", "meta", "ol", "optgroup", "param",\r
+         "select", "table", "tbody", "tfoot", "thead", "tr", "ul",\r
+      };\r
+\r
+      noTextParentTags = new HashSet();\r
+      for (int i=0; i<noTextParentTagArr.length; ++i) {\r
+         noTextParentTags.add(noTextParentTagArr[i]);\r
+      }\r
+   }\r
+\r
+   public HtmlRepairer(DocErrorReporter warningReporter, \r
+                      boolean noWarn, boolean noEmailWarn,\r
+                      ClassDoc contextClass, MemberDoc contextMember,\r
+                       boolean throwAwayLeadingPara) {\r
+      this.warningReporter = warningReporter;\r
+      this.noWarn = noWarn;\r
+      this.noEmailWarn = noEmailWarn;\r
+      this.contextClass = contextClass;\r
+      this.contextMember = contextMember;\r
+      this.throwAwayLeadingPara = throwAwayLeadingPara;\r
+   }\r
+  \r
+   private static String replaceStr(String haystack, String needle, String replacement) {\r
+      int ndx=haystack.indexOf(needle);\r
+      if (ndx<0) \r
+        return haystack;\r
+      else \r
+        return haystack.substring(0, ndx)+replacement\r
+           + replaceStr(haystack.substring(ndx+needle.length()), needle, replacement);\r
+   }\r
\r
+   private void haveText(String text) {\r
+\r
+      if (isLeadingTag && throwAwayLeadingPara) {\r
+         if (0 != text.trim().length()) {\r
+            isLeadingTag = false;\r
+         }\r
+      }\r
+\r
+      if (tagStack.isEmpty() || !noTextParentTags.contains(tagStack.peek())) {\r
+\r
+         text = replaceStr(text, "&lt1", "&lt;1");\r
+         text = replaceStr(text, "&&", "&amp;&amp;");\r
+         text = replaceStr(text, "& ", "&amp; ");\r
+         text = replaceStr(text, "&\t", "&amp;\t");\r
+         text = replaceStr(text, "&\r", "&amp;\r");\r
+         text = replaceStr(text, "&\n", "&amp;\n");\r
+         for (char c='0'; c<='9'; ++c)\r
+            text = replaceStr(text, "&"+c, "&amp;"+c);\r
+         text = replaceStr(text, "\u00a7", "&sect;");\r
+         output.append(text);\r
+      }\r
+      else {\r
+         printWarning("Discarded text in <" + tagStack.peek() + "> element");\r
+      }\r
+   }\r
+\r
+   private void haveStartOrEndTag(String tag) {\r
+\r
+      boolean _isLeadingTag = isLeadingTag;\r
+      isLeadingTag = false;\r
+\r
+      tag = tag.trim();\r
+\r
+      boolean isEndTag = tag.startsWith("/");\r
+      boolean isAtomTag = tag.endsWith("/");\r
+\r
+      if (isEndTag && isAtomTag) {\r
+        // got something like '</a/>' which is invalid.\r
+        // suppose a close tag was intended.\r
+        tag = tag.substring(0, tag.length()-1);\r
+      }\r
+\r
+      if (tag.length() < 1) {\r
+         printWarning("Deleting broken tag");\r
+         return;\r
+      }\r
+\r
+      String tagName = tag.substring(isEndTag?1:0, isAtomTag?tag.length()-1:tag.length());\r
+      String tagAttributes = "";\r
+\r
+      for (int i=0; i<tagName.length(); ++i) {\r
+        if (" \t\r\n".indexOf(tagName.charAt(i))>=0) {\r
+           tagAttributes = tagName.substring(i).trim();\r
+           tagName = tagName.substring(0, i);\r
+           break;\r
+        }\r
+      }\r
+\r
+      if (!isEndTag && tagName.indexOf('@')>0) {\r
+        if (!noEmailWarn) {\r
+           printWarning("Tag looks like email address: <"+tagName+">");\r
+        }\r
+        output.append("&lt;"+tag+"&gt;");\r
+        return;\r
+      }\r
+\r
+      tagName = tagName.toLowerCase();\r
+\r
+      if (_isLeadingTag && "p".equals(tagName) && !isEndTag && throwAwayLeadingPara) {\r
+         return;\r
+      }\r
+\r
+      if ("p".equals(tagName) || "br".equals(tagName) || "hr".equals(tagName)) {\r
+        // throw away </p> and </br>\r
+        if (isEndTag) {\r
+           return;\r
+        }\r
+        // make sure every <p> is a <p/> and every <br> is a <br/>\r
+        else if (!isAtomTag) {\r
+           tag += "/";\r
+           isAtomTag = true;\r
+        }\r
+      }\r
+\r
+      if (isEndTag) {\r
+\r
+        // check whether this close tag is on the stack\r
+        // if yes, close all tags up to this tag\r
+        if (tagStack.contains(tagName)) {\r
+           String popped;\r
+           do {\r
+              popped = (String)tagStack.pop();\r
+              if (!popped.equals(tagName)) \r
+                 printWarning("Inserting '</"+popped+">");\r
+              output.append("</"+popped+">");\r
+           }\r
+           while (!popped.equals(tagName));\r
+        }\r
+        // if not, just throw it away\r
+        else {\r
+           printWarning("Deleting <"+tag+">");\r
+        }\r
+      }\r
+      else {\r
+\r
+        final int STATE_INITIAL = 1;\r
+        final int STATE_EXPECT_ATTRIBUTENAME = 2;\r
+        final int STATE_UNQUOTED_ATTRIBUTEVALUE = 3;\r
+        final int STATE_SINGLEQUOTE_ATTRIBUTEVALUE = 4;\r
+        final int STATE_DOUBLEQUOTE_ATTRIBUTEVALUE = 5;\r
+        final int STATE_EXPECT_ATTRIBUTEVALUE = 6;\r
+        final int STATE_EXPECT_EQUALSIGN = 7;\r
+\r
+        int state = STATE_INITIAL;\r
+              \r
+        String newAttributes = "";\r
+        String attributeName = null;\r
+        StringBuffer buf = new StringBuffer();\r
+\r
+        char[] attrsAsChars = tagAttributes.toCharArray();\r
+        for (int i=0, ilim=attrsAsChars.length+1; i<ilim; ++i) {\r
+           int c;\r
+           if (i<attrsAsChars.length)\r
+              c = (int)attrsAsChars[i];\r
+           else\r
+              c = -1;\r
+\r
+           switch (state) {\r
+\r
+           case STATE_INITIAL:\r
+              if (" \t\r\n".indexOf(c)>=0){\r
+                 continue;\r
+              }\r
+              else if (-1==c) {\r
+                 continue;\r
+              }\r
+              else {\r
+                 state = STATE_EXPECT_ATTRIBUTENAME;\r
+                 buf.append((char)c);\r
+              }\r
+              break;\r
+\r
+           case STATE_EXPECT_ATTRIBUTENAME:\r
+              if ('='==c) {\r
+                 attributeName = buf.toString();\r
+                 buf.setLength(0);\r
+                 state = STATE_EXPECT_ATTRIBUTEVALUE;\r
+              }\r
+              else if (-1==c) {\r
+                 attributeName = buf.toString();\r
+                 buf.setLength(0);\r
+                 printWarning("In Tag '"+tag+"':\nAttribute name without a value, inserting value =\""+attributeName+"\"");\r
+              }\r
+              else if (" \t\r\n".indexOf(c)>=0) {\r
+                 state = STATE_EXPECT_EQUALSIGN;\r
+              }\r
+              else {\r
+                 buf.append((char)c);\r
+              }\r
+              break;\r
+\r
+           case STATE_EXPECT_EQUALSIGN:\r
+              if (" \t\r\n".indexOf(c)>=0){\r
+                 continue;\r
+              }\r
+              else if ('='==c) {\r
+                 state = STATE_EXPECT_ATTRIBUTEVALUE;\r
+                 attributeName = buf.toString();\r
+                 buf.setLength(0);\r
+              }\r
+              else {\r
+                 attributeName = buf.toString();\r
+                 buf.setLength(0);\r
+                 printWarning("In Tag '"+tag+"':\nAttribute name without a value, inserting value =\""+attributeName+"\"");\r
+                 newAttributes += " "+attributeName+"=\""+attributeName+"\"";\r
+                 buf.append((char)c);\r
+                 state = STATE_EXPECT_ATTRIBUTENAME;\r
+              }\r
+              break;\r
+\r
+           case STATE_EXPECT_ATTRIBUTEVALUE:\r
+              if (" \t\r\n".indexOf(c)>=0){\r
+                 continue;\r
+              }\r
+              else if ('\"'==c) {\r
+                 state = STATE_DOUBLEQUOTE_ATTRIBUTEVALUE;\r
+              }\r
+              else if ('\''==c) {\r
+                 state = STATE_SINGLEQUOTE_ATTRIBUTEVALUE;\r
+              }\r
+              else {\r
+                 state = STATE_UNQUOTED_ATTRIBUTEVALUE;\r
+                 buf.append((char)c);\r
+              }\r
+              break;\r
+\r
+           case STATE_UNQUOTED_ATTRIBUTEVALUE:\r
+              if (-1==c || " \t\r\n".indexOf(c)>=0){\r
+                 state = STATE_INITIAL;\r
+                 newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";\r
+                 buf.setLength(0);\r
+              }\r
+              else {\r
+                 buf.append((char)c);\r
+              }\r
+              break;\r
+\r
+           case STATE_SINGLEQUOTE_ATTRIBUTEVALUE:\r
+              if ('\''==c) {\r
+                 state = STATE_INITIAL;\r
+                 newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";\r
+                 buf.setLength(0);\r
+              }\r
+              else {\r
+                 buf.append((char)c);\r
+              }\r
+              break;\r
+\r
+           case STATE_DOUBLEQUOTE_ATTRIBUTEVALUE:\r
+              if ('\"'==c) {\r
+                 state = STATE_INITIAL;\r
+                 newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";\r
+                 buf.setLength(0);\r
+              }\r
+              else {\r
+                 buf.append((char)c);\r
+              }\r
+              break;\r
+           }\r
+        }\r
+\r
+\r
+        if (!isAtomTag) {\r
+\r
+           // check whether this open tag is equal to the topmost\r
+           // entry on the stack; if yes, emit a close tag first\r
+           \r
+           // corrects stuff like '<tr><td>...<td>...');\r
+           if (!tagStack.isEmpty() && tagStack.peek().equals(tagName)) {\r
+              printWarning("Inserting </"+tagName+">");\r
+              output.append("</"+tagName+">");\r
+              tagStack.pop();\r
+           }\r
+           else {\r
+              processKnownChildTags(tagName, tagStack, output);\r
+           }\r
+\r
+           // otherwise, we assume there are no close tags required \r
+           // before this open tag.\r
+           tagStack.push(tagName);\r
+\r
+           output.append("<"+tagName+newAttributes+">");\r
+        }\r
+        else {\r
+           output.append("<"+tagName+newAttributes+"/>");\r
+        }\r
+      }\r
+   }\r
+\r
+   private boolean processKnownChildTags(String tagName, Stack tagStack, StringBuffer output) {\r
+\r
+      TagInfo tagInfo = (TagInfo)tagInfoMap.get(tagName);\r
+      if (null != tagInfo) {\r
+\r
+        String parentTag = null;\r
+        for (Enumeration en = tagStack.elements(); en.hasMoreElements(); ) {\r
+           String tag = (String)en.nextElement();\r
+           if (tagInfo.isLegalParentTag(tag)) {\r
+              parentTag = tag;\r
+              break;\r
+           }\r
+        }\r
+        if (parentTag != null) {\r
+           while (((String)tagStack.peek()) != parentTag) {\r
+              String poppedTagName = (String)tagStack.pop();\r
+              output.append("</"+poppedTagName+">");\r
+              printWarning("Inserting </"+poppedTagName+">");\r
+           }\r
+           return true;\r
+        }\r
+      }\r
+      return false;\r
+   }\r
+\r
+   private void flush() {\r
+      \r
+      // close all pending tags\r
+      while (!tagStack.isEmpty()) {\r
+        String tagName = (String)tagStack.pop();\r
+        printWarning("Inserting </"+tagName+">");\r
+        output.append("</"+tagName+">");\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  Takes HTML fragment and returns a well-formed XHTML\r
+    *  equivalent.\r
+    *\r
+    *  In the returned String, all tags are properly closed and\r
+    *  nested.\r
+    *\r
+    *  Currently, the returned String is not guaranteed to be\r
+    *  well-formed. In particular there are no checks on the tag\r
+    *  names, attribute names and entity names.  \r
+    */\r
+   public String getWellformedHTML(String text) {\r
+\r
+      final int        STATE_INITIAL         = 1;\r
+      final int        STATE_TAG_START       = 2;\r
+      final int        STATE_TAG             = 3;\r
+      final int        STATE_TAG_DOUBLEQUOTE = 4;\r
+      final int        STATE_TAG_SINGLEQUOTE = 5;\r
+      final int        STATE_AMP             = 6;\r
+\r
+      int state = STATE_INITIAL;\r
+      output.setLength(0);\r
+\r
+\r
+      StringBuffer buf = new StringBuffer();\r
+      char[] textAsChars = text.toCharArray();\r
+      \r
+   outer_loop:\r
+      for (int i=0, ilim=textAsChars.length+1; i<ilim; ++i) {\r
+        int c;\r
+\r
+        if (i<textAsChars.length) {\r
+           c = textAsChars[i];\r
+        }\r
+        else {\r
+           c = -1;\r
+        }\r
+\r
+        switch (state) {\r
+\r
+        case STATE_INITIAL:\r
+           if ('<'==c) {\r
+              state = STATE_TAG_START;\r
+              if (buf.length()>0) {\r
+                 haveText(buf.toString());\r
+                 buf.setLength(0);\r
+              }\r
+           }\r
+           else if ('>'==c) {\r
+              // assume this is a greater-than sign\r
+              buf.append("&gt;");\r
+           }\r
+           else if ('&'==c) {\r
+              state = STATE_AMP;\r
+           }\r
+           else if (-1==c) {\r
+              if (buf.length()>0) {\r
+                 haveText(buf.toString());\r
+                 buf.setLength(0);\r
+              }\r
+              continue;\r
+           }\r
+           else {\r
+              buf.append((char)c);\r
+           }\r
+           break;\r
+\r
+        case STATE_AMP:\r
+           if ('<'==c) {\r
+              buf.append("&amp;");\r
+              state = STATE_TAG_START;\r
+              if (buf.length()>0) {\r
+                 haveText(buf.toString());\r
+                 buf.setLength(0);\r
+              }\r
+           }\r
+           else if ('>'==c) {\r
+              // assume this is a greater-than sign\r
+              buf.append("&amp;");\r
+              buf.append("&gt;");\r
+              state = STATE_INITIAL;\r
+           }\r
+           else if ('&'==c) {\r
+              buf.append("&amp;");\r
+              buf.append("&amp;");\r
+              state = STATE_INITIAL;\r
+           }\r
+           else if (-1==c) {\r
+              buf.append("&amp;");\r
+              haveText(buf.toString());\r
+              buf.setLength(0);\r
+              state = STATE_INITIAL;\r
+              continue;\r
+           }\r
+            else {\r
+               // peek forward and see whether this is a valid entity.\r
+               if ('#'==c) {\r
+                  buf.append("&");\r
+                  buf.append((char)c);\r
+                  state = STATE_INITIAL;\r
+                  continue outer_loop;\r
+               }\r
+               else if (Character.isLetter((char)c)) {\r
+                  for (int i2=i+1; i2<ilim-1; i2++) {\r
+                     if (';' == textAsChars[i2]) {\r
+                        buf.append("&");\r
+                        buf.append((char)c);\r
+                        state = STATE_INITIAL;\r
+                        continue outer_loop;\r
+                     }\r
+                     else if (!Character.isLetter((char)c)\r
+                              && !Character.isDigit((char)c)\r
+                              && ".-_:".indexOf((char)c) < 0\r
+                              //&& !isCombiningChar(c)  // FIXME\r
+                              //&& !isExtender(c)       // FIXME\r
+                              ) {\r
+                        break;\r
+                     }\r
+                  }\r
+                  // not a valid entity declaration; assume &amp;\r
+               }\r
+               buf.append("&amp;");\r
+               buf.append((char)c);\r
+               state = STATE_INITIAL;                  \r
+            }\r
+\r
+            /*\r
+           else if ('#'==c || Character.isLetter((char)c)) {\r
+              buf.append("&");\r
+              buf.append((char)c);\r
+              state = STATE_INITIAL;\r
+           }\r
+           else {\r
+              buf.append("&amp;");\r
+              buf.append((char)c);\r
+              state = STATE_INITIAL;          \r
+           }\r
+            */\r
+           break;\r
+           \r
+        case STATE_TAG_START:\r
+           if (" \t\r\n".indexOf(c)>=0) {\r
+              //continue;\r
+\r
+              // new: assume this is a less-sign\r
+              haveText("&lt;"+c);\r
+              state = STATE_INITIAL;\r
+           }\r
+           else if ('/'==c) {\r
+              buf.append((char)c);\r
+              state = STATE_TAG;\r
+           }\r
+           else if ('<'==c) {\r
+              // assume this is a less-sign\r
+              haveText("&lt;&lt;");\r
+              state = STATE_INITIAL;          \r
+           }\r
+           else if ('>'==c) {\r
+              // assume this is a less-sign\r
+              haveText("&lt;&gt;");\r
+              state = STATE_INITIAL;          \r
+           }\r
+           //else if ('-'==c || '+'==c || '='==c || '\''==c || "0123456789".indexOf(c)>=0) {\r
+           else if (!Character.isLetter((char)c)) {\r
+              // assume this is a less-sign\r
+              haveText("&lt;"+(char)c);\r
+              state = STATE_INITIAL;\r
+           }\r
+           else {\r
+              buf.append((char)c);\r
+              state = STATE_TAG;\r
+           }\r
+           break;\r
+           \r
+        case STATE_TAG:\r
+           if ('\"'==c) {\r
+              buf.append((char)c);\r
+              state = STATE_TAG_DOUBLEQUOTE;\r
+           }\r
+           else if ('\''==c) {\r
+              buf.append((char)c);\r
+              state = STATE_TAG_SINGLEQUOTE;\r
+           }\r
+           else if ('>'==c) {\r
+              state = STATE_INITIAL;\r
+              haveStartOrEndTag(buf.toString());\r
+              buf.setLength(0);\r
+           }\r
+           else if ('<'==c) {\r
+              // notify user, missing greater-than sign\r
+              haveStartOrEndTag(buf.toString());\r
+              buf.setLength(0);\r
+           }\r
+           else if (-1==c) {\r
+              printWarning("Unclosed tag at end-of-comment: <"+buf);\r
+              haveStartOrEndTag(buf.toString());\r
+              buf.setLength(0);\r
+           }\r
+           else {\r
+              buf.append((char)c);\r
+           }\r
+           break;\r
+\r
+        case STATE_TAG_DOUBLEQUOTE:\r
+           if ('\"'==c) {\r
+              buf.append((char)c);\r
+              state = STATE_TAG;\r
+           }\r
+           else if (-1==c) {\r
+              printWarning("Unclosed attribute value at end-of-comment.");\r
+              haveStartOrEndTag(buf.toString()+"\"");\r
+           }\r
+           else {\r
+              buf.append((char)c);\r
+           }\r
+           break;\r
+\r
+        case STATE_TAG_SINGLEQUOTE:\r
+           if ('\''==c) {\r
+              buf.append((char)c);\r
+              state = STATE_TAG;\r
+           }\r
+           else if (-1==c) {\r
+              printWarning("Unclosed attribute value at end-of-comment.");\r
+              haveStartOrEndTag(buf.toString()+"'");\r
+           }\r
+           else {\r
+              buf.append((char)c);\r
+           }\r
+           break;\r
+        }\r
+      }\r
+\r
+      return output.toString();\r
+   }\r
+\r
+   private String getContext() {\r
+      if (null != contextClass) {\r
+         StringBuffer rc = new StringBuffer();\r
+         rc.append(contextClass.qualifiedTypeName());\r
+         if (null != contextMember) {\r
+            rc.append("."+contextMember.toString());\r
+         }\r
+         return rc.toString();\r
+      }\r
+      else {\r
+         return null;\r
+      }\r
+   }\r
+\r
+   private void printWarning(String msg) {\r
+      if (null != warningReporter && !noWarn) {\r
+         String context = getContext();\r
+         if (null != context) {\r
+            warningReporter.printWarning("In "+getContext()+": "+msg);\r
+         }\r
+         else {\r
+            warningReporter.printWarning("In overview page: "+msg);\r
+         }\r
+      }\r
+   }\r
+\r
+   public String terminateText() {\r
+      output.setLength(0);\r
+      flush();\r
+      return output.toString();\r
+   }\r
+}\r
+\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java
new file mode 100644 (file)
index 0000000..72dd9f6
--- /dev/null
@@ -0,0 +1,86 @@
+/* gnu.classpath.tools.doclets.xmldoclet.TargetContext\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.doclets.xmldoclet;\r
+\r
+import java.io.File;\r
+import java.io.InputStream;\r
+import java.io.OutputStream;\r
+import java.io.FileInputStream;\r
+import java.io.FileOutputStream;\r
+import java.io.IOException;\r
+\r
+import java.net.URL;\r
+\r
+import java.util.List;\r
+import java.util.Iterator;\r
+import java.util.Map;\r
+import java.util.HashMap;\r
+\r
+import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet;\r
+\r
+/**\r
+ *  Stores any XSL transformation and postprocessing-specific\r
+ *  information given by the user on the doclet command line.\r
+ *\r
+ *  @author Julian Scheid\r
+ */\r
+public class TargetContext {\r
+\r
+   /**\r
+    *  The DocTranslet to use for processing doclet output.\r
+    */\r
+   private DocTranslet docTranslet;\r
+\r
+   /**\r
+    *  Directory to write final output to.\r
+    */\r
+   private File targetDirectory;\r
+\r
+   /**\r
+    *  Directory where XSLT output will be written to. If an XSLT\r
+    *  sheet was specified, but no postprocessing driver was given,\r
+    *  this is the target directory specified by the user. Otherwise,\r
+    *  this is a temporary directory.\r
+    */\r
+   private File xsltTargetDirectory;\r
+\r
+\r
+   public TargetContext(DocTranslet docTranslet, File targetDirectory) {\r
+      this.docTranslet = docTranslet;\r
+      this.targetDirectory = targetDirectory;\r
+   }\r
+\r
+   public File getTargetDirectory() {\r
+      return targetDirectory;\r
+   }\r
+\r
+   public void setTargetDirectory(File targetDirectory) {\r
+      this.targetDirectory = targetDirectory;\r
+   }\r
+\r
+   public DocTranslet getDocTranslet() {\r
+      return docTranslet;\r
+   }\r
+\r
+   public void setDocTranslet(DocTranslet docTranslet) {\r
+      this.docTranslet = docTranslet;\r
+   }\r
+}\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java
new file mode 100644 (file)
index 0000000..573ca36
--- /dev/null
@@ -0,0 +1,443 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
+
+import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+import java.util.jar.Attributes;
+
+import javax.xml.transform.ErrorListener;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerFactoryConfigurationError;
+import javax.xml.transform.URIResolver;
+
+import javax.xml.transform.dom.DOMResult;
+
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import org.xml.sax.SAXException;
+
+import gnu.classpath.tools.IOToolkit;
+import gnu.classpath.tools.doclets.xmldoclet.Driver;
+
+import com.sun.javadoc.DocErrorReporter;
+
+public class DocTranslet implements ErrorListener {
+
+   private static class DocErrorReporterOutputStream
+      extends OutputStream
+   {
+      private ByteArrayOutputStream out = new ByteArrayOutputStream();
+      private DocErrorReporter reporter;
+
+      public DocErrorReporterOutputStream(DocErrorReporter reporter) {
+         this.reporter = reporter;
+      }
+
+      public void write(int ch) {
+         out.write(ch);
+         if (ch == 10) {
+            reporter.printNotice(out.toString());
+            out.reset();
+         }
+      }
+   }
+
+   private String mainResourceFilename;
+   private ClassLoader classLoader;
+   private Map transformerMap = new java.util.HashMap(); //WeakHashMap();
+   private DocTransletOptions options;
+   
+   protected DocTranslet(String mainResourceFilename,
+                         ClassLoader classLoader)
+      throws DocTransletConfigurationException {
+
+      if (mainResourceFilename.length() > 0 && mainResourceFilename.charAt(0) == '/') {
+         mainResourceFilename = mainResourceFilename.substring(1);
+      }
+      this.mainResourceFilename = mainResourceFilename;
+      this.classLoader = classLoader;
+   }
+
+   private static boolean equalsFile(File file1, File file2) {
+      return file1.getAbsolutePath().equals(file2.getAbsolutePath());
+   }
+
+   private static File getParentFile(File file) {
+      String filename = file.getAbsolutePath();
+      if (filename.endsWith(File.separator)) {
+         filename = filename.substring(0, filename.length() - 1);
+      }
+      int lastSlash = filename.lastIndexOf(File.separatorChar);
+      if (lastSlash > 0) {
+         filename = filename.substring(0, lastSlash);
+      }
+      else {
+         filename = File.separator;
+      }
+
+      return new File(filename);
+   }
+
+   private static boolean cacheXSLTSheets = true;
+
+   public void apply(File xmlSourceDirectory, File targetDirectory,
+                     DocErrorReporter reporter)
+      throws DocTransletException {
+
+      PrintStream err = System.err;
+
+      try{
+         URL mainResourceURL = classLoader == null ?
+            ClassLoader.getSystemResource(mainResourceFilename):
+            classLoader.getResource(mainResourceFilename);
+
+         if (null == mainResourceURL) {
+            throw new DocTransletException("Cannot find resource '" + mainResourceFilename + "'");
+         }
+
+         
+         Map parameters = new HashMap();
+         parameters.put("gjdoc.xmldoclet.version", Driver.XMLDOCLET_VERSION);
+
+         parameters.put("gjdoc.option.nonavbar", xsltBoolean(options.nonavbar));
+         parameters.put("gjdoc.option.noindex", xsltBoolean(options.noindex));
+         parameters.put("gjdoc.option.notree", xsltBoolean(options.notree));
+         parameters.put("gjdoc.option.nocomment", xsltBoolean(options.nocomment));
+         parameters.put("gjdoc.option.nohelp", xsltBoolean(options.nohelp));
+         parameters.put("gjdoc.option.splitindex", xsltBoolean(options.splitindex));
+         parameters.put("gjdoc.option.linksource", xsltBoolean(options.linksource));
+         parameters.put("gjdoc.option.nodeprecatedlist", xsltBoolean(options.nodeprecatedlist));
+         parameters.put("gjdoc.option.uses", xsltBoolean(options.uses));
+         parameters.put("gjdoc.option.windowtitle", options.windowtitle);
+         parameters.put("gjdoc.option.helpfile", options.helpfile);
+         parameters.put("gjdoc.option.stylesheetfile", options.stylesheetfile);
+         parameters.put("gjdoc.option.header", options.header);
+         parameters.put("gjdoc.option.footer", options.footer);
+         parameters.put("gjdoc.option.bottom", options.bottom);
+         parameters.put("gjdoc.option.doctitle", options.doctitle);
+
+         List outputFileList = getOutputFileList(mainResourceURL,
+                                                 xmlSourceDirectory,
+                                                 parameters);
+
+         reporter.printNotice("Running DocTranslet...");
+            
+         TransformerFactory transformerFactory 
+            = TransformerFactory.newInstance();
+
+         transformerFactory.setErrorListener(this);
+
+         boolean isLibxmlJ 
+            = transformerFactory.getClass().getName().equals("gnu.xml.libxmlj.transform.TransformerFactoryImpl");
+
+         for (Iterator it = outputFileList.iterator(); it.hasNext(); ) {
+
+            if (isLibxmlJ) {
+               System.gc();
+               Runtime.getRuntime().runFinalization();
+            }
+
+            OutputFileInfo fileInfo = (OutputFileInfo)it.next();
+
+            File targetFile = new File(targetDirectory, fileInfo.getName());
+            File packageTargetDir = getParentFile(targetFile);
+
+            if (!packageTargetDir.exists() && !packageTargetDir.mkdirs()) {
+               throw new DocTransletException("Target directory " + packageTargetDir + " does not exist and cannot be created.");
+            }
+
+            if (options.linksource) {
+               File sourceTargetDirectory = new File(targetDirectory, "src-html");
+               File sourceTargetFile = new File(sourceTargetDirectory, fileInfo.getName());
+               File sourcePackageTargetDir = getParentFile(sourceTargetFile);
+
+               if (!sourcePackageTargetDir.exists() && !sourcePackageTargetDir.mkdirs()) {
+                  throw new DocTransletException("Target directory " + packageTargetDir + " does not exist and cannot be created.");
+               }
+            }
+
+            if (options.uses) {
+               File usesTargetDirectory = new File(targetDirectory, "class-use");
+               File usesTargetFile = new File(usesTargetDirectory, fileInfo.getName());
+               File usesPackageTargetDir = getParentFile(usesTargetFile);
+
+               if (!usesPackageTargetDir.exists() && !usesPackageTargetDir.mkdirs()) {
+                  throw new DocTransletException("Target directory " + packageTargetDir + " does not exist and cannot be created.");
+               }
+            }
+
+            if (null != fileInfo.getSource()) {
+            
+               reporter.printNotice("Copying " + fileInfo.getComment() + "...");
+               InputStream in = new URL(mainResourceURL, fileInfo.getSource()).openStream();
+               FileOutputStream out = new FileOutputStream(targetFile.getAbsolutePath());
+               IOToolkit.copyStream(in, out);
+               in.close();
+               out.close();
+            }
+            else {
+            
+               reporter.printNotice("Generating " + fileInfo.getComment() + "...");
+
+               String pathToRoot = "";
+               for (File file = getParentFile(targetFile); !equalsFile(file, targetDirectory); file = getParentFile(file)) {
+                  pathToRoot += "../";
+               }
+            
+               StreamResult out = new StreamResult(targetFile.getAbsolutePath());
+
+               StreamSource in = new StreamSource(new File(xmlSourceDirectory, "index.xml").getAbsolutePath());
+               URL resource = new URL(mainResourceURL, fileInfo.getSheet());
+
+
+               StreamSource xsltSource = new StreamSource(resource.toExternalForm());
+
+               if (null != fileInfo.getInfo()) {
+                  parameters.put("gjdoc.outputfile.info", fileInfo.getInfo());
+               }
+               parameters.put("gjdoc.pathtoroot", pathToRoot);
+
+               Transformer transformer;
+               transformer = (Transformer)transformerMap.get(xsltSource.getSystemId());
+               if (null == transformer) {
+                  transformer = transformerFactory.newTransformer(xsltSource);
+                  if (cacheXSLTSheets) {
+                     transformerMap.put(xsltSource.getSystemId(), transformer);
+                  }
+               }
+
+               transformer.clearParameters();
+               for (Iterator pit = parameters.keySet().iterator(); pit.hasNext(); ) {
+                  String key = (String)pit.next();
+                  String value = (String)parameters.get(key);
+                  transformer.setParameter(key, value);
+               }
+
+               transformer.setErrorListener(this);
+               DocErrorReporterOutputStream errorReporterOut
+                  = new DocErrorReporterOutputStream(reporter);
+               System.setErr(new PrintStream(errorReporterOut));
+
+               transformer.transform(in, out);
+               errorReporterOut.flush();
+            }
+         }
+      }
+      catch (MalformedURLException e) {
+        throw new DocTransletException(e);
+      }
+      catch (TransformerFactoryConfigurationError e) {
+        throw new DocTransletException(e);
+      }
+      catch (TransformerException e) {
+        throw new DocTransletException(e.getMessageAndLocation(), e);
+      }
+      catch (IOException e) {
+        throw new DocTransletException(e);
+      }
+      finally {
+         System.setErr(err);
+      }
+   }
+
+   private List getOutputFileList(URL resource, File xmlSourceDirectory, Map parameters) 
+      throws DocTransletException {
+
+      try {
+        List result;
+
+        OutputStream out = new ByteArrayOutputStream();
+
+         DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+         DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
+         Document document = documentBuilder.newDocument();
+         DOMResult domResult = new DOMResult(document);         
+         {
+            StreamSource source = new StreamSource(resource.toExternalForm());
+            
+            TransformerFactory transformerFactory = TransformerFactory.newInstance();
+            Transformer transformer = (Transformer)transformerFactory.newTransformer(source);
+            
+            transformer.clearParameters();
+            for (Iterator pit = parameters.keySet().iterator(); pit.hasNext(); ) {
+               String key = (String)pit.next();
+               String value = (String)parameters.get(key);
+               transformer.setParameter(key, value);
+            }
+            
+            transformer.transform(new StreamSource(new File(xmlSourceDirectory, 
+                                                            "index.xml").getAbsolutePath()), 
+                                  domResult);
+         }
+
+         {      
+            NodeList nodeList = document.getElementsByTagName("outputfile");
+            result = new ArrayList(nodeList.getLength());
+
+            for (int i=0; i<nodeList.getLength(); ++i) {
+               Element elem = (Element)nodeList.item(i);
+               String name    = getTextContent(elem.getElementsByTagName("name").item(0));
+               String source  
+                  = (null != elem.getElementsByTagName("source").item(0))
+                  ? getTextContent(elem.getElementsByTagName("source").item(0))
+                  : null;
+               String sheet
+                  = (null != elem.getElementsByTagName("sheet").item(0))
+                  ? getTextContent(elem.getElementsByTagName("sheet").item(0))
+                  : null;
+               String comment = getTextContent(elem.getElementsByTagName("comment").item(0));
+               String info    = null;
+               if (elem.getElementsByTagName("info").getLength() > 0) {
+                  if (null != elem.getElementsByTagName("info").item(0).getFirstChild()) {
+                     info = getTextContent(elem.getElementsByTagName("info").item(0));
+                  }
+                  else {
+                     info = "";
+                  }
+               }
+               result.add(new OutputFileInfo(name, source, sheet, comment, info));
+            }
+         }
+         return result;
+      }
+      catch (TransformerFactoryConfigurationError e) {
+        throw new DocTransletException(e);
+      }
+      catch (TransformerException e) {
+        throw new DocTransletException(e.getMessageAndLocation(), e);
+      }
+      catch (ParserConfigurationException e) {
+        throw new DocTransletException(e);
+      }
+   }
+
+   private String getTextContent(Node elem)
+   {
+      StringBuffer result = new StringBuffer();
+      NodeList children = elem.getChildNodes();
+      for (int i=0; i<children.getLength(); ++i) {
+         Node item = children.item(i);
+         if (null != item) {
+            String value = item.getNodeValue();
+            if (null != value) {
+               result.append(value);
+            }
+         }
+      }
+      return result.toString();
+   }
+
+   public void setOptions(DocTransletOptions options) {
+      this.options = options;
+   }
+
+
+   public static DocTranslet fromClasspath(String resourceName) 
+      throws DocTransletConfigurationException {
+
+      return new DocTranslet(resourceName, 
+                             DocTranslet.class.getClassLoader());
+   }
+
+   public static DocTranslet fromJarFile(File jarFile) 
+      throws DocTransletConfigurationException {
+
+      try {
+         JarFile inputJarFile = new JarFile(jarFile, false, JarFile.OPEN_READ);
+      
+         Manifest manifest = inputJarFile.getManifest();
+         
+         if (null == manifest) {
+         
+            throw new DocTransletConfigurationException("Jar file '" + jarFile + "' doesn't contain a manifest.");
+         }
+         
+         Attributes mainAttributes = manifest.getMainAttributes();
+      
+         String docTransletMainEntry = mainAttributes.getValue("doctranslet-main-entry");
+
+         if (null == docTransletMainEntry) {
+            
+            throw new DocTransletConfigurationException("Manifest in Jar file '" + jarFile + "' doesn't contain a doctranslet-main-entry specification.");
+         }
+         
+         return new DocTranslet(docTransletMainEntry, 
+                                new JarClassLoader(inputJarFile));
+      }
+      catch (IOException e) {
+         throw new DocTransletConfigurationException(e);
+      }
+   }
+
+   private static String xsltBoolean(boolean b) {
+      return b ? "1" : "";
+   }
+
+  public void error (TransformerException exception)
+    throws TransformerException {
+
+     throw exception;
+  }
+
+  public void fatalError (TransformerException exception)
+    throws TransformerException {
+
+     throw exception;
+  }
+
+  public void warning (TransformerException exception)
+    throws TransformerException {
+
+     System.err.println("WWW: " + exception.getMessage());
+  }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java
new file mode 100644 (file)
index 0000000..b25d77e
--- /dev/null
@@ -0,0 +1,36 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletConfigurationException
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
+
+public class DocTransletConfigurationException extends Exception {
+
+   public DocTransletConfigurationException(String msg) {
+      super(msg);
+   }
+
+   public DocTransletConfigurationException(String msg, Throwable cause) {
+      super(msg, cause);
+   }
+
+   public DocTransletConfigurationException(Throwable cause) {
+      super(cause);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java
new file mode 100644 (file)
index 0000000..e672c62
--- /dev/null
@@ -0,0 +1,46 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletException
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
+
+public class DocTransletException extends Exception {
+
+   public DocTransletException(String msg) {
+      super(msg);
+   }
+
+   private void initCauseDynamic(Throwable cause)
+   {
+      try {
+         getClass().getMethod("initCause", new Class[]{Throwable.class}).invoke(this, new Object[] { cause });
+      }
+      catch (Exception ignore) {
+      }
+   }
+
+   public DocTransletException(String msg, Throwable cause) {
+      super(msg);
+      initCauseDynamic(cause);
+   }
+
+   public DocTransletException(Throwable cause) {
+      initCauseDynamic(cause);
+  }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java
new file mode 100644 (file)
index 0000000..0c68130
--- /dev/null
@@ -0,0 +1,45 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletOptions
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
+
+/**
+ *  Value class for carrying command line options which need to be
+ *  passed through to the stylesheets.
+ */
+public class DocTransletOptions
+{
+   public boolean nonavbar;
+   public boolean noindex;
+   public boolean notree;
+   public boolean nocomment;
+   public boolean nohelp;
+   public boolean splitindex;
+   public boolean linksource;
+   public boolean nodeprecatedlist;
+   public boolean uses;
+   public String  windowtitle = "";
+   public String  helpfile = "";
+   public String  stylesheetfile = "";
+   public String  header = "";
+   public String  footer = "";
+   public String  bottom = "";
+   public String  doctitle = "";
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java
new file mode 100644 (file)
index 0000000..50a9681
--- /dev/null
@@ -0,0 +1,74 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.JarClassLoader
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.jar.JarFile;
+import java.util.jar.JarEntry;
+
+public class JarClassLoader extends ClassLoader {
+
+   private JarFile jarFile;
+
+   public JarClassLoader(JarFile jarFile) {
+      this.jarFile = jarFile;
+   }
+
+   public Class findClass(String name)
+      throws ClassNotFoundException {
+
+      byte[] b = loadClassData(name);
+      return defineClass(name, b, 0, b.length);
+   }
+
+   private byte[] loadClassData(String className) 
+      throws ClassNotFoundException 
+   {
+      String classFileName = className.replace('.', File.separatorChar) + ".class";
+
+      try {
+         JarEntry jarEntry = jarFile.getJarEntry(classFileName);
+         if (null != jarEntry) {
+            return readFromStream(jarFile.getInputStream(jarEntry), 
+                                  jarEntry.getSize());
+         }
+      }
+      catch (IOException ignore_) {
+      }
+      throw new ClassNotFoundException(className);
+   }      
+
+   private byte[] readFromStream(InputStream in, long size) 
+      throws IOException
+   {
+      byte[] result = new byte[(int)size];
+      int nread = 0;
+      int offset = 0;
+      while (offset < size && (nread = in.read(result, offset, (int)(size - offset))) >= 0) {
+         offset += nread;
+      }
+      in.close();
+      return result;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java
new file mode 100644 (file)
index 0000000..92a1fba
--- /dev/null
@@ -0,0 +1,49 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.OutputFileInfo\r
+   Copyright (C) 2003 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;\r
+\r
+/**\r
+ *  Holds information about a file to be generated by the DocTranslet.\r
+ */\r
+public class OutputFileInfo {\r
+\r
+   private String name;\r
+   private String source;\r
+   private String sheet;\r
+   private String comment;\r
+   private String info;\r
+\r
+   public OutputFileInfo(String name, String source, String sheet, String comment, String info) {\r
+      this.name = name;\r
+      this.source = source;\r
+      this.sheet = sheet;\r
+      this.comment = comment;\r
+      this.info = info;\r
+   }\r
+\r
+   public String getName() { return name; }\r
+   public String getSource() { return source; }\r
+   public String getSheet() { return sheet; }\r
+   public String getComment() { return comment; }\r
+   public String getInfo() { return info; }\r
+\r
+   public String toString() { return "OutputFileInfo{name="+name+",source="+source+",sheet="+sheet+",comment="+comment+",info="+info+"}"; }\r
+}\r
index b142836a5dcc10fd4e26d0e6b3bc41c4cbfa5536..bb38e82acc488af545444a675d2ad343754fa890 100644 (file)
@@ -1,5 +1,5 @@
 /* Parser.java - parse command line options
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2008 Free Software Foundation, Inc.
 
  This file is part of GNU Classpath.
 
@@ -66,7 +66,9 @@ public class Parser
 
   private boolean longOnly;
 
-  private ArrayList options = new ArrayList();
+  // All of the options.  This is null initially; users must call
+  // requireOptions before access.
+  private ArrayList options;
 
   private ArrayList optionGroups = new ArrayList();
 
@@ -195,7 +197,7 @@ public class Parser
    * 
    * @param headerText the header text
    */
-  public void setHeader(String headerText)
+  public synchronized void setHeader(String headerText)
   {
     this.headerText = headerText;
   }
@@ -205,7 +207,7 @@ public class Parser
    * 
    * @param footerText the footer text
    */
-  public void setFooter(String footerText)
+  public synchronized void setFooter(String footerText)
   {
     this.footerText = footerText;
   }
@@ -218,7 +220,6 @@ public class Parser
    */
   public synchronized void add(Option opt)
   {
-    options.add(opt);
     defaultGroup.add(opt);
   }
 
@@ -230,7 +231,6 @@ public class Parser
    */
   protected synchronized void addFinal(Option opt)
   {
-    options.add(opt);
     finalGroup.add(opt);
   }
 
@@ -242,7 +242,6 @@ public class Parser
    */
   public synchronized void add(OptionGroup group)
   {
-    options.addAll(group.options);
     // This ensures that the final group always appears at the end
     // of the options.
     if (optionGroups.isEmpty())
@@ -251,13 +250,29 @@ public class Parser
       optionGroups.add(optionGroups.size() - 1, group);
   }
 
+  // Make sure the 'options' field is properly initialized.
+  private void requireOptions()
+  {
+    if (options != null)
+      return;
+    options = new ArrayList();
+    Iterator it = optionGroups.iterator();
+    while (it.hasNext())
+      {
+       OptionGroup group = (OptionGroup) it.next();
+       options.addAll(group.options);
+      }
+  }
+
   public void printHelp()
   {
     this.printHelp(System.out);
   }
 
-  void printHelp(PrintStream out)
+  synchronized void printHelp(PrintStream out)
   {
+    requireOptions();
+
     if (headerText != null)
       {
         formatText(out, headerText);
@@ -417,6 +432,7 @@ public class Parser
    */
   public synchronized void parse(String[] inArgs, FileArgumentCallback files)
   {
+    requireOptions();
     try
       {
         args = inArgs;
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java
new file mode 100644 (file)
index 0000000..4a638e2
--- /dev/null
@@ -0,0 +1,90 @@
+/* gnu.classpath.tools.gjdoc.AbstractTagImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+
+public abstract class AbstractTagImpl 
+   implements Tag, TagContainer {
+   
+   private static final Tag[] emptyTags = new Tag[0];
+
+   protected String text;
+   protected Map tagMap;
+
+   protected AbstractTagImpl(String text) {
+      this.text=text;
+   }
+
+   public void resolve() {
+      Tag[] allTags=inlineTags();
+      if (null != allTags) {
+         for (int i=0; i<allTags.length; ++i) {
+            if (allTags[i]!=this) ((AbstractTagImpl)allTags[i]).resolve();
+         }
+      }
+      else {
+         System.err.println("Null tags for " + this);
+      }
+   }
+
+   protected void setBody(String body, ClassDocImpl contextClass, MemberDocImpl contextMember) {
+      this.tagMap=DocImpl.parseCommentTags(body.toCharArray(),
+                                          0,
+                                          body.length(),
+                                          contextClass,
+                                           contextMember,
+                                           this,
+                                           null);
+   }
+
+   public Tag[] firstSentenceTags() { 
+      return (tagMap!=null)? (Tag[])tagMap.get("first") : emptyTags; 
+   }
+   public Tag[] inlineTags() { 
+      return (tagMap!=null)? (Tag[])tagMap.get("inline") : emptyTags; 
+   }
+
+   public String name() {
+      return kind();
+   }
+
+   public String text() {
+      return text;
+   }
+
+   public Map getTagMap() { 
+      return tagMap; 
+   }
+
+   /**
+    * Debug string containing class, name, text and tagMap.
+    */
+   public String toString()
+   {
+     return (this.getClass().getName()
+            + "[name=" + name()
+            + ", text=" + text()
+            + ", tagMap=" + getTagMap()
+            + "]");
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java
new file mode 100644 (file)
index 0000000..8c23e98
--- /dev/null
@@ -0,0 +1,104 @@
+/* gnu.classpath.tools.gjdoc.ArrayCharacterIterator
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.text.CharacterIterator;
+
+public final class ArrayCharacterIterator implements CharacterIterator {
+
+   private char[] data;
+   private int beginIndex;
+   private int endIndex;
+   private int currentIndex;
+
+   public ArrayCharacterIterator(char[] data,
+                                int beginIndex) {
+      this(data,beginIndex,data.length,beginIndex);
+   }
+
+   public ArrayCharacterIterator(char[] data,
+                                int beginIndex,
+                                int endIndex) {
+      this(data,beginIndex,endIndex,beginIndex);
+   }
+
+   public ArrayCharacterIterator(char[] data,
+                                int beginIndex,
+                                int endIndex,
+                                int currentIndex) {
+      this.data=data;
+      this.beginIndex=beginIndex;
+      this.endIndex=endIndex;
+      this.currentIndex=currentIndex;
+   }
+
+   // Create a copy of this iterator 
+   public Object clone() {
+      return new ArrayCharacterIterator(data,beginIndex,endIndex,currentIndex);
+   }
+
+   // Gets the character at the current position (as returned by getIndex()). 
+   public char current() {
+      return (currentIndex>=beginIndex && currentIndex<endIndex) ? data[currentIndex] : DONE;
+   }
+
+   // Sets the position to getBeginIndex() and returns the character at that position. 
+   public char first() {
+      return data[currentIndex=beginIndex];
+   }
+
+   // Returns the start index of the text. 
+   public int getBeginIndex() {
+      return beginIndex;
+   }
+
+   // Returns the end index of the text. 
+   public int getEndIndex() {
+      return endIndex;
+   }
+
+   // Returns the current index. 
+   public int getIndex() {
+      return currentIndex;
+   }
+
+   // Sets the position to getEndIndex()-1 (getEndIndex() if the text is empty) and returns the character at that position. 
+   public char last() {
+      return data[currentIndex=((endIndex>beginIndex)?endIndex-1:endIndex)];
+   }
+
+   // Increments the iterator's index by one and returns the character at the new index. 
+   public char next() {
+      return (++currentIndex<endIndex)?data[currentIndex]:DONE;
+   }
+
+   // Decrements the iterator's index by one and returns the character at the new index. 
+   public char previous() {
+      return (--currentIndex>=beginIndex)?data[currentIndex]:DONE;
+   }
+
+   // Sets the position to the specified position in the text and returns that character. 
+   public char setIndex(int position) {
+      this.currentIndex=position;
+      return current();
+   }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java
new file mode 100644 (file)
index 0000000..fee6800
--- /dev/null
@@ -0,0 +1,1244 @@
+/* gnu.classpath.tools.gjdoc.ClassDocImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.io.*;
+import gnu.classpath.tools.gjdoc.expr.EvaluatorEnvironment;
+import gnu.classpath.tools.gjdoc.expr.CircularExpressionException;
+import gnu.classpath.tools.gjdoc.expr.IllegalExpressionException;
+import gnu.classpath.tools.gjdoc.expr.UnknownIdentifierException;
+
+public class ClassDocImpl
+   extends ProgramElementDocImpl 
+   implements ClassDoc, WritableType, EvaluatorEnvironment {
+
+   private ClassDoc baseClassDoc;
+   private ClassDoc[] importedClasses;
+   private PackageDoc[] importedPackages;
+   private boolean definesSerializableFields;
+   private FieldDoc[] serialPersistentField;
+   private MethodDoc[] serializationMethods;
+   private String dimension = "";
+
+   public ClassDocImpl(ClassDoc containingClass,
+                      PackageDoc containingPackage,
+                      int accessLevel,
+                      boolean isFinal,
+                      boolean isStatic,
+                       SourcePosition position) {
+      super(containingClass, containingPackage, accessLevel, isFinal, isStatic,
+            position);
+      this.baseClassDoc = this;
+   }
+
+   public ClassDocImpl(ClassDoc containingClass,
+                      PackageDoc containingPackage,
+                      ClassDoc[] importedClasses,
+                      PackageDoc[] importedPackages,
+                       SourcePosition position) {
+      super(containingClass, containingPackage,
+            position);
+      this.importedClasses=importedClasses;
+      this.importedPackages=importedPackages;
+      this.baseClassDoc = this;
+   }   
+
+   // Return constructors in class. 
+   public ConstructorDoc[] constructors() {
+      return constructors(true);
+   } 
+
+   public ConstructorDoc[] constructors(boolean filter) {
+      return filter ? filteredConstructors : unfilteredConstructors;
+   } 
+
+   // Return true if Serializable fields are explicitly defined with the special class member serialPersistentFields. 
+   public boolean definesSerializableFields() {
+      return definesSerializableFields;
+   } 
+
+   // Return fields in class. 
+   public FieldDoc[] fields() {
+      return fields(true);
+   } 
+
+   public FieldDoc[] fields(boolean filter) {
+      return filter ? filteredFields : unfilteredFields;
+   } 
+
+   private static Set primitiveNames;
+   static {
+      primitiveNames = new HashSet();
+      primitiveNames.add("int");
+      primitiveNames.add("long");
+      primitiveNames.add("char");
+      primitiveNames.add("short");
+      primitiveNames.add("byte");
+      primitiveNames.add("float");
+      primitiveNames.add("double");
+      primitiveNames.add("boolean");
+   }
+
+   private Map findClassCache = new HashMap();
+
+   public ClassDoc findClass(String className, String dimension)
+   {
+      ClassDoc cached = (ClassDoc)findClassCache.get(className + dimension);
+      if (null != cached) {
+         return cached;
+      }
+      else {
+         ClassDoc classDoc = findClass(className);
+
+         if (null!=classDoc) {
+            try {
+               if (classDoc.dimension().equals(dimension)) {
+                  return classDoc;
+               }
+               else {
+                  ClassDoc rc = (ClassDoc) ((WritableType)classDoc).clone();
+                  ((WritableType)rc).setDimension(dimension);
+                  findClassCache.put(className + dimension, rc);
+                  return rc;
+               }
+            }
+            catch (CloneNotSupportedException e) {
+               throw new RuntimeException(e);
+            }
+         }
+         else {
+            return null;
+         }
+      }
+   }
+
+   public ClassDoc findClass(String className) 
+   {
+      String qualifiedName = Main.getRootDoc().resolveClassName(className, this);
+      ClassDoc rc=Main.getRootDoc().classNamed(qualifiedName);
+
+      if (null == rc) { 
+         for (ClassDoc cdi=this; cdi!=null; cdi=cdi.containingClass()) {
+            for (ClassDoc sdi=cdi; sdi!=null; sdi=sdi.superclass()) {
+               if (sdi instanceof ClassDocProxy) { 
+                  ClassDoc realClass = Main.getRootDoc().classNamed(sdi.qualifiedName());
+                  if (null != realClass) {
+                     sdi = realClass;
+                  }
+               }
+               rc=Main.getRootDoc().classNamed(sdi.qualifiedName()+"."+className);
+               if (rc!=null) return rc;
+            }
+         }
+      }
+
+      return rc;
+   }
+
+   // Get the list of classes declared as imported. 
+   public ClassDoc[] importedClasses() {
+      return importedClasses;
+   } 
+
+   // Get the list of packages declared as imported. 
+   public PackageDoc[] importedPackages() {
+      return importedPackages;
+   } 
+
+   // Return inner classes within this class. 
+   public ClassDoc[] innerClasses() {
+      return innerClasses(true);
+   } 
+
+   public ClassDoc[] innerClasses(boolean filtered) {
+      return filtered ? filteredInnerClasses : unfilteredInnerClasses;
+   } 
+
+   void setFilteredInnerClasses(ClassDoc[] filteredInnerClasses) {
+      this.filteredInnerClasses=filteredInnerClasses;
+   }
+
+   void setInnerClasses(ClassDoc[] unfilteredInnerClasses) {
+      this.unfilteredInnerClasses=unfilteredInnerClasses;
+   }
+
+   // Return interfaces implemented by this class or interfaces extended by this interface. 
+   public ClassDoc[] interfaces() {
+      return interfaces;
+   } 
+
+   public void setInterfaces(ClassDoc[] interfaces) {
+      this.interfaces=interfaces;
+   } 
+
+   // Return true if this class is abstract 
+   public boolean isAbstract() {
+      return isAbstract || isInterface();
+   } 
+
+   public boolean isInterface() {
+      return isInterface;
+   }
+
+   public boolean isAnnotation() {
+      return isAnnotation;
+   }
+
+  public boolean isEnum()
+  {
+    return isEnum;
+  }
+
+   // Return true if this class is abstract 
+   public void setIsAbstract(boolean b) {
+      this.isAbstract=b;
+   } 
+
+   // Return true if this class implements java.io.Externalizable. 
+   public boolean isExternalizable() {
+      return implementsInterface("java.io.Externalizable");
+   } 
+
+   // Return true if this class implements java.io.Serializable. 
+   public boolean isSerializable() {
+      return implementsInterface("java.io.Serializable");
+   } 
+
+   public boolean implementsInterface(String name) {
+      for (ClassDoc cdi=this; cdi!=null; cdi=(ClassDoc)cdi.superclass()) {
+        if (cdi instanceof ClassDocImpl) {
+           ClassDoc[] cdiInterfaces=(ClassDoc[])cdi.interfaces();
+            if (null != cdiInterfaces) {
+               for (int i=0; i<cdiInterfaces.length; ++i) {
+                  if (cdiInterfaces[i].qualifiedName().equals(name))
+                     return true;
+               }
+            }
+        }
+        else {
+           //throw new RuntimeException("implementsInterface(\""+name+"\") failed: Not a ClassDocImpl:"+cdi);
+        }
+      }
+      return false;
+   }
+
+   // Return methods in class. 
+   public MethodDoc[] methods() {
+      return methods(true);
+   } 
+
+   // Return methods in class. 
+   public MethodDoc[] methods(boolean filter) {
+      return filter ? filteredMethods : unfilteredMethods;
+   } 
+
+   // Return the Serializable fields of class. Return either a list of default fields documented by serial tag or return a single FieldDoc for serialPersistentField member. 
+   public FieldDoc[] serializableFields() {
+      if (serialPersistentField!=null) {
+        return serialPersistentField;
+      }
+      else{
+        return serializableFields;
+      }
+   } 
+
+   // Return the serialization methods for this class. 
+   public MethodDoc[] serializationMethods() {
+      return serializationMethods;
+   } 
+
+   // Test whether this class is a subclass of the specified class. 
+   public boolean subclassOf(ClassDoc cd) {
+      for (ClassDocImpl cdi=(ClassDocImpl)superclass(); cdi!=null; cdi=(ClassDocImpl)cdi.superclass()) {
+        if (cdi.equals(cd))
+           return true;
+      }
+      return false;
+   } 
+
+   // Return the superclass of this class 
+   public ClassDoc superclass() {
+      return superclass;
+   } 
+
+   // Implementation of Interface Type
+
+   public ClassDoc asClassDoc() {
+
+      return (ClassDoc)this;
+   }
+
+   public String typeName() { return name(); }
+   
+   public String qualifiedTypeName() { 
+      return (containingPackage()!=null && !containingPackage().equals(PackageDocImpl.DEFAULT_PACKAGE))?(containingPackage().name()+"."+name()):(name()); 
+   }
+
+   public String qualifiedName() { return qualifiedTypeName(); }
+
+   public String dimension() { return dimension; }
+
+   public String toString() { return "ClassDoc{"+qualifiedTypeName()+"}"; }
+
+   public TypeVariable asTypeVariable() { return null; }
+
+   public static ClassDocImpl createInstance(ClassDoc containingClass,
+                                            PackageDoc containingPackage,
+                                            ClassDoc[] importedClasses,
+                                            PackageDoc[] importedPackages,
+                                            char[] source, int startIndex, int endIndex,
+                                             List importStatementList) throws ParseException, IOException {
+
+      String superclassName = "java.lang.Object";
+
+      ClassDocImpl rc=new ClassDocImpl(containingClass,
+                                      containingPackage,
+                                      importedClasses,
+                                      importedPackages,
+                                       null);
+      rc.setImportStatementList(importStatementList);
+      List implementedInterfaces = new ArrayList();
+      
+      String word="";
+      int item=0;
+      
+      final int STATE_NORMAL = 1;
+      final int STATE_SLASHC = 2;
+      final int STATE_STARC  = 3;
+      final int STATE_ANNO   = 4;
+
+      int state=STATE_NORMAL;
+      int varLevel=0;
+      int parLevel=0;
+      char prev=0;
+      for (int ndx=startIndex; ndx<=endIndex; ++ndx) {
+        char c=(ndx==endIndex)?10:source[ndx];
+        boolean processWord=false;
+        if (state==STATE_SLASHC) {
+           if (c=='\n') {
+              state=STATE_NORMAL;
+              c=0;
+           }
+        }
+        else if (state==STATE_STARC) {
+           if (c=='/' && prev=='*') {
+              state=STATE_NORMAL;
+              c=0;
+           }
+        }
+        else {
+           if (c=='/' && prev=='/') {
+              state=STATE_SLASHC;
+              c=0;
+              word=word.substring(0,word.length()-1);
+              processWord=true;
+           }
+           else if (c=='*' && prev=='/') {
+              state=STATE_STARC;
+              c=0;
+              word=word.substring(0,word.length()-1);
+              processWord=true;
+           }
+           else if (c=='@') {
+               state=STATE_ANNO;
+              word += c;
+           }
+           else if (c=='(' && state==STATE_ANNO) {
+               ++parLevel;
+               word += c;
+            }
+            else if (c==')' && state==STATE_ANNO) {
+               --parLevel;
+               word += c;
+              if (parLevel == 0)
+                   state=STATE_NORMAL;
+            }
+           else if (c=='<')
+             {
+               ++varLevel;
+               word += c;
+             }
+           else if (c=='>')
+             {
+               --varLevel;
+               word += c;
+             }
+           else if (c=='{' && parLevel == 0 || 
+                    c==',' && varLevel == 0 && parLevel == 0 || 
+                    Parser.WHITESPACE.indexOf(c)>=0 && parLevel == 0 && varLevel == 0) {
+              processWord=true;
+              state=STATE_NORMAL;
+           }
+           else {
+              word+=c;
+           }
+
+           if (processWord && word.length()>0) {
+              if (item==0) {
+                 if (rc.processModifier(word)) {
+                 }
+                 else if (word.equals("abstract")) {
+                    rc.setIsAbstract(true);
+                 }
+                 else if (word.equals("class")) {
+                    rc.setIsInterface(false);
+                    item=1;
+                 }
+                 else if (word.equals("enum")) 
+                   {
+                     rc.setIsEnum(true);
+                     item = 1;
+                   }
+                 else if (word.equals("interface")) {
+                    rc.setIsInterface(true);
+                    item=1;
+                 }
+                 else if (word.equals("@interface")) {
+                    rc.setIsInterface(true);
+                     rc.setIsAnnotation(true);
+                    item=1;
+                 }
+                 else if (word.equals("strictfp")) {
+                 }
+                 else {
+                    Main.getRootDoc().printWarning("unknown modifier '"+word+"'");
+                 }
+              }
+              else if (word.equals("extends") && !rc.isAnnotation()) {
+                  if (rc.isInterface()) {
+                     item=3;
+                  }
+                  else {
+                     item=2;
+                  }
+              }
+              else if (word.equals("implements") && !rc.isAnnotation()) {
+                 item=3;
+              }
+              else if (item==1) {
+                int parameterIndex = word.indexOf("<");
+                if (parameterIndex == -1)
+                  rc.setClass(word);
+                else
+                  {
+                    rc.setClass(word.substring(0, parameterIndex));
+                    parseTypeVariables(rc,word.substring(parameterIndex,
+                                                         word.length()));
+                  }
+              }
+              else if (item==2) {
+                 //Debug.log(9,"setting baseclass of "+rc+" to "+word);
+                int parameterIndex = word.indexOf("<");
+                if (parameterIndex == -1)
+                  superclassName=word;
+                else
+                  {
+                    /* FIXME: Parse type parameters */
+                    superclassName=word.substring(0,parameterIndex);
+                  }
+              }
+              else if (item==3) {
+                int parameterIndex = word.indexOf("<");
+                if (parameterIndex == -1)
+                  implementedInterfaces.add(word);
+                else
+                  {
+                    /* FIXME: Parse type parameters */
+                    implementedInterfaces.add(word.substring(0,parameterIndex));
+                  }
+              }      
+              word="";
+           }
+
+           if (c=='{' && state==STATE_NORMAL) break;
+        }
+        prev=c;
+      }
+
+      if (null != containingClass
+          && containingClass.isInterface()) {
+         rc.accessLevel = ACCESS_PUBLIC;
+      }
+
+      if (rc.name()==null) {
+        throw new ParseException("No classdef found in expression \""+new String(source,startIndex,endIndex-startIndex)+"\"");
+      }
+
+      rc.setPosition(ClassDocImpl.getPosition(rc, source, startIndex));
+
+      ClassDoc superclassProxy=new ClassDocProxy(superclassName, rc);
+
+      if (!rc.qualifiedName().equals("java.lang.Object")) {
+        rc.setSuperclass(superclassProxy);
+      }
+
+      ClassDoc[] interfaces=new ClassDoc[implementedInterfaces.size()];
+      for (int i=0; i<interfaces.length; ++i) {
+         interfaces[i]=new ClassDocProxy((String)implementedInterfaces.get(i), rc);
+      }
+      rc.setInterfaces(interfaces);
+
+      if (rc.isInterface() && rc.containingClass()!=null) {
+        rc.setIsStatic(true);
+      }
+      return rc;
+   }
+
+   public void setFields(FieldDoc[] fields) {
+      this.unfilteredFields=fields;
+   }
+
+   public void setFilteredFields(FieldDoc[] fields) {
+      this.filteredFields=fields;
+   }
+
+   public void setSerializableFields(FieldDoc[] sfields) {
+      this.serializableFields=sfields;
+   }
+
+   public void setMethods(MethodDoc[] methods) {
+      this.unfilteredMethods=methods;
+   }
+
+   public void setFilteredMethods(MethodDoc[] methods) {
+      this.filteredMethods=methods;
+   }
+
+   public void setConstructors(ConstructorDoc[] constructors) {
+      this.unfilteredConstructors=constructors;
+   }
+
+   public void setFilteredConstructors(ConstructorDoc[] constructors) {
+      this.filteredConstructors=constructors;
+   }
+
+   // Returns the name of this Doc item. 
+   public String name() {
+      if (containingClass==null) {
+        return className;
+      }
+      else {
+        return containingClass.name()+"."+className;
+      }
+   } 
+
+   public String getClassName() {
+      return className;
+   }
+
+   public void setClass(String className) {
+      this.className=className;
+   }
+
+   void setSuperclass(ClassDoc superclass) {
+      this.superclass=superclass;
+   }
+
+   public void resolve() throws ParseException {
+      if (!resolved) {
+        resolved=true;
+
+        if (containingClass!=null)
+           ((ClassDocImpl)containingClass).resolve();
+
+        //Debug.log(9,"resolving class '"+qualifiedName()+"'");
+        /*
+        for (int i=0; i<importedPackages.length; ++i) {
+              Debug.log(9,"class "+qualifiedName()+" imports "+importedPackages[i].name());
+        }
+        */
+
+        if (superclass instanceof ClassDocProxy) {
+
+           ClassDoc realClassDoc=findClass(superclass.qualifiedName());
+
+           if (realClassDoc==null) {
+              /*
+              if (true) { // Main.recursiveClasses) {
+                 throw new ParseException("In class '"+qualifiedName()+"': class '"+className+"' not found.");
+              }
+              */
+           }
+           else {
+              superclass=realClassDoc;
+           }
+        }
+
+         if (null != interfaces) {
+            for (int i=0; i<interfaces.length; ++i) {
+               if (interfaces[i] instanceof ClassDocProxy) {
+                  //Debug.log(9,"class "+qualifiedName()+" implements "+interfaces[i].qualifiedName());
+                  ClassDoc realClassDoc=findClass(interfaces[i].qualifiedName());
+                  if (realClassDoc==null) {
+                     /*
+                       if (Main.recursiveClasses) {
+                       throw new ParseException("In class '"+qualifiedName()+"': class '"+className+"' not found.");
+                       }
+                     */
+                  }
+                  else {
+                     //Debug.log(9,"found class '"+className+"': "+interfaces[i]);
+                     interfaces[i]=realClassDoc;
+                  }
+               }
+            }
+         }
+
+        if (unfilteredFields!=null) {
+            for (int i=0; i<unfilteredFields.length; ++i) {
+               ((FieldDocImpl)unfilteredFields[i]).resolve();
+               if (unfilteredFields[i].name().equals("serialPersistentField")) {
+                  serialPersistentField=new FieldDoc[]{unfilteredFields[i]};
+                  definesSerializableFields=true;
+               }
+            }
+         }
+
+         if (unfilteredMethods!=null) {
+            for (int i=0; i<unfilteredMethods.length; ++i) {
+               ((MethodDocImpl)unfilteredMethods[i]).resolve();
+            }
+         }
+
+         if (unfilteredConstructors!=null) {
+            for (int i=0; i<unfilteredConstructors.length; ++i) {
+               ((ConstructorDocImpl)unfilteredConstructors[i]).resolve();
+            }
+         }
+
+        List isSerMethodList=new ArrayList();
+
+         if (null != maybeSerMethodList) {
+            for (Iterator it=maybeSerMethodList.iterator(); it.hasNext(); ) {
+               MethodDocImpl method=(MethodDocImpl)it.next();
+               method.resolve();
+
+               if (((method.name().equals("readObject")
+                     && method.signature().equals("(java.io.ObjectInputStream)"))
+                    || (method.name().equals("writeObject")
+                        && method.signature().equals("(java.io.ObjectOutputStream)"))
+                    || (method.name().equals("readExternal")
+                        && method.signature().equals("(java.io.ObjectInput)"))
+                    || (method.name().equals("writeExternal")
+                        && method.signature().equals("(java.io.ObjectOutput)"))
+                    || (method.name().equals("readResolve")
+                        && method.signature().equals("()")))) {
+
+                  isSerMethodList.add(method);
+               }
+            }
+            this.serializationMethods=(MethodDoc[])isSerMethodList.toArray(new MethodDoc[0]);
+            maybeSerMethodList=null;
+         }
+      }
+   }
+
+   public FieldDoc findFieldRec(String name) {
+      return findFieldRec(this, name);
+   }
+
+   private static FieldDoc findFieldRec(ClassDoc classDoc, String name)
+   {
+      FieldDoc field = findField(classDoc, name);
+      if (null!=field) {
+         return field;
+      }
+      else {
+         ClassDoc[] interfaces = classDoc.interfaces();
+         for (int i=0; i<interfaces.length; ++i) {
+            field = findFieldRec(interfaces[i], name);
+            if (null != field) {
+               return field;
+            }
+         }
+         if (null != classDoc.superclass()) {
+            return findFieldRec(classDoc.superclass(), name);
+         }
+         else {
+            return null;
+         }
+      }
+   }
+
+   private static FieldDoc findField(ClassDoc classDoc, String name)
+   {
+      FieldDoc[] fields = classDoc.fields(false);
+      for (int i=0; i<fields.length; ++i) {
+         if (fields[i].name().equals(name)) {
+            return fields[i];
+         }
+      }
+      return null;
+   }
+
+   public FieldDoc findField(String fieldName) {
+      for (int i=0; i<filteredFields.length; ++i) {
+        if (filteredFields[i].name().equals(fieldName)) {
+           return filteredFields[i];
+        }
+      }
+      return null;
+   }
+
+   public void resolveComments() {
+
+      super.resolveComments();
+
+      if (null != unfilteredFields) {
+         for (int i=0; i<unfilteredFields.length; ++i) {
+            ((FieldDocImpl)unfilteredFields[i]).resolveComments();
+         }
+      }
+
+      if (null != serializableFields) {
+         for (int i=0; i<serializableFields.length; ++i) {
+            ((FieldDocImpl)serializableFields[i]).resolveComments();
+         }
+      }
+      if (null != unfilteredMethods) {
+         for (int i=0; i<unfilteredMethods.length; ++i) {
+            ((MethodDocImpl)unfilteredMethods[i]).resolveComments();
+         }
+      }
+      if (null != unfilteredConstructors) {
+         for (int i=0; i<unfilteredConstructors.length; ++i) {
+            ((ConstructorDocImpl)unfilteredConstructors[i]).resolveComments();
+         }
+      }
+
+      resolveTags();
+   }
+
+
+   private String className=null;
+
+   private boolean isAbstract;
+   private boolean isInterface;
+   private boolean isAnnotation;
+   private boolean isEnum;
+   private ClassDoc[] interfaces;
+   private ClassDoc[] filteredInnerClasses;
+   private ClassDoc[] unfilteredInnerClasses;
+   private FieldDoc[] filteredFields;
+   private FieldDoc[] unfilteredFields;
+   private FieldDoc[] serializableFields;
+   private MethodDoc[] filteredMethods;
+   private MethodDoc[] unfilteredMethods;
+   private ConstructorDoc[] filteredConstructors;
+   private ConstructorDoc[] unfilteredConstructors;
+   private TypeVariable[] typeParameters;
+
+   private boolean resolved=false;
+
+   private ClassDoc superclass;
+
+   // Is this Doc item a class. 
+   public boolean isClass() {
+      return !isInterface;
+   } 
+
+   // return true if this Doc is include in the active set. 
+   public boolean isIncluded() {
+      if (this == baseClassDoc) {
+         return isIncluded
+            || (null != containingClass && Main.getInstance().includeAccessLevel(accessLevel));
+      }
+      else {
+         return baseClassDoc.isIncluded();
+      }
+   } 
+
+   void setIsIncluded(boolean b) {
+      this.isIncluded=b;
+   }
+
+   private boolean isIncluded=false;
+
+   void setImportedClasses(ClassDoc[] importedClasses) {
+      this.importedClasses=importedClasses;
+   }
+
+   private static Map typeMap = new HashMap();
+
+   Type typeForString(String typeName) throws ParseException {
+      String orgTypename=typeName;
+      int ndx=typeName.indexOf('[');
+      String dim="";
+      if (ndx>=0) {
+        for (int i=ndx; i<typeName.length(); ++i) {
+           if ("[]".indexOf(typeName.charAt(i))>=0) {
+              dim+=typeName.charAt(i);
+           }
+        }
+        typeName=typeName.substring(0,ndx).trim();
+      }
+
+      ClassDoc classDoc = findClass(typeName, dim);
+      if (null != classDoc) {
+         return classDoc;
+      }
+
+      Type type = (Type)typeMap.get(typeName+dim);
+      if (null!=type) {
+        try {
+            if (type.dimension().equals(dim)) {
+               return type;
+            }
+            else {
+               Type rc = (Type) ((WritableType)type).clone();
+               ((WritableType)rc).setDimension(dim);
+               return rc;
+            }
+        }
+        catch (CloneNotSupportedException e) {
+           throw new ParseException(e.toString());
+        }
+      }
+      
+      if ("boolean".equals(typeName)
+         || "char".equals(typeName)
+         || "byte".equals(typeName)
+         || "short".equals(typeName)
+         || "int".equals(typeName)
+         || "long".equals(typeName)
+         || "void".equals(typeName)
+         || "float".equals(typeName)
+         || "double".equals(typeName)) {
+        Type rc=new TypeImpl(null, typeName, dim);
+        typeMap.put(typeName+dim, rc);
+        return rc;
+      }
+
+      if (Main.getInstance().isDocletRunning()) {
+        //System.err.println(findClass("java.lang.String"));
+        //throw new ParseException("Doclet running, class not found: "+typeName+" ("+orgTypename+")");
+      }
+      Type rc=new ClassDocProxy(typeName, this);
+      ((WritableType)rc).setDimension(dim);
+      return rc;
+   }
+
+   public boolean isException() {
+      for (ClassDoc cdi=this; 
+          cdi!=null; 
+          cdi=cdi.superclass()) {
+
+        if ("java.lang.Exception".equals(cdi.qualifiedName()))
+           return true;
+      }
+      return false;
+   }
+
+   public boolean isError() {
+      for (ClassDoc cdi=this; cdi!=null; cdi=cdi.superclass()) {
+        if ("java.lang.Error".equals(cdi.qualifiedName()))
+           return true;
+      }
+      return false;
+   }
+
+   public boolean isOrdinaryClass() {
+      return !isException() && !isError() && !isInterface();
+   }
+
+   public void setIsInterface(boolean b) {
+      this.isInterface=b;
+   }
+
+   public void setIsAnnotation(boolean b) {
+      this.isAnnotation=b;
+   }
+
+   public void setIsEnum(boolean b)
+   {
+     isEnum = b;
+   }
+
+   public ExecutableMemberDoc findExecutableRec(String nameAndSignature) {
+
+      ExecutableMemberDoc rc;
+      for (ClassDoc cdi=this; cdi!=null; ) {
+        rc=findMethod(cdi, nameAndSignature);
+        if (rc!=null) return rc;
+        rc=findConstructor(cdi, nameAndSignature);
+        if (rc!=null) return rc;
+
+        ClassDoc _superclass = cdi.superclass();
+        if (null == _superclass) {
+           break;
+        }
+        else {
+           cdi = _superclass;
+        }
+      }
+      return null; 
+  } 
+
+   public static ConstructorDoc findConstructor(ClassDoc classDoc, String nameAndSignature) {
+      int ndx=nameAndSignature.indexOf('(');
+      if (ndx<=0)
+        return null;
+      else {
+         String fullSignature = resolveSignature(classDoc, nameAndSignature.substring(ndx));
+        return findConstructor(classDoc,
+                                nameAndSignature.substring(0,ndx),
+                                fullSignature);
+      }
+   }
+
+   public static ConstructorDoc findConstructor(ClassDoc classDoc, String name, String signature) {
+      ConstructorDoc[] filteredConstructors = classDoc.constructors(true);
+      if (null != filteredConstructors) {
+         for (int i=0; i<filteredConstructors.length; ++i) {
+            ConstructorDoc constructor = filteredConstructors[i];
+            if (constructor.name().equals(name) && constructor.signature().equals(signature))
+               return constructor;
+         }
+      }
+      return null;
+   }
+
+   public static MethodDoc findMethod(ClassDoc classDoc, String nameAndSignature) {
+      int ndx=nameAndSignature.indexOf('(');
+      if (ndx<=0) {
+        return null;
+      }
+      else {
+         String name = nameAndSignature.substring(0,ndx);
+         String fullSignature = resolveSignature(classDoc, nameAndSignature.substring(ndx));
+        return findMethod(classDoc, name, fullSignature);
+      }
+   }
+
+   private static String resolveSignature(ClassDoc classDoc, String signature) 
+   {
+      signature = signature.substring(1, signature.length() - 1).trim();
+      if (0 == signature.length()) {
+         return "()";
+      }
+      StringTokenizer st = new StringTokenizer(signature, ",");
+      StringBuffer fullSignature = new StringBuffer("(");
+      while (st.hasMoreTokens()) {
+         String type = st.nextToken().trim();
+         int ndx = type.length();
+         while (ndx > 0 && type.charAt(ndx - 1) == '[' || type.charAt(ndx - 1) == ']') {
+            -- ndx;
+         }
+         String dim = type.substring(ndx);
+         type = type.substring(0, ndx);
+         ClassDoc typeClass = classDoc.findClass(type);
+         if (fullSignature.length() > 1) {
+            fullSignature.append(",");
+         }
+         if (null != typeClass) {
+            fullSignature.append(typeClass.qualifiedName());
+         }
+         else {
+            fullSignature.append(type);
+         }
+         fullSignature.append(dim);
+      }
+      fullSignature.append(')');
+      return fullSignature.toString();
+   }
+
+   public static MethodDoc findMethod(ClassDoc classDoc, String name, String signature) {
+      MethodDoc[] filteredMethods = classDoc.methods(true);
+      if (null != filteredMethods) {
+         for (int i=0; i<filteredMethods.length; ++i) {
+            MethodDoc method = filteredMethods[i];
+            if (method.name().equals(name) && method.signature().equals(signature))
+               return method;
+         }
+      }
+      return null;
+   }
+
+   public boolean equals(Object o) {
+      return (o!=null) && (o instanceof ClassDoc) && ((ClassDoc)o).qualifiedName().equals(qualifiedName());
+   }
+
+   private List maybeSerMethodList;
+   
+   void setMaybeSerMethodList(List maybeSerMethodList) {
+      this.maybeSerMethodList=maybeSerMethodList;
+   }
+
+   public void setDimension(String dimension) {
+      this.dimension = dimension;
+   }
+
+   public Object clone() throws CloneNotSupportedException {
+      ClassDocImpl result = (ClassDocImpl)super.clone();
+      result.baseClassDoc = baseClassDoc;
+      return result;
+   }
+
+   public int superHashCode()
+   {
+      return super.hashCode();
+   }
+
+   public int hashCode()
+   {
+      return qualifiedTypeName().hashCode();
+   }
+
+   public ClassDoc getBaseClassDoc()
+   {
+      return baseClassDoc;
+   }
+   
+   public FieldDoc getFieldDoc(String name)
+   {
+      for (int i=0; i<unfilteredFields.length; ++i) {
+         if (name.equals(unfilteredFields[i].name())) {
+            return unfilteredFields[i];
+         }
+      }
+      return null;
+   }
+
+   public MethodDoc getMethodDoc(String name, String signature)
+   {
+      for (int i=0; i<unfilteredMethods.length; ++i) {
+         if (name.equals(unfilteredMethods[i].name())
+             && signature.equals(unfilteredMethods[i].signature())) {
+            return unfilteredMethods[i];
+         }
+      }
+      return null;
+   }
+
+
+   public ConstructorDoc getConstructorDoc(String signature)
+   {
+      for (int i=0; i<unfilteredConstructors.length; ++i) {
+         if (signature.equals(unfilteredConstructors[i].signature())) {
+            return unfilteredConstructors[i];
+         }
+      }
+      return null;
+   }
+
+   private Object findFieldValue(String identifier,
+                                 ClassDoc classDoc, 
+                                 String fieldName,
+                                 Set visitedFields)
+      throws UnknownIdentifierException, IllegalExpressionException
+   {
+      while (classDoc != null) {
+         if (classDoc instanceof ClassDocImpl) {
+            FieldDocImpl fieldDoc 
+               = (FieldDocImpl)((ClassDocImpl)classDoc).getFieldDoc(fieldName);
+            if (visitedFields.contains(fieldDoc)) {
+               throw new CircularExpressionException("Circular reference detected");
+            }
+            else if (null != fieldDoc) {
+               return fieldDoc.constantValue(visitedFields);
+            }
+         }
+         else {
+            ClassDoc[] _interfaces = classDoc.interfaces();
+            if (null != _interfaces) {
+               for (int i=0; i<_interfaces.length; ++i) {
+                  if (_interfaces[i] instanceof ClassDocImpl) { 
+                     FieldDocImpl fieldDoc 
+                        = (FieldDocImpl)((ClassDocImpl)_interfaces[i]).getFieldDoc(fieldName);
+                     if (visitedFields.contains(fieldDoc)) {
+                        throw new CircularExpressionException("Circular reference detected");
+                     }
+                     else if (null != fieldDoc) {
+                        return fieldDoc.constantValue(visitedFields);
+                     }
+                  }
+               }
+            }
+         }
+         classDoc = classDoc.superclass();
+      }
+      throw new UnknownIdentifierException(identifier);
+   }
+   
+   public Object getValue(String identifier, Set visitedFields)
+      throws UnknownIdentifierException, IllegalExpressionException
+   {
+      int ndx = identifier.lastIndexOf('.');
+      if (ndx >= 0) {
+         String _className = identifier.substring(0, ndx);
+         String _fieldName = identifier.substring(ndx + 1);
+
+         ClassDoc _classDoc = findClass(_className);
+         if (null != _classDoc) {
+            return findFieldValue(identifier, _classDoc, _fieldName, visitedFields);
+         }
+         else {
+            throw new UnknownIdentifierException(identifier);
+         }
+      }
+      else {
+         return findFieldValue(identifier, this, identifier, visitedFields);
+      }
+   }
+
+   public boolean isPrimitive()
+   {
+      return false;
+   }
+
+   // Compares this Object with the specified Object for order. 
+   public int compareTo(java.lang.Object o) {
+      int rc;
+
+      if (o instanceof ClassDocImpl) {
+      
+         ClassDocImpl c1 = this;
+         ClassDocImpl c2 = (ClassDocImpl)o;
+
+         if (null != c1.containingClass() && null == c2.containingClass()) {
+            rc = c1.containingClass().compareTo(c2);
+            if (0 == rc) {
+               rc = 1;
+            }
+            return rc;
+         }
+         else if (null == c1.containingClass() && null != c2.containingClass()) {
+            rc = c1.compareTo(c2.containingClass());
+            if (0 == rc) {
+               rc = -1;
+            }
+            return rc;
+         }
+         else if (null != c1.containingClass() && null != c2.containingClass()) {
+            rc = c1.containingClass().compareTo(c2.containingClass());
+            if (0 != rc) {
+               return rc;
+            }
+         }
+
+         rc = super.compareTo(o);
+         if (0 == rc) {
+            return Main.getInstance().getCollator().compare(containingPackage().name(), 
+                                                            ((ClassDocImpl)o).containingPackage().name());
+         }
+         else {
+            return rc;
+         }
+      }
+      else {
+         return 1;
+      }
+   } 
+
+   private List importStatementList;
+
+   public void setImportStatementList(List importStatementList)
+   {
+      this.importStatementList = new LinkedList();
+      this.importStatementList.addAll(importStatementList);
+   }
+   
+   public List getImportSpecifierList()
+   {
+      return importStatementList;
+   }
+
+  public TypeVariable[] typeParameters()
+  {
+    return typeParameters;
+  }
+
+  /**
+   * <p>
+   * Parses the type variables declared in the class definition.
+   * The syntax is:
+   * </p>
+   * <p>
+   * <dl>
+   * <dt>TypeParameters:</dt>
+   * <dd><code>&lt; <em>TypeParameter</em> { <em>, TypeParameter }</code></dd>
+   * <dt>TypeParameter:</dt>
+   * <dd><code><em>Identifier</em> { <strong>extends</strong> <em>Bound</em>
+   *     }</dd>
+   * <dt>Bound:</dt>
+   * <dd><code><em>Type</em>{<strong>&</strong> <em>Type</em> } </dd>
+   * </dl>
+   *
+   * @param rc the owning class.
+   * @param typeVariables the string to be parsed.
+   * @throws ParseException if parsing fails.
+   */
+  public static void parseTypeVariables(ClassDocImpl rc,
+                                       String typeVariables)
+    throws ParseException
+  {
+    List parsedBounds = null;
+    StringTokenizer parameters = new StringTokenizer(typeVariables,
+                                                    Parser.WHITESPACE +
+                                                    "<>,");
+    List variables = new ArrayList();
+    while (parameters.hasMoreTokens())
+      {
+       String parameter = parameters.nextToken();
+       StringTokenizer parts = new StringTokenizer(parameter,
+                                                   Parser.WHITESPACE);
+       TypeVariableImpl variable = new TypeVariableImpl(rc.qualifiedName(),
+                                                        parts.nextToken(),"",
+                                                        rc);
+       if (parts.hasMoreTokens())
+         {
+           if (!parts.nextToken().equals("extends"))
+             throw new ParseException("Invalid type parameter: " + parameter);
+           StringTokenizer bounds = new StringTokenizer(parts.nextToken(),
+                                                        Parser.WHITESPACE
+                                                        + "&");
+           parsedBounds = new ArrayList();
+           while (bounds.hasMoreTokens())
+             {
+               String bound = bounds.nextToken();
+               int nameSep = bound.lastIndexOf(".");
+               String packageName = bound.substring(0, nameSep);
+               String boundName = bound.substring(nameSep, bound.length());
+               parsedBounds.add(new TypeImpl(packageName,boundName,""));
+             }
+         }
+       if (parsedBounds != null)
+         variable.setBounds(parsedBounds);
+       variables.add(variable);
+      }
+    rc.setTypeParameters(variables);
+  }
+
+  /**
+   * Set the type parameters to the contents of the supplied list.
+   *
+   * @param variables a list of type parameters.
+   */
+  void setTypeParameters(List variables)
+  {
+    typeParameters = 
+      (TypeVariable[]) variables.toArray(new TypeVariable[variables.size()]);
+  }
+
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java
new file mode 100644 (file)
index 0000000..79abf3d
--- /dev/null
@@ -0,0 +1,152 @@
+/* gnu.classpath.tools.gjdoc.ClassDocProxy
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+
+import java.io.*;
+
+public class ClassDocProxy implements ClassDoc, WritableType {
+
+   private String name;
+   private String qualifiedName;
+   private ClassDoc classContext;
+   private String dimension = "";
+
+   public ClassDocProxy(String qualifiedName, ClassDoc classContext) 
+   {
+      this.qualifiedName
+         = Main.getRootDoc().resolveClassName(qualifiedName, 
+                                              (ClassDocImpl)classContext);
+      this.classContext=classContext;
+      int pndx=qualifiedName.lastIndexOf('.');
+      if (pndx>=0) {
+        this.name=qualifiedName.substring(pndx+1);
+      }
+      else {
+        this.name=qualifiedName;
+      }
+   }
+
+   private final String errorText() 
+   {
+      return "CLASS "+qualifiedName+" NOT LOADED.";
+   }
+
+   public ConstructorDoc[] constructors() { return new ConstructorDoc[0]; } 
+   public ConstructorDoc[] constructors(boolean filtered) { return new ConstructorDoc[0]; }
+   public boolean definesSerializableFields() { return false; } 
+   public FieldDoc[] fields() { return new FieldDoc[0]; } 
+   public FieldDoc[] fields(boolean filtered) { return new FieldDoc[0]; } 
+   public ClassDoc findClass(java.lang.String className) { return null; } 
+   public ClassDoc[] importedClasses() { return new ClassDoc[0]; } 
+   public PackageDoc[] importedPackages() { return new PackageDoc[0]; } 
+   public ClassDoc[] innerClasses() { return new ClassDoc[0]; } 
+   public ClassDoc[] innerClasses(boolean filtered) { return new ClassDoc[0]; } 
+   public ClassDoc[] interfaces() { return new ClassDoc[0]; } 
+   public boolean isAbstract() { return false; } 
+   public boolean isExternalizable() { return false; } 
+   public boolean isSerializable() { return false; } 
+   public MethodDoc[] methods() { return new MethodDoc[0]; } 
+   public MethodDoc[] methods(boolean filtered) { return new MethodDoc[0]; } 
+   public FieldDoc[] serializableFields() { return new FieldDoc[0]; } 
+   public MethodDoc[] serializationMethods() { return new MethodDoc[0]; } 
+   public boolean subclassOf(ClassDoc cd) { return false; } 
+   public ClassDoc superclass() { return null; } 
+   public ClassDoc containingClass() { return null; } 
+   public PackageDoc containingPackage() { 
+      /*
+      try {
+        File file=Main.getRootDoc().findScheduledClass(qualifiedName, classContext);
+        if (file!=null) {
+           //String clsName=file.getCanonicalFile().getAbsolutePath().substring(new File(Main.getRootDoc().getSourcePath()).getCanonicalFile().getAbsolutePath().length()+1);
+           String clsName=file.getAbsolutePath().substring(new File(Main.getRootDoc().getSourcePath()).getAbsolutePath().length()+1);
+           clsName=clsName.substring(0,clsName.length()-5).replace(File.separatorChar,'.');
+           Debug.log(9,"ClassDocProxy '"+qualifiedName+"': found class "+clsName);
+           qualifiedName=clsName;
+        }
+        return new PackageDocImpl("test.");
+      }
+      catch (Exception e) {
+        return PackageDocImpl.DEFAULT_PACKAGE; 
+      }
+      */
+      return PackageDocImpl.DEFAULT_PACKAGE;
+   } 
+
+   public boolean isFinal() { return false; } 
+   public boolean isPackagePrivate() { return false; } 
+   public boolean isPrivate() { return false; } 
+   public boolean isProtected() { return false; } 
+   public boolean isPublic() { return false; } 
+   public boolean isStatic() { return false; } 
+   public String modifiers() { return ""; } 
+   public int modifierSpecifier() { return 0; } 
+   public String qualifiedName() { return qualifiedName; } 
+   public String commentText() { return null; } 
+   public Tag[] firstSentenceTags() { return new Tag[0]; } 
+   public String getRawCommentText() { return null; } 
+   public Tag[] inlineTags() { return new Tag[0]; } 
+   public boolean isClass() { return false; } 
+   public boolean isConstructor() { return false; } 
+   public boolean isError() { return false; } 
+   public boolean isException() { return false; } 
+   public boolean isField() { return false; } 
+   public boolean isIncluded() { return false; } 
+   public boolean isInterface() { return false; } 
+   public boolean isMethod() { return false; } 
+   public boolean isOrdinaryClass() { return false; } 
+   public String name() { return name; } 
+   public SourcePosition position() { return null; }
+   public SeeTag[] seeTags() { return new SeeTag[0]; } 
+   public void setRawCommentText(java.lang.String rawDocumentation) {} 
+   public Tag[] tags() { return new Tag[0]; } 
+   public Tag[] tags(java.lang.String tagname) { return new Tag[0]; }
+   public String typeName() { return name; }
+   public String qualifiedTypeName() { return qualifiedName; }
+   public String dimension() { return dimension; }
+   public ClassDoc asClassDoc() { return this; }
+   public TypeVariable asTypeVariable() { return null; }
+   public boolean isPrimitive() { return false; }
+
+   public String toString() { return "ClassDocProxy{"+qualifiedName+", context="+classContext+"}"; }
+
+   public void setDimension(String dimension) {
+      this.dimension = dimension;
+   }
+
+   public Object clone() throws CloneNotSupportedException {
+      return super.clone();
+   }
+
+   // Compares this Object with the specified Object for order. 
+   public int compareTo(java.lang.Object o) {
+      if (o instanceof Doc) {
+         return Main.getInstance().getCollator().compare(name(), ((Doc)o).name());
+      }
+      else {
+         return 0;
+      }
+   }
+
+   public TypeVariable[] typeParameters() { return new TypeVariable[0]; } 
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java
new file mode 100644 (file)
index 0000000..2920e89
--- /dev/null
@@ -0,0 +1,202 @@
+/* gnu.classpath.tools.gjdoc.ClassDocReflectedImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+   This file is part of GNU Classpath.
+
+   GNU Classpath is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+   GNU Classpath is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU Classpath; see the file COPYING.  If not, write to the
+   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.Map;
+import java.util.HashMap;
+
+public class ClassDocReflectedImpl
+   implements ClassDoc, WritableType
+{
+   private Class clazz;
+   private String name;
+   private ClassDoc superclassDoc;
+   private ClassDoc[] unfilteredInnerClasses;
+   private String dimension = "";
+
+   private static Map reflectionCache = new HashMap();
+
+   public static ClassDocReflectedImpl newInstance(Class clazz)
+   {
+      ClassDocReflectedImpl result 
+         = (ClassDocReflectedImpl)reflectionCache.get(clazz);
+      if (null != result) {
+         return result;
+      }
+      else {
+         return new ClassDocReflectedImpl(clazz);
+      }
+   }
+
+   public ClassDocReflectedImpl(Class clazz)
+   {
+      reflectionCache.put(clazz, this);
+
+      //System.err.println("ClassDocReflectedImpl: " + clazz);
+      
+      this.clazz = clazz;
+      String className = clazz.getName();
+      int ndx = className.lastIndexOf('.');
+      if (ndx >= 0) {
+         this.name = className.substring(ndx + 1);
+      }
+      else {
+         this.name = className;
+      }
+
+      Class superclass = clazz.getSuperclass();
+      if (null != superclass && !clazz.getName().equals("java.lang.Object")) {
+         this.superclassDoc = (ClassDocReflectedImpl)reflectionCache.get(superclass);
+         if (null == this.superclassDoc) {
+            this.superclassDoc = new ClassDocReflectedImpl(superclass);
+         }
+      }
+
+      Class[] innerclasses = clazz.getDeclaredClasses();
+      this.unfilteredInnerClasses = new ClassDoc[innerclasses.length];
+      for (int i=0; i<innerclasses.length; ++i) {
+         this.unfilteredInnerClasses[i] = (ClassDocReflectedImpl)reflectionCache.get(innerclasses[i]);
+         if (null == this.unfilteredInnerClasses[i]) {
+            this.unfilteredInnerClasses[i] = new ClassDocReflectedImpl(innerclasses[i]);
+            //System.err.println("adding " + this.unfilteredInnerClasses[i] + " [" + innerclasses[i] + "] as inner class of " + this + " [" + clazz + "]");
+         }
+      }
+   }
+
+   public ConstructorDoc[] constructors() { return new ConstructorDoc[0]; } 
+   public ConstructorDoc[] constructors(boolean filtered) { return new ConstructorDoc[0]; }
+   public boolean definesSerializableFields() { return false; } 
+   public FieldDoc[] fields() { return new FieldDoc[0]; } 
+   public FieldDoc[] fields(boolean filtered) { return new FieldDoc[0]; } 
+   public ClassDoc findClass(java.lang.String className) { return null; } 
+   public ClassDoc[] importedClasses() { return new ClassDoc[0]; } 
+   public PackageDoc[] importedPackages() { return new PackageDoc[0]; } 
+   public ClassDoc[] innerClasses() { return new ClassDoc[0]; } 
+   public ClassDoc[] innerClasses(boolean filtered) 
+   { 
+      if (filtered) {
+         return new ClassDoc[0];
+      }
+      else {
+         return unfilteredInnerClasses;
+      }
+   }
+   
+   public ClassDoc[] interfaces() { return new ClassDoc[0]; } 
+   public boolean isAbstract() { return false; } 
+   public boolean isExternalizable() { return false; } 
+   public boolean isSerializable() { return false; } 
+   public MethodDoc[] methods() { return new MethodDoc[0]; } 
+   public MethodDoc[] methods(boolean filtered) { return new MethodDoc[0]; } 
+   public FieldDoc[] serializableFields() { return new FieldDoc[0]; } 
+   public MethodDoc[] serializationMethods() { return new MethodDoc[0]; } 
+   public boolean subclassOf(ClassDoc cd) { return false; } 
+   public ClassDoc superclass() { 
+      return superclassDoc;
+   } 
+   public ClassDoc containingClass() 
+   {
+      Class declaringClass = clazz.getDeclaringClass();
+      if (null != declaringClass) {
+         return new ClassDocReflectedImpl(declaringClass);
+      }
+      else {
+         return null;
+      }
+   } 
+   public PackageDoc containingPackage() 
+   {
+      Class outerClass = clazz;
+      while (null != outerClass.getDeclaringClass()) {
+         outerClass = outerClass.getDeclaringClass();
+      }
+
+      String packageName = outerClass.getName();
+      int ndx = packageName.lastIndexOf('.');
+      if (ndx > 0) {
+         packageName = packageName.substring(0, ndx);
+      }
+      else {
+         packageName = "";
+      }
+      PackageDoc result =  Main.getRootDoc().findOrCreatePackageDoc(packageName);
+      return result;
+   }
+
+   public boolean isFinal() { return false; } 
+   public boolean isPackagePrivate() { return false; } 
+   public boolean isPrivate() { return false; } 
+   public boolean isProtected() { return false; } 
+   public boolean isPublic() { return false; } 
+   public boolean isStatic() { return false; } 
+   public String modifiers() { return ""; } 
+   public int modifierSpecifier() { return 0; } 
+   public String qualifiedName() { return clazz.getName().replace('$', '.'); } 
+   public String commentText() { return null; } 
+   public Tag[] firstSentenceTags() { return new Tag[0]; } 
+   public String getRawCommentText() { return null; } 
+   public Tag[] inlineTags() { return new Tag[0]; } 
+   public boolean isClass() { return false; } 
+   public boolean isConstructor() { return false; } 
+   public boolean isError() { return false; } 
+   public boolean isException() { return false; } 
+   public boolean isField() { return false; } 
+   public boolean isIncluded() { return false; } 
+   public boolean isInterface() { return false; } 
+   public boolean isMethod() { return false; } 
+   public boolean isOrdinaryClass() { return false; } 
+   public String name() { return name; } 
+   public SourcePosition position() { return null; }
+   public SeeTag[] seeTags() { return new SeeTag[0]; } 
+   public void setRawCommentText(java.lang.String rawDocumentation) {} 
+   public Tag[] tags() { return new Tag[0]; } 
+   public Tag[] tags(java.lang.String tagname) { return new Tag[0]; }
+   public String typeName() { return name; }
+   public String qualifiedTypeName() { return qualifiedName(); }
+   public ClassDoc asClassDoc() { return this; }
+   public TypeVariable asTypeVariable() { return null; }
+   public boolean isPrimitive() { return false; }
+
+   public String toString() { return "ClassDocReflectedImpl{"+qualifiedName()+"}"; }
+
+   public int compareTo(java.lang.Object o) {
+      if (o instanceof Doc) {
+         return Main.getInstance().getCollator().compare(name(), ((Doc)o).name());
+      }
+      else {
+         return 0;
+      }
+   }
+
+   public String dimension() { return dimension; }
+
+   public void setDimension(String dimension) {
+      this.dimension = dimension;
+   }
+
+   public Object clone() throws CloneNotSupportedException {
+      return super.clone();
+   }
+
+   public TypeVariable[] typeParameters() { return new TypeVariable[0]; } 
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java
new file mode 100644 (file)
index 0000000..f114485
--- /dev/null
@@ -0,0 +1,42 @@
+/* gnu.classpath.tools.gjdoc.ConstructorDocImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import com.sun.javadoc.*;
+
+public class ConstructorDocImpl extends ExecutableMemberDocImpl implements ConstructorDoc {
+
+   public ConstructorDocImpl(ClassDoc containingClass,
+                            PackageDoc containingPackage,
+                             SourcePosition position) {
+      
+      super(containingClass,
+           containingPackage,
+            position);
+   }
+
+   // Is this Doc item a constructor. 
+   public boolean isConstructor() {
+      return true;
+   } 
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java
new file mode 100644 (file)
index 0000000..06f39a4
--- /dev/null
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.Debug
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+public final class Debug {
+
+   //private static int logLevel = 7;
+   private static int logLevel = 0;
+
+   static {
+      String llProp = System.getProperty("gnu.classpath.tools.gjdoc.LogLevel");
+      if (null!=llProp) logLevel = Integer.parseInt(llProp);
+   }
+
+   public static final void log(String msg) {
+      System.err.println(msg);
+   }
+
+   public static final void log(int level, String msg) {
+      if (level<=logLevel) {
+        System.err.println(msg);
+      }
+   }
+
+   public static final void dumpArray(int level, Object[] array) {
+      if (level<=logLevel) {
+        for (int i=0; i<array.length; ++i) {
+           System.err.println("  #"+i+": "+array[i]);
+        }
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java
new file mode 100644 (file)
index 0000000..7d8e4bc
--- /dev/null
@@ -0,0 +1,57 @@
+/* gnu.classpath.tools.gjdoc.DirectoryTree
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.io.*;
+
+public class DirectoryTree {
+
+   class FileNode {
+      File file;
+      FileNode[] subNodes;
+
+      FileNode(File file) {
+        this.file=file;
+        if (file.isDirectory()) {
+           File[] subFiles=file.listFiles();
+           subNodes=new FileNode[subFiles.length];
+           for (int i=0; i<subFiles.length; ++i) {
+              subNodes[i]=new FileNode(subFiles[i]);
+           }
+        }
+      }
+   }
+
+   FileNode root;
+
+   DirectoryTree(File path) {
+
+      System.err.print("Scanning "+path.getAbsolutePath()+"... ");
+
+      long now1=System.currentTimeMillis();
+
+      root=new FileNode(path);
+
+      long now2=System.currentTimeMillis();
+
+      System.err.println("took "+(now2-now1)+" ms");
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java
new file mode 100644 (file)
index 0000000..1630513
--- /dev/null
@@ -0,0 +1,1074 @@
+/* gnu.classpath.tools.gjdoc.DocImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+import java.io.File;
+import javax.swing.text.Segment;
+
+/**
+ *  Represents the least common denominator of all Javadoc
+ *  comment classes.
+ */
+public abstract class DocImpl implements Doc, TagContainer {
+
+   protected static Tag[] seeTagEmptyArr = new SeeTagImpl[0];
+   protected static Tag[] linkTagEmptyArr = new LinkTagImpl[0];
+   protected static Tag[] paramTagEmptyArr = new ParamTagImpl[0];
+   protected static Tag[] throwsTagEmptyArr = new ThrowsTagImpl[0];
+   protected SourcePosition position;
+   private String boilerplateComment;
+
+   // Return the text of the comment for this doc item. 
+   public String commentText() {
+
+      StringBuffer rc=new StringBuffer();
+
+      Tag[] textTags=(Tag[])tagMap.get("text");
+      if (textTags!=null) {
+        for (int i=0; i<textTags.length; ++i) {
+           rc.append(textTags[i].text());
+        }
+      }
+      return rc.toString();
+   }
+
+   // Compares this Object with the specified Object for order. 
+   public int compareTo(java.lang.Object o) {
+      return Main.getInstance().getCollator().compare(name(), ((Doc)o).name());
+   } 
+
+   // Return the first sentence of the comment as tags. 
+   public Tag[] firstSentenceTags() {
+
+      Tag[] rc=(Tag[])tagMap.get("first");
+      if (rc==null) rc=new Tag[0];
+      return rc;
+   }
+
+   // Return the full unprocessed text of the comment. 
+   public String getRawCommentText() {
+      if (rawDocumentation!=null)
+         return rawDocumentation;
+      else if (rawDocOffset>=0)
+        return Main.getRootDoc().readRawComment(rawDocOffset);      
+      else
+        return null;
+   } 
+
+   // Return comment as tags. 
+   public Tag[] inlineTags() {
+
+      Tag[] rc=(Tag[])tagMap.get("inline");
+      if (rc==null) rc=new Tag[0];
+      return rc;
+   }
+
+   // Is this Doc item a class. 
+   public boolean isClass() {
+      return false;
+   } 
+
+   // Is this Doc item a constructor? False until overridden. 
+   public boolean isConstructor() {
+      return false;
+   } 
+
+   // Is this Doc item a error class? False until overridden. 
+   public boolean isError() {
+      return false;
+   } 
+
+   // Is this Doc item a exception class? False until overridden. 
+   public boolean isException() {
+      return false;
+   } 
+
+   // Is this Doc item a field? False until overridden. 
+   public boolean isField() {
+      return false;
+   } 
+
+   // return true if this Doc is include in the active set. 
+   public boolean isIncluded() {
+      return false;
+   } 
+
+   // Is this Doc item a interface? False until overridden. 
+   public boolean isInterface() {
+      return false;
+   } 
+
+   // Is this Doc item a simple method (i.e. 
+   public boolean isMethod() {
+      return false;
+   } 
+
+   public boolean isPackage() {
+      return false;
+   } 
+
+   // Is this Doc item a ordinary class (i.e. 
+   public boolean isOrdinaryClass() {
+      return false;
+   } 
+
+   // Return the see also tags in this Doc item. 
+   public SeeTag[] seeTags() {
+      return (SeeTag[])getTagArr("see", seeTagEmptyArr);
+   }
+
+   protected Tag[] getTagArr(String kindOfTag, Tag[] defaultRc) {
+      Tag[] rc=(Tag[])tagMap.get(kindOfTag);
+      if (rc==null) rc=defaultRc;
+      return rc;
+   } 
+
+   // Set the full unprocessed text of the comment. 
+   public void setRawCommentText(String rawDocumentation) {
+      this.rawDocumentation=rawDocumentation;
+   } 
+
+   public void resolveComments() {
+      
+      if (rawDocumentation!=null && tagMap.isEmpty()) {
+         char[] charArray = rawDocumentation.toCharArray();
+         int length = rawDocumentation.length();
+         int startOffset = 0;
+         int endOffset = 0;
+         if (charArray[0] == '/' 
+             && charArray[1] == '*' 
+             && charArray[2] == '*'
+             && charArray[length - 2] == '*'
+             && charArray[length - 1] == '/') {
+
+            startOffset = 3;
+            endOffset = 2;
+         }
+
+         this.tagMap=parseCommentTags(charArray,
+                                      startOffset,
+                                      length - endOffset,
+                                      getContextClass(),
+                                      getContextMember(),
+                                      null,
+                                      boilerplateComment);
+
+         if (Main.getInstance().isCacheRawComments()) {
+            rawDocOffset=Main.getRootDoc().writeRawComment(rawDocumentation);
+            rawDocumentation=null;
+         }
+
+        resolveTags();
+      }
+      else if (tagMap.isEmpty() && null != boilerplateComment) {
+         tagMap.put("all", new Tag[] { new TagImpl("@boilerplate", boilerplateComment,getContextClass(),null) });
+         tagMap.put("@boilerplate", new Tag[] { new TagImpl("@boilerplate", boilerplateComment,getContextClass(),null) });
+      }
+   }
+
+   public static int skipHtmlWhitespace(char[] buffer, int startIndex) {
+      while (startIndex < buffer.length) {
+        char c=buffer[startIndex];
+         if (!Parser.isWhitespace(c)) {
+            break;
+         }
+         else {
+            ++ startIndex;
+         }
+      }
+      return startIndex;
+   }
+   
+   /**
+    *  Looks for an end-of-sentence marker in <code>text</code>,
+    *  starting at <code>startIndex</code> and stopping at
+    *  <code>endIndex</code>. 
+    *
+    *  @param text  the text to be searched
+    *  @param startIndex  index in <code>text</code> at which to start
+    *  @param endIndex  index in <code>text</code> at which to stop
+    *
+    *  @return the index of the character following the end-of-sentence 
+    *    marker, <code>endIndex</code> if no end-of-sentence
+    *    marker could be found, or -1 if not implemented.
+    */
+   private static int findEndOfSentence(char[] text, int startIndex,
+                                       int endIndex)
+   {
+      if (Main.getInstance().isUseBreakIterator()) {
+         Segment segment = new Segment(text, startIndex, endIndex - startIndex);
+         BreakIterator breakIterator = BreakIterator.getSentenceInstance(Main.getInstance().getLocale());
+         breakIterator.setText(segment);
+         int result = breakIterator.next();
+         if (BreakIterator.DONE == result) {
+            return endIndex;
+         }
+         else {
+            return result;
+         }
+      }
+      else {
+         while (startIndex < endIndex) {
+            if (text[startIndex] == '.'
+                && (startIndex+1 == endIndex
+                    || Character.isWhitespace(text[startIndex+1])
+                    || isHTMLBreakTag(text, startIndex+1, endIndex)
+                    )) {
+               return startIndex;
+            }
+            
+           startIndex++;
+         }
+         return endIndex;
+      }
+   }
+
+   /**
+    * Returns true is the text from start to end begins with a 'p' or 'br' tag.
+    */
+   private static boolean isHTMLBreakTag(char[] text, int start, int end)
+   {
+      String[] breakTags = {
+         "p>", "/p>", "h1>", "h2>", "h3>", "h4>", "h5>", "h6>", "hr>",
+         "pre>", "/pre>"
+      };
+
+      if (text[start] == '<') {
+
+      outer:
+         for (int i=0; i<breakTags.length; ++i) {
+            String tag = breakTags[i];
+            int len = tag.length();
+            if (start + len < end) {
+               for (int j=0; j<len; ++j) {
+                  char c = tag.charAt(j);
+                  if (Character.toLowerCase(text[start + 1 + j]) != c) {
+                     continue outer;
+                  }
+               }
+               return true;
+            }
+         }
+      }
+      return false;
+   }
+
+   //private static final StringBuffer buf=new StringBuffer(32768);
+   private static final StringBuffer whitespaceBuf=new StringBuffer();
+   private static char[] charBuf = new char[60000];
+   private static int bufPos = 0;
+
+   private static void appendToBuf(char c)
+   {
+      if (bufPos < charBuf.length) {
+         charBuf[bufPos++] = c;
+      }
+      else {
+         //
+      }
+   }
+
+   private static void appendToBuf(StringBuffer s)
+   {
+      if (bufPos + s.length() <= charBuf.length) {
+         s.getChars(0, s.length(), charBuf, bufPos);
+         bufPos += s.length();
+      }
+      else {
+         //
+      }
+   }
+
+   private static void setBufLength(int length)
+   {
+      bufPos = 0;
+   }
+
+   private static String bufToString()
+   {
+      return new String(charBuf, 0, bufPos);
+   }
+
+   private static int bufLength()
+   {
+      return bufPos;
+   }
+
+   public static Map parseCommentTags(char[] comment, int startIndex, int endIndex, 
+                                      ClassDocImpl contextClass, MemberDocImpl contextMember,
+                                      AbstractTagImpl contextTag, String boilerplateComment) {
+
+      int rawDocStart=skipHtmlWhitespace(comment, startIndex);
+
+      int firstSentenceEnd = 0;
+
+      if (comment.length>rawDocStart) {
+
+        firstSentenceEnd = findEndOfSentence(comment, rawDocStart, comment.length);
+        
+        if (firstSentenceEnd < 0) {
+           BreakIterator boundary = BreakIterator.getSentenceInstance(Locale.ENGLISH);
+           boundary.setText(new ArrayCharacterIterator(comment, rawDocStart));
+           boundary.first();
+           boundary.next();
+           firstSentenceEnd = boundary.current();
+        }
+
+        // Always include period at end of sentence if there is one.
+        if (firstSentenceEnd < comment.length
+                        && '.' == comment[firstSentenceEnd]) {
+           ++ firstSentenceEnd;
+        }
+      }
+
+      final int        STATE_BEGOFLINE            = 1;
+      final int        STATE_TEXT                 = 2;
+      final int        STATE_PARAM                = 3;
+      final int        STATE_PARAMVALUE           = 4;
+      final int        STATE_PARAMWRAP            = 5;
+      final int        STATE_INLINEPARAM          = 6;
+      final int        STATE_INLINEPARAMVALUE     = 7;
+      final int        STATE_WHITESPACE           = 8;
+      final int        STATE_INLINEPARAMVALUE_BOL = 9;
+      final int        STATE_IPV_WHITESPACE       = 10;
+
+      int state=STATE_BEGOFLINE;
+      int prevState=STATE_TEXT;
+
+      setBufLength(0);
+      whitespaceBuf.setLength(0);
+
+      String paramName="", paramValue="";
+
+      Map tags=new HashMap();
+      tags.put("inline", new LinkedList());
+      tags.put("first", new LinkedList());
+      tags.put("all", new LinkedList());
+
+      final char EOL=(char)-1;
+
+      for (int i=rawDocStart; i<=endIndex; ++i) {
+        char c=(i<endIndex)?comment[i]:EOL;
+        char peek=(i<endIndex-1)?comment[i+1]:EOL;
+
+        switch (state){
+
+        case STATE_BEGOFLINE:
+           if (i==firstSentenceEnd) {
+              AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
+               if (null != newTag) {
+                  contextTag = newTag;
+               }
+              setBufLength(0);
+           }
+
+           if (Parser.isWhitespace(c)) {
+              // ignore
+           }
+           else if (c=='*') {
+              // ignore, but go to STATE_TEXT
+              if (peek!='*' && peek!='@' && peek!=EOL) {
+                 state=STATE_WHITESPACE;
+              }
+           }
+           else if (c=='@' || (c=='{' && peek=='@') || c==EOL) {
+              if (bufLength()>0) { 
+                 addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+                 setBufLength(0);
+              }
+              if (c=='{') {
+                 ++i;
+                 state=STATE_INLINEPARAM;
+              }
+              else {
+                 state=STATE_PARAM;
+              }
+           }
+           else {
+              state=STATE_TEXT;
+              appendToBuf(whitespaceBuf);
+              whitespaceBuf.setLength(0);
+              appendToBuf(c);
+           }
+           break;
+
+        case STATE_WHITESPACE:
+           if (i==firstSentenceEnd) {
+              AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
+               if (null != newTag) {
+                  contextTag = newTag;
+               }
+              setBufLength(0);
+           }
+
+           if (c=='\n') {
+              whitespaceBuf.append(c);
+              state=STATE_BEGOFLINE;
+           }
+           else if (Parser.isWhitespace(c)) {
+              whitespaceBuf.append(c);
+           }
+           else if (c=='@' || (c=='{' && peek=='@') || c==EOL) {
+              if (bufLength()>0) { 
+                 AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+                  if (null != newTag) {
+                     contextTag = newTag;
+                  }
+                 setBufLength(0);
+              }
+              if (c=='{') {
+                 ++i;
+                 state=STATE_INLINEPARAM;
+              }
+              else {
+                 state=STATE_PARAM;
+              }
+           }
+           else {
+              appendToBuf(whitespaceBuf);
+              whitespaceBuf.setLength(0);
+              appendToBuf(c);
+              state=STATE_TEXT;
+           }
+           break;
+
+        case STATE_PARAMWRAP:
+           if (c=='\n') {
+              appendToBuf(c);
+           }
+           else if (Parser.isWhitespace(c)) {
+              // ignore
+           }
+           else if (c=='*') {
+              // ignore, but go to STATE_TEXT
+              /*
+              if (i<endIndex && comment[i+1]!='*' && comment[i+1]!='@') {
+                 state=STATE_PARAMVALUE;
+              }
+              */
+           }
+           else if (c=='@' || c==EOL) {
+              paramValue=bufToString();
+              AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+               if (null != newTag) {
+                  contextTag = newTag;
+               }
+              setBufLength(0);
+              if (c=='{') {
+                 ++i;
+                 state=STATE_INLINEPARAM;
+              }
+              else {
+                 state=STATE_PARAM;
+              }
+           }
+           else {
+              state=STATE_PARAMVALUE;
+              appendToBuf(c);
+           }
+           break;
+
+        case STATE_PARAM:
+           if (!(c==EOL || Parser.isWhitespace(c))) {
+              appendToBuf(c);
+           }
+           else if (c=='\n') {
+              paramName=bufToString();
+              setBufLength(0);
+              state=STATE_PARAMWRAP;
+           }
+           else {
+              paramName=bufToString();
+              setBufLength(0);
+              state=STATE_PARAMVALUE;
+           }
+           break;
+
+        case STATE_INLINEPARAM:
+           if (c=='}') {
+               // tag without value
+              paramName=bufToString();
+              AbstractTagImpl newTag = addTag(tags, paramName, "", i<firstSentenceEnd, contextClass, contextMember, contextTag, true);
+               if (null != newTag) {
+                  contextTag = newTag;
+               }
+               state=prevState;
+               setBufLength(0);
+            }
+           else if (!(c==EOL || Parser.isWhitespace(c))) {
+              appendToBuf(c);
+           }
+           else if (c=='\n') {
+              paramName=bufToString();
+              setBufLength(0);
+              state=STATE_INLINEPARAMVALUE_BOL;
+           }
+           else {
+              paramName=bufToString();
+              setBufLength(0);
+              state=STATE_INLINEPARAMVALUE;
+           }
+           break;
+
+        case STATE_PARAMVALUE:
+           if (c==EOL) {
+              paramValue=bufToString();
+              AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+               if (null != newTag) {
+                  contextTag = newTag;
+               }
+           }
+           else if (c=='\n') {
+              appendToBuf(c);
+              state=STATE_PARAMWRAP;
+           }
+           else {
+              appendToBuf(c);
+           }
+           break;
+
+        case STATE_INLINEPARAMVALUE:
+           if (c=='\n') {
+              appendToBuf(c);
+              state=STATE_INLINEPARAMVALUE_BOL;
+           }
+           else if (c==EOL || c=='}') {
+              paramValue=bufToString();
+              AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, true);
+               if (null != newTag) {
+                  contextTag = newTag;
+               }
+              state=prevState;
+              setBufLength(0);
+           }
+           else {
+              appendToBuf(c);
+           }
+           break;
+
+        case STATE_INLINEPARAMVALUE_BOL:
+           if (Parser.isWhitespace(c)) {
+              // ignore
+           }
+           else if (c=='*') {
+              // ignore, but go to STATE_TEXT
+              if (i<endIndex && peek!='*') {
+                 state=STATE_IPV_WHITESPACE;
+              }
+           }
+           else if (c==EOL) {
+              if (bufLength()>0) { 
+                 AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+                  if (null != newTag) {
+                     contextTag = newTag;
+                  }
+              }
+           }
+           else {
+              state=STATE_INLINEPARAMVALUE;
+              appendToBuf(whitespaceBuf);
+              whitespaceBuf.setLength(0);
+              appendToBuf(c);
+           }
+           break;
+
+        case STATE_IPV_WHITESPACE:
+           if (c=='\n') {
+              whitespaceBuf.append(c);
+              state=STATE_INLINEPARAMVALUE_BOL;
+           }
+           else if (Parser.isWhitespace(c)) {
+              whitespaceBuf.append(c);
+           }
+           else if (c==EOL) {
+              if (bufLength()>0) { 
+                 AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+                  if (null != newTag) {
+                     contextTag = newTag;
+                  }
+                 setBufLength(0);
+              }
+           }
+           else {
+              appendToBuf(whitespaceBuf);
+              whitespaceBuf.setLength(0);
+              appendToBuf(c);
+              state=STATE_INLINEPARAMVALUE;
+           }
+           break;
+
+        case STATE_TEXT:
+           if (i==firstSentenceEnd) {
+              AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
+               if (null != newTag) {
+                  contextTag = newTag;
+               }
+              setBufLength(0);
+           }
+
+           if (c==EOL) {
+              paramValue=bufToString();
+              AbstractTagImpl newTag = addTag(tags, "text", paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+               if (null != newTag) {
+                  contextTag = newTag;
+               }
+           }
+           else if (c=='\n') {
+              appendToBuf(c);
+              state=STATE_BEGOFLINE;
+           }
+           else if (c=='{' && peek=='@') {
+              paramValue=bufToString();
+              AbstractTagImpl newTag = addTag(tags, "text", paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+               if (null != newTag) {
+                  contextTag = newTag;
+               }
+              ++i;
+               setBufLength(0);
+              state=STATE_INLINEPARAM;
+           }
+           else {
+              appendToBuf(c);
+           }
+           break;
+
+        default:
+           throw new Error("illegal state "+state);
+        }
+      }
+
+
+      if (null == contextMember && null != boilerplateComment && Main.getInstance().isCopyLicenseText()) {
+         addTag(tags, "@boilerplate", boilerplateComment, false, contextClass, null, null, false);
+      }
+
+      Map rc=new HashMap();
+
+      for (Iterator it=tags.keySet().iterator(); it.hasNext(); ) {
+        String key=(String)it.next();
+        Tag[] templateArr;
+        List list=(List)tags.get(key);
+
+        if ("see".equals(key))
+           templateArr=new SeeTag[list.size()];
+        else if ("param".equals(key))
+           templateArr=new ParamTag[list.size()];
+        else if ("serialField".equals(key))
+           templateArr=new SerialFieldTag[list.size()];
+        else if ("throws".equals(key) || "exception".equals(key))
+           templateArr=new ThrowsTag[list.size()];
+        else {
+           templateArr=new Tag[list.size()];
+        }
+
+        rc.put(key, list.toArray(templateArr));
+      }
+
+      return rc;
+   }
+
+   private ClassDocImpl getContextClass() {
+      if (isClass() || isInterface()) {
+        return (ClassDocImpl)this;
+      }
+      else if (isField() || isMethod() || isConstructor()) {
+        return (ClassDocImpl)((MemberDocImpl)this).containingClass();
+      }
+      else {
+        return null;
+      }
+   }
+
+   private MemberDocImpl getContextMember() {
+      if (isField() || isMethod() || isConstructor()) {
+        return (MemberDocImpl)this;
+      }
+      else {
+        return null;
+      }
+   }
+
+   protected static AbstractTagImpl addTag(Map tags, String name,
+                                           String value, boolean isFirstSentence,
+                                           ClassDocImpl contextClass,
+                                           MemberDocImpl contextMember,
+                                           AbstractTagImpl contextTag,
+                                           boolean isInline) {
+
+      AbstractTagImpl tag = null;
+
+      boolean haveValue = (0 != value.trim().length());
+
+      String emptyWarning = "Empty @" + name + " tag.";
+
+      if (name.equals("param")) {
+         if (haveValue) {
+            tag=new ParamTagImpl(value, contextClass, contextMember);
+         }
+         else {
+            //printWarning(emptyWarning);
+         }
+      }
+      else if (name.equals("see")) {
+         if (haveValue) {
+            tag=new SeeTagImpl(value, contextClass);
+         }
+         else {
+            //printWarning(emptyWarning);
+         }
+      }
+      else if (name.equals("link") || name.equals("linkplain")) {
+         if (haveValue) {
+            tag=new LinkTagImpl("@" + name, value, contextClass);
+            isInline = true;
+         }
+         else {
+            //printWarning(emptyWarning);
+         }
+      }
+      else if (name.equals("value")) {
+         if (haveValue) {
+            tag=new ValueTagImpl(value, contextClass);
+            isInline = true;
+         }
+         else {
+            //printWarning(emptyWarning);
+         }
+      }
+      else if (name.equals("inheritDoc")) {
+         if (haveValue) {
+            //printWarning("@inheritDoc tags are not supposed to have any content.");
+         }
+        tag=new InheritDocTagImpl(contextClass, contextMember, contextTag);
+         isInline = true;
+      }
+      else if (name.equals("serialField")) {
+         if (haveValue) {
+            tag=new SerialFieldTagImpl(value, contextClass, contextMember);
+         }
+         else {
+            //printWarning(emptyWarning);
+         }
+      }
+      else if (name.equals("throws") || name.equals("exception")) {
+         if (haveValue) {
+            tag=new ThrowsTagImpl(value, contextClass, contextMember);
+         }
+         else {
+            //printWarning(emptyWarning);
+         }
+        name="throws";
+      }
+      else if (name.equals("text")) {
+        tag=new TextTagImpl(value);
+         isInline = true;
+      }
+      else {
+        tag=new TagImpl("@"+name, value.trim(), contextClass, contextMember);
+         // FIXME: consider taglets
+      }
+
+      if (tag != null) {
+         if (isInline) {
+            ((List)tags.get("inline")).add(tag);
+            if (isFirstSentence) {
+               if (name.equals("text")) {
+                  String txt = ((TextTagImpl)tag).getText();
+                  Tag newTag;
+                  if (txt.startsWith("<p>")) {
+                     newTag = new TextTagImpl(txt.substring(3));
+                  }
+                  else if (txt.endsWith("</p>")) {
+                     newTag = new TextTagImpl(txt.substring(0, txt.length() - 4));
+                  }
+                  else {
+                     newTag = tag;
+                  }
+                  ((List)tags.get("first")).add(newTag);
+               
+               }
+               else {
+                  ((List)tags.get("first")).add(tag);
+               }
+            }
+         }
+         else {
+            ((List)tags.get("all")).add(tag);
+         }
+
+         List l=((List)tags.get(name));
+         if (l==null) {
+            l=new LinkedList();
+            tags.put(name,l);
+         }
+         l.add(tag);
+
+         return isInline ? tag : contextTag;
+      }
+      else {
+         return null;
+      }
+   }
+
+   // Return all tags in this Doc item. 
+   public Tag[] tags() {
+      Tag[] rc=(Tag[])tagMap.get("all");
+      if (rc==null) rc=new Tag[0];
+      return rc;
+   } 
+
+   // Return tags of the specified kind in this Doc item. 
+   public Tag[] tags(java.lang.String tagname) {
+      Tag[] rc=(Tag[])tagMap.get(tagname);
+      if (rc==null) rc=new Tag[0];
+      return rc;
+   } 
+
+   protected String rawDocumentation;
+   protected long rawDocOffset=-1;
+
+   protected Map tagMap = new HashMap();
+
+   public Map getTagMap() { return tagMap; }
+
+   protected void resolveTags() {
+
+      Tag[] tags=tags();
+      for (int i=0; i<tags.length; ++i) {
+        ((AbstractTagImpl)tags[i]).resolve();
+      }
+
+      Tag[] inlineTags=inlineTags();
+      for (int i=0; i<inlineTags.length; ++i) {
+        ((AbstractTagImpl)inlineTags[i]).resolve();
+      }
+   }
+
+   private static Map classDocToFileMap = new HashMap();
+
+   private static File getFile(ClassDoc classDoc) {
+      File result = (File)classDocToFileMap.get(classDoc);
+      if (null == result) {
+         result = new File(((GjdocPackageDoc)classDoc.containingPackage()).packageDirectory(),
+                           classDoc.name() + ".java");
+         classDocToFileMap.put(classDoc, result);
+      }
+      return result;
+   }
+
+   public static SourcePosition getPosition(ClassDoc classDoc)
+   {
+      return new SourcePositionImpl(getFile(classDoc), 0, 0);
+   }
+
+   public static SourcePosition getPosition(ClassDoc classDoc, char[] source, int startIndex)
+   {
+      int column = 0;
+      int line = 0;
+      for (int i=0; i<startIndex; ++i) {
+         if (10 == source[i]) {
+            ++ line;
+            column = 0;
+         }
+         else if (13 != source[i]) {
+            ++ column;
+         }
+      }
+      while (true) {
+         ClassDoc containingClassDoc = classDoc.containingClass();
+         if (null != containingClassDoc) {
+            classDoc = containingClassDoc;
+         }
+         else {
+            break;
+         }
+      }
+
+      File file = getFile(classDoc);
+      
+      return new SourcePositionImpl(file, line + 1, column + 1);
+   }
+
+   public SourcePosition position()
+   {
+      return this.position;
+   }
+
+   public DocImpl(SourcePosition position)
+   {
+      this.position = position;
+   }
+
+   public void setPosition(SourcePosition position)
+   {
+      this.position = position;
+   }
+
+   private static TagContainer checkForInheritedDoc(ClassDoc classDoc,
+                                                    MemberDocImpl memberDoc,
+                                                    AbstractTagImpl tag)
+   {
+      DocImpl result;
+
+      if (!(classDoc instanceof ClassDocImpl)) {
+         result = null;
+      }
+      else if (null == memberDoc) {
+         result = (DocImpl)classDoc;
+      }
+      else if (memberDoc.isField()) {
+         result = (DocImpl)((ClassDocImpl)classDoc).getFieldDoc(memberDoc.name());
+      }
+      else if (memberDoc.isMethod()) {
+         result = (DocImpl)((ClassDocImpl)classDoc).getMethodDoc(memberDoc.name(), 
+                                                                 ((MethodDoc)memberDoc).signature());
+      }
+      else if (memberDoc.isConstructor()) {
+         result = (DocImpl)((ClassDocImpl)classDoc).getConstructorDoc(((ConstructorDoc)memberDoc).signature());
+      }
+      else {
+         //assert(false);
+         throw new RuntimeException("memberDoc is supposed to be field, method or constructor");
+      }
+
+      if (null != result
+          && null != memberDoc
+          && null != tag) {
+
+         TagContainer tagDoc = null;
+
+         Tag[] tags = result.tags();
+         for (int i=0; i<tags.length; ++i) {
+            if (tags[i].kind().equals(tag.kind())) {
+               if ("@param".equals(tag.kind())) {
+                  if (((ParamTagImpl)tags[i]).parameterName().equals(((ParamTagImpl)tag).parameterName())) {
+                     tagDoc = (TagContainer)tags[i];
+                     break;
+                  }
+               }
+               else if ("@throws".equals(tag.kind())) {
+                  if (((ThrowsTagImpl)tags[i]).exceptionName().equals(((ThrowsTagImpl)tag).exceptionName())) {
+                     tagDoc = (TagContainer)tags[i];
+                     break;
+                  }
+               }
+               else if ("@return".equals(tag.kind())) {
+                  tagDoc = (TagContainer)tags[i];
+               }
+            }
+         }
+
+         return tagDoc;
+      }
+
+      if (null == result || result.isEmptyDoc()) {
+         return null;
+      }
+      else {
+         return result;
+      }
+   }
+
+   public static TagContainer findInheritedDoc(ClassDoc classDoc, 
+                                               MemberDocImpl memberDoc, 
+                                               AbstractTagImpl tag)
+   {
+      TagContainer result;
+
+      // (Taken from Javadoc Solaris Tool documentation 1.5,
+      // section "Automatic Copying of Method Comments")
+
+      // Algorithm for Inheriting Method Comments - If a method does
+      // not have a doc comment, or has an {@inheritDoc} tag, the
+      // Javadoc tool searches for an applicable comment using the
+      // following algorithm, which is designed to find the most
+      // specific applicable doc comment, giving preference to
+      // interfaces over superclasses:
+
+      // 1. Look in each directly implemented (or extended) interface
+      // in the order they appear following the word implements (or
+      // extends) in the method declaration. Use the first doc comment
+      // found for this method.
+      
+      ClassDoc[] interfaces = classDoc.interfaces();
+      if (null != interfaces) {
+         for (int i=0; i<interfaces.length; ++i) {
+            result = checkForInheritedDoc(interfaces[i], memberDoc, tag);
+            if (null != result) {
+               return result;
+            }
+         }
+      }
+
+      // 2. If step 1 failed to find a doc comment, recursively apply
+      // this entire algorithm to each directly implemented (or
+      // extended) interface, in the same order they were examined
+      // in step 1.
+
+      if (null != interfaces) {
+         for (int i=0; i<interfaces.length; ++i) {
+            result = findInheritedDoc(interfaces[i], memberDoc, tag);
+            if (null != result) {
+               return result;
+            }
+         }
+      }
+
+      ClassDoc superclassDoc = classDoc.superclass();
+
+      // 3. If step 2 failed to find a doc comment and this is a class
+      // other than Object (not an interface):
+      if (!classDoc.isInterface() 
+          && null != superclassDoc
+          && !"java.lang.Object".equals(classDoc.qualifiedTypeName())) {
+
+         // 3a. If the superclass has a doc comment for this method, use it.
+
+         result = checkForInheritedDoc(superclassDoc, memberDoc, tag);
+         if (null != result) {
+            return result;
+         }
+
+         // 3b. If step 3a failed to find a doc comment, recursively
+         // apply this entire algorithm to the superclass.
+
+         return findInheritedDoc(superclassDoc,
+                                 memberDoc, tag);
+      }
+      else {
+         return null;
+      }
+   }
+   
+   public boolean isEmptyDoc()
+   {
+      return tagMap.isEmpty();
+   }
+
+   void setBoilerplateComment(String boilerplateComment)
+   {
+      this.boilerplateComment = boilerplateComment;
+   }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java
new file mode 100644 (file)
index 0000000..a72c53e
--- /dev/null
@@ -0,0 +1,104 @@
+/* gnu.classpath.tools.gjdoc.ErrorReporter\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.gjdoc;\r
+\r
+import com.sun.javadoc.*;\r
+import java.io.*;\r
+import java.util.*;\r
+import java.lang.reflect.*;\r
+\r
+/**\r
+ *  Simple implementation of a <code>DocErrorReporter</code>: writes\r
+ *  to <code>System.err</code>.\r
+ */\r
+public class ErrorReporter implements DocErrorReporter {\r
+\r
+   private PrintStream out;\r
+\r
+   /**\r
+    *  Keeps track of the number of errors occured\r
+    *  during generation.\r
+    */\r
+   private int errorCount=0;\r
+\r
+   /**\r
+    *  Keeps track of the number of warnings occured\r
+    *  during generation.\r
+    */\r
+   private int warningCount=0;\r
+\r
+   /*\r
+    *  When <code>true</code>, no notices will be emitted.\r
+    */\r
+   private boolean quiet = false;\r
+   \r
+   /*\r
+    *  When <code>true</code>, no warnings will be emitted.\r
+    */\r
+   private boolean noWarn = false;\r
+\r
+   public ErrorReporter()\r
+   {\r
+      this.out = System.err;\r
+   }\r
+\r
+   // Print error message, increment error count. \r
+   public void printError(java.lang.String msg) {\r
+      out.println("ERROR: "+msg);\r
+      ++errorCount;\r
+   }\r
+\r
+   // Print error message, increment error count. \r
+   public void printFatal(java.lang.String msg) {\r
+      out.println("FATAL: "+msg);\r
+      System.exit(10);\r
+   }\r
+\r
+   // Print a message. \r
+   public void printNotice(java.lang.String msg) {\r
+      if (!quiet) {\r
+        out.println(msg);\r
+      }\r
+   }\r
+   \r
+   // Print warning message, increment warning count. \r
+   public void printWarning(java.lang.String msg) {\r
+      if (!noWarn) {\r
+        out.println("WARNING: "+msg);\r
+        ++warningCount;;\r
+      }\r
+   }\r
+\r
+   public int getErrorCount() {\r
+      return errorCount;\r
+   }\r
+\r
+   public int getWarningCount() {\r
+      return warningCount;\r
+   }\r
+\r
+   /**\r
+    *  Specify whether notices should be printed.\r
+    */\r
+   public void setQuiet(boolean quiet) {\r
+      this.quiet = quiet;\r
+   }\r
+}\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java
new file mode 100644 (file)
index 0000000..7dcdd25
--- /dev/null
@@ -0,0 +1,411 @@
+/* gnu.classpath.tools.gjdoc.ExecutableMemberDocImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import java.io.*;
+import com.sun.javadoc.*;
+
+public class ExecutableMemberDocImpl extends MemberDocImpl implements ExecutableMemberDoc {
+
+   protected ExecutableMemberDocImpl(ClassDoc containingClass,
+                                    PackageDoc containingPackage,
+                                     SourcePosition position) {
+      
+      super(containingClass,
+           containingPackage,
+            position);
+   }
+
+   protected boolean processModifier(String word) {
+      if (super.processModifier(word)) {
+        return true;
+      }
+      else if (word.equals("synchronized")) {
+        isSynchronized=true;
+        return true;    
+      }
+      else if (word.equals("native")) {
+        isNative=true;
+        return true;    
+      }
+      else if (word.equals("abstract")) {
+        isAbstract=true;
+        return true;    
+      }
+      else {
+        return false;
+      }
+   }
+
+   private boolean isAbstract=false;
+   private boolean isNative=false;
+   private boolean isSynchronized=false;
+
+   public boolean isAbstract() { return isAbstract; }
+
+   public boolean isNative() { return isNative; }
+
+   public boolean isSynchronized() { return isSynchronized; }
+
+   public ClassDoc[] thrownExceptions() { return thrownExceptions; }
+
+   public Parameter[] parameters() { return parameters; }
+
+   public ThrowsTag[] throwsTags() { 
+      return (ThrowsTag[])getTagArr("throws", throwsTagEmptyArr);
+   }
+
+   public ParamTag[] paramTags() { 
+      return (ParamTag[])getTagArr("param", paramTagEmptyArr);
+   }
+
+   public String signature() { return signature; }
+   public String flatSignature() { return flatSignature; }
+
+   public ClassDoc overriddenClass() { 
+      for (ClassDoc cdi=(ClassDoc)containingClass().superclass(); cdi!=null; cdi=(ClassDoc)cdi.superclass()) {
+        if (null!=ClassDocImpl.findMethod(cdi, name(), signature()))
+           return cdi;
+      }
+      return null;
+   }
+
+   public static ExecutableMemberDocImpl createFromSource(ClassDoc containingClass,
+                                                         PackageDoc containingPackage,
+                                                         char[] source, int startIndex, int endIndex) throws IOException, ParseException {
+
+      int lastchar=32;
+      StringBuffer methodName=new StringBuffer();
+      for (int i=startIndex; i<endIndex && source[i]!='('; ++i) {
+        if ((Parser.WHITESPACE.indexOf(lastchar)>=0 && Parser.WHITESPACE.indexOf(source[i])<0)
+             || (lastchar == ']' && Parser.WHITESPACE.indexOf(source[i])<0 && '[' != source[i])) {
+            methodName.setLength(0);
+            methodName.append(source[i]);
+         }
+        else if (Parser.WHITESPACE.indexOf(source[i])<0) {
+            methodName.append(source[i]);
+         }
+        lastchar=source[i];
+      }
+
+      ExecutableMemberDocImpl rc;
+
+      SourcePosition position = DocImpl.getPosition(containingClass, source, startIndex);
+
+      if (methodName.toString().equals(((ClassDocImpl)containingClass).getClassName())) {
+        
+        // Constructor
+
+        rc=new ConstructorDocImpl(containingClass,
+                                  containingPackage,
+                                   position);
+      }
+      else {
+
+        // Normal method
+
+        rc=new MethodDocImpl(containingClass,
+                             containingPackage,
+                              position);
+      }
+      
+      if (containingClass.isInterface())
+        rc.accessLevel=ACCESS_PUBLIC;
+
+      int ndx=rc.parseModifiers(source, startIndex, endIndex);
+      StringBuffer name = new StringBuffer();
+
+      final int STATE_NORMAL=1;
+      final int STATE_STARC=2;
+      final int STATE_SLASHC=3;
+
+      int state=STATE_NORMAL;
+
+      while (source[ndx]!='(' && ndx<endIndex) {
+        if (state==STATE_NORMAL) {
+           if (ndx<endIndex-1 && source[ndx]=='/' && source[ndx+1]=='/') {
+              ++ndx;
+              state=STATE_SLASHC;
+           }
+           else if (ndx<endIndex-1 && source[ndx]=='/' && source[ndx+1]=='*') {
+              ++ndx;
+              state=STATE_STARC;
+           }
+           else {
+              name.append(source[ndx]);
+           }
+        }
+        else if (state==STATE_SLASHC) {
+           if (source[ndx]=='\n')
+              state=STATE_NORMAL;
+        }
+        else if (state==STATE_STARC) {
+           if (ndx<endIndex-1 && source[ndx]=='*' && source[ndx+1]=='/') {
+              ++ndx;
+              state=STATE_NORMAL;
+           }
+        }
+        ++ndx;
+      }
+      rc.setName(name.toString().trim());
+
+      state=STATE_NORMAL;
+      
+      ++ndx;
+      int endx;
+      String param="";
+      List parameterList=new ArrayList();
+      for (endx=ndx; endx<endIndex; ++endx) {
+        if (state==STATE_SLASHC) {
+           if (source[endx]=='\n') {
+              state=STATE_NORMAL;
+           }
+        }
+        else if (state==STATE_STARC) {
+           if (source[endx]=='*' && source[endx+1]=='/') {
+              state=STATE_NORMAL;
+              ++endx;
+           }
+        }
+        else if (source[endx]=='/' && source[endx+1]=='*') {
+           state=STATE_STARC;
+           ++endx;
+        }
+        else if (source[endx]=='/' && source[endx+1]=='/') {
+           state=STATE_SLASHC;
+           ++endx;
+        }
+        else if (source[endx]==',' || source[endx]==')') {
+           param=param.trim();
+           if (param.length()>0) {
+              int n = param.length()-1;
+               int paramNameStart = 0;
+               while (n >= 0) {
+                  char c = param.charAt(n);
+                 if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) {
+                     paramNameStart = n + 1;
+                    break;
+                  }
+                  else {
+                     -- n;
+                  }
+               }
+               while (n >= 0 && ('[' == param.charAt(n)
+                                 || ']' == param.charAt(n)
+                                 || Parser.WHITESPACE.indexOf(param.charAt(n))>=0)) {
+                  -- n;
+               }
+               int paramTypeEnd = n + 1;
+               int paramTypeStart = 0;
+               while (n >= 0) {
+                  char c = param.charAt(n);
+                 if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) {
+                     paramTypeStart = n + 1;
+                    break;
+                  }
+                  else {
+                     -- n;
+                  }
+               }
+
+              String paramType;
+              String paramName;
+              if (0 != paramNameStart) {
+                 paramType=param.substring(paramTypeStart, paramTypeEnd);
+                 paramName=param.substring(paramNameStart);
+              }
+               else {
+                  paramName = "";
+                  StringBuffer paramTypeBuffer = new StringBuffer();
+                  for (int i=0; i<param.length(); ++i) {
+                     char c = param.charAt(i);
+                     if ('[' != c && ']' != c && Parser.WHITESPACE.indexOf(c)<0) {
+                        paramTypeBuffer.append(c);
+                     }
+                  }
+                  paramType = paramTypeBuffer.toString();
+               }
+              String dimSuffix="";
+
+               for (int i=0; i<param.length(); ++i) {
+                  if ('[' == param.charAt(i)) {
+                     dimSuffix += "[]";
+                  }
+               }
+              paramType+=dimSuffix;
+
+               if (paramType.startsWith("[")) {
+                  System.err.println("broken param type in " + rc + " in " +containingClass);
+               }
+
+              parameterList.add(new ParameterImpl(paramName, paramType, 
+                                                  ((ClassDocImpl)containingClass).typeForString(paramType)));
+
+              param="";
+           }
+        }
+        else
+           param+=source[endx];
+
+        if (source[endx]==')' && state==STATE_NORMAL)
+           break;
+      }
+
+      rc.setParameters((Parameter[])parameterList.toArray(new Parameter[0]));
+      
+      ++endx;
+      String word="";
+      String dimSuffix="";
+      boolean haveThrowsKeyword=false;
+      List thrownExceptionsList=new ArrayList();
+
+      state=STATE_NORMAL;
+      for (; endx<endIndex; ++endx) {
+        if (state==STATE_SLASHC) {
+           if (source[endx]=='\n') state=STATE_NORMAL;
+        }
+        else if (state==STATE_STARC) {
+           if (source[endx]=='*' && source[endx+1]=='/') {
+              state=STATE_NORMAL;
+              ++endx;
+           }
+        }
+        else if (source[endx]=='/' && source[endx+1]=='*') {
+           state=STATE_STARC;
+           ++endx;
+        }
+        else if (source[endx]=='/' && source[endx+1]=='/') {
+           state=STATE_SLASHC;
+           ++endx;
+        }
+        else if (Parser.WHITESPACE.indexOf(source[endx])>=0) {
+           word=word.trim();
+           if (!haveThrowsKeyword && word.length()>0) {
+              if (word.equals("throws")) haveThrowsKeyword=true;
+              else System.err.println("ARGH! "+word);
+              word="";
+           }
+        }
+        else if (source[endx]=='[' || source[endx]==']') {
+           dimSuffix += source[endx];
+        }
+        else if (source[endx]==',' || source[endx]=='{' || source[endx]==';') {
+           word=word.trim();
+           if (word.length()>0) {
+              ClassDoc exceptionType=rc.containingClass().findClass(word);
+              if (exceptionType==null) {
+                 exceptionType=new ClassDocProxy(word, 
+                                                  rc.containingClass());
+              }
+              thrownExceptionsList.add(exceptionType);
+           }
+           if (source[endx]=='{') {
+              break;
+           }
+           else {
+              word="";
+           }
+        }
+        else {
+           word+=source[endx];
+        }
+      }
+
+      if (dimSuffix.length()>0) {
+        rc.setTypeName(rc.getTypeName()+dimSuffix);
+      }
+
+      rc.setThrownExceptions((ClassDoc[])thrownExceptionsList.toArray(new ClassDoc[0]));
+
+      return rc;
+   }
+
+   private ClassDoc[] thrownExceptions;
+   private Parameter[] parameters;
+   private String signature;
+   private String flatSignature;
+
+   void setParameters(Parameter[] parameters) {
+      this.parameters=parameters;
+   }
+
+   void setThrownExceptions(ClassDoc[] thrownExceptions) {
+      this.thrownExceptions=thrownExceptions;
+   }
+
+   void resolve() {
+
+      for (int i=0; i<thrownExceptions.length; ++i) {
+        if (thrownExceptions[i] instanceof ClassDocProxy) {
+           String className=thrownExceptions[i].qualifiedName();
+           ClassDoc realClassDoc=containingClass().findClass(className);
+           if (realClassDoc!=null)
+              thrownExceptions[i]=realClassDoc;
+        }
+      }
+
+      StringBuffer signatureBuf=new StringBuffer();
+      StringBuffer flatSignatureBuf=new StringBuffer();
+
+      for (int i=0; i<parameters.length; ++i) {
+        ((ParameterImpl)parameters[i]).resolve(containingClass());
+
+        if (signatureBuf.length()>0) {
+           signatureBuf.append(",");
+           flatSignatureBuf.append(",");
+        }
+        signatureBuf.append(parameters[i].type().qualifiedTypeName());
+        flatSignatureBuf.append(parameters[i].type().typeName());
+         signatureBuf.append(parameters[i].type().dimension());
+         flatSignatureBuf.append(parameters[i].type().dimension());
+      }
+      this.signature="("+signatureBuf.toString()+")";
+      this.flatSignature="("+flatSignatureBuf.toString()+")";
+
+      super.resolve();
+
+   }
+
+   public int compareTo(Object other) {
+      int rc;
+      if (other instanceof MemberDocImpl) {
+         MemberDocImpl otherMember = (MemberDocImpl)other;
+        rc = name().compareTo(otherMember.name());
+         if (0 == rc) {
+            if (other instanceof ExecutableMemberDocImpl) {
+               rc = signature().compareTo(((ExecutableMemberDocImpl)other).signature());
+               if (0 == rc) {
+                  return containingClass().compareTo(otherMember.containingClass());
+               }
+            }
+            else {
+               rc = 1;
+            }
+         }
+      }
+      else {
+        rc = 1;
+      }
+      return rc;
+   }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java
new file mode 100644 (file)
index 0000000..8d5b66f
--- /dev/null
@@ -0,0 +1,392 @@
+/* gnu.classpath.tools.gjdoc.FieldDocImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import com.sun.javadoc.*;
+import java.lang.reflect.Modifier;
+
+import gnu.classpath.tools.gjdoc.expr.Evaluator;
+import gnu.classpath.tools.gjdoc.expr.CircularExpressionException;
+import gnu.classpath.tools.gjdoc.expr.IllegalExpressionException;
+
+public class FieldDocImpl 
+   extends MemberDocImpl 
+   implements FieldDoc, Cloneable 
+{
+
+   private boolean isTransient;
+   private boolean isVolatile;
+   private String valueLiteral;
+   private Object constantValue;
+   private boolean constantValueEvaluated;
+
+   private FieldDocImpl(ClassDoc containingClass,
+                        PackageDoc containingPackage,
+                        SourcePosition position) {
+
+      super(containingClass,
+           containingPackage,
+            position);
+   }
+
+   private static FieldDocImpl createFieldDoc(FieldDocImpl prototype,
+                                              String fieldDef,
+                                              String fieldValueLiteral)
+   {
+      if (null != fieldValueLiteral && fieldValueLiteral.length() == 0) {
+         fieldValueLiteral = null;
+      }
+
+      try {
+         FieldDocImpl fieldDoc=(FieldDocImpl)prototype.clone();
+         String dimSuffix="";
+         while (fieldDef.trim().endsWith("[")
+                || fieldDef.trim().endsWith("]")) {
+            fieldDef=fieldDef.trim();
+            dimSuffix=fieldDef.charAt(fieldDef.length()-1)+dimSuffix;
+            fieldDef=fieldDef.substring(0,fieldDef.length()-1);
+         }
+         
+         fieldDoc.setTypeName(fieldDoc.getTypeName()+dimSuffix);
+         fieldDoc.setName(fieldDef.trim());
+         fieldDoc.setValueLiteral(fieldValueLiteral);
+         return fieldDoc;
+      }
+      catch (CloneNotSupportedException e) {
+         // should not happen
+         e.printStackTrace();
+         return null;
+      }
+   }
+
+   public static Collection createFromSource(ClassDoc containingClass,
+                                            PackageDoc containingPackage,
+                                            char[] source, int startIndex, int endIndex) {
+      
+      List rcList=new ArrayList();
+
+      FieldDocImpl fd=new FieldDocImpl(containingClass,
+                                      containingPackage,
+                                       DocImpl.getPosition(containingClass, source, startIndex));
+
+      int ndx=fd.parseModifiers(source, startIndex, endIndex);
+
+      if (containingClass.isInterface()) {
+         fd.accessLevel = ACCESS_PUBLIC;
+      }
+
+      final int STATE_FIELDNAME   = 1;
+      final int STATE_FIELDVALUE  = 2;
+      final int STATE_QUOTE       = 3;
+      final int STATE_QUOTEBS     = 4;
+      final int STATE_SQUOTE      = 5;
+      final int STATE_SQUOTEBS    = 6;
+      final int STATE_COMMENT     = 7;
+      final int STATE_LINECOMMENT = 8;
+
+      int lastFieldDefStart = ndx;
+      int state = STATE_FIELDNAME;
+      int prevState = state;
+
+      int bracketCount = 0;
+
+      StringBuffer fieldNameBuf = new StringBuffer();
+      StringBuffer fieldValueLiteralBuf = new StringBuffer();
+
+      for (int i=ndx; i<endIndex; ++i) {
+
+        char c = source[i];
+         char nextChar = '\0';
+         if (i + 1 < endIndex) {
+            nextChar = source[i + 1];
+         }
+        switch (state) {
+         case STATE_FIELDNAME:
+            if ('/' == c && '/' == nextChar) {
+               prevState = state;
+               state = STATE_LINECOMMENT;
+            }
+            else if ('/' == c && '*' == nextChar) {
+               prevState = state;
+               state = STATE_COMMENT;
+            }
+            else if (',' == c || ';' == c) {
+               rcList.add(createFieldDoc(fd, fieldNameBuf.toString(), null));
+               fieldNameBuf.setLength(0);
+            }
+            else if ('=' == c) {
+               state = STATE_FIELDVALUE;
+            }
+            else if (!(' ' == c || '\n' == c || '\r' == c || '\t' == c)) {
+               fieldNameBuf.append(c);
+            }
+            break;
+
+        case STATE_FIELDVALUE:
+            if ('/' == c && '/' == nextChar) {
+               prevState = state;
+               state = STATE_LINECOMMENT;
+            }
+            else if ('/' == c && '*' == nextChar) {
+               prevState = state;
+               state = STATE_COMMENT;
+            }
+           else if ('\"' == c) {
+               prevState = state;
+              state = STATE_QUOTE;
+               fieldValueLiteralBuf.append(c);
+           }
+           else if ('\'' == c) {
+               prevState = state;
+              state = STATE_SQUOTE;
+               fieldValueLiteralBuf.append(c);
+           }
+           else if ('{' == c || '(' == c) {
+               ++ bracketCount;
+               fieldValueLiteralBuf.append(c);
+           }
+           else if ('}' == c || ')' == c) {
+               -- bracketCount;
+               fieldValueLiteralBuf.append(c);
+           }
+           else if (0 == bracketCount && (',' == c || ';' == c)) {
+               rcList.add(createFieldDoc(fd, fieldNameBuf.toString(), 
+                                         fieldValueLiteralBuf.toString()));
+               fieldNameBuf.setLength(0);
+               fieldValueLiteralBuf.setLength(0);
+              state = STATE_FIELDNAME;
+           }
+            else {
+               fieldValueLiteralBuf.append(c);
+            }
+           break;
+           
+        case STATE_QUOTE:
+            fieldValueLiteralBuf.append(c);
+           if ('\\' == c) {
+              state = STATE_QUOTEBS;
+           }
+           else if ('\"' == c) {
+              state = prevState;
+           }
+           break;
+           
+        case STATE_SQUOTE:
+            fieldValueLiteralBuf.append(c);
+           if ('\\' == c) {
+              state = STATE_SQUOTEBS;
+           }
+           else if ('\'' == c) {
+              state = prevState;
+           }
+           break;
+           
+        case STATE_QUOTEBS:
+            fieldValueLiteralBuf.append(c);
+           state = STATE_QUOTE;
+           break;
+
+        case STATE_SQUOTEBS:
+            fieldValueLiteralBuf.append(c);
+           state = STATE_SQUOTE;
+           break;
+
+         case STATE_LINECOMMENT:
+            if ('\n' == c) {
+               state = prevState;
+            }
+            break;
+
+         case STATE_COMMENT:
+            if ('*' == c && '/' == nextChar) {
+               ++ i;
+               state = prevState;
+            }
+            break;
+         }
+      }
+      
+      if (fieldNameBuf.length() > 0) {
+         rcList.add(createFieldDoc(fd, fieldNameBuf.toString(), 
+                                   fieldValueLiteralBuf.toString()));
+      }
+
+      return rcList;
+   }
+
+   public boolean isField() {
+      return true;
+   } 
+
+   public boolean isTransient() { return isTransient; }
+
+   public boolean isVolatile() { return isVolatile; }
+
+   public SerialFieldTag[] serialFieldTags() { return new SerialFieldTag[0]; }
+
+   public int modifierSpecifier() {
+      return super.modifierSpecifier()
+        | (isVolatile()?Modifier.VOLATILE:0)
+        | (isTransient()?Modifier.TRANSIENT:0)
+        ;
+   }
+
+   protected boolean processModifier(String word) {
+      if (super.processModifier(word)) {
+        return true;
+      }
+      else if (word.equals("transient")) {
+        isTransient=true;
+        return true;    
+      }
+      else if (word.equals("volatile")) {
+        isVolatile=true;
+        return true;    
+      }
+      else {
+        return false;
+      }
+   }
+
+   void resolve() {
+      resolveTags();
+   }
+
+   public boolean hasSerialTag() {
+      return true; //tagMap.get("serial")!=null;
+   }
+
+   public String toString() { return name(); }
+
+   public Object constantValue() {
+      return constantValue(new HashSet());
+   }
+
+   public Object constantValue(Set visitedFields) {
+      if (!isStatic() 
+          || !isFinal() 
+          || (!type().isPrimitive() && !"java.lang.String".equals(type().qualifiedTypeName()))
+          || type.dimension().length()>0 
+          || null == valueLiteral) {
+
+         return null;
+
+      }
+      else {
+         if (!constantValueEvaluated) {
+
+            visitedFields.add(this);
+
+            String expression = "(" + type().typeName() + ")(" + valueLiteral + ")";
+            try {
+               this.constantValue = Evaluator.evaluate(expression, 
+                                                       visitedFields,
+                                                       (ClassDocImpl)containingClass());
+            }
+            catch (CircularExpressionException e) {
+               // FIXME: This should use the error reporter
+               System.err.println("WARNING: Cannot resolve expression for field " + containingClass.qualifiedTypeName() + "." + name() + ": " + e.getMessage());
+            }
+            catch (IllegalExpressionException ignore) {
+            }
+            constantValueEvaluated = true;
+         }
+         return this.constantValue;
+      }
+   }
+
+   private static void appendCharString(StringBuffer result, char c, boolean inSingleCuotes)
+   {
+      switch (c) {
+      case '\b': result.append("\\b"); break;
+      case '\t': result.append("\\t"); break;
+      case '\n': result.append("\\n"); break;
+      case '\f': result.append("\\f"); break;
+      case '\r': result.append("\\r"); break;
+      case '\"': result.append("\\\""); break;
+      case '\'': result.append(inSingleCuotes ? "\\'" : "'"); break;
+      default:
+         if (c >= 32 && c <= 127) {
+            result.append(c);
+         }
+         else {
+            result.append("\\u");
+            String hexValue = Integer.toString((int)c, 16);
+            int zeroCount = 4 - hexValue.length();
+            for (int i=0; i<zeroCount; ++i) {
+               result.append('0');
+            }
+            result.append(hexValue);
+         }
+      }
+   }
+
+   public String constantValueExpression() {
+      Object value = constantValue();
+
+      if (null == value) {
+         return "null";
+      }
+      else if (value instanceof String) {
+         StringBuffer result = new StringBuffer("\"");
+         char[] chars = ((String)value).toCharArray();
+         for (int i=0; i<chars.length; ++i) {
+            appendCharString(result, chars[i], false);
+         }
+         result.append("\"");
+         return result.toString();
+      }
+      else if (value instanceof Float) {
+         return value.toString() + "f";
+      }
+      else if (value instanceof Long) {
+         return value.toString() + "L";
+      }
+      else if (value instanceof Character) {
+         StringBuffer result = new StringBuffer("'");
+         appendCharString(result, ((Character)value).charValue(), false);
+         result.append("'");
+         return result.toString();
+      }
+      else /* if (value instanceof Double
+               || value instanceof Integer
+               || value instanceof Short
+               || value instanceof Byte) */ {
+         return value.toString();
+      }
+   }
+
+   void setValueLiteral(String valueLiteral)
+   {
+      this.valueLiteral = valueLiteral;
+   }
+
+   public boolean isStatic()
+   {
+      return super.isStatic() || containingClass().isInterface();
+   }
+
+   public boolean isFinal()
+   {
+      return super.isFinal() || containingClass().isInterface();
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java
new file mode 100644 (file)
index 0000000..3a3e38f
--- /dev/null
@@ -0,0 +1,39 @@
+/* gnu.classpath.tools.gjdoc.GjdocPackageDoc
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.io.File;
+import com.sun.javadoc.PackageDoc;
+
+/**
+ *  Extension of the PackageDoc interface which additionally provides
+ *  the directory the package's source files are located in.
+ *
+ *  @author Julian Scheid
+ */
+public interface GjdocPackageDoc extends PackageDoc
+{
+   /**
+    *  Returns the directory this package's source files are located
+    *  in.
+    */
+   public File packageDirectory();
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java
new file mode 100644 (file)
index 0000000..65020d7
--- /dev/null
@@ -0,0 +1,39 @@
+/* gnu.classpath.tools.gjdoc.GjdocRootDoc
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.io.File;
+import com.sun.javadoc.RootDoc;
+
+/**
+ *  Extension of the RootDoc interface which additionally provides
+ *  a method for flushing all state.
+ *
+ *  @author Julian Scheid
+ */
+public interface GjdocRootDoc extends RootDoc
+{
+   /**
+    *  Invalidate this RootDoc by flushing all associated data, but
+    *  keep its error reporting functionality intact.
+    */
+   public void flush();
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java
new file mode 100644 (file)
index 0000000..773c5fd
--- /dev/null
@@ -0,0 +1,86 @@
+/* gnu.classpath.tools.gjdoc.InheritDocTagImpl
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+/**
+ *  Represents the <code>inheritDoc</code> tag.
+ */
+public class InheritDocTagImpl 
+   extends AbstractTagImpl
+{
+   private ClassDocImpl contextClass;
+   private MemberDocImpl contextMember;
+   private AbstractTagImpl contextTag;
+
+   public InheritDocTagImpl(ClassDocImpl contextClass,
+                            MemberDocImpl contextMember,
+                            AbstractTagImpl contextTag)
+   {
+      super("");
+      this.contextClass = contextClass;
+      this.contextMember = contextMember;
+      this.contextTag = contextTag;
+   }
+
+   public String kind() {
+      return "@inheritDoc";
+   }
+
+   public String name() {
+      return "@inheritDoc";
+   }
+
+   private TagContainer inheritedDoc;
+   private boolean inheritedDocInitialized = false;
+
+   private TagContainer getInheritedDoc()
+   {
+      if (!inheritedDocInitialized) {
+         inheritedDoc = DocImpl.findInheritedDoc(contextClass, contextMember, contextTag);
+         inheritedDocInitialized = true;
+      }
+      return inheritedDoc;
+   }
+
+   public Tag[] firstSentenceTags() {
+      TagContainer _inheritedDoc = getInheritedDoc();
+      if (_inheritedDoc != null) {
+         return _inheritedDoc.firstSentenceTags();
+      }
+      else {
+         return null;
+      }
+   }
+
+   public Tag[] inlineTags() {
+      TagContainer _inheritedDoc = getInheritedDoc();
+      if (_inheritedDoc != null) {
+         return _inheritedDoc.inlineTags();
+      }
+      else {
+         return null;
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java
new file mode 100644 (file)
index 0000000..3728630
--- /dev/null
@@ -0,0 +1,36 @@
+/* gnu.classpath.tools.gjdoc.JavadocWrapper
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import java.io.*;
+import com.sun.javadoc.*;
+
+public class JavadocWrapper {
+
+    public static void main(String[] args) throws Exception {
+
+       Timer.setStartTime();
+       Class sunJavadocMain=Class.forName("com.sun.tools.javadoc.Main");
+       sunJavadocMain.getMethod("main", new Class[]{String[].class}).invoke(null, new Object[]{args});
+    }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java
new file mode 100644 (file)
index 0000000..167c515
--- /dev/null
@@ -0,0 +1,46 @@
+/* gnu.classpath.tools.gjdoc.LinkTagImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class LinkTagImpl extends SeeTagImpl {
+
+   private String name;
+
+   public LinkTagImpl(String name, String _text, ClassDocImpl contextClass) {
+      super(_text, contextClass);
+      this.name = name;
+   }
+
+   public String name() { return name; }
+
+   public Tag[] firstSentenceTags() {
+      return new Tag[0]; //inlineTags();
+   }
+
+   public Tag[] inlineTags() {
+      return new Tag[0]; //new Tag[]{new TextTagImpl(referencedClassName)};
+   }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java
new file mode 100644 (file)
index 0000000..6c2c77e
--- /dev/null
@@ -0,0 +1,1846 @@
+/* gnu.classpath.tools.gjdoc.Main
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.io.*;
+import java.util.*;
+import java.lang.reflect.*;
+import java.text.Collator;
+
+import gnu.classpath.tools.FileSystemClassLoader;
+
+/**
+ * Class that will launch the gjdoc tool.
+ */
+public final class Main
+{
+
+  /**
+   * Do we load classes that are referenced as base class?
+   */
+  static final boolean DESCEND_SUPERCLASS = true;
+
+  /**
+   * Do we load classes that are referenced as interface?
+   */
+  static final boolean DESCEND_INTERFACES = false;
+
+  /**
+   * Do we load classes that are imported in a source file?
+   */
+  static final boolean DESCEND_IMPORTED = true;
+
+  /**
+   * Document only public members.
+   */
+  static final int COVERAGE_PUBLIC = 0;
+
+  /**
+   * Document only public and protected members.
+   */
+  static final int COVERAGE_PROTECTED = 1;
+
+  /**
+   * Document public, protected and package private members.
+   */
+  static final int COVERAGE_PACKAGE = 2;
+
+  /**
+   * Document all members.
+   */
+  static final int COVERAGE_PRIVATE = 3;
+
+  /*
+   *  FIXME: This should come from a ResourceBundle
+   */
+  private static final String STRING_TRY_GJDOC_HELP = 
+     "Try `gjdoc --help' for more information.";
+
+  /**
+   * Grid for looking up whether a particular access level is included in the
+   * documentation.
+   */
+  static final boolean[][] coverageTemplates = new boolean[][]
+    { new boolean[]
+      { true, false, false, false }, // public
+        new boolean[]
+          { true, true, false, false }, // protected
+        new boolean[]
+          { true, true, true, false }, // package
+        new boolean[]
+          { true, true, true, true }, // private
+    };
+
+  /**
+   * Holds the Singleton instance of this class.
+   */
+  private static Main instance = new Main();
+
+  /**
+   * Avoid re-instantiation of this class.
+   */
+  private Main()
+  {
+  }
+
+  private static RootDocImpl rootDoc;
+
+  private ErrorReporter reporter;
+
+  /**
+   * Cache for version string from resource /version.properties
+   */
+  private String gjdocVersion;
+
+  /**
+   * <code>false</code> during Phase I: preparation of the documentation data.
+   * <code>true</code> during Phase II: documentation output by doclet.
+   */
+  boolean docletRunning = false;
+
+  //---- Command line options
+
+  /**
+   * Option "-doclet": name of the Doclet class to use.
+   */
+  private String option_doclet = "gnu.classpath.tools.doclets.htmldoclet.HtmlDoclet";
+
+  /**
+   * Option "-overview": path to the special overview file.
+   */
+  private String option_overview;
+
+  /**
+   * Option "-coverage": which members to include in generated documentation.
+   */
+  private int option_coverage = COVERAGE_PROTECTED;
+
+  /**
+   * Option "-help": display command line usage.
+   */
+  private boolean option_help;
+
+  /**
+   * Option "-docletpath": path to doclet classes.
+   */
+  private String option_docletpath;
+
+  /**
+   * Option "-classpath": path to additional classes.
+   */
+  private String option_classpath;
+
+  /**
+   * Option "-sourcepath": path to the Java source files to be documented.
+   * FIXME: this should be a list of paths
+   */
+  private List option_sourcepath = new ArrayList();
+
+  /**
+   * Option "-extdirs": path to Java extension files.
+   */
+  private String option_extdirs;
+
+  /**
+   * Option "-verbose": Be verbose when generating documentation.
+   */
+  private boolean option_verbose;
+
+  /**
+   * Option "-nowarn": Do not print warnings.
+   */
+  private boolean option_nowarn;
+
+  /**
+   * Option "-locale:" Specify the locale charset of Java source files.
+   */
+  private Locale option_locale = new Locale("en", "us");
+
+  /**
+   * Option "-encoding": Specify character encoding of Java source files.
+   */
+  private String option_encoding;
+
+  /**
+   * Option "-J": Specify flags to be passed to Java runtime.
+   */
+  private List option_java_flags = new LinkedList(); //ArrayList();
+
+  /**
+   * Option "-source:" should be 1.4 to handle assertions, 1.1 is no
+   * longer supported.
+   */
+  private String option_source = "1.2";
+
+  /**
+   * Option "-subpackages": list of subpackages to be recursively
+   * added.
+   */
+  private List option_subpackages = new ArrayList();
+
+  /**
+   * Option "-exclude": list of subpackages to exclude.
+   */
+  private List option_exclude = new ArrayList();
+
+  /**
+   * Option "-breakiterator" - whether to use BreakIterator for
+   * detecting the end of the first sentence.
+   */
+  private boolean option_breakiterator;
+
+  /**
+   * Option "-licensetext" - whether to copy license text.
+   */
+  private boolean option_licensetext;
+
+  /**
+   * The locale-dependent collator used for sorting.
+   */
+  private Collator collator;
+
+  /**
+   * true when --version has been specified on the command line.
+   */
+  private boolean option_showVersion;
+  
+  /**
+   * true when -bootclasspath has been specified on the command line.
+   */
+  private boolean option_bootclasspath_specified;
+  
+  /**
+   * true when -all has been specified on the command line.
+   */
+  private boolean option_all;
+
+  /**
+   * true when -reflection has been specified on the command line.
+   */
+  private boolean option_reflection;
+  
+  // TODO: add the rest of the options as instance variables
+  
+  /**
+   * Parse all source files/packages and subsequentially start the Doclet given
+   * on the command line.
+   * 
+   * @param allOptions List of all command line tokens
+   */
+  private boolean startDoclet(List allOptions)
+  {
+
+    try
+    {
+
+      //--- Fetch the Class object for the Doclet.
+
+      Debug.log(1, "loading doclet class...");
+
+      Class docletClass;
+
+      if (null != option_docletpath) {
+        try {
+          FileSystemClassLoader docletPathClassLoader
+            = new FileSystemClassLoader(option_docletpath);
+          System.err.println("trying to load class  " + option_doclet + " from path " + option_docletpath);
+          docletClass = docletPathClassLoader.findClass(option_doclet);
+        }
+        catch (Exception e) {
+          docletClass = Class.forName(option_doclet);
+        }
+      }
+      else {
+        docletClass = Class.forName(option_doclet);
+      }
+      //Object docletInstance = docletClass.newInstance();
+
+      Debug.log(1, "doclet class loaded...");
+
+      Method startTempMethod = null;
+      Method startMethod = null;
+      Method optionLenMethod = null;
+      Method validOptionsMethod = null;
+
+      //--- Try to find the optionLength method in the Doclet class.
+
+      try
+      {
+        optionLenMethod = docletClass.getMethod("optionLength", new Class[]
+          { String.class });
+      }
+      catch (NoSuchMethodException e)
+      {
+        // Ignore if not found; it's OK it the Doclet class doesn't define
+        // this method.
+      }
+
+      //--- Try to find the validOptions method in the Doclet class.
+
+      try
+      {
+        validOptionsMethod = docletClass.getMethod("validOptions", new Class[]
+          { String[][].class, DocErrorReporter.class });
+      }
+      catch (NoSuchMethodException e)
+      {
+        // Ignore if not found; it's OK it the Doclet class doesn't define
+        // this method.
+      }
+
+      //--- Find the start method in the Doclet class; complain if not found
+
+      try
+      {
+        startTempMethod = docletClass.getMethod("start", new Class[]
+          { TemporaryStore.class });
+      }
+      catch (Exception e)
+      {
+        // ignore
+      }
+      startMethod = docletClass.getMethod("start", new Class[]
+        { RootDoc.class });
+
+      //--- Feed the custom command line tokens to the Doclet
+
+      // stores all recognized options
+      List options = new LinkedList();
+
+      // stores packages and classes defined on the command line
+      List packageAndClasses = new LinkedList();
+
+      for (Iterator it = allOptions.iterator(); it.hasNext();)
+      {
+        String option = (String) it.next();
+
+        Debug.log(9, "parsing option '" + option + "'");
+
+        if (option.startsWith("-"))
+        {
+
+          //--- Parse option
+
+          int optlen = optionLength(option);
+
+          //--- Try to get option length from Doclet class
+
+          if (optlen <= 0 && optionLenMethod != null)
+          {
+
+            optionLenMethod.invoke(null, new Object[]
+              { option });
+
+            Debug.log(3, "invoking optionLen method");
+
+            optlen = ((Integer) optionLenMethod.invoke(null, new Object[]
+              { option })).intValue();
+
+            Debug.log(3, "done");
+          }
+
+          if (optlen <= 0) {
+
+            if (option.startsWith("-JD")) {
+              // Simulate VM option -D
+              String propertyValue = option.substring(3);
+              int ndx = propertyValue.indexOf('=');
+              if (ndx <= 0) {
+                reporter.printError("Illegal format in option " + option + ": use -JDproperty=value");
+                return false;
+              }
+              else {
+                String property = propertyValue.substring(0, ndx);
+                String value = propertyValue.substring(ndx + 1);
+                System.setProperty(property, value);
+              }
+            }
+            else if (option.startsWith("-J")) {
+              //--- Warn if VM option is encountered
+              reporter.printWarning("Ignored option " + option + ". Pass this option to the VM if required.");
+            }
+            else {
+              //--- Complain if not found
+
+              reporter.printError("Unknown option " + option);
+              reporter.printNotice(STRING_TRY_GJDOC_HELP);
+              return false;
+            }
+          }
+          else
+          {
+
+            //--- Read option values
+
+            String[] optionAndValues = new String[optlen];
+            optionAndValues[0] = option;
+            for (int i = 1; i < optlen; ++i)
+            {
+              if (!it.hasNext())
+              {
+                reporter.printError("Missing value for option " + option);
+                return false;
+              }
+              else
+              {
+                optionAndValues[i] = (String) it.next();
+              }
+            }
+
+            //--- Store option for processing later
+
+            options.add(optionAndValues);
+          }
+        }
+        else if (option.length() > 0)
+        {
+
+          //--- Add to list of packages/classes if not option or option
+          // value
+
+          packageAndClasses.add(option);
+        }
+      }
+
+      Debug.log(9, "options parsed...");
+
+      //--- For each package specified with the -subpackages option on
+      //         the command line, recursively find all valid java files
+      //         beneath it.
+
+      //--- For each class or package specified on the command line,
+      //         check that it exists and find out whether it is a class
+      //         or a package
+
+      for (Iterator it = option_subpackages.iterator(); it.hasNext();)
+      {
+        String subpackage = (String) it.next();
+        Set foundPackages = new LinkedHashSet();
+
+        for (Iterator pit = option_sourcepath.iterator(); pit.hasNext(); ) {
+          File sourceDir = (File)pit.next();
+          File packageDir = new File(sourceDir, subpackage.replace('.', File.separatorChar));
+          findPackages(subpackage, packageDir, foundPackages);
+        }
+
+        addFoundPackages(subpackage, foundPackages);
+      }
+
+      if (option_all) {
+        Set foundPackages = new LinkedHashSet();
+        for (Iterator pit = option_sourcepath.iterator(); pit.hasNext(); ) {
+          File sourceDir = (File)pit.next();
+          findPackages("", sourceDir, foundPackages);
+        }
+        addFoundPackages(null, foundPackages);
+        for (Iterator packageIt = foundPackages.iterator(); packageIt.hasNext(); ) {
+          String packageName = (String)packageIt.next();
+          if (null == packageName) {
+            packageName = "";
+          }
+          rootDoc.addSpecifiedPackageName(packageName);
+        }
+      }
+
+      for (Iterator it = packageAndClasses.iterator(); it.hasNext();)
+      {
+
+        String classOrPackage = (String) it.next();
+
+        boolean foundSourceFile = false;
+
+        if (classOrPackage.endsWith(".java")) {
+          for (Iterator pit = option_sourcepath.iterator(); pit.hasNext() && !foundSourceFile; ) {
+            File sourceDir = (File)pit.next();
+            File sourceFile = new File(sourceDir, classOrPackage);
+            if (sourceFile.exists() && !sourceFile.isDirectory()) {
+              rootDoc.addSpecifiedSourceFile(sourceFile);
+              foundSourceFile = true;
+              break;
+            }
+          }
+          if (!foundSourceFile) {
+            File sourceFile = new File(classOrPackage);
+            if (sourceFile.exists() && !sourceFile.isDirectory()) {
+              rootDoc.addSpecifiedSourceFile(sourceFile);
+              foundSourceFile = true;
+            } 
+          }
+        }
+
+        if (!foundSourceFile) {
+        //--- Check for illegal name
+
+        if (classOrPackage.startsWith(".")
+            || classOrPackage.endsWith(".")
+            || classOrPackage.indexOf("..") > 0
+            || !checkCharSet(classOrPackage,
+                "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_."))
+        {
+          throw new ParseException("Illegal class or package name '"
+              + classOrPackage + "'");
+        }
+
+        //--- Assemble absolute path to package
+
+        String classOrPackageRelPath = classOrPackage.replace('.',
+            File.separatorChar);
+
+        //--- Create one file object each for a possible package directory
+        //         and a possible class file, and find out if they exist.
+
+        List packageDirs = rootDoc.findSourceFiles(classOrPackageRelPath);
+        List sourceFiles = rootDoc.findSourceFiles(classOrPackageRelPath + ".java");
+
+        boolean packageDirExists = !packageDirs.isEmpty();
+        boolean sourceFileExists = !sourceFiles.isEmpty();
+
+        //--- Complain if neither exists: not found
+
+        if (!packageDirExists && !sourceFileExists)
+        {
+          reporter.printError("Class or package " + classOrPackage
+              + " not found.");
+          return false;
+        }
+
+        //--- Complain if both exist: ambigious
+
+        else
+          if (packageDirExists && sourceFileExists)
+          {
+            reporter.printError("Ambigious class/package name "
+                + classOrPackage + ".");
+            return false;
+          }
+
+          //--- Otherwise, if the package directory exists, it is a package
+
+          else
+            if (packageDirExists) {
+              Iterator packageDirIt = packageDirs.iterator();
+              boolean packageDirFound = false;
+              while (packageDirIt.hasNext()) {
+                File packageDir = (File)packageDirIt.next();
+                if (packageDir.isDirectory()) {
+                  rootDoc.addSpecifiedPackageName(classOrPackage);
+                  packageDirFound = true;
+                  break;
+                }
+              }
+              if (!packageDirFound) {
+                reporter.printError("No suitable file or directory found for" + classOrPackage);
+                return false;
+              }
+            }
+
+            //--- Otherwise, emit error message
+
+            else {
+                reporter.printError("No sources files found for package " + classOrPackage);
+            }
+        }
+      }
+
+      //--- Complain if no packages or classes specified
+
+      if (option_help) {
+        usage();
+        return true;
+      }
+
+      //--- Validate custom options passed on command line
+      //         by asking the Doclet if they are OK.
+
+      String[][] customOptionArr = (String[][]) options
+          .toArray(new String[0][0]);
+      if (validOptionsMethod != null
+          && !((Boolean) validOptionsMethod.invoke(null, new Object[]
+            { customOptionArr, reporter })).booleanValue())
+      {
+        // Not ok: shutdown system.
+        reporter.printNotice(STRING_TRY_GJDOC_HELP);
+        return false;
+      }
+
+      if (!rootDoc.hasSpecifiedPackagesOrClasses()) {
+        reporter.printError("No packages or classes specified.");
+        reporter.printNotice(STRING_TRY_GJDOC_HELP);
+        return false;
+      }
+
+      rootDoc.setOptions(customOptionArr);
+
+      rootDoc.build();
+
+      //--- Bail out if no classes found
+
+      if (0 == rootDoc.classes().length
+          && 0 == rootDoc.specifiedPackages().length
+          && 0 == rootDoc.specifiedClasses().length)
+      {
+        reporter.printError("No packages or classes found(!).");
+        return false;
+      }
+
+      //--- Our work is done, tidy up memory
+
+      System.gc();
+      System.gc();
+
+      //--- Set flag indicating Phase II of documentation generation
+
+      docletRunning = true;
+
+      //--- Invoke the start method on the Doclet: produce output
+
+      reporter.printNotice("Running doclet...");
+
+      TemporaryStore tstore = new TemporaryStore(Main.rootDoc);
+
+      Thread.currentThread().setContextClassLoader(docletClass.getClassLoader());
+
+      if (null != startTempMethod)
+      {
+        startTempMethod.invoke(null, new Object[]
+          { tstore });
+      }
+      else
+      {
+        startMethod.invoke(null, new Object[]
+          { tstore.getAndClear() });
+      }
+
+      //--- Let the user know how many warnings/errors occured
+
+      if (reporter.getWarningCount() > 0)
+      {
+        reporter.printNotice(reporter.getWarningCount() + " warnings");
+      }
+
+      if (reporter.getErrorCount() > 0)
+      {
+        reporter.printNotice(reporter.getErrorCount() + " errors");
+      }
+
+      System.gc();
+
+      //--- Done.
+      return true;
+    }
+    catch (Exception e)
+    {
+      e.printStackTrace();
+      return false;
+    }
+  }
+
+  private void addFoundPackages(String subpackage, Set foundPackages)
+  {        
+    if (foundPackages.isEmpty()) {
+      reporter.printWarning("No classes found under subpackage " + subpackage);
+    }
+    else {
+      boolean onePackageAdded = false;
+      for (Iterator rit = foundPackages.iterator(); rit.hasNext();) {
+        String foundPackage = (String)rit.next();
+        boolean excludeThisPackage = false;
+
+        for (Iterator eit = option_exclude.iterator(); eit.hasNext();) {
+          String excludePackage = (String)eit.next();
+          if (foundPackage.equals(excludePackage) ||
+              foundPackage.startsWith(excludePackage + ":")) {
+            excludeThisPackage = true;
+            break;
+          }
+        }
+
+        if (!excludeThisPackage) {
+          rootDoc.addSpecifiedPackageName(foundPackage);
+          onePackageAdded = true;
+        }
+      }
+      if (!onePackageAdded) {
+        if (null != subpackage) {
+          reporter.printWarning("No non-excluded classes found under subpackage " + subpackage);
+        }
+        else {
+          reporter.printWarning("No non-excluded classes found.");
+        }
+      }
+    }
+  }
+
+  /**
+   *  Verify that the given file is a valid Java source file and that
+   *  it specifies the given package.
+   */
+  private boolean isValidJavaFile(File file,
+                                  String expectedPackage)
+  {
+    try {
+      InputStream in = new BufferedInputStream(new FileInputStream(file));
+
+      int ch, prevChar = 0;
+
+      final int STATE_DEFAULT = 0;
+      final int STATE_COMMENT = 1;
+      final int STATE_LINE_COMMENT = 2;
+
+      int state = STATE_DEFAULT;
+
+      StringBuffer word = new StringBuffer();
+      int wordIndex = 0;
+
+      while ((ch = in.read()) >= 0) {
+        String completeWord = null;
+
+        switch (state) {
+        case STATE_COMMENT:
+          if (prevChar == '*' && ch == '/') {
+            state = STATE_DEFAULT;
+          }
+          break;
+
+        case STATE_LINE_COMMENT:
+          if (ch == '\n') {
+            state = STATE_DEFAULT;
+          }
+          break;
+
+        case STATE_DEFAULT:
+          if (prevChar == '/' && ch == '*') {
+            word.deleteCharAt(word.length() - 1);
+            if (word.length() > 0) {
+              completeWord = word.toString();
+              word.setLength(0);
+            }
+            state = STATE_COMMENT;
+          }
+          else if (prevChar == '/' && ch == '/') {
+            word.deleteCharAt(word.length() - 1);
+            if (word.length() > 0) {
+              completeWord = word.toString();
+              word.setLength(0);
+            }
+            state = STATE_LINE_COMMENT;
+          }
+          else if (" \t\r\n".indexOf(ch) >= 0) {
+            if (word.length() > 0) {
+              completeWord = word.toString();
+              word.setLength(0);
+            }
+          }
+          else if (1 == wordIndex && ';' == ch) {
+            if (word.length() > 0) {
+              completeWord = word.toString();
+              word.setLength(0);
+            }
+            else {
+              // empty package name in source file: "package ;" -> invalid source file
+              in.close();
+              return false;
+            }
+          }
+          else {
+            word.append((char)ch);
+          }
+          break;
+        }
+
+        if (null != completeWord) {
+          if (0 == wordIndex && !"package".equals(completeWord)) {
+            in.close();
+            return "".equals(expectedPackage);
+          }
+          else if (1 == wordIndex) {
+            in.close();
+            return expectedPackage.equals(completeWord);
+          }
+          ++ wordIndex;
+        }
+
+        prevChar = ch;
+      }
+
+      // no package or class found before end-of-file -> invalid source file
+
+      in.close();
+      return false;
+    }
+    catch (IOException e) {
+      reporter.printWarning("Could not examine file " + file + ": " + e);
+      return false;
+    }
+  }
+
+  /**
+   *  Recursively try to locate valid Java packages under the given
+   *  package specified by its name and its directory. Add the names
+   *  of all valid packages to the result list.
+   */
+  private void findPackages(String subpackage, 
+                            File packageDir, 
+                            Set result)
+  {
+    File[] files = packageDir.listFiles();
+    if (null != files) {
+      for (int i=0; i<files.length; ++i) {
+        File file = files[i];
+        if (!file.isDirectory() && file.getName().endsWith(".java")) {
+          if (isValidJavaFile(file, subpackage)) {
+            if ("".equals(subpackage)) {
+              result.add(null);
+            }
+            else {
+              result.add(subpackage);
+            }
+            break;
+          }
+        }
+      }
+      for (int i=0; i<files.length; ++i) {
+        File file = files[i];
+        if (file.isDirectory()) {
+          String newSubpackage;
+          if (null != subpackage && subpackage.length() > 0) {
+            newSubpackage = subpackage + "." + file.getName();
+          }
+          else {
+            newSubpackage = file.getName();
+          }
+          findPackages(newSubpackage, file, result);
+        }
+      }
+    }
+  }
+
+  /**
+   *
+   */
+  private static boolean validOptions(String options[][],
+      DocErrorReporter reporter)
+  {
+
+    boolean foundDocletOption = false;
+    for (int i = 0; i < options.length; i++)
+    {
+      String[] opt = options[i];
+      if (opt[0].equalsIgnoreCase("-doclet"))
+      {
+        if (foundDocletOption)
+        {
+          reporter.printError("Only one -doclet option allowed.");
+          return false;
+        }
+        else
+        {
+          foundDocletOption = true;
+        }
+      }
+    }
+
+    return true;
+  }
+
+  /**
+   * Main entry point. This is the method called when gjdoc is invoked from the
+   * command line.
+   * 
+   * @param args
+   *          command line arguments
+   */
+  public static void main(String[] args)
+  {
+
+    try
+    {
+      //--- Remember current time for profiling purposes
+
+      Timer.setStartTime();
+
+      //--- Handle control to the Singleton instance of this class
+
+      int result = instance.start(args);
+
+      if (result < 0) {
+        // fatal error
+        System.exit(5);
+      }
+      else if (result > 0) {
+        // errors encountered
+        System.exit(1);
+      }
+      else {
+        // success
+        System.exit(0);
+      }
+    }
+    catch (Exception e)
+    {
+      //--- unexpected error
+      e.printStackTrace();
+      System.exit(1);
+    }
+  }
+
+  /**
+   * Parses command line arguments and subsequentially handles control to the
+   * startDoclet() method
+   *   
+   * @param args The command line parameters.
+   */
+   public static int execute(String[] args)
+   {
+     try
+     {
+       int result = instance.start(args);
+       if (result < 0) {
+         // fatal error
+         return 5;
+       }
+       else if (result > 0) {
+         // errors encountered
+         return 1;
+       }
+       else {
+         // success
+         return 0;
+       }
+     }
+     catch (Exception e)
+     {
+       // unexpected error
+       return 1;
+     }
+   }
+
+  /**
+   * @param programName Name of the program (for error messages). *disregarded*
+   * @param args The command line parameters.
+   * @returns The return code.
+   */
+  public static int execute(String programName,
+                            String[] args)
+  {
+    return execute(args);
+  }
+  /**
+   * @param programName Name of the program (for error messages).
+   * @param defaultDocletClassName Fully qualified class name.
+   * @param args The command line parameters.
+   * @returns The return code.
+   *//*
+  public static int execute(String programName,
+                            String defaultDocletClassName,
+                            String[] args)
+  {
+    // not yet implemented
+  }*/
+  /**
+   * @param programName Name of the program (for error messages).
+   * @param defaultDocletClassName Fully qualified class name.
+   * @param args The command line parameters.
+   * @returns The return code.
+   *//*
+  public static int execute(String programName,
+                            String defaultDocletClassName,
+                            String[] args)
+  {
+    // not yet implemented
+  }*/
+  /**
+   * @param programName Name of the program (for error messages).
+   * @param errWriter PrintWriter to receive error messages.
+   * @param warnWriter PrintWriter to receive error messages.
+   * @param noticeWriter PrintWriter to receive error messages.
+   * @param defaultDocletClassName Fully qualified class name.
+   * @param args The command line parameters.
+   * @returns The return code.
+   *//*
+  public static int execute(String programName,
+                            PrintWriter errWriter,
+                            PrintWriter warnWriter,
+                            PrintWriter noticeWriter,
+                            String defaultDocletClassName,
+                            String[] args)
+  {
+    // not yet implemented
+  }*/
+
+  /**
+   * Parses command line arguments and subsequentially handles control to the
+   * startDoclet() method
+   * 
+   * @param args
+   *          Command line arguments, as passed to the main() method
+   * @return {@code -1} in case of a fatal error (invalid arguments),
+   * or the number of errors encountered.
+   * @exception ParseException
+   *              FIXME
+   * @exception IOException
+   *              if an IO problem occur
+   */
+  public int start(String[] args) throws ParseException, IOException
+  {
+
+    //--- Collect unparsed arguments in array and resolve references
+    //         to external argument files.
+
+    List arguments = new ArrayList(args.length);
+
+    for (int i = 0; i < args.length; ++i)
+    {
+      if (!args[i].startsWith("@"))
+      {
+        arguments.add(args[i]);
+      }
+      else
+      {
+        FileReader reader = new FileReader(args[i].substring(1));
+        StreamTokenizer st = new StreamTokenizer(reader);
+        st.resetSyntax();
+        st.wordChars('\u0000', '\uffff');
+        st.quoteChar('\"');
+        st.quoteChar('\'');
+        st.whitespaceChars(' ', ' ');
+        st.whitespaceChars('\t', '\t');
+        st.whitespaceChars('\r', '\r');
+        st.whitespaceChars('\n', '\n');
+        while (st.nextToken() != StreamTokenizer.TT_EOF)
+        {
+          arguments.add(st.sval);
+        }
+      }
+    }
+
+    //--- Initialize Map for option parsing
+
+    initOptions();
+
+    //--- This will hold all options recognized by gjdoc itself
+    //         and their associated arguments.
+    //         Contains objects of type String[], where each entry
+    //         specifies an option along with its aguments.
+
+    List options = new LinkedList();
+
+    //--- This will hold all command line tokens not recognized
+    //         to be part of a standard option.
+    //         These options are intended to be processed by the doclet
+    //         Contains objects of type String, where each entry is
+    //         one unrecognized token.
+
+    List customOptions = new LinkedList();
+
+    rootDoc = new RootDocImpl();
+    reporter = rootDoc.getReporter();
+
+    //--- Iterate over all options given on the command line
+
+    for (Iterator it = arguments.iterator(); it.hasNext();)
+    {
+
+      String arg = (String) it.next();
+
+      //--- Check if gjdoc recognizes this option as a standard option
+      //         and remember the options' argument count
+
+      int optlen = optionLength(arg);
+
+      //--- Argument count == 0 indicates that the option is not recognized.
+      //         Add it to the list of custom option tokens
+
+      //--- Otherwise the option is recognized as a standard option.
+      //         if all required arguments are supplied. Create a new String
+      //         array for the option and its arguments, and store it
+      //         in the options array.
+
+      if (optlen > 0)
+      {
+        String[] option = new String[optlen];
+        option[0] = arg;
+        boolean optargs_ok = true;
+        for (int j = 1; j < optlen && optargs_ok; ++j)
+        {
+          if (it.hasNext())
+          {
+            option[j] = (String) it.next();
+            if (option[j].startsWith("-"))
+            {
+              optargs_ok = false;
+            }
+          }
+          else
+          {
+            optargs_ok = false;
+          }
+        }
+        if (optargs_ok)
+          options.add(option);
+        else
+        {
+          //         If the option requires more arguments than given on the
+          //         command line, issue a fatal error
+
+          reporter.printFatal("Missing value for option " + arg + ".");
+        }
+      }
+    }
+
+    //--- Create an array of String arrays from the dynamic array built above
+
+    String[][] optionArr = (String[][]) options.toArray(new String[options
+        .size()][0]);
+
+    //--- Validate all options and issue warnings/errors
+
+    if (validOptions(optionArr, rootDoc))
+    {
+
+      //--- We got valid options; parse them and store the parsed values
+      //         in 'option_*' fields.
+
+      readOptions(optionArr);
+
+      //--- Show version and exit if requested by user
+
+      if (option_showVersion) {
+        System.out.println("gjdoc " + getGjdocVersion());
+        System.exit(0);
+      }
+
+      if (option_bootclasspath_specified) {
+        reporter.printWarning("-bootclasspath ignored: not supported by"
+                              + " gjdoc wrapper script, or no wrapper script in use.");
+      }
+
+      // If we have an empty source path list, add the current directory ('.')
+
+      if (option_sourcepath.size() == 0)
+        option_sourcepath.add(new File("."));
+
+      //--- We have all information we need to start the doclet at this time
+    
+      if (null != option_encoding) {
+        rootDoc.setSourceEncoding(option_encoding);
+      }
+      else {
+        // be quiet about this for now:
+        // reporter.printNotice("No encoding specified, using platform default: " + System.getProperty("file.encoding"));
+        rootDoc.setSourceEncoding(System.getProperty("file.encoding"));
+      }
+      rootDoc.setSourcePath(option_sourcepath);
+
+      //addJavaLangClasses();
+
+      if (!startDoclet(arguments)) {
+        return -1;
+      }
+    }
+
+    return reporter.getErrorCount();
+  }
+
+  private void addJavaLangClasses()
+    throws IOException
+  {
+    String resourceName = "/java.lang-classes-" + option_source + ".txt";
+    InputStream in = getClass().getResourceAsStream(resourceName);
+    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+    String line;
+    while ((line = reader.readLine()) != null) {
+      
+      String className = line.trim();
+      if (className.length() > 0) {
+        ClassDocImpl classDoc =
+          new ClassDocImpl(null, new PackageDocImpl("java.lang"),
+                           ProgramElementDocImpl.ACCESS_PUBLIC,
+                           false, false, null);
+        classDoc.setClass(className);
+        rootDoc.addClassDoc(classDoc);
+      }
+    }
+  }
+
+  /**
+   * Helper class for parsing command line arguments. An instance of this class
+   * represents a particular option accepted by gjdoc (e.g. '-sourcepath') along
+   * with the number of expected arguments and behavior to parse the arguments.
+   */
+  private abstract class OptionProcessor
+  {
+
+    /**
+     * Number of arguments expected by this option.
+     */
+    private int argCount;
+
+    /**
+     * Initializes this instance.
+     * 
+     * @param argCount
+     *          number of arguments
+     */
+    public OptionProcessor(int argCount)
+    {
+      this.argCount = argCount;
+    }
+
+    /**
+     * Overridden by derived classes with behavior to parse the arguments
+     * specified with this option.
+     * 
+     * @param args
+     *          command line arguments
+     */
+    abstract void process(String[] args);
+  }
+
+  /**
+   * Maps option tags (e.g. '-sourcepath') to OptionProcessor objects.
+   * Initialized only once by method initOptions(). FIXME: Rename to
+   * 'optionProcessors'.
+   */
+  private static Map options = null;
+
+  /**
+   * Initialize all OptionProcessor objects needed to scan/parse command line
+   * options. This cannot be done in a static initializer block because
+   * OptionProcessors need access to the Singleton instance of the Main class.
+   */
+  private void initOptions()
+  {
+
+    options = new HashMap();
+
+    //--- Put one OptionProcessor object into the map
+    //         for each option recognized.
+
+    options.put("-overview", new OptionProcessor(2)
+      {
+
+        void process(String[] args)
+        {
+          option_overview = args[0];
+        }
+      });
+    options.put("-public", new OptionProcessor(1)
+      {
+
+        void process(String[] args)
+        {
+          option_coverage = COVERAGE_PUBLIC;
+        }
+      });
+    options.put("-protected", new OptionProcessor(1)
+      {
+
+        void process(String[] args)
+        {
+          option_coverage = COVERAGE_PROTECTED;
+        }
+      });
+    options.put("-package", new OptionProcessor(1)
+      {
+
+        void process(String[] args)
+        {
+          option_coverage = COVERAGE_PACKAGE;
+        }
+      });
+    options.put("-private", new OptionProcessor(1)
+      {
+
+        void process(String[] args)
+        {
+          option_coverage = COVERAGE_PRIVATE;
+        }
+      });
+    OptionProcessor helpProcessor = new OptionProcessor(1)
+      {
+
+        void process(String[] args)
+        {
+          option_help = true;
+        }
+      };
+
+    options.put("-help", helpProcessor);
+    options.put("--help", helpProcessor);
+    options.put("-doclet", new OptionProcessor(2)
+        {
+
+          void process(String[] args)
+          {
+            option_doclet = args[0];
+          }
+        });
+    options.put("-docletpath", new OptionProcessor(2)
+        {
+
+          void process(String[] args)
+          {
+            option_docletpath = args[0];
+          }
+        });
+    options.put("-nowarn", new OptionProcessor(1)
+        {
+
+          void process(String[] args)
+          {
+            option_nowarn = true;
+          }
+        });
+    options.put("-source", new OptionProcessor(2)
+        {
+
+          void process(String[] args)
+          {
+            option_source = args[0];
+            if (!"1.2".equals(option_source) 
+                && !"1.3".equals(option_source)
+                && !"1.4".equals(option_source)) {
+
+              throw new RuntimeException("Only he following values are currently"
+                                         + " supported for option -source: 1.2, 1.3, 1.4.");
+            }
+          }
+        });
+    OptionProcessor sourcePathProcessor = new OptionProcessor(2) {
+        void process(String[] args)
+        {
+          Debug.log(1, "-sourcepath is '" + args[0] + "'");
+          for (StringTokenizer st = new StringTokenizer(args[0],
+              File.pathSeparator); st.hasMoreTokens();)
+          {
+            String path = st.nextToken();
+            File file = new File(path);
+            if (!(file.exists()))
+            {
+              throw new RuntimeException("The source path " + path
+                  + " does not exist.");
+            }
+            option_sourcepath.add(file);
+          }
+        }
+      };
+    options.put("-s", sourcePathProcessor);
+    options.put("-sourcepath", sourcePathProcessor);
+    options.put("-subpackages", new OptionProcessor(2)
+      {
+        void process(String[] args)
+        {
+          StringTokenizer st = new StringTokenizer(args[0], ":"); 
+          while (st.hasMoreTokens()) {
+            String packageName = st.nextToken();
+
+            if (packageName.startsWith(".")
+                || packageName.endsWith(".")
+                || packageName.indexOf("..") > 0
+                || !checkCharSet(packageName,
+                                 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_.")) {
+              throw new RuntimeException("Illegal package name '"
+                                         + packageName + "'");
+            }
+            option_subpackages.add(packageName);
+          }
+        }
+      });
+    options.put("-exclude", new OptionProcessor(2)
+      {
+        void process(String[] args)
+        {
+          StringTokenizer st = new StringTokenizer(args[0], ":"); 
+          while (st.hasMoreTokens()) {
+            String packageName = st.nextToken();
+
+            if (packageName.startsWith(".")
+                || packageName.endsWith(".")
+                || packageName.indexOf("..") > 0
+                || !checkCharSet(packageName,
+                                 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_.")) {
+              throw new RuntimeException("Illegal package name '"
+                                         + packageName + "'");
+            }
+            option_exclude.add(packageName);
+          }
+        }
+      });
+    // TODO include other options here
+    options.put("-verbose", new OptionProcessor(1)
+      {
+
+        void process(String[] args)
+        {
+          option_verbose = true;
+          System.err.println("WARNING: Unsupported option -verbose ignored");
+        }
+      });
+    options.put("-quiet", new OptionProcessor(1)
+      {
+
+        void process(String[] args)
+        {
+          reporter.setQuiet(true);
+        }
+      });
+    options.put("-locale", new OptionProcessor(2)
+      {
+
+        void process(String[] args)
+        {
+          String localeName = args[0];
+          String language = null;
+          String country = null;
+          String variant = null;
+          StringTokenizer st = new StringTokenizer(localeName, "_");
+          if (st.hasMoreTokens()) {
+            language = st.nextToken();
+          }
+          if (st.hasMoreTokens()) {
+            country = st.nextToken();
+          }
+          if (st.hasMoreTokens()) {
+            variant = st.nextToken();
+          }
+          if (variant != null) {
+            option_locale = new Locale(language, country, variant);
+          }
+          else if (country != null) {
+             option_locale = new Locale(language, country);
+          }
+          else if (language != null) {
+             option_locale = new Locale(language);
+          }
+          else {
+              throw new RuntimeException("Illegal locale specification '"
+                                         + localeName + "'");
+          }
+        }
+      });
+    options.put("-encoding", new OptionProcessor(2)
+      {
+
+        void process(String[] args)
+        {
+          option_encoding = args[0];
+        }
+      });
+    options.put("-breakiterator", new OptionProcessor(1)
+      {
+        void process(String[] args)
+        {
+          option_breakiterator = true;
+        }
+      });
+    options.put("-licensetext", new OptionProcessor(1)
+      {
+        void process(String[] args)
+        {
+          option_licensetext = true;
+        }
+      });
+    options.put("-overview", new OptionProcessor(2)
+      {
+        void process(String[] args)
+        {
+          try {
+            getRootDoc().setRawCommentText(RootDocImpl.readHtmlBody(new File(args[0])));
+          }
+          catch (IOException e) { 
+            throw new RuntimeException("Cannot read file specified in option -overview: " + e.getMessage());
+          }
+        }
+      });
+    options.put("-classpath", new OptionProcessor(2)
+      {
+        void process(String[] args)
+        {
+          reporter.printWarning("-classpath option could not be passed to the VM.  Faking it with ");
+          reporter.printWarning("    System.setProperty(\"java.class.path\", \"" + args[0] + "\");");
+          System.setProperty("java.class.path", args[0]);
+        }
+      });
+    options.put("--version", new OptionProcessor(1)
+      {
+        void process(String[] args)
+        {
+          option_showVersion = true;
+        }
+      });
+    options.put("-bootclasspath", new OptionProcessor(1)
+      {
+        void process(String[] args)
+        {
+          option_bootclasspath_specified = true;
+        }
+      });
+    options.put("-all", new OptionProcessor(1)
+      {
+        void process(String[] args)
+        {
+          option_all = true;
+        }
+      });
+    options.put("-reflection", new OptionProcessor(1)
+      {
+        void process(String[] args)
+        {
+          option_reflection = true;
+        }
+      });
+  }
+
+  /**
+   * Determine how many arguments the given option requires.
+   * 
+   * @param option
+   *          The name of the option without leading dash.
+   */
+  private static int optionLength(String option)
+  {
+
+    OptionProcessor op = (OptionProcessor) options.get(option.toLowerCase());
+    if (op != null)
+      return op.argCount;
+    else
+      return 0;
+  }
+
+  /**
+   * Process all given options. Assumes that the options have been validated
+   * before.
+   * 
+   * @param optionArr
+   *          Each element is a series of Strings where [0] is the name of the
+   *          option and [1..n] are the arguments to the option.
+   */
+  private void readOptions(String[][] optionArr)
+  {
+
+    //--- For each option, find the appropriate OptionProcessor
+    //        and call its process() method
+
+    for (int i = 0; i < optionArr.length; ++i)
+    {
+      String[] opt = optionArr[i];
+      String[] args = new String[opt.length - 1];
+      System.arraycopy(opt, 1, args, 0, opt.length - 1);
+      OptionProcessor op = (OptionProcessor) options.get(opt[0].toLowerCase());
+      op.process(args);
+    }
+  }
+
+  /**
+   * Print command line usage.
+   */
+  private static void usage()
+  {
+    System.out
+        .print("\n"
+            + "USAGE: gjdoc [options] [packagenames] "
+            + "[sourcefiles] [@files]\n\n"
+            + "  --version                Show version information and exit\n"
+            + "  -all                     Process all source files found in the source path\n"
+            + "  -overview <file>         Read overview documentation from HTML file\n"
+            + "  -public                  Include only public classes and members\n"
+            + "  -protected               Include protected and public classes and members\n"
+            + "                           This is the default\n"
+            + "  -package                 Include package/protected/public classes and members\n"
+            + "  -private                 Include all classes and members\n"
+            + "  -help, --help            Show this information\n"
+            + "  -doclet <class>          Doclet class to use for generating output\n"
+            + "  -docletpath <classpath>  Specifies the search path for the doclet and\n"
+            + "                           dependencies\n"
+            + "  -source <release>        Provide source compatibility with specified\n"
+            + "                           release (1.4 to handle assertion)\n"
+            + "  -sourcepath <pathlist>   Where to look for source files\n"
+            + "  -s <pathlist>            Alias for -sourcepath\n"
+            + "  -subpackages <spkglist>  List of subpackages to recursively load\n"
+            + "  -exclude <pkglist>       List of packages to exclude\n"
+            + "  -verbose                 Output messages about what Gjdoc is doing [ignored]\n"
+            + "  -quiet                   Do not print non-error and non-warning messages\n"
+            + "  -locale <name>           Locale to be used, e.g. en_US or en_US_WIN\n"
+            + "  -encoding <name>         Source file encoding name\n"
+            + "  -breakiterator           Compute first sentence with BreakIterator\n"
+            + "  -classpath <pathlist>    Set the path used for loading auxilliary classes\n"
+            + "\n"
+            + "Standard doclet options:\n"
+            + "  -d                      Set target directory\n"
+            + "  -use                    Includes the 'Use' page for each documented class\n"
+            + "                          and package\n"
+            + "  -version                Includes the '@version' tag\n"
+            + "  -author                 Includes the '@author' tag\n"
+            + "  -splitindex             Splits the index file into multiple files\n"
+            + "  -windowtitle <text>     Browser window title\n"
+            + "  -doctitle <text>        Title near the top of the overview summary file\n"
+            + "                          (HTML allowed)\n"
+            + "  -title <text>           Title for this set of API documentation\n"
+            + "                          (deprecated, -doctitle should be used instead)\n"
+            + "  -header <text>          Text to include in the top navigation bar\n"
+            + "                          (HTML allowed)\n"
+            + "  -footer <text>          Text to include in the bottom navigation bar\n"
+            + "                          (HTML allowed)\n"
+            + "  -bottom <text>          Text to include at the bottom of each output file\n"
+            + "                          (HTML allowed)\n"
+            + "  -link <extdoc URL>      Link to external generated documentation at URL\n"
+            + "  -linkoffline <extdoc URL> <packagelistLoc>\n"
+            + "                          Link to external generated documentation for\n"
+            + "                          the specified package-list\n"
+            + "  -linksource             Creates an HTML version of each source file\n"
+            + "  -group <groupheading> <packagepattern:packagepattern:...>\n"
+            + "                          Separates packages on the overview page into groups\n"
+            + "  -nodeprecated           Prevents the generation of any deprecated API\n"
+            + "  -nodeprecatedlist       Prevents the generation of the file containing\n"
+            + "                          the list of deprecated APIs and the link to the\n"
+            + "                          navigation bar to that page\n"
+            + "  -nosince                Omit the '@since' tag\n"
+            + "  -notree                 Do not generate the class/interface hierarchy page\n"
+            + "  -noindex                Do not generate the index file\n"
+            + "  -nohelp                 Do not generate the help link\n"
+            + "  -nonavbar               Do not generate the navbar, header and footer\n"
+            + "  -helpfile <filen>       Path to an alternate help file\n"
+            + "  -stylesheetfile <file>  Path to an alternate CSS stylesheet\n"
+            + "  -addstylesheet <file>   Path to an additional CSS stylesheet\n"
+            + "  -serialwarn             Complain about missing '@serial' tags [ignored]\n"
+            + "  -charset <IANACharset>  Specifies the HTML charset\n"
+            + "  -docencoding <IANACharset>\n"
+            + "                          Specifies the encoding of the generated HTML files\n"
+            + "  -tag <tagname>:Xaoptcmf:\"<taghead>\"\n"
+            + "                          Enables gjdoc to interpret a custom tag\n"
+            + "  -taglet                 Adds a Taglet class to the map of taglets\n"
+            + "  -tagletpath             Sets the CLASSPATH to load subsequent Taglets from\n"
+            + "  -docfilessubdirs        Enables deep copy of 'doc-files' directories\n"
+            + "  -excludedocfilessubdir <name1:name2:...>\n"
+            + "                          Excludes 'doc-files' subdirectories with a give name\n"
+            + "  -noqualifier all|<packagename1:packagename2:...>\n"
+            + "                          Do never fully qualify given package names\n"
+            + "  -nocomment              Suppress the entire comment body including the main\n"
+            + "                          description and all tags, only generate declarations\n"
+            + "\n"
+            + "Gjdoc extension options:\n"
+            + "  -reflection             Use reflection for resolving unqualified class names\n"
+            + "  -licensetext            Include license text from source files\n"
+            + "  -validhtml              Use valid HTML/XML names (breaks compatibility)\n"
+            + "  -baseurl <url>          Hardwire the given base URL into generated pages\n"
+               /**
+            + "  -genhtml                Generate HTML code instead of XML code. This is the\n"
+            + "                          default.\n"
+            + "  -geninfo                Generate Info code instead of XML code.\n"
+            + "  -xslsheet <file>        If specified, XML files will be written to a\n"
+            + "                          temporary directory and transformed using the\n"
+            + "                          given XSL sheet. The result of the transformation\n"
+            + "                          is written to the output directory. Not required if\n"
+            + "                          -genhtml or -geninfo has been specified.\n"
+            + "  -xmlonly                Generate XML code only, do not generate HTML code.\n"
+            + "  -bottomnote             HTML code to include at the bottom of each page.\n"
+            + "  -nofixhtml              If not specified, heurestics will be applied to\n"
+            + "                          fix broken HTML code in comments.\n"
+            + "  -nohtmlwarn             Do not emit warnings when encountering broken HTML\n"
+            + "                          code.\n"
+            + "  -noemailwarn            Do not emit warnings when encountering strings like\n"
+            + "                          <abc@foo.com>.\n"
+            + "  -indentstep <n>         How many spaces to indent each tag level in\n"
+            + "                          generated XML code.\n"
+            + "  -xsltdriver <class>     Specifies the XSLT driver to use for transformation.\n"
+            + "                          By default, xsltproc is used.\n"
+            + "  -postprocess <class>    XmlDoclet postprocessor class to apply after XSL\n"
+            + "                          transformation.\n"
+            + "  -compress               Generated info pages will be Zip-compressed.\n"
+            + "  -workpath               Specify a temporary directory to use.\n"
+            + "  -authormail <type>      Specify handling of mail addresses in @author tags.\n"
+            + "     no-replace             do not replace mail addresses (default).\n"
+            + "     mailto-name            replace by <a>Real Name</a>.\n"
+            + "     name-mailto-address    replace by Real Name (<a>abc@foo.com</a>).\n"
+            + "     name-mangled-address   replace by Real Name (<a>abc AT foo DOT com</a>).\n"
+               **/
+            );
+  }
+
+  /**
+   * The root of the gjdoc tool.
+   * 
+   * @return all the options of the gjdoc application.
+   */
+  public static RootDocImpl getRootDoc()
+  {
+    return rootDoc;
+  }
+
+  /**
+   * Get the gjdoc singleton.
+   * 
+   * @return the gjdoc instance.
+   */
+  public static Main getInstance()
+  {
+    return instance;
+  }
+
+  /**
+   * Is this access level covered?
+   * 
+   * @param accessLevel
+   *          the access level we want to know if it is covered.
+   * @return true if the access level is covered.
+   */
+  public boolean includeAccessLevel(int accessLevel)
+  {
+    return coverageTemplates[option_coverage][accessLevel];
+  }
+
+  /**
+   * Is the doclet running?
+   * 
+   * @return true if it's running
+   */
+  public boolean isDocletRunning()
+  {
+    return docletRunning;
+  }
+
+  /**
+   * Check the charset. Check that all the characters of the string 'toCheck'
+   * and query if they exist in the 'charSet'. The order does not matter. The
+   * number of times a character is in the variable does not matter.
+   * 
+   * @param toCheck
+   *          the charset to check.
+   * @param charSet
+   *          the reference charset
+   * @return true if they match.
+   */
+  public static boolean checkCharSet(String toCheck, String charSet)
+  {
+    for (int i = 0; i < toCheck.length(); ++i)
+    {
+      if (charSet.indexOf(toCheck.charAt(i)) < 0)
+        return false;
+    }
+    return true;
+  }
+
+  /**
+   * Makes the RootDoc eligible for the GC.
+   */
+  public static void releaseRootDoc()
+  {
+    rootDoc.flush();
+  }
+
+  /**
+   * Return whether the -breakiterator option has been specified.
+   */
+  public boolean isUseBreakIterator()
+  {
+    return this.option_breakiterator
+      || !getLocale().getLanguage().equals(Locale.ENGLISH.getLanguage());
+  }
+
+  /**
+   * Return whether boilerplate license text should be copied.
+   */
+  public boolean isCopyLicenseText()
+  {
+    return this.option_licensetext;
+  }
+
+  /**
+   *  Return the locale specified using the -locale option or the
+   *  default locale;
+   */
+  public Locale getLocale()
+  {
+    return this.option_locale;
+  }
+
+  /**
+   *  Return the collator to use based on the specified -locale
+   *  option. If no collator can be found for the given locale, a
+   *  warning is emitted and the default collator is used instead.
+   */
+  public Collator getCollator()
+  {
+    if (null == this.collator) {
+      Locale locale = getLocale();
+      this.collator = Collator.getInstance(locale);
+      Locale defaultLocale = Locale.getDefault();
+      if (null == this.collator
+          && !defaultLocale.equals(locale)) {
+        this.collator = Collator.getInstance(defaultLocale);
+        if (null != this.collator) {
+          reporter.printWarning("No collator found for locale " 
+                                + locale.getDisplayName() 
+                                + "; using collator for default locale " 
+                                + defaultLocale.getDisplayName()
+                                + ".");
+        }
+        else {
+          this.collator = Collator.getInstance();
+          reporter.printWarning("No collator found for specified locale " 
+                                + locale.getDisplayName() 
+                                + " or default locale " 
+                                + defaultLocale.getDisplayName()
+                                + ": using default collator.");
+        }
+      }
+      if (null == this.collator) {
+        this.collator = Collator.getInstance();
+        reporter.printWarning("No collator found for locale " 
+                              + locale.getDisplayName() 
+                              + ": using default collator.");
+      }
+    }
+    return this.collator;
+  }
+
+  public boolean isCacheRawComments()
+  {
+    return true;
+  }
+
+  public String getGjdocVersion()
+  {
+    if (null == gjdocVersion) {
+      try {
+        Properties versionProperties = new Properties();
+        versionProperties.load(getClass().getResourceAsStream("/version.properties"));
+        gjdocVersion = versionProperties.getProperty("gjdoc.version");
+      }
+      catch (IOException ignore) {
+      }
+      if (null == gjdocVersion) {
+        gjdocVersion = "unknown";
+      }
+    }
+    return gjdocVersion;
+  }
+
+  public boolean isReflectionEnabled()
+  {
+    return this.option_reflection;
+  }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java
new file mode 100644 (file)
index 0000000..aae2462
--- /dev/null
@@ -0,0 +1,218 @@
+/* gnu.classpath.tools.gjdoc.MemberDocImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import com.sun.javadoc.*;
+
+public abstract class MemberDocImpl extends ProgramElementDocImpl implements MemberDoc {
+
+   protected String typeName;
+   protected Type   type;
+
+   public MemberDocImpl(ClassDoc containingClass,
+                       PackageDoc containingPackage,
+                        SourcePosition position) {
+
+      super(containingClass,
+           containingPackage,
+            position);
+   }
+
+   public String qualifiedName() {
+      return containingClass().qualifiedName()+"."+name();
+   }
+
+   public boolean isSynthetic() {
+      return false;
+   }
+
+   int parseModifiers(char[] source, int startIndex, int endIndex) {
+
+      Debug.log(9,"parseModifiers '"+new String(source,startIndex,endIndex-startIndex)+"'");
+
+      final int STATE_NORMAL = 1;
+      final int STATE_STARC  = 2;
+      final int STATE_SLASHC = 3;
+
+      int state = STATE_NORMAL;
+
+      StringBuffer word = new StringBuffer();
+      StringBuffer typeNameBuf = new StringBuffer();
+      int lastWordStart = startIndex;
+      int firstChar = 0;
+      int lastChar = 0;
+      for (; startIndex<endIndex; ++startIndex) {
+        if (state==STATE_STARC) {
+           if (startIndex<endIndex-1 && source[startIndex]=='*' && source[startIndex+1]=='/') {
+              ++startIndex;
+              state=STATE_NORMAL;
+           }
+        }
+        else if (state==STATE_SLASHC) {
+           if (source[startIndex]=='\n') {
+              state=STATE_NORMAL;
+           }
+        }
+        else if (startIndex<endIndex-1 && source[startIndex]=='/' && source[startIndex+1]=='*') {
+           ++startIndex;
+           state=STATE_STARC;
+        }
+        else if (source[startIndex]=='=' || source[startIndex]=='(' || source[startIndex]==';') {
+            typeName = typeNameBuf.toString();
+            return lastWordStart;
+        }
+        else if (Parser.WHITESPACE.indexOf(source[startIndex])>=0
+                  || (startIndex > 0 && source[startIndex-1] == ']' && source[startIndex] != '[')) {
+           if (word.length()>0 && lastChar != '.') {
+              if (processModifier(word.toString())) {
+              }
+              else if (typeNameBuf.length()==0 && !isConstructor()) {
+                  typeNameBuf.setLength(0);
+                 typeNameBuf.append(word);
+              }
+              else if ((firstChar=='[' || firstChar==']') && !isConstructor()) {
+                 typeNameBuf.append(word);
+              }
+              else {
+                  typeName = typeNameBuf.toString();
+                 return lastWordStart;
+              }
+              word.setLength(0);
+              lastWordStart=startIndex;
+           }
+        }
+        else {
+           if (lastWordStart<0) lastWordStart=startIndex;
+            lastChar = source[startIndex];
+            if (0 == word.length()) {
+               firstChar = lastChar;
+            }
+           word.append((char)lastChar);
+        }
+      }
+
+      typeName = typeNameBuf.toString();
+      return startIndex;
+   }
+
+    public Type type() {
+       //public Type type() throws ParseException { 
+       Debug.log(9,"type() called on "+containingClass()+"."+this);
+       if (type==null) {
+           try {
+               type=((ClassDocImpl)containingClass()).typeForString(typeName);
+           } catch (ParseException e) {
+              System.err.println("FIXME: add try-catch to force compilation");
+              e.printStackTrace();
+           }
+       }
+       return type;
+    }
+
+
+   protected void setName(String name) {
+      this.name=name;
+   }
+   private String name;
+
+
+   public String name() {
+      return name;
+   }
+
+   public void setTypeName(String typeName) { 
+      this.typeName=typeName;
+      this.type=null;
+   }
+
+   public String getTypeName() {
+      return typeName;
+   }
+
+   // return true if this Doc is include in the active set. 
+   public boolean isIncluded() {
+      return Main.getInstance().includeAccessLevel(accessLevel);
+   } 
+
+   public int compareTo(Object o) {
+      if (o instanceof MemberDocImpl) {
+        int rc=name().compareTo(((MemberDocImpl)o).name());
+        if (rc==0) 
+           rc=containingClass().qualifiedName().compareTo(((MemberDocImpl)o).containingClass().qualifiedName());
+        return rc;
+      }
+      else {
+        return super.compareTo(o);
+      }
+   }
+
+   void resolve() {
+
+      if (type==null && typeName!=null) {
+        Debug.log(1, "MemberDocImpl.resolve(), looking up type named "+typeName);
+        try {
+           type=((ClassDocImpl)containingClass()).typeForString(typeName);
+        } catch (ParseException e) {
+           //System.err.println("FIXME: add try-catch to force compilation");
+           //e.printStackTrace();
+           Debug.log(1, "INTERNAL WARNING: Couldn't find type for name '"+typeName+"'");
+        }
+      }
+
+      if (type instanceof ClassDocProxy) {
+        String className=type.qualifiedTypeName();
+        ClassDoc realClassDoc=((ClassDocImpl)containingClass()).findClass(className, type.dimension());
+        if (realClassDoc!=null) {
+            type=realClassDoc;
+        }
+        else {
+           //throw new Error("Class not found: "+className);
+           /*** This is not an error, the class was not included
+            * on the command line. Perhaps emit a notice here.
+            *
+
+           Main.getRootDoc().printError("Class not found '"
+                                        + className
+                                        + "' in class '"
+                                        + containingClass().qualifiedName()
+                                        + "' member '"
+                                        + name()
+                                        + "'");
+           */
+        }
+      }
+   }
+
+   public void resolveComments()
+   {
+      super.resolveComments();
+
+      if (tagMap.isEmpty()) {
+         TagContainer inheritedTagMap = ClassDocImpl.findInheritedDoc(containingClass(),
+                                                                      this,
+                                                                      null);
+         if (null != inheritedTagMap) {
+            this.tagMap = inheritedTagMap.getTagMap();
+         }
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java
new file mode 100644 (file)
index 0000000..8654a22
--- /dev/null
@@ -0,0 +1,47 @@
+/* gnu.classpath.tools.gjdoc.MethodDocImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import com.sun.javadoc.*;
+
+public class MethodDocImpl extends ExecutableMemberDocImpl implements MethodDoc {
+
+   public MethodDocImpl(ClassDoc containingClass,
+                       PackageDoc containingPackage,
+                        SourcePosition position) {
+      
+      super(containingClass,
+           containingPackage,
+            position);
+   }
+
+   // Is this Doc item a class. 
+   public boolean isMethod() {
+      return true;
+   } 
+
+   public Type returnType() { 
+      return super.type(); 
+   }
+
+   public String toString() { return name()+((signature()==null)?"()":signature()); }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java
new file mode 100644 (file)
index 0000000..d0b28d6
--- /dev/null
@@ -0,0 +1,206 @@
+/* gnu.classpath.tools.gjdoc.PackageDocImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.io.File;
+
+class PackageDocImpl extends DocImpl implements GjdocPackageDoc {
+
+   private String packageName;
+   private File   packageDirectory;
+
+   private Set    allClassesSet       = new TreeSet();
+   private List   ordinaryClassesList = new ArrayList();
+   private List   exceptionsList      = new ArrayList();
+   private List   interfacesList      = new ArrayList();
+   private List   errorsList          = new ArrayList();   
+
+   private ClassDoc[] allClasses;
+   private ClassDoc[] ordinaryClasses;
+   private ClassDoc[] exceptions;
+   private ClassDoc[] interfaces;
+   private ClassDoc[] errors;
+
+   PackageDocImpl(String packageName) {
+      super(null);
+      this.packageName=packageName;
+   }
+
+   public void addClass(ClassDoc classDoc) {
+      if (Main.getInstance().includeAccessLevel(((ClassDocImpl)classDoc).accessLevel)) {
+        allClassesSet.add(classDoc);
+      }
+   }
+
+   public void resolve() {
+      for (Iterator it=allClassesSet.iterator(); it.hasNext(); ) {
+        ClassDocImpl classDoc=(ClassDocImpl)it.next();
+        try {
+            classDoc.resolve();
+        } catch (ParseException e) {
+            System.err.println("FIXME: add try-catch to force compilation"
+                               + e);
+        }
+
+        if (classDoc.isInterface()) {
+           interfacesList.add(classDoc);
+        }
+        else if (classDoc.isException()) {
+           exceptionsList.add(classDoc);
+        }
+        else if (classDoc.isError()) {
+           errorsList.add(classDoc);
+        }
+        else {
+           ordinaryClassesList.add(classDoc);
+        }
+      }
+   }
+
+   public void resolveComments() {
+      if (rawDocumentation!=null) {
+        this.tagMap=parseCommentTags(rawDocumentation.toCharArray(),
+                                     0,
+                                     rawDocumentation.length(),
+                                     null,
+                                      null,
+                                      null,
+                                      null);
+      }
+
+      resolveTags();
+   }
+
+   public String name() { 
+      return packageName; 
+   }
+
+   public ClassDoc[] allClasses() 
+   { 
+      if (null == this.allClasses) {
+         this.allClasses = toClassDocArray(allClassesSet);
+      }
+      return this.allClasses;
+   }
+
+   public ClassDoc[] ordinaryClasses() 
+   { 
+      if (null == this.ordinaryClasses) {
+         this.ordinaryClasses = toClassDocArray(ordinaryClassesList);
+      }
+      return this.ordinaryClasses;
+   }
+
+
+   public ClassDoc[] exceptions() 
+   { 
+      if (null == this.exceptions) {
+         this.exceptions = toClassDocArray(exceptionsList);
+      }
+      return this.exceptions;
+   }
+
+   public ClassDoc[] interfaces() 
+   { 
+      if (null == this.interfaces) {
+         this.interfaces = toClassDocArray(interfacesList);
+      }
+      return this.interfaces;
+   }
+
+   public ClassDoc[] errors() 
+   { 
+      if (null == this.errors) {
+         this.errors = toClassDocArray(errorsList);
+      }
+      return this.errors;
+   }
+
+   private ClassDoc[] toClassDocArray(Collection classDocList)
+   {
+      ClassDoc[] result = (ClassDoc[])classDocList.toArray(new ClassDoc[classDocList.size()]);
+      Arrays.sort(result);
+      return result;
+   }
+
+   public ClassDoc findClass(String name) { 
+      return Main.getRootDoc().classNamed(packageName+"."+name);
+   }
+
+   public void dump(int level) {
+      Debug.log(level, "All classes:");
+      Debug.dumpArray(level, allClasses());
+
+      Debug.log(level, "Ordinary classes:");
+      Debug.dumpArray(level, ordinaryClasses());
+      
+   }
+
+   public static final PackageDocImpl DEFAULT_PACKAGE = new PackageDocImpl("");
+
+   public boolean isPackage() {
+      return true;
+   }
+
+   public boolean isIncluded() {
+      return isIncluded;
+   }
+
+   void setIsIncluded(boolean b) {
+      this.isIncluded=b;
+   }
+
+   private boolean isIncluded = false;
+
+   public String toString() {
+      return packageName;
+   }
+
+   public int compareTo(Object o) {
+      if (o!=null && o instanceof PackageDocImpl)
+        return name().compareTo(((PackageDocImpl)o).name());
+      else
+        return 0;
+   }
+
+   public boolean equals(Object o) {
+      if (o!=null && o instanceof PackageDocImpl)
+        return name().equals(((PackageDocImpl)o).name());
+      else
+        return false;
+   }
+
+   /**
+    *  Sets the directory containing this package's source files.
+    */
+   public void setPackageDirectory(File packageDirectory) {
+      this.packageDirectory = packageDirectory;
+   }
+
+   /**
+    *  Gets the directory containing this package's source files.
+    */
+   public File packageDirectory() {
+      return this.packageDirectory;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java
new file mode 100644 (file)
index 0000000..2d9567e
--- /dev/null
@@ -0,0 +1,64 @@
+/* gnu.classpath.tools.gjdoc.ParamTagImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class ParamTagImpl extends AbstractTagImpl implements ParamTag {
+
+   private String parameterName;
+   private String parameterComment;
+   
+   public ParamTagImpl(String text,
+                       ClassDocImpl contextClass,
+                       MemberDocImpl contextMember) {
+      super(text);
+      char[] textarr=text.toCharArray();
+      int i=0;
+      for (; i<textarr.length; ++i) {
+        if (!Parser.isWhitespace(textarr[i])) break;
+      }
+      for (; i<textarr.length; ++i) {
+        if (Parser.isWhitespace(textarr[i])) {
+           parameterName=new String(textarr,0,i).trim();
+           parameterComment=new String(textarr,i,textarr.length-i).trim();
+           break;
+        }
+      }
+      if (parameterComment!=null) {
+         setBody(parameterComment, contextClass, contextMember);
+      }
+   }
+
+   public String parameterComment() {
+      return parameterComment;
+   }
+
+   public String parameterName() {
+      return parameterName;
+   }
+
+   public String kind() {
+      return "@param";
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java
new file mode 100644 (file)
index 0000000..9132270
--- /dev/null
@@ -0,0 +1,52 @@
+/* gnu.classpath.tools.gjdoc.ParameterImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+
+public class ParameterImpl implements Parameter {
+
+   String name;
+   String typeName;
+   Type type;
+
+   ParameterImpl(String name, String typeName, Type type) {
+
+      this.name=name;
+      this.typeName=typeName;
+      this.type=type;
+   }
+
+   public void resolve(ClassDoc classContext) {
+      if (type instanceof ClassDocProxy) {
+        String className=type.qualifiedTypeName();
+        ClassDoc realClassDoc=((ClassDocImpl)classContext).findClass(className, type.dimension());
+        if (realClassDoc!=null) {
+            type=realClassDoc;
+         }
+      }
+   }
+
+   public String name() { return name; }
+   public String typeName() { return typeName; }
+   public Type type() { return type; }
+   public String toString() { return typeName+" "+name; }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java
new file mode 100644 (file)
index 0000000..4984ead
--- /dev/null
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.ParseException
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+class ParseException extends Exception {
+
+   public ParseException() 
+   {
+   }
+
+   public ParseException(String msg) 
+   {
+      super(msg);
+   }
+
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java
new file mode 100644 (file)
index 0000000..5569d4b
--- /dev/null
@@ -0,0 +1,1047 @@
+/* gnu.classpath.tools.gjdoc.Parser
+   Copyright (C) 2001, 2005, 2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Classpath.
+
+   GNU Classpath is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+   GNU Classpath is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU Classpath; see the file COPYING.  If not, write to the
+   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.io.*;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CoderResult;
+import java.nio.charset.CodingErrorAction;
+import java.util.*;
+
+import com.sun.javadoc.*;
+
+import gnu.classpath.tools.IOToolkit;
+import gnu.classpath.tools.NotifyingInputStreamReader;
+import gnu.classpath.tools.MalformedInputListener;
+import gnu.classpath.tools.MalformedInputEvent;
+
+   class IgnoredFileParseException extends ParseException 
+   {
+      // marker exception
+   }
+
+   abstract class SourceComponent {
+
+      abstract int match(char[] source, int index) throws ParseException;
+
+      int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
+        return endIndex;
+      }
+
+      int getEndIndex(char[] source, int endIndex) throws ParseException {
+        return endIndex;
+      }
+   }
+
+   abstract class BlockSourceComponent extends SourceComponent {
+
+      int getEndIndex(char[] source, int endIndex) throws ParseException {
+        return Parser.skipExpression(source, endIndex, 1, '\0');
+      }
+
+   }
+
+   class Whitespace extends SourceComponent {
+
+      int match(char[] source, int index) {
+
+        int rc=index;
+        int slen=source.length;
+        while (rc<slen && Parser.WHITESPACE.indexOf(source[rc])>=0) ++rc;
+
+        return (rc!=index) ? rc : -1;
+      }
+   }
+
+   class BracketClose extends SourceComponent {
+
+      int match(char[] source, int index) {
+        if (source[index]=='}') {
+           return index+1;
+        }
+        else {
+           return -1;
+        }
+      }
+
+     int process(Parser parser, char[] source, int startIndex, int endIndex) 
+       throws ParseException, IOException 
+     {
+       parser.classClosed();
+       return endIndex;
+     }
+   }
+
+   class CommentComponent extends SourceComponent {
+
+      int match(char[] source, int index) throws ParseException {
+        if (index+1<source.length && source[index]=='/' && source[index+1]=='*') {
+           for (index+=2; index+1<source.length; ++index) {
+              if (source[index]=='*' && source[index+1]=='/')
+                 return index+2;
+           }
+           throw new ParseException("unexpected end of input");
+        }
+        return -1;
+      }
+
+      int process(Parser parser, char[] source, int startIndex, int endIndex) {
+
+        if (source[startIndex+0]=='/' 
+            && source[startIndex+1]=='*' 
+            && source[startIndex+2]=='*') {
+
+           parser.setLastComment(new String(source, startIndex, endIndex-startIndex));
+        }
+         else if (null == parser.getBoilerplateComment() && Main.getInstance().isCopyLicenseText()) {
+            String boilerplateComment = new String(source, startIndex + 2, endIndex-startIndex - 4);
+            if (boilerplateComment.toLowerCase().indexOf("copyright") >= 0) {
+               parser.setBoilerplateComment(boilerplateComment);
+            }
+         }
+
+        return endIndex;
+      }
+   }
+
+   class SlashSlashCommentComponent extends SourceComponent {
+
+      int match(char[] source, int index) {
+        if (index+1<source.length && source[index]=='/' && source[index+1]=='/') {
+           index+=2;
+           while (index<source.length && source[index]!='\n')
+              ++index;
+           return index;
+        }
+        else {
+           return -1;
+        }
+      }
+   }
+
+   class EmptyStatementComponent extends SourceComponent {
+
+      int match(char[] source, int index) {
+         while (index < source.length
+                && Parser.isWhitespace(source[index])) {
+            ++ index;
+         }
+         if (index < source.length && source[index] == ';') {
+            return index+1;
+         }
+         else {
+            return -1;
+         }
+      }
+   }
+
+   class ImportComponent extends SourceComponent {
+
+      int match(char[] source, int index) {
+        if (index+7<source.length) {
+           if (source[index+0]=='i' 
+               && source[index+1]=='m'
+               && source[index+2]=='p'
+               && source[index+3]=='o'
+               && source[index+4]=='r'
+               && source[index+5]=='t'
+               && Parser.WHITESPACE.indexOf(source[index+6])>=0) {
+
+              for (index+=7; index<source.length && source[index]!=';'; ++index)
+                 ;
+
+              return index+1;
+           }
+        }
+        return -1;
+      }
+
+      int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
+        String importString=new String(source,startIndex+7,endIndex-startIndex-7-1).trim();
+        parser.importEncountered(importString);     
+        return endIndex;
+      }
+   }
+
+   class PackageComponent extends SourceComponent {
+
+      int match(char[] source, int index) {
+        if (index+10<source.length) {
+           if (source[index+0]=='p' 
+               && source[index+1]=='a'
+               && source[index+2]=='c'
+               && source[index+3]=='k'
+               && source[index+4]=='a'
+               && source[index+5]=='g'
+               && source[index+6]=='e'
+               && Parser.WHITESPACE.indexOf(source[index+7])>=0) {
+
+              for (index+=7; index<source.length && source[index]!=';'; ++index)
+                 ;
+
+              return index+1;
+           }
+        }
+        return -1;
+      }
+
+      int process(Parser parser, char[] source, int startIndex, int endIndex) {
+        String packageName=new String(source,startIndex+8,endIndex-startIndex-8-1).trim();
+        parser.packageOpened(packageName);
+        return endIndex;
+      }
+   }
+
+   class FieldComponent extends SourceComponent {
+
+      int match(char[] source, int index) throws ParseException {
+        boolean isField=false;
+        final int STATE_NORMAL=1;
+        final int STATE_SLASHC=2;
+        final int STATE_STARC=3;
+        final int STATE_FIELDVAL=4;
+        final int STATE_STRING=5;
+        final int STATE_SINGLEQUOTED=6;
+        final int STATE_STRING_BS=7;
+        final int STATE_SINGLEQUOTED_BS=8;
+
+        int state=STATE_NORMAL;
+         int prevState=STATE_NORMAL;
+
+         int fieldValueLevel = 0;
+
+        for (; index<source.length && !isField; ++index) {
+           if (state==STATE_STARC) {
+              if (index<source.length-1 && source[index]=='*' && source[index+1]=='/') {
+                 ++index;
+                 state=prevState;
+              }
+           }
+           else if (state==STATE_SLASHC) {
+              if (source[index]=='\n') {
+                 state=prevState;
+              }
+           }
+           else if (state==STATE_STRING) {
+              if (source[index]=='\\') {
+                 state=STATE_STRING_BS;
+              }
+              else if (source[index]=='\"') {
+                 state=prevState;
+              }
+           }
+           else if (state==STATE_STRING_BS) {
+               state=STATE_STRING;
+            }
+           else if (state==STATE_SINGLEQUOTED) {
+              if (source[index]=='\\') {
+                 state=STATE_SINGLEQUOTED_BS;
+              }
+              else if (source[index]=='\'') {
+                 state=prevState;
+              }
+           }
+           else if (state==STATE_SINGLEQUOTED_BS) {
+               state=STATE_SINGLEQUOTED;
+            }
+            else if (state==STATE_FIELDVAL) {
+               if (source[index]=='/') {
+                  if (index<source.length-1 && source[index+1]=='*') {
+                     state=STATE_STARC; 
+                     ++index;
+                  }
+                  else if (index<source.length-1 && source[index+1]=='/') {
+                     state=STATE_SLASHC; 
+                     ++index;
+                  }
+               }
+               else if (source[index]=='{') {
+                  ++ fieldValueLevel;
+               }
+               else if (source[index]=='}') {
+                  -- fieldValueLevel;
+               }
+               else if (source[index]=='\"') {
+                  state=STATE_STRING;
+               }
+               else if (source[index]=='\'') {
+                  state=STATE_SINGLEQUOTED;
+               }
+               else if (source[index]==';' && 0 == fieldValueLevel) {
+                  isField=true;
+                  break;
+               }
+            }
+           else switch (source[index]) {
+           case '/': 
+              if (index<source.length-1 && source[index+1]=='*') {
+                 state=STATE_STARC; 
+                 ++index;
+              }
+              else if (index<source.length-1 && source[index+1]=='/') {
+                 state=STATE_SLASHC; 
+                 ++index;
+              }
+              break;
+           case '{':  // class
+           case '(':  // method
+              return -1;
+           case '=':  // field
+               state=STATE_FIELDVAL;
+               prevState=state;
+               continue;
+           case ';':  // field
+              isField=true;
+              break;
+           }
+           if (isField) break;
+        }
+        if (!isField || index==source.length) {
+           return -1;
+        }
+
+        //System.err.println("char is "+source[index]);
+
+        if (source[index]!=';') {
+           index=Parser.skipExpression(source, index, 0, ';');
+        }
+        return index+1;
+      }
+
+      int process(Parser parser, char[] source, int startIndex, int endIndex) {
+
+        //Debug.log(9,"found package statement: \""+str+"\"");
+        //Debug.log(9,"found function component: '"+str+"'");
+        //xxx(new FieldDocImpl(ctx.classDoc, ctx.classDoc.containingPackage(), 0, false, false));
+
+        // Ignore superfluous semicoli after class definition
+        if (endIndex-startIndex<=1) return endIndex;
+
+        //assert (parser.ctx!=null);
+        Collection fields=FieldDocImpl.createFromSource(parser.ctx.classDoc, 
+                                                        parser.ctx.classDoc.containingPackage(), 
+                                                        source, startIndex, endIndex);
+
+        for (Iterator it=fields.iterator(); it.hasNext(); ) {
+           FieldDocImpl field=(FieldDocImpl)it.next();
+           boolean fieldHasSerialTag=!field.isTransient() && !field.isStatic(); //field.hasSerialTag();
+           if ((field.isIncluded() || fieldHasSerialTag) && parser.getAddComments()) {
+              field.setRawCommentText(parser.getLastComment());
+           }
+            parser.ctx.fieldList.add(field);
+           if (field.isIncluded()) {
+              parser.ctx.filteredFieldList.add(field);
+           }
+           if (fieldHasSerialTag) {
+              parser.ctx.sfieldList.add(field);
+           }
+        }
+
+        parser.setLastComment(null);
+        return endIndex;
+      }
+   
+
+   }
+
+   class FunctionComponent extends BlockSourceComponent {
+
+      int getEndIndex(char[] source, int endIndex) throws ParseException {
+        if (source[endIndex-1]==';') {
+           return endIndex;
+        }
+        else {
+           return super.getEndIndex(source, endIndex);
+        }
+      }
+
+      int process(Parser parser, char[] source, int startIndex, int endIndex) throws IOException, ParseException {
+
+        //ctx.fieldList.add(FieldDocImpl.createFromSource(source, startIndex, endIndex));
+
+        //System.out.println("function match '"+new String(source,startIndex,endIndex-startIndex)+"'");
+        ExecutableMemberDocImpl execDoc=MethodDocImpl.createFromSource(parser.ctx.classDoc, 
+                                                                       parser.ctx.classDoc.containingPackage(), 
+                                                                       source, startIndex, endIndex);
+
+        if (parser.getAddComments())
+           execDoc.setRawCommentText(parser.getLastComment());
+
+        parser.setLastComment(null);
+
+         if (execDoc.isMethod()) {
+            parser.ctx.methodList.add(execDoc);
+            if (execDoc.isIncluded()) {
+               parser.ctx.filteredMethodList.add(execDoc);
+            }
+         }
+         else {
+            parser.ctx.constructorList.add(execDoc);
+            if (execDoc.isIncluded()) {
+               parser.ctx.filteredConstructorList.add(execDoc);
+            }
+         }
+
+        if (execDoc.isMethod() 
+                 && (execDoc.name().equals("readObject")
+                     || execDoc.name().equals("writeObject")
+                     || execDoc.name().equals("readExternal")
+                     || execDoc.name().equals("writeExternal")
+                     || execDoc.name().equals("readResolve"))) {
+           // FIXME: add readExternal here?
+
+           parser.ctx.maybeSerMethodList.add(execDoc);
+        }
+
+        return endIndex;
+      }
+
+      int match(char[] source, int index) {
+        boolean isFunc=false;
+        final int STATE_NORMAL=1;
+        final int STATE_SLASHC=2;
+        final int STATE_STARC=3;
+        int state=STATE_NORMAL;
+        for (; index<source.length && !isFunc; ++index) {
+           if (state==STATE_STARC) {
+              if (source[index]=='*' && source[index+1]=='/') {
+                 ++index;
+                 state=STATE_NORMAL;
+              }
+           }
+           else if (state==STATE_SLASHC) {
+              if (source[index]=='\n') {
+                 state=STATE_NORMAL;
+              }
+           }
+           else switch (source[index]) {
+           case '/': 
+              if (source[index+1]=='*') {
+                 state=STATE_STARC; 
+                 ++index;
+              }
+              else if (source[index+1]=='/') {
+                 state=STATE_SLASHC; 
+                 ++index;
+              }
+              break;
+           case '=':  // field
+           case ';':  // field
+           case '{':  // class
+              return -1;
+           case '(':
+              isFunc=true;
+              break;
+           }
+           if (isFunc) break;
+        }
+        if (!isFunc || index==source.length)
+           return -1;
+
+        for (; index<source.length && (state!=STATE_NORMAL || (source[index]!='{' && source[index]!=';')); ++index)
+           if (state==STATE_SLASHC && source[index]=='\n') {
+              state=STATE_NORMAL;
+           }
+           else if (index<source.length-1) {
+              if (state==STATE_STARC) {
+                 if (source[index]=='*' && source[index+1]=='/') {
+                    state=STATE_NORMAL;
+                 }
+              }
+              else {
+                 if (source[index]=='/' && source[index+1]=='*') {
+                    state=STATE_STARC;
+                 }
+                 else if (source[index]=='/' && source[index+1]=='/') {
+                    state=STATE_SLASHC;
+                 }
+              }
+           }
+        return index+1;
+      }
+   
+
+   }
+
+   class StaticBlockComponent extends BlockSourceComponent {
+
+      int process(Parser parser, char[] source, int startIndex, int endIndex) {
+        //Debug.log(9,"found package statement: \""+str+"\"");
+        //Debug.log(9,"found function component: '"+str+"'");
+        parser.setLastComment(null);
+        return endIndex;
+      }
+   
+      int match(char[] source, int index) {
+        if (source[index]=='{') return index+1;
+
+        if (index+7<source.length) {
+           if (source[index+0]=='s' 
+               && source[index+1]=='t'
+               && source[index+2]=='a'
+               && source[index+3]=='t'
+               && source[index+4]=='i'
+               && source[index+5]=='c') {
+
+              for (index+=6; index<source.length && Parser.WHITESPACE.indexOf(source[index])>=0; ++index)
+                 ;
+
+              if (index<source.length && source[index]=='{')
+                 return index+1;
+              else
+                 return -1;
+           }
+        }
+        return -1;
+      }
+
+   }
+
+   class ClassComponent extends SourceComponent {
+
+      int match(char[] source, int index) {
+        boolean isClass=false;
+        for (; index<source.length && !isClass; ++index) {
+           switch (source[index]) {
+            case '/':  // possible comment
+               if (index<source.length-1) {
+                  char c = source[index+1];
+                  if ('/' == c) {
+                     index += 2;
+                     while (index<source.length && source[index]!=10) {
+                        ++ index;
+                     }
+                  }
+                  else if ('*' == c) {
+                     index += 3;
+                     while (index<source.length && (source[index-1] != '*' || source[index]!='/')) {
+                        ++ index;
+                     }
+                  }
+               }
+               break;
+            case '@':  // annotation
+               index += 1;
+               while(index<source.length &&  Character.isJavaIdentifierPart(source[index])) {
+                   ++ index;
+               }
+               if (index<source.length && source[index]=='(') {
+                  int parLevel = 1;
+                   index += 1;
+                   while (index<source.length && parLevel>0) { 
+                      if (source[index] == '(')
+                          ++ parLevel;
+                      if (source[index] == ')')
+                         -- parLevel;
+                       ++ index;
+                      if (parLevel==0)
+                          break;
+                   } 
+               }
+               break;
+           case '=':  // field
+           case ';':  // field
+           case '(':  // function
+              return -1;
+           case '{':
+              isClass=true;
+              break;
+           }
+           if (isClass) break;
+        }
+        if (!isClass || index>=source.length)
+           return -1;
+
+        return index+1;
+      }
+
+      int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
+
+        parser.classOpened(source, startIndex, endIndex);
+        if (parser.getAddComments())
+           parser.ctx.classDoc.setRawCommentText(parser.getLastComment());
+        parser.setLastComment(null);
+        if (parser.ctx.classDoc.isEnum())
+          {
+            int depth = 0;
+            for (int a = endIndex; a < source.length; ++a)
+            {
+              Debug.log(9, "Enum skipping " + a);
+              if (source[a] == '{')
+                {
+                  Debug.log(1, "Found inner { in enum");
+                  ++depth;
+                }
+              if (source[a] == '}')
+                {
+                  if (depth > 0)
+                    {
+                      Debug.log(1, "Found inner } in enum");
+                      --depth;
+                    }
+                  else
+                    {
+                      Debug.log(1, "Found enum }");
+                      parser.classClosed();
+                      return a + 1;
+                    }
+                }
+            }
+          }
+        int rc=parser.parse(source, endIndex, parser.getClassLevelComponents());
+        return rc;
+      }
+
+   }
+
+
+public class Parser {
+
+
+   static int skipExpression(char[] source, int endIndex, int level, char delimiter) throws ParseException {
+
+      int orgEndIndex=endIndex;
+
+      final int STATE_NORMAL=1;
+      final int STATE_STARC=2;
+      final int STATE_SLASHC=3;
+      final int STATE_CHAR=4;
+      final int STATE_STRING=5;
+
+      int state=STATE_NORMAL;
+      int prev=0;
+      for (; !((level==0 && state==STATE_NORMAL && (delimiter=='\0' || source[endIndex]==delimiter))) && endIndex<source.length; ++endIndex) {
+        int c=source[endIndex];
+        if (state==STATE_NORMAL) {
+           if (c=='}') --level;
+           else if (c=='{') ++level;
+           else if (c=='/' && prev=='/') { state=STATE_SLASHC; c=0; }
+           else if (c=='*' && prev=='/') { state=STATE_STARC; c=0; }
+           else if (c=='\'' && prev!='\\') { state=STATE_CHAR; c=0; }
+           else if (c=='\"' && prev!='\\') { state=STATE_STRING; c=0; }
+        }
+        else if (state==STATE_SLASHC) {
+           if (c=='\n') state=STATE_NORMAL;
+        }
+        else if (state==STATE_CHAR) {
+           if (c=='\'' && prev!='\\') state=STATE_NORMAL;
+           else if (c=='\\' && prev=='\\') c=0;
+        }
+        else if (state==STATE_STRING) {
+           if (c=='\"' && prev!='\\') state=STATE_NORMAL;
+           else if (c=='\\' && prev=='\\') c=0;
+        }
+        else {
+           if (c=='/' && prev=='*') { state=STATE_NORMAL; c=0; }
+        }
+        prev=c;
+      }
+      if (level>0)
+        throw new ParseException("Unexpected end of source.");
+      else {
+        String rc=new String(source, orgEndIndex, endIndex-orgEndIndex);
+        return endIndex;
+      }
+   }
+
+   private boolean addComments = false;
+
+   public boolean getAddComments()
+   {
+      return this.addComments;
+   }
+
+   public static final String WHITESPACE=" \t\r\n\f";
+
+   public static final boolean isWhitespace(char c) {
+      return (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '\f');
+      //return WHITESPACE.indexOf(c)>=0; 
+   }
+
+   private int currentLine;
+
+   static char[] loadFile(final File file, String encoding) 
+      throws IOException 
+   {
+      InputStream in = new FileInputStream(file);
+      NotifyingInputStreamReader notifyingInput
+         = new NotifyingInputStreamReader(in, encoding);
+      notifyingInput.addMalformedInputListener(new MalformedInputListener() {
+            public void malformedInputEncountered(MalformedInputEvent event) {
+               Main.getRootDoc().printWarning("Illegal character in file " + file + ", line " + event.getLineNumber() + ", column " + event.getColumnNumber());
+               try {
+                  Main.getRootDoc().printWarning(IOToolkit.getLineFromFile(file, event.getLineNumber()));
+                  Main.getRootDoc().printWarning(IOToolkit.getColumnDisplayLine(event.getColumnNumber()));
+               }
+               catch (IOException ignore) {
+               }
+            }
+         });
+      Reader reader
+         = new BufferedReader(notifyingInput);
+      char[] result = IOToolkit.readFully(reader);
+      reader.close();
+      return result;
+   }
+
+   private SourceComponent[] sourceLevelComponents;
+   private SourceComponent[] classLevelComponents;
+
+   public SourceComponent[] getClassLevelComponents()
+   {
+      return this.classLevelComponents;
+   }
+
+   public Parser() {
+      try {
+
+        sourceLevelComponents=new SourceComponent[] {
+           new Whitespace(),
+           new CommentComponent(),
+           new SlashSlashCommentComponent(),
+           new PackageComponent(),
+           new EmptyStatementComponent(),
+           new ImportComponent(),
+           new ClassComponent(),
+        };
+
+        classLevelComponents=new SourceComponent[] {
+           new Whitespace(),
+           new BracketClose(),
+           new CommentComponent(),
+           new SlashSlashCommentComponent(),
+           new FunctionComponent(),
+           new StaticBlockComponent(),
+           new ImportComponent(),
+           new ClassComponent(),
+           new FieldComponent(),
+        };
+      }
+      catch (Exception e) {
+        e.printStackTrace();
+      }
+   }
+
+   public int getNumberOfProcessedFiles() {
+      return processedFiles.size();
+   }
+
+   static Set processedFiles = new HashSet();
+
+   ClassDocImpl processSourceFile(File file, boolean addComments, 
+                                  String encoding, String expectedPackageName) 
+      throws IOException, ParseException
+   {
+     //System.err.println("Processing " + file + "...");
+      this.currentFile = file;
+      this.currentPackage = null;
+      this.currentPackageName = null;
+      this.expectedPackageName = expectedPackageName;
+      this.outerClass = null;
+      this.boilerplateComment = null;
+
+      this.addComments=addComments;
+
+      if (processedFiles.contains(file)) {
+         return null;
+      }
+
+      processedFiles.add(file);
+         
+      Debug.log(1,"Processing file "+file);
+      
+      contextStack.clear();
+      ctx=null;
+
+      importedClassesList.clear();
+      importedStringList.clear();
+      importedPackagesList.clear();
+      importedStatementList.clear();
+      
+      currentLine = 1;
+
+      char[] source = loadFile(file, encoding);
+
+      try {
+         parse(source, 0, sourceLevelComponents);
+
+         ClassDoc[] importedClasses=(ClassDoc[])importedClassesList.toArray(new ClassDoc[0]);
+         PackageDoc[] importedPackages=(PackageDoc[])importedPackagesList.toArray(new PackageDoc[0]);
+         
+         if (Main.DESCEND_IMPORTED) {
+            for (int i=0; i<importedClasses.length; ++i) {
+               Main.getRootDoc().scheduleClass(currentClass, importedClasses[i].qualifiedName());
+            }
+         }
+       
+         
+           if (contextStack.size()>0) {
+            Debug.log(1,"-->contextStack not empty! size is "+contextStack.size());
+           }
+         
+         return outerClass;
+      }
+      catch (IgnoredFileParseException ignore) {
+       Debug.log(1, "File ignored: " + ignore);
+         return null;
+      }
+   }
+      
+   int parse(char[] source, int index, SourceComponent[] componentTypes) throws ParseException, IOException {
+
+      while (index<source.length) {
+
+        int match=-1;
+        int i=0;
+        for (; i<componentTypes.length; ++i) {
+           if ((match=componentTypes[i].match(source, index))>=0) {
+             //Debug.log(1,componentTypes[i].getClass().getName()+" ("+match+"/"+source.length+")");
+              break;
+           }
+        }
+
+        if (i<componentTypes.length) {
+           int endIndex=componentTypes[i].getEndIndex(source, match);
+           Debug.log(9, "Processing " + new String(source,index,endIndex-index) + " with " + componentTypes[i]);
+           index=componentTypes[i].process(this, source, index, endIndex);
+           if (index<0) {
+             //Debug.log(9,"exiting parse because of "+componentTypes[i].getClass().getName()+" (\""+new String(source, index, endIndex-index)+"\")");
+              return endIndex;
+           }
+        }
+        else {
+          //Debug.log(9,"index="+index+", source.length()="+source.length);
+           throw new ParseException("unmatched input in line "+currentLine+": "+new String(source, index, Math.min(50,source.length-index)));
+        }
+
+      }
+      //Debug.log(9,"exiting parse normally, index="+index+" source.length="+source.length);
+      return index;
+   }
+
+   private static int countNewLines(String source) {
+      int i=0;
+      int rc=0;
+      while ((i=source.indexOf('\n',i)+1)>0) 
+        ++rc;
+      return rc;
+   }
+
+   public void processSourceDir(File dir, String encoding, String expectedPackageName) 
+      throws IOException, ParseException 
+   {
+      Debug.log(9,"Processing "+dir.getParentFile().getName()+"."+dir.getName());
+      File[] files=dir.listFiles();
+      if (null!=files) {
+        for (int i=0; i<files.length; ++i) {
+           if (files[i].getName().toLowerCase().endsWith(".java")) {
+              processSourceFile(files[i], true, encoding, expectedPackageName);
+           }
+        }
+      }
+   }
+
+   void classOpened(char[] source, int startIndex, int endIndex) throws ParseException, IOException {
+
+      referencedClassesList.clear();
+
+      if (null == currentPackage) {
+
+         if (expectedPackageName != null) {
+            if (null == currentPackageName ||
+                !currentPackageName.equals(expectedPackageName)) {
+
+               Main.getRootDoc().printWarning("Ignoring file " + currentFile + ": (wrong package, " + currentPackageName + "!=" + expectedPackageName + ")");
+               throw new IgnoredFileParseException();
+            }
+         }
+
+         if (null != currentPackageName) {
+            currentPackage = Main.getRootDoc().findOrCreatePackageDoc(currentPackageName);
+         }
+         else {
+            currentPackage = Main.getRootDoc().findOrCreatePackageDoc("");
+         }
+      }
+
+      if (currentPackageName != null)
+        importedStatementList.add(currentPackageName + ".*");
+      importedStatementList.add("java.lang.*");
+
+      ClassDocImpl classDoc
+        = ClassDocImpl.createInstance((ctx!=null)?(ctx.classDoc):null, currentPackage, 
+                                      null,
+                                      (PackageDoc[])importedPackagesList.toArray(new PackageDoc[0]),
+                                      source, startIndex, endIndex,
+                                       importedStatementList);
+
+      if (ctx != null) {
+         ctx.innerClassesList.add(classDoc);
+         if (classDoc.isIncluded()) {
+            ctx.filteredInnerClassesList.add(classDoc);
+         }
+      }
+
+      if (importedClassesList.isEmpty()) {
+        for (Iterator it=importedStringList.iterator(); it.hasNext(); ) {
+           importedClassesList.add(new ClassDocProxy((String)it.next(), classDoc));
+        }
+      }
+      classDoc.setImportedClasses((ClassDoc[])importedClassesList.toArray(new ClassDoc[0]));
+
+      currentPackage.addClass(classDoc);
+
+      currentClass = classDoc;
+
+      if (null == outerClass) {
+         outerClass = classDoc;
+      }
+
+      if (classDoc.superclass()!=null)
+        referencedClassesList.add(classDoc.superclass());
+
+      Debug.log(1,"classOpened "+classDoc+", adding superclass "+classDoc.superclass());
+      Debug.log(1,"Pushing " + ctx);
+      contextStack.push(ctx);
+      ctx=new Context(classDoc);
+      //Debug.log(9,"ctx="+ctx);
+   }
+
+   private Doc[] toArray(List list, Doc[] template)
+   {
+      Doc[] result = (Doc[])list.toArray(template);
+      return result;
+   }
+
+   void classClosed() throws ParseException, IOException {
+      ctx.classDoc.setFields((FieldDoc[])toArray(ctx.fieldList, 
+                                                             new FieldDoc[0]));
+      ctx.classDoc.setFilteredFields((FieldDoc[])toArray(ctx.filteredFieldList, 
+                                                                     new FieldDoc[0]));
+      ctx.classDoc.setSerializableFields((FieldDoc[])toArray(ctx.sfieldList, new FieldDoc[0]));
+      ctx.classDoc.setMethods((MethodDoc[])toArray(ctx.methodList, new MethodDoc[0]));
+      ctx.classDoc.setFilteredMethods((MethodDoc[])toArray(ctx.filteredMethodList, new MethodDoc[0]));
+      ctx.classDoc.setMaybeSerMethodList(ctx.maybeSerMethodList);
+      ctx.classDoc.setConstructors((ConstructorDoc[])toArray(ctx.constructorList, new ConstructorDoc[0]));
+      ctx.classDoc.setFilteredConstructors((ConstructorDoc[])toArray(ctx.filteredConstructorList, new ConstructorDoc[0]));
+
+      ctx.classDoc.setInnerClasses((ClassDocImpl[])toArray(ctx.innerClassesList, new ClassDocImpl[0]));
+      ctx.classDoc.setFilteredInnerClasses((ClassDocImpl[])toArray(ctx.filteredInnerClassesList, new ClassDocImpl[0]));
+      ctx.classDoc.setBoilerplateComment(boilerplateComment);
+
+      Main.getRootDoc().addClassDoc(ctx.classDoc);
+      
+      if (Main.DESCEND_INTERFACES) {
+        for (int i=0; i<ctx.classDoc.interfaces().length; ++i) {
+           Main.getRootDoc().scheduleClass(ctx.classDoc, ctx.classDoc.interfaces()[i].qualifiedName());
+        }
+      }
+
+      Debug.log(1,"classClosed: "+ctx.classDoc);
+
+      ctx=(Context)contextStack.pop();
+      Debug.log(1, "Popping " + ctx);
+      ClassDoc[] referencedClasses=(ClassDoc[])referencedClassesList.toArray(new ClassDoc[0]);
+
+      if (Main.DESCEND_SUPERCLASS) {
+        for (int i=0; i<referencedClasses.length; ++i) {
+           Main.getRootDoc().scheduleClass(currentClass, referencedClasses[i].qualifiedName());
+        }
+      }
+   }
+   
+   Context      ctx             = null;
+   Stack        contextStack    = new Stack();
+   class Context {
+      Context(ClassDocImpl classDoc) { this.classDoc=classDoc; }
+      ClassDocImpl      classDoc                 = null;
+      List             fieldList                = new LinkedList();
+      List             filteredFieldList        = new LinkedList();
+      List             sfieldList               = new LinkedList();
+      List             methodList               = new LinkedList();
+      List             filteredMethodList       = new LinkedList();
+      List              maybeSerMethodList       = new LinkedList();
+      List             constructorList          = new LinkedList();
+      List             filteredConstructorList  = new LinkedList();
+      List              innerClassesList         = new LinkedList();
+      List              filteredInnerClassesList = new LinkedList();
+   }
+   
+   File currentFile = null;
+   String lastComment = null;
+   String expectedPackageName = null;
+   String currentPackageName = null;
+   PackageDocImpl currentPackage = null;
+   ClassDocImpl currentClass = null;
+   ClassDocImpl outerClass   = null;
+   List ordinaryClassesList  = new LinkedList();
+   List allClassesList       = new LinkedList();
+   List interfacesList       = new LinkedList();
+
+   List importedClassesList  = new LinkedList();
+   List importedStringList   = new LinkedList();
+   List importedPackagesList = new LinkedList();
+   List importedStatementList = new LinkedList();
+
+   List referencedClassesList = new LinkedList();
+
+   String boilerplateComment = null;
+
+   void packageOpened(String packageName) {
+      currentPackageName = packageName;
+   }
+   
+   void importEncountered(String importString) throws ParseException, IOException {
+      //Debug.log(9,"importing '"+importString+"'");
+
+      importedStatementList.add(importString);
+
+      if (importString.endsWith(".*")) {
+        importedPackagesList.add(Main.getRootDoc().findOrCreatePackageDoc(importString.substring(0,importString.length()-2)));
+      }
+      else {
+        importedStringList.add(importString);
+      }
+   }
+
+
+   void setLastComment(String lastComment) {
+      this.lastComment=lastComment;
+   }
+
+   String getLastComment() {
+      return this.lastComment;
+   }
+
+   void setBoilerplateComment(String boilerplateComment)
+   {
+      this.boilerplateComment = boilerplateComment;
+   }
+
+   String getBoilerplateComment()
+   {
+      return boilerplateComment;
+   }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java
new file mode 100644 (file)
index 0000000..19353cc
--- /dev/null
@@ -0,0 +1,161 @@
+/* gnu.classpath.tools.gjdoc.ProgramElementDocImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.lang.reflect.Modifier;
+
+public abstract class ProgramElementDocImpl extends DocImpl implements ProgramElementDoc {
+
+   protected ClassDoc containingClass;
+   protected PackageDoc containingPackage;
+
+   protected boolean isFinal;
+   protected boolean isStatic;
+   protected int     accessLevel=ProgramElementDocImpl.ACCESS_PACKAGEPRIVATE;
+
+   public static final int ACCESS_PUBLIC         = 0;
+   public static final int ACCESS_PROTECTED      = 1;
+   public static final int ACCESS_PACKAGEPRIVATE  = 2;
+   public static final int ACCESS_PRIVATE        = 3;
+
+   private static final String[] accessModifiers = { "public ", "protected ", "", "private "};
+
+   public ProgramElementDocImpl(ClassDoc containingClass, 
+                                PackageDoc containingPackage,
+                                SourcePosition position) {
+      super(position);
+      this.containingClass=containingClass;
+      this.containingPackage=containingPackage;
+   }   
+   public ProgramElementDocImpl(ClassDoc containingClass, SourcePosition position) {
+      super(position);
+      this.containingClass=containingClass;
+      this.containingPackage=containingClass.containingPackage();
+   }   
+   public ProgramElementDocImpl(ClassDoc containingClass,
+                               PackageDoc containingPackage,
+                               int accessLevel,
+                               boolean isFinal,
+                               boolean isStatic,
+                                SourcePosition position) {
+      super(position);
+      this.containingClass=containingClass;
+      this.containingPackage=containingPackage;
+      this.accessLevel=accessLevel;
+      this.isFinal=isFinal;
+      this.isStatic=isStatic;
+   }
+
+   //Get the containing class of this program element. 
+   public ClassDoc containingClass() {
+      return containingClass;
+   }
+
+   // Get the package that this program element is contained in. 
+   public PackageDoc containingPackage() {
+      return containingPackage;
+   }
+   // Return true if this program element is final 
+   public boolean isFinal() {
+      return isFinal;
+   }
+   // Return true if this program element is package private 
+   public boolean isPackagePrivate() {
+      return accessLevel==ACCESS_PACKAGEPRIVATE;
+   }
+   // Return true if this program element is private 
+   public boolean isPrivate() {
+      return accessLevel==ACCESS_PRIVATE;
+   }
+   // Return true if this program element is protected 
+   public boolean isProtected() {
+      return accessLevel==ACCESS_PROTECTED;
+   }
+   // Return true if this program element is public 
+   public boolean isPublic() {
+      return accessLevel==ACCESS_PUBLIC;
+   }
+   // Return true if this program element is static 
+   public boolean isStatic() {
+      return isStatic;
+   }
+   // Get modifiers string. 
+   public String modifiers() {
+      return 
+        (accessModifiers[accessLevel]+
+         (isStatic()?"static ":"")+
+         (isFinal()?"final ":"")).trim();
+   }
+   // Get the modifier specifier integer. 
+   public int modifierSpecifier() {
+      return (isStatic()?Modifier.STATIC:0)
+        | (isFinal()?Modifier.FINAL:0)
+        | (isPublic()?Modifier.PUBLIC:0)
+        | (isProtected()?Modifier.PROTECTED:0)
+        | (isPrivate()?Modifier.PRIVATE:0)
+//      | (isAbstract()?Modifier.ABSTRACT:0)
+        ;
+   }
+   // Get the fully qualified name. 
+   public abstract String qualifiedName();
+
+   protected boolean processModifier(String word) {
+      if (word.equals("public")) {
+        accessLevel=ACCESS_PUBLIC;
+        return true;
+      }
+      else if (word.equals("protected")) {
+        accessLevel=ACCESS_PROTECTED;
+        return true;
+      }
+      else if (word.equals("private")) {
+        accessLevel=ACCESS_PRIVATE;
+        return true;
+      }
+      else if (word.equals("static")) {
+        isStatic=true;
+        return true;
+      }
+      else if (word.equals("final")) {
+        isFinal=true;
+        return true;
+      }
+      else {
+        return false;
+      }
+   }
+
+   void setIsStatic(boolean b) {
+      this.isStatic=b;
+   }
+
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java
new file mode 100644 (file)
index 0000000..b60a0b6
--- /dev/null
@@ -0,0 +1,1317 @@
+/* gnu.classpath.tools.gjdoc.RootDocImpl
+   Copyright (C) 2001, 2007 Free Software Foundation, Inc.
+
+   This file is part of GNU Classpath.
+
+   GNU Classpath is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+   GNU Classpath is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU Classpath; see the file COPYING.  If not, write to the
+   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.io.*;
+import java.lang.reflect.*;
+
+public class RootDocImpl 
+   extends DocImpl 
+   implements GjdocRootDoc {
+
+   private ErrorReporter reporter = new ErrorReporter();
+
+   private RandomAccessFile rawCommentCache;
+
+   /**
+    *  All options and their corresponding values which are not recognized
+    *  by Gjdoc. These are passed to the Doclet as "custom options".
+    *  Each element in this array is again a String array, with the 
+    *  option name as first element (including prefix dash) and possible
+    *  option values as following elements.
+    */
+   private String[][] customOptionArr;
+
+   /**
+    *  All source files explicitly specified on the command line.
+    *
+    *  @contains File
+    */
+   private List specifiedSourceFiles = new LinkedList();
+
+   /**
+    *  The names of all packages explicitly specified on the 
+    *  command line.
+    *
+    *  @contains String
+    */
+   private Set specifiedPackageNames = new LinkedHashSet();
+
+   /**
+    *  Stores all classes specified by the user: those given by
+    *  individual class names on the command line, and those
+    *  contained in the packages given on the command line.
+    *
+    *  @contains ClassDocImpl
+    */
+   private List classesList = new LinkedList(); //new LinkedList();
+
+   /**
+    *  Stores all classes loaded in the course of preparing
+    *  the documentation data. Maps the fully qualified name 
+    *  of a class to its ClassDocImpl representation.
+    *
+    *  @contains String->ClassDocImpl
+    */
+   private Map classDocMap = new HashMap();
+
+   /**
+    *  Stores all packages loaded in the course of preparing
+    *  the documentation data. Maps the package name 
+    *  to its PackageDocImpl representation.
+    *
+    *  @contains String->PackageDocImpl
+    */
+   private Map packageDocMap = new HashMap();
+
+   /**
+    *  All classes specified by the user, both those explicitly
+    *  individually specified on the command line and those contained
+    *  in packages specified on the command line (as Array for quick
+    *  retrieval by Doclet).  This is created from classesList after
+    *  all classes have been loaded.  
+    */
+   private ClassDocImpl[] classes;
+
+   /**
+    *  All classes which were individually specified on the command 
+    *  line (as Array for quick retrieval by Doclet). This is created 
+    *  from specifiedClassNames after all classes have been loaded.
+    */
+   private List specifiedClasses;
+
+   /**
+    *  All packages which were specified on the command line (as Array
+    *  for quick retrieval by Doclet). This is created from
+    *  specifiedPackageNames after all classes have been loaded.  
+    */
+   private Set specifiedPackages;
+
+
+   /**
+    *  Temporarily stores a list of classes which are referenced
+    *  by classes already loaded and which still have to be
+    *  resolved.
+    */
+   private List scheduledClasses=new LinkedList();
+
+   private List sourcePath;
+
+   private String sourceEncoding;
+
+   private Parser parser = new Parser();
+
+   private Set unlocatableReportedSet = new HashSet();
+
+   private Set inaccessibleReportedSet = new HashSet();
+   
+   //--------------------------------------------------------------------------
+   //
+   // Implementation of RootDoc interface
+   //
+   //--------------------------------------------------------------------------
+
+   /**
+    *  Return classes and interfaces to be documented. 
+    */
+   public ClassDoc[] classes() { return classes; } 
+
+   /**
+    *  Return a ClassDoc object for the specified class/interface 
+    *  name.
+    *
+    *  @return a ClassDoc object describing the given class, or 
+    *  <code>null</code> if no corresponding ClassDoc object
+    *  has been constructed.
+    */
+   public ClassDoc classNamed(String qualifiedName) { 
+      return (ClassDoc)classDocMap.get(qualifiedName); 
+   } 
+
+   /**
+    *  Return an xxx
+    */
+   public String[][] options() { return customOptionArr; } 
+
+   // Return a PackageDoc for the specified package name 
+   public PackageDoc packageNamed(String name) { 
+      return (PackageDoc)packageDocMap.get(name); 
+   }
+
+
+  // classes and interfaces specified on the command line. 
+  public ClassDoc[] specifiedClasses() 
+  { 
+    return (ClassDocImpl[]) specifiedClasses.toArray(new ClassDocImpl[0]); 
+  } 
+
+   // packages specified on the command line. 
+  public PackageDoc[] specifiedPackages() 
+  {
+    return (PackageDocImpl[])specifiedPackages.toArray(new PackageDocImpl[0]);
+  }
+
+   // Print error message, increment error count. 
+   public void printError(java.lang.String msg) {
+      reporter.printError(msg);
+   }
+
+   // Print error message, increment error count. 
+   public void printFatal(java.lang.String msg) {
+      reporter.printFatal(msg);
+   }
+
+   // Print a message. 
+   public void printNotice(java.lang.String msg) {
+      reporter.printNotice(msg);
+   }
+   
+   // Print warning message, increment warning count. 
+   public void printWarning(java.lang.String msg) {
+      reporter.printWarning(msg);
+   }
+
+   public String name() {
+      return "RootDoc";
+   }
+
+   public ErrorReporter getReporter() {
+      return reporter;
+   }
+
+   public void build() throws ParseException, IOException {
+
+      //--- Create a temporary random access file for caching comment text.
+
+      //File rawCommentCacheFile=File.createTempFile("gjdoc_rawcomment",".cache");
+      File rawCommentCacheFile = new File("gjdoc_rawcomment.cache");
+      rawCommentCacheFile.deleteOnExit();
+      rawCommentCache = new RandomAccessFile(rawCommentCacheFile, "rw");
+
+      //--- Parse all files in "java.lang".
+
+      List javaLangSourceDirs = findSourceFiles("java/lang");
+      if (!javaLangSourceDirs.isEmpty()) {
+         Iterator it = javaLangSourceDirs.iterator();
+         while (it.hasNext()) {
+            File javaLangSourceDir = (File)it.next();
+            parser.processSourceDir(javaLangSourceDir, 
+                                    sourceEncoding, "java.lang");
+         }
+      }
+      else {
+
+        Debug.log(1, "Sourcepath is "+sourcePath);
+
+        // Core docs not included in source-path: 
+        // we need to gather the information about java.lang
+        // classes via reflection...
+
+      }
+
+      //--- Parse all files in explicitly specified package directories.
+        
+      for (Iterator it=specifiedPackageNames.iterator(); it.hasNext(); ) {
+
+        String specifiedPackageName = (String)it.next();
+         String displayPackageName = specifiedPackageName;
+         if (null == displayPackageName || 0 == displayPackageName.length()) {
+            displayPackageName = "<unnamed>";
+         }
+        printNotice("Loading classes for package "+displayPackageName+"...");
+         String relPath;
+         if (null != specifiedPackageName) {
+            relPath = specifiedPackageName.replace('.',File.separatorChar);
+         }
+         else {
+            relPath = "";
+         }
+        List sourceDirs = findSourceFiles(relPath);
+        if (!sourceDirs.isEmpty()) {
+            Iterator sourceDirIt = sourceDirs.iterator();
+            while (sourceDirIt.hasNext()) {
+               File sourceDir = (File)sourceDirIt.next();
+               parser.processSourceDir(sourceDir, sourceEncoding, specifiedPackageName);
+            }
+        }
+        else {
+           printError("Package '"+specifiedPackageName+"' not found.");
+        }
+      }
+
+      specifiedClasses = new LinkedList();
+
+      //--- Parse all explicitly specified source files.
+
+      for (Iterator it=specifiedSourceFiles.iterator(); it.hasNext(); ) {
+
+        File specifiedSourceFile = (File)it.next();
+        printNotice("Loading source file "+specifiedSourceFile+" ...");
+         ClassDocImpl classDoc = parser.processSourceFile(specifiedSourceFile, true, sourceEncoding, null);
+         if (null != classDoc) {
+          specifiedClasses.add(classDoc);
+          classesList.add(classDoc);
+          classDoc.setIsIncluded(true);
+          addPackageDoc(classDoc.containingPackage());
+         }
+      }
+   
+
+      //--- Let the user know that all specified classes are loaded.
+
+      printNotice("Constructing Javadoc information...");
+
+      //--- Load all classes implicitly referenced by explicitly specified classes.
+
+      loadScheduledClasses(parser);
+
+      printNotice("Resolving references in comments...");
+
+      resolveComments();
+
+      //--- Resolve pending references in all ClassDocImpls
+
+      printNotice("Resolving references in classes...");
+
+      for (Iterator it = classDocMap.values().iterator(); it.hasNext(); ) {
+        ClassDoc cd=(ClassDoc)it.next();
+         if (cd instanceof ClassDocImpl) {
+            ((ClassDocImpl)cd).resolve();
+         }
+      }
+
+      //--- Resolve pending references in all PackageDocImpls
+
+      printNotice("Resolving references in packages...");
+
+      for (Iterator it = packageDocMap.values().iterator(); it.hasNext(); ) {
+        PackageDocImpl pd=(PackageDocImpl)it.next();
+        pd.resolve();
+      }
+
+      //--- Assemble the array with all specified packages
+
+      specifiedPackages = new LinkedHashSet();
+      for (Iterator it = specifiedPackageNames.iterator(); it.hasNext(); ) {
+        String specifiedPackageName = (String)it.next();
+        PackageDoc specifiedPackageDoc = (PackageDoc)packageDocMap.get(specifiedPackageName);
+        if (null!=specifiedPackageDoc) {
+           ((PackageDocImpl)specifiedPackageDoc).setIsIncluded(true);
+           specifiedPackages.add(specifiedPackageDoc);
+
+           ClassDoc[] packageClassDocs=specifiedPackageDoc.allClasses();
+           for (int i=0; i<packageClassDocs.length; ++i) {
+              ClassDocImpl specifiedPackageClassDoc=(ClassDocImpl)packageClassDocs[i];
+            
+              specifiedPackageClassDoc.setIsIncluded(true);
+              classesList.add(specifiedPackageClassDoc);
+           }
+        }
+      }
+
+      //--- Resolve pending references in comment data of all classes
+
+      printNotice("Resolving references in class comments...");
+
+      for (Iterator it=classDocMap.values().iterator(); it.hasNext(); ) {
+        ClassDoc cd=(ClassDoc)it.next();
+         if (cd instanceof ClassDocImpl) {
+            ((ClassDocImpl)cd).resolveComments();
+         }
+      }
+
+      //--- Resolve pending references in comment data of all packages
+
+      printNotice("Resolving references in package comments...");
+
+      for (Iterator it=packageDocMap.values().iterator(); it.hasNext(); ) {
+        PackageDocImpl pd=(PackageDocImpl)it.next();
+        pd.resolveComments();
+      }
+
+      //--- Create array with all loaded classes
+
+      this.classes=(ClassDocImpl[])classesList.toArray(new ClassDocImpl[0]);
+      Arrays.sort(this.classes);
+
+      //--- Close comment cache
+
+      parser = null;
+      System.gc();
+      System.gc();
+   }
+
+   public long writeRawComment(String rawComment) {
+      try {
+        long pos=rawCommentCache.getFilePointer();
+        //rawCommentCache.writeUTF(rawComment);
+         byte[] bytes = rawComment.getBytes("utf-8");
+         rawCommentCache.writeInt(bytes.length);
+         rawCommentCache.write(bytes);
+        return pos;
+      }
+      catch (IOException e) {
+        printFatal("Cannot write to comment cache: "+e.getMessage());
+        return -1;
+      }
+   }
+
+   public String readRawComment(long pos) {
+      try {
+        rawCommentCache.seek(pos);
+         int sz = rawCommentCache.readInt();
+         byte[] bytes = new byte[sz];
+         rawCommentCache.read(bytes);
+         return new String(bytes, "utf-8");
+        //return rawCommentCache.readUTF();
+      }
+      catch (IOException e) {
+         e.printStackTrace();
+        printFatal("Cannot read from comment cache: "+e.getMessage());
+        return null;
+      }
+   }
+
+   List findSourceFiles(String relPath) {
+
+      List result = new LinkedList();
+      for (Iterator it = sourcePath.iterator(); it.hasNext(); ) {
+        File path = (File)it.next();
+        File file = new File(path, relPath);
+        if (file.exists()) {
+            result.add(file);
+         }
+      }
+
+      return result;
+   }
+
+   PackageDocImpl findOrCreatePackageDoc(String packageName) {
+      PackageDocImpl rc=(PackageDocImpl)getPackageDoc(packageName);
+      if (null==rc) {
+        rc=new PackageDocImpl(packageName);
+        if (specifiedPackageNames.contains(packageName)) {
+            String packageDirectoryName = packageName.replace('.', File.separatorChar);
+            List packageDirectories = findSourceFiles(packageDirectoryName);
+            Iterator it = packageDirectories.iterator();
+            boolean packageDocFound = false;
+            while (it.hasNext()) {
+               File packageDirectory = (File)it.next();
+               File packageDocFile = new File(packageDirectory, "package.html");
+               rc.setPackageDirectory(packageDirectory);
+               packageDocFound = true;
+               if (null!=packageDocFile && packageDocFile.exists()) {
+                  try {
+                     rc.setRawCommentText(readHtmlBody(packageDocFile));
+                  }
+                  catch (IOException e) {
+                     printWarning("Error while reading documentation for package "+packageName+": "+e.getMessage());
+                  }
+                  break;
+               }
+            }
+            if (!packageDocFound) {
+               printNotice("No description found for package "+packageName);
+            }
+        }
+        addPackageDoc(rc);
+      }
+      return rc;
+   }
+
+   public void addClassDoc(ClassDoc cd) {
+      classDocMap.put(cd.qualifiedName(), cd);
+   }
+
+   public void addClassDocRecursive(ClassDoc cd) {
+      classDocMap.put(cd.qualifiedName(), cd);
+      ClassDoc[] innerClasses = cd.innerClasses(false);
+      for (int i=0; i<innerClasses.length; ++i) {
+         addClassDocRecursive(innerClasses[i]);
+      }
+   }
+
+   public void addPackageDoc(PackageDoc pd) {
+      packageDocMap.put(pd.name(), pd);
+   }
+
+   public PackageDocImpl getPackageDoc(String name) {
+      return (PackageDocImpl)packageDocMap.get(name);
+   }
+
+   public ClassDocImpl getClassDoc(String qualifiedName) {
+      return (ClassDocImpl)classDocMap.get(qualifiedName);
+   }
+
+   class ScheduledClass {
+
+      ClassDoc contextClass;
+      String qualifiedName;
+      ScheduledClass(ClassDoc contextClass, String qualifiedName) {
+        this.contextClass=contextClass;
+        this.qualifiedName=qualifiedName;
+      }
+      
+      public String toString() { return "ScheduledClass{"+qualifiedName+"}"; }
+   }
+
+   public void scheduleClass(ClassDoc context, String qualifiedName) throws ParseException, IOException {
+
+      if (classDocMap.get(qualifiedName)==null) {
+
+        //Debug.log(9,"Scheduling "+qualifiedName+", context "+context+".");
+         //System.err.println("Scheduling " + qualifiedName + ", context " + context);
+
+        scheduledClasses.add(new ScheduledClass(context, qualifiedName));
+      }
+   }
+
+   /**
+    *  Load all classes that were implictly referenced by the classes
+    *  (already loaded) that the user explicitly specified on the
+    *  command line.
+    *
+    *  For example, if the user generates Documentation for his simple
+    *  'class Test {}', which of course 'extends java.lang.Object',
+    *  then 'java.lang.Object' is implicitly referenced because it is
+    *  the base class of Test.
+    *
+    *  Gjdoc needs a ClassDocImpl representation of all classes
+    *  implicitly referenced through derivation (base class),
+    *  or implementation (interface), or field type, method argument
+    *  type, or method return type.
+    *
+    *  The task of this method is to ensure that Gjdoc has all this
+    *  information at hand when it exits.
+    *
+    * 
+    */
+   public void loadScheduledClasses(Parser parser) throws ParseException, IOException {
+
+      // Because the referenced classes could in turn reference other
+      // classes, this method runs as long as there are still unloaded
+      // classes.
+
+      while (!scheduledClasses.isEmpty()) {
+
+        // Make a copy of scheduledClasses and empty it. This 
+        // prevents any Concurrent Modification issues.
+        // As the copy won't need to grow (as it won't change)
+        // we make it an Array for performance reasons.
+
+        ScheduledClass[] scheduledClassesArr = (ScheduledClass[])scheduledClasses.toArray(new ScheduledClass[0]);
+        scheduledClasses.clear();
+
+        // Load each class specified in our array copy
+        
+        for (int i=0; i<scheduledClassesArr.length; ++i) {
+
+           // The name of the class we are looking for. This name
+           // needs not be fully qualified.
+           
+           String scheduledClassName=scheduledClassesArr[i].qualifiedName;
+
+           // The ClassDoc in whose context the scheduled class was looked for.
+           // This is necessary in order to resolve non-fully qualified 
+           // class names.
+           ClassDoc scheduledClassContext=scheduledClassesArr[i].contextClass;
+
+           // If there already is a class doc with this name, skip. There's
+           // nothing to do for us.
+           if (classDocMap.get(scheduledClassName)!=null) {
+              continue;
+           }
+
+           try {
+              // Try to load the class
+               //printNotice("Trying to load " + scheduledClassName);
+              loadScheduledClass(parser, scheduledClassName, scheduledClassContext);
+           }
+           catch (ParseException e) {
+
+              /**********************************************************
+
+               // Check whether the following is necessary at all.
+
+
+              if (scheduledClassName.indexOf('.')>0) {
+
+              // Maybe the dotted notation doesn't mean a package
+              // name but instead an inner class, as in 'Outer.Inner'.
+              // so let's assume this and try to load the outer class.
+
+                 String outerClass="";
+                 for (StringTokenizer st=new StringTokenizer(scheduledClassName,"."); st.hasMoreTokens(); ) {
+                    if (outerClass.length()>0) outerClass+=".";
+                    outerClass+=st.nextToken();
+                    if (!st.hasMoreTokens()) break;
+                    try {
+                       loadClass(outerClass);
+                       //FIXME: shouldn't this be loadScheduledClass(outerClass, scheduledClassContext); ???
+                       continue;
+                    }
+                    catch (Exception ee) {
+                    // Ignore: try next level
+                    }
+                 }
+              }
+
+              **********************************************************/
+
+              // If we arrive here, the class could not be found
+
+              printWarning("Couldn't load class "+scheduledClassName+" referenced by "+scheduledClassContext);
+
+              //FIXME: shouldn't this be throw new Error("cannot load: "+scheduledClassName);
+           }
+        }
+      }
+   }
+
+   private void loadScheduledClass(Parser parser, String scheduledClassName, ClassDoc scheduledClassContext) throws ParseException, IOException {
+
+      ClassDoc loadedClass=(ClassDoc)scheduledClassContext.findClass(scheduledClassName);
+
+      if (loadedClass==null || loadedClass instanceof ClassDocProxy) {
+
+        ClassDoc classDoc = findScheduledClassFile(scheduledClassName, scheduledClassContext);
+         if (null != classDoc) {
+
+            if (classDoc instanceof ClassDocReflectedImpl) {
+               Main.getRootDoc().addClassDocRecursive(classDoc);
+            }
+
+            if (Main.DESCEND_SUPERCLASS
+                && null != classDoc.superclass() 
+                && (classDoc.superclass() instanceof ClassDocProxy)) {
+               scheduleClass(classDoc, classDoc.superclass().qualifiedName());
+            }
+         }
+         else {
+           // It might be an inner class of one of the outer/super classes.
+           // But we can only check that when they are all fully loaded.
+           boolean retryLater = false;
+
+           int numberOfProcessedFilesBefore = parser.getNumberOfProcessedFiles();
+
+           ClassDoc cc = scheduledClassContext.containingClass();
+           while (cc != null && !retryLater) {
+              ClassDoc sc = cc.superclass();
+              while (sc != null && !retryLater) {
+                 if (sc instanceof ClassDocProxy) {
+                    ((ClassDocImpl)cc).resolve();
+                    retryLater = true;
+                 }
+                 sc = sc.superclass();
+              }
+              cc = cc.containingClass();
+           }
+
+           // Now that outer/super references have been resolved, try again
+           // to find the class.
+
+           loadedClass = (ClassDoc)scheduledClassContext.findClass(scheduledClassName);
+
+           int numberOfProcessedFilesAfter = parser.getNumberOfProcessedFiles();
+
+           boolean filesWereProcessed = numberOfProcessedFilesAfter > numberOfProcessedFilesBefore;
+
+           // Only re-schedule class if additional files have been processed
+           // If there haven't, there's no point in re-scheduling.
+           // Will avoid infinite loops of re-scheduling
+           if (null == loadedClass && retryLater && filesWereProcessed)
+              scheduleClass(scheduledClassContext, scheduledClassName);
+
+           /* A warning needn't be emitted - this is normal, can happen
+              if the scheduled class is in a package which is not
+              included on the command line.
+
+              else if (null == loadedClass)
+              printWarning("Can't find scheduled class '"
+              + scheduledClassName
+              + "' in context '"
+              + scheduledClassContext.qualifiedName()
+              + "'");
+           */
+        }
+      }
+   }
+
+   private static interface ResolvedImport
+   {
+      public String match(String name);
+      public boolean mismatch(String name);
+      public ClassDoc tryFetch(String name);
+   }
+
+   private class ResolvedImportNotFound
+      implements ResolvedImport
+   {
+      private String importSpecifier;
+      private String name;
+
+      ResolvedImportNotFound(String importSpecifier)
+      {
+         this.importSpecifier = importSpecifier;
+         int ndx = importSpecifier.lastIndexOf('.');
+         if (ndx >= 0) {
+            this.name = importSpecifier.substring(ndx + 1);
+         }
+         else {
+            this.name = importSpecifier;
+         }
+      }
+
+      public String toString()
+      {
+         return "ResolvedImportNotFound{" + importSpecifier + "}";
+      }
+
+      public String match(String name)
+      {
+        if ((name.equals(this.name)) || (importSpecifier.equals(name)))
+           return this.name;
+        // FIXME: note that we don't handle on-demand imports here.
+         return null;
+      }
+
+      public boolean mismatch(String name)
+      {
+         return true; // FIXME!
+      }
+
+      public ClassDoc tryFetch(String name)
+      {
+         return null;
+      }
+   }
+
+   private class ResolvedImportPackageFile
+      implements ResolvedImport
+   {
+      private Set topLevelClassNames;
+      private File packageFile;
+      private String packageName;
+      private Map cache = new HashMap();
+
+      ResolvedImportPackageFile(File packageFile, String packageName)
+      {
+         this.packageFile = packageFile;
+         this.packageName = packageName;
+         topLevelClassNames = new HashSet();
+         File[] files = packageFile.listFiles();
+         for (int i=0; i<files.length; ++i) {
+            if (!files[i].isDirectory() && files[i].getName().endsWith(".java")) {
+               String topLevelClassName = files[i].getName();
+               topLevelClassName
+                  = topLevelClassName.substring(0, topLevelClassName.length() - 5);
+               topLevelClassNames.add(topLevelClassName);
+            }
+         }
+      }
+
+      public String match(String name)
+      {
+         ClassDoc loadedClass = classNamed(packageName + "." + name);
+         if (null != loadedClass) {
+            return loadedClass.qualifiedName();
+         }
+         else {
+            String topLevelName = name;
+            int ndx = topLevelName.indexOf('.');
+            String innerClassName = null;
+            if (ndx > 0) {
+               innerClassName = topLevelName.substring(ndx + 1);
+               topLevelName = topLevelName.substring(0, ndx);
+            }
+            
+            if (topLevelClassNames.contains(topLevelName)) {
+               //System.err.println(this + ".match returns " + packageName + "." + name);
+               return packageName + "." + name;
+            }
+            // FIXME: inner classes
+            else {
+               return null;
+            }
+         }
+      }
+
+      public boolean mismatch(String name)
+      {
+         return null == match(name);
+      }
+
+      public ClassDoc tryFetch(String name)
+      {
+         ClassDoc loadedClass = classNamed(packageName + "." + name);
+         if (null != loadedClass) {
+            return loadedClass;
+         }
+         else if (null != match(name)) {
+
+            String topLevelName = name;
+            int ndx = topLevelName.indexOf('.');
+            String innerClassName = null;
+            if (ndx > 0) {
+               innerClassName = topLevelName.substring(ndx + 1);
+               topLevelName = topLevelName.substring(0, ndx);
+            }
+
+            ClassDoc topLevelClass = (ClassDoc)cache.get(topLevelName);
+            if (null == topLevelClass) {
+               File classFile = new File(packageFile, topLevelName + ".java");
+               try {
+                  // FIXME: inner classes
+                  topLevelClass = parser.processSourceFile(classFile, false, sourceEncoding, null);
+               }
+               catch (Exception ignore) {
+                  printWarning("Could not parse source file " + classFile);
+               }
+               cache.put(topLevelName, topLevelClass);
+            }
+            if (null == innerClassName) {
+               return topLevelClass;
+            }
+            else {
+               return getInnerClass(topLevelClass, innerClassName);
+            }
+         }
+         else {
+            return null;
+         }
+      }
+
+      public String toString()
+      {
+         return "ResolvedImportPackageFile{" + packageFile + "," + packageName + "}";
+      }
+   }
+
+   private ClassDoc getInnerClass(ClassDoc topLevelClass, String innerClassName)
+   {
+      StringTokenizer st = new StringTokenizer(innerClassName, ".");
+   outer:
+      
+      while (st.hasMoreTokens()) {
+         String innerClassNameComponent = st.nextToken();
+         ClassDoc[] innerClasses = topLevelClass.innerClasses();
+         for (int i=0; i<innerClasses.length; ++i) {
+            if (innerClasses[i].name().equals(innerClassNameComponent)) {
+               topLevelClass = innerClasses[i];
+               continue outer;
+            }
+         }
+         printWarning("Could not find inner class " + innerClassName + " in class " + topLevelClass.qualifiedName());
+         return null;
+      }
+      return topLevelClass;
+   }
+
+   private class ResolvedImportClassFile
+      implements ResolvedImport
+   {
+      private File classFile;
+      private String innerClassName;
+      private String name;
+      private ClassDoc classDoc;
+      private boolean alreadyFetched;
+      private String qualifiedName;
+
+      ResolvedImportClassFile(File classFile, String innerClassName, String name, String qualifiedName)
+      {
+         this.classFile = classFile;
+         this.innerClassName = innerClassName;
+         this.name = name;
+         this.qualifiedName = qualifiedName;
+      }
+
+      public String toString()
+      {
+         return "ResolvedImportClassFile{" + classFile + "," + innerClassName +  "}";
+      }
+
+      public String match(String name)
+      {
+         String topLevelName = name;
+         int ndx = topLevelName.indexOf('.');
+
+         String _innerClassName = null;
+         if (ndx > 0) {
+            _innerClassName = topLevelName.substring(ndx + 1);
+            topLevelName = topLevelName.substring(0, ndx);
+         }
+
+         if (this.name.equals(topLevelName)) {
+            if (null == _innerClassName) {
+               return qualifiedName;
+            }
+            else {
+               return qualifiedName + "." + _innerClassName;
+            }
+         }
+         else {
+            return null;
+         }
+      }
+
+      public boolean mismatch(String name)
+      {
+         return null == match(name);
+      }
+
+      public ClassDoc tryFetch(String name)
+      {
+         if (null != match(name)) {
+            ClassDoc topLevelClass = null;
+            if (alreadyFetched) {
+               topLevelClass = classDoc;
+            }
+            else {
+               alreadyFetched = true;
+               try {
+                  topLevelClass = parser.processSourceFile(classFile, false, sourceEncoding, null);
+               }
+               catch (Exception ignore) {
+                  printWarning("Could not parse source file " + classFile);
+               }
+            }
+            if (null == topLevelClass) {
+               return null;
+            }
+            else {
+               return getInnerClass(topLevelClass, innerClassName);
+            }
+         }
+         else {
+            return null;
+         }
+      }
+
+      public String getName()
+      {
+         if (innerClassName != null) {
+            return name + innerClassName;
+         }
+         else {
+            return name;
+         }
+      }
+   }
+   
+   private class ResolvedImportReflectionClass
+      implements ResolvedImport
+   {
+      private Class clazz;
+      private String name;
+
+      ResolvedImportReflectionClass(Class clazz)
+      {
+         this.clazz = clazz;
+         String className = clazz.getName();
+         int ndx = className.lastIndexOf('.');
+         if (ndx >= 0) {
+            this.name = className.substring(ndx + 1);
+         }
+         else {
+            this.name = className;
+         }
+      }
+
+      public String toString()
+      {
+         return "ResolvedImportReflectionClass{" + clazz.getName() + "}";
+      }
+
+      public String match(String name)
+      {
+         if ((this.name.equals(name)) || (clazz.getName().equals(name))) {
+            return clazz.getName();
+         }
+         else {
+            return null;
+         }
+      }
+
+      public boolean mismatch(String name)
+      {
+         return null == match(name);
+      }
+
+      public ClassDoc tryFetch(String name)
+      {
+         if (null != match(name)) {
+            return new ClassDocReflectedImpl(clazz);
+         }
+         // FIXME: inner classes?
+         else {
+            return null;
+         }
+      }
+
+      public String getName()
+      {
+         return name;
+      }
+   }
+
+   private class ResolvedImportReflectionPackage
+      implements ResolvedImport
+   {
+      private String packagePrefix;
+
+      ResolvedImportReflectionPackage(String packagePrefix)
+      {
+         this.packagePrefix = packagePrefix;
+      }
+
+      public String toString()
+      {
+         return "ResolvedImportReflectionPackage{" + packagePrefix + ".*}";
+      }
+
+      public String match(String name)
+      {
+         try {
+            Class clazz = Class.forName(packagePrefix + "." + name);
+            return clazz.getName();
+         }
+         catch (Exception e) {
+            return null;
+         }
+      }
+
+      public boolean mismatch(String name)
+      {
+         return null == match(name);
+      }
+
+      public ClassDoc tryFetch(String name)
+      {
+         try {
+            Class clazz = Class.forName(packagePrefix + name);
+            return ClassDocReflectedImpl.newInstance(clazz);
+         }
+         catch (Exception e) {
+            return null;
+         }
+      }
+
+      public String getName()
+      {
+         return packagePrefix;
+      }
+   }
+
+   private List unlocatablePrefixes = new LinkedList();
+
+   private ResolvedImport resolveImport(String importSpecifier)
+   {
+      ResolvedImport result = resolveImportFileSystem(importSpecifier);
+      if (null == result && Main.getInstance().isReflectionEnabled()) {
+         result = resolveImportReflection(importSpecifier);
+      }
+      if (null == result) {
+         result = new ResolvedImportNotFound(importSpecifier);
+      }
+      return result;
+   }
+
+   private ResolvedImport resolveImportReflection(String importSpecifier)
+   {
+      String importedPackageOrClass = importSpecifier;
+      if (importedPackageOrClass.endsWith(".*")) {
+         importedPackageOrClass = importedPackageOrClass.substring(0, importedPackageOrClass.length() - 2);
+
+         return new ResolvedImportReflectionPackage(importedPackageOrClass);
+         
+         //return null;
+      }
+      else {
+         try {
+            Class importedClass = Class.forName(importSpecifier);
+            return new ResolvedImportReflectionClass(importedClass);
+         }
+         catch (Throwable ignore) {
+            return null;
+         }
+      }
+   }
+
+   private ResolvedImport resolveImportFileSystem(String importSpecifier)
+   {
+      for (Iterator it = unlocatablePrefixes.iterator(); it.hasNext(); ) {
+         String unlocatablePrefix = (String)it.next();
+         if (importSpecifier.startsWith(unlocatablePrefix)) {
+            return null;
+         }
+      }
+
+      String longestUnlocatablePrefix = "";
+
+      for (Iterator it=sourcePath.iterator(); it.hasNext(); ) {
+            
+         File _sourcePath = (File)it.next();
+
+         StringBuffer packageOrClassPrefix = new StringBuffer();
+         StringTokenizer st = new StringTokenizer(importSpecifier, ".");
+         while (st.hasMoreTokens() && _sourcePath.isDirectory()) {
+            String token = st.nextToken();
+            if ("*".equals(token)) {
+               return new ResolvedImportPackageFile(_sourcePath, 
+                                                    packageOrClassPrefix.substring(0, packageOrClassPrefix.length() - 1));
+            }
+            else {
+               packageOrClassPrefix.append(token);
+               packageOrClassPrefix.append('.');
+               File classFile = new File(_sourcePath, token + ".java");
+               //System.err.println("  looking for file " + classFile);
+               if (classFile.exists()) {
+                  StringBuffer innerClassName = new StringBuffer();
+                  while (st.hasMoreTokens()) {
+                     token = st.nextToken();
+                     if (innerClassName.length() > 0) {
+                        innerClassName.append('.');
+                     }
+                     innerClassName.append(token);
+                  }
+                  return new ResolvedImportClassFile(classFile, innerClassName.toString(), token, importSpecifier);
+               }
+               else {
+                  _sourcePath = new File(_sourcePath, token);
+               }
+            }
+         }
+         if (st.hasMoreTokens()) {
+            if (packageOrClassPrefix.length() > longestUnlocatablePrefix.length()) {
+               longestUnlocatablePrefix = packageOrClassPrefix.toString();
+            }
+         }
+      }
+
+      if (longestUnlocatablePrefix.length() > 0) {
+         unlocatablePrefixes.add(longestUnlocatablePrefix);
+      }
+
+      return null;
+   }
+
+   private Map resolvedImportCache = new HashMap();
+
+   private ResolvedImport getResolvedImport(String importSpecifier)
+   {
+      ResolvedImport result 
+         = (ResolvedImport)resolvedImportCache.get(importSpecifier);
+      if (null == result) {
+         result = resolveImport(importSpecifier);
+         resolvedImportCache.put(importSpecifier, result);
+      }
+      return result;
+   }
+
+   public String resolveClassName(String className, ClassDocImpl context)
+   {
+      Iterator it = context.getImportSpecifierList().iterator();
+      while (it.hasNext()) {
+         String importSpecifier = (String)it.next();
+         ResolvedImport resolvedImport = getResolvedImport(importSpecifier);
+         String resolvedScheduledClassName = resolvedImport.match(className);
+
+         if (null != resolvedScheduledClassName) {
+            return resolvedScheduledClassName;
+         }
+      }
+      return className;
+   }
+
+   public ClassDoc findScheduledClassFile(String scheduledClassName, 
+                                          ClassDoc scheduledClassContext)
+      throws ParseException, IOException 
+   {
+      String resolvedScheduledClassName = null;
+
+      if (scheduledClassContext instanceof ClassDocImpl) {
+
+         //((ClassDocImpl)scheduledClassContext).resolveReferencedName(scheduledClassName);
+         Iterator it = ((ClassDocImpl)scheduledClassContext).getImportSpecifierList().iterator();
+         while (it.hasNext()) {
+            String importSpecifier = (String)it.next();
+            ResolvedImport resolvedImport = getResolvedImport(importSpecifier);
+            //System.err.println("  looking in import '" +  resolvedImport + "'");
+            resolvedScheduledClassName = resolvedImport.match(scheduledClassName);
+            if (null != resolvedScheduledClassName) {
+               ClassDoc result = resolvedImport.tryFetch(scheduledClassName);
+               if (null != result) {
+                  return result;
+               }
+               else {
+                  if (!inaccessibleReportedSet.contains(scheduledClassName)) {
+                     inaccessibleReportedSet.add(scheduledClassName);
+                     printWarning("Error while loading class " + scheduledClassName);
+                  }
+                  // FIXME: output resolved class name here
+                  return null;
+               }
+            }
+         }
+      }
+      else {
+         System.err.println("findScheduledClassFile for '" + scheduledClassName + "' in proxy for " + scheduledClassContext);
+      }
+
+      // interpret as fully qualified name on file system
+
+      ResolvedImport fqImport = resolveImportFileSystem(scheduledClassName);
+      if (null != fqImport && fqImport instanceof ResolvedImportClassFile) {
+         return fqImport.tryFetch(((ResolvedImportClassFile)fqImport).getName());
+      }
+
+      // use reflection, assume fully qualified class name
+
+      if (!unlocatableReflectedClassNames.contains(scheduledClassName)) {
+         if (Main.getInstance().isReflectionEnabled()) {
+            try {
+               Class clazz = Class.forName(scheduledClassName);
+               printWarning("Cannot locate class " + scheduledClassName + " on file system, falling back to reflection.");
+               ClassDoc result = new ClassDocReflectedImpl(clazz);
+               return result;
+            }
+            catch (Throwable ignore) {
+               unlocatableReflectedClassNames.add(scheduledClassName);
+            }
+         }
+         else {
+            unlocatableReflectedClassNames.add(scheduledClassName);
+         }
+      }
+
+      if (null == resolvedScheduledClassName) {
+         resolvedScheduledClassName = scheduledClassName;
+      }
+      if (!unlocatableReportedSet.contains(resolvedScheduledClassName)) {
+         unlocatableReportedSet.add(resolvedScheduledClassName);
+         printWarning("Cannot locate class " + resolvedScheduledClassName + " referenced in class " + scheduledClassContext.qualifiedName());
+      }
+      return null;
+   }
+
+   private Set unlocatableReflectedClassNames = new HashSet();
+
+   public static boolean recursiveClasses = false;
+
+   public void addSpecifiedPackageName(String packageName) {
+      specifiedPackageNames.add(packageName);
+   }
+
+   public void addSpecifiedSourceFile(File sourceFile) {
+      specifiedSourceFiles.add(sourceFile);
+   }
+
+   public boolean hasSpecifiedPackagesOrClasses() {
+      return !specifiedPackageNames.isEmpty()
+         ||  !specifiedSourceFiles.isEmpty();
+   }
+
+   public void setOptions(String[][] customOptionArr) {
+      this.customOptionArr = customOptionArr;
+   }
+
+   public void setSourcePath(List sourcePath) {
+      this.sourcePath = sourcePath;
+   }
+
+   public void finalize() throws Throwable {
+      super.finalize();
+   }
+
+   public void flush()
+   {
+      try {
+         rawCommentCache.close();
+      }
+      catch (IOException e) {
+         printError("Cannot close raw comment cache");
+      }
+
+      rawCommentCache = null;
+      customOptionArr = null;
+      specifiedPackageNames = null;
+      classesList = null;
+      classDocMap = null;
+      packageDocMap = null;
+      classes = null;
+      specifiedClasses = null;
+      specifiedPackages = null;
+      scheduledClasses = null;
+      sourcePath = null;
+      parser = null;
+      unlocatableReportedSet = null;
+      inaccessibleReportedSet = null;
+   }
+
+   public void setSourceEncoding(String sourceEncoding)
+   {
+      this.sourceEncoding = sourceEncoding;
+   }
+
+   public RootDocImpl()
+   {
+      super(null);
+   }
+
+   public static String readHtmlBody(File file) 
+      throws IOException
+   {
+      FileReader fr=new FileReader(file);
+      long size = file.length();
+      char[] packageDocBuf=new char[(int)(size)];
+      int index = 0;
+      int i = fr.read(packageDocBuf, index, (int)size);
+      while (i > 0) {
+         index += i;
+         size -= i;
+         i = fr.read(packageDocBuf, index, (int)size);
+      }
+      fr.close();
+
+      // We only need the part between the begin and end body tag.
+      String html = new String(packageDocBuf);
+      int start = html.indexOf("<body");
+      if (start == -1)
+         start = html.indexOf("<BODY");
+      int end = html.indexOf("</body>");
+      if (end == -1)
+         end = html.indexOf("</BODY>");
+      if (start != -1 && end != -1) {
+         // Start is end of body tag.
+         start = html.indexOf('>', start) + 1;
+         if (start != -1 && start < end)
+            html = html.substring(start, end);
+      }
+      return html.trim();
+   }
+
+   public Parser getParser()
+   {
+      return parser;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java
new file mode 100644 (file)
index 0000000..f126c21
--- /dev/null
@@ -0,0 +1,198 @@
+/* gnu.classpath.tools.gjdoc.SeeTagImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class SeeTagImpl extends AbstractTagImpl implements SeeTag {
+
+   protected String     reference;
+   private String       referencedClassName;
+   private String       referencedMemberName;
+   private ClassDoc     referencedClass;
+   private MemberDoc    referencedMember;
+   private PackageDoc   referencedPackage;
+   private String       label;
+   private ClassDocImpl contextClass;
+
+   public SeeTagImpl(String text, ClassDocImpl contextClass) {
+      super(text);
+      this.contextClass=contextClass;
+   }
+
+   public void resolve() {
+
+      super.resolve();
+
+      text = text.trim();
+
+      if (text.startsWith("<") || text.startsWith("\"")) {
+         label = text;
+         return;
+      }
+
+      int labelNdx=text.indexOf(';');
+      if (labelNdx>=0) {
+        label="";
+        return;
+      }
+
+      for (int i=0; i<text.length(); ++i) {
+         if (" \t\r\n".indexOf(text.charAt(i)) >= 0) {
+            labelNdx = i;
+            break;
+         }
+      }
+
+      int openParenNdx = text.indexOf('(');
+      if (openParenNdx >= 0 && openParenNdx < labelNdx) {
+         labelNdx=text.indexOf(')', openParenNdx);
+         if (labelNdx >= 0) {
+            ++ labelNdx;
+         }
+      }
+
+      if (labelNdx<0 || labelNdx>=text.length()) {
+        reference=text.trim();
+        label="";
+      }
+      else {
+        reference=text.substring(0,labelNdx).trim();
+        label=text.substring(labelNdx).trim();
+      }  
+
+      int mspecNdx=reference.indexOf('#');
+      String referencedFqName;
+      if (mspecNdx<0) {
+        referencedFqName=reference;
+      }
+      else {
+        referencedFqName=reference.substring(0,mspecNdx);
+        referencedMemberName=reference.substring(mspecNdx+1); 
+     }
+
+      // the following is in contradiction to the api docs, but
+      // conform to sun javadoc: return fully qualified classname
+      // with referencedClassName().
+      if (referencedFqName.trim().length()>0) {
+        referencedClassName=referencedFqName;
+        if (contextClass==null)
+           referencedClass=Main.getRootDoc().classNamed(referencedFqName);
+        else
+           referencedClass=contextClass.findClass(referencedFqName);
+      }
+      else {
+        referencedClassName="";
+        referencedClass=contextClass;
+      }
+
+      if (referencedClass==null) {
+         referencedClass = Main.getRootDoc().classNamed("java.lang." + referencedFqName);
+      }
+
+      if (referencedClass!=null && !referencedClass.isIncluded()) referencedClass=null;
+
+      if (referencedClass!=null) {
+        referencedPackage=referencedClass.containingPackage();
+        referencedClassName=referencedClass.qualifiedName();
+
+        if (referencedMemberName!=null) {
+
+           if (referencedMemberName.indexOf('(')<0) {
+              referencedMember=((ClassDocImpl)referencedClass).findFieldRec(referencedMemberName);
+               if (null == referencedMember) {
+                  MethodDoc[] methods = ((ClassDocImpl)referencedClass).methods();
+                  for (int i=0; i<methods.length; ++i) {
+                     if (methods[i].name().equals(referencedMemberName)) {
+                        if (null == referencedMember) {
+                           referencedMember = methods[i];
+                        }
+                        else {
+                           referencedClass = null;
+                           referencedMember = null;
+                           //print warning here
+                           break;
+                        }
+                     }
+                  }
+               }
+               else {
+                  referencedClass = referencedMember.containingClass();
+               }
+           }
+           else {
+              referencedMember=((ClassDocImpl)referencedClass).findExecutableRec(referencedMemberName);
+               if (referencedMember==null) {
+                  //System.err.println("cannot find member for '"+referencedMemberName+"'");
+                  referencedClass = null;
+               }
+           }
+        }
+      }
+      /*
+      else {
+        System.err.println("class not found: '"+referencedFqName + "' in context class " + contextClass + " in " + this);
+      }
+      */
+   }
+
+   public ClassDoc referencedClass() {
+      return referencedClass;
+   }
+
+   public String referencedClassName() {
+      return referencedClassName;
+   }
+
+   public MemberDoc referencedMember() {
+      return referencedMember;
+   }
+
+   public String referencedMemberName() {
+      return referencedMemberName;
+   }
+
+   public PackageDoc referencedPackage() {
+      return referencedPackage;
+   }
+
+   public String label() {
+      return label;
+   }
+
+   public String kind() {
+      return "@see";
+   }
+
+   public String name() {
+      return "@see";
+   }
+
+   public Tag[] firstSentenceTags() {
+      return inlineTags();
+   }
+
+   public Tag[] inlineTags() {
+      return new Tag[]{new TextTagImpl(referencedClassName)};
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java
new file mode 100644 (file)
index 0000000..1451610
--- /dev/null
@@ -0,0 +1,111 @@
+/* gnu.classpath.tools.gjdoc.SerialFieldTagImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class SerialFieldTagImpl extends AbstractTagImpl implements SerialFieldTag {
+
+   private String       fieldName;
+   private String       fieldType;
+   private String       description;
+   private ClassDoc     fieldTypeDoc;
+   private ClassDocImpl contextClass;
+
+   public SerialFieldTagImpl(String text, 
+                             ClassDocImpl contextClass, 
+                             MemberDocImpl contextMember) {
+      super(text);
+      this.contextClass=contextClass;
+
+      if (fieldName==null)
+        fieldName="";
+      if (fieldType==null)
+        fieldType="";
+      if (description==null)
+        description="";
+
+      int state=1;
+      char[] textArr=text.toCharArray();
+      for (int i=0; i<textArr.length; ++i) {
+        char c=textArr[i];
+        switch (state) {
+        case 1:
+           if (Parser.isWhitespace(c)) state=2;
+           else fieldName+=c;
+           break;
+        case 2:
+           if (Parser.isWhitespace(c)) state=3;
+           else fieldType+=c;
+           break;
+        case 3:
+           description+=c;
+           break;
+        }
+      }
+      
+      setBody(description, contextClass, contextMember);
+
+   }
+
+   public void resolve() {
+
+      super.resolve();
+      try {
+         Type type=contextClass.typeForString(fieldType);
+         this.fieldTypeDoc=type.asClassDoc();
+      } catch (ParseException e) {
+         System.err.println("FIXME: add try-catch to force compilation"
+                            + e);
+      }
+   }
+
+   public ClassDoc fieldTypeDoc() {
+      return fieldTypeDoc;
+   }
+
+   public String fieldName() {
+      return fieldName;
+   }
+
+   public String fieldType() {
+      return fieldType;
+   }
+
+   public String description() {
+      return description;
+   }
+
+   public String kind() {
+      return "@serialField";
+   }
+
+   public int compareTo(Object o) {
+      if (o!=null && o instanceof SerialFieldTagImpl) {
+        return fieldName().compareTo(((SerialFieldTagImpl)o).fieldName());
+      }
+      else {
+        return 0;
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java
new file mode 100644 (file)
index 0000000..605d132
--- /dev/null
@@ -0,0 +1,60 @@
+/* gnu.classpath.tools.gjdoc.SourcePositionImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.SourcePosition;
+
+import java.io.File;
+
+public class SourcePositionImpl 
+   implements SourcePosition
+{
+   private File file;
+   private int line;
+   private int column;
+
+   public SourcePositionImpl(File file, int line, int column)
+   {
+      this.file = file;
+      this.line = line;
+      this.column = column;
+   }
+
+   public File file()
+   {
+      return this.file;
+   }
+
+   public int line()
+   {
+      return this.line;
+   }
+
+   public int column()
+   {
+      return this.column;
+   }
+
+   public String toString()
+   {
+      return this.file + ":" + this.line;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java
new file mode 100644 (file)
index 0000000..597d73b
--- /dev/null
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.TagContainer
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.Tag;
+
+import java.util.Map;
+
+/**
+ *  Implemented by Doclet API classes that are associated with tags.
+ */
+interface TagContainer
+{
+   public Tag[] firstSentenceTags();
+   public Tag[] inlineTags();
+   public Map getTagMap();
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java
new file mode 100644 (file)
index 0000000..320ccfd
--- /dev/null
@@ -0,0 +1,43 @@
+/* gnu.classpath.tools.gjdoc.TagImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+
+public class TagImpl extends AbstractTagImpl implements Tag {
+
+   private String kind;
+   private String name;
+
+   TagImpl(String name, String text, ClassDocImpl contextClass, MemberDocImpl contextMember) {
+      super(text);
+      this.kind=name;
+      this.name=name;
+
+      setBody(text, contextClass, contextMember);
+   }
+
+   public String kind() { return kind; }
+   public String name() { return name; }
+   public String toString() { return kind()+":"+text(); }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java
new file mode 100644 (file)
index 0000000..eb3417d
--- /dev/null
@@ -0,0 +1,115 @@
+/* gnu.classpath.tools.gjdoc.TemporaryStore\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.gjdoc;\r
+\r
+/**\r
+ *  Useful for passing big objects that are no longer needed by the\r
+ *  calling method, reducing memory usage.  <p/>\r
+ *\r
+ *  Consider the following problem:\r
+ *  <pre>\r
+ *   public class A {\r
+ *     public static void foo() {\r
+ *       long[] hugeArray = new long[1000000]; // takes around 8 MB\r
+ *       // ... fill hugeArray with some information ...\r
+ *       bar(hugeArray);\r
+ *       // ... hugeArray is no more required at this point\r
+ *     }\r
+ *     public static void bar(long[] arr) {\r
+ *       // ... process contents of arr ...\r
+ *       arr = null;\r
+ *       System.gc();      // NOTE: will not collect arr!\r
+ *       // ... do something memory-intensive where arr is not needed\r
+ *     }\r
+ *  }\r
+ *  </pre>\r
+ *\r
+ *  In method <code>bar()</code>, the array cannot be garbage\r
+ *  collected because the local variable <code>hugeArray</code> in\r
+ *  method <code>foo()</code> still holds a reference to the array.\r
+ *  <p/>\r
+ *\r
+ *  When calling <code>bar(new long[1000000]);</code> in\r
+ *  <code>arr</code> the array <i>can</i> be collected in\r
+ *  <code>bar()</code>, but that way it can't be initialized in\r
+ *  <code>foo()</code>. A local variable is needed for\r
+ *  initialization, but the variable can't be cleared before it is\r
+ *  passed to <code>bar()</code>!  <p/>\r
+ *\r
+ *  <code>TemporaryStore</code> is the solution for this\r
+ *  dilemma. The modified method <code>foo()</code> which uses a\r
+ *  <code>TemporaryStore</code> object would look like this:\r
+ *\r
+ *  <pre>\r
+ *     public static void foo() {\r
+ *       long[] hugeArray = new long[1000000]; // takes around 7 MB\r
+ *       // ... fill hugeArray with some very important information ...\r
+ *       TemporaryStore tstore = new TemporaryStore(hugeArray);\r
+ *       hugeArray = null;\r
+ *       bar((long[])tstore.getAndClear());\r
+ *     }\r
+ *  </pre>\r
+ *\r
+ *  When control flow is transferred to <code>bar()</code>,\r
+ *  <code>foo()</code> will hold no more references to the array\r
+ *  and so it can be garbage collected in <code>bar()</code>.\r
+ * \r
+ */\r
+public class TemporaryStore {\r
+\r
+   private Object storedObject;\r
+\r
+   /**\r
+    *  Temporarily store the given object for passing it to a\r
+    *  different method.  <p/>\r
+    *\r
+    *  The method constructing a new TemporaryStore object should\r
+    *  clear all other references to the stored object, so that\r
+    *  this TemporaryStore is the only object referencing it.\r
+    *\r
+    *  @param storedObject  the object to store temporarily\r
+    *\r
+    */\r
+   public TemporaryStore(Object storedObject) {\r
+      this.storedObject = storedObject;\r
+   }\r
+\r
+   /**\r
+    *  Return the stored object after clearing the reference to it.\r
+    *  <p/>\r
+    *\r
+    *  When the user of this class followed the recommendations in\r
+    *  the documentation of @link{TemporaryStore(Object)}, the\r
+    *  returned reference will be the only reference to the stored\r
+    *  object after this method returns. If the returned reference\r
+    *  is passed in a method call, the called method will hold the\r
+    *  only reference to the stored object and can release it by\r
+    *  nulling the corresponding parameter.\r
+    *\r
+    *  @return the object which was passed to the constructor.\r
+    *\r
+    */\r
+   public Object getAndClear() {\r
+      Object rc = this.storedObject;\r
+      this.storedObject = null;\r
+      return rc;\r
+   }\r
+}\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java
new file mode 100644 (file)
index 0000000..6d7ee82
--- /dev/null
@@ -0,0 +1,39 @@
+/* gnu.classpath.tools.gjdoc.TextTagImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+
+public class TextTagImpl extends AbstractTagImpl implements Tag {
+
+   TextTagImpl(String text) {
+      super(text);
+   }
+
+   public Tag[] firstSentenceTags() { return new Tag[]{this}; }
+   public Tag[] inlineTags() { return new Tag[]{this}; }
+   public String kind() { return "Text"; }
+
+   public String toString() { return "TextTagImpl{text=" + text + "}"; }
+
+   public String getText() { return text; }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java
new file mode 100644 (file)
index 0000000..df0091d
--- /dev/null
@@ -0,0 +1,88 @@
+/* gnu.classpath.tools.gjdoc.ThrowsTagImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class ThrowsTagImpl extends AbstractTagImpl implements ThrowsTag {
+
+   private ClassDoc exception;
+   private String exceptionName;
+   private String exceptionComment;
+
+   public ThrowsTagImpl(String text, 
+                        ClassDocImpl contextClass,
+                        MemberDocImpl contextMember) {
+      super(text);
+
+      char[] textarr=text.toCharArray();
+      int i=0;
+      for (; i<textarr.length; ++i) {
+        if (!Parser.isWhitespace(textarr[i])) break;
+      }
+      for (; i<textarr.length; ++i) {
+        if (Parser.isWhitespace(textarr[i])) {
+           this.exceptionName=new String(textarr,0,i).trim();
+           this.exceptionComment=new String(textarr,i,textarr.length-i).trim();
+           break;
+        }
+      }
+      if (null != exceptionName) {
+         if (contextClass==null) {
+            this.exception=Main.getRootDoc().classNamed(exceptionName);
+         }
+         else {
+            this.exception=contextClass.findClass(exceptionName);
+         }
+         if (exception!=null)
+            this.exceptionName=exception.qualifiedName();
+         else {
+            if (text.trim().startsWith("<")) {
+               Main.getRootDoc().printWarning("Expected exception name but got '"+text+"' in class "+contextClass.getClassName());
+            }
+         }
+      }
+      else {
+         Main.getRootDoc().printWarning("@throws tag in comment for " + contextClass.qualifiedName() + "." + contextMember.name() + " doesn't specify an exception.");
+      }
+      if (this.exceptionComment!=null) {
+         setBody(this.exceptionComment, contextClass, contextMember);
+      }
+   }
+
+   public ClassDoc exception() {
+      return exception;
+   }
+
+   public String exceptionName() {
+      return exceptionName;
+   }
+
+   public String exceptionComment() {
+      return exceptionComment;
+   }
+
+   public String kind() {
+      return "@throws";
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java
new file mode 100644 (file)
index 0000000..d1d832c
--- /dev/null
@@ -0,0 +1,71 @@
+/* gnu.classpath.tools.gjdoc.Timer
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.io.*;
+import java.text.*;
+
+public class Timer {
+
+   private static long startTime, beforeDocletTime, stopTime, memoryUsed, maxDriverHeap=-1, maxDocletHeap=-1;
+
+   static void shutdown() {
+      try{
+        if (stopTime==0) return;
+        PrintWriter pw=new PrintWriter(new FileWriter("timer.out"));
+        pw.println("Preparation (driver) took "+(((double)(beforeDocletTime-startTime))/1000.)+" s");
+        pw.println("Generation (doclet) took "+(((double)(stopTime-beforeDocletTime))/1000.)+" s");
+        pw.println("");
+        pw.println("Memory used for documentation tree: "+(memoryUsed/(1024*1024))+" MB");
+        pw.println("Max. heap used for driver: "+((maxDriverHeap<0)?"N/A":((maxDriverHeap/(1024*1024))+" MB")));
+        pw.println("Max. heap used for doclet: "+((maxDocletHeap<0)?"N/A":((maxDocletHeap/(1024*1024))+" MB")));
+        pw.println("");
+        pw.println("TOTAL TIME: "+(((double)(stopTime-startTime))/1000.)+" s");
+        pw.println("TOTAL HEAP: "+((maxDocletHeap<0)?"N/A":(Math.max(maxDocletHeap,maxDriverHeap)/(1024*1024))+" MB"));
+        pw.close();
+      }
+      catch (IOException e) {
+        e.printStackTrace();
+      }
+   }
+
+   public static void setStartTime() {
+      Timer.startTime=System.currentTimeMillis();
+   }
+
+   public static void setStopTime() {
+      Timer.stopTime=System.currentTimeMillis();
+   }
+
+   public static void setBeforeDocletTime() {
+      Timer.beforeDocletTime=System.currentTimeMillis();
+      Timer.memoryUsed=Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory();
+   }
+
+   public static void setMaxDocletHeap(long maximumHeap) {
+      Timer.maxDocletHeap=maximumHeap;
+   }
+
+   public static void setMaxDriverHeap(long maximumHeap) {
+      Timer.maxDriverHeap=maximumHeap;
+   }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java
new file mode 100644 (file)
index 0000000..68d2c4d
--- /dev/null
@@ -0,0 +1,87 @@
+/* gnu.classpath.tools.gjdoc.TimerDoclet
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+
+public class TimerDoclet {
+
+   private static Object doclet = null;
+
+   private static long maximumHeap = -1;
+   
+   private static Thread memThread;
+
+   private static boolean runMemThread = true;
+
+   private static void init() throws Exception {
+      if (doclet==null) {
+        doclet=Class.forName("com.sun.tools.doclets.standard.Standard").newInstance();
+        memThread=new Thread() {
+              
+              public void run() {
+                 while (runMemThread) {
+                    synchronized (TimerDoclet.class) {
+                       TimerDoclet.maximumHeap=Math.max(TimerDoclet.maximumHeap,
+                                                        Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory());
+                    }
+                    try { Thread.sleep(50); } catch (Exception e) {}
+                 }
+              }
+           };
+        //memThread.start();
+      }
+   }
+
+   public static boolean validOptions(String[][] options, DocErrorReporter reporter)  
+      throws Exception {
+
+      init();
+      return ((Boolean)doclet.getClass().getMethod("validOptions", new Class[]{String[][].class, DocErrorReporter.class}).invoke(null, new Object[]{options, reporter})).booleanValue();
+      //return false; //doclet.validOptions(options, reporter);
+   }
+
+   public static int optionLength(String option) throws Exception {
+      init();
+      return ((Integer)doclet.getClass().getMethod("optionLength", new Class[]{String.class}).invoke(null, new Object[]{option})).intValue();
+   }
+
+   public static boolean start(RootDoc root) throws Exception {
+      Timer.setBeforeDocletTime();
+      synchronized (TimerDoclet.class) {
+        Timer.setMaxDriverHeap(maximumHeap);
+        maximumHeap=-1;
+      }
+      //new com.sun.tools.doclets.standard.Standard().validOptions(root.options(), root);
+      //new com.sun.tools.doclets.standard.Standard().start(root);
+      
+      if (validOptions(root.options(), root)) {
+        doclet.getClass().getMethod("start", new Class[]{RootDoc.class}).invoke(null, new Object[]{root});
+      }
+      runMemThread=false;
+      Timer.setStopTime();
+      synchronized (TimerDoclet.class) {
+        Timer.setMaxDocletHeap(maximumHeap);
+      }
+      Timer.shutdown();
+      return true;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java
new file mode 100644 (file)
index 0000000..a66a85e
--- /dev/null
@@ -0,0 +1,92 @@
+/* gnu.classpath.tools.gjdoc.TypeImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.Collections;
+import java.util.Set;
+import java.util.HashSet;
+
+public class TypeImpl implements Type, WritableType {
+
+   private String packageName;
+   private String typeName;
+   private String dimension;
+
+   TypeImpl(String packageName, String typeName, String dimension) {
+      this.packageName=packageName;
+      this.typeName=typeName;
+      this.dimension=dimension;
+
+      if (typeName.indexOf('[') >= 0 || typeName.indexOf(']') >= 0) {
+         throw new RuntimeException("Typename must not contain dimension information.");
+      }
+   }
+
+   public ClassDoc asClassDoc() {
+
+      if (this instanceof ClassDoc)
+        return ((ClassDocImpl)(ClassDoc)this).getBaseClassDoc();
+      else
+        return null;
+   }
+
+   public String typeName() { return typeName; }
+   
+   public String qualifiedTypeName() { return (packageName!=null)?(packageName+"."+typeName):(typeName); }
+
+   public String dimension() { return dimension; }
+   public void setDimension(String dimension) { this.dimension = dimension; }
+
+   public String toString() { return "Type{"+qualifiedTypeName()+dimension()+"}"; }
+
+   public Object clone() throws CloneNotSupportedException {
+      return super.clone();
+   }
+
+   public boolean isPrimitive()
+   {
+      return null == packageName && primitiveNames.contains(typeName);
+   }
+
+   private static final Set primitiveNames;
+   static {
+      Set _primitiveNames = new HashSet();
+      _primitiveNames.add("boolean");
+      _primitiveNames.add("char");
+      _primitiveNames.add("byte");
+      _primitiveNames.add("short");
+      _primitiveNames.add("int");
+      _primitiveNames.add("long");
+      _primitiveNames.add("float");
+      _primitiveNames.add("double");
+      primitiveNames = Collections.unmodifiableSet(_primitiveNames);
+   }
+
+  public TypeVariable asTypeVariable() 
+  {
+    if (this instanceof TypeVariable)
+      return (TypeVariable) this;
+    else
+      return null;
+  }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java
new file mode 100644 (file)
index 0000000..4524ab1
--- /dev/null
@@ -0,0 +1,91 @@
+/* gnu.classpath.tools.gjdoc.TypeVariableImpl
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.ProgramElementDoc;
+import com.sun.javadoc.Type;
+import com.sun.javadoc.TypeVariable;
+
+import java.util.List;
+
+public class TypeVariableImpl 
+  extends TypeImpl
+  implements TypeVariable, WritableType 
+{
+
+  /**
+   * The bounds of this particular type variable.
+   */
+  Type[] bounds;
+
+  /**
+   * The owning program element of this type variable.
+   */
+  ProgramElementDoc owner;
+
+  /**
+   * Constructs a new type variable with the supplied name and owner.
+   *
+   * @param packageName the name of the package containing the type variable.
+   * @param typeName the name of the type variable.
+   * @param dimension the dimensions of the type variable (always "").
+   * @param owner the owning program element of the type variable.
+   */
+  TypeVariableImpl(String packageName, String typeName, String dimension,
+                  ProgramElementDoc owner) 
+  {
+    super(packageName, typeName, dimension);
+    this.owner = owner;
+  }
+
+  /**
+   * Set the bounds to the contents of the supplied list.
+   *
+   * @param parsedBounds a list of type bounds.
+   */
+  void setBounds(List parsedBounds)
+  {
+    bounds = (Type[]) parsedBounds.toArray(new Type[parsedBounds.size()]);
+  }
+
+  /**
+   * Returns the bounds of this type variable.
+   *
+   * @return the bounds of the variable.
+   */
+  public Type[] bounds()
+  {
+    return bounds;
+  }
+
+  /**
+   * Returns the owning program element for this type variable.
+   *
+   * @return the owning program element, whether a class, interface,
+   *         constructor or method.
+   */
+  public ProgramElementDoc owner()
+  {
+    return owner;
+  }
+
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java
new file mode 100644 (file)
index 0000000..8f0ba79
--- /dev/null
@@ -0,0 +1,48 @@
+/* gnu.classpath.tools.gjdoc.ValueTagImpl
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class ValueTagImpl extends SeeTagImpl {
+
+   public ValueTagImpl(String _text, ClassDocImpl contextClass) {
+      super(_text, contextClass);
+   }
+
+   public String name() { return "@value"; }
+
+   public Tag[] firstSentenceTags() {
+      return inlineTags();
+   }
+
+   public Tag[] inlineTags() {
+      if (null != reference && reference.trim().length() > 0) {
+         return new Tag[] { new TextTagImpl(reference) };
+      }
+      else {
+         return new Tag[0];
+      }
+   }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java
new file mode 100644 (file)
index 0000000..6293602
--- /dev/null
@@ -0,0 +1,27 @@
+/* gnu.classpath.tools.gjdoc.WritableType\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.gjdoc;\r
+\r
+public interface WritableType extends Cloneable {\r
+\r
+   public void setDimension(String dimension);\r
+   public Object clone() throws CloneNotSupportedException;\r
+}\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java
new file mode 100644 (file)
index 0000000..bf9e3ff
--- /dev/null
@@ -0,0 +1,69 @@
+/* gnu.classpath.tools.gjdoc.expr.AdditionExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class AdditionExpression
+   extends BinaryComputationExpression
+{
+   public AdditionExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected double compute(double leftValue, double rightValue)
+   {
+      return leftValue + rightValue;
+   }
+
+   protected float compute(float leftValue, float rightValue)
+   {
+      return leftValue + rightValue;
+   }
+
+   protected long compute(long leftValue, long rightValue)
+   {
+      return leftValue + rightValue;
+   }
+
+   protected int compute(int leftValue, int rightValue)
+   {
+      return leftValue + rightValue;
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression leftValue = left.evaluate(context);
+      ConstantExpression rightValue = right.evaluate(context);
+
+      if (Type.STRING == leftValue.getType()
+          || Type.STRING == rightValue.getType()) {
+         
+         return new ConstantString(leftValue.asObject().toString()
+                                   + rightValue.asObject().toString());
+      }
+      else {
+         return super.evaluate(leftValue, rightValue);
+      }
+
+   }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java
new file mode 100644 (file)
index 0000000..9e9e13c
--- /dev/null
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.AndExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class AndExpression
+   extends BinaryBitwiseExpression
+{
+   public AndExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected long compute(long leftValue, long rightValue)
+   {
+      return leftValue & rightValue;
+   }
+
+   protected int compute(int leftValue, int rightValue)
+   {
+      return leftValue & rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java
new file mode 100644 (file)
index 0000000..4b0a993
--- /dev/null
@@ -0,0 +1,51 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryBitwiseExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryBitwiseExpression
+   extends BinaryExpression
+{
+   protected BinaryBitwiseExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression leftValue = left.evaluate(context);
+      ConstantExpression rightValue = right.evaluate(context);
+
+      if (Type.LONG == leftValue.getType()
+          || Type.LONG == rightValue.getType()) {
+
+         return new ConstantLong(compute(leftValue.asNumber().longValue(),
+                                         rightValue.asNumber().longValue()));
+      }
+      else {
+         return new ConstantInteger(compute(leftValue.asNumber().intValue(),
+                                            rightValue.asNumber().intValue()));
+      }
+   }
+
+   protected abstract long compute(long leftValue, long rightValue);
+   protected abstract int compute(int leftValue, int rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java
new file mode 100644 (file)
index 0000000..97cdf22
--- /dev/null
@@ -0,0 +1,75 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryComputationExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryComputationExpression
+   extends BinaryExpression
+{
+   protected BinaryComputationExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression leftValue = left.evaluate(context);
+      ConstantExpression rightValue = right.evaluate(context);
+
+      return evaluate(leftValue, rightValue);
+   }
+
+   protected ConstantExpression evaluate(ConstantExpression leftValue,
+                                         ConstantExpression rightValue)
+      throws IllegalExpressionException
+   {
+      if (Type.DOUBLE == leftValue.getType()
+          || Type.DOUBLE == rightValue.getType()) {
+
+         return new ConstantDouble(compute(leftValue.asNumber().doubleValue(),
+                                           rightValue.asNumber().doubleValue()));
+      }
+      else if (Type.FLOAT == leftValue.getType()
+          || Type.FLOAT == rightValue.getType()) {
+
+         return new ConstantFloat(compute(leftValue.asNumber().floatValue(),
+                                          rightValue.asNumber().floatValue()));
+      }
+      else if (Type.LONG == leftValue.getType()
+          || Type.LONG == rightValue.getType()) {
+
+         return new ConstantLong(compute(leftValue.asNumber().longValue(),
+                                         rightValue.asNumber().longValue()));
+      }
+      else if (leftValue.isNumber() && rightValue.isNumber()) {
+         return new ConstantInteger(compute(leftValue.asNumber().intValue(),
+                                            rightValue.asNumber().intValue()));
+      }
+      else {
+         throw new IllegalExpressionException("Operator ? cannot be applied to " + leftValue.getType() + "," + rightValue.getType());
+      }
+   }
+
+   protected abstract double compute(double leftValue, double rightValue);
+   protected abstract float compute(float leftValue, float rightValue);
+   protected abstract long compute(long leftValue, long rightValue);
+   protected abstract int compute(int leftValue, int rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java
new file mode 100644 (file)
index 0000000..27fe2cf
--- /dev/null
@@ -0,0 +1,72 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryEqualityExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryEqualityExpression
+   extends BinaryExpression
+{
+   protected BinaryEqualityExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression leftValue = left.evaluate(context);
+      ConstantExpression rightValue = right.evaluate(context);
+
+      if (Type.DOUBLE == leftValue.getType()
+          || Type.DOUBLE == rightValue.getType()) {
+
+         return new ConstantBoolean(compute(leftValue.asNumber().doubleValue(),
+                                            rightValue.asNumber().doubleValue()));
+      }
+      else if (Type.FLOAT == leftValue.getType()
+          || Type.FLOAT == rightValue.getType()) {
+
+         return new ConstantBoolean(compute(leftValue.asNumber().floatValue(),
+                                            rightValue.asNumber().floatValue()));
+      }
+      else if (Type.LONG == leftValue.getType()
+          || Type.LONG == rightValue.getType()) {
+
+         return new ConstantBoolean(compute(leftValue.asNumber().longValue(),
+                                            rightValue.asNumber().longValue()));
+      }
+      else if (Type.BOOLEAN == leftValue.getType()
+               && Type.BOOLEAN == rightValue.getType()) {
+
+         return new ConstantBoolean(compute(((ConstantBoolean)leftValue).booleanValue(),
+                                            ((ConstantBoolean)rightValue).booleanValue()));
+      }
+      else {
+         return new ConstantBoolean(compute(leftValue.asNumber().intValue(),
+                                            rightValue.asNumber().intValue()));
+      }
+   }
+
+   protected abstract boolean compute(double leftValue, double rightValue);
+   protected abstract boolean compute(float leftValue, float rightValue);
+   protected abstract boolean compute(long leftValue, long rightValue);
+   protected abstract boolean compute(int leftValue, int rightValue);
+   protected abstract boolean compute(boolean leftValue, boolean rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java
new file mode 100644 (file)
index 0000000..e44551d
--- /dev/null
@@ -0,0 +1,34 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryExpression
+   implements Expression
+{
+   protected Expression left;
+   protected Expression right;
+
+   protected BinaryExpression(Expression left, Expression right)
+   {
+      this.left = left;
+      this.right = right;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java
new file mode 100644 (file)
index 0000000..00bbfcc
--- /dev/null
@@ -0,0 +1,47 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryLogicalExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryLogicalExpression
+   extends BinaryExpression
+{
+   protected BinaryLogicalExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression leftValue = left.evaluate(context);
+      ConstantExpression rightValue = right.evaluate(context);
+
+      if (leftValue.getType() != Type.BOOLEAN || rightValue.getType() != Type.BOOLEAN) {
+         throw new IllegalExpressionException("logical expression expects boolean subexpressions");
+      }
+      else {
+         return new ConstantBoolean(compute(((ConstantBoolean)leftValue).booleanValue(),
+                                            ((ConstantBoolean)rightValue).booleanValue()));
+      }
+   }
+
+   protected abstract boolean compute(boolean leftValue, boolean rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java
new file mode 100644 (file)
index 0000000..91c4441
--- /dev/null
@@ -0,0 +1,65 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryRelationExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryRelationExpression
+   extends BinaryExpression
+{
+   protected BinaryRelationExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression leftValue = left.evaluate(context);
+      ConstantExpression rightValue = right.evaluate(context);
+
+      if (Type.DOUBLE == leftValue.getType()
+          || Type.DOUBLE == rightValue.getType()) {
+
+         return new ConstantBoolean(compute(leftValue.asNumber().doubleValue(),
+                                            rightValue.asNumber().doubleValue()));
+      }
+      else if (Type.FLOAT == leftValue.getType()
+          || Type.FLOAT == rightValue.getType()) {
+
+         return new ConstantBoolean(compute(leftValue.asNumber().floatValue(),
+                                            rightValue.asNumber().floatValue()));
+      }
+      else if (Type.LONG == leftValue.getType()
+          || Type.LONG == rightValue.getType()) {
+
+         return new ConstantBoolean(compute(leftValue.asNumber().longValue(),
+                                            rightValue.asNumber().longValue()));
+      }
+      else {
+         return new ConstantBoolean(compute(leftValue.asNumber().intValue(),
+                                            rightValue.asNumber().intValue()));
+      }
+   }
+
+   protected abstract boolean compute(double leftValue, double rightValue);
+   protected abstract boolean compute(float leftValue, float rightValue);
+   protected abstract boolean compute(long leftValue, long rightValue);
+   protected abstract boolean compute(int leftValue, int rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java
new file mode 100644 (file)
index 0000000..a5eac4d
--- /dev/null
@@ -0,0 +1,49 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryShiftExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryShiftExpression
+   extends BinaryExpression
+{
+   protected BinaryShiftExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression leftValue = left.evaluate(context);
+      ConstantExpression rightValue = right.evaluate(context);
+
+      if (Type.LONG == leftValue.getType()) {
+         return new ConstantLong(compute(leftValue.asNumber().longValue(),
+                                         rightValue.asNumber().intValue()));
+      }
+      else {
+         return new ConstantInteger(compute(leftValue.asNumber().intValue(),
+                                            rightValue.asNumber().intValue()));
+      }
+   }
+
+   protected abstract long compute(long leftValue, int rightValue);
+   protected abstract int compute(int leftValue, int rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java
new file mode 100644 (file)
index 0000000..503421e
--- /dev/null
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.BitShiftRightExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class BitShiftRightExpression
+   extends BinaryShiftExpression
+{
+   public BitShiftRightExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected long compute(long leftValue, int rightValue)
+   {
+      return leftValue >>> rightValue;
+   }
+
+   protected int compute(int leftValue, int rightValue)
+   {
+      return leftValue >>> rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java
new file mode 100644 (file)
index 0000000..b745de4
--- /dev/null
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.expr.IllegalExpressionException
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+public class CircularExpressionException
+   extends IllegalExpressionException
+{
+   public CircularExpressionException(String message)
+   {
+      super(message);
+   }
+
+   public CircularExpressionException(Throwable cause)
+   {
+      super(cause);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java
new file mode 100644 (file)
index 0000000..e4f86f6
--- /dev/null
@@ -0,0 +1,57 @@
+/* gnu.classpath.tools.gjdoc.expr.ConditionalExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConditionalExpression
+   implements Expression
+{
+   private Expression condition;
+   private Expression ifTrue;
+   private Expression ifFalse;
+   
+   ConditionalExpression(Expression condition, Expression ifTrue, Expression ifFalse)
+   {
+      this.condition = condition;
+      this.ifTrue = ifTrue;
+      this.ifFalse = ifFalse;
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression conditionValue = condition.evaluate(context);
+      ConstantExpression ifTrueValue = ifTrue.evaluate(context);
+      ConstantExpression ifFalseValue = ifFalse.evaluate(context);
+
+      if (Type.BOOLEAN != conditionValue.getType()) {
+         throw new IllegalExpressionException("condition must be boolean");
+      }
+      else {
+         boolean cond = ((ConstantBoolean)conditionValue).booleanValue();
+         if (cond) {
+            return ifTrueValue;
+         }
+         else {
+            return ifFalseValue;
+         }
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java
new file mode 100644 (file)
index 0000000..4ef75c6
--- /dev/null
@@ -0,0 +1,67 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantBoolean
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantBoolean
+   extends ConstantExpression
+{
+   private boolean value;
+
+   public ConstantBoolean(String stringValue)
+   {
+      this.value = "true".equals(stringValue);
+   }
+
+   public ConstantBoolean(boolean booleanValue)
+   {
+      this.value = booleanValue;
+   }
+
+   public boolean booleanValue()
+   {
+      return value;
+   }
+
+   public Type getType()
+   {
+      return Type.BOOLEAN;
+   }
+
+   public Number asNumber()
+   {
+      return null;
+   }
+
+   public boolean isNumber()
+   {
+      return true;
+   }
+
+   public Object asObject()
+   {
+      return new Boolean(value);
+   }
+
+   public String toString()
+   {
+      return Boolean.toString(value);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java
new file mode 100644 (file)
index 0000000..bbe30b2
--- /dev/null
@@ -0,0 +1,57 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantByte
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantByte
+   extends ConstantExpression
+{
+   private byte value;
+
+   public ConstantByte(byte byteValue)
+   {
+      this.value = byteValue;
+   }
+
+   public Type getType()
+   {
+      return Type.BYTE;
+   }
+
+   public Number asNumber()
+   {
+      return new Byte(value);
+   }
+
+   public boolean isNumber()
+   {
+      return true;
+   }
+
+   public Object asObject()
+   {
+      return asNumber();
+   }
+
+   public String toString()
+   {
+      return Byte.toString(value);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java
new file mode 100644 (file)
index 0000000..56d3230
--- /dev/null
@@ -0,0 +1,81 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantChar
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantChar
+   extends ConstantExpression
+{
+   private char value;
+
+   public ConstantChar(String stringValue)
+   {
+      this.value = stringValue.charAt(1); // FIXME
+      if (value == '\\') {
+         switch (stringValue.charAt(2)) {
+         case 'n': value = '\n'; break;
+         case 't': value = '\t'; break;
+         case 'f': value = '\f'; break;
+         case 'r': value = '\r'; break;
+         case 'b': value = '\b'; break;
+         case 'u': 
+            {
+               String stringVal = stringValue.substring(3, stringValue.length() - 1);
+               /*
+               while (stringVal.length() > 1 && stringVal.charAt(0) == '0') {
+                  stringVal = stringVal.substring(1);
+               }
+               */
+               value = (char)Integer.parseInt(stringVal, 16); break;
+            }
+         }
+      }
+   }
+
+   public ConstantChar(char charValue)
+   {
+      this.value = charValue;
+   }
+
+   public Type getType()
+   {
+      return Type.CHAR;
+   }
+
+   public Number asNumber()
+   {
+      return new Integer((int)value);
+   }
+
+   public Object asObject()
+   {
+      return new Character(value);
+   }
+
+   public boolean isNumber()
+   {
+      return true;
+   }
+
+   public String toString()
+   {
+      return Character.toString(value);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java
new file mode 100644 (file)
index 0000000..ad97092
--- /dev/null
@@ -0,0 +1,62 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantDouble
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantDouble
+   extends ConstantExpression
+{
+   private double value;
+
+   public ConstantDouble(String stringValue)
+   {
+      this.value = Double.parseDouble(stringValue);
+   }
+
+   public ConstantDouble(double doubleValue)
+   {
+      this.value = doubleValue;
+   }
+
+   public Type getType()
+   {
+      return Type.DOUBLE;
+   }
+
+   public Number asNumber()
+   {
+      return new Double(value);
+   }
+
+   public boolean isNumber()
+   {
+      return true;
+   }
+
+   public Object asObject()
+   {
+      return asNumber();
+   }
+
+   public String toString()
+   {
+      return Double.toString(value);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java
new file mode 100644 (file)
index 0000000..3078b4c
--- /dev/null
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class ConstantExpression
+   implements Expression
+{
+   public abstract Type getType();
+   public abstract Number asNumber();
+   public abstract Object asObject();
+   public abstract boolean isNumber();
+
+   public ConstantExpression evaluate(Context context)
+   {
+      return this;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java
new file mode 100644 (file)
index 0000000..cf378db
--- /dev/null
@@ -0,0 +1,62 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantFloat
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantFloat
+   extends ConstantExpression
+{
+   private float value;
+
+   public ConstantFloat(String stringValue)
+   {
+      this.value = Float.parseFloat(stringValue);
+   }
+
+   public ConstantFloat(float floatValue)
+   {
+      this.value = floatValue;
+   }
+
+   public Type getType()
+   {
+      return Type.FLOAT;
+   }
+
+   public Number asNumber()
+   {
+      return new Float(value);
+   }
+
+   public boolean isNumber()
+   {
+      return true;
+   }
+
+   public Object asObject()
+   {
+      return asNumber();
+   }
+
+   public String toString()
+   {
+      return "ConstantFloat{" + value + "}";
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java
new file mode 100644 (file)
index 0000000..56217cc
--- /dev/null
@@ -0,0 +1,62 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantInteger
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantInteger
+   extends ConstantExpression
+{
+   private long value;
+
+   public ConstantInteger(String stringValue)
+   {
+      this.value = Evaluator.parseLong(stringValue);
+   }
+
+   public ConstantInteger(int integerValue)
+   {
+      this.value = integerValue;
+   }
+
+   public Type getType()
+   {
+      return Type.INTEGER;
+   }
+
+   public Number asNumber()
+   {
+      return new Long(value);
+   }
+
+   public boolean isNumber()
+   {
+      return true;
+   }
+
+   public Object asObject()
+   {
+      return new Integer((int)value);
+   }
+
+   public String toString()
+   {
+      return Long.toString(value);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java
new file mode 100644 (file)
index 0000000..bfc1a0a
--- /dev/null
@@ -0,0 +1,67 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantLong
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantLong
+   extends ConstantExpression
+{
+   private long value;
+
+   public ConstantLong(String stringValue)
+   {
+      if ('l' == Character.toLowerCase(stringValue.charAt(stringValue.length() - 1))) {
+         this.value = Evaluator.parseLong(stringValue.substring(0, stringValue.length() - 1));
+      }
+      else {
+         this.value = Evaluator.parseInt(stringValue.substring(0, stringValue.length() - 1));
+      }
+   }
+
+   public ConstantLong(long longValue)
+   {
+      this.value = longValue;
+   }
+
+   public Type getType()
+   {
+      return Type.LONG;
+   }
+
+   public Number asNumber()
+   {
+      return new Long(value);
+   }
+
+   public boolean isNumber()
+   {
+      return true;
+   }
+
+   public Object asObject()
+   {
+      return asNumber();
+   }
+
+   public String toString()
+   {
+      return Long.toString(value);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java
new file mode 100644 (file)
index 0000000..23f9659
--- /dev/null
@@ -0,0 +1,49 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantNull
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantNull
+   extends ConstantExpression
+{
+   public ConstantNull()
+   {
+   }
+
+   public Type getType()
+   {
+      return Type.NULL;
+   }
+
+   public Number asNumber()
+   {
+      return null;
+   }
+
+   public boolean isNumber()
+   {
+      return false;
+   }
+
+   public Object asObject()
+   {
+      return null;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java
new file mode 100644 (file)
index 0000000..acd020d
--- /dev/null
@@ -0,0 +1,57 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantShort
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantShort
+   extends ConstantExpression
+{
+   private short value;
+
+   public ConstantShort(short shortValue)
+   {
+      this.value = shortValue;
+   }
+
+   public Type getType()
+   {
+      return Type.SHORT;
+   }
+
+   public Number asNumber()
+   {
+      return new Short(value);
+   }
+
+   public boolean isNumber()
+   {
+      return true;
+   }
+
+   public Object asObject()
+   {
+      return asNumber();
+   }
+
+   public String toString()
+   {
+      return Short.toString(value);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java
new file mode 100644 (file)
index 0000000..847e295
--- /dev/null
@@ -0,0 +1,58 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantString
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantString
+   extends ConstantExpression
+{
+   private String value;
+
+   public ConstantString(String value)
+   {
+      this.value = value;
+   }
+
+   public Type getType()
+   {
+      return Type.STRING;
+   }
+
+   public Number asNumber()
+   {
+      return null;
+   }
+
+   public boolean isNumber()
+   {
+      return false;
+   }
+
+   public Object asObject()
+   {
+      return value;
+   }
+
+   public String toString()
+   {
+      return value;
+   }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java
new file mode 100644 (file)
index 0000000..99093f7
--- /dev/null
@@ -0,0 +1,45 @@
+/* gnu.classpath.tools.gjdoc.expr.Context
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+import java.util.Set;
+
+class Context
+{
+   private EvaluatorEnvironment evaluatorEnvironment;
+   private Set visitedFields;
+
+   Context(EvaluatorEnvironment evaluatorEnvironment, Set visitedFields)
+   {
+      this.evaluatorEnvironment = evaluatorEnvironment;
+      this.visitedFields = visitedFields;
+   }
+
+   public EvaluatorEnvironment getEvaluatorEnvironment()
+   {
+      return evaluatorEnvironment;
+   }
+
+   public Set getVisitedFields()
+   {
+      return visitedFields;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java
new file mode 100644 (file)
index 0000000..baaf65d
--- /dev/null
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.DivisionExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class DivisionExpression
+   extends BinaryComputationExpression
+{
+   public DivisionExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected double compute(double leftValue, double rightValue)
+   {
+      return leftValue / rightValue;
+   }
+
+   protected float compute(float leftValue, float rightValue)
+   {
+      return leftValue / rightValue;
+   }
+
+   protected long compute(long leftValue, long rightValue)
+   {
+      return leftValue / rightValue;
+   }
+
+   protected int compute(int leftValue, int rightValue)
+   {
+      return leftValue / rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java
new file mode 100644 (file)
index 0000000..c31ff88
--- /dev/null
@@ -0,0 +1,55 @@
+/* gnu.classpath.tools.gjdoc.expr.EqualExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class EqualExpression
+   extends BinaryEqualityExpression
+{
+   public EqualExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected boolean compute(double leftValue, double rightValue)
+   {
+      return leftValue == rightValue;
+   }
+
+   protected boolean compute(float leftValue, float rightValue)
+   {
+      return leftValue == rightValue;
+   }
+
+   protected boolean compute(long leftValue, long rightValue)
+   {
+      return leftValue == rightValue;
+   }
+
+   protected boolean compute(int leftValue, int rightValue)
+   {
+      return leftValue == rightValue;
+   }
+
+   protected boolean compute(boolean leftValue, boolean rightValue)
+   {
+      return leftValue == rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java
new file mode 100644 (file)
index 0000000..94c54c2
--- /dev/null
@@ -0,0 +1,131 @@
+/* gnu.classpath.tools.gjdoc.expr.Evaluator
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+import java.io.StringReader;
+import java.math.BigInteger;
+import antlr.RecognitionException;
+import antlr.TokenStreamException;
+import java.util.Set;
+
+public class Evaluator
+{
+   /**
+    *  Try to evaluate the given Java expression in the context of the
+    *  given environment.
+    *
+    *  @param expression the Java expression to evaluate. The
+    *  expression string must not include a terminating semicolon.
+    *
+    *  @param source the FieldDoc (part of) whose constant field value
+    *  expression is being evaluated.  Used to prevent circular
+    *  references.
+    *
+    *  @param environment callback hook used by the Evaluator to query
+    *  the value of static fields referenced in the expression.
+    *
+    *  @return a Java object representing the value of the expression,
+    *  or <code>null</code> if the expression evaluates to
+    *  <code>null</code>.
+    *
+    *  @throws IllegalExpressionException if the expression is
+    *  invalid, uses unsupported syntax constructs (e.g. method calls,
+    *  array access) or references unknown static fields.
+    */
+   public static Object evaluate(String expression, 
+                                 Set visitedFields,
+                                 EvaluatorEnvironment environment)
+      throws IllegalExpressionException
+   {
+      try {
+         JavaLexer lexer = new JavaLexer(new StringReader(expression));
+         JavaRecognizer recognizer = new JavaRecognizer(lexer);
+         Expression e = recognizer.expression();
+         ConstantExpression value = e.evaluate(new Context(environment, visitedFields));
+         return value.asObject();
+      }
+      catch (RecognitionException e) {
+         throw new IllegalExpressionException(e);
+      }
+      catch (TokenStreamException e) {
+         throw new IllegalExpressionException(e);
+      }
+   }
+
+   static int parseInt(String stringValue)
+   {
+      int base = 10;
+
+      if (stringValue.startsWith("0x")) {
+         base = 16;
+         stringValue = stringValue.substring(2);
+      }
+      else if (stringValue.length() > 1 && stringValue.startsWith("0")) {
+         base = 8;
+         stringValue = stringValue.substring(1);
+      }
+      while (stringValue.length() > 1 && stringValue.startsWith("0")) {
+         stringValue = stringValue.substring(1);
+      }
+
+      if (10 == base) {
+         return Integer.parseInt(stringValue);
+      }
+      else {
+         long result = Long.parseLong(stringValue, base);
+
+         if (result > Integer.MAX_VALUE) {
+            result -= 0x100000000L;
+         }
+
+         if (result > Integer.MAX_VALUE) {
+            throw new NumberFormatException(result + " > " + Integer.MAX_VALUE);
+         }
+         else if (result < Integer.MIN_VALUE) {
+            throw new NumberFormatException(result + " < " + Integer.MIN_VALUE);
+         }
+         else {
+            return (int)result;
+         }
+      }
+   }
+
+   static long parseLong(String stringValue)
+   {
+      int base = 10;
+
+      if (stringValue.startsWith("0x")) {
+         base = 16;
+         stringValue = stringValue.substring(2);
+      }
+      else if (stringValue.length() > 1 && stringValue.startsWith("0")) {
+         base = 8;
+         stringValue = stringValue.substring(1);
+      }
+      while (stringValue.length() > 1 && stringValue.startsWith("0")) {
+         stringValue = stringValue.substring(1);
+      }
+
+      BigInteger bigInt = new BigInteger(stringValue, base);
+      long result = bigInt.longValue();
+      return result;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java
new file mode 100644 (file)
index 0000000..a268b96
--- /dev/null
@@ -0,0 +1,29 @@
+/* gnu.classpath.tools.gjdoc.expr.EvaluatorEnvironment
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+import java.util.Set;
+
+public interface EvaluatorEnvironment
+{
+   public Object getValue(String identifier, Set visitedFields)
+      throws IllegalExpressionException, UnknownIdentifierException;
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java
new file mode 100644 (file)
index 0000000..563cb1b
--- /dev/null
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.ExclusiveOrExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ExclusiveOrExpression
+   extends BinaryBitwiseExpression
+{
+   public ExclusiveOrExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected long compute(long leftValue, long rightValue)
+   {
+      return leftValue ^ rightValue;
+   }
+
+   protected int compute(int leftValue, int rightValue)
+   {
+      return leftValue ^ rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java
new file mode 100644 (file)
index 0000000..660806d
--- /dev/null
@@ -0,0 +1,27 @@
+/* gnu.classpath.tools.gjdoc.expr.Expression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+interface Expression
+{
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException;
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java
new file mode 100644 (file)
index 0000000..647ac77
--- /dev/null
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.GreaterThanExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class GreaterThanExpression
+   extends BinaryRelationExpression
+{
+   public GreaterThanExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected boolean compute(double leftValue, double rightValue)
+   {
+      return leftValue > rightValue;
+   }
+
+   protected boolean compute(float leftValue, float rightValue)
+   {
+      return leftValue > rightValue;
+   }
+
+   protected boolean compute(long leftValue, long rightValue)
+   {
+      return leftValue > rightValue;
+   }
+
+   protected boolean compute(int leftValue, int rightValue)
+   {
+      return leftValue > rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java
new file mode 100644 (file)
index 0000000..e183482
--- /dev/null
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.GreaterThanOrEqualExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class GreaterThanOrEqualExpression
+   extends BinaryRelationExpression
+{
+   public GreaterThanOrEqualExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected boolean compute(double leftValue, double rightValue)
+   {
+      return leftValue >= rightValue;
+   }
+
+   protected boolean compute(float leftValue, float rightValue)
+   {
+      return leftValue >= rightValue;
+   }
+
+   protected boolean compute(long leftValue, long rightValue)
+   {
+      return leftValue >= rightValue;
+   }
+
+   protected boolean compute(int leftValue, int rightValue)
+   {
+      return leftValue >= rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java
new file mode 100644 (file)
index 0000000..d6cf322
--- /dev/null
@@ -0,0 +1,72 @@
+/* gnu.classpath.tools.gjdoc.expr.IdentifierExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class IdentifierExpression
+   implements Expression
+{
+   private String identifier;
+
+   public IdentifierExpression(String identifier)
+   {
+      this.identifier = identifier;
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      Object value = context.getEvaluatorEnvironment().getValue(identifier, context.getVisitedFields());
+
+      if (value instanceof Byte) {
+         return new ConstantByte(((Byte)value).byteValue());
+      }
+      else if (value instanceof Short) {
+         return new ConstantShort(((Short)value).shortValue());
+      }
+      else if (value instanceof Integer) {
+         return new ConstantInteger(((Integer)value).intValue());
+      }
+      else if (value instanceof Long) {
+         return new ConstantLong(((Long)value).longValue());
+      }
+      else if (value instanceof Float) {
+         return new ConstantFloat(((Float)value).floatValue());
+      }
+      else if (value instanceof Double) {
+         return new ConstantDouble(((Double)value).doubleValue());
+      }
+      else if (value instanceof Boolean) {
+         return new ConstantBoolean(((Boolean)value).booleanValue());
+      }
+      else if (value instanceof Character) {
+         return new ConstantChar(((Character)value).charValue());
+      }
+      else if (value instanceof String) {
+         return new ConstantString((String)value);
+      }
+      else if (null != value) {
+         throw new IllegalExpressionException("Unsupported type " + value.getClass().getName() + " for identifier " + identifier);
+      }
+      else {
+         throw new IllegalExpressionException("Cannot resolve identifier " + identifier);
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java
new file mode 100644 (file)
index 0000000..bb84a55
--- /dev/null
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.expr.IllegalExpressionException
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+public class IllegalExpressionException
+   extends Exception
+{
+   public IllegalExpressionException(String message)
+   {
+      super(message);
+   }
+
+   public IllegalExpressionException(Throwable cause)
+   {
+      super(cause);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java
new file mode 100644 (file)
index 0000000..350027e
--- /dev/null
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.InclusiveOrExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class InclusiveOrExpression
+   extends BinaryBitwiseExpression
+{
+   public InclusiveOrExpression(Expression a, Expression b)
+   {
+      super(a, b);
+   }
+
+   protected long compute(long leftValue, long rightValue)
+   {
+      return leftValue | rightValue;
+   }
+
+   protected int compute(int leftValue, int rightValue)
+   {
+      return leftValue | rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java
new file mode 100644 (file)
index 0000000..d57b862
--- /dev/null
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.LessThanExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class LessThanExpression
+   extends BinaryRelationExpression
+{
+   public LessThanExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected boolean compute(double leftValue, double rightValue)
+   {
+      return leftValue < rightValue;
+   }
+
+   protected boolean compute(float leftValue, float rightValue)
+   {
+      return leftValue < rightValue;
+   }
+
+   protected boolean compute(long leftValue, long rightValue)
+   {
+      return leftValue < rightValue;
+   }
+
+   protected boolean compute(int leftValue, int rightValue)
+   {
+      return leftValue < rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java
new file mode 100644 (file)
index 0000000..eaf2499
--- /dev/null
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.LessThanOrEqualExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class LessThanOrEqualExpression
+   extends BinaryRelationExpression
+{
+   public LessThanOrEqualExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected boolean compute(double leftValue, double rightValue)
+   {
+      return leftValue <= rightValue;
+   }
+
+   protected boolean compute(float leftValue, float rightValue)
+   {
+      return leftValue <= rightValue;
+   }
+
+   protected boolean compute(long leftValue, long rightValue)
+   {
+      return leftValue <= rightValue;
+   }
+
+   protected boolean compute(int leftValue, int rightValue)
+   {
+      return leftValue <= rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java
new file mode 100644 (file)
index 0000000..44e5075
--- /dev/null
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.expr.LogicalAndExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class LogicalAndExpression
+   extends BinaryLogicalExpression
+{
+   LogicalAndExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected boolean compute(boolean leftValue, boolean rightValue)
+   {
+      return leftValue && rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java
new file mode 100644 (file)
index 0000000..c315166
--- /dev/null
@@ -0,0 +1,43 @@
+/* gnu.classpath.tools.gjdoc.expr.LogicalNotExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class LogicalNotExpression
+   extends UnaryExpression
+{
+   protected LogicalNotExpression(Expression expr)
+   {
+      super(expr);
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression value = expr.evaluate(context);
+
+      if (Type.BOOLEAN == value.getType()) {
+         return new ConstantBoolean(!((ConstantBoolean)value).booleanValue());
+      }
+      else {
+         throw new IllegalExpressionException("Operator ! cannot be applied to " + value.getType());
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java
new file mode 100644 (file)
index 0000000..77c33b4
--- /dev/null
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.expr.LogicalOrExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class LogicalOrExpression
+   extends BinaryLogicalExpression
+{
+   LogicalOrExpression(Expression a, Expression b)
+   {
+      super(a, b);
+   }
+
+   protected boolean compute(boolean leftValue, boolean rightValue)
+   {
+      return leftValue || rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java
new file mode 100644 (file)
index 0000000..c868117
--- /dev/null
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.ModuloExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ModuloExpression
+   extends BinaryComputationExpression
+{
+   public ModuloExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected double compute(double leftValue, double rightValue)
+   {
+      return leftValue % rightValue;
+   }
+
+   protected float compute(float leftValue, float rightValue)
+   {
+      return leftValue % rightValue;
+   }
+
+   protected long compute(long leftValue, long rightValue)
+   {
+      return leftValue % rightValue;
+   }
+
+   protected int compute(int leftValue, int rightValue)
+   {
+      return leftValue % rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java
new file mode 100644 (file)
index 0000000..520380c
--- /dev/null
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.MultiplicationExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class MultiplicationExpression
+   extends BinaryComputationExpression
+{
+   public MultiplicationExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected double compute(double leftValue, double rightValue)
+   {
+      return leftValue * rightValue;
+   }
+
+   protected float compute(float leftValue, float rightValue)
+   {
+      return leftValue * rightValue;
+   }
+
+   protected long compute(long leftValue, long rightValue)
+   {
+      return leftValue * rightValue;
+   }
+
+   protected int compute(int leftValue, int rightValue)
+   {
+      return leftValue * rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java
new file mode 100644 (file)
index 0000000..e14a469
--- /dev/null
@@ -0,0 +1,49 @@
+/* gnu.classpath.tools.gjdoc.expr.NegateExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class NegateExpression
+   extends UnaryExpression
+{
+   protected NegateExpression(Expression expr)
+   {
+      super(expr);
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression value = expr.evaluate(context);
+
+      if (Type.LONG == value.getType()) {
+         return new ConstantLong(-value.asNumber().longValue());
+      }
+      else if (Type.DOUBLE == value.getType()) {
+         return new ConstantDouble(-value.asNumber().doubleValue());
+      }
+      else if (Type.FLOAT == value.getType()) {
+         return new ConstantDouble(-value.asNumber().floatValue());
+      }
+      else {
+         return new ConstantInteger(-value.asNumber().intValue());
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java
new file mode 100644 (file)
index 0000000..c3d8ab2
--- /dev/null
@@ -0,0 +1,55 @@
+/* gnu.classpath.tools.gjdoc.expr.NotEqualExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class NotEqualExpression
+   extends BinaryEqualityExpression
+{
+   public NotEqualExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected boolean compute(double leftValue, double rightValue)
+   {
+      return leftValue != rightValue;
+   }
+
+   protected boolean compute(float leftValue, float rightValue)
+   {
+      return leftValue != rightValue;
+   }
+
+   protected boolean compute(long leftValue, long rightValue)
+   {
+      return leftValue != rightValue;
+   }
+
+   protected boolean compute(int leftValue, int rightValue)
+   {
+      return leftValue != rightValue;
+   }
+
+   protected boolean compute(boolean leftValue, boolean rightValue)
+   {
+      return leftValue != rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java
new file mode 100644 (file)
index 0000000..3351b8e
--- /dev/null
@@ -0,0 +1,43 @@
+/* gnu.classpath.tools.gjdoc.expr.NotExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class NotExpression
+   extends UnaryExpression
+{
+   protected NotExpression(Expression expr)
+   {
+      super(expr);
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression value = expr.evaluate(context);
+
+      if (Type.LONG == value.getType()) {
+         return new ConstantLong(~value.asNumber().longValue());
+      }
+      else {
+         return new ConstantInteger(~value.asNumber().intValue());
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java
new file mode 100644 (file)
index 0000000..af51cf3
--- /dev/null
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.ShiftLeftExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ShiftLeftExpression
+   extends BinaryShiftExpression
+{
+   public ShiftLeftExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected long compute(long leftValue, int rightValue)
+   {
+      return leftValue << rightValue;
+   }
+
+   protected int compute(int leftValue, int rightValue)
+   {
+      return leftValue << rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java
new file mode 100644 (file)
index 0000000..0aedf12
--- /dev/null
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.ShiftRightExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ShiftRightExpression
+   extends BinaryShiftExpression
+{
+   public ShiftRightExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected long compute(long leftValue, int rightValue)
+   {
+      return leftValue >> rightValue;
+   }
+
+   protected int compute(int leftValue, int rightValue)
+   {
+      return leftValue >> rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java
new file mode 100644 (file)
index 0000000..14e5edf
--- /dev/null
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.SubtractionExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class SubtractionExpression
+   extends BinaryComputationExpression
+{
+   public SubtractionExpression(Expression left, Expression right)
+   {
+      super(left, right);
+   }
+
+   protected double compute(double leftValue, double rightValue)
+   {
+      return leftValue - rightValue;
+   }
+
+   protected float compute(float leftValue, float rightValue)
+   {
+      return leftValue - rightValue;
+   }
+
+   protected long compute(long leftValue, long rightValue)
+   {
+      return leftValue - rightValue;
+   }
+
+   protected int compute(int leftValue, int rightValue)
+   {
+      return leftValue - rightValue;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java
new file mode 100644 (file)
index 0000000..47f9ea6
--- /dev/null
@@ -0,0 +1,43 @@
+/* gnu.classpath.tools.gjdoc.expr.Type
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class Type
+{
+   public static final Type LONG = new Type(Long.TYPE);
+   public static final Type INTEGER = new Type(Integer.TYPE);
+   public static final Type BOOLEAN = new Type(Boolean.TYPE);
+   public static final Type DOUBLE = new Type(Double.TYPE);
+   public static final Type FLOAT = new Type(Float.TYPE);
+   public static final Type CHAR = new Type(Character.TYPE);
+   public static final Type BYTE = new Type(Byte.TYPE);
+   public static final Type SHORT = new Type(Short.TYPE);
+   public static final Type VOID = new Type(Void.TYPE);
+   public static final Type STRING = new Type(String.class);
+   public static final Type NULL = new Type(null);
+
+   private Class clazz;
+
+   private Type(Class clazz)
+   {
+      this.clazz = clazz;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java
new file mode 100644 (file)
index 0000000..8c06ee2
--- /dev/null
@@ -0,0 +1,70 @@
+/* gnu.classpath.tools.gjdoc.expr.TypeCastExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class TypeCastExpression
+   extends UnaryExpression
+{
+   private Type type;
+
+   public TypeCastExpression(Type type, Expression expr)
+   {
+      super(expr);
+      this.type = type;
+   }
+
+   public ConstantExpression evaluate(Context context)
+      throws IllegalExpressionException
+   {
+      ConstantExpression value = expr.evaluate(context);
+
+      if (Type.BYTE == type) {
+         return new ConstantByte(value.asNumber().byteValue());
+      }
+      else if (Type.SHORT == type) {
+         return new ConstantShort(value.asNumber().shortValue());
+      }
+      else if (Type.INTEGER == type) {
+         return new ConstantInteger(value.asNumber().intValue());
+      }
+      else if (Type.LONG == type) {
+         return new ConstantLong(value.asNumber().longValue());
+      }
+      else if (Type.CHAR == type) {
+         return new ConstantChar((char)value.asNumber().intValue());
+      }
+      else if (Type.FLOAT == type) {
+         return new ConstantFloat((float)value.asNumber().intValue());
+      }
+      else if (Type.DOUBLE == type) {
+         return new ConstantDouble((float)value.asNumber().intValue());
+      }
+      else if (Type.BOOLEAN == type && Type.BOOLEAN == value.getType()) {
+         return value;
+      }
+      else if (Type.STRING == type && Type.STRING == value.getType()) {
+         return value;
+      }
+      else {
+         throw new IllegalExpressionException("Cannot cast " + value.getType() + " to " + type);
+      }
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java
new file mode 100644 (file)
index 0000000..e5421c0
--- /dev/null
@@ -0,0 +1,32 @@
+/* gnu.classpath.tools.gjdoc.expr.UnaryExpression
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class UnaryExpression
+   implements Expression
+{
+   protected Expression expr;
+
+   protected UnaryExpression(Expression expr)
+   {
+      this.expr = expr;
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java
new file mode 100644 (file)
index 0000000..f849707
--- /dev/null
@@ -0,0 +1,30 @@
+/* gnu.classpath.tools.gjdoc.expr.UnknownIdentifierException
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+public class UnknownIdentifierException
+   extends IllegalExpressionException
+{
+   public UnknownIdentifierException(String identifier)
+   {
+      super(identifier);
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g
new file mode 100644 (file)
index 0000000..4a21a86
--- /dev/null
@@ -0,0 +1,471 @@
+/*
+ * This grammar is derived from the Java 1.3 Recognizer
+ * (http://www.antlr.org/grammar/java/java.g) by Mitchell, Parr, Lilley,
+ * Stanchfield, Mohnen, Williams, Jacobs, Messick and Pybus, Version 
+ * 1.21.
+ *
+ * This grammar recognizes simple Java expressions. The following 
+ * language elements are NOT supported:
+ *
+ * - type casts to non-primitive types
+ * - method calls
+ * - constructor calls
+ * - array access
+ * - comma expressions
+ * - increment and decrement operators (both prefix/postfix)
+ * - expressions involving constant classes (Abc.class)
+ */
+
+header { 
+   package gnu.classpath.tools.gjdoc.expr; 
+}
+
+class JavaRecognizer extends Parser;
+options {
+       k = 2;                           // two token lookahead
+       exportVocab=Java;                // Call its vocabulary "Java"
+       codeGenMakeSwitchThreshold = 2;  // Some optimizations
+       codeGenBitsetTestThreshold = 3;
+       defaultErrorHandler = false;     // Don't generate parser error handlers
+       buildAST = true;
+}
+
+tokens {
+       BLOCK; MODIFIERS; OBJBLOCK; SLIST; CTOR_DEF; METHOD_DEF; VARIABLE_DEF;
+       INSTANCE_INIT; STATIC_INIT; TYPE; CLASS_DEF; INTERFACE_DEF;
+       PACKAGE_DEF; ARRAY_DECLARATOR; EXTENDS_CLAUSE; IMPLEMENTS_CLAUSE;
+       PARAMETERS; PARAMETER_DEF; LABELED_STAT; TYPECAST; INDEX_OP;
+       POST_INC; POST_DEC; METHOD_CALL; EXPR; ARRAY_INIT;
+       IMPORT; UNARY_MINUS; UNARY_PLUS; CASE_GROUP; ELIST; FOR_INIT; FOR_CONDITION;
+       FOR_ITERATOR; EMPTY_STAT; FINAL="final"; ABSTRACT="abstract";
+       STRICTFP="strictfp"; SUPER_CTOR_CALL; CTOR_CALL;
+}
+
+// A builtin type specification is a builtin type with possible brackets
+// afterwards (which would make it an array type).
+builtInTypeSpec[boolean addImagNode] returns [Type t = null]
+       :       t=builtInType (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)*
+               {
+                       if ( addImagNode ) {
+                               #builtInTypeSpec = #(#[TYPE,"TYPE"], #builtInTypeSpec);
+                       }
+               }
+       ;
+
+// A type name. which is either a (possibly qualified) class name or
+//   a primitive (builtin) type
+type returns [Type t]
+       :       t=builtInType
+       ;
+
+// The primitive types.
+builtInType returns [Type t = null]
+       :       "void" {t=Type.VOID;}
+       |       "boolean" {t=Type.BOOLEAN;}
+       |       "byte" {t=Type.BYTE;}
+       |       "char" {t=Type.CHAR;}
+       |       "short" {t=Type.SHORT;}
+       |       "int" {t=Type.INTEGER;}
+       |       "float"{t=Type.FLOAT;}
+       |       "long" {t=Type.LONG;}
+       |       "double" {t=Type.DOUBLE;}
+       |       "String" {t=Type.STRING;}
+       ;
+
+// A (possibly-qualified) java identifier.  We start with the first IDENT
+//   and expand its name by adding dots and following IDENTS
+identifier returns [String s = null;]
+       :       i:IDENT {s=i.getText();}  ( DOT^ i2:IDENT {s+="."+i2.getText();} )*
+       ;
+
+expression returns [Expression e = null]
+    :   e=conditionalExpression EOF!
+    ;
+
+// conditional test (level 12)
+conditionalExpression returns [Expression e = null] { Expression a,b,c; }
+       :       e=logicalOrExpression
+               ( QUESTION^ b=conditionalExpression COLON! c=conditionalExpression {e=new ConditionalExpression(e,b,c);} )?
+       ;
+
+
+// logical or (||)  (level 11)
+logicalOrExpression returns [Expression e = null] { Expression a,b; }
+       :       e=logicalAndExpression (LOR^ b=logicalAndExpression {e=new LogicalOrExpression(e,b);})*
+       ;
+
+
+// logical and (&&)  (level 10)
+logicalAndExpression returns [Expression e = null] { Expression a,b; }
+       :       e=inclusiveOrExpression (LAND^ b=inclusiveOrExpression {e=new LogicalAndExpression(e,b);})*
+       ;
+
+
+// bitwise or non-short-circuiting or (|)  (level 9)
+inclusiveOrExpression returns [Expression e = null] { Expression a,b; }
+       :       e=exclusiveOrExpression (BOR^ b=exclusiveOrExpression {e=new InclusiveOrExpression(e,b);})*
+       ;
+
+
+// exclusive or (^)  (level 8)
+exclusiveOrExpression returns [Expression e = null] { Expression a,b; }
+       :       e=andExpression (BXOR^ b=andExpression {e=new ExclusiveOrExpression(e,b);})*
+       ;
+
+
+// bitwise or non-short-circuiting and (&)  (level 7)
+andExpression returns [Expression e = null] { Expression a,b; }
+       :       e=equalityExpression (BAND^ b=equalityExpression {e=new AndExpression(e,b);})*
+       ;
+
+
+// equality/inequality (==/!=) (level 6)
+equalityExpression returns [Expression e = null] { Expression a,b; }
+       :       e=relationalExpression ((NOT_EQUAL^ a=relationalExpression {e=new NotEqualExpression(e,a);} | EQUAL^ a=relationalExpression {e=new EqualExpression(e,a);}))*
+       ;
+
+
+// boolean relational expressions (level 5)
+relationalExpression returns [Expression e = null] { Expression a,b; }
+       :       e=shiftExpression
+               (       (       (       LT^ a=shiftExpression {e=new LessThanExpression(e,a);}
+                               |       GT^ a=shiftExpression {e=new GreaterThanExpression(e,a);}
+                               |       LE^ a=shiftExpression {e=new LessThanOrEqualExpression(e,a);}
+                               |       GE^ a=shiftExpression {e=new GreaterThanOrEqualExpression(e,a);}
+                               )
+                               
+                       )*
+               )
+       ;
+
+
+// bit shift expressions (level 4)
+shiftExpression returns [Expression e = null] { Expression a,b; }
+       :       e=additiveExpression ((SL^ a=additiveExpression {e=new ShiftLeftExpression(e,a);} | SR^ a=additiveExpression {e=new ShiftRightExpression(e,a);} | BSR^ a=additiveExpression {e=new BitShiftRightExpression(e,a);}))*
+       ;
+
+
+// binary addition/subtraction (level 3)
+additiveExpression returns [Expression e = null] { Expression a,b; }
+   :   e=multiplicativeExpression ((PLUS^ a=multiplicativeExpression {e=new AdditionExpression(e,a);} | MINUS^ a=multiplicativeExpression {e=new SubtractionExpression(e,a);}))*
+       ;
+
+
+// multiplication/division/modulo (level 2)
+multiplicativeExpression returns [Expression e = null] { Expression a,b; }
+       :       e=unaryExpression ((STAR^ a=unaryExpression {e=new MultiplicationExpression(e,a);} | DIV^ a=unaryExpression {e=new DivisionExpression(e,a);} | MOD^ a=unaryExpression {e=new ModuloExpression(e,a);} ))*
+       ;
+
+
+unaryExpression returns [Expression e = null] { Expression a,b; }
+       :       MINUS^ {#MINUS.setType(UNARY_MINUS);} a=unaryExpression {e=new NegateExpression(a);}
+       |       PLUS^  {#PLUS.setType(UNARY_PLUS);} e=unaryExpression
+       |       e=unaryExpressionNotPlusMinus
+       ;
+
+unaryExpressionNotPlusMinus returns [Expression e = null] { Expression a; Type t; }
+       :       BNOT^ a=unaryExpression {e=new NotExpression(a);}
+       |       LNOT^ a=unaryExpression {e=new LogicalNotExpression(a);}
+
+               // use predicate to skip cases like: (int.class)
+    |   (LPAREN builtInTypeSpec[true] RPAREN) =>
+        lpb:LPAREN^ {#lpb.setType(TYPECAST);} t=builtInTypeSpec[true] RPAREN!
+        a=unaryExpression {e=new TypeCastExpression(t,a);}
+
+    |  e=primaryExpression
+       ;
+
+// the basic element of an expression
+primaryExpression returns [Expression e = null; String i = null;]
+       :       e=constant
+       |       i=identifier {e=new IdentifierExpression(i);}
+       |       "true" { e=new ConstantBoolean(true); }
+       |       "false" { e=new ConstantBoolean(false); }
+       |       "null" { e=new ConstantNull(); }
+    |  LPAREN! e=conditionalExpression RPAREN!
+       ;
+
+/** Match a, a.b.c refs
+ */
+identPrimary returns [Expression e = null]
+       :       IDENT
+               (
+            options {
+                               // .ident could match here or in postfixExpression.
+                               // We do want to match here.  Turn off warning.
+                               greedy=true;
+                       }
+               :       DOT^ IDENT
+               )*
+    ;
+
+constant returns [Expression e = null]
+       :       l1:NUM_INT {e=new ConstantInteger(l1.getText());}
+       |       l2:CHAR_LITERAL {e=new ConstantChar(l2.getText());}
+       |       l3:STRING_LITERAL {e=new ConstantString(l3.getText().substring(1, l3.getText().length()-1)); }
+       |       l4:NUM_FLOAT {e=new ConstantFloat(l4.getText());}
+       |       l5:NUM_LONG {e=new ConstantLong(l5.getText());}
+       |       l6:NUM_DOUBLE {e=new ConstantDouble(l6.getText());}
+       ;
+
+
+//----------------------------------------------------------------------------
+// The Java scanner
+//----------------------------------------------------------------------------
+class JavaLexer extends Lexer;
+
+options {
+       exportVocab=Java;      // call the vocabulary "Java"
+       testLiterals=false;    // don't automatically test for literals
+       k=4;                   // four characters of lookahead
+       charVocabulary='\u0003'..'\uFFFF';
+       // without inlining some bitset tests, couldn't do unicode;
+       // I need to make ANTLR generate smaller bitsets; see
+       // bottom of JavaLexer.java
+       codeGenBitsetTestThreshold=20;
+}
+
+
+
+// OPERATORS
+QUESTION               :       '?'             ;
+LPAREN                 :       '('             ;
+RPAREN                 :       ')'             ;
+LBRACK                 :       '['             ;
+RBRACK                 :       ']'             ;
+LCURLY                 :       '{'             ;
+RCURLY                 :       '}'             ;
+COLON                  :       ':'             ;
+COMMA                  :       ','             ;
+//DOT                  :       '.'             ;
+ASSIGN                 :       '='             ;
+EQUAL                  :       "=="    ;
+LNOT                   :       '!'             ;
+BNOT                   :       '~'             ;
+NOT_EQUAL              :       "!="    ;
+DIV                            :       '/'             ;
+DIV_ASSIGN             :       "/="    ;
+PLUS                   :       '+'             ;
+PLUS_ASSIGN            :       "+="    ;
+INC                            :       "++"    ;
+MINUS                  :       '-'             ;
+MINUS_ASSIGN   :       "-="    ;
+DEC                            :       "--"    ;
+STAR                   :       '*'             ;
+STAR_ASSIGN            :       "*="    ;
+MOD                            :       '%'             ;
+MOD_ASSIGN             :       "%="    ;
+SR                             :       ">>"    ;
+SR_ASSIGN              :       ">>="   ;
+BSR                            :       ">>>"   ;
+BSR_ASSIGN             :       ">>>="  ;
+GE                             :       ">="    ;
+GT                             :       ">"             ;
+SL                             :       "<<"    ;
+SL_ASSIGN              :       "<<="   ;
+LE                             :       "<="    ;
+LT                             :       '<'             ;
+BXOR                   :       '^'             ;
+BXOR_ASSIGN            :       "^="    ;
+BOR                            :       '|'             ;
+BOR_ASSIGN             :       "|="    ;
+LOR                            :       "||"    ;
+BAND                   :       '&'             ;
+BAND_ASSIGN            :       "&="    ;
+LAND                   :       "&&"    ;
+SEMI                   :       ';'             ;
+
+
+// Whitespace -- ignored
+WS     :       (       ' '
+               |       '\t'
+               |       '\f'
+                       // handle newlines
+               |       (       options {generateAmbigWarnings=false;}
+                       :       "\r\n"  // Evil DOS
+                       |       '\r'    // Macintosh
+                       |       '\n'    // Unix (the right way)
+                       )
+                       { newline(); }
+               )+
+               { _ttype = Token.SKIP; }
+       ;
+
+// Single-line comments
+SL_COMMIT
+       :       "//"
+               (~('\n'|'\r'))* ('\n'|'\r'('\n')?)
+               {$setType(Token.SKIP); newline();}
+       ;
+
+// multiple-line comments
+ML_COMMENT
+       :       "/*"
+               (       /*      '\r' '\n' can be matched in one alternative or by matching
+                               '\r' in one iteration and '\n' in another.  I am trying to
+                               handle any flavor of newline that comes in, but the language
+                               that allows both "\r\n" and "\r" and "\n" to all be valid
+                               newline is ambiguous.  Consequently, the resulting grammar
+                               must be ambiguous.  I'm shutting this warning off.
+                        */
+                       options {
+                               generateAmbigWarnings=false;
+                       }
+               :
+                       { LA(2)!='/' }? '*'
+               |       '\r' '\n'               {newline();}
+               |       '\r'                    {newline();}
+               |       '\n'                    {newline();}
+               |       ~('*'|'\n'|'\r')
+               )*
+               "*/"
+               {$setType(Token.SKIP);}
+       ;
+
+
+// character literals
+CHAR_LITERAL
+       :       '\'' ( ESC | ~('\''|'\n'|'\r'|'\\') ) '\''
+       ;
+
+// string literals
+STRING_LITERAL
+       :       '"' (ESC|~('"'|'\\'|'\n'|'\r'))* '"'
+       ;
+
+
+// escape sequence -- note that this is protected; it can only be called
+//   from another lexer rule -- it will not ever directly return a token to
+//   the parser
+// There are various ambiguities hushed in this rule.  The optional
+// '0'...'9' digit matches should be matched here rather than letting
+// them go back to STRING_LITERAL to be matched.  ANTLR does the
+// right thing by matching immediately; hence, it's ok to shut off
+// the FOLLOW ambig warnings.
+protected
+ESC
+       :       '\\'
+               (       'n'
+               |       'r'
+               |       't'
+               |       'b'
+               |       'f'
+               |       '"'
+               |       '\''
+               |       '\\'
+               |       ('u')+ HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
+               |       '0'..'3'
+                       (
+                               options {
+                                       warnWhenFollowAmbig = false;
+                               }
+                       :       '0'..'7'
+                               (
+                                       options {
+                                               warnWhenFollowAmbig = false;
+                                       }
+                               :       '0'..'7'
+                               )?
+                       )?
+               |       '4'..'7'
+                       (
+                               options {
+                                       warnWhenFollowAmbig = false;
+                               }
+                       :       '0'..'7'
+                       )?
+               )
+       ;
+
+
+// hexadecimal digit (again, note it's protected!)
+protected
+HEX_DIGIT
+       :       ('0'..'9'|'A'..'F'|'a'..'f')
+       ;
+
+
+// a dummy rule to force vocabulary to be all characters (except special
+//   ones that ANTLR uses internally (0 to 2)
+protected
+VOCAB
+       :       '\3'..'\377'
+       ;
+
+
+// an identifier.  Note that testLiterals is set to true!  This means
+// that after we match the rule, we look in the literals table to see
+// if it's a literal or really an identifer
+IDENT
+       options {testLiterals=true;}
+       :       ('a'..'z'|'A'..'Z'|'_'|'$') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'$')*
+       ;
+
+
+// a numeric literal
+NUM_INT
+       {boolean isDecimal=false; Token t=null;}
+    :   '.' {_ttype = DOT;}
+            (  ('0'..'9')+ (EXPONENT)? (f1:FLOAT_SUFFIX {t=f1;})?
+                {
+                               if (t != null && t.getText().toUpperCase().indexOf('F')>=0) {
+                       _ttype = NUM_FLOAT;
+                               }
+                               else {
+                       _ttype = NUM_DOUBLE; // assume double
+                               }
+                               }
+            )?
+
+       |       (       '0' {isDecimal = true;} // special case for just '0'
+                       (       ('x'|'X')
+                               (                                                                                       // hex
+                                       // the 'e'|'E' and float suffix stuff look
+                                       // like hex digits, hence the (...)+ doesn't
+                                       // know when to stop: ambig.  ANTLR resolves
+                                       // it correctly by matching immediately.  It
+                                       // is therefor ok to hush warning.
+                                       options {
+                                               warnWhenFollowAmbig=false;
+                                       }
+                               :       HEX_DIGIT
+                               )+
+
+                       |       //float or double with leading zero
+                               (('0'..'9')+ ('.'|EXPONENT|FLOAT_SUFFIX)) => ('0'..'9')+
+
+                       |       ('0'..'7')+                                                                     // octal
+                       )?
+               |       ('1'..'9') ('0'..'9')*  {isDecimal=true;}               // non-zero decimal
+               )
+               (       ('l'|'L') { _ttype = NUM_LONG; }
+
+               // only check to see if it's a float if looks like decimal so far
+               |       {isDecimal}?
+            (   '.' ('0'..'9')* (EXPONENT)? (f2:FLOAT_SUFFIX {t=f2;})?
+            |   EXPONENT (f3:FLOAT_SUFFIX {t=f3;})?
+            |   f4:FLOAT_SUFFIX {t=f4;}
+            )
+            {
+                       if (t != null && t.getText().toUpperCase() .indexOf('F') >= 0) {
+                _ttype = NUM_FLOAT;
+                       }
+            else {
+                       _ttype = NUM_DOUBLE; // assume double
+                       }
+                       }
+        )?
+       ;
+
+
+// a couple protected methods to assist in matching floating point numbers
+protected
+EXPONENT
+       :       ('e'|'E') ('+'|'-')? ('0'..'9')+
+       ;
+
+
+protected
+FLOAT_SUFFIX
+       :       'f'|'F'|'d'|'D'
+       ;
index c1660b725e33a2b4ef620946e325ab48a14eb5f1..eef31e7e01a2ebbdd585a60c0a6e3c0d3762a494 100644 (file)
@@ -50,6 +50,7 @@ import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.jar.Attributes;
 import java.util.jar.JarFile;
 import java.util.jar.JarOutputStream;
 import java.util.jar.Manifest;
@@ -222,9 +223,15 @@ public class Creator
     throws IOException
   {
     manifest = createManifest(parameters);
+    /* If no version is specified, provide the same manifest version default
+     * as Sun's jar tool */
+    Attributes attr = manifest.getMainAttributes();
+    if (attr.getValue(Attributes.Name.MANIFEST_VERSION) == null)
+      attr.putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
+    attr.putValue("Created-By", System.getProperty("java.version") +
+                 " (" + System.getProperty("java.vendor") + ")");
     outputStream = new JarOutputStream(os, manifest);
-    // FIXME: in Classpath this sets the method too late for the
-    // manifest file.
+    // FIXME: this sets the method too late for the manifest file.
     outputStream.setMethod(parameters.storageMode);
     writeCommandLineEntries(parameters);
   }
index 401c6fb6a4efd9476c7d7bd80fcd3a8ff2267269..06c5de9fb6d70d6b18ff96d3ff54f3ea1049bb9f 100644 (file)
@@ -57,7 +57,7 @@ import java.util.jar.Manifest;
 public class Indexer
     extends Updater
 {
-  private void indexJarFile(StringBuffer result, File fileName,
+  private void indexJarFile(StringBuilder result, File fileName,
                             boolean verbose)
     throws IOException
   {
@@ -129,7 +129,7 @@ public class Indexer
     super.writeCommandLineEntries(parameters, os);
 
     // Now compute our index file and write it.
-    StringBuffer contents = new StringBuffer();
+    StringBuilder contents = new StringBuilder();
     indexJarFile(contents, parameters.archiveFile, parameters.verbose);
     if (contents.length() != 0)
       {
index 29586befdf34f039860dfe6863b14a1f2810b5ee..f25d56fdc7d5c6748f19d0215bc9d6658daed2b9 100644 (file)
@@ -38,6 +38,7 @@
 
 package gnu.classpath.tools.jar;
 
+import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
@@ -70,7 +71,8 @@ public class Updater
     inputJar = new JarFile(parameters.archiveFile);
 
     // Write all the new entries to a temporary file.
-    File tmpFile = File.createTempFile("jarcopy", null);
+    File tmpFile = File.createTempFile("jarcopy", null,
+                                      parameters.archiveFile.getParentFile());
     OutputStream os = new BufferedOutputStream(new FileOutputStream(tmpFile));
     writeCommandLineEntries(parameters, os);
 
@@ -86,6 +88,11 @@ public class Updater
       }
 
     close();
-    tmpFile.renameTo(parameters.archiveFile);
+    if (!tmpFile.renameTo(parameters.archiveFile))
+      {
+         throw new IOException("Couldn't rename new JAR file " + tmpFile +
+                               "to " + parameters.archiveFile);
+      }
   }
+
 }
diff --git a/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java b/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java
new file mode 100644 (file)
index 0000000..a7da7c4
--- /dev/null
@@ -0,0 +1,1337 @@
+/* gnu.classpath.tools.java2xhtml.Java2xhtml
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+/** Java2xhtml.java  Version 0.9
+ *  Produces an XHTML file from Java source code with syntax highlighting,
+ *  includes additional options (line numbering, tab spacing, etc.)
+ * <P>
+ * NOTE: Common java naming structure is assumed
+ *       Capitalize the first letter that appears in a class or interface name
+ *       Use lowercase for the first letter in a method or variable name
+ *       Use only uppercase letters when naming constants 
+ *
+ * @version     0.9, March 2003
+ * @author      Shayne Steele
+ */
+package gnu.classpath.tools.java2xhtml;
+
+import java.io.*;
+import java.util.*;
+
+public class Java2xhtml
+{
+    //--- define CSS classes for individual output elements
+
+    private static final String sourceCodeStyle = "source";
+    private static final String lineNumberStyle = "line-number even";
+    private static final String modulusLineNumberStyle = "line-number odd";
+
+    private static final String keywordStyle = "keyword";
+    private static final String methodStyle = "method member";
+    private static final String variableStyle = "variable member";
+    private static final String singleLineCommentStyle = "line comment";
+    private static final String traditionalCommentStyle = "c comment";
+    private static final String javadocCommentStyle = "javadoc comment";
+    private static final String javadocTagStyle = "javadoc tag";
+    private static final String importNameStyle = "import header type";
+    private static final String packageNameStyle = "package header type";
+    private static final String primitiveTypeStyle = "primitive type";
+    private static final String nonPrimitiveTypeStyle = "non-primitive type";
+    private static final String constructorStyle = "constructor member";
+    private static final String constantStyle = "constant member";
+    private static final String doubleQuoteStyle = "double quote";
+    private static final String singleQuoteStyle = "single quote";
+    private static final String numericLiteralStyle = "numeric literal";
+    private static final String primitiveLiteralStyle = "primitive literal";
+
+    private static final String iconStyle = "icon";
+
+
+
+    // parse the command line arguments
+    // give a decent responce for bad input
+    // call the HTMLifier on good input
+    public static void main(String args[])
+    {
+        // parse the invokation arguments 
+        if (args.length < 1 || args.length > 3) // invoked program incorrectly
+        {
+            System.out.println("Java2xhtml Version 0.9 (C) 2005 Free Software Foundation");
+            System.out.println("    Produces an XHTML file of Java source" +
+                               " code with syntax highlighting,");
+            System.out.println("    includes additional options " +
+                               "(line numbering, tab spacing, etc.)");
+            System.out.println("    This tool is part of GNU Classpath.");
+            System.out.println("    GNU Classpath is free software; you can redistribute it and/or modify");
+            System.out.println("    it under the terms of the GNU General Public License as published by");
+            System.out.println("    the Free Software Foundation; either version 2, or (at your option)");
+            System.out.println("    any later version.");
+            System.out.println("    NOTE: Common java naming structure is " +
+                               "assumed");
+            System.out.println("");
+            System.out.println("USAGE:");
+            System.out.println("java  [java options]  Java2xhtml  " +
+                               "source.java  [options file]  " +
+                               "[output file]");
+            System.out.println("");
+            System.out.println("  - java is the name of the Java interpreter");
+            System.out.println("  - [java options] are the optional options " +
+                               "of the Java interpreter");
+            System.out.println("  - Java2xhtml is the name of this " +
+                               "application");
+            System.out.println("  - source is a file or the directory to the " +
+                               "Java source file(s)");
+            System.out.println("  - [options file] is the optional " +
+                               "path of a file with");
+            System.out.println("    a structure like this:");
+            System.out.println("        externalStyleSheetName=file_name" +
+                               " (default style.css)");
+            System.out.println("        tabSize=integer  (default value is 4)");
+            System.out.println("        extraIndentation=integer  " +
+                               "(default value is 0)");
+            System.out.println("        lineModulus=integer (default value 5)");
+            System.out.println("        isCodeSnippet=boolean" +
+                               " (default false)");
+            System.out.println("        isXHTML_1_1=boolean" +
+                               " (default true)");
+            System.out.println("        hasInternalStyleSheet=boolean" +
+                               " (default true)");
+            System.out.println("        hasExternalStyleSheet=boolean" +
+                               " (default true)");
+            System.out.println("        hasTitle=boolean" +
+                               " (default false)");
+            System.out.println("        hasLegend=boolean" +
+                               " (default false)");
+            System.out.println("        hasAllBoldSourceCode=boolean" +
+                               " (default false)");
+            System.out.println("        hasLineNumbers=boolean" +
+                               " (default false)");
+            System.out.println("        hasLineModulusDrawnLines=boolean" + 
+                               " (default false)");
+            System.out.println("        hasLineModulusCodeBlocks=boolean" +
+                               " (default false)");
+            System.out.println("        hasFooter=boolean" + 
+                               " (default false)");
+            System.out.println("        hasFooterIcons=boolean" + 
+                               " (default false)");
+            System.out.println("        hasFooterDate=boolean" + 
+                               " (default true)");
+            System.out.println("    NOTE: filename must end with '.prop'");
+            System.out.println("    Default [options file] is " +
+                               "options.prop");
+            System.out.println("  - [output file] is name of the XHTML file " +
+                               "that is produced");
+            System.out.println("    Default [output file] is source_java.html");
+            System.out.println("");
+            System.out.println("Output: source.java --> [output file]");
+            System.out.println("    Default Output is ");
+            System.out.println("    source.java --> source_java.html");
+            System.out.println("");
+            System.out.println("Examples of calling the program:");
+            System.out.println(" process one file (say Java2xhtml.java):");
+            System.out.println("    java  Java2xhtml  Java2xhtml.java");
+            System.out.println(" process one directory (say C:\\HOME):");
+            System.out.println("    java  Java2xhtml  C:\\HOME");
+            System.out.println(" process one directory (say C:\\HOME with a " +
+                               "given options file (options.prop)):");
+            System.out.println("    java  Java2xhtml  C:\\HOME options.prop");
+        }
+        else  
+        {
+            // invoked program correctly, now get command line arguments
+            // get the source file name
+            String sourceName;
+            sourceName = args[0];
+            // make sure that the source file exist and if so HTMLify it
+            File sourceFilePath = new File(sourceName);
+            if (sourceFilePath.exists())  
+            {
+                // good pathname so HTMLify it
+                // get the default html options file name
+                String propertiesFileName = "options.prop";
+                // create a unique default html file name, 
+                // bubba.java -> bubba_java.html
+                String htmlFileName = sourceName.replace('.', '_') + ".html";
+                if (args.length == 2 || args.length == 3)
+                {
+                    if (args[1].endsWith(".prop"))
+                    {
+                        // get the user supplied html options file name
+                        propertiesFileName = args[1];
+                    }
+                    else
+                    {
+                        // get the user supplied html outputfile name
+                        htmlFileName = args[1];
+                    }
+                }
+                if (args.length == 3) 
+                {
+                    if (args[2].endsWith(".prop"))
+                    {
+                        // get the user supplied html options file name
+                        propertiesFileName = args[2];
+                    }
+                    else
+                    {
+                        // get the user supplied html outputfile name
+                        htmlFileName = args[2];
+                    }
+                }
+                new Java2xhtml(propertiesFileName, sourceFilePath, 
+                               htmlFileName);
+            }
+            else // source file does not exist, print message and exit normally
+            {
+                System.out.println("The source parameter must be an existent" +
+                                   " file or directory");
+                System.out.println("Run Java2xHtml without parameters for " +
+                                   "help");
+            }                 
+        }
+    }
+    
+    // collect various sets of keywords
+    static Collection keywordCollection;
+    static Collection primitiveTypeCollection;
+    static Collection primitiveLiteralCollection;
+    static Collection javadocTagCollection;
+
+    // all these variables are changeable by a options file
+    int extraIndentation = 0;
+    int tabSize = 4;
+    int lineModulus = 5;
+    boolean hasLegend = false;
+    boolean hasLineNumbers = false;
+    boolean hasLineModulusDrawnLines = false;
+    boolean hasLineModulusCodeBlocks = false;
+    boolean hasFooter = false;
+    boolean hasFooterIcons = false;
+    boolean hasFooterDate = true;
+    boolean isCodeSnippet = false;
+    boolean isXHTML_1_1 = true;
+    boolean hasTitle = false;
+    boolean hasAllBoldSourceCode = false;
+    boolean hasInternalStyleSheet = true;
+    boolean hasExternalStyleSheet = true;
+    String externalStyleSheetName = "style.css";
+
+    static 
+    {
+        // collection type is Hashset for unique elements and fast retieval 
+        String keywordArray[] =
+            {
+                "abstract", "default",      "if",           "private",      
+                "do",       "implements",   "protected",    "throws",
+                "break",    "import",       "public",       "transient",
+                "else",     "instanceof",   "return",       "try",
+                "case",     "extends",      "throw",        "static",
+                "catch",    "final",        "interface",    "while",       
+                "volatile", "finally",      "super",        "synchronized",
+                "class",    "native",       "switch",       "package",
+                "const",    "for",          "new",          "goto",
+                "continue", "this",         "assert",       "strictfp"       
+            };
+        keywordCollection = new HashSet(Arrays.asList(keywordArray));
+        String primitiveTypeArray[] =
+            {
+                "boolean",  "char",     "byte",         "short",        "int",
+                "long",     "float",    "double",       "void"
+            };
+        primitiveTypeCollection = 
+            new HashSet(Arrays.asList(primitiveTypeArray));
+        String primitiveLiteralArray[]=
+            {
+                "false", "null", "true"
+            };
+        primitiveLiteralCollection = 
+            new HashSet(Arrays.asList(primitiveLiteralArray));
+        String javadocTagArray[]=
+            {
+                "see", "author", "version", "param", "return", "exception", 
+                "deprecated", "throws", "link", "since", "serial", 
+                "serialField","serialData", "beaninfo"
+            };
+        javadocTagCollection = new HashSet(Arrays.asList(javadocTagArray));
+    }
+    
+    public Java2xhtml()
+    {
+    }
+
+    // create the various keyword collections 
+    // parse the html options file
+    Java2xhtml(String propertiesFileName, File sourceFilePath, 
+               String htmlFileName)
+    {
+        // get html properties (use defaults if necessary)
+        File propertiesFilePath = new File (propertiesFileName);
+        if (propertiesFilePath.exists())
+        {
+            // html properies file exist try parsing it
+            try 
+            {
+                InputStream propertiesFile = 
+                    new FileInputStream(propertiesFileName);
+                Properties htmlProperties = new Properties();
+                htmlProperties.load(propertiesFile);
+                propertiesFile.close();
+                setProperties(htmlProperties);
+            }
+            catch (IOException exception) 
+            {
+                System.out.println(exception);  
+            }
+        }
+        if (sourceFilePath.isFile())
+        {
+            // process the file 
+            processFile(sourceFilePath, htmlFileName);
+        }
+        else if (sourceFilePath.isDirectory())
+        {
+            // process a directory
+            File [] sourceFilePathArray = sourceFilePath.listFiles();
+            for (int i = 0; i < sourceFilePathArray.length; i++)
+            {
+                if (((sourceFilePathArray[i]).getName()).endsWith(".java"))
+                {
+                    // process each file that ends in .java 
+                    // create a unique default html file name, 
+                    // bubba.java -> bubba_java.html
+                    htmlFileName = ((sourceFilePathArray[i]).getName()).replace(
+                        '.', '_') + ".html";
+                    processFile(sourceFilePathArray[i], htmlFileName);
+                }
+            }
+        }
+    }
+
+    public void setProperties(Properties htmlProperties)
+    {
+        hasLegend
+            = Boolean.valueOf(htmlProperties.getProperty("hasLegend", 
+                                                         "false")).booleanValue();
+        extraIndentation
+            = Integer.parseInt(htmlProperties.getProperty("extraIndentation", "0"));
+        tabSize
+            = Integer.parseInt(htmlProperties.getProperty("tabSize", "4"));
+        hasLineNumbers
+            = Boolean.valueOf(htmlProperties.getProperty("hasLineNumbers",
+                                                         "false")).booleanValue();
+        lineModulus
+            = Integer.parseInt(htmlProperties.getProperty("lineModulus", "5"));
+        hasLineModulusDrawnLines
+            = Boolean.valueOf(htmlProperties.getProperty("hasLineModulusDrawnLines",
+                                                         "false")).booleanValue();
+        hasLineModulusCodeBlocks
+            = Boolean.valueOf(htmlProperties.getProperty("hasLineModulusCodeBlocks",
+                                                         "false")).booleanValue();
+        hasFooter
+            = Boolean.valueOf(htmlProperties.getProperty("hasFooter",
+                                                         "false")).booleanValue();
+        hasFooterIcons
+            = Boolean.valueOf(htmlProperties.getProperty("hasFooterIcons",
+                                                         "false")).booleanValue();
+        hasFooterDate
+            = Boolean.valueOf(htmlProperties.getProperty("hasFooterDate",
+                                                         "true")).booleanValue();
+        isXHTML_1_1
+            = Boolean.valueOf(htmlProperties.getProperty("isXHTML_1_1",
+                                                         "true")).booleanValue();
+        isCodeSnippet
+            = Boolean.valueOf(htmlProperties.getProperty("isCodeSnippet",
+                                                         "false")).booleanValue();
+        hasTitle
+            = Boolean.valueOf(htmlProperties.getProperty("hasTitle",
+                                                         "false")).booleanValue();
+        hasAllBoldSourceCode
+            = Boolean.valueOf(htmlProperties.getProperty("hasAllBoldSourceCode",
+                                                         "false")).booleanValue();
+        hasInternalStyleSheet
+            = Boolean.valueOf(htmlProperties.getProperty("hasInternalStyleSheet",
+                                                         "true")).booleanValue();
+        hasExternalStyleSheet
+            = Boolean.valueOf(htmlProperties.getProperty("hasExternalStyleSheet",
+                                                         "true")).booleanValue();
+        externalStyleSheetName
+            = htmlProperties.getProperty("externalStyleSheetName", "style.css");
+    }
+    
+    
+    // read the file and put it into a stringbuffer
+    void processFile(File sourceFilePath, String htmlFileName)
+    {
+        // open the file, copy it to a Stringbuffer , process into an 
+        // HTMLified String and convert result into an HTML file
+        try
+        {
+            BufferedReader sourceReader = 
+                new BufferedReader(new FileReader(sourceFilePath));
+            StringBuffer bufferIn = new StringBuffer();
+            int readInInt = 0;
+            char presentChar = 0;
+            // copy file into a Stringbuffer
+            while (readInInt != -1) // -1 value means end of stream/file 
+            {
+                // put the file into a Stringbuffer
+                readInInt= sourceReader.read();
+                presentChar = ((readInInt >= 0) ? (char) readInInt : 0);
+                bufferIn.append(presentChar);
+            }
+            sourceReader.close();
+            BufferedWriter tempBufferedWriter = 
+                new BufferedWriter(new FileWriter(htmlFileName));
+            tempBufferedWriter.write(makeHTML(bufferIn, 
+                                              sourceFilePath.getName()));
+            tempBufferedWriter.close();     
+            System.out.println(sourceFilePath.getName() + " --> " + 
+                               htmlFileName);
+        }
+        catch (IOException exception) 
+        {
+            System.out.println(exception);  
+        }
+    }
+    
+    // constant 'States' java source code can be in 
+    public final static class State
+    {
+        public final static State TEXT = new State();
+        public final static State IMPORT_NAME = new State();
+        public final static State PARAM_VARIABLE = new State();
+        public final static State JAVADOC = new State();
+        public final static State PACKAGE_NAME = new State();
+        public final static State DOUBLE_QUOTE = new State();
+        public final static State SINGLE_QUOTE = new State();
+        public final static State TRADITIONAL_COMMENT = new State();
+        public final static State LINE_COMMENT = new State();
+        
+        // empty constructor 
+        private State()
+        {
+            // empty body
+        }
+    }
+    
+    // Convert java source code StringBufffer into colorized (and tab spaced) 
+    // HTML String .
+    // Assumes that Java naming convention is used
+    // Uses a very basic state machine design.   
+    public String makeHTML(StringBuffer bufferIn, String sourceFileName)
+    {
+        int codeLineNumber = 0;
+        boolean isNewLine = true;
+        boolean isNewBlock = true;
+        int identifierLength = 0;
+        int qualifiedIdentifierLength = 0;
+        int presentIndex = -1;
+        int spaceLength = 0;
+        int saveIndex = 0;
+        char presentChar = 0;
+        State presentState = State.TEXT;
+        StringBuffer bufferOut = new StringBuffer(8192);
+        if (!isCodeSnippet)
+        {
+            bufferOut.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); 
+            if (isXHTML_1_1)
+            {
+                bufferOut.append("<!DOCTYPE html PUBLIC " +
+                                 "\"-//W3C//DTD XHTML 1.1//EN\"\r\n");
+                bufferOut.append("    \"http://www.w3.org/TR/xhtml11/DTD/" +
+                                 "xhtml11.dtd\">\r\n");
+                bufferOut.append("<html xmlns=\"http://www.w3.org/1999/xhtml\""+
+                                 " xml:lang=\"en\">\r\n");
+            }
+            else
+            {
+                bufferOut.append("<!DOCTYPE html PUBLIC " +
+                                 "\"-//W3C//DTD XHTML 1.0 Strict//EN\"\r\n");
+                bufferOut.append("    \"http://www.w3.org/TR/xhtml1/DTD/" +
+                                 "xhtml1-strict.dtd\">\r\n");
+                bufferOut.append("<html xmlns=\"http://www.w3.org/1999/xhtml\""+
+                                 " xml:lang=\"en\" lang=\"en\">\r\n");
+            }
+            bufferOut.append(" <head>\r\n");
+            bufferOut.append("  <title>\r\n");
+            bufferOut.append("   " + sourceFileName + "\r\n");
+            bufferOut.append("  </title>\r\n");
+            bufferOut.append("  <meta name=\"generator\"\r\n");
+            bufferOut.append("        content=\"Java2xhtml 0.9\" />\r\n");
+            if (hasInternalStyleSheet)
+            {
+                bufferOut.append("  <style type=\"text/css\">\r\n");
+                bufferOut.append("   <!-- /* <![CDATA[ */\r\n");
+                bufferOut.append("    ." + sourceCodeStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #000000;\r\n");
+                bufferOut.append("       background-color: #FFFFFF;\r\n");
+                if (hasAllBoldSourceCode)
+                {
+                    bufferOut.append("       font-weight: bold;\r\n");
+                }
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + lineNumberStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       font-weight: normal;\r\n");
+                bufferOut.append("       color: #000000;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                if (lineModulus > 0)
+                {
+                    bufferOut.append("    ." + modulusLineNumberStyle + "\r\n");
+                    bufferOut.append("     {\r\n");
+                    bufferOut.append("       font-weight: bold;\r\n");
+                    bufferOut.append("       color: #000000;\r\n");
+                    bufferOut.append("       background-color: "); 
+                    bufferOut.append("transparent;\r\n");
+                    bufferOut.append("     }\r\n");
+                    if (hasLineModulusDrawnLines)
+                    {
+                        bufferOut.append("    .modulusLineStyle\r\n");
+                        bufferOut.append("     {\r\n");
+                        bufferOut.append("       text-decoration: ");
+                        bufferOut.append("line-through;\r\n");
+                        bufferOut.append("       color: #000000;\r\n");
+                        bufferOut.append("       background-color: ");
+                        bufferOut.append("transparent;\r\n");
+                        bufferOut.append("     }\r\n");
+                    }
+                    if (hasLineModulusCodeBlocks)
+                    {
+                        bufferOut.append("    .modulusBlockPREStyle\r\n");
+                        bufferOut.append("     {\r\n");
+                        bufferOut.append("       margin: 0em\r\n");
+                        bufferOut.append("     }\r\n");
+                        bufferOut.append("    .modulusBlockStyle\r\n");
+                        bufferOut.append("     {\r\n");
+                        bufferOut.append("       color: #000000;\r\n");
+                        bufferOut.append("       background-color: ");
+                        bufferOut.append("#CCCCCC;\r\n"); 
+                        bufferOut.append("     }\r\n");
+                    }
+                }
+                bufferOut.append("    ." + keywordStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #9900FF;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + methodStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #0000FF;\r\n"); 
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + variableStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #CC9933;\r\n"); 
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + singleLineCommentStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #CC3333;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + traditionalCommentStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #FF0000;\r\n"); 
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + javadocCommentStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #CC0033;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + javadocTagStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #0099CC;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + importNameStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #33CCCC;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + packageNameStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #339999;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + primitiveTypeStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #009900;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + nonPrimitiveTypeStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #009966;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + constructorStyle + "\r\n"); 
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #3300CC;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + constantStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #666666;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + doubleQuoteStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #996633;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("       font-style: italic;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + singleQuoteStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #663333;\r\n");
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("       font-style: oblique;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + numericLiteralStyle + "\r\n"); 
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #333300;\r\n"); 
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                bufferOut.append("    ." + primitiveLiteralStyle + "\r\n");
+                bufferOut.append("     {\r\n");
+                bufferOut.append("       color: #006600;\r\n"); 
+                bufferOut.append("       background-color: transparent;\r\n");
+                bufferOut.append("     }\r\n");
+                if (hasFooterIcons)
+                {
+                    bufferOut.append("    ." + iconStyle + "\r\n");
+                    bufferOut.append("     {\r\n");
+                    bufferOut.append("       border-style: none;\r\n"); 
+                    bufferOut.append("     }\r\n");
+                }
+                if (hasTitle)
+                {
+                    bufferOut.append("    #title\r\n");
+                    bufferOut.append("     {\r\n"); 
+                    bufferOut.append("       text-align: center;\r\n");
+                    bufferOut.append("       font-size: xx-large;\r\n");
+                    bufferOut.append("     }\r\n");
+                }
+                if (hasLegend)
+                {
+                    bufferOut.append("    #legendTitle\r\n");
+                    bufferOut.append("     {\r\n"); 
+                    bufferOut.append("       text-align: center;\r\n");
+                    bufferOut.append("       font-size: x-large;\r\n");
+                    bufferOut.append("     }\r\n");
+                    bufferOut.append("    #legend\r\n");
+                    bufferOut.append("     {\r\n"); 
+                    bufferOut.append("       font-family: monospace;\r\n");
+                    bufferOut.append("       font-size: large;\r\n");
+                    bufferOut.append("     }\r\n");
+                }                
+                if (hasFooter)
+                {
+                    bufferOut.append("    #footer\r\n");
+                    bufferOut.append("     {\r\n"); 
+                    bufferOut.append("       font-size: xx-small;\r\n");
+                    bufferOut.append("     }\r\n");
+                }
+                bufferOut.append("   /* ]]> */ -->\r\n");
+                bufferOut.append("  </style>\r\n");
+            }
+
+            if (hasExternalStyleSheet)
+            {
+                bufferOut.append("  <link rel=\"stylesheet\" " +
+                                 "type=\"text/css\" href=\"" + 
+                                 externalStyleSheetName + "\" />\r\n");
+            }
+            bufferOut.append(" </head>\r\n");
+            bufferOut.append(" <body>\r\n");
+        }
+        if (hasTitle)
+        {
+            bufferOut.append("  <div id=\"title\">\r\n");
+            bufferOut.append("   " + sourceFileName + "\r\n");
+            bufferOut.append("  </div>\r\n");
+            bufferOut.append("  <hr />\r\n");
+        }
+        if (hasLegend)
+        {
+            bufferOut.append("  <div id=\"legendTitle\">\r\n");
+            bufferOut.append("   Legend\r\n");
+            bufferOut.append("  </div>\r\n");
+            bufferOut.append("  <div class=\"" + sourceCodeStyle + "\">\r\n");
+            bufferOut.append("   <div id=\"legend\">\r\n");
+            bufferOut.append("    <span class=\"" + keywordStyle + "\">");
+            bufferOut.append("keyword</span>\r\n");
+            bufferOut.append("    <span class=\"" + methodStyle + "\">");
+            bufferOut.append("method</span>\r\n");
+            bufferOut.append("    <span class=\"" + variableStyle + "\">variable" +
+                             "</span>\r\n");
+            bufferOut.append("    <span class=\"" + singleLineCommentStyle + "\">" +
+                             "singleLineComment</span>\r\n");
+            bufferOut.append("    <span class=\"" + traditionalCommentStyle + "\">" +
+                             "traditionalComment</span>\r\n");
+            bufferOut.append("    <span class=\"" + javadocCommentStyle + "\">" +
+                             "javadocComment</span>\r\n");
+            bufferOut.append("    <span class=\"" + javadocTagStyle + "\">javadocTag" +
+                             "</span>\r\n");
+            bufferOut.append("    <span class=\"" + importNameStyle + "\">" +
+                             "importName</span>\r\n");
+            bufferOut.append("    <span class=\"" + packageNameStyle + "\">" +
+                             "packageName</span>\r\n");
+            bufferOut.append("    <span class=\"" + primitiveTypeStyle + "\">" +
+                             "primitiveType</span>\r\n");
+            bufferOut.append("    <span class=\"" + nonPrimitiveTypeStyle + "\">" +
+                             "nonPrimitiveType</span>\r\n");
+            bufferOut.append("    <span class=\"" + constructorStyle + "\">" +
+                             "constructor</span>\r\n");
+            bufferOut.append("    <span class=\"" + constantStyle + "\">" +
+                             "constant</span>\r\n");
+            bufferOut.append("    <span class=\"" + doubleQuoteStyle + "\">" +
+                             "doubleQuote</span>\r\n");
+            bufferOut.append("    <span class=\"" + singleQuoteStyle + "\">" +
+                             "singleQuote</span>\r\n");
+            bufferOut.append("    <span class=\"" + numericLiteralStyle + "\">" +
+                             "numericLiteral</span>\r\n");
+            bufferOut.append("    <span class=\"" + primitiveLiteralStyle + "\">" +
+                             "primitiveLiteral</span>\r\n");
+            bufferOut.append("   </div>\r\n");
+            bufferOut.append("  </div>\r\n");
+            bufferOut.append("  <hr />\r\n");
+        }
+        bufferOut.append("  <div class=\"" + sourceCodeStyle + "\">\r\n");
+        if (hasLineModulusCodeBlocks)
+        {
+            bufferOut.append("<pre class=\"modulusBlockPREStyle\">\r\n");
+        }
+        else
+        {
+            bufferOut.append("<pre>\r\n");
+        }
+        // process the input Java code Stringbuffer
+        // subtract 2 from the bufferIn.length() to get EOF marker
+        while (presentIndex++ < (bufferIn.length() - 2))
+        {
+            for (int i = 0; i < extraIndentation; i++)
+            {
+                bufferOut.append(" ");
+            }
+            if ((hasLineNumbers || hasLineModulusCodeBlocks) && isNewLine)
+            {
+                // add line numbers if desired
+                // line numbers are 1 - 9999 then rotate line numbers
+                codeLineNumber = (++codeLineNumber)%10000;
+                if ((lineModulus > 0) && hasLineModulusCodeBlocks && 
+                    (codeLineNumber%lineModulus == 1))
+                {
+                    if (isNewBlock)
+                    {
+                        if ((State.TRADITIONAL_COMMENT == presentState) ||
+                            (State.JAVADOC == presentState))
+                        {
+                                bufferOut.insert((bufferOut.length() - 
+                                                  ("\r\n").length()), 
+                                                 "</span>");
+                        }
+                        bufferOut.append("</pre>\r\n");
+                        bufferOut.append("   <div class=");
+                        bufferOut.append("\"modulusBlockStyle\">");
+                        bufferOut.append("\r\n<pre class=\"");
+                        bufferOut.append("modulusBlockPREStyle\">\r\n");
+                        if (State.TRADITIONAL_COMMENT == presentState)
+                        {
+                            bufferOut.append("<span class=" +
+                                             "\"" + traditionalCommentStyle + "\">");
+                        }
+                        if (State.JAVADOC == presentState)
+                        {
+                            bufferOut.append("<span class=" +
+                                             "\"" + javadocCommentStyle + "\">");
+                        }
+                    }
+                    isNewBlock = !isNewBlock;
+                }
+                // make straight columns of line numbers
+                if (codeLineNumber < 1000)
+                {
+                    bufferOut.append(" ");
+                }
+                if (codeLineNumber < 100)
+                {
+                    bufferOut.append(" ");
+                }
+                if (codeLineNumber < 10)
+                {
+                    bufferOut.append(" ");
+                }
+                bufferOut.append("<a name=\"line.");
+                bufferOut.append(codeLineNumber);
+                bufferOut.append("\">");
+
+                if (hasLineNumbers)
+                {
+                    if ((lineModulus > 0) && (codeLineNumber%lineModulus == 0))
+                    {
+                        bufferOut.append("<span class=" +
+                                         "\"" + modulusLineNumberStyle + "\">");
+                        bufferOut.append(codeLineNumber);
+                        bufferOut.append(": </span>");
+                        if (hasLineModulusDrawnLines)
+                        {
+                            // compute spaceLength so a line can be drawn
+                            while ((presentIndex != (bufferIn.length() - 1)) &&
+                                   ((Character.isSpaceChar(
+                                     bufferIn.charAt(presentIndex))) ||
+                                    (bufferIn.charAt(presentIndex) == '\t')))
+                            {
+                                // for each tab, insert tabSize spaces 
+                                if (bufferIn.charAt(presentIndex) == '\t')
+                                {
+                                    for (int i = 0; i < tabSize; i++)
+                                    {
+                                        bufferIn.insert(presentIndex + 1, " ");
+                                    }
+                                    presentIndex++;
+                                    continue;
+                                }
+                                if (' ' == bufferIn.charAt(presentIndex))
+                                {
+                                    // read a space so place a space
+                                    bufferOut.append(" ");
+                                    spaceLength += (" ").length();
+                                }
+                                else
+                                {
+                                    // a white space character was read
+                                    bufferOut.append(bufferIn.charAt(
+                                        presentIndex));
+                                    ++spaceLength;
+                                }
+                                presentIndex++;
+                            }
+                            // check if line is empty 
+                            // (no printable characters on line)
+                            if ((presentIndex == (bufferIn.length() - 1)) ||
+                                (Character.isWhitespace(bufferIn.charAt(
+                                     presentIndex))))
+                            {
+                                spaceLength = 0;
+                            }
+                            // draw the line
+                            if (spaceLength > 1)
+                            {
+                                bufferOut.insert((bufferOut.length() - 
+                                                  spaceLength), "<span class=" +
+                                                 "\"modulusLineStyle\">");
+                                bufferOut.insert((bufferOut.length() - 
+                                                  (" ").length()), "</span>");
+                            }
+                            spaceLength = 0;
+                        }
+                    }
+                    else 
+                    {
+                        // line numbers are in lineNumberColor 
+                        bufferOut.append("<span class=\"" + lineNumberStyle + "\">");
+                        bufferOut.append(codeLineNumber);
+                        bufferOut.append(":</span> ");
+                    }
+                }
+                isNewLine = false;
+
+                bufferOut.append("</a>");
+            }
+            // a state machine
+            presentChar = bufferIn.charAt(presentIndex);
+            if ((Character.isJavaIdentifierPart(presentChar)) ||
+                ((State.IMPORT_NAME == presentState) && (presentChar == '*')))
+            {
+                // this is an identifier
+                bufferOut.append(presentChar);
+                identifierLength++;
+                continue; // keep adding characters until identifier is done
+            } 
+            if (identifierLength > 0)
+            {
+                // identifier
+                qualifiedIdentifierLength = 
+                    qualifiedIdentifierLength + identifierLength;
+                if (bufferIn.charAt(presentIndex) == '.')
+                {
+                    // qualified identifier 
+                    bufferOut.append(presentChar);
+                    qualifiedIdentifierLength++;
+                    identifierLength = 0;
+                    continue;  // keep adding characters to qualified identifier
+                }
+                String identifier = 
+                    bufferOut.substring(bufferOut.length() - 
+                                        identifierLength);
+                if ((State.PARAM_VARIABLE == presentState))
+                {
+                    // any identifier after a param in a javadoc is assumed to
+                    // be a variable 
+                    bufferOut.insert(bufferOut.length() -
+                                     qualifiedIdentifierLength,
+                                     "<span class=\"" + variableStyle + "\">");
+                    bufferOut.append("</span>");
+                    presentState = State.JAVADOC;
+                }
+                else if (State.JAVADOC == presentState)
+                {
+                    // in javadoc state 
+                    if ((javadocTagCollection.contains(identifier)) &&
+                        (bufferIn.charAt(presentIndex - 
+                                         (identifierLength + 1)) == '@'))
+                    {
+                        // identifier is a javadocTag
+                        bufferOut.insert(bufferOut.length() - identifierLength,
+                                         "<span class=\"" + javadocTagStyle + "\">");
+                        bufferOut.append("</span>");
+                        if (("param").equals(identifier))
+                        {
+                            // any identifier after a param is assumed to
+                            // be a variable, get into a state to do this 
+                            presentState = State.PARAM_VARIABLE;
+                        }
+                    }
+                }
+                else if (State.IMPORT_NAME == presentState)
+                {
+                    // import identifier
+                    bufferOut.insert(bufferOut.length() - 
+                                     qualifiedIdentifierLength,
+                                     "<span class=\"" + importNameStyle + "\">");
+                    bufferOut.append("</span>");
+                    presentState = State.TEXT;
+                }
+                else if (State.PACKAGE_NAME == presentState)
+                {
+                    // package identifier
+                    bufferOut.insert(bufferOut.length() - 
+                                     qualifiedIdentifierLength,
+                                     "<span class=\"" + packageNameStyle + "\">");
+                    bufferOut.append("</span>");
+                    presentState = State.TEXT;
+                }
+                else if (State.TEXT == presentState)
+                {
+                    if (keywordCollection.contains(identifier))
+                    {
+                        // identifier is a keyword 
+                        bufferOut.insert(bufferOut.length() - 
+                                         qualifiedIdentifierLength,
+                                         "<span class=\"" + keywordStyle + "\">");
+                        bufferOut.append("</span>");
+                        if (("import").equals(identifier))
+                        {
+                            // anything after an import in text mode must be 
+                            // an import name, so enter state to process this
+                            presentState = State.IMPORT_NAME;
+                        }
+                        else if (("package").equals(identifier))
+                        {
+                            // anything after an package in text mode must be 
+                            // an package name, so enter state to process this
+                            presentState = State.PACKAGE_NAME;
+                        }
+                    }
+                    else if (primitiveTypeCollection.contains(identifier))
+                    {
+                        // identifier is a primitive type  
+                        bufferOut.insert(bufferOut.length() -
+                                         qualifiedIdentifierLength,
+                                         "<span class=\"" + primitiveTypeStyle + "\">");
+                        bufferOut.append("</span>");
+                    }
+                    else if ((identifier.equals(identifier.toUpperCase())) &&
+                             (!(Character.isDigit(identifier.charAt(0)))))
+                    {
+                        // identifier is a constant
+                        bufferOut.insert(bufferOut.length() -
+                                         qualifiedIdentifierLength, 
+                                         "<span class=\"" + constantStyle + "\">");
+                        bufferOut.append("</span>");
+                    }
+                    else if (Character.isUpperCase(identifier.charAt(0)))
+                    {
+                        // identifier is a constructor or non-primitive type
+                        // eat white space 
+                        saveIndex = presentIndex;
+                        while (Character.isWhitespace(
+                                   bufferIn.charAt(saveIndex++)))
+                        {
+                            //empty body
+                        }
+                        if (bufferIn.charAt(--saveIndex) == '(')
+                        {   // identifier is a constructor
+                            bufferOut.insert(bufferOut.length() -
+                                             qualifiedIdentifierLength,
+                                             "<span class=" +
+                                             "\"" + constructorStyle + "\">");
+                            bufferOut.append("</span>");
+                        }
+                        else
+                        {
+                            // identifier is a non-primitive type 
+                            bufferOut.insert(bufferOut.length() -
+                                             qualifiedIdentifierLength,
+                                             "<span class=" + 
+                                             "\"" + nonPrimitiveTypeStyle + "\">");
+                            bufferOut.append("</span>");
+                        }
+                    }
+                    else if (!(Character.isDigit(identifier.charAt(0)) ||
+                               primitiveLiteralCollection.contains(identifier)))
+                    {
+                        // identifier is a method or a variable
+                        // eat white space
+                        saveIndex = presentIndex;
+                        while (Character.isWhitespace(
+                                   bufferIn.charAt(saveIndex++)))
+                        {
+                            // empty body
+                        }
+                        --saveIndex;
+                        // identifier is a method
+                        if (bufferIn.charAt(saveIndex) == '(')
+                        {
+                            bufferOut.insert(bufferOut.length() - 
+                                             qualifiedIdentifierLength, 
+                                             "<span class=\"" + methodStyle + "\">");
+                            bufferOut.append("</span>");                 
+                        }
+                        else if (bufferIn.charAt(saveIndex) == ',')
+                        {
+                            // comma seperated variables
+                            bufferOut.insert(bufferOut.length() - 
+                                             qualifiedIdentifierLength, 
+                                             "<span class=\"" + variableStyle + "\">");
+                            bufferOut.append("</span>"); 
+                        }
+                        else
+                        {
+                            // a variable
+                            // take care of cases such as array[index].variable
+                            if (bufferIn.charAt(presentIndex - 
+                                                (qualifiedIdentifierLength 
+                                                 + 1)) == '.')
+                            {
+                                qualifiedIdentifierLength++;
+                            }
+                            bufferOut.insert(bufferOut.length() - 
+                                             qualifiedIdentifierLength, 
+                                             "<span class=\"" + variableStyle + "\">");
+                            bufferOut.append("</span>");                        
+                        }
+                    }
+                    else
+                    {
+                        if (primitiveLiteralCollection.contains(identifier))
+                        {
+                            // primitiveLiteral (boolean or null)
+                            bufferOut.insert(bufferOut.length() -
+                                             identifierLength, "<span class=" +
+                                             "\"" + primitiveLiteralStyle + "\">");
+                            bufferOut.append("</span>");
+                        }
+                        // a numeric literal
+                        else 
+                        {
+                            if (((presentIndex - 
+                                  (qualifiedIdentifierLength + 1)) > 0) && 
+                                (bufferIn.charAt(presentIndex - 
+                                     (qualifiedIdentifierLength + 1)) == '.'))
+                            {
+                                qualifiedIdentifierLength++;
+                            }
+                            bufferOut.insert(bufferOut.length() - 
+                                             qualifiedIdentifierLength, 
+                                             "<span class=" +
+                                             "\"" + numericLiteralStyle + "\">");
+                            bufferOut.append("</span>");
+                        }
+                    }
+                }
+                qualifiedIdentifierLength = 0;
+                identifierLength = 0;
+            }
+            // process characters NOT in identifiers 
+            switch (presentChar)
+            {
+                case '&': //ampersand
+                    bufferOut.append("&amp;");  // HTMLify character
+                    break;
+                case '<': // less than sign
+                    bufferOut.append("&lt;");   // HTMLify character
+                    break;
+                case '>': // greater than sign
+                    bufferOut.append("&gt;");   // HTMLify character
+                    break;
+                case '\"': // double quote
+                    bufferOut.append("&quot;"); // HTMLify character
+                    if (State.TEXT == presentState)
+                    {
+                        presentState = State.DOUBLE_QUOTE;
+                        bufferOut.insert(bufferOut.length()-("&quot;").length(),
+                                         "<span class=\"" + doubleQuoteStyle + "\">");
+                    }   
+                    else if (State.DOUBLE_QUOTE == presentState)
+                    {
+                        presentState = State.TEXT;
+                        bufferOut.append("</span>");
+                    }
+                    break;
+                case '\'': // single quote
+                    bufferOut.append("\'");
+                    if (State.TEXT == presentState)
+                    {
+                        presentState = State.SINGLE_QUOTE;
+                        bufferOut.insert(bufferOut.length() - ("\'").length(), 
+                                         "<span class=\"" + singleQuoteStyle + "\">");
+                    }
+                    else if (State.SINGLE_QUOTE == presentState)
+                    {
+                        presentState = State.TEXT;
+                        bufferOut.append("</span>");
+                    }
+                    break;
+                case '\\': // backslash
+                    bufferOut.append("\\");
+                    if ((State.DOUBLE_QUOTE == presentState) || 
+                         (State.SINGLE_QUOTE == presentState))
+                    {
+                        // treat as a character escape sequence 
+                        bufferOut.append(bufferIn.charAt(++presentIndex));
+                    }
+                    break;
+                case '\t': // tab
+                    // replace tabs with tabsize number of spaces
+                    for (int i = 0; i < tabSize; i++) 
+                    {
+                        bufferOut.append(' ');
+                    }
+                    break;
+                case '*': // star
+                    bufferOut.append("*");
+                    if ((State.TEXT ==  presentState) && 
+                        (bufferIn.charAt(presentIndex - 1) == '/'))
+                    {
+                        if (((bufferIn.length() - 1) > presentIndex)  &&
+                            (bufferIn.charAt(presentIndex + 1) == '*'))
+                        {
+                            presentState = State.JAVADOC;
+                            bufferOut.insert(bufferOut.length() - 
+                                             ("/*").length(), "<span class=" +
+                                             "\"" + javadocCommentStyle + "\">");
+                        }
+                        else
+                        {                        
+                            presentState = State.TRADITIONAL_COMMENT;
+                            bufferOut.insert(bufferOut.length() - 
+                                             ("/*").length(), "<span class=" +
+                                             "\"" + traditionalCommentStyle + "\">");
+                        }
+                    }
+                    break;
+                case '/': // foward slash
+                    bufferOut.append("/");
+                    if (((State.TRADITIONAL_COMMENT == presentState) || 
+                         (State.JAVADOC == presentState)) &&
+                        (bufferIn.charAt(presentIndex - 1) == '*'))
+                    {
+                        bufferOut.append("</span>");
+                        presentState = State.TEXT;
+                    }
+                    if ((State.TEXT == presentState) && 
+                        (presentIndex > 0)  &&
+                        (bufferIn.charAt(presentIndex - 1) == '/'))
+                    {   
+                        bufferOut.insert(bufferOut.length() - ("//").length(), 
+                                         "<span class=" + 
+                                         "\"" + singleLineCommentStyle + "\">");
+                        presentState = State.LINE_COMMENT;
+                    } 
+                    break;
+                case '\r': // carriage return
+                    // fall through  
+                case '\n': // line feed
+                    // all HTML lines end in \r\n
+                    if ((bufferIn.charAt(presentIndex) == '\r') &&
+                        ((bufferIn.length() - 1) > presentIndex)  &&
+                        (bufferIn.charAt(presentIndex + 1) == '\n'))
+                    {    
+                        ++presentIndex;
+                    }
+                    // end single line comments
+                    if (State.LINE_COMMENT == presentState)
+                    {
+                        bufferOut.append("</span>");
+                        presentState = State.TEXT;
+                    }
+                    // end of block  
+                    if ((lineModulus > 0) && hasLineModulusCodeBlocks && 
+                        ((codeLineNumber%lineModulus == 0) && !isNewBlock))
+                    {
+                        // end multi-line spanning states
+                        if ((State.TRADITIONAL_COMMENT == presentState) ||
+                            (State.JAVADOC == presentState))
+                        {
+                             bufferOut.append("</span>");
+                        }
+                        bufferOut.append("\r\n");
+                        bufferOut.append("</pre>\r\n");
+                        bufferOut.append("   </div>\r\n");
+                        bufferOut.append("<pre class=\"");
+                        bufferOut.append("modulusBlockPREStyle\">\r\n");
+                        // restart multi-line spanning states
+                        if (State.TRADITIONAL_COMMENT == presentState)
+                        {
+                            bufferOut.append("<span class=" +
+                                             "\"" + traditionalCommentStyle + "\">");
+                        }
+                        if (State.JAVADOC == presentState)
+                        {
+                            bufferOut.append("<span class=" +
+                                             "\"" + javadocCommentStyle + "\">");
+                        }
+                    }
+                    else
+                    {
+                        // div automatically starts new line 
+                        bufferOut.append("\r\n");
+                    }
+                    isNewLine = true;
+                    break;
+                case 0: // nul character
+                    if ((State.LINE_COMMENT == presentState) && 
+                        (presentIndex == (bufferIn.length() - 1)))
+                    {
+                        bufferOut.append("</span>");
+                    }
+                    break;
+                default:  // everything else 
+                    bufferOut.append(presentChar);
+            }
+            qualifiedIdentifierLength = 0;
+        }
+        if (presentState == State.LINE_COMMENT) {
+            bufferOut.append("</span>\r\n");
+        }
+
+        bufferOut.append("</pre>\r\n");
+        // end block early if no more source code
+        if ((lineModulus > 0) && hasLineModulusCodeBlocks && !isNewBlock && 
+            (codeLineNumber%lineModulus != 0))
+        {
+            bufferOut.append("   </div>\r\n");
+        }
+        bufferOut.append("  </div>\r\n");  // end div of sourceCodeStyle
+        // if code snippet then don't add ending tags of xhtml page
+        if (!isCodeSnippet)
+        {
+            // if footer mode then add a footer
+            if (hasFooter)
+            {
+                bufferOut.append("  <hr />\r\n");
+                bufferOut.append("  <div id=\"footer\">\r\n");
+                if (hasFooterIcons)
+                {
+                    if (hasFooterDate)
+                    {
+                        bufferOut.append("   <script type=\"text/javaScript\"");
+                        bufferOut.append(">\r\n");
+                        bufferOut.append("    <!-- // <![CDATA[\r\n");
+                        bufferOut.append("     document.write(\"Document last");
+                        bufferOut.append(" modified on \"");
+                        bufferOut.append(" + document.lastModified + ");
+                        bufferOut.append("\"<br />\");\r\n");
+                        bufferOut.append("    // ]]> -->\r\n");
+                        bufferOut.append("   </script>\r\n");
+                    }
+                    bufferOut.append("   <a href=\"");
+                    bufferOut.append("http://validator.w3.org/check/referer");
+                    bufferOut.append("\">\r\n");
+                    bufferOut.append("    <img class=\"" + iconStyle + "\" src=\"");
+                    bufferOut.append("http://www.w3.org/Icons/");
+                    if (isXHTML_1_1)
+                    {
+                        bufferOut.append("valid-xhtml11\"\r\n");
+                        bufferOut.append("         alt=\"Valid XHTML 1.1!\"");
+                    }
+                    else
+                    {
+                        bufferOut.append("valid-xhtml10\"\r\n");
+                        bufferOut.append("         alt=\"Valid XHTML 1.0!\"");
+                    }
+                    bufferOut.append(" height=\"31\" ");
+                    bufferOut.append("width=\"88\" />\r\n");
+                    bufferOut.append("   </a>\r\n");
+                    bufferOut.append("   &#160;\r\n");
+                    bufferOut.append("   <a href=\"");
+                    bufferOut.append("http://jigsaw.w3.org");
+                    bufferOut.append("/css-validator/check/referer");
+                    bufferOut.append("\">\r\n");
+                    bufferOut.append("    <img class=\"" + iconStyle + "\" src=\"");
+                    bufferOut.append("http://jigsaw.w3.org/");
+                    bufferOut.append("css-validator/images/vcss");
+                    bufferOut.append("\"\r\n");
+                    bufferOut.append("         alt=\"Valid CSS!\"");
+                    bufferOut.append(" height=\"31\" width=\"88\" />\r\n");
+                    bufferOut.append("   </a>\r\n");
+                }
+                else
+                {
+                    bufferOut.append("   This is a valid\r\n"); 
+                    bufferOut.append("   <a href=\"http://"); 
+                    bufferOut.append("validator.w3.org/check/referer");
+                    if (isXHTML_1_1)
+                    {
+                        bufferOut.append("\">XHTML 1.1</a>\r\n");
+                    }
+                    else
+                    {
+                        bufferOut.append("\">XHTML 1.0</a>\r\n");
+                    }
+                    bufferOut.append("   with\r\n");
+                    bufferOut.append("   <a href=\"http://");
+                    bufferOut.append("jigsaw.w3.org");
+                    bufferOut.append("/css-validator/check/referer");
+                    bufferOut.append("\">CSS</a>\r\n");
+                    bufferOut.append("   document \r\n"); 
+                    if (hasFooterDate)
+                    {
+                        bufferOut.append("   <script type=\"text/javaScript\"");
+                        bufferOut.append(">\r\n");
+                        bufferOut.append("    <!-- // <![CDATA[\r\n");
+                        bufferOut.append("     document.write(\"last modified");
+                        bufferOut.append(" on \" + document.lastModified);");
+                        bufferOut.append("\r\n");
+                        bufferOut.append("    // ]]> -->\r\n");
+                        bufferOut.append("   </script>\r\n");
+                    }
+                }
+                bufferOut.append("  </div>\r\n");
+            }
+            bufferOut.append(" </body>\r\n");
+            bufferOut.append("</html>\r\n");
+        }
+        return bufferOut.toString();
+    }
+}
index 2172628a671bdda480f62853e436012136870d73..43f31a2fd9c5fc8dd4102730c48f05383fdc7489 100644 (file)
@@ -217,7 +217,18 @@ public class ClassWrapper
         MethodNode m = (MethodNode) i.next();
         String desc = MethodHelper.getBridgeTarget(m);
         if (desc != null)
-          bridgeTargets.add(m.name + desc);
+         {
+           String sum = m.name + desc;
+           boolean newTarget = bridgeTargets.add(sum);
+           if (newTarget)
+             {
+               // Bridge target that is new in this class.
+               String cname = this.name;
+               int index = cname.lastIndexOf('/');
+               cname = cname.substring(index + 1);
+               methodNameMap.put(sum, cname + "$" + m.name);
+             }
+         }
       }
   }
 
@@ -247,18 +258,7 @@ public class ClassWrapper
        String nameToUse;
        String sum = m.name + m.desc;
        if (bridgeTargets.contains(sum))
-         {
-           if (methodNameMap.containsKey(sum))
-             nameToUse = (String) methodNameMap.get(sum);
-           else
-             {
-               // Bridge target that is new in this class.
-               String cname = this.name;
-               int index = cname.lastIndexOf('/');
-               cname = cname.substring(index + 1);
-               nameToUse = cname + "$" + m.name;
-             }
-         }
+         nameToUse = (String) methodNameMap.get(sum);
        else
          nameToUse = Keywords.getCxxName(m.name);
        methodNameMap.put(sum, nameToUse);
index 7c508997e189090608dbc9c0670cd0a2af4121c9..f2ca90e01b644df7b840c7238d7c9978659ddb54 100644 (file)
@@ -92,7 +92,7 @@ public class JniHelper
 
   public static String mangle(String name)
   {
-    StringBuffer result = new StringBuffer();
+    StringBuilder result = new StringBuilder();
     for (int i = 0; i < name.length(); ++i)
       {
         char c = name.charAt(i);
index 6bf3193fc3177ff1f53348a54c1ac0cd0df69fd1..524796d3bbc789a8a5b386f0818e194fa206b097 100644 (file)
@@ -148,7 +148,7 @@ public class Native2ASCII
             String s = rdr.readLine();
             if (s == null)
               break;
-            StringBuffer sb = new StringBuffer(s.length() + 80);
+            StringBuilder sb = new StringBuilder(s.length() + 80);
             for (int i = 0; i < s.length(); i++)
               {
                 char c = s.charAt(i);
index 6c6164d21f47350e39d2dff71cd3a2f19c854241..87ade64cc952d454339a3976d4a29d26cbc0f0ba 100644 (file)
@@ -165,7 +165,7 @@ public class PersistentMap
      */
     public String getKey(String id, String kind)
     {
-      StringBuffer b = new StringBuffer(id.length() + 8);
+      StringBuilder b = new StringBuilder(id.length() + 8);
       appEscaping(b, id);
       b.append('.');
       if (kind != null && kind.length() > 0)
@@ -180,7 +180,7 @@ public class PersistentMap
      * @param b a buffer to append the contents to.
      * @param s a string to append.
      */
-    void appEscaping(StringBuffer b, String s)
+    void appEscaping(StringBuilder b, String s)
     {
       char c;
       for (int i = 0; i < s.length(); i++)
index e853a5a1b5605d46b4b89521325da9d27833ce1a..255946711db37376d99d2901b487301f7c5ec798 100644 (file)
@@ -330,7 +330,7 @@ public class ClassRmicCompiler
       {
         Method m = remotemethods[i].meth;
 
-        StringBuffer desc = new StringBuffer();
+        StringBuilder desc = new StringBuilder();
         desc.append(getPrettyName(m.getReturnType()) + " ");
         desc.append(m.getName() + "(");
 
@@ -1712,7 +1712,7 @@ public class ClassRmicCompiler
 
   private static String getPrettyName(Class cls)
   {
-    StringBuffer str = new StringBuffer();
+    StringBuilder str = new StringBuilder();
     for (int count = 0;; count++)
       {
        if (! cls.isArray())
index 64eb2eaf66c9033b0b395ee57c149330d27af1c8..70793cf6cd3722ca67743c7f054bebdc62ac8019 100644 (file)
@@ -53,7 +53,7 @@ public class Generator
                               + resourcePath);
 
     BufferedReader r = new BufferedReader(new InputStreamReader(in));
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
 
     String s;
     try
@@ -90,7 +90,7 @@ public class Generator
   {
     BufferedReader r = new BufferedReader(new StringReader(template));
     String s;
-    StringBuffer b = new StringBuffer(template.length());
+    StringBuilder b = new StringBuilder(template.length());
     try
       {
         Iterator iter;
index 335a0a65c3044a4c5c773c4906a3cb4b8bb025c1..650468d9465125245a12e1a741957e525b549cc3 100644 (file)
@@ -93,7 +93,7 @@ public class MethodGenerator implements AbstractMethodGenerator
    */
   public String getArgumentList()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
 
     Class[] args = method.getParameterTypes();
 
@@ -115,7 +115,7 @@ public class MethodGenerator implements AbstractMethodGenerator
    */
   public String getArgumentNames()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
 
     Class[] args = method.getParameterTypes();
 
@@ -135,7 +135,7 @@ public class MethodGenerator implements AbstractMethodGenerator
    */
   public String getThrows()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
 
     Class[] args = method.getExceptionTypes();
 
@@ -239,7 +239,7 @@ public class MethodGenerator implements AbstractMethodGenerator
    */
   public String getRda()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
     Class[] args = method.getParameterTypes();
 
     for (int i = 0; i < args.length; i++)
@@ -263,7 +263,7 @@ public class MethodGenerator implements AbstractMethodGenerator
    */
   public String getStubParaWriteStatement()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
     Class[] args = method.getParameterTypes();
 
     for (int i = 0; i < args.length; i++)
index 48abb8fade9b1ed784aa0c50ca9e47b269e9dcc7..b526bbb9f753fe655f201db25a0e3f1f7a0d8a36 100644 (file)
@@ -74,7 +74,7 @@ public class RmiMethodGenerator
    */
   public String getArgumentList()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
 
     Class[] args = method.getParameterTypes();
 
@@ -96,7 +96,7 @@ public class RmiMethodGenerator
    */
   public String getArgumentNames()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
 
     Class[] args = method.getParameterTypes();
 
@@ -116,7 +116,7 @@ public class RmiMethodGenerator
    */
   public String getThrows()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
 
     Class[] args = method.getExceptionTypes();
 
@@ -173,7 +173,7 @@ public class RmiMethodGenerator
    */
   public String getStaticMethodDeclarations()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
     Class[] args = method.getParameterTypes();
 
     for (int i = 0; i < args.length; i++)
@@ -201,7 +201,7 @@ public class RmiMethodGenerator
     if (args.length==0)
       return "NO_ARGS";
     
-    StringBuffer b = new StringBuffer("new Object[] {");
+    StringBuilder b = new StringBuilder("new Object[] {");
 
     for (int i = 0; i < args.length; i++)
       {
@@ -246,7 +246,7 @@ public class RmiMethodGenerator
    */
   public String getArgListAsClassArray()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
     Class[] args = method.getParameterTypes();
 
     for (int i = 0; i < args.length; i++)
index a889492f9b8d87b79a04256ae38eb47bd3e930d6..b7ad7f440a5fd9dd37e754c782cc8c83391ed74e 100644 (file)
@@ -140,7 +140,7 @@ public class SourceGiopRmicCompiler
   /**
    * Clear data, preparing for the next compilation.
    */
-  public void reset()
+  public synchronized void reset()
   {
     packag = name = implName = stubName = null;
     implementedRemotes.clear();
@@ -329,7 +329,7 @@ public class SourceGiopRmicCompiler
    *          the class to name
    * @return the name of class as it should appear in java language
    */
-  public String name(Class nameIt)
+  public synchronized String name(Class nameIt)
   {
     if (nameIt.isArray())
       {
@@ -342,7 +342,7 @@ public class SourceGiopRmicCompiler
             dimension++;
           }
 
-        StringBuffer brackets = new StringBuffer();
+        StringBuilder brackets = new StringBuilder();
 
         for (int i = 0; i < dimension; i++)
           {
@@ -388,7 +388,7 @@ public class SourceGiopRmicCompiler
    */
   public String getIdList(Collection remotes)
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
 
     // Keep the Ids sorted, ensuring, that the same order will be preserved
     // between compilations.
@@ -420,7 +420,7 @@ public class SourceGiopRmicCompiler
     String template = getResource("Stub.jav");
 
     // Generate methods.
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
     Iterator iter = methods.iterator();
     while (iter.hasNext())
       {
@@ -444,7 +444,7 @@ public class SourceGiopRmicCompiler
    */
   public String getAllInterfaces()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
     Iterator iter = implementedRemotes.iterator();
 
     while (iter.hasNext())
@@ -494,7 +494,7 @@ public class SourceGiopRmicCompiler
 
     iter = sortedMethods.iterator();
 
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
 
     MethodGenerator prev = null;
 
@@ -539,7 +539,7 @@ public class SourceGiopRmicCompiler
         imp.add("import " + ic + ";\n");
       }
 
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
     it = imp.iterator();
 
     while (it.hasNext())
index 3779c5d28fb304d498c6f631fdae5b43ffed804f..20ab8c1563764c4a44c4f5e63a0079bbb4a0131f 100644 (file)
@@ -56,7 +56,7 @@ public class SourceRmicCompiler extends SourceGiopRmicCompiler
     String template = getResource("Stub_12.jav");
 
     // Generate methods.
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
     Iterator iter = methods.iterator();
     while (iter.hasNext())
       {
@@ -99,7 +99,7 @@ public class SourceRmicCompiler extends SourceGiopRmicCompiler
    */
   public String getStubMethodDeclarations()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
     
     Iterator iter = methods.iterator();
      
@@ -122,7 +122,7 @@ public class SourceRmicCompiler extends SourceGiopRmicCompiler
    */
   public String getStubMethodInitializations()
   {
-    StringBuffer b = new StringBuffer();
+    StringBuilder b = new StringBuilder();
     
     Iterator iter = methods.iterator();
      
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java
new file mode 100644 (file)
index 0000000..d3bb371
--- /dev/null
@@ -0,0 +1,276 @@
+/* gnu.classpath.tools.taglets.AuthorTaglet\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.taglets;\r
+\r
+import java.util.Map;\r
+\r
+import java.util.regex.Pattern;\r
+import java.util.regex.Matcher;\r
+\r
+import com.sun.tools.doclets.Taglet;\r
+\r
+import com.sun.javadoc.Tag;\r
+\r
+/**\r
+ *  The default Taglet which handles Author information.\r
+ *\r
+ *  @author Julian Scheid (julian@sektor37.de)\r
+ */\r
+public class AuthorTaglet implements Taglet {\r
+   \r
+   /**\r
+    *  Enum class which denotes whether and how to replace email\r
+    *  addresses in author tags.\r
+    */\r
+   public static class EmailReplacement {\r
+      private EmailReplacement() {}\r
+\r
+      /**\r
+       *  Specifies that email addresses should not be replaced.\r
+       */\r
+      public static final EmailReplacement NO_REPLACEMENT = new EmailReplacement();\r
+\r
+      /**\r
+       *  Specifies that author tag text matching "Real Name\r
+       *  (user@domain.tld)" is converted to "&lt;a\r
+       *  href="mailto:user@domain.tld"&gt;Real Name&lt;/a&gt;.\r
+       */\r
+      public static final EmailReplacement MAILTO_NAME = new EmailReplacement();\r
+\r
+      /**\r
+       *  Specifies that author tag text matching "Real Name\r
+       *  (user@domain.tld)" is converted to "Real Name (&lt;a\r
+       *  href="mailto:user@domain.tld"&gt;user@domain.tld&lt;/a&gt;).\r
+       */\r
+      public static final EmailReplacement NAME_MAILTO_ADDRESS = new EmailReplacement();\r
+\r
+      /**\r
+       *  Specifies that author tag text matching "Real Name\r
+       *  (user@domain.tld)" is converted to "Real Name (user AT\r
+       *  domain DOT tld)", where the "AT" and "DOT" replacement are\r
+       *  specified by AuthorTaglet.emailAtReplacement and\r
+       *  AuthorTaglet.emailDotReplacement.\r
+       */\r
+      public static final EmailReplacement NAME_MANGLED_ADDRESS = new EmailReplacement();      \r
+   }\r
+\r
+   private static EmailReplacement emailReplacementType = EmailReplacement.NO_REPLACEMENT;\r
+   private static String atReplacement = " <b>at</b> ";\r
+   private static String dotReplacement = " <b>dot</b> ";\r
+\r
+   private static final String NAME = "author";\r
+   private static final String SINGLE_HEADER = "Author:";\r
+   private static final String MULTI_HEADER = "Authors:";\r
+\r
+   private static boolean enabled = true;\r
+   \r
+   /**\r
+    *  Matches <code>.</code> (dot).\r
+    */\r
+   private static final Pattern dotPattern = Pattern.compile("[.]");\r
+\r
+   /**\r
+    *  Matches <code>@</code> (at sign).\r
+    */\r
+   private static final Pattern atPattern = Pattern.compile("[@]");\r
+\r
+   /**\r
+    *  Matches <code>Real Name (user@domain.tld)</code>.\r
+    */\r
+   private static final Pattern authorEmailPattern\r
+     = Pattern.compile("^"\r
+                       + "\\s*" // optional whitespace\r
+                       + "(" // group #1 start (real name)\r
+                       + "(?:[^\t\r\n ]|\\()+" // first name\r
+                       + "(?:\\s+(?:[^\t\r\n ]|\\()+)*" // additional names\r
+                       + ")" // group #1 end\r
+                       + "\\s*" // optional whitespace                    \r
+                       + "[(<]" // opening paren\r
+                       + "\\s*" // optional whitespace                       \r
+                       + "(" // group #2 start (email address)\r
+                       + "(" // group #3 start (email user)\r
+                       + "[A-z0-9_\\-\\.]+" // username\r
+                       + ")" // group #3 end\r
+                       + "[@]" // at sign\r
+                       + "[A-z0-9_\\-]+(?:[.][A-z0-9_\\-]+)+[A-z]" // domain\r
+                       + ")" // group #2 end\r
+                       + "\\s*" // optional whitespace\r
+                       + "(?:\\)|>)" // closing paren\r
+                       + "$");\r
+    \r
+   public String getName() {\r
+      return NAME;\r
+   }\r
+    \r
+   public boolean inField() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inConstructor() {\r
+      return true;\r
+   }\r
+    \r
+   public boolean inMethod() {\r
+      return true;\r
+   }\r
+   \r
+   public boolean inOverview() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inPackage() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inType() {\r
+      return true;\r
+   }\r
+    \r
+   public boolean isInlineTag() {\r
+      return false;\r
+   }    \r
+\r
+   public static void register(Map tagletMap) {\r
+      AuthorTaglet authorTaglet = new AuthorTaglet();\r
+      tagletMap.put(authorTaglet.getName(), authorTaglet);\r
+   }\r
+\r
+   public String toString(Tag tag) {\r
+      if (enabled) {\r
+         return toString(new Tag[] { tag });\r
+      }\r
+      else {\r
+         return null;\r
+      }\r
+   }\r
+\r
+   public String toString(Tag[] tags) {\r
+      if (!enabled || tags.length == 0) {\r
+         return null;\r
+      }\r
+      else {\r
+         boolean haveValidTag = false;\r
+         for (int i = 0; i < tags.length && !haveValidTag; ++i) {\r
+            if (tags[i].text().length() > 0) {\r
+               haveValidTag = true;\r
+            }\r
+         }\r
+         \r
+         if (haveValidTag) {\r
+            StringBuffer result = new StringBuffer();\r
+            result.append("<dl class=\"tag list\">");\r
+            result.append("<dt class=\"tag section header\"><b>");\r
+            if (tags.length == 1) {\r
+               result.append(SINGLE_HEADER);\r
+            }\r
+            else {\r
+               result.append(MULTI_HEADER);\r
+            }\r
+            result.append("</b></dt>");\r
+            for (int i = 0; i < tags.length; i++) {\r
+               result.append("<dd class=\"tag item\">");\r
+               result.append(replaceEmail(tags[i].text()));\r
+               result.append("</dd>");\r
+            }\r
+            result.append("</dl>");\r
+            return result.toString();\r
+         }\r
+         else {\r
+            return null;\r
+         }\r
+      }\r
+   }   \r
+\r
+   /**\r
+    *  Reformat the tag text according to {@link #emailReplacementType}.\r
+    */\r
+   private String replaceEmail(String text) {\r
+\r
+      if (EmailReplacement.NO_REPLACEMENT == emailReplacementType) {\r
+         return text;\r
+      }\r
+      else {\r
+         Matcher matcher = authorEmailPattern.matcher(text);\r
+         if (matcher.matches()) {\r
+            String realName = matcher.group(1);\r
+            String emailAddress = matcher.group(2);\r
+            if (EmailReplacement.MAILTO_NAME == emailReplacementType) {         \r
+               return "<a href=\"mailto:" + emailAddress + "\">" + realName + "</a>";\r
+            }\r
+            else if (EmailReplacement.NAME_MAILTO_ADDRESS == emailReplacementType) {\r
+               return realName + " (<a href=\"mailto:" + emailAddress + "\">" + emailAddress + "</a>)";\r
+            }\r
+            else if (EmailReplacement.NAME_MANGLED_ADDRESS == emailReplacementType) {\r
+               Matcher dotMatcher = dotPattern.matcher(emailAddress);\r
+               Matcher atMatcher = atPattern.matcher(dotMatcher.replaceAll(dotReplacement));\r
+               String mangledAddress = atMatcher.replaceAll(atReplacement);\r
+               return realName + " (" + mangledAddress + ")";\r
+            }\r
+            else {\r
+               // this shouldn't happen\r
+               return text;\r
+            }\r
+         }\r
+         else {\r
+            return text;\r
+         }\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  Set the email replacement type.\r
+    */\r
+   public static void setEmailReplacementType(EmailReplacement emailReplacementType)\r
+   {\r
+      if (null == emailReplacementType) {\r
+         throw new NullPointerException();\r
+      }\r
+      AuthorTaglet.emailReplacementType = emailReplacementType;\r
+   }\r
+\r
+   /**\r
+    *  Set the HTML text by which the <code>@</code> (at sign) in email\r
+    *  addresses should be replaced if the email replacement type is\r
+    *  <code>NAME_MANGLED_ADDRESS</code>.\r
+    */\r
+   public static void setAtReplacement(String atReplacement)\r
+   {\r
+      AuthorTaglet.atReplacement = atReplacement;\r
+   }\r
+\r
+   /**\r
+    *  Set the HTML text by which the <code>.</code> (dot) in email\r
+    *  addresses should be replaced if the email replacement type is\r
+    *  <code>NAME_MANGLED_ADDRESS</code>.\r
+    */\r
+   public static void setDotReplacement(String dotReplacement)\r
+   {\r
+      AuthorTaglet.dotReplacement = dotReplacement;\r
+   }\r
+\r
+   /**\r
+    *  Enables/disables this taglet.\r
+    */\r
+   public static void setTagletEnabled(boolean enabled)\r
+   {\r
+      AuthorTaglet.enabled = enabled;\r
+   }\r
+}\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java
new file mode 100644 (file)
index 0000000..16ed3d5
--- /dev/null
@@ -0,0 +1,84 @@
+/* gnu.classpath.tools.taglets.CodeTaglet
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import java.util.Map;
+
+import com.sun.tools.doclets.Taglet;
+
+import com.sun.javadoc.Doc;
+import com.sun.javadoc.Tag;
+import com.sun.javadoc.FieldDoc;
+import com.sun.javadoc.MemberDoc;
+import com.sun.javadoc.SeeTag;
+
+/**
+ *  The default Taglet which shows its contents enclosed in a
+ *  <code>code</code> tag.
+ *
+ *  @author Julian Scheid (julian@sektor37.de)
+ */
+public class CodeTaglet 
+   implements Taglet
+{
+   private static final String NAME = "code";
+
+   public String getName() {
+      return NAME;
+   }
+    
+   public boolean inField() {
+      return true;
+   }
+
+   public boolean inConstructor() {
+      return true;
+   }
+    
+   public boolean inMethod() {
+      return true;
+   }
+   
+   public boolean inOverview() {
+      return true;
+   }
+
+   public boolean inPackage() {
+      return true;
+   }
+
+   public boolean inType() {
+      return true;
+   }
+    
+   public boolean isInlineTag() {
+      return true;
+   }    
+
+   public String toString(Tag tag) {
+      return "<code>" + tag.text() + "</code>";
+   }
+
+   public String toString(Tag[] tag) {
+      return null;
+   }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java
new file mode 100644 (file)
index 0000000..bb0d9a7
--- /dev/null
@@ -0,0 +1,106 @@
+/* gnu.classpath.tools.taglets.CopyrightTaglet\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.taglets;\r
+\r
+import java.util.Map;\r
+\r
+import com.sun.tools.doclets.Taglet;\r
+\r
+import com.sun.javadoc.Tag;\r
+\r
+/**\r
+ *  A simple Taglet which handles Copyright information.\r
+ */\r
+public class CopyrightTaglet implements Taglet {\r
+\r
+   private static final String NAME = "copyright";\r
+   private static final String HEADER = "Copyright:";\r
+    \r
+   public String getName() {\r
+      return NAME;\r
+   }\r
+    \r
+   public boolean inField() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inConstructor() {\r
+      return true;\r
+   }\r
+    \r
+   public boolean inMethod() {\r
+      return true;\r
+   }\r
+   \r
+   public boolean inOverview() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inPackage() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inType() {\r
+      return true;\r
+   }\r
+    \r
+   public boolean isInlineTag() {\r
+      return false;\r
+   }    \r
+\r
+   public static void register(Map tagletMap) {\r
+      CopyrightTaglet copyrightTaglet = new CopyrightTaglet();\r
+      tagletMap.put(copyrightTaglet.getName(), copyrightTaglet);\r
+   }\r
+\r
+   public String toString(Tag tag) {\r
+      return toString(new Tag[] { tag });\r
+   }\r
+\r
+   public String toString(Tag[] tags) {\r
+      if (tags.length == 0) {\r
+         return null;\r
+      }\r
+      else {\r
+         boolean haveValidTag = false;\r
+         for (int i = 0; i < tags.length && !haveValidTag; ++i) {\r
+            if (tags[i].text().length() > 0) {\r
+               haveValidTag = true;\r
+            }\r
+         }\r
+         \r
+         if (haveValidTag) {\r
+            StringBuffer result = new StringBuffer();\r
+            result.append("<dl>");\r
+            for (int i = 0; i < tags.length; i++) {\r
+               if (tags[i].text().length() > 0) {\r
+                  result.append("<dt><i>Copyright &#169; " + tags[i].text() + "</i></dt>");\r
+               }\r
+            }\r
+            result.append("</dl>");\r
+            return result.toString();\r
+         }\r
+         else {\r
+            return null;\r
+         }\r
+      }\r
+   }\r
+}\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java
new file mode 100644 (file)
index 0000000..ba406a6
--- /dev/null
@@ -0,0 +1,115 @@
+/* gnu.classpath.tools.taglets.DeprecatedTaglet\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.taglets;\r
+\r
+import java.util.Map;\r
+\r
+import com.sun.tools.doclets.Taglet;\r
+\r
+import com.sun.javadoc.Tag;\r
+\r
+/**\r
+ *  The default Taglet which handles deprecated information.\r
+ *\r
+ *  @author Julian Scheid (julian@sektor37.de)\r
+ */\r
+public class DeprecatedTaglet implements Taglet {\r
+   \r
+   private static final String NAME = "deprecated";\r
+   private static final String HEADER = "Deprecated:";\r
+\r
+   private static boolean enabled = true;\r
+   \r
+   public String getName() {\r
+      return NAME;\r
+   }\r
+    \r
+   public boolean inField() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inConstructor() {\r
+      return true;\r
+   }\r
+    \r
+   public boolean inMethod() {\r
+      return true;\r
+   }\r
+   \r
+   public boolean inOverview() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inPackage() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inType() {\r
+      return true;\r
+   }\r
+    \r
+   public boolean isInlineTag() {\r
+      return false;\r
+   }    \r
+\r
+   public static void register(Map tagletMap) {\r
+      DeprecatedTaglet deprecatedTaglet = new DeprecatedTaglet();\r
+      tagletMap.put(deprecatedTaglet.getName(), deprecatedTaglet);\r
+   }\r
+\r
+   public String toString(Tag tag) {\r
+      if (enabled) {\r
+         return toString(new Tag[] { tag });\r
+      }\r
+      else {\r
+         return null;\r
+      }\r
+   }\r
+\r
+   public String toString(Tag[] tags) {\r
+      if (!enabled || tags.length == 0) {\r
+         return null;\r
+      }\r
+      else {\r
+         \r
+         StringBuffer result = new StringBuffer();\r
+         result.append("<div class=\"classdoc-tag-section-header\">");\r
+         result.append(HEADER);\r
+         result.append("</div>");\r
+         result.append("<dl class=\"classdoc-list\">");\r
+         for (int i = 0; i < tags.length; i++) {\r
+            result.append("<dt>");\r
+            result.append(tags[i].text());\r
+            result.append("</dt>");\r
+         }\r
+         result.append("</dl>");\r
+         return result.toString();\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  Enables/disables this taglet.\r
+    */\r
+   public static void setTagletEnabled(boolean enabled)\r
+   {\r
+      DeprecatedTaglet.enabled = enabled;\r
+   }\r
+}\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java
new file mode 100644 (file)
index 0000000..7e18cdc
--- /dev/null
@@ -0,0 +1,140 @@
+/* gnu.classpath.tools.taglets.GenericTaglet\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.taglets;\r
+\r
+import java.util.Map;\r
+\r
+import com.sun.tools.doclets.Taglet;\r
+\r
+import com.sun.javadoc.Tag;\r
+\r
+/**\r
+ *  A taglet which can be configured at runtime.\r
+ *\r
+ *  @author Julian Scheid (julian@sektor37.de)\r
+ */\r
+public class GenericTaglet implements Taglet {\r
+   \r
+   private String name = "since";\r
+   private String header = "Since:";\r
+\r
+   private boolean scopeOverview;\r
+   private boolean scopePackage;\r
+   private boolean scopeType;\r
+   private boolean scopeConstructor;\r
+   private boolean scopeMethod;\r
+   private boolean scopeField;\r
+\r
+   private boolean enabled = true;\r
+\r
+   public GenericTaglet(String name,\r
+                        String header,\r
+                        boolean scopeOverview,\r
+                        boolean scopePackage,\r
+                        boolean scopeType,\r
+                        boolean scopeConstructor,\r
+                        boolean scopeMethod,\r
+                        boolean scopeField)\r
+   {\r
+      this.name = name;\r
+      this.header = header;\r
+      this.scopeOverview = scopeOverview;\r
+      this.scopePackage = scopePackage;\r
+      this.scopeType = scopeType;\r
+      this.scopeConstructor = scopeConstructor;\r
+      this.scopeMethod = scopeMethod;\r
+      this.scopeField = scopeField;\r
+   }\r
+   \r
+   public String getName() {\r
+      return name;\r
+   }\r
+    \r
+   public boolean inField() {\r
+      return scopeField;\r
+   }\r
+\r
+   public boolean inConstructor() {\r
+      return scopeConstructor;\r
+   }\r
+    \r
+   public boolean inMethod() {\r
+      return scopeMethod;\r
+   }\r
+   \r
+   public boolean inOverview() {\r
+      return scopeOverview;\r
+   }\r
+\r
+   public boolean inPackage() {\r
+      return scopePackage;\r
+   }\r
+\r
+   public boolean inType() {\r
+      return scopeType;\r
+   }\r
+    \r
+   public boolean isInlineTag() {\r
+      return false;\r
+   }    \r
+\r
+   public void register(Map tagletMap) {\r
+      tagletMap.put(getName(), this);\r
+   }\r
+\r
+   public String toString(Tag tag) {\r
+      if (enabled) {\r
+         return toString(new Tag[] { tag });\r
+      }\r
+      else {\r
+         return null;\r
+      }\r
+   }\r
+\r
+   public String toString(Tag[] tags) {\r
+      if (!enabled || tags.length == 0) {\r
+         return null;\r
+      }\r
+      else {\r
+         \r
+         StringBuffer result = new StringBuffer();\r
+         result.append("<div class=\"classdoc-tag-section-header\">");\r
+         result.append(header);\r
+         result.append("</div>");\r
+         result.append("<dl class=\"classdoc-list\">");\r
+         for (int i = 0; i < tags.length; i++) {\r
+            result.append("<dt>");\r
+            result.append(tags[i].text());\r
+            result.append("</dt>");\r
+         }\r
+         result.append("</dl>");\r
+         return result.toString();\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  Enables/disables this taglet.\r
+    */\r
+   public void setTagletEnabled(boolean enabled)\r
+   {\r
+      this.enabled = enabled;\r
+   }\r
+}\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java
new file mode 100644 (file)
index 0000000..2e67d65
--- /dev/null
@@ -0,0 +1,31 @@
+/* gnu.classpath.tools.taglets.GnuExtendedTaglet
+   Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import com.sun.javadoc.Tag;
+import com.sun.tools.doclets.Taglet;
+
+public interface GnuExtendedTaglet
+   extends Taglet
+{
+   public String toString(Tag tag, TagletContext context);
+   public String toString(Tag[] tags, TagletContext context);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java
new file mode 100644 (file)
index 0000000..dac68a8
--- /dev/null
@@ -0,0 +1,144 @@
+/* gnu.classpath.tools.taglets.SinceTaglet\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.taglets;\r
+\r
+import java.util.Map;\r
+\r
+import com.sun.tools.doclets.Taglet;\r
+\r
+import com.sun.javadoc.Tag;\r
+\r
+import gnu.classpath.tools.doclets.InlineTagRenderer;\r
+\r
+/**\r
+ *  The default Taglet which handles since information.\r
+ *\r
+ *  @author Julian Scheid (julian@sektor37.de)\r
+ */\r
+public class SinceTaglet implements GnuExtendedTaglet {\r
+   \r
+   private static final String NAME = "since";\r
+   private static final String HEADER = "Since:";\r
+\r
+   private static boolean enabled = true;\r
+\r
+   private InlineTagRenderer inlineTagRenderer;\r
+\r
+   public SinceTaglet(InlineTagRenderer inlineTagRenderer)\r
+   {\r
+      this.inlineTagRenderer = inlineTagRenderer;\r
+   }\r
+   \r
+   public String getName() {\r
+      return NAME;\r
+   }\r
+    \r
+   public boolean inField() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inConstructor() {\r
+      return true;\r
+   }\r
+    \r
+   public boolean inMethod() {\r
+      return true;\r
+   }\r
+   \r
+   public boolean inOverview() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inPackage() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inType() {\r
+      return true;\r
+   }\r
+    \r
+   public boolean isInlineTag() {\r
+      return false;\r
+   }    \r
+\r
+   public String toString(Tag tag) {\r
+      // should raise assertion\r
+      if (enabled) {\r
+         return toString(new Tag[] { tag });\r
+      }\r
+      else {\r
+         return null;\r
+      }\r
+   }\r
+\r
+   public String toString(Tag[] tags) {\r
+      // should raise assertion\r
+      return toString(tags, null);\r
+   }\r
+\r
+   public String toString(Tag tag, TagletContext context) \r
+   {\r
+      return null;\r
+   }\r
+\r
+   public String toString(Tag[] tags, TagletContext context) \r
+   {\r
+      if (!enabled || tags.length == 0) {\r
+         return null;\r
+      }\r
+      else {\r
+         boolean haveValidTag = false;\r
+         for (int i = 0; i < tags.length && !haveValidTag; ++i) {\r
+            if (tags[i].text().length() > 0) {\r
+               haveValidTag = true;\r
+            }\r
+         }\r
+         \r
+         if (haveValidTag) {\r
+            StringBuffer result = new StringBuffer();\r
+            result.append("<dl class=\"tag list\">");\r
+            result.append("<dt class=\"tag section header\"><b>");\r
+            result.append(HEADER);\r
+            result.append("</b></dt>");\r
+            for (int i = 0; i < tags.length; ++i) {\r
+               if (tags[i].text().length() > 0) {\r
+                  result.append("<dd>");\r
+                  result.append(inlineTagRenderer.renderInlineTags(tags[i].inlineTags(), context));\r
+                  result.append("</dd>");\r
+               }\r
+            }\r
+            result.append("</dl>");\r
+            return result.toString();\r
+         }\r
+         else {\r
+            return null;\r
+         }\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  Enables/disables this taglet.\r
+    */\r
+   public static void setTagletEnabled(boolean enabled)\r
+   {\r
+      SinceTaglet.enabled = enabled;\r
+   }\r
+}\r
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java
new file mode 100644 (file)
index 0000000..cf706b6
--- /dev/null
@@ -0,0 +1,23 @@
+package gnu.classpath.tools.taglets;
+
+import com.sun.javadoc.Doc;
+
+public class TagletContext
+{
+   protected Doc doc;
+
+   public TagletContext(Doc doc)
+   {
+      this.doc = doc;
+   }
+
+   public Doc getDoc()
+   {
+      return this.doc;
+   }
+
+   public String toString()
+   {
+      return "TagletContext{doc=" + doc + "}";
+   }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java
new file mode 100644 (file)
index 0000000..0f194ae
--- /dev/null
@@ -0,0 +1,113 @@
+/* gnu.classpath.tools.taglets.ValueTaglet
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import java.util.Map;
+
+import com.sun.tools.doclets.Taglet;
+
+import com.sun.javadoc.Doc;
+import com.sun.javadoc.Tag;
+import com.sun.javadoc.FieldDoc;
+import com.sun.javadoc.MemberDoc;
+import com.sun.javadoc.SeeTag;
+
+/**
+ *  The default Taglet which shows final static field values.
+ *
+ *  @author Julian Scheid (julian@sektor37.de)
+ */
+public class ValueTaglet 
+   implements GnuExtendedTaglet
+{
+   private static final String NAME = "value";
+
+   public String getName() {
+      return NAME;
+   }
+    
+   public boolean inField() {
+      return true;
+   }
+
+   public boolean inConstructor() {
+      return true;
+   }
+    
+   public boolean inMethod() {
+      return true;
+   }
+   
+   public boolean inOverview() {
+      return true;
+   }
+
+   public boolean inPackage() {
+      return true;
+   }
+
+   public boolean inType() {
+      return true;
+   }
+    
+   public boolean isInlineTag() {
+      return true;
+   }    
+
+   public static void register(Map tagletMap) {
+      ValueTaglet valueTaglet = new ValueTaglet();
+      tagletMap.put(valueTaglet.getName(), valueTaglet);
+   }
+
+   public String toString(Tag tag) {
+      return null;
+   }
+
+   public String toString(Tag tag, TagletContext context) {
+      if (0 == tag.inlineTags().length) {
+         if (context.getDoc().isField()) {
+            FieldDoc fieldDoc = (FieldDoc)context.getDoc();
+            if (fieldDoc.isStatic() && fieldDoc.isFinal()) {
+               return fieldDoc.constantValueExpression();
+            }
+         }
+      }
+      else {
+         MemberDoc referencedMember = ((SeeTag)tag).referencedMember();
+         if (null != referencedMember && referencedMember.isField()) {
+            FieldDoc fieldDoc = (FieldDoc)referencedMember;
+            if (fieldDoc.isStatic() && fieldDoc.isFinal()) {
+               return fieldDoc.constantValueExpression();
+            }
+         }
+      }
+      return "";
+   }
+
+   public String toString(Tag[] tags) {
+      return null;
+   }
+
+   public String toString(Tag[] tags, TagletContext context) {
+      return null;
+   }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java
new file mode 100644 (file)
index 0000000..e4eddb8
--- /dev/null
@@ -0,0 +1,136 @@
+/* gnu.classpath.tools.taglets.VersionTaglet\r
+   Copyright (C) 2001 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. */\r
+\r
+package gnu.classpath.tools.taglets;\r
+\r
+import java.util.Map;\r
+\r
+import com.sun.tools.doclets.Taglet;\r
+\r
+import com.sun.javadoc.Tag;\r
+\r
+/**\r
+ *  The default Taglet which handles version information.\r
+ *\r
+ *  @author Julian Scheid (julian@sektor37.de)\r
+ */\r
+public class VersionTaglet implements Taglet {\r
+   \r
+   private static final String NAME = "version";\r
+   private static final String HEADER = "Version:";\r
+\r
+   private static boolean enabled = true;\r
+   \r
+   public String getName() {\r
+      return NAME;\r
+   }\r
+    \r
+   public boolean inField() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inConstructor() {\r
+      return true;\r
+   }\r
+    \r
+   public boolean inMethod() {\r
+      return true;\r
+   }\r
+   \r
+   public boolean inOverview() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inPackage() {\r
+      return true;\r
+   }\r
+\r
+   public boolean inType() {\r
+      return true;\r
+   }\r
+    \r
+   public boolean isInlineTag() {\r
+      return false;\r
+   }    \r
+\r
+   public static void register(Map tagletMap) {\r
+      VersionTaglet versionTaglet = new VersionTaglet();\r
+      tagletMap.put(versionTaglet.getName(), versionTaglet);\r
+   }\r
+\r
+   public String toString(Tag tag) {\r
+      if (enabled) {\r
+         return toString(new Tag[] { tag });\r
+      }\r
+      else {\r
+         return null;\r
+      }\r
+   }\r
+\r
+   public String toString(Tag[] tags) {\r
+      if (!enabled || tags.length == 0) {\r
+         return null;\r
+      }\r
+      else {\r
+         boolean haveValidTag = false;\r
+         for (int i = 0; i < tags.length && !haveValidTag; ++i) {\r
+            if (tags[i].text().length() > 0) {\r
+               haveValidTag = true;\r
+            }\r
+         }\r
+         \r
+         if (haveValidTag) {\r
+            \r
+            StringBuffer result = new StringBuffer();\r
+            result.append("<dl class=\"tag list\">");\r
+            result.append("</dl>");\r
+            result.append("<dt class=\"tag section header\"><b>");\r
+            result.append(HEADER);\r
+            result.append("</b></dt><dd>");\r
+            boolean firstEntry = true;\r
+            for (int i = 0; i < tags.length; i++) {\r
+               if (tags[i].text().length() > 0) {\r
+                  if (!firstEntry) {\r
+                     result.append(", ");\r
+                  }\r
+                  else {\r
+                     firstEntry = false;\r
+                  }\r
+                  result.append(tags[i].text());\r
+               }\r
+            }\r
+            result.append("</dd>");\r
+            result.append("</dl>");\r
+            return result.toString();\r
+         }\r
+         else {\r
+            return null;\r
+         }\r
+      }\r
+   }\r
+\r
+   /**\r
+    *  Enables/disables this taglet.\r
+    */\r
+   public static void setTagletEnabled(boolean enabled)\r
+   {\r
+      VersionTaglet.enabled = enabled;\r
+   }\r
+}\r
index 40d01eee2a10017622881fde586d0a52f394d483..dbe33d3a01db4824fb53353c56b2813576c097a1 100644 (file)
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.orbd.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.orbd.Main "$@"
index 9b7314429c1f4377d524b31c96805145b731d4bd..299b4b50beef3784eca9b480d7ae7fc02b9915f5 100644 (file)
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.rmic.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.rmic.Main "$@"
index 7eefb769d65f685a992aa102bc8b4a6d9f9d7c7b..73e5789ee07605f4f6c345886c43076b488b9968 100644 (file)
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.rmid.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.rmid.Main "$@"
index d08120af92272d0e2da3ba755813cdf0c0a2f510..e3bbb7386150a7b4ed43fa8f3d296ac75a894909 100644 (file)
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.rmiregistry.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.rmiregistry.Main "$@"
index 85aeea62d5198a7cb3f9e931270201fd2c407460..24acdeb81b4018aae8976a2a29c991969a5d7f73 100644 (file)
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.serialver.SerialVer "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.serialver.SerialVer "$@"
index 4fbcf371313d7f41f52c35ca9056b3016aedf4c0..119062d0939dc0d27a5ec312d5b8d01aaa692715 100644 (file)
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.tnameserv.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.tnameserv.Main "$@"
index 989fde74eeef9f69bceafbab73edfb6d62d81a92..17e79c453ac6687c2fd3012dd4879f4220bddf9a 100644 (file)
@@ -1,5 +1,5 @@
 # MessagesBundle.properties -- English language messages
-# Copyright (C) 2006  Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
 #
 # This file is part of GNU Classpath.
 #
@@ -37,4 +37,4 @@
 
 ClasspathToolParser.JArgument=pass argument to the Java runtime
 ClasspathToolParser.JName=OPTION
-ClasspathToolParser.VersionFormat={0} (GNU Classpath) {1}\n\nCopyright 2006 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ClasspathToolParser.VersionFormat={0} (GNU Classpath) {1}\n\nCopyright 2008 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl
new file mode 100644 (file)
index 0000000..2b5aec1
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- gjdoc_common.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Common templates for HTML generation.\r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:param name="gjdoc.outputfile.info" select="''"/>\r
+  <xsl:param name="gjdoc.refdocs1" select="''"/>\r
+  <xsl:param name="gjdoc.pathtoroot" select="''"/>\r
+  <xsl:param name="gjdoc.xmldoclet.version" select="''"/>\r
+  <xsl:param name="gjdoc.allowimages" select="0"/>\r
+  <xsl:param name="gjdoc.option.nonavbar" select="''"/>\r
+  <xsl:param name="gjdoc.option.noindex" select="''"/>\r
+  <xsl:param name="gjdoc.option.notree" select="''"/>\r
+  <xsl:param name="gjdoc.option.nohelp" select="''"/>\r
+  <xsl:param name="gjdoc.option.nocomment" select="''"/>\r
+  <xsl:param name="gjdoc.option.splitindex" select="''"/>\r
+  <xsl:param name="gjdoc.option.linksource" select="''"/>\r
+  <xsl:param name="gjdoc.option.windowtitle" select="''"/>\r
+  <xsl:param name="gjdoc.option.helpfile" select="''"/>\r
+  <xsl:param name="gjdoc.option.stylesheetfile" select="''"/>\r
+  <xsl:param name="gjdoc.option.header" select="''"/>\r
+  <xsl:param name="gjdoc.option.footer" select="''"/>\r
+  <xsl:param name="gjdoc.option.bottom" select="''"/>\r
+  <xsl:param name="gjdoc.option.doctitle" select="''"/>\r
+  <xsl:param name="gjdoc.option.nodeprecatedlist" select="''"/>\r
+  <xsl:param name="gjdoc.option.uses" select="''"/>\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl
new file mode 100644 (file)
index 0000000..fa78cb3
--- /dev/null
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- about.xsl
+     Copyright (C) 2004 Free Software Foundation, Inc.
+     
+     This file is part of GNU Classpath.
+     
+     GNU Classpath is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+     the Free Software Foundation; either version 2, or (at your option)
+     any later version.
+      
+     GNU Classpath is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+     
+     You should have received a copy of the GNU General Public License
+     along with GNU Classpath; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+     02111-1307 USA.
+     -->
+
+<!-- Creates the class descriptor files for HTML documentation. 
+     -->
+
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+  xmlns:html="http://www.w3.org/TR/REC-html40"
+  xmlns="http://www.w3.org/TR/REC-html40">
+
+  <xsl:include href="html_common.xsl"/>
+
+  <xsl:output method="html"
+    encoding="utf-8"
+    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+    doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+    indent="no"/>
+
+  <xsl:strip-space elements="*"/>
+
+  <xsl:template match="/">    
+    <html>
+      <head>
+        <xsl:call-template name="include_common"/>
+        <xsl:call-template name="output_title">
+          <xsl:with-param name="p_pagetitle" select="'Help'"/>
+        </xsl:call-template>
+      </head>
+      <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded()">
+
+        <div class="pagebody">
+
+        <!-- Top Navigation Bar -->
+        <xsl:call-template name="output_navbar">
+          <xsl:with-param name="p_show_package" select="0"/>
+          <xsl:with-param name="p_show_package_tree" select="0"/>
+          <xsl:with-param name="p_show_about" select="0"/>
+          <xsl:with-param name="p_curr_about" select="1"/>
+          <xsl:with-param name="p_top" select="1"/>
+        </xsl:call-template>
+
+        <h1 class="classdoc-title">About this API documentation</h1>
+
+        <div class="footer">
+          <xsl:text>Generated on</xsl:text><xsl:value-of select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:created"/><xsl:text> by </xsl:text><a href="http://www.gnu.org/software/cp-tools" target="cptoolsinfo"><xsl:text>GNU Classpath Tools</xsl:text></a><xsl:text> (Gjdoc XmlDoclet </xsl:text><xsl:value-of select="$gjdoc.xmldoclet.version"/><xsl:text>).</xsl:text>
+        </div>
+        
+        <!-- Bottom Navigation Bar -->
+        <xsl:call-template name="output_navbar">
+          <xsl:with-param name="p_show_package" select="0"/>
+          <xsl:with-param name="p_show_package_tree" select="0"/>
+          <xsl:with-param name="p_show_about" select="0"/>
+          <xsl:with-param name="p_curr_about" select="1"/>
+          <xsl:with-param name="p_top" select="0"/>
+        </xsl:call-template>
+        </div>
+      </body>
+    </html>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl
new file mode 100644 (file)
index 0000000..8739d19
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- allclasses.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Creates the allclasses.html file for HTML documentation. \r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:include href="html_common.xsl"/>\r
+\r
+  <xsl:output method="xml"\r
+    encoding="utf-8"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template match="/">\r
+      <html>\r
+        <head>\r
+          <title>\r
+            <xsl:value-of select="concat(/gjdoc:rootdoc/gjdoc:title, ' - All Classes')"/>\r
+          </title>\r
+          <xsl:call-template name="include_common"/>\r
+        </head>\r
+        <body onload="secondaryPageLoaded('classes');" class="menu allclasses">\r
+          <h3 class="menu-title">All Classes</h3>\r
+          <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@name">\r
+            <xsl:sort select="." order="ascending"/>\r
+            <xsl:variable name="v_url" select="concat(translate(../gjdoc:containingPackage/@name,'.','/'), '/', ../@name, '.html')"/>\r
+            <a href="{$v_url}" target="content" class="menu allclasses">\r
+              <xsl:value-of select="."/>\r
+            </a>\r
+            <br/>\r
+          </xsl:for-each>\r
+        </body>\r
+      </html>\r
+  </xsl:template>\r
+\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl
new file mode 100644 (file)
index 0000000..d4449ef
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- allpackages.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Creates the allpackages.html file for HTML documentation. \r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:include href="html_common.xsl"/>\r
+\r
+  <xsl:output method="xml"\r
+    encoding="utf-8"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template match="/">\r
+    <html>\r
+      <head>\r
+        <title>\r
+          <xsl:if test="document('index.xml',/)/gjdoc:rootdoc/gjdoc:title">\r
+            <xsl:value-of select="document('index.xml',/)/gjdoc:rootdoc/gjdoc:title"/>\r
+            <xsl:text> - </xsl:text>\r
+          </xsl:if>\r
+          <xsl:text>Packages</xsl:text>\r
+          <xsl:value-of select="@name"/>\r
+        </title>\r
+        <xsl:call-template name="include_common"/>\r
+      </head>\r
+      <body class="menu allpackages">\r
+        <h3 class="menu-title">\r
+          <a href="index_noframes.html" target="content">\r
+            <xsl:choose>\r
+              <xsl:when test="document('index.xml',/)/gjdoc:rootdoc/gjdoc:title">\r
+                <xsl:value-of select="document('index.xml',/)/gjdoc:rootdoc/gjdoc:title"/>\r
+              </xsl:when>\r
+              <xsl:otherwise>\r
+                <xsl:text>Packages</xsl:text>\r
+              </xsl:otherwise>\r
+            </xsl:choose>\r
+          </a>\r
+        </h3>\r
+        <a href="allclasses.html" target="classes" class="menu allpackages">All Classes</a><br/><br/>\r
+        <xsl:for-each select="gjdoc:rootdoc/gjdoc:specifiedpackage/@name">\r
+          <xsl:sort select="." order="ascending"/>\r
+          <a href="{concat(translate(., '.','/'), '/classes.html')}" target="classes" class="menu allpackages">\r
+            <xsl:value-of select="."/>\r
+          </a>\r
+          <br/>\r
+        </xsl:for-each>\r
+      </body>\r
+    </html>\r
+  </xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl
new file mode 100644 (file)
index 0000000..5aa915c
--- /dev/null
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- alphaindex.xsl
+     Copyright (C) 2003 Free Software Foundation, Inc.
+     
+     This file is part of GNU Classpath.
+     
+     GNU Classpath is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+     the Free Software Foundation; either version 2, or (at your option)
+     any later version.
+      
+     GNU Classpath is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+     
+     You should have received a copy of the GNU General Public License
+     along with GNU Classpath; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+     02111-1307 USA.
+     -->
+
+<!-- Creates the alphaindex.html file for HTML documentation. 
+     -->
+
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+  xmlns:html="http://www.w3.org/TR/REC-html40"
+  xmlns="http://www.w3.org/TR/REC-html40">
+
+  <xsl:include href="html_common.xsl"/>
+
+  <xsl:output method="xml"
+    encoding="utf-8"
+    indent="no"/>
+
+  <xsl:strip-space elements="*"/>
+
+  <xsl:template match="/">
+
+    <html>
+      <head>
+        <xsl:call-template name="output_title">
+          <xsl:with-param name="p_pagetitle" select="'Alphabetical Index'"/>
+        </xsl:call-template>
+        <xsl:call-template name="include_common"/>
+      </head>
+      <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
+
+        <!-- Top Navigation Bar -->
+        <xsl:call-template name="output_navbar">
+          <xsl:with-param name="p_show_frames" select="1"/>
+          <xsl:with-param name="p_show_noframes" select="1"/>
+          <xsl:with-param name="p_show_package" select="0"/>
+          <xsl:with-param name="p_show_package_tree" select="0"/>
+          <xsl:with-param name="p_show_full_tree" select="1"/>
+          <xsl:with-param name="p_show_index" select="0"/>
+          <xsl:with-param name="p_curr_index" select="1"/>
+          <xsl:with-param name="p_show_help" select="1"/>
+          <xsl:with-param name="p_top" select="1"/> 
+        </xsl:call-template>
+
+        <div class="pagebody">
+        <h1 class="classdoc-title">
+          Alphabetical Index
+        </h1>
+
+        <div class="index-categories">
+          <xsl:for-each select="document('alphaindex.xml',/)/gjdoc:alphaindex/gjdoc:category">
+            <xsl:choose>
+              <xsl:when test="@letter=$gjdoc.outputfile.info">
+                <span class="index-category-current"><xsl:value-of select="@letter"/></span>
+              </xsl:when>
+              <xsl:otherwise>
+                <a href="{concat('#category_', @letter)}" class="index-category-link"><xsl:value-of select="@letter"/></a>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:for-each>
+        </div>
+
+        <xsl:for-each select="document('alphaindex.xml',/)/gjdoc:alphaindex/gjdoc:category">
+          <a name="{concat('category_', @letter)}" class="classdoc"><h3 class="ignore"> </h3></a>
+          <h2><xsl:value-of select="@letter"/></h2>
+          <xsl:call-template name="output_alphaindex_category"/>
+        </xsl:for-each>
+        
+        <!-- Bottom Navigation Bar -->
+        <xsl:call-template name="output_navbar">
+          <xsl:with-param name="p_show_frames" select="1"/>
+          <xsl:with-param name="p_show_noframes" select="1"/>
+          <xsl:with-param name="p_show_package" select="0"/>
+          <xsl:with-param name="p_show_package_tree" select="0"/>
+          <xsl:with-param name="p_show_full_tree" select="1"/>
+          <xsl:with-param name="p_show_index" select="0"/>
+          <xsl:with-param name="p_curr_index" select="1"/>
+          <xsl:with-param name="p_show_help" select="1"/>
+          <xsl:with-param name="p_top" select="0"/> 
+        </xsl:call-template>
+        </div>
+      </body>
+    </html>
+    
+  </xsl:template>  
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl
new file mode 100644 (file)
index 0000000..e184738
--- /dev/null
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- alphaindex.xsl
+     Copyright (C) 2003 Free Software Foundation, Inc.
+     
+     This file is part of GNU Classpath.
+     
+     GNU Classpath is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+     the Free Software Foundation; either version 2, or (at your option)
+     any later version.
+      
+     GNU Classpath is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+     
+     You should have received a copy of the GNU General Public License
+     along with GNU Classpath; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+     02111-1307 USA.
+     -->
+
+<!-- Creates the alphaindex.html file for HTML documentation. 
+     -->
+
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+  xmlns:html="http://www.w3.org/TR/REC-html40"
+  xmlns="http://www.w3.org/TR/REC-html40">
+
+  <xsl:include href="html_common.xsl"/>
+
+  <xsl:output method="xml"
+    encoding="utf-8"
+    indent="no"/>
+
+  <xsl:strip-space elements="*"/>
+
+  <xsl:template match="/">
+
+    <html>
+      <head>
+        <xsl:call-template name="output_title">
+          <xsl:with-param name="p_pagetitle" select="concat('Alphabetical Index: ', $gjdoc.outputfile.info)"/>
+        </xsl:call-template>
+        <xsl:call-template name="include_common"/>
+      </head>
+      <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
+        <div class="pagebody">
+        <!-- Top Navigation Bar -->
+        <xsl:call-template name="output_navbar">
+          <xsl:with-param name="p_show_frames" select="1"/>
+          <xsl:with-param name="p_show_noframes" select="1"/>
+          <xsl:with-param name="p_show_package" select="0"/>
+          <xsl:with-param name="p_show_package_tree" select="0"/>
+          <xsl:with-param name="p_show_full_tree" select="1"/>
+          <xsl:with-param name="p_show_index" select="0"/>
+          <xsl:with-param name="p_curr_index" select="1"/>
+          <xsl:with-param name="p_show_help" select="1"/>
+          <xsl:with-param name="p_top" select="1"/> 
+        </xsl:call-template>
+
+        <h1 class="classdoc-title">
+          Alphabetical Index
+          <xsl:if test="$gjdoc.outputfile.info">
+            - 
+            <xsl:value-of select="$gjdoc.outputfile.info"/>
+          </xsl:if>
+        </h1>
+
+        <div class="index-categories">
+          <xsl:for-each select="document('alphaindex.xml',/)/gjdoc:alphaindex/gjdoc:category">
+            <xsl:choose>
+              <xsl:when test="@letter=$gjdoc.outputfile.info">
+                <span class="index-category-current"><xsl:value-of select="@letter"/></span>
+              </xsl:when>
+              <xsl:otherwise>
+                <a href="{concat('alphaindex_', @letter, '.html') class="index-category-link"}"><xsl:value-of select="@letter"/></a>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:for-each>
+        </div>
+
+        <xsl:if test="$gjdoc.outputfile.info">
+          <xsl:for-each select="document('alphaindex.xml',/)/gjdoc:alphaindex/gjdoc:category[@letter=$gjdoc.outputfile.info]">
+            <h2><xsl:value-of select="@letter"/></h2>
+            <xsl:call-template name="output_alphaindex_category"/>
+          </xsl:for-each>
+          
+        </xsl:if>
+
+        <!-- Bottom Navigation Bar -->
+        <xsl:call-template name="output_navbar">
+          <xsl:with-param name="p_show_frames" select="1"/>
+          <xsl:with-param name="p_show_noframes" select="1"/>
+          <xsl:with-param name="p_show_package" select="0"/>
+          <xsl:with-param name="p_show_package_tree" select="0"/>
+          <xsl:with-param name="p_show_full_tree" select="1"/>
+          <xsl:with-param name="p_show_index" select="0"/>
+          <xsl:with-param name="p_curr_index" select="1"/>
+          <xsl:with-param name="p_show_help" select="1"/>
+          <xsl:with-param name="p_top" select="0"/> 
+        </xsl:call-template>
+        </div>
+      </body>
+    </html>
+    
+  </xsl:template>  
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl
new file mode 100644 (file)
index 0000000..a6405e4
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- classdoc-source.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Outputs an HTML file showing the source code for the class\r
+     designated by $gjdoc.outputfile.info.\r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:include href="html_common.xsl"/>\r
+\r
+  <xsl:output method="html"\r
+    encoding="utf-8"\r
+    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"\r
+    doctype-system="http://www.w3.org/TR/html4/loose.dtd"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template match="/">\r
+    <xsl:for-each select="document(concat($gjdoc.outputfile.info, '.xml'),/gjdoc:rootdoc)/gjdoc:classdoc/gjdoc:source">\r
+      <html>\r
+      <head>\r
+        <xsl:call-template name="include_common"/>\r
+        <xsl:call-template name="output_title">\r
+          <xsl:with-param name="p_pagetitle" select="concat(ancestor::gjdoc:classdoc/@name, '.java')"/>\r
+        </xsl:call-template>\r
+      </head>\r
+        <body>\r
+          <xsl:copy-of select="."/>\r
+        </body>\r
+      </html>\r
+    </xsl:for-each>\r
+    \r
+  </xsl:template>\r
+\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl
new file mode 100644 (file)
index 0000000..17f9b3f
--- /dev/null
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- classdoc-uses.xsl\r
+     Copyright (C) 2004 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Outputs an HTML file showing the source code for the class\r
+     designated by $gjdoc.outputfile.info.\r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:include href="html_common.xsl"/>\r
+\r
+  <xsl:output method="html"\r
+    encoding="utf-8"\r
+    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"\r
+    doctype-system="http://www.w3.org/TR/html4/loose.dtd"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template match="gjdoc:referencing-package">\r
+    <h2 class="classdoc-header">\r
+      Uses in package\r
+      <xsl:value-of select="@name"/>\r
+    </h2>\r
+    <xsl:apply-templates/>\r
+  </xsl:template>\r
+\r
+  <xsl:template match="gjdoc:user">\r
+    <dt>\r
+      <xsl:choose>\r
+        <xsl:when test="@field">\r
+          <a href="{concat($gjdoc.pathtoroot, translate(ancestor::gjdoc:referencing-package/@name, '.', '/'), '/', @class, '.html#', @field)}">\r
+            <xsl:value-of select="concat(@class, '.', @field)"/>\r
+          </a>\r
+        </xsl:when>\r
+        <xsl:when test="@method">\r
+          <a href="{concat($gjdoc.pathtoroot, translate(ancestor::gjdoc:referencing-package/@name, '.', '/'), '/', @class, '.html#', @method, @signature)}">\r
+            <xsl:value-of select="concat(@class, '.', @method, @flatSignature)"/>\r
+          </a>\r
+        </xsl:when>\r
+        <xsl:when test="@class">\r
+          <a href="{concat($gjdoc.pathtoroot, translate(ancestor::gjdoc:referencing-package/@name, '.', '/'), '/', @class, '.html')}">\r
+            <xsl:value-of select="@class"/>\r
+          </a>\r
+        </xsl:when>\r
+      </xsl:choose>\r
+    </dt>\r
+  </xsl:template>\r
+\r
+  <xsl:template match="gjdoc:usage-type">\r
+\r
+    <h3 class="classdoc-header">\r
+      <xsl:variable name="v_qualifiedtypename"\r
+        select="ancestor::gjdoc:classdoc/@qualifiedtypename"/>\r
+      <xsl:variable name="v_packagename"\r
+        select="../@name"/>\r
+      <xsl:choose>\r
+        <xsl:when test="@id='class-derived-from'">\r
+          <xsl:text>Classes in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> derived from </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>\r
+        </xsl:when>\r
+        <xsl:when test="@id='field-of-type'">\r
+          <xsl:text>Fields in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> of type </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>\r
+        </xsl:when>\r
+        <xsl:when test="@id='method-with-return-type'">\r
+          <xsl:text>Methods in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> returning </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>\r
+        </xsl:when>\r
+        <xsl:when test="@id='method-with-parameter-type'">\r
+          <xsl:text>Methods in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> accepting parameters of type </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>\r
+        </xsl:when>\r
+        <xsl:when test="@id='method-with-thrown-type'">\r
+          <xsl:text>Methods in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> throwing </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>\r
+        </xsl:when>\r
+        <xsl:when test="@id='constructor-with-parameter-type'">\r
+          <xsl:text>Constructors in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> accepting parameters of type </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>\r
+        </xsl:when>\r
+        <xsl:when test="@id='constructor-with-thrown-type'">\r
+          <xsl:text>Constructors in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> throwing </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>\r
+        </xsl:when>\r
+        <xsl:otherwise>\r
+          <xsl:text>Unknown ID </xsl:text><xsl:value-of select="@id"/>\r
+        </xsl:otherwise>\r
+      </xsl:choose>\r
+    </h3>\r
+    <dl>\r
+      <xsl:apply-templates/>\r
+    </dl>\r
+  </xsl:template>\r
+\r
+  <xsl:template match="/">\r
+    <html>\r
+      <head>\r
+        <xsl:call-template name="include_common"/>\r
+        <xsl:call-template name="output_title">\r
+          <xsl:with-param name="p_pagetitle" select="concat(ancestor::gjdoc:classdoc/@name, ' Class Usage')"/>\r
+        </xsl:call-template>\r
+      </head>\r
+      <body>\r
+        <div class="pagebody">\r
+\r
+        <!-- Top Navigation Bar -->\r
+        <xsl:call-template name="output_navbar">\r
+          <xsl:with-param name="p_show_frames" select="1"/>\r
+          <xsl:with-param name="p_show_noframes" select="1"/>\r
+          <xsl:with-param name="p_show_package" select="1"/>\r
+          <xsl:with-param name="p_show_package_tree" select="1"/>\r
+          <xsl:with-param name="p_show_full_tree" select="1"/>\r
+          <xsl:with-param name="p_show_index" select="1"/>\r
+          <xsl:with-param name="p_show_help" select="1"/> \r
+          <xsl:with-param name="p_top" select="1"/> \r
+          <xsl:with-param name="p_show_source" select="concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>\r
+          <xsl:with-param name="p_show_class" select="concat($gjdoc.pathtoroot, translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>\r
+          <xsl:with-param name="p_curr_uses" select="1"/>\r
+        </xsl:call-template>\r
+        \r
+        <xsl:for-each select="document(concat($gjdoc.outputfile.info, '.xml'),/gjdoc:rootdoc)/gjdoc:classdoc/gjdoc:references">\r
+\r
+          <h1 class="classdoc-header">\r
+            Uses of class\r
+            <xsl:value-of select="ancestor::gjdoc:classdoc/@qualifiedtypename"/>\r
+            <xsl:apply-templates/>\r
+          </h1>\r
+        </xsl:for-each>\r
+\r
+        <!-- Bottom Navigation Bar -->\r
+        <xsl:call-template name="output_navbar">\r
+          <xsl:with-param name="p_show_frames" select="1"/>\r
+          <xsl:with-param name="p_show_noframes" select="1"/>\r
+          <xsl:with-param name="p_show_package" select="1"/>\r
+          <xsl:with-param name="p_show_package_tree" select="1"/>\r
+          <xsl:with-param name="p_show_full_tree" select="1"/>\r
+          <xsl:with-param name="p_show_index" select="1"/>\r
+          <xsl:with-param name="p_show_help" select="1"/> \r
+          <xsl:with-param name="p_top" select="0"/> \r
+          <xsl:with-param name="p_show_source" select="concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>\r
+          <xsl:with-param name="p_show_class" select="concat($gjdoc.pathtoroot, translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>\r
+          <xsl:with-param name="p_curr_uses" select="1"/>\r
+        </xsl:call-template>\r
+\r
+        </div>\r
+      </body>\r
+    </html>\r
+  \r
+  </xsl:template>\r
+\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl
new file mode 100644 (file)
index 0000000..e54e5fb
--- /dev/null
@@ -0,0 +1,1070 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- classdoc.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Creates the class descriptor files for HTML documentation. \r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:include href="html_common.xsl"/>\r
+\r
+  <xsl:output method="html"\r
+    encoding="utf-8"\r
+    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"\r
+    doctype-system="http://www.w3.org/TR/html4/loose.dtd"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template match="gjdoc:tag[attribute::kind='@see'][attribute::name='@link']">\r
+    <xsl:call-template name="output_link_tag"/>\r
+  </xsl:template>\r
+\r
+  <xsl:template mode="pre" match="*">\r
+    <xsl:choose>\r
+      <xsl:when test="'pre'=local-name(.)">\r
+        <xsl:apply-templates mode="pre"/>\r
+      </xsl:when>\r
+      <xsl:otherwise>\r
+        <xsl:copy-of select="."/>\r
+      </xsl:otherwise>\r
+    </xsl:choose>\r
+  </xsl:template>\r
+\r
+  <xsl:template mode="pre" match="text()[position()=last()]">\r
+    <xsl:call-template name="strip_trailing_ws">\r
+      <xsl:with-param name="p_content" select="."/>\r
+    </xsl:call-template>\r
+  </xsl:template>\r
+\r
+  <xsl:template name="strip_trailing_ws">\r
+    <xsl:param name="p_content"/>\r
+\r
+    <xsl:if test="normalize-space($p_content)!=''">\r
+      <xsl:choose>\r
+        <xsl:when test="normalize-space(substring($p_content, string-length($p_content), 1))=''">\r
+          <xsl:call-template name="strip_trailing_ws">\r
+            <xsl:with-param name="p_content">\r
+              <xsl:value-of select="substring($p_content, 1, string-length($p_content)-1)"/>\r
+            </xsl:with-param>\r
+          </xsl:call-template>\r
+        </xsl:when>\r
+        <xsl:otherwise>\r
+          <xsl:copy-of select="$p_content"/>\r
+        </xsl:otherwise>\r
+      </xsl:choose>\r
+    </xsl:if>\r
+  </xsl:template>\r
+\r
+  <xsl:template match="*">\r
+    <xsl:element name="{name()}">\r
+      <xsl:for-each select="attribute::*">\r
+        <xsl:attribute name="{name()}">\r
+          <xsl:value-of select="."/>              \r
+        </xsl:attribute>\r
+      </xsl:for-each>\r
+      <xsl:choose>\r
+        <xsl:when test="name()='pre'">\r
+          <xsl:apply-templates select="." mode="pre"/>\r
+        </xsl:when>\r
+        <xsl:otherwise>\r
+          <xsl:apply-templates/>\r
+        </xsl:otherwise>\r
+      </xsl:choose>        \r
+    </xsl:element>\r
+  </xsl:template>\r
+\r
+  <xsl:template match="/">\r
+\r
+    <xsl:for-each select="document(concat($gjdoc.outputfile.info, '.xml'),/gjdoc:rootdoc)/gjdoc:classdoc">\r
+      <xsl:call-template name="create_classdoc"/>\r
+    </xsl:for-each>\r
+\r
+  </xsl:template>\r
+\r
+  <!-- For every classdoc node found in the source XML, create a corresponding -->\r
+  <!-- class rootdoc HTML file. -->\r
+  \r
+  <xsl:template name="create_classdoc">\r
+\r
+    <xsl:variable name="v_sub_xml_filename">\r
+      <xsl:value-of select="concat(@qualifiedtypename,'.xml')"/>\r
+    </xsl:variable>  \r
+    \r
+    <html>\r
+      <head>\r
+        <xsl:call-template name="output_title">\r
+          <xsl:with-param name="p_pagetitle" select="@name"/>\r
+        </xsl:call-template>\r
+        <xsl:call-template name="include_common"/>\r
+      </head>\r
+      <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">\r
+\r
+        <div class="pagebody">\r
+\r
+        <xsl:call-template name="classdoc_header"/>\r
+        <xsl:call-template name="classdoc_all_field_summary">\r
+          <xsl:with-param name="v_sub_xml_filename">\r
+            <xsl:value-of select="$v_sub_xml_filename"/>\r
+          </xsl:with-param>\r
+        </xsl:call-template>\r
+        <xsl:call-template name="classdoc_all_constructor_summary">\r
+          <xsl:with-param name="v_sub_xml_filename">\r
+            <xsl:value-of select="$v_sub_xml_filename"/>\r
+          </xsl:with-param>\r
+        </xsl:call-template>\r
+        <xsl:call-template name="classdoc_all_method_summary">\r
+          <xsl:with-param name="v_sub_xml_filename">\r
+            <xsl:value-of select="$v_sub_xml_filename"/>\r
+          </xsl:with-param>\r
+        </xsl:call-template>\r
+        \r
+        <xsl:if test="gjdoc:fielddoc">\r
+          <h1 class="classdoc-header">Field Details</h1>\r
+          \r
+          <xsl:for-each select="gjdoc:fielddoc">\r
+            <xsl:sort select="@name" order="ascending"/>\r
+            <xsl:call-template name="classdoc_field_details"/>\r
+          </xsl:for-each>\r
+        </xsl:if>\r
+        \r
+        <xsl:if test="gjdoc:constructordoc">\r
+          <h1 class="classdoc-header">Constructor Details</h1>\r
+          \r
+          <xsl:for-each select="gjdoc:constructordoc">\r
+            <xsl:sort select="gjdoc:signature/@full" order="ascending"/>\r
+            <xsl:call-template name="classdoc_method_details"/>\r
+          </xsl:for-each>\r
+        </xsl:if>\r
+        \r
+        <xsl:if test="gjdoc:methoddoc">\r
+          <h1 class="classdoc-header">Method Details</h1>\r
+          \r
+          <xsl:for-each select="gjdoc:methoddoc">\r
+            <xsl:sort select="@name" order="ascending"/>\r
+            <xsl:sort select="gjdoc:signature/@full" order="ascending"/>\r
+            <xsl:call-template name="classdoc_method_details"/>\r
+          </xsl:for-each>\r
+        </xsl:if>\r
+\r
+        <!-- Bottom Navigation Bar -->\r
+        <xsl:call-template name="output_navbar">\r
+          <xsl:with-param name="p_show_frames" select="1"/>\r
+          <xsl:with-param name="p_show_noframes" select="1"/>\r
+          <xsl:with-param name="p_show_package" select="1"/>\r
+          <xsl:with-param name="p_show_package_tree" select="1"/>\r
+          <xsl:with-param name="p_show_full_tree" select="1"/>\r
+          <xsl:with-param name="p_show_index" select="1"/>\r
+          <xsl:with-param name="p_show_help" select="1"/> \r
+          <xsl:with-param name="p_top" select="0"/> \r
+          <xsl:with-param name="p_show_source" select="concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>\r
+          <xsl:with-param name="p_show_use" select="concat($gjdoc.pathtoroot, 'class-use/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>\r
+          <xsl:with-param name="p_curr_class" select="1"/>\r
+        </xsl:call-template>\r
+        \r
+        </div>\r
+      </body>\r
+    </html>\r
+  </xsl:template>\r
+\r
+  <!-- Output header for Class documentation  -->\r
+  \r
+  <xsl:template name="classdoc_header">\r
+    \r
+    <!-- Top Navigation Bar -->\r
+    <xsl:call-template name="output_navbar">\r
+      <xsl:with-param name="p_show_frames" select="1"/>\r
+      <xsl:with-param name="p_show_noframes" select="1"/>\r
+      <xsl:with-param name="p_show_package" select="1"/>\r
+      <xsl:with-param name="p_show_package_tree" select="1"/>\r
+      <xsl:with-param name="p_show_full_tree" select="1"/>\r
+      <xsl:with-param name="p_show_index" select="1"/>\r
+      <xsl:with-param name="p_show_help" select="1"/> \r
+      <xsl:with-param name="p_top" select="1"/> \r
+      <xsl:with-param name="p_show_source" select="concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>\r
+      <xsl:with-param name="p_show_use" select="concat($gjdoc.pathtoroot, 'class-use/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>\r
+      <xsl:with-param name="p_curr_class" select="1"/>\r
+    </xsl:call-template>\r
+\r
+    <div class="classdoc-head">\r
+\r
+        <div class="classdoc-head-packagename classdoc-subtitle">\r
+          <xsl:value-of select="gjdoc:containingPackage/@name"/>\r
+        </div>\r
+    \r
+        <h1 class="classdoc-head-classname classdoc-title">\r
+          <xsl:choose>\r
+            <xsl:when test="gjdoc:isInterface">\r
+              <xsl:text>Interface </xsl:text>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+              <xsl:text>Class </xsl:text>\r
+            </xsl:otherwise>\r
+          </xsl:choose>\r
+          <xsl:value-of select="@name"/>\r
+        </h1>\r
+\r
+    </div>\r
+\r
+    <xsl:if test="gjdoc:isClass">\r
+      <xsl:call-template name="classdoc_heritage_tree"/>\r
+    </xsl:if>\r
+\r
+    <xsl:if test="gjdoc:containingClass">\r
+      <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>\r
+      <b>Enclosing Class:</b><br/>\r
+      <xsl:call-template name="link_to_class">\r
+        <xsl:with-param name="p_name" select="gjdoc:containingClass/@typename"/>\r
+        <xsl:with-param name="p_qualifiedname" select="gjdoc:containingClass/@qualifiedtypename"/>\r
+      </xsl:call-template>\r
+    </xsl:if>\r
+    \r
+    <xsl:if test="gjdoc:implements">\r
+      <p/>\r
+      <b>\r
+        <xsl:choose>\r
+          <xsl:when test="gjdoc:isInterface">\r
+            <xsl:text>All Superinterfaces:</xsl:text>\r
+          </xsl:when>\r
+          <xsl:otherwise>\r
+            <xsl:text>All Implemented Interfaces:</xsl:text>\r
+          </xsl:otherwise>\r
+        </xsl:choose>\r
+      </b>\r
+      <br/>\r
+      <xsl:for-each select="gjdoc:implements|gjdoc:superimplements">\r
+        <xsl:sort select="@qualifiedtypename" order="ascending"/>\r
+        <xsl:call-template name="link_to_class">\r
+          <xsl:with-param name="p_name" select="@typename"/>\r
+          <xsl:with-param name="p_qualifiedname" select="@qualifiedtypename"/>\r
+        </xsl:call-template>\r
+        <xsl:if test="position() != last()">\r
+          <xsl:text>, </xsl:text>\r
+        </xsl:if>\r
+      </xsl:for-each>\r
+    </xsl:if>\r
+    <p/>\r
+\r
+    <xsl:if test="gjdoc:isInterface">\r
+      <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>\r
+      <xsl:variable name="v_implementors" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[child::gjdoc:isInterface]/gjdoc:implements[attribute::qualifiedtypename=$v_qualifiedtypename]"/>\r
+      <xsl:if test="$v_implementors">\r
+        <b>All Known Direct Subinterfaces:</b><br/>\r
+        <xsl:for-each select="$v_implementors">\r
+          <xsl:sort select="../@qualifiedtypename" order="ascending"/>\r
+          <xsl:call-template name="link_to_class">\r
+            <xsl:with-param name="p_name" select="../@name"/>\r
+            <xsl:with-param name="p_qualifiedname" select="../@qualifiedtypename"/>\r
+          </xsl:call-template>\r
+          <xsl:if test="position() != last()">\r
+            <xsl:text>, </xsl:text>\r
+          </xsl:if>\r
+        </xsl:for-each>\r
+      </xsl:if>\r
+    </xsl:if>\r
+\r
+    <xsl:if test="gjdoc:isInterface">\r
+      <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>\r
+      <xsl:variable name="v_implementors" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[child::gjdoc:isClass]/gjdoc:implements[attribute::qualifiedtypename=$v_qualifiedtypename]"/>\r
+      <xsl:if test="$v_implementors">\r
+        <b>Known Implementing Classes:</b><br/>\r
+        <xsl:for-each select="$v_implementors">\r
+          <xsl:sort select="../@qualifiedtypename" order="ascending"/>\r
+          <xsl:call-template name="link_to_class">\r
+            <xsl:with-param name="p_name" select="../@name"/>\r
+            <xsl:with-param name="p_qualifiedname" select="../@qualifiedtypename"/>\r
+          </xsl:call-template>\r
+          <xsl:if test="position() != last()">\r
+            <xsl:text>, </xsl:text>\r
+          </xsl:if>\r
+        </xsl:for-each>\r
+      </xsl:if>\r
+    </xsl:if>\r
+\r
+    <xsl:if test="gjdoc:isClass">\r
+      <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>\r
+      <xsl:variable name="v_implementors" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[not(child::gjdoc:isInterface)]/gjdoc:superclass[attribute::qualifiedtypename=$v_qualifiedtypename]"/>\r
+      <xsl:if test="$v_implementors">\r
+        <b>Known Direct Subclasses:</b><br/>\r
+        <xsl:for-each select="$v_implementors">\r
+          <xsl:sort select="../@qualifiedtypename" order="ascending"/>\r
+          <xsl:call-template name="link_to_class">\r
+            <xsl:with-param name="p_name" select="../@name"/>\r
+            <xsl:with-param name="p_qualifiedname" select="../@qualifiedtypename"/>\r
+          </xsl:call-template>\r
+          <xsl:if test="position() != last()">\r
+            <xsl:text>, </xsl:text>\r
+          </xsl:if>\r
+        </xsl:for-each>\r
+      </xsl:if>\r
+    </xsl:if>\r
+\r
+    <hr/>\r
+    \r
+    <div class="classdoc-prototype">\r
+\r
+      <!-- 'public final class Byte' -->\r
+      \r
+      <xsl:value-of select="gjdoc:access/@scope"/><xsl:text> </xsl:text>\r
+      <xsl:if test="gjdoc:isStatic"><xsl:text>static </xsl:text></xsl:if>\r
+      <xsl:if test="gjdoc:isFinal"><xsl:text>final </xsl:text></xsl:if>\r
+      <xsl:choose>\r
+        <xsl:when test="gjdoc:isInterface">\r
+          <xsl:text>interface </xsl:text>\r
+        </xsl:when>\r
+        <xsl:otherwise>\r
+          <xsl:if test="gjdoc:isAbstract"><xsl:text>abstract </xsl:text></xsl:if>\r
+          <xsl:text>class </xsl:text>\r
+        </xsl:otherwise>\r
+      </xsl:choose>\r
+\r
+      <xsl:call-template name="link_to_class_source"/><br/>\r
+    \r
+      <!-- 'extends Number' -->\r
+      \r
+      <xsl:if test="gjdoc:isClass and @qualifiedtypename!='java.lang.Object'">\r
+        <xsl:text>extends </xsl:text>\r
+        <xsl:call-template name="link_to_class">\r
+          <xsl:with-param name="p_qualifiedname">\r
+            <xsl:value-of select="gjdoc:superclass/@qualifiedtypename"/>\r
+          </xsl:with-param>\r
+          <xsl:with-param name="p_name">\r
+            <xsl:value-of select="gjdoc:superclass/@typename"/>\r
+          </xsl:with-param>\r
+        </xsl:call-template>\r
+        <br/>\r
+      </xsl:if>\r
+      \r
+      <!-- 'implements Comparable' -->\r
+      \r
+      <xsl:if test="gjdoc:implements">\r
+        <xsl:text>implements </xsl:text>\r
+      </xsl:if>\r
+      <xsl:for-each select="gjdoc:implements">\r
+        <xsl:call-template name="link_to_class">\r
+          <xsl:with-param name="p_qualifiedname">\r
+            <xsl:value-of select="@qualifiedtypename"/>\r
+          </xsl:with-param>\r
+          <xsl:with-param name="p_name">\r
+            <xsl:value-of select="@typename"/>\r
+          </xsl:with-param>\r
+        </xsl:call-template>\r
+        <xsl:if test="position() != last()">\r
+          <xsl:text>, </xsl:text>\r
+        </xsl:if>\r
+      </xsl:for-each>\r
+      \r
+    </div>\r
+    \r
+    <!-- Documentation -->\r
+    \r
+    <p/>\r
+    \r
+    <xsl:if test="gjdoc:inlineTags">\r
+      <div class="classdoc-class-comment-body">\r
+        <xsl:for-each select="gjdoc:inlineTags/node()">\r
+          <xsl:apply-templates select="."/>\r
+        </xsl:for-each>\r
+      </div>\r
+    </xsl:if>\r
+\r
+    <xsl:call-template name="output_see_tags"/>\r
+    <xsl:call-template name="output_taglet_tags"/>\r
+\r
+  </xsl:template>\r
+\r
+  <xsl:template name="output_taglet_tags">\r
+\r
+    <xsl:for-each select="gjdoc:tags/gjdoc:tag">\r
+      <xsl:choose>\r
+        <xsl:when test="@name='@deprecated'">\r
+          <div class="classdoc-tag-section-header">\r
+            <xsl:value-of select="'Deprecated:'"/>\r
+          </div>\r
+          <dl class="classdoc-list">\r
+            <xsl:for-each select="gjdoc:inlineTags">\r
+              <xsl:apply-templates/>\r
+            </xsl:for-each>\r
+          </dl>\r
+        </xsl:when>\r
+        <xsl:when test="@taglet-generated">\r
+          <xsl:copy-of select="./*"/>\r
+        </xsl:when>\r
+      </xsl:choose>\r
+    </xsl:for-each>\r
+    \r
+  </xsl:template>\r
+\r
+  <!-- Output summary of all fields in this class -->\r
+\r
+  <xsl:template name="classdoc_all_field_summary">\r
+\r
+    <xsl:if test=".//gjdoc:fielddoc">    \r
+    \r
+      <table border="1" cellspacing="0" class="classdoc-table">\r
+        <tr><td class="section-header" colspan="2"><div class="section-header">Field Summary</div></td></tr>\r
+        <xsl:for-each select="gjdoc:fielddoc">\r
+          <xsl:sort select="@name" order="ascending"/>\r
+          <xsl:call-template name="classdoc_field_summary_tr"/>  \r
+        </xsl:for-each>\r
+      </table>\r
+\r
+      <xsl:for-each select="gjdoc:superclass">\r
+        <xsl:call-template name="output_superclass_fields"/>\r
+      </xsl:for-each>\r
+    </xsl:if>\r
+\r
+  </xsl:template>\r
\r
+  <!-- Output summary of all methods in this class -->\r
+  \r
+  <xsl:template name="classdoc_all_method_summary">\r
+    \r
+    <xsl:if test=".//gjdoc:methoddoc">\r
+      <table border="1" cellspacing="0" class="classdoc-table">\r
+        <tr><td class="section-header" colspan="2"><div class="section-header">Method Summary</div></td></tr>\r
+        <xsl:for-each select="gjdoc:methoddoc">\r
+          <xsl:sort select="@name" order="ascending"/>\r
+          <xsl:call-template name="classdoc_method_summary_tr"/>  \r
+        </xsl:for-each>\r
+      </table>\r
+\r
+      <xsl:for-each select="gjdoc:superclass">\r
+        <xsl:call-template name="output_superclass_methods"/>\r
+      </xsl:for-each>\r
+    </xsl:if>\r
+    \r
+  </xsl:template>\r
+  \r
+  <!-- Output summary of all constructors in this class -->\r
+  \r
+  <xsl:template name="classdoc_all_constructor_summary">\r
+    \r
+    <xsl:if test=".//gjdoc:constructordoc">\r
+      <!--\r
+      <h1 class="classdoc-header">Constructor Summary</h1>\r
+-->\r
+    \r
+      <table class="classdoc-table">\r
+        <tr><td class="section-header" colspan="2"><div class="section-header">Constructor Summary</div></td></tr>\r
+        <xsl:for-each select="gjdoc:constructordoc">\r
+          <xsl:sort select="@name" order="ascending"/>\r
+          <xsl:call-template name="classdoc_method_summary_tr"/>  \r
+        </xsl:for-each>\r
+      </table>\r
+    </xsl:if>\r
+\r
+  </xsl:template>\r
+  \r
+  <!-- Output summary of a single field -->\r
+  \r
+  <xsl:template name="classdoc_field_summary_tr">\r
+    \r
+    <tr valign="top">\r
+\r
+      <!-- Left table cell: Modifiers and Return Type  -->\r
+      \r
+      <td valign="top" class="member-summary field modifiers">\r
+        <code class="member-summary field modifiers">\r
+          <xsl:call-template name="output_modifiers_summary"/>\r
+          <xsl:call-template name="link_to_class">\r
+            <xsl:with-param name="p_name">\r
+              <xsl:value-of select="gjdoc:type/@typename"/>\r
+            </xsl:with-param>\r
+            <xsl:with-param name="p_qualifiedname">\r
+              <xsl:value-of select="gjdoc:type/@qualifiedtypename"/>\r
+            </xsl:with-param>\r
+          </xsl:call-template>\r
+          <xsl:value-of select="gjdoc:type/@dimension"/>\r
+        </code>\r
+      </td>\r
+\r
+      <!-- Right table cell: name and short description  -->\r
+      \r
+      <td class="member-summary field name">\r
+        <!-- Method signature -->\r
+        \r
+        <!-- Link to field definition -->\r
+          \r
+        <code class="member-summary field name">\r
+          <a href="{concat('#',@name)}" class="field name"><xsl:value-of select="@name"/></a>\r
+        </code>\r
+\r
+        <!-- Brief description of field -->\r
+        \r
+        <blockquote class="member-summary field comment">\r
+          <xsl:for-each select="gjdoc:firstSentenceTags/node()">\r
+            <xsl:value-of select="." disable-output-escaping="yes"/>\r
+          </xsl:for-each>\r
+        </blockquote>\r
+      </td>\r
+\r
+    </tr>\r
+\r
+  </xsl:template>\r
+  \r
+  <xsl:template name="output_modifiers">\r
+    <xsl:if test="gjdoc:isNative">\r
+      <xsl:text>native </xsl:text>\r
+    </xsl:if>\r
+    <xsl:if test="gjdoc:isStatic">\r
+      <xsl:text>static </xsl:text>\r
+    </xsl:if>\r
+    <xsl:if test="gjdoc:isFinal">\r
+      <xsl:text>final </xsl:text>\r
+    </xsl:if>\r
+    <xsl:if test="gjdoc:isAbstract">\r
+      <xsl:text>abstract </xsl:text>\r
+    </xsl:if>\r
+    <xsl:if test="gjdoc:isTransient">\r
+      <xsl:text>transient </xsl:text>\r
+    </xsl:if>\r
+    <xsl:if test="gjdoc:isVolatile">\r
+      <xsl:text>volatile </xsl:text>\r
+    </xsl:if>\r
+    <xsl:if test="gjdoc:isSynchronized">\r
+      <xsl:text>synchronized </xsl:text>\r
+    </xsl:if>\r
+  </xsl:template>\r
+  \r
+  <xsl:template name="output_modifiers_summary">\r
+    <xsl:if test="gjdoc:isStatic">\r
+      <xsl:text>static </xsl:text>\r
+    </xsl:if>\r
+    <xsl:if test="gjdoc:isAbstract">\r
+      <xsl:text>abstract </xsl:text>\r
+    </xsl:if>\r
+    <xsl:if test="gjdoc:isTransient">\r
+      <xsl:text>transient </xsl:text>\r
+    </xsl:if>\r
+    <xsl:if test="gjdoc:isVolatile">\r
+      <xsl:text>volatile </xsl:text>\r
+    </xsl:if>\r
+    <xsl:if test="gjdoc:isSynchronized">\r
+      <xsl:text>synchronized </xsl:text>\r
+    </xsl:if>\r
+  </xsl:template>\r
+  \r
+  <!-- Output summary of a single method or constructor -->\r
+  \r
+  <xsl:template name="classdoc_method_summary_tr">\r
+    \r
+    <tr valign="top">\r
+      \r
+      <!-- Left table cell: Modifiers and Return Type  -->\r
+      \r
+      <xsl:if test="gjdoc:isMethod">\r
+        <td valign="top" class="member-summary method modifiers">\r
+          <code class="member-summary method modifiers">\r
+            <xsl:call-template name="output_modifiers_summary"/>\r
+            <xsl:text> </xsl:text>\r
+            <xsl:call-template name="link_to_class">\r
+              <xsl:with-param name="p_qualifiedname" select="gjdoc:returns/@qualifiedtypename"/>\r
+              <xsl:with-param name="p_name" select="gjdoc:returns/@typename"/>\r
+            </xsl:call-template>\r
+            <xsl:value-of select="gjdoc:returns/@dimension"/>\r
+          </code>\r
+        </td>\r
+      </xsl:if>\r
+      \r
+      <!-- Right table cell: signature and short description  -->\r
+      \r
+      <td align="left" valign="top" class="member-summary method name">\r
+        \r
+        <!-- Method signature -->\r
+        \r
+        <code class="member-summary method signature">\r
+          \r
+          <!-- Link to method definition -->\r
+          \r
+          <a href="{concat('#',@name,gjdoc:signature/@full)}" class="member-summary method name"><xsl:value-of select="@name"/></a>\r
+          \r
+          <!-- Parameter List -->\r
+          \r
+          <xsl:text>(</xsl:text>\r
+          <xsl:call-template name="list_parameters"/>\r
+          <xsl:text>)</xsl:text>\r
+        </code>\r
+        \r
+        <!-- Brief description of Method -->\r
+        \r
+        <blockquote class="member-summary method comment">\r
+          <xsl:choose>\r
+            <xsl:when test="gjdoc:tags/gjdoc:tag[@kind='@deprecated']">\r
+              <i>\r
+                <b>Deprecated. </b>\r
+                <xsl:for-each select="gjdoc:tags/gjdoc:tag[@kind='@deprecated']/gjdoc:firstSentenceTags">\r
+                  <xsl:apply-templates/>\r
+                </xsl:for-each>\r
+              </i>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+              <xsl:for-each select="gjdoc:firstSentenceTags/node()">\r
+                <xsl:value-of disable-output-escaping="yes" select="."/>\r
+              </xsl:for-each>\r
+            </xsl:otherwise>\r
+          </xsl:choose>\r
+        </blockquote>\r
+      </td>\r
+    </tr>\r
+    \r
+  </xsl:template>\r
+  \r
+  <!-- Output a list of all parameters of the current methoddoc  -->\r
+  <xsl:template name="list_parameters">\r
+    <xsl:for-each select="gjdoc:parameter">\r
+      <span class="parameter">\r
+        <xsl:call-template name="link_to_class">\r
+          <xsl:with-param name="p_qualifiedname">\r
+            <xsl:value-of select="@qualifiedtypename"/>\r
+          </xsl:with-param>\r
+          <xsl:with-param name="p_name">\r
+            <xsl:value-of select="@typename"/>\r
+          </xsl:with-param>\r
+        </xsl:call-template>\r
+        <xsl:value-of select="@dimension"/>\r
+        <xsl:text disable-output-escaping="no">&#160;</xsl:text>\r
+        <xsl:value-of select="@name"/>\r
+        <xsl:if test="position() != last()">\r
+          <xsl:text>,</xsl:text>\r
+        </xsl:if>\r
+      </span>\r
+      <xsl:if test="position() != last()">\r
+        <xsl:text> </xsl:text>\r
+      </xsl:if>\r
+    </xsl:for-each>\r
+  </xsl:template>\r
+  \r
+  <xsl:template name="list_parameter_details">\r
+    <dl class="classdoc-list">\r
+      <xsl:for-each select="gjdoc:parameter">\r
+        <dt>\r
+          <span class="prototype-name">\r
+            <xsl:value-of select="@name"/>\r
+          </span>\r
+          <xsl:variable name="param_position" select="position()"/>\r
+\r
+          <xsl:if test="../gjdoc:tags/gjdoc:tag[attribute::kind='@param' and position()=$param_position]">\r
+            <xsl:text> - </xsl:text>\r
+            <xsl:for-each select="../gjdoc:tags/gjdoc:tag[attribute::kind='@param' and position()=$param_position]/gjdoc:inlineTags/node()">\r
+              <xsl:copy-of select="."/>\r
+            </xsl:for-each>\r
+          </xsl:if>\r
+        </dt>\r
+      </xsl:for-each>\r
+    </dl>\r
+  </xsl:template>\r
+\r
+  <xsl:template name="output_see_tags">\r
+    <xsl:if test="gjdoc:tags/gjdoc:tag[attribute::kind='@see']">\r
+      <div class="classdoc-tag-section-header"><b>See Also:</b></div>\r
+\r
+      <dl class="classdoc-list">\r
+        <xsl:for-each select="gjdoc:tags/gjdoc:tag[attribute::kind='@see']">\r
+          <!--\r
+          <xsl:variable name="v_see" select="normalize-space(.)"/>\r
+          -->\r
+          <dt>\r
+            <code>\r
+              <xsl:call-template name="output_link_tag"/>\r
+            </code>\r
+          </dt>\r
+        </xsl:for-each>\r
+      </dl>\r
+    </xsl:if>\r
+  </xsl:template>\r
+\r
+  <!-- Output details of all fields in this class -->\r
+  \r
+  <xsl:template name="classdoc_field_details">\r
+\r
+    <a name="{@name}" class="classdoc"> </a>\r
+    <div class="before-details"> </div>\r
+\r
+    <h3><xsl:value-of select="@name"/></h3>\r
+    \r
+    <p class="prototype"><code>\r
+      <xsl:value-of select="gjdoc:access/@scope"/>\r
+      <xsl:text> </xsl:text>\r
+      <xsl:call-template name="output_modifiers"/>\r
+      <xsl:value-of select="gjdoc:type/@typename"/>\r
+      <xsl:value-of select="gjdoc:type/@dimension"/>\r
+      <xsl:text> </xsl:text>\r
+      <xsl:call-template name="link_to_member_source"/>\r
+    </code></p>\r
+\r
+    <p/>\r
+    \r
+    <!-- Full comment text -->\r
+    \r
+    <xsl:if test="gjdoc:inlineTags">\r
+      <div class="classdoc-comment-body">\r
+        <xsl:for-each select="gjdoc:inlineTags/node()">\r
+          <xsl:apply-templates select="."/>\r
+        </xsl:for-each>\r
+      </div>\r
+    </xsl:if>\r
+      \r
+    <p/>\r
+\r
+    <xsl:call-template name="output_taglet_tags"/>\r
+\r
+    <!-- See Also -->\r
+\r
+    <xsl:call-template name="output_see_tags"/>\r
+\r
+    <xsl:if test="position()!=last()">\r
+      <hr/>\r
+    </xsl:if>\r
+\r
+  </xsl:template>\r
+\r
+  \r
+  <!-- Output details of all methods in this class -->\r
+  \r
+  <xsl:template name="classdoc_method_details">\r
+\r
+    <a name="{concat(@name,gjdoc:signature/@full)}" class="classdoc"> </a>\r
+    <div class="before-details"> </div>\r
+    \r
+    <h3><xsl:value-of select="@name"/></h3>\r
+    \r
+    <p class="prototype"><code>\r
+      <xsl:value-of select="gjdoc:access/@scope"/>\r
+      <xsl:text> </xsl:text>\r
+      <xsl:call-template name="output_modifiers"/>\r
+      <xsl:value-of select="gjdoc:returns/@typename"/><xsl:value-of select="gjdoc:returns/@dimension"/>\r
+      <xsl:text> </xsl:text>\r
+      <xsl:call-template name="link_to_member_source"/>\r
+      <xsl:text>(</xsl:text>\r
+      <xsl:call-template name="list_parameters"/>\r
+      <xsl:text>)</xsl:text>\r
+    </code></p>    \r
+    \r
+    <!-- Full comment text -->\r
+    \r
+    <xsl:if test="gjdoc:inlineTags">\r
+      <div class="classdoc-comment-body">\r
+        <xsl:for-each select="gjdoc:inlineTags/node()">\r
+          <xsl:apply-templates select="."/>\r
+        </xsl:for-each>\r
+      </div>\r
+    </xsl:if>\r
+\r
+    <p/>\r
+\r
+    <xsl:call-template name="output_taglet_tags"/>\r
+    \r
+    <xsl:if test="gjdoc:parameter">\r
+      <div class="classdoc-tag-section-header"><b>Parameters:</b></div>\r
+      <xsl:call-template name="list_parameter_details"/>\r
+    </xsl:if>\r
+    \r
+    <xsl:if test="gjdoc:tags/gjdoc:tag[attribute::kind='@return']">\r
+      <div class="classdoc-tag-section-header"><b>Returns:</b></div>\r
+      <dl class="classdoc-list">\r
+        <dt>\r
+          <xsl:for-each select="gjdoc:tags/gjdoc:tag[attribute::kind='@return']">\r
+            <xsl:value-of select="." disable-output-escaping="yes"/>\r
+          </xsl:for-each>\r
+        </dt>\r
+      </dl>\r
+    </xsl:if>\r
+    \r
+    <xsl:if test="gjdoc:tags/gjdoc:tag[attribute::kind='@throws']">\r
+      <div class="classdoc-tag-section-header"><b>Throws:</b></div>\r
+      <dl class="classdoc-list">\r
+        <xsl:for-each select="gjdoc:tags/gjdoc:tag[attribute::kind='@throws']">\r
+          <dt>\r
+            <code>\r
+              <xsl:call-template name="link_to_class">\r
+                <xsl:with-param name="p_qualifiedname">\r
+                  <xsl:value-of select="gjdoc:exception/@qualifiedtypename"/>\r
+                </xsl:with-param>\r
+                <xsl:with-param name="p_name">\r
+                  <xsl:value-of select="gjdoc:exception/@typename"/>\r
+                </xsl:with-param>\r
+              </xsl:call-template>\r
+            </code>\r
+            <xsl:text> - </xsl:text>\r
+            <xsl:for-each select="gjdoc:inlineTags/node()">\r
+              <xsl:copy-of select="."/>\r
+            </xsl:for-each>\r
+          </dt>\r
+        </xsl:for-each>\r
+      </dl>\r
+    </xsl:if>\r
+    \r
+    <xsl:call-template name="output_see_tags"/>\r
+\r
+    <xsl:if test="position()!=last()">\r
+      <hr/>\r
+    </xsl:if>\r
+    \r
+  </xsl:template>\r
+\r
+  <!-- Recursively create the tree showing the heritage of the -->\r
+  <!-- given class -->\r
+  \r
+  <xsl:template name="create_tree">\r
+    <xsl:param name="p_superclass"/>\r
+    <xsl:param name="p_indent"/>       \r
+    <xsl:param name="p_final" select="0"/>\r
+\r
+    <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]">\r
+      \r
+      <xsl:if test="gjdoc:superclass">\r
+        <xsl:call-template name="create_tree">\r
+          <xsl:with-param name="p_indent" select="$p_indent+-1"/>\r
+          <xsl:with-param name="p_superclass" select="gjdoc:superclass/@qualifiedtypename"/>\r
+        </xsl:call-template>\r
+\r
+        <xsl:call-template name="tree_indentation_text_empty">\r
+          <xsl:with-param name="p_indent" select="$p_indent"/>\r
+        </xsl:call-template>\r
+        <xsl:text>|\r
+</xsl:text>\r
+      </xsl:if>\r
+    </xsl:for-each>    \r
+    \r
+    <xsl:if test="$p_indent>0">        \r
+      <xsl:call-template name="tree_indentation">\r
+        <xsl:with-param name="p_indent" select="$p_indent"/>\r
+      </xsl:call-template>\r
+    </xsl:if>  \r
+        \r
+    <xsl:choose>\r
+      <xsl:when test="$p_final=1">\r
+        <xsl:value-of select="$p_superclass"/>\r
+      </xsl:when>\r
+      <xsl:otherwise>\r
+        <xsl:call-template name="link_to_class_full">\r
+          <xsl:with-param name="p_qualifiedname">\r
+            <xsl:value-of select="$p_superclass"/>\r
+          </xsl:with-param>\r
+        </xsl:call-template>\r
+      </xsl:otherwise>\r
+    </xsl:choose>\r
+    <xsl:text>\r
+</xsl:text>\r
+  </xsl:template>\r
+\r
+  <!-- Recursively create the tree showing the heritage of the -->\r
+  <!-- given class, use bitmaps -->\r
+  \r
+  <xsl:template name="create_tree_gfx">\r
+    <xsl:param name="p_superclass"/>\r
+    <xsl:param name="p_indent"/>       \r
+    <xsl:param name="p_final" select="0"/>\r
+    <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]/gjdoc:superclass">\r
+      <xsl:call-template name="create_tree">\r
+        <xsl:with-param name="p_indent" select="$p_indent+-1"/>\r
+        <xsl:with-param name="p_superclass" select="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]/gjdoc:superclass/@qualifiedtypename"/>\r
+      </xsl:call-template>\r
+    </xsl:if>\r
+    <tr><td>\r
+    <table cellspacing="0" cellpadding="0" border="0">\r
+      <tr>\r
+        <xsl:variable name="imagename">\r
+          <xsl:choose>\r
+            <xsl:when test="$p_final=1">\r
+              <xsl:text>images/tree-final-node.png</xsl:text>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+              <xsl:text>images/tree-node.png</xsl:text>\r
+            </xsl:otherwise>\r
+          </xsl:choose>\r
+        </xsl:variable>\r
+\r
+        <td>\r
+          <xsl:if test="$p_indent>0">  \r
+            <xsl:call-template name="tree_indentation">\r
+              <xsl:with-param name="p_indent"><xsl:value-of select="$p_indent"/></xsl:with-param>\r
+            </xsl:call-template>\r
+          </xsl:if>    \r
+          <img width="10" height="21" class="classdoc-tree-image" src="{$imagename}"/>\r
+        </td>\r
+\r
+        <xsl:choose>\r
+          <xsl:when test="$p_final=1">\r
+            <td class="classdoc-tree-label"><xsl:value-of select="$p_superclass"/></td>\r
+          </xsl:when>\r
+          <xsl:otherwise>\r
+            <td class="classdoc-tree-label">\r
+              <xsl:call-template name="link_to_class_full">\r
+                <xsl:with-param name="p_qualifiedname">\r
+                  <xsl:value-of select="$p_superclass"/>\r
+                </xsl:with-param>\r
+              </xsl:call-template>\r
+            </td>\r
+          </xsl:otherwise>\r
+        </xsl:choose>\r
+      </tr></table>\r
+    </td></tr>\r
+  </xsl:template>\r
+\r
+  <!-- Recursively output one character for each superclass found for the given -->\r
+  <!-- class. The length of the resulting string tells how many levels of -->\r
+  <!-- indentation are required for creating the heritage tree.  -->\r
+  \r
+  <xsl:template name="output_base_markers">\r
+    <xsl:param name="p_superclass"/>\r
+\r
+    <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]">      \r
+      <xsl:if test="gjdoc:superclass">\r
+        <xsl:call-template name="output_base_markers">\r
+          <xsl:with-param name="p_superclass" select="gjdoc:superclass/@qualifiedtypename"/>\r
+        </xsl:call-template>\r
+      </xsl:if>\r
+    </xsl:for-each>\r
+\r
+    <xsl:text>*</xsl:text>\r
+  </xsl:template>\r
+\r
+  <!-- Heritage Tree -->\r
+  \r
+  <xsl:template name="classdoc_heritage_tree">\r
+    \r
+    <xsl:variable name="p_qualifiedtypename" select="@qualifiedtypename"/>\r
+\r
+    <xsl:for-each select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[@qualifiedtypename=$p_qualifiedtypename]">\r
+\r
+      <xsl:variable name="superclass_markers">\r
+        <xsl:call-template name="output_base_markers">\r
+          <xsl:with-param name="p_superclass" select="gjdoc:superclass/@qualifiedtypename"/>\r
+        </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <xsl:choose>\r
+        <xsl:when test="$gjdoc.allowimages=1">\r
+          <table border="0" cellpadding="0" cellspacing="0" style="margin:0px; padding:0px; line-height:1px">\r
+            <xsl:call-template name="create_tree_gfx">\r
+              <xsl:with-param name="p_indent" select="string-length($superclass_markers)"/>\r
+              <xsl:with-param name="p_superclass" select="$p_qualifiedtypename"/>\r
+              <xsl:with-param name="p_final" select="1"/>\r
+            </xsl:call-template>\r
+          </table>\r
+        </xsl:when>\r
+        <xsl:otherwise>\r
+          <pre class="inheritance-tree">\r
+            <xsl:call-template name="create_tree">\r
+              <xsl:with-param name="p_indent" select="string-length($superclass_markers)"/>\r
+              <xsl:with-param name="p_superclass" select="$p_qualifiedtypename"/>\r
+              <xsl:with-param name="p_final" select="1"/>\r
+            </xsl:call-template>\r
+          </pre>\r
+        </xsl:otherwise>\r
+      </xsl:choose>      \r
+    </xsl:for-each>\r
+  </xsl:template>\r
+\r
+  <xsl:template name="tree_indentation_text_empty">\r
+    <xsl:param name="p_indent"/>\r
+    <xsl:choose>\r
+      <xsl:when test="$p_indent&gt;1">\r
+        <xsl:text>   </xsl:text>\r
+        <xsl:call-template name="tree_indentation_text_empty">\r
+          <xsl:with-param name="p_indent"><xsl:value-of select="$p_indent+-1"/></xsl:with-param>\r
+        </xsl:call-template>\r
+      </xsl:when>\r
+    </xsl:choose>\r
+  </xsl:template>\r
+\r
+  <!-- Recursively insert indentation for heritage tree. -->\r
+  <!-- This one uses images for nice, visual indentation. -->\r
+  <!-- p_indent selects level of indentation. -->\r
+  \r
+  <xsl:template name="tree_indentation">\r
+    <xsl:param name="p_indent"/>\r
+    <xsl:choose>\r
+      <xsl:when test="$p_indent&gt;1">\r
+        <xsl:choose>\r
+          <xsl:when test="$gjdoc.allowimages=1">\r
+            <img width="26" height="21" border="0" src="images/tree-empty.png" class="classdoc-tree-image"/>\r
+          </xsl:when>\r
+          <xsl:otherwise>\r
+            <xsl:text>   </xsl:text>\r
+          </xsl:otherwise>\r
+        </xsl:choose>\r
+\r
+        <xsl:call-template name="tree_indentation">\r
+          <xsl:with-param name="p_indent"><xsl:value-of select="$p_indent+-1"/></xsl:with-param>\r
+        </xsl:call-template>\r
+      </xsl:when>\r
+      <xsl:otherwise>\r
+        <xsl:choose>\r
+          <xsl:when test="$gjdoc.allowimages=1">\r
+            <img width="26" height="21" border="0" src="images/tree-branch.png" class="classdoc-tree-image"/>\r
+          </xsl:when>\r
+          <xsl:otherwise>\r
+            <xsl:text>+--</xsl:text>\r
+          </xsl:otherwise>\r
+        </xsl:choose>\r
+      </xsl:otherwise>\r
+    </xsl:choose>\r
+  </xsl:template>\r
+\r
+  <xsl:template name="output_superclass_methods">\r
+    <xsl:if test="gjdoc:methoddoc">\r
+      <table class="classdoc-table">\r
+        <tr>\r
+          <td class="sub-section-header">\r
+            <div class="sub-section-header">Methods inherited from class <xsl:value-of select="@qualifiedtypename"/></div>\r
+          </td>\r
+        </tr>\r
+        <tr>\r
+          <td class="member-summary super method">\r
+            <xsl:for-each select="gjdoc:methoddoc">\r
+              <code class="member-summary super method"><a href="{concat($gjdoc.pathtoroot, translate(../gjdoc:containingPackage/@name, '.', '/'), '/', ../@typename, '.html#', @name, gjdoc:signature/@full)}" class="member-summary super method"><xsl:value-of select="@name"/></a><xsl:if test="position() != last()">, </xsl:if></code>\r
+            </xsl:for-each>\r
+          </td>\r
+        </tr>\r
+      </table>\r
+    </xsl:if>\r
+  </xsl:template>\r
+\r
+\r
+  <xsl:template name="output_superclass_fields">\r
+    <xsl:if test="gjdoc:fielddoc">\r
+      <table class="classdoc-table">\r
+        <tr>\r
+          <td class="sub-section-header">\r
+            <div class="sub-section-header">Fields inherited from class <xsl:value-of select="@qualifiedtypename"/></div>\r
+          </td>\r
+        </tr>\r
+        <tr>\r
+          <td class="member-summary super field">\r
+            <xsl:for-each select="gjdoc:fielddoc">\r
+              <code class="member-summary super field"><a href="{concat($gjdoc.pathtoroot, translate(../gjdoc:containingPackage/@name, '.', '/'), '/', ../@typename, '.html#', @name)}" class="member-summary super field"><xsl:value-of select="@name"/></a><xsl:if test="position() != last()">, </xsl:if></code>\r
+            </xsl:for-each>\r
+          </td>\r
+        </tr>\r
+      </table>\r
+    </xsl:if>\r
+  </xsl:template>\r
+\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl
new file mode 100644 (file)
index 0000000..4fc9dfd
--- /dev/null
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- deprecated.xsl
+     Copyright (C) 2003 Free Software Foundation, Inc.
+     
+     This file is part of GNU Classpath.
+     
+     GNU Classpath is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+     the Free Software Foundation; either version 2, or (at your option)
+     any later version.
+      
+     GNU Classpath is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+     
+     You should have received a copy of the GNU General Public License
+     along with GNU Classpath; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+     02111-1307 USA.
+     -->
+
+<!-- Creates the deprecation information page for HTML documentation.
+     -->
+
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+  xmlns:html="http://www.w3.org/TR/REC-html40"
+  xmlns="http://www.w3.org/TR/REC-html40">
+
+  <xsl:include href="html_common.xsl"/>
+
+  <xsl:output method="xml"
+    encoding="utf-8"
+    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+    doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+    indent="no"/>
+
+  <xsl:strip-space elements="*"/>
+
+  <xsl:template match="gjdoc:tag[attribute::kind='@see'][attribute::name='@link']">
+    <xsl:call-template name="output_link_tag">
+      <xsl:with-param name="p_contexturl"
+        select="concat(translate(ancestor::gjdoc:classdoc/gjdoc:containingPackage/@name, '.', '/'), '/', ancestor::gjdoc:classdoc/@name,'.html')"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="/">
+    <html>
+      <head>
+        <xsl:call-template name="output_title">
+          <xsl:with-param name="p_pagetitle" select="'Deprecated List'"/>
+        </xsl:call-template>
+        <xsl:call-template name="include_common"/>
+      </head>
+      <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
+        
+        <!-- Top Navigation Bar -->
+        <xsl:call-template name="output_navbar">
+          <xsl:with-param name="p_show_frames" select="1"/>
+          <xsl:with-param name="p_show_noframes" select="1"/>
+          <xsl:with-param name="p_show_package" select="0"/>
+          <xsl:with-param name="p_show_package_tree" select="0"/>
+          <xsl:with-param name="p_show_full_tree" select="1"/>
+          <xsl:with-param name="p_show_index" select="1"/>
+          <xsl:with-param name="p_show_help" select="1"/>
+          <xsl:with-param name="p_show_deprecated" select="0"/>
+          <xsl:with-param name="p_curr_deprecated" select="1"/>
+          <xsl:with-param name="p_top" select="1"/> 
+        </xsl:call-template>
+
+        <div class="pagebody">
+
+        <h1 class="classdoc-title">Deprecated API</h1>
+
+        <xsl:choose>
+          <xsl:when test="gjdoc:rootdoc/gjdoc:hasDeprecatedInterfaces or gjdoc:rootdoc/gjdoc:hasDeprecatedClasses or gjdoc:rootdoc/gjdoc:hasDeprecatedExceptions or gjdoc:rootdoc/gjdoc:hasDeprecatedErrors or gjdoc:rootdoc/gjdoc:rootdoc/gjdoc:hasDeprecatedMethods or gjdoc:rootdoc/gjdoc:hasDeprecatedFields">
+            <div class="classdoc-tag-section-header">Contents:</div>
+            <dl class="classdoc-list">
+              <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedInterfaces">
+                <dt><a href="#interfaces">Deprecated Interfaces</a></dt>
+              </xsl:if>
+              <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedClasses">
+                <dt><a href="#classes">Deprecated Classes</a></dt>
+              </xsl:if>
+              <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedExceptions">
+                <dt><a href="#exceptions">Deprecated Exceptions</a></dt>
+              </xsl:if>
+              <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedErrors">
+                <dt><a href="#errors">Deprecated Errors</a></dt>
+              </xsl:if>
+              <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedFields">
+                <dt><a href="#fields">Deprecated Fields</a></dt>
+              </xsl:if>
+              <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedMethods">
+                <dt><a href="#methods">Deprecated Methods</a></dt>
+              </xsl:if>
+              <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedConstructors">
+                <dt><a href="#constructors">Deprecated Constructors</a></dt>
+              </xsl:if>
+            </dl>
+          </xsl:when>
+          <xsl:otherwise>
+            <p>No parts of this API are deprecated.</p>
+          </xsl:otherwise>
+        </xsl:choose>
+
+        <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedInterfaces">
+          <a name="interfaces"/>
+          <h1 class="classdoc-header">Deprecated Interfaces</h1>
+
+          <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+            <xsl:variable name="v_currentclass" select="."/>
+            <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+            <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/@qualifiedtypename/..">
+              <xsl:if test="gjdoc:isInterface">
+                <xsl:call-template name="output-deprecated-class"/>
+              </xsl:if>
+            </xsl:for-each>
+          </xsl:for-each>
+        </xsl:if>
+
+        <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedClasses">
+          <a name="classes"/>
+          <h1 class="classdoc-header">Deprecated Classes</h1>
+
+          <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+            <xsl:variable name="v_currentclass" select="."/>
+            <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+            <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/@qualifiedtypename/..">
+              <xsl:if test="gjdoc:isOrdinaryClass">
+                <xsl:call-template name="output-deprecated-class"/>
+              </xsl:if>
+            </xsl:for-each>
+          </xsl:for-each>
+        </xsl:if>
+
+        <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedExceptions">
+          <a name="exceptions"/>
+          <h1 class="classdoc-header">Deprecated Exceptions</h1>
+          
+          <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+            <xsl:variable name="v_currentclass" select="."/>
+            <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+            <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/.">
+              <xsl:if test="gjdoc:isException">
+                <xsl:call-template name="output-deprecated-class"/>
+              </xsl:if>
+            </xsl:for-each>
+          </xsl:for-each>
+        </xsl:if>
+
+        <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedErrors">
+          <a name="errors"/>
+          <h1 class="classdoc-header">Deprecated Errors</h1>
+          
+          <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+            <xsl:variable name="v_currentclass" select="."/>
+            <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+            <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/.">
+              <xsl:if test="gjdoc:isError">
+                <xsl:call-template name="output-deprecated-class"/>
+              </xsl:if>
+            </xsl:for-each>
+          </xsl:for-each>
+        </xsl:if>
+
+        <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedFields">
+          <a name="fields"/>
+          <h1 class="classdoc-header">Deprecated Fields</h1>
+
+          <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+            <xsl:variable name="v_currentclass" select="."/>
+            <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+            <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/gjdoc:fielddoc/@name">
+              <xsl:call-template name="output-deprecated-member"/>
+            </xsl:for-each>
+          </xsl:for-each>
+        </xsl:if>
+
+        <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedMethods">
+          <a name="methods"/>
+          <h1 class="classdoc-header">Deprecated Methods</h1>
+
+          <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+            <xsl:variable name="v_currentclass" select="."/>
+            <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+            <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/gjdoc:methoddoc/@name">
+              <xsl:call-template name="output-deprecated-member"/>
+            </xsl:for-each>
+          </xsl:for-each>
+        </xsl:if>
+
+        <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedConstructors">
+          <a name="constructors"/>
+          <h1 class="classdoc-header">Deprecated Constructors</h1>
+          
+          <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+            <xsl:variable name="v_currentclass" select="."/>
+            <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+            <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/gjdoc:constructordoc/@name">
+              <xsl:call-template name="output-deprecated-member"/>
+            </xsl:for-each>
+          </xsl:for-each>
+        </xsl:if>
+        <!-- Bottom Navigation Bar -->
+        <xsl:call-template name="output_navbar">
+          <xsl:with-param name="p_show_frames" select="1"/>
+          <xsl:with-param name="p_show_noframes" select="1"/>
+          <xsl:with-param name="p_show_package" select="0"/>
+          <xsl:with-param name="p_show_package_tree" select="0"/>
+          <xsl:with-param name="p_show_full_tree" select="1"/>
+          <xsl:with-param name="p_show_index" select="1"/>
+          <xsl:with-param name="p_show_help" select="1"/>
+          <xsl:with-param name="p_show_deprecated" select="0"/>
+          <xsl:with-param name="p_curr_deprecated" select="1"/>
+          <xsl:with-param name="p_top" select="0"/> 
+        </xsl:call-template>
+
+        </div>
+      </body>
+    </html>
+  </xsl:template>
+
+  <xsl:template name="output-deprecated-member">
+
+    <xsl:if test="../gjdoc:tags/gjdoc:tag[@kind='@deprecated']">
+      <dl>
+        <dt>
+          <a href="{concat($gjdoc.pathtoroot, translate(ancestor::gjdoc:classdoc/gjdoc:containingPackage/@name, '.', '/'), '/', ancestor::gjdoc:classdoc/@name, '.html#', ., ../gjdoc:signature/@full)}">
+            <xsl:value-of select="concat(ancestor::gjdoc:classdoc/@qualifiedtypename, '.', ., ../gjdoc:signature/@flat)"/>
+          </a>
+        </dt>
+        <dd>
+          <xsl:for-each select="../gjdoc:tags/gjdoc:tag[@kind='@deprecated']/gjdoc:firstSentenceTags/node()">
+            <xsl:apply-templates select="."/>
+          </xsl:for-each>
+        </dd>
+      </dl>
+    </xsl:if>
+    
+  </xsl:template>
+
+  <xsl:template name="output-deprecated-class">
+    <xsl:if test="gjdoc:tags/gjdoc:tag[@kind='@deprecated']">
+      <dl>
+        <dt>
+          <a href="{concat($gjdoc.pathtoroot, translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')}"><xsl:value-of select="@qualifiedtypename"/></a>
+        </dt>
+        <dd>
+          <xsl:for-each select="gjdoc:tags/gjdoc:tag[@kind='@deprecated']/gjdoc:firstSentenceTags/node()">
+            <xsl:apply-templates select="."/>
+          </xsl:for-each>
+        </dd>
+      </dl>
+    </xsl:if>    
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl
new file mode 100644 (file)
index 0000000..5cdb332
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- descriptor.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Creates the index.html file for HTML documentation. This is only\r
+     a simple frameset.\r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:include href="html_common.xsl"/>\r
+\r
+  <xsl:output method="xml"\r
+    encoding="utf-8"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template match="/">\r
+    <gjdoc:descriptor>\r
+      <gjdoc:about>\r
+        This file was generated by Gjdoc <xsl:value-of select="$gjdoc.xmldoclet.version"/>\r
+        on <xsl:value-of select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:created"/>.\r
+      \r
+        <xsl:copy-of select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:bottomnote"/>\r
+      </gjdoc:about>\r
+      <xsl:for-each select="/gjdoc:rootdoc/gjdoc:packagedoc">\r
+        <gjdoc:package name="{@name}"/>\r
+      </xsl:for-each>\r
+      <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc">\r
+        <gjdoc:class name="{@name}" qualifiedtypename="{@qualifiedtypename}"/>\r
+      </xsl:for-each>\r
+    </gjdoc:descriptor>\r
+  </xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl
new file mode 100644 (file)
index 0000000..7008f73
--- /dev/null
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- outputfiles.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Returns a list of files generated by this stylesheet complex.\r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.gnu.org/software/cp-tools/gjdocxslfiles">\r
+\r
+  <xsl:output method="xml"\r
+    encoding="utf-8"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template match="/">\r
+    <doctranslet>\r
+\r
+      <name>GNU Gjdoc HTML DocTranslet</name>\r
+\r
+      <version>0.6.1</version>\r
+\r
+      <outputtype>\r
+        <name>HTML</name>\r
+      </outputtype>\r
+\r
+      <outputfile>\r
+        <name><xsl:text>index.html</xsl:text></name>\r
+        <type><xsl:text>index</xsl:text></type>\r
+        <sheet><xsl:text>index.xsl</xsl:text></sheet>\r
+        <comment><xsl:text>HTML Index file</xsl:text></comment>\r
+      </outputfile>\r
+      \r
+      <outputfile>\r
+        <name><xsl:text>index_noframes.html</xsl:text></name>\r
+        <type><xsl:text>index_noframes</xsl:text></type>\r
+        <sheet><xsl:text>index_noframes.xsl</xsl:text></sheet>\r
+        <comment><xsl:text>HTML Index file (No Frames)</xsl:text></comment>\r
+      </outputfile>\r
+      \r
+      <outputfile>\r
+        <name><xsl:text>descriptor.xml</xsl:text></name>\r
+        <type><xsl:text>descriptor</xsl:text></type>\r
+        <sheet><xsl:text>descriptor.xsl</xsl:text></sheet>\r
+        <comment><xsl:text>HTML Descriptor file</xsl:text></comment>\r
+      </outputfile>\r
+      \r
+      <outputfile>\r
+        <name><xsl:text>allclasses.html</xsl:text></name>\r
+        <type><xsl:text>allclasses</xsl:text></type>\r
+        <sheet><xsl:text>allclasses.xsl</xsl:text></sheet>\r
+        <comment><xsl:text>HTML All Classes file</xsl:text></comment>\r
+      </outputfile>\r
+      \r
+      <outputfile>\r
+        <name><xsl:text>allpackages.html</xsl:text></name>\r
+        <type><xsl:text>allpackages</xsl:text></type>\r
+        <sheet><xsl:text>allpackages.xsl</xsl:text></sheet>\r
+        <comment><xsl:text>HTML All Packages file</xsl:text></comment>\r
+      </outputfile>\r
+\r
+      <outputfile>\r
+        <name><xsl:text>fulltree.html</xsl:text></name>\r
+        <type><xsl:text>fulltree</xsl:text></type>\r
+        <sheet><xsl:text>fulltree.xsl</xsl:text></sheet>\r
+        <comment><xsl:text>HTML Tree file</xsl:text></comment>\r
+      </outputfile>\r
+\r
+      <xsl:for-each select="gjdoc:rootdoc/gjdoc:packagedoc">\r
+        <outputfile>\r
+          <name><xsl:value-of select="concat(translate(@name,'.','/'),'/package-summary.html')"/></name>\r
+          <type><xsl:text>package</xsl:text></type>\r
+          <info><xsl:value-of select="@name"/></info>\r
+          <sheet><xsl:text>packagedoc.xsl</xsl:text></sheet>\r
+          <comment><xsl:text>HTML Documentation for package </xsl:text><xsl:value-of select="@name"/></comment>\r
+        </outputfile>\r
+      </xsl:for-each>\r
+\r
+      <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc">\r
+        <outputfile>\r
+          <name><xsl:value-of select="concat(translate(gjdoc:containingPackage/@name,'.','/'),'/',@name,'.html')"/></name>\r
+          <type><xsl:text>class</xsl:text></type>\r
+          <info><xsl:value-of select="@qualifiedtypename"/></info>\r
+          <sheet><xsl:text>classdoc.xsl</xsl:text></sheet>\r
+          <comment><xsl:text>HTML Documentation for </xsl:text><xsl:value-of select="@qualifiedtypename"/></comment>\r
+        </outputfile>\r
+      </xsl:for-each>\r
+\r
+    </doctranslet>\r
+  </xsl:template>\r
+\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl
new file mode 100644 (file)
index 0000000..3d60bbb
--- /dev/null
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- fulltree.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Creates the fulltree.html file for HTML documentation. \r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:include href="html_common.xsl"/>\r
+\r
+  <xsl:output method="xml"\r
+    encoding="utf-8"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template name="output_tree_recursive">\r
+    <xsl:param name="p_level" select="0"/>\r
+    \r
+    <xsl:value-of select="gjdoc:containingPackage/@name"/><xsl:text>.</xsl:text><a class="tree-class-link" href="{concat($gjdoc.pathtoroot,translate(gjdoc:containingPackage/@name,'.','/'),'/',@name,'.html')}"><xsl:value-of select="@name"/></a> \r
+    <xsl:if test="gjdoc:implements">\r
+      <xsl:text> (implements </xsl:text>\r
+      <xsl:for-each select="gjdoc:implements">\r
+        <xsl:sort select="@qualifiedtypename" order="ascending"/>\r
+        <xsl:choose>\r
+          <xsl:when test="string-length($gjdoc.outputfile.info)=0">\r
+            <xsl:call-template name="link_to_class_full">\r
+              <xsl:with-param name="p_name" select="@typename"/>\r
+              <xsl:with-param name="p_qualifiedname" select="@qualifiedtypename"/>\r
+            </xsl:call-template>            \r
+          </xsl:when>\r
+          <xsl:when test="gjdoc:containingPackage/@name=$gjdoc.outputfile.info">\r
+            <xsl:call-template name="link_to_class">\r
+              <xsl:with-param name="p_name" select="@typename"/>\r
+              <xsl:with-param name="p_qualifiedname" select="@qualifiedtypename"/>\r
+            </xsl:call-template>\r
+          </xsl:when>\r
+          <xsl:otherwise>\r
+            <xsl:call-template name="link_to_class_full">\r
+              <xsl:with-param name="p_name" select="@typename"/>\r
+              <xsl:with-param name="p_qualifiedname" select="@qualifiedtypename"/>\r
+            </xsl:call-template>            \r
+          </xsl:otherwise>\r
+        </xsl:choose>\r
+        <xsl:if test="position() != last()">\r
+          <xsl:text>, </xsl:text>\r
+        </xsl:if>\r
+      </xsl:for-each>\r
+      <xsl:text>)</xsl:text>\r
+    </xsl:if>\r
+\r
+    <xsl:variable name="v_qualifiedname">\r
+      <xsl:value-of select="@qualifiedtypename"/>\r
+    </xsl:variable>\r
+    <xsl:variable name="v_result">\r
+    <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:superclass/@qualifiedtypename=$v_qualifiedname]">\r
+      <xsl:sort select="@qualifiedtypename" order="ascending"/>\r
+      <xsl:variable name="v_is_used">\r
+        <xsl:choose>\r
+          <xsl:when test="string-length($gjdoc.outputfile.info)=0">\r
+            <xsl:value-of select="true()"/>            \r
+          </xsl:when>\r
+          <xsl:when test="gjdoc:containingPackage/@name=$gjdoc.outputfile.info">\r
+            <xsl:value-of select="true()"/>\r
+          </xsl:when>\r
+          <xsl:otherwise>\r
+            <xsl:call-template name="is_class_parent_of_package_class">\r
+              <xsl:with-param name="p_package" select="$gjdoc.outputfile.info"/>\r
+              <xsl:with-param name="p_qualifiedtypename" select="@qualifiedtypename"/>\r
+            </xsl:call-template>            \r
+          </xsl:otherwise>\r
+        </xsl:choose>\r
+      </xsl:variable>\r
+      <xsl:if test="string-length($v_is_used)>0">\r
+        <li class="tree">\r
+          <xsl:call-template name="output_tree_recursive">\r
+            <xsl:with-param name="p_level"><xsl:value-of select="$p_level+1"/></xsl:with-param>\r
+          </xsl:call-template>\r
+        </li>\r
+      </xsl:if>\r
+    </xsl:for-each>\r
+  </xsl:variable>\r
+  <xsl:if test="string-length($v_result)>0">\r
+    <ul><xsl:copy-of select="$v_result"/></ul>\r
+  </xsl:if>\r
+  </xsl:template>\r
+\r
+  <xsl:template name="is_class_parent_of_package_class">\r
+    <xsl:param name="p_package"/>\r
+    <xsl:param name="p_qualifiedtypename"/>\r
+\r
+    <xsl:choose>\r
+      \r
+      <xsl:when test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:superclass/@qualifiedtypename=$p_qualifiedtypename and gjdoc:containingPackage/@name=$p_package]">\r
+        <xsl:value-of select="true()"/>\r
+      </xsl:when>\r
+\r
+      <xsl:otherwise>\r
+        <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:superclass/@qualifiedtypename=$p_qualifiedtypename]">\r
+          <xsl:call-template name="is_class_parent_of_package_class">\r
+            <xsl:with-param name="p_package" select="$p_package"/>\r
+            <xsl:with-param name="p_qualifiedtypename" select="@qualifiedtypename"/>\r
+          </xsl:call-template>\r
+        </xsl:for-each>\r
+      </xsl:otherwise>\r
+    </xsl:choose>\r
+  </xsl:template>\r
+\r
+  <xsl:template match="/">\r
+\r
+    <html>\r
+      <head>\r
+        <xsl:call-template name="output_title">\r
+          <xsl:with-param name="p_pagetitle" select="'Full Tree'"/>\r
+        </xsl:call-template>\r
+        <xsl:call-template name="include_common"/>\r
+      </head>\r
+      <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">\r
+        <div class="pagebody">\r
+\r
+        <!-- Top Navigation Bar -->\r
+        <xsl:call-template name="output_navbar">\r
+          <xsl:with-param name="p_show_frames" select="1"/>\r
+          <xsl:with-param name="p_show_noframes" select="1"/>\r
+          <xsl:with-param name="p_show_package" select="string-length($gjdoc.outputfile.info)&gt;0"/>\r
+          <xsl:with-param name="p_show_package_tree" select="0"/>\r
+          <xsl:with-param name="p_curr_package_tree" select="string-length($gjdoc.outputfile.info)&gt;0"/>\r
+          <xsl:with-param name="p_show_full_tree" select="string-length($gjdoc.outputfile.info)&gt;0"/>\r
+          <xsl:with-param name="p_curr_full_tree" select="string-length($gjdoc.outputfile.info)&lt;=0"/>\r
+          <xsl:with-param name="p_show_index" select="1"/>\r
+          <xsl:with-param name="p_show_help" select="1"/>\r
+          <xsl:with-param name="p_top" select="1"/> \r
+        </xsl:call-template>\r
+\r
+        <h1 class="classdoc-title">\r
+          <xsl:choose>\r
+            <xsl:when test="string-length($gjdoc.outputfile.info)=0">\r
+              Full Class Tree\r
+              <xsl:if test="/gjdoc:rootdoc/gjdoc:title">\r
+                <xsl:text> for </xsl:text>\r
+                <xsl:value-of select="/gjdoc:rootdoc/gjdoc:title"/>\r
+              </xsl:if>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+              Class Hierarchy for Package <xsl:value-of select="$gjdoc.outputfile.info"/>\r
+            </xsl:otherwise>\r
+          </xsl:choose>\r
+        </h1>\r
+\r
+        <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[@qualifiedtypename='java.lang.Object']">\r
+          <ul class="tree">\r
+            <li class="tree">\r
+              <xsl:call-template name="output_tree_recursive"/>\r
+            </li>\r
+          </ul>\r
+        </xsl:for-each>\r
+\r
+\r
+        <!-- Bottom Navigation Bar -->\r
+        <xsl:call-template name="output_navbar">\r
+          <xsl:with-param name="p_show_frames" select="1"/>\r
+          <xsl:with-param name="p_show_noframes" select="1"/>\r
+          <xsl:with-param name="p_show_package" select="string-length($gjdoc.outputfile.info)&lt;=0"/>\r
+          <xsl:with-param name="p_show_package_tree" select="0"/>\r
+          <xsl:with-param name="p_curr_package_tree" select="string-length($gjdoc.outputfile.info)&gt;0"/>\r
+          <xsl:with-param name="p_show_full_tree" select="string-length($gjdoc.outputfile.info)&gt;0"/>\r
+          <xsl:with-param name="p_curr_full_tree" select="string-length($gjdoc.outputfile.info)&lt;=0"/>\r
+          <xsl:with-param name="p_show_index" select="1"/>\r
+          <xsl:with-param name="p_show_help" select="1"/>\r
+          <xsl:with-param name="p_top" select="0"/> \r
+        </xsl:call-template>\r
+        </div>\r
+      </body>\r
+    </html>\r
+    \r
+  </xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl
new file mode 100644 (file)
index 0000000..74558ab
--- /dev/null
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- outputfiles.xsl
+     Copyright (C) 2003 Free Software Foundation, Inc.
+     
+     This file is part of GNU Classpath.
+     
+     GNU Classpath is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+     the Free Software Foundation; either version 2, or (at your option)
+     any later version.
+      
+     GNU Classpath is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+     
+     You should have received a copy of the GNU General Public License
+     along with GNU Classpath; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+     02111-1307 USA.
+     -->
+
+<!-- Returns a list of files generated by this stylesheet complex.
+     -->
+
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+  xmlns:html="http://www.w3.org/TR/REC-html40"
+  xmlns="http://www.gnu.org/software/cp-tools/gjdocxslfiles">
+
+  <xsl:include href="../gjdoc_common.xsl"/>
+
+  <xsl:output method="xml"
+    encoding="utf-8"
+    indent="no"/>
+
+  <xsl:strip-space elements="*"/>
+
+  <xsl:template match="/">
+    <gjdocoutput>
+
+      <comment><xsl:text>GNU Gjdoc HTML Documentation</xsl:text></comment>
+
+      <outputfile>
+        <name><xsl:text>index.html</xsl:text></name>
+        <sheet><xsl:text>index.xsl</xsl:text></sheet>
+        <comment><xsl:text>HTML Index file</xsl:text></comment>
+      </outputfile>
+      
+      <outputfile>
+        <name><xsl:text>index_noframes.html</xsl:text></name>
+        <sheet><xsl:text>index_noframes.xsl</xsl:text></sheet>
+        <comment><xsl:text>HTML Index file (No Frames)</xsl:text></comment>
+      </outputfile>
+      
+      <outputfile>
+        <name><xsl:text>descriptor.xml</xsl:text></name>
+        <sheet><xsl:text>descriptor.xsl</xsl:text></sheet>
+        <comment><xsl:text>HTML Descriptor file</xsl:text></comment>
+      </outputfile>
+      
+      <outputfile>
+        <name><xsl:text>allclasses.html</xsl:text></name>
+        <sheet><xsl:text>allclasses.xsl</xsl:text></sheet>
+        <comment><xsl:text>HTML All Classes file</xsl:text></comment>
+      </outputfile>
+
+      <xsl:if test="count(gjdoc:rootdoc/gjdoc:packagedoc) > 1">
+        <outputfile>
+          <name><xsl:text>allpackages.html</xsl:text></name>
+          <sheet><xsl:text>allpackages.xsl</xsl:text></sheet>
+          <comment><xsl:text>HTML All Packages file</xsl:text></comment>
+        </outputfile>
+      </xsl:if>
+
+      <xsl:if test="not($gjdoc.option.notree)">
+        <outputfile>
+          <name><xsl:text>fulltree.html</xsl:text></name>
+          <sheet><xsl:text>fulltree.xsl</xsl:text></sheet>
+          <comment><xsl:text>HTML Tree file</xsl:text></comment>
+        </outputfile>
+      </xsl:if>
+
+      <xsl:if test="not($gjdoc.option.noindex)">
+        <xsl:choose>
+          <xsl:when test="$gjdoc.option.splitindex">
+            
+            <outputfile>
+              <name><xsl:text>alphaindex.html</xsl:text></name>
+              <info/>
+              <sheet><xsl:text>alphaindex_chunked.xsl</xsl:text></sheet>
+              <comment><xsl:text>HTML Alphabetical Index (Overview)</xsl:text></comment>
+            </outputfile>
+
+            <xsl:for-each select="document('alphaindex.xml',/)/gjdoc:alphaindex/gjdoc:category">
+              <outputfile>
+                <name><xsl:value-of select="concat('alphaindex_', @letter, '.html')"/></name>
+                <info><xsl:value-of select="@letter"/></info>
+                <sheet><xsl:text>alphaindex_chunked.xsl</xsl:text></sheet>
+                <comment><xsl:value-of select="concat('HTML Alphabetical Index (Letter ', @letter, ')')"/></comment>
+              </outputfile>
+            </xsl:for-each>
+
+          </xsl:when>
+          <xsl:otherwise>
+            <outputfile>
+              <name><xsl:text>alphaindex.html</xsl:text></name>
+              <sheet><xsl:text>alphaindex.xsl</xsl:text></sheet>
+              <comment><xsl:text>HTML Alphabetical Index</xsl:text></comment>
+            </outputfile>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+
+      <xsl:for-each select="gjdoc:rootdoc/gjdoc:packagedoc">
+        <outputfile>
+          <name><xsl:value-of select="concat(translate(@name,'.','/'),'/package-summary.html')"/></name>
+          <info><xsl:value-of select="@name"/></info>
+          <sheet><xsl:text>packagedoc.xsl</xsl:text></sheet>
+          <comment><xsl:text>HTML Documentation for package </xsl:text><xsl:value-of select="@name"/></comment>
+        </outputfile>
+        <outputfile>
+          <name><xsl:value-of select="concat(translate(@name,'.','/'),'/classes.html')"/></name>
+          <info><xsl:value-of select="@name"/></info>
+          <sheet><xsl:text>packageclasses.xsl</xsl:text></sheet>
+          <comment><xsl:text>HTML Class list for package </xsl:text><xsl:value-of select="@name"/></comment>
+        </outputfile>
+
+        <xsl:if test="not($gjdoc.option.notree)">
+          <outputfile>
+            <name><xsl:value-of select="concat(translate(@name,'.','/'),'/package-tree.html')"/></name>
+            <info><xsl:value-of select="@name"/></info>
+            <sheet><xsl:text>fulltree.xsl</xsl:text></sheet>
+            <comment><xsl:text>HTML Hierarchy for package </xsl:text><xsl:value-of select="@name"/></comment>
+          </outputfile>          
+        </xsl:if>
+      </xsl:for-each>
+
+      <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc">
+        <xsl:sort select="@qualifiedtypename" order="ascending"/>
+        <outputfile>
+          <name><xsl:value-of select="concat(translate(gjdoc:containingPackage/@name,'.','/'),'/',@name,'.html')"/></name>
+          <info><xsl:value-of select="@qualifiedtypename"/></info>
+          <sheet><xsl:text>classdoc.xsl</xsl:text></sheet>
+          <comment><xsl:text>HTML Documentation for </xsl:text><xsl:value-of select="@qualifiedtypename"/></comment>
+        </outputfile>
+        
+        <xsl:if test="$gjdoc.option.linksource">
+          <outputfile>
+            <name><xsl:text>src-html/</xsl:text><xsl:value-of select="concat(translate(gjdoc:containingPackage/@name,'.','/'),'/',@name,'.html')"/></name>
+            <info><xsl:value-of select="@qualifiedtypename"/></info>
+            <sheet><xsl:text>classdoc-source.xsl</xsl:text></sheet>
+            <comment><xsl:text>HTML Source for </xsl:text><xsl:value-of select="@qualifiedtypename"/></comment>
+          </outputfile>
+        </xsl:if>
+
+        <xsl:if test="$gjdoc.option.uses">
+          <outputfile>
+            <name><xsl:text>class-use/</xsl:text><xsl:value-of select="concat(translate(gjdoc:containingPackage/@name,'.','/'),'/',@name,'.html')"/></name>
+            <info><xsl:value-of select="@qualifiedtypename"/></info>
+            <sheet><xsl:text>classdoc-uses.xsl</xsl:text></sheet>
+            <comment><xsl:text>usage information for </xsl:text><xsl:value-of select="@qualifiedtypename"/></comment>
+          </outputfile>
+        </xsl:if>
+
+      </xsl:for-each>
+
+      <xsl:choose>
+        <xsl:when test="$gjdoc.option.stylesheetfile">
+          <outputfile>
+            <name><xsl:text>user.css</xsl:text></name>
+              <source><xsl:value-of select="$gjdoc.option.stylesheetfile"/></source>
+            <comment><xsl:text>user-supplied CSS stylesheet</xsl:text></comment>
+          </outputfile>      
+        </xsl:when>
+        <xsl:otherwise>
+          <outputfile>
+            <name><xsl:text>gjdochtml.css</xsl:text></name>
+            <source><xsl:text>res/gjdochtml.css</xsl:text></source>
+            <comment><xsl:text>CSS base stylesheet</xsl:text></comment>
+          </outputfile>      
+          <outputfile>
+            <name><xsl:text>gjdochtml-clean.css</xsl:text></name>
+            <source><xsl:text>res/gjdochtml-clean.css</xsl:text></source>
+            <comment><xsl:text>CSS stylesheet 'Clean'</xsl:text></comment>
+          </outputfile>      
+          <outputfile>
+            <name><xsl:text>gjdochtml-sclara.css</xsl:text></name>
+            <source><xsl:text>res/gjdochtml-sclara.css</xsl:text></source>
+            <comment><xsl:text>CSS stylesheet 'Santa Clara'</xsl:text></comment>
+          </outputfile>      
+          <outputfile>
+            <name><xsl:text>gjdochtml-fixed.css</xsl:text></name>
+            <source><xsl:text>res/gjdochtml-fixed.css</xsl:text></source>
+            <comment><xsl:text>CSS stylesheet 'Fixed'</xsl:text></comment>
+          </outputfile>      
+        </xsl:otherwise>
+      </xsl:choose>
+
+      <outputfile>
+        <name><xsl:text>gjdoc.js</xsl:text></name>
+        <source><xsl:text>res/gjdoc.js</xsl:text></source>
+        <comment><xsl:text>JavaScript helper file</xsl:text></comment>
+      </outputfile>
+
+      <xsl:if test="not($gjdoc.option.nohelp)">
+        <outputfile>
+          <name><xsl:text>help.html</xsl:text></name>
+          <sheet><xsl:text>help.xsl</xsl:text></sheet>
+          <comment><xsl:text>help file</xsl:text></comment>
+        </outputfile>
+      </xsl:if>
+
+      <outputfile>
+        <name><xsl:text>about.html</xsl:text></name>
+        <sheet><xsl:text>about.xsl</xsl:text></sheet>
+        <comment><xsl:text>about file</xsl:text></comment>
+      </outputfile>
+
+      <xsl:if test="not($gjdoc.option.nodeprecatedlist)">
+        <outputfile>
+          <name><xsl:text>deprecated.html</xsl:text></name>
+          <sheet><xsl:text>deprecated.xsl</xsl:text></sheet>
+          <comment><xsl:text>deprecated list</xsl:text></comment>
+        </outputfile>
+      </xsl:if>
+
+      <outputfile>
+        <name><xsl:text>serialized.html</xsl:text></name>
+        <sheet><xsl:text>serialized.xsl</xsl:text></sheet>
+        <comment><xsl:text>serialization information</xsl:text></comment>
+      </outputfile>
+
+    </gjdocoutput>
+  </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl
new file mode 100644 (file)
index 0000000..45af6a6
--- /dev/null
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- help.xsl
+     Copyright (C) 2003 Free Software Foundation, Inc.
+     
+     This file is part of GNU Classpath.
+     
+     GNU Classpath is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+     the Free Software Foundation; either version 2, or (at your option)
+     any later version.
+      
+     GNU Classpath is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+     
+     You should have received a copy of the GNU General Public License
+     along with GNU Classpath; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+     02111-1307 USA.
+     -->
+
+<!-- Creates the class descriptor files for HTML documentation. 
+     -->
+
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+  xmlns:html="http://www.w3.org/TR/REC-html40"
+  xmlns="http://www.w3.org/TR/REC-html40">
+
+  <xsl:include href="html_common.xsl"/>
+
+  <xsl:output method="html"
+    encoding="utf-8"
+    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+    doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+    indent="no"/>
+
+  <xsl:strip-space elements="*"/>
+
+  <xsl:template match="/">    
+    <html>
+      <head>
+        <xsl:call-template name="output_title">
+          <xsl:with-param name="p_pagetitle" select="'Help'"/>
+        </xsl:call-template>
+        <xsl:call-template name="include_common"/>
+      </head>
+      <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
+        <!-- Top Navigation Bar -->
+        <xsl:call-template name="output_navbar">
+          <xsl:with-param name="p_show_frames" select="1"/>
+          <xsl:with-param name="p_show_noframes" select="1"/>
+          <xsl:with-param name="p_show_package" select="0"/>
+          <xsl:with-param name="p_show_package_tree" select="0"/>
+          <xsl:with-param name="p_show_full_tree" select="1"/>
+          <xsl:with-param name="p_show_index" select="1"/>
+          <xsl:with-param name="p_show_help" select="0"/>
+          <xsl:with-param name="p_curr_help" select="1"/>
+          <xsl:with-param name="p_top" select="1"/>
+        </xsl:call-template>
+
+        <div class="pagebody">
+
+        <xsl:choose>
+          <xsl:when test="$gjdoc.option.helpfile">
+            <xsl:copy-of select="document($gjdoc.option.helpfile)//body"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:copy-of select="document('res/default_help_en.html')"/>
+          </xsl:otherwise>
+        </xsl:choose>
+
+        <!-- Bottom Navigation Bar -->
+        <xsl:call-template name="output_navbar">
+          <xsl:with-param name="p_show_frames" select="1"/>
+          <xsl:with-param name="p_show_noframes" select="1"/>
+          <xsl:with-param name="p_show_package" select="0"/>
+          <xsl:with-param name="p_show_package_tree" select="0"/>
+          <xsl:with-param name="p_show_full_tree" select="1"/>
+          <xsl:with-param name="p_show_index" select="1"/>
+          <xsl:with-param name="p_show_help" select="0"/>
+          <xsl:with-param name="p_curr_help" select="1"/>
+          <xsl:with-param name="p_top" select="0"/> 
+        </xsl:call-template>
+        </div>
+      </body>
+    </html>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl
new file mode 100644 (file)
index 0000000..4e648d2
--- /dev/null
@@ -0,0 +1,584 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- html_common.xsl
+     Copyright (C) 2003 Free Software Foundation, Inc.
+     
+     This file is part of GNU Classpath.
+     
+     GNU Classpath is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+     the Free Software Foundation; either version 2, or (at your option)
+     any later version.
+      
+     GNU Classpath is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+     
+     You should have received a copy of the GNU General Public License
+     along with GNU Classpath; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+     02111-1307 USA.
+     -->
+
+<!-- Common templates for HTML generation.
+     -->
+
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+  xmlns:html="http://www.w3.org/TR/REC-html40"
+  xmlns="http://www.w3.org/TR/REC-html40">
+
+  <xsl:include href="../gjdoc_common.xsl"/>
+
+  <!-- HTML head directives to be included in all generated HTML files. -->
+
+  <xsl:template name="include_common">
+    <script src="{concat($gjdoc.pathtoroot, 'gjdoc.js')}" type="text/javascript"><xsl:comment>this comment required for konqueror 3.2.2</xsl:comment>
+    </script>
+    <xsl:choose>
+      <xsl:when test="$gjdoc.option.stylesheetfile">
+        <link rel="stylesheet" type="text/css" 
+          href="{concat($gjdoc.pathtoroot, 'user.css')}"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <link rel="stylesheet" type="text/css" 
+          href="{concat($gjdoc.pathtoroot, 'gjdochtml.css')}" title="GNU Clean"/>
+        <link rel="stylesheet" type="text/css" 
+          href="{concat($gjdoc.pathtoroot, 'gjdochtml-clean.css')}" title="GNU Clean"/>
+        <link rel="alternate stylesheet" type="text/css" 
+          href="{concat($gjdoc.pathtoroot, 'gjdochtml.css')}" title="Santa Clara"/>
+        <link rel="alternate stylesheet" type="text/css" 
+          href="{concat($gjdoc.pathtoroot, 'gjdochtml-sclara.css')}" title="Santa Clara"/>
+        <link rel="alternate stylesheet" type="text/css" 
+          href="{concat($gjdoc.pathtoroot, 'gjdochtml.css')}" title="Fixed Fruit"/>
+        <link rel="alternate stylesheet" type="text/css" 
+          href="{concat($gjdoc.pathtoroot, 'gjdochtml-fixed.css')}" title="Fixed Fruit"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name="output_copyright_footer">
+    <xsl:copy-of select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:bottomnote"/>
+    <hr class="footer"/>
+    <div class="footer">
+      <xsl:text>Generated on</xsl:text><xsl:value-of select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:created"/><xsl:text> by </xsl:text><a href="http://www.gnu.org/software/cp-tools" target="cptoolsinfo"><xsl:text>GNU Classpath Tools</xsl:text></a><xsl:text> (Gjdoc XmlDoclet </xsl:text><xsl:value-of select="$gjdoc.xmldoclet.version"/><xsl:text>).</xsl:text>
+    </div>
+  </xsl:template>
+
+  <!-- If the given class is also included, create a link to it. -->
+  <!-- Otherwise output the qualified name in plain text. -->
+  
+  <xsl:template name="link_to_class_full">
+    <xsl:param name="p_qualifiedname" select="@qualifiedtypename"/>
+    <xsl:variable name="p_classdoc" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_qualifiedname]"/>
+    <xsl:choose>
+      <xsl:when test="$p_classdoc">
+        <a href="{concat($gjdoc.pathtoroot, translate($p_classdoc/gjdoc:containingPackage/@name, '.', '/'), '/', $p_classdoc/@name, '.html')}">
+          <xsl:value-of select="$p_qualifiedname"/>
+        </a>
+      </xsl:when>
+      <xsl:when test="$gjdoc.refdocs1 and document(concat($gjdoc.refdocs1, '/descriptor.xml'), /)//gjdoc:class[attribute::qualifiedtypename=$p_qualifiedname]">
+        <a href="{concat($gjdoc.refdocs1, '/', $p_qualifiedname, '.html')}">
+          <xsl:value-of select="$p_qualifiedname"/>
+        </a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$p_qualifiedname"/>
+      </xsl:otherwise>
+    </xsl:choose> 
+  </xsl:template>
+  
+  <!-- If the given class is also included, create a link to it. -->
+  <!-- Otherwise output the qualified name in plain text. -->
+
+  <xsl:template name="link_to_class">
+    <xsl:param name="p_qualifiedname" select="@qualifiedtypename"/>
+    <xsl:param name="p_name" select="@name"/>
+    <xsl:variable name="p_classdoc" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_qualifiedname]"/>
+    <xsl:choose>
+      <xsl:when test="$p_classdoc">
+        <a href="{concat($gjdoc.pathtoroot, translate($p_classdoc/gjdoc:containingPackage/@name, '.', '/'), '/', $p_classdoc/@name, '.html')}"><xsl:value-of select="$p_name"/></a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$p_qualifiedname"/>
+      </xsl:otherwise>
+    </xsl:choose> 
+  </xsl:template>
+
+  <xsl:template name="output_alphaindex_category">
+    <dl>
+      <xsl:for-each select="gjdoc:entry">
+        <dt>
+          <xsl:element name="a">
+            <xsl:attribute name="href">
+              <xsl:choose>
+                <xsl:when test="gjdoc:isPackage">
+                  <xsl:value-of select="concat(translate(@name, '.', '/'), '/package-summary.html')"/>
+                </xsl:when>
+                <xsl:when test="gjdoc:isClass and gjdoc:containingClass">
+                  <xsl:value-of select="concat(translate(gjdoc:containingPackage/@name, '.', '/'), '/', gjdoc:containingClass/@name, '.', @name, '.html')"/>
+                </xsl:when>
+                <xsl:when test="gjdoc:isClass">
+                  <xsl:value-of select="concat(translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
+                </xsl:when>
+                <xsl:when test="gjdoc:isMethod">
+                  <xsl:value-of select="concat(translate(gjdoc:containingPackage/@name, '.', '/'), '/', gjdoc:containingClass/@name, '.html#', gjdoc:method/@name, gjdoc:signature/@full)"/>
+                </xsl:when>
+                <xsl:when test="gjdoc:isField">
+                  <xsl:value-of select="concat(translate(gjdoc:containingPackage/@name, '.', '/'), '/', gjdoc:containingClass/@name, '.html#', @name)"/>
+                </xsl:when>
+              </xsl:choose>
+            </xsl:attribute>
+            <xsl:value-of select="@name"/>
+          </xsl:element>
+          -
+          <xsl:choose>
+            <xsl:when test="gjdoc:isPackage">
+              Package
+            </xsl:when>
+            <xsl:when test="gjdoc:isOrdinaryClass and gjdoc:containingClass">
+              Nested class in class
+              <xsl:value-of select="gjdoc:containingClass/@name"/>
+            </xsl:when>
+            <xsl:when test="gjdoc:isException and gjdoc:containingClass">
+              Nested exception in class
+              <xsl:value-of select="gjdoc:containingClass/@name"/>
+            </xsl:when>
+            <xsl:when test="gjdoc:isError and gjdoc:containingClass">
+              Nested error in class
+              <xsl:value-of select="gjdoc:containingClass/@name"/>
+            </xsl:when>
+            <xsl:when test="gjdoc:isInterface and gjdoc:containingClass">
+              Nested interface in class
+              <xsl:value-of select="gjdoc:containingClass/@name"/>
+            </xsl:when>
+            <xsl:when test="gjdoc:isOrdinaryClass">
+              Class in package
+              <xsl:value-of select="gjdoc:containingPackage/@name"/>
+            </xsl:when>
+            <xsl:when test="gjdoc:isException">
+              Exception in package
+              <xsl:value-of select="gjdoc:containingPackage/@name"/>
+            </xsl:when>
+            <xsl:when test="gjdoc:isError">
+              Error in package
+              <xsl:value-of select="gjdoc:containingPackage/@name"/>
+            </xsl:when>
+            <xsl:when test="gjdoc:isInterface">
+              Interface in package
+              <xsl:value-of select="gjdoc:containingPackage/@name"/>
+            </xsl:when>
+            <xsl:when test="gjdoc:isMethod">
+              Method in class
+              <xsl:value-of select="gjdoc:containingClass/@name"/>
+            </xsl:when>
+            <xsl:when test="gjdoc:isField">
+              Field in class
+              <xsl:value-of select="gjdoc:containingClass/@name"/>
+            </xsl:when>
+          </xsl:choose>
+        </dt>
+        <dd>
+          <xsl:for-each select="gjdoc:firstSentenceTags/node()">
+            <xsl:copy-of select="."/>
+          </xsl:for-each>
+        </dd>
+      </xsl:for-each>
+    </dl>
+    
+  </xsl:template>
+
+  <xsl:template name="output_navlink">
+    <xsl:param name="p_href"/>
+    <xsl:param name="p_label"/>
+    <xsl:param name="p_target" select="'_self'"/>
+    <xsl:param name="p_enabled"/>
+    <xsl:param name="p_current"/>
+    <xsl:param name="p_onclick"/>
+    <xsl:param name="p_last" select="0"/>
+    <xsl:param name="p_css_class"/>
+    <xsl:param name="p_title"/>
+
+    <xsl:choose>
+      <xsl:when test="$p_enabled">
+        <span class="navi-button link"><a href="{$p_href}" target="{$p_target}" class="navi-button" title="{$p_title}" onClick="{$p_onclick}"><span class="{concat('navi-link ', $p_css_class)}"><xsl:value-of select="$p_label" disable-output-escaping="yes"/></span></a></span>
+      </xsl:when>
+      <xsl:when test="$p_current">
+        <span class="navi-button current"><xsl:value-of select="$p_label" disable-output-escaping="yes"/></span>
+      </xsl:when>
+      <xsl:otherwise>
+        <span class="navi-button unavailable"><xsl:value-of select="$p_label" disable-output-escaping="yes"/></span>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:if test="not($p_last)"><span class="navsep"><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text></span></xsl:if>
+  </xsl:template>
+
+  <xsl:template name="output_navbar">
+    <xsl:param name="p_show_frames" select="1"/>
+    <xsl:param name="p_curr_frames"/>
+
+    <xsl:param name="p_show_noframes" select="1"/>
+    <xsl:param name="p_curr_noframes"/>
+
+    <xsl:param name="p_show_package" select="1"/>
+    <xsl:param name="p_curr_package"/>
+
+    <xsl:param name="p_show_package_tree" select="1"/>
+    <xsl:param name="p_curr_package_tree"/>
+
+    <xsl:param name="p_show_full_tree" select="1"/>
+    <xsl:param name="p_curr_full_tree"/>
+
+    <xsl:param name="p_show_index" select="1"/>
+    <xsl:param name="p_curr_index"/>
+
+    <xsl:param name="p_show_help" select="1"/>
+    <xsl:param name="p_curr_help"/>
+
+    <xsl:param name="p_show_about" select="1"/>
+    <xsl:param name="p_curr_about"/>
+
+    <xsl:param name="p_show_source" select="1"/>
+    <xsl:param name="p_curr_source"/>
+
+    <xsl:param name="p_show_class"/>
+    <xsl:param name="p_curr_class"/>
+
+    <xsl:param name="p_show_use"/>
+    <xsl:param name="p_curr_use"/>
+
+    <xsl:param name="p_show_deprecated" select="1"/>
+    <xsl:param name="p_curr_deprecated"/>
+
+    <xsl:param name="p_top"/>
+
+    <xsl:variable name="v_navbar_class">
+      <xsl:choose>
+        <xsl:when test="$p_top">
+          <xsl:value-of select="'navbar top'"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="'navbar bottom'"/>          
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test="not($gjdoc.option.nonavbar)">
+      <div class="{$v_navbar_class}">
+      <table border="1" cellspacing="0" class="{$v_navbar_class}">
+        <tr class="{$v_navbar_class}">
+          <td class="{$v_navbar_class}">
+            <div class="navbar-first-row">
+              <xsl:call-template name="output_navlink">
+                <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'index_noframes.html')"/>
+                <xsl:with-param name="p_label" select="'Overview'"/>
+                <xsl:with-param name="p_enabled" select="$p_show_noframes"/>
+                <xsl:with-param name="p_current" select="$p_curr_noframes"/>
+              </xsl:call-template>
+              <xsl:call-template name="output_navlink">
+                <xsl:with-param name="p_href" select="'package-summary.html'"/>
+                <xsl:with-param name="p_label" select="'Package'"/>
+                <xsl:with-param name="p_enabled" select="$p_show_package"/>
+                <xsl:with-param name="p_current" select="$p_curr_package"/>
+              </xsl:call-template>
+              <xsl:call-template name="output_navlink">
+                <xsl:with-param name="p_href" select="$p_show_class"/>
+                <xsl:with-param name="p_label" select="'Class'"/>
+                <xsl:with-param name="p_enabled" select="$p_show_class"/>
+                <xsl:with-param name="p_current" select="$p_curr_class"/>
+              </xsl:call-template>
+              <xsl:if test="$gjdoc.option.linksource">
+                <xsl:call-template name="output_navlink">
+                  <xsl:with-param name="p_href" select="$p_show_source"/>
+                  <xsl:with-param name="p_label" select="'Source'"/>
+                  <xsl:with-param name="p_enabled" select="$p_show_source"/>
+                  <xsl:with-param name="p_current" select="$p_curr_source"/>
+                </xsl:call-template>
+              </xsl:if>
+              <xsl:if test="$gjdoc.option.uses">
+                <xsl:call-template name="output_navlink">
+                  <xsl:with-param name="p_href" select="$p_show_use"/>
+                  <xsl:with-param name="p_label" select="'Use'"/>
+                  <xsl:with-param name="p_enabled" select="$p_show_use"/>
+                  <xsl:with-param name="p_current" select="$p_curr_use"/>
+              </xsl:call-template>
+              </xsl:if>
+              <xsl:call-template name="output_navlink">
+                <xsl:with-param name="p_href" select="'package-tree.html'"/>
+                <xsl:with-param name="p_label" select="'Tree'"/>
+                <xsl:with-param name="p_enabled" select="$p_show_package_tree"/>
+                <xsl:with-param name="p_current" select="$p_curr_package_tree"/>
+              </xsl:call-template>
+              <xsl:if test="not($gjdoc.option.noindex)">
+                <xsl:call-template name="output_navlink">
+                  <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'alphaindex.html')"/>
+                  <xsl:with-param name="p_label" select="'Index'"/>
+                  <xsl:with-param name="p_enabled" select="$p_show_index"/>
+                  <xsl:with-param name="p_current" select="$p_curr_index"/>
+                </xsl:call-template>
+              </xsl:if>
+              <xsl:if test="not($gjdoc.option.notree)">
+                <xsl:call-template name="output_navlink">
+                  <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'fulltree.html')"/>
+                  <xsl:with-param name="p_label" select="'Full&amp;nbsp;Tree'"/>
+                  <xsl:with-param name="p_enabled" select="$p_show_full_tree"/>
+                  <xsl:with-param name="p_current" select="$p_curr_full_tree"/>
+                </xsl:call-template>
+              </xsl:if>
+              <xsl:if test="not($gjdoc.option.nodeprecatedlist)">
+                <xsl:call-template name="output_navlink">
+                  <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'deprecated.html')"/>
+                  <xsl:with-param name="p_label" select="'Deprecated'"/>
+                  <xsl:with-param name="p_enabled" select="$p_show_deprecated"/>
+                  <xsl:with-param name="p_current" select="$p_curr_deprecated"/>
+                </xsl:call-template>
+              </xsl:if>
+              <xsl:if test="not($gjdoc.option.nohelp)">
+                <xsl:call-template name="output_navlink">
+                  <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'help.html')"/>
+                  <xsl:with-param name="p_label" select="'Help'"/>
+                  <xsl:with-param name="p_enabled" select="$p_show_help"/>
+                  <xsl:with-param name="p_current" select="$p_curr_help"/>
+                </xsl:call-template>
+              </xsl:if>
+              <xsl:call-template name="output_navlink">
+                <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'about.html')"/>
+                <xsl:with-param name="p_label" select="'About'"/>
+                <xsl:with-param name="p_enabled" select="$p_show_about"/>
+                <xsl:with-param name="p_current" select="$p_curr_about"/>
+                <xsl:with-param name="p_last" select="1"/>
+              </xsl:call-template>
+            </div>
+            <div class="navbar-second-row">
+              <xsl:call-template name="output_navlink">
+                <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'index.html')"/>
+                <xsl:with-param name="p_label" select="'Frames'"/>
+                <xsl:with-param name="p_enabled" select="1"/>
+                <xsl:with-param name="p_target" select="'_top'"/>
+              </xsl:call-template>
+              <xsl:call-template name="output_navlink">
+                <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'index_noframes.html')"/>
+                <xsl:with-param name="p_label" select="'No&amp;nbsp;Frames'"/>
+                <xsl:with-param name="p_enabled" select="1"/>
+                <xsl:with-param name="p_target" select="'_top'"/>
+                <xsl:with-param name="p_last" select="0"/>
+              </xsl:call-template>
+                <xsl:call-template name="output_navlink">
+                  <xsl:with-param name="p_onclick" select="'return setStyleSheet(&quot;GNU Clean&quot;);'"/>
+                  <xsl:with-param name="p_title" select="'GNU Clean Style'"/>
+                  <xsl:with-param name="p_label" select="'GNU Clean'"/>
+                  <xsl:with-param name="p_enabled" select="1"/>
+                  <xsl:with-param name="p_last" select="0"/>
+                </xsl:call-template>
+                <xsl:call-template name="output_navlink">
+                  <xsl:with-param name="p_onclick" select="'return setStyleSheet(&quot;Santa Clara&quot;);'"/>
+                  <xsl:with-param name="p_title" select="'Santa Clara Style'"/>
+                  <xsl:with-param name="p_label" select="'Santa Clara'"/>
+                  <xsl:with-param name="p_enabled" select="1"/>
+                  <xsl:with-param name="p_last" select="0"/>
+                </xsl:call-template>
+                <xsl:call-template name="output_navlink">
+                  <xsl:with-param name="p_onclick" select="'return setStyleSheet(&quot;Fixed Fruit&quot;);'"/>
+                  <xsl:with-param name="p_title" select="'Fixed Fruit Style'"/>
+                  <xsl:with-param name="p_label" select="'Fixed Fruit'"/>
+                  <xsl:with-param name="p_enabled" select="1"/>
+                  <xsl:with-param name="p_last" select="0"/>
+                </xsl:call-template>
+                <xsl:call-template name="output_navlink">
+                  <xsl:with-param name="p_onclick" select="'return setStyleSheet(&quot;Vanilla&quot;);'"/>
+                  <xsl:with-param name="p_title" select="'Vanilla Style'"/>
+                  <xsl:with-param name="p_label" select="'Vanilla'"/>
+                  <xsl:with-param name="p_enabled" select="1"/>
+                  <xsl:with-param name="p_last" select="0"/>
+                </xsl:call-template>
+
+            </div>
+          </td>
+          <xsl:choose>
+            <xsl:when test="$p_top">
+              <xsl:if test="$gjdoc.option.header">
+                <td class="{$v_navbar_class} navbar-header">
+                  <xsl:value-of select="$gjdoc.option.header"/>
+                </td>
+              </xsl:if>
+            </xsl:when>
+            <xsl:otherwise>              
+              <xsl:if test="$gjdoc.option.footer">
+                <td class="{$v_navbar_class} navbar-footer">
+                  <xsl:value-of select="$gjdoc.option.footer"/>
+                </td>
+              </xsl:if>
+            </xsl:otherwise>
+          </xsl:choose>
+
+        </tr>
+      </table>
+
+      </div>
+      <xsl:if test="not($p_top) and $gjdoc.option.bottom">
+        <hr/>
+        <xsl:value-of select="$gjdoc.option.bottom"/>
+      </xsl:if>     
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="link_to_class_source">
+    <xsl:choose>
+      <xsl:when test="$gjdoc.option.linksource">
+        <a href="{concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')}"><b><xsl:value-of select="@name"/></b></a>
+      </xsl:when>
+      <xsl:otherwise>
+        <b><xsl:value-of select="@name"/></b>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name="link_to_member_source">
+    <xsl:choose>
+      <xsl:when test="$gjdoc.option.linksource">
+        <a href="{concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', gjdoc:containingClass/@typename, '.html#line.', gjdoc:position/@line)}"><b><xsl:value-of select="@name"/></b></a>
+      </xsl:when>
+      <xsl:otherwise>
+        <b><xsl:value-of select="@name"/></b>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name="output_title">
+    <xsl:param name="p_pagetitle"/>
+    <xsl:variable name="v_title">
+      <xsl:value-of select="$p_pagetitle"/>
+      <xsl:if test="$gjdoc.option.windowtitle">
+        <xsl:text> (</xsl:text>
+        <xsl:value-of select="$gjdoc.option.windowtitle"/>
+        <xsl:text>)</xsl:text>
+      </xsl:if>      
+    </xsl:variable>
+    <title>
+      <xsl:value-of select="$v_title"/>
+    </title>
+  </xsl:template>
+
+  <xsl:template name="get_qualified_type">
+    <xsl:param name="p_typename"/>
+    <xsl:variable name="v_plaintype">
+      <xsl:choose>
+        <xsl:when test="contains($p_typename,'[')">
+          <xsl:value-of select="normalize-space(substring-before($p_typename, '['))"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$p_typename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name="v_containingpackage">
+      <xsl:value-of select="ancestor-or-self::gjdoc:classdoc/gjdoc:containingPackage/attribute::name"/>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::name=$v_plaintype]/gjdoc:containingPackage[attribute::name=$v_containingpackage]">
+        <xsl:value-of select="$v_containingpackage"/>
+        <xsl:text>.</xsl:text>
+      </xsl:when>
+      <xsl:when test="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::name=$v_plaintype]/gjdoc:containingPackage[attribute::name='java.lang']">
+        <xsl:text>java.lang.</xsl:text>
+      </xsl:when>
+    </xsl:choose>
+    <xsl:value-of select="$p_typename"/>
+  </xsl:template>
+
+
+  <xsl:template name="output_link_tag">
+    <xsl:param name="p_contexturl"/>
+    <xsl:variable name="v_see">
+      <xsl:choose>
+        <xsl:when test="contains(., '(')">
+          <xsl:value-of select="normalize-space(substring-before(., '('))"/>
+          <xsl:text>(</xsl:text>
+          <xsl:call-template name="resolve_parameter_list">
+            <xsl:with-param name="p_anchor">
+              <xsl:value-of select="normalize-space(substring-before(substring-after(., '('), ')'))"/>
+            </xsl:with-param>
+          </xsl:call-template>
+          <xsl:text>)</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="."/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name="v_class">
+      <xsl:choose>
+        <xsl:when test="contains(., '#')">
+          <xsl:value-of select="normalize-space(substring-before(., '#'))"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="normalize-space(.)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name="v_anchor" select="normalize-space(substring-after(., '#'))"/>
+    <xsl:variable name="v_seeanchor">
+      <xsl:if test="contains($v_see, '#')">
+        <xsl:value-of select="concat('#', normalize-space(substring-after($v_see, '#')))"/>
+      </xsl:if>
+    </xsl:variable>
+    <xsl:variable name="v_classname" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::name=$v_class]/attribute::qualifiedtypename"/>
+    <xsl:variable name="v_classnamefq" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$v_class]/attribute::qualifiedtypename"/>
+    <xsl:choose>
+      <xsl:when test="starts-with(., '#')">
+        <xsl:choose>
+          <xsl:when test="$p_contexturl">
+            <a href="{concat($p_contexturl, translate($v_see,' ',''))}"><xsl:value-of select="$v_anchor"/></a>            
+          </xsl:when>
+          <xsl:otherwise>
+            <a href="{translate($v_see,' ','')}"><xsl:value-of select="$v_anchor"/></a>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:when test="$v_classname">
+        <a href="{translate(concat($gjdoc.pathtoroot, translate($v_classname, '.', '/'), '.html', $v_seeanchor),' ','')}"><xsl:value-of select="translate($v_see,'#','.')"/></a>
+      </xsl:when>
+      <xsl:when test="$v_classnamefq">
+        <a href="{translate(concat($gjdoc.pathtoroot, translate($v_classnamefq, '.', '/'), '.html', $v_seeanchor),' ','')}"><xsl:value-of select="translate($v_see,'#','.')"/></a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="translate(., '#', '.')" disable-output-escaping="yes"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name="resolve_parameter_list">
+    <xsl:param name="p_anchor"/>
+    <xsl:variable name="v_parameter">
+      <xsl:value-of select="normalize-space(substring-before($p_anchor, ','))"/>
+    </xsl:variable>
+    <xsl:variable name="v_remainder">
+      <xsl:value-of select="normalize-space(substring-after($p_anchor, ','))"/>
+    </xsl:variable>
+    <xsl:call-template name="get_qualified_type">
+      <xsl:with-param name="p_typename">
+        <xsl:choose>
+          <xsl:when test="string-length($v_remainder)>0">
+            <xsl:value-of select="$v_parameter"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$p_anchor"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:if test="string-length($v_remainder)>0">
+      <xsl:text>,</xsl:text>
+      <xsl:call-template name="resolve_parameter_list">
+        <xsl:with-param name="p_anchor">
+          <xsl:value-of select="$v_remainder"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl
new file mode 100644 (file)
index 0000000..da4ff62
--- /dev/null
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- index.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Creates the index.html file for HTML documentation. This is only\r
+     a simple frameset.\r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:include href="html_common.xsl"/>\r
+\r
+  <xsl:output method="html"\r
+    encoding="utf-8"\r
+    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"\r
+    doctype-system="http://www.w3.org/TR/html4/loose.dtd"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template match="/">\r
+    <html>\r
+      <head>\r
+        <xsl:call-template name="include_common"/>\r
+      </head>\r
+      <frameset cols="20%,80%">\r
+        <xsl:choose>\r
+          <xsl:when test="count(/gjdoc:rootdoc/gjdoc:packagedoc) > 1">\r
+            <frameset rows="25%,75%">\r
+              <frame src="allpackages.html" name="packages"/>\r
+              <frame src="allclasses.html" name="classes"/>\r
+            </frameset>\r
+            <frame src="index_noframes.html" name="content"/>\r
+          </xsl:when>\r
+          <xsl:otherwise>\r
+            <frame src="allclasses.html" name="classes"/>\r
+            <frame src="{concat(translate(/gjdoc:rootdoc/gjdoc:packagedoc[position()=1]/@name, '.', '/'), '/package-summary.html')}" name="content"/>\r
+          </xsl:otherwise>\r
+        </xsl:choose>\r
+      </frameset>\r
+    </html>\r
+  </xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl
new file mode 100644 (file)
index 0000000..ab45102
--- /dev/null
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- index_noframes.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Creates the index.html file for HTML documentation. This is only\r
+     a simple frameset.\r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:include href="html_common.xsl"/>\r
+\r
+  <xsl:output method="xml"\r
+    encoding="utf-8"\r
+    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"\r
+    doctype-system="http://www.w3.org/TR/html4/loose.dtd"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template name="output_packagedoc_tr">\r
+    <tr>\r
+      <td class="package-link">\r
+        <a href="{concat(translate(@name,'.','/'), '/package-summary.html')}" class="package-link">\r
+          <xsl:value-of select="@name"/>\r
+        </a>\r
+      </td>\r
+      <td class="package-summary-description">\r
+        <xsl:apply-templates select="./gjdoc:firstSentenceTags/node()"/>\r
+      </td>\r
+    </tr>\r
+  </xsl:template>\r
+\r
+  <xsl:template match="/">\r
+      <html>\r
+        <head>\r
+          <xsl:call-template name="output_title">\r
+            <xsl:with-param name="p_pagetitle" select="'Overview'"/>\r
+          </xsl:call-template>\r
+          <xsl:call-template name="include_common"/>\r
+        </head>\r
+        <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">\r
+\r
+          <!-- Top Navigation Bar -->\r
+          <xsl:call-template name="output_navbar">\r
+            <xsl:with-param name="p_show_frames" select="1"/>\r
+            <xsl:with-param name="p_show_noframes" select="0"/>\r
+            <xsl:with-param name="p_curr_noframes" select="1"/>\r
+            <xsl:with-param name="p_show_package" select="0"/>\r
+            <xsl:with-param name="p_show_package_tree" select="0"/>\r
+            <xsl:with-param name="p_show_full_tree" select="1"/>\r
+            <xsl:with-param name="p_show_index" select="1"/>\r
+            <xsl:with-param name="p_show_help" select="1"/>\r
+            <xsl:with-param name="p_top" select="1"/> \r
+          </xsl:call-template>\r
+\r
+          <div class="pagebody">\r
+\r
+          <xsl:if test="$gjdoc.option.doctitle">\r
+            <h1 class="overview-doctitle"><xsl:value-of select="$gjdoc.option.doctitle"/></h1>\r
+          </xsl:if>\r
+          <xsl:if test="/gjdoc:rootdoc/gjdoc:firstSentenceTags">\r
+            <div class="overview-description-top">\r
+              <xsl:for-each select="/gjdoc:rootdoc/gjdoc:firstSentenceTags/node()">\r
+                <xsl:copy-of select="."/>\r
+              </xsl:for-each>\r
+            </div>\r
+            <div class="classdoc-tag-section-header">See Also:</div>\r
+            <dl class="classdoc-list">\r
+              <dt><a href="#description">Description</a></dt>\r
+            </dl>\r
+          </xsl:if>\r
+\r
+          <xsl:choose>\r
+            <xsl:when test="/gjdoc:rootdoc/gjdoc:packagegroup">\r
+              <xsl:for-each select="/gjdoc:rootdoc/gjdoc:packagegroup">\r
+                <h1 class="classdoc-title"><xsl:value-of select="@name"/></h1>\r
+                <table border="1" cellspacing="0" class="classdoc-table">\r
+                  <xsl:for-each select="gjdoc:package">\r
+                    <xsl:variable name="v_name" select="@name"/>\r
+                    <xsl:for-each select="/gjdoc:rootdoc/gjdoc:packagedoc[@name=$v_name]">\r
+                      <xsl:call-template name="output_packagedoc_tr"/>\r
+                    </xsl:for-each>\r
+                  </xsl:for-each>\r
+                </table>\r
+              </xsl:for-each>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+              <h1 class="classdoc-title">All Packages</h1>\r
+              <table border="1" cellspacing="0" class="classdoc-table">\r
+                <xsl:for-each select="/gjdoc:rootdoc/gjdoc:packagedoc">\r
+                  <xsl:call-template name="output_packagedoc_tr"/>\r
+                </xsl:for-each>\r
+              </table>\r
+            </xsl:otherwise>\r
+          </xsl:choose>\r
+          <xsl:if test="/gjdoc:rootdoc/gjdoc:inlineTags">\r
+            <a name="description"/>\r
+            <div class="overview-description-full">\r
+              <xsl:for-each select="/gjdoc:rootdoc/gjdoc:inlineTags/node()">\r
+                <xsl:copy-of select="."/>\r
+              </xsl:for-each>\r
+            </div>\r
+          </xsl:if>\r
+          </div>\r
+          \r
+          <!-- Bottom Navigation Bar -->\r
+          <xsl:call-template name="output_navbar">\r
+            <xsl:with-param name="p_show_frames" select="1"/>\r
+            <xsl:with-param name="p_show_noframes" select="0"/>\r
+            <xsl:with-param name="p_curr_noframes" select="1"/>\r
+            <xsl:with-param name="p_show_package" select="0"/>\r
+            <xsl:with-param name="p_show_package_tree" select="0"/>\r
+            <xsl:with-param name="p_show_full_tree" select="1"/>\r
+            <xsl:with-param name="p_show_index" select="1"/>\r
+            <xsl:with-param name="p_show_help" select="1"/>\r
+            <xsl:with-param name="p_top" select="0"/> \r
+          </xsl:call-template>\r
+\r
+        </body>\r
+      </html>\r
+  </xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl
new file mode 100644 (file)
index 0000000..430b944
--- /dev/null
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- packageclasses.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Creates the package descriptor files for HTML documentation. \r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:include href="html_common.xsl"/>\r
+\r
+  <xsl:output method="xml"\r
+    encoding="utf-8"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template name="add_link_to_class">\r
+    <a href="{concat(@name, '.html')}" target="content" class="menu packageclasses">\r
+      <xsl:choose>\r
+        <xsl:when test="gjdoc:isInterface">\r
+          <i><xsl:value-of select="@name"/></i>\r
+        </xsl:when>\r
+        <xsl:otherwise>\r
+          <xsl:value-of select="@name"/>\r
+        </xsl:otherwise>\r
+      </xsl:choose>\r
+    </a><br/>\r
+  </xsl:template>\r
+\r
+  <xsl:template match="/">\r
+\r
+    <html>\r
+      <head>\r
+        <title>\r
+          <xsl:value-of select="concat(/gjdoc:rootdoc/gjdoc:title, ' - ', 'Classes in ', $gjdoc.outputfile.info)"/>\r
+        </title>\r
+        <xsl:call-template name="include_common"/>\r
+      </head>\r
+      <body onload="secondaryPageLoaded('classes');" class="menu packageclasses">\r
+        <h3 class="menu-title"><a href="package-summary.html" target="content"><xsl:value-of select="$gjdoc.outputfile.info"/></a></h3>\r
+        <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info and not(child::gjdoc:isError or child::gjdoc:isException)]">\r
+          <xsl:sort select="@name" order="ascending"/>\r
+          <xsl:call-template name="add_link_to_class"/>\r
+        </xsl:for-each>\r
+\r
+        <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info and child::gjdoc:isException]">\r
+          <h3><xsl:value-of select="$gjdoc.outputfile.info"/> Exceptions</h3>\r
+          <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info and child::gjdoc:isException]">\r
+            <xsl:sort select="@name" order="ascending"/>\r
+            <xsl:call-template name="add_link_to_class"/>\r
+          </xsl:for-each>\r
+        </xsl:if>\r
+\r
+        <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info and child::gjdoc:isError]">\r
+          <h3><xsl:value-of select="$gjdoc.outputfile.info"/> Errors</h3>\r
+          <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info and child::gjdoc:isError]">\r
+            <xsl:sort select="@name" order="ascending"/>\r
+            <xsl:call-template name="add_link_to_class"/>\r
+          </xsl:for-each>\r
+        </xsl:if>\r
+      </body>\r
+    </html>\r
+    \r
+  </xsl:template>\r
+  \r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl
new file mode 100644 (file)
index 0000000..afe6fb7
--- /dev/null
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+\r
+<!-- packagedoc.xsl\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+     \r
+     This file is part of GNU Classpath.\r
+     \r
+     GNU Classpath is free software; you can redistribute it and/or modify\r
+     it under the terms of the GNU General Public License as published by\r
+     the Free Software Foundation; either version 2, or (at your option)\r
+     any later version.\r
+      \r
+     GNU Classpath is distributed in the hope that it will be useful, but\r
+     WITHOUT ANY WARRANTY; without even the implied warranty of\r
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+     General Public License for more details.\r
+     \r
+     You should have received a copy of the GNU General Public License\r
+     along with GNU Classpath; see the file COPYING.  If not, write to the\r
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+     02111-1307 USA.\r
+     -->\r
+\r
+<!-- Creates the package descriptor files for HTML documentation. \r
+     -->\r
+\r
+<xsl:stylesheet version="1.0"\r
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+  xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"\r
+  xmlns:html="http://www.w3.org/TR/REC-html40"\r
+  xmlns="http://www.w3.org/TR/REC-html40">\r
+\r
+  <xsl:include href="html_common.xsl"/>\r
+\r
+  <xsl:output method="xml"\r
+    encoding="utf-8"\r
+    indent="no"/>\r
+\r
+  <xsl:strip-space elements="*"/>\r
+\r
+  <xsl:template match="/">\r
+\r
+    <html>\r
+      <head>\r
+        <xsl:call-template name="output_title">\r
+          <xsl:with-param name="p_pagetitle" select="$gjdoc.outputfile.info"/>\r
+        </xsl:call-template>\r
+        <xsl:call-template name="include_common"/>\r
+      </head>\r
+      <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(getTitle())">\r
+\r
+        <!-- Top Navigation Bar -->\r
+        <xsl:call-template name="output_navbar">\r
+          <xsl:with-param name="p_show_package" select="0"/>\r
+          <xsl:with-param name="p_curr_package" select="1"/>\r
+          <xsl:with-param name="p_show_package_tree" select="1"/>\r
+          <xsl:with-param name="p_top" select="1"/> \r
+        </xsl:call-template>\r
+\r
+        <div class="pagebody">\r
+\r
+        <h1 class="classdoc-title">Package <xsl:value-of select="$gjdoc.outputfile.info"/></h1>\r
+\r
+        <div class="classdoc-package-comment-body">\r
+          <xsl:apply-templates select="/gjdoc:rootdoc/gjdoc:packagedoc[@name=$gjdoc.outputfile.info]/gjdoc:firstSentenceTags/node()"/>\r
+        </div>\r
+\r
+        <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isInterface]">\r
+          <table border="1" cellspacing="0" width="100%" class="classdoc-table">\r
+            <tr><td colspan="2" class="section-header"><div class="section-header">Interface Summary</div></td></tr>\r
+            <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isInterface]">\r
+              <xsl:sort select="@name" order="ascending"/>\r
+              <xsl:call-template name="output-classes-summary"/>\r
+            </xsl:for-each>\r
+          </table>          \r
+        </xsl:if>\r
+\r
+        <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isOrdinaryClass]">\r
+          <table border="1" cellspacing="0" width="100%" class="classdoc-table">\r
+            <tr><td colspan="2" class="section-header"><div class="section-header">Class Summary</div></td></tr>\r
+            <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isOrdinaryClass]">\r
+              <xsl:sort select="@name" order="ascending"/>\r
+              <xsl:call-template name="output-classes-summary"/>\r
+            </xsl:for-each>\r
+          </table>\r
+        </xsl:if>\r
+\r
+        <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isException]">\r
+          <table border="1" cellspacing="0" width="100%" class="classdoc-table">\r
+            <tr><td colspan="2" class="section-header"><div class="section-header">Exception Summary</div></td></tr>\r
+            <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isException]">\r
+              <xsl:sort select="@name" order="ascending"/>\r
+              <xsl:call-template name="output-classes-summary"/>\r
+            </xsl:for-each>\r
+          </table>\r
+        </xsl:if>\r
+\r
+        <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isError]">\r
+          <table border="1" cellspacing="0" width="100%" class="classdoc-table">\r
+            <tr><td colspan="2" class="section-header"><div class="section-header">Error Summary</div></td></tr>\r
+            <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isError]">\r
+              <xsl:sort select="@name" order="ascending"/>\r
+              <xsl:call-template name="output-classes-summary"/>\r
+            </xsl:for-each>\r
+          </table>\r
+        </xsl:if>\r
+\r
+        <a name="description"><p> </p></a>\r
+        <h1 class="classdoc-sub-title package-description">Package <xsl:value-of select="$gjdoc.outputfile.info"/> Description</h1>\r
+\r
+        <div class="classdoc-package-comment-body">\r
+          <xsl:apply-templates select="/gjdoc:rootdoc/gjdoc:packagedoc[@name=$gjdoc.outputfile.info]/gjdoc:inlineTags/node()"/>\r
+        </div>\r
+\r
+      </div>\r
+\r
+        <!-- Bottom Navigation Bar -->\r
+        <xsl:call-template name="output_navbar">\r
+          <xsl:with-param name="p_show_package" select="0"/>\r
+          <xsl:with-param name="p_curr_package" select="1"/>\r
+          <xsl:with-param name="p_show_package_tree" select="1"/>\r
+          <xsl:with-param name="p_top" select="0"/> \r
+        </xsl:call-template>\r
+      </body>\r
+    </html>\r
+\r
+  </xsl:template>\r
+\r
+  <xsl:template name="output-classes-summary">\r
+    <xsl:variable name="v_currentclass" select="@qualifiedtypename"/>\r
+    <xsl:variable name="v_sub_xml_filename" select="concat(@qualifiedtypename,'.xml')"/>\r
+    <tr>\r
+      <td class="class-link">\r
+        <a href="{concat(@name, '.html')}" class="package-link">\r
+          <xsl:value-of select="@name"/>\r
+        </a>\r
+      </td>\r
+      <td class="class-summary-description">\r
+        <xsl:variable name="v_docstring" select="document($v_sub_xml_filename,/gjdoc:rootdoc)/gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/gjdoc:firstSentenceTags/node()"/>\r
+        <xsl:choose>\r
+          <xsl:when test="$v_docstring">\r
+            <xsl:for-each select="$v_docstring">\r
+              <xsl:value-of select="." disable-output-escaping="yes"/>\r
+            </xsl:for-each>\r
+          </xsl:when>\r
+          <xsl:otherwise>\r
+            <i>No description available.</i>\r
+          </xsl:otherwise>\r
+        </xsl:choose>\r
+      </td>\r
+    </tr>\r
+  </xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html
new file mode 100644 (file)
index 0000000..b59a63c
--- /dev/null
@@ -0,0 +1,7 @@
+  <body>
+    <h1 class="classdoc-title">Using the API Documentation</h1>
+
+    <p>
+      Write me.
+    </p>
+  </body>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js
new file mode 100644 (file)
index 0000000..125f8f6
--- /dev/null
@@ -0,0 +1,108 @@
+/* gjdoc.js
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/**
+ *  Sets a new stylesheet for a single frame.
+ */
+function setStyleSheetForFrame(title, frame_name)
+{
+   var i, num, a, main;
+   f = eval("top.frames." + frame_name);
+   for(i=0; (a = f.document.getElementsByTagName("link")[i]); i++) {
+      if(a.getAttribute("rel").indexOf("style") != -1
+         && a.getAttribute("title")) {
+         a.disabled = true;
+         a.disabled = (a.getAttribute("title") != title);
+      }
+   }
+}
+
+/**
+ *  Sets a new stylesheet for a single document.
+ */
+function setStyleSheetForDocument(title) 
+{
+   var i, num, a, main;
+   for(i=0; (a = top.document.getElementsByTagName("link")[i]); i++) {
+      if(a.getAttribute("rel").indexOf("style") != -1
+         && a.getAttribute("title")) {
+         a.disabled = true;
+         a.disabled = (a.getAttribute("title") != title);        
+      }
+   }
+}
+
+/**
+ *  Sets a new stylesheets for all frames.
+ */
+function setStyleSheet(title)
+{
+   var i, num, a, main;
+   num = top.frames.length;
+   if (num > 0) {
+      for (i=0; i<num; i++) {
+         setStyleSheetForFrame(title, top.frames[i].name);
+      }
+   }
+   else {
+      setStyleSheetForDocument(title);
+   }
+   top.selectedSheet = title;
+   return false;
+}
+
+/**
+ *  Returns the title of the set of stylesheets that is active in the
+ *  given frame.
+ */
+function getActiveStylesheetTitle(frame)
+{ 
+   for(i=0; (a = frame.document.getElementsByTagName("link")[i]); i++) {
+      if(a.getAttribute("rel").indexOf("style") != -1
+         && a.getAttribute("title")) {
+         if (!a.disabled) {
+            return a.getAttribute("title");
+         }    
+      }
+   }
+   return "";
+}
+
+/**
+ *  Invoked when a page in the main content frame has been loaded.
+ */
+function contentPageLoaded(title) 
+{ 
+   top.document.title = title;
+   if (top.frames.length > 0) 
+      setStyleSheet(getActiveStylesheetTitle(top.frames.packages), "content");
+   else if (top.selectedSheet) { 
+      setStyleSheet(top.selectedSheet, "content");
+   }
+}
+
+/**
+ *  Invoked when a page in one of the two frames on the left hand has
+ *  been loaded.
+ */
+function secondaryPageLoaded(frame_name)
+{ 
+   setStyleSheet(getActiveStylesheetTitle(top.frames.packages), frame_name);
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css
new file mode 100644 (file)
index 0000000..0913e7d
--- /dev/null
@@ -0,0 +1,382 @@
+/* gjdochtml-clean.css
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+body.classdoc { 
+   background: white;
+   font-size: 100%;
+   margin: 0.5em 1em 0.5em 1em;
+}
+
+hr {
+   border-style: solid none none none;
+   border-width: thin;
+   height: 1px;
+   color: black;
+}
+
+hr.footer {
+   margin-top: 2em;
+}
+
+table,tr,td  {
+   border: solid 1px #aaaaaa !important;
+   border-collapse: collapse !important;
+}
+
+table.classdoc-table {
+   border-width: 1px;                    
+   border-collapse: collapse;
+}
+
+table.classdoc-table tr {
+   border-width: 1px;                    
+   border-collapse: collapse;
+}
+
+table.classdoc-table td {
+   border: solid 1px #aaaaaa;
+   border-collapse: collapse;
+}
+
+.header {
+
+   border-style: solid;
+   padding: 0.2em;
+   margin: 0.3em;
+}
+
+ul {
+   padding-top: 0em;
+   margin-top: 0em;
+}
+
+td {
+   padding: 0.3em;
+   vertical-align: top;
+}
+
+td.with-border {  
+   border-color: #aaaaaa;
+   border-style: solid;
+   border-top: 0px;
+}
+
+td.no-border-r { 
+   border-color: #aaaaaa;
+   border-style: solid;
+   border-right: 0px;
+   border-top: 0px;
+}
+
+td.no-border-b { 
+   border-color: #aaaaaa;
+   border-style: solid;
+   border-bottom: 0px;
+}
+
+td.no-border-rb { 
+   border-color: #aaaaaa;
+   border-style: solid;
+   border-right: 0px;
+   border-bottom: 0px;
+}
+
+.classdoc-head { 
+   border: 1px;
+   border-style: solid;
+   padding: 0.3em 0.7em 0.5em 0.7em;
+   margin: 0.0em;
+} 
+
+.classdoc-head-packagename { 
+   font-size: 110%;
+   padding: 0.0em;
+   margin: 0.0em;
+}
+
+.classdoc-head-classname { 
+   font-size: 180%;
+   padding: 0.0em;
+   margin: 0.0em;
+}
+
+h1.classdoc-header {
+   border-width: 1px;
+   border-style: solid;
+   font-size: 140%;
+   padding: 0.2em 0.5em 0.3em 0.5em;
+   margin-top: 0.0em;
+}
+
+h2.classdoc-header {
+   border-width: 1px;
+   border-style: solid;
+   font-size: 140%;
+   padding: 0.2em 0.5em 0.3em 0.5em;
+   margin-top: 0.0em;
+}
+
+h1.classdoc-header,
+h2.classdoc-header,
+.classdoc-head,
+.classdoc-subheader,
+.section-header,
+.sub-section-header {
+   background: #80B9FF;
+   font-weight: bolder;
+}
+
+table.navbar {
+  background: #BFDCFF;
+}
+
+div[class="navbar top"] {
+  margin-bottom: 1em;
+}
+
+span[class="navi-button current"] {
+  color: white;
+  background: #0055BA;
+}
+
+span[class="navi-button unavailable"] {
+  color: #888888;
+}
+
+h3.classdoc-header {
+   font-size: 110%;
+}
+
+.classdoc-subheader {
+   border-width: 1px;
+   border-style: solid;
+   font-size: 120%;
+   padding: 1.0em;
+}
+
+.classdoc-prototype { 
+}
+
+.classdoc-summary-comment {
+   margin-top: 1.0em;
+   margin-bottom: 1.0em;
+   font-size: 100%;
+}
+
+.classdoc-tree-label {
+   font-size: 80%;
+   line-height: 2.0em;
+   padding: 0%;
+   vertical-align: top;
+   height: 2.0em;
+   margin: 0%;                  
+   padding-left: 1.0em;
+}
+
+.classdoc-comment-body { 
+   font-size: 100%;
+}
+
+blockquote.classdoc-summary-comment {
+   margin: 0.4em 0.0em 0.2em 2.0em;
+   padding: 0em;
+}
+
+div.classdoc-comment-body {
+   margin: 0.4em 0.0em 0.2em 2.0em;
+   padding: 0em;
+}
+
+div.classdoc-package-comment-body {
+   margin: 0.4em 0.0em 1.5em 0.0em;
+   padding: 0em;
+}
+
+div.classdoc-class-comment-body {
+   margin: 0.8em 0.0em 1.0em 0.0em;
+   padding: 0.0em;
+}
+
+ul.classdoc-list {
+   margin-top: 0.2em;
+   margin-left: 1.6em;
+}
+
+div.classdoc-tag-section-header {
+   margin-top: 0.5em;
+   font-weight: bold;
+}
+
+ol.classdoc-list {
+   margin-top: 0.2em;
+   margin-left: 1.6em;
+   list-style-type: circle;
+}
+
+dl.classdoc-list {
+   margin-top: 0.2em;
+   margin-left: 1.6em;
+}
+
+.navi-button {
+  padding: 0.0em;
+  margin: 0.0em;
+  padding-left: 0.2em;
+  padding-right: 0.2em;
+}
+
+.header {
+   width: 100%;
+   padding: 0.0em 0.7em 0.5em 0.0em;
+   margin: 0.0em 0.0em 0.9em 0.0em;
+   border: black 1px;
+   border-style: none none solid none;
+}
+
+.navbar-first-row {
+   width: 100%;
+   padding: 0.0em 0.7em 0.0em 0.0em;
+   margin: 0.0em 0.0em 0.4em 0.0em;
+   font-size: 80%;
+}
+
+.navbar-second-row {
+   width: 100%;
+   padding: 0.0em 0.7em 0.0em 0.0em;
+   margin: 0.0em 0.0em 0.0em 0.0em;
+   font-size: 70%;
+}
+
+.prototype {
+   text-indent:-2em; 
+   font-family:monospace; 
+   padding: 0em 0em 0em 2em;
+   margin: 0em; 
+}
+
+.prototype-type {
+   font-family:monospace; 
+   padding: 0em;
+   margin: 0em; 
+}
+
+.prototype-name {
+   font-family:monospace; 
+}
+
+span.parameter {
+   padding: 0em;
+   margin: 0em;
+   white-space: nowrap;
+}
+
+div.footer {
+   margin-bottom: 6cm;
+   font-style: italic;
+   font-size: 0.8em;
+}
+
+pre {
+   margin-left: 1.6em;
+}
+
+pre.inheritance-tree {
+   margin-left: 0.0em;
+}
+
+a.tree-class-link {
+   font-weight: bold;
+}
+
+span.index-category-current {
+  padding: 0.4em;
+  border: 1px black solid;
+}
+
+a.index-category-link {
+  padding: 0.4em;
+}
+
+a.menu {
+  font-size: 90%;
+}
+
+table.navbar {
+  width: 100%;
+  margin: 0px;
+  border: solid 1px #888888;
+  padding: 0px;
+}
+
+tr.navbar, td.navbar {
+  padding: 0.3em;
+  margin: 0px;
+}
+
+
+h1.overview-doctitle {
+  font-size: 170%;
+  text-align: center;
+  padding-bottom: 0.5em;
+}
+
+div.overview-description-top,
+div.overview-description-full {
+  margin-top: 1.5em;
+}
+
+table {
+  margin-top: 0em;
+  margin-bottom: 1em;
+  border-collapse: collapse;
+}
+
+span.navsep {
+}
+
+a[href] {
+  color: #0055BA;
+}
+
+a:visited {
+  color: #003B82;
+}
+
+a:active {
+  color: #80B9FF;
+}
+
+blockquote.member-summary {
+   text-indent: 2em;
+   margin: 0em;
+   margin-top: 0.2em;
+}
+
+table {
+   width: 100%;
+}
+
+td[class="member-summary method modifiers"] {
+  text-align: right;
+}
+
+td[class="member-summary field modifiers"] {
+  text-align: right;
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css
new file mode 100644 (file)
index 0000000..0c96c00
--- /dev/null
@@ -0,0 +1,286 @@
+/* gjdochtml-fixed.css
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+table  {
+   border: none !important;
+   border-top: none !important;
+   border-left: none !important;
+   border-right: none !important;
+   border-bottom: none !important;
+}
+
+td {
+   border: none !important;
+   border-top: none !important;
+   border-left: none !important;
+   border-right: none !important;
+   border-bottom: none !important;
+}
+
+body.classdoc { 
+   font-size: 100%;
+   margin: 0em;
+   padding: 0em;
+}
+
+table.navbar {
+   margin: 0em;
+   position: fixed;
+   z-index: 20;
+   left: 0em;
+   top: 0em;
+   width: 100%;
+   background: #0066B3;
+   color: white;
+   padding: 0.3em;
+   border-bottom: 3px solid black !important;
+   height: 5.3em;
+}
+
+table[class="navbar bottom"] {
+   visibility: hidden;
+}
+
+a.navi-button {
+   color: #FFB200;
+}
+
+.navbar-first-row {
+   font-size: 80%;
+   padding-bottom: 0.3em;
+}
+
+.navbar-second-row {
+   font-size: 70%;
+   text-align: right;
+   padding-right: 4.5em;
+}
+
+
+div.pagebody {
+  margin-top: 7em;
+  padding-left: 1em;
+  padding-right: 1em;
+  padding-bottom: 5em;
+  z-index: -100;
+}
+
+span.navsep:before {
+  padding-left: 0.25em;
+  content: "|";
+}
+
+span[class="navi-button current"] {
+  background: #003D6B;
+  color: white;
+}
+
+span[class="navi-button unavailable"] {
+  color: white;
+}
+
+.navi-button {
+  padding-left: 0.1em;                       
+  padding-right: 0.1em;                       
+
+}
+
+
+.classdoc-table-xxx { 
+   border-color: #aaaaaa;
+   border-style: solid;
+   border-collapse: collapse;
+}
+
+.classdoc-table { 
+   border: 0px;
+   border-collapse: collapse;
+}
+
+td {
+   vertical-align: top;
+   padding: 0.2em;
+}
+
+table {
+   margin-top: 1em;
+}
+
+span.index-category-current {
+  padding: 0.4em;
+  border: 1px black solid;
+}
+
+a.index-category-link {
+  width: 5em;
+  min-width: 5em;
+  padding: 0.3em;
+  margin-right: 0.4em;
+  color: #FFB200;
+  border: 1px #FFB200 solid;
+  text-decoration: none;
+}
+
+a[href] {
+  color: #991F00;
+}
+
+.classdoc-subtitle {
+  position: fixed;
+  left: 0.0em;
+  top: 2.7em;
+  font-size: 80%;
+  font-weight: bold;
+  color: #FFD980;
+  z-index: 30;
+  padding-left: 1.0em;
+  padding-top: 0.0em;
+  margin-top: 0.0em;
+}
+
+h1.classdoc-title {
+  position: fixed;
+  left: 0.0em;
+  top: 2.4em;
+  font-size: 130%;      
+  z-index: 30;
+  color: #FFD980;
+  padding-left: 0.5em;
+  padding-top: 0.0em;
+  margin-top: 0.0em;    
+}
+
+div.index-categories {
+  position: fixed;
+  left: 28em;
+  top: 5.8em;
+  font-size: 60%;
+  padding-top: 0.0em;
+  margin-top: 0.0em;
+}
+
+.before-details {
+}
+
+h3.menu-title {
+  width: 100%;
+  position: fixed;
+  left: 0em;
+  top: 0em;
+  margin-top: 0em;
+  background: #0066B3;
+  color: #FFD980;
+  padding: 0.3em;
+  padding-left: 0.8em;
+  border-bottom: 3px solid black;
+  font-size: 100%;
+}
+
+h3.menu-title > a {
+  color: #FFB200;
+}
+
+body.menu {
+  padding-top: 2em;
+}
+
+a.menu {
+  font-size: 85%;
+}
+
+a.classdoc {
+  position: relative;
+  top: -6em;
+}
+
+
+div.section-header, h1.classdoc-header {
+   background: #FFD980;
+   margin-bottom: 0px;
+   font-size: 130%;
+   font-weight: bolder;
+   padding-left: 2px;
+   margin-top: 1em;
+   padding-top: 4px;
+   padding-bottom: 4px;
+   position: relative;
+   left: -200px;
+   padding-left: 202px;
+   padding-right: 20px;
+   border: 1px solid black;
+   width: 60%;
+}
+
+div.sub-section-header {
+   background: #FFD980;
+   margin-bottom: 0px;
+   font-size: 110%;
+   font-weight: normal;
+   padding-left: 2px;
+   margin-top: 1em;
+   padding-top: 4px;
+   padding-bottom: 4px;
+   position: relative;
+   left: -200px;
+   padding-left: 202px;
+   padding-right: 20px;
+   border: 1px solid black;
+   width: 60%;
+}
+
+table {
+   width: 100%;
+}
+
+dl.classdoc-list {
+  margin-top: 0px;
+  margin-bottom: 0px;
+  margin-left: 2.5em;
+}
+
+blockquote.member-summary {
+   margin: 0px;
+   font-style: oblique;
+   font-size: 90%;
+   margin-top: 0.1em;
+   margin-bottom: 0.2em;
+   margin-left: 1em;
+}
+
+td[class="member-summary method modifiers"] {
+  text-align: right;
+}
+
+div.classdoc-tag-section-header {
+   margin-top: 0.5em;
+   font-weight: bold;
+}
+
+div.navbar-style-selector {
+  position: fixed;
+  right: 1em;
+  top: 2.9em;
+  z-index: 50;
+  padding-right: 0.6em;
+  vertical-align: top;
+}
+
+/* triad @ 225 deg */
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css
new file mode 100644 (file)
index 0000000..5c7f119
--- /dev/null
@@ -0,0 +1,266 @@
+/* gjdochtml-sclara.css
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+div.section-header,
+h1.classdoc-header {
+   background: #ccccff;
+   border: black ridge 2px;
+   border-collapse: collapse;
+   vertical-align: inherit;
+   text-align: inherit; 
+   margin-bottom: 0px;
+   font-size: 155%;
+   font-weight: bold;
+   padding-left: 2px;
+   margin-top: 1em;
+   padding-top: 2px;
+   padding-bottom: 2px;
+}
+
+td.section-header {
+   background: #ccccff;
+   margin-bottom: 0px;
+   font-size: 155%;
+   font-weight: bold;
+   padding-left: 2px;
+   margin-top: 1em;
+   padding-top: 2px;
+   padding-bottom: 2px;
+}
+
+td.sub-section-header {
+   background: #eeeeff;
+   margin-bottom: 0px;
+   font-size: 110%;
+   font-weight: normal;
+   padding-left: 2px;
+   margin-top: 1em;
+   padding-top: 2px;
+   padding-bottom: 2px;
+}
+
+table.classdoc-table {
+   margin-top: 1.5em;
+}
+
+div.navbar-first-row {
+   background: #eeeeff;
+   padding-top: 4px;
+   padding-bottom: 4px;
+   padding-left: 4px;
+   padding-right: 4px;
+   font-size: 100%;
+   color: black;
+   font-family: Arial, sans-serif;
+   font-weight: normal;
+}
+
+div.navbar-second-row {
+   padding-top: 0px;
+   padding-bottom: 9px;
+}
+
+div.navbar-second-row a[href] {
+   text-decoration: underline;
+   font-family: Arial, sans-serif;
+   font-weight: normal;
+   font-size: 60%;
+   text-transform: uppercase;
+   padding-top: 0px;
+   margin-top: 0px;
+   background: white;
+   margin-left: 8px;
+}
+
+div.navbar-second-row span {
+   padding: 0px;
+   margin: 0px;
+}
+
+span.navi-button {
+   padding-left: 0.4em;
+   padding-right: 0.4em;
+}
+
+div.navbar-first-row span[class="navi-button current"] {
+  background: #00008B;
+  color: white;
+  font-weight: bold;
+}
+
+div.navbar-first-row span[class="navi-button unavailable"] {
+  font-weight: normal;
+}
+
+div.navbar-first-row a[href] {
+   padding-bottom: 0px;
+   font-weight: lighter;
+   text-decoration: none;
+   border-bottom: 1px solid blue;
+   position: relative;
+   top: -1px;
+}
+
+div.navbar-first-row a:visited {
+   color: black;
+   font-weight: lighter;
+   text-decoration: none;
+   border-bottom: 1px solid black;
+}
+
+div.navbar-first-row span.navi-link {
+   padding: 0px;
+   margin: 0px;
+   color: black;
+   font-weight: bold;
+   position: relative;
+   top: 1px;
+}
+
+span.navsep {
+  padding-left: 0.15em;
+}
+
+a.menu {
+  font-family: Arial, Sans-Serif;
+  font-size: 90%;
+}
+
+table.navbar[class="navbar top"] {
+  padding-bottom: 4px;
+  border-bottom: inset 1px black;
+}
+
+table {
+  width: 100%;
+  margin: 0px;
+  border: none;
+  padding: 0px;
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+tr.navbar {
+  margin: 0px;
+  padding: 0px;
+  border: none;
+}
+
+td.navbar {
+  margin: 0px;
+  padding: 0px;
+  border: none;
+}
+
+a.package-link,
+a.class-link {
+  font-weight: bold;
+}
+
+table,tr,td {
+}
+
+table.classdoc-table {
+}
+
+table.classdoc-table tr {
+}
+
+table.classdoc-table td {
+   border: ridge 2px black;
+   border-collapse: separate;
+}
+
+td {
+   padding: 2px;
+}
+
+h1.classdoc-title,
+h1.classdoc-sub-title {
+   font-size: 150%;
+   font-weight: bold;
+}
+
+div.pagebody {
+   padding-bottom: 1em;
+}
+
+h3.menu-title {
+   font-family: Arial, Sans-Serif;
+   font-weight: normal;
+   font-size: 105%;
+}
+
+p.member-summary {
+   margin: 0px;
+   padding: 0px;
+   font-family: Monospace;
+}
+
+p.modifiers {
+   font-size: 80%;
+}
+
+a.name {
+   font-weight: bold;
+}
+
+blockquote.member-summary {
+   text-indent: 3em;
+   margin: 0px;
+}
+
+td.member-summary {
+   vertical-align: top;
+}
+
+.classdoc-head-packagename {
+   font-weight: bold;
+   padding-top: 2em;
+   padding-bottom: 0em;
+   margin: 0em;
+}
+
+.classdoc-head-classname {
+   padding-top: 0em;
+   margin-top: 0em;
+}
+
+td.super {
+   font-family: Monospace;
+}
+
+.classdoc-tag-section-header {
+  font-weight: bold;
+}
+
+dl.classdoc-list {
+  margin-top: 0px;
+  margin-bottom: 0px;
+  margin-left: 2.5em;
+}
+
+div.section-header,
+div.sub-section-header {
+  border: none;
+  padding: 0px;
+  margin: 0px;
+  font-size: inherit;
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css
new file mode 100644 (file)
index 0000000..5944c6c
--- /dev/null
@@ -0,0 +1,29 @@
+/* gjdochtml.css\r
+ Copyright (C) 2004 Free Software Foundation, Inc.\r
+\r
+ This file is part of GNU Classpath.\r
+\r
+ GNU Classpath is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2, or (at your option)\r
+ any later version.\r
\r
+ GNU Classpath is distributed in the hope that it will be useful, but\r
+ WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+ General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with GNU Classpath; see the file COPYING.  If not, write to the\r
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+ 02111-1307 USA. */\r
+\r
+body { \r
+   background: white;\r
+   font-size: 100%;\r
+}\r
+\r
+ol.tree,\r
+li.tree {\r
+   list-style-type: disc;\r
+}\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod
new file mode 100644 (file)
index 0000000..144d38d
--- /dev/null
@@ -0,0 +1,204 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML character entities module V4.1.2 ........................... -->
+<!-- File dbcentx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh, and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     $Id: dbcentx.mod,v 1.1 2008/05/27 19:26:05 jsumali Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook XML DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the entity declarations for the standard ISO
+     entity sets used by DocBook.
+
+     In DTD driver files referring to this module, please use an entity
+     declaration that uses the public identifier shown below:
+
+     <!ENTITY % dbcent PUBLIC
+     "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN"
+     "dbcentx.mod">
+     %dbcent;
+
+     See the documentation for detailed information on the parameter
+     entity and module scheme used in DocBook, customizing DocBook and
+     planning for interchange, and changes made since the last release
+     of DocBook.
+-->
+
+<!-- ...................................................................... -->
+
+<!ENTITY % ISOamsa.module "INCLUDE">
+<![%ISOamsa.module;[
+<!ENTITY % ISOamsa PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+"ent/iso-amsa.ent">
+%ISOamsa;
+<!--end of ISOamsa.module-->]]>
+
+<!ENTITY % ISOamsb.module "INCLUDE">
+<![%ISOamsb.module;[
+<!ENTITY % ISOamsb PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+"ent/iso-amsb.ent">
+%ISOamsb;
+<!--end of ISOamsb.module-->]]>
+
+<!ENTITY % ISOamsc.module "INCLUDE">
+<![%ISOamsc.module;[
+<!ENTITY % ISOamsc PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+"ent/iso-amsc.ent">
+%ISOamsc;
+<!--end of ISOamsc.module-->]]>
+
+<!ENTITY % ISOamsn.module "INCLUDE">
+<![%ISOamsn.module;[
+<!ENTITY % ISOamsn PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+"ent/iso-amsn.ent">
+%ISOamsn;
+<!--end of ISOamsn.module-->]]>
+
+<!ENTITY % ISOamso.module "INCLUDE">
+<![%ISOamso.module;[
+<!ENTITY % ISOamso PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+"ent/iso-amso.ent">
+%ISOamso;
+<!--end of ISOamso.module-->]]>
+
+<!ENTITY % ISOamsr.module "INCLUDE">
+<![%ISOamsr.module;[
+<!ENTITY % ISOamsr PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+"ent/iso-amsr.ent">
+%ISOamsr;
+<!--end of ISOamsr.module-->]]>
+
+<!ENTITY % ISObox.module "INCLUDE">
+<![%ISObox.module;[
+<!ENTITY % ISObox PUBLIC
+"ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+"ent/iso-box.ent">
+%ISObox;
+<!--end of ISObox.module-->]]>
+
+<!ENTITY % ISOcyr1.module "INCLUDE">
+<![%ISOcyr1.module;[
+<!ENTITY % ISOcyr1 PUBLIC
+"ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+"ent/iso-cyr1.ent">
+%ISOcyr1;
+<!--end of ISOcyr1.module-->]]>
+
+<!ENTITY % ISOcyr2.module "INCLUDE">
+<![%ISOcyr2.module;[
+<!ENTITY % ISOcyr2 PUBLIC
+"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+"ent/iso-cyr2.ent">
+%ISOcyr2;
+<!--end of ISOcyr2.module-->]]>
+
+<!ENTITY % ISOdia.module "INCLUDE">
+<![%ISOdia.module;[
+<!ENTITY % ISOdia PUBLIC
+"ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+"ent/iso-dia.ent">
+%ISOdia;
+<!--end of ISOdia.module-->]]>
+
+<!ENTITY % ISOgrk1.module "INCLUDE">
+<![%ISOgrk1.module;[
+<!ENTITY % ISOgrk1 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+"ent/iso-grk1.ent">
+%ISOgrk1;
+<!--end of ISOgrk1.module-->]]>
+
+<!ENTITY % ISOgrk2.module "INCLUDE">
+<![%ISOgrk2.module;[
+<!ENTITY % ISOgrk2 PUBLIC
+"ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+"ent/iso-grk2.ent">
+%ISOgrk2;
+<!--end of ISOgrk2.module-->]]>
+
+<!ENTITY % ISOgrk3.module "INCLUDE">
+<![%ISOgrk3.module;[
+<!ENTITY % ISOgrk3 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+"ent/iso-grk3.ent">
+%ISOgrk3;
+<!--end of ISOgrk3.module-->]]>
+
+<!ENTITY % ISOgrk4.module "INCLUDE">
+<![%ISOgrk4.module;[
+<!ENTITY % ISOgrk4 PUBLIC
+"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+"ent/iso-grk4.ent">
+%ISOgrk4;
+<!--end of ISOgrk4.module-->]]>
+
+<!ENTITY % ISOlat1.module "INCLUDE">
+<![%ISOlat1.module;[
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+<!--end of ISOlat1.module-->]]>
+
+<!ENTITY % ISOlat2.module "INCLUDE">
+<![%ISOlat2.module;[
+<!ENTITY % ISOlat2 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+"ent/iso-lat2.ent">
+%ISOlat2;
+<!--end of ISOlat2.module-->]]>
+
+<!ENTITY % ISOnum.module "INCLUDE">
+<![%ISOnum.module;[
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+<!--end of ISOnum.module-->]]>
+
+<!ENTITY % ISOpub.module "INCLUDE">
+<![%ISOpub.module;[
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!--end of ISOpub.module-->]]>
+
+<!ENTITY % ISOtech.module "INCLUDE">
+<![%ISOtech.module;[
+<!ENTITY % ISOtech PUBLIC
+"ISO 8879:1986//ENTITIES General Technical//EN//XML"
+"ent/iso-tech.ent">
+%ISOtech;
+<!--end of ISOtech.module-->]]>
+
+<!-- End of DocBook XML character entity sets module V4.1.2 ................. -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent
new file mode 100644 (file)
index 0000000..c03b1c9
--- /dev/null
@@ -0,0 +1,98 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Arrow Relations Entities V0.3 ................ -->
+<!-- File iso-amsa.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-amsa.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-amsa.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML
+-->
+
+<!ENTITY cularr        "&#x21B6;"> <!-- ANTICLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY curarr        "&#x21B7;"> <!-- CLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY dArr  "&#x21D3;"> <!-- DOWNWARDS DOUBLE ARROW -->
+<!ENTITY darr2 "&#x21CA;"> <!-- DOWNWARDS PAIRED ARROWS -->
+<!ENTITY dharl "&#x21C3;"> <!-- DOWNWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY dharr "&#x21C2;"> <!-- DOWNWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY lAarr "&#x21DA;"> <!-- LEFTWARDS TRIPLE ARROW -->
+<!ENTITY Larr  "&#x219E;"> <!-- LEFTWARDS TWO HEADED ARROW -->
+<!ENTITY larr2 "&#x21C7;"> <!-- LEFTWARDS PAIRED ARROWS -->
+<!ENTITY larrhk        "&#x21A9;"> <!-- LEFTWARDS ARROW WITH HOOK -->
+<!ENTITY larrlp        "&#x21AB;"> <!-- LEFTWARDS ARROW WITH LOOP -->
+<!ENTITY larrtl        "&#x21A2;"> <!-- LEFTWARDS ARROW WITH TAIL -->
+<!ENTITY lhard "&#x21BD;"> <!-- LEFTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY lharu "&#x21BC;"> <!-- LEFTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY hArr  "&#x21D4;"> <!--  -->
+<!ENTITY harr  "&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY lrarr2        "&#x21C6;"> <!-- LEFTWARDS ARROW OVER RIGHTWARDS ARROW -->
+<!ENTITY rlarr2        "&#x21C4;"> <!-- RIGHTWARDS ARROW OVER LEFTWARDS ARROW -->
+<!ENTITY harrw "&#x21AD;"> <!-- LEFT RIGHT WAVE ARROW -->
+<!ENTITY rlhar2        "&#x21CC;"> <!-- RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -->
+<!ENTITY lrhar2        "&#x21CB;"> <!-- LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -->
+<!ENTITY lsh   "&#x21B0;"> <!-- UPWARDS ARROW WITH TIP LEFTWARDS -->
+<!ENTITY map   "&#x21A6;"> <!-- RIGHTWARDS ARROW FROM BAR -->
+<!ENTITY mumap "&#x22B8;"> <!-- MULTIMAP -->
+<!ENTITY nearr "&#x2197;"> <!-- NORTH EAST ARROW -->
+<!ENTITY nlArr "&#x21CD;"> <!-- LEFTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nlarr "&#x219A;"> <!-- LEFTWARDS ARROW WITH STROKE -->
+<!ENTITY nhArr "&#x21CE;"> <!-- LEFT RIGHT DOUBLE ARROW WITH STROKE -->
+<!ENTITY nharr "&#x21AE;"> <!-- LEFT RIGHT ARROW WITH STROKE -->
+<!ENTITY nrarr "&#x219B;"> <!-- RIGHTWARDS ARROW WITH STROKE -->
+<!ENTITY nrArr "&#x21CF;"> <!-- RIGHTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nwarr "&#x2196;"> <!-- NORTH WEST ARROW -->
+<!ENTITY olarr "&#x21BA;"> <!-- ANTICLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY orarr "&#x21BB;"> <!-- CLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY rAarr "&#x21DB;"> <!-- RIGHTWARDS TRIPLE ARROW -->
+<!ENTITY Rarr  "&#x21A0;"> <!-- RIGHTWARDS TWO HEADED ARROW -->
+<!ENTITY rarr2 "&#x21C9;"> <!-- RIGHTWARDS PAIRED ARROWS -->
+<!ENTITY rarrhk        "&#x21AA;"> <!-- RIGHTWARDS ARROW WITH HOOK -->
+<!ENTITY rarrlp        "&#x21AC;"> <!-- RIGHTWARDS ARROW WITH LOOP -->
+<!ENTITY rarrtl        "&#x21A3;"> <!-- RIGHTWARDS ARROW WITH TAIL -->
+<!ENTITY rarrw "&#x219D;"> <!-- RIGHTWARDS SQUIGGLE ARROW -->
+<!ENTITY rhard "&#x21C1;"> <!-- RIGHTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY rharu "&#x21C0;"> <!-- RIGHTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY rsh   "&#x21B1;"> <!-- UPWARDS ARROW WITH TIP RIGHTWARDS -->
+<!ENTITY drarr "&#x2198;"> <!-- SOUTH EAST ARROW -->
+<!ENTITY dlarr "&#x2199;"> <!-- SOUTH WEST ARROW -->
+<!ENTITY uArr  "&#x21D1;"> <!-- UPWARDS DOUBLE ARROW -->
+<!ENTITY uarr2 "&#x21C8;"> <!-- UPWARDS PAIRED ARROWS -->
+<!ENTITY vArr  "&#x21D5;"> <!-- UP DOWN DOUBLE ARROW -->
+<!ENTITY varr  "&#x2195;"> <!-- UP DOWN ARROW -->
+<!ENTITY uharl "&#x21BF;"> <!-- UPWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY uharr "&#x21BE;"> <!-- UPWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY xlArr "&#x21D0;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY xhArr "&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY xharr "&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY xrArr "&#x21D2;"> <!-- RIGHTWARDS DOUBLE ARROW -->
+
+<!-- End of Added Math Symbols: Arrow Relations Entities V0.3 ............. -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent
new file mode 100644 (file)
index 0000000..945d7ee
--- /dev/null
@@ -0,0 +1,84 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Binary Operators Entities V0.3 ............... -->
+<!-- File iso-amsb.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-amsb.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-amsb.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML
+-->
+
+<!ENTITY amalg "&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY Barwed        "&#x2306;"> <!-- PERSPECTIVE -->
+<!ENTITY barwed        "&#x22BC;"> <!-- NAND -->
+<!ENTITY Cap   "&#x22D2;"> <!-- DOUBLE INTERSECTION -->
+<!ENTITY Cup   "&#x22D3;"> <!-- DOUBLE UNION -->
+<!ENTITY cuvee "&#x22CE;"> <!-- CURLY LOGICAL OR -->
+<!ENTITY cuwed "&#x22CF;"> <!-- CURLY LOGICAL AND -->
+<!ENTITY diam  "&#x22C4;"> <!-- DIAMOND OPERATOR -->
+<!ENTITY divonx        "&#x22C7;"> <!-- DIVISION TIMES -->
+<!ENTITY intcal        "&#x22BA;"> <!-- INTERCALATE -->
+<!ENTITY lthree        "&#x22CB;"> <!-- LEFT SEMIDIRECT PRODUCT -->
+<!ENTITY ltimes        "&#x22C9;"> <!-- LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY minusb        "&#x229F;"> <!-- SQUARED MINUS -->
+<!ENTITY oast  "&#x229B;"> <!-- CIRCLED ASTERISK OPERATOR -->
+<!ENTITY ocir  "&#x229A;"> <!-- CIRCLED RING OPERATOR -->
+<!ENTITY odash "&#x229D;"> <!-- CIRCLED DASH -->
+<!ENTITY odot  "&#x2299;"> <!-- CIRCLED DOT OPERATOR -->
+<!ENTITY ominus        "&#x2296;"> <!-- CIRCLED MINUS -->
+<!ENTITY oplus "&#x2295;"> <!-- CIRCLED PLUS -->
+<!ENTITY osol  "&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY otimes        "&#x2297;"> <!-- CIRCLED TIMES -->
+<!ENTITY plusb "&#x229E;"> <!-- SQUARED PLUS -->
+<!ENTITY plusdo        "&#x2214;"> <!-- DOT PLUS -->
+<!ENTITY rthree        "&#x22CC;"> <!-- RIGHT SEMIDIRECT PRODUCT -->
+<!ENTITY rtimes        "&#x22CA;"> <!-- RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY sdot  "&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY sdotb "&#x22A1;"> <!-- SQUARED DOT OPERATOR -->
+<!ENTITY setmn "&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sqcap "&#x2293;"> <!-- SQUARE CAP -->
+<!ENTITY sqcup "&#x2294;"> <!-- SQUARE CUP -->
+<!ENTITY ssetmn        "&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sstarf        "&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY timesb        "&#x22A0;"> <!-- SQUARED TIMES -->
+<!ENTITY top   "&#x22A4;"> <!-- DOWN TACK -->
+<!ENTITY uplus "&#x228E;"> <!-- MULTISET UNION -->
+<!ENTITY wreath        "&#x2240;"> <!-- WREATH PRODUCT -->
+<!ENTITY xcirc "&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY xdtri "&#x25BD;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY xutri "&#x25B3;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY coprod        "&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY prod  "&#x220F;"> <!-- N-ARY PRODUCT -->
+<!ENTITY sum   "&#x2211;"> <!-- N-ARY SUMMATION -->
+
+<!-- End of Added Math Symbols: Binary Operators Entities V0.3 ............ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent
new file mode 100644 (file)
index 0000000..604ac48
--- /dev/null
@@ -0,0 +1,52 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Delimiters Entities V0.3 ..................... -->
+<!-- File iso-amsc.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-amsc.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-amsc.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML
+-->
+
+<!ENTITY rceil "&#x2309;"> <!-- RIGHT CEILING -->
+<!ENTITY rfloor        "&#x230B;"> <!-- RIGHT FLOOR -->
+<!ENTITY rpargt        "&#xE291;"> <!--  -->
+<!ENTITY urcorn        "&#x231D;"> <!-- TOP RIGHT CORNER -->
+<!ENTITY drcorn        "&#x231F;"> <!-- BOTTOM RIGHT CORNER -->
+<!ENTITY lceil "&#x2308;"> <!-- LEFT CEILING -->
+<!ENTITY lfloor        "&#x230A;"> <!-- LEFT FLOOR -->
+<!--     lpargt        Unknown unicode character -->
+<!ENTITY ulcorn        "&#x231C;"> <!-- TOP LEFT CORNER -->
+<!ENTITY dlcorn        "&#x231E;"> <!-- BOTTOM LEFT CORNER -->
+
+<!-- End of Added Math Symbols: Delimiters Entities V0.3 .................. -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent
new file mode 100644 (file)
index 0000000..fbc1e94
--- /dev/null
@@ -0,0 +1,101 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Negated Relations Entities V0.3 .............. -->
+<!-- File iso-amsn.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-amsn.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-amsn.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML
+-->
+
+<!ENTITY gnap  "&#xE411;"> <!--  -->
+<!ENTITY gne   "&#x2269;"> <!--  -->
+<!ENTITY gnE   "&#x2269;"> <!--  -->
+<!ENTITY gnsim "&#x22E7;"> <!-- GREATER-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY gvnE  "&#x2269;"> <!-- GREATER-THAN BUT NOT EQUAL TO -->
+<!ENTITY lnap  "&#xE2A2;"> <!--  -->
+<!ENTITY lnE   "&#x2268;"> <!--  -->
+<!ENTITY lne   "&#x2268;"> <!--  -->
+<!ENTITY lnsim "&#x22E6;"> <!--  -->
+<!ENTITY lvnE  "&#x2268;"> <!-- LESS-THAN BUT NOT EQUAL TO -->
+<!ENTITY nap   "&#x2249;"> <!-- NOT ALMOST EQUAL TO -->
+<!ENTITY ncong "&#x2247;"> <!-- NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -->
+<!ENTITY nequiv        "&#x2262;"> <!-- NOT IDENTICAL TO -->
+<!ENTITY ngE   "&#x2271;"> <!--  -->
+<!ENTITY nge   "&#x2271;"> <!-- NEITHER GREATER-THAN NOR EQUAL TO -->
+<!ENTITY nges  "&#x2271;"> <!--  -->
+<!ENTITY ngt   "&#x226F;"> <!-- NOT GREATER-THAN -->
+<!ENTITY nle   "&#x2270;"> <!-- NEITHER LESS-THAN NOR EQUAL TO -->
+<!ENTITY nlE   "&#x2270;"> <!--  -->
+<!ENTITY nles  "&#x2270;"> <!--  -->
+<!ENTITY nlt   "&#x226E;"> <!-- NOT LESS-THAN -->
+<!ENTITY nltri "&#x22EA;"> <!-- NOT NORMAL SUBGROUP OF -->
+<!ENTITY nltrie        "&#x22EC;"> <!-- NOT NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY nmid  "&#x2224;"> <!-- DOES NOT DIVIDE -->
+<!ENTITY npar  "&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY npr   "&#x2280;"> <!-- DOES NOT PRECEDE -->
+<!ENTITY npre  "&#x22E0;"> <!-- DOES NOT PRECEDE OR EQUAL -->
+<!ENTITY nrtri "&#x22EB;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP -->
+<!ENTITY nrtrie        "&#x22ED;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -->
+<!ENTITY nsc   "&#x2281;"> <!-- DOES NOT SUCCEED -->
+<!ENTITY nsce  "&#x22E1;"> <!-- DOES NOT SUCCEED OR EQUAL -->
+<!ENTITY nsim  "&#x2241;"> <!--  -->
+<!ENTITY nsime "&#x2244;"> <!--  -->
+<!ENTITY nsmid "&#xE2AA;"> <!--  -->
+<!ENTITY nspar "&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY nsub  "&#x2284;"> <!-- NOT A SUBSET OF -->
+<!ENTITY nsube "&#x2288;"> <!--  -->
+<!ENTITY nsubE "&#x2288;"> <!--  -->
+<!ENTITY nsup  "&#x2285;"> <!-- NOT A SUPERSET OF -->
+<!ENTITY nsupE "&#x2289;"> <!--  -->
+<!ENTITY nsupe "&#x2289;"> <!--  -->
+<!ENTITY nvdash        "&#x22AC;"> <!-- DOES NOT PROVE -->
+<!ENTITY nvDash        "&#x22AD;"> <!-- NOT TRUE -->
+<!ENTITY nVDash        "&#x22AF;"> <!-- NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -->
+<!ENTITY nVdash        "&#x22AE;"> <!-- DOES NOT FORCE -->
+<!ENTITY prnap "&#x22E8;"> <!--  -->
+<!ENTITY prnE  "&#xE2B3;"> <!--  -->
+<!ENTITY prnsim        "&#x22E8;"> <!--  -->
+<!ENTITY scnap "&#x22E9;"> <!--  -->
+<!ENTITY scnE  "&#xE2B5;"> <!--  -->
+<!ENTITY scnsim        "&#x22E9;"> <!--  -->
+<!ENTITY subne "&#x228A;"> <!--  -->
+<!ENTITY subnE "&#x228A;"> <!-- SUBSET OF WITH NOT EQUAL TO -->
+<!ENTITY supne "&#x228B;"> <!--  -->
+<!ENTITY supnE "&#x228B;"> <!--  -->
+<!ENTITY vsubnE        "&#xE2B8;"> <!--  -->
+<!ENTITY vsubne        "&#x228A;"> <!-- SUBSET OF WITH NOT EQUAL TO -->
+<!ENTITY vsupne        "&#x228B;"> <!-- SUPERSET OF WITH NOT EQUAL TO -->
+<!ENTITY vsupnE        "&#x228B;"> <!-- SUPERSET OF WITH NOT EQUAL TO -->
+
+<!-- End of ISO Added Math Symbols: Negated Relations Entities V0.3 ....... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent
new file mode 100644 (file)
index 0000000..6dc6810
--- /dev/null
@@ -0,0 +1,68 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Ordinary Entities V0.3 ....................... -->
+<!-- File iso-amso.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-amso.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-amso.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML
+-->
+
+<!-- iso-amso.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz
+     With additional derivations from
+     ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY ang   "&#x2220;"> <!-- ANGLE -->
+<!ENTITY angmsd        "&#x2221;"> <!-- MEASURED ANGLE -->
+<!ENTITY beth  "&#x2136;"> <!-- BET SYMBOL -->
+<!ENTITY bprime        "&#x2035;"> <!-- REVERSED PRIME -->
+<!ENTITY comp  "&#x2201;"> <!-- COMPLEMENT -->
+<!ENTITY daleth        "&#x2138;"> <!-- DALET SYMBOL -->
+<!ENTITY ell   "&#x2113;"> <!-- SCRIPT SMALL L -->
+<!ENTITY empty "&#x2205;"> <!--  -->
+<!ENTITY gimel "&#x2137;"> <!-- GIMEL SYMBOL -->
+<!ENTITY image "&#x2111;"> <!-- BLACK-LETTER CAPITAL I -->
+<!ENTITY inodot        "&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!--     jnodot        Unknown unicode character -->
+<!ENTITY nexist        "&#x2204;"> <!-- THERE DOES NOT EXIST -->
+<!ENTITY oS    "&#x24C8;"> <!-- CIRCLED LATIN CAPITAL LETTER S -->
+<!ENTITY planck        "&#x210F;"> <!-- PLANCK CONSTANT OVER TWO PI -->
+<!ENTITY real  "&#x211C;"> <!-- BLACK-LETTER CAPITAL R -->
+<!ENTITY sbsol "&#xFE68;"> <!-- SMALL REVERSE SOLIDUS -->
+<!ENTITY vprime        "&#x2032;"> <!-- PRIME -->
+<!ENTITY weierp        "&#x2118;"> <!-- SCRIPT CAPITAL P -->
+
+<!-- End of ISO Added Math Symbols: Ordinary Entities V0.3 ................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent
new file mode 100644 (file)
index 0000000..9c370b3
--- /dev/null
@@ -0,0 +1,126 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Relations Entities V0.3 ...................... -->
+<!-- File iso-amsr.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-amsr.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-amsr.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML
+-->
+
+<!ENTITY ape   "&#x224A;"> <!--  -->
+<!ENTITY asymp "&#x224D;"> <!-- EQUIVALENT TO -->
+<!ENTITY bcong "&#x224C;"> <!-- ALL EQUAL TO -->
+<!ENTITY bepsi "&#x220D;"> <!-- SMALL CONTAINS AS MEMBER -->
+<!ENTITY bowtie        "&#x22C8;"> <!--  -->
+<!ENTITY bsim  "&#x223D;"> <!--  -->
+<!ENTITY bsime "&#x22CD;"> <!--  -->
+<!ENTITY bump  "&#x224E;"> <!--  -->
+<!ENTITY bumpe "&#x224F;"> <!--  -->
+<!ENTITY cire  "&#x2257;"> <!--  -->
+<!ENTITY colone        "&#x2254;"> <!--  -->
+<!ENTITY cuepr "&#x22DE;"> <!--  -->
+<!ENTITY cuesc "&#x22DF;"> <!--  -->
+<!ENTITY cupre "&#x227C;"> <!--  -->
+<!ENTITY dashv "&#x22A3;"> <!--  -->
+<!ENTITY ecir  "&#x2256;"> <!--  -->
+<!ENTITY ecolon        "&#x2255;"> <!--  -->
+<!ENTITY eDot  "&#x2251;"> <!--  -->
+<!ENTITY esdot "&#x2250;"> <!--  -->
+<!ENTITY efDot "&#x2252;"> <!--  -->
+<!ENTITY egs   "&#x22DD;"> <!--  -->
+<!ENTITY els   "&#x22DC;"> <!--  -->
+<!ENTITY erDot "&#x2253;"> <!--  -->
+<!ENTITY fork  "&#x22D4;"> <!--  -->
+<!ENTITY frown "&#x2322;"> <!--  -->
+<!ENTITY gap   "&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY gsdot "&#x22D7;"> <!--  -->
+<!ENTITY gE    "&#x2267;"> <!--  -->
+<!ENTITY gel   "&#x22DB;"> <!--  -->
+<!ENTITY gEl   "&#x22DB;"> <!--  -->
+<!ENTITY ges   "&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY Gg    "&#x22D9;"> <!-- VERY MUCH GREATER-THAN -->
+<!ENTITY gl    "&#x2277;"> <!--  -->
+<!ENTITY gsim  "&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY Gt    "&#x226B;"> <!-- MUCH GREATER-THAN -->
+<!ENTITY lap   "&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY ldot  "&#x22D6;"> <!--  -->
+<!ENTITY lE    "&#x2266;"> <!--  -->
+<!ENTITY lEg   "&#x22DA;"> <!--  -->
+<!ENTITY leg   "&#x22DA;"> <!--  -->
+<!ENTITY les   "&#x2264;"> <!-- LESS-THAN OR EQUAL TO -->
+<!ENTITY lg    "&#x2276;"> <!-- LESS-THAN OR GREATER-THAN -->
+<!ENTITY Ll    "&#x22D8;"> <!--  -->
+<!ENTITY lsim  "&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY Lt    "&#x226A;"> <!-- MUCH LESS-THAN -->
+<!ENTITY ltrie "&#x22B4;"> <!--  -->
+<!ENTITY mid   "&#x2223;"> <!--  -->
+<!ENTITY models        "&#x22A7;"> <!-- MODELS -->
+<!ENTITY pr    "&#x227A;"> <!--  -->
+<!ENTITY prap  "&#x227E;"> <!--  -->
+<!ENTITY pre   "&#x227C;"> <!--  -->
+<!ENTITY prsim "&#x227E;"> <!--  -->
+<!ENTITY rtrie "&#x22B5;"> <!--  -->
+<!ENTITY samalg        "&#x2210;"> <!--  -->
+<!ENTITY sc    "&#x227B;"> <!--  -->
+<!ENTITY scap  "&#x227F;"> <!--  -->
+<!ENTITY sccue "&#x227D;"> <!--  -->
+<!ENTITY sce   "&#x227D;"> <!--  -->
+<!ENTITY scsim "&#x227F;"> <!--  -->
+<!ENTITY sfrown        "&#x2322;"> <!-- FROWN -->
+<!ENTITY smid  "&#xE301;"> <!--  -->
+<!ENTITY smile "&#x2323;"> <!--  -->
+<!ENTITY spar  "&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY sqsub "&#x228F;"> <!--  -->
+<!ENTITY sqsube        "&#x2291;"> <!--  -->
+<!ENTITY sqsup "&#x2290;"> <!--  -->
+<!ENTITY sqsupe        "&#x2292;"> <!--  -->
+<!ENTITY ssmile        "&#x2323;"> <!-- SMILE -->
+<!ENTITY Sub   "&#x22D0;"> <!--  -->
+<!ENTITY subE  "&#x2286;"> <!--  -->
+<!ENTITY Sup   "&#x22D1;"> <!--  -->
+<!ENTITY supE  "&#x2287;"> <!--  -->
+<!ENTITY thkap "&#x2248;"> <!-- ALMOST EQUAL TO -->
+<!ENTITY thksim        "&#x223C;"> <!-- TILDE OPERATOR -->
+<!ENTITY trie  "&#x225C;"> <!--  -->
+<!ENTITY twixt "&#x226C;"> <!-- BETWEEN -->
+<!ENTITY vdash "&#x22A2;"> <!--  -->
+<!ENTITY Vdash "&#x22A9;"> <!--  -->
+<!ENTITY vDash "&#x22A8;"> <!--  -->
+<!ENTITY veebar        "&#x22BB;"> <!--  -->
+<!ENTITY vltri "&#x22B2;"> <!--  -->
+<!ENTITY vprop "&#x221D;"> <!--  -->
+<!ENTITY vrtri "&#x22B3;"> <!--  -->
+<!ENTITY Vvdash        "&#x22AA;"> <!--  -->
+
+<!-- End of ISO Added Math Symbols: Relations Entities V0.3 ............... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent
new file mode 100644 (file)
index 0000000..904916c
--- /dev/null
@@ -0,0 +1,82 @@
+<!-- ...................................................................... -->
+<!-- ISO Box and Line Drawing Entities V0.3 ............................... -->
+<!-- File iso-box.ent ..................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-box.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-box.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML
+-->
+
+<!ENTITY boxh  "&#x2500;"> <!-- BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxv  "&#x2502;"> <!-- BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxur "&#x2514;"> <!-- BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxul "&#x2518;"> <!-- BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxdl "&#x2510;"> <!-- BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxdr "&#x250C;"> <!-- BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxvr "&#x251C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND RIGHT -->
+<!ENTITY boxhu "&#x2534;"> <!-- BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxvl "&#x2524;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxhd "&#x252C;"> <!-- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxvh "&#x253C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxvR "&#x255E;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxhU "&#x2567;"> <!-- BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvL "&#x2561;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxhD "&#x2564;"> <!-- BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvH "&#x256A;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxH  "&#x2550;"> <!-- BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxV  "&#x2551;"> <!-- BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxUR "&#x2558;"> <!-- BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxUL "&#x255B;"> <!-- BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDL "&#x2555;"> <!-- BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDR "&#x2552;"> <!-- BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxVR "&#x255F;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxHU "&#x2568;"> <!-- BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVL "&#x2562;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxHD "&#x2565;"> <!-- BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVH "&#x256B;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVr "&#x2560;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxHu "&#x2569;"> <!-- BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxVl "&#x2563;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxHd "&#x2566;"> <!-- BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxVh "&#x256C;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxuR "&#x2559;"> <!-- BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUl "&#x255C;"> <!-- BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxdL "&#x2556;"> <!-- BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxDr "&#x2553;"> <!-- BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUr "&#x255A;"> <!-- BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxuL "&#x255D;"> <!-- BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxDl "&#x2557;"> <!-- BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxdR "&#x2554;"> <!-- BOX DRAWINGS DOUBLE DOWN AND RIGHT -->
+
+<!-- End of ISO Box and Line Drawing Entities V0.3 ........................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent
new file mode 100644 (file)
index 0000000..6507c79
--- /dev/null
@@ -0,0 +1,109 @@
+<!-- ...................................................................... -->
+<!-- ISO Russian Cyrillic Entities V0.3 ................................... -->
+<!-- File iso-cyr1.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-cyr1.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-cyr1.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML
+-->
+
+<!ENTITY acy   "&#x0430;"> <!-- CYRILLIC SMALL LETTER A -->
+<!ENTITY Acy   "&#x0410;"> <!-- CYRILLIC CAPITAL LETTER A -->
+<!ENTITY bcy   "&#x0431;"> <!-- CYRILLIC SMALL LETTER BE -->
+<!ENTITY Bcy   "&#x0411;"> <!-- CYRILLIC CAPITAL LETTER BE -->
+<!ENTITY vcy   "&#x0432;"> <!-- CYRILLIC SMALL LETTER VE -->
+<!ENTITY Vcy   "&#x0412;"> <!-- CYRILLIC CAPITAL LETTER VE -->
+<!ENTITY gcy   "&#x0433;"> <!-- CYRILLIC SMALL LETTER GHE -->
+<!ENTITY Gcy   "&#x0413;"> <!-- CYRILLIC CAPITAL LETTER GHE -->
+<!ENTITY dcy   "&#x0434;"> <!-- CYRILLIC SMALL LETTER DE -->
+<!ENTITY Dcy   "&#x0414;"> <!-- CYRILLIC CAPITAL LETTER DE -->
+<!ENTITY iecy  "&#x0435;"> <!-- CYRILLIC SMALL LETTER IE -->
+<!ENTITY IEcy  "&#x0415;"> <!-- CYRILLIC CAPITAL LETTER IE -->
+<!ENTITY iocy  "&#x0451;"> <!-- CYRILLIC SMALL LETTER IO -->
+<!ENTITY IOcy  "&#x0401;"> <!-- CYRILLIC CAPITAL LETTER IO -->
+<!ENTITY zhcy  "&#x0436;"> <!-- CYRILLIC SMALL LETTER ZHE -->
+<!ENTITY ZHcy  "&#x0416;"> <!-- CYRILLIC CAPITAL LETTER ZHE -->
+<!ENTITY zcy   "&#x0437;"> <!-- CYRILLIC SMALL LETTER ZE -->
+<!ENTITY Zcy   "&#x0417;"> <!-- CYRILLIC CAPITAL LETTER ZE -->
+<!ENTITY icy   "&#x0438;"> <!-- CYRILLIC SMALL LETTER I -->
+<!ENTITY Icy   "&#x0418;"> <!-- CYRILLIC CAPITAL LETTER I -->
+<!ENTITY jcy   "&#x0439;"> <!-- CYRILLIC SMALL LETTER SHORT I -->
+<!ENTITY Jcy   "&#x0419;"> <!-- CYRILLIC CAPITAL LETTER SHORT I -->
+<!ENTITY kcy   "&#x043A;"> <!-- CYRILLIC SMALL LETTER KA -->
+<!ENTITY Kcy   "&#x041A;"> <!-- CYRILLIC CAPITAL LETTER KA -->
+<!ENTITY lcy   "&#x043B;"> <!-- CYRILLIC SMALL LETTER EL -->
+<!ENTITY Lcy   "&#x041B;"> <!-- CYRILLIC CAPITAL LETTER EL -->
+<!ENTITY mcy   "&#x043C;"> <!-- CYRILLIC SMALL LETTER EM -->
+<!ENTITY Mcy   "&#x041C;"> <!-- CYRILLIC CAPITAL LETTER EM -->
+<!ENTITY ncy   "&#x043D;"> <!-- CYRILLIC SMALL LETTER EN -->
+<!ENTITY Ncy   "&#x041D;"> <!-- CYRILLIC CAPITAL LETTER EN -->
+<!ENTITY ocy   "&#x043E;"> <!-- CYRILLIC SMALL LETTER O -->
+<!ENTITY Ocy   "&#x041E;"> <!-- CYRILLIC CAPITAL LETTER O -->
+<!ENTITY pcy   "&#x043F;"> <!-- CYRILLIC SMALL LETTER PE -->
+<!ENTITY Pcy   "&#x041F;"> <!-- CYRILLIC CAPITAL LETTER PE -->
+<!ENTITY rcy   "&#x0440;"> <!-- CYRILLIC SMALL LETTER ER -->
+<!ENTITY Rcy   "&#x0420;"> <!-- CYRILLIC CAPITAL LETTER ER -->
+<!ENTITY scy   "&#x0441;"> <!-- CYRILLIC SMALL LETTER ES -->
+<!ENTITY Scy   "&#x0421;"> <!-- CYRILLIC CAPITAL LETTER ES -->
+<!ENTITY tcy   "&#x0442;"> <!-- CYRILLIC SMALL LETTER TE -->
+<!ENTITY Tcy   "&#x0422;"> <!-- CYRILLIC CAPITAL LETTER TE -->
+<!ENTITY ucy   "&#x0443;"> <!-- CYRILLIC SMALL LETTER U -->
+<!ENTITY Ucy   "&#x0423;"> <!-- CYRILLIC CAPITAL LETTER U -->
+<!ENTITY fcy   "&#x0444;"> <!-- CYRILLIC SMALL LETTER EF -->
+<!ENTITY Fcy   "&#x0424;"> <!-- CYRILLIC CAPITAL LETTER EF -->
+<!ENTITY khcy  "&#x0445;"> <!-- CYRILLIC SMALL LETTER HA -->
+<!ENTITY KHcy  "&#x0425;"> <!-- CYRILLIC CAPITAL LETTER HA -->
+<!ENTITY tscy  "&#x0446;"> <!-- CYRILLIC SMALL LETTER TSE -->
+<!ENTITY TScy  "&#x0426;"> <!-- CYRILLIC CAPITAL LETTER TSE -->
+<!ENTITY chcy  "&#x0447;"> <!-- CYRILLIC SMALL LETTER CHE -->
+<!ENTITY CHcy  "&#x0427;"> <!-- CYRILLIC CAPITAL LETTER CHE -->
+<!ENTITY shcy  "&#x0448;"> <!-- CYRILLIC SMALL LETTER SHA -->
+<!ENTITY SHcy  "&#x0428;"> <!-- CYRILLIC CAPITAL LETTER SHA -->
+<!ENTITY shchcy        "&#x0449;"> <!-- CYRILLIC SMALL LETTER SHCHA -->
+<!ENTITY SHCHcy        "&#x0429;"> <!-- CYRILLIC CAPITAL LETTER SHCHA -->
+<!ENTITY hardcy        "&#x044A;"> <!-- CYRILLIC SMALL LETTER HARD SIGN -->
+<!ENTITY HARDcy        "&#x042A;"> <!-- CYRILLIC CAPITAL LETTER HARD SIGN -->
+<!ENTITY ycy   "&#x044B;"> <!-- CYRILLIC SMALL LETTER YERU -->
+<!ENTITY Ycy   "&#x042B;"> <!-- CYRILLIC CAPITAL LETTER YERU -->
+<!ENTITY softcy        "&#x044C;"> <!-- CYRILLIC SMALL LETTER SOFT SIGN -->
+<!ENTITY SOFTcy        "&#x042C;"> <!-- CYRILLIC CAPITAL LETTER SOFT SIGN -->
+<!ENTITY ecy   "&#x044D;"> <!-- CYRILLIC SMALL LETTER E -->
+<!ENTITY Ecy   "&#x042D;"> <!-- CYRILLIC CAPITAL LETTER E -->
+<!ENTITY yucy  "&#x044E;"> <!-- CYRILLIC SMALL LETTER YU -->
+<!ENTITY YUcy  "&#x042E;"> <!-- CYRILLIC CAPITAL LETTER YU -->
+<!ENTITY yacy  "&#x044F;"> <!-- CYRILLIC SMALL LETTER YA -->
+<!ENTITY YAcy  "&#x042F;"> <!-- CYRILLIC CAPITAL LETTER YA -->
+<!ENTITY numero        "&#x2116;"> <!-- NUMERO SIGN -->
+
+<!-- End of ISO Russian Cyrillic Entities V0.3 ............................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent
new file mode 100644 (file)
index 0000000..50f5347
--- /dev/null
@@ -0,0 +1,68 @@
+<!-- ...................................................................... -->
+<!-- ISO Non-Russian Cyrillic Entities V0.3 ............................... -->
+<!-- File iso-cyr2.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-cyr2.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-cyr2.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML
+-->
+
+<!ENTITY djcy  "&#x0452;"> <!-- CYRILLIC SMALL LETTER DJE -->
+<!ENTITY DJcy  "&#x0402;"> <!-- CYRILLIC CAPITAL LETTER DJE -->
+<!ENTITY gjcy  "&#x0453;"> <!-- CYRILLIC SMALL LETTER GJE -->
+<!ENTITY GJcy  "&#x0403;"> <!-- CYRILLIC CAPITAL LETTER GJE -->
+<!ENTITY jukcy "&#x0454;"> <!-- CYRILLIC SMALL LETTER UKRAINIAN IE -->
+<!ENTITY Jukcy "&#x0404;"> <!-- CYRILLIC CAPITAL LETTER UKRAINIAN IE -->
+<!ENTITY dscy  "&#x0455;"> <!-- CYRILLIC SMALL LETTER DZE -->
+<!ENTITY DScy  "&#x0405;"> <!-- CYRILLIC CAPITAL LETTER DZE -->
+<!ENTITY iukcy "&#x0456;"> <!-- CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY Iukcy "&#x0406;"> <!-- CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY yicy  "&#x0457;"> <!-- CYRILLIC SMALL LETTER YI -->
+<!ENTITY YIcy  "&#x0407;"> <!-- CYRILLIC CAPITAL LETTER YI -->
+<!ENTITY jsercy        "&#x0458;"> <!-- CYRILLIC SMALL LETTER JE -->
+<!ENTITY Jsercy        "&#x0408;"> <!-- CYRILLIC CAPITAL LETTER JE -->
+<!ENTITY ljcy  "&#x0459;"> <!-- CYRILLIC SMALL LETTER LJE -->
+<!ENTITY LJcy  "&#x0409;"> <!-- CYRILLIC CAPITAL LETTER LJE -->
+<!ENTITY njcy  "&#x045A;"> <!-- CYRILLIC SMALL LETTER NJE -->
+<!ENTITY NJcy  "&#x040A;"> <!-- CYRILLIC CAPITAL LETTER NJE -->
+<!ENTITY tshcy "&#x045B;"> <!-- CYRILLIC SMALL LETTER TSHE -->
+<!ENTITY TSHcy "&#x040B;"> <!-- CYRILLIC CAPITAL LETTER TSHE -->
+<!ENTITY kjcy  "&#x045C;"> <!-- CYRILLIC SMALL LETTER KJE -->
+<!ENTITY KJcy  "&#x040C;"> <!-- CYRILLIC CAPITAL LETTER KJE -->
+<!ENTITY ubrcy "&#x045E;"> <!-- CYRILLIC SMALL LETTER SHORT U -->
+<!ENTITY Ubrcy "&#x040E;"> <!-- CYRILLIC CAPITAL LETTER SHORT U -->
+<!ENTITY dzcy  "&#x045F;"> <!-- CYRILLIC SMALL LETTER DZHE -->
+<!ENTITY DZcy  "&#x040F;"> <!-- CYRILLIC CAPITAL LETTER DZHE -->
+
+<!-- End of ISO Non-Russian Cyrillic Entities V0.3 ........................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent
new file mode 100644 (file)
index 0000000..278e5d9
--- /dev/null
@@ -0,0 +1,56 @@
+<!-- ...................................................................... -->
+<!-- ISO Diacritical Marks Entities V0.3 .................................. -->
+<!-- File iso-dia.ent ..................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-dia.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-dia.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML
+-->
+
+<!ENTITY acute "&#x00B4;"> <!-- ACUTE ACCENT -->
+<!ENTITY breve "&#x02D8;"> <!-- BREVE -->
+<!ENTITY caron "&#x02C7;"> <!-- CARON -->
+<!ENTITY cedil "&#x00B8;"> <!-- CEDILLA -->
+<!ENTITY circ  "&#x005E;"> <!-- RING OPERATOR -->
+<!ENTITY dblac "&#x02DD;"> <!-- DOUBLE ACUTE ACCENT -->
+<!ENTITY die   "&#x00A8;"> <!--  -->
+<!ENTITY dot   "&#x02D9;"> <!-- DOT ABOVE -->
+<!ENTITY grave "&#x0060;"> <!-- GRAVE ACCENT -->
+<!ENTITY macr  "&#x00AF;"> <!-- MACRON -->
+<!ENTITY ogon  "&#x02DB;"> <!-- OGONEK -->
+<!ENTITY ring  "&#x02DA;"> <!-- RING ABOVE -->
+<!ENTITY tilde "&#x02DC;"> <!-- TILDE -->
+<!ENTITY uml   "&#x00A8;"> <!--  -->
+
+<!-- End of ISO Diacritical Marks Entities V0.3 ........................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent
new file mode 100644 (file)
index 0000000..848f203
--- /dev/null
@@ -0,0 +1,91 @@
+<!-- ...................................................................... -->
+<!-- ISO Greek Letters Entities V0.3 ...................................... -->
+<!-- File iso-grk1.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-grk1.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-grk1.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Greek Letters//EN//XML
+-->
+
+<!ENTITY agr   "&#x03B1;"> <!--  -->
+<!ENTITY Agr   "&#x0391;"> <!-- GREEK CAPITAL LETTER ALPHA -->
+<!ENTITY bgr   "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY Bgr   "&#x0392;"> <!-- GREEK CAPITAL LETTER BETA -->
+<!ENTITY ggr   "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Ggr   "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY dgr   "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Dgr   "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY egr   "&#x03B5;"> <!--  -->
+<!ENTITY Egr   "&#x0395;"> <!-- GREEK CAPITAL LETTER EPSILON -->
+<!ENTITY zgr   "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY Zgr   "&#x0396;"> <!-- GREEK CAPITAL LETTER ZETA -->
+<!ENTITY eegr  "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY EEgr  "&#x0397;"> <!-- GREEK CAPITAL LETTER ETA -->
+<!ENTITY thgr  "&#x03B8;"> <!--  -->
+<!ENTITY THgr  "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY igr   "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY Igr   "&#x0399;"> <!-- GREEK CAPITAL LETTER IOTA -->
+<!ENTITY kgr   "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY Kgr   "&#x039A;"> <!-- GREEK CAPITAL LETTER KAPPA -->
+<!ENTITY lgr   "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lgr   "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mgr   "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY Mgr   "&#x039C;"> <!-- GREEK CAPITAL LETTER MU -->
+<!ENTITY ngr   "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY Ngr   "&#x039D;"> <!-- GREEK CAPITAL LETTER NU -->
+<!ENTITY xgr   "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xgr   "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY ogr   "&#x03BF;"> <!-- GREEK SMALL LETTER OMICRON -->
+<!ENTITY Ogr   "&#x039F;"> <!-- GREEK CAPITAL LETTER OMICRON -->
+<!ENTITY pgr   "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY Pgr   "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rgr   "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY Rgr   "&#x03A1;"> <!-- GREEK CAPITAL LETTER RHO -->
+<!ENTITY sgr   "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sgr   "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sfgr  "&#x03C2;"> <!--  -->
+<!ENTITY tgr   "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY Tgr   "&#x03A4;"> <!-- GREEK CAPITAL LETTER TAU -->
+<!ENTITY ugr   "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Ugr   "&#x03A5;"> <!--  -->
+<!ENTITY phgr  "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY PHgr  "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY khgr  "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY KHgr  "&#x03A7;"> <!-- GREEK CAPITAL LETTER CHI -->
+<!ENTITY psgr  "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY PSgr  "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY ohgr  "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY OHgr  "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
+
+<!-- End of ISO Greek Letters V0.3 ........................................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent
new file mode 100644 (file)
index 0000000..a75f5b0
--- /dev/null
@@ -0,0 +1,62 @@
+<!-- ...................................................................... -->
+<!-- ISO Monotoniko Greek Entities V0.3 ................................... -->
+<!-- File iso-grk2.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-grk2.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-grk2.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML
+-->
+
+<!ENTITY aacgr "&#x03AC;"> <!-- GREEK SMALL LETTER ALPHA WITH TONOS -->
+<!ENTITY Aacgr "&#x0386;"> <!-- GREEK CAPITAL LETTER ALPHA WITH TONOS -->
+<!ENTITY eacgr "&#x03AD;"> <!-- GREEK SMALL LETTER EPSILON WITH TONOS -->
+<!ENTITY Eacgr "&#x0388;"> <!-- GREEK CAPITAL LETTER EPSILON WITH TONOS -->
+<!ENTITY eeacgr        "&#x03AE;"> <!-- GREEK SMALL LETTER ETA WITH TONOS -->
+<!ENTITY EEacgr        "&#x0389;"> <!-- GREEK CAPITAL LETTER ETA WITH TONOS -->
+<!ENTITY idigr "&#x03CA;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY Idigr "&#x03AA;"> <!-- GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY iacgr "&#x03AF;"> <!-- GREEK SMALL LETTER IOTA WITH TONOS -->
+<!ENTITY Iacgr "&#x038A;"> <!-- GREEK CAPITAL LETTER IOTA WITH TONOS -->
+<!ENTITY idiagr        "&#x0390;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
+<!ENTITY oacgr "&#x03CC;"> <!-- GREEK SMALL LETTER OMICRON WITH TONOS -->
+<!ENTITY Oacgr "&#x038C;"> <!-- GREEK CAPITAL LETTER OMICRON WITH TONOS -->
+<!ENTITY udigr "&#x03CB;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY Udigr "&#x03AB;"> <!-- GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY uacgr "&#x03CD;"> <!-- GREEK SMALL LETTER UPSILON WITH TONOS -->
+<!ENTITY Uacgr "&#x038E;"> <!-- GREEK CAPITAL LETTER UPSILON WITH TONOS -->
+<!ENTITY udiagr        "&#x03B0;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
+<!ENTITY ohacgr        "&#x03CE;"> <!-- GREEK SMALL LETTER OMEGA WITH TONOS -->
+<!ENTITY OHacgr        "&#x038F;"> <!-- GREEK CAPITAL LETTER OMEGA WITH TONOS -->
+
+<!-- End of ISO Monotoniko Greek Entities V0.3 ............................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent
new file mode 100644 (file)
index 0000000..070ef25
--- /dev/null
@@ -0,0 +1,85 @@
+<!-- ...................................................................... -->
+<!-- ISO Greek Symbols Entities V0.3 ...................................... -->
+<!-- File iso-grk3.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-grk3.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-grk3.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Greek Symbols//EN//XML
+-->
+
+<!ENTITY alpha "&#x03B1;"> <!--  -->
+<!ENTITY beta  "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY gamma "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Gamma "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY gammad        "&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY delta "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Delta "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY epsi  "&#x220A;"> <!--  -->
+<!ENTITY epsiv "&#x03B5;"> <!--  -->
+<!ENTITY epsis "&#x220A;"> <!--  -->
+<!ENTITY zeta  "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY eta   "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY thetas        "&#x03B8;"> <!--  -->
+<!ENTITY Theta "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY thetav        "&#x03D1;"> <!--  -->
+<!ENTITY iota  "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY kappa "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY kappav        "&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY lambda        "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lambda        "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mu    "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY nu    "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY xi    "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xi    "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY pi    "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY piv   "&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY Pi    "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rho   "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY rhov  "&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY sigma "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sigma "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sigmav        "&#x03C2;"> <!--  -->
+<!ENTITY tau   "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY upsi  "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Upsi  "&#x03D2;"> <!--  -->
+<!ENTITY phis  "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY Phi   "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY phiv  "&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY chi   "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY psi   "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY Psi   "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY omega "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY Omega "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
+
+<!-- End of ISO Greek Symbols Entities V0.3 ............................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent
new file mode 100644 (file)
index 0000000..18c96eb
--- /dev/null
@@ -0,0 +1,85 @@
+<!-- ...................................................................... -->
+<!-- ISO Alternative Greek Symbols Entities V0.3 .......................... -->
+<!-- File iso-grk4.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-grk4.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-grk4.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML
+-->
+
+<!ENTITY b.alpha       "&#x03B1;"> <!--  -->
+<!ENTITY b.beta        "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY b.gamma       "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY b.Gamma       "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY b.gammad      "&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY b.delta       "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY b.Delta       "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY b.epsi        "&#x03B5;"> <!--  -->
+<!ENTITY b.epsiv       "&#x03B5;"> <!--  -->
+<!ENTITY b.epsis       "&#x03B5;"> <!--  -->
+<!ENTITY b.zeta        "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY b.eta "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY b.thetas      "&#x03B8;"> <!--  -->
+<!ENTITY b.Theta       "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY b.thetav      "&#x03D1;"> <!--  -->
+<!ENTITY b.iota        "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY b.kappa       "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY b.kappav      "&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY b.lambda      "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY b.Lambda      "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY b.mu  "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY b.nu  "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY b.xi  "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY b.Xi  "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY b.pi  "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY b.Pi  "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY b.piv "&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY b.rho "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY b.rhov        "&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY b.sigma       "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY b.Sigma       "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY b.sigmav      "&#x03C2;"> <!--  -->
+<!ENTITY b.tau "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY b.upsi        "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY b.Upsi        "&#x03D2;"> <!--  -->
+<!ENTITY b.phis        "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY b.Phi "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY b.phiv        "&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY b.chi "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY b.psi "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY b.Psi "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY b.omega       "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY b.Omega       "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
+
+<!-- End of ISO Alternative Greek Symbols Entities V0.3 ................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent
new file mode 100644 (file)
index 0000000..9c2c249
--- /dev/null
@@ -0,0 +1,104 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Latin 1 Entities V0.3 ...................................... -->
+<!-- File iso-lat1.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-lat1.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-lat1.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Added Latin 1//EN//XML
+-->
+
+<!ENTITY aacute        "&#x00E1;"> <!-- LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Aacute        "&#x00C1;"> <!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY acirc "&#x00E2;"> <!-- LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY Acirc "&#x00C2;"> <!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY agrave        "&#x00E0;"> <!-- LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Agrave        "&#x00C0;"> <!-- LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY aring "&#x00E5;"> <!-- LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Aring "&#x00C5;"> <!-- LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY atilde        "&#x00E3;"> <!-- LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Atilde        "&#x00C3;"> <!-- LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY auml  "&#x00E4;"> <!-- LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Auml  "&#x00C4;"> <!-- LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY aelig "&#x00E6;"> <!-- LATIN SMALL LETTER AE -->
+<!ENTITY AElig "&#x00C6;"> <!-- LATIN CAPITAL LETTER AE -->
+<!ENTITY ccedil        "&#x00E7;"> <!-- LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Ccedil        "&#x00C7;"> <!-- LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY eth   "&#x00F0;"> <!-- LATIN SMALL LETTER ETH -->
+<!ENTITY ETH   "&#x00D0;"> <!-- LATIN CAPITAL LETTER ETH -->
+<!ENTITY eacute        "&#x00E9;"> <!-- LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Eacute        "&#x00C9;"> <!-- LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY ecirc "&#x00EA;"> <!-- LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Ecirc "&#x00CA;"> <!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY egrave        "&#x00E8;"> <!-- LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY Egrave        "&#x00C8;"> <!-- LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY euml  "&#x00EB;"> <!-- LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Euml  "&#x00CB;"> <!-- LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY iacute        "&#x00ED;"> <!-- LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Iacute        "&#x00CD;"> <!-- LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY icirc "&#x00EE;"> <!-- LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Icirc "&#x00CE;"> <!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY igrave        "&#x00EC;"> <!-- LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Igrave        "&#x00CC;"> <!-- LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY iuml  "&#x00EF;"> <!-- LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Iuml  "&#x00CF;"> <!-- LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY ntilde        "&#x00F1;"> <!-- LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Ntilde        "&#x00D1;"> <!-- LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY oacute        "&#x00F3;"> <!-- LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Oacute        "&#x00D3;"> <!-- LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY ocirc "&#x00F4;"> <!-- LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ocirc "&#x00D4;"> <!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ograve        "&#x00F2;"> <!-- LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Ograve        "&#x00D2;"> <!-- LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY oslash        "&#x00F8;"> <!-- LATIN SMALL LETTER O WITH STROKE -->
+<!ENTITY Oslash        "&#x00D8;"> <!-- LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY otilde        "&#x00F5;"> <!-- LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Otilde        "&#x00D5;"> <!-- LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY ouml  "&#x00F6;"> <!-- LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY Ouml  "&#x00D6;"> <!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig "&#x00DF;"> <!-- LATIN SMALL LETTER SHARP S -->
+<!ENTITY thorn "&#x00FE;"> <!-- LATIN SMALL LETTER THORN -->
+<!ENTITY THORN "&#x00DE;"> <!-- LATIN CAPITAL LETTER THORN -->
+<!ENTITY uacute        "&#x00FA;"> <!-- LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Uacute        "&#x00DA;"> <!-- LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY ucirc "&#x00FB;"> <!-- LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ucirc "&#x00DB;"> <!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ugrave        "&#x00F9;"> <!-- LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Ugrave        "&#x00D9;"> <!-- LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY uuml  "&#x00FC;"> <!-- LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Uuml  "&#x00DC;"> <!-- LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY yacute        "&#x00FD;"> <!-- LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY Yacute        "&#x00DD;"> <!-- LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yuml  "&#x00FF;"> <!-- LATIN SMALL LETTER Y WITH DIAERESIS -->
+
+<!-- End of ISO Added Latin 1 Entities V0.3 ............................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent
new file mode 100644 (file)
index 0000000..2f14696
--- /dev/null
@@ -0,0 +1,163 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Latin 2 Entities V0.3 ...................................... -->
+<!-- File iso-lat2.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-lat2.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-lat2.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Added Latin 2//EN//XML
+-->
+
+<!ENTITY abreve        "&#x0103;"> <!-- LATIN SMALL LETTER A WITH BREVE -->
+<!ENTITY Abreve        "&#x0102;"> <!-- LATIN CAPITAL LETTER A WITH BREVE -->
+<!ENTITY amacr "&#x0101;"> <!-- LATIN SMALL LETTER A WITH MACRON -->
+<!ENTITY Amacr "&#x0100;"> <!-- LATIN CAPITAL LETTER A WITH MACRON -->
+<!ENTITY aogon "&#x0105;"> <!-- LATIN SMALL LETTER A WITH OGONEK -->
+<!ENTITY Aogon "&#x0104;"> <!-- LATIN CAPITAL LETTER A WITH OGONEK -->
+<!ENTITY cacute        "&#x0107;"> <!-- LATIN SMALL LETTER C WITH ACUTE -->
+<!ENTITY Cacute        "&#x0106;"> <!-- LATIN CAPITAL LETTER C WITH ACUTE -->
+<!ENTITY ccaron        "&#x010D;"> <!-- LATIN SMALL LETTER C WITH CARON -->
+<!ENTITY Ccaron        "&#x010C;"> <!-- LATIN CAPITAL LETTER C WITH CARON -->
+<!ENTITY ccirc "&#x0109;"> <!-- LATIN SMALL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY Ccirc "&#x0108;"> <!-- LATIN CAPITAL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY cdot  "&#x010B;"> <!-- LATIN SMALL LETTER C WITH DOT ABOVE -->
+<!ENTITY Cdot  "&#x010A;"> <!-- LATIN CAPITAL LETTER C WITH DOT ABOVE -->
+<!ENTITY dcaron        "&#x010F;"> <!-- LATIN SMALL LETTER D WITH CARON -->
+<!ENTITY Dcaron        "&#x010E;"> <!-- LATIN CAPITAL LETTER D WITH CARON -->
+<!ENTITY dstrok        "&#x0111;"> <!-- LATIN SMALL LETTER D WITH STROKE -->
+<!ENTITY Dstrok        "&#x0110;"> <!-- LATIN CAPITAL LETTER D WITH STROKE -->
+<!ENTITY ecaron        "&#x011B;"> <!-- LATIN SMALL LETTER E WITH CARON -->
+<!ENTITY Ecaron        "&#x011A;"> <!-- LATIN CAPITAL LETTER E WITH CARON -->
+<!ENTITY edot  "&#x0117;"> <!-- LATIN SMALL LETTER E WITH DOT ABOVE -->
+<!ENTITY Edot  "&#x0116;"> <!-- LATIN CAPITAL LETTER E WITH DOT ABOVE -->
+<!ENTITY emacr "&#x0113;"> <!-- LATIN SMALL LETTER E WITH MACRON -->
+<!ENTITY Emacr "&#x0112;"> <!-- LATIN CAPITAL LETTER E WITH MACRON -->
+<!ENTITY eogon "&#x0119;"> <!-- LATIN SMALL LETTER E WITH OGONEK -->
+<!ENTITY Eogon "&#x0118;"> <!-- LATIN CAPITAL LETTER E WITH OGONEK -->
+<!ENTITY gacute        "&#x01F5;"> <!-- LATIN SMALL LETTER G WITH ACUTE -->
+<!ENTITY gbreve        "&#x011F;"> <!-- LATIN SMALL LETTER G WITH BREVE -->
+<!ENTITY Gbreve        "&#x011E;"> <!-- LATIN CAPITAL LETTER G WITH BREVE -->
+<!ENTITY Gcedil        "&#x0122;"> <!-- LATIN CAPITAL LETTER G WITH CEDILLA -->
+<!ENTITY gcirc "&#x011D;"> <!-- LATIN SMALL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY Gcirc "&#x011C;"> <!-- LATIN CAPITAL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY gdot  "&#x0121;"> <!-- LATIN SMALL LETTER G WITH DOT ABOVE -->
+<!ENTITY Gdot  "&#x0120;"> <!-- LATIN CAPITAL LETTER G WITH DOT ABOVE -->
+<!ENTITY hcirc "&#x0125;"> <!-- LATIN SMALL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY Hcirc "&#x0124;"> <!-- LATIN CAPITAL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY hstrok        "&#x0127;"> <!-- LATIN SMALL LETTER H WITH STROKE -->
+<!ENTITY Hstrok        "&#x0126;"> <!-- LATIN CAPITAL LETTER H WITH STROKE -->
+<!ENTITY Idot  "&#x0130;"> <!-- LATIN CAPITAL LETTER I WITH DOT ABOVE -->
+<!ENTITY Imacr "&#x012A;"> <!-- LATIN CAPITAL LETTER I WITH MACRON -->
+<!ENTITY imacr "&#x012B;"> <!-- LATIN SMALL LETTER I WITH MACRON -->
+<!ENTITY ijlig "&#x0133;"> <!-- LATIN SMALL LIGATURE IJ -->
+<!ENTITY IJlig "&#x0132;"> <!-- LATIN CAPITAL LIGATURE IJ -->
+<!ENTITY inodot        "&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY iogon "&#x012F;"> <!-- LATIN SMALL LETTER I WITH OGONEK -->
+<!ENTITY Iogon "&#x012E;"> <!-- LATIN CAPITAL LETTER I WITH OGONEK -->
+<!ENTITY itilde        "&#x0129;"> <!-- LATIN SMALL LETTER I WITH TILDE -->
+<!ENTITY Itilde        "&#x0128;"> <!-- LATIN CAPITAL LETTER I WITH TILDE -->
+<!ENTITY jcirc "&#x0135;"> <!-- LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY Jcirc "&#x0134;"> <!-- LATIN CAPITAL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY kcedil        "&#x0137;"> <!-- LATIN SMALL LETTER K WITH CEDILLA -->
+<!ENTITY Kcedil        "&#x0136;"> <!-- LATIN CAPITAL LETTER K WITH CEDILLA -->
+<!ENTITY kgreen        "&#x0138;"> <!-- LATIN SMALL LETTER KRA -->
+<!ENTITY lacute        "&#x013A;"> <!-- LATIN SMALL LETTER L WITH ACUTE -->
+<!ENTITY Lacute        "&#x0139;"> <!-- LATIN CAPITAL LETTER L WITH ACUTE -->
+<!ENTITY lcaron        "&#x013E;"> <!-- LATIN SMALL LETTER L WITH CARON -->
+<!ENTITY Lcaron        "&#x013D;"> <!-- LATIN CAPITAL LETTER L WITH CARON -->
+<!ENTITY lcedil        "&#x013C;"> <!-- LATIN SMALL LETTER L WITH CEDILLA -->
+<!ENTITY Lcedil        "&#x013B;"> <!-- LATIN CAPITAL LETTER L WITH CEDILLA -->
+<!ENTITY lmidot        "&#x0140;"> <!-- LATIN SMALL LETTER L WITH MIDDLE DOT -->
+<!ENTITY Lmidot        "&#x013F;"> <!-- LATIN CAPITAL LETTER L WITH MIDDLE DOT -->
+<!ENTITY lstrok        "&#x0142;"> <!-- LATIN SMALL LETTER L WITH STROKE -->
+<!ENTITY Lstrok        "&#x0141;"> <!-- LATIN CAPITAL LETTER L WITH STROKE -->
+<!ENTITY nacute        "&#x0144;"> <!-- LATIN SMALL LETTER N WITH ACUTE -->
+<!ENTITY Nacute        "&#x0143;"> <!-- LATIN CAPITAL LETTER N WITH ACUTE -->
+<!ENTITY eng   "&#x014B;"> <!-- LATIN SMALL LETTER ENG -->
+<!ENTITY ENG   "&#x014A;"> <!-- LATIN CAPITAL LETTER ENG -->
+<!ENTITY napos "&#x0149;"> <!-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -->
+<!ENTITY ncaron        "&#x0148;"> <!-- LATIN SMALL LETTER N WITH CARON -->
+<!ENTITY Ncaron        "&#x0147;"> <!-- LATIN CAPITAL LETTER N WITH CARON -->
+<!ENTITY ncedil        "&#x0146;"> <!-- LATIN SMALL LETTER N WITH CEDILLA -->
+<!ENTITY Ncedil        "&#x0145;"> <!-- LATIN CAPITAL LETTER N WITH CEDILLA -->
+<!ENTITY odblac        "&#x0151;"> <!-- LATIN SMALL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Odblac        "&#x0150;"> <!-- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Omacr "&#x014C;"> <!-- LATIN CAPITAL LETTER O WITH MACRON -->
+<!ENTITY omacr "&#x014D;"> <!-- LATIN SMALL LETTER O WITH MACRON -->
+<!ENTITY oelig "&#x0153;"> <!-- LATIN SMALL LIGATURE OE -->
+<!ENTITY OElig "&#x0152;"> <!-- LATIN CAPITAL LIGATURE OE -->
+<!ENTITY racute        "&#x0155;"> <!-- LATIN SMALL LETTER R WITH ACUTE -->
+<!ENTITY Racute        "&#x0154;"> <!-- LATIN CAPITAL LETTER R WITH ACUTE -->
+<!ENTITY rcaron        "&#x0159;"> <!-- LATIN SMALL LETTER R WITH CARON -->
+<!ENTITY Rcaron        "&#x0158;"> <!-- LATIN CAPITAL LETTER R WITH CARON -->
+<!ENTITY rcedil        "&#x0157;"> <!-- LATIN SMALL LETTER R WITH CEDILLA -->
+<!ENTITY Rcedil        "&#x0156;"> <!-- LATIN CAPITAL LETTER R WITH CEDILLA -->
+<!ENTITY sacute        "&#x015B;"> <!-- LATIN SMALL LETTER S WITH ACUTE -->
+<!ENTITY Sacute        "&#x015A;"> <!-- LATIN CAPITAL LETTER S WITH ACUTE -->
+<!ENTITY scaron        "&#x0161;"> <!-- LATIN SMALL LETTER S WITH CARON -->
+<!ENTITY Scaron        "&#x0160;"> <!-- LATIN CAPITAL LETTER S WITH CARON -->
+<!ENTITY scedil        "&#x015F;"> <!-- LATIN SMALL LETTER S WITH CEDILLA -->
+<!ENTITY Scedil        "&#x015E;"> <!-- LATIN CAPITAL LETTER S WITH CEDILLA -->
+<!ENTITY scirc "&#x015D;"> <!-- LATIN SMALL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY Scirc "&#x015C;"> <!-- LATIN CAPITAL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY tcaron        "&#x0165;"> <!-- LATIN SMALL LETTER T WITH CARON -->
+<!ENTITY Tcaron        "&#x0164;"> <!-- LATIN CAPITAL LETTER T WITH CARON -->
+<!ENTITY tcedil        "&#x0163;"> <!-- LATIN SMALL LETTER T WITH CEDILLA -->
+<!ENTITY Tcedil        "&#x0162;"> <!-- LATIN CAPITAL LETTER T WITH CEDILLA -->
+<!ENTITY tstrok        "&#x0167;"> <!-- LATIN SMALL LETTER T WITH STROKE -->
+<!ENTITY Tstrok        "&#x0166;"> <!-- LATIN CAPITAL LETTER T WITH STROKE -->
+<!ENTITY ubreve        "&#x016D;"> <!-- LATIN SMALL LETTER U WITH BREVE -->
+<!ENTITY Ubreve        "&#x016C;"> <!-- LATIN CAPITAL LETTER U WITH BREVE -->
+<!ENTITY udblac        "&#x0171;"> <!-- LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY Udblac        "&#x0170;"> <!-- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY umacr "&#x016B;"> <!-- LATIN SMALL LETTER U WITH MACRON -->
+<!ENTITY Umacr "&#x016A;"> <!-- LATIN CAPITAL LETTER U WITH MACRON -->
+<!ENTITY uogon "&#x0173;"> <!-- LATIN SMALL LETTER U WITH OGONEK -->
+<!ENTITY Uogon "&#x0172;"> <!-- LATIN CAPITAL LETTER U WITH OGONEK -->
+<!ENTITY uring "&#x016F;"> <!-- LATIN SMALL LETTER U WITH RING ABOVE -->
+<!ENTITY Uring "&#x016E;"> <!-- LATIN CAPITAL LETTER U WITH RING ABOVE -->
+<!ENTITY utilde        "&#x0169;"> <!-- LATIN SMALL LETTER U WITH TILDE -->
+<!ENTITY Utilde        "&#x0168;"> <!-- LATIN CAPITAL LETTER U WITH TILDE -->
+<!ENTITY wcirc "&#x0175;"> <!-- LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY Wcirc "&#x0174;"> <!-- LATIN CAPITAL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY ycirc "&#x0177;"> <!-- LATIN SMALL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Ycirc "&#x0176;"> <!-- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Yuml  "&#x0178;"> <!-- LATIN CAPITAL LETTER Y WITH DIAERESIS -->
+<!ENTITY zacute        "&#x017A;"> <!-- LATIN SMALL LETTER Z WITH ACUTE -->
+<!ENTITY Zacute        "&#x0179;"> <!-- LATIN CAPITAL LETTER Z WITH ACUTE -->
+<!ENTITY zcaron        "&#x017E;"> <!-- LATIN SMALL LETTER Z WITH CARON -->
+<!ENTITY Zcaron        "&#x017D;"> <!-- LATIN CAPITAL LETTER Z WITH CARON -->
+<!ENTITY zdot  "&#x017C;"> <!-- LATIN SMALL LETTER Z WITH DOT ABOVE -->
+<!ENTITY Zdot  "&#x017B;"> <!-- LATIN CAPITAL LETTER Z WITH DOT ABOVE -->
+
+<!-- End of ISO Added Latin 2 Entities V0.3 ............................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent
new file mode 100644 (file)
index 0000000..b3c434e
--- /dev/null
@@ -0,0 +1,118 @@
+<!-- ...................................................................... -->
+<!-- ISO Numeric and Special Graphic Entities V0.3 ........................ -->
+<!-- File iso-num.ent ..................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-num.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-num.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML
+-->
+
+<!ENTITY half  "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac12        "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14        "&#x00BC;"> <!-- VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac34        "&#x00BE;"> <!-- VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac18        "&#x215B;"> <!--  -->
+<!ENTITY frac38        "&#x215C;"> <!--  -->
+<!ENTITY frac58        "&#x215D;"> <!--  -->
+<!ENTITY frac78        "&#x215E;"> <!--  -->
+<!ENTITY sup1  "&#x00B9;"> <!-- SUPERSCRIPT ONE -->
+<!ENTITY sup2  "&#x00B2;"> <!-- SUPERSCRIPT TWO -->
+<!ENTITY sup3  "&#x00B3;"> <!-- SUPERSCRIPT THREE -->
+<!ENTITY plus  "&#x002B;"> <!-- PLUS SIGN -->
+<!ENTITY plusmn        "&#x00B1;"> <!-- PLUS-MINUS SIGN -->
+<!ENTITY lt    "&#38;#60;"> <!-- LESS-THAN SIGN -->
+<!ENTITY equals        "&#x003D;"> <!-- EQUALS SIGN -->
+<!ENTITY gt    "&#x003E;"> <!-- GREATER-THAN SIGN -->
+<!ENTITY divide        "&#x00F7;"> <!-- DIVISION SIGN -->
+<!ENTITY times "&#x00D7;"> <!-- MULTIPLICATION SIGN -->
+<!ENTITY curren        "&#x00A4;"> <!-- CURRENCY SIGN -->
+<!ENTITY pound "&#x00A3;"> <!-- POUND SIGN -->
+<!ENTITY dollar        "&#x0024;"> <!-- DOLLAR SIGN -->
+<!ENTITY cent  "&#x00A2;"> <!-- CENT SIGN -->
+<!ENTITY yen   "&#x00A5;"> <!-- YEN SIGN -->
+<!ENTITY num   "&#x0023;"> <!-- NUMBER SIGN -->
+<!ENTITY percnt        "&#x0025;"> <!-- PERCENT SIGN -->
+<!ENTITY amp   "&#38;#38;"> <!-- AMPERSAND -->
+<!ENTITY ast   "&#x002A;"> <!-- ASTERISK -->
+<!ENTITY commat        "&#x0040;"> <!-- COMMERCIAL AT -->
+<!ENTITY lsqb  "&#x005B;"> <!-- LEFT SQUARE BRACKET -->
+<!ENTITY bsol  "&#x005C;"> <!-- REVERSE SOLIDUS -->
+<!ENTITY rsqb  "&#x005D;"> <!-- RIGHT SQUARE BRACKET -->
+<!ENTITY lcub  "&#x007B;"> <!-- LEFT CURLY BRACKET -->
+<!ENTITY horbar        "&#x2015;"> <!-- HORIZONTAL BAR -->
+<!ENTITY verbar        "&#x007C;"> <!-- VERTICAL LINE -->
+<!ENTITY rcub  "&#x007D;"> <!-- RIGHT CURLY BRACKET -->
+<!ENTITY micro "&#x00B5;"> <!-- MICRO SIGN -->
+<!ENTITY ohm   "&#x2126;"> <!-- OHM SIGN -->
+<!ENTITY deg   "&#x00B0;"> <!-- DEGREE SIGN -->
+<!ENTITY ordm  "&#x00BA;"> <!-- MASCULINE ORDINAL INDICATOR -->
+<!ENTITY ordf  "&#x00AA;"> <!-- FEMININE ORDINAL INDICATOR -->
+<!ENTITY sect  "&#x00A7;"> <!-- SECTION SIGN -->
+<!ENTITY para  "&#x00B6;"> <!-- PILCROW SIGN -->
+<!ENTITY middot        "&#x00B7;"> <!-- MIDDLE DOT -->
+<!ENTITY larr  "&#x2190;"> <!-- LEFTWARDS ARROW -->
+<!ENTITY rarr  "&#x2192;"> <!-- RIGHTWARDS ARROW -->
+<!ENTITY uarr  "&#x2191;"> <!-- UPWARDS ARROW -->
+<!ENTITY darr  "&#x2193;"> <!-- DOWNWARDS ARROW -->
+<!ENTITY copy  "&#x00A9;"> <!-- COPYRIGHT SIGN -->
+<!ENTITY reg   "&#x00AE;"> <!-- REG TRADE MARK SIGN -->
+<!ENTITY trade "&#x2122;"> <!-- TRADE MARK SIGN -->
+<!ENTITY brvbar        "&#x00A6;"> <!-- BROKEN BAR -->
+<!ENTITY not   "&#x00AC;"> <!-- NOT SIGN -->
+<!ENTITY sung  "&#x2669;"> <!--  -->
+<!ENTITY excl  "&#x0021;"> <!-- EXCLAMATION MARK -->
+<!ENTITY iexcl "&#x00A1;"> <!-- INVERTED EXCLAMATION MARK -->
+<!ENTITY quot  "&#x0022;"> <!-- QUOTATION MARK -->
+<!ENTITY apos  "&#x0027;"> <!-- APOSTROPHE -->
+<!ENTITY lpar  "&#x0028;"> <!-- LEFT PARENTHESIS -->
+<!ENTITY rpar  "&#x0029;"> <!-- RIGHT PARENTHESIS -->
+<!ENTITY comma "&#x002C;"> <!-- COMMA -->
+<!ENTITY lowbar        "&#x005F;"> <!-- LOW LINE -->
+<!ENTITY hyphen        "&#x002D;"> <!-- HYPHEN-MINUS -->
+<!ENTITY period        "&#x002E;"> <!-- FULL STOP -->
+<!ENTITY sol   "&#x002F;"> <!-- SOLIDUS -->
+<!ENTITY colon "&#x003A;"> <!-- COLON -->
+<!ENTITY semi  "&#x003B;"> <!-- SEMICOLON -->
+<!ENTITY quest "&#x003F;"> <!-- QUESTION MARK -->
+<!ENTITY iquest        "&#x00BF;"> <!-- INVERTED QUESTION MARK -->
+<!ENTITY laquo "&#x00AB;"> <!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY raquo "&#x00BB;"> <!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY lsquo "&#x2018;"> <!--  -->
+<!ENTITY rsquo "&#x2019;"> <!-- RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY ldquo "&#x201C;"> <!--  -->
+<!ENTITY rdquo "&#x201D;"> <!-- RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY nbsp  "&#x00A0;"> <!-- NO-BREAK SPACE -->
+<!ENTITY shy   "&#x00AD;"> <!-- SOFT HYPHEN -->
+
+<!-- End of ISO Numeric and Special Graphic Entities V0.3 ................. -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent
new file mode 100644 (file)
index 0000000..979d178
--- /dev/null
@@ -0,0 +1,127 @@
+<!-- ...................................................................... -->
+<!-- ISO Publishing Entities V0.3 ......................................... -->
+<!-- File iso-pub.ent ..................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-pub.ent,v 1.1 2008/05/27 19:26:08 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-pub.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES Publishing//EN//XML
+-->
+
+<!ENTITY emsp  "&#x2003;"> <!-- EM SPACE -->
+<!ENTITY ensp  "&#x2002;"> <!-- EN SPACE -->
+<!ENTITY emsp13        "&#x2004;"> <!-- THREE-PER-EM SPACE -->
+<!ENTITY emsp14        "&#x2005;"> <!-- FOUR-PER-EM SPACE -->
+<!ENTITY numsp "&#x2007;"> <!-- FIGURE SPACE -->
+<!ENTITY puncsp        "&#x2008;"> <!-- PUNCTUATION SPACE -->
+<!ENTITY thinsp        "&#x2009;"> <!-- THIN SPACE -->
+<!ENTITY hairsp        "&#x200A;"> <!-- HAIR SPACE -->
+<!ENTITY mdash "&#x2014;"> <!-- EM DASH -->
+<!ENTITY ndash "&#x2013;"> <!-- EN DASH -->
+<!ENTITY dash  "&#x2010;"> <!-- HYPHEN -->
+<!ENTITY blank "&#x2423;"> <!-- OPEN BOX -->
+<!ENTITY hellip        "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY nldr  "&#x2025;"> <!-- TWO DOT LEADER -->
+<!ENTITY frac13        "&#x2153;"> <!-- VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac23        "&#x2154;"> <!-- VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac15        "&#x2155;"> <!-- VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac25        "&#x2156;"> <!-- VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35        "&#x2157;"> <!-- VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45        "&#x2158;"> <!-- VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac16        "&#x2159;"> <!-- VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac56        "&#x215A;"> <!-- VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY incare        "&#x2105;"> <!-- CARE OF -->
+<!ENTITY block "&#x2588;"> <!-- FULL BLOCK -->
+<!ENTITY uhblk "&#x2580;"> <!-- UPPER HALF BLOCK -->
+<!ENTITY lhblk "&#x2584;"> <!-- LOWER HALF BLOCK -->
+<!ENTITY blk14 "&#x2591;"> <!-- LIGHT SHADE -->
+<!ENTITY blk12 "&#x2592;"> <!-- MEDIUM SHADE -->
+<!ENTITY blk34 "&#x2593;"> <!-- DARK SHADE -->
+<!ENTITY marker        "&#x25AE;"> <!-- BLACK VERTICAL RECTANGLE -->
+<!ENTITY cir   "&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY squ   "&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY rect  "&#x25AD;"> <!-- WHITE RECTANGLE -->
+<!ENTITY utri  "&#x25B5;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY dtri  "&#x25BF;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY star  "&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY bull  "&#x2022;"> <!-- BULLET -->
+<!ENTITY squf  "&#x25AA;"> <!--  -->
+<!ENTITY utrif "&#x25B4;"> <!-- BLACK UP-POINTING TRIANGLE -->
+<!ENTITY dtrif "&#x25BE;"> <!-- BLACK DOWN-POINTING TRIANGLE -->
+<!ENTITY ltrif "&#x25C2;"> <!-- BLACK LEFT-POINTING TRIANGLE -->
+<!ENTITY rtrif "&#x25B8;"> <!-- BLACK RIGHT-POINTING TRIANGLE -->
+<!ENTITY clubs "&#x2663;"> <!-- BLACK CLUB SUIT -->
+<!ENTITY diams "&#x2666;"> <!-- BLACK DIAMOND SUIT -->
+<!ENTITY hearts        "&#x2665;"> <!-- BLACK HEART SUIT -->
+<!ENTITY spades        "&#x2660;"> <!-- BLACK SPADE SUIT -->
+<!ENTITY malt  "&#x2720;"> <!-- MALTESE CROSS -->
+<!ENTITY dagger        "&#x2020;"> <!-- DAGGER -->
+<!ENTITY Dagger        "&#x2021;"> <!-- DOUBLE DAGGER -->
+<!ENTITY check "&#x2713;"> <!-- CHECK MARK -->
+<!ENTITY cross "&#x2717;"> <!-- BALLOT X -->
+<!ENTITY sharp "&#x266F;"> <!-- MUSIC SHARP SIGN -->
+<!ENTITY flat  "&#x266D;"> <!-- MUSIC FLAT SIGN -->
+<!ENTITY male  "&#x2642;"> <!-- MALE SIGN -->
+<!ENTITY female        "&#x2640;"> <!--  -->
+<!ENTITY phone "&#x260E;"> <!-- TELEPHONE SIGN -->
+<!ENTITY telrec        "&#x2315;"> <!-- TELEPHONE RECORDER -->
+<!ENTITY copysr        "&#x2117;"> <!-- SOUND RECORDING COPYRIGHT -->
+<!ENTITY caret "&#x2041;"> <!-- CARET -->
+<!ENTITY lsquor        "&#x201A;"> <!-- SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ldquor        "&#x201E;"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY fflig "&#xFB00;"> <!--  -->
+<!ENTITY filig "&#xFB01;"> <!--  -->
+<!--     fjlig Unknown unicode character -->
+<!ENTITY ffilig        "&#xFB03;"> <!--  -->
+<!ENTITY ffllig        "&#xFB04;"> <!--  -->
+<!ENTITY fllig "&#xFB02;"> <!--  -->
+<!ENTITY mldr  "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY rdquor        "&#x201C;"> <!--  -->
+<!ENTITY rsquor        "&#x2018;"> <!--  -->
+<!ENTITY vellip        "&#x22EE;"> <!--  -->
+<!ENTITY hybull        "&#x2043;"> <!-- HYPHEN BULLET -->
+<!ENTITY loz   "&#x25CA;"> <!-- LOZENGE -->
+<!ENTITY lozf  "&#x2726;"> <!--  -->
+<!ENTITY ltri  "&#x25C3;"> <!-- WHITE LEFT-POINTING TRIANGLE -->
+<!ENTITY rtri  "&#x25B9;"> <!-- WHITE RIGHT-POINTING TRIANGLE -->
+<!ENTITY starf "&#x2605;"> <!-- BLACK STAR -->
+<!ENTITY natur "&#x266E;"> <!-- MUSIC NATURAL SIGN -->
+<!ENTITY rx    "&#x211E;"> <!-- PRESCRIPTION TAKE -->
+<!ENTITY sext  "&#x2736;"> <!-- SIX POINTED BLACK STAR -->
+<!ENTITY target        "&#x2316;"> <!-- POSITION INDICATOR -->
+<!ENTITY dlcrop        "&#x230D;"> <!-- BOTTOM LEFT CROP -->
+<!ENTITY drcrop        "&#x230C;"> <!-- BOTTOM RIGHT CROP -->
+<!ENTITY ulcrop        "&#x230F;"> <!-- TOP LEFT CROP -->
+<!ENTITY urcrop        "&#x230E;"> <!-- TOP RIGHT CROP -->
+
+<!-- End of ISO Publishing Entities V0.3 .................................. -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent
new file mode 100644 (file)
index 0000000..b0aaac4
--- /dev/null
@@ -0,0 +1,104 @@
+<!-- ...................................................................... -->
+<!-- ISO General Technical Entities V0.3 .................................. -->
+<!-- File iso-tech.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+     Information Standards (OASIS).
+
+     $Id: iso-tech.ent,v 1.1 2008/05/27 19:26:08 jsumali Exp $
+
+     Permission to use, copy, modify and distribute this entity set
+     and its accompanying documentation for any purpose and without
+     fee is hereby granted in perpetuity, provided that the above
+     copyright notice and this paragraph appear in all copies. The
+     copyright holders make no representation about the suitability of
+     the entities for any purpose. It is provided "as is" without
+     expressed or implied warranty.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook@lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+
+     Derived, in part, from:
+
+       * iso-tech.gml
+
+           Copyright (C) 1986 International Organization for Standardization
+           Permission to copy in any form is granted for use with
+           conforming SGML systems and applications as defined in
+           ISO 8879, provided this notice is included in all copies.
+
+       * http://www.tug.org/applications/jadetex/unicode.xml
+
+       * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+     Please use the following formal public identifier to identify it:
+
+       ISO 8879:1986//ENTITIES General Technical//EN//XML
+-->
+
+<!ENTITY aleph "&#x2135;"> <!-- ALEF SYMBOL -->
+<!ENTITY and   "&#x2227;"> <!--  -->
+<!ENTITY ang90 "&#x221F;"> <!-- RIGHT ANGLE -->
+<!ENTITY angsph        "&#x2222;"> <!--  -->
+<!ENTITY ap    "&#x2248;"> <!--  -->
+<!ENTITY becaus        "&#x2235;"> <!-- BECAUSE -->
+<!ENTITY bottom        "&#x22A5;"> <!--  -->
+<!ENTITY cap   "&#x2229;"> <!--  -->
+<!ENTITY cong  "&#x2245;"> <!--  -->
+<!ENTITY conint        "&#x222E;"> <!--  -->
+<!ENTITY cup   "&#x222A;"> <!--  -->
+<!ENTITY equiv "&#x2261;"> <!--  -->
+<!ENTITY exist "&#x2203;"> <!--  -->
+<!ENTITY forall        "&#x2200;"> <!--  -->
+<!ENTITY fnof  "&#x0192;"> <!-- LATIN SMALL LETTER F WITH HOOK -->
+<!ENTITY ge    "&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY iff   "&#x21D4;"> <!-- LEFT RIGHT DOUBLE ARROW -->
+<!ENTITY infin "&#x221E;"> <!--  -->
+<!ENTITY int   "&#x222B;"> <!--  -->
+<!ENTITY isin  "&#x220A;"> <!--  -->
+<!ENTITY lang  "&#x3008;"> <!--  -->
+<!ENTITY lArr  "&#x21D0;"> <!-- LEFTWARDS ARROW -->
+<!ENTITY le    "&#x2264;"> <!--  -->
+<!ENTITY minus "&#x2212;"> <!-- MINUS SIGN -->
+<!ENTITY mnplus        "&#x2213;"> <!--  -->
+<!ENTITY nabla "&#x2207;"> <!-- NABLA -->
+<!ENTITY ne    "&#x2260;"> <!--  -->
+<!ENTITY ni    "&#x220D;"> <!--  -->
+<!ENTITY or    "&#x2228;"> <!--  -->
+<!ENTITY par   "&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY part  "&#x2202;"> <!--  -->
+<!ENTITY permil        "&#x2030;"> <!-- PER MILLE SIGN -->
+<!ENTITY perp  "&#x22A5;"> <!--  -->
+<!ENTITY prime "&#x2032;"> <!-- PRIME -->
+<!ENTITY Prime "&#x2033;"> <!-- DOUBLE PRIME -->
+<!ENTITY prop  "&#x221D;"> <!--  -->
+<!ENTITY radic "&#x221A;"> <!--  -->
+<!ENTITY rang  "&#x3009;"> <!--  -->
+<!ENTITY rArr  "&#x21D2;"> <!-- RIGHTWARDS ARROW -->
+<!ENTITY sim   "&#x223C;"> <!--  -->
+<!ENTITY sime  "&#x2243;"> <!--  -->
+<!ENTITY square        "&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY sub   "&#x2282;"> <!--  -->
+<!ENTITY sube  "&#x2286;"> <!--  -->
+<!ENTITY sup   "&#x2283;"> <!--  -->
+<!ENTITY supe  "&#x2287;"> <!--  -->
+<!ENTITY there4        "&#x2234;"> <!--  -->
+<!ENTITY Verbar        "&#x2016;"> <!-- DOUBLE VERTICAL LINE -->
+<!ENTITY angst "&#x212B;"> <!-- ANGSTROM SIGN -->
+<!ENTITY bernou        "&#x212C;"> <!-- SCRIPT CAPITAL B -->
+<!ENTITY compfn        "&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY Dot   "&#x00A8;"> <!--  -->
+<!ENTITY DotDot        "&#x20DC;"> <!-- COMBINING FOUR DOTS ABOVE -->
+<!ENTITY hamilt        "&#x210B;"> <!-- SCRIPT CAPITAL H -->
+<!ENTITY lagran        "&#x2112;"> <!-- SCRIPT CAPITAL L -->
+<!ENTITY lowast        "&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY notin "&#x2209;"> <!--  -->
+<!ENTITY order "&#x2134;"> <!-- SCRIPT SMALL O -->
+<!ENTITY phmmat        "&#x2133;"> <!-- SCRIPT CAPITAL M -->
+<!ENTITY tdot  "&#x20DB;"> <!-- COMBINING THREE DOTS ABOVE -->
+<!ENTITY tprime        "&#x2034;"> <!-- TRIPLE PRIME -->
+<!ENTITY wedgeq        "&#x2259;"> <!-- ESTIMATES -->
+
+<!-- End of ISO General Technical Entities V0.3 ........................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd
new file mode 100644 (file)
index 0000000..5597d7b
--- /dev/null
@@ -0,0 +1,35 @@
+<!-- gjdoc-alphabetical.dtd\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. -->\r
+\r
+<!-- \r
+  NOTE: This is NOT a complete DTD usable for verifying XML files\r
+  generated by XmlDoclet. This file is currently only used to include\r
+  OASIS' standard entity sets.\r
+-->\r
+\r
+<!ENTITY % dbcent.module "INCLUDE">\r
+<![%dbcent.module;[\r
+<!ENTITY euro "&#x20AC;">  <!-- Euro sign, U+20AC -->\r
+<!ENTITY % dbcent PUBLIC \r
+"-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN"\r
+"dbcentx.mod">\r
+%dbcent;\r
+]]>\r
+\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd
new file mode 100644 (file)
index 0000000..6d02bd8
--- /dev/null
@@ -0,0 +1,35 @@
+<!-- gjdoc.dtd\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. -->\r
+\r
+<!-- \r
+  NOTE: This is NOT a complete DTD usable for verifying XML files\r
+  generated by XmlDoclet. This file is currently only used to include\r
+  OASIS' standard entity sets.\r
+-->\r
+\r
+<!ENTITY % dbcent.module "INCLUDE">\r
+<![%dbcent.module;[\r
+<!ENTITY euro "&#x20AC;">  <!-- Euro sign, U+20AC -->\r
+<!ENTITY % dbcent PUBLIC \r
+"-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN"\r
+"dbcentx.mod">\r
+%dbcent;\r
+]]>\r
+\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties
new file mode 100644 (file)
index 0000000..37ffad4
--- /dev/null
@@ -0,0 +1,32 @@
+# gjdochtml-vanilla.css
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# 
+# This file is part of GNU Classpath.
+# 
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#  
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA.
+
+#
+# Defines localized strings for HtmlDoclet (US-english/fallback)
+#
+
+usagetype.class-derived-from = Classes derived from {0}
+usagetype.class-implementing = Classes implementing {0}
+usagetype.field-of-type = Fields of type {0}
+usagetype.method-with-return-type = Methods with return type {0}
+usagetype.method-with-parameter-type = Methods with parameter type {0}
+usagetype.method-with-thrown-type = Methods which throw type {0}
+usagetype.constructor-with-parameter-type = Constructors with parameter type {0}
+usagetype.constructor-with-thrown-type = Constructors which throw type {0}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js
new file mode 100644 (file)
index 0000000..91f8ba2
--- /dev/null
@@ -0,0 +1,115 @@
+/* gjdoc.js
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/**
+ *  Sets a new stylesheet for a single frame.
+ */
+function setStyleSheetForFrame(title, frame_name)
+{
+   var i, num, a, main;
+   f = eval("top.frames." + frame_name);
+   for(i=0; (a = f.document.getElementsByTagName("link")[i]); i++) {
+      if(a.getAttribute("rel").indexOf("style") != -1
+         && a.getAttribute("title")) {
+         a.disabled = true;
+         a.disabled = (a.getAttribute("title") != title);
+      }
+   }
+}
+
+/**
+ *  Sets a new stylesheet for a single document.
+ */
+function setStyleSheetForDocument(title) 
+{
+   var i, num, a, main;
+   for(i=0; (a = top.document.getElementsByTagName("link")[i]); i++) {
+      if(a.getAttribute("rel").indexOf("style") != -1
+         && a.getAttribute("title")) {
+         a.disabled = true;
+         a.disabled = (a.getAttribute("title") != title);        
+      }
+   }
+}
+
+/**
+ *  Sets a new stylesheets for all frames.
+ */
+function setStyleSheet(title)
+{
+   var i, num, a, main;
+   num = top.frames.length;
+   if (num > 0) {
+      for (i=0; i<num; i++) {
+         setStyleSheetForFrame(title, top.frames[i].name);
+      }
+   }
+   else {
+      setStyleSheetForDocument(title);
+   }
+   top.selectedSheet = title;
+   return false;
+}
+
+/**
+ *  Returns the title of the set of stylesheets that is active in the
+ *  given frame.
+ */
+function getActiveStylesheetTitle(frame)
+{ 
+   for(i=0; (a = frame.document.getElementsByTagName("link")[i]); i++) {
+      if(a.getAttribute("rel").indexOf("style") != -1
+         && a.getAttribute("title")) {
+         if (!a.disabled) {
+            return a.getAttribute("title");
+         }    
+      }
+   }
+   return "";
+}
+
+/**
+ *  Invoked when a page in the main content frame has been loaded.
+ */
+function contentPageLoaded(title) 
+{ 
+   if (title) {
+      top.document.title = title;
+   }
+   /** 20050204: removed since there is only one stylesheet at the time
+   if (top.frames.length > 0) {
+      setStyleSheet(getActiveStylesheetTitle(top.frames.packages), "content");
+   }
+   else if (top.selectedSheet) { 
+      setStyleSheet(top.selectedSheet, "content");
+   }
+   **/
+}
+
+/**
+ *  Invoked when a page in one of the two frames on the left hand has
+ *  been loaded.
+ */
+function secondaryPageLoaded(frame_name)
+{ 
+   /** 20050204: removed since there is only one stylesheet at the time
+   setStyleSheet(getActiveStylesheetTitle(top.frames.packages), frame_name);
+   **/
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css
new file mode 100644 (file)
index 0000000..28452fa
--- /dev/null
@@ -0,0 +1,80 @@
+/* gjdochtml-clean-layout.css
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+/* --- GNU Clean Style: Color Scheme #1 --- */
+
+[class~="title"],
+[class="table header"],
+[class="table sub header"],
+[class="section header"],
+[class="serialized package header"],
+[class="serialized class header"]
+{
+        background-color: #E8EAFF;
+}
+
+[class~="navbar"][class~="item"]
+{
+         border-color: #000000;
+         color: #000000;
+}
+
+[class~="navbar"][class~="item"][class~="disabled"]
+{
+         border-color: #aaaaaa;
+         color: #aaaaaa;
+}
+
+[class~="navbar"][class~="item"][class~="active"]
+{
+        color: #000000;
+        background-color: #E8EAFF;
+}
+
+[class~="navbar"][class~="item"][class~="active"]
+{
+        border-color:  #222222;
+}
+
+.navbar .header a
+{
+        color: #777777;
+}
+
+a[href] {
+  color: #141EB8;
+}
+
+a[href]:visited {
+  color: #0C126E;
+}
+
+
+/* ---- source highlighting ---- */
+
+.comment      { color: #777777; }
+.tag          { color: #444444; }
+.keyword      { color: #B36B00; }
+.header.type  { color: #00248F; }
+.type         { color: #0033CC; }
+.literal      { color: #809FFF; }
+.variable     { color: #007D48; }
+.method       { color: #B32400; }
+.line-number  { color: #AAAAAA; }
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css
new file mode 100644 (file)
index 0000000..9d45909
--- /dev/null
@@ -0,0 +1,460 @@
+/* gjdochtml-clean-layout.css
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+/* --- GNU Clean Style: Layout --- */
+
+body
+{
+        background: white;
+        color: black;
+}
+
+body.content
+{
+        margin-left: 1.3em;        
+        margin-right: 1.3em;        
+        margin-top: 0.9em;        
+        margin-bottom: 1.3em;        
+}
+
+div[class="class title outer"]
+{
+        margin: 0em;
+        margin-bottom: 1em;
+        border: 1px solid;
+        padding: 10pt;
+}
+
+[class="class title-package"]
+{
+        margin: 0em;
+        padding: 0em;
+}
+
+[class="class title-class"]
+{
+        margin: 0em;
+        margin-top: 0.2em;
+        padding: 0em;
+}
+
+[class="table header"],
+[class="table sub header"]
+{
+        margin: 0em;
+        padding: 0.25em;
+}
+
+[class="section header"]
+{
+        margin: 0em;
+        padding: 0.25em;
+        border: 1px solid;
+}
+
+.serialized.package.header
+{
+        margin: 0em;
+        padding: 0.25em;
+        border: 1px solid;
+        margin-bottom: 1em;
+}
+
+
+.serialized.class.header
+{
+        margin: 0em;
+        padding: 0.25em;
+        padding-left: 3.25em;
+        border: 1px solid;
+        text-indent: -3em;
+        font-weight: normal;
+        font-size: 1.2em;
+}
+
+.serialized.section.header
+{
+        font-size: 1.15em;
+}
+
+div.serialized.section
+{
+        padding-left: 1em;
+}
+
+.summary td,
+.summary .inherited
+{
+        padding: 0.25em;
+}
+
+table[border]
+{
+        border-spacing: 0em;
+        border-collapse: collapse;
+}
+
+table[border] td
+{
+        border-spacing: 0em;
+        border-collapse: collapse;
+}
+
+hr
+{
+        border-top: 1px solid;
+        border-bottom: 0px;
+        border-left: 0px;
+        border-right: 0px;
+}
+
+.class.summary .left
+{
+        width: 10%;
+}
+
+.class.summary td.left
+{
+        text-align: right;
+}
+
+.class.summary .left .synopsis
+{
+        font-size: small;
+}
+
+
+[class="package summary left"]
+{
+        width: 20%;
+}
+
+ul.inheritance
+{       
+        margin-left: 1.8em;
+        padding-left: 0em;
+        marker-offset: 0em !important;
+        list-style-type: none;
+        list-style-image: none;
+}
+
+li.inheritance
+{
+        margin: 0em !important;
+        margin-top: 0.1em !important;
+        padding: 0em !important;
+        marker-offset: 0em !important;
+}
+
+ul.inheritance > li.inheritance:before
+{
+        display: marker;
+        width: 12px;
+        margin: 0em !important;
+        padding: 0em !important;
+        marker-offset: 0em !important;
+        content: url(inherit.png);
+        vertical-align: center !important;
+}
+
+[class="inheritance 0"] > li.inheritance:before
+{
+        display: none;
+}
+
+ul [class="inheritance 0"]
+{
+        margin-left: 12px !important;
+        padding-left: 0em;
+        list-style-type: none !important;
+        list-style-image: none !important;
+}
+
+.inheritance-tree
+{
+        position: relative;
+        left: -24px;
+}
+
+.synopsis.outer
+{
+        padding: 0em;
+        margin-bottom: 0.3em;
+}
+
+.synopsis.outer > *
+{
+        margin: 0em;
+        padding: 0em;
+        line-height: 1.0em;
+}
+
+div.navbar.div
+{
+        padding: 0em;
+        margin: 0em;
+        position: relative;
+        left: -0.2em;
+}
+
+.navbar.div,
+.navbar.div tr,
+.navbar.div td
+{
+        margin: 0em;
+        padding: 0em;
+        border-spacing: 0em;
+        border-collapse: collapse;
+}
+
+table.navbar.div
+{
+        width: 100%;
+}
+
+table.navbar.div td
+{
+        line-height: 1.9em;
+        text-align: top;
+}
+
+.navbar.item
+{
+        /* float: left; */
+        border: 1px solid;
+        /* width: 7.5em; */
+        text-align: center;
+        margin: 0.05em;
+        padding-top: 0.2em;
+        padding-bottom: 0.3em;
+        padding-left: 0.5em;
+        padding-right: 0.5em;
+        font-size: 0.75em;
+        margin-bottom: 0.5em;
+}
+
+.navbar.item.active
+{
+        /* font-weight: bold; */
+        border: 1px solid;
+}
+
+[class~="title"]
+{
+        border: 1px solid;
+        padding: 0.3em;
+        margin-top: 0em;
+}
+
+.table.container,
+.table.container dd
+{
+        padding: 0em;
+        margin: 0em;
+}
+
+.overview.summary
+{
+        padding: 0em;
+        margin: 0em;
+}
+
+.summary
+{
+        margin-bottom: 1.2em;
+}
+        
+table.navbar.top
+{
+        margin-bottom: 1em !important;
+}
+
+.package.description
+{
+        margin-top: 0.0em;
+        margin-bottom: 1.0em;
+}
+
+.class.description
+{
+        margin-top: 1em;
+        margin-bottom: 0.8em;
+}
+
+[class="overview description top"]
+{
+        margin-top: 0.0em;
+        margin-bottom: 1.0em;
+}
+
+[class="overview description full"]
+{
+        margin-top: 1.0em;
+        margin-bottom: 0.0em;
+}
+
+.class.summary .right .list
+{
+        margin: 0em;
+        padding: 0em;  
+}
+
+.class.summary .right .list .synopsis
+{
+        margin: 0em;
+        padding: 0em;         
+}
+
+.classes .menu-subtitle
+{
+        padding: 0em;
+        margin-top: 0.5em;
+        margin-bottom: 0em;
+}
+
+.menu-title
+{
+        padding: 0em;
+        margin-top: 0.8em;
+        margin-bottom: 0.2em;
+}
+
+.menu-entry
+{
+        font-size: 0.8em;
+}
+
+.class.summary .right
+{
+        vertical-align: top;
+}
+
+.class.summary .right .list
+{
+        vertical-align: top;
+}
+
+.navi
+{
+        padding-top: 0.5em;
+        font-size: x-small;
+}
+
+.navbar .header
+{
+        vertical-align: top;
+}
+
+.navbar .header span
+{
+        border: none;
+        white-space: nowrap;
+        padding-top: 0.2em;
+        padding-bottom: 0.3em;
+        padding-left: 0.5em;
+}
+
+.navbar .header a
+{
+        font-weight: bold;
+        font-size: 11pt;
+}
+
+h1
+{
+        font-size: 1.5em;
+}
+
+h2
+{
+        font-size: 1.3em;
+}
+
+h3
+{
+        font-size: 1.1em;
+}
+
+.summary .right .synopsis
+{
+        padding-left: 5.25em !important;
+        text-indent: -5em !important;
+}
+
+.summary .right .description
+{
+        text-indent: 1em !important;
+        padding-top: 0.25em !important;
+        padding-bottom: 0.1em !important;
+        padding-left: 0.25em !important;
+}
+
+td.usage.summary
+{
+        vertical-align: top;
+}
+
+.index .entry .description
+{
+        padding-left: 3em;
+}
+
+.index .entry .key
+{
+        padding-left: 5.25em;
+        text-indent: -5em;
+}
+
+.dep-list .summary .description
+{
+        padding-top: 0.1em;
+        padding-left: 3em;
+}
+
+.dep-toc .header
+{
+        padding-bottom: 0em;
+        margin-bottom: 0.2em;
+}
+
+.dep-toc .list
+{
+        margin-top: 0em;
+        margin-bottom: 1.5em;
+        padding-top: 0em;
+        padding-bottom: 0em;
+        padding-left: 2em;
+}
+
+ul.tree li.node
+{
+        list-style-type: disc;
+}
+
+ul.tree ul
+{
+        margin-left: 0em;
+        padding-left: 1.8em;
+}
+
+li.level
+{
+        list-style-type: none;
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css
new file mode 100644 (file)
index 0000000..503207b
--- /dev/null
@@ -0,0 +1,21 @@
+/* gjdochtml-vanilla.css
+   Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+/* Empty Vanilla Stylesheeet */
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml
new file mode 100644 (file)
index 0000000..e1bb453
--- /dev/null
@@ -0,0 +1,25 @@
+<!-- help.xhtml
+     Copyright (C) 2004 Free Software Foundation, Inc.
+     
+     This file is part of GNU Classpath.
+     
+     GNU Classpath is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published by
+     the Free Software Foundation; either version 2, or (at your option)
+     any later version.
+      
+     GNU Classpath is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+     
+     You should have received a copy of the GNU General Public License
+     along with GNU Classpath; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+     02111-1307 USA.
+     -->
+
+<p>
+  Sorry, no help available.
+</p>
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png
new file mode 100644 (file)
index 0000000..50ca474
Binary files /dev/null and b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png differ
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd
new file mode 100644 (file)
index 0000000..0dd73f7
--- /dev/null
@@ -0,0 +1,54 @@
+<!-- xhtml11-strict-target10.dtd
+     Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. -->
+
+<!-- XHTML 1.1 plus Target 1.0 DTD  ................................ -->
+
+<!-- File: xhtml11-target10.dtd
+
+   XHTML 1.1 DTD which loads the optional Target 1.0 Module.
+
+   This file is based on a DTD by Jacques Distler. See
+   http://golem.ph.utexas.edu/~distler/blog/files/zeldman.html
+
+   Public and System Identifiers:
+
+        PUBLIC "-//gnu.org//DTD XHTML 1.1 plus Target 1.0//EN"
+        SYSTEM "http://gnu.org/DTD/xhtml11-target10.dtd"
+
+    The corresponding DOCTYPE declaration:
+
+        <!DOCTYPE html
+            PUBLIC "-//gnu.org//DTD XHTML 1.1 plus Target 1.0//EN"
+            "http://gnu.org/DTD/xhtml11-target10.dtd">
+
+    Original idea: Dave H <dmh@dmh.org.uk>
+                   http://www.dmh.org.uk/
+
+-->
+<!ENTITY % XHTML.version
+    "-//gnu.org//DTD XHTML 1.1 plus Target 1.0//EN" >
+<!ENTITY % xhtml11.mod
+    PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
+%xhtml11.mod;
+<!ENTITY % xhtml-target.mod
+    PUBLIC "-//W3C//ELEMENTS XHTML Target 1.0//EN"
+    "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-target-1.mod" >
+%xhtml-target.mod;
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt
new file mode 100644 (file)
index 0000000..0e44adf
--- /dev/null
@@ -0,0 +1,78 @@
+Cloneable
+Comparable
+Runnable
+Boolean
+Byte
+Character
+Character.Subset
+Character.UnicodeBlock
+Class
+ClassLoader
+Compiler
+Double
+Float
+InheritableThreadLocal
+Integer
+Long
+Math
+Number
+Object
+Package
+Process
+Runtime
+RuntimePermission
+SecurityManager
+Short
+String
+StringBuffer
+System
+Thread
+ThreadGroup
+ThreadLocal
+Throwable
+Void
+ArithmeticException
+ArrayIndexOutOfBoundsException
+ArrayStoreException
+ClassCastException
+ClassNotFoundException
+CloneNotSupportedException
+Exception
+IllegalAccessException
+IllegalArgumentException
+IllegalMonitorStateException
+IllegalStateException
+IllegalThreadStateException
+IndexOutOfBoundsException
+InstantiationException
+InterruptedException
+NegativeArraySizeException
+NoSuchFieldException
+NoSuchMethodException
+NullPointerException
+NumberFormatException
+RuntimeException
+SecurityException
+StringIndexOutOfBoundsException
+UnsupportedOperationException
+AbstractMethodError
+ClassCircularityError
+ClassFormatError
+Error
+ExceptionInInitializerError
+IllegalAccessError
+IncompatibleClassChangeError
+InstantiationError
+InternalError
+LinkageError
+NoClassDefFoundError
+NoSuchFieldError
+NoSuchMethodError
+OutOfMemoryError
+StackOverflowError
+ThreadDeath
+UnknownError
+UnsatisfiedLinkError
+UnsupportedClassVersionError
+VerifyError
+VirtualMachineError
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt
new file mode 100644 (file)
index 0000000..119423d
--- /dev/null
@@ -0,0 +1,79 @@
+Cloneable
+Comparable
+Runnable
+Boolean
+Byte
+Character
+Character.Subset
+Character.UnicodeBlock
+Class
+ClassLoader
+Compiler
+Double
+Float
+InheritableThreadLocal
+Integer
+Long
+Math
+Number
+Object
+Package
+Process
+Runtime
+RuntimePermission
+SecurityManager
+Short
+StrictMath
+String
+StringBuffer
+System
+Thread
+ThreadGroup
+ThreadLocal
+Throwable
+Void
+ArithmeticException
+ArrayIndexOutOfBoundsException
+ArrayStoreException
+ClassCastException
+ClassNotFoundException
+CloneNotSupportedException
+Exception
+IllegalAccessException
+IllegalArgumentException
+IllegalMonitorStateException
+IllegalStateException
+IllegalThreadStateException
+IndexOutOfBoundsException
+InstantiationException
+InterruptedException
+NegativeArraySizeException
+NoSuchFieldException
+NoSuchMethodException
+NullPointerException
+NumberFormatException
+RuntimeException
+SecurityException
+StringIndexOutOfBoundsException
+UnsupportedOperationException
+AbstractMethodError
+ClassCircularityError
+ClassFormatError
+Error
+ExceptionInInitializerError
+IllegalAccessError
+IncompatibleClassChangeError
+InstantiationError
+InternalError
+LinkageError
+NoClassDefFoundError
+NoSuchFieldError
+NoSuchMethodError
+OutOfMemoryError
+StackOverflowError
+ThreadDeath
+UnknownError
+UnsatisfiedLinkError
+UnsupportedClassVersionError
+VerifyError
+VirtualMachineError
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt
new file mode 100644 (file)
index 0000000..81a442d
--- /dev/null
@@ -0,0 +1,82 @@
+CharSequence
+Cloneable
+Comparable
+Runnable
+Boolean
+Byte
+Character
+Character.Subset
+Character.UnicodeBlock
+Class
+ClassLoader
+Compiler
+Double
+Float
+InheritableThreadLocal
+Integer
+Long
+Math
+Number
+Object
+Package
+Process
+Runtime
+RuntimePermission
+SecurityManager
+Short
+StackTraceElement
+StrictMath
+String
+StringBuffer
+System
+Thread
+ThreadGroup
+ThreadLocal
+Throwable
+Void
+ArithmeticException
+ArrayIndexOutOfBoundsException
+ArrayStoreException
+ClassCastException
+ClassNotFoundException
+CloneNotSupportedException
+Exception
+IllegalAccessException
+IllegalArgumentException
+IllegalMonitorStateException
+IllegalStateException
+IllegalThreadStateException
+IndexOutOfBoundsException
+InstantiationException
+InterruptedException
+NegativeArraySizeException
+NoSuchFieldException
+NoSuchMethodException
+NullPointerException
+NumberFormatException
+RuntimeException
+SecurityException
+StringIndexOutOfBoundsException
+UnsupportedOperationException
+AbstractMethodError
+AssertionError
+ClassCircularityError
+ClassFormatError
+Error
+ExceptionInInitializerError
+IllegalAccessError
+IncompatibleClassChangeError
+InstantiationError
+InternalError
+LinkageError
+NoClassDefFoundError
+NoSuchFieldError
+NoSuchMethodError
+OutOfMemoryError
+StackOverflowError
+ThreadDeath
+UnknownError
+UnsatisfiedLinkError
+UnsupportedClassVersionError
+VerifyError
+VirtualMachineError
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt
new file mode 100644 (file)
index 0000000..2439f2e
--- /dev/null
@@ -0,0 +1,90 @@
+Appendable
+CharSequence
+Cloneable
+Comparable
+Iterable
+Readable
+Runnable
+Thread.UncaughtExceptionHandler
+Boolean
+Byte
+Character
+Character.Subset
+Character.UnicodeBlock
+Class
+ClassLoader
+Compiler
+Double
+Enum
+Float
+InheritableThreadLocal
+Integer
+Long
+Math
+Number
+Object
+Package
+Process
+ProcessBuilder
+Runtime
+RuntimePermission
+SecurityManager
+Short
+StackTraceElement
+StrictMath
+String
+StringBuffer
+StringBuilder
+System
+Thread
+ThreadGroup
+ThreadLocal
+Throwable
+Void
+ArithmeticException
+ArrayIndexOutOfBoundsException
+ArrayStoreException
+ClassCastException
+ClassNotFoundException
+CloneNotSupportedException
+Exception
+IllegalAccessException
+IllegalArgumentException
+IllegalMonitorStateException
+IllegalStateException
+IllegalThreadStateException
+IndexOutOfBoundsException
+InstantiationException
+InterruptedException
+NegativeArraySizeException
+NoSuchFieldException
+NoSuchMethodException
+NullPointerException
+NumberFormatException
+RuntimeException
+SecurityException
+StringIndexOutOfBoundsException
+TypeNotPresentException
+UnsupportedOperationException
+AbstractMethodError
+AssertionError
+ClassCircularityError
+ClassFormatError
+Error
+ExceptionInInitializerError
+IllegalAccessError
+IncompatibleClassChangeError
+InstantiationError
+InternalError
+LinkageError
+NoClassDefFoundError
+NoSuchFieldError
+NoSuchMethodError
+OutOfMemoryError
+StackOverflowError
+ThreadDeath
+UnknownError
+UnsatisfiedLinkError
+UnsupportedClassVersionError
+VerifyError
+VirtualMachineError
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng
new file mode 100644 (file)
index 0000000..085710d
--- /dev/null
@@ -0,0 +1,649 @@
+<?xml version="1.0"?>\r
+\r
+<!-- gjdoc-classdoc.rng\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. -->\r
+\r
+<grammar \r
+      xmlns="http://relaxng.org/ns/structure/1.0" \r
+      xmlns:a="http://relaxng.org/ns/annotation/1.0" \r
+      xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml">\r
+\r
+   <include href="gjdoc-common.rng"/>\r
+   \r
+   <a:documentation>\r
+      The Relax NG grammar for an classdoc XML document generated by\r
+      GNU Gjdoc.\r
+   </a:documentation>\r
+\r
+   <start>\r
+      <a:documentation>\r
+        The root element for a Gjdoc classdoc XML document.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:classdoc">\r
+        <a:documentation>\r
+           Corresponds to a Javadoc API com.sun.javadoc.ClassDoc\r
+           object, the subtree of the full generated documentation\r
+           corresponding to a particular Java class.\r
+        </a:documentation>\r
+\r
+        <ref name="name-attribute"/>\r
+        <ref name="qualifiedtypename-attribute"/>\r
+\r
+        <optional>\r
+           <ref name="superclass-element"/>\r
+        </optional>\r
+\r
+        <zeroOrMore>\r
+           <ref name="implements-element"/>\r
+        </zeroOrMore>\r
+\r
+        <zeroOrMore>\r
+           <ref name="superimplements-element"/>\r
+        </zeroOrMore>\r
+\r
+        <ref name="ProgramElementDocBody"/>\r
+\r
+        <optional>\r
+           <ref name="isAbstract-element"/>\r
+        </optional>\r
+\r
+        <optional>\r
+           <ref name="isSerializable-element"/>\r
+        </optional>\r
+\r
+        <optional>\r
+           <ref name="isExternalizable-element"/>\r
+        </optional>\r
+\r
+        <optional>\r
+           <ref name="definesSerializableFields-element"/>\r
+        </optional>\r
+\r
+        <zeroOrMore>\r
+           <ref name="constructordoc-element"/>\r
+        </zeroOrMore>\r
+\r
+        <zeroOrMore>\r
+           <ref name="methoddoc-element"/>\r
+        </zeroOrMore>\r
+\r
+        <zeroOrMore>\r
+           <ref name="fielddoc-element"/>\r
+        </zeroOrMore>\r
+\r
+      </element>      \r
+\r
+   </start>\r
+\r
+   <!-- The following patterns are "body" patterns for the element\r
+   patterns below. Their content corresponds to the abstract\r
+   superclasses of the classes which are represented by the "element"\r
+   patterns below.  -->\r
+\r
+   <define name="DocBody">\r
+      <a:documentation>\r
+        Corresponds to the abstract class\r
+        <code>com.sun.javadoc.Doc</code>, the common base class for\r
+        all documentation classes.\r
+      </a:documentation>\r
+\r
+      <optional>\r
+        <ref name="isClass-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="isConstructor-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="isError-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="isException-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="isField-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="isIncluded-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="isInterface-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="isMethod-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="isOrdinaryClass-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="inlineTags-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="firstSentenceTags-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="tags-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="seeTags-element"/>\r
+      </optional>\r
+\r
+   </define>\r
+\r
+   <define name="ProgramElementDocBody">\r
+      <a:documentation>\r
+        Corresponds to the abstract class\r
+        <code>com.sun.javadoc.ProgramElementDoc</code>.\r
+      </a:documentation>\r
+\r
+      <!-- ... which is derived from class com.sun.javadoc.Doc -->\r
+      <ref name="DocBody"/>\r
+\r
+      <ref name="containingPackage-element"/>\r
+\r
+      <optional>\r
+        <ref name="containingClass-element"/>\r
+      </optional>\r
+      \r
+      <ref name="access-element"/>\r
+      \r
+      <optional>\r
+        <ref name="isFinal-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="isStatic-element"/>\r
+      </optional>\r
+\r
+   </define>\r
+\r
+   <define name="MemberDocBody">\r
+      <a:documentation>\r
+        Corresponds to the abstract class\r
+        <code>com.sun.javadoc.MemberDoc</code>.\r
+      </a:documentation>\r
+\r
+      <!-- ... which is derived from class\r
+      com.sun.javadoc.ProgramElementDoc -->\r
+      <ref name="ProgramElementDocBody"/>\r
+\r
+   </define>\r
+\r
+   <define name="ExecutableMemberDocBody">\r
+      <a:documentation>\r
+        Corresponds to the abstract class\r
+        <code>com.sun.javadoc.ExecutableMemberDoc</code>.\r
+      </a:documentation>\r
+\r
+      <!-- ... which is derived from class \r
+      com.sun.javadoc.MemberDoc -->\r
+      <ref name="MemberDocBody"/>\r
+\r
+      <zeroOrMore>\r
+        <ref name="parameter-element"/>\r
+      </zeroOrMore>\r
+\r
+      <zeroOrMore>\r
+        <ref name="thrownException-element"/>\r
+      </zeroOrMore>\r
+\r
+      <ref name="signature-element"/>\r
+\r
+      <optional>\r
+        <ref name="isNative-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="isSynchronized-element"/>\r
+      </optional>\r
+\r
+   </define>\r
+\r
+   <define name="ConstructorDocBody">\r
+      <a:documentation>\r
+        Corresponds to an object of class\r
+        <code>com.sun.javadoc.ConstructorDoc</code>.\r
+      </a:documentation>\r
+\r
+      <!-- ... which is derived from class\r
+      com.sun.javadoc.ExecutableMemberDoc -->\r
+      <ref name="ExecutableMemberDocBody"/>\r
+\r
+   </define>\r
+\r
+   <define name="MethodDocBody">\r
+      <a:documentation>\r
+        Corresponds to an object of class\r
+        <code>com.sun.javadoc.MethodDoc</code>.\r
+      </a:documentation>\r
+\r
+      <!-- ... which is derived from class\r
+      com.sun.javadoc.ExecutableMemberDoc -->\r
+      <ref name="ExecutableMemberDocBody"/>\r
+\r
+      <ref name="returns-element"/>\r
+   </define>\r
+\r
+   <define name="FieldDocBody">\r
+      <a:documentation>\r
+        Corresponds to an object of class\r
+        <code>com.sun.javadoc.FieldDoc</code>.\r
+      </a:documentation>\r
+\r
+      <!-- ... which is derived from class\r
+      com.sun.javadoc.ProgramElementDoc -->\r
+      <ref name="ProgramElementDocBody"/>\r
+\r
+      <optional>\r
+        <ref name="isTransient-element"/>\r
+      </optional>\r
+\r
+      <optional>\r
+        <ref name="isVolatile-element"/>\r
+      </optional>\r
+\r
+      <element name="gjdoc:type">\r
+        <ref name="typedef-attributes"/>\r
+      </element>\r
+\r
+   </define>\r
+\r
+\r
+   <!-- The following patterns define the elements representing\r
+   concrete classes in the Javadoc API. -->\r
+\r
+   <define name="constructordoc-element">\r
+      <a:documentation>\r
+        Specifies a constructor of the class.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:constructordoc">\r
+        <ref name="name-attribute"/>\r
+        <ref name="ConstructorDocBody"/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="methoddoc-element">\r
+      <a:documentation>\r
+        Specifies a method of the class.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:methoddoc">\r
+        <ref name="name-attribute"/>\r
+        <ref name="MethodDocBody"/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="fielddoc-element">\r
+      <a:documentation>\r
+        Specifies a field of the class.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:fielddoc">\r
+        <ref name="name-attribute"/>\r
+        <ref name="FieldDocBody"/>\r
+      </element>\r
+   </define>\r
+\r
+   <!-- The following patterns represent the return value of the\r
+   corresponding boolean getters of various classes in\r
+   <code>com.sun.javadoc</code>. The presence of each tag denotes a\r
+   return value of <code>true</code>, absence denotes a return value\r
+   of <code>false</code>. -->\r
+\r
+   <define name="isAbstract-element">\r
+      <a:documentation>\r
+        Presence means <code>ClassDoc.isAbstract()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isAbstract">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isClass-element">\r
+      <a:documentation>\r
+        Presence means <code>Doc.isClass()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isClass">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isConstructor-element">\r
+      <a:documentation>\r
+        Presence means <code>Doc.isConstructor()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isConstructor">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isError-element">\r
+      <a:documentation>\r
+        Presence means <code>Doc.isError()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isError">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isException-element">\r
+      <a:documentation>\r
+        Presence means <code>Doc.isException()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isException">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isSerializable-element">\r
+      <a:documentation>\r
+        Presence means <code>ClassDoc.isSerializable()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isSerializable">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isExternalizable-element">\r
+      <a:documentation>\r
+        Presence means <code>ClassDoc.isExternalizable()</code>\r
+        returns <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isExternalizable">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isField-element">\r
+      <a:documentation>\r
+        Presence means <code>Doc.isField()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isField">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isIncluded-element">\r
+      <a:documentation>\r
+        Presence means <code>Doc.isIncluded()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isIncluded">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isInterface-element">\r
+      <a:documentation>\r
+        Presence means <code>Doc.isInterface()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isInterface">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isMethod-element">\r
+      <a:documentation>\r
+        Presence means <code>Doc.isMethod()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isMethod">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isOrdinaryClass-element">\r
+      <a:documentation>\r
+        Presence means <code>Doc.isOrdinaryClass()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isOrdinaryClass">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isFinal-element">\r
+      <a:documentation>\r
+        Presence means <code>ProgramElementDoc.isFinal()</code>\r
+        returns <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isFinal">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isStatic-element">\r
+      <a:documentation>\r
+        Presence means <code>ProgramElementDoc.isStatic()</code>\r
+        returns <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isStatic">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isTransient-element">\r
+      <a:documentation>\r
+        Presence means <code>FieldDoc.isTransient()</code>\r
+        returns <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isTransient">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isVolatile-element">\r
+      <a:documentation>\r
+        Presence means <code>FieldDoc.isVolatile()</code>\r
+        returns <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isVolatile">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isNative-element">\r
+      <a:documentation>\r
+        Presence means <code>ExecutableMemberDoc.isNative()</code>\r
+        returns <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isNative">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isSynchronized-element">\r
+      <a:documentation>\r
+        Presence means\r
+        <code>ExecutableMemberDoc.isSynchronized()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:isSynchronized">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="definesSerializableFields-element">\r
+      <a:documentation>\r
+        Presence means\r
+        <code>ClassDoc.definesSerializableFields()</code> returns\r
+        <code>true</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:definesSerializableFields">\r
+        <empty/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="access-element">\r
+      <a:documentation>\r
+        Corresponds to the access modifier (public, protected,\r
+        private) specified by a ProgramElementDoc.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:access">\r
+        <attribute name="scope">\r
+           <a:documentation>\r
+              This value is determined by calling\r
+              <code>ProgramElementDoc.isPublic()</code>,\r
+              <code>ProgramElementDoc.isProtected()</code>,\r
+              <code>ProgramElementDoc.isPrivate()</code> and\r
+              <code>ProgramElementDoc.isPackagePrivate()</code>.\r
+           </a:documentation>\r
+           <choice>\r
+              <value>public</value>\r
+              <value>protected</value>\r
+              <value>private</value>\r
+              <value>package</value>\r
+           </choice>\r
+        </attribute>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="containingClass-element">\r
+      <a:documentation>\r
+        Corresponds to the type returned by a call to\r
+        <code>com.sun.javadoc.Classdoc.containingClass()</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:containingClass">\r
+        <a:documentation>\r
+           The full name of the outer class containing the class, if\r
+           this class is an inner class.\r
+        </a:documentation>\r
+        <ref name="typedef-attributes"/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="parameter-element">\r
+      <a:documentation>\r
+        Corresponds to an entry in the array returned by a\r
+        <code>com.sun.javadoc.ExecutableMemberDoc.parameters()</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:parameter">\r
+        <a:documentation>\r
+           A parameter for a method or constructor call.\r
+        </a:documentation>\r
+        <ref name="name-attribute"/>    \r
+        <optional>\r
+           <ref name="typedef-attributes"/>\r
+        </optional>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="thrownException-element">\r
+      <a:documentation>\r
+        Corresponds to an entry in the array returned by a\r
+        <code>com.sun.javadoc.ExecutableMemberDoc.thrownExceptions()</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:thrownException">\r
+        <a:documentation>\r
+           An exception thrown by a method or constructor.\r
+        </a:documentation>\r
+        <ref name="typedef-attributes"/>\r
+      </element>\r
+   </define>\r
+\r
+\r
+   <define name="signature-element">\r
+      <a:documentation>\r
+        Corresponds to the signature specified by a\r
+        <code>com.sun.javadoc.MethodDoc</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:signature">\r
+        <a:documentation>\r
+           The signature of a method or constructor.\r
+        </a:documentation>\r
+        <attribute name="full">\r
+           <a:documentation>\r
+              The full signature of a method or constructor, as\r
+              returned by\r
+              <code>com.sun.javadoc.ExecutableMemberDoc.signature()</code>.\r
+           </a:documentation>\r
+           <text/>\r
+        </attribute>\r
+        <attribute name="flat">\r
+           <a:documentation>\r
+              The "flat" signature of a method or constructor, as\r
+              returned by\r
+              <code>com.sun.javadoc.ExecutableMemberDoc.flatSignature()</code>.\r
+           </a:documentation>\r
+           <text/>\r
+        </attribute>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="returns-element">\r
+      <a:documentation>\r
+        Corresponds to the type returned by\r
+        <code>com.sun.javadoc.MethodDoc.returnType()</code>.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:returns">\r
+        <a:documentation>\r
+           The type returned by a method.\r
+        </a:documentation>\r
+\r
+        <ref name="typedef-attributes"/>\r
+      </element>\r
+   </define>\r
+</grammar>\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng
new file mode 100644 (file)
index 0000000..85ffc1d
--- /dev/null
@@ -0,0 +1,264 @@
+<?xml version="1.0"?>\r
+\r
+<!-- gjdoc-common.rng\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. -->\r
+\r
+<grammar \r
+      xmlns="http://relaxng.org/ns/structure/1.0" \r
+      xmlns:a="http://relaxng.org/ns/annotation/1.0" \r
+      xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml">\r
+   \r
+   <a:documentation>\r
+      A Relax NG grammar with definitions of elements and attributes\r
+      used by both the XML index file and the XML class files\r
+      generated by GNU Gjdoc.\r
+   </a:documentation>\r
+\r
+   <define name="firstSentenceTags-element">\r
+      <a:documentation>\r
+\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:firstSentenceTags">\r
+        <ref name="tags-contents"/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="inlineTags-element">\r
+      <a:documentation>\r
+\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:inlineTags">\r
+        <ref name="tags-contents"/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="seeTags-element">\r
+      <a:documentation>\r
+\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:seeTags">\r
+        <ref name="tags-contents"/>\r
+      </element>\r
+   </define>\r
+\r
+\r
+   <define name="tags-element">\r
+      <a:documentation>\r
+\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:tags">\r
+        <ref name="tags-contents"/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="tags-contents">\r
+      <a:documentation>\r
+        Specifies mixed content comprised of gjdoc tags,\r
+        HTML tags, taglet output, and text.\r
+      </a:documentation>\r
+\r
+      <zeroOrMore>\r
+        <ref name="TagContent"/>\r
+      </zeroOrMore>\r
+   </define>\r
+\r
+   <define name="implements-element">\r
+      <element name="gjdoc:implements">\r
+        <a:documentation>\r
+           Specifies an interface that the class implements.\r
+        </a:documentation>\r
+        \r
+        <ref name="typedef-attributes"/>\r
+      </element>\r
+   </define>\r
+\r
+\r
+   <define name="superimplements-element">\r
+      <element name="gjdoc:superimplements">\r
+        <a:documentation>\r
+           Specifies an interface implemented by superclasses\r
+           (ancestors) of the class. Together with the interfaces\r
+           specified with tag `implements', this lists all interfaces\r
+           the class can be cast to.\r
+        </a:documentation>\r
+        \r
+        <ref name="typedef-attributes"/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="typedef-attributes">\r
+      <attribute name="typename">\r
+        <a:documentation>\r
+           The name of the class, without package prefix. If the\r
+           class is an inner class, this includes the name of its\r
+           outer class.\r
+        </a:documentation>\r
+\r
+        <text/>\r
+      </attribute>\r
+      \r
+      <ref name="qualifiedtypename-attribute"/>\r
+\r
+      <optional>\r
+        <attribute name="dimension">\r
+           <a:documentation>\r
+              The dimension of this typedef, represented by a zero or\r
+              more repetitions of the string "[]".\r
+           </a:documentation>\r
+\r
+           <text/>\r
+        </attribute>\r
+      </optional>\r
+   </define>\r
+\r
+   <define name="name-attribute">\r
+      <attribute name="name">\r
+        <a:documentation>\r
+           The name of some Java Entity (package, class, constructor,\r
+           method, field.)\r
+        </a:documentation>\r
+\r
+        <text/>\r
+      </attribute>\r
+   </define>\r
+\r
+   <define name="qualifiedtypename-attribute">\r
+      <attribute name="qualifiedtypename">\r
+        <a:documentation>\r
+           The fully qualified name of the class.\r
+        </a:documentation>\r
+\r
+        <text/>\r
+      </attribute>\r
+   </define>\r
+\r
+   <define name="superclass-element">\r
+      <element name="gjdoc:superclass">\r
+        <a:documentation>\r
+           Specifies the superclass of the class.\r
+        </a:documentation>\r
+        \r
+        <ref name="typedef-attributes"/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="tag-element">\r
+      <element name="gjdoc:tag">\r
+        <ref name="name-attribute"/>\r
+        <attribute name="kind">\r
+           <text/>\r
+        </attribute>\r
+        <zeroOrMore>\r
+           <ref name="TagContent"/>\r
+        </zeroOrMore>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="exception-element">\r
+      <element name="gjdoc:exception">\r
+        <ref name="typedef-attributes"/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="TagContent">\r
+      <choice>\r
+        <element>\r
+           <anyName>\r
+              <except>\r
+                 <nsName ns="gjdoc"/>\r
+                 <name>gjdoc:tag</name>\r
+              </except>\r
+           </anyName>\r
+           <zeroOrMore>\r
+              <attribute>\r
+                 <anyName/>\r
+              </attribute>\r
+           </zeroOrMore>\r
+           <zeroOrMore>\r
+              <choice>\r
+                 <text/>\r
+                 <ref name="TagContent"/>\r
+              </choice>\r
+           </zeroOrMore>\r
+        </element>\r
+        <ref name="tag-element"/>\r
+        <ref name="exception-element"/>\r
+        <ref name="tagletText-element"/>\r
+        <text/>\r
+      </choice>\r
+   </define>\r
+\r
+   <define name="containingPackage-element">\r
+      <element name="gjdoc:containingPackage">\r
+        <a:documentation>\r
+           The full name of the package containing the class.\r
+        </a:documentation>\r
+        <attribute name="name">\r
+           <text/>\r
+        </attribute>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="tagletText-element">\r
+      <element name="gjdoc:tagletText">\r
+        <a:documentation>\r
+           A string generated by a Taglet.toString() method.\r
+        </a:documentation>\r
+        <attribute name="tagName">\r
+            <a:documentation>\r
+               The name of the tag this Taglet was assigned to.\r
+            </a:documentation>\r
+           <text/>\r
+        </attribute>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isError-element">\r
+      <element name="gjdoc:isError">\r
+        <a:documentation>\r
+           Exists when the described class is a subclass of\r
+           java.lang.Error.\r
+        </a:documentation>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isException-element">\r
+      <element name="gjdoc:isException">\r
+        <a:documentation>\r
+           Exists when the described class is a subclass of\r
+           java.lang.Exception.\r
+        </a:documentation>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="isInterface-element">\r
+      <element name="gjdoc:isInterface">\r
+        <a:documentation>\r
+           Exists when the described class is an interface.\r
+        </a:documentation>\r
+      </element>\r
+   </define>\r
+\r
+</grammar>\r
+\r
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng
new file mode 100644 (file)
index 0000000..b788556
--- /dev/null
@@ -0,0 +1,176 @@
+<?xml version="1.0"?>\r
+\r
+<!-- gjdoc-index.rng\r
+     Copyright (C) 2003 Free Software Foundation, Inc.\r
+\r
+This file is part of GNU Classpath.\r
+\r
+GNU Classpath is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2, or (at your option)\r
+any later version.\r
\r
+GNU Classpath is distributed in the hope that it will be useful, but\r
+WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with GNU Classpath; see the file COPYING.  If not, write to the\r
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\r
+02111-1307 USA. -->\r
+\r
+<grammar \r
+      xmlns="http://relaxng.org/ns/structure/1.0" \r
+      xmlns:a="http://relaxng.org/ns/annotation/1.0" \r
+      xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml">\r
+\r
+   <include href="gjdoc-common.rng"/>\r
+   \r
+   <a:documentation>\r
+      The Relax NG grammar for the XML index file generated by GNU\r
+      Gjdoc.\r
+   </a:documentation>\r
+\r
+   <start>\r
+      <a:documentation>\r
+        The root element for a Gjdoc index XML document.\r
+      </a:documentation>\r
+\r
+      <element name="gjdoc:rootdoc">\r
+        <a:documentation>\r
+           Corresponds to the Javadoc API RootDoc object, the root of\r
+           the generated documentation.\r
+        </a:documentation>\r
+   \r
+        <zeroOrMore>\r
+           <ref name="specifiedclass-element"/>\r
+        </zeroOrMore>\r
+        \r
+        <zeroOrMore>\r
+           <ref name="specifiedpackage-element"/>\r
+        </zeroOrMore>\r
+        \r
+        <zeroOrMore>\r
+           <ref name="packagedoc-element"/>\r
+        </zeroOrMore>\r
+\r
+        <zeroOrMore>\r
+           <ref name="classdoc-element"/>\r
+        </zeroOrMore>\r
+      </element>\r
+   </start>\r
+   \r
+   <define name="containsClass-element">\r
+      <element name="gjdoc:containsClass">\r
+        <a:documentation>\r
+           Corresponds to a class contained in a package or in\r
+           another class.\r
+        </a:documentation>\r
+\r
+        <ref name="qualifiedtypename-attribute"/>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="specifiedclass-element">\r
+      <element name="gjdoc:specifiedclass">\r
+        <a:documentation>\r
+           Corresponds to a class named on the Gjdoc command\r
+           line.  This is a class the user explicitly wants\r
+           documentation generated for.\r
+        </a:documentation>\r
+        \r
+        <attribute name="name">\r
+           <a:documentation>\r
+              The name of the class as given by the user on the command\r
+              line. (CHECK)\r
+           </a:documentation>      \r
+\r
+           <text/>\r
+        </attribute>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="specifiedpackage-element">\r
+      <element name="gjdoc:specifiedpackage">\r
+        <a:documentation>\r
+           Corresponds to a package named on the Gjdoc command\r
+           line.  This is a package the user explicitly wants\r
+           documentation generated for.\r
+        </a:documentation>\r
+        \r
+        <attribute name="name">\r
+           <a:documentation>\r
+              The full name of the package.\r
+           </a:documentation>\r
+           \r
+           <text/>\r
+        </attribute>\r
+      </element>\r
+   </define>\r
+\r
+   <define name="packagedoc-element">\r
+      <element name="gjdoc:packagedoc">\r
+        <a:documentation>\r
+           Corresponds to a package for which XML documentation\r
+           has been generated.  This is not necessarily a package\r
+           the user requested generation for.\r
+        </a:documentation>\r
+\r
+        <ref name="name-attribute"/>\r
+        <ref name="firstSentenceTags-element"/>\r
+\r
+        <zeroOrMore>\r
+           <ref name="containsClass-element"/>\r
+        </zeroOrMore>      \r
+      </element>\r
+   </define>\r
+\r
+   <define name="classdoc-element">\r
+      <element name="gjdoc:classdoc">\r
+        <a:documentation>\r
+           Corresponds to a class for which XML documentation has\r
+           been generated.\r
+        </a:documentation>\r
+              \r
+        <ref name="name-attribute"/>\r
+        <ref name="qualifiedtypename-attribute"/>\r
+\r
+        <optional>\r
+           <a:documentation>\r
+              The following is optional because the root class\r
+              java.lang.Object does not have a superclass. For all\r
+              other classes, this element should be specified.\r
+           </a:documentation>\r
+\r
+           <ref name="superclass-element"/>\r
+        </optional>\r
+\r
+        <zeroOrMore>\r
+           <ref name="implements-element"/>\r
+        </zeroOrMore>\r
+\r
+        <zeroOrMore>\r
+           <ref name="superimplements-element"/>\r
+        </zeroOrMore>\r
+\r
+        <ref name="containingPackage-element"/>\r
+\r
+        <zeroOrMore>\r
+           <ref name="isError-element"/>\r
+        </zeroOrMore>\r
+\r
+        <zeroOrMore>\r
+           <ref name="isException-element"/>\r
+        </zeroOrMore>\r
+\r
+        <zeroOrMore>\r
+           <ref name="isInterface-element"/>\r
+        </zeroOrMore>\r
+\r
+        <zeroOrMore>\r
+           <ref name="containsClass-element"/>\r
+        </zeroOrMore>\r
+      </element>\r
+   </define>\r
+</grammar>\r
diff --git a/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java b/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java
new file mode 100644 (file)
index 0000000..8e137cd
--- /dev/null
@@ -0,0 +1,112 @@
+/* VMCPStringBuilder.java -- Growable strings without locking or copying
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * This class provides VM support for CPStringBuilder
+ * by allowing the package-private constructor
+ * of java.lang.String to be invoked.  The default
+ * implementation uses reflection.  VMs may replace
+ * this class with a more efficient version.
+ */
+final class VMCPStringBuilder
+{
+
+  /**
+   * The package-private constructor for String objects without copying.
+   */
+  private static final Constructor cons;
+
+  static
+  {
+    try
+      {
+       cons = String.class.getDeclaredConstructor(new Class[] { char[].class,
+                                                                Integer.TYPE,
+                                                                Integer.TYPE,
+                                                                Boolean.TYPE });
+       cons.setAccessible(true);
+      }
+    catch (NoSuchMethodException e)
+      {
+       throw (Error) 
+         new InternalError("Could not get no-copy String constructor").initCause(e);
+      }
+  }
+
+  /**
+   * Convert this <code>StringBuilder</code> to a <code>String</code>. The
+   * String is composed of the characters currently in this StringBuilder. Note
+   * that the result is not a copy, so the builder will allocate a new array
+   * if a further write operation is attempted.
+   *
+   * @param value the buffered characters.
+   * @param startIndex the index at which to start taking characters from the buffer.
+   * @param count the number of characters used in the buffer.
+   * @return the characters in this StringBuilder
+   */
+  public static String toString(char[] value, int startIndex, int count)
+  {
+    try
+      {
+       return (String)
+         cons.newInstance(new Object[] { value, Integer.valueOf(startIndex),
+                                         Integer.valueOf(count),
+                                         Boolean.valueOf(true) });
+      }
+    catch (InstantiationException e)
+      {
+       throw (Error) 
+         new InternalError("Could not instantiate no-copy String constructor").initCause(e);
+      }
+    catch (IllegalAccessException e)
+      {
+       throw (Error) 
+         new InternalError("Could not access no-copy String constructor").initCause(e);
+      }
+    catch (InvocationTargetException e)
+      {
+       throw (Error) 
+         new InternalError("Error calling no-copy String constructor").initCause(e);
+      }
+  }
+
+}
index 2a2751765ec86490bd0175f5f76c305e9b948393..9f584af239e004f4c03de71563f08b7296becbae 100644 (file)
@@ -58,10 +58,10 @@ final class VMFile
   {
     if (Configuration.INIT_LOAD_LIBRARY)
       {
-       System.loadLibrary("javaio");
+        System.loadLibrary("javaio");
       }
   }
-
+  
   /*
    * This native method does the actual work of getting the last file
    * modification time.  It also does the existence check to avoid the
@@ -167,19 +167,7 @@ final class VMFile
   /**
    * This methods checks if a directory can be written to.
    */
-  static boolean canWriteDirectory(File dir)
-  {
-    try
-      {
-        String filename = IS_DOS_8_3 ? "tst" : "test-dir-write";
-        File test = File.createTempFile(filename, null, dir);
-        return (test != null && test.delete());
-      }
-    catch (IOException ioe)
-      {
-        return false;
-      }
-  }
+  static native boolean canWriteDirectory(String path);
 
   /**
    * This native method checks file permissions for reading
@@ -198,6 +186,14 @@ final class VMFile
    */
   static native boolean isDirectory(String dirpath);
 
+  /**
+   * This methods checks if a directory can be written to.
+   */
+  static boolean canWriteDirectory(File path)
+  {
+    return canWriteDirectory(path.getAbsolutePath());
+  }
+  
   /**
    * This method returns an array of filesystem roots.  Some operating systems
    * have volume oriented filesystem.  This method provides a mechanism for
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java b/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java
deleted file mode 100644 (file)
index 8c604cc..0000000
+++ /dev/null
@@ -1,420 +0,0 @@
-/* java.lang.reflect.Constructor - reflection of Java constructors
-   Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package java.lang.reflect;
-
-import gnu.java.lang.ClassHelper;
-
-import gnu.java.lang.reflect.MethodSignatureParser;
-
-import java.lang.annotation.Annotation;
-import java.util.Arrays;
-
-/**
- * The Constructor class represents a constructor of a class. It also allows
- * dynamic creation of an object, via reflection. Invocation on Constructor
- * objects knows how to do widening conversions, but throws
- * {@link IllegalArgumentException} if a narrowing conversion would be
- * necessary. You can query for information on this Constructor regardless
- * of location, but construction access may be limited by Java language
- * access controls. If you can't do it in the compiler, you can't normally
- * do it here either.<p>
- *
- * <B>Note:</B> This class returns and accepts types as Classes, even
- * primitive types; there are Class types defined that represent each
- * different primitive type.  They are <code>java.lang.Boolean.TYPE,
- * java.lang.Byte.TYPE,</code>, also available as <code>boolean.class,
- * byte.class</code>, etc.  These are not to be confused with the
- * classes <code>java.lang.Boolean, java.lang.Byte</code>, etc., which are
- * real classes.<p>
- *
- * Also note that this is not a serializable class.  It is entirely feasible
- * to make it serializable using the Externalizable interface, but this is
- * on Sun, not me.
- *
- * @author John Keiser
- * @author Eric Blake <ebb9@email.byu.edu>
- * @see Member
- * @see Class
- * @see java.lang.Class#getConstructor(Class[])
- * @see java.lang.Class#getDeclaredConstructor(Class[])
- * @see java.lang.Class#getConstructors()
- * @see java.lang.Class#getDeclaredConstructors()
- * @since 1.1
- * @status updated to 1.4
- */
-public final class Constructor<T>
-  extends AccessibleObject
-  implements GenericDeclaration, Member
-{
-  private Class<T> clazz;
-  private int slot;
-  
-  private static final int CONSTRUCTOR_MODIFIERS
-    = Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC;
-
-  /**
-   * This class is uninstantiable except from native code.
-   */
-  private Constructor(Class declaringClass,int slot)
-  {
-    this.clazz = declaringClass;
-    this.slot = slot;
-  }
-
-  private Constructor()
-  {
-  }
-
-  /**
-   * Gets the class that declared this constructor.
-   * @return the class that declared this member
-   */
-  public Class<T> getDeclaringClass()
-  {
-    return clazz;
-  }
-
-  /**
-   * Gets the name of this constructor (the non-qualified name of the class
-   * it was declared in).
-   * @return the name of this constructor
-   */
-  public String getName()
-  {
-    return getDeclaringClass().getName();
-  }
-
-  /**
-   * Return the raw modifiers for this constructor.  In particular
-   * this will include the synthetic and varargs bits.
-   * @return the constructor's modifiers
-   */
-  private native int getModifiersInternal();
-
-  /**
-   * Gets the modifiers this constructor uses.  Use the <code>Modifier</code>
-   * class to interpret the values. A constructor can only have a subset of the
-   * following modifiers: public, private, protected.
-   *
-   * @return an integer representing the modifiers to this Member
-   * @see Modifier
-   */
-  public int getModifiers()
-  {
-    return getModifiersInternal() & CONSTRUCTOR_MODIFIERS;
-  }
-
-  /**
-   * Return true if this constructor is synthetic, false otherwise.
-   * A synthetic member is one which is created by the compiler,
-   * and which does not appear in the user's source code.
-   * @since 1.5
-   */
-  public boolean isSynthetic()
-  {
-    return (getModifiersInternal() & Modifier.SYNTHETIC) != 0;
-  }
-
-  /**
-   * Return true if this is a varargs constructor, that is if
-   * the constructor takes a variable number of arguments.
-   * @since 1.5
-   */
-  public boolean isVarArgs()
-  {
-    return (getModifiersInternal() & Modifier.VARARGS) != 0;
-  }
-
-  /**
-   * Get the parameter list for this constructor, in declaration order. If the
-   * constructor takes no parameters, returns a 0-length array (not null).
-   *
-   * @return a list of the types of the constructor's parameters
-   */
-  public native Class<?>[] getParameterTypes();
-
-  /**
-   * Get the exception types this constructor says it throws, in no particular
-   * order. If the constructor has no throws clause, returns a 0-length array
-   * (not null).
-   *
-   * @return a list of the types in the constructor's throws clause
-   */
-  public native Class<?>[] getExceptionTypes();
-
-  /**
-   * Compare two objects to see if they are semantically equivalent.
-   * Two Constructors are semantically equivalent if they have the same
-   * declaring class and the same parameter list.  This ignores different
-   * exception clauses, but since you can't create a Method except through the
-   * VM, this is just the == relation.
-   *
-   * @param o the object to compare to
-   * @return <code>true</code> if they are equal; <code>false</code> if not.
-   */
-  public boolean equals(Object o)
-  {
-    if (!(o instanceof Constructor))
-      return false;
-    Constructor that = (Constructor)o; 
-    if (this.getDeclaringClass() != that.getDeclaringClass())
-      return false;
-    if (!Arrays.equals(this.getParameterTypes(), that.getParameterTypes()))
-      return false;
-    return true;
-  }
-
-  /**
-   * Get the hash code for the Constructor. The Constructor hash code is the
-   * hash code of the declaring class's name.
-   *
-   * @return the hash code for the object
-   */
-  public int hashCode()
-  {
-    return getDeclaringClass().getName().hashCode();
-  }
-
-  /**
-   * Get a String representation of the Constructor. A Constructor's String
-   * representation is "&lt;modifier&gt; &lt;classname&gt;(&lt;paramtypes&gt;)
-   * throws &lt;exceptions&gt;", where everything after ')' is omitted if
-   * there are no exceptions.<br> Example:
-   * <code>public java.io.FileInputStream(java.lang.Runnable)
-   * throws java.io.FileNotFoundException</code>
-   *
-   * @return the String representation of the Constructor
-   */
-  public String toString()
-  {
-    // 128 is a reasonable buffer initial size for constructor
-    StringBuilder sb = new StringBuilder(128);
-    Modifier.toString(getModifiers(), sb).append(' ');
-    sb.append(getDeclaringClass().getName()).append('(');
-    Class[] c = getParameterTypes();
-    if (c.length > 0)
-      {
-        sb.append(ClassHelper.getUserName(c[0]));
-        for (int i = 1; i < c.length; i++)
-          sb.append(',').append(ClassHelper.getUserName(c[i]));
-      }
-    sb.append(')');
-    c = getExceptionTypes();
-    if (c.length > 0)
-      {
-        sb.append(" throws ").append(c[0].getName());
-        for (int i = 1; i < c.length; i++)
-          sb.append(',').append(c[i].getName());
-      }
-    return sb.toString();
-  }
-
-  static <X extends GenericDeclaration>
-  void addTypeParameters(StringBuilder sb, TypeVariable<X>[] typeArgs)
-  {
-    if (typeArgs.length == 0)
-      return;
-    sb.append('<');
-    for (int i = 0; i < typeArgs.length; ++i)
-      {
-        if (i > 0)
-          sb.append(',');
-        sb.append(typeArgs[i]);
-      }
-    sb.append("> ");
-  }
-
-  public String toGenericString()
-  {
-    StringBuilder sb = new StringBuilder(128);
-    Modifier.toString(getModifiers(), sb).append(' ');
-    addTypeParameters(sb, getTypeParameters());
-    sb.append(getDeclaringClass().getName()).append('(');
-    Type[] types = getGenericParameterTypes();
-    if (types.length > 0)
-      {
-        sb.append(types[0]);
-        for (int i = 1; i < types.length; ++i)
-          sb.append(',').append(types[i]);
-      }
-    sb.append(')');
-    types = getGenericExceptionTypes();
-    if (types.length > 0)
-      {
-        sb.append(" throws ").append(types[0]);
-        for (int i = 1; i < types.length; i++)
-          sb.append(',').append(types[i]);
-      }
-    return sb.toString();
-  }
-
-  /**
-   * Create a new instance by invoking the constructor. Arguments are
-   * automatically unwrapped and widened, if needed.<p>
-   *
-   * If this class is abstract, you will get an
-   * <code>InstantiationException</code>. If the constructor takes 0
-   * arguments, you may use null or a 0-length array for <code>args</code>.<p>
-   *
-   * If this Constructor enforces access control, your runtime context is
-   * evaluated, and you may have an <code>IllegalAccessException</code> if
-   * you could not create this object in similar compiled code. If the class
-   * is uninitialized, you trigger class initialization, which may end in a
-   * <code>ExceptionInInitializerError</code>.<p>
-   *
-   * Then, the constructor is invoked. If it completes normally, the return
-   * value will be the new object. If it completes abruptly, the exception is
-   * wrapped in an <code>InvocationTargetException</code>.
-   *
-   * @param args the arguments to the constructor
-   * @return the newly created object
-   * @throws IllegalAccessException if the constructor could not normally be
-   *         called by the Java code (i.e. it is not public)
-   * @throws IllegalArgumentException if the number of arguments is incorrect;
-   *         or if the arguments types are wrong even with a widening
-   *         conversion
-   * @throws InstantiationException if the class is abstract
-   * @throws InvocationTargetException if the constructor throws an exception
-   * @throws ExceptionInInitializerError if construction triggered class
-   *         initialization, which then failed
-   */
-  public T newInstance(Object... args)
-    throws InstantiationException, IllegalAccessException,
-           InvocationTargetException
-  {
-    return constructNative(args, clazz, slot);
-  }
-
-  private native T constructNative(Object[] args, Class declaringClass,
-                                  int slot)
-    throws InstantiationException, IllegalAccessException,
-           InvocationTargetException;
-
-  /**
-   * Returns an array of <code>TypeVariable</code> objects that represents
-   * the type variables declared by this constructor, in declaration order.
-   * An array of size zero is returned if this constructor has no type
-   * variables.
-   *
-   * @return the type variables associated with this constructor.
-   * @throws GenericSignatureFormatError if the generic signature does
-   *         not conform to the format specified in the Virtual Machine
-   *         specification, version 3.
-   * @since 1.5
-   */
-  public TypeVariable<Constructor<T>>[] getTypeParameters()
-  {
-    String sig = getSignature();
-    if (sig == null)
-      return new TypeVariable[0];
-    MethodSignatureParser p = new MethodSignatureParser(this, sig);
-    return p.getTypeParameters();
-  }
-
-  /**
-   * Return the String in the Signature attribute for this constructor. If there
-   * is no Signature attribute, return null.
-   */
-  private native String getSignature();
-
-  /**
-   * Returns an array of <code>Type</code> objects that represents
-   * the exception types declared by this constructor, in declaration order.
-   * An array of size zero is returned if this constructor declares no
-   * exceptions.
-   *
-   * @return the exception types declared by this constructor. 
-   * @throws GenericSignatureFormatError if the generic signature does
-   *         not conform to the format specified in the Virtual Machine
-   *         specification, version 3.
-   * @since 1.5
-   */
-  public Type[] getGenericExceptionTypes()
-  {
-    String sig = getSignature();
-    if (sig == null)
-      return getExceptionTypes();
-    MethodSignatureParser p = new MethodSignatureParser(this, sig);
-    return p.getGenericExceptionTypes();
-  }
-
-  /**
-   * Returns an array of <code>Type</code> objects that represents
-   * the parameter list for this constructor, in declaration order.
-   * An array of size zero is returned if this constructor takes no
-   * parameters.
-   *
-   * @return a list of the types of the constructor's parameters
-   * @throws GenericSignatureFormatError if the generic signature does
-   *         not conform to the format specified in the Virtual Machine
-   *         specification, version 3.
-   * @since 1.5
-   */
-  public Type[] getGenericParameterTypes()
-  {
-    String sig = getSignature();
-    if (sig == null)
-      return getParameterTypes();
-    MethodSignatureParser p = new MethodSignatureParser(this, sig);
-    return p.getGenericParameterTypes();
-  }
-
-  /**
-   * <p>
-   * Return an array of arrays representing the annotations on each
-   * of the constructor's parameters.  The outer array is aligned against
-   * the parameters of the constructors and is thus equal in length to
-   * the number of parameters (thus having a length zero if there are none).
-   * Each array element in the outer array contains an inner array which
-   * holds the annotations.  This array has a length of zero if the parameter
-   * has no annotations.
-   * </p>
-   * <p>
-   * The returned annotations are serialized.  Changing the annotations has
-   * no affect on the return value of future calls to this method.
-   * </p>
-   * 
-   * @return an array of arrays which represents the annotations used on the
-   *         parameters of this constructor.  The order of the array elements
-   *         matches the declaration order of the parameters.
-   * @since 1.5
-   */
-  public native Annotation[][] getParameterAnnotations();
-
-}
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/Field.java b/libjava/classpath/vm/reference/java/lang/reflect/Field.java
deleted file mode 100644 (file)
index 5db1fa3..0000000
+++ /dev/null
@@ -1,661 +0,0 @@
-/* java.lang.reflect.Field - reflection of Java fields
-   Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package java.lang.reflect;
-
-import gnu.java.lang.ClassHelper;
-
-import gnu.java.lang.reflect.FieldSignatureParser;
-
-/**
- * The Field class represents a member variable of a class. It also allows
- * dynamic access to a member, via reflection. This works for both
- * static and instance fields. Operations on Field objects know how to
- * do widening conversions, but throw {@link IllegalArgumentException} if
- * a narrowing conversion would be necessary. You can query for information
- * on this Field regardless of location, but get and set access may be limited
- * by Java language access controls. If you can't do it in the compiler, you
- * can't normally do it here either.<p>
- *
- * <B>Note:</B> This class returns and accepts types as Classes, even
- * primitive types; there are Class types defined that represent each
- * different primitive type.  They are <code>java.lang.Boolean.TYPE,
- * java.lang.Byte.TYPE,</code>, also available as <code>boolean.class,
- * byte.class</code>, etc.  These are not to be confused with the
- * classes <code>java.lang.Boolean, java.lang.Byte</code>, etc., which are
- * real classes.<p>
- *
- * Also note that this is not a serializable class.  It is entirely feasible
- * to make it serializable using the Externalizable interface, but this is
- * on Sun, not me.
- *
- * @author John Keiser
- * @author Eric Blake <ebb9@email.byu.edu>
- * @see Member
- * @see Class
- * @see Class#getField(String)
- * @see Class#getDeclaredField(String)
- * @see Class#getFields()
- * @see Class#getDeclaredFields()
- * @since 1.1
- * @status updated to 1.4
- */
-public final class Field
-extends AccessibleObject implements Member
-{
-  private Class declaringClass;
-  private String name;
-  private int slot;
-
-  private static final int FIELD_MODIFIERS
-    = Modifier.FINAL | Modifier.PRIVATE | Modifier.PROTECTED
-      | Modifier.PUBLIC | Modifier.STATIC | Modifier.TRANSIENT
-      | Modifier.VOLATILE;
-
-  /**
-   * This class is uninstantiable except natively.
-   */
-  private Field(Class declaringClass, String name, int slot)
-  {
-    this.declaringClass = declaringClass;
-    this.name = name;
-    this.slot = slot;
-  }
-
-  /**
-   * Gets the class that declared this field, or the class where this field
-   * is a non-inherited member.
-   * @return the class that declared this member
-   */
-  public Class<?> getDeclaringClass()
-  {
-    return declaringClass;
-  }
-
-  /**
-   * Gets the name of this field.
-   * @return the name of this field
-   */
-  public String getName()
-  {
-    return name;
-  }
-
-  /**
-   * Return the raw modifiers for this field.
-   * @return the field's modifiers
-   */
-  private native int getModifiersInternal();
-
-  /**
-   * Gets the modifiers this field uses.  Use the <code>Modifier</code>
-   * class to interpret the values.  A field can only have a subset of the
-   * following modifiers: public, private, protected, static, final,
-   * transient, and volatile.
-   *
-   * @return an integer representing the modifiers to this Member
-   * @see Modifier
-   */
-  public int getModifiers()
-  {
-    return getModifiersInternal() & FIELD_MODIFIERS;
-  }
-
-  /**
-   * Return true if this field is synthetic, false otherwise.
-   * @since 1.5
-   */
-  public boolean isSynthetic()
-  {
-    return (getModifiersInternal() & Modifier.SYNTHETIC) != 0;
-  }
-
-  /**
-   * Return true if this field represents an enum constant,
-   * false otherwise.
-   * @since 1.5
-   */
-  public boolean isEnumConstant()
-  {
-    return (getModifiersInternal() & Modifier.ENUM) != 0;
-  }
-
-  /**
-   * Gets the type of this field.
-   * @return the type of this field
-   */
-  public native Class<?> getType();
-
-  /**
-   * Compare two objects to see if they are semantically equivalent.
-   * Two Fields are semantically equivalent if they have the same declaring
-   * class, name, and type. Since you can't creat a Field except through
-   * the VM, this is just the == relation.
-   *
-   * @param o the object to compare to
-   * @return <code>true</code> if they are equal; <code>false</code> if not
-   */
-  public boolean equals(Object o)
-  {
-    if (!(o instanceof Field))
-      return false;
-    Field that = (Field)o; 
-    if (this.getDeclaringClass() != that.getDeclaringClass())
-      return false;
-    if (!this.getName().equals(that.getName()))
-      return false;
-    if (this.getType() != that.getType())
-      return false;
-    return true;
-  }
-
-  /**
-   * Get the hash code for the Field. The Field hash code is the hash code
-   * of its name XOR'd with the hash code of its class name.
-   *
-   * @return the hash code for the object.
-   */
-  public int hashCode()
-  {
-    return getDeclaringClass().getName().hashCode() ^ getName().hashCode();
-  }
-
-  /**
-   * Get a String representation of the Field. A Field's String
-   * representation is "&lt;modifiers&gt; &lt;type&gt;
-   * &lt;class&gt;.&lt;fieldname&gt;".<br> Example:
-   * <code>public transient boolean gnu.parse.Parser.parseComplete</code>
-   *
-   * @return the String representation of the Field
-   */
-  public String toString()
-  {
-    // 64 is a reasonable buffer initial size for field
-    StringBuilder sb = new StringBuilder(64);
-    Modifier.toString(getModifiers(), sb).append(' ');
-    sb.append(ClassHelper.getUserName(getType())).append(' ');
-    sb.append(getDeclaringClass().getName()).append('.');
-    sb.append(getName());
-    return sb.toString();
-  }
-
-  public String toGenericString()
-  {
-    StringBuilder sb = new StringBuilder(64);
-    Modifier.toString(getModifiers(), sb).append(' ');
-    sb.append(getGenericType()).append(' ');
-    sb.append(getDeclaringClass().getName()).append('.');
-    sb.append(getName());
-    return sb.toString();
-  }
-
-  /**
-   * Get the value of this Field.  If it is primitive, it will be wrapped
-   * in the appropriate wrapper type (boolean = java.lang.Boolean).<p>
-   *
-   * If the field is static, <code>o</code> will be ignored. Otherwise, if
-   * <code>o</code> is null, you get a <code>NullPointerException</code>,
-   * and if it is incompatible with the declaring class of the field, you
-   * get an <code>IllegalArgumentException</code>.<p>
-   *
-   * Next, if this Field enforces access control, your runtime context is
-   * evaluated, and you may have an <code>IllegalAccessException</code> if
-   * you could not access this field in similar compiled code. If the field
-   * is static, and its class is uninitialized, you trigger class
-   * initialization, which may end in a
-   * <code>ExceptionInInitializerError</code>.<p>
-   *
-   * Finally, the field is accessed, and primitives are wrapped (but not
-   * necessarily in new objects). This method accesses the field of the
-   * declaring class, even if the instance passed in belongs to a subclass
-   * which declares another field to hide this one.
-   *
-   * @param o the object to get the value of this Field from
-   * @return the value of the Field
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if <code>o</code> is not an instance of
-   *         the class or interface declaring this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #getBoolean(Object)
-   * @see #getByte(Object)
-   * @see #getChar(Object)
-   * @see #getShort(Object)
-   * @see #getInt(Object)
-   * @see #getLong(Object)
-   * @see #getFloat(Object)
-   * @see #getDouble(Object)
-   */
-  public native Object get(Object o)
-    throws IllegalAccessException;
-
-  /**
-   * Get the value of this boolean Field. If the field is static,
-   * <code>o</code> will be ignored.
-   *
-   * @param o the object to get the value of this Field from
-   * @return the value of the Field
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a boolean field of
-   *         <code>o</code>, or if <code>o</code> is not an instance of the
-   *         declaring class of this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #get(Object)
-   */
-  public native boolean getBoolean(Object o)
-    throws IllegalAccessException;
-
-  /**
-   * Get the value of this byte Field. If the field is static,
-   * <code>o</code> will be ignored.
-   *
-   * @param o the object to get the value of this Field from
-   * @return the value of the Field
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a byte field of
-   *         <code>o</code>, or if <code>o</code> is not an instance of the
-   *         declaring class of this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #get(Object)
-   */
-  public native byte getByte(Object o)
-    throws IllegalAccessException;
-
-  /**
-   * Get the value of this Field as a char. If the field is static,
-   * <code>o</code> will be ignored.
-   *
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a char field of
-   *         <code>o</code>, or if <code>o</code> is not an instance
-   *         of the declaring class of this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #get(Object)
-   */
-  public native char getChar(Object o)
-    throws IllegalAccessException;
-
-  /**
-   * Get the value of this Field as a short. If the field is static,
-   * <code>o</code> will be ignored.
-   *
-   * @param o the object to get the value of this Field from
-   * @return the value of the Field
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a byte or short
-   *         field of <code>o</code>, or if <code>o</code> is not an instance
-   *         of the declaring class of this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #get(Object)
-   */
-  public native short getShort(Object o)
-    throws IllegalAccessException;
-
-  /**
-   * Get the value of this Field as an int. If the field is static,
-   * <code>o</code> will be ignored.
-   *
-   * @param o the object to get the value of this Field from
-   * @return the value of the Field
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a byte, short, char, or
-   *         int field of <code>o</code>, or if <code>o</code> is not an
-   *         instance of the declaring class of this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #get(Object)
-   */
-  public native int getInt(Object o)
-    throws IllegalAccessException;
-
-  /**
-   * Get the value of this Field as a long. If the field is static,
-   * <code>o</code> will be ignored.
-   *
-   * @param o the object to get the value of this Field from
-   * @return the value of the Field
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a byte, short, char, int,
-   *         or long field of <code>o</code>, or if <code>o</code> is not an
-   *         instance of the declaring class of this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #get(Object)
-   */
-  public native long getLong(Object o)
-    throws IllegalAccessException;
-
-  /**
-   * Get the value of this Field as a float. If the field is static,
-   * <code>o</code> will be ignored.
-   *
-   * @param o the object to get the value of this Field from
-   * @return the value of the Field
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a byte, short, char, int,
-   *         long, or float field of <code>o</code>, or if <code>o</code> is
-   *         not an instance of the declaring class of this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #get(Object)
-   */
-  public native float getFloat(Object o)
-    throws IllegalAccessException;
-
-  /**
-   * Get the value of this Field as a double. If the field is static,
-   * <code>o</code> will be ignored.
-   *
-   * @param o the object to get the value of this Field from
-   * @return the value of the Field
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a byte, short, char, int,
-   *         long, float, or double field of <code>o</code>, or if
-   *         <code>o</code> is not an instance of the declaring class of this
-   *         field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #get(Object)
-   */
-  public native double getDouble(Object o)
-    throws IllegalAccessException;
-
-  /**
-   * Set the value of this Field.  If it is a primitive field, the value
-   * will be unwrapped from the passed object (boolean = java.lang.Boolean).<p>
-   *
-   * If the field is static, <code>o</code> will be ignored. Otherwise, if
-   * <code>o</code> is null, you get a <code>NullPointerException</code>,
-   * and if it is incompatible with the declaring class of the field, you
-   * get an <code>IllegalArgumentException</code>.<p>
-   *
-   * Next, if this Field enforces access control, your runtime context is
-   * evaluated, and you may have an <code>IllegalAccessException</code> if
-   * you could not access this field in similar compiled code. This also
-   * occurs whether or not there is access control if the field is final.
-   * If the field is primitive, and unwrapping your argument fails, you will
-   * get an <code>IllegalArgumentException</code>; likewise, this error
-   * happens if <code>value</code> cannot be cast to the correct object type.
-   * If the field is static, and its class is uninitialized, you trigger class
-   * initialization, which may end in a
-   * <code>ExceptionInInitializerError</code>.<p>
-   *
-   * Finally, the field is set with the widened value. This method accesses
-   * the field of the declaring class, even if the instance passed in belongs
-   * to a subclass which declares another field to hide this one.
-   *
-   * @param o the object to set this Field on
-   * @param value the value to set this Field to
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if <code>value</code> cannot be
-   *         converted by a widening conversion to the underlying type of
-   *         the Field, or if <code>o</code> is not an instance of the class
-   *         declaring this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #setBoolean(Object, boolean)
-   * @see #setByte(Object, byte)
-   * @see #setChar(Object, char)
-   * @see #setShort(Object, short)
-   * @see #setInt(Object, int)
-   * @see #setLong(Object, long)
-   * @see #setFloat(Object, float)
-   * @see #setDouble(Object, double)
-   */
-  public native void set(Object o, Object value)
-    throws IllegalAccessException;
-
-  /**
-   * Set this boolean Field. If the field is static, <code>o</code> will be
-   * ignored.
-   *
-   * @param o the object to set this Field on
-   * @param value the value to set this Field to
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a boolean field, or if
-   *         <code>o</code> is not an instance of the class declaring this
-   *         field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #set(Object, Object)
-   */
-  public native void setBoolean(Object o, boolean value)
-    throws IllegalAccessException;
-
-  /**
-   * Set this byte Field. If the field is static, <code>o</code> will be
-   * ignored.
-   *
-   * @param o the object to set this Field on
-   * @param value the value to set this Field to
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a byte, short, int, long,
-   *         float, or double field, or if <code>o</code> is not an instance
-   *         of the class declaring this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #set(Object, Object)
-   */
-  public native void setByte(Object o, byte value)
-    throws IllegalAccessException;
-
-  /**
-   * Set this char Field. If the field is static, <code>o</code> will be
-   * ignored.
-   *
-   * @param o the object to set this Field on
-   * @param value the value to set this Field to
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a char, int, long,
-   *         float, or double field, or if <code>o</code> is not an instance
-   *         of the class declaring this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #set(Object, Object)
-   */
-  public native void setChar(Object o, char value)
-    throws IllegalAccessException;
-
-  /**
-   * Set this short Field. If the field is static, <code>o</code> will be
-   * ignored.
-   *
-   * @param o the object to set this Field on
-   * @param value the value to set this Field to
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a short, int, long,
-   *         float, or double field, or if <code>o</code> is not an instance
-   *         of the class declaring this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #set(Object, Object)
-   */
-  public native void setShort(Object o, short value)
-    throws IllegalAccessException;
-
-  /**
-   * Set this int Field. If the field is static, <code>o</code> will be
-   * ignored.
-   *
-   * @param o the object to set this Field on
-   * @param value the value to set this Field to
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not an int, long, float, or
-   *         double field, or if <code>o</code> is not an instance of the
-   *         class declaring this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #set(Object, Object)
-   */
-  public native void setInt(Object o, int value)
-    throws IllegalAccessException;
-
-  /**
-   * Set this long Field. If the field is static, <code>o</code> will be
-   * ignored.
-   *
-   * @param o the object to set this Field on
-   * @param value the value to set this Field to
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a long, float, or double
-   *         field, or if <code>o</code> is not an instance of the class
-   *         declaring this field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #set(Object, Object)
-   */
-  public native void setLong(Object o, long value)
-    throws IllegalAccessException;
-
-  /**
-   * Set this float Field. If the field is static, <code>o</code> will be
-   * ignored.
-   *
-   * @param o the object to set this Field on
-   * @param value the value to set this Field to
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a float or long field, or
-   *         if <code>o</code> is not an instance of the class declaring this
-   *         field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #set(Object, Object)
-   */
-  public native void setFloat(Object o, float value)
-    throws IllegalAccessException;
-
-  /**
-   * Set this double Field. If the field is static, <code>o</code> will be
-   * ignored.
-   *
-   * @param o the object to set this Field on
-   * @param value the value to set this Field to
-   * @throws IllegalAccessException if you could not normally access this field
-   *         (i.e. it is not public)
-   * @throws IllegalArgumentException if this is not a double field, or if
-   *         <code>o</code> is not an instance of the class declaring this
-   *         field
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static field triggered
-   *         class initialization, which then failed
-   * @see #set(Object, Object)
-   */
-  public native void setDouble(Object o, double value)
-    throws IllegalAccessException;
-
-  /**
-   * Return the generic type of the field. If the field type is not a generic
-   * type, the method returns the same as <code>getType()</code>.
-   *
-   * @throws GenericSignatureFormatError if the generic signature does
-   *         not conform to the format specified in the Virtual Machine
-   *         specification, version 3.
-   * @since 1.5
-   */
-  public Type getGenericType()
-  {
-    String signature = getSignature();
-    if (signature == null)
-      return getType();
-    FieldSignatureParser p = new FieldSignatureParser(getDeclaringClass(),
-                                                      signature);
-    return p.getFieldType();
-  }
-
-  /**
-   * Return the String in the Signature attribute for this field. If there
-   * is no Signature attribute, return null.
-   */
-  private native String getSignature();
-}
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/Method.java b/libjava/classpath/vm/reference/java/lang/reflect/Method.java
deleted file mode 100644 (file)
index d797d4f..0000000
+++ /dev/null
@@ -1,489 +0,0 @@
-/* java.lang.reflect.Method - reflection of Java methods
-   Copyright (C) 1998, 2001, 2002, 2005, 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package java.lang.reflect;
-
-import gnu.java.lang.ClassHelper;
-
-import gnu.java.lang.reflect.MethodSignatureParser;
-
-import java.lang.annotation.Annotation;
-import java.util.Arrays;
-
-/**
- * The Method class represents a member method of a class. It also allows
- * dynamic invocation, via reflection. This works for both static and
- * instance methods. Invocation on Method objects knows how to do
- * widening conversions, but throws {@link IllegalArgumentException} if
- * a narrowing conversion would be necessary. You can query for information
- * on this Method regardless of location, but invocation access may be limited
- * by Java language access controls. If you can't do it in the compiler, you
- * can't normally do it here either.<p>
- *
- * <B>Note:</B> This class returns and accepts types as Classes, even
- * primitive types; there are Class types defined that represent each
- * different primitive type.  They are <code>java.lang.Boolean.TYPE,
- * java.lang.Byte.TYPE,</code>, also available as <code>boolean.class,
- * byte.class</code>, etc.  These are not to be confused with the
- * classes <code>java.lang.Boolean, java.lang.Byte</code>, etc., which are
- * real classes.<p>
- *
- * Also note that this is not a serializable class.  It is entirely feasible
- * to make it serializable using the Externalizable interface, but this is
- * on Sun, not me.
- *
- * @author John Keiser
- * @author Eric Blake <ebb9@email.byu.edu>
- * @see Member
- * @see Class
- * @see java.lang.Class#getMethod(String,Class[])
- * @see java.lang.Class#getDeclaredMethod(String,Class[])
- * @see java.lang.Class#getMethods()
- * @see java.lang.Class#getDeclaredMethods()
- * @since 1.1
- * @status updated to 1.4
- */
-public final class Method
-extends AccessibleObject implements Member, GenericDeclaration
-{
-  Class declaringClass;
-  String name;
-  int slot;
-
-  private static final int METHOD_MODIFIERS
-    = Modifier.ABSTRACT | Modifier.FINAL | Modifier.NATIVE
-      | Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC
-      | Modifier.STATIC | Modifier.STRICT | Modifier.SYNCHRONIZED;
-
-  /**
-   * This class is uninstantiable.
-   */
-  private Method(Class declaringClass, String name, int slot)
-  {
-    this.declaringClass = declaringClass;
-    this.name = name;
-    this.slot = slot;
-  }
-
-  /**
-   * Gets the class that declared this method, or the class where this method
-   * is a non-inherited member.
-   * @return the class that declared this member
-   */
-  public Class<?> getDeclaringClass()
-  {
-    return declaringClass;
-  }
-
-  /**
-   * Gets the name of this method.
-   * @return the name of this method
-   */
-  public String getName()
-  {
-    return name;
-  }
-
-  /**
-   * Return the raw modifiers for this method.
-   * @return the method's modifiers
-   */
-  private native int getModifiersInternal();
-
-  /**
-   * Gets the modifiers this method uses.  Use the <code>Modifier</code>
-   * class to interpret the values.  A method can only have a subset of the
-   * following modifiers: public, private, protected, abstract, static,
-   * final, synchronized, native, and strictfp.
-   *
-   * @return an integer representing the modifiers to this Member
-   * @see Modifier
-   */
-  public int getModifiers()
-  {
-    return getModifiersInternal() & METHOD_MODIFIERS;
-  }
-
-  /**
-   * Return true if this method is a bridge method.  A bridge method
-   * is generated by the compiler in some situations involving
-   * generics and inheritance.
-   * @since 1.5
-   */
-  public boolean isBridge()
-  {
-    return (getModifiersInternal() & Modifier.BRIDGE) != 0;
-  }
-
-  /**
-   * Return true if this method is synthetic, false otherwise.
-   * @since 1.5
-   */
-  public boolean isSynthetic()
-  {
-    return (getModifiersInternal() & Modifier.SYNTHETIC) != 0;
-  }
-
-  /**
-   * Return true if this is a varargs method, that is if
-   * the method takes a variable number of arguments.
-   * @since 1.5
-   */
-  public boolean isVarArgs()
-  {
-    return (getModifiersInternal() & Modifier.VARARGS) != 0;
-  }
-
-  /**
-   * Gets the return type of this method.
-   * @return the type of this method
-   */
-  public native Class<?> getReturnType();
-
-  /**
-   * Get the parameter list for this method, in declaration order. If the
-   * method takes no parameters, returns a 0-length array (not null).
-   *
-   * @return a list of the types of the method's parameters
-   */
-  public native Class<?>[] getParameterTypes();
-
-  /**
-   * Get the exception types this method says it throws, in no particular
-   * order. If the method has no throws clause, returns a 0-length array
-   * (not null).
-   *
-   * @return a list of the types in the method's throws clause
-   */
-  public native Class<?>[] getExceptionTypes();
-
-  /**
-   * Compare two objects to see if they are semantically equivalent.
-   * Two Methods are semantically equivalent if they have the same declaring
-   * class, name, parameter list, and return type.
-   *
-   * @param o the object to compare to
-   * @return <code>true</code> if they are equal; <code>false</code> if not
-   */
-  public boolean equals(Object o)
-  {
-      // Implementation note:
-      // The following is a correct but possibly slow implementation.
-      //
-      // This class has a private field 'slot' that could be used by
-      // the VM implementation to "link" a particular method to a Class.
-      // In that case equals could be simply implemented as:
-      //
-      // if (o instanceof Method)
-      // {
-      //    Method m = (Method)o;
-      //    return m.declaringClass == this.declaringClass
-      //           && m.slot == this.slot;
-      // }
-      // return false;
-      //
-      // If a VM uses the Method class as their native/internal representation
-      // then just using the following would be optimal:
-      //
-      // return this == o;
-      //
-    if (!(o instanceof Method))
-      return false;
-    Method that = (Method)o;
-    if (this.getDeclaringClass() != that.getDeclaringClass())
-      return false;
-    if (!this.getName().equals(that.getName()))
-      return false;
-    if (this.getReturnType() != that.getReturnType())
-      return false;
-    if (!Arrays.equals(this.getParameterTypes(), that.getParameterTypes()))
-      return false;
-    return true;
-  }
-
-  /**
-   * Get the hash code for the Method. The Method hash code is the hash code
-   * of its name XOR'd with the hash code of its class name.
-   *
-   * @return the hash code for the object
-   */
-  public int hashCode()
-  {
-    return getDeclaringClass().getName().hashCode() ^ getName().hashCode();
-  }
-
-  /**
-   * Get a String representation of the Method. A Method's String
-   * representation is "&lt;modifiers&gt; &lt;returntype&gt;
-   * &lt;methodname&gt;(&lt;paramtypes&gt;) throws &lt;exceptions&gt;", where
-   * everything after ')' is omitted if there are no exceptions.<br> Example:
-   * <code>public static int run(java.lang.Runnable,int)</code>
-   *
-   * @return the String representation of the Method
-   */
-  public String toString()
-  {
-    // 128 is a reasonable buffer initial size for constructor
-    StringBuilder sb = new StringBuilder(128);
-    Modifier.toString(getModifiers(), sb).append(' ');
-    sb.append(ClassHelper.getUserName(getReturnType())).append(' ');
-    sb.append(getDeclaringClass().getName()).append('.');
-    sb.append(getName()).append('(');
-    Class[] c = getParameterTypes();
-    if (c.length > 0)
-      {
-        sb.append(ClassHelper.getUserName(c[0]));
-        for (int i = 1; i < c.length; i++)
-          sb.append(',').append(ClassHelper.getUserName(c[i]));
-      }
-    sb.append(')');
-    c = getExceptionTypes();
-    if (c.length > 0)
-      {
-        sb.append(" throws ").append(c[0].getName());
-        for (int i = 1; i < c.length; i++)
-          sb.append(',').append(c[i].getName());
-      }
-    return sb.toString();
-  }
-
-  public String toGenericString()
-  {
-    // 128 is a reasonable buffer initial size for constructor
-    StringBuilder sb = new StringBuilder(128);
-    Modifier.toString(getModifiers(), sb).append(' ');
-    Constructor.addTypeParameters(sb, getTypeParameters());
-    sb.append(getGenericReturnType()).append(' ');
-    sb.append(getDeclaringClass().getName()).append('.');
-    sb.append(getName()).append('(');
-    Type[] types = getGenericParameterTypes();
-    if (types.length > 0)
-      {
-        sb.append(types[0]);
-        for (int i = 1; i < types.length; i++)
-          sb.append(',').append(types[i]);
-      }
-    sb.append(')');
-    types = getGenericExceptionTypes();
-    if (types.length > 0)
-      {
-        sb.append(" throws ").append(types[0]);
-        for (int i = 1; i < types.length; i++)
-          sb.append(',').append(types[i]);
-      }
-    return sb.toString();
-  }
-
-  /**
-   * Invoke the method. Arguments are automatically unwrapped and widened,
-   * and the result is automatically wrapped, if needed.<p>
-   *
-   * If the method is static, <code>o</code> will be ignored. Otherwise,
-   * the method uses dynamic lookup as described in JLS 15.12.4.4. You cannot
-   * mimic the behavior of nonvirtual lookup (as in super.foo()). This means
-   * you will get a <code>NullPointerException</code> if <code>o</code> is
-   * null, and an <code>IllegalArgumentException</code> if it is incompatible
-   * with the declaring class of the method. If the method takes 0 arguments,
-   * you may use null or a 0-length array for <code>args</code>.<p>
-   *
-   * Next, if this Method enforces access control, your runtime context is
-   * evaluated, and you may have an <code>IllegalAccessException</code> if
-   * you could not acces this method in similar compiled code. If the method
-   * is static, and its class is uninitialized, you trigger class
-   * initialization, which may end in a
-   * <code>ExceptionInInitializerError</code>.<p>
-   *
-   * Finally, the method is invoked. If it completes normally, the return value
-   * will be null for a void method, a wrapped object for a primitive return
-   * method, or the actual return of an Object method. If it completes
-   * abruptly, the exception is wrapped in an
-   * <code>InvocationTargetException</code>.
-   *
-   * @param o the object to invoke the method on
-   * @param args the arguments to the method
-   * @return the return value of the method, wrapped in the appropriate
-   *         wrapper if it is primitive
-   * @throws IllegalAccessException if the method could not normally be called
-   *         by the Java code (i.e. it is not public)
-   * @throws IllegalArgumentException if the number of arguments is incorrect;
-   *         if the arguments types are wrong even with a widening conversion;
-   *         or if <code>o</code> is not an instance of the class or interface
-   *         declaring this method
-   * @throws InvocationTargetException if the method throws an exception
-   * @throws NullPointerException if <code>o</code> is null and this field
-   *         requires an instance
-   * @throws ExceptionInInitializerError if accessing a static method triggered
-   *         class initialization, which then failed
-   */
-  public Object invoke(Object o, Object... args)
-    throws IllegalAccessException, InvocationTargetException
-  {
-    return invokeNative(o, args, declaringClass, slot);
-  }
-
-  /*
-   * NATIVE HELPERS
-   */
-
-  private native Object invokeNative(Object o, Object[] args,
-                                     Class declaringClass, int slot)
-    throws IllegalAccessException, InvocationTargetException;
-
-  /**
-   * Returns an array of <code>TypeVariable</code> objects that represents
-   * the type variables declared by this constructor, in declaration order.
-   * An array of size zero is returned if this class has no type
-   * variables.
-   *
-   * @return the type variables associated with this class. 
-   * @throws GenericSignatureFormatError if the generic signature does
-   *         not conform to the format specified in the Virtual Machine
-   *         specification, version 3.
-   * @since 1.5
-   */
-  public TypeVariable<Method>[] getTypeParameters()
-  {
-    String sig = getSignature();
-    if (sig == null)
-      return new TypeVariable[0];
-    MethodSignatureParser p = new MethodSignatureParser(this, sig);
-    return p.getTypeParameters();
-  }
-
-  /**
-   * Return the String in the Signature attribute for this method. If there
-   * is no Signature attribute, return null.
-   */
-  private native String getSignature();
-
-  /**
-   * Returns an array of <code>Type</code> objects that represents
-   * the exception types declared by this method, in declaration order.
-   * An array of size zero is returned if this method declares no
-   * exceptions.
-   *
-   * @return the exception types declared by this method. 
-   * @throws GenericSignatureFormatError if the generic signature does
-   *         not conform to the format specified in the Virtual Machine
-   *         specification, version 3.
-   * @since 1.5
-   */
-  public Type[] getGenericExceptionTypes()
-  {
-    String sig = getSignature();
-    if (sig == null)
-      return getExceptionTypes();
-    MethodSignatureParser p = new MethodSignatureParser(this, sig);
-    return p.getGenericExceptionTypes();
-  }
-
-  /**
-   * Returns an array of <code>Type</code> objects that represents
-   * the parameter list for this method, in declaration order.
-   * An array of size zero is returned if this method takes no
-   * parameters.
-   *
-   * @return a list of the types of the method's parameters
-   * @throws GenericSignatureFormatError if the generic signature does
-   *         not conform to the format specified in the Virtual Machine
-   *         specification, version 3.
-   * @since 1.5
-   */
-  public Type[] getGenericParameterTypes()
-  {
-    String sig = getSignature();
-    if (sig == null)
-      return getParameterTypes();
-    MethodSignatureParser p = new MethodSignatureParser(this, sig);
-    return p.getGenericParameterTypes();
-  }
-
-  /**
-   * Returns the return type of this method.
-   *
-   * @return the return type of this method
-   * @throws GenericSignatureFormatError if the generic signature does
-   *         not conform to the format specified in the Virtual Machine
-   *         specification, version 3.
-   * @since 1.5
-   */
-  public Type getGenericReturnType()
-  {
-    String sig = getSignature();
-    if (sig == null)
-      return getReturnType();
-    MethodSignatureParser p = new MethodSignatureParser(this, sig);
-    return p.getGenericReturnType();
-  }
-
-  /**
-   * If this method is an annotation method, returns the default
-   * value for the method.  If there is no default value, or if the
-   * method is not a member of an annotation type, returns null.
-   * Primitive types are wrapped.
-   *
-   * @throws TypeNotPresentException if the method returns a Class,
-   * and the class cannot be found
-   *
-   * @since 1.5
-   */
-  public native Object getDefaultValue();
-
-  /**
-   * <p>
-   * Return an array of arrays representing the annotations on each
-   * of the method's parameters.  The outer array is aligned against
-   * the parameters of the method and is thus equal in length to
-   * the number of parameters (thus having a length zero if there are none).
-   * Each array element in the outer array contains an inner array which
-   * holds the annotations.  This array has a length of zero if the parameter
-   * has no annotations.
-   * </p>
-   * <p>
-   * The returned annotations are serialized.  Changing the annotations has
-   * no affect on the return value of future calls to this method.
-   * </p>
-   * 
-   * @return an array of arrays which represents the annotations used on the
-   *         parameters of this method.  The order of the array elements
-   *         matches the declaration order of the parameters.
-   * @since 1.5
-   */
-  public native Annotation[][] getParameterAnnotations();
-
-}
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/VMConstructor.java b/libjava/classpath/vm/reference/java/lang/reflect/VMConstructor.java
new file mode 100644 (file)
index 0000000..dbed903
--- /dev/null
@@ -0,0 +1,169 @@
+/* java.lang.reflect.VMConstructor - VM interface for reflection of Java constructors
+   Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import java.lang.annotation.Annotation;
+
+import java.util.Arrays;
+
+final class VMConstructor
+{
+  Class clazz;
+  int slot;
+
+  /** 
+   * This field allows us to refer back to the main constructor instance.
+   *  It is set by the constructor of Constructor.
+   */
+  Constructor cons;
+
+  VMConstructor(Class clazz, int slot)
+  {
+    this.clazz = clazz;
+    this.slot = slot;
+  }
+
+  public Class getDeclaringClass()
+  {
+    return clazz;
+  }
+
+  /**
+   * Return the raw modifiers for this constructor.  In particular
+   * this will include the synthetic and varargs bits.
+   * @return the constructor's modifiers
+   */
+  native int getModifiersInternal();
+
+  /**
+   * Get the parameter list for this constructor, in declaration order. If the
+   * constructor takes no parameters, returns a 0-length array (not null).
+   *
+   * @return a list of the types of the constructor's parameters
+   */
+  native Class[] getParameterTypes();
+
+  /**
+   * Get the exception types this constructor says it throws, in no particular
+   * order. If the constructor has no throws clause, returns a 0-length array
+   * (not null).
+   *
+   * @return a list of the types in the constructor's throws clause
+   */
+  native Class[] getExceptionTypes();
+
+  native Object construct(Object[] args)
+    throws InstantiationException, IllegalAccessException,
+    InvocationTargetException;
+
+  /**
+   * Return the String in the Signature attribute for this constructor. If there
+   * is no Signature attribute, return null.
+   */
+  native String getSignature();
+  
+  /**
+   * <p>
+   * Return an array of arrays representing the annotations on each
+   * of the constructor's parameters.  The outer array is aligned against
+   * the parameters of the constructors and is thus equal in length to
+   * the number of parameters (thus having a length zero if there are none).
+   * Each array element in the outer array contains an inner array which
+   * holds the annotations.  This array has a length of zero if the parameter
+   * has no annotations.
+   * </p>
+   * <p>
+   * The returned annotations are serialized.  Changing the annotations has
+   * no affect on the return value of future calls to this method.
+   * </p>
+   * 
+   * @return an array of arrays which represents the annotations used on the
+   *         parameters of this constructor.  The order of the array elements
+   *         matches the declaration order of the parameters.
+   * @since 1.5
+   */
+  native Annotation[][] getParameterAnnotations();
+
+  /**
+   * Compare two objects to see if they are semantically equivalent.
+   * Two Constructors are semantically equivalent if they have the same
+   * declaring class and the same parameter list.  This ignores different
+   * exception clauses, but since you can't create a Method except through the
+   * VM, this is just the == relation.
+   *
+   * @param o the object to compare to
+   * @return <code>true</code> if they are equal; <code>false</code> if not.
+   */
+  public boolean equals(Object o)
+  {
+    if (!(o instanceof Constructor))
+      return false;
+    Constructor that = (Constructor)o; 
+    if (clazz != that.getDeclaringClass())
+      return false;
+    if (!Arrays.equals(getParameterTypes(), that.getParameterTypes()))
+      return false;
+    return true;
+  }
+
+  /**
+   * Returns the element's annotation for the specified annotation type,
+   * or <code>null</code> if no such annotation exists.
+   *
+   * @param annotationClass the type of annotation to look for.
+   * @return this element's annotation for the specified type, or
+   *         <code>null</code> if no such annotation exists.
+   * @throws NullPointerException if the annotation class is <code>null</code>.
+   */
+  native Annotation getAnnotation(Class annotationClass);
+
+  /**
+   * Returns all annotations directly defined by the element.  If there are
+   * no annotations directly associated with the element, then a zero-length
+   * array will be returned.  The returned array may be modified by the client
+   * code, but this will have no effect on the annotation content of this
+   * class, and hence no effect on the return value of this method for
+   * future callers.
+   *
+   * @return the annotations directly defined by the element.
+   * @since 1.5
+   */
+  native Annotation[] getDeclaredAnnotations();
+
+}
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/VMField.java b/libjava/classpath/vm/reference/java/lang/reflect/VMField.java
new file mode 100644 (file)
index 0000000..53f3847
--- /dev/null
@@ -0,0 +1,549 @@
+/* java.lang.reflect.Field - VM interface for reflection of Java fields
+   Copyright (C) 1998, 2001, 2005, 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import java.lang.annotation.Annotation;
+
+final class VMField
+{
+  Class clazz;
+  String name;
+  int slot;
+  
+  /** 
+   * This field allows us to refer back to the main constructor instance.
+   *  It is set by the constructor of Field.
+   */
+  Field f;
+
+  VMField(Class clazz, String name, int slot)
+  {
+    this.clazz = clazz;
+    this.name = name;
+    this.slot = slot;
+  }
+
+  public Class getDeclaringClass()
+  {
+    return clazz;
+  }
+
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * Return the raw modifiers for this field.
+   * @return the field's modifiers
+   */
+  native int getModifiersInternal();
+
+  /**
+   * Gets the type of this field.
+   * @return the type of this field
+   */
+  native Class getType();
+
+  /**
+   * Get the value of this Field.  If it is primitive, it will be wrapped
+   * in the appropriate wrapper type (boolean = java.lang.Boolean).<p>
+   *
+   * If the field is static, <code>o</code> will be ignored. Otherwise, if
+   * <code>o</code> is null, you get a <code>NullPointerException</code>,
+   * and if it is incompatible with the declaring class of the field, you
+   * get an <code>IllegalArgumentException</code>.<p>
+   *
+   * Next, if this Field enforces access control, your runtime context is
+   * evaluated, and you may have an <code>IllegalAccessException</code> if
+   * you could not access this field in similar compiled code. If the field
+   * is static, and its class is uninitialized, you trigger class
+   * initialization, which may end in a
+   * <code>ExceptionInInitializerError</code>.<p>
+   *
+   * Finally, the field is accessed, and primitives are wrapped (but not
+   * necessarily in new objects). This method accesses the field of the
+   * declaring class, even if the instance passed in belongs to a subclass
+   * which declares another field to hide this one.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if <code>o</code> is not an instance of
+   *         the class or interface declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #getBoolean(Object)
+   * @see #getByte(Object)
+   * @see #getChar(Object)
+   * @see #getShort(Object)
+   * @see #getInt(Object)
+   * @see #getLong(Object)
+   * @see #getFloat(Object)
+   * @see #getDouble(Object)
+   */
+  native Object get(Object o)
+    throws IllegalAccessException;
+
+  /**
+   * Get the value of this boolean Field. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a boolean field of
+   *         <code>o</code>, or if <code>o</code> is not an instance of the
+   *         declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  native boolean getBoolean(Object o)
+    throws IllegalAccessException;
+
+  /**
+   * Get the value of this byte Field. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte field of
+   *         <code>o</code>, or if <code>o</code> is not an instance of the
+   *         declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  native byte getByte(Object o)
+    throws IllegalAccessException;
+
+  /**
+   * Get the value of this Field as a char. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a char field of
+   *         <code>o</code>, or if <code>o</code> is not an instance
+   *         of the declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  native char getChar(Object o)
+    throws IllegalAccessException;
+
+  /**
+   * Get the value of this Field as a short. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte or short
+   *         field of <code>o</code>, or if <code>o</code> is not an instance
+   *         of the declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  native short getShort(Object o)
+    throws IllegalAccessException;
+
+  /**
+   * Get the value of this Field as an int. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte, short, char, or
+   *         int field of <code>o</code>, or if <code>o</code> is not an
+   *         instance of the declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  native int getInt(Object o)
+    throws IllegalAccessException;
+
+  /**
+   * Get the value of this Field as a long. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte, short, char, int,
+   *         or long field of <code>o</code>, or if <code>o</code> is not an
+   *         instance of the declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  native long getLong(Object o)
+    throws IllegalAccessException;
+
+  /**
+   * Get the value of this Field as a float. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte, short, char, int,
+   *         long, or float field of <code>o</code>, or if <code>o</code> is
+   *         not an instance of the declaring class of this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  native float getFloat(Object o)
+    throws IllegalAccessException;
+
+  /**
+   * Get the value of this Field as a double. If the field is static,
+   * <code>o</code> will be ignored.
+   *
+   * @param o the object to get the value of this Field from
+   * @return the value of the Field
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte, short, char, int,
+   *         long, float, or double field of <code>o</code>, or if
+   *         <code>o</code> is not an instance of the declaring class of this
+   *         field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #get(Object)
+   */
+  native double getDouble(Object o)
+    throws IllegalAccessException;
+
+  /**
+   * Set the value of this Field.  If it is a primitive field, the value
+   * will be unwrapped from the passed object (boolean = java.lang.Boolean).<p>
+   *
+   * If the field is static, <code>o</code> will be ignored. Otherwise, if
+   * <code>o</code> is null, you get a <code>NullPointerException</code>,
+   * and if it is incompatible with the declaring class of the field, you
+   * get an <code>IllegalArgumentException</code>.<p>
+   *
+   * Next, if this Field enforces access control, your runtime context is
+   * evaluated, and you may have an <code>IllegalAccessException</code> if
+   * you could not access this field in similar compiled code. This also
+   * occurs whether or not there is access control if the field is final.
+   * If the field is primitive, and unwrapping your argument fails, you will
+   * get an <code>IllegalArgumentException</code>; likewise, this error
+   * happens if <code>value</code> cannot be cast to the correct object type.
+   * If the field is static, and its class is uninitialized, you trigger class
+   * initialization, which may end in a
+   * <code>ExceptionInInitializerError</code>.<p>
+   *
+   * Finally, the field is set with the widened value. This method accesses
+   * the field of the declaring class, even if the instance passed in belongs
+   * to a subclass which declares another field to hide this one.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if <code>value</code> cannot be
+   *         converted by a widening conversion to the underlying type of
+   *         the Field, or if <code>o</code> is not an instance of the class
+   *         declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #setBoolean(Object, boolean)
+   * @see #setByte(Object, byte)
+   * @see #setChar(Object, char)
+   * @see #setShort(Object, short)
+   * @see #setInt(Object, int)
+   * @see #setLong(Object, long)
+   * @see #setFloat(Object, float)
+   * @see #setDouble(Object, double)
+   */
+  native void set(Object o, Object value)
+    throws IllegalAccessException;
+
+  /**
+   * Set this boolean Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a boolean field, or if
+   *         <code>o</code> is not an instance of the class declaring this
+   *         field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  native void setBoolean(Object o, boolean value)
+    throws IllegalAccessException;
+
+  /**
+   * Set this byte Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a byte, short, int, long,
+   *         float, or double field, or if <code>o</code> is not an instance
+   *         of the class declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  native void setByte(Object o, byte value)
+    throws IllegalAccessException;
+
+  /**
+   * Set this char Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a char, int, long,
+   *         float, or double field, or if <code>o</code> is not an instance
+   *         of the class declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  native void setChar(Object o, char value)
+    throws IllegalAccessException;
+
+  /**
+   * Set this short Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a short, int, long,
+   *         float, or double field, or if <code>o</code> is not an instance
+   *         of the class declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  native void setShort(Object o, short value)
+    throws IllegalAccessException;
+
+  /**
+   * Set this int Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not an int, long, float, or
+   *         double field, or if <code>o</code> is not an instance of the
+   *         class declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  native void setInt(Object o, int value)
+    throws IllegalAccessException;
+
+  /**
+   * Set this long Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a long, float, or double
+   *         field, or if <code>o</code> is not an instance of the class
+   *         declaring this field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  native void setLong(Object o, long value)
+    throws IllegalAccessException;
+
+  /**
+   * Set this float Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a float or long field, or
+   *         if <code>o</code> is not an instance of the class declaring this
+   *         field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  native void setFloat(Object o, float value)
+    throws IllegalAccessException;
+
+  /**
+   * Set this double Field. If the field is static, <code>o</code> will be
+   * ignored.
+   *
+   * @param o the object to set this Field on
+   * @param value the value to set this Field to
+   * @throws IllegalAccessException if you could not normally access this field
+   *         (i.e. it is not public)
+   * @throws IllegalArgumentException if this is not a double field, or if
+   *         <code>o</code> is not an instance of the class declaring this
+   *         field
+   * @throws NullPointerException if <code>o</code> is null and this field
+   *         requires an instance
+   * @throws ExceptionInInitializerError if accessing a static field triggered
+   *         class initialization, which then failed
+   * @see #set(Object, Object)
+   */
+  native void setDouble(Object o, double value)
+    throws IllegalAccessException;
+
+  /**
+   * Return the String in the Signature attribute for this field. If there
+   * is no Signature attribute, return null.
+   *
+   */
+  native String getSignature();
+
+  /**
+   * Compare two objects to see if they are semantically equivalent.
+   * Two Fields are semantically equivalent if they have the same declaring
+   * class, name, and type. Since you can't create a Field except through
+   * the VM, this is just the == relation.
+   *
+   * @param o the object to compare to
+   * @return <code>true</code> if they are equal; <code>false</code> if not
+   */
+  public boolean equals(Object o)
+  {
+    if (!(o instanceof Field))
+      return false;
+    Field that = (Field)o; 
+    if (clazz != that.getDeclaringClass())
+      return false;
+    if (!name.equals(that.getName()))
+      return false;
+    if (getType() != that.getType())
+      return false;
+    return true;
+  }
+
+  /**
+   * Returns the element's annotation for the specified annotation type,
+   * or <code>null</code> if no such annotation exists.
+   *
+   * @param annotationClass the type of annotation to look for.
+   * @return this element's annotation for the specified type, or
+   *         <code>null</code> if no such annotation exists.
+   * @throws NullPointerException if the annotation class is <code>null</code>.
+   */
+  native Annotation getAnnotation(Class annotationClass);
+
+  /**
+   * Returns all annotations directly defined by the element.  If there are
+   * no annotations directly associated with the element, then a zero-length
+   * array will be returned.  The returned array may be modified by the client
+   * code, but this will have no effect on the annotation content of this
+   * class, and hence no effect on the return value of this method for
+   * future callers.
+   *
+   * @return the annotations directly defined by the element.
+   * @since 1.5
+   */
+  native Annotation[] getDeclaredAnnotations();
+
+}
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/VMMethod.java b/libjava/classpath/vm/reference/java/lang/reflect/VMMethod.java
new file mode 100644 (file)
index 0000000..f8574cd
--- /dev/null
@@ -0,0 +1,209 @@
+/* java.lang.reflect.VMMethod - VM interface for reflection of Java methods
+   Copyright (C) 1998, 2001, 2002, 2005, 2007, 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import java.lang.annotation.Annotation;
+
+import java.util.Arrays;
+
+final class VMMethod
+{
+  Class clazz;
+  String name;
+  int slot;
+
+  /** 
+   * This field allows us to refer back to the main constructor instance.
+   *  It is set by the constructor of Field.
+   */
+  Method m;
+
+  public Class getDeclaringClass()
+  {
+    return clazz;
+  }
+
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * Return the raw modifiers for this method.
+   * @return the method's modifiers
+   */
+  native int getModifiersInternal();
+
+  /**
+   * Gets the return type of this method.
+   * @return the type of this method
+   */
+  native Class getReturnType();
+
+  /**
+   * Get the parameter list for this method, in declaration order. If the
+   * method takes no parameters, returns a 0-length array (not null).
+   *
+   * @return a list of the types of the method's parameters
+   */
+  native Class[] getParameterTypes();
+
+  /**
+   * Get the exception types this method says it throws, in no particular
+   * order. If the method has no throws clause, returns a 0-length array
+   * (not null).
+   *
+   * @return a list of the types in the method's throws clause
+   */
+  native Class[] getExceptionTypes();
+
+  native Object invoke(Object o, Object[] args)
+    throws IllegalAccessException, InvocationTargetException;
+
+  /**
+   * Return the String in the Signature attribute for this method. If there
+   * is no Signature attribute, return null.
+   */
+  native String getSignature();
+
+  /**
+   * If this method is an annotation method, returns the default
+   * value for the method.  If there is no default value, or if the
+   * method is not a member of an annotation type, returns null.
+   * Primitive types are wrapped.
+   *
+   * @throws TypeNotPresentException if the method returns a Class,
+   * and the class cannot be found
+   *
+   * @since 1.5
+   */
+  native Object getDefaultValue();
+
+  /**
+   * <p>
+   * Return an array of arrays representing the annotations on each
+   * of the method's parameters.  The outer array is aligned against
+   * the parameters of the method and is thus equal in length to
+   * the number of parameters (thus having a length zero if there are none).
+   * Each array element in the outer array contains an inner array which
+   * holds the annotations.  This array has a length of zero if the parameter
+   * has no annotations.
+   * </p>
+   * <p>
+   * The returned annotations are serialized.  Changing the annotations has
+   * no affect on the return value of future calls to this method.
+   * </p>
+   * 
+   * @return an array of arrays which represents the annotations used on the
+   *         parameters of this method.  The order of the array elements
+   *         matches the declaration order of the parameters.
+   * @since 1.5
+   */
+  native Annotation[][] getParameterAnnotations();
+
+  /**
+   * Compare two objects to see if they are semantically equivalent.
+   * Two Methods are semantically equivalent if they have the same declaring
+   * class, name, parameter list, and return type.
+   *
+   * @param o the object to compare to
+   * @return <code>true</code> if they are equal; <code>false</code> if not
+   */
+  public boolean equals(Object o)
+  {
+      // Implementation note:
+      // The following is a correct but possibly slow implementation.
+      //
+      // This class has a private field 'slot' that could be used by
+      // the VM implementation to "link" a particular method to a Class.
+      // In that case equals could be simply implemented as:
+      //
+      // if (o instanceof Method)
+      // {
+      //    Method m = (Method)o;
+      //    return m.declaringClass == this.declaringClass
+      //           && m.slot == this.slot;
+      // }
+      // return false;
+      //
+      // If a VM uses the Method class as their native/internal representation
+      // then just using the following would be optimal:
+      //
+      // return this == o;
+      //
+    if (!(o instanceof Method))
+      return false;
+    Method that = (Method)o;
+    if (clazz != that.getDeclaringClass())
+      return false;
+    if (!name.equals(that.getName()))
+      return false;
+    if (getReturnType() != that.getReturnType())
+      return false;
+    if (!Arrays.equals(getParameterTypes(), that.getParameterTypes()))
+      return false;
+    return true;
+  }
+
+  /**
+   * Returns the element's annotation for the specified annotation type,
+   * or <code>null</code> if no such annotation exists.
+   *
+   * @param annotationClass the type of annotation to look for.
+   * @return this element's annotation for the specified type, or
+   *         <code>null</code> if no such annotation exists.
+   * @throws NullPointerException if the annotation class is <code>null</code>.
+   */
+  native Annotation getAnnotation(Class annotationClass);
+
+  /**
+   * Returns all annotations directly defined by the element.  If there are
+   * no annotations directly associated with the element, then a zero-length
+   * array will be returned.  The returned array may be modified by the client
+   * code, but this will have no effect on the annotation content of this
+   * class, and hence no effect on the return value of this method for
+   * future callers.
+   *
+   * @return the annotations directly defined by the element.
+   * @since 1.5
+   */
+  native Annotation[] getDeclaredAnnotations();
+
+}
+
index e28e6161a58eda20cbfacf9605d8a24dc556de5e..63a29b16ba52e67b419b131e1c7d0705c3abda1b 100644 (file)
@@ -1,5 +1,5 @@
 /* VMNetworkInterface.java --
-   Copyright (C) 2005  Free Software Foundation, Inc.
+   Copyright (C) 2005, 2008  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -57,12 +57,12 @@ import java.util.Set;
 final class VMNetworkInterface
 {
   String name;
-  Set<InetAddress> addresses;
+  Set addresses;
 
   VMNetworkInterface(String name)
   {
     this.name = name;
-    addresses = new HashSet<InetAddress>();
+    addresses = new HashSet();
   }
   
   /**
@@ -71,7 +71,7 @@ final class VMNetworkInterface
    */
   public VMNetworkInterface()
   {
-    addresses = new HashSet<InetAddress>();
+    addresses = new HashSet();
     try
       {
         addresses.add(InetAddress.getByName("0.0.0.0"));
@@ -119,4 +119,13 @@ final class VMNetworkInterface
     else
       throw new SocketException("invalid interface address");
   }
+
+  static native boolean isUp(String name) throws SocketException;
+
+  static native boolean isLoopback(String name) throws SocketException;
+
+  static native boolean isPointToPoint(String name) throws SocketException;
+
+  static native boolean supportsMulticast(String name) throws SocketException;
+
 }
index a5071029b44515662c83d67e298ac645c8b1f028..ffee0691ea13122285fe74e996065135cd75e3ae 100755 (executable)
@@ -459,7 +459,7 @@ ac_includes_default="\
 #endif"
 
 ac_subdirs_all="$ac_subdirs_all classpath libltdl"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJ_LD_SYMBOLIC_FUNCTIONS LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJ_FOR_ECJX GCJH host_exeext INCLTDL LIBLTDL DIRLTDL LIBTOOL SED EGREP FGREP GREP DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CPP CPPFLAGS CXXCPP GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME SUPPRESS_LIBGCJ_BC_TRUE SUPPRESS_LIBGCJ_BC_FALSE BUILD_LIBGCJ_REDUCED_REFLECTION_TRUE BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE INTERPRETER INTERPRETER_TRUE INTERPRETER_FALSE LIBFFI LIBFFIINCS PLATFORM USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava extra_gij_ldflags extra_ldflags LIBSTDCXXSPEC LIBGCJTESTSPEC GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE ENABLE_SHARED_TRUE ENABLE_SHARED_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION dbexecdir gcjsubdir gxx_include_dir libstdcxx_incdir PERL SYSDEP_SOURCES ANONVERSCRIPT_TRUE ANONVERSCRIPT_FALSE LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here python_mod_dir python_mod_dir_expanded MAKE INSTALL_AOT_RPM_TRUE INSTALL_AOT_RPM_FALSE CREATE_JAVA_HOME_TRUE CREATE_JAVA_HOME_FALSE gcc_suffix JAVA_VERSION BUILD_VERSION JVM_ROOT_DIR JVM_JAR_ROOT_DIR JVM_JAR_DIR JRE_DIR SDK_DIR JRE_LNK SDK_LNK SDK_BIN_DIR SDK_LIB_DIR SDK_INCLUDE_DIR JRE_BIN_DIR JRE_LIB_DIR GCJ_BIN_DIR CPU OS LIBDIR LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs ANTLR_JAR CREATE_GJDOC_TRUE CREATE_GJDOC_FALSE JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJ_LD_SYMBOLIC_FUNCTIONS LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJ_FOR_ECJX GCJH host_exeext INCLTDL LIBLTDL DIRLTDL LIBTOOL SED EGREP FGREP GREP DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CPP CPPFLAGS CXXCPP GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME SUPPRESS_LIBGCJ_BC_TRUE SUPPRESS_LIBGCJ_BC_FALSE BUILD_LIBGCJ_REDUCED_REFLECTION_TRUE BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE INTERPRETER INTERPRETER_TRUE INTERPRETER_FALSE LIBFFI LIBFFIINCS PLATFORM USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava extra_gij_ldflags extra_ldflags LIBSTDCXXSPEC LIBGCJTESTSPEC GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE ENABLE_SHARED_TRUE ENABLE_SHARED_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION dbexecdir gcjsubdir gxx_include_dir libstdcxx_incdir PERL SYSDEP_SOURCES ANONVERSCRIPT_TRUE ANONVERSCRIPT_FALSE LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here python_mod_dir python_mod_dir_expanded MAKE INSTALL_AOT_RPM_TRUE INSTALL_AOT_RPM_FALSE CREATE_JAVA_HOME_TRUE CREATE_JAVA_HOME_FALSE gcc_suffix JAVA_VERSION BUILD_VERSION JVM_ROOT_DIR JVM_JAR_ROOT_DIR JVM_JAR_DIR JRE_DIR SDK_DIR JRE_LNK SDK_LNK SDK_BIN_DIR SDK_LIB_DIR SDK_INCLUDE_DIR JRE_BIN_DIR JRE_LIB_DIR GCJ_BIN_DIR CPU OS LIBDIR LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 ac_pwd=`pwd`
 
@@ -1017,6 +1017,8 @@ Optional Features:
                           in a compiler-specific directory
   --enable-plugin         build gcjwebplugin web browser plugin
   --enable-gconf-peer     compile GConf native peers for util.preferences
+  --disable-gjdoc         compile GJDoc (disabled by --disable-gjdoc)
+                          default=yes
   --enable-java-maintainer-mode
                           allow rebuilding of .class and .h files
   --disable-dependency-tracking  speeds up one-time build
@@ -1063,6 +1065,7 @@ Optional Packages:
                           configure in a subdirectory
   --with-cross-host=HOST  configure with a cross compiler from HOST
   --with-newlib           configure with newlib
+  --with-antlr-jar=file   Use ANTLR from the specified jar file
   --with-escher=ABS.PATH  specify path to escher dir or JAR for X peers
   --with-pic              try to use only PIC/non-PIC objects [default=use
                           both]
@@ -1079,6 +1082,7 @@ Optional Packages:
   --with-gnu-ld           assume the C compiler uses GNU ld default=no
   --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
   --without-libiconv-prefix     don't search for libiconv in includedir and libdir
+  --with-system-libunwind use installed libunwind
   --with-python-dir       the location to install Python modules. This path
                           should NOT include the prefix.
   --with-gcc-suffix       the GCC tool suffix (defaults to empty string)
@@ -1870,6 +1874,89 @@ else
 
 fi;
 
+
+# Check whether --with-antlr-jar or --without-antlr-jar was given.
+if test "${with_antlr_jar+set}" = set; then
+  withval="$with_antlr_jar"
+
+             ANTLR_JAR=$withval
+
+else
+
+             ANTLR_JAR=
+
+fi;
+
+echo "$as_me:$LINENO: checking for antlr.jar" >&5
+echo $ECHO_N "checking for antlr.jar... $ECHO_C" >&6
+if test "x$ANTLR_JAR" = x; then
+    for antlr_lib_home in `ls -d /usr/local/share/antlr* 2> /dev/null` \
+       /usr/share/antlr/lib /usr/share/java /usr/lib;
+    do
+       if test -f "$antlr_lib_home/antlr.jar"; then
+           # FIXME: version check for antlr needed without using a VM
+           ANTLR_JAR="$antlr_lib_home/antlr.jar"
+           break
+       fi
+    done
+    if test "x$ANTLR_JAR" = x; then
+       echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+    else
+       echo "$as_me:$LINENO: result: $ANTLR_JAR" >&5
+echo "${ECHO_T}$ANTLR_JAR" >&6
+    fi
+else
+    if test -f "${ANTLR_JAR}"; then
+       echo "$as_me:$LINENO: result: $ANTLR_JAR" >&5
+echo "${ECHO_T}$ANTLR_JAR" >&6
+    else
+       { { echo "$as_me:$LINENO: error: antlr jar file not found: $ANTLR_JAR" >&5
+echo "$as_me: error: antlr jar file not found: $ANTLR_JAR" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+fi
+
+
+# Check whether --enable-gjdoc or --disable-gjdoc was given.
+if test "${enable_gjdoc+set}" = set; then
+  enableval="$enable_gjdoc"
+  case "${enableval}" in
+                yes) BUILD_GJDOC=yes ;;
+                no) BUILD_GJDOC=no ;;
+                *) BUILD_GJDOC=yes ;;
+              esac
+else
+  BUILD_GJDOC=maybe
+fi;
+
+echo "$as_me:$LINENO: checking wether to build gjdoc" >&5
+echo $ECHO_N "checking wether to build gjdoc... $ECHO_C" >&6
+if test "x$BUILD_GJDOC" = xmaybe; then
+    if test -f "${ANTLR_JAR}"; then
+       BUILD_GJDOC=yes
+       echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+    else
+       BUILD_GJDOC=no
+       echo "$as_me:$LINENO: result: no, antlr.jar not found" >&5
+echo "${ECHO_T}no, antlr.jar not found" >&6
+    fi
+else
+    echo "$as_me:$LINENO: result: $BUILD_GJDOC" >&5
+echo "${ECHO_T}$BUILD_GJDOC" >&6
+fi
+
+
+if test "x${BUILD_GJDOC}" = xyes; then
+  CREATE_GJDOC_TRUE=
+  CREATE_GJDOC_FALSE='#'
+else
+  CREATE_GJDOC_TRUE='#'
+  CREATE_GJDOC_FALSE=
+fi
+
+
 # Check whether --enable-java-maintainer-mode or --disable-java-maintainer-mode was given.
 if test "${enable_java_maintainer_mode+set}" = set; then
   enableval="$enable_java_maintainer_mode"
@@ -5416,7 +5503,6 @@ test -f libgcj.spec || touch libgcj.spec
 
 # Set up to configure Classpath.
 # FIXME: no supported way to pass args in autoconf.
-ac_configure_args="$ac_configure_args --with-fastjar=$JAR"
 # Disable tool wrappers to avoid ltdl.h configure check.
 ac_configure_args="$ac_configure_args --disable-tool-wrappers"
 ac_configure_args="$ac_configure_args --disable-load-library"
@@ -5456,6 +5542,9 @@ echo "$as_me: error: Please supply an absolute path to the Escher library" >&2;}
     ac_configure_args="$ac_configure_args --with-escher=$with_escher"
   fi
 fi
+if test "x$BUILD_GJDOC" = xno; then
+  ac_configure_args="$ac_configure_args --disable-gjdoc"
+fi
 # -Werror causes unavoidable problems in code using alsa.
 ac_configure_args="$ac_configure_args --disable-regen-headers"
 ac_configure_args="$ac_configure_args --disable-Werror"
@@ -5914,13 +6003,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5917: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:6006: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5920: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:6009: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5923: output\"" >&5)
+  (eval echo "\"\$as_me:6012: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -7067,7 +7156,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 7070 "configure"' > conftest.$ac_ext
+  echo '#line 7159 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -9450,11 +9539,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9453: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9542: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9457: \$? = $ac_status" >&5
+   echo "$as_me:9546: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9789,11 +9878,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9792: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9881: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9796: \$? = $ac_status" >&5
+   echo "$as_me:9885: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9894,11 +9983,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9897: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9986: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9901: \$? = $ac_status" >&5
+   echo "$as_me:9990: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9949,11 +10038,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9952: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:10041: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9956: \$? = $ac_status" >&5
+   echo "$as_me:10045: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -12801,7 +12890,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12804 "configure"
+#line 12893 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12897,7 +12986,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12900 "configure"
+#line 12989 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -14923,11 +15012,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14926: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15015: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14930: \$? = $ac_status" >&5
+   echo "$as_me:15019: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -15022,11 +15111,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15025: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15114: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15029: \$? = $ac_status" >&5
+   echo "$as_me:15118: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15074,11 +15163,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15077: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15166: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15081: \$? = $ac_status" >&5
+   echo "$as_me:15170: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -16476,11 +16565,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16479: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16568: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16483: \$? = $ac_status" >&5
+   echo "$as_me:16572: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -16809,11 +16898,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16812: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16901: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16816: \$? = $ac_status" >&5
+   echo "$as_me:16905: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -16908,11 +16997,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16911: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17000: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16915: \$? = $ac_status" >&5
+   echo "$as_me:17004: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -16960,11 +17049,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16963: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17052: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16967: \$? = $ac_status" >&5
+   echo "$as_me:17056: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -18650,7 +18739,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
   :
 else
   cat > conftest.$ac_ext << EOF
-#line 18653 "configure"
+#line 18742 "configure"
 struct S { ~S(); };
 void bar();
 void foo()
@@ -25419,6 +25508,7 @@ if test ! -f gnu/classpath/Configuration.java; then
       -e "s,@JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@,false," \
       -e "s,@GTK_CAIRO_ENABLED@,false," \
       -e "s,@ECJ_JAR@,," \
+      -e "s,@WANT_NATIVE_BIG_INTEGER@,false," \
        < $srcdir/classpath/gnu/classpath/Configuration.java.in \
        > gnu/classpath/Configuration.java
   # We do not want to redirect the output of the grep below to /dev/null,
@@ -27754,91 +27844,35 @@ _ACEOF
 # For _Unwind_GetIPInfo.
 
 
+# Check whether --with-system-libunwind or --without-system-libunwind was given.
+if test "${with_system_libunwind+set}" = set; then
+  withval="$with_system_libunwind"
 
-  ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-  ac_save_CXXFLAGS="$CXXFLAGS"
-  CXXFLAGS="$CXXFLAGS -fno-exceptions"
-  echo "$as_me:$LINENO: checking for _Unwind_GetIPInfo" >&5
-echo $ECHO_N "checking for _Unwind_GetIPInfo... $ECHO_C" >&6
-  if test "${gcc_cv_getipinfo+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-  if test x$gcc_no_link = xyes; then
-  { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-extern "C" { extern void _Unwind_GetIPInfo(); }
-int
-main ()
-{
-_Unwind_GetIPInfo();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_cxx_werror_flag"
-                        || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gcc_cv_getipinfo=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-gcc_cv_getipinfo=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-
-fi
+fi;
+  # If system-libunwind was not specifically set, pick a default setting.
+  if test x$with_system_libunwind = x; then
+    case ${target} in
+      ia64-*-hpux*) with_system_libunwind=yes ;;
+      *) with_system_libunwind=no ;;
+    esac
+  fi
+  # Based on system-libunwind and target, do we have ipinfo?
+  if  test x$with_system_libunwind = xyes; then
+    case ${target} in
+      ia64-*-*) have_unwind_getipinfo=no ;;
+      *) have_unwind_getipinfo=yes ;;
+    esac
+  else
+     have_unwind_getipinfo=yes
+  fi
 
-  if test $gcc_cv_getipinfo = yes; then
+  if test x$have_unwind_getipinfo = xyes; then
 
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_GETIPINFO 1
 _ACEOF
 
   fi
-  echo "$as_me:$LINENO: result: $gcc_cv_getipinfo" >&5
-echo "${ECHO_T}$gcc_cv_getipinfo" >&6
-  CXXFLAGS="$ac_save_CXXFLAGS"
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
 
 
 # See if linker supports anonymous version scripts.
@@ -27979,7 +28013,7 @@ else
 fi;
 
 
-if test "x${AOT_RPM_ENABLED}" == xyes; then
+if test "x${AOT_RPM_ENABLED}" = xyes; then
   INSTALL_AOT_RPM_TRUE=
   INSTALL_AOT_RPM_FALSE='#'
 else
@@ -28004,7 +28038,7 @@ else
 fi;
 
 
-if test "x${JAVA_HOME_ENABLED}" == xyes; then
+if test "x${JAVA_HOME_ENABLED}" = xyes; then
   CREATE_JAVA_HOME_TRUE=
   CREATE_JAVA_HOME_FALSE='#'
 else
@@ -28014,7 +28048,7 @@ fi
 
 
 # Only do these checks if java-home above is enabled.
-if test "x${JAVA_HOME_ENABLED}" == xyes
+if test "x${JAVA_HOME_ENABLED}" = xyes
 then
 
 
@@ -28313,6 +28347,13 @@ LIBOBJS=$ac_libobjs
 LTLIBOBJS=$ac_ltlibobjs
 
 
+if test -z "${CREATE_GJDOC_TRUE}" && test -z "${CREATE_GJDOC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"CREATE_GJDOC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_GJDOC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${JAVA_MAINTAINER_MODE_TRUE}" && test -z "${JAVA_MAINTAINER_MODE_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"JAVA_MAINTAINER_MODE\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -29577,6 +29618,9 @@ s,@target_os@,$target_os,;t t
 s,@target_noncanonical@,$target_noncanonical,;t t
 s,@LN_S@,$LN_S,;t t
 s,@mkinstalldirs@,$mkinstalldirs,;t t
+s,@ANTLR_JAR@,$ANTLR_JAR,;t t
+s,@CREATE_GJDOC_TRUE@,$CREATE_GJDOC_TRUE,;t t
+s,@CREATE_GJDOC_FALSE@,$CREATE_GJDOC_FALSE,;t t
 s,@JAVA_MAINTAINER_MODE_TRUE@,$JAVA_MAINTAINER_MODE_TRUE,;t t
 s,@JAVA_MAINTAINER_MODE_FALSE@,$JAVA_MAINTAINER_MODE_FALSE,;t t
 s,@CC@,$CC,;t t
index fc2083f81dc443095b94e4a610cb69a8bd451cc7..de189e393f87ce6bc53563e90df1074fa67dc4f2 100644 (file)
@@ -77,6 +77,63 @@ AC_ARG_ENABLE(gconf-peer,
     [gconf_enabled=no]
 )
 
+AC_ARG_WITH([antlr-jar],
+            [AS_HELP_STRING([--with-antlr-jar=file],[Use ANTLR from the specified jar file])],
+            [
+             ANTLR_JAR=$withval
+            ],
+            [
+             ANTLR_JAR=
+            ])
+
+AC_MSG_CHECKING([for antlr.jar])
+if test "x$ANTLR_JAR" = x; then
+    for antlr_lib_home in `ls -d /usr/local/share/antlr* 2> /dev/null` \
+       /usr/share/antlr/lib /usr/share/java /usr/lib;
+    do
+       if test -f "$antlr_lib_home/antlr.jar"; then
+           # FIXME: version check for antlr needed without using a VM
+           ANTLR_JAR="$antlr_lib_home/antlr.jar"
+           break
+       fi
+    done
+    if test "x$ANTLR_JAR" = x; then
+       AC_MSG_RESULT([not found])
+    else
+       AC_MSG_RESULT($ANTLR_JAR)
+    fi
+else
+    if test -f "${ANTLR_JAR}"; then
+       AC_MSG_RESULT($ANTLR_JAR)
+    else
+       AC_MSG_ERROR([antlr jar file not found: $ANTLR_JAR])
+    fi
+fi
+AC_SUBST(ANTLR_JAR)
+
+AC_ARG_ENABLE([gjdoc],
+              [AS_HELP_STRING(--disable-gjdoc,compile GJDoc (disabled by --disable-gjdoc) [default=yes])],
+              [case "${enableval}" in
+                yes) BUILD_GJDOC=yes ;;
+                no) BUILD_GJDOC=no ;;
+                *) BUILD_GJDOC=yes ;;
+              esac],
+              [BUILD_GJDOC=maybe])
+
+AC_MSG_CHECKING([wether to build gjdoc])
+if test "x$BUILD_GJDOC" = xmaybe; then
+    if test -f "${ANTLR_JAR}"; then
+       BUILD_GJDOC=yes
+       AC_MSG_RESULT(yes)
+    else
+       BUILD_GJDOC=no
+       AC_MSG_RESULT([no, antlr.jar not found])
+    fi
+else
+    AC_MSG_RESULT($BUILD_GJDOC)
+fi
+AM_CONDITIONAL(CREATE_GJDOC, test "x${BUILD_GJDOC}" = xyes)
+
 AC_ARG_ENABLE(java-maintainer-mode,
        AS_HELP_STRING([--enable-java-maintainer-mode],
        [allow rebuilding of .class and .h files]))
@@ -386,7 +443,6 @@ test -f libgcj.spec || touch libgcj.spec
 
 # Set up to configure Classpath.
 # FIXME: no supported way to pass args in autoconf.
-ac_configure_args="$ac_configure_args --with-fastjar=$JAR"
 # Disable tool wrappers to avoid ltdl.h configure check.
 ac_configure_args="$ac_configure_args --disable-tool-wrappers"
 ac_configure_args="$ac_configure_args --disable-load-library"
@@ -425,12 +481,14 @@ else
     ac_configure_args="$ac_configure_args --with-escher=$with_escher"
   fi
 fi
+if test "x$BUILD_GJDOC" = xno; then
+  ac_configure_args="$ac_configure_args --disable-gjdoc"
+fi
 # -Werror causes unavoidable problems in code using alsa.
 ac_configure_args="$ac_configure_args --disable-regen-headers"
 ac_configure_args="$ac_configure_args --disable-Werror"
 dnl --with-gcj=$GCJ
 dnl --with-javah=$GCJH
-dnl gjdoc?
 dnl gtk-cairo -- just export here...
 dnl --enable-regen-headers?
 
@@ -1325,6 +1383,7 @@ if test ! -f gnu/classpath/Configuration.java; then
       -e "s,@JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@,false," \
       -e "s,@GTK_CAIRO_ENABLED@,false," \
       -e "s,@ECJ_JAR@,," \
+      -e "s,@WANT_NATIVE_BIG_INTEGER@,false," \
        < $srcdir/classpath/gnu/classpath/Configuration.java.in \
        > gnu/classpath/Configuration.java
   # We do not want to redirect the output of the grep below to /dev/null,
@@ -1671,7 +1730,7 @@ AC_ARG_ENABLE([aot-compile-rpm],
   esac],
   [AOT_RPM_ENABLED=no]
 )
-AM_CONDITIONAL(INSTALL_AOT_RPM, test "x${AOT_RPM_ENABLED}" == xyes)
+AM_CONDITIONAL(INSTALL_AOT_RPM, test "x${AOT_RPM_ENABLED}" = xyes)
 
 AC_ARG_ENABLE([java-home],
   [AS_HELP_STRING([--enable-java-home],
@@ -1683,10 +1742,10 @@ AC_ARG_ENABLE([java-home],
   esac],
   [JAVA_HOME_ENABLED=no]
 )
-AM_CONDITIONAL(CREATE_JAVA_HOME, test "x${JAVA_HOME_ENABLED}" == xyes)
+AM_CONDITIONAL(CREATE_JAVA_HOME, test "x${JAVA_HOME_ENABLED}" = xyes)
 
 # Only do these checks if java-home above is enabled.
-if test "x${JAVA_HOME_ENABLED}" == xyes
+if test "x${JAVA_HOME_ENABLED}" = xyes
 then
 
   AC_ARG_WITH([gcc-suffix],
index 4e43a4dade49090be4beba2bc6f52d148e34429d..7e9aba8015071a72ec22521454cd0502758282d6 100644 (file)
@@ -90,6 +90,7 @@ AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
 ANONVERSCRIPT_FALSE = @ANONVERSCRIPT_FALSE@
 ANONVERSCRIPT_TRUE = @ANONVERSCRIPT_TRUE@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -110,6 +111,8 @@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CPU = @CPU@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
 CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@
 CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@
 CXX = @CXX@
index a0b99d283614a0995baa93f574db62e40c154965..313ecc02efc863d080f3d2fd2f03010c8a4e633a 100644 (file)
@@ -142,6 +142,7 @@ extern "Java"
     namespace lang
     {
       class AbstractMethodError;
+      class AbstractStringBuffer;
       class Appendable;
       class ArithmeticException;
       class ArrayIndexOutOfBoundsException;
@@ -239,6 +240,8 @@ extern "Java"
       class ThreadDeath;
       class ThreadGroup;
       class ThreadLocal;
+      class ThreadLocalMap;
+      class ThreadLocalMap$Entry;
       class Throwable;
       class Throwable$StaticData;
       class TypeNotPresentException;
@@ -519,6 +522,7 @@ extern "Java"
       class ResourceBundle;
       class ResourceBundle$1;
       class ResourceBundle$BundleKey;
+      class Scanner;
       class ServiceConfigurationError;
       class ServiceLoader;
       class ServiceLoader$1;
@@ -850,6 +854,7 @@ extern "Java"
       }
     }
   }
+  // end of output of the `classes.pl' script.
 }
   
 typedef struct java::lang::Object* jobject;
@@ -861,15 +866,6 @@ struct _Jv_JNIEnv;
 typedef struct _Jv_Field *jfieldID;
 typedef struct _Jv_Method *jmethodID;
 
-enum _Jv_jobjectRefType
-{
-  JNIInvalidRefType    = 0,
-  JNILocalRefType      = 1,
-  JNIGlobalRefType     = 2,
-  JNIWeakGlobalRefType = 3
-};
-typedef enum _Jv_jobjectRefType jobjectRefType;
-
 extern "C" jobject _Jv_AllocObject (jclass) __attribute__((__malloc__));
 extern "C" jobject _Jv_AllocObjectNoFinalizer (jclass) __attribute__((__malloc__));
 extern "C" jobject _Jv_AllocObjectNoInitNoFinalizer (jclass) __attribute__((__malloc__));
index c628e17a9901cbd602f27d5ee291537df6b93e23..715ebc5018ea9bc0e82196d2ca40eae260d71023 100644 (file)
@@ -20,6 +20,13 @@ extern "Java"
           class NameTransformer;
       }
     }
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
   }
   namespace org
   {
@@ -45,7 +52,7 @@ public:
   virtual JArray< ::org::omg::CosNaming::NameComponent * > * toName(::java::lang::String *);
   virtual ::java::lang::String * toString(JArray< ::org::omg::CosNaming::NameComponent * > *);
 private:
-  void appEscaping(::java::lang::StringBuffer *, ::java::lang::String *);
+  void appEscaping(::gnu::java::lang::CPStringBuilder *, ::java::lang::String *);
   void assertEndOfNode(::org::omg::CORBA::IntHolder *, JArray< ::java::lang::String * > *);
   ::org::omg::CosNaming::NameComponent * readNode(::org::omg::CORBA::IntHolder *, JArray< ::java::lang::String * > *);
   ::java::lang::String * readPart(::org::omg::CORBA::IntHolder *, JArray< ::java::lang::String * > *);
index 34cd719eea0a4926274e637f827138a495f19380..699fb0fe3632799dd6e621ad6bef26befb3e8be4 100644 (file)
@@ -34,6 +34,7 @@ public:
   static ::java::lang::String * default_awt_peer_toolkit;
   static const jboolean JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = 0;
   static ::java::lang::String * ECJ_JAR;
+  static const jboolean WANT_NATIVE_BIG_INTEGER = 1;
   static ::java::lang::Class class$;
 };
 
index 73e3c2f04083f6550dff3113feeb4d16ba4b29bb..2420878fbce795ef40d13264c2d691923f02885c 100644 (file)
@@ -1,5 +1,5 @@
 /* Configuration.java --
-   Copyright (C) 1998, 2001, 2003, 2005, 2006, 2007
+   Copyright (C) 1998, 2001, 2003, 2005, 2006, 2007, 2008
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -66,7 +66,7 @@ public final class Configuration
    * It is set according to the value of 'version' in the configure[.in] file
    * and used to set the System property gnu.classpath.version.
    */
-  public static final String CLASSPATH_VERSION = "0.95";
+  public static final String CLASSPATH_VERSION = "0.98-pre";
 
   /**
    * The value of DEBUG is substituted according to whether the
@@ -110,4 +110,13 @@ public final class Configuration
    * com.sun.tools.javac implementation in tools.zip.
    */
   public static final String ECJ_JAR = ecj();
+
+  /**
+   * Set to <code>true</code> if the config script found that (a) an
+   * implementation of java.math.BigInteger, based on the GNU MP library, is
+   * desired in preference to a pure Java one, and (b) the GNU MP library was
+   * found on the platform where the JVM is to run. Otherwise, this field is
+   * set to <code>false</code>.
+   */
+  public static final boolean WANT_NATIVE_BIG_INTEGER = true;
 }
index 4ec84ce100a583360ed01eab70bfbde0b6e003bc..310b1b8041f670b4d7d983f2e47868d724bb3f36 100644 (file)
@@ -23,6 +23,13 @@ extern "Java"
         }
       }
     }
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
   }
 }
 
@@ -36,7 +43,7 @@ public:
   static ::java::lang::String * computeMethodSignature(::java::lang::reflect::Method *);
 private:
   static ::java::lang::String * _computeSignature(::java::lang::Class *, JArray< ::java::lang::Class * > *);
-  static void _addToSignature(::java::lang::StringBuffer *, ::java::lang::Class *);
+  static void _addToSignature(::gnu::java::lang::CPStringBuilder *, ::java::lang::Class *);
 public:
   static ::java::lang::Class class$;
 };
index cad7095875030cbb9903d91fb244f97978892c0f..e2631b14a745941031005fce495406a7a6fc95c8 100644 (file)
@@ -70,28 +70,28 @@ gnu::gcj::util::Debug::getField (::java::lang::Object *o,
   if (! type->isPrimitive ())
     return * (jobject*) addr;
   if (type == JvPrimClass (double))
-    return new java::lang::Double (* (jdouble*) addr);
+    return new ::java::lang::Double (* (jdouble*) addr);
   if (type == JvPrimClass (float))
-    return new java::lang::Float (* (jfloat*) addr);
+    return new ::java::lang::Float (* (jfloat*) addr);
   if (type == JvPrimClass (long))
-    return new java::lang::Long (* (jlong*) addr);
+    return new ::java::lang::Long (* (jlong*) addr);
   if (type == JvPrimClass (int))
-    return new java::lang::Integer (* (jint*) addr);
+    return new ::java::lang::Integer (* (jint*) addr);
   if (type == JvPrimClass (short))
-    return new java::lang::Short (* (jshort*) addr);
+    return new ::java::lang::Short (* (jshort*) addr);
   if (type == JvPrimClass (byte))
-    return new java::lang::Byte (* (jbyte*) addr);
+    return new ::java::lang::Byte (* (jbyte*) addr);
   if (type == JvPrimClass (char))
-    return new java::lang::Character (* (jchar*) addr);
+    return new ::java::lang::Character (* (jchar*) addr);
   if (type == JvPrimClass (boolean))
     {
-      _Jv_InitClass (&java::lang::Boolean::class$);
+      _Jv_InitClass (&::java::lang::Boolean::class$);
       if (* (jboolean*) addr)
-       return java::lang::Boolean::TRUE;
+       return ::java::lang::Boolean::TRUE;
       else
-       return java::lang::Boolean::FALSE;
+       return ::java::lang::Boolean::FALSE;
     }
-  throw new java::lang::IllegalArgumentException;
+  throw new ::java::lang::IllegalArgumentException;
 }
 
 /* A simple method of printing an object that can be called from a
index 83c897e8a17bffdc3def4d5857e4a3962fe6a2d0..2f6a6c7448d614bdb65798240f617ed7f1c77b7a 100644 (file)
@@ -30,7 +30,7 @@ jlong gnu::gcj::xlib::Colormap::allocateColorPixel(XColor* color)
   ::XColor* col = (::XColor*) (color->structure);
   Status result = XAllocColor(dpy, xid, col);
   if (result == 0)
-    throw new java::lang::RuntimeException(
+    throw new ::java::lang::RuntimeException(
       JvNewStringLatin1("Unable to allocate color pixel."));
 
   return col->pixel;
index fadf4fb26962f254b4d73cfb4cf8c0b63573a761..f89cb740c64110ba1b42ecb68123ec73232d8962 100644 (file)
@@ -118,8 +118,8 @@ void gnu::gcj::xlib::Display::staticInit()
 {
   if (XInitThreads() == 0)
     {
-      char msg[] = "threads is not supported on this platform";
-      throw new java::lang::RuntimeException(JvNewStringLatin1(msg));
+      char msg[] = "threads are not supported on this platform";
+      throw new ::java::lang::RuntimeException(JvNewStringLatin1(msg));
     }
   
   XSetErrorHandler(&handleXError);
index 87c9d3572b28ec33adb172525e320d0d68ba2e5b..371a92bfe04603e0cacd6e4d8480b1f9cf4c8c41 100644 (file)
@@ -64,7 +64,7 @@ jint gnu::gcj::xlib::Drawable::getDepth ()
 }
 
 java::awt::Rectangle*
-gnu::gcj::xlib::Drawable::getBounds(java::awt::Rectangle* rv)
+gnu::gcj::xlib::Drawable::getBounds(::java::awt::Rectangle* rv)
 {
   ::Display* dpy = (::Display*) (getDisplay()->display);
 
@@ -86,7 +86,7 @@ gnu::gcj::xlib::Drawable::getBounds(java::awt::Rectangle* rv)
  
   if (rv == 0)
     {
-      rv = new java::awt::Rectangle(x, y, w, h);
+      rv = new ::java::awt::Rectangle(x, y, w, h);
     }
   else
     {
index cd5d87c7ab69e1412776ade63f94eeb2c7bd40b8..be842d0a9b4705165c7069ae935330c0b16408d0 100644 (file)
@@ -75,7 +75,7 @@ jint gnu::gcj::xlib::Font::getDescent()
   return returnValue-1;  // -1 to exclude the baseline
 }
 
-jint gnu::gcj::xlib::Font::getStringWidth(java::lang::String* text)
+jint gnu::gcj::xlib::Font::getStringWidth(::java::lang::String* text)
 {
   XFontStruct* fontStruct = (XFontStruct*) structure;
   
index 0724a5a0925c77f85923ac04ac5670c3bf0c63fd..fd546997f8b4df7a8ec598372ba0751b0e073a81 100644 (file)
@@ -23,7 +23,7 @@ void gnu::gcj::xlib::WMSizeHints::init(WMSizeHints* copyFrom)
   if (hints == 0)
     {
       jstring errorMessage = JvNewStringLatin1("XAllocSizeHints failed");
-      throw new java::lang::OutOfMemoryError(errorMessage);
+      throw new ::java::lang::OutOfMemoryError(errorMessage);
     }
 
   if (copyFrom != 0)
index 62cd086ccb49d44937f71a07cba42ede8ff95bc5..42ef649c50edc6301beb06a9c34397280f1b5230 100644 (file)
@@ -23,7 +23,7 @@ details.  */
 #include <gnu/gcj/xlib/Visual.h>
 #include <gnu/gcj/xlib/XException.h>
 
-jint gnu::gcj::xlib::Window::createChildXID(java::awt::Rectangle* bounds,
+jint gnu::gcj::xlib::Window::createChildXID(::java::awt::Rectangle* bounds,
                                        jint borderWidth,
                                        WindowAttributes* attributes,
                                        jint windowIOClass, 
index a92cf9f8c6f2a5d8b4385fc6ae8d08f9262e2dbb..81022227d2bea9893bec2cdf3099caaa6bb1d34a 100644 (file)
@@ -40,7 +40,7 @@ void gnu::gcj::xlib::XImage::init(Visual* visual, jint depth,
   if (ximage == 0)
     {
       jstring errorMessage = JvNewStringLatin1("XCreateImage failed");
-      throw new java::lang::OutOfMemoryError(errorMessage);
+      throw new ::java::lang::OutOfMemoryError(errorMessage);
     }
     
   bool reinitialize = false;
index 92f78733b29c410d23dbd1b2fe36098be93122de..8effd32a584d275a5b4cef6b23afdb99c9150146 100644 (file)
@@ -168,7 +168,7 @@ public:
 public: // actually protected
   virtual void fillShape(::java::awt::Shape *, jboolean);
   virtual ::java::awt::image::ColorModel * getColorModel() = 0;
-  virtual ::java::awt::Rectangle * getDeviceBounds();
+  virtual ::java::awt::Rectangle * getDeviceBounds() = 0;
   virtual void rawDrawLine(jint, jint, jint, jint);
   virtual void rawDrawRect(jint, jint, jint, jint);
   virtual void rawClearRect(jint, jint, jint, jint);
@@ -189,6 +189,12 @@ private:
   void updateClip(::java::awt::geom::AffineTransform *);
   ::gnu::java::awt::java2d::ScanlineConverter * getScanlineConverter();
   void freeScanlineConverter(::gnu::java::awt::java2d::ScanlineConverter *);
+  ::java::awt::PaintContext * getPaintContext();
+public:
+  static ::java::awt::Image * prepareImage(::java::awt::Image *, jint, jint);
+public: // actually protected
+  static ::java::util::WeakHashMap * imageCache;
+private:
   static jboolean DEFAULT_TEXT_AA;
   static ::java::awt::Font * FONT;
   static const jint GV_CACHE_SIZE = 50;
@@ -202,6 +208,8 @@ private:
   ::java::awt::Paint * paint;
   ::java::awt::PaintContext * paintContext;
   ::java::awt::Color * background;
+  ::java::awt::Color * foreground;
+  jboolean isForegroundColorNull;
   ::java::awt::Font * font;
   ::java::awt::Composite * composite;
   ::java::awt::Stroke * stroke;
index 41ab8d7dceb86d9e7f330837596af64f878c4c4f..37baf269c3a78e054f6046ed2efb282a1cd69eab 100644 (file)
@@ -18,6 +18,7 @@ extern "Java"
         namespace java2d
         {
             class RasterGraphics;
+            class ScanlineCoverage;
         }
       }
     }
@@ -27,6 +28,7 @@ extern "Java"
     namespace awt
     {
         class GraphicsConfiguration;
+        class Rectangle;
       namespace image
       {
           class ColorModel;
@@ -41,11 +43,14 @@ class gnu::java::awt::java2d::RasterGraphics : public ::gnu::java::awt::java2d::
 
 public:
   RasterGraphics(::java::awt::image::WritableRaster *, ::java::awt::image::ColorModel *);
+  virtual void renderScanline(jint, ::gnu::java::awt::java2d::ScanlineCoverage *);
 public: // actually protected
   virtual ::java::awt::image::ColorModel * getColorModel();
   virtual ::java::awt::image::WritableRaster * getDestinationRaster();
 public:
   virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration();
+public: // actually protected
+  virtual ::java::awt::Rectangle * getDeviceBounds();
 private:
   ::java::awt::image::WritableRaster * __attribute__((aligned(__alignof__( ::gnu::java::awt::java2d::AbstractGraphics2D)))) raster;
   ::java::awt::image::ColorModel * colorModel;
diff --git a/libjava/gnu/java/lang/CPStringBuilder.h b/libjava/gnu/java/lang/CPStringBuilder.h
new file mode 100644 (file)
index 0000000..5b03bf3
--- /dev/null
@@ -0,0 +1,100 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_CPStringBuilder__
+#define __gnu_java_lang_CPStringBuilder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
+  }
+}
+
+class gnu::java::lang::CPStringBuilder : public ::java::lang::Object
+{
+
+public:
+  CPStringBuilder();
+  CPStringBuilder(jint);
+  CPStringBuilder(::java::lang::String *);
+  CPStringBuilder(::java::lang::StringBuffer *);
+  CPStringBuilder(::java::lang::StringBuilder *);
+  CPStringBuilder(::java::lang::CharSequence *);
+  void setLength(jint);
+  jchar charAt(jint);
+  jint codePointAt(jint);
+  jint codePointBefore(jint);
+  void getChars(jint, jint, JArray< jchar > *, jint);
+  void setCharAt(jint, jchar);
+  ::gnu::java::lang::CPStringBuilder * append(::java::lang::Object *);
+  ::gnu::java::lang::CPStringBuilder * append(::java::lang::String *);
+  ::gnu::java::lang::CPStringBuilder * append(::java::lang::StringBuffer *);
+  ::gnu::java::lang::CPStringBuilder * append(JArray< jchar > *);
+  ::gnu::java::lang::CPStringBuilder * append(JArray< jchar > *, jint, jint);
+  ::gnu::java::lang::CPStringBuilder * append(jboolean);
+  ::gnu::java::lang::CPStringBuilder * CPStringBuilder$append(jchar);
+  ::gnu::java::lang::CPStringBuilder * CPStringBuilder$append(::java::lang::CharSequence *);
+  ::gnu::java::lang::CPStringBuilder * CPStringBuilder$append(::java::lang::CharSequence *, jint, jint);
+  ::gnu::java::lang::CPStringBuilder * append(jint);
+  ::gnu::java::lang::CPStringBuilder * append(jlong);
+  ::gnu::java::lang::CPStringBuilder * append(jfloat);
+  ::gnu::java::lang::CPStringBuilder * append(jdouble);
+  ::gnu::java::lang::CPStringBuilder * appendCodePoint(jint);
+  ::gnu::java::lang::CPStringBuilder * delete$(jint, jint);
+  ::gnu::java::lang::CPStringBuilder * deleteCharAt(jint);
+  ::gnu::java::lang::CPStringBuilder * replace(jint, jint, ::java::lang::String *);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, JArray< jchar > *, jint, jint);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, ::java::lang::Object *);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, ::java::lang::String *);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, ::java::lang::CharSequence *);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, ::java::lang::CharSequence *, jint, jint);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, JArray< jchar > *);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, jboolean);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, jchar);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, jint);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, jlong);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, jfloat);
+  ::gnu::java::lang::CPStringBuilder * insert(jint, jdouble);
+  jint indexOf(::java::lang::String *);
+  jint indexOf(::java::lang::String *, jint);
+  jint lastIndexOf(::java::lang::String *);
+  jint lastIndexOf(::java::lang::String *, jint);
+  ::gnu::java::lang::CPStringBuilder * reverse();
+  void trimToSize();
+  jint codePointCount(jint, jint);
+  jint offsetByCodePoints(jint, jint);
+  void ensureCapacity(jint);
+private:
+  void allocateArray(jint);
+public:
+  jint length();
+  ::java::lang::CharSequence * subSequence(jint, jint);
+  ::java::lang::String * substring(jint);
+  ::java::lang::String * substring(jint, jint);
+  ::java::lang::String * toString();
+  ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+  ::java::lang::Appendable * append(::java::lang::CharSequence *);
+  ::java::lang::Appendable * append(jchar);
+private:
+  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
+  JArray< jchar > * value;
+  jboolean allocated;
+  static jint DEFAULT_CAPACITY;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_CPStringBuilder__
diff --git a/libjava/gnu/java/lang/VMCPStringBuilder.h b/libjava/gnu/java/lang/VMCPStringBuilder.h
new file mode 100644 (file)
index 0000000..f8c2eb3
--- /dev/null
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_VMCPStringBuilder__
+#define __gnu_java_lang_VMCPStringBuilder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace lang
+      {
+          class VMCPStringBuilder;
+      }
+    }
+  }
+}
+
+class gnu::java::lang::VMCPStringBuilder : public ::java::lang::Object
+{
+
+public: // actually package-private
+  VMCPStringBuilder();
+public:
+  static ::java::lang::String * toString(JArray< jchar > *, jint, jint);
+private:
+  static ::java::lang::reflect::Constructor * cons;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_VMCPStringBuilder__
diff --git a/libjava/gnu/java/lang/VMCPStringBuilder.java b/libjava/gnu/java/lang/VMCPStringBuilder.java
new file mode 100644 (file)
index 0000000..8e137cd
--- /dev/null
@@ -0,0 +1,112 @@
+/* VMCPStringBuilder.java -- Growable strings without locking or copying
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * This class provides VM support for CPStringBuilder
+ * by allowing the package-private constructor
+ * of java.lang.String to be invoked.  The default
+ * implementation uses reflection.  VMs may replace
+ * this class with a more efficient version.
+ */
+final class VMCPStringBuilder
+{
+
+  /**
+   * The package-private constructor for String objects without copying.
+   */
+  private static final Constructor cons;
+
+  static
+  {
+    try
+      {
+       cons = String.class.getDeclaredConstructor(new Class[] { char[].class,
+                                                                Integer.TYPE,
+                                                                Integer.TYPE,
+                                                                Boolean.TYPE });
+       cons.setAccessible(true);
+      }
+    catch (NoSuchMethodException e)
+      {
+       throw (Error) 
+         new InternalError("Could not get no-copy String constructor").initCause(e);
+      }
+  }
+
+  /**
+   * Convert this <code>StringBuilder</code> to a <code>String</code>. The
+   * String is composed of the characters currently in this StringBuilder. Note
+   * that the result is not a copy, so the builder will allocate a new array
+   * if a further write operation is attempted.
+   *
+   * @param value the buffered characters.
+   * @param startIndex the index at which to start taking characters from the buffer.
+   * @param count the number of characters used in the buffer.
+   * @return the characters in this StringBuilder
+   */
+  public static String toString(char[] value, int startIndex, int count)
+  {
+    try
+      {
+       return (String)
+         cons.newInstance(new Object[] { value, Integer.valueOf(startIndex),
+                                         Integer.valueOf(count),
+                                         Boolean.valueOf(true) });
+      }
+    catch (InstantiationException e)
+      {
+       throw (Error) 
+         new InternalError("Could not instantiate no-copy String constructor").initCause(e);
+      }
+    catch (IllegalAccessException e)
+      {
+       throw (Error) 
+         new InternalError("Could not access no-copy String constructor").initCause(e);
+      }
+    catch (InvocationTargetException e)
+      {
+       throw (Error) 
+         new InternalError("Error calling no-copy String constructor").initCause(e);
+      }
+  }
+
+}
diff --git a/libjava/gnu/java/math/GMP.h b/libjava/gnu/java/math/GMP.h
new file mode 100644 (file)
index 0000000..b038f10
--- /dev/null
@@ -0,0 +1,125 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_math_GMP__
+#define __gnu_java_math_GMP__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace classpath
+    {
+        class Pointer;
+    }
+    namespace java
+    {
+      namespace math
+      {
+          class GMP;
+      }
+    }
+  }
+}
+
+class gnu::java::math::GMP : public ::java::lang::Object
+{
+
+public:
+  GMP();
+private:
+  void acquireRef();
+  void releaseRef();
+public: // actually protected
+  void finalize();
+public:
+  void fromByteArray(JArray< jbyte > *);
+  void fromBI(::gnu::java::math::GMP *);
+  void fromLong(jlong);
+  jint fromString(::java::lang::String *, jint);
+  void fromSignedMagnitude(JArray< jbyte > *, jboolean);
+  ::java::lang::String * toString(jint);
+  void toByteArray(JArray< jbyte > *);
+  jdouble doubleValue();
+  jint absIntValue();
+  jint compare(::gnu::java::math::GMP *);
+  void add(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void subtract(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void multiply(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void quotient(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void remainder(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void quotientAndRemainder(::gnu::java::math::GMP *, ::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void modulo(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void pow(jint, ::gnu::java::math::GMP *);
+  void modPow(::gnu::java::math::GMP *, ::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void modInverse(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void gcd(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void shiftLeft(jint, ::gnu::java::math::GMP *);
+  void shiftRight(jint, ::gnu::java::math::GMP *);
+  void abs(::gnu::java::math::GMP *);
+  void negate(::gnu::java::math::GMP *);
+  jint bitLength();
+  jint bitCount();
+  void and$(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void or$(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void xor$(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void andNot(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+  void not$(::gnu::java::math::GMP *);
+  void flipBit(jint, ::gnu::java::math::GMP *);
+  jint testBit(jint);
+  void setBit(jint, jboolean, ::gnu::java::math::GMP *);
+  jint testPrimality(jint);
+  jint lowestSetBit();
+  static void natInitializeLibrary();
+private:
+  void natInitialize();
+  void natFinalize();
+  void natFromLong(jlong);
+  void natFromBI(::gnu::classpath::Pointer *);
+  void natFromByteArray(JArray< jbyte > *);
+  jint natFromString(::java::lang::String *, jint);
+  void natFromSignedMagnitude(JArray< jbyte > *, jboolean);
+  ::java::lang::String * natToString(jint);
+  void natToByteArray(JArray< jbyte > *);
+  jint natAbsIntValue();
+  jdouble natDoubleValue();
+  jint natCompare(::gnu::classpath::Pointer *);
+  void natAdd(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natSubtract(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natMultiply(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natQuotient(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natRemainder(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natQuotientAndRemainder(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natModulo(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natPow(jint, ::gnu::classpath::Pointer *);
+  void natModPow(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natModInverse(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natGCD(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  jint natTestPrimality(jint);
+  void natShiftLeft(jint, ::gnu::classpath::Pointer *);
+  void natShiftRight(jint, ::gnu::classpath::Pointer *);
+  jint natLowestSetBit();
+  void natAbs(::gnu::classpath::Pointer *);
+  void natNegate(::gnu::classpath::Pointer *);
+  jint natBitLength();
+  jint natSetBitCount();
+  void natXor(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natOr(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natAnd(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natAndNot(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+  void natFlipBit(jint, ::gnu::classpath::Pointer *);
+  jint natTestBit(jint);
+  void natSetBit(jint, jboolean, ::gnu::classpath::Pointer *);
+  void natNot(::gnu::classpath::Pointer *);
+  ::gnu::classpath::Pointer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) native_ptr;
+  jint refCount;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_math_GMP__
index a37b39967494050f366c32fcfa86804d877fbf2b..382afe1a3de64073419da120c19dcc980c06ca63 100644 (file)
@@ -15,6 +15,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace text
       {
           class AttributedFormatBuffer;
@@ -34,7 +38,7 @@ class gnu::java::text::AttributedFormatBuffer : public ::java::lang::Object
 {
 
 public:
-  AttributedFormatBuffer(::java::lang::StringBuffer *);
+  AttributedFormatBuffer(::gnu::java::lang::CPStringBuilder *);
   AttributedFormatBuffer(jint);
   AttributedFormatBuffer();
 private:
@@ -51,11 +55,11 @@ public:
   virtual jint length();
   virtual void clear();
   virtual void sync();
-  virtual ::java::lang::StringBuffer * getBuffer();
+  virtual ::gnu::java::lang::CPStringBuilder * getBuffer();
   virtual JArray< jint > * getRanges();
   virtual JArray< ::java::util::HashMap * > * getAttributes();
 private:
-  ::java::lang::StringBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer;
+  ::gnu::java::lang::CPStringBuilder * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer;
   ::java::util::ArrayList * ranges;
   ::java::util::ArrayList * attributes;
   JArray< jint > * a_ranges;
index 78ab0fc1e782264bebcbbdf912b52285c0d41fef..c56509628adbad98c604d843eec5d598f200622d 100644 (file)
@@ -24,8 +24,8 @@ extern "Java"
 class gnu::java::util::EmptyEnumeration : public ::java::lang::Object
 {
 
-  EmptyEnumeration();
 public:
+  EmptyEnumeration();
   static ::gnu::java::util::EmptyEnumeration * getInstance();
   jboolean hasMoreElements();
   ::java::lang::Object * nextElement();
diff --git a/libjava/gnu/java/util/prefs/EventDispatcher.h b/libjava/gnu/java/util/prefs/EventDispatcher.h
deleted file mode 100644 (file)
index 235aabb..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-
-// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
-
-#ifndef __gnu_java_util_prefs_EventDispatcher__
-#define __gnu_java_util_prefs_EventDispatcher__
-
-#pragma interface
-
-#include <java/lang/Thread.h>
-extern "Java"
-{
-  namespace gnu
-  {
-    namespace java
-    {
-      namespace util
-      {
-        namespace prefs
-        {
-            class EventDispatcher;
-        }
-      }
-    }
-  }
-}
-
-class gnu::java::util::prefs::EventDispatcher : public ::java::lang::Thread
-{
-
-  EventDispatcher();
-public:
-  virtual void run();
-  static void dispatch(::java::lang::Runnable *);
-private:
-  static ::java::lang::Thread * dispatchThread;
-  static ::java::util::ArrayList * queue;
-public:
-  static ::java::lang::Class class$;
-};
-
-#endif // __gnu_java_util_prefs_EventDispatcher__
index 5d0945a32dc07f5a9632922d91a12efcee4369a2..e0e37d7f13643e1e0ed8b8546794a421eaab149d 100644 (file)
@@ -7,8 +7,6 @@
 #pragma interface
 
 #include <java/lang/Object.h>
-#include <gcj/array.h>
-
 extern "Java"
 {
   namespace gnu
@@ -35,8 +33,6 @@ class gnu::java::util::prefs::gconf::GConfNativePeer : public ::java::lang::Obje
 public:
   GConfNativePeer();
   jboolean nodeExist(::java::lang::String *);
-  void startWatchingNode(::java::lang::String *);
-  void stopWatchingNode(::java::lang::String *);
   jboolean setString(::java::lang::String *, ::java::lang::String *);
   jboolean unset(::java::lang::String *);
   ::java::lang::String * getKey(::java::lang::String *);
@@ -52,19 +48,15 @@ private:
   static void init_class();
   static void finalize_class();
 public: // actually protected
-  static jboolean gconf_client_dir_exists(::java::lang::String *);
-  static void gconf_client_add_dir(::java::lang::String *);
-  static void gconf_client_remove_dir(::java::lang::String *);
-  static jboolean gconf_client_set_string(::java::lang::String *, ::java::lang::String *);
-  static ::java::lang::String * gconf_client_get_string(::java::lang::String *);
-  static jboolean gconf_client_unset(::java::lang::String *);
-  static void gconf_client_suggest_sync();
-  static ::java::util::List * gconf_client_all_nodes(::java::lang::String *);
-  static ::java::util::List * gconf_client_all_keys(::java::lang::String *);
+  static jboolean gconf_dir_exists(::java::lang::String *);
+  static jboolean gconf_set_string(::java::lang::String *, ::java::lang::String *);
+  static ::java::lang::String * gconf_get_string(::java::lang::String *);
+  static jboolean gconf_unset(::java::lang::String *);
+  static void gconf_suggest_sync();
+  static ::java::util::List * gconf_all_nodes(::java::lang::String *);
+  static ::java::util::List * gconf_all_keys(::java::lang::String *);
   static ::java::lang::String * gconf_escape_key(::java::lang::String *);
   static ::java::lang::String * gconf_unescape_key(::java::lang::String *);
-private:
-  static JArray< ::java::lang::Object * > * semaphore;
 public:
   static ::java::lang::Class class$;
 };
index 4d43195891537a397f2fff1849dc778e4ab8e714..ee798b7ad351ff3ccf99a7a3cbeae4adea13290e 100644 (file)
@@ -15,6 +15,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -87,9 +91,9 @@ public:
   virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *);
   virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *, jint);
   virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *, jint, jint);
-  virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *, jint, jint, ::java::lang::StringBuffer *);
+  virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *, jint, jint, ::gnu::java::lang::CPStringBuilder *);
 public: // actually package-private
-  virtual ::gnu::java::util::regex::REMatch * getMatchImpl(::gnu::java::util::regex::CharIndexed *, jint, jint, ::java::lang::StringBuffer *);
+  virtual ::gnu::java::util::regex::REMatch * getMatchImpl(::gnu::java::util::regex::CharIndexed *, jint, jint, ::gnu::java::lang::CPStringBuilder *);
 public:
   virtual ::gnu::java::util::regex::REMatchEnumeration * getMatchEnumeration(::java::lang::Object *);
   virtual ::gnu::java::util::regex::REMatchEnumeration * getMatchEnumeration(::java::lang::Object *, jint);
@@ -110,12 +114,12 @@ public:
 private:
   void addToken(::gnu::java::util::regex::REToken *);
   static ::gnu::java::util::regex::REToken * setRepeated(::gnu::java::util::regex::REToken *, jint, jint, jint);
-  static jint getPosixSet(JArray< jchar > *, jint, ::java::lang::StringBuffer *);
+  static jint getPosixSet(JArray< jchar > *, jint, ::gnu::java::lang::CPStringBuilder *);
   jint getMinMax(JArray< jchar > *, jint, ::gnu::java::util::regex::RE$IntPair *, ::gnu::java::util::regex::RESyntax *);
 public:
   virtual ::java::lang::String * toString();
 public: // actually package-private
-  virtual void dump(::java::lang::StringBuffer *);
+  virtual void dump(::gnu::java::lang::CPStringBuilder *);
 public:
   static ::gnu::java::util::regex::CharIndexed * makeCharIndexed(::java::lang::Object *, jint);
 private:
index caab8c81e2f205514e1bf370e282886f8541045b..6b0d888b753f65d9110e2f488a82edae22803e64 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -35,9 +39,9 @@ public: // actually package-private
 public:
   virtual jboolean hasMoreElements();
   virtual jboolean hasMoreMatches();
-  virtual jboolean hasMoreMatches(::java::lang::StringBuffer *);
+  virtual jboolean hasMoreMatches(::gnu::java::lang::CPStringBuilder *);
+  virtual ::gnu::java::util::regex::REMatch * REMatchEnumeration$nextElement();
   virtual ::java::lang::Object * nextElement();
-  virtual ::gnu::java::util::regex::REMatch * nextMatch();
 private:
   static const jint YES = 1;
   static const jint MAYBE = 0;
index 49ef5aef0c768e9da9a576e06b7bb147ed76c16a..552d47a3bea8e430cd421a98075418f0f443258a 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -53,8 +57,8 @@ public: // actually package-private
   virtual jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
   virtual ::gnu::java::util::regex::REMatch * backtrack(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::java::lang::Object *);
   virtual jboolean chain(::gnu::java::util::regex::REToken *);
-  virtual void dump(::java::lang::StringBuffer *) = 0;
-  virtual void dumpAll(::java::lang::StringBuffer *);
+  virtual void dump(::gnu::java::lang::CPStringBuilder *) = 0;
+  virtual void dumpAll(::gnu::java::lang::CPStringBuilder *);
 public:
   virtual ::java::lang::String * toString();
   static jchar toLowerCase(jchar, jboolean);
index d50be3d64fbf5304d6f81fc71c04c2789925880b..77f00aaad21e5e07824018701f3ee5a7b88b6811 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -37,7 +41,7 @@ public: // actually package-private
   jboolean matchOneChar(jchar);
   jboolean returnsFixedLengthMatches();
   jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
 private:
   jboolean __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) newline;
   jboolean matchNull;
index 33cf3b679c268bf534bb29e5ca91546de30c52f6..4cadd54059442f75486b2a33898fd833aa98dfc7 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -32,7 +36,7 @@ class gnu::java::util::regex::RETokenBackRef : public ::gnu::java::util::regex::
 public: // actually package-private
   RETokenBackRef(jint, jint, jboolean);
   ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
 private:
   jint __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) num;
   jboolean insens;
index abff1cdd80304ff01695a44cb3f4268e90a4da2b..723bed8c67d8fcdbf105b8d0403ee4c6c324d7e6 100644 (file)
@@ -15,6 +15,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -44,7 +48,7 @@ public: // actually package-private
   jboolean returnsFixedLengthMatches();
   jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
   jboolean chain(::gnu::java::util::regex::REToken *);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
 private:
   JArray< jchar > * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) ch;
   jboolean insens;
index cdcb5b060002cf75f7dafb7be3e0febcf2587c00..975bb1625ecc68d21e5655724d969915be424abb 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -38,7 +42,7 @@ public: // actually package-private
   ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
   jboolean returnsFixedLengthMatches();
   jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
 private:
   ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) newline;
   jboolean check_java_line_terminators;
index 72f54647e82e999f6dbaaf9e485f981ff01c6e78..be5683341ba10dec980fab72595fc688721186ff 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -35,7 +39,7 @@ public: // actually package-private
   virtual ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
   virtual jboolean returnsFixedLengthmatches();
   virtual jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
-  virtual void dump(::java::lang::StringBuffer *);
+  virtual void dump(::gnu::java::lang::CPStringBuilder *);
 public:
   static ::java::lang::Class class$;
 };
index 50f3281cae7efec914fb9b2338608e4424a25fe9..109e28b3e6401176dc572da979ee6cab1bf06e36 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -35,7 +39,7 @@ public: // actually package-private
   ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
   ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
   void setHitEnd(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
 public:
   static ::java::lang::Class class$;
 };
index f13c6b3eb6c0eb2399ef65de192ae3fbffad10a6..7800296841d6227ec0f373677e490667cc42cbf3 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -35,7 +39,7 @@ public: // actually package-private
   jint getMinimumLength();
   jint getMaximumLength();
   ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
   ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) re;
 public:
   static ::java::lang::Class class$;
index 64c147c530ecc291af9bc572492843a5f43ce5ac..b3e1a72df0a1d0b0e0d1c7c772b8af386d9c187e 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -34,7 +38,7 @@ public: // actually package-private
   RETokenLookAhead(::gnu::java::util::regex::REToken *, jboolean);
   jint getMaximumLength();
   ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
   ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) re;
   jboolean negative;
 public:
index 83d9b477a23536ac922227fb70b3aeecb24050cd..dc771b480d677601ff43863b887ef02b8c605e49 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -33,7 +37,7 @@ public: // actually package-private
   virtual jint getMaximumLength();
   RETokenLookBehind$RETokenMatchHereOnly(jint);
   virtual ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
-  virtual void dump(::java::lang::StringBuffer *);
+  virtual void dump(::gnu::java::lang::CPStringBuilder *);
 private:
   jint __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) index;
 public:
index b07cf6ccc9f13ed30a8b14fa92e82bc029c6226d..3aa8013f0381734aab0f4613c3451a7d7618f8fd 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -34,7 +38,7 @@ public: // actually package-private
   RETokenLookBehind(::gnu::java::util::regex::REToken *, jboolean);
   jint getMaximumLength();
   ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
   ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) re;
   jboolean negative;
 public:
index 9f610cd7ade8895387fc4bbf2aaa7aac9bf983e1..a20a1a3ef91daee63ba55e529aa0e4b0c9d01d59 100644 (file)
@@ -15,6 +15,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -42,7 +46,7 @@ private:
 public: // actually package-private
   jboolean returnsFixedLengthMatches();
   jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
 private:
   ::gnu::java::util::regex::RETokenNamedProperty$Handler * getHandler(::java::lang::String *);
 public: // actually package-private
index dec0561b405c6d6a86fd1c012568a1583255e5cf..b7f819dd795f1e109049ca788d7659dbef010d85 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -31,8 +35,8 @@ class gnu::java::util::regex::RETokenOneOf : public ::gnu::java::util::regex::RE
 
 public: // actually package-private
   RETokenOneOf(jint, ::java::lang::String *, jboolean, jboolean);
-  RETokenOneOf(jint, ::java::util::Vector *, jboolean);
-  RETokenOneOf(jint, ::java::util::Vector *, ::java::util::Vector *, jboolean);
+  RETokenOneOf(jint, ::java::util::List *, jboolean);
+  RETokenOneOf(jint, ::java::util::List *, ::java::util::List *, jboolean);
   jint getMinimumLength();
   jint getMaximumLength();
   jboolean match(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
@@ -49,12 +53,12 @@ private:
 public: // actually package-private
   jboolean returnsFixedLengthMatches();
   jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
 private:
-  ::java::util::Vector * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) options;
+  ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) options;
   jboolean negative;
   jboolean matchesOneChar;
-  ::java::util::Vector * addition;
+  ::java::util::List * addition;
 public:
   static ::java::lang::Class class$;
 };
index a6a40c09ab3095cfcbe09f288c6a3638602b94ff..5704ab8e6fdb93a3994e62ffec0bae7441d7d594 100644 (file)
@@ -15,6 +15,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -40,7 +44,7 @@ public: // actually package-private
   jboolean matchOneChar(jchar);
   jboolean returnsFixedLengthMatches();
   jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
   jint __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) type;
   jboolean insens;
   jboolean negated;
index 22ff21a3f03744686399b632171b077e7ac9e0fa..fa3c923b7bf312c55b747c7568769a9f4fed65a8 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -37,7 +41,7 @@ public: // actually package-private
   jboolean matchOneChar(jchar);
   jboolean returnsFixedLengthMatches();
   jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
 private:
   jchar __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) lo;
   jchar hi;
diff --git a/libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.h b/libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.h
deleted file mode 100644 (file)
index 11bf5c1..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-
-// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
-
-#ifndef __gnu_java_util_regex_RETokenRepeated$FindMatchControlStack__
-#define __gnu_java_util_regex_RETokenRepeated$FindMatchControlStack__
-
-#pragma interface
-
-#include <java/util/ArrayList.h>
-extern "Java"
-{
-  namespace gnu
-  {
-    namespace java
-    {
-      namespace util
-      {
-        namespace regex
-        {
-            class RETokenRepeated$FindMatchControl;
-            class RETokenRepeated$FindMatchControlStack;
-        }
-      }
-    }
-  }
-}
-
-class gnu::java::util::regex::RETokenRepeated$FindMatchControlStack : public ::java::util::ArrayList
-{
-
-  RETokenRepeated$FindMatchControlStack();
-  void push(::gnu::java::util::regex::RETokenRepeated$FindMatchControl *);
-  ::gnu::java::util::regex::RETokenRepeated$FindMatchControl * pop();
-  jboolean empty();
-public: // actually package-private
-  RETokenRepeated$FindMatchControlStack(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *);
-  static void access$1(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *, ::gnu::java::util::regex::RETokenRepeated$FindMatchControl *);
-  static jboolean access$2(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *);
-  static ::gnu::java::util::regex::RETokenRepeated$FindMatchControl * access$3(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *);
-public:
-  static ::java::lang::Class class$;
-};
-
-#endif // __gnu_java_util_regex_RETokenRepeated$FindMatchControlStack__
index 17de5445b1fc0f71b5d772387ae020f98143fa7b..09aca7a5803bf6deb366b99ab0e943dfac80d6db 100644 (file)
@@ -15,6 +15,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -25,7 +29,6 @@ extern "Java"
             class REToken;
             class RETokenRepeated;
             class RETokenRepeated$DoablesFinder;
-            class RETokenRepeated$FindMatchControlStack;
             class RETokenRepeated$TryAnotherResult;
         }
       }
@@ -48,7 +51,7 @@ public: // actually package-private
   ::gnu::java::util::regex::REMatch * backtrack(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::java::lang::Object *);
 private:
   ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::BacktrackStack *);
-  ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::BacktrackStack *, ::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *);
+  ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::BacktrackStack *, ::java::util::Deque *);
   ::gnu::java::util::regex::RETokenRepeated$TryAnotherResult * tryAnother(::gnu::java::util::regex::BacktrackStack *, ::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint, ::gnu::java::util::regex::RETokenRepeated$DoablesFinder *, JArray< jint > *);
 public: // actually package-private
   jboolean match(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
@@ -61,7 +64,7 @@ private:
   ::gnu::java::util::regex::REMatch * backtrackFixedLength(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::java::lang::Object *);
   ::gnu::java::util::regex::REMatch * findMatchFixedLength(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint, jint);
 public: // actually package-private
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
 private:
   ::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) token;
   jint min;
index da6ad7f38bd94f517671ce4e1cdac28dbee6f108..95654f7959378d363a4abf8ebb710f5c8aed2be5 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -34,9 +38,9 @@ public: // actually package-private
   RETokenStart(jint, ::java::lang::String *, jboolean);
   virtual jint getMaximumLength();
   virtual ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
-  virtual jboolean returnsFixedLengthmatches();
+  virtual jboolean returnsFixedLengthMatches();
   virtual jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
-  virtual void dump(::java::lang::StringBuffer *);
+  virtual void dump(::gnu::java::lang::CPStringBuilder *);
 private:
   ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) newline;
   jboolean check_java_line_terminators;
index 1d3bb6b97c43a7557fe14393e22301699a2cded5..18d5b2ca101a0eb0842c07a909fa89ab889391f3 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
   {
     namespace java
     {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
       namespace util
       {
         namespace regex
@@ -35,7 +39,7 @@ public: // actually package-private
   ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
   jboolean returnsFixedLengthMatches();
   jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
-  void dump(::java::lang::StringBuffer *);
+  void dump(::gnu::java::lang::CPStringBuilder *);
 private:
   jboolean __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) negated;
   jint where;
diff --git a/libjava/gnu/javax/activation/viewers/ImageViewer.h b/libjava/gnu/javax/activation/viewers/ImageViewer.h
new file mode 100644 (file)
index 0000000..bda76a6
--- /dev/null
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_activation_viewers_ImageViewer__
+#define __gnu_javax_activation_viewers_ImageViewer__
+
+#pragma interface
+
+#include <java/awt/Component.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace javax
+    {
+      namespace activation
+      {
+        namespace viewers
+        {
+            class ImageViewer;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Dimension;
+        class Graphics;
+        class Image;
+    }
+  }
+  namespace javax
+  {
+    namespace activation
+    {
+        class DataHandler;
+    }
+  }
+}
+
+class gnu::javax::activation::viewers::ImageViewer : public ::java::awt::Component
+{
+
+public:
+  ImageViewer();
+  virtual ::java::awt::Dimension * getPreferredSize();
+  virtual void setCommandContext(::java::lang::String *, ::javax::activation::DataHandler *);
+  virtual jboolean imageUpdate(::java::awt::Image *, jint, jint, jint, jint, jint);
+  virtual void paint(::java::awt::Graphics *);
+private:
+  ::java::awt::Image * __attribute__((aligned(__alignof__( ::java::awt::Component)))) image;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_activation_viewers_ImageViewer__
diff --git a/libjava/gnu/javax/activation/viewers/TextEditor.h b/libjava/gnu/javax/activation/viewers/TextEditor.h
new file mode 100644 (file)
index 0000000..0047d43
--- /dev/null
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_activation_viewers_TextEditor__
+#define __gnu_javax_activation_viewers_TextEditor__
+
+#pragma interface
+
+#include <java/awt/TextArea.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace javax
+    {
+      namespace activation
+      {
+        namespace viewers
+        {
+            class TextEditor;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Dimension;
+      namespace event
+      {
+          class ActionEvent;
+      }
+    }
+  }
+  namespace javax
+  {
+    namespace activation
+    {
+        class DataHandler;
+    }
+  }
+}
+
+class gnu::javax::activation::viewers::TextEditor : public ::java::awt::TextArea
+{
+
+public:
+  TextEditor();
+  virtual ::java::awt::Dimension * getPreferredSize();
+  virtual void setCommandContext(::java::lang::String *, ::javax::activation::DataHandler *);
+  virtual void actionPerformed(::java::awt::event::ActionEvent *);
+private:
+  ::javax::activation::DataHandler * __attribute__((aligned(__alignof__( ::java::awt::TextArea)))) dh;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_activation_viewers_TextEditor__
diff --git a/libjava/gnu/javax/activation/viewers/TextViewer.h b/libjava/gnu/javax/activation/viewers/TextViewer.h
new file mode 100644 (file)
index 0000000..56c5f79
--- /dev/null
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_activation_viewers_TextViewer__
+#define __gnu_javax_activation_viewers_TextViewer__
+
+#pragma interface
+
+#include <java/awt/TextArea.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace javax
+    {
+      namespace activation
+      {
+        namespace viewers
+        {
+            class TextViewer;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Dimension;
+    }
+  }
+  namespace javax
+  {
+    namespace activation
+    {
+        class DataHandler;
+    }
+  }
+}
+
+class gnu::javax::activation::viewers::TextViewer : public ::java::awt::TextArea
+{
+
+public:
+  TextViewer();
+  virtual ::java::awt::Dimension * getPreferredSize();
+  virtual void setCommandContext(::java::lang::String *, ::javax::activation::DataHandler *);
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_activation_viewers_TextViewer__
diff --git a/libjava/gnu/javax/management/Server$LazyListenersHolder.h b/libjava/gnu/javax/management/Server$LazyListenersHolder.h
new file mode 100644 (file)
index 0000000..dfe8618
--- /dev/null
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_management_Server$LazyListenersHolder__
+#define __gnu_javax_management_Server$LazyListenersHolder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace javax
+    {
+      namespace management
+      {
+          class Server$LazyListenersHolder;
+      }
+    }
+  }
+}
+
+class gnu::javax::management::Server$LazyListenersHolder : public ::java::lang::Object
+{
+
+  Server$LazyListenersHolder();
+public: // actually package-private
+  static ::java::util::Map * access$0();
+private:
+  static ::java::util::Map * listeners;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_management_Server$LazyListenersHolder__
index 2d9495630a550ef383d0dfe3addd3455f5f6f97a..e23fe0216536cc088c4e4f11e14a8291693dc595 100644 (file)
@@ -91,11 +91,10 @@ public:
 private:
   void notify(::javax::management::ObjectName *, ::java::lang::String *);
   static ::javax::management::ObjectName * DELEGATE_NAME;
-  ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) beans;
+  ::java::util::concurrent::ConcurrentHashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) beans;
   ::java::lang::String * defaultDomain;
   ::javax::management::MBeanServer * outer;
   ::javax::management::loading::ClassLoaderRepository * repository;
-  ::java::util::Map * listeners;
   ::javax::management::MBeanServerDelegate * delegate;
   static ::java::util::concurrent::atomic::AtomicLong * sequenceNumber;
 public:
index 56bd3954b647089fc380aeaf3170ed333787f095..28ac90d31b36726c6a64839ddf1a71dc86f83f86 100644 (file)
@@ -11,6 +11,13 @@ extern "Java"
 {
   namespace gnu
   {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
     namespace javax
     {
       namespace security
@@ -53,7 +60,7 @@ private:
 public: // actually package-private
   jboolean initialised;
 private:
-  ::java::lang::StringBuffer * sb;
+  ::gnu::java::lang::CPStringBuilder * sb;
   jint sbNdx;
 public:
   static ::java::lang::Class class$;
index e14ac0f9529f17022d9478fd5ad0ffde91347cca..db0e57d92dbc8afe64fe20b8a36e0cdeb491566c 100644 (file)
@@ -39,6 +39,7 @@ class gnu::xml::dom::DomAttr : public ::gnu::xml::dom::DomNsNode
 
 public: // actually protected
   DomAttr(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *);
+  DomAttr(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
 public:
   virtual ::java::lang::String * getName();
   virtual jboolean getSpecified();
index 35ed33eaaa65276e4753a21cf2f8e600682d3f82..32698e51bbfc66e65047025f3facaa2a7c0aafb0 100644 (file)
@@ -41,6 +41,7 @@ class gnu::xml::dom::DomElement : public ::gnu::xml::dom::DomNsNode
 
 public: // actually protected
   DomElement(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *);
+  DomElement(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
 public:
   virtual ::org::w3c::dom::NamedNodeMap * getAttributes();
   virtual jboolean hasAttributes();
index 13dc4940fc5660aceb16f52244af0743aff1212e..bd75d27d578a28c417c17a3e343ba696e3a16571 100644 (file)
@@ -27,6 +27,7 @@ class gnu::xml::dom::DomNsNode : public ::gnu::xml::dom::DomNode
 
 public: // actually package-private
   DomNsNode(jshort, ::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *);
+  DomNsNode(jshort, ::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
 public:
   virtual ::java::lang::String * getNodeName();
 public: // actually package-private
@@ -43,7 +44,6 @@ private:
   ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomNode)))) name;
   ::java::lang::String * namespace$;
   ::java::lang::String * prefix;
-public: // actually package-private
   ::java::lang::String * localName;
 public:
   static ::java::lang::Class class$;
index 54f4e5f159604f8d1e25454489e267264dc4111a..fc726b78800a401fcc6f3bd3b1a6f37595651e84 100644 (file)
@@ -61,6 +61,7 @@ public:
   virtual ::org::w3c::dom::Document * getDocument();
   virtual void setReader(::org::xml::sax::XMLReader *);
   virtual void setDocumentLocator(::org::xml::sax::Locator *);
+  virtual void setNamespaceAware(jboolean);
   virtual void startDocument();
   virtual void endDocument();
   virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *);
@@ -104,8 +105,8 @@ private:
   static ::java::lang::String * XMLNS_URI;
   static ::java::lang::String * XMLNS_PREFIX;
   static ::java::util::HashSet * PREDEFINED_ENTITIES;
-public: // actually package-private
   jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) namespaceAware;
+public: // actually package-private
   jboolean ignoreWhitespace;
   jboolean expandEntityReferences;
   jboolean ignoreComments;
index 3136a60e59139e599aef054010a97410799679fe..0fb26669387a9dcdcff1802256d909dfdf7a1e4f 100644 (file)
@@ -13,6 +13,13 @@ extern "Java"
 {
   namespace gnu
   {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
     namespace xml
     {
       namespace stream
@@ -145,13 +152,13 @@ private:
   void readMarkupdecl(jboolean);
   void readElementDecl();
   void readContentspec(::java::lang::String *);
-  ::gnu::xml::stream::XMLParser$ElementContentModel * readElements(::java::lang::StringBuffer *);
-  ::gnu::xml::stream::XMLParser$ContentParticle * readContentParticle(::java::lang::StringBuffer *);
+  ::gnu::xml::stream::XMLParser$ElementContentModel * readElements(::gnu::java::lang::CPStringBuilder *);
+  ::gnu::xml::stream::XMLParser$ContentParticle * readContentParticle(::gnu::java::lang::CPStringBuilder *);
   void readAttlistDecl();
   void readAttDef(::java::lang::String *);
-  ::java::lang::String * readAttType(::java::lang::StringBuffer *, ::java::util::HashSet *);
-  void readEnumeration(jboolean, ::java::lang::StringBuffer *, ::java::util::HashSet *);
-  void readNotationType(::java::lang::StringBuffer *, ::java::util::HashSet *);
+  ::java::lang::String * readAttType(::gnu::java::lang::CPStringBuilder *, ::java::util::HashSet *);
+  void readEnumeration(jboolean, ::gnu::java::lang::CPStringBuilder *, ::java::util::HashSet *);
+  void readNotationType(::gnu::java::lang::CPStringBuilder *, ::java::util::HashSet *);
   void readDefault(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::HashSet *);
   void readEntityDecl(jboolean);
   void readNotationDecl(jboolean);
index d8c2740809d439ef528a2da8386adf89210e3295..20dadf66a6a1aa52483449468e63aa18326bff3a 100644 (file)
@@ -13,6 +13,13 @@ extern "Java"
 {
   namespace gnu
   {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
     namespace xml
     {
       namespace transform
@@ -52,7 +59,7 @@ public: // actually package-private
   AbstractNumberNode(::gnu::xml::transform::TemplateNode *, ::java::lang::String *, jint, ::java::lang::String *, jint);
   virtual void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
   virtual ::java::lang::String * format(::java::lang::String *, JArray< jint > *);
-  virtual void format(::java::lang::StringBuffer *, jint, ::java::lang::String *);
+  virtual void format(::gnu::java::lang::CPStringBuilder *, jint, ::java::lang::String *);
   static jboolean isAlphanumeric(jchar);
   static ::java::lang::String * alphabetic(jchar, jint);
   static ::java::lang::String * roman(jboolean, jint);
index 6a815cfafd84de3043fc6116821df25e07929da7..aebd3e05054a7bad9224d129737ced06d459ecaf 100644 (file)
@@ -52,13 +52,17 @@ class gnu::xml::transform::ParameterNode : public ::gnu::xml::transform::Templat
 
 public: // actually package-private
   ParameterNode(::javax::xml::namespace::QName *, ::gnu::xml::xpath::Expr *, jint);
-  ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *);
+  ::gnu::xml::transform::ParameterNode * ParameterNode$clone(::gnu::xml::transform::Stylesheet *);
   void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
   ::java::lang::Object * getValue(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint);
 public:
   jboolean references(::javax::xml::namespace::QName *);
-  jint compareTo(::java::lang::Object *);
+  jint ParameterNode$compareTo(::gnu::xml::transform::ParameterNode *);
   ::java::lang::String * toString();
+public: // actually package-private
+  ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *);
+public:
+  jint compareTo(::java::lang::Object *);
 public: // actually package-private
   ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) name;
   ::gnu::xml::xpath::Expr * select;
index f433dc39668787751a32eb9ff091e75d14b533e6..b35aa5b12c9a631796ffffa01e8f84542e8b74f0 100644 (file)
@@ -55,6 +55,10 @@ public: // actually package-private
   ::java::lang::String * key(::org::w3c::dom::Node *);
   void init(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
   jboolean references(::javax::xml::namespace::QName *);
+  ::gnu::xml::transform::SortKey * clone(::gnu::xml::transform::Stylesheet *);
+private:
+  ::gnu::xml::transform::TemplateNode * cloneAttributeValueTemplate(::gnu::xml::transform::TemplateNode *, ::gnu::xml::transform::Stylesheet *);
+public: // actually package-private
   static const jint DEFAULT = 0;
   static const jint UPPER_FIRST = 1;
   static const jint LOWER_FIRST = 2;
index c2a3f20d6db7c6061f15372b34e4280ce5e1c73c..8bfebcc05c94cbb016abd266b742877c75e769c6 100644 (file)
@@ -120,6 +120,7 @@ public: // actually package-private
   static ::java::lang::String * getRequiredAttribute(::org::w3c::dom::NamedNodeMap *, ::java::lang::String *, ::org::w3c::dom::Node *);
 public:
   virtual void handle(jshort, ::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
+  virtual ::java::lang::String * toString();
 public: // actually package-private
   static ::java::lang::String * XSL_NS;
 private:
index d79409b3df81f751ad6d0c953f6b56385c644fd0..d9cc67bb5bea1b201bed449b387504471ffb7ea7 100644 (file)
@@ -41,6 +41,7 @@ public: // actually package-private
 public:
   virtual ::javax::xml::transform::Transformer * newTransformer();
   virtual ::java::util::Properties * getOutputProperties();
+  virtual ::java::lang::String * toString();
 public: // actually package-private
   ::gnu::xml::transform::TransformerFactoryImpl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) factory;
   ::gnu::xml::transform::Stylesheet * stylesheet;
index 0f99c57c86daa97e86352d26a24289b6ff14dd84..0bde3e80a4b9365f81772514b3464a8050132103 100644 (file)
@@ -19,6 +19,16 @@ extern "Java"
       }
     }
   }
+  namespace org
+  {
+    namespace w3c
+    {
+      namespace dom
+      {
+          class Node;
+      }
+    }
+  }
 }
 
 class gnu::xml::transform::XSLComparator : public ::java::lang::Object
@@ -27,6 +37,7 @@ class gnu::xml::transform::XSLComparator : public ::java::lang::Object
 public: // actually package-private
   XSLComparator(::java::util::List *);
 public:
+  virtual jint XSLComparator$compare(::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
   virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
 public: // actually package-private
   ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sortKeys;
index ea354b999f3fe3529b99ae51394aa9dbf9145136..56252a5c1998d207beed7087c0fe66d2332517cc 100644 (file)
@@ -13,6 +13,13 @@ extern "Java"
 {
   namespace gnu
   {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
     namespace xml
     {
       namespace util
@@ -118,7 +125,7 @@ private:
   jint elementNestLevel;
   ::java::lang::String * eol;
   jshort dangerMask;
-  ::java::lang::StringBuffer * stringBuf;
+  ::gnu::java::lang::CPStringBuilder * stringBuf;
   ::org::xml::sax::Locator * locator;
   ::org::xml::sax::ErrorHandler * errHandler;
   jboolean expandingEntities;
index f34cb311a47d53501704ac304727fcb94b46e821..26abc2cff3e1655636ab57f125145bd45a431aaa 100644 (file)
@@ -19,6 +19,16 @@ extern "Java"
       }
     }
   }
+  namespace org
+  {
+    namespace w3c
+    {
+      namespace dom
+      {
+          class Node;
+      }
+    }
+  }
 }
 
 class gnu::xml::xpath::DocumentOrderComparator : public ::java::lang::Object
@@ -26,6 +36,7 @@ class gnu::xml::xpath::DocumentOrderComparator : public ::java::lang::Object
 
 public:
   DocumentOrderComparator();
+  virtual jint DocumentOrderComparator$compare(::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
   virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
   static ::java::lang::Class class$;
 };
index 1036451c7ec3b84fbde8e3f5f7a1f7395478b695..b415ffd0460b2e6ccf8b3a4d285df7b184fb5c9d 100644 (file)
@@ -89,6 +89,7 @@ AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
 ANONVERSCRIPT_FALSE = @ANONVERSCRIPT_FALSE@
 ANONVERSCRIPT_TRUE = @ANONVERSCRIPT_TRUE@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -109,6 +110,8 @@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CPU = @CPU@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
 CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@
 CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@
 CXX = @CXX@
index a18ebbd6fdead0f720621be143eaa73ab700709c..2113fb86de9bb48e782fabf7ca4dd1eac1637f50 100644 (file)
@@ -32,6 +32,8 @@ public:
   static ::java::awt::AlphaComposite * getInstance(jint);
   static ::java::awt::AlphaComposite * getInstance(jint, jfloat);
   ::java::awt::CompositeContext * createContext(::java::awt::image::ColorModel *, ::java::awt::image::ColorModel *, ::java::awt::RenderingHints *);
+  ::java::awt::AlphaComposite * derive(jint);
+  ::java::awt::AlphaComposite * derive(jfloat);
   jfloat getAlpha();
   jint getRule();
   jint hashCode();
index 97aed5ce9c1b4cc52b427283028e97a0cf29fc9d..20414cb31d9e24e589dc5078dc79e469fbe649d1 100644 (file)
@@ -26,8 +26,8 @@ extern "Java"
 class java::awt::MouseInfo : public ::java::lang::Object
 {
 
-public:
   MouseInfo();
+public:
   static ::java::awt::PointerInfo * getPointerInfo();
   static jint getNumberOfButtons();
 private:
index 3ed3b82ccad76a5fe28f40f94196232b84f73a15..1eccdc58320e07c77c717d6d8f995a2c97d8a650 100644 (file)
@@ -77,7 +77,7 @@ public:
   virtual jboolean equals(::java::lang::Object *);
   virtual ::java::awt::color::ColorSpace * getColorSpace();
   virtual ::java::awt::image::ColorModel * coerceData(::java::awt::image::WritableRaster *, jboolean);
-public: // actually protected
+public: // actually package-private
   virtual void coerceDataWorker(::java::awt::image::WritableRaster *, jboolean);
 public:
   virtual jboolean isCompatibleRaster(::java::awt::image::Raster *);
index 5576f65398b7b5bf5938d21e71bb4f5930ff08b8..0453cc16c379b55eee8214ca2c885bb7461fb9e4 100644 (file)
@@ -28,8 +28,8 @@ extern "Java"
 class java::beans::beancontext::BeanContextServicesSupport$BCSSProxyServiceProvider : public ::java::lang::Object
 {
 
-public: // actually protected
-  BeanContextServicesSupport$BCSSProxyServiceProvider(::java::beans::beancontext::BeanContextServicesSupport *);
+public: // actually package-private
+  BeanContextServicesSupport$BCSSProxyServiceProvider(::java::beans::beancontext::BeanContextServicesSupport *, ::java::beans::beancontext::BeanContextServiceProvider *);
 public:
   virtual ::java::util::Iterator * getCurrentServiceSelectors(::java::beans::beancontext::BeanContextServices *, ::java::lang::Class *);
   virtual ::java::lang::Object * getService(::java::beans::beancontext::BeanContextServices *, ::java::lang::Object *, ::java::lang::Class *, ::java::lang::Object *);
index d5d2de3a16766a416225f6de14c29e42859c2e89..ee3f559a490048a72329556e35e018e6f883f356 100644 (file)
@@ -33,11 +33,11 @@ private:
   void resize(jint);
 public:
   virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
-  virtual ::java::io::Writer * CharArrayWriter$append(::java::lang::CharSequence *, jint, jint);
+  virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *, jint, jint);
   virtual ::java::lang::Appendable * append(::java::lang::CharSequence *);
-  virtual ::java::io::Writer * CharArrayWriter$append(::java::lang::CharSequence *);
+  virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *);
   virtual ::java::lang::Appendable * append(jchar);
-  virtual ::java::io::Writer * CharArrayWriter$append(jchar);
+  virtual ::java::io::Writer * Writer$append(jchar);
 private:
   static const jint DEFAULT_INITIAL_BUFFER_SIZE = 32;
 public: // actually protected
diff --git a/libjava/java/lang/AbstractStringBuffer.h b/libjava/java/lang/AbstractStringBuffer.h
new file mode 100644 (file)
index 0000000..256004c
--- /dev/null
@@ -0,0 +1,85 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_AbstractStringBuffer__
+#define __java_lang_AbstractStringBuffer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::AbstractStringBuffer : public ::java::lang::Object
+{
+
+public: // actually package-private
+  AbstractStringBuffer();
+  AbstractStringBuffer(jint);
+  AbstractStringBuffer(::java::lang::String *);
+  AbstractStringBuffer(::java::lang::CharSequence *);
+public:
+  virtual void ensureCapacity(jint);
+  virtual void setLength(jint);
+  virtual jchar charAt(jint);
+  virtual jint codePointAt(jint);
+  virtual jint codePointBefore(jint);
+  virtual void getChars(jint, jint, JArray< jchar > *, jint);
+  virtual void setCharAt(jint, jchar);
+  virtual ::java::lang::AbstractStringBuffer * append(::java::lang::Object *);
+  virtual ::java::lang::AbstractStringBuffer * append(::java::lang::String *);
+  virtual ::java::lang::AbstractStringBuffer * append(::java::lang::StringBuffer *);
+  virtual ::java::lang::AbstractStringBuffer * append(JArray< jchar > *);
+  virtual ::java::lang::AbstractStringBuffer * append(JArray< jchar > *, jint, jint);
+  virtual ::java::lang::AbstractStringBuffer * append(jboolean);
+  virtual ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(jchar);
+  virtual ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *);
+  virtual ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *, jint, jint);
+  virtual ::java::lang::AbstractStringBuffer * append(jint);
+  virtual ::java::lang::AbstractStringBuffer * append(jlong);
+  virtual ::java::lang::AbstractStringBuffer * append(jfloat);
+  virtual ::java::lang::AbstractStringBuffer * append(jdouble);
+  virtual ::java::lang::AbstractStringBuffer * appendCodePoint(jint);
+  virtual ::java::lang::AbstractStringBuffer * delete$(jint, jint);
+  virtual ::java::lang::AbstractStringBuffer * deleteCharAt(jint);
+  virtual ::java::lang::AbstractStringBuffer * replace(jint, jint, ::java::lang::String *);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *, jint, jint);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::Object *);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::String *);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, jboolean);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, jchar);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, jint);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, jlong);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, jfloat);
+  virtual ::java::lang::AbstractStringBuffer * insert(jint, jdouble);
+  virtual jint indexOf(::java::lang::String *);
+  virtual jint indexOf(::java::lang::String *, jint);
+  virtual jint lastIndexOf(::java::lang::String *);
+  virtual jint lastIndexOf(::java::lang::String *, jint);
+  virtual ::java::lang::AbstractStringBuffer * reverse();
+  virtual void trimToSize();
+  virtual jint codePointCount(jint, jint);
+  virtual jint offsetByCodePoints(jint, jint);
+public: // actually package-private
+  virtual void ensureCapacity_unsynchronized(jint);
+private:
+  jboolean regionMatches(jint, ::java::lang::String *);
+public:
+  virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+  virtual ::java::lang::Appendable * append(::java::lang::CharSequence *);
+  virtual ::java::lang::Appendable * append(jchar);
+  virtual jint length() = 0;
+  virtual ::java::lang::CharSequence * subSequence(jint, jint) = 0;
+public: // actually package-private
+  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
+  JArray< jchar > * value;
+private:
+  static const jint DEFAULT_CAPACITY = 16;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_AbstractStringBuffer__
diff --git a/libjava/java/lang/AbstractStringBuffer.java b/libjava/java/lang/AbstractStringBuffer.java
new file mode 100644 (file)
index 0000000..fe128b8
--- /dev/null
@@ -0,0 +1,1027 @@
+/* AbstractStringBuffer.java -- Growable strings
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+   Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.io.Serializable;
+
+/**
+ * This class is based on gnu.classpath.ClasspathStringBuffer but
+ * is package-private to java.lang so it can be used as the basis
+ * for StringBuffer and StringBuilder.
+ * If you modify this, please consider also modifying that code.
+ */
+abstract class AbstractStringBuffer
+  implements Serializable, CharSequence, Appendable
+{
+
+  /**
+   * Index of next available character (and thus the size of the current
+   * string contents).  Note that this has permissions set this way so that
+   * String can get the value.
+   *
+   * @serial the number of characters in the buffer
+   */
+  int count;
+
+  /**
+   * The buffer.  Note that this has permissions set this way so that String
+   * can get the value.
+   *
+   * @serial the buffer
+   */
+  char[] value;
+
+  /**
+   * The default capacity of a buffer.
+   */
+  private static final int DEFAULT_CAPACITY = 16;
+
+  /**
+   * Create a new AbstractStringBuffer with default capacity 16.
+   */
+  AbstractStringBuffer()
+  {
+    this(DEFAULT_CAPACITY);
+  }
+
+  /**
+   * Create an empty <code>StringBuffer</code> with the specified initial
+   * capacity.
+   *
+   * @param capacity the initial capacity
+   * @throws NegativeArraySizeException if capacity is negative
+   */
+  AbstractStringBuffer(int capacity)
+  {
+    value = new char[capacity];
+  }
+
+  /**
+   * Create a new <code>StringBuffer</code> with the characters in the
+   * specified <code>String</code>. Initial capacity will be the size of the
+   * String plus 16.
+   *
+   * @param str the <code>String</code> to convert
+   * @throws NullPointerException if str is null
+   */
+  AbstractStringBuffer(String str)
+  {
+    count = str.count;
+    value = new char[count + DEFAULT_CAPACITY];
+    str.getChars(0, count, value, 0);
+  }
+
+  /**
+   * Create a new <code>StringBuffer</code> with the characters in the
+   * specified <code>CharSequence</code>. Initial capacity will be the
+   * length of the sequence plus 16; if the sequence reports a length
+   * less than or equal to 0, then the initial capacity will be 16.
+   *
+   * @param seq the initializing <code>CharSequence</code>
+   * @throws NullPointerException if str is null
+   * @since 1.5
+   */
+  AbstractStringBuffer(CharSequence seq)
+  {
+    int len = seq.length();
+    count = len <= 0 ? 0 : len;
+    value = new char[count + DEFAULT_CAPACITY];
+    for (int i = 0; i < len; ++i)
+      value[i] = seq.charAt(i);
+  }
+
+  /**
+   * Increase the capacity of this <code>StringBuffer</code>. This will
+   * ensure that an expensive growing operation will not occur until
+   * <code>minimumCapacity</code> is reached. The buffer is grown to the
+   * larger of <code>minimumCapacity</code> and
+   * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+   *
+   * @param minimumCapacity the new capacity
+   * @see #capacity()
+   */
+  public void ensureCapacity(int minimumCapacity)
+  {
+    ensureCapacity_unsynchronized(minimumCapacity);
+  }
+
+  /**
+   * Set the length of this StringBuffer. If the new length is greater than
+   * the current length, all the new characters are set to '\0'. If the new
+   * length is less than the current length, the first <code>newLength</code>
+   * characters of the old array will be preserved, and the remaining
+   * characters are truncated.
+   *
+   * @param newLength the new length
+   * @throws IndexOutOfBoundsException if the new length is negative
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   * @see #length()
+   */
+  public void setLength(int newLength)
+  {
+    if (newLength < 0)
+      throw new StringIndexOutOfBoundsException(newLength);
+
+    int valueLength = value.length;
+
+    /* Always call ensureCapacity_unsynchronized in order to preserve
+       copy-on-write semantics.  */
+    ensureCapacity_unsynchronized(newLength);
+
+    if (newLength < valueLength)
+      {
+        /* If the StringBuffer's value just grew, then we know that
+           value is newly allocated and the region between count and
+           newLength is filled with '\0'.  */
+       count = newLength;
+      }
+    else
+      {
+       /* The StringBuffer's value doesn't need to grow.  However,
+          we should clear out any cruft that may exist.  */
+       while (count < newLength)
+          value[count++] = '\0';
+      }
+  }
+
+  /**
+   * Get the character at the specified index.
+   *
+   * @param index the index of the character to get, starting at 0
+   * @return the character at the specified index
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   */
+  public char charAt(int index)
+  {
+    if (index < 0 || index >= count)
+      throw new StringIndexOutOfBoundsException(index);
+    return value[index];
+  }
+
+  /**
+   * Get the code point at the specified index.  This is like #charAt(int),
+   * but if the character is the start of a surrogate pair, and the
+   * following character completes the pair, then the corresponding
+   * supplementary code point is returned.
+   * @param index the index of the codepoint to get, starting at 0
+   * @return the codepoint at the specified index
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   * @since 1.5
+   */
+  public int codePointAt(int index)
+  {
+    return Character.codePointAt(value, index, count);
+  }
+
+  /**
+   * Get the code point before the specified index.  This is like
+   * #codePointAt(int), but checks the characters at <code>index-1</code> and
+   * <code>index-2</code> to see if they form a supplementary code point.
+   * @param index the index just past the codepoint to get, starting at 0
+   * @return the codepoint at the specified index
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   * @since 1.5
+   */
+  public int codePointBefore(int index)
+  {
+    // Character.codePointBefore() doesn't perform this check.  We
+    // could use the CharSequence overload, but this is just as easy.
+    if (index >= count)
+      throw new IndexOutOfBoundsException();
+    return Character.codePointBefore(value, index, 1);
+  }
+
+  /**
+   * Get the specified array of characters. <code>srcOffset - srcEnd</code>
+   * characters will be copied into the array you pass in.
+   *
+   * @param srcOffset the index to start copying from (inclusive)
+   * @param srcEnd the index to stop copying from (exclusive)
+   * @param dst the array to copy into
+   * @param dstOffset the index to start copying into
+   * @throws NullPointerException if dst is null
+   * @throws IndexOutOfBoundsException if any source or target indices are
+   *         out of range (while unspecified, source problems cause a
+   *         StringIndexOutOfBoundsException, and dest problems cause an
+   *         ArrayIndexOutOfBoundsException)
+   * @see System#arraycopy(Object, int, Object, int, int)
+   */
+  public void getChars(int srcOffset, int srcEnd,
+                      char[] dst, int dstOffset)
+  {
+    if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
+      throw new StringIndexOutOfBoundsException();
+    System.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
+  }
+
+  /**
+   * Set the character at the specified index.
+   *
+   * @param index the index of the character to set starting at 0
+   * @param ch the value to set that character to
+   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   */
+  public void setCharAt(int index, char ch)
+  {
+    if (index < 0 || index >= count)
+      throw new StringIndexOutOfBoundsException(index);
+    // Call ensureCapacity to enforce copy-on-write.
+    ensureCapacity_unsynchronized(count);
+    value[index] = ch;
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param obj the <code>Object</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(Object)
+   * @see #append(String)
+   */
+  public AbstractStringBuffer append(Object obj)
+  {
+    return append(String.valueOf(obj));
+  }
+
+  /**
+   * Append the <code>String</code> to this <code>StringBuffer</code>. If
+   * str is null, the String "null" is appended.
+   *
+   * @param str the <code>String</code> to append
+   * @return this <code>StringBuffer</code>
+   */
+  public AbstractStringBuffer append(String str)
+  {
+    if (str == null)
+      str = "null";
+    int len = str.count;
+    ensureCapacity_unsynchronized(count + len);
+    str.getChars(0, len, value, count);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Append the <code>StringBuilder</code> value of the argument to this
+   * <code>StringBuilder</code>. This behaves the same as
+   * <code>append((Object) stringBuffer)</code>, except it is more efficient.
+   *
+   * @param stringBuffer the <code>StringBuilder</code> to convert and append
+   * @return this <code>StringBuilder</code>
+   * @see #append(Object)
+   */
+  public AbstractStringBuffer append(StringBuffer stringBuffer)
+  {
+    if (stringBuffer == null)
+      return append("null");
+    synchronized (stringBuffer)
+      {
+       int len = stringBuffer.count;
+       ensureCapacity(count + len);
+       System.arraycopy(stringBuffer.value, 0, value, count, len);
+       count += len;
+      }
+    return this;
+  }
+
+  /**
+   * Append the <code>char</code> array to this <code>StringBuffer</code>.
+   * This is similar (but more efficient) than
+   * <code>append(new String(data))</code>, except in the case of null.
+   *
+   * @param data the <code>char[]</code> to append
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>str</code> is <code>null</code>
+   * @see #append(char[], int, int)
+   */
+  public AbstractStringBuffer append(char[] data)
+  {
+    return append(data, 0, data.length);
+  }
+
+  /**
+   * Append part of the <code>char</code> array to this
+   * <code>StringBuffer</code>. This is similar (but more efficient) than
+   * <code>append(new String(data, offset, count))</code>, except in the case
+   * of null.
+   *
+   * @param data the <code>char[]</code> to append
+   * @param offset the start location in <code>str</code>
+   * @param count the number of characters to get from <code>str</code>
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>str</code> is <code>null</code>
+   * @throws IndexOutOfBoundsException if offset or count is out of range
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
+   */
+  public AbstractStringBuffer append(char[] data, int offset, int count)
+  {
+    if (offset < 0 || count < 0 || offset > data.length - count)
+      throw new StringIndexOutOfBoundsException();
+    ensureCapacity_unsynchronized(this.count + count);
+    System.arraycopy(data, offset, value, this.count, count);
+    this.count += count;
+    return this;
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param bool the <code>boolean</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(boolean)
+   */
+  public AbstractStringBuffer append(boolean bool)
+  {
+    return append(bool ? "true" : "false");
+  }
+
+  /**
+   * Append the <code>char</code> to this <code>StringBuffer</code>.
+   *
+   * @param ch the <code>char</code> to append
+   * @return this <code>StringBuffer</code>
+   */
+  public AbstractStringBuffer append(char ch)
+  {
+    ensureCapacity_unsynchronized(count + 1);
+    value[count++] = ch;
+    return this;
+  }
+
+  /**
+   * Append the characters in the <code>CharSequence</code> to this
+   * buffer.
+   *
+   * @param seq the <code>CharSequence</code> providing the characters
+   * @return this <code>StringBuffer</code>
+   * @since 1.5
+   */
+  public AbstractStringBuffer append(CharSequence seq)
+  {
+    return append(seq, 0, seq.length());
+  }
+
+  /**
+   * Append some characters from the <code>CharSequence</code> to this
+   * buffer.  If the argument is null, the <code>seq</code> is assumed
+   * to be equal to the string <code>"null"</code>.
+   *
+   * @param seq the <code>CharSequence</code> providing the characters
+   * @param start the starting index
+   * @param end one past the final index
+   * @return this <code>StringBuffer</code>
+   * @since 1.5
+   */
+  public AbstractStringBuffer append(CharSequence seq, int start, int end)
+  {
+    if (seq == null)
+      seq = "null";
+    if (end - start > 0)
+      {
+       ensureCapacity_unsynchronized(count + end - start);
+       for (; start < end; ++start)
+         value[count++] = seq.charAt(start);
+      }
+    return this;
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param inum the <code>int</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(int)
+   */
+  // GCJ LOCAL: this is native for efficiency.
+  public native AbstractStringBuffer append (int inum);
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param lnum the <code>long</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(long)
+   */
+  public AbstractStringBuffer append(long lnum)
+  {
+    return append(Long.toString(lnum, 10));
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param fnum the <code>float</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(float)
+   */
+  public AbstractStringBuffer append(float fnum)
+  {
+    return append(Float.toString(fnum));
+  }
+
+  /**
+   * Append the <code>String</code> value of the argument to this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param dnum the <code>double</code> to convert and append
+   * @return this <code>StringBuffer</code>
+   * @see String#valueOf(double)
+   */
+  public AbstractStringBuffer append(double dnum)
+  {
+    return append(Double.toString(dnum));
+  }
+
+  /**
+   * Append the code point to this <code>StringBuffer</code>.
+   * This is like #append(char), but will append two characters
+   * if a supplementary code point is given.
+   *
+   * @param code the code point to append
+   * @return this <code>StringBuffer</code>
+   * @see Character#toChars(int, char[], int)
+   * @since 1.5
+   */
+  public AbstractStringBuffer appendCodePoint(int code)
+  {
+    int len = Character.charCount(code);
+    ensureCapacity_unsynchronized(count + len);
+    Character.toChars(code, value, count);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Delete characters from this <code>StringBuffer</code>.
+   * <code>delete(10, 12)</code> will delete 10 and 11, but not 12. It is
+   * harmless for end to be larger than length().
+   *
+   * @param start the first character to delete
+   * @param end the index after the last character to delete
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+   * @since 1.2
+   */
+  public AbstractStringBuffer delete(int start, int end)
+  {
+    if (start < 0 || start > count || start > end)
+      throw new StringIndexOutOfBoundsException(start);
+    if (end > count)
+      end = count;
+    ensureCapacity_unsynchronized(count);
+    if (count - end != 0)
+      System.arraycopy(value, end, value, start, count - end);
+    count -= end - start;
+    return this;
+  }
+
+  /**
+   * Delete a character from this <code>StringBuffer</code>.
+   *
+   * @param index the index of the character to delete
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if index is out of bounds
+   * @since 1.2
+   */
+  public AbstractStringBuffer deleteCharAt(int index)
+  {
+    return delete(index, index + 1);
+  }
+
+  /**
+   * Replace characters between index <code>start</code> (inclusive) and
+   * <code>end</code> (exclusive) with <code>str</code>. If <code>end</code>
+   * is larger than the size of this StringBuffer, all characters after
+   * <code>start</code> are replaced.
+   *
+   * @param start the beginning index of characters to delete (inclusive)
+   * @param end the ending index of characters to delete (exclusive)
+   * @param str the new <code>String</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+   * @throws NullPointerException if str is null
+   * @since 1.2
+   */
+  public AbstractStringBuffer replace(int start, int end, String str)
+  {
+    if (start < 0 || start > count || start > end)
+      throw new StringIndexOutOfBoundsException(start);
+
+    int len = str.count;
+    // Calculate the difference in 'count' after the replace.
+    int delta = len - (end > count ? count : end) + start;
+    ensureCapacity_unsynchronized(count + delta);
+
+    if (delta != 0 && end < count)
+      System.arraycopy(value, end, value, end + delta, count - end);
+
+    str.getChars(0, len, value, start);
+    count += delta;
+    return this;
+  }
+
+  /**
+   * Insert a subarray of the <code>char[]</code> argument into this
+   * <code>StringBuffer</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param str the <code>char[]</code> to insert
+   * @param str_offset the index in <code>str</code> to start inserting from
+   * @param len the number of characters to insert
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>str</code> is <code>null</code>
+   * @throws StringIndexOutOfBoundsException if any index is out of bounds
+   * @since 1.2
+   */
+  public AbstractStringBuffer insert(int offset, char[] str, int str_offset, int len)
+  {
+    if (offset < 0 || offset > count || len < 0
+        || str_offset < 0 || str_offset > str.length - len)
+      throw new StringIndexOutOfBoundsException();
+    ensureCapacity_unsynchronized(count + len);
+    System.arraycopy(value, offset, value, offset + len, count - offset);
+    System.arraycopy(str, str_offset, value, offset, len);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param obj the <code>Object</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @exception StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(Object)
+   */
+  public AbstractStringBuffer insert(int offset, Object obj)
+  {
+    return insert(offset, obj == null ? "null" : obj.toString());
+  }
+
+  /**
+   * Insert the <code>String</code> argument into this
+   * <code>StringBuffer</code>. If str is null, the String "null" is used
+   * instead.
+   *
+   * @param offset the place to insert in this buffer
+   * @param str the <code>String</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   */
+  public AbstractStringBuffer insert(int offset, String str)
+  {
+    if (offset < 0 || offset > count)
+      throw new StringIndexOutOfBoundsException(offset);
+    if (str == null)
+      str = "null";
+    int len = str.count;
+    ensureCapacity_unsynchronized(count + len);
+    System.arraycopy(value, offset, value, offset + len, count - offset);
+    str.getChars(0, len, value, offset);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Insert the <code>CharSequence</code> argument into this
+   * <code>StringBuffer</code>.  If the sequence is null, the String
+   * "null" is used instead.
+   *
+   * @param offset the place to insert in this buffer
+   * @param sequence the <code>CharSequence</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws IndexOutOfBoundsException if offset is out of bounds
+   * @since 1.5
+   */
+  public AbstractStringBuffer insert(int offset, CharSequence sequence)
+  {
+    if (sequence == null)
+      sequence = "null";
+    return insert(offset, sequence, 0, sequence.length());
+  }
+
+  /**
+   * Insert a subsequence of the <code>CharSequence</code> argument into this
+   * <code>StringBuffer</code>.  If the sequence is null, the String
+   * "null" is used instead.
+   *
+   * @param offset the place to insert in this buffer
+   * @param sequence the <code>CharSequence</code> to insert
+   * @param start the starting index of the subsequence
+   * @param end one past the ending index of the subsequence
+   * @return this <code>StringBuffer</code>
+   * @throws IndexOutOfBoundsException if offset, start,
+   * or end are out of bounds
+   * @since 1.5
+   */
+  public AbstractStringBuffer insert(int offset, CharSequence sequence, int start, int end)
+  {
+    if (sequence == null)
+      sequence = "null";
+    if (start < 0 || end < 0 || start > end || end > sequence.length())
+      throw new IndexOutOfBoundsException();
+    int len = end - start;
+    ensureCapacity_unsynchronized(count + len);
+    System.arraycopy(value, offset, value, offset + len, count - offset);
+    for (int i = start; i < end; ++i)
+      value[offset++] = sequence.charAt(i);
+    count += len;
+    return this;
+  }
+
+  /**
+   * Insert the <code>char[]</code> argument into this
+   * <code>StringBuffer</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param data the <code>char[]</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws NullPointerException if <code>data</code> is <code>null</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see #insert(int, char[], int, int)
+   */
+  public AbstractStringBuffer insert(int offset, char[] data)
+  {
+    return insert(offset, data, 0, data.length);
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param bool the <code>boolean</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(boolean)
+   */
+  public AbstractStringBuffer insert(int offset, boolean bool)
+  {
+    return insert(offset, bool ? "true" : "false");
+  }
+
+  /**
+   * Insert the <code>char</code> argument into this <code>StringBuffer</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param ch the <code>char</code> to insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   */
+  public AbstractStringBuffer insert(int offset, char ch)
+  {
+    if (offset < 0 || offset > count)
+      throw new StringIndexOutOfBoundsException(offset);
+    ensureCapacity_unsynchronized(count + 1);
+    System.arraycopy(value, offset, value, offset + 1, count - offset);
+    value[offset] = ch;
+    count++;
+    return this;
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param inum the <code>int</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(int)
+   */
+  public AbstractStringBuffer insert(int offset, int inum)
+  {
+    return insert(offset, String.valueOf(inum));
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param lnum the <code>long</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(long)
+   */
+  public AbstractStringBuffer insert(int offset, long lnum)
+  {
+    return insert(offset, Long.toString(lnum, 10));
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param fnum the <code>float</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(float)
+   */
+  public AbstractStringBuffer insert(int offset, float fnum)
+  {
+    return insert(offset, Float.toString(fnum));
+  }
+
+  /**
+   * Insert the <code>String</code> value of the argument into this
+   * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+   * to <code>String</code>.
+   *
+   * @param offset the place to insert in this buffer
+   * @param dnum the <code>double</code> to convert and insert
+   * @return this <code>StringBuffer</code>
+   * @throws StringIndexOutOfBoundsException if offset is out of bounds
+   * @see String#valueOf(double)
+   */
+  public AbstractStringBuffer insert(int offset, double dnum)
+  {
+    return insert(offset, Double.toString(dnum));
+  }
+
+  /**
+   * Finds the first instance of a substring in this StringBuilder.
+   *
+   * @param str String to find
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @see #indexOf(String, int)
+   */
+  public int indexOf(String str)
+  {
+    return indexOf(str, 0);
+  }
+
+  /**
+   * Finds the first instance of a String in this StringBuffer, starting at
+   * a given index.  If starting index is less than 0, the search starts at
+   * the beginning of this String.  If the starting index is greater than the
+   * length of this String, or the substring is not found, -1 is returned.
+   *
+   * @param str String to find
+   * @param fromIndex index to start the search
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @since 1.4
+   */
+  public int indexOf(String str, int fromIndex)
+  {
+    if (fromIndex < 0)
+      fromIndex = 0;
+    int limit = count - str.count;
+    for ( ; fromIndex <= limit; fromIndex++)
+      if (regionMatches(fromIndex, str))
+        return fromIndex;
+    return -1;
+  }
+
+  /**
+   * Finds the last instance of a substring in this StringBuffer.
+   *
+   * @param str String to find
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @see #lastIndexOf(String, int)
+   * @since 1.4
+   */
+  public int lastIndexOf(String str)
+  {
+    return lastIndexOf(str, count - str.count);
+  }
+
+  /**
+   * Finds the last instance of a String in this StringBuffer, starting at a
+   * given index.  If starting index is greater than the maximum valid index,
+   * then the search begins at the end of this String.  If the starting index
+   * is less than zero, or the substring is not found, -1 is returned.
+   *
+   * @param str String to find
+   * @param fromIndex index to start the search
+   * @return location (base 0) of the String, or -1 if not found
+   * @throws NullPointerException if str is null
+   * @since 1.4
+   */
+  public int lastIndexOf(String str, int fromIndex)
+  {
+    fromIndex = Math.min(fromIndex, count - str.count);
+    for ( ; fromIndex >= 0; fromIndex--)
+      if (regionMatches(fromIndex, str))
+        return fromIndex;
+    return -1;
+  }
+
+  /**
+   * Reverse the characters in this StringBuffer. The same sequence of
+   * characters exists, but in the reverse index ordering.
+   *
+   * @return this <code>StringBuffer</code>
+   */
+  public AbstractStringBuffer reverse()
+  {
+    // Call ensureCapacity to enforce copy-on-write.
+    ensureCapacity_unsynchronized(count);
+    for (int i = count >> 1, j = count - i; --i >= 0; ++j)
+      {
+        char c = value[i];
+        value[i] = value[j];
+        value[j] = c;
+      }
+    return this;
+  }
+
+  /**
+   * This may reduce the amount of memory used by the StringBuffer,
+   * by resizing the internal array to remove unused space.  However,
+   * this method is not required to resize, so this behavior cannot
+   * be relied upon.
+   * @since 1.5
+   */
+  public void trimToSize()
+  {
+    int wouldSave = value.length - count;
+    // Some random heuristics: if we save less than 20 characters, who
+    // cares.
+    if (wouldSave < 20)
+      return;
+    // If we save more than 200 characters, shrink.
+    // If we save more than 1/4 of the buffer, shrink.
+    if (wouldSave > 200 || wouldSave * 4 > value.length)
+      {
+       char[] newValue = new char[count];
+       System.arraycopy(value, 0, newValue, 0, count);
+       value = newValue;
+      }
+  }
+
+  /**
+   * Return the number of code points between two indices in the
+   * <code>StringBuffer</code>.  An unpaired surrogate counts as a
+   * code point for this purpose.  Characters outside the indicated
+   * range are not examined, even if the range ends in the middle of a
+   * surrogate pair.
+   *
+   * @param start the starting index
+   * @param end one past the ending index
+   * @return the number of code points
+   * @since 1.5
+   */
+  public int codePointCount(int start, int end)
+  {
+    if (start < 0 || end >= count || start > end)
+      throw new StringIndexOutOfBoundsException();
+
+    int count = 0;
+    while (start < end)
+      {
+       char base = value[start];
+       if (base < Character.MIN_HIGH_SURROGATE
+           || base > Character.MAX_HIGH_SURROGATE
+           || start == end
+           || start == count
+           || value[start + 1] < Character.MIN_LOW_SURROGATE
+           || value[start + 1] > Character.MAX_LOW_SURROGATE)
+         {
+           // Nothing.
+         }
+       else
+         {
+           // Surrogate pair.
+           ++start;
+         }
+       ++start;
+       ++count;
+      }
+    return count;
+  }
+
+  /**
+   * Starting at the given index, this counts forward by the indicated
+   * number of code points, and then returns the resulting index.  An
+   * unpaired surrogate counts as a single code point for this
+   * purpose.
+   *
+   * @param start the starting index
+   * @param codePoints the number of code points
+   * @return the resulting index
+   * @since 1.5
+   */
+  public int offsetByCodePoints(int start, int codePoints)
+  {
+    while (codePoints > 0)
+      {
+       char base = value[start];
+       if (base < Character.MIN_HIGH_SURROGATE
+           || base > Character.MAX_HIGH_SURROGATE
+           || start == count
+           || value[start + 1] < Character.MIN_LOW_SURROGATE
+           || value[start + 1] > Character.MAX_LOW_SURROGATE)
+         {
+           // Nothing.
+         }
+       else
+         {
+           // Surrogate pair.
+           ++start;
+         }
+       ++start;
+       --codePoints;
+      }
+    return start;
+  }
+
+  /**
+   * Increase the capacity of this <code>StringBuilder</code>. This will
+   * ensure that an expensive growing operation will not occur until
+   * <code>minimumCapacity</code> is reached. The buffer is grown to the
+   * larger of <code>minimumCapacity</code> and
+   * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+   *
+   * @param minimumCapacity the new capacity
+   * @see #capacity()
+   */
+  void ensureCapacity_unsynchronized(int minimumCapacity)
+  {
+    if (minimumCapacity > value.length)
+      {
+        int max = value.length * 2 + 2;
+        minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
+        char[] nb = new char[minimumCapacity];
+        System.arraycopy(value, 0, nb, 0, count);
+        value = nb;
+      }
+  }
+
+  /**
+   * Predicate which determines if a substring of this matches another String
+   * starting at a specified offset for each String and continuing for a
+   * specified length. This is more efficient than creating a String to call
+   * indexOf on.
+   *
+   * @param toffset index to start comparison at for this String
+   * @param other non-null String to compare to region of this
+   * @return true if regions match, false otherwise
+   * @see #indexOf(String, int)
+   * @see #lastIndexOf(String, int)
+   * @see String#regionMatches(boolean, int, String, int, int)
+   */
+  // GCJ LOCAL: native for gcj.
+  private native boolean regionMatches(int toffset, String other);
+
+}
index e0463ac2af6bcac83cf04c9c401bc1112da484ab..d5557309578b3147ef6360560d5b1289b51c4b69 100644 (file)
@@ -775,7 +775,7 @@ public abstract class ClassLoader
    */
   protected Enumeration<URL> findResources(String name) throws IOException
   {
-    return (Enumeration<URL>) EmptyEnumeration.getInstance();
+    return new EmptyEnumeration<URL>();
   }
 
   /**
index 7808acc46596aee109d024201c9fd53a7257a71b..54eb42b5028d1e042382e858f0d4dde6d7475465 100644 (file)
@@ -49,6 +49,8 @@ public:
   static const jint SIZE = 64;
   static ::java::lang::Class * TYPE;
 private:
+  static ::java::lang::Double * ZERO;
+  static ::java::lang::Double * ONE;
   jdouble __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
 public:
   static ::java::lang::Class class$;
index 0069df44bffe6eab6ae943b49467d22477139b3e..603da6dd1a0826272d5faf2e310d840ebfa50756 100644 (file)
@@ -50,6 +50,8 @@ public:
   static ::java::lang::Class * TYPE;
   static const jint SIZE = 32;
 private:
+  static ::java::lang::Float * ZERO;
+  static ::java::lang::Float * ONE;
   jfloat __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
 public:
   static ::java::lang::Class class$;
index aebcd0a164f904f5e7de6c841aa8fdbb163c2871..f1bd11bdbd9037ddd12103900a7b2e80c63158bb 100644 (file)
@@ -16,6 +16,9 @@ class java::lang::Integer : public ::java::lang::Number
 public:
   Integer(jint);
   Integer(::java::lang::String *);
+private:
+  static jint stringSize(jint, jint);
+public:
   static ::java::lang::String * toString(jint, jint);
   static ::java::lang::String * toHexString(jint);
   static ::java::lang::String * toOctalString(jint);
index b0358e6d729d0eef7477c41bddfe4ea6e5554db9..60c0d24379df5cb2decd9e2a698732ce1dacc1cf 100644 (file)
@@ -7,6 +7,8 @@
 #pragma interface
 
 #include <java/lang/Number.h>
+#include <gcj/array.h>
+
 
 class java::lang::Long : public ::java::lang::Number
 {
@@ -14,6 +16,9 @@ class java::lang::Long : public ::java::lang::Number
 public:
   Long(jlong);
   Long(::java::lang::String *);
+private:
+  static jint stringSize(jlong, jint);
+public:
   static ::java::lang::String * toString(jlong, jint);
   static ::java::lang::String * toHexString(jlong);
   static ::java::lang::String * toOctalString(jlong);
@@ -61,6 +66,9 @@ public:
   static ::java::lang::Class * TYPE;
   static const jint SIZE = 64;
 private:
+  static const jint MIN_CACHE = -128;
+  static const jint MAX_CACHE = 127;
+  static JArray< ::java::lang::Long * > * longCache;
   jlong __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
 public:
   static ::java::lang::Class class$;
index 5fa06de982bbb99be73a433874dbddaca80a7e63..32e0ccdfaf3f52243b0764300fc48fc273e8a3b8 100644 (file)
@@ -118,6 +118,7 @@ public:
   jint offsetByCodePoints(jint, jint);
   jboolean isEmpty();
 private:
+  static ::java::lang::String * toString(JArray< jchar > *, jint, jint);
   void init(JArray< jchar > *, jint, jint, jboolean);
   void init(JArray< jbyte > *, jint, jint, jint);
   void init(JArray< jbyte > *, jint, jint, ::java::lang::String *);
index d5bb41502112d15cb5e9cdff51f86170ee395828..b9ce3c016fc65640b75752fff9d6074e5533406a 100644 (file)
@@ -1440,6 +1440,14 @@ public final class String
     return count == 0;
   }
 
+  // Generate a String that shares the value array: subsequent changes
+  // to this array will affect the String.  A private internal method
+  // that is called from CPStringBuilder by compiler-generated code.
+  private static String toString(char[] value, int startIndex, int count)
+  {
+    return new String(value, startIndex, count, true);
+  }
+
   private native void init(char[] chars, int offset, int count,
                           boolean dont_copy);
   private native void init(byte[] chars, int hibyte, int offset, int count);
index 983ef98d73c2a5c770abb14bd5c3f29ed6dda5f8..487e2fcd35106258cb82353c77d5790152ba53d9 100644 (file)
@@ -6,11 +6,11 @@
 
 #pragma interface
 
-#include <java/lang/Object.h>
+#include <java/lang/AbstractStringBuffer.h>
 #include <gcj/array.h>
 
 
-class java::lang::StringBuffer : public ::java::lang::Object
+class java::lang::StringBuffer : public ::java::lang::AbstractStringBuffer
 {
 
 public:
@@ -27,62 +27,87 @@ public:
   jint codePointBefore(jint);
   void getChars(jint, jint, JArray< jchar > *, jint);
   void setCharAt(jint, jchar);
-  ::java::lang::StringBuffer * append(::java::lang::Object *);
-  ::java::lang::StringBuffer * append(::java::lang::String *);
-  ::java::lang::StringBuffer * append(::java::lang::StringBuffer *);
-  ::java::lang::StringBuffer * append(JArray< jchar > *);
-  ::java::lang::StringBuffer * append(JArray< jchar > *, jint, jint);
-  ::java::lang::StringBuffer * appendCodePoint(jint);
-  ::java::lang::StringBuffer * append(jboolean);
+  ::java::lang::StringBuffer * StringBuffer$append(::java::lang::Object *);
+  ::java::lang::StringBuffer * StringBuffer$append(::java::lang::String *);
+  ::java::lang::StringBuffer * StringBuffer$append(::java::lang::StringBuffer *);
+  ::java::lang::StringBuffer * StringBuffer$append(JArray< jchar > *);
+  ::java::lang::StringBuffer * StringBuffer$append(JArray< jchar > *, jint, jint);
+  ::java::lang::StringBuffer * StringBuffer$append(jboolean);
   ::java::lang::StringBuffer * StringBuffer$append(jchar);
   ::java::lang::StringBuffer * StringBuffer$append(::java::lang::CharSequence *);
   ::java::lang::StringBuffer * StringBuffer$append(::java::lang::CharSequence *, jint, jint);
-  ::java::lang::StringBuffer * append(jint);
-  ::java::lang::StringBuffer * append(jlong);
-  ::java::lang::StringBuffer * append(jfloat);
-  ::java::lang::StringBuffer * append(jdouble);
-  ::java::lang::StringBuffer * delete$(jint, jint);
-  ::java::lang::StringBuffer * deleteCharAt(jint);
-  ::java::lang::StringBuffer * replace(jint, jint, ::java::lang::String *);
+  ::java::lang::StringBuffer * StringBuffer$append(jint);
+  ::java::lang::StringBuffer * StringBuffer$append(jlong);
+  ::java::lang::StringBuffer * StringBuffer$append(jfloat);
+  ::java::lang::StringBuffer * StringBuffer$append(jdouble);
+  ::java::lang::StringBuffer * StringBuffer$appendCodePoint(jint);
+  ::java::lang::StringBuffer * StringBuffer$delete(jint, jint);
+  ::java::lang::StringBuffer * StringBuffer$deleteCharAt(jint);
+  ::java::lang::StringBuffer * StringBuffer$replace(jint, jint, ::java::lang::String *);
   ::java::lang::String * substring(jint);
   ::java::lang::CharSequence * subSequence(jint, jint);
   ::java::lang::String * substring(jint, jint);
-  ::java::lang::StringBuffer * insert(jint, JArray< jchar > *, jint, jint);
-  ::java::lang::StringBuffer * insert(jint, ::java::lang::Object *);
-  ::java::lang::StringBuffer * insert(jint, ::java::lang::String *);
-  ::java::lang::StringBuffer * insert(jint, ::java::lang::CharSequence *);
-  ::java::lang::StringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
-  ::java::lang::StringBuffer * insert(jint, JArray< jchar > *);
-  ::java::lang::StringBuffer * insert(jint, jboolean);
-  ::java::lang::StringBuffer * insert(jint, jchar);
-  ::java::lang::StringBuffer * insert(jint, jint);
-  ::java::lang::StringBuffer * insert(jint, jlong);
-  ::java::lang::StringBuffer * insert(jint, jfloat);
-  ::java::lang::StringBuffer * insert(jint, jdouble);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, JArray< jchar > *, jint, jint);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::Object *);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::String *);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::CharSequence *);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::CharSequence *, jint, jint);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, JArray< jchar > *);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, jboolean);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, jchar);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, jint);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, jlong);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, jfloat);
+  ::java::lang::StringBuffer * StringBuffer$insert(jint, jdouble);
   jint indexOf(::java::lang::String *);
   jint indexOf(::java::lang::String *, jint);
   jint lastIndexOf(::java::lang::String *);
   jint lastIndexOf(::java::lang::String *, jint);
-  ::java::lang::StringBuffer * reverse();
+  ::java::lang::StringBuffer * StringBuffer$reverse();
   ::java::lang::String * toString();
   void trimToSize();
   jint codePointCount(jint, jint);
   jint offsetByCodePoints(jint, jint);
-private:
+public: // actually package-private
   void ensureCapacity_unsynchronized(jint);
-  jboolean regionMatches(jint, ::java::lang::String *);
 public:
+  ::java::lang::AbstractStringBuffer * reverse();
+  ::java::lang::AbstractStringBuffer * deleteCharAt(jint);
+  ::java::lang::AbstractStringBuffer * replace(jint, jint, ::java::lang::String *);
+  ::java::lang::AbstractStringBuffer * delete$(jint, jint);
+  ::java::lang::AbstractStringBuffer * insert(jint, jdouble);
+  ::java::lang::AbstractStringBuffer * insert(jint, jfloat);
+  ::java::lang::AbstractStringBuffer * insert(jint, jlong);
+  ::java::lang::AbstractStringBuffer * insert(jint, jint);
+  ::java::lang::AbstractStringBuffer * insert(jint, jchar);
+  ::java::lang::AbstractStringBuffer * insert(jint, jboolean);
+  ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *);
+  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
+  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *);
+  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::String *);
+  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::Object *);
+  ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *, jint, jint);
+  ::java::lang::AbstractStringBuffer * append(jdouble);
+  ::java::lang::AbstractStringBuffer * append(jfloat);
+  ::java::lang::AbstractStringBuffer * append(jlong);
+  ::java::lang::AbstractStringBuffer * append(jint);
   ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+  ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *, jint, jint);
   ::java::lang::Appendable * append(::java::lang::CharSequence *);
+  ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *);
   ::java::lang::Appendable * append(jchar);
+  ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(jchar);
+  ::java::lang::AbstractStringBuffer * append(jboolean);
+  ::java::lang::AbstractStringBuffer * append(JArray< jchar > *, jint, jint);
+  ::java::lang::AbstractStringBuffer * append(JArray< jchar > *);
+  ::java::lang::AbstractStringBuffer * append(::java::lang::StringBuffer *);
+  ::java::lang::AbstractStringBuffer * append(::java::lang::String *);
+  ::java::lang::AbstractStringBuffer * append(::java::lang::Object *);
+  ::java::lang::AbstractStringBuffer * appendCodePoint(jint);
 private:
   static const jlong serialVersionUID = 3388685877147921107LL;
 public: // actually package-private
-  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
-  JArray< jchar > * value;
-  jboolean shared;
-private:
-  static const jint DEFAULT_CAPACITY = 16;
+  jboolean __attribute__((aligned(__alignof__( ::java::lang::AbstractStringBuffer)))) shared;
 public:
   static ::java::lang::Class class$;
 };
index 57fd2ca8e813eb334b3f546d17723219ad003f0b..0c61b4d9fb81b0f282c1867762491c23ea4ae8db 100644 (file)
@@ -1,5 +1,5 @@
 /* StringBuffer.java -- Growable strings
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -73,6 +73,7 @@ import java.io.Serializable;
  * @status updated to 1.4
  */
 public final class StringBuffer
+  extends AbstractStringBuffer
   implements Serializable, CharSequence, Appendable
 {
   // Implementation note: if you change this class, you usually will
@@ -83,23 +84,6 @@ public final class StringBuffer
    */
   private static final long serialVersionUID = 3388685877147921107L;
 
-  /**
-   * Index of next available character (and thus the size of the current
-   * string contents).  Note that this has permissions set this way so that
-   * String can get the value.
-   *
-   * @serial the number of characters in the buffer
-   */
-  int count;
-
-  /**
-   * The buffer.  Note that this has permissions set this way so that String
-   * can get the value.
-   *
-   * @serial the buffer
-   */
-  char[] value;
-
   /**
    * True if the buffer is shared with another object (StringBuffer or
    * String); this means the buffer must be copied before writing to it again.
@@ -110,17 +94,12 @@ public final class StringBuffer
    */
   boolean shared;
 
-  /**
-   * The default capacity of a buffer.
-   */
-  private static final int DEFAULT_CAPACITY = 16;
-
   /**
    * Create a new StringBuffer with default capacity 16.
    */
   public StringBuffer()
   {
-    this(DEFAULT_CAPACITY);
+    super();
   }
 
   /**
@@ -132,7 +111,7 @@ public final class StringBuffer
    */
   public StringBuffer(int capacity)
   {
-    value = new char[capacity];
+    super(capacity);
   }
 
   /**
@@ -146,26 +125,22 @@ public final class StringBuffer
   public StringBuffer(String str)
   {
     // Unfortunately, because the size is 16 larger, we cannot share.
-    count = str.count;
-    value = new char[count + DEFAULT_CAPACITY];
-    str.getChars(0, count, value, 0);
+    super(str);
   }
 
   /**
-   * Create a new <code>StringBuffer</code> with the characters from the
+   * Create a new <code>StringBuffer</code> with the characters in the
    * specified <code>CharSequence</code>. Initial capacity will be the
-   * size of the CharSequence plus 16.
+   * length of the sequence plus 16; if the sequence reports a length
+   * less than or equal to 0, then the initial capacity will be 16.
    *
-   * @param seq the <code>String</code> to convert
+   * @param seq the initializing <code>CharSequence</code>
    * @throws NullPointerException if str is null
    * @since 1.5
    */
   public StringBuffer(CharSequence seq)
   {
-    count = Math.max(0, seq.length());
-    value = new char[count + DEFAULT_CAPACITY];
-    for (int i = 0; i < count; ++i)
-      value[i] = seq.charAt(i);
+    super(seq);
   }
 
   /**
@@ -224,29 +199,7 @@ public final class StringBuffer
    */
   public synchronized void setLength(int newLength)
   {
-    if (newLength < 0)
-      throw new StringIndexOutOfBoundsException(newLength);
-
-    int valueLength = value.length;
-
-    /* Always call ensureCapacity_unsynchronized in order to preserve
-       copy-on-write semantics.  */
-    ensureCapacity_unsynchronized(newLength);
-
-    if (newLength < valueLength)
-      {
-        /* If the StringBuffer's value just grew, then we know that
-           value is newly allocated and the region between count and
-           newLength is filled with '\0'.  */
-       count = newLength;
-      }
-    else
-      {
-       /* The StringBuffer's value doesn't need to grow.  However,
-          we should clear out any cruft that may exist.  */
-       while (count < newLength)
-          value[count++] = '\0';
-      }
+    super.setLength(newLength);
   }
 
   /**
@@ -255,12 +208,11 @@ public final class StringBuffer
    * @param index the index of the character to get, starting at 0
    * @return the character at the specified index
    * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+   *         (while unspecified, this is a StringIndexOutOfBoundsException)
    */
   public synchronized char charAt(int index)
   {
-    if (index < 0 || index >= count)
-      throw new StringIndexOutOfBoundsException(index);
-    return value[index];
+    return super.charAt(index);
   }
 
   /**
@@ -275,7 +227,7 @@ public final class StringBuffer
    */
   public synchronized int codePointAt(int index)
   {
-    return Character.codePointAt(value, index, count);
+    return super.codePointAt(index);
   }
 
   /**
@@ -289,11 +241,7 @@ public final class StringBuffer
    */
   public synchronized int codePointBefore(int index)
   {
-    // Character.codePointBefore() doesn't perform this check.  We
-    // could use the CharSequence overload, but this is just as easy.
-    if (index >= count)
-      throw new IndexOutOfBoundsException();
-    return Character.codePointBefore(value, index, 1);
+    return super.codePointBefore(index);
   }
 
   /**
@@ -314,9 +262,7 @@ public final class StringBuffer
   public synchronized void getChars(int srcOffset, int srcEnd,
                                     char[] dst, int dstOffset)
   {
-    if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
-      throw new StringIndexOutOfBoundsException();
-    System.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
+    super.getChars(srcOffset, srcEnd, dst, dstOffset);
   }
 
   /**
@@ -329,11 +275,7 @@ public final class StringBuffer
    */
   public synchronized void setCharAt(int index, char ch)
   {
-    if (index < 0 || index >= count)
-      throw new StringIndexOutOfBoundsException(index);
-    // Call ensureCapacity to enforce copy-on-write.
-    ensureCapacity_unsynchronized(count);
-    value[index] = ch;
+    super.setCharAt(index, ch);
   }
 
   /**
@@ -346,9 +288,10 @@ public final class StringBuffer
    * @see String#valueOf(Object)
    * @see #append(String)
    */
-  public StringBuffer append(Object obj)
+  public synchronized StringBuffer append(Object obj)
   {
-    return append(obj == null ? "null" : obj.toString());
+    super.append(obj);
+    return this;
   }
 
   /**
@@ -360,12 +303,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer append(String str)
   {
-    if (str == null)
-      str = "null";
-    int len = str.count;
-    ensureCapacity_unsynchronized(count + len);
-    str.getChars(0, len, value, count);
-    count += len;
+    super.append(str);
     return this;
   }
 
@@ -381,15 +319,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer append(StringBuffer stringBuffer)
   {
-    if (stringBuffer == null)
-      return append("null");
-    synchronized (stringBuffer)
-      {
-        int len = stringBuffer.count;
-        ensureCapacity_unsynchronized(count + len);
-        System.arraycopy(stringBuffer.value, 0, value, count, len);
-        count += len;
-      }
+    super.append(stringBuffer);
     return this;
   }
 
@@ -403,9 +333,10 @@ public final class StringBuffer
    * @throws NullPointerException if <code>str</code> is <code>null</code>
    * @see #append(char[], int, int)
    */
-  public StringBuffer append(char[] data)
+  public synchronized StringBuffer append(char[] data)
   {
-    return append(data, 0, data.length);
+    super.append(data, 0, data.length);
+    return this;
   }
 
   /**
@@ -424,30 +355,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer append(char[] data, int offset, int count)
   {
-    if (offset < 0 || count < 0 || offset > data.length - count)
-      throw new StringIndexOutOfBoundsException();
-    ensureCapacity_unsynchronized(this.count + count);
-    System.arraycopy(data, offset, value, this.count, count);
-    this.count += count;
-    return this;
-  }
-
-  /**
-   * Append the code point to this <code>StringBuffer</code>.
-   * This is like #append(char), but will append two characters
-   * if a supplementary code point is given.
-   *
-   * @param code the code point to append
-   * @return this <code>StringBuffer</code>
-   * @see Character#toChars(int, char[], int)
-   * @since 1.5
-   */
-  public synchronized StringBuffer appendCodePoint(int code)
-  {
-    int len = Character.charCount(code);
-    ensureCapacity_unsynchronized(count + len);
-    Character.toChars(code, value, count);
-    count += len;
+    super.append(data, offset, count);
     return this;
   }
 
@@ -460,9 +368,10 @@ public final class StringBuffer
    * @return this <code>StringBuffer</code>
    * @see String#valueOf(boolean)
    */
-  public StringBuffer append(boolean bool)
+  public synchronized StringBuffer append(boolean bool)
   {
-    return append(bool ? "true" : "false");
+    super.append(bool);
+    return this;
   }
 
   /**
@@ -473,47 +382,38 @@ public final class StringBuffer
    */
   public synchronized StringBuffer append(char ch)
   {
-    ensureCapacity_unsynchronized(count + 1);
-    value[count++] = ch;
+    super.append(ch);
     return this;
   }
 
   /**
-   * Append the <code>CharSequence</code> value of the argument to this
-   * <code>StringBuffer</code>.
+   * Append the characters in the <code>CharSequence</code> to this
+   * buffer.
    *
-   * @param seq the <code>CharSequence</code> to append
+   * @param seq the <code>CharSequence</code> providing the characters
    * @return this <code>StringBuffer</code>
-   * @see #append(Object)
    * @since 1.5
    */
   public synchronized StringBuffer append(CharSequence seq)
   {
-    if (seq == null)
-      seq = "null";
-    return append(seq, 0, seq.length());
+    super.append(seq, 0, seq.length());
+    return this;
   }
 
   /**
-   * Append the specified subsequence of the <code>CharSequence</code>
-   * argument to this <code>StringBuffer</code>.
+   * Append some characters from the <code>CharSequence</code> to this
+   * buffer.  If the argument is null, the four characters "null" are
+   * appended.
    *
-   * @param seq the <code>CharSequence</code> to append
+   * @param seq the <code>CharSequence</code> providing the characters
    * @param start the starting index
-   * @param end one past the ending index
+   * @param end one past the final index
    * @return this <code>StringBuffer</code>
-   * @see #append(Object)
    * @since 1.5
    */
   public synchronized StringBuffer append(CharSequence seq, int start, int end)
   {
-    if (seq == null)
-      seq = "null";
-    if (start < 0 || end < 0 || start > end || end > seq.length())
-      throw new IndexOutOfBoundsException();
-    ensureCapacity_unsynchronized(this.count + end - start);
-    for (int i = start; i < end; ++i)
-      value[count++] = seq.charAt(i);
+    super.append(seq, start, end);
     return this;
   }
 
@@ -526,8 +426,12 @@ public final class StringBuffer
    * @return this <code>StringBuffer</code>
    * @see String#valueOf(int)
    */
-  // GCJ LOCAL: this is native for efficiency.
-  public native StringBuffer append (int inum);
+  // This is native in libgcj, for efficiency.
+  public synchronized StringBuffer append(int inum)
+  {
+    super.append(inum);
+    return this;
+  }
 
   /**
    * Append the <code>String</code> value of the argument to this
@@ -538,9 +442,10 @@ public final class StringBuffer
    * @return this <code>StringBuffer</code>
    * @see String#valueOf(long)
    */
-  public StringBuffer append(long lnum)
+  public synchronized StringBuffer append(long lnum)
   {
-    return append(Long.toString(lnum, 10));
+    super.append(lnum);
+    return this;
   }
 
   /**
@@ -552,9 +457,10 @@ public final class StringBuffer
    * @return this <code>StringBuffer</code>
    * @see String#valueOf(float)
    */
-  public StringBuffer append(float fnum)
+  public synchronized StringBuffer append(float fnum)
   {
-    return append(Float.toString(fnum));
+    super.append(fnum);
+    return this;
   }
 
   /**
@@ -566,9 +472,26 @@ public final class StringBuffer
    * @return this <code>StringBuffer</code>
    * @see String#valueOf(double)
    */
-  public StringBuffer append(double dnum)
+  public synchronized StringBuffer append(double dnum)
+  {
+    super.append(dnum);
+    return this;
+  }
+
+  /**
+   * Append the code point to this <code>StringBuffer</code>.
+   * This is like #append(char), but will append two characters
+   * if a supplementary code point is given.
+   *
+   * @param code the code point to append
+   * @return this <code>StringBuffer</code>
+   * @see Character#toChars(int, char[], int)
+   * @since 1.5
+   */
+  public synchronized StringBuffer appendCodePoint(int code)
   {
-    return append(Double.toString(dnum));
+    super.appendCodePoint(code);
+    return this;
   }
 
   /**
@@ -584,15 +507,8 @@ public final class StringBuffer
    */
   public synchronized StringBuffer delete(int start, int end)
   {
-    if (start < 0 || start > count || start > end)
-      throw new StringIndexOutOfBoundsException(start);
-    if (end > count)
-      end = count;
     // This will unshare if required.
-    ensureCapacity_unsynchronized(count);
-    if (count - end != 0)
-      System.arraycopy(value, end, value, start, count - end);
-    count -= end - start;
+    super.delete(start, end);
     return this;
   }
 
@@ -604,9 +520,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if index is out of bounds
    * @since 1.2
    */
-  public StringBuffer deleteCharAt(int index)
+  public synchronized StringBuffer deleteCharAt(int index)
   {
-    return delete(index, index + 1);
+    super.deleteCharAt(index);
+    return this;
   }
 
   /**
@@ -625,19 +542,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer replace(int start, int end, String str)
   {
-    if (start < 0 || start > count || start > end)
-      throw new StringIndexOutOfBoundsException(start);
-
-    int len = str.count;
-    // Calculate the difference in 'count' after the replace.
-    int delta = len - (end > count ? count : end) + start;
-    ensureCapacity_unsynchronized(count + delta);
-
-    if (delta != 0 && end < count)
-      System.arraycopy(value, end, value, end + delta, count - end);
-
-    str.getChars(0, len, value, start);
-    count += delta;
+    super.replace(start, end, str);
     return this;
   }
 
@@ -717,13 +622,7 @@ public final class StringBuffer
   public synchronized StringBuffer insert(int offset,
                                           char[] str, int str_offset, int len)
   {
-    if (offset < 0 || offset > count || len < 0
-        || str_offset < 0 || str_offset > str.length - len)
-      throw new StringIndexOutOfBoundsException();
-    ensureCapacity_unsynchronized(count + len);
-    System.arraycopy(value, offset, value, offset + len, count - offset);
-    System.arraycopy(str, str_offset, value, offset, len);
-    count += len;
+    super.insert(offset, str, str_offset, len);
     return this;
   }
 
@@ -738,9 +637,10 @@ public final class StringBuffer
    * @exception StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(Object)
    */
-  public StringBuffer insert(int offset, Object obj)
+  public synchronized StringBuffer insert(int offset, Object obj)
   {
-    return insert(offset, obj == null ? "null" : obj.toString());
+    super.insert(offset, obj);
+    return this;
   }
 
   /**
@@ -755,15 +655,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer insert(int offset, String str)
   {
-    if (offset < 0 || offset > count)
-      throw new StringIndexOutOfBoundsException(offset);
-    if (str == null)
-      str = "null";
-    int len = str.count;
-    ensureCapacity_unsynchronized(count + len);
-    System.arraycopy(value, offset, value, offset + len, count - offset);
-    str.getChars(0, len, value, offset);
-    count += len;
+    super.insert(offset, str);
     return this;
   }
 
@@ -780,9 +672,8 @@ public final class StringBuffer
    */
   public synchronized StringBuffer insert(int offset, CharSequence sequence)
   {
-    if (sequence == null)
-      sequence = "null";
-    return insert(offset, sequence, 0, sequence.length());
+    super.insert(offset, sequence);
+    return this;
   }
 
   /**
@@ -802,16 +693,7 @@ public final class StringBuffer
   public synchronized StringBuffer insert(int offset, CharSequence sequence,
                                          int start, int end)
   {
-    if (sequence == null)
-      sequence = "null";
-    if (start < 0 || end < 0 || start > end || end > sequence.length())
-      throw new IndexOutOfBoundsException();
-    int len = end - start;
-    ensureCapacity_unsynchronized(count + len);
-    System.arraycopy(value, offset, value, offset + len, count - offset);
-    for (int i = start; i < end; ++i)
-      value[offset++] = sequence.charAt(i);
-    count += len;
+    super.insert(offset, sequence, start, end);
     return this;
   }
 
@@ -826,9 +708,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see #insert(int, char[], int, int)
    */
-  public StringBuffer insert(int offset, char[] data)
+  public synchronized StringBuffer insert(int offset, char[] data)
   {
-    return insert(offset, data, 0, data.length);
+    super.insert(offset, data, 0, data.length);
+    return this;
   }
 
   /**
@@ -842,9 +725,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(boolean)
    */
-  public StringBuffer insert(int offset, boolean bool)
+  public synchronized StringBuffer insert(int offset, boolean bool)
   {
-    return insert(offset, bool ? "true" : "false");
+    super.insert(offset, bool);
+    return this;
   }
 
   /**
@@ -857,12 +741,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer insert(int offset, char ch)
   {
-    if (offset < 0 || offset > count)
-      throw new StringIndexOutOfBoundsException(offset);
-    ensureCapacity_unsynchronized(count + 1);
-    System.arraycopy(value, offset, value, offset + 1, count - offset);
-    value[offset] = ch;
-    count++;
+    super.insert(offset, ch);
     return this;
   }
 
@@ -877,9 +756,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(int)
    */
-  public StringBuffer insert(int offset, int inum)
+  public synchronized StringBuffer insert(int offset, int inum)
   {
-    return insert(offset, String.valueOf(inum));
+    super.insert(offset, inum);
+    return this;
   }
 
   /**
@@ -893,9 +773,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(long)
    */
-  public StringBuffer insert(int offset, long lnum)
+  public synchronized StringBuffer insert(int offset, long lnum)
   {
-    return insert(offset, Long.toString(lnum, 10));
+    super.insert(offset, lnum);
+    return this;
   }
 
   /**
@@ -909,9 +790,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(float)
    */
-  public StringBuffer insert(int offset, float fnum)
+  public synchronized StringBuffer insert(int offset, float fnum)
   {
-    return insert(offset, Float.toString(fnum));
+    super.insert(offset, fnum);
+    return this;
   }
 
   /**
@@ -925,9 +807,10 @@ public final class StringBuffer
    * @throws StringIndexOutOfBoundsException if offset is out of bounds
    * @see String#valueOf(double)
    */
-  public StringBuffer insert(int offset, double dnum)
+  public synchronized StringBuffer insert(int offset, double dnum)
   {
-    return insert(offset, Double.toString(dnum));
+    super.insert(offset, dnum);
+    return this;
   }
 
   /**
@@ -939,9 +822,9 @@ public final class StringBuffer
    * @see #indexOf(String, int)
    * @since 1.4
    */
-  public int indexOf(String str)
+  public synchronized int indexOf(String str)
   {
-    return indexOf(str, 0);
+    return super.indexOf(str, 0);
   }
 
   /**
@@ -958,13 +841,7 @@ public final class StringBuffer
    */
   public synchronized int indexOf(String str, int fromIndex)
   {
-    if (fromIndex < 0)
-      fromIndex = 0;
-    int limit = count - str.count;
-    for ( ; fromIndex <= limit; fromIndex++)
-      if (regionMatches(fromIndex, str))
-        return fromIndex;
-    return -1;
+    return super.indexOf(str, fromIndex);
   }
 
   /**
@@ -976,9 +853,9 @@ public final class StringBuffer
    * @see #lastIndexOf(String, int)
    * @since 1.4
    */
-  public int lastIndexOf(String str)
+  public synchronized int lastIndexOf(String str)
   {
-    return lastIndexOf(str, count - str.count);
+    return super.lastIndexOf(str, count - str.count);
   }
 
   /**
@@ -995,11 +872,7 @@ public final class StringBuffer
    */
   public synchronized int lastIndexOf(String str, int fromIndex)
   {
-    fromIndex = Math.min(fromIndex, count - str.count);
-    for ( ; fromIndex >= 0; fromIndex--)
-      if (regionMatches(fromIndex, str))
-        return fromIndex;
-    return -1;
+    return super.lastIndexOf(str, fromIndex);
   }
 
   /**
@@ -1010,14 +883,7 @@ public final class StringBuffer
    */
   public synchronized StringBuffer reverse()
   {
-    // Call ensureCapacity to enforce copy-on-write.
-    ensureCapacity_unsynchronized(count);
-    for (int i = count >> 1, j = count - i; --i >= 0; ++j)
-      {
-        char c = value[i];
-        value[i] = value[j];
-        value[j] = c;
-      }
+    super.reverse();
     return this;
   }
 
@@ -1044,19 +910,7 @@ public final class StringBuffer
    */
   public synchronized void trimToSize()
   {
-    int wouldSave = value.length - count;
-    // Some random heuristics: if we save less than 20 characters, who
-    // cares.
-    if (wouldSave < 20)
-      return;
-    // If we save more than 200 characters, shrink.
-    // If we save more than 1/4 of the buffer, shrink.
-    if (wouldSave > 200 || wouldSave * 4 > value.length)
-      {
-       char[] newValue = new char[count];
-       System.arraycopy(value, 0, newValue, 0, count);
-       value = newValue;
-      }
+    super.trimToSize();
   }
 
   /**
@@ -1073,31 +927,7 @@ public final class StringBuffer
    */
   public synchronized int codePointCount(int start, int end)
   {
-    if (start < 0 || end >= count || start > end)
-      throw new StringIndexOutOfBoundsException();
-
-    int count = 0;
-    while (start < end)
-      {
-       char base = value[start];
-       if (base < Character.MIN_HIGH_SURROGATE
-           || base > Character.MAX_HIGH_SURROGATE
-           || start == end
-           || start == count
-           || value[start + 1] < Character.MIN_LOW_SURROGATE
-           || value[start + 1] > Character.MAX_LOW_SURROGATE)
-         {
-           // Nothing.
-         }
-       else
-         {
-           // Surrogate pair.
-           ++start;
-         }
-       ++start;
-       ++count;
-      }
-    return count;
+    return super.codePointCount(start, end);
   }
 
   /**
@@ -1113,26 +943,7 @@ public final class StringBuffer
    */
   public synchronized int offsetByCodePoints(int start, int codePoints)
   {
-    while (codePoints > 0)
-      {
-       char base = value[start];
-       if (base < Character.MIN_HIGH_SURROGATE
-           || base > Character.MAX_HIGH_SURROGATE
-           || start == count
-           || value[start + 1] < Character.MIN_LOW_SURROGATE
-           || value[start + 1] > Character.MAX_LOW_SURROGATE)
-         {
-           // Nothing.
-         }
-       else
-         {
-           // Surrogate pair.
-           ++start;
-         }
-       ++start;
-       --codePoints;
-      }
-    return start;
+    return super.offsetByCodePoints(start, codePoints);
   }
 
   /**
@@ -1144,7 +955,7 @@ public final class StringBuffer
    * @param minimumCapacity the minimum capacity
    * @see #ensureCapacity(int)
    */
-  private void ensureCapacity_unsynchronized(int minimumCapacity)
+  void ensureCapacity_unsynchronized(int minimumCapacity)
   {
     if (shared || minimumCapacity > value.length)
       {
@@ -1162,19 +973,4 @@ public final class StringBuffer
       }
   }
 
-  /**
-   * Predicate which determines if a substring of this matches another String
-   * starting at a specified offset for each String and continuing for a
-   * specified length. This is more efficient than creating a String to call
-   * indexOf on.
-   *
-   * @param toffset index to start comparison at for this String
-   * @param other non-null String to compare to region of this
-   * @return true if regions match, false otherwise
-   * @see #indexOf(String, int)
-   * @see #lastIndexOf(String, int)
-   * @see String#regionMatches(boolean, int, String, int, int)
-   */
-  // GCJ LOCAL: native for gcj.
-  private native boolean regionMatches(int toffset, String other);
 }
index b8b504a995d601430be0f0ee5f67ac9ff29368dd..c8b952a41559758ef7193f7372855c0be48299bc 100644 (file)
@@ -6,11 +6,11 @@
 
 #pragma interface
 
-#include <java/lang/Object.h>
+#include <java/lang/AbstractStringBuffer.h>
 #include <gcj/array.h>
 
 
-class java::lang::StringBuilder : public ::java::lang::Object
+class java::lang::StringBuilder : public ::java::lang::AbstractStringBuffer
 {
 
 public:
@@ -20,66 +20,75 @@ public:
   StringBuilder(::java::lang::CharSequence *);
   jint length();
   jint capacity();
-  void ensureCapacity(jint);
-  void setLength(jint);
-  jchar charAt(jint);
-  void getChars(jint, jint, JArray< jchar > *, jint);
-  void setCharAt(jint, jchar);
-  ::java::lang::StringBuilder * append(::java::lang::Object *);
-  ::java::lang::StringBuilder * append(::java::lang::String *);
-  ::java::lang::StringBuilder * append(::java::lang::StringBuffer *);
-  ::java::lang::StringBuilder * append(JArray< jchar > *);
-  ::java::lang::StringBuilder * append(JArray< jchar > *, jint, jint);
-  ::java::lang::StringBuilder * append(jboolean);
+  ::java::lang::StringBuilder * StringBuilder$append(::java::lang::Object *);
+  ::java::lang::StringBuilder * StringBuilder$append(::java::lang::String *);
+  ::java::lang::StringBuilder * StringBuilder$append(::java::lang::StringBuffer *);
+  ::java::lang::StringBuilder * StringBuilder$append(JArray< jchar > *);
+  ::java::lang::StringBuilder * StringBuilder$append(JArray< jchar > *, jint, jint);
+  ::java::lang::StringBuilder * StringBuilder$append(jboolean);
   ::java::lang::StringBuilder * StringBuilder$append(jchar);
   ::java::lang::StringBuilder * StringBuilder$append(::java::lang::CharSequence *);
   ::java::lang::StringBuilder * StringBuilder$append(::java::lang::CharSequence *, jint, jint);
-  ::java::lang::StringBuilder * appendCodePoint(jint);
-  ::java::lang::StringBuilder * append(jint);
-  ::java::lang::StringBuilder * append(jlong);
-  ::java::lang::StringBuilder * append(jfloat);
-  ::java::lang::StringBuilder * append(jdouble);
-  ::java::lang::StringBuilder * delete$(jint, jint);
-  ::java::lang::StringBuilder * deleteCharAt(jint);
-  ::java::lang::StringBuilder * replace(jint, jint, ::java::lang::String *);
+  ::java::lang::StringBuilder * StringBuilder$append(jint);
+  ::java::lang::StringBuilder * StringBuilder$append(jlong);
+  ::java::lang::StringBuilder * StringBuilder$append(jfloat);
+  ::java::lang::StringBuilder * StringBuilder$append(jdouble);
+  ::java::lang::StringBuilder * StringBuilder$appendCodePoint(jint);
+  ::java::lang::StringBuilder * StringBuilder$delete(jint, jint);
+  ::java::lang::StringBuilder * StringBuilder$deleteCharAt(jint);
+  ::java::lang::StringBuilder * StringBuilder$replace(jint, jint, ::java::lang::String *);
   ::java::lang::String * substring(jint);
   ::java::lang::CharSequence * subSequence(jint, jint);
   ::java::lang::String * substring(jint, jint);
-  ::java::lang::StringBuilder * insert(jint, JArray< jchar > *, jint, jint);
-  ::java::lang::StringBuilder * insert(jint, ::java::lang::Object *);
-  ::java::lang::StringBuilder * insert(jint, ::java::lang::String *);
-  ::java::lang::StringBuilder * insert(jint, ::java::lang::CharSequence *);
-  ::java::lang::StringBuilder * insert(jint, ::java::lang::CharSequence *, jint, jint);
-  ::java::lang::StringBuilder * insert(jint, JArray< jchar > *);
-  ::java::lang::StringBuilder * insert(jint, jboolean);
-  ::java::lang::StringBuilder * insert(jint, jchar);
-  ::java::lang::StringBuilder * insert(jint, jint);
-  ::java::lang::StringBuilder * insert(jint, jlong);
-  ::java::lang::StringBuilder * insert(jint, jfloat);
-  ::java::lang::StringBuilder * insert(jint, jdouble);
-  jint indexOf(::java::lang::String *);
-  jint indexOf(::java::lang::String *, jint);
-  jint lastIndexOf(::java::lang::String *);
-  jint lastIndexOf(::java::lang::String *, jint);
-  ::java::lang::StringBuilder * reverse();
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, JArray< jchar > *, jint, jint);
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::Object *);
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::String *);
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::CharSequence *);
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::CharSequence *, jint, jint);
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, JArray< jchar > *);
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, jboolean);
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, jchar);
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, jint);
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, jlong);
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, jfloat);
+  ::java::lang::StringBuilder * StringBuilder$insert(jint, jdouble);
+  ::java::lang::StringBuilder * StringBuilder$reverse();
   ::java::lang::String * toString();
-private:
-  jboolean regionMatches(jint, ::java::lang::String *);
-public:
-  jint codePointAt(jint);
-  jint codePointBefore(jint);
-  jint codePointCount(jint, jint);
-  void trimToSize();
+  ::java::lang::AbstractStringBuffer * reverse();
+  ::java::lang::AbstractStringBuffer * deleteCharAt(jint);
+  ::java::lang::AbstractStringBuffer * replace(jint, jint, ::java::lang::String *);
+  ::java::lang::AbstractStringBuffer * delete$(jint, jint);
+  ::java::lang::AbstractStringBuffer * insert(jint, jdouble);
+  ::java::lang::AbstractStringBuffer * insert(jint, jfloat);
+  ::java::lang::AbstractStringBuffer * insert(jint, jlong);
+  ::java::lang::AbstractStringBuffer * insert(jint, jint);
+  ::java::lang::AbstractStringBuffer * insert(jint, jchar);
+  ::java::lang::AbstractStringBuffer * insert(jint, jboolean);
+  ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *);
+  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
+  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *);
+  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::String *);
+  ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::Object *);
+  ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *, jint, jint);
+  ::java::lang::AbstractStringBuffer * append(jdouble);
+  ::java::lang::AbstractStringBuffer * append(jfloat);
+  ::java::lang::AbstractStringBuffer * append(jlong);
+  ::java::lang::AbstractStringBuffer * append(jint);
   ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+  ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *, jint, jint);
   ::java::lang::Appendable * append(::java::lang::CharSequence *);
+  ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *);
   ::java::lang::Appendable * append(jchar);
+  ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(jchar);
+  ::java::lang::AbstractStringBuffer * append(jboolean);
+  ::java::lang::AbstractStringBuffer * append(JArray< jchar > *, jint, jint);
+  ::java::lang::AbstractStringBuffer * append(JArray< jchar > *);
+  ::java::lang::AbstractStringBuffer * append(::java::lang::StringBuffer *);
+  ::java::lang::AbstractStringBuffer * append(::java::lang::String *);
+  ::java::lang::AbstractStringBuffer * append(::java::lang::Object *);
+  ::java::lang::AbstractStringBuffer * appendCodePoint(jint);
 private:
   static const jlong serialVersionUID = 4383685877147921099LL;
-public: // actually package-private
-  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
-  JArray< jchar > * value;
-private:
-  static const jint DEFAULT_CAPACITY = 16;
 public:
   static ::java::lang::Class class$;
 };
index 55a49e6e15d4680344fb1ab212fd55dfbbbb0b10..aefe9272b6eacf454ff532efd8ed0eb5c2674c71 100644 (file)
@@ -1,5 +1,5 @@
 /* StringBuilder.java -- Unsynchronized growable strings
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -75,6 +75,7 @@ import java.io.Serializable;
  * @since 1.5
  */
 public final class StringBuilder
+  extends AbstractStringBuffer
   implements Serializable, CharSequence, Appendable
 {
   // Implementation note: if you change this class, you usually will
@@ -85,34 +86,12 @@ public final class StringBuilder
    */
   private static final long serialVersionUID = 4383685877147921099L;
 
-  /**
-   * Index of next available character (and thus the size of the current
-   * string contents).  Note that this has permissions set this way so that
-   * String can get the value.
-   *
-   * @serial the number of characters in the buffer
-   */
-  int count;
-
-  /**
-   * The buffer.  Note that this has permissions set this way so that String
-   * can get the value.
-   *
-   * @serial the buffer
-   */
-  char[] value;
-
-  /**
-   * The default capacity of a buffer.
-   */
-  private static final int DEFAULT_CAPACITY = 16;
-
   /**
    * Create a new StringBuilder with default capacity 16.
    */
   public StringBuilder()
   {
-    this(DEFAULT_CAPACITY);
+    super();
   }
 
   /**
@@ -124,7 +103,7 @@ public final class StringBuilder
    */
   public StringBuilder(int capacity)
   {
-    value = new char[capacity];
+    super(capacity);
   }
 
   /**
@@ -137,10 +116,7 @@ public final class StringBuilder
    */
   public StringBuilder(String str)
   {
-    // Unfortunately, because the size is 16 larger, we cannot share.
-    count = str.count;
-    value = new char[count + DEFAULT_CAPACITY];
-    str.getChars(0, count, value, 0);
+    super(str);
   }
 
   /**
@@ -154,11 +130,7 @@ public final class StringBuilder
    */
   public StringBuilder(CharSequence seq)
   {
-    int len = seq.length();
-    count = len <= 0 ? 0 : len;
-    value = new char[count + DEFAULT_CAPACITY];
-    for (int i = 0; i < len; ++i)
-      value[i] = seq.charAt(i);
+    super(seq);
   }
 
   /**
@@ -188,122 +160,6 @@ public final class StringBuilder
     return value.length;
   }
 
-  /**
-   * Increase the capacity of this <code>StringBuilder</code>. This will
-   * ensure that an expensive growing operation will not occur until
-   * <code>minimumCapacity</code> is reached. The buffer is grown to the
-   * larger of <code>minimumCapacity</code> and
-   * <code>capacity() * 2 + 2</code>, if it is not already large enough.
-   *
-   * @param minimumCapacity the new capacity
-   * @see #capacity()
-   */
-  public void ensureCapacity(int minimumCapacity)
-  {
-    if (minimumCapacity > value.length)
-      {
-        int max = value.length * 2 + 2;
-        minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
-        char[] nb = new char[minimumCapacity];
-        System.arraycopy(value, 0, nb, 0, count);
-        value = nb;
-      }
-  }
-
-  /**
-   * Set the length of this StringBuilder. If the new length is greater than
-   * the current length, all the new characters are set to '\0'. If the new
-   * length is less than the current length, the first <code>newLength</code>
-   * characters of the old array will be preserved, and the remaining
-   * characters are truncated.
-   *
-   * @param newLength the new length
-   * @throws IndexOutOfBoundsException if the new length is negative
-   *         (while unspecified, this is a StringIndexOutOfBoundsException)
-   * @see #length()
-   */
-  public void setLength(int newLength)
-  {
-    if (newLength < 0)
-      throw new StringIndexOutOfBoundsException(newLength);
-
-    int valueLength = value.length;
-
-    /* Always call ensureCapacity in order to preserve copy-on-write
-       semantics.  */
-    ensureCapacity(newLength);
-
-    if (newLength < valueLength)
-      {
-        /* If the StringBuilder's value just grew, then we know that
-           value is newly allocated and the region between count and
-           newLength is filled with '\0'.  */
-       count = newLength;
-      }
-    else
-      {
-       /* The StringBuilder's value doesn't need to grow.  However,
-          we should clear out any cruft that may exist.  */
-       while (count < newLength)
-          value[count++] = '\0';
-      }
-  }
-
-  /**
-   * Get the character at the specified index.
-   *
-   * @param index the index of the character to get, starting at 0
-   * @return the character at the specified index
-   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
-   *         (while unspecified, this is a StringIndexOutOfBoundsException)
-   */
-  public char charAt(int index)
-  {
-    if (index < 0 || index >= count)
-      throw new StringIndexOutOfBoundsException(index);
-    return value[index];
-  }
-
-  /**
-   * Get the specified array of characters. <code>srcOffset - srcEnd</code>
-   * characters will be copied into the array you pass in.
-   *
-   * @param srcOffset the index to start copying from (inclusive)
-   * @param srcEnd the index to stop copying from (exclusive)
-   * @param dst the array to copy into
-   * @param dstOffset the index to start copying into
-   * @throws NullPointerException if dst is null
-   * @throws IndexOutOfBoundsException if any source or target indices are
-   *         out of range (while unspecified, source problems cause a
-   *         StringIndexOutOfBoundsException, and dest problems cause an
-   *         ArrayIndexOutOfBoundsException)
-   * @see System#arraycopy(Object, int, Object, int, int)
-   */
-  public void getChars(int srcOffset, int srcEnd,
-                      char[] dst, int dstOffset)
-  {
-    if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
-      throw new StringIndexOutOfBoundsException();
-    System.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
-  }
-
-  /**
-   * Set the character at the specified index.
-   *
-   * @param index the index of the character to set starting at 0
-   * @param ch the value to set that character to
-   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
-   *         (while unspecified, this is a StringIndexOutOfBoundsException)
-   */
-  public void setCharAt(int index, char ch)
-  {
-    if (index < 0 || index >= count)
-      throw new StringIndexOutOfBoundsException(index);
-    // Call ensureCapacity to enforce copy-on-write.
-    ensureCapacity(count);
-    value[index] = ch;
-  }
-
   /**
    * Append the <code>String</code> value of the argument to this
    * <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
@@ -316,7 +172,8 @@ public final class StringBuilder
    */
   public StringBuilder append(Object obj)
   {
-    return append(obj == null ? "null" : obj.toString());
+    super.append(obj);
+    return this;
   }
 
   /**
@@ -328,12 +185,7 @@ public final class StringBuilder
    */
   public StringBuilder append(String str)
   {
-    if (str == null)
-      str = "null";
-    int len = str.count;
-    ensureCapacity(count + len);
-    str.getChars(0, len, value, count);
-    count += len;
+    super.append(str);
     return this;
   }
 
@@ -348,15 +200,7 @@ public final class StringBuilder
    */
   public StringBuilder append(StringBuffer stringBuffer)
   {
-    if (stringBuffer == null)
-      return append("null");
-    synchronized (stringBuffer)
-      {
-       int len = stringBuffer.count;
-       ensureCapacity(count + len);
-       System.arraycopy(stringBuffer.value, 0, value, count, len);
-       count += len;
-      }
+    super.append(stringBuffer);
     return this;
   }
 
@@ -372,7 +216,8 @@ public final class StringBuilder
    */
   public StringBuilder append(char[] data)
   {
-    return append(data, 0, data.length);
+    super.append(data, 0, data.length);
+    return this;
   }
 
   /**
@@ -391,11 +236,7 @@ public final class StringBuilder
    */
   public StringBuilder append(char[] data, int offset, int count)
   {
-    if (offset < 0 || count < 0 || offset > data.length - count)
-      throw new StringIndexOutOfBoundsException();
-    ensureCapacity(this.count + count);
-    System.arraycopy(data, offset, value, this.count, count);
-    this.count += count;
+    super.append(data, offset, count);
     return this;
   }
 
@@ -410,7 +251,8 @@ public final class StringBuilder
    */
   public StringBuilder append(boolean bool)
   {
-    return append(bool ? "true" : "false");
+    super.append(bool);
+    return this;
   }
 
   /**
@@ -421,8 +263,7 @@ public final class StringBuilder
    */
   public StringBuilder append(char ch)
   {
-    ensureCapacity(count + 1);
-    value[count++] = ch;
+    super.append(ch);
     return this;
   }
 
@@ -435,7 +276,8 @@ public final class StringBuilder
    */
   public StringBuilder append(CharSequence seq)
   {
-    return append(seq, 0, seq.length());
+    super.append(seq, 0, seq.length());
+    return this;
   }
 
   /**
@@ -451,33 +293,7 @@ public final class StringBuilder
   public StringBuilder append(CharSequence seq, int start,
                              int end)
   {
-    if (seq == null)
-      return append("null");
-    if (end - start > 0)
-      {
-       ensureCapacity(count + end - start);
-       for (; start < end; ++start)
-         value[count++] = seq.charAt(start);
-      }
-    return this;
-  }
-
-  /**
-   * Append the code point to this <code>StringBuilder</code>.
-   * This is like #append(char), but will append two characters
-   * if a supplementary code point is given.
-   *
-   * @param code the code point to append
-   * @return this <code>StringBuilder</code>
-   * @see Character#toChars(int, char[], int)
-   * @since 1.5
-   */
-  public synchronized StringBuilder appendCodePoint(int code)
-  {
-    int len = Character.charCount(code);
-    ensureCapacity(count + len);
-    Character.toChars(code, value, count);
-    count += len;
+    super.append(seq, start, end);
     return this;
   }
 
@@ -490,10 +306,11 @@ public final class StringBuilder
    * @return this <code>StringBuilder</code>
    * @see String#valueOf(int)
    */
-  // FIXME: this is native in libgcj in StringBuffer.
+  // This is native in libgcj, for efficiency.
   public StringBuilder append(int inum)
   {
-    return append(String.valueOf(inum));
+    super.append(inum);
+    return this;
   }
 
   /**
@@ -507,7 +324,8 @@ public final class StringBuilder
    */
   public StringBuilder append(long lnum)
   {
-    return append(Long.toString(lnum, 10));
+    super.append(lnum);
+    return this;
   }
 
   /**
@@ -521,7 +339,8 @@ public final class StringBuilder
    */
   public StringBuilder append(float fnum)
   {
-    return append(Float.toString(fnum));
+    super.append(fnum);
+    return this;
   }
 
   /**
@@ -535,7 +354,24 @@ public final class StringBuilder
    */
   public StringBuilder append(double dnum)
   {
-    return append(Double.toString(dnum));
+    super.append(dnum);
+    return this;
+  }
+
+  /**
+   * Append the code point to this <code>StringBuilder</code>.
+   * This is like #append(char), but will append two characters
+   * if a supplementary code point is given.
+   *
+   * @param code the code point to append
+   * @return this <code>StringBuilder</code>
+   * @see Character#toChars(int, char[], int)
+   * @since 1.5
+   */
+  public StringBuilder appendCodePoint(int code)
+  {
+    super.appendCodePoint(code);
+    return this;
   }
 
   /**
@@ -550,15 +386,7 @@ public final class StringBuilder
    */
   public StringBuilder delete(int start, int end)
   {
-    if (start < 0 || start > count || start > end)
-      throw new StringIndexOutOfBoundsException(start);
-    if (end > count)
-      end = count;
-    // This will unshare if required.
-    ensureCapacity(count);
-    if (count - end != 0)
-      System.arraycopy(value, end, value, start, count - end);
-    count -= end - start;
+    super.delete(start, end);
     return this;
   }
 
@@ -571,7 +399,8 @@ public final class StringBuilder
    */
   public StringBuilder deleteCharAt(int index)
   {
-    return delete(index, index + 1);
+    super.deleteCharAt(index);
+    return this;
   }
 
   /**
@@ -589,19 +418,7 @@ public final class StringBuilder
    */
   public StringBuilder replace(int start, int end, String str)
   {
-    if (start < 0 || start > count || start > end)
-      throw new StringIndexOutOfBoundsException(start);
-
-    int len = str.count;
-    // Calculate the difference in 'count' after the replace.
-    int delta = len - (end > count ? count : end) + start;
-    ensureCapacity(count + delta);
-
-    if (delta != 0 && end < count)
-      System.arraycopy(value, end, value, end + delta, count - end);
-
-    str.getChars(0, len, value, start);
-    count += delta;
+    super.replace(start, end, str);
     return this;
   }
 
@@ -672,13 +489,7 @@ public final class StringBuilder
   public StringBuilder insert(int offset,
                              char[] str, int str_offset, int len)
   {
-    if (offset < 0 || offset > count || len < 0
-        || str_offset < 0 || str_offset > str.length - len)
-      throw new StringIndexOutOfBoundsException();
-    ensureCapacity(count + len);
-    System.arraycopy(value, offset, value, offset + len, count - offset);
-    System.arraycopy(str, str_offset, value, offset, len);
-    count += len;
+    super.insert(offset, str, str_offset, len);
     return this;
   }
 
@@ -695,7 +506,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, Object obj)
   {
-    return insert(offset, obj == null ? "null" : obj.toString());
+    super.insert(offset, obj);
+    return this;
   }
 
   /**
@@ -710,15 +522,7 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, String str)
   {
-    if (offset < 0 || offset > count)
-      throw new StringIndexOutOfBoundsException(offset);
-    if (str == null)
-      str = "null";
-    int len = str.count;
-    ensureCapacity(count + len);
-    System.arraycopy(value, offset, value, offset + len, count - offset);
-    str.getChars(0, len, value, offset);
-    count += len;
+    super.insert(offset, str);
     return this;
   }
 
@@ -732,11 +536,10 @@ public final class StringBuilder
    * @return this <code>StringBuilder</code>
    * @throws IndexOutOfBoundsException if offset is out of bounds
    */
-  public synchronized StringBuilder insert(int offset, CharSequence sequence)
+  public StringBuilder insert(int offset, CharSequence sequence)
   {
-    if (sequence == null)
-      sequence = "null";
-    return insert(offset, sequence, 0, sequence.length());
+    super.insert(offset, sequence);
+    return this;
   }
 
   /**
@@ -752,19 +555,10 @@ public final class StringBuilder
    * @throws IndexOutOfBoundsException if offset, start,
    * or end are out of bounds
    */
-  public synchronized StringBuilder insert(int offset, CharSequence sequence,
-                      int start, int end)
+  public StringBuilder insert(int offset, CharSequence sequence,
+                             int start, int end)
   {
-    if (sequence == null)
-      sequence = "null";
-    if (start < 0 || end < 0 || start > end || end > sequence.length())
-      throw new IndexOutOfBoundsException();
-    int len = end - start;
-    ensureCapacity(count + len);
-    System.arraycopy(value, offset, value, offset + len, count - offset);
-    for (int i = start; i < end; ++i)
-      value[offset++] = sequence.charAt(i);
-    count += len;
+    super.insert(offset, sequence, start, end);
     return this;
   }
 
@@ -781,7 +575,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, char[] data)
   {
-    return insert(offset, data, 0, data.length);
+    super.insert(offset, data);
+    return this;
   }
 
   /**
@@ -797,7 +592,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, boolean bool)
   {
-    return insert(offset, bool ? "true" : "false");
+    super.insert(offset, bool);
+    return this;
   }
 
   /**
@@ -810,12 +606,7 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, char ch)
   {
-    if (offset < 0 || offset > count)
-      throw new StringIndexOutOfBoundsException(offset);
-    ensureCapacity(count + 1);
-    System.arraycopy(value, offset, value, offset + 1, count - offset);
-    value[offset] = ch;
-    count++;
+    super.insert(offset, ch);
     return this;
   }
 
@@ -832,7 +623,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, int inum)
   {
-    return insert(offset, String.valueOf(inum));
+    super.insert(offset, inum);
+    return this;
   }
 
   /**
@@ -848,7 +640,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, long lnum)
   {
-    return insert(offset, Long.toString(lnum, 10));
+    super.insert(offset, lnum);
+    return this;
   }
 
   /**
@@ -864,7 +657,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, float fnum)
   {
-    return insert(offset, Float.toString(fnum));
+    super.insert(offset, fnum);
+    return this;
   }
 
   /**
@@ -880,75 +674,8 @@ public final class StringBuilder
    */
   public StringBuilder insert(int offset, double dnum)
   {
-    return insert(offset, Double.toString(dnum));
-  }
-
-  /**
-   * Finds the first instance of a substring in this StringBuilder.
-   *
-   * @param str String to find
-   * @return location (base 0) of the String, or -1 if not found
-   * @throws NullPointerException if str is null
-   * @see #indexOf(String, int)
-   */
-  public int indexOf(String str)
-  {
-    return indexOf(str, 0);
-  }
-
-  /**
-   * Finds the first instance of a String in this StringBuilder, starting at
-   * a given index.  If starting index is less than 0, the search starts at
-   * the beginning of this String.  If the starting index is greater than the
-   * length of this String, or the substring is not found, -1 is returned.
-   *
-   * @param str String to find
-   * @param fromIndex index to start the search
-   * @return location (base 0) of the String, or -1 if not found
-   * @throws NullPointerException if str is null
-   */
-  public int indexOf(String str, int fromIndex)
-  {
-    if (fromIndex < 0)
-      fromIndex = 0;
-    int limit = count - str.count;
-    for ( ; fromIndex <= limit; fromIndex++)
-      if (regionMatches(fromIndex, str))
-        return fromIndex;
-    return -1;
-  }
-
-  /**
-   * Finds the last instance of a substring in this StringBuilder.
-   *
-   * @param str String to find
-   * @return location (base 0) of the String, or -1 if not found
-   * @throws NullPointerException if str is null
-   * @see #lastIndexOf(String, int)
-   */
-  public int lastIndexOf(String str)
-  {
-    return lastIndexOf(str, count - str.count);
-  }
-
-  /**
-   * Finds the last instance of a String in this StringBuilder, starting at a
-   * given index.  If starting index is greater than the maximum valid index,
-   * then the search begins at the end of this String.  If the starting index
-   * is less than zero, or the substring is not found, -1 is returned.
-   *
-   * @param str String to find
-   * @param fromIndex index to start the search
-   * @return location (base 0) of the String, or -1 if not found
-   * @throws NullPointerException if str is null
-   */
-  public int lastIndexOf(String str, int fromIndex)
-  {
-    fromIndex = Math.min(fromIndex, count - str.count);
-    for ( ; fromIndex >= 0; fromIndex--)
-      if (regionMatches(fromIndex, str))
-        return fromIndex;
-    return -1;
+    super.insert(offset, dnum);
+    return this;
   }
 
   /**
@@ -959,14 +686,7 @@ public final class StringBuilder
    */
   public StringBuilder reverse()
   {
-    // Call ensureCapacity to enforce copy-on-write.
-    ensureCapacity(count);
-    for (int i = count >> 1, j = count - i; --i >= 0; ++j)
-      {
-        char c = value[i];
-        value[i] = value[j];
-        value[j] = c;
-      }
+    super.reverse();
     return this;
   }
 
@@ -983,80 +703,4 @@ public final class StringBuilder
     return new String(this);
   }
 
-  /**
-   * Predicate which determines if a substring of this matches another String
-   * starting at a specified offset for each String and continuing for a
-   * specified length. This is more efficient than creating a String to call
-   * indexOf on.
-   *
-   * @param toffset index to start comparison at for this String
-   * @param other non-null String to compare to region of this
-   * @return true if regions match, false otherwise
-   * @see #indexOf(String, int)
-   * @see #lastIndexOf(String, int)
-   * @see String#regionMatches(boolean, int, String, int, int)
-   */
-  // GCJ LOCAL: Native to access String internals properly.
-  private native boolean regionMatches(int toffset, String other);
-
-  /**
-   * Get the code point at the specified index.  This is like #charAt(int),
-   * but if the character is the start of a surrogate pair, and the
-   * following character completes the pair, then the corresponding
-   * supplementary code point is returned.
-   * @param index the index of the codepoint to get, starting at 0
-   * @return the codepoint at the specified index
-   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
-   * @since 1.5
-   */
-  public int codePointAt(int index)
-  {
-    return Character.codePointAt(value, index, count);
-  }
-
-    /**
-   * Get the code point before the specified index.  This is like
-   * #codePointAt(int), but checks the characters at <code>index-1</code> and
-   * <code>index-2</code> to see if they form a supplementary code point.
-   * @param index the index just past the codepoint to get, starting at 0
-   * @return the codepoint at the specified index
-   * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
-   * @since 1.5
-   */
-  public int codePointBefore(int index)
-  {
-    // Character.codePointBefore() doesn't perform this check.  We
-    // could use the CharSequence overload, but this is just as easy.
-    if (index >= count)
-      throw new IndexOutOfBoundsException();
-    return Character.codePointBefore(value, index, 1);
-  }
-
-  /**
-   * Returns the number of Unicode code points in the specified sub sequence.
-   * Surrogate pairs count as one code point.
-   * @param beginIndex the start of the subarray
-   * @param endIndex the index after the last char in the subarray
-   * @return the number of code points
-   * @throws IndexOutOfBoundsException if beginIndex is less than zero or 
-   * greater than endIndex or if endIndex is greater than the length of this 
-   * StringBuilder
-   */
-  public int codePointCount(int beginIndex,int endIndex)
-  {
-    if (beginIndex < 0 || beginIndex > endIndex || endIndex > count)
-      throw new IndexOutOfBoundsException("invalid indices: " + beginIndex
-                                          + ", " + endIndex);
-    return Character.codePointCount(value, beginIndex, endIndex - beginIndex);
-  }
-
-  public void trimToSize()
-  {
-    if (count < value.length)
-      {
-        char[] newValue = new char[count];
-        System.arraycopy(value, 0, newValue, 0, count);
-        value = newValue;
-      }
-  }
 }
index b9116b1aad296017cc4acb8c1a0d774980e61dd1..54764c83c5abc221f2f9b6e6762957555dedda18 100644 (file)
@@ -18,13 +18,6 @@ extern "Java"
         class RawData;
         class RawDataManaged;
     }
-    namespace java
-    {
-      namespace util
-      {
-          class WeakIdentityHashMap;
-      }
-    }
   }
 }
 
@@ -100,7 +93,7 @@ private:
   void initialize_native();
   static ::java::lang::String * gen_name();
 public: // actually package-private
-  static ::java::util::Map * getThreadLocals();
+  static ::java::lang::ThreadLocalMap * getThreadLocals();
 public:
   virtual void setUncaughtExceptionHandler(::java::lang::Thread$UncaughtExceptionHandler *);
   virtual ::java::lang::Thread$UncaughtExceptionHandler * getUncaughtExceptionHandler();
@@ -135,7 +128,7 @@ private:
   static jlong totalThreadsCreated;
   static ::java::lang::Thread$UncaughtExceptionHandler * defaultHandler;
 public: // actually package-private
-  ::gnu::java::util::WeakIdentityHashMap * locals;
+  ::java::lang::ThreadLocalMap * locals;
   ::java::lang::Thread$UncaughtExceptionHandler * exceptionHandler;
 private:
   ::java::lang::Object * parkBlocker;
index 1e1e860cea00bcde59632a1f6851df46188c0859..8b6d4ba75424e011494e48f7a85d23b01fb0bc8f 100644 (file)
@@ -160,7 +160,7 @@ public class Thread implements Runnable
   /** Thread local storage. Package accessible for use by
     * InheritableThreadLocal.
     */
-  WeakIdentityHashMap locals;
+  ThreadLocalMap locals;
 
   /** The uncaught exception handler.  */
   UncaughtExceptionHandler exceptionHandler;
@@ -431,6 +431,12 @@ public class Thread implements Runnable
         this.threadId = nextThreadId++;
       }
 
+    // Always create the ThreadLocalMap when creating a thread; the
+    // previous code did this lazily when getThreadLocals was called,
+    // but this is a divergence from Classpath's implementation of
+    // ThreadLocal.
+    this.locals = new ThreadLocalMap();
+
     if (current != null)
       {
        group.checkAccess();
@@ -1019,14 +1025,11 @@ public class Thread implements Runnable
   /**
    * Returns the map used by ThreadLocal to store the thread local values.
    */
-  static Map getThreadLocals()
+  static ThreadLocalMap getThreadLocals()
   {
     Thread thread = currentThread();
-    Map locals = thread.locals;
-    if (locals == null)
-      {
-        locals = thread.locals = new WeakIdentityHashMap();
-      }
+    ThreadLocalMap locals = thread.locals;
+
     return locals;
   }
 
index 4bea931851690615477d6574ac6651f7bfa9ec75..13e1f84c6abadf421c7a8b9edbd56e860fbf12ad 100644 (file)
@@ -21,6 +21,7 @@ extern "Java"
 class java::lang::ThreadLocal : public ::java::lang::Object
 {
 
+  jint computeNextHash();
 public:
   ThreadLocal();
 public: // actually protected
@@ -44,7 +45,11 @@ private:
 public: // actually package-private
   static ::java::lang::Object * sentinel;
 private:
-  ::gnu::gcj::RawData * __attribute__((aligned(__alignof__( ::java::lang::Object)))) TLSPointer;
+  static jint nextHashBase;
+public: // actually package-private
+  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) fastHash;
+private:
+  ::gnu::gcj::RawData * TLSPointer;
 public:
   static ::java::lang::Class class$;
 };
index 6558c94c99927f332b7668a7fd73bcd16f0d36aa..9223dbaae4571c737b5a009f80df78d846c0f47d 100644 (file)
@@ -95,12 +95,31 @@ public class ThreadLocal<T>
    */
   static final Object sentinel = new Object();
 
+  /**
+   * The base for the computation of the next hash for a thread local.
+   */
+  private static int nextHashBase = 1;
+
+  /**
+   * Allocate a new hash.
+   */
+  private synchronized int computeNextHash() 
+  {
+    return nextHashBase++ * 6709;
+  }
+
+  /**
+   * Hash code computed for ThreadLocalMap
+   */
+  final int fastHash;
+
   /**
    * Creates a ThreadLocal object without associating any value to it yet.
    */
   public ThreadLocal()
   {
     constructNative();
+    fastHash = computeNextHash();
   }
 
   /**
@@ -128,16 +147,16 @@ public class ThreadLocal<T>
 
   private final Object internalGet()
   {
-    Map<ThreadLocal<T>,T> map = (Map<ThreadLocal<T>,T>) Thread.getThreadLocals();
+    ThreadLocalMap map = Thread.getThreadLocals();
     // Note that we don't have to synchronize, as only this thread will
     // ever modify the map.
-    T value = map.get(this);
-    if (value == null)
+    T value = (T) map.get(this);
+    if (value == sentinel)
       {
         value = initialValue();
-        map.put(this, (T) (value == null ? sentinel : value));
+        map.set(this, value);
       }
-    return value == (T) sentinel ? null : value;
+    return value;
   }
 
   /**
@@ -152,10 +171,10 @@ public class ThreadLocal<T>
 
   private final void internalSet(Object value)
   {
-    Map map = Thread.getThreadLocals();
+    ThreadLocalMap map = Thread.getThreadLocals();
     // Note that we don't have to synchronize, as only this thread will
     // ever modify the map.
-    map.put(this, value == null ? sentinel : value);
+    map.set(this, value);
   }
 
   /**
@@ -167,7 +186,7 @@ public class ThreadLocal<T>
 
   private final void internalRemove()
   {
-    Map map = Thread.getThreadLocals();
+    ThreadLocalMap map = Thread.getThreadLocals();
     map.remove(this);
   }
 
diff --git a/libjava/java/lang/ThreadLocalMap$Entry.h b/libjava/java/lang/ThreadLocalMap$Entry.h
new file mode 100644 (file)
index 0000000..51b4db9
--- /dev/null
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ThreadLocalMap$Entry__
+#define __java_lang_ThreadLocalMap$Entry__
+
+#pragma interface
+
+#include <java/lang/ref/WeakReference.h>
+
+class java::lang::ThreadLocalMap$Entry : public ::java::lang::ref::WeakReference
+{
+
+public: // actually package-private
+  ThreadLocalMap$Entry(::java::lang::ThreadLocal *);
+  ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::ref::WeakReference)))) value;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ThreadLocalMap$Entry__
diff --git a/libjava/java/lang/ThreadLocalMap.h b/libjava/java/lang/ThreadLocalMap.h
new file mode 100644 (file)
index 0000000..3a1f107
--- /dev/null
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ThreadLocalMap__
+#define __java_lang_ThreadLocalMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::ThreadLocalMap : public ::java::lang::Object
+{
+
+public: // actually package-private
+  ThreadLocalMap();
+private:
+  void newEntryArray(jint);
+  void overflow();
+public:
+  ::java::lang::Object * get(::java::lang::ThreadLocal *);
+  void set(::java::lang::ThreadLocal *, ::java::lang::Object *);
+  void remove(::java::lang::ThreadLocal *);
+public: // actually package-private
+  void clear();
+public:
+  void inherit(::java::lang::ThreadLocalMap *);
+private:
+  static const jint LOG_INITIAL_SIZE = 3;
+  static jfloat MAX_OCCUPANCY;
+  static jfloat TARGET_OCCUPANCY;
+  static ::java::lang::ThreadLocalMap$Entry * deletedEntry;
+  JArray< ::java::lang::ThreadLocalMap$Entry * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) entries;
+  jint hashMask;
+  jint count;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ThreadLocalMap__
index 097f9d2f2e7dcd101547fb232ccc371b4b85214b..2e7532c3af922513a56001cad8634905fa2257af 100644 (file)
@@ -9,6 +9,19 @@
 #include <java/lang/Object.h>
 #include <gcj/array.h>
 
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
+  }
+}
 
 class java::lang::Throwable : public ::java::lang::Object
 {
@@ -28,7 +41,7 @@ public:
   virtual void printStackTrace(::java::io::PrintWriter *);
 private:
   ::java::lang::String * stackTraceString();
-  static void stackTraceStringBuffer(::java::lang::StringBuilder *, ::java::lang::String *, JArray< ::java::lang::StackTraceElement * > *, jint);
+  static void stackTraceStringBuffer(::gnu::java::lang::CPStringBuilder *, ::java::lang::String *, JArray< ::java::lang::StackTraceElement * > *, jint);
 public:
   virtual ::java::lang::Throwable * fillInStackTrace();
   virtual JArray< ::java::lang::StackTraceElement * > * getStackTrace();
diff --git a/libjava/java/lang/natAbstractStringBuffer.cc b/libjava/java/lang/natAbstractStringBuffer.cc
new file mode 100644 (file)
index 0000000..b2df69c
--- /dev/null
@@ -0,0 +1,41 @@
+// natStringBuffer.cc - Implementation of java.lang.StringBuffer native methods.
+
+/* Copyright (C) 2001, 2003  Free Software Foundation
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+
+#include <config.h>
+#include <gcj/cni.h>
+#include <java/lang/AbstractStringBuffer.h>
+
+java::lang::AbstractStringBuffer*
+java::lang::AbstractStringBuffer::append (jint num)
+{
+  // Use an array large enough for "-2147483648"; i.e. 11 chars.
+  jchar buffer[11];
+  int i = _Jv_FormatInt (buffer+11, num);
+  jint needed = count + i;
+  ensureCapacity_unsynchronized (needed);
+  jchar* dst = elements (value) + count;
+  jchar* src = buffer+11-i;
+  while (--i >= 0)
+    *dst++ = *src++;
+  count = needed;
+  return this;
+}
+
+jboolean
+java::lang::AbstractStringBuffer::regionMatches(jint toffset, jstring other)
+{
+  jint len = other->count;
+  jchar *tptr = elements(value) + toffset;
+  jchar *optr = JvGetStringChars(other);
+  while (--len >= 0)
+    if (*tptr++ != *optr++)
+      return false;
+  return true;
+}
diff --git a/libjava/java/lang/natStringBuffer.cc b/libjava/java/lang/natStringBuffer.cc
deleted file mode 100644 (file)
index 8fbb8df..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-// natStringBuffer.cc - Implementation of java.lang.StringBuffer native methods.
-
-/* Copyright (C) 2001, 2003  Free Software Foundation
-
-   This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
-details.  */
-
-#include <config.h>
-#include <gcj/cni.h>
-#include <java/lang/StringBuffer.h>
-
-java::lang::StringBuffer*
-java::lang::StringBuffer::append (jint num)
-{
-  // Use an array large enough for "-2147483648"; i.e. 11 chars.
-  jchar buffer[11];
-  int i = _Jv_FormatInt (buffer+11, num);
-  JvSynchronize dummy (this);
-  jint needed = count + i;
-  ensureCapacity_unsynchronized (needed);
-  jchar* dst = elements (value) + count;
-  jchar* src = buffer+11-i;
-  while (--i >= 0)
-    *dst++ = *src++;
-  count = needed;
-  return this;
-}
-
-jboolean
-java::lang::StringBuffer::regionMatches(jint toffset, jstring other)
-{
-  jint len = other->count;
-  jchar *tptr = elements(value) + toffset;
-  jchar *optr = JvGetStringChars(other);
-  while (--len >= 0)
-    if (*tptr++ != *optr++)
-      return false;
-  return true;
-}
diff --git a/libjava/java/lang/natStringBuilder.cc b/libjava/java/lang/natStringBuilder.cc
deleted file mode 100644 (file)
index e2c8c29..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-// Native methods for StringBuilder.
-
-/* Copyright (C) 2005  Free Software Foundation
-
-   This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
-details.  */
-
-#include <config.h>
-#include <gcj/cni.h>
-#include <java/lang/StringBuilder.h>
-#include <java/lang/String.h>
-
-jboolean
-java::lang::StringBuilder::regionMatches(jint offset, jstring other)
-{
-  int len = other->count;
-  int index = 0;
-  jchar *sc = elements (value);
-  jchar *oc = _Jv_GetStringChars (other);
-  while (--len >= 0)
-    {
-      if (sc[offset++] != oc[index++])
-       return false;
-    }
-  return true;
-}
index eaf03268224c694374b278824ff2288732a1acd1..a3ace698ab1c65259fc8bb65472ecbec25071752 100644 (file)
 
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+      namespace math
+      {
+          class GMP;
+      }
+    }
+  }
   namespace java
   {
     namespace math
@@ -38,6 +52,7 @@ public:
   static ::java::math::BigInteger * probablePrime(jint, ::java::util::Random *);
   static ::java::math::BigInteger * valueOf(jlong);
 private:
+  static jboolean initializeLibrary();
   static ::java::math::BigInteger * make(JArray< jint > *, jint);
   static JArray< jint > * byteArrayToIntArray(JArray< jbyte > *, jint);
   static ::java::math::BigInteger * alloc(jint);
@@ -102,7 +117,7 @@ public:
   virtual ::java::math::BigInteger * shiftLeft(jint);
   virtual ::java::math::BigInteger * shiftRight(jint);
 private:
-  void format(jint, ::java::lang::StringBuffer *);
+  void format(jint, ::gnu::java::lang::CPStringBuilder *);
 public:
   virtual ::java::lang::String * toString();
   virtual ::java::lang::String * toString(jint);
@@ -114,7 +129,6 @@ private:
 public:
   virtual jboolean equals(::java::lang::Object *);
 private:
-  static ::java::math::BigInteger * valueOf(::java::lang::String *, jint);
   static ::java::math::BigInteger * valueOf(JArray< jbyte > *, jint, jboolean, jint);
 public:
   virtual jdouble doubleValue();
@@ -162,11 +176,11 @@ private:
 public:
   virtual jint compareTo(::java::lang::Object *);
 private:
+  static ::java::util::logging::Logger * log;
   jint __attribute__((aligned(__alignof__( ::java::lang::Number)))) ival;
   JArray< jint > * words;
   jint bitCount__;
   jint bitLength__;
-  jint firstNonzeroByteNum;
   jint lowestSetBit;
   JArray< jbyte > * magnitude;
   jint signum__;
@@ -175,6 +189,8 @@ private:
   static const jint maxFixNum = 1024;
   static const jint numFixNum = 1125;
   static JArray< ::java::math::BigInteger * > * smallFixNums;
+  ::gnu::java::math::GMP * mpz;
+  static jboolean USING_NATIVE;
 public:
   static ::java::math::BigInteger * ZERO;
   static ::java::math::BigInteger * ONE;
index 8417042ed388c611d33251cd3a836bf0d30f1b3f..143b35a74255ebd272ee3781517f17bd68a84acd 100644 (file)
@@ -9,6 +9,16 @@
 #include <java/lang/Object.h>
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
+  }
   namespace java
   {
     namespace net
@@ -44,7 +54,7 @@ public:
   ::java::net::URI * normalize();
 private:
   ::java::lang::String * normalizePath(::java::lang::String *);
-  void removeLastSegment(::java::lang::StringBuilder *);
+  void removeLastSegment(::gnu::java::lang::CPStringBuilder *);
 public:
   ::java::net::URI * resolve(::java::net::URI *);
   ::java::net::URI * resolve(::java::lang::String *);
index fd985db942147311cc0b52d06d95ac0f621c3a91..3b958b4964e3444fe92543110cea2c7a2c3764e5 100644 (file)
@@ -29,7 +29,7 @@ class java::nio::Buffer : public ::java::lang::Object
 {
 
 public: // actually package-private
-  Buffer(jint, jint, jint, jint);
+  Buffer(jint, jint, jint, jint, ::gnu::gcj::RawData *);
 public:
   virtual jint capacity();
   virtual ::java::nio::Buffer * clear();
@@ -52,7 +52,9 @@ public: // actually package-private
   virtual void checkIndex(jint);
   virtual void checkIfReadOnly();
   static void checkArraySize(jint, jint, jint);
+private:
   jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) cap;
+public: // actually package-private
   jint limit__;
   jint pos;
   jint mark__;
index f369b9622189b96e6174d8a3f2e8181eaa5378a9..222b84fd5dd451a42b92843e782490e798dff64a 100644 (file)
@@ -45,22 +45,24 @@ import gnu.gcj.RawData;
  */
 public abstract class Buffer
 {
-  int cap = 0;
-  int limit = 0;
-  int pos = 0;
-  int mark = -1;
-  RawData address;
+  private final int cap;
+  int limit;
+  int pos;
+  int mark;
+  final RawData address;
 
   /**
    * Creates a new Buffer.
    *
    * Should be package private.
    */
-  Buffer (int capacity, int limit, int position, int mark)
+  Buffer (int capacity, int limit, int position, int mark,
+         RawData address)
   {
     if (capacity < 0)
       throw new IllegalArgumentException ();
     
+    this.address = address;
     cap = capacity;
     limit (limit);
     position (position);
@@ -72,6 +74,10 @@ public abstract class Buffer
       
       this.mark = mark;
     }
+    else
+    {
+      this.mark = -1;
+    }
   }
   
   /**
index 7836894bde792037bc476839ee0aa389cebb5a8a..cf1f5be6680b9833c6541b51ec21e470a202fa43 100644 (file)
 
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace gcj
+    {
+        class RawData;
+    }
+  }
   namespace java
   {
     namespace nio
@@ -31,7 +38,7 @@ class java::nio::ByteBuffer : public ::java::nio::Buffer
 {
 
 public: // actually package-private
-  ByteBuffer(jint, jint, jint, jint);
+  ByteBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jbyte > *, jint);
 public:
   static ::java::nio::ByteBuffer * allocateDirect(jint);
   static ::java::nio::ByteBuffer * allocate(jint);
@@ -96,8 +103,8 @@ public:
   virtual jint compareTo(::java::lang::Object *);
 public: // actually package-private
   ::java::nio::ByteOrder * __attribute__((aligned(__alignof__( ::java::nio::Buffer)))) endian;
-  jint array_offset;
   JArray< jbyte > * backing_buffer;
+  jint array_offset;
 public:
   static ::java::lang::Class class$;
 };
index 3d3356041ea95a32f0c5bf608479367fc1535e68..73b4ba91770331a999cc56f101d2122dfd259d0a 100644 (file)
 
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace gcj
+    {
+        class RawData;
+    }
+  }
   namespace java
   {
     namespace nio
@@ -25,7 +32,7 @@ class java::nio::CharBuffer : public ::java::nio::Buffer
 {
 
 public: // actually package-private
-  CharBuffer(jint, jint, jint, jint);
+  CharBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jchar > *, jint);
 public:
   static ::java::nio::CharBuffer * allocate(jint);
   static ::java::nio::CharBuffer * wrap(JArray< jchar > *, jint, jint);
index e448ea97cf13bf92276641a1d23fd4493b3e0bb7..dd40d5a4126eaef25bf96aee56dcf304dd72c0e3 100644 (file)
@@ -109,25 +109,23 @@ abstract class DirectByteBufferImpl extends ByteBuffer
 
   DirectByteBufferImpl(int capacity)
   {
-    super(capacity, capacity, 0, -1);
+    super(capacity, capacity, 0, -1,
+         VMDirectByteBuffer.allocate(capacity), null, 0);
     this.owner = this;
-    this.address = VMDirectByteBuffer.allocate(capacity);
   }
 
   DirectByteBufferImpl(RawData address, int capacity)
   {
-    super(capacity, capacity, 0, -1);
+    super(capacity, capacity, 0, -1, address, null, 0);
     this.owner = null;
-    this.address = address;
   }
   
   DirectByteBufferImpl(Object owner, RawData address,
                       int capacity, int limit,
                       int position)
   {
-    super(capacity, limit, position, -1);
+    super(capacity, limit, position, -1, address, null, 0);
     this.owner = owner;
-    this.address = address;
   }
 
   /**
index e201a4f27617e8bbcf28f8d72a2087386bc67dba..cb7da18f2b3728b47ac3a73be45912ed5a1110d0 100644 (file)
 
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace gcj
+    {
+        class RawData;
+    }
+  }
   namespace java
   {
     namespace nio
@@ -25,7 +32,7 @@ class java::nio::DoubleBuffer : public ::java::nio::Buffer
 {
 
 public: // actually package-private
-  DoubleBuffer(jint, jint, jint, jint);
+  DoubleBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jdouble > *, jint);
 public:
   static ::java::nio::DoubleBuffer * allocate(jint);
   static ::java::nio::DoubleBuffer * wrap(JArray< jdouble > *, jint, jint);
index 18348f2ea4be6508565c2a9beeebf748e03101e5..334bdc482f777e0d52e43cfe25c31bc7fed213b2 100644 (file)
 
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace gcj
+    {
+        class RawData;
+    }
+  }
   namespace java
   {
     namespace nio
@@ -25,7 +32,7 @@ class java::nio::FloatBuffer : public ::java::nio::Buffer
 {
 
 public: // actually package-private
-  FloatBuffer(jint, jint, jint, jint);
+  FloatBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jfloat > *, jint);
 public:
   static ::java::nio::FloatBuffer * allocate(jint);
   static ::java::nio::FloatBuffer * wrap(JArray< jfloat > *, jint, jint);
index e099d4a0b23c95f6511f46a0f4f6e4d50fb4bb01..fa22507127264bbaf44798221dea906f0d6ae704 100644 (file)
 
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace gcj
+    {
+        class RawData;
+    }
+  }
   namespace java
   {
     namespace nio
@@ -25,7 +32,7 @@ class java::nio::IntBuffer : public ::java::nio::Buffer
 {
 
 public: // actually package-private
-  IntBuffer(jint, jint, jint, jint);
+  IntBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jint > *, jint);
 public:
   static ::java::nio::IntBuffer * allocate(jint);
   static ::java::nio::IntBuffer * wrap(JArray< jint > *, jint, jint);
index 0e6ad30ef076250f4646b9cb52bd55b8f30539d0..622f2419c2f069877612fcbb156877aa2b092acf 100644 (file)
 
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace gcj
+    {
+        class RawData;
+    }
+  }
   namespace java
   {
     namespace nio
@@ -25,7 +32,7 @@ class java::nio::LongBuffer : public ::java::nio::Buffer
 {
 
 public: // actually package-private
-  LongBuffer(jint, jint, jint, jint);
+  LongBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jlong > *, jint);
 public:
   static ::java::nio::LongBuffer * allocate(jint);
   static ::java::nio::LongBuffer * wrap(JArray< jlong > *, jint, jint);
index d8b3f49a652080fd9366a95ebfb469f62cd6f435..05fe81b3c279fef016c368e66a54b110914f6f26 100644 (file)
@@ -9,6 +9,13 @@
 #include <java/nio/ByteBuffer.h>
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace gcj
+    {
+        class RawData;
+    }
+  }
   namespace java
   {
     namespace nio
@@ -22,7 +29,7 @@ class java::nio::MappedByteBuffer : public ::java::nio::ByteBuffer
 {
 
 public: // actually package-private
-  MappedByteBuffer(jint, jint, jint, jint);
+  MappedByteBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *);
   virtual void forceImpl();
 public:
   virtual ::java::nio::MappedByteBuffer * force();
index e678d49fb735e1097fe677413432badcf57be512..71725bf1ba33cee02b823d625e0e0ab383af57e6 100644 (file)
@@ -88,6 +88,7 @@ public: // actually package-private
   jboolean isLoadedImpl();
   void loadImpl();
   void forceImpl();
+private:
   jboolean __attribute__((aligned(__alignof__( ::java::nio::MappedByteBuffer)))) readOnly;
 public:
   ::gnu::gcj::RawData * implPtr;
index 444eeea910488bbbc405af9e1fd52bf79df2127f..c8d458a38a566b787da1edaef4faeefdfca3a587 100644 (file)
@@ -44,7 +44,7 @@ import java.io.IOException;
 
 final class MappedByteBufferImpl extends MappedByteBuffer
 {
-  boolean readOnly;
+  private final boolean readOnly;
 
   /** Posix uses this for the pointer returned by mmap;
    * Win32 uses it for the pointer returned by MapViewOfFile. */
@@ -56,8 +56,7 @@ final class MappedByteBufferImpl extends MappedByteBuffer
   public MappedByteBufferImpl(RawData address, int size, boolean readOnly)
     throws IOException
   {
-    super(size, size, 0, -1);
-    this.address = address;
+    super(size, size, 0, -1, address);
     this.readOnly = readOnly;
   }
 
index ddcfc093ee257c4ff4360f7b134f25cdf921082b..1cb82a085db1f204281a34c36802f0f3db7f5d8c 100644 (file)
 
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace gcj
+    {
+        class RawData;
+    }
+  }
   namespace java
   {
     namespace nio
@@ -25,7 +32,7 @@ class java::nio::ShortBuffer : public ::java::nio::Buffer
 {
 
 public: // actually package-private
-  ShortBuffer(jint, jint, jint, jint);
+  ShortBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jshort > *, jint);
 public:
   static ::java::nio::ShortBuffer * allocate(jint);
   static ::java::nio::ShortBuffer * wrap(JArray< jshort > *, jint, jint);
index 63f82979fe8eb493c3297ee56d482331bb89de3c..a5398f48cdc1c017cc296f00f39aff0fc44a879e 100644 (file)
@@ -53,7 +53,7 @@ public:
   static jboolean unexportObject(::java::rmi::Remote *, jboolean);
 public: // actually package-private
   static ::java::rmi::Remote * exportObject(::java::rmi::Remote *, jint, ::java::rmi::server::RMIServerSocketFactory *);
-public:
+private:
   static ::java::rmi::Remote * export$(::java::rmi::activation::ActivationID *, ::java::rmi::Remote *, jint, ::java::rmi::server::RMIServerSocketFactory *);
   static ::java::rmi::server::ObjID * makeId(::java::rmi::activation::ActivationID *);
 public: // actually package-private
index 5b85eff35374dd2127c24823499880a008853af8..90333692e72d5c246860d1b2f437d6f1a8f77543 100644 (file)
@@ -39,7 +39,7 @@ public:
   virtual jboolean equals(::java::lang::Object *);
   virtual jboolean equals(::java::sql::Timestamp *);
   virtual jint compareTo(::java::sql::Timestamp *);
-  virtual jint Timestamp$compareTo(::java::util::Date *);
+  virtual jint Date$compareTo(::java::util::Date *);
 public: // actually package-private
   static const jlong serialVersionUID = 2745179027874758501LL;
 private:
index 30aa77a6788ee4dc9d94660657a5ac2695508d1b..92852ebff18611c6953837c63ad6018b47580661 100644 (file)
 
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
+  }
   namespace java
   {
     namespace text
@@ -41,7 +51,7 @@ public:
   static jdouble previousDouble(jdouble);
   virtual void setChoices(JArray< jdouble > *, JArray< ::java::lang::String * > *);
 private:
-  void quoteString(::java::lang::StringBuffer *, ::java::lang::String *);
+  void quoteString(::gnu::java::lang::CPStringBuilder *, ::java::lang::String *);
 public:
   virtual ::java::lang::String * toPattern();
 private:
index e586d22fe626caf353d4cae51cbca3677e50bd8b..47480476ff179114faafb63c4b6d95bb70c85f7e 100644 (file)
@@ -54,12 +54,6 @@ public:
   static ::java::text::DateFormat$Field * HOUR1;
   static ::java::text::DateFormat$Field * HOUR0;
   static ::java::text::DateFormat$Field * TIME_ZONE;
-  static ::java::text::DateFormat$Field * ISO_YEAR;
-  static ::java::text::DateFormat$Field * LOCALIZED_DAY_OF_WEEK;
-  static ::java::text::DateFormat$Field * EXTENDED_YEAR;
-  static ::java::text::DateFormat$Field * MODIFIED_JULIAN_DAY;
-  static ::java::text::DateFormat$Field * MILLISECOND_IN_DAY;
-  static ::java::text::DateFormat$Field * RFC822_TIME_ZONE;
 public: // actually package-private
   static JArray< ::java::text::DateFormat$Field * > * allFields;
 public:
index 7f82499eea660d166637a5c953b8980f36117c7a..5f5241fcb11d757aa7b59787f45f3406f8d2bd7e 100644 (file)
@@ -91,12 +91,6 @@ public:
   static const jint HOUR1_FIELD = 15;
   static const jint HOUR0_FIELD = 16;
   static const jint TIMEZONE_FIELD = 17;
-  static const jint ISO_YEAR_FIELD = 18;
-  static const jint LOCALIZED_DAY_OF_WEEK_FIELD = 19;
-  static const jint EXTENDED_YEAR_FIELD = 20;
-  static const jint MODIFIED_JULIAN_DAY_FIELD = 21;
-  static const jint MILLISECOND_IN_DAY_FIELD = 22;
-  static const jint RFC822_TIMEZONE_FIELD = 23;
   static ::java::lang::Class class$;
 };
 
index d1f25b37eb66a973d97e50a7f12e45cc6f59813c..b5cce7f5dd8cf1c594914dfb74af1f3b5259cbb4 100644 (file)
@@ -65,6 +65,7 @@ public: // actually package-private
   JArray< ::java::lang::String * > * shortWeekdays;
   JArray< ::java::lang::String * > * weekdays;
 private:
+  static ::java::util::Properties * properties;
   JArray< JArray< ::java::lang::String * > * > * runtimeZoneStrings;
   JArray< JArray< ::java::lang::String * > * > * zoneStrings;
   static const jlong serialVersionUID = -5987973545549424702LL;
index 14cf9d2f59b1c67979fd733d1f70f15d88d2b9fd..a3172d742b2ea3a855ae4b3b385bebe34485e458 100644 (file)
@@ -9,6 +9,16 @@
 #include <java/text/NumberFormat.h>
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
+  }
   namespace java
   {
     namespace math
@@ -73,7 +83,7 @@ public:
 private:
   jboolean equals(::java::lang::String *, ::java::lang::String *);
   ::java::lang::String * patternChars(::java::text::DecimalFormatSymbols *);
-  ::java::lang::StringBuffer * quoteFix(::java::lang::String *, ::java::lang::String *);
+  ::gnu::java::lang::CPStringBuilder * quoteFix(::java::lang::String *, ::java::lang::String *);
   ::java::lang::String * computePattern(::java::text::DecimalFormatSymbols *);
   void applyPatternWithSymbols(::java::lang::String *, ::java::text::DecimalFormatSymbols *);
   jint scanFix(::java::lang::String *, ::java::text::DecimalFormatSymbols *, jint, jboolean);
index 5813bd0d40ca0375bf7195736f775e7bc7ad26d3..a0b6d515d3295320ad8bde292cf46667489e75e6 100644 (file)
@@ -24,8 +24,9 @@ extern "Java"
 class java::text::Format : public ::java::lang::Object
 {
 
-public:
+public: // actually protected
   Format();
+public:
   virtual ::java::lang::String * format(::java::lang::Object *);
   virtual ::java::lang::StringBuffer * format(::java::lang::Object *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *) = 0;
   virtual ::java::lang::Object * parseObject(::java::lang::String *);
index 47d476fb52171439ea0145d9037f93efeb3f228c..01c6c359fea54d787e4676b5d5d3f3357a682c6b 100644 (file)
@@ -38,9 +38,9 @@ extern "Java"
 class java::text::MessageFormat : public ::java::text::Format
 {
 
-  static jint scanString(::java::lang::String *, jint, ::java::lang::StringBuffer *);
-  static jint scanFormatElement(::java::lang::String *, jint, ::java::lang::StringBuffer *, jchar);
-  static jint scanFormat(::java::lang::String *, jint, ::java::lang::StringBuffer *, ::java::util::Vector *, ::java::util::Locale *);
+  static jint scanString(::java::lang::String *, jint, ::java::lang::StringBuilder *);
+  static jint scanFormatElement(::java::lang::String *, jint, ::java::lang::StringBuilder *, jchar);
+  static jint scanFormat(::java::lang::String *, jint, ::java::lang::StringBuilder *, ::java::util::Vector *, ::java::util::Locale *);
 public:
   virtual void applyPattern(::java::lang::String *);
   virtual ::java::lang::Object * clone();
index c800b99a97fa55703d5abaebf737b862113c1426..0b480da4a83ccbc6eb476569a19d9b9fa7615415 100644 (file)
@@ -52,7 +52,9 @@ public:
   virtual jint hashCode();
   virtual jboolean isGroupingUsed();
   virtual jboolean isParseIntegerOnly();
+public: // actually protected
   NumberFormat();
+public:
   virtual ::java::lang::Number * parse(::java::lang::String *, ::java::text::ParsePosition *) = 0;
   virtual ::java::lang::Number * parse(::java::lang::String *);
   virtual ::java::lang::Object * parseObject(::java::lang::String *, ::java::text::ParsePosition *);
index a6ffbf507180f4db4d4b42d0a8d5bc289fec4275..3e8a5d0597e8294d800a3cc3baf1d96015531eff 100644 (file)
@@ -80,6 +80,7 @@ private:
   jint serialVersionOnStream;
   static const jlong serialVersionUID = 4774881970558875024LL;
   static ::java::lang::String * standardChars;
+  static const jint RFC822_TIMEZONE_FIELD = 18;
 public:
   static ::java::lang::Class class$;
 };
index 755e7c5a98db6b8d3acbbe461af69ea938dbe350..4bbdb1ae0742b59f60998cecbc3886e2f460e39c 100644 (file)
@@ -40,6 +40,7 @@ public: // actually protected
 private:
   void checkBoundInclusive(jint);
   void checkBoundExclusive(jint);
+  void raiseBoundsError(jint);
 public: // actually package-private
   virtual jboolean removeAllInternal(::java::util::Collection *);
   virtual jboolean retainAllInternal(::java::util::Collection *);
index 4010f602cd1e6b6168237d52e30a2d8e6fad1a2f..8860ee35a69987c647acf69bb8a7e0fc4e0bb0d9 100644 (file)
@@ -9,6 +9,19 @@
 #include <java/lang/Object.h>
 #include <gcj/array.h>
 
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
+  }
+}
 
 class java::util::Arrays : public ::java::lang::Object
 {
@@ -144,7 +157,7 @@ public:
   static ::java::lang::String * toString(JArray< jdouble > *);
   static ::java::lang::String * toString(JArray< ::java::lang::Object * > *);
 private:
-  static void deepToString(JArray< ::java::lang::Object * > *, ::java::lang::StringBuilder *, ::java::util::HashSet *);
+  static void deepToString(JArray< ::java::lang::Object * > *, ::gnu::java::lang::CPStringBuilder *, ::java::util::HashSet *);
 public:
   static ::java::lang::String * deepToString(JArray< ::java::lang::Object * > *);
   static JArray< jboolean > * copyOf(JArray< jboolean > *, jint);
index b38787148078ead5f25bd7a084886f1421002f68..9abfba539ada38fefb94f31895f4a80f57884da3 100644 (file)
@@ -138,6 +138,7 @@ public: // actually package-private
   static const jlong serialVersionUID = -1807547505821590642LL;
 private:
   static ::java::lang::String * bundleName;
+  static ::java::util::Properties * properties;
   static ::java::util::HashMap * cache;
   static JArray< ::java::lang::Class * > * ctorArgTypes;
   static JArray< ::java::lang::String * > * fieldNames;
index 5d513ed786dbd96c712e7b13062a52641cb01050..71a659f6632339474fa9ffe320bc3c9a9a433ec3 100644 (file)
 
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
+  }
   namespace java
   {
     namespace text
@@ -44,7 +54,7 @@ private:
   ::java::lang::String * getName(jint);
   void checkFlags(jint, jint, jchar);
   void noPrecision(jint);
-  void applyLocalization(::java::lang::StringBuilder *, jint, jint, jboolean);
+  void applyLocalization(::gnu::java::lang::CPStringBuilder *, jint, jint, jboolean);
   void genericFormat(::java::lang::String *, jint, jint, jint);
   void booleanFormat(::java::lang::Object *, jint, jint, jint, jchar);
   void hashCodeFormat(::java::lang::Object *, jint, jint, jint, jchar);
@@ -52,10 +62,10 @@ private:
   void characterFormat(::java::lang::Object *, jint, jint, jint, jchar);
   void percentFormat(jint, jint, jint);
   void newLineFormat(jint, jint, jint);
-  ::java::lang::StringBuilder * basicIntegralConversion(::java::lang::Object *, jint, jint, jint, jint, jchar);
+  ::gnu::java::lang::CPStringBuilder * basicIntegralConversion(::java::lang::Object *, jint, jint, jint, jint, jchar);
   void hexOrOctalConversion(::java::lang::Object *, jint, jint, jint, jint, jchar);
   void decimalConversion(::java::lang::Object *, jint, jint, jint, jchar);
-  void singleDateTimeConversion(::java::lang::StringBuilder *, ::java::util::Calendar *, jchar, ::java::text::DateFormatSymbols *);
+  void singleDateTimeConversion(::gnu::java::lang::CPStringBuilder *, ::java::util::Calendar *, jchar, ::java::text::DateFormatSymbols *);
   void dateTimeConversion(::java::lang::Object *, jint, jint, jint, jchar, jchar);
   void advance();
   jint parseInt();
index 5075e347c80a710400ba29302344b5e52aa726fb..ccb76b5a20b33408efc85f51cd4f70e8f2aab54c 100644 (file)
@@ -7,6 +7,19 @@
 #pragma interface
 
 #include <java/util/Hashtable.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
+  }
+}
 
 class java::util::Properties : public ::java::util::Hashtable
 {
@@ -15,6 +28,7 @@ public:
   Properties();
   Properties(::java::util::Properties *);
   virtual ::java::lang::Object * setProperty(::java::lang::String *, ::java::lang::String *);
+  virtual void load(::java::io::Reader *);
   virtual void load(::java::io::InputStream *);
   virtual void save(::java::io::OutputStream *, ::java::lang::String *);
   virtual void store(::java::io::OutputStream *, ::java::lang::String *);
@@ -24,7 +38,7 @@ public:
   virtual void list(::java::io::PrintStream *);
   virtual void list(::java::io::PrintWriter *);
 private:
-  void formatForOutput(::java::lang::String *, ::java::lang::StringBuilder *, jboolean);
+  void formatForOutput(::java::lang::String *, ::gnu::java::lang::CPStringBuilder *, jboolean);
 public:
   virtual void storeToXML(::java::io::OutputStream *, ::java::lang::String *);
   virtual void storeToXML(::java::io::OutputStream *, ::java::lang::String *, ::java::lang::String *);
index a0f0726be78edcd8a205bcf69b1657073a6e451c..fa6528511a143ed3834324fc0d0e33049b007feb 100644 (file)
@@ -13,6 +13,7 @@ class java::util::PropertyResourceBundle : public ::java::util::ResourceBundle
 
 public:
   PropertyResourceBundle(::java::io::InputStream *);
+  PropertyResourceBundle(::java::io::Reader *);
   virtual ::java::lang::Object * handleGetObject(::java::lang::String *);
   virtual ::java::util::Enumeration * getKeys();
 private:
index 62c08b38f3c3881299cee017245df6f87ce2ffb0..49c051cfbd37fe3db645dd1724377922bcc31c0f 100644 (file)
@@ -18,6 +18,7 @@ public: // actually package-private
 public:
   virtual jint hashCode();
   virtual jboolean equals(::java::lang::Object *);
+  virtual ::java::lang::String * toString();
 public: // actually package-private
   ::java::util::Locale * __attribute__((aligned(__alignof__( ::java::lang::Object)))) defaultLocale;
   ::java::lang::String * baseName;
index 98a87e679fd2fdf7d4bc42938d73f29514122aef..e14e4539fb0923e9ec10580f4069c29e1bc344eb 100644 (file)
@@ -32,6 +32,10 @@ public:
 private:
   static ::java::util::ResourceBundle * tryBundle(::java::lang::String *, ::java::lang::ClassLoader *);
   static ::java::util::ResourceBundle * tryBundle(::java::lang::String *, ::java::util::Locale *, ::java::lang::ClassLoader *, jboolean);
+public:
+  static void clearCache();
+  static void clearCache(::java::lang::ClassLoader *);
+private:
   static const jint CACHE_SIZE = 100;
 public: // actually protected
   ::java::util::ResourceBundle * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parent;
diff --git a/libjava/java/util/Scanner.h b/libjava/java/util/Scanner.h
new file mode 100644 (file)
index 0000000..bca1ab7
--- /dev/null
@@ -0,0 +1,178 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Scanner__
+#define __java_util_Scanner__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace java
+  {
+    namespace math
+    {
+        class BigDecimal;
+        class BigInteger;
+    }
+    namespace nio
+    {
+      namespace channels
+      {
+          class ReadableByteChannel;
+      }
+    }
+    namespace text
+    {
+        class DecimalFormat;
+        class DecimalFormatSymbols;
+        class NumberFormat;
+    }
+  }
+}
+
+class java::util::Scanner : public ::java::lang::Object
+{
+
+public:
+  Scanner(::java::io::File *);
+  Scanner(::java::io::File *, ::java::lang::String *);
+  Scanner(::java::io::InputStream *);
+  Scanner(::java::io::InputStream *, ::java::lang::String *);
+  Scanner(::java::lang::Readable *);
+  Scanner(::java::nio::channels::ReadableByteChannel *);
+  Scanner(::java::nio::channels::ReadableByteChannel *, ::java::lang::String *);
+  Scanner(::java::lang::String *);
+  virtual void close();
+  virtual ::java::util::regex::Pattern * delimiter();
+  virtual ::java::lang::String * findInLine(::java::util::regex::Pattern *);
+  virtual ::java::lang::String * findInLine(::java::lang::String *);
+  virtual ::java::lang::String * findWithinHorizon(::java::util::regex::Pattern *, jint);
+  virtual ::java::lang::String * findWithinHorizon(::java::lang::String *, jint);
+  virtual jboolean hasNext();
+  virtual jboolean hasNext(::java::util::regex::Pattern *);
+  virtual jboolean hasNext(::java::lang::String *);
+  virtual jboolean hasNextBigDecimal();
+  virtual jboolean hasNextBigInteger();
+  virtual jboolean hasNextBigInteger(jint);
+  virtual jboolean hasNextBoolean();
+  virtual jboolean hasNextByte();
+  virtual jboolean hasNextByte(jint);
+  virtual jboolean hasNextDouble();
+  virtual jboolean hasNextFloat();
+  virtual jboolean hasNextInt();
+  virtual jboolean hasNextInt(jint);
+  virtual jboolean hasNextLine();
+  virtual jboolean hasNextLong();
+  virtual jboolean hasNextLong(jint);
+  virtual jboolean hasNextShort();
+  virtual jboolean hasNextShort(jint);
+  virtual ::java::io::IOException * ioException();
+  virtual jboolean isUseLocale();
+  virtual ::java::util::Locale * locale();
+  virtual ::java::util::regex::MatchResult * match();
+  virtual ::java::lang::String * Scanner$next();
+  virtual ::java::lang::String * next(::java::util::regex::Pattern *);
+  virtual ::java::lang::String * next(::java::lang::String *);
+  virtual ::java::math::BigDecimal * nextBigDecimal();
+  virtual ::java::math::BigInteger * nextBigInteger();
+  virtual ::java::math::BigInteger * nextBigInteger(jint);
+  virtual jboolean nextBoolean();
+  virtual jbyte nextByte();
+  virtual jbyte nextByte(jint);
+  virtual jdouble nextDouble();
+  virtual jfloat nextFloat();
+  virtual jint nextInt();
+  virtual jint nextInt(jint);
+  virtual ::java::lang::String * nextLine();
+  virtual jlong nextLong();
+  virtual jlong nextLong(jint);
+  virtual jshort nextShort();
+  virtual jshort nextShort(jint);
+  virtual jint radix();
+  virtual void remove();
+  virtual void setUseLocale(jboolean);
+  virtual ::java::util::Scanner * skip(::java::util::regex::Pattern *);
+  virtual ::java::util::Scanner * skip(::java::lang::String *);
+  virtual ::java::lang::String * toString();
+  virtual ::java::util::Scanner * useDelimiter(::java::util::regex::Pattern *);
+  virtual ::java::util::Scanner * useDelimiter(::java::lang::String *);
+  virtual ::java::util::Scanner * useLocale(::java::util::Locale *);
+  virtual ::java::util::Scanner * useRadix(jint);
+private:
+  ::java::lang::String * myApplyLocale(::java::lang::String *, jint);
+  ::java::lang::String * myApplyLocaleBD(::java::lang::String *);
+  ::java::math::BigDecimal * myBigDecimal(jboolean);
+  ::java::lang::String * myConvert(::java::lang::String *);
+  ::java::lang::String * myCoreNext(jboolean, ::java::util::regex::Pattern *);
+  void myFillBuffer();
+  jboolean myFillBuffer_loop(::java::util::regex::Matcher *, jint, jboolean);
+  ::java::lang::String * myFindPInStr(::java::util::regex::Pattern *, ::java::lang::String *, jint);
+  ::java::lang::String * myNext(::java::util::regex::Pattern *, jboolean);
+  ::java::math::BigInteger * myNextBigInteger(jint, jboolean, ::java::lang::String *);
+  jboolean myNextBoolean(jboolean);
+  jbyte myNextByte(jint, jboolean);
+  jdouble myNextDouble(jboolean);
+  jint myNextInt(jint, jboolean);
+  ::java::lang::String * myNextLine(jboolean);
+  jlong myNextLong(jint, jboolean);
+  jshort myNextShort(jint, jboolean);
+  ::java::lang::String * myPrepareForNext(::java::util::regex::Pattern *, jboolean);
+  jboolean shallUseLastFound(::java::util::regex::Pattern *);
+public:
+  virtual ::java::lang::Object * next();
+private:
+  static ::java::lang::String * NOT_LONG;
+  static ::java::lang::String * ERR_PREFIX;
+  static ::java::lang::String * NOT_INT;
+  static ::java::lang::String * NOT_DOUBLE;
+  static ::java::lang::String * NOT_BYTE;
+  static ::java::lang::String * NOT_BOOLEAN;
+  static ::java::lang::String * IS_NOT;
+  static ::java::lang::String * DEFAULT_PATTERN_S;
+  static ::java::util::regex::Pattern * DEFAULT_PATTERN;
+  static ::java::lang::String * BIG_INTEGER;
+  static ::java::lang::String * NEW_LINE;
+  ::java::io::IOException * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastIOException;
+  ::java::io::InputStream * bIS;
+  const jint MaxBufferLen;
+  const jint MIN_BUF_LEN;
+  const jint MAX_PREFIX;
+  ::java::lang::String * actBuffer;
+  jint currentRadix;
+  ::java::util::Locale * actLocale;
+  ::java::util::regex::Pattern * p;
+  jint actPos;
+  JArray< jbyte > * tmpBuffer;
+  ::java::lang::String * charsetName;
+  ::java::util::regex::Matcher * myMatcher;
+  ::java::util::regex::MatchResult * actResult;
+  ::java::lang::Readable * readableSource;
+  ::java::nio::channels::ReadableByteChannel * rbcSource;
+  jboolean isClosed;
+  ::java::lang::String * lastFound;
+  jboolean lastFoundPresent;
+  jint lastNextPos;
+  jint lastPatternHash;
+  jint last_RegionStart;
+  jint last_RegionEnd;
+  jboolean last_anchor;
+  jboolean last_transparent;
+  ::java::util::regex::MatchResult * lastResult;
+  jint procesedChars;
+  jboolean needInput;
+  jboolean skipped;
+  jboolean doSkipp;
+  jboolean matchValid;
+  ::java::text::NumberFormat * actFormat;
+  ::java::text::DecimalFormat * df;
+  jboolean useLocale__;
+  ::java::text::DecimalFormatSymbols * dfs;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Scanner__
index 8330b2a18ffbabd02fed91dc91f9a6b4c58f5165..c903819c4b939b82f9078fffd0e562f57bc59956 100644 (file)
@@ -64,6 +64,7 @@ public: // actually protected
 private:
   void checkBoundInclusive(jint);
   void checkBoundExclusive(jint);
+  void raiseBoundsError(jint, ::java::lang::String *);
   void writeObject(::java::io::ObjectOutputStream *);
   static const jlong serialVersionUID = -2767605614048989439LL;
 public: // actually protected
index 48a585de097210b178c3e0edd507d62121a505c8..a5de3543541cef05b7abd4be8720d421d11ef1c4 100644 (file)
@@ -9,6 +9,16 @@
 #include <java/util/logging/Formatter.h>
 extern "Java"
 {
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace lang
+      {
+          class CPStringBuilder;
+      }
+    }
+  }
   namespace java
   {
     namespace text
@@ -24,8 +34,8 @@ class java::util::logging::XMLFormatter : public ::java::util::logging::Formatte
 public:
   XMLFormatter();
 private:
-  static void appendTag(::java::lang::StringBuffer *, jint, ::java::lang::String *, ::java::lang::String *);
-  static void appendTag(::java::lang::StringBuffer *, jint, ::java::lang::String *, jlong);
+  static void appendTag(::gnu::java::lang::CPStringBuilder *, jint, ::java::lang::String *, ::java::lang::String *);
+  static void appendTag(::gnu::java::lang::CPStringBuilder *, jint, ::java::lang::String *, jlong);
 public:
   virtual ::java::lang::String * format(::java::util::logging::LogRecord *);
   virtual ::java::lang::String * getHead(::java::util::logging::Handler *);
index 97c3f53c7526769b78c71a15283917ebe21fed3e..6e41aa3102eb2c0864732a6a4b3bcf1284301a53 100644 (file)
@@ -18,7 +18,7 @@ public:
 public: // actually package-private
   ::java::util::prefs::AbstractPreferences * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
 private:
-  ::java::util::prefs::PreferenceChangeListener * val$l;
+  ::java::util::prefs::PreferenceChangeListener * val$listener;
   ::java::util::prefs::PreferenceChangeEvent * val$event;
 public:
   static ::java::lang::Class class$;
index 45378c56ad5b79e8b9faaceea60ffa4bff270721..a96ebf139cb6ed2a8b96ea3bd06c7370bc5b53c0 100644 (file)
@@ -19,7 +19,7 @@ public: // actually package-private
   ::java::util::prefs::AbstractPreferences * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
 private:
   jboolean val$added;
-  ::java::util::prefs::NodeChangeListener * val$l;
+  ::java::util::prefs::NodeChangeListener * val$listener;
   ::java::util::prefs::NodeChangeEvent * val$event;
 public:
   static ::java::lang::Class class$;
index 35cd1c1cab45e087ab62ffbf14b7d1d0c252a0d1..74230ef51b720b16ef1384896f003bf176bd2b27 100644 (file)
@@ -53,12 +53,26 @@ public:
   ::java::lang::String * toString();
 private:
   void assertMatchOp();
+public:
+  ::java::util::regex::Matcher * region(jint, jint);
+  jint regionStart();
+  jint regionEnd();
+  jboolean hasTransparentBounds();
+  ::java::util::regex::Matcher * useTransparentBounds(jboolean);
+  jboolean hasAnchoringBounds();
+  ::java::util::regex::Matcher * useAnchoringBounds(jboolean);
+  ::java::util::regex::MatchResult * toMatchResult();
+private:
   ::java::util::regex::Pattern * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pattern__;
   ::java::lang::CharSequence * input;
   ::gnu::java::util::regex::CharIndexed * inputCharIndexed;
   jint position;
   jint appendPosition;
   ::gnu::java::util::regex::REMatch * match;
+  jint regionStart__;
+  jint regionEnd__;
+  jboolean transparentBounds;
+  jint anchoringBounds;
 public:
   static ::java::lang::Class class$;
 };
index 7e1cc8f518fa14351287003f82a0a5b049987e07..47cb903a8d6b34ab06b3ec4b837a18981dbff818 100644 (file)
@@ -25,9 +25,6 @@ public:
   virtual ::java::lang::String * getName();
   virtual void setTime(jlong);
   virtual jlong getTime();
-private:
-  static ::java::util::Calendar * getCalendar();
-public:
   virtual void setSize(jlong);
   virtual jlong getSize();
   virtual void setCompressedSize(jlong);
@@ -47,21 +44,22 @@ public:
   virtual ::java::lang::String * toString();
   virtual jint hashCode();
 private:
-  static const jint KNOWN_SIZE = 1;
-  static const jint KNOWN_CSIZE = 2;
-  static const jint KNOWN_CRC = 4;
-  static const jint KNOWN_TIME = 8;
-  static const jint KNOWN_EXTRA = 16;
-  static ::java::util::Calendar * cal;
+  static const jbyte KNOWN_SIZE = 1;
+  static const jbyte KNOWN_CSIZE = 2;
+  static const jbyte KNOWN_CRC = 4;
+  static const jbyte KNOWN_TIME = 8;
+  static const jbyte KNOWN_DOSTIME = 16;
+  static const jbyte KNOWN_EXTRA = 32;
   ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
   jint size;
   jlong compressedSize;
   jint crc;
+  ::java::lang::String * comment;
+  jbyte method;
+  jbyte known;
   jint dostime;
-  jshort known;
-  jshort method;
+  jlong time;
   JArray< jbyte > * extra;
-  ::java::lang::String * comment;
 public: // actually package-private
   jint flags;
   jint offset;
diff --git a/libjava/javax/activation/ActivationDataFlavor.h b/libjava/javax/activation/ActivationDataFlavor.h
new file mode 100644 (file)
index 0000000..0b8308b
--- /dev/null
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_ActivationDataFlavor__
+#define __javax_activation_ActivationDataFlavor__
+
+#pragma interface
+
+#include <java/awt/datatransfer/DataFlavor.h>
+extern "Java"
+{
+  namespace java
+  {
+    namespace awt
+    {
+      namespace datatransfer
+      {
+          class DataFlavor;
+      }
+    }
+  }
+  namespace javax
+  {
+    namespace activation
+    {
+        class ActivationDataFlavor;
+    }
+  }
+}
+
+class javax::activation::ActivationDataFlavor : public ::java::awt::datatransfer::DataFlavor
+{
+
+public:
+  ActivationDataFlavor(::java::lang::Class *, ::java::lang::String *, ::java::lang::String *);
+  ActivationDataFlavor(::java::lang::Class *, ::java::lang::String *);
+  ActivationDataFlavor(::java::lang::String *, ::java::lang::String *);
+  virtual ::java::lang::String * getMimeType();
+  virtual ::java::lang::Class * getRepresentationClass();
+  virtual ::java::lang::String * getHumanPresentableName();
+  virtual void setHumanPresentableName(::java::lang::String *);
+  virtual jboolean equals(::java::awt::datatransfer::DataFlavor *);
+  virtual jboolean isMimeTypeEqual(::java::lang::String *);
+public: // actually protected
+  virtual ::java::lang::String * normalizeMimeTypeParameter(::java::lang::String *, ::java::lang::String *);
+  virtual ::java::lang::String * normalizeMimeType(::java::lang::String *);
+private:
+  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::awt::datatransfer::DataFlavor)))) mimeType;
+  ::java::lang::Class * representationClass;
+  ::java::lang::String * humanPresentableName;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_ActivationDataFlavor__
diff --git a/libjava/javax/activation/CommandInfo.h b/libjava/javax/activation/CommandInfo.h
new file mode 100644 (file)
index 0000000..19beecc
--- /dev/null
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_CommandInfo__
+#define __javax_activation_CommandInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class CommandInfo;
+        class DataHandler;
+    }
+  }
+}
+
+class javax::activation::CommandInfo : public ::java::lang::Object
+{
+
+public:
+  CommandInfo(::java::lang::String *, ::java::lang::String *);
+  virtual ::java::lang::String * getCommandName();
+  virtual ::java::lang::String * getCommandClass();
+  virtual ::java::lang::Object * getCommandObject(::javax::activation::DataHandler *, ::java::lang::ClassLoader *);
+private:
+  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) verb;
+  ::java::lang::String * className;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_CommandInfo__
diff --git a/libjava/javax/activation/CommandMap.h b/libjava/javax/activation/CommandMap.h
new file mode 100644 (file)
index 0000000..5f0f963
--- /dev/null
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_CommandMap__
+#define __javax_activation_CommandMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class CommandInfo;
+        class CommandMap;
+        class DataContentHandler;
+        class DataSource;
+    }
+  }
+}
+
+class javax::activation::CommandMap : public ::java::lang::Object
+{
+
+public:
+  CommandMap();
+  static ::javax::activation::CommandMap * getDefaultCommandMap();
+  static void setDefaultCommandMap(::javax::activation::CommandMap *);
+  virtual JArray< ::javax::activation::CommandInfo * > * getPreferredCommands(::java::lang::String *) = 0;
+  virtual JArray< ::javax::activation::CommandInfo * > * getAllCommands(::java::lang::String *) = 0;
+  virtual ::javax::activation::CommandInfo * getCommand(::java::lang::String *, ::java::lang::String *) = 0;
+  virtual ::javax::activation::DataContentHandler * createDataContentHandler(::java::lang::String *) = 0;
+  virtual JArray< ::java::lang::String * > * getMimeTypes();
+  virtual JArray< ::javax::activation::CommandInfo * > * getPreferredCommands(::java::lang::String *, ::javax::activation::DataSource *);
+  virtual JArray< ::javax::activation::CommandInfo * > * getAllCommands(::java::lang::String *, ::javax::activation::DataSource *);
+  virtual ::javax::activation::CommandInfo * getCommand(::java::lang::String *, ::java::lang::String *, ::javax::activation::DataSource *);
+  virtual ::javax::activation::DataContentHandler * createDataContentHandler(::java::lang::String *, ::javax::activation::DataSource *);
+private:
+  static ::javax::activation::CommandMap * defaultCommandMap;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_CommandMap__
diff --git a/libjava/javax/activation/CommandObject.h b/libjava/javax/activation/CommandObject.h
new file mode 100644 (file)
index 0000000..945e35a
--- /dev/null
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_CommandObject__
+#define __javax_activation_CommandObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class CommandObject;
+        class DataHandler;
+    }
+  }
+}
+
+class javax::activation::CommandObject : public ::java::lang::Object
+{
+
+public:
+  virtual void setCommandContext(::java::lang::String *, ::javax::activation::DataHandler *) = 0;
+  static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_activation_CommandObject__
diff --git a/libjava/javax/activation/DataContentHandler.h b/libjava/javax/activation/DataContentHandler.h
new file mode 100644 (file)
index 0000000..9fac481
--- /dev/null
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataContentHandler__
+#define __javax_activation_DataContentHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace java
+  {
+    namespace awt
+    {
+      namespace datatransfer
+      {
+          class DataFlavor;
+      }
+    }
+  }
+  namespace javax
+  {
+    namespace activation
+    {
+        class DataContentHandler;
+        class DataSource;
+    }
+  }
+}
+
+class javax::activation::DataContentHandler : public ::java::lang::Object
+{
+
+public:
+  virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors() = 0;
+  virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *, ::javax::activation::DataSource *) = 0;
+  virtual ::java::lang::Object * getContent(::javax::activation::DataSource *) = 0;
+  virtual void writeTo(::java::lang::Object *, ::java::lang::String *, ::java::io::OutputStream *) = 0;
+  static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_activation_DataContentHandler__
diff --git a/libjava/javax/activation/DataContentHandlerFactory.h b/libjava/javax/activation/DataContentHandlerFactory.h
new file mode 100644 (file)
index 0000000..2e22a4e
--- /dev/null
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataContentHandlerFactory__
+#define __javax_activation_DataContentHandlerFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class DataContentHandler;
+        class DataContentHandlerFactory;
+    }
+  }
+}
+
+class javax::activation::DataContentHandlerFactory : public ::java::lang::Object
+{
+
+public:
+  virtual ::javax::activation::DataContentHandler * createDataContentHandler(::java::lang::String *) = 0;
+  static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_activation_DataContentHandlerFactory__
diff --git a/libjava/javax/activation/DataHandler$DataContentHandlerWriter.h b/libjava/javax/activation/DataHandler$DataContentHandlerWriter.h
new file mode 100644 (file)
index 0000000..5d4aedf
--- /dev/null
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataHandler$DataContentHandlerWriter__
+#define __javax_activation_DataHandler$DataContentHandlerWriter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class DataContentHandler;
+        class DataHandler$DataContentHandlerWriter;
+    }
+  }
+}
+
+class javax::activation::DataHandler$DataContentHandlerWriter : public ::java::lang::Object
+{
+
+public: // actually package-private
+  DataHandler$DataContentHandlerWriter(::javax::activation::DataContentHandler *, ::java::lang::Object *, ::java::lang::String *, ::java::io::OutputStream *);
+public:
+  virtual void run();
+public: // actually package-private
+  ::javax::activation::DataContentHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dch;
+  ::java::lang::Object * object;
+  ::java::lang::String * mimeType;
+  ::java::io::OutputStream * out;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_DataHandler$DataContentHandlerWriter__
diff --git a/libjava/javax/activation/DataHandler.h b/libjava/javax/activation/DataHandler.h
new file mode 100644 (file)
index 0000000..034bdc1
--- /dev/null
@@ -0,0 +1,85 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataHandler__
+#define __javax_activation_DataHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace java
+  {
+    namespace awt
+    {
+      namespace datatransfer
+      {
+          class DataFlavor;
+      }
+    }
+    namespace net
+    {
+        class URL;
+    }
+  }
+  namespace javax
+  {
+    namespace activation
+    {
+        class CommandInfo;
+        class CommandMap;
+        class DataContentHandler;
+        class DataContentHandlerFactory;
+        class DataHandler;
+        class DataSource;
+    }
+  }
+}
+
+class javax::activation::DataHandler : public ::java::lang::Object
+{
+
+public:
+  DataHandler(::javax::activation::DataSource *);
+  DataHandler(::java::lang::Object *, ::java::lang::String *);
+  DataHandler(::java::net::URL *);
+  virtual ::javax::activation::DataSource * getDataSource();
+  virtual ::java::lang::String * getName();
+  virtual ::java::lang::String * getContentType();
+  virtual ::java::io::InputStream * getInputStream();
+  virtual void writeTo(::java::io::OutputStream *);
+  virtual ::java::io::OutputStream * getOutputStream();
+  virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors();
+  virtual jboolean isDataFlavorSupported(::java::awt::datatransfer::DataFlavor *);
+  virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *);
+  virtual void setCommandMap(::javax::activation::CommandMap *);
+  virtual JArray< ::javax::activation::CommandInfo * > * getPreferredCommands();
+  virtual JArray< ::javax::activation::CommandInfo * > * getAllCommands();
+  virtual ::javax::activation::CommandInfo * getCommand(::java::lang::String *);
+  virtual ::java::lang::Object * getContent();
+  virtual ::java::lang::Object * getBean(::javax::activation::CommandInfo *);
+  static void setDataContentHandlerFactory(::javax::activation::DataContentHandlerFactory *);
+private:
+  ::java::lang::String * getShortType();
+  ::javax::activation::CommandMap * getCommandMap();
+  ::javax::activation::DataContentHandler * getDataContentHandler();
+  static JArray< ::java::awt::datatransfer::DataFlavor * > * NO_FLAVORS;
+  static ::javax::activation::DataContentHandlerFactory * factory;
+  ::javax::activation::DataSource * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dataSource;
+  ::javax::activation::DataSource * objDataSource;
+  ::java::lang::Object * object;
+  ::java::lang::String * objectMimeType;
+  ::javax::activation::CommandMap * currentCommandMap;
+  JArray< ::java::awt::datatransfer::DataFlavor * > * transferFlavors;
+  ::javax::activation::DataContentHandler * dataContentHandler;
+  ::javax::activation::DataContentHandler * factoryDCH;
+  ::javax::activation::DataContentHandlerFactory * oldFactory;
+  ::java::lang::String * shortType;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_DataHandler__
diff --git a/libjava/javax/activation/DataHandlerDataSource.h b/libjava/javax/activation/DataHandlerDataSource.h
new file mode 100644 (file)
index 0000000..feae6e3
--- /dev/null
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataHandlerDataSource__
+#define __javax_activation_DataHandlerDataSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class DataHandler;
+        class DataHandlerDataSource;
+    }
+  }
+}
+
+class javax::activation::DataHandlerDataSource : public ::java::lang::Object
+{
+
+public: // actually package-private
+  DataHandlerDataSource(::javax::activation::DataHandler *);
+public:
+  ::java::lang::String * getContentType();
+  ::java::io::InputStream * getInputStream();
+  ::java::lang::String * getName();
+  ::java::io::OutputStream * getOutputStream();
+public: // actually package-private
+  ::javax::activation::DataHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dh;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_DataHandlerDataSource__
diff --git a/libjava/javax/activation/DataSource.h b/libjava/javax/activation/DataSource.h
new file mode 100644 (file)
index 0000000..eb493aa
--- /dev/null
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataSource__
+#define __javax_activation_DataSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class DataSource;
+    }
+  }
+}
+
+class javax::activation::DataSource : public ::java::lang::Object
+{
+
+public:
+  virtual ::java::io::InputStream * getInputStream() = 0;
+  virtual ::java::io::OutputStream * getOutputStream() = 0;
+  virtual ::java::lang::String * getContentType() = 0;
+  virtual ::java::lang::String * getName() = 0;
+  static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_activation_DataSource__
diff --git a/libjava/javax/activation/DataSourceDataContentHandler.h b/libjava/javax/activation/DataSourceDataContentHandler.h
new file mode 100644 (file)
index 0000000..e364878
--- /dev/null
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataSourceDataContentHandler__
+#define __javax_activation_DataSourceDataContentHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace java
+  {
+    namespace awt
+    {
+      namespace datatransfer
+      {
+          class DataFlavor;
+      }
+    }
+  }
+  namespace javax
+  {
+    namespace activation
+    {
+        class DataContentHandler;
+        class DataSource;
+        class DataSourceDataContentHandler;
+    }
+  }
+}
+
+class javax::activation::DataSourceDataContentHandler : public ::java::lang::Object
+{
+
+public:
+  DataSourceDataContentHandler(::javax::activation::DataContentHandler *, ::javax::activation::DataSource *);
+  virtual ::java::lang::Object * getContent(::javax::activation::DataSource *);
+  virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *, ::javax::activation::DataSource *);
+  virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors();
+  virtual void writeTo(::java::lang::Object *, ::java::lang::String *, ::java::io::OutputStream *);
+private:
+  ::javax::activation::DataSource * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ds;
+  JArray< ::java::awt::datatransfer::DataFlavor * > * flavors;
+  ::javax::activation::DataContentHandler * dch;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_DataSourceDataContentHandler__
diff --git a/libjava/javax/activation/FileDataSource.h b/libjava/javax/activation/FileDataSource.h
new file mode 100644 (file)
index 0000000..a3636b8
--- /dev/null
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_FileDataSource__
+#define __javax_activation_FileDataSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class FileDataSource;
+        class FileTypeMap;
+    }
+  }
+}
+
+class javax::activation::FileDataSource : public ::java::lang::Object
+{
+
+public:
+  FileDataSource(::java::io::File *);
+  FileDataSource(::java::lang::String *);
+  virtual ::java::io::InputStream * getInputStream();
+  virtual ::java::io::OutputStream * getOutputStream();
+  virtual ::java::lang::String * getContentType();
+  virtual ::java::lang::String * getName();
+  virtual ::java::io::File * getFile();
+  virtual void setFileTypeMap(::javax::activation::FileTypeMap *);
+private:
+  ::java::io::File * __attribute__((aligned(__alignof__( ::java::lang::Object)))) file;
+  ::javax::activation::FileTypeMap * typeMap;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_FileDataSource__
diff --git a/libjava/javax/activation/FileTypeMap.h b/libjava/javax/activation/FileTypeMap.h
new file mode 100644 (file)
index 0000000..e141b37
--- /dev/null
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_FileTypeMap__
+#define __javax_activation_FileTypeMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class FileTypeMap;
+    }
+  }
+}
+
+class javax::activation::FileTypeMap : public ::java::lang::Object
+{
+
+public:
+  FileTypeMap();
+  static ::javax::activation::FileTypeMap * getDefaultFileTypeMap();
+  static void setDefaultFileTypeMap(::javax::activation::FileTypeMap *);
+  virtual ::java::lang::String * getContentType(::java::io::File *) = 0;
+  virtual ::java::lang::String * getContentType(::java::lang::String *) = 0;
+private:
+  static ::javax::activation::FileTypeMap * defaultMap;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_FileTypeMap__
diff --git a/libjava/javax/activation/MailcapCommandMap.h b/libjava/javax/activation/MailcapCommandMap.h
new file mode 100644 (file)
index 0000000..bf5c28f
--- /dev/null
@@ -0,0 +1,64 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MailcapCommandMap__
+#define __javax_activation_MailcapCommandMap__
+
+#pragma interface
+
+#include <javax/activation/CommandMap.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class CommandInfo;
+        class DataContentHandler;
+        class MailcapCommandMap;
+    }
+  }
+}
+
+class javax::activation::MailcapCommandMap : public ::javax::activation::CommandMap
+{
+
+public:
+  MailcapCommandMap();
+  MailcapCommandMap(::java::lang::String *);
+  MailcapCommandMap(::java::io::InputStream *);
+private:
+  void init(::java::io::Reader *);
+public:
+  virtual JArray< ::javax::activation::CommandInfo * > * getPreferredCommands(::java::lang::String *);
+  virtual JArray< ::javax::activation::CommandInfo * > * getAllCommands(::java::lang::String *);
+  virtual ::javax::activation::CommandInfo * getCommand(::java::lang::String *, ::java::lang::String *);
+  virtual void addMailcap(::java::lang::String *);
+  virtual ::javax::activation::DataContentHandler * createDataContentHandler(::java::lang::String *);
+  virtual JArray< ::java::lang::String * > * getNativeCommands(::java::lang::String *);
+private:
+  void addNativeCommands(::java::util::List *, ::java::util::Map *, ::java::lang::String *);
+  static ::java::lang::String * nameOf(jint);
+  void parseFile(jint, ::java::lang::String *);
+  void parseResource(jint, ::java::lang::String *);
+  void parse(jint, ::java::io::Reader *);
+  void parseEntry(jint, ::java::lang::String *);
+  void addField(::java::util::Map *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+  ::java::util::Map * getCommands(::java::util::Map *, ::java::lang::String *);
+  ::java::util::List * getSystemResources(::java::lang::String *);
+  static const jint PROG = 0;
+  static const jint HOME = 1;
+  static const jint SYS = 2;
+  static const jint JAR = 3;
+  static const jint DEF = 4;
+  static jboolean debug;
+  static const jint NORMAL = 0;
+  static const jint FALLBACK = 1;
+  JArray< JArray< ::java::util::Map * > * > * __attribute__((aligned(__alignof__( ::javax::activation::CommandMap)))) mailcaps;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MailcapCommandMap__
diff --git a/libjava/javax/activation/MimeType.h b/libjava/javax/activation/MimeType.h
new file mode 100644 (file)
index 0000000..a6dbb1e
--- /dev/null
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MimeType__
+#define __javax_activation_MimeType__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class MimeType;
+        class MimeTypeParameterList;
+    }
+  }
+}
+
+class javax::activation::MimeType : public ::java::lang::Object
+{
+
+public:
+  MimeType();
+  MimeType(::java::lang::String *);
+  MimeType(::java::lang::String *, ::java::lang::String *);
+  virtual ::java::lang::String * getPrimaryType();
+  virtual void setPrimaryType(::java::lang::String *);
+  virtual ::java::lang::String * getSubType();
+  virtual void setSubType(::java::lang::String *);
+  virtual ::javax::activation::MimeTypeParameterList * getParameters();
+  virtual ::java::lang::String * getParameter(::java::lang::String *);
+  virtual void setParameter(::java::lang::String *, ::java::lang::String *);
+  virtual void removeParameter(::java::lang::String *);
+  virtual ::java::lang::String * toString();
+  virtual ::java::lang::String * getBaseType();
+  virtual jboolean match(::javax::activation::MimeType *);
+  virtual jboolean match(::java::lang::String *);
+  virtual void writeExternal(::java::io::ObjectOutput *);
+  virtual void readExternal(::java::io::ObjectInput *);
+private:
+  void parse(::java::lang::String *);
+public: // actually package-private
+  static void checkValidity(::java::lang::String *, ::java::lang::String *);
+  static jboolean isValidChar(jchar);
+  static ::java::lang::String * TSPECIALS;
+private:
+  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) primaryType;
+  ::java::lang::String * subType;
+  ::javax::activation::MimeTypeParameterList * parameters;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MimeType__
diff --git a/libjava/javax/activation/MimeTypeParameterList$IteratorEnumeration.h b/libjava/javax/activation/MimeTypeParameterList$IteratorEnumeration.h
new file mode 100644 (file)
index 0000000..4106522
--- /dev/null
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MimeTypeParameterList$IteratorEnumeration__
+#define __javax_activation_MimeTypeParameterList$IteratorEnumeration__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class MimeTypeParameterList$IteratorEnumeration;
+    }
+  }
+}
+
+class javax::activation::MimeTypeParameterList$IteratorEnumeration : public ::java::lang::Object
+{
+
+public: // actually package-private
+  MimeTypeParameterList$IteratorEnumeration(::java::util::Iterator *);
+public:
+  virtual jboolean hasMoreElements();
+  virtual ::java::lang::String * MimeTypeParameterList$IteratorEnumeration$nextElement();
+  virtual ::java::lang::Object * nextElement();
+public: // actually package-private
+  ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iterator;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MimeTypeParameterList$IteratorEnumeration__
diff --git a/libjava/javax/activation/MimeTypeParameterList.h b/libjava/javax/activation/MimeTypeParameterList.h
new file mode 100644 (file)
index 0000000..06bfca9
--- /dev/null
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MimeTypeParameterList__
+#define __javax_activation_MimeTypeParameterList__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class MimeTypeParameterList;
+    }
+  }
+}
+
+class javax::activation::MimeTypeParameterList : public ::java::lang::Object
+{
+
+public:
+  MimeTypeParameterList();
+  MimeTypeParameterList(::java::lang::String *);
+public: // actually protected
+  virtual void parse(::java::lang::String *);
+public:
+  virtual jint size();
+  virtual jboolean isEmpty();
+  virtual ::java::lang::String * get(::java::lang::String *);
+  virtual void set(::java::lang::String *, ::java::lang::String *);
+  virtual void remove(::java::lang::String *);
+  virtual ::java::util::Enumeration * getNames();
+  virtual ::java::lang::String * toString();
+private:
+  static ::java::lang::String * quote(::java::lang::String *);
+  static ::java::lang::String * unquote(::java::lang::String *);
+  ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parameterNames;
+  ::java::util::Map * parameterValues;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MimeTypeParameterList__
diff --git a/libjava/javax/activation/MimeTypeParseException.h b/libjava/javax/activation/MimeTypeParseException.h
new file mode 100644 (file)
index 0000000..e94e313
--- /dev/null
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MimeTypeParseException__
+#define __javax_activation_MimeTypeParseException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class MimeTypeParseException;
+    }
+  }
+}
+
+class javax::activation::MimeTypeParseException : public ::java::lang::Exception
+{
+
+public:
+  MimeTypeParseException();
+  MimeTypeParseException(::java::lang::String *);
+public: // actually package-private
+  MimeTypeParseException(::java::lang::String *, ::java::lang::String *);
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MimeTypeParseException__
diff --git a/libjava/javax/activation/MimetypesFileTypeMap.h b/libjava/javax/activation/MimetypesFileTypeMap.h
new file mode 100644 (file)
index 0000000..78ab939
--- /dev/null
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MimetypesFileTypeMap__
+#define __javax_activation_MimetypesFileTypeMap__
+
+#pragma interface
+
+#include <javax/activation/FileTypeMap.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class MimetypesFileTypeMap;
+    }
+  }
+}
+
+class javax::activation::MimetypesFileTypeMap : public ::javax::activation::FileTypeMap
+{
+
+public:
+  MimetypesFileTypeMap();
+  MimetypesFileTypeMap(::java::lang::String *);
+  MimetypesFileTypeMap(::java::io::InputStream *);
+private:
+  void init(::java::io::Reader *);
+public:
+  virtual void addMimeTypes(::java::lang::String *);
+  virtual ::java::lang::String * getContentType(::java::io::File *);
+  virtual ::java::lang::String * getContentType(::java::lang::String *);
+private:
+  void parseFile(::java::util::Map *, ::java::lang::String *);
+  void parseResource(::java::util::Map *, ::java::lang::String *);
+  void parse(::java::util::Map *, ::java::io::Reader *);
+  void parseEntry(::java::util::Map *, ::java::lang::String *);
+  ::java::util::List * getSystemResources(::java::lang::String *);
+  static const jint PROG = 0;
+  static const jint HOME = 1;
+  static const jint SYS = 2;
+  static const jint JAR = 3;
+  static const jint DEF = 4;
+  static ::java::lang::String * DEFAULT_MIME_TYPE;
+  static jboolean debug;
+  JArray< ::java::util::Map * > * __attribute__((aligned(__alignof__( ::javax::activation::FileTypeMap)))) mimetypes;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MimetypesFileTypeMap__
diff --git a/libjava/javax/activation/ObjectDataContentHandler.h b/libjava/javax/activation/ObjectDataContentHandler.h
new file mode 100644 (file)
index 0000000..74a73db
--- /dev/null
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_ObjectDataContentHandler__
+#define __javax_activation_ObjectDataContentHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace java
+  {
+    namespace awt
+    {
+      namespace datatransfer
+      {
+          class DataFlavor;
+      }
+    }
+  }
+  namespace javax
+  {
+    namespace activation
+    {
+        class DataContentHandler;
+        class DataSource;
+        class ObjectDataContentHandler;
+    }
+  }
+}
+
+class javax::activation::ObjectDataContentHandler : public ::java::lang::Object
+{
+
+public:
+  ObjectDataContentHandler(::javax::activation::DataContentHandler *, ::java::lang::Object *, ::java::lang::String *);
+  virtual ::java::lang::Object * getContent(::javax::activation::DataSource *);
+  virtual ::javax::activation::DataContentHandler * getDCH();
+  virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *, ::javax::activation::DataSource *);
+  virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors();
+  virtual void writeTo(::java::lang::Object *, ::java::lang::String *, ::java::io::OutputStream *);
+private:
+  ::javax::activation::DataContentHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dch;
+  ::java::lang::Object * object;
+  ::java::lang::String * mimeType;
+  JArray< ::java::awt::datatransfer::DataFlavor * > * flavors;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_ObjectDataContentHandler__
diff --git a/libjava/javax/activation/URLDataSource.h b/libjava/javax/activation/URLDataSource.h
new file mode 100644 (file)
index 0000000..30fa6a1
--- /dev/null
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_URLDataSource__
+#define __javax_activation_URLDataSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace java
+  {
+    namespace net
+    {
+        class URL;
+        class URLConnection;
+    }
+  }
+  namespace javax
+  {
+    namespace activation
+    {
+        class URLDataSource;
+    }
+  }
+}
+
+class javax::activation::URLDataSource : public ::java::lang::Object
+{
+
+public:
+  URLDataSource(::java::net::URL *);
+  virtual ::java::lang::String * getContentType();
+  virtual ::java::lang::String * getName();
+  virtual ::java::io::InputStream * getInputStream();
+  virtual ::java::io::OutputStream * getOutputStream();
+  virtual ::java::net::URL * getURL();
+private:
+  ::java::net::URL * __attribute__((aligned(__alignof__( ::java::lang::Object)))) url;
+  ::java::net::URLConnection * connection;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_URLDataSource__
diff --git a/libjava/javax/activation/UnsupportedDataTypeException.h b/libjava/javax/activation/UnsupportedDataTypeException.h
new file mode 100644 (file)
index 0000000..c0803f5
--- /dev/null
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_UnsupportedDataTypeException__
+#define __javax_activation_UnsupportedDataTypeException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace activation
+    {
+        class UnsupportedDataTypeException;
+    }
+  }
+}
+
+class javax::activation::UnsupportedDataTypeException : public ::java::io::IOException
+{
+
+public:
+  UnsupportedDataTypeException();
+  UnsupportedDataTypeException(::java::lang::String *);
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_UnsupportedDataTypeException__
index 95c5ac6af34216fdb373a339605ecad94797d3e3..a0c7951fd5a6debb31625720812771007ebfa398 100644 (file)
@@ -36,8 +36,6 @@ public:
   virtual ::java::lang::String * getActions();
   virtual jint hashCode();
   virtual jboolean implies(::java::security::Permission *);
-public: // actually package-private
-  virtual ::java::util::Set * getActionSet();
 private:
   void updateActionSet();
   void readObject(::java::io::ObjectInputStream *);
index 1d072107c8d7623f61a3899b0e1873f822d88e4a..0e325fed7e44317c25ee0418a8e447343447f23c 100644 (file)
@@ -9,6 +9,13 @@
 #include <java/lang/Object.h>
 extern "Java"
 {
+  namespace java
+  {
+    namespace security
+    {
+        class Permission;
+    }
+  }
   namespace javax
   {
     namespace management
@@ -26,6 +33,7 @@ class javax::management::MBeanServerPermission$MBeanServerPermissionCollection$M
 public:
   MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration(::javax::management::MBeanServerPermission$MBeanServerPermissionCollection *, ::javax::management::MBeanServerPermission *);
   virtual jboolean hasMoreElements();
+  virtual ::java::security::Permission * MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration$nextElement();
   virtual ::java::lang::Object * nextElement();
 private:
   ::javax::management::MBeanServerPermission * __attribute__((aligned(__alignof__( ::java::lang::Object)))) p;
index 23b437650e53df0a2c2a2904919433c9d255768b..cce9dbe8ae3064717cc837e3ee3793d48a28d75d 100644 (file)
@@ -55,15 +55,15 @@ public:
   virtual void putAll(::java::util::Map *);
   virtual ::java::lang::Object * remove(::java::lang::Object *);
   virtual ::javax::management::openmbean::CompositeData * remove(JArray< ::java::lang::Object * > *);
-public: // actually package-private
-  virtual void setMap(::java::util::Map *);
+private:
+  void setMap(::java::util::HashMap *);
 public:
   virtual jint size();
   virtual ::java::lang::String * toString();
   virtual ::java::util::Collection * values();
 private:
   static const jlong serialVersionUID = 5720150593236309827LL;
-  ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dataMap;
+  ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dataMap;
   ::javax::management::openmbean::TabularType * tabularType;
 public:
   static ::java::lang::Class class$;
index ce8aee5acfee9067513e419188609bf95b5fc8b8..83cda4f2dcbac230777c8bfee87ccc936b18625a 100644 (file)
@@ -66,7 +66,6 @@ private:
   static JArray< jchar > * charMapping;
   jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) didPushChar;
   jint pushedChar;
-  ::java::lang::StringBuffer * unitBuffer;
   JArray< jint > * unitStack;
   jint stackCount;
   ::java::io::Reader * reader;
index 51353b86cf1e31939146d83524701d1fec694b2b..3266efd1c00b546716b5b3685262ab9c7a7dcecb 100644 (file)
@@ -57,6 +57,7 @@ public:
   virtual ::java::lang::String * getName();
   virtual void addChangeListener(::javax::swing::event::ChangeListener *);
   virtual void removeChangeListener(::javax::swing::event::ChangeListener *);
+  virtual jint StyleSheet$CSSStyle$compareTo(::javax::swing::text::html::StyleSheet$CSSStyle *);
   virtual jint compareTo(::java::lang::Object *);
 public: // actually package-private
   static const jint PREC_UA = 0;
index 87acd835a5d339db3f633abf07e02324c709858e..c882240b093f5a88b19e06b59d6a43363192a5e7 100644 (file)
@@ -29,11 +29,11 @@ class javax::tools::FileObject : public ::java::lang::Object
 {
 
 public:
-  virtual ::java::net::URI * toURI() = 0;
+  virtual ::java::net::URI * toUri() = 0;
   virtual ::java::lang::String * getName() = 0;
   virtual ::java::io::InputStream * openInputStream() = 0;
   virtual ::java::io::OutputStream * openOutputStream() = 0;
-  virtual ::java::io::Reader * openReader() = 0;
+  virtual ::java::io::Reader * openReader(jboolean) = 0;
   virtual ::java::lang::CharSequence * getCharContent(jboolean) = 0;
   virtual ::java::io::Writer * openWriter() = 0;
   virtual jlong getLastModified() = 0;
index 77b019341d74cec16e402a0e3416fb698617d82a..e801c4e203894bcc0abda87d998baa6bf5f31083 100644 (file)
@@ -2118,7 +2118,7 @@ _Jv_GetJNIEnvNewFrameWithLoader (::java::lang::ClassLoader *loader)
   if (__builtin_expect (env == NULL, false))
     {
       env = (JNIEnv *) _Jv_MallocUnchecked (sizeof (JNIEnv));
-      env->p = &_Jv_JNIFunctions;
+      env->functions = &_Jv_JNIFunctions;
       env->locals = NULL;
       // We set env->ex below.
 
@@ -2428,7 +2428,7 @@ _Jv_JNI_AttachCurrentThread (JavaVM *, jstring name, void **penv,
   env = (JNIEnv *) _Jv_MallocUnchecked (sizeof (JNIEnv));
   if (env == NULL)
     return JNI_ERR;
-  env->p = &_Jv_JNIFunctions;
+  env->functions = &_Jv_JNIFunctions;
   env->ex = NULL;
   env->bottom_locals
     = (_Jv_JNI_LocalFrame *) _Jv_MallocUnchecked (sizeof (_Jv_JNI_LocalFrame)
index ef52f55cde1b89f1287808289d09525b7d2d6892..521f604e69c00e837698bee83a9fbd9ce96aaf02 100755 (executable)
@@ -95,6 +95,7 @@ set package_map(gnu/java/lang/management) bcheaders
 set package_map(java/lang/management) bc
 set package_map(gnu/classpath/management) bc
 set package_map(gnu/javax/management) bc
+set package_map(gnu/java/math) bc
 
 # parser/HTML_401F.class is really big, and there have been complaints
 # about this package requiring too much memory to build.  So, we
@@ -520,6 +521,7 @@ scan_packages .
 # Files created by the build.
 classify_source_file classpath gnu/java/locale/LocaleData.java
 classify_source_file classpath gnu/java/security/Configuration.java
+classify_source_file classpath gnu/classpath/Configuration.java
 
 puts "## This file was automatically generated by scripts/makemake.tcl"
 puts "## Do not edit!"
index aba3c89e1cb22cb5721e52a387861da1d71311ab..b108484277de156e1a05a961aaa26e94f22e01c2 100644 (file)
@@ -222,7 +222,7 @@ gnu/awt/xlib.list: $(gnu_awt_xlib_source_files)
 
 
 gnu_classpath_source_files = \
-gnu/classpath/Configuration.java \
+classpath/gnu/classpath/Configuration.java \
 classpath/gnu/classpath/NotImplementedException.java \
 classpath/gnu/classpath/Pair.java \
 classpath/gnu/classpath/Pointer.java \
@@ -1147,10 +1147,12 @@ gnu/java/io.list: $(gnu_java_io_source_files)
 
 gnu_java_lang_source_files = \
 classpath/gnu/java/lang/ArrayHelper.java \
+classpath/gnu/java/lang/CPStringBuilder.java \
 classpath/gnu/java/lang/CharData.java \
 classpath/gnu/java/lang/ClassHelper.java \
 classpath/gnu/java/lang/InstrumentationImpl.java \
 gnu/java/lang/MainThread.java \
+gnu/java/lang/VMCPStringBuilder.java \
 gnu/java/lang/VMInstrumentationImpl.java
 
 gnu_java_lang_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_lang_source_files)))
@@ -1222,16 +1224,13 @@ gnu/java/locale.list: $(gnu_java_locale_source_files)
 
 gnu_java_math_source_files = \
 classpath/gnu/java/math/Fixed.java \
+classpath/gnu/java/math/GMP.java \
 classpath/gnu/java/math/MPN.java
 
-gnu_java_math_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_math_source_files)))
-
-gnu/java/math.list: $(gnu_java_math_source_files)
-       @$(mkinstalldirs) $(dir $@)
-       echo $(srcdir)/classpath/lib/gnu/java/math/*.class > gnu/java/math.list
-
--include gnu/java/math.deps
-
+gnu-java-math.lo: $(gnu_java_math_source_files)
+       @find $(srcdir)/classpath/lib/gnu/java/math -name '*.class' > gnu-java-math.list
+       $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-math.lo @gnu-java-math.list
+       @rm -f gnu-java-math.list
 
 gnu_java_net_source_files = \
 classpath/gnu/java/net/CRLFInputStream.java \
@@ -2063,7 +2062,6 @@ gnu/java/util/jar.list: $(gnu_java_util_jar_source_files)
 
 
 gnu_java_util_prefs_source_files = \
-classpath/gnu/java/util/prefs/EventDispatcher.java \
 classpath/gnu/java/util/prefs/FileBasedFactory.java \
 classpath/gnu/java/util/prefs/FileBasedPreferences.java \
 classpath/gnu/java/util/prefs/GConfBasedFactory.java \
@@ -2132,6 +2130,20 @@ gnu/java/util/regex.list: $(gnu_java_util_regex_source_files)
 -include gnu/java/util/regex.deps
 
 
+gnu_javax_activation_viewers_source_files = \
+classpath/gnu/javax/activation/viewers/ImageViewer.java \
+classpath/gnu/javax/activation/viewers/TextEditor.java \
+classpath/gnu/javax/activation/viewers/TextViewer.java
+
+gnu_javax_activation_viewers_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_activation_viewers_source_files)))
+
+gnu/javax/activation/viewers.list: $(gnu_javax_activation_viewers_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/gnu/javax/activation/viewers/*.class > gnu/javax/activation/viewers.list
+
+-include gnu/javax/activation/viewers.deps
+
+
 gnu_javax_crypto_source_files = \
 classpath/gnu/javax/crypto/RSACipherImpl.java
 
@@ -4603,6 +4615,7 @@ java/io.list: $(java_io_source_files)
 
 java_lang_source_files = \
 classpath/java/lang/AbstractMethodError.java \
+java/lang/AbstractStringBuffer.java \
 classpath/java/lang/Appendable.java \
 classpath/java/lang/ArithmeticException.java \
 classpath/java/lang/ArrayIndexOutOfBoundsException.java \
@@ -4686,6 +4699,7 @@ java/lang/Thread.java \
 classpath/java/lang/ThreadDeath.java \
 classpath/java/lang/ThreadGroup.java \
 java/lang/ThreadLocal.java \
+classpath/java/lang/ThreadLocalMap.java \
 classpath/java/lang/Throwable.java \
 classpath/java/lang/TypeNotPresentException.java \
 classpath/java/lang/UnknownError.java \
@@ -5529,6 +5543,7 @@ classpath/external/jsr166/java/util/Queue.java \
 classpath/java/util/Random.java \
 classpath/java/util/RandomAccess.java \
 classpath/java/util/ResourceBundle.java \
+classpath/java/util/Scanner.java \
 classpath/java/util/ServiceConfigurationError.java \
 classpath/java/util/ServiceLoader.java \
 classpath/java/util/Set.java \
@@ -5820,6 +5835,37 @@ javax/accessibility.list: $(javax_accessibility_source_files)
 -include javax/accessibility.deps
 
 
+javax_activation_source_files = \
+classpath/javax/activation/ActivationDataFlavor.java \
+classpath/javax/activation/CommandInfo.java \
+classpath/javax/activation/CommandMap.java \
+classpath/javax/activation/CommandObject.java \
+classpath/javax/activation/DataContentHandler.java \
+classpath/javax/activation/DataContentHandlerFactory.java \
+classpath/javax/activation/DataHandler.java \
+classpath/javax/activation/DataHandlerDataSource.java \
+classpath/javax/activation/DataSource.java \
+classpath/javax/activation/DataSourceDataContentHandler.java \
+classpath/javax/activation/FileDataSource.java \
+classpath/javax/activation/FileTypeMap.java \
+classpath/javax/activation/MailcapCommandMap.java \
+classpath/javax/activation/MimeType.java \
+classpath/javax/activation/MimeTypeParameterList.java \
+classpath/javax/activation/MimeTypeParseException.java \
+classpath/javax/activation/MimetypesFileTypeMap.java \
+classpath/javax/activation/ObjectDataContentHandler.java \
+classpath/javax/activation/URLDataSource.java \
+classpath/javax/activation/UnsupportedDataTypeException.java
+
+javax_activation_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_activation_source_files)))
+
+javax/activation.list: $(javax_activation_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/javax/activation/*.class > javax/activation.list
+
+-include javax/activation.deps
+
+
 javax_activity_source_files = \
 classpath/javax/activity/ActivityCompletedException.java \
 classpath/javax/activity/ActivityRequiredException.java \
@@ -8616,7 +8662,6 @@ all_packages_source_files = \
   gnu/java/lang.list \
   gnu/java/lang/reflect.list \
   gnu/java/locale.list \
-  gnu/java/math.list \
   gnu/java/net.list \
   gnu/java/net/loader.list \
   gnu/java/net/local.list \
@@ -8660,6 +8705,7 @@ all_packages_source_files = \
   gnu/java/util/jar.list \
   gnu/java/util/prefs.list \
   gnu/java/util/regex.list \
+  gnu/javax/activation/viewers.list \
   gnu/javax/crypto.list \
   gnu/javax/crypto/assembly.list \
   gnu/javax/crypto/cipher.list \
@@ -8778,6 +8824,7 @@ all_packages_source_files = \
   java/util/spi.list \
   java/util/zip.list \
   javax/accessibility.list \
+  javax/activation.list \
   javax/activity.list \
   javax/crypto.list \
   javax/crypto/interfaces.list \
@@ -8868,7 +8915,6 @@ ordinary_header_files = \
   $(gnu_java_lang_management_header_files) \
   $(gnu_java_lang_reflect_header_files) \
   $(gnu_java_locale_header_files) \
-  $(gnu_java_math_header_files) \
   $(gnu_java_net_header_files) \
   $(gnu_java_net_loader_header_files) \
   $(gnu_java_net_local_header_files) \
@@ -8912,6 +8958,7 @@ ordinary_header_files = \
   $(gnu_java_util_jar_header_files) \
   $(gnu_java_util_prefs_header_files) \
   $(gnu_java_util_regex_header_files) \
+  $(gnu_javax_activation_viewers_header_files) \
   $(gnu_javax_crypto_header_files) \
   $(gnu_javax_crypto_assembly_header_files) \
   $(gnu_javax_crypto_cipher_header_files) \
@@ -9025,6 +9072,7 @@ ordinary_header_files = \
   $(java_util_spi_header_files) \
   $(java_util_zip_header_files) \
   $(javax_accessibility_header_files) \
+  $(javax_activation_header_files) \
   $(javax_activity_header_files) \
   $(javax_crypto_header_files) \
   $(javax_crypto_interfaces_header_files) \
@@ -9093,6 +9141,7 @@ bc_objects = \
   gnu-java-awt-peer-swing.lo \
   gnu-java-beans.lo \
   gnu-java-lang-management.lo \
+  gnu-java-math.lo \
   gnu-java-util-prefs-gconf.lo \
   gnu-javax-management.lo \
   gnu-javax-rmi.lo \
@@ -9137,7 +9186,9 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_aa_ET.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_af.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_af_NA.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_af_ZA.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ak.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_am.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_am_ET.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ar.properties \
@@ -9160,11 +9211,14 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_bg_BG.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_bn.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_bn_IN.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_bo.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_bs.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_byn.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_byn_ER.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ca.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ca_ES.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_cch.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_cop.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_cs.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_cs_CZ.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_cy.properties \
@@ -9182,6 +9236,7 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_dv_MV.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_dz.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_dz_BT.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ee.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_el.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_el_CY.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_el_GR.properties \
@@ -9192,18 +9247,23 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_en_BW.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_BZ.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_CA.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_GB.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_GU.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_HK.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_IE.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_IN.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_en_JM.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_MH.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_MP.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_MT.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_en_NA.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_NZ.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_PH.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_PK.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_SG.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_en_Shaw.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_en_TT.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_UM.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_US.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties \
@@ -9241,6 +9301,7 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_fa_IR.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fi.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fi_FI.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_fil.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fo.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fo_FO.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fr.properties \
@@ -9248,8 +9309,10 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_fr_CA.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fr_CH.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_fr_LU.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_fur.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ga.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ga_IE.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_gaa.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_gez.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_gez_ER.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_gez_ET.properties \
@@ -9259,6 +9322,8 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_gu_IN.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_gv.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_gv_GB.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ha.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ha_Arab.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_haw.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_haw_US.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_he.properties \
@@ -9271,8 +9336,11 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_hy.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_hy_AM.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ia.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_id.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_id_ID.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ig.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ii.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_is.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_is_IS.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_it.properties \
@@ -9282,6 +9350,10 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ja.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ja_JP.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ka.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_kaj.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_kam.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_kcg.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_kfo.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kk.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kk_KZ.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kl.properties \
@@ -9294,9 +9366,14 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ko_KR.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kok.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kok_IN.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_kpe.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ku.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ku_Arab.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ku_Latn.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kw.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_kw_GB.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ky.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ln.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_lo.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_lo_LA.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_lt.properties \
@@ -9314,19 +9391,25 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ms_MY.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_mt.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_mt_MT.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_my.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nb.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nb_NO.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ne.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nl.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nl_BE.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nl_NL.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nn.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_nn_NO.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_nr.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_nso.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ny.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_om.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_om_ET.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_om_KE.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_or.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_or_IN.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_pa.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_pa_Arab.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_pa_IN.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_pl.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_pl_PL.properties \
@@ -9340,8 +9423,12 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ru.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ru_RU.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ru_UA.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_rw.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sa.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sa_IN.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_se.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_se_FI.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_si.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sid.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sid_ET.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sk.properties \
@@ -9360,6 +9447,11 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_sr_BA_Latn.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sr_Cyrl.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sr_Latn.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ss.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ssy.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_st.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sv.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sv_FI.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_sv_SE.properties \
@@ -9372,6 +9464,7 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ta_IN.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_te.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_te_IN.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_tg.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_th.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_th_TH.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ti.properties \
@@ -9379,20 +9472,30 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_ti_ET.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tig.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tig_ER.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_tn.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_to.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tr.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tr_TR.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_trv.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ts.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tt.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_tt_RU.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ug.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uk.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uk_UA.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_ur.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ur_IN.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uz.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uz_AF_Arab.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uz_Arab.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_uz_Latn.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_ve.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_vi.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_wal.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_wal_ET.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_wo.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_xh.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_yo.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_zh.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_zh_CN_Hans.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties \
@@ -9400,13 +9503,16 @@ property_files = \
   classpath/resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_zh_TW_Hant.properties \
+  classpath/resource/gnu/java/locale/LocaleInformation_zu.properties \
   classpath/resource/gnu/java/util/regex/MessagesBundle.properties \
   classpath/resource/gnu/java/util/regex/MessagesBundle_fr.properties \
   classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties \
   classpath/resource/gnu/javax/print/PrinterDialog.properties \
   classpath/resource/gnu/javax/print/PrinterDialog_de.properties \
   classpath/resource/gnu/javax/security/auth/callback/MessagesBundle.properties \
+  classpath/resource/java/text/metazones.properties \
   classpath/resource/java/util/iso4217.properties \
+  classpath/resource/java/util/weeks.properties \
   classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \
   classpath/resource/javax/swing/text/html/default.css \
   classpath/resource/org/ietf/jgss/MessagesBundle.properties \
index 2751c6bb3aad37a41a49971c9e251dd5c1747675..08fe4b159e7ba24dc32bcf75e911334247865831 100644 (file)
@@ -78,6 +78,7 @@ AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
 ANONVERSCRIPT_FALSE = @ANONVERSCRIPT_FALSE@
 ANONVERSCRIPT_TRUE = @ANONVERSCRIPT_TRUE@
+ANTLR_JAR = @ANTLR_JAR@
 AR = @AR@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
@@ -98,6 +99,8 @@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CPU = @CPU@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
 CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@
 CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@
 CXX = @CXX@